:root {
  --acid: #00ff9d;
  --acid-soft: #7fffd4;
  --black: #000;
  --black-2: #0a0a0a;
  --white: #fff;
  --gray: #bababa;
  --cream: #f5f0e1;
  --cobalt: #0d2557;
  --sans: Manrope, Inter, system-ui, sans-serif;
  --serif: "Source Serif 4", Georgia, serif;
  --mono: "JetBrains Mono", "IBM Plex Mono", monospace;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; background: var(--black); color: var(--white); font: 400 1rem/1.55 var(--sans); -webkit-font-smoothing: antialiased; }
button, input, select { font: inherit; }
button { cursor: pointer; }
a { color: inherit; text-decoration: none; }
svg { display: block; }
::selection { background: var(--acid); color: var(--black); }
:focus-visible { outline: 2px solid var(--acid); outline-offset: 4px; }
.section-light :focus-visible, .proof-band :focus-visible, .final-cta :focus-visible { outline-color: var(--black); }
.shell { width: min(100% - 3.5rem, 1360px); margin-inline: auto; }
.skip-link { position: absolute; z-index: 100; left: 1rem; top: -4rem; padding: .7rem 1rem; background: var(--acid); color: var(--black); }
.skip-link:focus { top: 1rem; }

.site-header { position: relative; z-index: 10; border-bottom: 1px solid rgba(255,255,255,.17); background: var(--black); }
.header-inner { display: flex; align-items: center; gap: 2.2rem; min-height: 90px; }
.brand { display: block; flex: none; width: 147px; }
.brand svg { width: 100%; height: auto; }
.header-nav { display: flex; align-items: center; gap: clamp(1rem, 2.25vw, 2.7rem); margin-left: auto; }
.header-nav a, .header-cta { font: 500 .72rem/1.2 var(--mono); text-transform: uppercase; letter-spacing: .025em; white-space: nowrap; }
.header-nav a { color: #d0d0d0; transition: color .2s; }
.header-nav a:hover { color: var(--acid); }
.header-cta { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.4rem; padding: .95rem 1.05rem; border: 1px solid rgba(255,255,255,.6); transition: background .2s, color .2s, border-color .2s; }
.header-cta:hover { background: var(--acid); border-color: var(--acid); color: var(--black); }
.header-actions { display: flex; align-items: center; gap: .65rem; }
.header-actions .header-cta { margin-left: 0; }

.hero { display: grid; grid-template-columns: minmax(0, 1.17fr) minmax(390px, .83fr); align-items: start; gap: clamp(2.2rem, 4.5vw, 5rem); padding-block: clamp(4.8rem, 7.2vw, 8.2rem) clamp(6rem, 8vw, 9rem); }
.hero-copy { padding-bottom: .4rem; }
.eyebrow { display: flex; align-items: center; gap: .75rem; margin: 0 0 2rem; color: var(--acid); font: 500 .74rem/1.4 var(--mono); text-transform: uppercase; letter-spacing: .105em; }
.eyebrow-line { width: 23px; height: 1px; background: currentColor; }
.eyebrow-dark { color: #26362e; }
.hero h1 { max-width: 820px; margin: 0; font-size: clamp(3.5rem, 5.5vw, 5.2rem); line-height: 1.05; letter-spacing: -.06em; font-weight: 400; text-wrap: balance; }
h1 em, h2 em { font-family: var(--serif); font-weight: 400; letter-spacing: -.042em; }
.hero h1 .hero-value { color: var(--acid); }
.hero-serif { max-width: 700px; margin: 2rem 0 1.1rem; font: 400 clamp(1.45rem, 2.2vw, 2rem)/1.24 var(--serif); }
.hero-video { width: min(100%, 540px); margin-top: 2rem; }
.hero-video-label { margin: 0 0 .7rem; color: var(--acid); font: 600 .72rem/1.3 var(--mono); letter-spacing: .08em; text-transform: uppercase; }
.hero-video-frame { position: relative; display: flex; flex-direction: column; justify-content: space-between; aspect-ratio: 16 / 9; min-height: 230px; padding: 1.2rem; overflow: hidden; border: 1px solid #3a527a; background: linear-gradient(145deg, #0d2557 0%, #081638 65%, #050a17 100%); }
.hero-video-kicker, .hero-video-status { color: #d1ddec; font: 500 .67rem/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.hero-video-status { align-self: flex-end; color: var(--acid); }
.hero-video-play { position: absolute; left: 50%; top: 50%; display: grid; place-items: center; width: 74px; height: 74px; padding-left: .2rem; transform: translate(-50%, -50%); border: 1px solid var(--acid); border-radius: 50%; color: var(--acid); font-size: 1.35rem; }
@media (min-width: 851px) { .hero > .calculator { margin-top: 1.25rem; } }
.cta-row { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 2.25rem; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 1.6rem; min-height: 55px; padding: .85rem 1.1rem; border: 1px solid transparent; font: 600 .78rem/1.2 var(--mono); text-transform: uppercase; letter-spacing: .015em; text-align: left; transition: background .2s, color .2s, border-color .2s, transform .2s; }
.button:hover { transform: translateY(-2px); }
.button span { font-size: 1.15rem; line-height: .7; }
.button-primary { background: var(--acid); border-color: var(--acid); color: var(--black); }
.button-primary:hover { background: #86ffd4; border-color: #86ffd4; }

.calculator { position: relative; padding: clamp(1.45rem, 2.5vw, 2.35rem); border: 1px solid #3a527a; background: var(--cobalt); box-shadow: 0 28px 90px rgba(0,0,0,.18); }
.calculator-stage { position: relative; overflow: hidden; }
.calculator-stage.is-ready { transition: height .45s cubic-bezier(.22,1,.36,1); }
.calculator-screen { width: 100%; transition: transform .45s cubic-bezier(.22,1,.36,1), opacity .32s ease; }
.calculator-screen--estimate { position: relative; transform: translateX(0); opacity: 1; }
.calculator-screen--quote, .calculator-screen--complete { position: absolute; top: 0; left: 0; transform: translateX(105%); opacity: 0; pointer-events: none; }
.calculator[data-view="quote"] .calculator-screen--estimate, .calculator[data-view="complete"] .calculator-screen--estimate, .calculator[data-view="complete"] .calculator-screen--quote { transform: translateX(-105%); opacity: 0; pointer-events: none; }
.calculator[data-view="quote"] .calculator-screen--quote { transform: translateX(0); opacity: 1; pointer-events: auto; }
.calculator[data-view="complete"] .calculator-screen--complete { transform: translateX(0); opacity: 1; pointer-events: auto; }
.calculator-topline { display: flex; justify-content: space-between; align-items: center; padding-bottom: 1.5rem; margin-bottom: 1.7rem; border-bottom: 1px solid rgba(255,255,255,.24); color: var(--acid); font: 500 .69rem/1.3 var(--mono); letter-spacing: .055em; text-transform: uppercase; }
.calculator-screen--quote .calculator-topline { justify-content: flex-end; }
.calculator-back { padding: .2rem 0 .2rem .5rem; border: 0; background: transparent; color: var(--white); font: inherit; text-transform: uppercase; cursor: pointer; }
.calculator-back:hover { color: var(--acid); }
.calculator h2 { max-width: 470px; margin: 0; font-size: clamp(1.85rem, 2.6vw, 2.45rem); line-height: 1.14; letter-spacing: -.043em; font-weight: 400; }
.calculator h2[tabindex="-1"]:focus { outline: none; }
.calculator-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .8rem; margin-top: 1.7rem; }
.slider-group { min-width: 0; padding: 1rem; border: 1px solid rgba(255,255,255,.3); background: rgba(255,255,255,.045); }
.slider-heading { display: flex; flex-wrap: wrap; align-content: flex-start; gap: .35rem 1rem; min-height: 3.15rem; }
.slider-heading label { width: 100%; font: 500 .72rem/1.3 var(--mono); letter-spacing: .035em; text-transform: uppercase; }
.slider-heading output { color: var(--acid); font: 500 .95rem/1.2 var(--sans); }
.slider-group input[type="range"] { display: block; width: 100%; height: 26px; margin: .5rem 0 .25rem; padding: 0; border: 0; appearance: none; background: transparent; cursor: pointer; }
.slider-group input[type="range"]::-webkit-slider-runnable-track { height: 6px; border-radius: 6px; background: linear-gradient(to right, var(--acid) 0 var(--slider-progress), rgba(255,255,255,.3) var(--slider-progress) 100%); }
.slider-group input[type="range"]::-webkit-slider-thumb { width: 20px; height: 20px; margin-top: -7px; border: 2px solid var(--acid); border-radius: 50%; appearance: none; background: var(--white); box-shadow: 0 0 0 3px #172852; }
.slider-group input[type="range"]::-moz-range-track { height: 6px; border-radius: 6px; background: rgba(255,255,255,.3); }
.slider-group input[type="range"]::-moz-range-progress { height: 6px; border-radius: 6px; background: var(--acid); }
.slider-group input[type="range"]::-moz-range-thumb { width: 16px; height: 16px; border: 2px solid var(--acid); border-radius: 50%; background: var(--white); }
.slider-group input[type="range"]:focus-visible { outline: 2px solid var(--acid); outline-offset: 3px; }
.slider-limits { display: flex; justify-content: space-between; gap: .5rem; color: #b7c8df; font: 400 .68rem/1.2 var(--sans); }
.choice-group { min-width: 0; margin: 0; padding: 0; border: 0; }
.choice-group[data-group="country"] { grid-column: 1 / -1; }
.choice-group legend { width: 100%; padding: 0; margin: 0 0 .55rem; font: 500 .85rem/1.4 var(--mono); letter-spacing: .035em; text-transform: uppercase; }
.choice-group legend small { display: block; margin-top: .18rem; color: #bdcce0; font: 400 .85rem/1.4 var(--sans); letter-spacing: 0; text-transform: none; }
.choice-buttons { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: .35rem; }
.country-buttons { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.choice-buttons label { position: relative; min-width: 0; cursor: pointer; }
.choice-buttons input { position: absolute; width: 1px; height: 1px; opacity: 0; }
.choice-buttons span { display: flex; align-items: center; justify-content: center; min-height: 46px; padding: .45rem .15rem; border: 1px solid #91a2be; color: var(--white); font: 500 .875rem/1.2 var(--sans); text-align: center; white-space: nowrap; transition: background .15s, color .15s, border-color .15s; }
.calculator .choice-buttons label:nth-child(1) span { background: #19366c; }
.calculator .choice-buttons label:nth-child(2) span { background: #204276; }
.calculator .choice-buttons label:nth-child(3) span { background: #24507b; }
.calculator .choice-buttons label:nth-child(4) span { background: #2c487c; }
.calculator .choice-buttons label:nth-child(5) span { background: #355487; }
.calculator .choice-buttons input:checked + span { background: var(--acid); border-color: var(--acid); color: var(--black); }
.choice-buttons label:hover span { border-color: var(--acid); }
.choice-buttons input:checked + span { background: var(--acid); border-color: var(--acid); color: var(--black); }
.choice-buttons input:focus-visible + span { outline: 2px solid var(--acid); outline-offset: 3px; }
.field { display: grid; gap: .45rem; }
.field > span { color: inherit; font: 500 .7rem/1.4 var(--mono); letter-spacing: .045em; text-transform: uppercase; }
.field small { font-size: inherit; font-weight: 400; text-transform: none; letter-spacing: 0; opacity: .65; }
.field input, .field select { width: 100%; min-height: 48px; padding: .7rem .8rem; border: 1px solid #8ca0bb; border-radius: 0; background: rgba(255,255,255,.06); color: var(--white); font-size: .96rem; outline: none; }
.field input:focus, .field select:focus { border-color: var(--acid); box-shadow: 0 0 0 1px var(--acid); }
.field select { appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath d='m3 6 5 5 5-5' fill='none' stroke='%23fff' stroke-width='1.5'/%3E%3C/svg%3E"); background-position: right .8rem center; background-repeat: no-repeat; padding-right: 2.7rem; cursor: pointer; }
.field select option { color: var(--black); background: var(--white); }
.estimate-result { container-type: inline-size; margin-top: 1.6rem; padding: 1.3rem 1.35rem; background: var(--cream); color: var(--black); }
.result-label { display: block; font: 600 .7rem/1.3 var(--mono); letter-spacing: .06em; text-transform: uppercase; }
.estimate-result strong { display: block; margin: .35rem 0 0; font-size: clamp(1rem, 7.6cqi, 3.05rem); line-height: 1.1; letter-spacing: -.065em; font-weight: 500; white-space: nowrap; }
.estimate-result.is-empty strong { font-size: 1.35rem; letter-spacing: -.025em; }
.estimate-result p { margin: .65rem 0 0; max-width: 420px; font-size: .78rem; line-height: 1.45; }
.range-track { height: 5px; width: 100%; background: rgba(0,0,0,.19); }
.range-track span { display: block; height: 100%; margin-left: 25%; width: 32%; background: var(--black); transition: width .25s, margin-left .25s; }
.calculator-caveat { margin: .9rem 0 1rem; color: #cbd6e8; font-size: .7rem; line-height: 1.55; }
.calculator-link { display: flex; justify-content: space-between; align-items: center; gap: 1rem; width: 100%; min-height: 68px; margin-bottom: 7px; padding: .95rem 1.1rem; border: 1px solid #b7ffe0; background: var(--acid); box-shadow: 0 6px 0 #008b59; color: #061d17; font: 700 .86rem/1.35 var(--mono); text-transform: uppercase; letter-spacing: .02em; text-align: left; cursor: pointer; transition: background .2s ease, box-shadow .2s ease, transform .2s ease; }
.calculator-link span { display: grid; flex: none; place-items: center; width: 34px; height: 34px; border: 1px solid #061d17; border-radius: 50%; background: #061d17; color: var(--acid); font-size: 1.15rem; line-height: 1; transition: transform .2s ease; }
.calculator-link:hover { transform: translateY(-2px); background: #80ffd0; box-shadow: 0 8px 0 #008b59; }
.calculator-link:hover span { transform: translate(2px, -2px); }
.calculator-link:focus-visible { outline: 2px solid var(--white); outline-offset: 3px; }
.calculator-link:disabled, .calculator-link:disabled:hover { transform: none; border-color: #899ab6; background: #899ab6; box-shadow: none; color: #14234a; cursor: not-allowed; }
@keyframes quoteCue { 0%, 100% { transform: translateY(0); filter: brightness(1); } 50% { transform: translateY(-3px); filter: brightness(1.12); } }
@media (prefers-reduced-motion: no-preference) { .calculator-link.is-revealed:not(:disabled) { animation: quoteCue 1.2s ease-in-out 2; } }
.quote-context { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: baseline; gap: .55rem 1rem; margin: 1.25rem 0 .6rem; padding: 1rem 0; border-top: 1px solid rgba(255,255,255,.24); border-bottom: 1px solid rgba(255,255,255,.24); color: #d1ddec; font: 600 clamp(.875rem, 1.5vw, 1rem)/1.3 var(--mono); text-transform: uppercase; }
.quote-context strong { color: var(--acid); font-size: clamp(1.25rem, 2.2vw, 1.8rem); line-height: 1.15; letter-spacing: -.05em; font-weight: 600; text-align: right; white-space: nowrap; }
.calculator-quote-form { display: grid; gap: .85rem; padding-top: .5rem; }
.calculator-quote-form .form-grid { gap: .7rem; }
.calculator-quote-form .field input { min-height: 46px; }
.quote-submit { width: 100%; margin-top: .25rem; }
.calculator-screen--complete { display: flex; flex-direction: column; min-height: 25rem; }
.complete-copy { margin: 1.35rem 0 2rem; color: #d1ddec; font-size: 1rem; line-height: 1.65; }
.complete-back { align-self: stretch; margin-top: auto; padding: 1rem 0 0; border-top: 1px solid rgba(255,255,255,.24); text-align: left; }

.proof-band { background: var(--acid); color: var(--black); }
.proof-inner { display: grid; grid-template-columns: minmax(280px, .72fr) 1fr; align-items: center; gap: 3rem; padding-block: 3rem; }
.proof-number { font-size: clamp(5rem, 8vw, 9.5rem); line-height: 1; letter-spacing: -.08em; font-weight: 400; }
.proof-number span { font-size: .57em; vertical-align: top; }
.proof-copy { max-width: 560px; }
.proof-copy .eyebrow { margin-bottom: .8rem; }
.proof-copy p:last-child { margin: 0; font-size: clamp(1.05rem, 1.55vw, 1.34rem); line-height: 1.45; }

.press-feature { background: var(--black-2); color: var(--white); }
.press-inner { display: grid; grid-template-columns: minmax(0, .8fr) minmax(0, 1.2fr); align-items: center; gap: clamp(3rem, 7vw, 8rem); padding-block: clamp(3.5rem, 5.5vw, 5.5rem); }
.press-source img { display: block; width: min(100%, 390px); height: auto; filter: brightness(0) invert(1); }
.press-source > p:last-child { max-width: 390px; margin: 1.55rem 0 0; color: #bdbdbd; font-size: .96rem; line-height: 1.5; }
.press-story { border-left: 1px solid rgba(255,255,255,.35); padding-left: clamp(2rem, 4vw, 4rem); }
.press-story h2 { max-width: 720px; margin: 0 0 2rem; font-size: clamp(2.1rem, 3vw, 3.55rem); line-height: 1.14; letter-spacing: -.055em; font-weight: 400; }
.press-link { display: inline-flex; align-items: center; gap: 1.5rem; padding-bottom: .45rem; border-bottom: 1px solid var(--acid); color: var(--acid); font: 600 .73rem/1.4 var(--mono); letter-spacing: .025em; text-transform: uppercase; }
.press-link span { font-size: 1.1rem; line-height: 1; }
.press-link:hover { color: var(--white); border-color: var(--white); }

.section-light { background: var(--cream); color: var(--black); }
.opportunity, .process { padding-block: clamp(5.5rem, 8vw, 9rem); }
.section-intro { display: grid; grid-template-columns: minmax(0, 1fr) minmax(310px, .42fr); column-gap: 3rem; align-items: end; margin-bottom: 4rem; }
.section-intro h2 { max-width: 840px; margin: 0; font-size: clamp(3rem, 5.2vw, 6rem); line-height: 1.05; letter-spacing: -.065em; font-weight: 400; }
.section-intro h2 em { color: #386747; }
.section-intro > p:last-child { margin: 0 0 .35rem; color: #383838; font-size: 1.05rem; line-height: 1.62; }
.data-grid { display: grid; grid-template-columns: repeat(3, 1fr); border-top: 1px solid rgba(0,0,0,.68); }
.data-item { min-height: 195px; padding: 1.5rem 2rem 1.45rem 0; border-bottom: 1px solid rgba(0,0,0,.62); }
.data-item:not(:nth-child(3n + 1)) { padding-left: 1.5rem; border-left: 1px solid rgba(0,0,0,.25); }
.data-item-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 1rem; min-height: 48px; margin-bottom: 1.1rem; }
.data-item-top > span { color: #4a7b5a; font: 600 .68rem/1 var(--mono); }
.data-icon { flex: none; width: 48px; height: 48px; color: #173d30; fill: none; stroke: currentColor; stroke-width: 1.6; stroke-linecap: square; stroke-linejoin: miter; }
.data-icon-accent { fill: var(--acid); stroke: currentColor; stroke-width: 1.4; }
.data-item h3 { margin: 0 0 .35rem; font-size: clamp(1.28rem, 1.6vw, 1.65rem); line-height: 1.22; letter-spacing: -.035em; font-weight: 500; }
.data-item p { margin: 0; color: #515151; font-size: .88rem; line-height: 1.5; }
.source-catalog { margin-top: clamp(2.5rem, 5vw, 4.5rem); padding: clamp(1.4rem, 3vw, 2.5rem); border: 1px solid #c7d7c2; background: radial-gradient(circle at 35% 10%, #f5f9d9, #e9f2e2 75%); }
.source-catalog h3 { margin: 0 0 1.4rem; font-size: clamp(1.5rem, 2.2vw, 2.1rem); font-weight: 500; line-height: 1.2; letter-spacing: -.045em; }
.source-list { display: flex; flex-wrap: wrap; gap: .65rem; max-width: 1100px; margin: 0; padding: 0; list-style: none; }
.source-chip { display: inline-flex; align-items: center; gap: .55rem; min-height: 44px; max-width: 100%; padding: .45rem .8rem; border: 1px solid #c7d8c3; border-radius: 8px; background: rgba(255,255,255,.64); color: #28352e; font-size: .875rem; font-weight: 600; line-height: 1.2; white-space: nowrap; }
.source-chip img { display: block; flex: none; width: 24px; height: 24px; object-fit: contain; }
.source-chip-more { border-color: transparent; background: transparent; color: #315f40; }
.section-end { display: flex; justify-content: space-between; gap: 2rem; align-items: center; margin-top: 2rem; }
.source-catalog + .section-end { margin-top: 2.25rem; }
.section-end-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: .75rem; }
.section-end-solo { justify-content: flex-end; }
.section-end p { margin: 0; color: #3a3a3a; font-size: .89rem; }

.fit-section { padding-block: clamp(5.2rem, 7vw, 8rem); background: var(--black-2); }
.fit-layout { display: grid; grid-template-columns: .85fr 1.15fr; gap: clamp(3rem, 7vw, 8rem); align-items: end; }
.fit-heading h2 { max-width: 600px; margin: 0 0 1.7rem; font-size: clamp(3rem, 4.5vw, 5.15rem); line-height: 1.08; letter-spacing: -.06em; font-weight: 400; }
.fit-heading > p { max-width: 520px; margin: 0 0 2rem; color: #b5b5b5; font-size: 1.04rem; line-height: 1.6; }
.light-link { color: var(--acid); }
.light-link:hover { color: var(--white); }
.fit-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: .65rem; }
.fit-card { display: flex; flex-direction: column; min-height: 270px; padding: 1.2rem; border: 1px solid transparent; color: var(--black); }
.fit-card:nth-child(1) { background: var(--acid); }
.fit-card:nth-child(2) { background: #a7d7f4; }
.fit-card:nth-child(3) { background: var(--cream); }
.fit-card-label { font: 500 .66rem/1.4 var(--mono); text-transform: uppercase; letter-spacing: .025em; }
.fit-card strong { display: block; margin: auto 0 .35rem; font-size: clamp(3.2rem, 4.7vw, 5.5rem); line-height: 1; letter-spacing: -.065em; font-weight: 400; }
.fit-card strong span { font-size: .5em; vertical-align: top; }
.fit-card p { min-height: 2.5rem; margin: 0; font-size: .77rem; line-height: 1.45; color: #26362e; }

.estimate-feature { padding-block: clamp(4.5rem, 7vw, 8rem); border-top: 1px solid rgba(255,255,255,.12); background: #060a13; }
.estimate-feature-inner { width: min(100% - 3.5rem, 860px); }
.estimate-feature .eyebrow { margin-bottom: 1.25rem; }
.estimate-feature .calculator { width: 100%; scroll-margin-top: 1.5rem; }
.estimate-feature .calculator-screen--estimate h2 { max-width: none; }

.process-intro { grid-template-columns: minmax(0, 1fr) minmax(280px, .44fr); }
.steps-grid { display: grid; grid-template-columns: repeat(3, 1fr); margin: 0; padding: 0; list-style: none; border-top: 1px solid var(--black); }
.steps-grid li { min-height: 245px; padding: 1.4rem 1.7rem 1.4rem 0; border-bottom: 1px solid var(--black); }
.steps-grid li:not(:nth-child(3n + 1)) { padding-left: 1.7rem; border-left: 1px solid rgba(0,0,0,.25); }
.steps-grid li > span { display: block; color: #43735a; font: 600 .72rem/1 var(--mono); margin-bottom: 3.3rem; }
.steps-grid h3 { margin: 0 0 .65rem; font-size: clamp(1.35rem, 1.8vw, 1.7rem); font-weight: 500; line-height: 1.15; letter-spacing: -.04em; }
.steps-grid p { max-width: 330px; margin: 0; color: #414141; font-size: .9rem; line-height: 1.5; }

.protection { padding-block: clamp(5.5rem, 8vw, 9rem); background: var(--cobalt); }
.protection-layout { display: grid; grid-template-columns: 1fr .7fr; gap: clamp(3rem, 8vw, 8rem); align-items: start; }
.protection-head h2 { max-width: 830px; margin: 0; font-size: clamp(3rem, 5vw, 6rem); font-weight: 400; letter-spacing: -.06em; line-height: 1.08; }
.protection-head h2 em { color: var(--acid); }
.protection-head > p { max-width: 630px; margin: 1.8rem 0 2.2rem; color: #d5deec; font-size: 1.04rem; line-height: 1.6; }
.protection-points { border-top: 1px solid rgba(255,255,255,.6); }
.protection-points > div { padding: 1.45rem 0 1.8rem; border-bottom: 1px solid rgba(255,255,255,.6); }
.protection-points span { color: var(--acid); font: 500 .68rem/1.4 var(--mono); text-transform: uppercase; letter-spacing: .05em; }
.protection-points h3 { margin: .75rem 0 .4rem; font-size: clamp(1.35rem, 1.65vw, 1.75rem); font-weight: 500; letter-spacing: -.035em; }
.protection-points p { max-width: 470px; margin: 0; color: #d3ddeb; font-size: .9rem; line-height: 1.55; }

.qualification { padding-block: clamp(4.5rem, 6vw, 7rem); }
.qualification-layout { display: flex; align-items: end; justify-content: space-between; gap: clamp(2rem, 6vw, 6rem); }
.qualification-copy h2 { max-width: 820px; margin: 0; font-size: clamp(3rem, 4.6vw, 5.3rem); font-weight: 400; letter-spacing: -.065em; line-height: 1.08; }
.qualification-button { flex: none; white-space: nowrap; }
.form-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }

.faq { padding-block: clamp(5.5rem, 8vw, 9rem); background: var(--black); }
.faq-layout { display: grid; grid-template-columns: .75fr 1.25fr; gap: clamp(3rem, 8vw, 9rem); }
.faq h2 { max-width: 520px; margin: 0; font-size: clamp(3rem, 4.6vw, 5.3rem); font-weight: 400; letter-spacing: -.06em; line-height: 1.07; }
.faq-list { border-top: 1px solid #777; }
.faq-list details { border-bottom: 1px solid #777; }
.faq-list summary { position: relative; padding: 1.55rem 3rem 1.55rem 0; list-style: none; cursor: pointer; font-size: 1.12rem; line-height: 1.3; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary::after { position: absolute; right: .3rem; top: 1.55rem; content: "+"; color: var(--acid); font: 400 1.45rem/1 var(--sans); }
.faq-list details[open] summary::after { content: "−"; }
.faq-list details p { max-width: 650px; margin: -.35rem 3rem 1.5rem 0; color: #bdbdbd; font-size: .94rem; line-height: 1.6; }

.final-cta { padding-block: clamp(5.5rem, 8vw, 9rem); background: var(--acid); color: var(--black); }
.final-inner h2 { max-width: 1090px; margin: 0; font-size: clamp(3.2rem, 6.2vw, 7.3rem); font-weight: 400; letter-spacing: -.066em; line-height: 1.05; }
.final-inner .cta-row { margin-top: 2.7rem; }
.button-dark { background: var(--black); color: var(--white); border-color: var(--black); }
.button-dark:hover { background: #293b31; border-color: #293b31; }
.button-outline-dark { background: transparent; color: var(--black); border-color: var(--black); }
.button-outline-dark:hover { background: var(--black); color: var(--white); }
.site-footer { padding: 2.1rem 0; background: var(--black); border-top: 1px solid #555; }
.footer-inner { display: flex; align-items: center; gap: 2.2rem; color: #bdbdbd; font: .72rem/1.4 var(--mono); }
.footer-wordmark { color: var(--white); font: 500 1.55rem/1 var(--sans); letter-spacing: -.065em; }
.footer-inner p { margin: 0 auto 0 0; }
.footer-inner a:not(.footer-wordmark):hover { color: var(--acid); }

@media (max-width: 680px) {
  .footer-inner { flex-wrap: wrap; gap: 1rem 1.5rem; }
  .footer-inner p { width: calc(100% - 150px); margin-left: auto; }
}

@media (max-width: 1100px) {
  .header-nav { gap: 1rem; }
  .header-nav a { font-size: .66rem; }
  .hero { grid-template-columns: minmax(0, 1fr) minmax(350px, .83fr); gap: 2.3rem; }
  .hero h1 { font-size: clamp(3.5rem, 5vw, 5.5rem); }
  .fit-layout, .protection-layout { gap: 3rem; }
  .fit-cards { grid-template-columns: 1fr 1fr 1fr; }
  .fit-card { padding: .9rem; }
}

@media (max-width: 850px) {
  .shell { width: min(100% - 2.5rem, 1360px); }
  .estimate-feature-inner { width: min(100% - 2.5rem, 860px); }
  .header-inner { min-height: 76px; }
  .header-nav { display: none; }
  .header-cta { margin-left: auto; }
  .header-actions { margin-left: auto; }
  .hero { grid-template-columns: 1fr; padding-top: 4.3rem; gap: 3.6rem; }
  .hero h1 { max-width: 760px; font-size: clamp(3.6rem, 8vw, 6rem); }
  .hero-video { width: 100%; max-width: none; }
  .calculator { max-width: none; }
  .proof-inner { grid-template-columns: 1fr 1fr; gap: 1.8rem; }
  .press-inner { grid-template-columns: 1fr; gap: 2.5rem; }
  .press-source > p:last-child { margin-top: 1.25rem; }
  .press-story { padding-left: 1.5rem; }
  .section-intro, .fit-layout, .protection-layout, .faq-layout { grid-template-columns: 1fr; gap: 2.5rem; }
  .qualification-layout { align-items: start; flex-direction: column; gap: 2rem; }
  .section-intro { margin-bottom: 3rem; }
  .section-intro > p:last-child { max-width: 650px; }
  .fit-cards { max-width: 700px; }
  .protection-points { max-width: 720px; }
}

@media (max-width: 600px) {
  .shell { width: min(100% - 2rem, 1360px); }
  .estimate-feature-inner { width: min(100% - 2rem, 860px); }
  .brand { width: 126px; }
  .header-inner { min-height: 70px; }
  .header-cta { padding: .78rem .7rem; gap: .5rem; font-size: .61rem; }
  .hero { padding-top: 3.7rem; padding-bottom: 5rem; gap: 3rem; }
  .eyebrow { margin-bottom: 1.4rem; font-size: .67rem; }
  .hero h1 { font-size: clamp(3.3rem, 13vw, 5.1rem); letter-spacing: -.065em; }
  .hero-serif { margin-top: 1.4rem; font-size: 1.45rem; }
  .hero-video-frame { min-height: 0; padding: 1rem; }
  .hero-video-play { width: 62px; height: 62px; }
  .cta-row { display: grid; grid-template-columns: 1fr; }
  .button { width: 100%; }
  .calculator { padding: 1.25rem; }
  .calculator-topline { margin-bottom: 1.25rem; padding-bottom: 1.2rem; }
  .quote-context { align-items: flex-start; flex-direction: column; gap: .35rem; }
  .calculator-fields { grid-template-columns: 1fr; }
  .country-buttons { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .choice-buttons span { font-size: .875rem; }
  .proof-inner { grid-template-columns: 1fr; gap: .5rem; padding-block: 2.3rem 2.7rem; }
  .proof-copy { display: contents; }
  .proof-copy .eyebrow { order: -1; margin-bottom: 0; }
  .proof-number { font-size: 6rem; }
  .press-inner { gap: 2rem; padding-block: 3.5rem; }
  .press-source img { width: min(100%, 300px); }
  .press-story { padding-left: 1rem; }
  .press-story h2 { margin-bottom: 1.5rem; font-size: clamp(2rem, 9vw, 2.8rem); }
  .opportunity, .process, .fit-section, .protection, .qualification, .faq, .final-cta { padding-block: 5rem; }
  .section-intro h2, .fit-heading h2, .protection-head h2, .qualification-copy h2, .faq h2 { font-size: clamp(3.1rem, 11vw, 4.5rem); }
  .section-intro { gap: 1.6rem; }
  .data-grid, .steps-grid { grid-template-columns: 1fr 1fr; }
  .data-item, .steps-grid li { min-height: 190px; padding-right: .7rem; }
  .data-item:not(:nth-child(3n + 1)), .steps-grid li:not(:nth-child(3n + 1)) { padding-left: 0; border-left: none; }
  .data-item:nth-child(even), .steps-grid li:nth-child(even) { padding-left: .9rem; border-left: 1px solid rgba(0,0,0,.25); }
  .data-item-top { min-height: 36px; margin-bottom: .8rem; }
  .data-icon { width: 36px; height: 36px; }
  .data-item h3 { font-size: 1.2rem; }
  .data-item p, .steps-grid p { font-size: .82rem; }
  .source-catalog { padding: 1.25rem; }
  .source-list { gap: .5rem; }
  .source-chip { min-height: 40px; padding: .4rem .65rem; font-size: .82rem; }
  .source-chip img { width: 20px; height: 20px; }
  .section-end { align-items: flex-start; flex-direction: column; gap: 1.4rem; }
  .section-end-actions { display: grid; grid-template-columns: 1fr; width: 100%; }
  .fit-cards { grid-template-columns: 1fr 1fr 1fr; gap: .45rem; }
  .fit-card { min-height: 205px; padding: .7rem; }
  .fit-card-label { font-size: .57rem; }
  .fit-card strong { font-size: clamp(2.5rem, 8vw, 4rem); }
  .fit-card p { font-size: .67rem; }
  .steps-grid li > span { margin-bottom: 2rem; }
  .steps-grid h3 { font-size: 1.22rem; }
  .form-grid { grid-template-columns: 1fr; }
  .qualification-copy ul { gap: .7rem; }
  .faq-list summary { font-size: 1rem; }
  .final-inner h2 { font-size: clamp(3.2rem, 11vw, 5rem); }
  .footer-inner { flex-wrap: wrap; gap: 1rem 1.5rem; }
  .footer-inner p { width: calc(100% - 150px); margin-left: auto; }
}

@media (max-width: 520px) {
  .landing-header .header-inner { flex-wrap: wrap; gap: .55rem; padding-block: .6rem; }
  .landing-header .header-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); width: 100%; margin-left: 0; gap: .5rem; }
  .landing-header .header-cta { min-width: 0; gap: .35rem; padding: .72rem .55rem; font-size: clamp(.51rem, 1.65vw, .61rem); }
}

@media (max-width: 370px) {
  .header-cta { font-size: .55rem; }
  .brand { width: 110px; }
  .fit-cards { grid-template-columns: 1fr; }
  .fit-card { min-height: 160px; }
  .fit-card p { min-height: 0; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .button, .header-cta, .header-nav a, .range-track span, .calculator-stage, .calculator-screen, .calculator-link, .calculator-link span { transition: none !important; animation: none !important; } }

.calculator-quote-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
.calculator-quote-form .form-grid { display: contents; }
.calculator-quote-form .quote-website, .calculator-quote-form .quote-submit, .calculator-quote-form .quote-error { grid-column: 1 / -1; }
.quote-error { color: #ffb79f; font-size: .85rem; }
@media(max-width:440px) { .calculator-quote-form { grid-template-columns:1fr; } }
