/* ============================================================
   Lean Bridge Solutions — styles.css
   Palette: white / charcoal #111827 / emerald #059669
   Spacing rhythm: 8px base unit
   ============================================================ */

:root{
  --bg:#FFFFFF; --bg2:#F9FAFB; --bg3:#F3F4F6;
  --text:#111827; --text2:#4B5563; --text3:#9CA3AF;
  --line:#E5E7EB; --line2:#F3F4F6;
  --accent:#059669; --accent-d:#047857; --accent-s:#ECFDF5; --accent-b:#D1FAE5;
  --ink:#111827;

  /* Layered shadows — each level = ambient + key + contact */
  --sh-sm:0 1px 2px rgba(17,24,39,.05);
  --sh-md:0 1px 2px rgba(17,24,39,.04), 0 4px 16px -4px rgba(17,24,39,.08);
  --sh-lg:0 2px 4px rgba(17,24,39,.04), 0 12px 24px -8px rgba(17,24,39,.08), 0 32px 64px -16px rgba(17,24,39,.14);
  --sh-float:0 1px 2px rgba(17,24,39,.05), 0 8px 16px -6px rgba(17,24,39,.07), 0 24px 48px -12px rgba(17,24,39,.16);

  /* Motion */
  --t:.18s cubic-bezier(.4,0,.2,1);
  --t-slow:.6s cubic-bezier(.22,1,.36,1);
  --nav-p:0; /* nav scroll progress 0→1, set by JS */
}

*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:'Plus Jakarta Sans',system-ui,sans-serif;background:var(--bg);color:var(--text);font-size:15px;line-height:1.65;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
a{color:inherit;text-decoration:none}
img,svg{display:block}
::selection{background:var(--accent-b);color:var(--ink)}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
section[id]{scroll-margin-top:80px}

.wrap{max-width:1120px;margin:0 auto;padding:0 32px}
/* Grid items may shrink below content min-width (prevents nowrap
   content — e.g. CRM meta lines — from blowing out 1fr tracks) */
.hero-g>*,.problem-g>*,.case-g>*,.cov-g>*{min-width:0}
.label{font-size:13px;font-weight:600;color:var(--accent);letter-spacing:.04em;text-transform:uppercase;margin-bottom:16px}
h2{font-size:clamp(26px,2.8vw,34px);font-weight:700;letter-spacing:-.025em;line-height:1.2;text-wrap:balance}
.lead{color:var(--text2);font-size:clamp(15px,1.5vw,16.5px);margin-top:16px;line-height:1.7}

/* Count-up numbers keep width stable while animating */
[data-count]{font-variant-numeric:tabular-nums}

/* ── Scroll reveals (only hidden once JS confirmed running) ── */
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity var(--t-slow),transform var(--t-slow)}
.js .reveal.in{opacity:1;transform:none}

/* ── Ambient wave backgrounds ────────────────────────────────
   Periodic sine path drifting horizontally (pure CSS transform,
   GPU-composited). Glow = blurred duplicate of the same path.
   Reduced motion: animation stops, static wash + lines remain. */
.hero,.compare,.final{position:relative}
.hero>.wrap,.compare>.wrap,.final>.wrap{position:relative}
.ambient{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.ambient .wash{position:absolute;inset:0;background:
  radial-gradient(52% 46% at 82% 10%,rgba(5,150,105,.07),transparent 100%),
  radial-gradient(42% 38% at 6% 82%,rgba(5,150,105,.05),transparent 100%)}
.wave{position:absolute;left:0;width:200%;will-change:transform}
.wave use{stroke:var(--wave-c,var(--accent));fill:none;vector-effect:non-scaling-stroke}
.wave .line{stroke-width:1.5px;stroke-opacity:var(--wave-o,.15)}
.wave .glow{stroke-width:10px;stroke-opacity:calc(var(--wave-o,.15)*2.2);filter:blur(14px)}
.w1{top:10%;height:66%;animation:drift 48s linear infinite}
.w2{top:36%;height:58%;animation:drift 70s linear infinite reverse;opacity:.6}
@keyframes drift{to{transform:translateX(-50%)}}
.ambient-soft{--wave-o:.08}
.ambient-soft .wash{opacity:.55}
.ambient-dark{--wave-c:#34D399;--wave-o:.12}
.ambient-dark .wash{background:radial-gradient(58% 60% at 50% 0%,rgba(5,150,105,.16),transparent 100%)}

/* ── Buttons ── */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:inherit;font-weight:500;font-size:14.5px;padding:11px 20px;border-radius:12px;border:none;cursor:pointer;letter-spacing:-.006em;transition:background var(--t),box-shadow var(--t),border-color var(--t),transform var(--t)}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.98);transition-duration:.08s}
.btn-navy{background:var(--ink);color:#fff;box-shadow:var(--sh-sm)}
.btn-navy:hover{background:#1F2937;box-shadow:var(--sh-md)}
.btn-blue{background:var(--accent);color:#fff;box-shadow:var(--sh-sm)}
.btn-blue:hover{background:var(--accent-d);box-shadow:0 1px 2px rgba(17,24,39,.06),0 8px 20px -6px rgba(5,150,105,.4)}
.btn-ghost{background:var(--bg);color:var(--text);border:1px solid var(--line)}
.btn-ghost:hover{background:var(--bg2);border-color:#D1D5DB}
.btn-lg{padding:14px 24px;font-size:15px}

/* ── NAV ── */
.nav{position:sticky;top:0;z-index:90;background:rgba(255,255,255,.85);backdrop-filter:blur(14px) saturate(1.4);-webkit-backdrop-filter:blur(14px) saturate(1.4);border-bottom:1px solid rgba(229,231,235,var(--nav-p));box-shadow:0 8px 24px -16px rgba(17,24,39,calc(.5*var(--nav-p)))}
.nav-in{max-width:1120px;margin:0 auto;padding:0 32px;height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:flex;align-items:center;gap:10px;font-weight:600;font-size:15px;letter-spacing:-.012em}
.brand-mark{width:34px;height:34px;border-radius:10px;overflow:hidden;flex-shrink:0;box-shadow:var(--sh-sm);transition:box-shadow var(--t),transform var(--t)}
.brand-mark img{width:100%;height:100%}
.brand:hover .brand-mark{box-shadow:var(--sh-md);transform:scale(1.04)}
.brand-mark-dark{box-shadow:0 0 0 1px rgba(255,255,255,.12)}
.nav-l{display:flex;gap:4px}
.nav-l a{position:relative;font-size:14px;font-weight:500;color:var(--text2);padding:7px 12px;border-radius:8px;transition:color var(--t),background var(--t)}
.nav-l a:hover,.nav-l a:focus-visible{color:var(--text);background:var(--bg2)}
.nav-l a::after{content:'';position:absolute;left:12px;right:12px;bottom:3px;height:2px;border-radius:1px;background:var(--accent);transform:scaleX(0);transform-origin:left;transition:transform var(--t)}
.nav-l a:hover::after{transform:scaleX(1)}

/* ── HERO ── */
.hero{padding:96px 0 72px}
.hero-g{display:grid;grid-template-columns:1.15fr .85fr;gap:64px;align-items:center}
.hero h1{font-size:clamp(32px,4.2vw,46px);font-weight:800;letter-spacing:-.032em;line-height:1.1;text-wrap:balance}
.hero-sub{margin-top:24px;color:var(--text2);font-size:clamp(15.5px,1.6vw,17px);line-height:1.7;max-width:31em}
.hero-cta{margin-top:32px;display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.hero-note{margin-top:16px;font-size:13px;color:var(--text3)}
.hero-visual{will-change:transform}

/* CRM mockup — floats above the page like a physical object:
   contact shadow + key light + ambient, plus a 1px glass highlight on top */
.crm{background:var(--bg);border:1px solid var(--line);border-radius:16px;overflow:hidden;font-size:12.5px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.55),
    0 1px 2px rgba(17,24,39,.06),
    0 8px 16px -6px rgba(17,24,39,.08),
    0 28px 56px -12px rgba(17,24,39,.18)}
.crm-top{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--accent-s);border-bottom:1px solid var(--accent-b)}
.crm-top .t{font-weight:600;font-size:12.5px;display:flex;align-items:center;gap:8px}
.crm-top .t i{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:live-dot 3s ease-in-out infinite}
@keyframes live-dot{
  0%,100%{box-shadow:0 0 0 0 rgba(5,150,105,.35)}
  50%{box-shadow:0 0 0 5px rgba(5,150,105,0)}
}
.crm-tabs{display:flex;gap:2px;background:var(--bg2);border-radius:8px;padding:2px}
.crm-tab{font-size:11px;font-weight:500;color:var(--text3);padding:4px 10px;border-radius:6px}
.crm-tab.on{background:var(--bg);color:var(--text);box-shadow:var(--sh-sm)}
.crm-stats{display:grid;grid-template-columns:repeat(3,1fr)}
.crm-stat{padding:14px 16px 10px;border-right:1px solid var(--line2)}
.crm-stat:last-child{border-right:none}
.crm-stat .n{font-size:18px;font-weight:700;letter-spacing:-.02em}
.crm-stat .l{font-size:10.5px;color:var(--text3);margin-top:1px}
/* 9/14 effectués — fill animates in with the card's reveal */
.crm-bar{height:3px;margin:0 16px 14px;border-radius:2px;background:var(--bg3);overflow:hidden}
.crm-bar i{display:block;height:100%;border-radius:2px;background:var(--accent);width:0;transition:width 1.1s cubic-bezier(.22,1,.36,1) .5s}
.in .crm-bar i,html:not(.js) .crm-bar i{width:64.3%}
.crm-list{padding:10px 8px;border-top:1px solid var(--line2)}
.crm-row{display:flex;align-items:center;gap:10px;padding:8px;border-radius:8px;transition:background var(--t),transform var(--t)}
.crm-row:hover{background:var(--bg2);transform:translateX(2px)}
/* Most recent row leads the eye */
.crm-row-live{background:#F4FBF7;box-shadow:inset 2px 0 0 var(--accent)}
.crm-row-live:hover{background:var(--accent-s)}
.crm-row-live .pill{animation:pill-pulse 3s ease-in-out infinite}
@keyframes pill-pulse{
  0%,100%{box-shadow:0 0 0 0 rgba(5,150,105,.28)}
  45%{box-shadow:0 0 0 4px rgba(5,150,105,0)}
}
.crm-av{width:28px;height:28px;border-radius:7px;background:var(--bg3);display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:600;color:var(--text2);flex-shrink:0}
/* Muted tint rotation — blue/slate family only */
.crm-row:nth-child(5n+1) .crm-av{background:var(--accent-s);color:var(--accent-d)}
.crm-row:nth-child(5n+2) .crm-av{background:#F3F4F6;color:#374151}
.crm-row:nth-child(5n+3) .crm-av{background:var(--accent-b);color:#065F46}
.crm-row:nth-child(5n+4) .crm-av{background:var(--bg3);color:var(--text2)}
.crm-row:nth-child(5n) .crm-av{background:#E5E7EB;color:#374151}
.crm-info{flex:1;min-width:0}
.crm-name{font-weight:600;font-size:12.5px;letter-spacing:-.005em}
.crm-meta{font-size:11px;color:var(--text3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.crm-score{font-size:10.5px;font-weight:600;color:var(--text2);background:var(--bg2);border:1px solid var(--line2);padding:2px 7px;border-radius:5px;flex-shrink:0}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;font-weight:500;padding:3px 9px;border-radius:100px;flex-shrink:0;white-space:nowrap}
.pill i{width:5px;height:5px;border-radius:50%}
.p-blue{background:var(--accent-s);color:var(--accent-d)}.p-blue i{background:var(--accent)}
.p-gray{background:var(--bg2);color:var(--text2)}.p-gray i{background:var(--text3)}
.p-navy{background:#F3F4F6;color:#374151}.p-navy i{background:#6B7280}
.crm-foot{border-top:1px solid var(--line2);padding:10px 16px;display:flex;justify-content:space-between;font-size:10.5px;color:var(--text3)}

/* ── PARTNERS MARQUEE ──
   Confirmed partner logos. Speed ≈ 35px/s (group width / duration);
   grayscale at rest, brand color on hover (marquee pauses on hover). */
.partners{background:var(--bg2);border-top:1px solid var(--line2);padding:48px 0 56px}
.partners-head{text-align:center;font-size:13px;font-weight:500;color:var(--text3);letter-spacing:.02em;margin-bottom:32px}
.marquee{overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent);mask-image:linear-gradient(90deg,transparent,#000 12%,#000 88%,transparent)}
.marquee-track{display:flex;width:max-content;animation:marquee 58s linear infinite}
.marquee:hover .marquee-track{animation-play-state:paused}
.marquee-group{display:flex;align-items:center;gap:72px;padding-right:72px;flex-shrink:0}
@keyframes marquee{to{transform:translateX(-50%)}}
.plogo-img{height:36px;width:auto;flex-shrink:0;min-width:0}

/* ── TRUST STRIP ── */
.trust{border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);background:var(--bg2)}
.trust-in{max-width:1120px;margin:0 auto;padding:40px 32px;display:grid;grid-template-columns:repeat(4,1fr);gap:32px}
.tn .n{font-size:26px;font-weight:700;letter-spacing:-.022em}
.tn .l{font-size:13px;color:var(--text2);margin-top:4px;line-height:1.6}

/* ── PROBLEM ── */
.problem{padding:112px 0}
.problem-g{display:grid;grid-template-columns:.9fr 1.1fr;gap:72px}
.problem-right p{color:var(--text2);font-size:16px;line-height:1.75;margin-bottom:16px}
.problem-right p b{color:var(--text);font-weight:600}
.problem-pull{position:relative;padding:4px 0 4px 24px;margin:24px 0;font-size:17.5px;font-weight:500;letter-spacing:-.012em;line-height:1.6;color:var(--text)}
.problem-pull::before{content:'';position:absolute;left:0;top:0;bottom:0;width:2px;border-radius:1px;background:var(--accent);transform:scaleY(0);transform-origin:top;transition:transform .8s cubic-bezier(.22,1,.36,1) .3s}
.in .problem-pull::before,html:not(.js) .problem-pull::before{transform:none}

/* ── TIMELINE ── */
.how{background:var(--bg2);border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);padding:112px 0}
.how-head{max-width:540px;margin-bottom:64px}
.tl{position:relative;max-width:760px}
.tl::before{content:'';position:absolute;left:19px;top:8px;bottom:8px;width:2px;border-radius:1px;background:var(--line)}
.tl-line{position:absolute;left:19px;top:8px;height:calc(100% - 16px);width:2px;overflow:visible;z-index:0}
.tl-line line{stroke:var(--accent);stroke-width:2;stroke-linecap:round}
.tl-item{position:relative;padding:0 0 48px 64px}
.tl-item:last-child{padding-bottom:0}
.tl-dot{position:absolute;left:8px;top:2px;width:24px;height:24px;border-radius:50%;background:var(--bg);border:1.5px solid var(--line);display:flex;align-items:center;justify-content:center;z-index:1;transition:border-color .3s ease,background .3s ease,box-shadow .3s ease}
.tl-dot svg{width:11px;height:11px}
.tl-item.done .tl-dot{border-color:var(--accent);background:var(--accent-s)}
/* JS mode: dots start neutral, light up as the line reaches them */
.js .tl-item .tl-dot{border-color:var(--line);background:var(--bg)}
.js .tl-dot svg{opacity:0;transform:scale(.4);transition:opacity .25s ease,transform .35s cubic-bezier(.34,1.56,.64,1)}
.js .tl-item.lit .tl-dot svg{opacity:1;transform:none}
.js .tl-item.lit.done .tl-dot{border-color:var(--accent);background:var(--accent-s);box-shadow:0 0 0 5px rgba(5,150,105,.07)}
.tl-k{font-size:11.5px;font-weight:600;color:var(--text3);letter-spacing:.07em;text-transform:uppercase;margin-bottom:6px}
.tl-item h3{font-size:17px;font-weight:600;letter-spacing:-.014em}
.tl-item>p:not(.tl-k){color:var(--text2);font-size:14.5px;margin-top:8px;max-width:36em;line-height:1.7}
.tl-chip{margin-top:12px;display:inline-flex;align-items:center;gap:8px;background:var(--bg);border:1px solid var(--line);border-radius:9px;padding:8px 13px;font-size:12.5px;color:var(--text2);box-shadow:var(--sh-sm);transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.tl-chip:hover{transform:translateY(-1px);box-shadow:var(--sh-md);border-color:var(--accent-b)}
.tl-chip b{color:var(--text);font-weight:600}

/* ── COMPARISON TABLE ── */
.compare{padding:112px 0}
.compare-head{max-width:560px;margin-bottom:56px}
.table{border:1px solid var(--line);border-radius:16px;overflow:hidden;box-shadow:var(--sh-md);background:var(--bg)}
.trow{display:grid;grid-template-columns:1.3fr 1fr 1fr}
.trow>div{padding:16px 22px;font-size:14px;border-bottom:1px solid var(--line2);transition:background var(--t)}
.trow:last-child>div{border-bottom:none}
.trow:not(.thead):hover>div{background:var(--bg2)}
.trow:not(.thead):hover>.tc-b{background:var(--accent-s)}
.thead>div{background:var(--bg2);font-weight:600;font-size:13px;border-bottom:1px solid var(--line)}
.thead .hi{background:var(--ink);color:#fff}
.tc-label{color:var(--text2);font-weight:500}
.tc-a{color:var(--text3);display:flex;align-items:center;gap:9px}
.tc-b{font-weight:600;display:flex;align-items:center;gap:9px;background:#F7FCF9}
.ic-x,.ic-c{flex-shrink:0}

/* ── CASE STUDY ── */
.case{background:var(--ink);color:#fff;padding:112px 0}
.case-g{display:grid;grid-template-columns:.95fr 1.05fr;gap:72px;align-items:center}
.case .label{color:#34D399}
.case h2{color:#fff}
.case-left p{color:#9CA3AF;font-size:15.5px;line-height:1.75;margin-top:16px}
.case-left p b{color:#E5E7EB;font-weight:600}
.case-quote{margin-top:32px;border-left:2px solid var(--accent);padding-left:20px;font-size:15px;color:#D1D5DB;line-height:1.7}
.case-quote .who{margin-top:8px;font-size:12.5px;color:#6B7280}
.case-panel{background:#1F2937;border:1px solid #374151;border-radius:16px;padding:32px;box-shadow:0 1px 2px rgba(0,0,0,.25),0 16px 32px -12px rgba(0,0,0,.35),0 40px 80px -24px rgba(0,0,0,.5)}
.case-panel h3{font-size:13px;font-weight:600;color:#9CA3AF;letter-spacing:.05em;text-transform:uppercase;margin-bottom:24px}
.case-rows{display:flex;flex-direction:column}
.case-row{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 8px;margin:0 -8px;border-radius:8px;border-bottom:1px solid #374151;transition:background var(--t)}
.case-row:hover{background:rgba(255,255,255,.025)}
.case-row:last-child{border-bottom:none}
.case-row .k{font-size:13.5px;color:#9CA3AF}
.case-row .v{font-size:15px;font-weight:600;color:#fff;text-align:right}
.case-row .v small{display:block;font-size:11.5px;font-weight:500;color:#6B7280;margin-top:2px}

/* ── TESTIMONIALS ── */
.testi{padding:112px 0}
.testi-main{border:1px solid var(--line);border-radius:16px;padding:48px;display:grid;grid-template-columns:auto 1fr;gap:32px;align-items:start;box-shadow:var(--sh-md);background:var(--bg);transition:box-shadow var(--t),transform var(--t),border-color var(--t)}
.testi-main:hover{box-shadow:var(--sh-lg);transform:translateY(-2px)}
.testi-avatar{width:56px;height:56px;border-radius:50%;background:var(--ink);color:#fff;display:flex;align-items:center;justify-content:center;font-size:17px;font-weight:600}
.testi-main blockquote{font-size:clamp(16px,1.8vw,18.5px);line-height:1.65;font-weight:500;letter-spacing:-.012em}
.testi-main .who{margin-top:16px;font-size:14px}
.testi-main .who b{font-weight:600}
.testi-main .who span{color:var(--text3)}
.testi-sub{margin-top:24px;display:grid;grid-template-columns:1fr 1fr;gap:24px}
.testi-s{border:1px solid var(--line2);border-radius:14px;padding:24px;background:var(--bg2);transition:box-shadow var(--t),transform var(--t),border-color var(--t),background var(--t)}
.testi-s:hover{background:var(--bg);border-color:var(--line);box-shadow:var(--sh-md);transform:translateY(-2px)}
.testi-s p{font-size:14px;color:var(--text2);line-height:1.7}
.testi-s .who{margin-top:16px;font-size:12.5px;color:var(--text3)}
.testi-s .who b{color:var(--text2);font-weight:600}

/* ── COVERAGE ── */
.coverage{background:var(--bg2);border-top:1px solid var(--line2);border-bottom:1px solid var(--line2);padding:96px 0}
.cov-g{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.cov-list{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:32px}
.cov-item{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--line);border-radius:10px;padding:11px 16px;font-size:13.5px;font-weight:500;transition:transform var(--t),box-shadow var(--t),border-color var(--t)}
.cov-item:hover{transform:translateY(-2px);box-shadow:var(--sh-md);border-color:var(--accent-b)}
.cov-item i{width:7px;height:7px;border-radius:50%;background:var(--accent);flex-shrink:0}
.cov-cities-h{margin-top:28px;font-size:11.5px;font-weight:600;color:var(--text3);letter-spacing:.06em;text-transform:uppercase}
.cov-cities{margin-top:8px;font-size:13px;color:var(--text2);line-height:1.9;max-width:34em}
.cov-facts{display:flex;flex-direction:column;border:1px solid var(--line);border-radius:16px;background:var(--bg);overflow:hidden;box-shadow:var(--sh-md)}
.cov-fact{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 24px;border-bottom:1px solid var(--line2);font-size:14px;transition:background var(--t)}
.cov-fact:hover{background:var(--bg2)}
.cov-fact:last-child{border-bottom:none}
.cov-fact .k{color:var(--text2)}
.cov-fact .v{font-weight:600;text-align:right}

/* ── FAQ ── */
.faq-s{padding:112px 0}
.faq-head{max-width:560px;margin-bottom:40px}
.faq{max-width:680px}
details{border-bottom:1px solid var(--line)}
details:first-of-type{border-top:1px solid var(--line)}
summary{cursor:pointer;padding:20px 8px;font-weight:600;font-size:15px;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;letter-spacing:-.008em;border-radius:8px;transition:background var(--t),color var(--t)}
summary:hover{background:var(--bg2)}
summary::-webkit-details-marker{display:none}
summary svg{flex-shrink:0;transition:transform .25s cubic-bezier(.4,0,.2,1);color:var(--text3)}
details[open] summary svg{transform:rotate(45deg);color:var(--accent)}
.faq-body{overflow:hidden}
.faq-body p{padding:4px 8px 24px;color:var(--text2);font-size:14px;line-height:1.75;max-width:54em}

/* ── FINAL CTA + FOOTER ── */
.final{background:var(--ink);padding:112px 0}
.final-in{text-align:center}
.final h2{color:#fff;font-size:clamp(27px,3.2vw,38px)}
.final p{margin:16px auto 0;color:#9CA3AF;font-size:16px;max-width:29em}
.final .btn{margin-top:32px}
.final-c{margin-top:32px;display:flex;justify-content:center;gap:32px;flex-wrap:wrap;font-size:13.5px;color:#6B7280}
.final-c a{display:flex;align-items:center;gap:8px;padding:4px 0;transition:color var(--t)}
.final-c a:hover,.final-c a:focus-visible{color:#E5E7EB}
footer{background:var(--ink);border-top:1px solid rgba(255,255,255,.07)}
.foot{max-width:1120px;margin:0 auto;padding:32px;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;font-size:13px;color:#6B7280}
.foot .b{display:flex;align-items:center;gap:10px;color:#D1D5DB;font-weight:600;font-size:14px}
.foot .brand-mark{width:28px;height:28px;border-radius:8px}

/* ── BOOKING PAGE (contact.html) ── */
.book-head{position:relative;padding:72px 0 48px}
.book-head>.wrap{position:relative}
.book-head-in{max-width:560px}
.book-head h1{font-size:clamp(28px,3.4vw,38px);font-weight:800;letter-spacing:-.028em;line-height:1.12;text-wrap:balance}
.book{padding:0 0 96px}
.book-cal{background:var(--bg);border:1px solid var(--line);border-radius:16px;box-shadow:var(--sh-md);overflow:hidden}
.book-cal iframe{display:block;width:100%;height:660px;border:0}
.book-grid{display:grid;grid-template-columns:.4fr .6fr;gap:64px;align-items:start;margin-top:80px}
.book-grid>*{min-width:0}
.book-grid h2{font-size:clamp(21px,2.2vw,26px)}
.book-form{background:var(--bg);border:1px solid var(--line);border-radius:16px;padding:32px;box-shadow:var(--sh-md)}
.field{margin-bottom:20px}
.field label{display:block;font-size:13.5px;font-weight:600;margin-bottom:6px;letter-spacing:-.005em}
.field .req{color:var(--accent)}
.field .opt{color:var(--text3);font-weight:500}
.field input,.field select{width:100%;padding:11px 14px;border:1px solid var(--line);border-radius:10px;font:inherit;font-size:14.5px;color:var(--text);background:var(--bg);transition:border-color var(--t),box-shadow var(--t)}
.field input::placeholder{color:var(--text3)}
.field input:hover,.field select:hover{border-color:#D1D5DB}
.field input:focus,.field select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px rgba(5,150,105,.13)}
.field select{appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12' fill='none'%3E%3Cpath d='M3 4.5l3 3 3-3' stroke='%236B7280' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px;cursor:pointer}
.book-form .btn{width:100%;margin-top:4px}
.form-note{margin-top:12px;font-size:12.5px;color:var(--text3);line-height:1.6}
.book-alt{margin-top:64px;text-align:center;font-size:14px;color:var(--text2)}
.book-alt a{font-weight:600;color:var(--text);border-bottom:1px solid var(--line);transition:color var(--t),border-color var(--t)}
.book-alt a:hover{color:var(--accent);border-color:var(--accent-b)}

/* ── Responsive ── */
@media(max-width:1024px){
  .hero-g,.problem-g,.case-g,.cov-g{grid-template-columns:1fr;gap:48px}
  .hero-g{max-width:640px;margin:0 auto}
  .book-grid{grid-template-columns:1fr;gap:40px}
}
@media(max-width:920px){
  .trust-in{grid-template-columns:repeat(2,1fr);gap:24px;padding:32px 24px}
  .nav-l{display:none}
  .hero{padding:56px 0 48px}
  .hero h1{letter-spacing:-.028em}
  .problem,.how,.compare,.case,.testi,.faq-s,.final{padding:80px 0}
  .coverage{padding:64px 0}
  .how-head,.compare-head{margin-bottom:48px}
  .testi-main{padding:32px;grid-template-columns:1fr}
  .testi-sub{grid-template-columns:1fr;gap:16px}
  .trow{grid-template-columns:1.1fr 1fr 1fr}
  .trow>div{padding:13px 14px;font-size:12.5px}
  .wrap,.nav-in{padding-left:24px;padding-right:24px}
}
@media(max-width:560px){
  .cov-list{grid-template-columns:1fr}
  .brand{gap:8px}
  .brand-name{font-size:14px;white-space:nowrap}
  .brand-mark{width:30px;height:30px}
  .nav .btn{padding:9px 14px;font-size:13.5px}
  .problem,.how,.compare,.case,.testi,.faq-s,.final{padding:64px 0}
  .hero-cta .btn{flex:1 1 100%}
  .tn .n{font-size:22px}
}

/* ── Reduced motion: everything static, everything visible ── */
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none!important;transition:none!important}
  html{scroll-behavior:auto}
  .js .reveal{opacity:1;transform:none}
  .js .tl-item .tl-dot{border-color:var(--line)}
  .js .tl-item.done .tl-dot{border-color:var(--accent);background:var(--accent-s)}
  .js .tl-dot svg{opacity:1;transform:none}
  .btn:hover,.crm-row:hover,.testi-main:hover,.testi-s:hover,.cov-item:hover,.tl-chip:hover{transform:none}
  .hero-visual{will-change:auto}
}
