/* CERIS FLUID — homepage v2 (sections below the hero). Loaded on the front page only. */
:root{--cx-grid:linear-gradient(#0d11150b 1px,transparent 1px),linear-gradient(90deg,#0d11150b 1px,transparent 1px)}
.cx-wrap{width:min(var(--layout-max,1440px),calc(100% - var(--layout-gutter,32px)*2));margin-inline:auto}
.cx-section{position:relative;padding:clamp(72px,9vw,128px) 0}
.cx-center{display:flex;justify-content:center;margin-top:clamp(36px,4vw,56px)}
.cx-flip{transform:scaleX(-1)}

/* Type + links */
.cx-eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 22px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.cx-eyebrow i{width:40px;height:2px;background:var(--accent)}
.cx-h2{margin:0;max-width:19em;font-size:clamp(32px,3.7vw,56px);font-weight:600;letter-spacing:-.035em;line-height:1.08;color:var(--brand)}
.cx-lede{margin:22px 0 0;max-width:560px;font-size:16px;color:var(--muted)}
.cx-head{display:flex;justify-content:space-between;align-items:flex-end;gap:40px;margin-bottom:clamp(36px,5vw,64px)}
.cx-head>.cx-lede{margin:0;flex:0 1 560px}
.cx-link{display:inline-flex;align-items:center;gap:12px;padding-bottom:6px;font-size:14px;font-weight:700;letter-spacing:.02em;color:var(--brand);border-bottom:2px solid var(--accent);white-space:nowrap;transition:gap .25s,color .2s}
.cx-link:hover{gap:18px;color:var(--action)}
.cx-link-light{color:#fff;border-color:#fff}.cx-link-light:hover{color:#fff}
.cx-arrow{width:18px;height:18px;flex:none;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;transition:transform .25s}

/* Desktop: headline + lede sit on one line each — no premature wrapping when there is room. */
@media(min-width:1000px){
  .cx-h2-tight{max-width:none;white-space:nowrap}
  .cx-head>.cx-lede{flex:0 0 auto;max-width:none;white-space:nowrap}
}

/* Scroll reveal (only when JS has flagged the page) */
.cx-js .cx-reveal{opacity:0;transform:translateY(28px);transition:opacity .8s ease,transform .8s cubic-bezier(.2,.7,.2,1)}
.cx-js .cx-reveal.is-in{opacity:1;transform:none}

/* Brands */
.cx-brands{background:#fff;border-bottom:1px solid var(--border)}
.cx-brands-inner{display:flex;align-items:center;gap:48px;padding:30px 0}
.cx-brands-label{flex:0 0 auto;max-width:150px;margin:0;font-size:12px;font-weight:700;letter-spacing:.18em;line-height:1.6;text-transform:uppercase;color:var(--muted)}
.cx-brands-window{flex:1;min-width:0;overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 6%,#000 94%,transparent)}
.cx-brands-track{display:flex;width:max-content;animation:cx-marquee 40s linear infinite}
.cx-brands-window:hover .cx-brands-track{animation-play-state:paused}
.cx-brands-set{display:flex;align-items:center;gap:56px;padding-right:56px}
.cx-brands-set>span{display:flex;align-items:center;justify-content:center;width:112px;height:52px}
.cx-brands-set img{width:auto;height:auto;max-width:112px;max-height:52px;object-fit:contain;filter:grayscale(1);opacity:.65;transition:filter .3s,opacity .3s}
.cx-brands-set>span:hover img{filter:none;opacity:1}
@keyframes cx-marquee{to{transform:translateX(-50%)}}

/* Product solutions */
.cx-solutions{background:#fff}
.cx-solution-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--border);border-left:1px solid var(--border);background:#fff}
.cx-solution{position:relative;display:flex;flex-direction:column;background:#fff;border-right:1px solid var(--border);border-bottom:1px solid var(--border);transition:box-shadow .3s}
.cx-solution:hover,.cx-solution:focus-visible{box-shadow:none;z-index:1}
.cx-solution-media{position:relative;display:grid;place-items:center;aspect-ratio:4/3;padding:clamp(16px,2vw,28px);overflow:hidden;background:#fff}
.cx-solution-media img{display:block;width:100%;height:100%;object-fit:contain;transition:transform .6s cubic-bezier(.2,.7,.2,1)}
.cx-solution:hover .cx-solution-media img{transform:scale(1.025)}
.cx-solution-media:after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.cx-solution:hover .cx-solution-media:after{transform:scaleX(1)}
.cx-solution-body{display:flex;flex-direction:column;flex:1;padding:26px 28px 28px}
.cx-solution-body h3{margin:0 0 10px;font-size:22px;font-weight:600;letter-spacing:-.01em;transition:color .25s}
.cx-solution:hover .cx-solution-body h3{color:var(--action)}
.cx-solution-body p{margin:0 0 20px;font-size:15px;color:var(--muted)}
.cx-solution-more{display:inline-flex;align-items:center;gap:10px;margin-top:auto;font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--brand);transition:color .25s}
.cx-solution:hover .cx-solution-more{color:var(--action)}
.cx-solution:hover .cx-arrow{transform:translateX(6px)}

/* Featured products */
.cx-featured{background:var(--surface)}
.cx-rail-controls{display:flex;gap:10px;flex:none}
.cx-rail-btn{display:grid;place-items:center;width:54px;height:54px;background:#fff;border:1px solid var(--border);color:var(--brand);cursor:pointer;transition:background .2s,color .2s,border-color .2s}
.cx-rail-btn:hover:not(:disabled){background:var(--brand);border-color:var(--brand);color:#fff}
.cx-rail-btn:disabled{opacity:.35;cursor:default}
.cx-rail-track{display:flex;gap:24px;padding:6px 0 26px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.cx-rail-track::-webkit-scrollbar{display:none}
.cx-card{position:relative;flex:0 0 calc((100% - 72px)/4);display:flex;flex-direction:column;scroll-snap-align:start;background:#fff;transition:transform .3s,box-shadow .3s}
.cx-card:hover{transform:translateY(-6px);box-shadow:0 26px 46px -24px #0d111545}
.cx-card:after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform .35s}
.cx-card:hover:after,.cx-card:focus-within:after{transform:scaleX(1)}
.cx-card-photo{position:relative;display:grid;place-items:center;aspect-ratio:4/3;padding:30px;background-color:#f8f9fa;background-image:var(--cx-grid);background-size:24px 24px}
.cx-card-photo img{max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:multiply;transition:transform .5s}
.cx-card:hover .cx-card-photo img{transform:scale(1.06)}
.cx-card-body{display:flex;flex:1;flex-direction:column;padding:24px 24px 26px}
.cx-card-tag{margin:0 0 10px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--action)}
.cx-card h3{margin:0 0 12px;font-size:21px;font-weight:600;line-height:1.25;letter-spacing:-.01em}
.cx-card-description{margin:0 0 18px;font-size:13px;line-height:1.55;color:var(--muted)}
.cx-card-link{display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:16px;border-top:1px solid var(--border);font-size:13px;font-weight:700}
.cx-card-link .cx-arrow{color:var(--action)}
.cx-card:hover .cx-arrow{transform:translateX(5px)}

/* Applications */
.cx-apps{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:var(--dark)}
.cx-apps-bg{position:absolute;inset:0;z-index:-2}
.cx-apps-bg-layer{position:absolute;inset:0;background-size:cover;background-position:center;opacity:0;transition:opacity .7s ease}
.cx-apps-bg-layer.is-active{opacity:1}
.cx-apps-scrim{position:absolute;inset:0;background:linear-gradient(100deg,#0d1115e8 0%,#0d1115cc 32%,#0d1115a3 60%,#0d111580 100%)}
.cx-apps .cx-h2{color:#fff;text-shadow:0 2px 12px #00000059}
.cx-apps .cx-eyebrow{color:#e4e9ed}
.cx-apps .cx-lede{color:#e4e9ed;text-shadow:0 1px 8px #00000040}
.cx-apps-body{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(32px,6vw,96px);align-items:start}
.cx-tablist{display:flex;flex-direction:column;border-bottom:1px solid #ffffff33}
.cx-tab{display:flex;align-items:center;gap:18px;width:100%;padding:22px 0;text-align:left;font-size:clamp(17px,1.4vw,20px);font-weight:500;letter-spacing:-.005em;color:#d7dde2;background:none;border:0;border-top:1px solid #ffffff33;cursor:pointer;transition:color .25s,padding .3s;text-shadow:0 1px 6px #00000059}
.cx-tab:hover{color:#fff}
.cx-tab[aria-selected=true]{padding-left:10px;color:#fff}
.cx-tab-icon{width:26px;height:26px;flex:none;fill:none;stroke:#c7ced5;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:stroke .25s;filter:drop-shadow(0 1px 4px #00000059)}
.cx-tab[aria-selected=true] .cx-tab-icon{stroke:var(--accent)}
.cx-panel{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,270px);gap:clamp(24px,3vw,40px);padding:clamp(28px,4vw,44px);background:#0d1115b3;border:1px solid #ffffff26;backdrop-filter:blur(10px);box-shadow:0 30px 60px -30px #00000080}
.cx-panel[hidden]{display:none}
.cx-panel:not([hidden]){animation:cx-fade .5s ease}
@keyframes cx-fade{from{opacity:0;transform:translateY(10px)}}
.cx-panel-heading{display:flex;align-items:center;gap:16px;margin-bottom:16px}
.cx-panel-icon{width:32px;height:32px;flex:none;fill:none;stroke:var(--accent);stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}
.cx-panel-heading h3{margin:0;font-size:clamp(24px,2.4vw,32px);font-weight:600;letter-spacing:-.02em;color:#fff}
.cx-panel-info>p{max-width:480px;margin:0 0 26px;font-size:16px;color:#d7dde2}
.cx-panel .cx-link{color:#fff}
.cx-panel-chips{padding-left:clamp(24px,3vw,40px);border-left:1px solid #ffffff26}
.cx-panel-chips>p.cx-panel-label{margin:0 0 16px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#b9c2ca}
.cx-chips{display:flex;flex-direction:column;gap:10px;margin:0;padding:0;list-style:none}
.cx-chips a{display:block;padding:10px 14px;font-size:13px;color:#e4e9ed;border:1px solid #ffffff40;transition:background .2s,border-color .2s}
.cx-chips a:hover{background:var(--action);border-color:var(--action);color:#fff}

/* Why */
.cx-why{position:relative;isolation:isolate;overflow:hidden;color:#fff}
.cx-why-bg{position:absolute;inset:0;z-index:-1}
.cx-why-bg img{width:100%;height:100%;object-fit:cover}
.cx-why-bg:after{content:'';position:absolute;inset:0;background:linear-gradient(175deg,#0d111559,#0d111533 45%,#0d11155c)}
.cx-why .cx-h2{color:#fff}
.cx-why .cx-eyebrow{color:#e4e9ed}
.cx-why .cx-lede{color:#e4e9ed}
.cx-why-panel{padding:clamp(28px,4vw,52px);background:#0d111570;border:1px solid #ffffff2e;backdrop-filter:blur(12px);box-shadow:0 30px 60px -30px #00000066}
.cx-why-panel .cx-head{margin-bottom:clamp(32px,4.5vw,52px)}
.cx-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:2px solid #ffffff59}
.cx-metric{padding:38px 28px 34px 32px;border-right:1px solid #ffffff26}
.cx-metric:first-child{padding-left:0}
.cx-metric:last-child{border-right:0}
.cx-metric strong{display:block;font-size:clamp(46px,5.4vw,84px);font-weight:600;letter-spacing:-.05em;line-height:1;color:#fff;font-variant-numeric:tabular-nums}
.cx-metric strong span{font:inherit;letter-spacing:inherit;color:inherit}
.cx-metric-label{max-width:220px;margin:18px 0 0;font-size:12px;font-weight:700;letter-spacing:.12em;line-height:1.6;text-transform:uppercase;color:#e4e9ed}
.cx-process{margin-top:clamp(40px,5vw,64px);padding:clamp(28px,4vw,52px);background:#0d111570;border:1px solid #ffffff2e;backdrop-filter:blur(12px);box-shadow:0 30px 60px -30px #00000066}
.cx-process-title{margin:0 0 40px;font-size:13px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#fff}
.cx-steps{position:relative;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));margin:0;padding:0;list-style:none;column-gap:16px}
.cx-steps:before{content:'';position:absolute;left:20px;right:0;top:9px;height:2px;background:repeating-linear-gradient(90deg,#ffffff5c 0 7px,transparent 7px 14px)}
.cx-steps:after{content:'';position:absolute;left:0;top:4px;width:12px;height:12px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 6px #f0442e33;animation:cx-travel 8s ease-in-out infinite}
@keyframes cx-travel{0%{left:0;opacity:0}8%{opacity:1}92%{opacity:1}100%{left:calc(100% - 12px);opacity:0}}
.cx-step{position:relative}
.cx-step-dot{position:relative;z-index:1;display:block;width:20px;height:20px;background:#fff;border:2px solid #fff;border-radius:50%;transition:background .25s,border-color .25s}
.cx-step:hover .cx-step-dot{background:var(--accent);border-color:var(--accent)}
.cx-step h3{margin:22px 0 8px;font-size:16px;font-weight:600;color:#fff}
.cx-step p{margin:0;font-size:13px;line-height:1.5;color:#e4e9ed}

/* Engineering */
.cx-eng{background:var(--surface);overflow:hidden}
.cx-eng-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:clamp(40px,7vw,110px);align-items:center}
.cx-eng-media{position:relative;padding:0 60px 60px 0}
.cx-eng-stack{position:relative;aspect-ratio:4/5}
.cx-eng-slide{position:absolute;inset:0;margin:0;overflow:hidden;background:#d9dee3;box-shadow:0 26px 48px -26px #0d111566;transition:transform .55s cubic-bezier(.22,.75,.25,1),box-shadow .4s}
.cx-eng-slide img{width:100%;height:100%;object-fit:cover;display:block}
.cx-eng-slide[data-offset="0"]{transform:translate(0,0);z-index:5;box-shadow:0 34px 60px -26px #0d111577}
.cx-eng-slide[data-offset="1"]{transform:translate(20px,20px);z-index:4}
.cx-eng-slide[data-offset="2"]{transform:translate(38px,38px);z-index:3}
.cx-eng-slide[data-offset="3"]{transform:translate(54px,54px);z-index:2;outline:2px solid var(--accent);outline-offset:2px}
.cx-eng-tag{position:absolute;left:0;bottom:0;padding:16px 22px;font-size:11px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#fff;background:var(--dark);z-index:6}
.cx-eng-steps{position:relative;margin:44px 0 40px;padding:0;list-style:none}
.cx-eng-steps li{position:relative}
.cx-eng-steps li:before{content:'';position:absolute;left:9px;top:48px;bottom:-6px;width:2px;background:#c7ced5}
.cx-eng-steps li:last-child:before{display:none}
.cx-eng-step-btn{display:grid;grid-template-columns:20px 1fr;gap:0 22px;width:100%;padding:8px 10px 26px 0;text-align:left;background:none;border:0;border-radius:6px;cursor:pointer;transition:background .2s}
.cx-eng-step-btn:hover,.cx-eng-step-btn:focus-visible{background:#0d11150d}
.cx-eng-no{display:block;width:20px;height:20px;margin-top:5px;background:#fff;border:2px solid var(--brand);border-radius:50%;transition:background .25s,border-color .25s,transform .25s}
.cx-eng-step-btn[aria-pressed="true"] .cx-eng-no{background:var(--action);border-color:var(--action);transform:scale(1.15)}
.cx-eng-step-copy h3{margin:2px 0 6px;font-size:20px;font-weight:600;transition:color .2s}
.cx-eng-step-btn[aria-pressed="true"] .cx-eng-step-copy h3{color:var(--action)}
.cx-eng-step-copy p{margin:0;font-size:15px;color:var(--muted)}
.cx-actions{display:flex;flex-wrap:wrap;align-items:center;gap:20px 32px}

/* Quality */
.cx-quality{background:#fff}
.cx-q-grid{display:grid;grid-template-columns:minmax(0,8fr) minmax(0,4fr);gap:24px}
.cx-q-hero{position:relative;min-height:520px;overflow:hidden;background:var(--dark)}
.cx-q-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform 1.4s cubic-bezier(.2,.7,.2,1)}
.cx-q-hero:hover img{transform:scale(1.045)}
.cx-q-hero:after{content:'';position:absolute;inset:0;background:linear-gradient(to top,#0d1115e6,transparent 58%)}
.cx-q-cap{position:absolute;z-index:2;left:0;right:0;bottom:0;display:flex;justify-content:space-between;align-items:flex-end;gap:20px;padding:34px;color:#fff}
.cx-q-cap strong{max-width:12em;font-size:clamp(24px,2.6vw,38px);font-weight:600;letter-spacing:-.025em;line-height:1.12}
.cx-q-panel{display:flex;flex-direction:column;padding:36px 32px;color:#fff;background:var(--dark)}
.cx-q-panel h3{margin:0 0 22px;font-size:12px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#9aa6b1}
.cx-tests{margin:0;padding:0;list-style:none}
.cx-tests li{display:flex;align-items:center;gap:14px;padding:13px 0;font-size:15px;border-top:1px solid #ffffff1f}
.cx-tests li:before{content:'';flex:none;width:8px;height:8px;background:var(--accent)}
.cx-q-thumbs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:24px}
.cx-q-thumbs figure{position:relative;margin:0;aspect-ratio:16/10;overflow:hidden;background:#d9dee3}
.cx-q-thumbs img{width:100%;height:100%;object-fit:cover;transition:transform .8s}
.cx-q-thumbs figure:hover img{transform:scale(1.07)}

/* Insights */
.cx-insights{background:var(--surface)}
.cx-post-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.cx-post{display:flex;flex-direction:column;align-items:flex-start}
.cx-post-img{position:relative;display:grid;place-items:center;width:100%;aspect-ratio:16/10;overflow:hidden;background:#e6eaed;border-bottom:2px solid var(--border)}
.cx-post-img img{width:100%;height:100%;object-fit:cover;transition:transform .6s}
.cx-post:hover .cx-post-img img{transform:scale(1.05)}
.cx-post-img span{font-size:11px;letter-spacing:.14em;color:var(--muted)}
.cx-post-meta{margin:22px 0 12px;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}
.cx-post h3{margin:0 0 24px;font-size:24px;font-weight:500;line-height:1.25}
.cx-post h3 a:hover{color:var(--action)}
.cx-post-ph{position:absolute;inset:0;display:grid;place-items:center;background:linear-gradient(135deg,var(--brand),#1b2530)}
.cx-post-ph-badge{position:absolute;left:16px;top:16px;padding:6px 12px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:#fff;background:#ffffff26;border:1px solid #ffffff40;backdrop-filter:blur(4px)}
.cx-post-ph-icon{width:56px;height:56px;fill:none;stroke:#ffffff59;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}
.cx-post-pending .cx-post-meta{margin-top:22px}
.cx-post-teaser{margin:0;font-size:14px;line-height:1.55;color:var(--muted)}

/* Responsive */
@media(max-width:1100px){
  .cx-solution-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cx-card{flex-basis:calc((100% - 48px)/3)}
  .cx-apps-body{grid-template-columns:1fr}
  .cx-panel{grid-template-columns:1fr}
  .cx-panel-chips{padding-left:0;border-left:0;padding-top:24px;border-top:1px solid #ffffff26}
  .cx-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .cx-metric:nth-child(2){border-right:0}
  .cx-metric:nth-child(3){padding-left:0}
  .cx-metric:nth-child(n+3){border-top:1px solid #ffffff26}
  .cx-steps{grid-template-columns:repeat(4,minmax(0,1fr));row-gap:32px}
  .cx-steps:before,.cx-steps:after{display:none}
  .cx-eng-grid{grid-template-columns:1fr}
  .cx-eng-media{max-width:560px;margin-inline:auto}
  .cx-q-grid{grid-template-columns:1fr}
  .cx-q-hero{min-height:420px}
  .cx-q-thumbs{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:800px){
  .cx-head{flex-direction:column;align-items:flex-start;gap:24px}
  .cx-head>.cx-lede{flex:none}
  .cx-rail-controls{display:none}
  .cx-card{flex-basis:calc((100% - 24px)/2)}
  .cx-steps{grid-template-columns:1fr;gap:26px}
  .cx-step{display:grid;grid-template-columns:20px 1fr;column-gap:22px}
  .cx-step-dot{margin-top:3px}
  .cx-step h3{margin:0 0 4px}
  .cx-post-grid{grid-template-columns:1fr;gap:40px}
}
@media(max-width:600px){
  .cx-brands-inner{flex-direction:column;align-items:flex-start;gap:16px;padding:24px 0}
  .cx-brands-label{max-width:none}
  .cx-brands-window{width:100%;flex:none}
  .cx-brands-set{gap:36px;padding-right:36px}
  .cx-brands-set>span{width:92px;height:44px}.cx-brands-set img{max-width:92px;max-height:44px}
  .cx-solution-grid{grid-template-columns:1fr}
  .cx-card{flex-basis:78%}
  .cx-metric{padding:28px 16px 26px 20px}
  .cx-metric-label{font-size:10px}
  .cx-steps{grid-template-columns:1fr 1fr}
  .cx-eng-media{padding:0 40px 40px 0}
  .cx-eng-slide[data-offset="1"]{transform:translate(14px,14px)}
  .cx-eng-slide[data-offset="2"]{transform:translate(26px,26px)}
  .cx-eng-slide[data-offset="3"]{transform:translate(38px,38px)}
  .cx-q-hero{min-height:340px}
  .cx-q-cap{flex-direction:column;align-items:flex-start;padding:22px}
  .cx-q-panel{padding:28px 22px}
  .cx-q-thumbs{gap:12px}
  .cx-tab{padding:18px 0;gap:14px}
}
@media(prefers-reduced-motion:reduce){
  .cx-brands-track,.cx-steps:after{animation:none}
  .cx-brands-window{overflow-x:auto}
  .cx-js .cx-reveal{opacity:1;transform:none}
}
