/*
 * CentriWeb design system v7 (28 Oct 2026).
 * General Sans (display) + Switzer (body), self-hosted (fonts.css). Warm off-white page, ink type, deep night-navy
 * panels that match the hero video, one blue accent. Depth comes from layering: inset panels, floating glass cards,
 * overlapping media, stacking cards. Every class is prefixed cw-, state classes too (cw-on, cw-open, cw-solid, cw-in).
 *
 * Layout rule: every left edge lines up with --cw-edge (logo, hero copy, section copy, footer).
 */

:root {
  /* Colour */
  --cw-page: #F4F3EF; --cw-white: #FFFFFF; --cw-sand: #EAE8E1;
  --cw-ink: #0B0C0E; --cw-body: #55575E; --cw-muted: #6B6E75; /* 4.6:1 on page */ --cw-line: #DCDAD3;
  --cw-night: #070B16; --cw-night-2: #0E1424; --cw-line-d: rgba(255,255,255,.12); --cw-on-dark: #A9AEBB;
  --cw-blue: #2F7FD4; --cw-blue-soft: #6FA8E8;

  /* Type */
  --cw-display: "General Sans", "Helvetica Neue", Arial, sans-serif;
  --cw-sans: "Switzer", "Helvetica Neue", Arial, sans-serif;
  --cw-fs-xl: clamp(48px, 7.4vw, 128px);  /* hero */
  --cw-fs-h1: clamp(42px, 5.6vw, 96px);   /* inner page hero */
  --cw-fs-h2: clamp(34px, 4.2vw, 66px);
  --cw-fs-h3: clamp(22px, 1.9vw, 28px);
  --cw-fs-lead: clamp(17px, 1.35vw, 20px);

  /* Space */
  --cw-container: 1320px;
  --cw-pad: clamp(20px, 4.6vw, 72px);
  --cw-edge: max(var(--cw-pad), calc((100vw - var(--cw-container)) / 2));
  --cw-sec: clamp(64px, 6.6vw, 108px);
  --cw-sec-s: clamp(64px, 7vw, 104px);
  --cw-gap: 10px;
  --cw-r: 28px; --cw-r-m: 20px; --cw-r-s: 14px;

  /* Depth */
  --cw-sh-1: 0 1px 1px rgba(11,12,14,.04), 0 6px 20px -10px rgba(11,12,14,.14);
  --cw-sh-2: 0 2px 4px rgba(11,12,14,.04), 0 24px 60px -24px rgba(11,12,14,.28);
  --cw-sh-3: 0 40px 100px -30px rgba(7,11,22,.55);
  --cw-glass: rgba(255,255,255,.07); --cw-glass-line: rgba(255,255,255,.14);

  --cw-ease: cubic-bezier(.2,.7,.2,1);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { font-synthesis: none; margin: 0; background: var(--cw-page); color: var(--cw-body); font: 400 16.5px/1.65 var(--cw-sans); -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; text-rendering: optimizeLegibility; }
a { color: inherit; text-decoration: none; }
img, video { display: block; max-width: 100%; }
h1, h2, h3, h4, h5 { font-family: var(--cw-display); color: var(--cw-ink); margin: 0; font-weight: 500; letter-spacing: -0.035em; }
p { margin: 0; }
::selection { background: var(--cw-ink); color: #fff; }
:focus-visible { outline: 2px solid var(--cw-blue); outline-offset: 3px; border-radius: 4px; }
main#content { display: block; }
button { font-family: inherit; }

.cw-wrap { max-width: calc(var(--cw-container) + 2 * var(--cw-pad)); margin: 0 auto; padding-inline: var(--cw-pad); }
.cw-sec { padding-block: var(--cw-sec); position: relative; }
.cw-sec-s { padding-block: var(--cw-sec-s); position: relative; }
.cw-head { display: grid; grid-template-columns: 1fr 2.4fr; gap: 40px; align-items: start; margin-bottom: clamp(44px, 5.4vw, 80px); }
.cw-head h2 { font-size: var(--cw-fs-h2); line-height: 1; }
.cw-head h2 span, h2 span, .cw-soft { color: #85878E; } /* 3.2:1, large text */
.cw-head p { margin-top: 22px; max-width: 36em; font-size: var(--cw-fs-lead); line-height: 1.55; }
.cw-lead { font-size: var(--cw-fs-lead); line-height: 1.55; }

/* Section label: (02) Services */
.cw-idx { display: inline-flex; align-items: center; gap: 10px; font: 500 13px/1 var(--cw-sans); color: var(--cw-ink); }
.cw-idx { align-self: start; color: var(--cw-body); }
.cw-idx b, .cw-idx::before { display: none; } /* no (01) numerals: Jerald's AI tell */
.cw-dark .cw-idx, .cw-night .cw-idx { color: #fff; }

/* Buttons. Primary = pill with arrow chip. Secondary = underlined text link. Ghost only on dark media. */
.cw-btn { display: inline-flex; align-items: center; gap: 14px; height: 54px; padding: 0 7px 0 24px; border-radius: 999px; border: 0; font: 500 15px/1 var(--cw-display); letter-spacing: -0.01em; cursor: pointer; white-space: nowrap; transition: background-color .35s var(--cw-ease), color .35s var(--cw-ease), box-shadow .35s var(--cw-ease), transform .35s var(--cw-ease); }
.cw-btn i { width: 40px; height: 40px; border-radius: 50%; display: grid; place-items: center; font-style: normal; font-size: 16px; transition: transform .45s var(--cw-ease), background-color .35s; }
.cw-btn:hover i { transform: rotate(-45deg); }
.cw-btn:active { transform: scale(.98); }
.cw-btn-ink { background: var(--cw-ink); color: #fff; box-shadow: 0 10px 30px -12px rgba(11,12,14,.5); } .cw-btn-ink i { background: #fff; color: var(--cw-ink); }
.cw-btn-ink:hover { background: #24262B; }
.cw-btn-white { background: #fff; color: var(--cw-ink); box-shadow: 0 10px 30px -12px rgba(0,0,0,.45); } .cw-btn-white i { background: var(--cw-ink); color: #fff; }
.cw-btn-white:hover { background: #F0EFEB; }
.cw-btn-blue { background: #2A75C6; color: #fff; padding: 0 26px; font: 600 15px/1 var(--cw-sans); letter-spacing: 0; box-shadow: 0 10px 30px -12px rgba(47,127,212,.6); } /* white on it 4.7:1 */
.cw-btn-blue:hover { background: #1F5FA8; }
.cw-btn-blue i { display: none; }
.cw-btn-ghost { height: 54px; padding: 0 24px; color: #fff; background: var(--cw-glass); border: 1px solid rgba(255,255,255,.24); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); }
.cw-btn-ghost:hover { background: rgba(255,255,255,.14); border-color: rgba(255,255,255,.45); }
.cw-link { position: relative; display: inline-flex; align-items: center; gap: 8px; font: 500 15px/1.2 var(--cw-display); color: var(--cw-ink); padding-bottom: 4px; }
.cw-link::after { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 1px; background: currentColor; transform-origin: right; transition: transform .5s var(--cw-ease); }
.cw-link:hover::after { transform: scaleX(0); transform-origin: left; }
.cw-link::before { content: "\2192"; order: 2; transition: transform .35s var(--cw-ease); }
.cw-link:hover::before { transform: translateX(3px); }
.cw-dark .cw-link, .cw-night .cw-link { color: #fff; }
.cw-ctas { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 22px; }

/* Glass card: floating UI used for layering over media */
.cw-glass { background: rgba(14,20,36,.5); border: 1px solid var(--cw-glass-line); -webkit-backdrop-filter: blur(20px) saturate(140%); backdrop-filter: blur(20px) saturate(140%); border-radius: 18px; color: #fff; box-shadow: var(--cw-sh-3); }
.cw-chipcard { display: flex; align-items: center; gap: 12px; padding: 12px 16px 12px 12px; font-size: 13.5px; line-height: 1.35; }
.cw-chipcard .cw-ico { width: 36px; height: 36px; flex: none; border-radius: 11px; display: grid; place-items: center; background: rgba(255,255,255,.1); }
.cw-chipcard .cw-ico svg { width: 17px; height: 17px; }
.cw-chipcard b { display: block; font: 500 14px/1.3 var(--cw-display); }
.cw-chipcard small { color: rgba(255,255,255,.6); font-size: 12.5px; }
.cw-chipcard .cw-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--cw-blue); margin-left: 6px; flex: none; }
.cw-chipcard--light { background: rgba(255,255,255,.86); color: var(--cw-ink); border-color: rgba(255,255,255,.9); box-shadow: var(--cw-sh-2); }
.cw-chipcard--light small { color: var(--cw-muted); } .cw-chipcard--light .cw-ico { background: var(--cw-page); }

/* ───────── Header ───────── */
.cw-header { position: fixed; inset: 0 0 auto 0; z-index: 60; padding: 14px max(10px, calc(var(--cw-edge) - 18px)); pointer-events: none; transition: transform .55s var(--cw-ease); }
.cw-header.cw-hide { transform: translateY(-120%); }
body:has(.cw-hl-shell--framed) .cw-header:not(.cw-solid) { padding-top: 32px; padding-inline: max(28px, calc(var(--cw-edge) - 18px)); }
@media (max-width: 900px) { body:has(.cw-hl-shell--framed) .cw-header:not(.cw-solid) { padding-top: 14px; padding-inline: 10px; } }
.cw-header { transition: transform .55s var(--cw-ease), padding .45s var(--cw-ease); }
.cw-bar { pointer-events: auto; position: relative; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; height: 64px; padding: 0 8px 0 18px; border-radius: 999px; background: rgba(9,13,24,.32); border: 1px solid rgba(255,255,255,.1); -webkit-backdrop-filter: blur(20px) saturate(150%); backdrop-filter: blur(20px) saturate(150%); transition: background-color .45s var(--cw-ease), border-color .45s var(--cw-ease), box-shadow .45s var(--cw-ease); }
.cw-header.cw-solid .cw-bar, .cw-header.cw-menu-open .cw-bar { background: rgba(255,255,255,.88); border-color: rgba(11,12,14,.06); box-shadow: 0 12px 40px -22px rgba(11,12,14,.35); }
.cw-mark { justify-self: start; display: inline-flex; align-items: center; gap: 10px; font: 600 19px/1 var(--cw-display); letter-spacing: -0.03em; color: #fff; transition: color .45s; }
.cw-mark img { width: 30px; height: 30px; }
.cw-mark .cw-lw { display: none; }
.cw-header.cw-solid .cw-mark, .cw-header.cw-menu-open .cw-mark { color: var(--cw-ink); }
.cw-header.cw-solid .cw-mark .cw-lw, .cw-header.cw-menu-open .cw-mark .cw-lw { display: block; }
.cw-header.cw-solid .cw-mark .cw-lb, .cw-header.cw-menu-open .cw-mark .cw-lb { display: none; }
.cw-nav { display: flex; gap: 2px; }
.cw-nav > a, .cw-nav > button { display: inline-flex; align-items: center; gap: 7px; height: 42px; padding: 0 15px; border-radius: 999px; background: none; border: 0; font: 500 14.5px/1 var(--cw-display); color: rgba(255,255,255,.8); cursor: pointer; transition: color .3s, background-color .3s; }
.cw-nav > a:hover, .cw-nav > button:hover, .cw-nav > button[aria-expanded="true"], .cw-nav > a[aria-current="page"] { color: #fff; background: rgba(255,255,255,.1); }
.cw-header.cw-solid .cw-nav > a, .cw-header.cw-solid .cw-nav > button, .cw-header.cw-menu-open .cw-nav > a, .cw-header.cw-menu-open .cw-nav > button { color: var(--cw-body); }
.cw-header.cw-solid .cw-nav > a:hover, .cw-header.cw-solid .cw-nav > button:hover, .cw-header.cw-menu-open .cw-nav > button[aria-expanded="true"], .cw-header.cw-solid .cw-nav > a[aria-current="page"] { color: var(--cw-ink); background: rgba(11,12,14,.05); }
.cw-nav svg { width: 10px; height: 10px; transition: transform .35s var(--cw-ease); }
.cw-nav button[aria-expanded="true"] svg { transform: rotate(180deg); }
.cw-bar-end { justify-self: end; display: flex; align-items: center; gap: 6px; }
.cw-bar-end .cw-login { font: 500 14px/1 var(--cw-display); color: rgba(255,255,255,.78); padding: 0 14px; transition: color .3s; }
.cw-header.cw-solid .cw-bar-end .cw-login, .cw-header.cw-menu-open .cw-bar-end .cw-login { color: var(--cw-body); }
.cw-bar .cw-btn { height: 48px; padding: 0 5px 0 20px; font-size: 14.5px; box-shadow: none; }
.cw-bar .cw-btn i { width: 38px; height: 38px; }
.cw-header.cw-solid .cw-bar .cw-btn-white, .cw-header.cw-menu-open .cw-bar .cw-btn-white { background: var(--cw-ink); color: #fff; }
.cw-header.cw-solid .cw-bar .cw-btn-white i, .cw-header.cw-menu-open .cw-bar .cw-btn-white i { background: #fff; color: var(--cw-ink); }
.cw-burger { display: none; width: 48px; height: 48px; border-radius: 50%; border: 0; background: #fff; cursor: pointer; flex-direction: column; justify-content: center; gap: 4px; }
.cw-burger span { display: block; width: 18px; height: 1.5px; background: var(--cw-ink); margin: 0 auto; transition: transform .4s var(--cw-ease); }
.cw-header.cw-solid .cw-burger, .cw-header.cw-menu-open .cw-burger { background: var(--cw-ink); }
.cw-header.cw-solid .cw-burger span, .cw-header.cw-menu-open .cw-burger span { background: #fff; }
.cw-header.cw-mob .cw-burger span:first-child { transform: translateY(2.75px) rotate(45deg); }
.cw-header.cw-mob .cw-burger span:last-child { transform: translateY(-2.75px) rotate(-45deg); }

/* Mega menus */
.cw-mega { pointer-events: auto; position: absolute; left: max(10px, calc(var(--cw-edge) - 18px)); right: max(10px, calc(var(--cw-edge) - 18px)); top: calc(100% - 4px); background: #fff; border-radius: 24px; box-shadow: 0 40px 100px -30px rgba(7,11,22,.4); padding: 10px; display: grid; grid-template-columns: 1fr 360px; gap: 10px; opacity: 0; visibility: hidden; transform: translateY(-10px) scale(.99); transform-origin: top center; transition: opacity .35s var(--cw-ease), transform .45s var(--cw-ease), visibility .35s; }
.cw-mega.cw-on { opacity: 1; visibility: visible; transform: none; transition: opacity .35s var(--cw-ease), transform .45s var(--cw-ease), visibility 0s; } /* visible at once, so focus can move in */
.cw-mega-list { display: grid; grid-template-columns: 1fr 1fr; gap: 2px; padding: 20px 14px 14px; align-content: start; }
.cw-mega-list .cw-mega-h, .cw-mega-prod .cw-mega-h { grid-column: 1 / -1; margin: 0 0 10px; padding: 0 14px; font: 500 12.5px/1 var(--cw-sans); color: var(--cw-muted); }
.cw-mega-list a { display: grid; grid-template-columns: 30px 1fr; gap: 3px 8px; padding: 14px; border-radius: 16px; transition: background-color .25s; }
.cw-mega-list a:hover { background: var(--cw-page); }
.cw-mega-list a span { grid-row: span 2; font-size: 12px; color: var(--cw-muted); padding-top: 3px; font-variant-numeric: tabular-nums; }
.cw-mega-list a b { font: 500 16px/1.2 var(--cw-display); letter-spacing: -0.02em; color: var(--cw-ink); }
.cw-mega-list a em { font-style: normal; font-size: 13.5px; line-height: 1.45; color: var(--cw-body); }
.cw-mega-list a.cw-all { grid-column: 1 / -1; display: flex; justify-content: space-between; margin-top: 6px; border-top: 1px solid var(--cw-line); border-radius: 0 0 16px 16px; font: 500 14.5px/1 var(--cw-display); color: var(--cw-ink); }
.cw-mega-feat { position: relative; border-radius: 18px; overflow: hidden; background: radial-gradient(90% 70% at 70% 0%, rgba(47,127,212,.38), transparent 70%), var(--cw-night); color: #fff; padding: 28px; display: flex; flex-direction: column; justify-content: flex-end; min-height: 340px; isolation: isolate; }
.cw-mega-vis { position: absolute; z-index: -1; left: 24px; right: -40px; top: 22px; transform: rotate(-2deg); opacity: .96; pointer-events: none; }
.cw-mega-feat::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7,11,22,0) 12%, rgba(7,11,22,.96) 46%); }
.cw-mega-vis { bottom: 50%; overflow: hidden; }
.cw-mega-feat b { font: 500 26px/1.05 var(--cw-display); letter-spacing: -0.035em; margin-bottom: 10px; display: block; }
.cw-mega-feat p { margin: 0 0 20px; font-size: 14px; color: rgba(255,255,255,.75); }
.cw-mega-feat .cw-btn { align-self: flex-start; }
.cw-mega-prod { grid-template-columns: 1fr 1fr 1fr; }
.cw-mega-prod .cw-pc { border-radius: 18px; padding: 26px; display: flex; flex-direction: column; min-height: 240px; transition: transform .45s var(--cw-ease), box-shadow .45s var(--cw-ease); }
.cw-mega-prod .cw-pc:hover { transform: translateY(-3px); box-shadow: var(--cw-sh-2); }
.cw-mega-prod .cw-pc.cw-d { background: var(--cw-night-2); color: var(--cw-on-dark); }
.cw-mega-prod .cw-pc.cw-l { background: var(--cw-page); }
.cw-mega-prod .cw-pc small { font-size: 12.5px; opacity: .85; }
.cw-mega-prod .cw-pc b { font: 500 34px/1 var(--cw-display); letter-spacing: -0.04em; margin: auto 0 10px; color: var(--cw-ink); }
.cw-mega-prod .cw-pc.cw-d b { color: #fff; }
.cw-mega-prod .cw-pc span { font-size: 14px; }
.cw-scrim { position: fixed; inset: 0; z-index: 50; background: rgba(7,11,22,.32); -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px); opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s; }
.cw-scrim.cw-on { opacity: 1; visibility: visible; }

/* Phone menu */
.cw-mnav { position: fixed; inset: 0; z-index: 55; background: var(--cw-night); color: #fff; padding: 104px var(--cw-pad) 24px; display: flex; flex-direction: column; overflow-y: auto; opacity: 0; visibility: hidden; transition: opacity .4s var(--cw-ease), visibility .4s; }
.cw-mnav.cw-on { opacity: 1; visibility: visible; }
.cw-mnav a.cw-big, .cw-mnav summary { display: flex; justify-content: space-between; align-items: center; padding: 18px 0; border-bottom: 1px solid var(--cw-line-d); font: 500 30px/1 var(--cw-display); letter-spacing: -0.035em; cursor: pointer; list-style: none; }
.cw-mnav summary::-webkit-details-marker { display: none; }
.cw-mnav summary::after { content: "+"; font: 300 26px/1 var(--cw-sans); color: #6B6E75; transition: transform .35s var(--cw-ease); }
.cw-mnav details[open] summary::after { transform: rotate(45deg); }
.cw-mnav details div { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; padding: 14px 0 20px; }
.cw-mnav details div a { color: var(--cw-on-dark); font-size: 16px; padding: 6px 0; }
.cw-mnav .cw-btn { margin-top: auto; justify-content: space-between; width: 100%; height: 60px; }
.cw-mnav .cw-meta { margin-top: 16px; font-size: 13px; color: #8B91A2; }

/* ───────── Home hero ───────── */
.cw-hero-shell { padding: 0; }
.cw-hero { position: relative; height: 100svh; min-height: 720px; max-height: 1080px; border-radius: 0; overflow: hidden; color: #fff; background: var(--cw-night) center / cover no-repeat; isolation: isolate; }
.cw-hero video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transform: scale(1.08); animation: cw-settle 3.2s var(--cw-ease) forwards; }
@keyframes cw-settle { to { transform: scale(1); } }
.cw-hero::before, .cw-phero::before, .cw-cta::before { content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none; background:
  radial-gradient(110% 85% at 80% 40%, rgba(7,11,22,0) 0%, rgba(7,11,22,.4) 60%, rgba(7,11,22,.88) 100%),
  linear-gradient(180deg, rgba(7,11,22,.6) 0%, rgba(7,11,22,0) 24%, rgba(7,11,22,0) 48%, rgba(7,11,22,.92) 100%),
  linear-gradient(90deg, rgba(7,11,22,.75) 0%, rgba(7,11,22,.15) 58%, rgba(7,11,22,0) 100%); }
.cw-hero::after, .cw-phero::after, .cw-cta::after { content: ""; position: absolute; inset: 0; z-index: -1; opacity: .08; mix-blend-mode: overlay; pointer-events: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E"); }
.cw-hero-in { position: relative; height: 100%; display: flex; flex-direction: column; padding: 140px var(--cw-edge) 0; }
.cw-eyebrow { display: inline-flex; align-items: center; gap: 12px; font: 500 13.5px/1.3 var(--cw-sans); color: rgba(255,255,255,.75); }
.cw-eyebrow::before { display: none; }
.cw-hero h1 { margin-top: auto; color: #fff; font-size: var(--cw-fs-xl); line-height: .92; letter-spacing: -0.05em; max-width: 11.5ch; }
.cw-hero .cw-ln { display: block; overflow: hidden; padding-bottom: .08em; margin-bottom: -.08em; }
.cw-hero .cw-ln > span { display: block; transform: translateY(108%); animation: cw-rise 1.25s var(--cw-ease) forwards; }
.cw-hero .cw-ln:nth-child(2) > span { animation-delay: .1s; } .cw-hero .cw-ln:nth-child(3) > span { animation-delay: .2s; }
.cw-hero h1 .cw-soft { color: rgba(255,255,255,.48); }
@keyframes cw-rise { to { transform: none; } }
@keyframes cw-fade { from { opacity: 0; transform: translateY(12px); } to { opacity: 1; transform: none; } }
.cw-hero-row { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-top: clamp(30px, 3.4vw, 48px); opacity: 0; animation: cw-fade 1s .55s var(--cw-ease) forwards; }
.cw-hero-row p { max-width: 32em; font-size: var(--cw-fs-lead); line-height: 1.55; color: rgba(255,255,255,.72); }
.cw-hero-foot { display: grid; grid-template-columns: repeat(4, 1fr) auto; margin-top: clamp(40px, 4.6vw, 68px); border-top: 1px solid rgba(255,255,255,.14); opacity: 0; animation: cw-fade 1s .8s var(--cw-ease) forwards; }
.cw-hero-foot a { position: relative; display: flex; align-items: baseline; gap: 12px; padding: 24px 22px 28px 0; font: 500 15px/1.3 var(--cw-display); color: rgba(255,255,255,.85); transition: color .3s; }
.cw-hero-foot a::before { content: ""; position: absolute; left: 0; right: 22px; top: -1px; height: 1px; background: #fff; transform: scaleX(0); transform-origin: left; transition: transform .6s var(--cw-ease); }
.cw-hero-foot a:hover::before { transform: scaleX(1); }
.cw-hero-foot a:hover { color: #fff; }
.cw-hero-foot a small { font: 400 11.5px/1 var(--cw-sans); color: rgba(255,255,255,.42); font-variant-numeric: tabular-nums; }
.cw-hero-foot a i { margin-left: auto; font-style: normal; opacity: .4; transition: transform .35s var(--cw-ease), opacity .3s; }
.cw-hero-foot a:hover i { opacity: 1; transform: translateX(3px); }
.cw-vctl { align-self: center; width: 42px; height: 42px; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); background: transparent; color: #fff; cursor: pointer; display: grid; place-items: center; transition: background-color .3s; }
.cw-vctl:hover { background: rgba(255,255,255,.1); }
.cw-vctl svg { width: 12px; height: 12px; }

/* Floating UI cards over the hero video: layered at three depths, drift slowly, follow the pointer a little */
.cw-float { position: absolute; z-index: 1; right: var(--cw-edge); top: 22%; width: min(380px, 30vw); height: 46%; pointer-events: none; }
.cw-float > * { position: absolute; opacity: 0; animation: cw-fade 1s var(--cw-ease) forwards, cw-drift 9s ease-in-out infinite alternate; will-change: transform; }
.cw-float > :nth-child(1) { top: 0; right: 8%; animation-delay: 1s, 1s; }
.cw-float > :nth-child(2) { top: 34%; right: 38%; animation-delay: 1.2s, 1.2s; animation-duration: 1s, 11s; }
.cw-float > :nth-child(3) { top: 66%; right: 0; animation-delay: 1.4s, 1.4s; animation-duration: 1s, 10s; }
@keyframes cw-drift { from { translate: 0 0; } to { translate: 0 -12px; } }

/* ───────── Inner page hero ───────── */
.cw-phero-shell { padding: 0; }
.cw-phero { position: relative; min-height: min(82svh, 860px); border-radius: 0; overflow: hidden; color: #fff; background: var(--cw-night) center / cover no-repeat; isolation: isolate; display: flex; }
.cw-phero > video, .cw-phero > img.cw-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.cw-phero-in { position: relative; width: 100%; display: flex; flex-direction: column; padding: 150px var(--cw-edge) clamp(36px, 4.4vw, 64px); }
.cw-crumbs { display: flex; flex-wrap: wrap; gap: 8px; font-size: 13px; color: rgba(255,255,255,.55); margin-bottom: 22px; }
.cw-crumbs a:hover { color: #fff; }
.cw-crumbs span[aria-current] { color: rgba(255,255,255,.9); }
.cw-phero h1 { margin-top: auto; color: #fff; font-size: var(--cw-fs-h1); line-height: .95; letter-spacing: -0.045em; max-width: 14ch; animation: cw-nudge 1s var(--cw-ease) both; }
@keyframes cw-nudge { from { transform: translateY(12px); } to { transform: none; } } /* never hides the LCP heading */
.cw-phero h1 span { color: rgba(255,255,255,.48); }
.cw-phero-row { display: flex; justify-content: space-between; align-items: end; gap: 40px; margin-top: clamp(26px, 3vw, 40px); animation: cw-fade 1s .2s var(--cw-ease) both; }
.cw-phero-row p { max-width: 34em; font-size: var(--cw-fs-lead); line-height: 1.55; color: rgba(255,255,255,.74); }
.cw-phero .cw-float { top: 26%; height: 40%; }
.cw-phero--light { background: var(--cw-white); color: var(--cw-ink); min-height: 0; }
.cw-phero--light::before, .cw-phero--light::after { display: none; }
.cw-phero--light h1 { color: var(--cw-ink); } .cw-phero--light h1 span { color: #85878E; }
.cw-phero--light .cw-phero-row p { color: var(--cw-body); }
.cw-phero--light .cw-crumbs { color: var(--cw-muted); } .cw-phero--light .cw-crumbs a:hover, .cw-phero--light .cw-crumbs span[aria-current] { color: var(--cw-ink); }
.cw-phero--light .cw-phero-in { padding-top: 160px; }

/* Marquee */
.cw-marquee { overflow: hidden; padding: 26px 0; border-bottom: 1px solid var(--cw-line); -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.cw-track { display: flex; width: max-content; animation: cw-slide 50s linear infinite; }
.cw-track span { display: inline-flex; align-items: center; gap: 32px; padding-right: 32px; font: 500 clamp(22px, 2.3vw, 34px)/1 var(--cw-display); letter-spacing: -0.03em; color: var(--cw-ink); white-space: nowrap; }
.cw-track span::after { content: ""; width: 6px; height: 6px; border-radius: 50%; background: var(--cw-blue); }
@keyframes cw-slide { to { transform: translateX(-50%); } }

/* Intro: statement + layered media */
.cw-intro { display: grid; grid-template-columns: 1fr 2.4fr; gap: 40px; }
.cw-intro .cw-big { font: 500 clamp(28px, 3.2vw, 50px)/1.12 var(--cw-display); letter-spacing: -0.035em; color: var(--cw-ink); }
.cw-intro .cw-big span { color: #A6A8AE; }
.cw-nums { grid-column: 2; display: grid; grid-template-columns: repeat(4, 1fr); margin-top: clamp(48px, 6vw, 88px); border-top: 1px solid var(--cw-line); }
.cw-nums div { padding: 24px 20px 0 0; }
.cw-nums b { display: block; font: 400 clamp(48px, 5vw, 80px)/1 var(--cw-display); letter-spacing: -0.06em; color: var(--cw-ink); margin-bottom: 12px; }
.cw-nums span { font-size: 14px; }
.cw-collage { grid-column: 1 / -1; position: relative; display: grid; grid-template-columns: 1.55fr 1fr; gap: var(--cw-gap); margin-top: clamp(56px, 7vw, 104px); }
.cw-collage figure { margin: 0; border-radius: var(--cw-r-m); overflow: hidden; position: relative; background: var(--cw-sand); }
.cw-collage figure img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.6s var(--cw-ease); }
.cw-collage figure:hover img { transform: scale(1.03); }
.cw-collage figure:first-child { aspect-ratio: 16 / 10; }
.cw-collage figure:nth-child(2) { aspect-ratio: auto; }
.cw-collage .cw-chipcard { position: absolute; left: clamp(16px, 3vw, 40px); bottom: clamp(16px, 3vw, 40px); z-index: 2; }
.cw-collage .cw-chipcard + .cw-chipcard { left: auto; right: calc(40% + clamp(16px, 3vw, 40px)); bottom: auto; top: clamp(16px, 3vw, 40px); }

/* Services (dark accordion) */
.cw-dark-shell { padding: 0; }
.cw-dark, .cw-night { background: var(--cw-night); color: var(--cw-on-dark); border-radius: 0; position: relative; overflow: hidden; isolation: isolate; }
.cw-dark::before { content: ""; position: absolute; z-index: -1; width: 70vw; height: 70vw; right: -25vw; top: -35vw; border-radius: 50%; background: radial-gradient(circle, rgba(47,127,212,.22), rgba(47,127,212,0) 65%); pointer-events: none; }
.cw-dark h2, .cw-dark h3, .cw-night h2, .cw-night h3 { color: #fff; }
.cw-dark h2 span, .cw-night h2 span { color: #6C7183; }
.cw-svc-top { display: grid; grid-template-columns: 1fr 2.4fr; gap: 40px; margin-bottom: clamp(44px, 5vw, 80px); }
.cw-svc-top h2 { font-size: var(--cw-fs-h2); line-height: 1; }
.cw-acc { border-top: 1px solid var(--cw-line-d); }
.cw-acc-item { border-bottom: 1px solid var(--cw-line-d); }
.cw-acc-btn { width: 100%; background: none; border: 0; padding: 28px 0; cursor: pointer; display: grid; grid-template-columns: 1fr 2.4fr auto; gap: 40px; align-items: center; text-align: left; color: #C9CDD6; transition: color .3s; font: inherit; }
.cw-acc-btn .cw-n { font: 400 13px/1 var(--cw-sans); color: #8B91A2; font-variant-numeric: tabular-nums; }
.cw-acc-btn .cw-t { font: 500 clamp(22px, 2.3vw, 36px)/1.1 var(--cw-display); letter-spacing: -0.03em; transition: transform .5s var(--cw-ease); }
.cw-acc-btn:hover .cw-t { transform: translateX(8px); }
.cw-acc-btn .cw-pm { width: 44px; height: 44px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); display: grid; place-items: center; color: #fff; transition: transform .45s var(--cw-ease), background-color .3s, border-color .3s, color .3s; }
.cw-acc-btn:hover, .cw-acc-item.cw-open .cw-acc-btn { color: #fff; }
.cw-acc-item.cw-open .cw-pm { transform: rotate(45deg); background: #fff; color: var(--cw-ink); border-color: #fff; }
.cw-acc-body { display: grid; grid-template-rows: 0fr; transition: grid-template-rows .6s var(--cw-ease); }
.cw-acc-item.cw-open .cw-acc-body { grid-template-rows: 1fr; }
.cw-acc-inner { overflow: hidden; }
.cw-acc-grid { display: grid; grid-template-columns: 1fr 1.2fr 1.2fr; gap: 40px; padding: 4px 0 40px; }
.cw-acc-grid .cw-ph { grid-column: 2; border-radius: var(--cw-r-s); overflow: hidden; aspect-ratio: 4 / 3; box-shadow: var(--cw-sh-3); }
.cw-acc-grid .cw-ph img { width: 100%; height: 100%; object-fit: cover; }
.cw-acc-grid p { margin: 0 0 18px; font-size: 16px; color: #B8BDC8; max-width: 30em; }
.cw-acc-grid ul { list-style: none; margin: 0 0 28px; padding: 0; }
.cw-acc-grid li { display: flex; gap: 10px; padding: 10px 0; border-top: 1px solid var(--cw-line-d); color: #E4E6EB; font-size: 15px; }
.cw-acc-grid li::before { content: ""; width: 5px; height: 5px; border-radius: 50%; background: var(--cw-blue-soft); margin-top: 9px; flex: none; }
.cw-acc-cta { display: flex; align-items: center; gap: 24px; flex-wrap: wrap; }

/* Walk-through */
.cw-walk { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(40px, 6vw, 112px); align-items: start; }
.cw-walk .cw-ph { position: sticky; top: 104px; border-radius: var(--cw-r-m); overflow: hidden; aspect-ratio: 4 / 5; background: var(--cw-sand); box-shadow: var(--cw-sh-2); }
.cw-walk .cw-ph img { width: 100%; height: 100%; object-fit: cover; transition: opacity .45s var(--cw-ease), transform 1.4s var(--cw-ease); }
.cw-walk .cw-ph .cw-chipcard { position: absolute; left: 18px; right: 18px; bottom: 18px; }
.cw-walk h2 { font-size: var(--cw-fs-h2); line-height: 1.02; margin: 20px 0 32px; }
.cw-walk h2 span { color: #A6A8AE; }
.cw-pills { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 36px; }
.cw-pill { font: 500 14px/1 var(--cw-display); color: var(--cw-ink); background: transparent; border: 1px solid var(--cw-line); border-radius: 999px; padding: 11px 16px; cursor: pointer; transition: background-color .3s, color .3s, border-color .3s; }
.cw-pill:hover { border-color: var(--cw-ink); }
.cw-pill[aria-pressed="true"] { background: var(--cw-ink); color: #fff; border-color: var(--cw-ink); }
.cw-walk ol { list-style: none; margin: 0; padding: 0; counter-reset: s; border-top: 1px solid var(--cw-line); }
.cw-walk li { counter-increment: s; display: grid; grid-template-columns: 48px 1fr auto; gap: 12px; align-items: baseline; padding: 20px 0; border-bottom: 1px solid var(--cw-line); color: var(--cw-ink); font-size: 17px; animation: cw-fade .6s var(--cw-ease) both; }
.cw-walk li:nth-child(2) { animation-delay: .05s; } .cw-walk li:nth-child(3) { animation-delay: .1s; } .cw-walk li:nth-child(4) { animation-delay: .15s; } .cw-walk li:nth-child(5) { animation-delay: .2s; }
.cw-walk li::before { content: "0" counter(s); font-size: 13px; color: var(--cw-muted); }
.cw-walk li em { font-style: normal; font-size: 12.5px; color: var(--cw-muted); border: 1px solid var(--cw-line); border-radius: 999px; padding: 4px 10px; }
.cw-walk-cta { display: flex; align-items: center; gap: 18px; margin-top: 36px; font-size: 14px; color: var(--cw-muted); flex-wrap: wrap; }

/* Products */
.cw-prods { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 0; }
.cw-prod { border-radius: 0; padding: clamp(48px, 5vw, 88px) var(--cw-pad); min-height: 600px; display: flex; flex-direction: column; overflow: hidden; position: relative; transition: transform .6s var(--cw-ease); }
.cw-prod.cw-d { background: var(--cw-night); color: var(--cw-on-dark); } .cw-prod.cw-d h3 { color: #fff; }
.cw-prod.cw-l { background: var(--cw-white); }
.cw-prods > :first-child .cw-prod, .cw-prods > .cw-prod:first-child { padding-left: var(--cw-edge); }
.cw-prods > :last-child .cw-prod, .cw-prods > .cw-prod:last-child { padding-right: var(--cw-edge); }
.cw-prod .cw-top { display: flex; justify-content: space-between; align-items: center; font-size: 13.5px; }
.cw-prod h3 { font-size: clamp(46px, 5.2vw, 80px); line-height: .95; letter-spacing: -0.045em; margin: 44px 0 16px; }
.cw-prod p { margin: 0 0 28px; max-width: 24em; font-size: 16.5px; }
.cw-prod.cw-d .cw-link { color: #fff; }
.cw-prod .cw-shot { margin-top: auto; padding-top: 48px; transition: transform .7s var(--cw-ease); }
.cw-prod:hover .cw-shot { transform: translateY(-8px); }
.cw-prod .cw-shot .cw-v { max-width: 560px; }
.cw-prod.cw-l .cw-shot .cw-v { box-shadow: 0 1px 2px rgba(5,7,13,.05), 0 30px 60px -30px rgba(5,7,13,.25); }
.cw-prods-head { margin-bottom: clamp(44px, 5vw, 72px); padding-top: var(--cw-sec); }
.cw-meter { height: 4px; border-radius: 2px; background: rgba(128,128,128,.2); margin-top: 10px; } .cw-meter i { display: block; height: 100%; width: 72%; background: var(--cw-ink); border-radius: 2px; }

/* Process: cards that stack as you scroll */
.cw-proc-top { display: grid; grid-template-columns: 1fr 2.4fr; gap: 40px; }
.cw-proc-top h2 { font-size: var(--cw-fs-h2); line-height: 1; margin-bottom: clamp(40px, 5vw, 72px); }
.cw-steps { grid-column: 2; display: grid; gap: 14px; }
.cw-step { position: sticky; top: calc(108px + var(--i, 0) * 18px); display: grid; grid-template-columns: 110px 1fr 1.1fr; gap: 28px; align-items: start; padding: clamp(28px, 3.4vw, 44px); border-radius: var(--cw-r-m); background: var(--cw-white); border: 1px solid rgba(11,12,14,.06); box-shadow: var(--cw-sh-2); min-height: 220px; }
.cw-step:nth-child(even) { background: #FBFAF7; }
.cw-step:last-child { background: var(--cw-night); border-color: transparent; color: var(--cw-on-dark); } .cw-step:last-child h3 { color: #fff; }
.cw-step > span { font: 500 13px/1 var(--cw-sans); letter-spacing: 0; color: var(--cw-muted); padding-top: 8px; font-variant-numeric: tabular-nums; }
.cw-step:last-child > span { color: #3A4256; }
.cw-step h3 { font-size: clamp(26px, 2.4vw, 36px); letter-spacing: -0.035em; line-height: 1.05; }
.cw-step p { font-size: 16px; max-width: 28em; }
.cw-proc-head { margin-bottom: clamp(40px, 5vw, 72px); } .cw-proc-head h2 { margin-bottom: 0; }
.cw-proc-intro { margin-top: 22px; max-width: 34em; font-size: 17px; line-height: 1.6; color: #4A4D55; }
.cw-step { grid-template-columns: 80px minmax(0, 1fr) minmax(0, 1.3fr); min-height: 0; }
.cw-step:last-child > span { color: #8B91A2; }
.cw-step ul { list-style: none; margin: 18px 0 0; padding: 0; display: grid; gap: 0; font-size: 14.5px; }
.cw-step li { padding: 9px 0 9px 22px; border-top: 1px solid var(--cw-line); position: relative; color: var(--cw-ink); }
.cw-step li::before { content: ''; position: absolute; left: 2px; top: 16px; width: 7px; height: 7px; border-radius: 50%; background: var(--cw-blue); }
.cw-step:last-child li { border-color: var(--cw-line-d); color: #DCE0E8; }

/* Industries track */
.cw-ind-top { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 40px; }
.cw-ind-top h2 { font-size: var(--cw-fs-h2); line-height: 1; margin-top: 20px; }
.cw-ind-track { display: grid; grid-auto-flow: column; grid-auto-columns: minmax(270px, 24%); gap: var(--cw-gap); overflow-x: auto; scroll-snap-type: x mandatory; scroll-padding-inline: var(--cw-edge); padding: 0 var(--cw-edge) 8px; scrollbar-width: none; }
.cw-ind-track::-webkit-scrollbar { display: none; }
.cw-ind { scroll-snap-align: start; display: block; }
.cw-ind .cw-ph { position: relative; border-radius: var(--cw-r-m); overflow: hidden; aspect-ratio: 3 / 4; background: var(--cw-sand); }
.cw-ind .cw-ph::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(7,11,22,0) 55%, rgba(7,11,22,.55)); opacity: 0; transition: opacity .5s; }
.cw-ind:hover .cw-ph::after { opacity: 1; }
.cw-ind img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--cw-ease); }
.cw-ind:hover img { transform: scale(1.05); }
.cw-ind .cw-cap { margin-top: 16px; font: 500 17px/1.3 var(--cw-display); letter-spacing: -0.015em; color: var(--cw-ink); }
.cw-ind .cw-cap span { display: block; color: var(--cw-muted); font: 400 14px/1.4 var(--cw-sans); letter-spacing: 0; margin-top: 3px; }
.cw-track-nav { display: flex; gap: 8px; }
.cw-track-nav button { width: 50px; height: 50px; border-radius: 50%; border: 1px solid var(--cw-line); background: transparent; cursor: pointer; font-size: 16px; color: var(--cw-ink); transition: background-color .3s, color .3s, border-color .3s; }
.cw-track-nav button:hover { background: var(--cw-ink); color: #fff; border-color: var(--cw-ink); }

/* FAQ */
.cw-faq-wrap { display: grid; grid-template-columns: 1fr 2.4fr; gap: 40px; }
.cw-faq-wrap h2 { font-size: var(--cw-fs-h2); line-height: 1; margin-bottom: 44px; }
.cw-faq { border-top: 1px solid var(--cw-line); }
.cw-faq details { border-bottom: 1px solid var(--cw-line); }
.cw-faq summary { list-style: none; cursor: pointer; padding: 26px 0; display: flex; justify-content: space-between; gap: 24px; font: 500 clamp(18px, 1.55vw, 22px)/1.35 var(--cw-display); letter-spacing: -0.015em; color: var(--cw-ink); transition: color .3s; }
.cw-faq summary:hover { color: var(--cw-blue); }
.cw-faq summary::-webkit-details-marker { display: none; }
.cw-faq summary::after { content: "+"; flex: none; width: 34px; height: 34px; border-radius: 50%; border: 1px solid var(--cw-line); display: grid; place-items: center; font: 300 20px/1 var(--cw-sans); color: var(--cw-ink); transition: transform .4s var(--cw-ease), background-color .3s, color .3s; }
.cw-faq details[open] summary::after { transform: rotate(45deg); background: var(--cw-ink); color: #fff; border-color: var(--cw-ink); }
.cw-faq details p { margin: -8px 0 26px; max-width: 40em; }

/* Closing CTA panel (dark, video) */
.cw-cta-shell { padding: 0; }
.cw-cta { position: relative; border-radius: 0; overflow: hidden; background: var(--cw-night) center / cover no-repeat; color: var(--cw-on-dark); isolation: isolate; }
.cw-cta--glow { background: radial-gradient(45% 70% at 82% 40%, rgba(47,127,212,.34), transparent 70%), var(--cw-night); }
.cw-cta--glow::before { opacity: .55; }
.cw-cta > video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; opacity: .85; }
.cw-cta-in { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(40px, 6vw, 96px); align-items: end; padding: clamp(72px, 9vw, 140px) var(--cw-edge); }
.cw-cta h2 { font-size: clamp(44px, 6vw, 88px); line-height: .94; letter-spacing: -0.05em; color: #fff; }
.cw-cta h2 span { color: rgba(255,255,255,.45); }
.cw-cta .cw-ctas { margin-top: 40px; }
.cw-next { padding: 8px; }
.cw-next h3 { padding: 16px 16px 10px; font: 500 13px/1 var(--cw-sans); color: rgba(255,255,255,.6); letter-spacing: 0; }
.cw-next ol { list-style: none; margin: 0; padding: 0; counter-reset: n; }
.cw-next li { counter-increment: n; display: grid; grid-template-columns: 34px 1fr; gap: 6px; padding: 16px; border-top: 1px solid var(--cw-glass-line); font-size: 15px; color: #fff; }
.cw-next li::before { content: "0" counter(n); font-size: 12px; color: rgba(255,255,255,.45); padding-top: 3px; }
.cw-next li small { grid-column: 2; display: block; color: rgba(255,255,255,.6); font-size: 13.5px; margin-top: 2px; }
.cw-cta-meta { grid-column: 1 / -1; display: flex; flex-wrap: wrap; gap: 10px 36px; padding-top: 26px; border-top: 1px solid var(--cw-glass-line); font-size: 14px; color: rgba(255,255,255,.6); }

/* ───────── Inner page sections ───────── */
/* Split: layered media + copy */
.cw-split { display: grid; grid-template-columns: 1.05fr 1fr; gap: clamp(40px, 6vw, 112px); align-items: center; }
.cw-split--rev .cw-media { order: 2; }
.cw-media { position: relative; padding: 0 0 clamp(36px, 5vw, 64px) 0; }
.cw-media > figure { margin: 0; border-radius: var(--cw-r-m); overflow: hidden; aspect-ratio: 5 / 4; background: var(--cw-sand); box-shadow: var(--cw-sh-2); }
.cw-media > figure img { width: 100%; height: 100%; object-fit: cover; }
.cw-media > figure + figure { position: absolute; width: 42%; aspect-ratio: 1; right: -4%; bottom: 0; border: 6px solid var(--cw-page); box-shadow: var(--cw-sh-3); }
.cw-split--rev .cw-media > figure + figure { right: auto; left: -4%; }
.cw-media .cw-chipcard { position: absolute; left: 20px; top: 20px; z-index: 2; }
.cw-copy h2 { font-size: var(--cw-fs-h2); line-height: 1.02; margin: 20px 0 22px; }
.cw-copy > p { font-size: var(--cw-fs-lead); line-height: 1.55; max-width: 32em; }
.cw-ticks { list-style: none; margin: 28px 0 34px; padding: 0; border-top: 1px solid var(--cw-line); }
.cw-ticks li { display: flex; gap: 14px; padding: 15px 0; border-bottom: 1px solid var(--cw-line); color: var(--cw-ink); font-size: 16px; }
.cw-ticks li::before { content: ""; flex: none; width: 20px; height: 20px; margin-top: 2px; border-radius: 50%; background: var(--cw-ink) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 20 20'%3E%3Cpath d='M6 10.5l2.5 2.5L14 7.5' fill='none' stroke='%23fff' stroke-width='1.6'/%3E%3C/svg%3E") center / 20px no-repeat; }
.cw-night .cw-ticks, .cw-night .cw-ticks li { border-color: var(--cw-line-d); color: #E4E6EB; }

/* Feature grid */
.cw-feats { display: grid; grid-template-columns: repeat(3, 1fr); gap: var(--cw-gap); }
.cw-feats--4 { grid-template-columns: repeat(4, 1fr); }
.cw-feats--2 { grid-template-columns: repeat(2, 1fr); }
.cw-feat { position: relative; display: flex; flex-direction: column; min-height: 280px; padding: clamp(26px, 2.6vw, 36px); border-radius: var(--cw-r-m); background: var(--cw-white); border: 1px solid rgba(11,12,14,.05); box-shadow: var(--cw-sh-1); transition: transform .55s var(--cw-ease), box-shadow .55s var(--cw-ease); }
a.cw-feat:hover, .cw-feat:hover { transform: translateY(-4px); box-shadow: var(--cw-sh-2); }
.cw-feat .cw-n { font: 400 13px/1 var(--cw-sans); color: var(--cw-muted); font-variant-numeric: tabular-nums; }
.cw-feat h3 { margin-top: auto; padding-top: 48px; font-size: var(--cw-fs-h3); line-height: 1.12; }
.cw-feat p { margin-top: 12px; font-size: 15.5px; }
.cw-feat .cw-go { position: absolute; top: clamp(20px, 2.2vw, 30px); right: clamp(20px, 2.2vw, 30px); width: 40px; height: 40px; border-radius: 50%; border: 1px solid var(--cw-line); display: grid; place-items: center; color: var(--cw-ink); transition: background-color .3s, color .3s, transform .45s var(--cw-ease); }
a.cw-feat:hover .cw-go { background: var(--cw-ink); color: #fff; border-color: var(--cw-ink); transform: rotate(-45deg); }
.cw-night .cw-feat { background: rgba(255,255,255,.04); border-color: var(--cw-line-d); box-shadow: none; color: var(--cw-on-dark); }
.cw-night .cw-feat h3 { color: #fff; } .cw-night .cw-feat .cw-go { border-color: var(--cw-line-d); color: #fff; }

/* Night band wrapper for inner pages */
.cw-band { padding: 0; }
.cw-band > .cw-night { padding-block: var(--cw-sec); }

/* Prose: legal, about story, articles */
.cw-prose { max-width: 720px; font-size: 17px; line-height: 1.75; color: var(--cw-body); }
.cw-prose > * + * { margin-top: 1.1em; }
.cw-prose h2 { font-size: clamp(26px, 2.4vw, 36px); line-height: 1.15; margin-top: 2em; }
.cw-prose h3 { font-size: 22px; margin-top: 1.6em; }
.cw-prose a { color: var(--cw-ink); text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; }
.cw-prose ul, .cw-prose ol { padding-left: 1.2em; } .cw-prose li + li { margin-top: .4em; }
.cw-prose img { border-radius: var(--cw-r-s); }
.cw-prose blockquote { margin: 1.6em 0; padding-left: 22px; border-left: 2px solid var(--cw-ink); font: 500 22px/1.4 var(--cw-display); color: var(--cw-ink); }
.cw-cols { display: grid; grid-template-columns: 1fr 2.4fr; gap: 40px; }

/* Contact */
.cw-contact { display: grid; grid-template-columns: 1fr 1.15fr; gap: var(--cw-gap); }
.cw-contact > div { border-radius: var(--cw-r); padding: clamp(32px, 4vw, 60px); }
.cw-contact .cw-c-book { background: var(--cw-night); color: var(--cw-on-dark); position: relative; overflow: hidden; isolation: isolate; min-height: 520px; display: flex; flex-direction: column; }
.cw-contact .cw-c-book::before { content: ""; position: absolute; z-index: -1; width: 600px; height: 600px; right: -200px; top: -260px; border-radius: 50%; background: radial-gradient(circle, rgba(47,127,212,.35), rgba(47,127,212,0) 65%); }
.cw-contact .cw-c-book h2 { color: #fff; font-size: clamp(34px, 3.6vw, 56px); line-height: 1; margin: 20px 0 18px; }
.cw-contact .cw-c-book .cw-ctas { margin-top: auto; padding-top: 40px; }
.cw-contact .cw-c-info { background: var(--cw-white); box-shadow: var(--cw-sh-1); }
.cw-c-info dl { margin: 0; display: grid; grid-template-columns: 1fr; }
.cw-c-info dl div { display: grid; grid-template-columns: 140px 1fr; gap: 20px; padding: 20px 0; border-bottom: 1px solid var(--cw-line); }
.cw-c-info dl div:first-child { padding-top: 0; }
.cw-c-info dt { font-size: 13.5px; color: var(--cw-muted); }
.cw-c-info dd { margin: 0; font: 500 17px/1.45 var(--cw-display); color: var(--cw-ink); }
.cw-c-info dd a:hover { color: var(--cw-blue); }

/* Posts (Guides) */
.cw-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: clamp(28px, 3vw, 44px) var(--cw-gap); }
.cw-post .cw-ph { border-radius: var(--cw-r-m); overflow: hidden; aspect-ratio: 16 / 11; background: var(--cw-sand); }
.cw-post img { width: 100%; height: 100%; object-fit: cover; transition: transform 1.2s var(--cw-ease); }
.cw-post:hover img { transform: scale(1.04); }
.cw-post small { display: block; margin-top: 18px; font-size: 13px; color: var(--cw-muted); }
.cw-post h3 { margin-top: 8px; font-size: 22px; line-height: 1.2; }
.cw-post:hover h3 { color: var(--cw-blue); }
.cw-empty { padding: 48px; border: 1px dashed var(--cw-line); border-radius: var(--cw-r-m); text-align: center; }
.cw-pager { display: flex; gap: 8px; margin-top: 56px; } .cw-pager a, .cw-pager span { min-width: 44px; height: 44px; padding: 0 14px; border-radius: 999px; border: 1px solid var(--cw-line); display: grid; place-items: center; color: var(--cw-ink); } .cw-pager .current { background: var(--cw-ink); color: #fff; border-color: var(--cw-ink); }

/* ───────── Footer ───────── */
.cw-footer { padding: 0; margin-top: 0; }
.cw-foot { border-top: 1px solid var(--cw-line-d); background: var(--cw-night); color: #7F8596; border-radius: 0; padding: clamp(56px, 6vw, 96px) var(--cw-edge) 28px; position: relative; overflow: hidden; isolation: isolate; }
.cw-foot::before { content: ""; position: absolute; z-index: -1; width: 80vw; height: 80vw; left: -30vw; bottom: -55vw; border-radius: 50%; background: radial-gradient(circle, rgba(47,127,212,.18), rgba(47,127,212,0) 65%); }
.cw-fcols { display: grid; grid-template-columns: 2.4fr 1fr 1fr 1fr; gap: 32px; font-size: 14.5px; }
.cw-fcols .cw-fh { margin: 0 0 18px; font: 500 13px/1 var(--cw-sans); color: #8B91A2; letter-spacing: 0; }
.cw-fcols a { display: block; color: #D5D8E0; margin-bottom: 11px; transition: color .2s; } .cw-fcols a:hover { color: #fff; }
.cw-fcols a.cw-mark { display: inline-flex; }
.cw-fcols p { margin: 0 0 26px; max-width: 24em; font-size: 15px; }
.cw-mark-foot { color: #fff; margin-bottom: 20px; } .cw-mark-foot .cw-lw { display: none; }
.cw-giant { font: 600 clamp(64px, 17.4vw, 300px)/.8 var(--cw-display); letter-spacing: -0.065em; color: #fff; margin: clamp(64px, 9vw, 140px) 0 26px; white-space: nowrap; background: linear-gradient(180deg, #fff 30%, rgba(255,255,255,.25)); -webkit-background-clip: text; background-clip: text; -webkit-text-fill-color: transparent; }
.cw-legal { display: flex; justify-content: space-between; gap: 16px; padding-top: 22px; border-top: 1px solid var(--cw-line-d); font-size: 13px; color: #8B91A2; }
.cw-legal a { color: inherit; } .cw-legal a:hover { color: #fff; }

/* ───────── Booking window ───────── */
.cw-bk { position: fixed; inset: 0; z-index: 80; display: grid; place-items: center; padding: 16px; background: rgba(7,11,22,.55); -webkit-backdrop-filter: blur(8px); backdrop-filter: blur(8px); opacity: 0; visibility: hidden; transition: opacity .35s, visibility .35s; }
.cw-bk.cw-on { opacity: 1; visibility: visible; transition: opacity .35s, visibility 0s; } /* visible at once, so focus can move in */
.cw-bk-card { width: min(1000px, 100%); max-height: calc(100svh - 32px); overflow: auto; background: #fff; border-radius: 26px; display: grid; grid-template-columns: 350px 1fr; transform: translateY(16px) scale(.985); transition: transform .5s var(--cw-ease); box-shadow: 0 50px 120px -30px rgba(0,0,0,.5); }
.cw-bk.cw-on .cw-bk-card { transform: none; }
.cw-bk-side { position: relative; background: radial-gradient(90% 60% at 80% 0%, rgba(47,127,212,.4), transparent 70%), var(--cw-night); color: #fff; padding: 32px; display: flex; flex-direction: column; border-radius: 26px 0 0 26px; overflow: hidden; isolation: isolate; }
.cw-bk-side::before { content: ""; position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(7,11,22,0) 30%, rgba(7,11,22,.95) 66%); pointer-events: none; }
.cw-bk-vis { position: absolute; z-index: -1; left: 28px; right: -36px; top: 64px; transform: rotate(-2deg); }
.cw-bk-side > :not(.cw-bk-vis) { position: relative; z-index: 1; }
.cw-bk-side h3 { color: #fff; font-size: 34px; line-height: 1; letter-spacing: -0.04em; margin-top: auto; }
.cw-bk-side ul { list-style: none; padding: 0; margin: 24px 0 0; font-size: 14px; color: rgba(255,255,255,.78); }
.cw-bk-side li { padding: 11px 0; border-top: 1px solid rgba(255,255,255,.14); }
.cw-bk-main { padding: 32px clamp(22px, 3vw, 44px) 30px; display: flex; flex-direction: column; min-height: 520px; }
.cw-bk-top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 24px; font-size: 13px; color: var(--cw-muted); }
.cw-bk-x { width: 42px; height: 42px; border-radius: 50%; border: 1px solid var(--cw-line); background: none; cursor: pointer; font-size: 18px; color: var(--cw-ink); transition: background-color .3s; }
.cw-bk-x:hover { background: var(--cw-page); }
.cw-bk-prog { display: flex; gap: 6px; margin-bottom: 32px; } .cw-bk-prog i { flex: 1; height: 3px; border-radius: 2px; background: var(--cw-line); transition: background-color .5s; } .cw-bk-prog i.cw-on { background: var(--cw-ink); }
.cw-bk-step { display: none; flex-direction: column; flex: 1; } .cw-bk-step.cw-on { display: flex; animation: cw-fade .5s var(--cw-ease); }
.cw-bk-step h4 { margin: 0 0 8px; font: 500 30px/1.08 var(--cw-display); letter-spacing: -0.035em; color: var(--cw-ink); }
.cw-bk-step > p { margin: 0 0 24px; font-size: 15px; }
.cw-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.cw-chip { font: 500 14.5px/1 var(--cw-display); padding: 14px 18px; border-radius: 999px; border: 1px solid var(--cw-line); background: #fff; color: var(--cw-ink); cursor: pointer; transition: background-color .25s, color .25s, border-color .25s; }
.cw-chip:hover { border-color: var(--cw-ink); } .cw-chip[aria-pressed="true"] { background: var(--cw-ink); color: #fff; border-color: var(--cw-ink); }
.cw-fields { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cw-fields label { display: flex; flex-direction: column; gap: 7px; font-size: 13px; color: var(--cw-body); }
.cw-fields .cw-full { grid-column: 1 / -1; }
.cw-fields input, .cw-fields select, .cw-fields textarea { font: 400 16px/1.4 var(--cw-sans); /* 16px: no iOS zoom on focus */ color: var(--cw-ink); padding: 15px 16px; border: 1px solid var(--cw-line); border-radius: 12px; background: #fff; outline: none; transition: border-color .25s, box-shadow .25s; }
.cw-fields input:focus, .cw-fields select:focus, .cw-fields textarea:focus { border-color: var(--cw-ink); box-shadow: 0 0 0 3px rgba(47,127,212,.35); }
.cw-fields [aria-invalid="true"] { border-color: #B42318; }
.cw-fields select { -webkit-appearance: none; appearance: none; height: 54px; background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6'%3E%3Cpath d='M1 1l4 4 4-4' fill='none' stroke='%230B0C0E' stroke-width='1.4'/%3E%3C/svg%3E") no-repeat right 16px center; padding-right: 40px; }
.cw-cal { flex: 1; min-height: 300px; border: 1px dashed var(--cw-line); border-radius: 16px; display: grid; place-items: center; text-align: center; padding: 24px; font-size: 14.5px; }
.cw-cal b { display: block; font: 500 20px/1.2 var(--cw-display); color: var(--cw-ink); margin-bottom: 6px; }
.cw-cal.cw-has-cal { border: 0; padding: 0; display: block; }
.cw-cal iframe { width: 100%; height: 100%; min-height: 780px; border: 0; border-radius: 12px; }
.cw-bk-nav { display: flex; justify-content: space-between; align-items: center; margin-top: auto; padding-top: 28px; }
.cw-bk-nav .cw-back { background: none; border: 0; font: 500 15px/1 var(--cw-display); color: var(--cw-body); cursor: pointer; padding: 10px 0; }
.cw-bk-nav .cw-back[hidden] { display: inline-block; visibility: hidden; }

/* Phone sticky CTA */
.cw-mcta { position: fixed; left: 10px; right: 10px; bottom: calc(10px + env(safe-area-inset-bottom)); z-index: 45; display: none; transform: translateY(140%); transition: transform .5s var(--cw-ease); }
.cw-mcta.cw-on { transform: none; }
.cw-mcta .cw-btn { width: 100%; justify-content: space-between; height: 58px; border: 1px solid rgba(255,255,255,.16); box-shadow: 0 18px 40px -16px rgba(0,0,0,.55); }

.cw-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--cw-ink); color: #fff; padding: 12px 16px; border-radius: 10px; }
.cw-skip:focus { top: 12px; }

/* Reveal (only once JS is running) */
.cw-js .cw-rv { opacity: 0; transform: translateY(26px); transition: opacity 1s var(--cw-ease), transform 1s var(--cw-ease); }
.cw-js .cw-rv.cw-in { opacity: 1; transform: none; }
.cw-js .cw-rv:nth-child(2) { transition-delay: .08s; } .cw-js .cw-rv:nth-child(3) { transition-delay: .16s; } .cw-js .cw-rv:nth-child(4) { transition-delay: .24s; }

/* ───────── Responsive ───────── */
@media (max-width: 1080px) {
  .cw-nav, .cw-bar-end .cw-login, .cw-mega, .cw-float { display: none; }
  .cw-bar { grid-template-columns: 1fr auto; }
  .cw-burger { display: flex; }
  .cw-bar .cw-btn { display: none; }
  .cw-hero-row, .cw-phero-row { flex-direction: column; align-items: start; gap: 26px; }
  .cw-hero-foot { grid-template-columns: 1fr 1fr; } .cw-hero-foot .cw-vctl { display: none; }
  .cw-mcta { display: block; }
  .cw-bk-card { grid-template-columns: 1fr; } .cw-bk-side { display: none; }
  .cw-head, .cw-intro, .cw-svc-top, .cw-walk, .cw-prods, .cw-proc-top, .cw-faq-wrap, .cw-cta-in, .cw-split, .cw-cols, .cw-contact { grid-template-columns: 1fr; }
  .cw-nums, .cw-steps { grid-column: 1; }
  .cw-nums { grid-template-columns: 1fr 1fr; } .cw-nums div { padding-bottom: 24px; }
  .cw-collage { grid-template-columns: 1fr; } .cw-collage figure:nth-child(2) { display: none; }
  .cw-collage .cw-chipcard + .cw-chipcard { display: none; }
  .cw-acc-btn { grid-template-columns: 44px 1fr auto; gap: 14px; }
  .cw-acc-grid { grid-template-columns: 1fr; } .cw-acc-grid > span { display: none; } .cw-acc-grid .cw-ph { grid-column: 1; }
  .cw-walk .cw-ph { position: relative; top: 0; aspect-ratio: 4 / 3; }
  .cw-step { grid-template-columns: 1fr; gap: 14px; min-height: 0; }
  .cw-feats, .cw-feats--4 { grid-template-columns: 1fr 1fr; }
  .cw-posts { grid-template-columns: 1fr 1fr; }
  .cw-split--rev .cw-media { order: 0; }
  .cw-fcols { grid-template-columns: 1fr 1fr; }
  .cw-ind-track { grid-auto-columns: 70%; }
}
@media (max-width: 640px) {
  :root { --cw-r: 22px; --cw-r-m: 18px; }
  .cw-hero { height: auto; min-height: calc(100svh - 2 * var(--cw-gap)); max-height: none; }
  .cw-hero-in { padding: 120px 22px 30px; min-height: inherit; }
  .cw-hero h1 { font-size: clamp(42px, 12.6vw, 58px); padding-top: 56px; }
  .cw-hero .cw-ln, .cw-hero .cw-ln > span { display: inline; }
  .cw-hero .cw-ln > span { transform: none; opacity: 0; animation: cw-fade 1s var(--cw-ease) forwards; }
  .cw-hero-foot { display: none; }
  .cw-ctas { width: 100%; flex-direction: column; align-items: stretch; }
  .cw-ctas .cw-btn { justify-content: space-between; height: 58px; } .cw-ctas .cw-btn-ghost { justify-content: center; }
  .cw-ctas .cw-link { align-self: center; margin-top: 6px; }
  .cw-phero-in { padding: 120px 22px 30px; }
  .cw-steps { gap: 10px; } .cw-step { position: relative; top: 0; }
  .cw-walk li { grid-template-columns: 36px 1fr; } .cw-walk li em { display: none; }
  .cw-prod { min-height: 0; }
  .cw-track-nav { display: none; }
  .cw-feats, .cw-feats--4, .cw-feats--2, .cw-posts { grid-template-columns: 1fr; }
  .cw-feat { min-height: 0; }
  .cw-media > figure + figure { width: 46%; right: 0; } .cw-split--rev .cw-media > figure + figure { left: 0; }
  .cw-c-info dl div { grid-template-columns: 1fr; gap: 4px; }
  .cw-fields { grid-template-columns: 1fr; }
  .cw-bk { padding: 0; place-items: end stretch; } .cw-bk-card { border-radius: 24px 24px 0 0; max-height: 92svh; } .cw-bk-main { min-height: 0; }
  .cw-legal { flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
  .cw-hero .cw-ln > span, .cw-hero-row, .cw-hero-foot, .cw-float > *, .cw-phero h1, .cw-phero-row { opacity: 1; transform: none; }
  .cw-js .cw-rv { opacity: 1; transform: none; }
  html { scroll-behavior: auto; }
}

/* Numerals only where order is the content (Process steps). */
.cw-mega-list a span { display: none; } .cw-mega-list a { grid-template-columns: 1fr; }
.cw-walk li::before, .cw-next li::before { content: none; }
.cw-walk li { grid-template-columns: 1fr auto; } .cw-next li { grid-template-columns: 1fr; }

/* Nav CTA: outline pill (Claude Design turn 3); ink outline once the bar is solid. */
.cw-bar .cw-btn-outline { height: 44px; padding: 0 18px; background: transparent; color: #fff; border: 1px solid rgba(255,255,255,.32); font: 500 14px/1 var(--cw-sans); box-shadow: none; }
.cw-bar .cw-btn-outline:hover { background: rgba(255,255,255,.1); border-color: rgba(255,255,255,.6); }
.cw-header.cw-solid .cw-bar .cw-btn-outline, .cw-header.cw-menu-open .cw-bar .cw-btn-outline { color: var(--cw-ink); border-color: rgba(11,12,14,.2); }
.cw-header.cw-solid .cw-bar .cw-btn-outline:hover { background: rgba(11,12,14,.05); }
.cw-mnav .cw-msearch { width: 100%; background: none; border: 0; border-bottom: 1px solid var(--cw-line-d); color: #fff; text-align: left; display: flex; padding: 18px 0; font: 500 30px/1 var(--cw-display); letter-spacing: -0.035em; cursor: pointer; }
.cw-mnav > * { flex-shrink: 0; }
.cw-mnav.cw-on { transition: opacity .4s var(--cw-ease), visibility 0s; } /* visible at once, so focus can move in */
.single .cw-crumbs span[aria-hidden]:nth-last-child(2) { display: none; }
@media (min-width: 641px) { .single .cw-crumbs span[aria-hidden]:nth-last-child(2) { display: inline; } }

/* Tap targets (44px) and small-screen fixes from device QA */
.cw-mark { min-height: 44px; }
.cw-legal a { display: inline-block; padding: 14px 4px; }
.cw-crumbs a { padding: 12px 0; margin: -12px 0; }
.cw-pill { padding: 14px 16px; }
.cw-mnav details div a { padding: 10px 0; }
.cw-header.cw-mob .cw-bar { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.1); box-shadow: none; }
.cw-header.cw-mob .cw-mark { color: #fff; } .cw-header.cw-mob .cw-mark .cw-lw { display: none; } .cw-header.cw-mob .cw-mark .cw-lb { display: block; }
.cw-header.cw-mob .cw-burger { background: #fff; } .cw-header.cw-mob .cw-burger span { background: var(--cw-ink); }
@media (max-width: 1080px) {
  .cw-fcols a { padding: 10px 0; margin-bottom: 0; }
  .cw-foot { padding-bottom: calc(96px + env(safe-area-inset-bottom)); }
}
@media (max-width: 640px) {
  .cw-bk-nav { position: sticky; bottom: 0; background: #fff; margin: 0 -22px; padding: 14px 22px calc(14px + env(safe-area-inset-bottom)); border-top: 1px solid var(--cw-line); z-index: 2; }
  .single .cw-crumbs span[aria-current] { display: none; }
}

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }

/* Touch targets for secondary links and the hero step bars (QA pass 3) */
@media (hover: none) { .cw-link { min-height: 44px; align-items: flex-end; } }
@media (max-width: 900px) { .cw-hl-step { padding-block: 11px; margin-block: -11px; } }

/* ───────── 2026-10-29 polish: nav presence, section labels ───────── */
/* Nav: taller bar, larger links, a firmer glass on dark, and the one blue primary button. */
.cw-bar { height: 72px; padding: 0 10px 0 22px; background: rgba(9,13,24,.55); border-color: rgba(255,255,255,.14); box-shadow: 0 20px 50px -30px rgba(0,0,0,.6); }
.cw-header.cw-solid .cw-bar, .cw-header.cw-menu-open .cw-bar { background: rgba(255,255,255,.92); }
.cw-nav { gap: 4px; }
.cw-nav > a, .cw-nav > button { height: 44px; padding: 0 16px; font-size: 15.5px; color: rgba(255,255,255,.86); }
.cw-mark { font-size: 21px; gap: 11px; } .cw-mark img { width: 34px; height: 34px; }
.cw-bar .cw-btn-outline { height: 50px; padding: 0 24px; font-size: 15px; font-weight: 500; background: var(--cw-blue); border-color: var(--cw-blue); color: #fff; }
.cw-bar .cw-btn-outline:hover { background: #2A72BF; border-color: #2A72BF; }
.cw-header.cw-solid .cw-bar .cw-btn-outline, .cw-header.cw-menu-open .cw-bar .cw-btn-outline { background: var(--cw-blue); border-color: var(--cw-blue); color: #fff; }

/* Section labels: a clear eyebrow above each headline (blue, with a short rule), not a faint caption. */
.cw-idx { gap: 12px; font: 600 15px/1.2 var(--cw-sans); letter-spacing: -.005em; color: var(--cw-blue); }
.cw-idx::before { display: inline-block; content: ""; width: 22px; height: 2px; border-radius: 2px; background: currentColor; }
.cw-dark .cw-idx, .cw-night .cw-idx { color: var(--cw-blue-soft); }

/* ───────── Footer (2026-10-29): tighter columns, contact, a wordmark that always fits ───────── */
.cw-foot { container-type: inline-size; padding: clamp(56px, 6vw, 88px) var(--cw-edge) 24px; }
.cw-fcols { grid-template-columns: minmax(0, 1.5fr) repeat(3, minmax(0, 1fr)); gap: 40px clamp(32px, 4vw, 64px); font-size: 15px; }
.cw-fbrand p { margin: 0; max-width: 26em; font-size: 15.5px; line-height: 1.55; color: #A9AEBB; }
.cw-fbrand .cw-mark-foot { margin-bottom: 18px; }
.cw-fcols a.cw-fbook { display: inline-flex; margin: 26px 0 0; height: 48px; padding: 0 22px; color: #fff; }
.cw-fcontact { display: grid; gap: 4px; margin-top: 22px !important; font-size: 14px !important; }
.cw-fcols .cw-fcontact a { margin: 0; color: #fff; }
.cw-fcols .cw-fh { margin-bottom: 16px; font-size: 13px; color: #8B91A2; }
.cw-fcols a { margin-bottom: 10px; }
/* The wordmark is sized from the footer's width (container units), so it is never cut off. */
.cw-giant { font-size: 20.4cqw; line-height: .78; margin: clamp(48px, 6vw, 96px) 0 0; padding-bottom: .06em; letter-spacing: -0.06em; text-align: left; }
.cw-legal { align-items: center; margin-top: 20px; padding-top: 18px; }
.cw-legal a { padding: 10px 2px; }
@media (max-width: 1080px) { .cw-fcols { grid-template-columns: repeat(3, minmax(0, 1fr)); } .cw-fbrand { grid-column: 1 / -1; } }
@media (max-width: 640px) {
	.cw-fcols { grid-template-columns: 1fr 1fr; gap: 28px 20px; }
	.cw-fcols > div:nth-child(2) { grid-row: span 2; }
	.cw-fcols a { padding: 6px 0; margin-bottom: 2px; font-size: 15px; }
	.cw-fcols .cw-fh { margin-bottom: 8px; }
	.cw-fcols a.cw-fbook { padding: 0 22px; margin-top: 22px; }
	.cw-legal { flex-direction: row; flex-wrap: wrap; }
}
