/* ================================================================
 Helvetic Assist — Feuille de styles globale
 Thème : Helvetic Editorial (pin + ivoire + laiton + Fraunces)
 ================================================================ */

:root{
 --pine:#1a2e3b; --pine-2:#2d4a5e;
 --ivory:#FFFFFF; --ivory-2:#F1F5F9;
 --brass:#c8a84b; --brass-2:#b08e36;
 --ink:#1E293B; --clay:#c8a84b;
 --paper:#FFFFFF; --rule:#E5E7EB;
 --mute:#64748B;
 --shadow:0 1px 0 rgba(14,14,12,.04), 0 24px 48px -24px rgba(19,53,42,.18);
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{scroll-behavior:smooth}
body{
 background:var(--paper); color:var(--ink);
 font-family:"Helvetica Neue", ui-sans-serif, system-ui, sans-serif;
 font-size:16px; line-height:1.55;
 -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
 overflow-x:hidden;
}
body::before{
 content:""; position:fixed; inset:0; pointer-events:none; z-index:1;
 background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.06 0 0 0 0 0.06 0 0 0 0 0.04 0 0 0 0.07 0'/></filter><rect width='100%25' height='100%25' filter='url(%23n)'/></svg>");
 mix-blend-mode:multiply; opacity:.55;
}
a{color:inherit;text-decoration:none}
img,svg{max-width:100%;display:block}
.wrap{max-width:1240px;margin:0 auto;padding:0 32px;position:relative;z-index:2}
@media (max-width:720px){ .wrap{padding:0 20px} }

.display{
 font-family: 'Helvetica Neue', Arial, sans-serif;
 font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 1;
 font-weight:380; letter-spacing:-.02em; line-height:.95;
}
.italic{font-style:italic; font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1;}
.label{
 font-family:"JetBrains Mono",ui-monospace,monospace;
 font-size:11px; letter-spacing:.22em; text-transform:uppercase;
 color:var(--brass-2); font-weight:500;
}
.mono{font-family:"JetBrains Mono",monospace}

/* PROMO BAND */
.promo{
 background:var(--pine); color:var(--ivory);
 font-size:12px; letter-spacing:.18em; text-transform:uppercase;
 text-align:center; padding:10px 16px;
 font-family:"JetBrains Mono",monospace; font-weight:500;
 border-bottom:1px solid rgba(255,255,255,.08);
}
.promo b{color:var(--brass); font-weight:500; margin:0 10px}

/* NAV */
nav.top{
 position:sticky; top:0; z-index:30;
 background:color-mix(in srgb,var(--paper) 88%,transparent);
 backdrop-filter:saturate(140%) blur(10px);
 border-bottom:1px solid var(--rule);
}
nav.top .inner{display:flex; align-items:center; justify-content:space-between; padding:14px 0; gap:24px}
.brand{display:flex; align-items:center; gap:14px}
.brand img{height:52px; width:auto; display:block}
@media (max-width:720px){ .brand img{height:44px} }
.navlinks{display:flex; gap:26px; align-items:center}
.navlinks a{font-size:14px; color:var(--pine); opacity:.8}
.navlinks a:hover{opacity:1}
.navlinks a.active{opacity:1; color:var(--brass-2)}
.lang{
 font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.18em;
 border:1px solid var(--rule); border-radius:999px;
 padding:6px 10px; color:var(--pine);
}
.lang a{margin:0 2px}
.lang b{font-weight:500; color:var(--brass-2)}
.lang span{opacity:.35; margin:0 4px}
@media (max-width:960px){ .navlinks a:not(.cta-nav).lang{display:none} }

.btn{
 display:inline-flex; align-items:center; gap:10px;
 padding:14px 22px; border-radius:2px;
 font-size:14px; letter-spacing:.02em;
 background:var(--pine); color:var(--ivory);
 border:1px solid var(--pine); cursor:pointer;
 transition:transform .25s ease,background .25s ease,box-shadow .25s ease;
}
.btn:hover{background:var(--pine-2); transform:translateY(-1px); box-shadow:0 12px 24px -14px rgba(19,53,42,.6)}
.btn .arrow{transition:transform .25s ease}
.btn:hover .arrow{transform:translateX(4px)}
.btn.ghost{background:transparent; color:var(--pine)}.btn.ghost:hover{background:var(--pine); color:var(--ivory); border-color:var(--pine)}
.btn.brass{background:var(--brass); border-color:var(--brass); color:var(--ink)}
.btn.brass:hover{background:var(--brass-2); color:var(--ivory)}
.btn.sm{padding:10px 16px; font-size:13px}

/* HERO */
header.hero{position:relative; padding:56px 0 40px; overflow:hidden}
.cross-wm{position:absolute; right:-40px; top:40px; width:520px; height:520px; opacity:.045; pointer-events:none}
.cross-wm svg{width:100%;height:100%}
.mountain{position:absolute; left:0; right:0; bottom:-1px; height:220px; pointer-events:none}
.mountain svg{width:100%; height:100%}
.mountain path{
 fill:none; stroke:var(--pine); stroke-width:1.2;
 stroke-dasharray:3000; stroke-dashoffset:3000;
 animation:draw 2.6s .4s cubic-bezier(.2,.7,.2,1) forwards; opacity:.18;
}
@keyframes draw{to{stroke-dashoffset:0}}
.hero-grid{display:grid; grid-template-columns:1.1fr .9fr; gap:56px; align-items:end; margin-top:40px}
@media (max-width:960px){ .hero-grid{grid-template-columns:1fr; gap:40px; margin-top:20px} }

.eyebrow{
 display:inline-flex; align-items:center; gap:10px;
 padding:6px 12px; border:1px solid var(--rule); border-radius:999px;
 background:color-mix(in srgb,var(--ivory) 50%,transparent);
}
.eyebrow .dot{
 width:6px;height:6px;border-radius:50%;
 background:var(--clay);
 box-shadow:0 0 0 3px color-mix(in srgb,var(--clay) 25%,transparent);
 animation:pulse 2.4s infinite;
}
@keyframes pulse{
 0%,100%{box-shadow:0 0 0 3px color-mix(in srgb,var(--clay) 25%,transparent)}
 50%{box-shadow:0 0 0 7px color-mix(in srgb,var(--clay) 0%,transparent)}
}
h1.claim{font-size:clamp(52px,8vw,116px); margin:22px 0 12px; color:var(--pine)}
h1.claim .ital{font-style:italic; color:var(--brass-2); font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
h1.claim .und{background:linear-gradient(transparent 65%,color-mix(in srgb,var(--brass) 45%,transparent) 65%); padding:0 .08em}
.hero-lead{max-width:520px; font-size:18px; color:var(--pine); opacity:.85; margin:8px 0 28px}
.hero-cta{display:flex; gap:14px; flex-wrap:wrap}
.hero-meta{
 display:flex; gap:28px; margin-top:40px; flex-wrap:wrap;
 padding-top:22px; border-top:1px solid var(--rule); max-width:540px;
}
.hero-meta .item .label{display:block; margin-bottom:4px}
.hero-meta .item .val{
 font-family: 'Helvetica Neue', Arial, sans-serif; font-size:22px; color:var(--pine);
 font-variation-settings:"opsz" 144,"SOFT" 30;
}

/* ELIG CARD */
.elig{
 background:var(--ivory); border:1px solid var(--rule); border-radius:4px;
 padding:28px 28px 24px; box-shadow:var(--shadow); position:relative;
}
.elig::before{content:""; position:absolute; inset:6px; border:1px solid color-mix(in srgb,var(--brass) 35%,transparent); border-radius:2px; pointer-events:none}
.elig h3{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:400; font-size:26px; margin:8px 0 4px; color:var(--pine); letter-spacing:-.01em}
.elig p.sub{color:var(--mute); font-size:13px; margin:0 0 18px}
.field{margin-bottom:14px}
.field label{display:flex; justify-content:space-between; align-items:center; font-size:12px; color:var(--pine); margin-bottom:6px}
.field label .val{font-family:"JetBrains Mono",monospace; color:var(--brass-2)}
.field input[type="range"]{-webkit-appearance:none; width:100%; height:4px; border-radius:999px; background:var(--rule); outline:none}
.field input[type="range"]::-webkit-slider-thumb{-webkit-appearance:none; width:18px; height:18px; border-radius:50%; background:var(--pine); border:3px solid var(--ivory); box-shadow:0 2px 10px rgba(19,53,42,.35); cursor:pointer; transition:transform .15s}
.field input[type="range"]::-webkit-slider-thumb:hover{transform:scale(1.12)}
.field input[type="range"]::-moz-range-thumb{width:18px; height:18px; border-radius:50%; background:var(--pine); border:3px solid var(--ivory); cursor:pointer}
.field input[type="text"],.field input[type="email"],.field input[type="tel"],.field textarea,.field select{
 width:100%; padding:12px 14px; border:1px solid var(--rule); background:var(--paper);
 color:var(--pine); font-family:inherit; font-size:14px; border-radius:2px; outline:none;
 transition:border-color .2s;
}
.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--pine); box-shadow:0 0 0 3px color-mix(in srgb,var(--pine) 12%,transparent)}
.field textarea{min-height:120px; resize:vertical}
.seg{display:grid; grid-template-columns:repeat(4,1fr); gap:6px; background:var(--ivory-2); padding:4px; border-radius:2px}
.seg button{padding:9px 8px; font-size:12px; border:0; background:transparent; color:var(--pine); cursor:pointer; border-radius:2px; font-family:"Helvetica Neue",sans-serif}
.seg button.active{background:var(--paper); box-shadow:inset 0 0 0 1px var(--rule)}
.elig .result{margin-top:18px; padding-top:18px; border-top:1px dashed var(--rule)}
.elig .res-label{font-size:12px; color:var(--mute)}
.elig .res-val{font-family: 'Helvetica Neue', Arial, sans-serif; font-size:46px; color:var(--pine); font-variation-settings:"opsz" 144,"SOFT" 40,"WONK" 1; letter-spacing:-.02em; line-height:1; margin:4px 0 2px}
.elig .res-val small{font-size:14px; color:var(--brass-2); margin-left:4px; font-family:"JetBrains Mono",monospace}
.elig .res-sub{font-size:12px; color:var(--mute); margin-bottom:16px}
.elig .btn{width:100%; justify-content:center}
.elig .free-pill{
 display:inline-flex; align-items:center; gap:6px;
 font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.2em;
 text-transform:uppercase; color:var(--brass-2);
 padding:4px 8px; border:1px solid color-mix(in srgb,var(--brass) 40%,transparent);
 border-radius:999px; background:color-mix(in srgb,var(--brass) 8%,transparent);
}
.elig .free-pill::before{content:""; width:5px; height:5px; border-radius:50%; background:var(--brass)}

/* SECTIONS */
section{padding:96px 0; position:relative}
section + section{border-top:1px solid var(--rule)}
.section-head{display:grid; grid-template-columns:1fr 1.6fr; gap:56px; align-items:start; margin-bottom:56px}
@media (max-width:820px){ .section-head{grid-template-columns:1fr; gap:20px; margin-bottom:32px} }
.section-head h2{font-size:clamp(38px,5.2vw,68px); color:var(--pine); margin:10px 0 0}
.section-head p{color:var(--mute); max-width:520px; margin:0}

/* BIG BAND */
.band{background:var(--pine); color:var(--ivory); padding:80px 0; position:relative; overflow:hidden}
.band::after{content:""; position:absolute; inset:0; background:radial-gradient(600px 300px at 80% 0%,color-mix(in srgb,var(--brass) 22%,transparent),transparent 60%); pointer-events:none}
.band .inner{display:grid; grid-template-columns:1.2fr 1fr; gap:48px; align-items:end; position:relative}
@media (max-width:820px){ .band .inner{grid-template-columns:1fr} }
.band .big{font-family: 'Helvetica Neue', Arial, sans-serif; font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 1; font-weight:300; font-size:clamp(80px,16vw,220px); line-height:.88; letter-spacing:-.04em}
.band .big .unit{font-size:.28em; color:var(--brass); vertical-align:super; margin-right:.1em; font-variation-settings:"opsz" 24}
.band .big .ital{font-style:italic; color:var(--brass); font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.band .caption{font-size:18px; opacity:.8; max-width:380px}
.band .caption strong{color:var(--ivory); font-weight:500}
.band .line{display:flex; gap:10px; align-items:center; font-size:12px; opacity:.6; letter-spacing:.16em; text-transform:uppercase; margin-top:18px}
.band .line::before{content:""; width:36px; height:1px; background:var(--brass)}

/* TRANSP GRID */
.transp-grid{display:grid; grid-template-columns:1fr 1fr; gap:48px; align-items:start}
@media (max-width:820px){ .transp-grid{grid-template-columns:1fr; gap:32px} }
.flow{border:1px solid var(--rule); background:var(--ivory); border-radius:4px; padding:28px}
.flow .row{display:grid; grid-template-columns:38px 1fr auto; gap:18px; padding:18px 0; border-bottom:1px dashed var(--rule); align-items:center}
.flow .row:last-child{border-bottom:0}
.flow .n{font-family: 'Helvetica Neue', Arial, sans-serif; font-variation-settings:"opsz" 144,"SOFT" 100; font-style:italic; font-size:32px; color:var(--brass); line-height:1}
.flow .t{color:var(--pine); font-size:15px}
.flow .t b{font-weight:500}
.flow .v{font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.16em; text-transform:uppercase; color:var(--brass-2)}
.pros{display:flex; flex-direction:column; gap:16px}
.pros .it{display:grid; grid-template-columns:26px 1fr; gap:14px; padding:16px 0; border-bottom:1px solid var(--rule)}
.pros .it:last-child{border-bottom:0}
.pros .it svg{margin-top:3px}
.pros .it h4{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:400; font-size:20px; margin:0 0 4px; color:var(--pine); letter-spacing:-.005em}
.pros .it p{margin:0; color:var(--mute); font-size:14px}

/* STEPS */
.steps{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
@media (max-width:820px){ .steps{grid-template-columns:1fr} }
.step{
 border:1px solid var(--rule); padding:28px 24px 32px; background:var(--ivory);
 position:relative; border-radius:2px;
 transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s;
}
.step:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.step .num{font-family: 'Helvetica Neue', Arial, sans-serif; font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1; font-style:italic; font-size:72px; color:var(--brass); line-height:1; position:absolute; right:18px; top:12px; opacity:.6}
.step h3{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:400; font-size:24px; margin:32px 0 8px; color:var(--pine)}
.step p{color:var(--mute); font-size:15px; margin:0 0 12px}
.step .meta{font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.14em; color:var(--brass-2); text-transform:uppercase; display:flex; gap:8px; align-items:center}
.step .meta::before{content:""; width:16px; height:1px; background:var(--brass)}

/* RECOVERY ROWS */
.recovery{display:grid; grid-template-columns:repeat(12,1fr); gap:0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule)}
.row-rec{grid-column:span 12; display:grid; grid-template-columns:70px 1fr 160px 160px; gap:24px; padding:26px 0; border-bottom:1px solid var(--rule); align-items:center; transition:background .3s,padding .3s}
.row-rec:last-child{border-bottom:0}
.row-rec:hover{background:color-mix(in srgb,var(--ivory) 50%,transparent); padding-left:12px}
.row-rec .idx{font-family:"JetBrains Mono",monospace; font-size:12px; color:var(--brass-2)}
.row-rec .name{font-family: 'Helvetica Neue', Arial, sans-serif; font-size:26px; font-weight:400; color:var(--pine)}
.row-rec .name small{display:block; font-family:"Helvetica Neue",sans-serif; font-size:13px; color:var(--mute); margin-top:4px; font-weight:300}
.row-rec .tag{font-size:12px; color:var(--mute); letter-spacing:.08em; text-transform:uppercase}
.row-rec .amt{font-family: 'Helvetica Neue', Arial, sans-serif; font-size:22px; color:var(--pine); text-align:right; font-variation-settings:"opsz" 144,"SOFT" 30}
.row-rec .amt small{font-family:"JetBrains Mono",monospace; color:var(--brass-2); font-size:12px; display:block; margin-top:2px}
@media (max-width:720px){
 .row-rec{grid-template-columns:40px 1fr; gap:12px}
 .row-rec .tag,.row-rec .amt{grid-column:2}
 .row-rec .amt{text-align:left}
}

/* COMPARE */
.compare{overflow:hidden; border:1px solid var(--rule); border-radius:4px}
.compare table{width:100%; border-collapse:collapse; background:var(--ivory)}
.compare th,.compare td{padding:20px 22px; text-align:left; border-bottom:1px solid var(--rule); font-size:14px; vertical-align:middle}
.compare th{font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--mute); font-weight:500; background:var(--ivory-2)}
.compare th.us{color:var(--brass-2); background:color-mix(in srgb,var(--brass) 8%,var(--ivory))}
.compare td.us{background:color-mix(in srgb,var(--brass) 6%,var(--ivory)); color:var(--pine); font-weight:500}
.compare td strong{color:var(--pine)}
.compare td.feat{font-family: 'Helvetica Neue', Arial, sans-serif; font-size:17px; color:var(--pine); font-weight:400}
.compare tr:last-child td{border-bottom:0}
.compare .yes{color:var(--pine)}
.compare .no{color:var(--mute); opacity:.6}
@media (max-width:720px){ .compare{overflow-x:auto} .compare table{min-width:640px} }

/* TESTIMONIALS */
.testi{display:grid; grid-template-columns:1fr 1fr 1fr; gap:32px}
@media (max-width:820px){ .testi{grid-template-columns:1fr} }
.quote{border-left:1px solid var(--brass); padding:8px 0 8px 22px; position:relative}
.quote::before{content:"“"; position:absolute; left:-8px; top:-18px; font-family: 'Helvetica Neue', Arial, sans-serif; font-size:72px; color:var(--brass); font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1; line-height:1}
.quote p{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:350; font-size:22px; line-height:1.35; color:var(--pine); margin:0 0 18px; letter-spacing:-.01em}
.quote p em{font-style:italic; font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1; color:var(--brass-2)}
.quote .who{font-size:13px; color:var(--mute)}
.quote .who b{color:var(--pine); font-weight:500}

/* TRUST BADGES */
.trust-band{background:var(--ivory); padding:48px 0; border-top:1px solid var(--rule); border-bottom:1px solid var(--rule)}
.badges{display:grid; grid-template-columns:repeat(5,1fr); gap:20px; align-items:center}
@media (max-width:820px){ .badges{grid-template-columns:repeat(2,1fr)} }
.badge{padding:18px 12px; text-align:center; border:1px solid var(--rule); background:var(--paper); border-radius:2px; display:flex; flex-direction:column; align-items:center; gap:6px}
.badge svg{color:var(--pine); opacity:.85}
.badge b{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:500; font-size:15px; color:var(--pine); letter-spacing:.01em}
.badge small{font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--mute)}

/* FAQ */
.faq{border-top:1px solid var(--rule)}
details.q{border-bottom:1px solid var(--rule); padding:24px 0; transition:padding .3s}
details.q[open]{padding-bottom:30px}
details.q summary{list-style:none; cursor:pointer; display:flex; justify-content:space-between; align-items:center; gap:24px; font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:400; font-size:22px; color:var(--pine); letter-spacing:-.005em}
details.q summary::-webkit-details-marker{display:none}
details.q summary .plus{width:28px; height:28px; border:1px solid var(--rule); border-radius:50%; display:grid; place-items:center; flex:none; transition:transform .3s,background .3s,border-color .3s; color:var(--brass-2)}
details.q[open] summary .plus{transform:rotate(45deg); background:var(--pine); color:var(--ivory); border-color:var(--pine)}
details.q .ans{margin-top:16px; color:var(--mute); max-width:780px; font-size:15px}

/* FINAL CTA */
.final{background:var(--pine); color:var(--ivory); padding:120px 0; position:relative; overflow:hidden}
.final::before{content:""; position:absolute; inset:0; background:radial-gradient(400px 260px at 20% 100%,color-mix(in srgb,var(--brass) 25%,transparent),transparent 65%); pointer-events:none}
.final .grid{display:grid; grid-template-columns:1.4fr 1fr; gap:48px; align-items:end; position:relative}
@media (max-width:820px){ .final .grid{grid-template-columns:1fr} }
.final h2{font-family: 'Helvetica Neue', Arial, sans-serif; font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 1; font-size:clamp(44px,6.4vw,96px); line-height:.95; letter-spacing:-.02em; margin:0 0 20px; color:var(--ivory)}
.final h2 .ital{font-style:italic; color:var(--brass); font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.final p{opacity:.8; max-width:440px; margin:0 0 28px}
.final .btn{background:var(--brass); border-color:var(--brass); color:var(--ink)}
.final .btn:hover{background:var(--ivory); border-color:var(--ivory); color:var(--pine)}

/* FOOTER */
body > footer{background:#0F1E3D; color:color-mix(in srgb,var(--ivory) 80%,transparent); padding:80px 0 40px; position:relative; overflow:hidden; border-top:1px solid color-mix(in srgb,var(--brass) 20%,transparent)}
/* Reset pour les <footer class="who"> DANS les blockquotes d'avis clients */
blockquote footer, blockquote.quote footer, .testi footer, .quote footer{
  background: transparent !important; color: var(--pine) !important; padding: 0 !important;
  border: 0 !important; margin: 0 !important; position: static !important; overflow: visible !important;
  display: block !important; font-size: 13px !important; opacity: 0.85 !important;
}
blockquote footer b, blockquote.quote footer b, .testi footer b, .quote footer b{
  display: block !important; color: var(--pine) !important; font-weight: 600 !important;
  opacity: 1 !important; margin-bottom: 2px !important; font-size: 14px !important;
}
.foot-grid{display:grid; grid-template-columns:2fr 1fr 1fr 1fr 1fr; gap:40px}
@media (max-width:1100px){ .foot-grid{grid-template-columns:2fr 1fr 1fr 1fr; gap:32px} .foot-grid > div:nth-child(5){grid-column:1/-1} }
@media (max-width:820px){ .foot-grid{grid-template-columns:1fr 1fr; gap:28px} .foot-grid > div:nth-child(5){grid-column:auto} }
footer h4{font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--brass); margin:0 0 18px; font-weight:500}
footer ul{list-style:none;padding:0;margin:0}
footer li{padding:6px 0; font-size:14px}
footer a{opacity:.8; transition:opacity .2s}
footer a:hover{opacity:1; color:var(--ivory)}
footer img.logo-footer{height:64px; width:auto; margin-bottom:18px}
.big-word{font-family: 'Helvetica Neue', Arial, sans-serif; font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1; font-style:italic; font-size:clamp(80px,14vw,200px); line-height:.9; color:color-mix(in srgb,var(--ivory) 6%,transparent); position:absolute; bottom:-20px; right:-20px; pointer-events:none; letter-spacing:-.03em}
.foot-bot{border-top:1px solid color-mix(in srgb,var(--ivory) 12%,transparent); margin-top:56px; padding-top:28px; display:flex; justify-content:space-between; gap:24px; flex-wrap:wrap; font-size:12px; color:color-mix(in srgb,var(--ivory) 55%,transparent); position:relative}
.chips{display:flex; gap:10px; flex-wrap:wrap}
.chip{border:1px solid color-mix(in srgb,var(--ivory) 18%,transparent); padding:5px 10px; border-radius:999px; font-family:"JetBrains Mono",monospace; font-size:10px; letter-spacing:.18em; text-transform:uppercase}

/* PAGE HERO (for subpages) */
.page-hero{padding:64px 0 48px; position:relative}
.page-hero .eyebrow{margin-bottom:20px}
.page-hero h1{font-family: 'Helvetica Neue', Arial, sans-serif; font-size:clamp(48px,6.4vw,96px); line-height:.95; letter-spacing:-.02em; color:var(--pine); margin:0 0 20px; font-weight:380; font-variation-settings:"opsz" 144,"SOFT" 30,"WONK" 1}
.page-hero h1 .ital{font-style:italic; color:var(--brass-2); font-variation-settings:"opsz" 144,"SOFT" 100,"WONK" 1}
.page-hero .lead{font-size:18px; color:var(--pine); opacity:.85; max-width:720px; margin:0 0 12px}
.page-hero .crumbs{font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--mute); margin-bottom:14px}
.page-hero .crumbs a{color:var(--pine)}
.page-hero .crumbs span{margin:0 8px; color:var(--brass); opacity:.6}

/* SERVICE CARDS */
.cards{display:grid; grid-template-columns:repeat(3,1fr); gap:24px}
@media (max-width:820px){ .cards{grid-template-columns:1fr} }
.card{background:var(--ivory); border:1px solid var(--rule); border-radius:2px; padding:32px 28px; position:relative; transition:transform .35s cubic-bezier(.2,.7,.2,1),box-shadow .35s}
.card:hover{transform:translateY(-4px); box-shadow:var(--shadow)}
.card .ic{width:42px; height:42px; display:grid; place-items:center; border:1px solid var(--rule); border-radius:50%; color:var(--pine); margin-bottom:20px; background:var(--paper)}
.card h3{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:400; font-size:24px; margin:0 0 8px; color:var(--pine); letter-spacing:-.005em}
.card p{color:var(--mute); font-size:15px; margin:0 0 16px}
.card .meta{font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-2)}
.card a.more{display:inline-flex; gap:8px; color:var(--pine); font-size:14px; margin-top:12px; border-bottom:1px solid var(--brass); padding-bottom:2px}

/* LEGAL / PROSE PAGES */
.prose{max-width:760px; margin:0 auto; padding:40px 0 80px; font-size:16px; line-height:1.75; color:var(--pine)}
.prose h2{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:400; font-size:32px; margin:48px 0 12px; color:var(--pine); letter-spacing:-.01em}
.prose h3{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:400; font-size:22px; margin:32px 0 8px; color:var(--pine)}
.prose p{margin:0 0 16px; color:color-mix(in srgb,var(--pine) 85%,var(--mute))}
.prose ul,.prose ol{padding-left:20px; margin:0 0 16px; color:color-mix(in srgb,var(--pine) 85%,var(--mute))}
.prose li{margin-bottom:8px}
.prose a{color:var(--brass-2); border-bottom:1px solid var(--brass); transition:color .2s}
.prose a:hover{color:var(--pine)}
.prose .meta-info{font-family:"JetBrains Mono",monospace; font-size:12px; letter-spacing:.14em; text-transform:uppercase; color:var(--mute); margin-bottom:32px}
.prose hr{border:0; border-top:1px solid var(--rule); margin:48px 0}

/* REVEALS */
.reveal{opacity:0; transform:translateY(18px); animation:rise .9s cubic-bezier(.2,.7,.2,1) forwards}
.r1{animation-delay:.05s}.r2{animation-delay:.15s}.r3{animation-delay:.25s}
.r4{animation-delay:.35s}.r5{animation-delay:.45s}
@keyframes rise{to{opacity:1; transform:none}}
.sr{opacity:0; transform:translateY(20px); transition:opacity .8s ease,transform .8s ease}
.sr.in{opacity:1; transform:none}

/* CONTACT FORM */
.form-grid{display:grid; grid-template-columns:1fr 1fr; gap:16px}
@media (max-width:720px){ .form-grid{grid-template-columns:1fr} }
.form-wide{background:var(--ivory); border:1px solid var(--rule); padding:36px; border-radius:4px; position:relative}
.form-wide::before{content:""; position:absolute; inset:6px; border:1px solid color-mix(in srgb,var(--brass) 30%,transparent); border-radius:2px; pointer-events:none}
.contact-grid{display:grid; grid-template-columns:1.2fr .9fr; gap:48px; align-items:start}
@media (max-width:820px){ .contact-grid{grid-template-columns:1fr} }
.info-block{display:flex; flex-direction:column; gap:20px}
.info-row{padding:14px 0; border-bottom:1px solid var(--rule)}
.info-row:last-child{border-bottom:0}
.info-row .k{font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--brass-2); margin-bottom:4px}
.info-row .v{font-family: 'Helvetica Neue', Arial, sans-serif; font-size:22px; color:var(--pine); font-weight:400; letter-spacing:-.005em}

/* CANTONS LIST */
.cantons{display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:32px 0}
@media (max-width:820px){ .cantons{grid-template-columns:repeat(2,1fr)} }
@media (max-width:480px){ .cantons{grid-template-columns:1fr} }
.canton-tile{
 display:flex; justify-content:space-between; align-items:center;
 padding:16px 20px; border:1px solid var(--rule); background:var(--ivory);
 transition:transform .25s,box-shadow .25s;
}
.canton-tile:hover{transform:translateY(-2px); box-shadow:var(--shadow)}
.canton-tile .n{font-family: 'Helvetica Neue', Arial, sans-serif; font-size:20px; color:var(--pine)}
.canton-tile .a{font-family:"JetBrains Mono",monospace; font-size:11px; color:var(--brass-2); letter-spacing:.12em}

.quote .who, blockquote.quote .who{color:var(--pine)!important; opacity:.85; font-size:14px}
.quote .who b, blockquote.quote .who b{color:var(--pine)!important; font-weight:600; opacity:1}
.navlinks a.btn{color:var(--ivory)!important; opacity:1!important}
.navlinks a.btn.ghost{color:var(--pine)!important}

.hamb{display:none; background:transparent; border:1px solid var(--rule); width:42px; height:42px; border-radius:50%; cursor:pointer; align-items:center; justify-content:center; padding:0}
.hamb:hover{background:var(--ivory); border-color:var(--pine)}
.hamb span{display:block; width:18px; height:1.5px; background:var(--pine); position:relative; transition:transform .3s}
.hamb span::before,.hamb span::after{content:""; position:absolute; left:0; width:100%; height:1.5px; background:var(--pine); transition:transform .3s, top .3s}
.hamb span::before{top:-6px} .hamb span::after{top:6px}
body.menu-open .hamb span{background:transparent}
body.menu-open .hamb span::before{top:0; transform:rotate(45deg)}
body.menu-open .hamb span::after{top:0; transform:rotate(-45deg)}
@media (max-width:960px){ .hamb{display:inline-flex} .navlinks a.cta-nav{display:none!important} }
.drawer{position:fixed; inset:0; z-index:50; background:var(--paper); display:flex; flex-direction:column; transform:translateY(-100%); opacity:0; transition:transform .5s cubic-bezier(.2,.7,.2,1), opacity .3s; pointer-events:none; overflow-y:auto}
body.menu-open .drawer{transform:translateY(0); opacity:1; pointer-events:auto}
body.menu-open{overflow:hidden}
.drawer .dhead{display:flex; justify-content:space-between; align-items:center; padding:18px 24px; border-bottom:1px solid var(--rule)}
.drawer .dclose{width:42px; height:42px; border-radius:50%; border:1px solid var(--rule); background:var(--ivory); cursor:pointer; display:grid; place-items:center; color:var(--pine)}
.drawer .dbody{padding:36px 28px 40px; flex:1}
.drawer .dlinks{display:flex; flex-direction:column; gap:2px}
.drawer .dlinks a{font-family: 'Helvetica Neue', Arial, sans-serif; font-weight:400; font-size:clamp(32px,8vw,48px); color:var(--pine); letter-spacing:-.01em; line-height:1.1; padding:14px 0; border-bottom:1px solid var(--rule); display:flex; align-items:center; justify-content:space-between; transition:padding-left .3s,color .3s}
.drawer .dlinks a:hover{padding-left:14px; color:var(--brass-2)}
.drawer .dlinks a span.num{font-family:"JetBrains Mono",monospace; font-size:11px; letter-spacing:.18em; color:var(--brass-2); opacity:.6}
.drawer .dfoot{padding:24px 28px 28px; border-top:1px solid var(--rule); background:var(--ivory)}
.drawer .dlang{display:flex; gap:8px; flex-wrap:wrap; margin-bottom:16px}
.drawer .dlang a{padding:8px 14px; border:1px solid var(--rule); border-radius:999px; font-size:12px; letter-spacing:.14em; color:var(--pine); background:var(--paper); font-family:"JetBrains Mono",monospace}
.drawer .dlang a.active{background:var(--pine); color:var(--ivory); border-color:var(--pine)}
.drawer .dcta{display:inline-flex; align-items:center; gap:10px; padding:14px 22px; background:var(--brass); color:var(--ink); font-size:14px; letter-spacing:.02em; border-radius:2px; width:100%; justify-content:center}

.cookie-bar{position:fixed; left:20px; right:20px; bottom:20px; z-index:40; max-width:620px; margin:0 auto; background:var(--pine); color:var(--ivory); border:1px solid color-mix(in srgb,var(--brass) 40%,transparent); border-radius:4px; padding:22px 26px; box-shadow:0 24px 56px -16px rgba(14,14,12,.5); display:flex; flex-direction:column; gap:16px; font-size:14px; line-height:1.5; transform:translateY(140%); opacity:0; pointer-events:none; transition:transform .5s cubic-bezier(.2,.7,.2,1), opacity .4s}
.cookie-bar.show{transform:translateY(0); opacity:1; pointer-events:auto}
.cookie-bar .ct{display:flex; gap:14px; align-items:flex-start}
.cookie-bar .ct svg{flex:none; color:var(--brass); margin-top:2px}
.cookie-bar .ct p{margin:0; color:color-mix(in srgb,var(--ivory) 88%,transparent)}
.cookie-bar .ct p b{color:var(--ivory); font-weight:500}
.cookie-bar .ct a{color:var(--brass); border-bottom:1px solid var(--brass)}
.cookie-bar .act{display:flex; gap:10px; flex-wrap:wrap; justify-content:flex-end}
.cookie-bar button{padding:10px 18px; font-size:13px; letter-spacing:.02em; border-radius:2px; border:1px solid; cursor:pointer; font-family:inherit}
.cookie-bar button.primary{background:var(--brass); border-color:var(--brass); color:var(--ink)}
.cookie-bar button.primary:hover{background:var(--ivory); border-color:var(--ivory); color:var(--pine)}
.cookie-bar button.ghost{background:transparent; border-color:color-mix(in srgb,var(--ivory) 30%,transparent); color:var(--ivory)}
.cookie-bar button.ghost:hover{border-color:var(--ivory)}

/* PATCH: nav CTA button readability */
.navlinks a.btn{color:var(--ivory)!important; opacity:1!important}
.navlinks a.btn.ghost{color:var(--pine)!important}
.navlinks a.btn.brass{color:var(--ink)!important}
.navlinks a.btn:hover{color:var(--ivory)!important}
.navlinks a.btn .arrow{color:inherit!important}
.navlinks a.btn *{color:inherit!important}
.quote .who, blockquote.quote .who{color:var(--pine)!important; opacity:.85; font-size:14px}
.quote .who b, blockquote.quote .who b{color:var(--pine)!important; font-weight:600; opacity:1}

/* PATCH-FINAL: testimonial .who visibility (footer{} inheritance fix) */
.testi .quote .who,
.testi blockquote.quote .who,
blockquote.quote footer.who,
.quote footer.who{
 color: var(--pine) !important;
 opacity: 0.85 !important;
 font-size: 14px !important;
 background: transparent !important;
 padding: 0 !important;
 margin: 0 !important;
 display: block !important;
 text-align: left !important;
 border: 0 !important;
}
.testi .quote .who b,
.testi blockquote.quote .who b,
blockquote.quote footer.who b,
.quote footer.who b{
 color: var(--pine) !important;
 font-weight: 600 !important;
 opacity: 1 !important;
 display: block !important;
 margin-bottom: 2px !important;
}