:root {
  --ink: #0b1e3b;
  --brand: #143970;
  --paper: #f5f8fc;
  --highlight: #d3e3ff;
  --signal: #a9caff;
  --blue: #285a9e;
  --sky: #8ebcff;
  --line: rgba(20, 57, 112, 0.2);
  --muted: #54657d;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
section[id] { scroll-margin-top: 92px; }
body { margin: 0; background: var(--paper); color: var(--ink); font-family: "Manrope", sans-serif; font-size: 16px; line-height: 1.55; overflow-x: hidden; }
a { color: inherit; }
button, textarea { font: inherit; }
button { cursor: pointer; }
a:focus-visible, button:focus-visible, textarea:focus-visible, [tabindex]:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.site-header :focus-visible, .hero :focus-visible, .today :focus-visible, .activation :focus-visible, .lead-section :focus-visible, footer :focus-visible { outline-color: var(--sky); }
[hidden] { display: none !important; }
.skip-link { position: fixed; left: 1rem; top: -5rem; z-index: 1000; background: var(--highlight); padding: .75rem 1rem; border-radius: 999px; }
.skip-link:focus { top: 1rem; }

.site-header { position: fixed; inset: 0 0 auto; z-index: 100; height: 78px; display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; padding: 0 clamp(1.25rem, 4vw, 4.5rem); color: var(--paper); background: rgba(11,30,59,.97); border-bottom: 1px solid rgba(211,227,255,.2); }
.brand { display: inline-flex; align-items: center; flex-shrink: 0; text-decoration: none; background: transparent; padding: .5rem 0; }
.brand-logo { display: block; width: 220px; max-width: 100%; height: auto; }
.header-brand-group { display: flex; align-items: center; gap: 1.2rem; flex-shrink: 0; }
.language-switch { display: flex; padding: 3px; border: 1px solid #7089ad; border-radius: 999px; }
.language-switch a { display: grid; place-items: center; min-width: 40px; min-height: 38px; border-radius: 999px; font: 500 .875rem "DM Mono", monospace; text-decoration: none; color: var(--highlight); }
.language-switch a[aria-current="page"] { background: var(--highlight); color: var(--ink); }
.language-switch a:hover { background: #285a9e; color: #fff; }
.site-header nav { display: flex; align-items: center; gap: clamp(.85rem, 1.8vw, 2rem); font-size: .88rem; font-weight: 600; }
.site-header nav a { text-decoration: none; }
.nav-cta { border: 1px solid currentColor; padding: .65rem 1rem; border-radius: 999px; }
.menu-button { display: none; border: 0; background: transparent; padding: .75rem; }
.menu-button span { display: block; width: 22px; height: 1px; background: currentColor; margin: 5px; }

.hero { min-height: 100vh; background: radial-gradient(ellipse at 95% 25%, #1c467e 0, transparent 55%), var(--ink); color: var(--paper); display: grid; grid-template-columns: minmax(0, 1.03fr) minmax(430px, .97fr); padding: 9rem clamp(1.25rem, 4vw, 4.5rem) 4.5rem; position: relative; }
.hero::after { content: "TERRITORY / 001"; position: absolute; bottom: 1.4rem; left: clamp(1.25rem, 4vw, 4.5rem); font: 400 .67rem "DM Mono"; letter-spacing: .14em; opacity: .45; }
.hero-copy { align-self: center; max-width: 760px; z-index: 2; }
.eyebrow, .section-kicker { font: 500 .72rem "DM Mono", monospace; text-transform: uppercase; letter-spacing: .14em; }
.eyebrow { color: var(--signal); margin-bottom: 2.4rem; }
h1, h2, h3, h4 { font-family: "Manrope", sans-serif; letter-spacing: -.045em; margin-top: 0; }
h1 { font-size: clamp(4rem, 7.2vw, 8rem); line-height: .98; margin-bottom: 2rem; font-weight: 700; }
h1 em, h2 em { color: var(--highlight); font-style: normal; }
.hero-intro { max-width: 650px; font-size: clamp(1.05rem, 1.6vw, 1.35rem); color: rgba(241,244,237,.76); }
.hero-actions { display: flex; align-items: center; gap: 1.7rem; margin-top: 2.4rem; flex-wrap: wrap; }
.button { display: inline-flex; align-items: center; justify-content: space-between; gap: 1rem; padding: 1rem 1.25rem; border-radius: 999px; text-decoration: none; font-weight: 700; }
.button-primary { background: var(--highlight); color: var(--ink); min-width: 260px; }
.button-primary:hover { background: #fff; }
.button-dark { background: var(--ink); color: var(--paper); border: 1px solid var(--ink); }
.button-dark:hover { background: var(--brand); }
.text-link { color: var(--paper); text-decoration-thickness: 1px; text-underline-offset: 5px; }
.hero-trust { display: flex; gap: 1.5rem; padding: 0; margin: 3.2rem 0 0; list-style: none; color: rgba(241,244,237,.62); font: 400 .72rem "DM Mono"; text-transform: uppercase; letter-spacing: .08em; flex-wrap: wrap; }
.hero-trust li::before { content: "●"; color: var(--signal); margin-right: .55rem; }

.territory-stage { position: relative; min-height: 560px; align-self: center; border-left: 1px solid rgba(241,244,237,.15); margin-left: 2rem; overflow: hidden; }
.stage-label { position: absolute; z-index: 4; top: 1.5rem; left: 1.5rem; display: flex; flex-direction: column; }
.stage-label span, .score-card span { font: 400 .65rem "DM Mono"; text-transform: uppercase; letter-spacing: .12em; color: rgba(241,244,237,.55); }
.stage-label b { font-size: .9rem; margin-top: .3rem; }
.terrain { position: absolute; inset: 5rem 0 0 2rem; display: grid; grid-template-columns: repeat(8, 1fr); grid-template-rows: repeat(8, 1fr); gap: 5px; transform: perspective(800px) rotateX(58deg) rotateZ(-19deg) scale(1.18); transform-origin: center; }
.terrain-cell { min-width: 20px; min-height: 20px; background: rgba(241,244,237,.06); border: 1px solid rgba(241,244,237,.08); transition: transform .25s ease, background .25s ease, box-shadow .25s ease; cursor: crosshair; }
.terrain-cell:hover, .terrain-cell.active { transform: translateZ(30px); box-shadow: 0 0 28px var(--cell-color); background: var(--cell-color); }
.score-card { position: absolute; z-index: 5; right: 1.2rem; bottom: 1.2rem; width: 205px; background: rgba(11,30,59,.9); border: 1px solid rgba(211,227,255,.4); padding: 1.1rem; backdrop-filter: blur(10px); border-radius: 8px; }
.score-card strong { display: inline-block; font: 700 3.4rem "Manrope"; color: var(--highlight); line-height: 1; margin-top: .7rem; }
.score-card small { color: rgba(241,244,237,.55); }
.score-bar { height: 3px; background: rgba(241,244,237,.15); margin: .9rem 0 .7rem; }
.score-bar i { display: block; width: 87%; height: 100%; background: var(--highlight); transition: width .25s ease, background .25s ease; }
.score-card p { margin: 0; font-size: .78rem; }
.coordinate { position: absolute; font: 400 .61rem "DM Mono"; letter-spacing: .1em; color: rgba(241,244,237,.35); }
.coordinate-a { left: 1rem; bottom: 1rem; writing-mode: vertical-rl; }
.coordinate-b { right: 1rem; top: 1rem; }

.proof-strip { min-height: 90px; display: flex; align-items: center; justify-content: center; gap: 1.3rem; border-bottom: 1px solid var(--line); padding: 1.25rem; font: 500 .78rem "DM Mono"; text-transform: uppercase; letter-spacing: .07em; }
.proof-strip p { margin: 0; }
.proof-strip span { color: var(--muted); margin-right: .55rem; }
.proof-strip i { width: 48px; height: 1px; background: var(--line); }

.section { padding: clamp(5.5rem, 10vw, 10rem) clamp(1.25rem, 5.2vw, 6.5rem); }
.section-kicker { color: var(--blue); margin: 0 0 1.5rem; }
.manifesto-grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: 8vw; }
.manifesto h2, .section-heading h2, .sat h2, .today h2, .faq h2, .lead-section h2 { font-size: clamp(2.5rem, 4.4vw, 5.2rem); line-height: 1.08; font-weight: 700; margin-bottom: 0; }
.manifesto h2 em { color: var(--blue); }
.manifesto-grid > div { max-width: 600px; align-self: end; font-size: 1.1rem; }
.manifesto-grid > div p:last-child { font-weight: 700; }

.method { background: var(--brand); color: var(--paper); }
.method .section-kicker, .activation .section-kicker { color: var(--signal); }
.section-heading { display: grid; grid-template-columns: 1.35fr .65fr; gap: 8vw; align-items: end; margin-bottom: 5rem; }
.section-heading > p { max-width: 520px; margin: 0; color: var(--muted); }
.method .section-heading > p, .activation .section-heading > p { color: rgba(241,244,237,.62); }
.method-flow { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); border-top: 1px solid rgba(241,244,237,.2); }
.method-flow li { min-height: 270px; padding: 1.2rem; border-right: 1px solid rgba(241,244,237,.18); position: relative; }
.method-flow li:first-child { border-left: 1px solid rgba(241,244,237,.18); }
.method-flow span { font: 400 .68rem "DM Mono"; color: rgba(241,244,237,.42); }
.method-flow b { display: block; font-family: "Manrope"; font-size: 1.35rem; margin-top: 5.4rem; }
.method-flow p { color: rgba(241,244,237,.55); font-size: .9rem; }
.method-flow li::after { content: "→"; position: absolute; top: 1rem; right: 1rem; color: rgba(241,244,237,.3); }
.method-flow li:last-child::after { display: none; }
.method-flow .method-focus { background: var(--highlight); color: var(--ink); transform: translateY(-1rem); }
.method-flow .method-focus span, .method-flow .method-focus p { color: #364e70; }

.layers { background: #fff; }
.layer-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border: 1px solid var(--line); border-radius: 10px; overflow: hidden; }
.layer-card { display: grid; grid-template-columns: auto 1fr; gap: 1.5rem; padding: clamp(1.5rem, 3vw, 3rem); background: var(--paper); }
.layer-card:nth-child(2), .layer-card:nth-child(3) { background: #edf3fc; }
.layer-card:nth-child(odd) { border-right: 1px solid var(--line); }
.layer-card:nth-child(-n+2) { border-bottom: 1px solid var(--line); }
.layer-number { display: grid; place-items: center; width: 44px; height: 44px; color: var(--brand); border: 1px solid #adc5e6; border-radius: 50%; font: 500 .875rem "DM Mono", monospace; }
.layer-question { color: var(--blue); margin: 0 0 .6rem; font-size: .9rem; }
.layer-card h3 { margin-bottom: 1rem; font-size: clamp(1.5rem, 2vw, 2rem); }
.layer-card p { line-height: 1.7; }
.layer-card .layer-source { margin: 1.5rem 0 0; font-size: .875rem; color: var(--muted); border-top: 1px solid var(--line); padding-top: 1rem; }
.layer-takeaway { max-width: 950px; margin: 2rem 0 0; font-size: 1.1rem; }
.sat { background: var(--highlight); }
.sat-main { display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, .8fr); gap: 6vw; align-items: start; }
.sat h2 { font-size: clamp(2.5rem, 4.2vw, 4.7rem); margin-bottom: 2rem; }
.sat-intro > p:not(.section-kicker):not(.data-note) { max-width: 590px; font-size: 1.1rem; }
.data-note { font: 500 .875rem/1.7 "DM Mono"; text-transform: uppercase; margin-top: 2rem; }
.data-note::before { content: "◉"; margin-right: .6rem; }
.sat-example { background: var(--brand); color: #fff; padding: clamp(1.5rem, 3vw, 3rem); border-radius: 10px; box-shadow: 12px 12px 0 #b6cef2; }
.example-label { font: 400 .75rem/1.6 "DM Mono", monospace; color: var(--highlight); margin: 0 0 1.5rem; }
.sat-example h3 { font-size: 1.75rem; line-height: 1.2; margin-bottom: 1rem; }
.sat-example > p:not(.example-label) { color: #d9e6fb; }
.weight-list { margin: 1.5rem 0; }
.weight-list > div { display: flex; justify-content: space-between; gap: 1rem; border-top: 1px solid #57759f; padding: .7rem 0; }
.weight-list dd { font-weight: 700; white-space: nowrap; margin: 0; }
.sat-example-score { display: flex; align-items: center; gap: 1.5rem; border-top: 1px solid #57759f; padding-top: 1.5rem; }
.sat-example-score strong { font-size: 4rem; line-height: 1; letter-spacing: -.05em; color: var(--highlight); }
.sat-example-score strong span { font: 400 1rem "DM Mono", monospace; margin-left: .25rem; }
.sat-example-score p { margin: 0; font-size: .9rem; }
.sat-example .example-note { font-size: .875rem; line-height: 1.65; margin-bottom: 0; }
.sat-process { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 1.5rem; list-style: none; padding: 0; margin: 5rem 0 3rem; }
.sat-process li { border-top: 2px solid var(--brand); padding-top: 1.2rem; }
.sat-process span { font: 500 .75rem "DM Mono", monospace; color: var(--blue); }
.sat-process h3 { margin: 1rem 0; font-size: 1.25rem; letter-spacing: -.025em; }
.sat-process p { margin: 0; }
.sat-output { display: grid; grid-template-columns: .65fr 1.35fr; gap: .5rem 3rem; border-top: 1px solid var(--line); padding-top: 2rem; }
.sat-output h3 { font-size: 2rem; margin: 0; }
.sat-output p { margin: 0; }
.sat-output a { grid-column: 2; justify-self: start; margin-top: 1rem; font-weight: 700; text-underline-offset: 5px; }

.platform { background: #fff; }
.platform .section-heading { margin-bottom: 3rem; }
.platform-preview { margin: 0; border: 1px solid var(--line); background: #fff; box-shadow: 12px 12px 0 #e4edf9; border-radius: 10px; }
.platform-toolbar { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .75rem; padding: 1.1rem 1.5rem; background: var(--ink); color: var(--paper); font: 400 .875rem "DM Mono", monospace; }
.platform-toolbar { border-radius: 9px 9px 0 0; }
.platform-toolbar span:last-child { color: var(--highlight); }
.platform-scroll { overflow-x: auto; overscroll-behavior-inline: contain; scrollbar-color: var(--blue) #e4edf9; padding-top: 1.5rem; }
.platform-preview img { display: block; width: 100%; min-width: 1740px; height: auto; }
.platform-preview figcaption { border-top: 1px solid var(--line); padding: 1.25rem 1.5rem; font-size: .875rem; color: var(--muted); }
.scroll-hint { display: block; color: var(--brand); font-weight: 700; margin-bottom: .5rem; }

.activation { background: var(--ink); color: var(--paper); overflow: hidden; }
.channel-orbit { min-height: 700px; position: relative; max-width: 1200px; margin: 0 auto; }
.channel-orbit::before, .channel-orbit::after { content: ""; position: absolute; border: 1px solid rgba(142,188,255,.3); border-radius: 50%; inset: 10% 22%; }
.channel-orbit::after { inset: 0 12%; border-color: rgba(142,188,255,.16); }
.channel-center { position: absolute; left: 50%; top: 50%; transform: translate(-50%, -50%); z-index: 3; width: 180px; height: 180px; border-radius: 50%; background: var(--sky); color: var(--ink); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; box-shadow: 0 0 80px rgba(103,215,255,.18); }
.channel-center span { font: 500 .68rem "DM Mono"; }
.channel-center b { font: 700 1.8rem/1.15 "Manrope"; }
.channel { position: absolute; width: 250px; border-top: 1px solid rgba(241,244,237,.3); padding-top: .9rem; }
.channel span { font: 500 .68rem "DM Mono"; color: var(--sky); }
.channel b { display: block; font: 700 1.35rem "Manrope"; margin-top: .5rem; }
.channel p { color: rgba(241,244,237,.55); margin: .35rem 0 0; font-size: .88rem; }
.channel-web { left: 2%; top: 12%; }
.channel-dooh { right: 2%; top: 12%; text-align: right; }
.channel-ctv { left: 3%; bottom: 12%; }
.channel-audio { right: 3%; bottom: 12%; text-align: right; }

.cases { background: var(--paper); }
.case-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
.case-card { padding: clamp(1.5rem, 4vw, 4rem); display: flex; flex-direction: column; min-width: 0; border: 1px solid var(--line); border-radius: 10px; }
.case-payments { background: var(--brand); color: #fff; }
.case-recruitment { background: #e1ecff; color: var(--ink); }
.case-top { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; font: 500 .875rem "DM Mono", monospace; }
.case-top small { font-size: .875rem; opacity: .8; }
.case-opening { display: grid; grid-template-columns: 1.2fr .8fr; gap: 5vw; align-items: start; margin-top: 3rem; }
.case-card h3 { font-size: clamp(2rem, 3.5vw, 3.5rem); line-height: 1.12; margin: 0; max-width: 760px; }
.case-brief { padding-bottom: 1.5rem; border-top: 1px solid currentColor; padding-top: 1rem; }
.case-brief > span, .case-insight > span { font: 500 .875rem/1.6 "DM Mono", monospace; }
.case-brief p { margin: .75rem 0 0; }
.case-response { font-weight: 600; font-size: 1.1rem; margin: 2.5rem 0 1.5rem; max-width: 960px; }
.case-crossings, .case-personas { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1.25rem; margin: 0 0 2rem; }
.case-crossings article { padding: 1.5rem; border: 1px solid #6180ad; border-radius: 6px; background: rgba(11,30,59,.2); }
.case-crossings span { color: var(--highlight); font: 500 .75rem "DM Mono", monospace; }
.case-crossings h4 { font-size: 1.3rem; line-height: 1.3; margin: 1rem 0; }
.case-crossings p { color: #e3ecfb; margin: 0; }
.case-contexts h4 { font-size: 1.1rem; letter-spacing: -.015em; margin: 0 0 1rem; }
.persona-list { margin: 0 0 2rem; }
.persona-list > div { padding: .9rem 0; border-bottom: 1px solid rgba(241,244,237,.25); }
.case-recruitment .persona-list > div { border-color: rgba(8,17,15,.25); }
.persona-list dt { font-weight: 700; }
.persona-list dt span { display: inline-block; min-width: 3.6rem; font: 400 .875rem "DM Mono", monospace; margin-right: .5rem; opacity: .85; }
.persona-list dd { margin: .5rem 0 0; font-size: 1rem; }
.travel-context-list { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 1.5rem; }
.travel-context-list dt { color: var(--highlight); }
.travel-context-list dd { font-size: .95rem; }
.case-personas article { padding: 1.5rem; background: rgba(255,255,255,.8); border: 1px solid #b8cbe9; border-top: 3px solid var(--brand); border-radius: 6px; }
.persona-age { color: var(--blue); font: 500 .875rem "DM Mono", monospace; margin: 0 0 1rem; }
.case-personas h4 { font-size: 1.5rem; line-height: 1.25; margin: 0 0 1.5rem; min-height: 3.75em; }
.case-personas dl { margin: 0; }
.case-personas dl > div { border-top: 1px solid var(--line); padding: 1rem 0; }
.case-personas dl > div:last-child { padding-bottom: 0; }
.case-personas dt { color: var(--blue); font: 500 .75rem "DM Mono", monospace; text-transform: uppercase; margin-bottom: .5rem; }
.case-personas dd { margin: 0; }
.case-insight { margin-top: auto; padding: 1.5rem; background: rgba(255,255,255,.09); border-left: 3px solid var(--sky); }
.case-recruitment .case-insight { background: rgba(255,255,255,.6); border-color: var(--brand); }
.case-insight p { margin: .75rem 0 0; }
.case-footnote { font-size: .875rem; line-height: 1.65; margin: 1.25rem 0 0; color: #d0e0f7; }
.case-recruitment .case-footnote { color: #435b7c; }
.case-takeaway { margin: 2rem 0 0; max-width: 900px; }
.case-takeaway a { font-weight: 700; text-underline-offset: 4px; }

.today { background: var(--ink); color: var(--paper); }
.today-panel { display: grid; grid-template-columns: 1.25fr .75fr; gap: 10vw; align-items: center; }
.today .section-kicker { color: var(--signal); }
.today-copy > p:not(.section-kicker) { color: rgba(241,244,237,.65); max-width: 650px; }
.check-list { display: grid; grid-template-columns: repeat(2, 1fr); gap: .7rem; list-style: none; padding: 0; margin: 2rem 0; max-width: 650px; }
.check-list li { border-bottom: 1px solid rgba(241,244,237,.15); padding: .7rem 0; }
.check-list li::before { content: "✓"; color: var(--highlight); margin-right: .6rem; }
.today-copy small { color: rgba(241,244,237,.4); }
.tomorrow-card { background: var(--paper); color: var(--ink); padding: 2.5rem; border-radius: 10px; box-shadow: 12px 12px 0 var(--blue); }
.tomorrow-card span { font: 500 .875rem "DM Mono"; color: var(--blue); }
.tomorrow-card h3 { font-size: clamp(2.2rem, 4vw, 4.4rem); line-height: .95; margin: 4rem 0 1rem; }
.tomorrow-card b { display: block; margin-top: 2rem; border-top: 1px solid var(--line); padding-top: 1rem; }

.faq { display: grid; grid-template-columns: .8fr 1.2fr; gap: 8vw; }
.faq h2 { font-size: clamp(2.4rem, 4vw, 4.5rem); }
.faq-list { border-top: 1px solid var(--line); }
.faq-list details { border-bottom: 1px solid var(--line); }
.faq-list summary { cursor: pointer; list-style: none; display: flex; justify-content: space-between; gap: 1rem; padding: 1.35rem 0; font-weight: 700; }
.faq-list summary::-webkit-details-marker { display: none; }
.faq-list summary span { font-size: 1.5rem; font-weight: 400; transition: transform .2s; }
.faq-list details[open] summary span { transform: rotate(45deg); }
.faq-list details p { margin: 0 0 1.5rem; color: var(--muted); max-width: 720px; }

.lead-section { background: var(--brand); color: #fff; display: grid; grid-template-columns: 1fr 1fr; gap: 8vw; }
.lead-section .section-kicker { color: var(--highlight); }
.lead-section h2 { font-size: clamp(3rem, 5.2vw, 6.2rem); }
.lead-section h2 em { color: var(--signal); }
.lead-copy > p:not(.section-kicker) { max-width: 650px; }
.contact-card { margin-top: 3rem; display: grid; gap: .15rem; font-size: .9rem; }
.contact-card b { font-family: "Manrope"; font-size: 1.15rem; }
.contact-card a { margin: .6rem 0; overflow-wrap: anywhere; }
.lead-copy, .contact-options { min-width: 0; }
.contact-options { background: var(--paper); color: var(--ink); box-shadow: 12px 12px 0 var(--ink); border-radius: 10px; }
.meeting-option, .brief-form { padding: clamp(1.5rem, 3vw, 2.5rem); }
.meeting-option { background: var(--ink); color: var(--paper); border-radius: 10px 10px 0 0; }
.option-label { display: block; font: 500 .875rem "DM Mono", monospace; margin-bottom: 1.25rem; }
.meeting-option .option-label { color: var(--signal); }
.option-copy { margin: 0 0 1.5rem; max-width: 46ch; font-size: 1rem; line-height: 1.65; }
.meeting-option h3 { font-size: clamp(1.8rem, 2.6vw, 2.5rem); line-height: 1.1; margin-bottom: 1.5rem; }
.meeting-option .button { width: 100%; min-width: 0; }
.brief-form label { display: block; font-weight: 700; font-size: 1.2rem; margin-bottom: .8rem; }
.brief-form input[type="email"] { display: block; width: 100%; min-width: 0; border: 1px solid #6c829f; border-radius: 6px; background: #fff; color: var(--ink); padding: .85rem 1rem; font: inherit; font-size: 1rem; margin-bottom: 1.5rem; }
.brief-form textarea { display: block; width: 100%; max-width: 100%; min-height: 180px; resize: vertical; border: 1px solid #6c829f; border-radius: 6px; background: #fff; color: var(--ink); padding: 1rem; line-height: 1.6; }
.brief-form .contact-trap { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.brief-form .button:disabled { opacity: .6; cursor: not-allowed; transform: none; }
.brief-form[aria-busy="true"] .button:disabled { cursor: progress; }
.brief-form textarea::placeholder { color: #52657f; opacity: 1; }
.brief-actions { display: flex; gap: 1rem; align-items: center; flex-wrap: wrap; margin-top: 1rem; }
.brief-actions .button { min-width: 0; }
.brief-help, .brief-status { font-size: .875rem; line-height: 1.6; overflow-wrap: anywhere; }
.brief-help { color: var(--muted); margin: 1rem 0 0; }
.brief-status { margin: .75rem 0 0; font-weight: 600; }
.brief-status:empty { display: none; }
.brief-status.is-success {
  margin-top: 1rem;
  padding: .9rem 1rem;
  border: 1px solid #2f7d57;
  border-radius: 6px;
  background: #e9f6ef;
  color: #145c3b;
}

footer { background: var(--ink); color: var(--paper); padding: 3rem clamp(1.25rem, 5.2vw, 6.5rem); display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: end; }
.footer-brand { justify-self: start; }
footer > p { text-align: right; color: rgba(241,244,237,.5); }
footer > div { grid-column: 1 / -1; display: flex; justify-content: flex-end; gap: 1.2rem; border-top: 1px solid rgba(241,244,237,.12); padding-top: 1rem; font-size: .75rem; color: rgba(241,244,237,.5); }

@media (max-width: 1280px) {
  .site-header nav { position: fixed; inset: 78px 1rem auto; max-height: calc(100dvh - 90px); overflow-y: auto; background: var(--paper); color: var(--ink); padding: 1.5rem; flex-direction: column; align-items: stretch; border: 1px solid var(--line); display: none; }
  .site-header nav.open { display: flex; }
  .menu-button { display: block; color: inherit; }
}

@media (max-width: 980px) {
  .hero { grid-template-columns: 1fr; padding-top: 8.5rem; }
  .territory-stage { min-height: 500px; margin: 3rem 0 0; border: 1px solid rgba(241,244,237,.15); }
  .manifesto-grid, .sat-main, .today-panel, .faq, .lead-section { grid-template-columns: 1fr; }
  .sat-main { gap: 3rem; }
  .sat-example { max-width: 650px; }
  .sat-process { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem; }
  .case-opening { grid-template-columns: 1fr; gap: 2rem; }
  .case-crossings, .case-personas { grid-template-columns: 1fr; }
  .case-personas h4 { min-height: 0; }
  .case-personas dl { display: grid; grid-template-columns: 1fr 1fr; gap: 0 1.5rem; }
  .travel-context-list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .section-heading { grid-template-columns: 1fr; gap: 1.5rem; }
  .method-flow { grid-template-columns: 1fr; }
  .method-flow li { min-height: auto; border-left: 1px solid rgba(241,244,237,.18); border-bottom: 1px solid rgba(241,244,237,.18); }
  .method-flow b { margin-top: 2rem; }
  .method-flow .method-focus { transform: none; }
  .method-flow li::after { transform: rotate(90deg); }
  .case-grid { grid-template-columns: 1fr; }
  .today-panel { gap: 5rem; }
}

@media (max-width: 700px) {
  .site-header { height: 68px; padding: 0 1rem; gap: .5rem; }
  .site-header nav { top: 68px; }
  .brand-logo { width: clamp(110px, 34vw, 174px); }
  .header-brand-group { gap: .6rem; }
  .brand { padding: .5rem 0; }
  h1 { font-size: clamp(3.45rem, 17vw, 5rem); }
  .hero { padding-bottom: 3rem; }
  .territory-stage { min-height: 430px; }
  .terrain { inset: 4rem -2rem 1rem 0; }
  .score-card { width: 175px; }
  .proof-strip { justify-content: flex-start; overflow-x: auto; }
  .proof-strip p { white-space: nowrap; }
  .section { padding-top: 5.5rem; padding-bottom: 5.5rem; }
  .layer-grid { grid-template-columns: 1fr; }
  .layer-card { gap: 1rem; }
  .layer-card:nth-child(n) { border: 0; border-bottom: 1px solid var(--line); }
  .layer-card:last-child { border-bottom: 0; }
  .layer-number { width: 32px; height: 32px; font-size: .75rem; }
  .sat-process, .sat-output { grid-template-columns: 1fr; }
  .sat-output { gap: 1rem; }
  .sat-output a { grid-column: 1; }
  .sat-example { margin-right: .5rem; box-shadow: 8px 8px 0 #b6cef2; }
  .sat-example-score { gap: 1rem; flex-wrap: wrap; }
  .case-personas dl { grid-template-columns: 1fr; }
  .travel-context-list { grid-template-columns: 1fr 1fr; }
  .channel-orbit { min-height: auto; display: grid; grid-template-columns: 1fr; gap: 1rem; }
  .channel-orbit::before, .channel-orbit::after { display: none; }
  .channel-center, .channel { position: static; width: 100%; transform: none; text-align: left; }
  .channel-center { height: 150px; border-radius: 0; align-items: flex-start; padding: 1.5rem; }
  .channel { padding: 1rem 0; }
  .case-top { flex-direction: column; gap: .3rem; }
  .case-card h3 { margin-top: 0; }
  .persona-list dd { margin-left: 0; }
  .case-insight { padding: 1.2rem; }
  .check-list { grid-template-columns: 1fr; }
  .contact-options { margin-right: .5rem; box-shadow: 8px 8px 0 var(--ink); }
  .platform-preview { box-shadow: 6px 6px 0 rgba(8,17,15,.08); }
  footer { grid-template-columns: 1fr; }
  footer > p { text-align: left; }
  footer > div { justify-content: flex-start; flex-wrap: wrap; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
/* Shared layout for the conversion journey, geographic simulation and detailed pages. */
.section { padding: clamp(5rem, 8vw, 8rem) clamp(1.25rem, 5.2vw, 6.5rem); }
main[id], section[id] { scroll-margin-top: 94px; }
section[tabindex="-1"]:focus, main[tabindex="-1"]:focus { outline: none; }
.site-header a, .inline-link, .text-link { cursor: pointer; }
.section-heading { margin-bottom: clamp(3.5rem, 5vw, 5rem); gap: 6vw; }
.section-heading h2, .faq h2, .lead-section h2 { font-size: clamp(2.1rem, 3.6vw, 4rem); }
.section-kicker, .eyebrow { font-size: .78rem; letter-spacing: .09em; }
.hero { min-height: 760px; min-height: min(960px, 100svh); grid-template-columns: minmax(0,1.1fr) minmax(0,.9fr); gap: 3vw; padding-top: 8.5rem; padding-bottom: 3rem; }
.hero::after { display: none; }
.hero h1 { font-size: clamp(3rem, 4.7vw, 5.8rem); line-height: 1.06; letter-spacing: -.06em; }
.hero .eyebrow { margin-bottom: 1.7rem; }
.hero-intro { font-size: clamp(1rem, 1.4vw, 1.2rem); color: #c4d3e8; max-width: 620px; }
.hero-actions { gap: 1.3rem; margin-top: 2rem; }
.hero-actions .button { min-width: 0; }
.hero-trust { margin-top: 2rem; gap: .65rem 1.5rem; color: #bfd0e8; font-size: .75rem; text-transform: none; letter-spacing: 0; }
.hero-geography { align-self: center; margin: 0; min-width: 0; border: 1px solid #49658b; border-radius: 12px; overflow: hidden; background: radial-gradient(ellipse at 48% 47%,#123b6b 0%,#0b2143 68%,#081a34 100%); }
.map-topline { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .75rem; padding: 1rem 1.25rem; border-bottom: 1px solid #49658b; font: 400 .7rem 'DM Mono',monospace; color: #d3e3ff; }
.geo-map { display: block; width: 100%; height: auto; color: #a9caff; }
.hero-geography .geo-map { max-height: 490px; }
.map-land { fill: #1d467b; stroke: #7598c5; stroke-width: 1.3; stroke-linejoin: round; }
.map-land.belgium { fill: #345f99; }
.map-country { fill: #c5d9f5; font: 500 13px 'DM Mono',monospace; letter-spacing: 3px; }
.map-country-line { fill: none; stroke: #a9caff; }
.map-water { fill: #9cb9df; font: 400 9px 'DM Mono',monospace; letter-spacing: 2px; }
.hero-map-point circle:first-child { fill: #a9caff; fill-opacity: .14; stroke: #a9caff; stroke-width: 1; }
.hero-map-point circle:last-child { fill: #e4eeff; }
.hero-geography figcaption { padding: 1rem 1.25rem; border-top: 1px solid #49658b; font-weight: 600; }
.hero-geography figcaption small { display: block; font-size: .73rem; font-weight: 400; color: #b6c9e4; margin-top: .25rem; }
.hero-geography .world-map { width: 100%; aspect-ratio: 720/390; margin: 1.25rem 0; }
.world-premium-outline { fill: none; stroke: #6ca9ef; stroke-width: .6; stroke-opacity: .28; stroke-linejoin: round; }
.world-outlines { fill: #284f81; stroke: #88acd9; stroke-width: 1; stroke-linejoin: round; }
.world-patches { fill: #d3e3ff; opacity: .6; }
.world-equator { stroke: #a9caff; stroke-width: .7; stroke-dasharray: 3 7; opacity: .3; }
.offer { background: white; }
.offer-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: clamp(2rem, 3vw, 3.5rem); }
.offer-grid article { padding: 2rem 0 .5rem; border-top: 2px solid var(--brand); }
.step-index { font: 400 .85rem 'DM Mono',monospace; color: var(--blue); }
.offer-grid h3 { font-size: 1.5rem; margin: 1.25rem 0 .75rem; letter-spacing: -.035em; }
.offer-grid p { margin: 0; max-width: 420px; color: var(--muted); }
.simulator { background: #edf3fc; }
.demo-notice { color: var(--muted); font-size: .85rem; margin: -.75rem 0 2rem; }
.scenario-picker { margin: 0 0 2.5rem; }
.scenario-picker > p { font-weight: 700; margin: 0 0 .75rem; }
.scenario-picker .sim-presets { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 1rem; margin: 0; }
.scenario-picker .sim-presets button { display: flex; gap: .75rem; align-items: center; padding: 1.25rem; border-radius: 8px; background: #fff; text-align: left; font-size: 1rem; font-weight: 700; }
.scenario-picker .sim-presets button span { font: 500 .8rem 'DM Mono',monospace; opacity: .75; }
.scenario-picker .sim-presets button:hover { background: #d3e3ff; }
.scenario-picker .sim-presets button[aria-pressed=true] { background: var(--brand); color: #fff; border-color: var(--brand); }
.scenario-brief { border-left: 3px solid var(--brand); padding-left: 1rem; margin-bottom: 1.5rem; }
.scenario-brief h3 { margin: 0 0 .6rem; font-size: .875rem; letter-spacing: 0; color: var(--blue); }
.scenario-brief p { margin: 0; font-size: 1.05rem; }
.sim-layout { display: grid; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); gap: clamp(2.5rem,5vw,5rem); align-items: start; }
.sim-profiles { min-width: 0; }
.sim-profiles > #simulation-result > .scenario-label { margin-top: 0; border-top: 0; padding-top: 0; }
.sim-presets { display: flex; flex-wrap: wrap; gap: .5rem; margin: .8rem 0 1rem; }
.sim-presets button { padding: .55rem .85rem; border: 1px solid #7998c4; border-radius: 999px; background: transparent; color: var(--brand); font-size: .875rem; }
.sim-presets button:hover { background: #fff; }
.scenario-label { font-size: .85rem; color: var(--blue); font-weight: 600; border-top: 1px solid #a9bddb; padding-top: 1rem; }
.persona-tabs { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: .5rem; margin: 1rem 0; }
.persona-tabs button { min-width: 0; min-height: 60px; padding: .65rem; border: 1px solid #7899c5; border-radius: 7px; background: #fff; color: var(--brand); font: 600 .8rem/1.4 'Manrope',sans-serif; text-align: left; }
.persona-tabs button[aria-pressed=true] { color: #fff; background: var(--brand); }
.persona-tag { font: 500 .75rem 'DM Mono',monospace; color: var(--blue); }
.simulation-persona h3 { font-size: 1.7rem; line-height: 1.2; margin-bottom: .75rem; }
.simulation-persona > p:not(.persona-tag):not(.small-note) { margin: .75rem 0; }
.persona-crossing { border-left: 3px solid var(--brand); padding: .5rem 0 .5rem 1rem; margin: 1.25rem 0; }
.persona-crossing strong { font-size: .875rem; color: var(--blue); }
.persona-crossing p { font-size: .95rem; font-weight: 600; line-height: 1.6; margin: .5rem 0 0; }
.simulation-persona details { border-top: 1px solid #a9bddb; border-bottom: 1px solid #a9bddb; padding: .9rem 0; }
.simulation-persona summary { cursor: pointer; font-weight: 700; font-size: .9rem; }
.simulation-persona details > p { margin: .5rem 0 1rem; font-size: .9rem; }
.simulation-persona details > strong { font-size: .9rem; }
.simulation-layers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 1rem; margin: 1.25rem 0; }
.simulation-layers dt { font: 500 .73rem 'DM Mono',monospace; color: var(--blue); margin-bottom: .5rem; }
.simulation-layers dd { margin: 0; font-size: .875rem; }
.small-note { font-size: .83rem; color: var(--muted); line-height: 1.6; margin: 1.25rem 0 0; }
.method-summary { background: #fff; color: var(--ink); }
.method-summary .section-kicker { color: var(--blue); }
.method-summary .section-heading > p { color: var(--muted); }
.compact-layers { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 1.5rem; list-style: none; padding: 0; margin: 0 0 2.5rem; }
.compact-layers li { background: #edf3fc; border-top: 3px solid var(--brand); border-radius: 0 0 8px 8px; padding: 1.5rem; }
.compact-layers a { display: block; text-decoration: none; border-radius: 4px; }
.compact-layers a:hover h3 { text-decoration: underline; text-underline-offset: 5px; }
.compact-layers span { font: 500 .8rem 'DM Mono',monospace; color: var(--blue); }
.compact-layers h3 { font-size: 1.2rem; margin: 1rem 0 .5rem; letter-spacing: -.02em; }
.compact-layers p { margin: 0; font-size: .95rem; color: var(--muted); }
.inline-link { display: inline-block; font-weight: 700; text-underline-offset: 5px; margin-top: 1rem; }
.case-teasers { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 2rem; }
.case-teaser { padding: clamp(1.5rem,3vw,3rem); border-radius: 10px; display: flex; flex-direction: column; }
.case-teaser.dark { background: var(--brand); color: #fff; }
.case-teaser.pale { background: var(--highlight); color: var(--ink); }
.case-teaser.dark .section-kicker { color: var(--highlight); }
.case-teaser h3 { font-size: clamp(1.9rem,3vw,2.8rem); line-height: 1.1; margin-bottom: 1rem; }
.case-teaser > p:not(.section-kicker) { margin: .5rem 0; }
.case-teaser .case-value { padding-top: 1rem; border-top: 1px solid #819ac0; }
.case-teaser .inline-link { margin-top: auto; padding-top: 1.5rem; }
.faq { background: white; gap: 7vw; }
.faq-intro { min-width: 0; }
.faq summary { line-height: 1.4; }
.faq-list summary { padding: 1.65rem 0; }
.faq-list details p { margin-bottom: 2rem; line-height: 1.75; }
.faq-visual { margin: 2.75rem 0 0; min-width: 0; }
.faq-visual .territory-stage { min-height: 370px; margin: 0; border: 0; overflow: hidden; }
.faq-visual .terrain { inset: 2rem -1.5rem 0 -1.5rem; opacity: .96; }
.faq-visual .terrain-cell { background: #eef4fd; border-color: #d7e4f5; }
.faq-visual .stage-label { top: .25rem; left: .25rem; }
.faq-visual .stage-label span { color: #5d7190; }
.faq-visual .stage-label b { color: var(--ink); }
.faq-visual .score-card { right: .25rem; bottom: .25rem; }
.faq-visual .terrain-cell:focus-visible { outline-color: var(--blue); outline-width: 3px; z-index: 6; }
.lead-section { background: #edf3fc; color: var(--ink); gap: 7vw; }
.lead-section .section-kicker { color: var(--blue); }
.lead-section h2 em { color: var(--brand); }
.lead-section :focus-visible { outline-color: var(--blue); }
.lead-section .contact-card { margin-top: 1.5rem; }
.contact-options { background: #fff; box-shadow: 12px 12px 0 #c9d9ef; }
.meeting-option { background: var(--brand); }
.contact-card a { margin: .3rem 0; }
.contact-card span a { text-decoration: none; }
.radar-preview { position: relative; isolation: isolate; overflow: hidden; max-width: 550px; min-height: 310px; margin-top: clamp(2.5rem,5vw,4.5rem); padding: 2rem; border-radius: 12px; background: radial-gradient(circle at 76% 24%,#214b83 0%,#112c56 40%,#0b1e3b 100%); color: #f5f9ff; box-shadow: 0 20px 50px rgba(14,45,91,.14); }
.radar-preview::after { content: ""; position: absolute; inset: 0; z-index: -1; background: repeating-radial-gradient(circle at 80% 31%,transparent 0 35px,rgba(132,196,255,.12) 36px,transparent 37px); mask-image: linear-gradient(90deg,transparent 30%,black 100%); }
.radar-kicker { display: block; font: 600 .7rem 'DM Mono',monospace; letter-spacing: .1em; color: #a9d7ff; }
.radar-preview h3 { position: relative; max-width: 360px; margin: 5.3rem 0 .6rem; font-size: clamp(1.4rem,2.1vw,2rem); line-height: 1.2; letter-spacing: -.035em; }
.radar-preview p { position: relative; max-width: 47ch; margin: 0; color: #d0dff5; font-size: .88rem; line-height: 1.65; }
.radar-orbit { position: absolute; inset: 0; pointer-events: none; }
.radar-orbit span, .radar-orbit i { position: absolute; width: 6px; height: 6px; border-radius: 50%; background: #9de9ff; box-shadow: 0 0 13px 5px rgba(97,186,255,.52); }
.radar-orbit span:nth-child(1) { left: 76%; top: 19%; }
.radar-orbit span:nth-child(2) { left: 88%; top: 40%; width: 4px; height: 4px; }
.radar-orbit span:nth-child(3) { left: 68%; top: 47%; width: 4px; height: 4px; }
.radar-orbit i { left: 81%; top: 31%; width: 8px; height: 8px; }
.brief-form textarea { min-height: 135px; }
.brief-actions .button { border-radius: 999px; font-size: .9rem; }
.detail-hero { background: radial-gradient(ellipse at top right,#214b81,transparent 70%),var(--ink); color: #fff; padding: 9rem clamp(1.25rem,5.2vw,6.5rem) 5.5rem; }
.breadcrumbs { color: #b8cfea; font-size: .875rem; margin-bottom: 3rem; }
.breadcrumbs a { text-underline-offset: 4px; }
.detail-hero .eyebrow { margin-bottom: 1.25rem; }
.detail-hero h1 { font-size: clamp(3rem,5.5vw,6rem); line-height: 1.05; }
.detail-hero > p:not(.eyebrow) { font-size: 1.15rem; color: #c5d8ef; max-width: 750px; }
.detail-hero > .text-link { display: inline-block; margin-top: 1rem; }
.sat-main { grid-template-columns: 1fr; }
.sat-intro { max-width: 900px; }
.sat-intro > p:not(.section-kicker):not(.data-note) { max-width: 850px; }
.sat-process { margin-top: 3.5rem; }
.sat h2 { font-size: clamp(2.4rem,4vw,4rem); }
.checker-section { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); gap: 5vw; background: var(--ink); color: #fff; align-items: center; }
.checker-section .section-kicker { color: var(--highlight); }
.checker-section h2 { font-size: clamp(2.2rem,3.5vw,3.5rem); line-height: 1.1; }
.checker-section > div > p:not(.section-kicker) { color: #c5d8ef; }
.checker-section .territory-stage { margin: 0; border: 1px solid #537299; border-radius: 10px; width: 100%; min-height: 440px; }
.sat-illustration { margin: 0; min-width: 0; }
.sat-illustration figcaption { color: #bfd0e8; font-size: .8rem; margin-top: .65rem; }
.checker-section .terrain { inset: 3rem 0 0 0; }
.checker-section .terrain-cell:focus-visible { outline-color: #fff; outline-width: 3px; z-index: 6; }
.checker-section .score-card span, .checker-section .stage-label span { color: #b9cce6; }
.case-detail { padding-top: 4.5rem; }
.case-detail .case-opening { margin-top: 3rem; }
.case-detail .case-opening h2 { font-size: clamp(2rem,3.7vw,3.7rem); line-height: 1.1; }
.case-detail .case-crossings h3, .case-detail .case-personas h3 { font-size: 1.45rem; margin: 1rem 0; line-height: 1.25; }
.case-detail .case-contexts h3 { font-size: 1.2rem; margin: 1.5rem 0 1rem; }
.detail-cta { display: grid; grid-template-columns: 1.2fr .8fr; gap: 5vw; background: var(--highlight); }
.detail-cta h2 { font-size: clamp(1.8rem,3vw,3rem); line-height: 1.2; }
.detail-cta > div:last-child { display: flex; flex-direction: column; align-items: start; justify-content: center; }
.detail-cta .button-primary { background: var(--ink); color: #fff; min-width: 0; }
footer > p { color: #b4c8e5; }
footer > .footer-links { font-size: .85rem; color: #bdd0ea; flex-wrap: wrap; justify-content: flex-start; }
.footer-links nav { display: flex; flex-wrap: wrap; gap: .25rem 1.4rem; }
.footer-links nav a { display: inline-flex; align-items: center; min-height: 44px; text-underline-offset: 5px; }
.footer-links > span { align-self: center; margin-left: auto; }
footer .privacy-note { grid-column: 1/-1; text-align: left; margin: 0; font-size: .8rem; color: #a8bedc; }
.footer-legal { grid-column: 1/-1; }
.footer-legal nav { display: flex; flex-wrap: wrap; gap: .35rem 1.4rem; align-items: center; }
.footer-legal a, .footer-link-button { display: inline-flex; min-height: 44px; align-items: center; color: #bdd0ea; text-decoration: underline; text-underline-offset: 5px; font: inherit; }
.footer-link-button { padding: 0; border: 0; background: transparent; }
.footer-link-button:hover, .footer-legal a:hover { color: #fff; }

.legal-hero { min-height: 520px; }
.legal-hero h1 { max-width: 1050px; font-size: clamp(2.8rem, 5vw, 5.5rem); }
.legal-hero .legal-updated { margin-top: 1.5rem; font-size: .9rem; color: #a9caff; }
@media (min-width: 1200px) {
  .page-sitePrivacy .legal-hero h1 { max-width: none; font-size: clamp(3.6rem, 4.35vw, 4.75rem); white-space: nowrap; }
  .page-sitePrivacy .legal-hero > p:not(.eyebrow):not(.legal-updated) { max-width: none; white-space: nowrap; }
}
.legal-content { max-width: 1120px; margin: 0 auto; }
.legal-content > section { padding: 0 0 3.2rem; margin: 0 0 3.2rem; border-bottom: 1px solid var(--line); }
.legal-content > section:last-child { border-bottom: 0; margin-bottom: 0; }
.legal-content h2 { font-size: clamp(1.65rem, 2.7vw, 2.5rem); margin-bottom: 1.25rem; }
.legal-content p, .legal-content li, .legal-content dd { line-height: 1.8; }
.legal-content p, .legal-content ul { max-width: 900px; }
.legal-content li + li { margin-top: .65rem; }
.legal-content a { color: var(--blue); text-underline-offset: 4px; overflow-wrap: anywhere; }
.legal-content code { padding: .15rem .35rem; border-radius: 4px; background: #e8eff9; color: var(--ink); }
.legal-facts { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 0 2.5rem; margin: 0; }
.legal-facts div { padding: 1rem 0; border-top: 1px solid var(--line); }
.legal-facts dt { color: var(--muted); font-size: .875rem; margin-bottom: .3rem; }
.legal-facts dd { margin: 0; font-weight: 600; }
.legal-table { border: 1px solid var(--line); border-radius: 8px; overflow: hidden; max-width: 960px; }
.legal-table [role="row"] { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); }
.legal-table [role="row"] + [role="row"] { border-top: 1px solid var(--line); }
.legal-table [role="cell"], .legal-table [role="columnheader"] { padding: 1rem 1.15rem; }
.legal-table [role="cell"] + [role="cell"], .legal-table [role="columnheader"] + [role="columnheader"] { border-left: 1px solid var(--line); }
.legal-table [role="columnheader"] { background: #e8eff9; }

.cookie-dialog { width: min(680px, calc(100vw - 2rem)); max-height: calc(100dvh - 2rem); padding: 0; border: 0; border-radius: 12px; color: var(--ink); background: #fff; box-shadow: 0 28px 90px rgba(3, 16, 34, .35); }
.cookie-dialog::backdrop { background: rgba(4, 15, 32, .7); }
.cookie-dialog-inner { position: relative; padding: clamp(1.5rem, 4vw, 2.75rem); }
.cookie-dialog h2 { font-size: clamp(1.8rem, 4vw, 2.7rem); margin-bottom: 1rem; }
.cookie-dialog-close { position: absolute; top: 1rem; right: 1rem; display: grid; place-items: center; width: 44px; height: 44px; border: 1px solid var(--line); border-radius: 50%; background: #fff; color: var(--ink); font-size: 1.5rem; }
.cookie-category { margin: 1.5rem 0; padding: 1.25rem; border: 1px solid var(--line); border-radius: 8px; background: #f4f7fb; }
.cookie-category > div { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; }
.cookie-category span { color: #17603f; font-size: .875rem; font-weight: 700; }
.cookie-category p { margin: .75rem 0 0; color: var(--muted); }
.cookie-dialog-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; }
.cookie-secondary { border: 1px solid var(--brand); background: #fff; color: var(--brand); }
.cookie-status { min-height: 1.5rem; color: #17603f; font-weight: 700; }
/* Keep small navigation and explanatory labels readable and easy to reach. */
.hero-trust, .hero-geography figcaption small, .demo-notice, .scenario-label,
.persona-tag, .simulation-layers dt, .small-note,
.sat-illustration figcaption, footer .privacy-note { font-size: .875rem; }
.persona-tabs button { font-size: .875rem; }
.language-switch a { min-width: 44px; min-height: 44px; }
.site-header nav a, .inline-link, .text-link, .contact-card a { display: inline-flex; align-items: center; min-height: 44px; }
summary:focus-visible { outline: 3px solid var(--blue); outline-offset: 5px; }
.detail-hero :focus-visible, .method-summary :focus-visible, .case-teaser.dark :focus-visible { outline-color: var(--highlight); }
.brief-form :focus-visible { outline-color: var(--blue); }
@media(max-width:1280px) { .site-header nav :focus-visible { outline-color: var(--blue); } }
@media(min-width:1500px) { .hero { padding-left: max(4rem,calc((100vw - 1600px)/2)); padding-right: max(4rem,calc((100vw - 1600px)/2)); } }
@media(max-width:1100px) { .hero { min-height: auto; } .hero h1 { font-size: clamp(2.7rem,4.5vw,4.5rem); } .compact-layers { grid-template-columns: repeat(2,minmax(0,1fr)); } }
@media(max-width:800px) {
  .hero { grid-template-columns: 1fr; padding-top: 7rem; gap: 2rem; }
  .hero h1 { font-size: clamp(2.8rem,7.5vw,4.5rem); }
  .hero-geography { width: 100%; max-width: 600px; justify-self: center; }
  .hero-geography .geo-map { max-height: 360px; }
  .offer-grid { grid-template-columns: 1fr; gap: 2rem; }
  .offer-grid article { display: grid; grid-template-columns: 2rem 1fr; gap: .5rem; }
  .offer-grid h3 { margin: 0; }
  .offer-grid p { grid-column: 2; max-width: none; }
  .sim-layout { grid-template-columns: 1fr; }
  .case-teasers, .checker-section, .detail-cta { grid-template-columns: 1fr; }
  .checker-section { gap: 2rem; }
  .faq-visual { margin-top: 2rem; max-width: 640px; }
  .faq-visual .territory-stage { min-height: 350px; }
  .detail-hero { padding-top: 7rem; }
  .detail-hero h1 { font-size: clamp(2.8rem,7.5vw,4.5rem); }
  .platform-preview img { min-width: 1200px; }
  .legal-facts { grid-template-columns: 1fr; }
  .legal-table [role="row"] { grid-template-columns: 1fr; }
  .legal-table [role="cell"] + [role="cell"], .legal-table [role="columnheader"] + [role="columnheader"] { border-left: 0; border-top: 1px solid var(--line); }
  .radar-preview { min-height: 0; margin-top: 2rem; }
  .radar-preview h3 { margin-top: 3rem; }
}
@media(max-width:450px) {
  .scenario-picker .sim-presets { grid-template-columns: 1fr; }
  .footer-links > span { margin-left: 0; }
  .persona-tabs { grid-template-columns: 1fr; }
  .hero h1 { font-size: clamp(2.3rem,9vw,3rem); }
  .section { padding-top: 4.5rem; padding-bottom: 4.5rem; }
  .hero-actions { align-items: stretch; flex-direction: column; }
  .hero-actions .text-link { align-self: flex-start; }
  .compact-layers, .simulation-layers { grid-template-columns: 1fr; }
  .compact-layers { gap: 1.25rem; }
  .compact-layers h3 { margin-top: .5rem; }
  .button { max-width: 100%; font-size: .9rem; gap: .5rem; }
  .checker-section .territory-stage { min-height: 390px; }
  .faq-visual .territory-stage { min-height: 310px; }
  .faq-visual .terrain { inset: 2.5rem -3.5rem 0 -2.5rem; }
  .faq-visual .score-card { width: 165px; }
  .travel-context-list { grid-template-columns: 1fr; }
}

/* TPTA platform overview — 7 October 2026 */
.platform-overview .platform-overview-image { padding: 0; overflow: hidden; background: #f7f9fc; }
.platform-overview img { width: 100%; min-width: 0; max-width: 100%; height: auto; }
.platform-overview .platform-toolbar { font-size: .75rem; }
@media (max-width: 600px) {
  .platform-overview .platform-toolbar { padding: .8rem 1rem; gap: .5rem; }
  .platform-overview figcaption { padding: 1rem; }
}
