/* ============================================================
   la Boussole — marketing site
   Shared stylesheet. Palette swaps via [data-theme] on <body>.
   ============================================================ */

:root{
  --serif:'Spectral',Georgia,serif;
  --sans:'Hanken Grotesk',-apple-system,system-ui,sans-serif;
  --maxw:1180px;
  --r:22px;
}

/* ---------- THEME: WARM SAND ---------- */
[data-theme="sand"]{
  --bg:#F3E7CD;
  --bg-grad:radial-gradient(140% 90% at 18% -10%, #FBF2DC 0%, #F1E3C4 50%, #E9D8B2 100%);
  --paper:#FBF4E2;
  --ink:#2B2410;
  --ink-soft:#5E5436;
  --muted:#8A7A52;
  --accent:#46583A;       /* deep green */
  --accent-2:#C2871C;     /* gold */
  --accent-soft:rgba(70,88,58,.10);
  --line:rgba(70,88,58,.16);
  --card:#FCF6E6;
  --card-line:rgba(70,88,58,.14);
  --header-bg:rgba(251,244,226,.82);
  --shadow:0 40px 80px -40px rgba(58,42,12,.45);
  --device:linear-gradient(150deg,#3a3327 0%,#1f1b12 40%,#46402f 70%,#26221a 100%);
}

/* ---------- THEME: CRISP DAYLIGHT ---------- */
[data-theme="crisp"]{
  --bg:#FBFAF7;
  --bg-grad:linear-gradient(180deg,#FFFFFF 0%,#F6F4EF 100%);
  --paper:#FFFFFF;
  --ink:#10182E;
  --ink-soft:#46506A;
  --muted:#8089A0;
  --accent:#16203F;       /* navy */
  --accent-2:#D99A2B;     /* gold */
  --accent-soft:rgba(217,154,43,.12);
  --line:rgba(16,24,46,.12);
  --card:#FFFFFF;
  --card-line:rgba(16,24,46,.09);
  --header-bg:rgba(255,255,255,.82);
  --shadow:0 44px 90px -46px rgba(16,24,46,.40);
  --device:linear-gradient(150deg,#2b3247 0%,#10162a 42%,#3a4360 72%,#161c30 100%);
}

/* ---------- THEME: SOFT DAWN ---------- */
[data-theme="dawn"]{
  --bg:#FCEEDD;
  --bg-grad:radial-gradient(120% 100% at 80% -5%, #FDE4D4 0%, #FCEFE0 45%, #F6E9F0 100%);
  --paper:#FFF6EE;
  --ink:#3A2620;
  --ink-soft:#6E5248;
  --muted:#A48578;
  --accent:#C56A4B;       /* terracotta */
  --accent-2:#8C72C9;     /* soft violet */
  --accent-soft:rgba(197,106,75,.10);
  --line:rgba(197,106,75,.18);
  --card:#FFF8F1;
  --card-line:rgba(140,114,201,.16);
  --header-bg:rgba(255,246,238,.80);
  --shadow:0 44px 86px -42px rgba(120,70,50,.40);
  --device:linear-gradient(150deg,#4a3a4f 0%,#2c2230 42%,#5a4a56 72%,#33272f 100%);
}

*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  background:var(--bg);
  background-image:var(--bg-grad);
  color:var(--ink);
  font-family:var(--sans);
  -webkit-font-smoothing:antialiased;
  line-height:1.55;
}
a{color:inherit;text-decoration:none;}
img{max-width:100%;display:block;}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px;}
section{position:relative;}

/* ---------- header ---------- */
.site-header{
  position:sticky;top:0;z-index:40;
  background:var(--header-bg);
  -webkit-backdrop-filter:saturate(140%) blur(14px);
  backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid var(--line);
}
.site-header .wrap{display:flex;align-items:center;gap:26px;height:72px;}
.brand{display:flex;align-items:center;gap:12px;font-family:var(--serif);font-style:italic;font-weight:600;font-size:23px;color:var(--ink);}
.brand .compass{width:34px;height:34px;flex:none;}
.nav{display:flex;align-items:center;gap:30px;margin-left:auto;}
.nav a{font-weight:600;font-size:15px;color:var(--ink-soft);transition:color .15s;}
.nav a:hover{color:var(--ink);}
/* eyebrow / kicker */
.kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-weight:700;font-size:13px;letter-spacing:2.5px;text-transform:uppercase;
  color:var(--accent-2);
}
.kicker::before{content:"";width:26px;height:1.5px;background:var(--accent-2);opacity:.7;}
.kicker.center::before{display:none;}

/* ---------- hero (shared bits) ---------- */
.hero{padding:84px 0 40px;}
.display{
  font-family:var(--serif);font-weight:700;letter-spacing:-1.2px;line-height:1.04;
  font-size:clamp(44px,6.4vw,82px);text-wrap:balance;color:var(--ink);
}
.display em{font-style:normal;color:var(--accent-2);}
.lead{
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:clamp(20px,2vw,26px);line-height:1.45;color:var(--ink-soft);
  max-width:560px;
}

/* CTA row: store badges */
.cta-row{display:flex;flex-wrap:wrap;align-items:center;gap:16px;}
.badge-link{display:inline-block;transition:transform .15s,opacity .2s;}
.badge-link:hover{transform:translateY(-2px);opacity:.88;}
.badge-link img{height:44px;width:auto;display:block;}

/* ---------- phone mockup ---------- */
.phone{position:relative;width:300px;flex:none;}
.phone .device{
  position:relative;width:100%;border-radius:15%/6.9%;padding:2.6%;
  background:var(--device);
  box-shadow:var(--shadow);
}
.phone .device::after{content:"";position:absolute;inset:1.7%;border-radius:13.5%/6%;box-shadow:inset 0 0 0 2.5px rgba(255,255,255,.10);pointer-events:none;}
.phone .screen{position:relative;width:100%;border-radius:12.6%/5.8%;overflow:hidden;background:#0d1731;box-shadow:0 0 0 5px #07060a;}
.phone .screen img{width:100%;}
.phone .notch{position:absolute;top:2.2%;left:50%;transform:translateX(-50%);width:34%;height:3.1%;background:#07060a;border-radius:0 0 18px 18px;z-index:3;}
.phone.float{animation:float 7s ease-in-out infinite;}
@keyframes float{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}

/* ---------- feature sections ---------- */
.features{padding:40px 0 30px;}
.feature{
  display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:70px;
  padding:62px 0;border-top:1px solid var(--line);
}
.feature:first-child{border-top:0;}
.feature.flip .f-media{order:2;}
.feature .f-media{display:flex;justify-content:center;}
.feature h2{font-family:var(--serif);font-weight:700;font-size:clamp(30px,3.6vw,46px);line-height:1.08;letter-spacing:-.6px;margin:18px 0 14px;color:var(--ink);}
.feature h2 em{font-style:normal;color:var(--accent-2);}
.feature p{font-size:18px;color:var(--ink-soft);max-width:460px;}
.feature .ticks{list-style:none;margin:22px 0 0;display:flex;flex-direction:column;gap:11px;}
.feature .ticks li{display:flex;gap:11px;align-items:flex-start;font-size:15.5px;color:var(--ink-soft);font-weight:500;}
.feature .ticks svg{width:21px;height:21px;flex:none;margin-top:1px;color:var(--accent);}

/* phone in feature gets a soft halo */
.f-media .phone::before{
  content:"";position:absolute;inset:-9% -9% -4%;z-index:-1;border-radius:50%;
  background:radial-gradient(closest-side,var(--accent-soft),transparent 72%);
}

/* ---------- band / quote ---------- */
.band{padding:66px 0;text-align:center;}
.band .q{font-family:var(--serif);font-style:italic;font-weight:500;font-size:clamp(26px,3.4vw,40px);line-height:1.3;color:var(--ink);max-width:880px;margin:0 auto;text-wrap:balance;}
.band .q span{color:var(--accent-2);}
.band .by{margin-top:20px;font-weight:700;letter-spacing:1.5px;text-transform:uppercase;font-size:13px;color:var(--muted);}

/* feature pills (small 3-up) */
.mini{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;padding:8px 0 64px;}
.mini .m{background:var(--card);border:1px solid var(--card-line);border-radius:var(--r);padding:30px 26px;}
.mini .m .ic{width:42px;height:42px;border-radius:12px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);margin-bottom:16px;}
.mini .m .ic svg{width:23px;height:23px;}
.mini .m h3{font-family:var(--serif);font-weight:700;font-size:22px;margin-bottom:7px;color:var(--ink);}
.mini .m p{font-size:15px;color:var(--ink-soft);}

/* ---------- big CTA ---------- */
.cta-final{padding:30px 0 96px;}
.cta-card{
  position:relative;overflow:hidden;border-radius:34px;padding:72px 56px;text-align:center;
  background:var(--accent);color:#FFF8EE;box-shadow:var(--shadow);
}
.cta-card .ring{position:absolute;border-radius:50%;border:1.5px solid rgba(255,255,255,.16);}
.cta-card h2{font-family:var(--serif);font-weight:700;font-size:clamp(34px,4.4vw,56px);line-height:1.06;letter-spacing:-.8px;margin-bottom:18px;color:#FFF8EE;}
.cta-card h2 em{font-style:normal;color:var(--accent-2);}
.cta-card p{font-family:var(--serif);font-style:italic;font-size:21px;opacity:.9;max-width:520px;margin:0 auto 32px;}
.cta-card .cta-row{justify-content:center;}
/* ---------- footer ---------- */
.site-footer{border-top:1px solid var(--line);padding:42px 0;}
.site-footer .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:18px;color:var(--muted);font-size:14px;}
.site-footer .brand{font-size:19px;}
.site-footer .fnav{display:flex;gap:24px;margin-left:auto;}
.site-footer .fnav a{color:var(--ink-soft);font-weight:600;}
.site-footer .fnav a:hover{color:var(--ink);}

/* scroll reveal */
@keyframes reveal{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
[data-reveal]{animation:reveal .7s cubic-bezier(.2,.7,.2,1) both;}

@media(max-width:900px){
  .nav a:not(.btn){display:none;}
  .feature{grid-template-columns:1fr;gap:34px;text-align:center;}
  .feature.flip .f-media{order:0;}
  .feature p,.lead{margin-left:auto;margin-right:auto;}
  .feature .ticks{align-items:center;}
  .mini{grid-template-columns:1fr;}
  .cta-card{padding:54px 26px;}
}

/* ---------- hero B ---------- */
.heroB{padding:70px 0 64px;overflow:hidden;}
.heroB .wrap{display:grid;grid-template-columns:1.05fr .95fr;align-items:center;gap:40px;}
.heroB .display{margin:20px 0 30px;}
.heroB .lead{margin-bottom:32px;}
.heroB .fineprint{margin-top:18px;}
.heroB .h-media{position:relative;display:flex;justify-content:center;align-items:flex-start;}
.heroB .phone{width:312px;transform:rotate(3deg);}
.heroB .phone.back{position:absolute;top:54px;left:8%;width:236px;transform:rotate(-7deg);z-index:-1;opacity:.92;filter:saturate(.96);}
.heroB .blob{position:absolute;width:560px;height:560px;right:-90px;top:-60px;border-radius:46% 54% 58% 42%/52% 44% 56% 48%;background:radial-gradient(closest-side,var(--accent-soft),transparent 72%);z-index:-2;}
.heroB .stat-strip{display:flex;gap:30px;margin-top:30px;}
.heroB .stat-strip .s{display:flex;flex-direction:column;}
.heroB .stat-strip b{font-family:var(--serif);font-weight:700;font-size:28px;color:var(--ink);line-height:1;}
.heroB .stat-strip small{font-size:13px;color:var(--muted);font-weight:600;margin-top:5px;letter-spacing:.3px;}
.heroB .stat-strip .div{width:1px;background:var(--line);}
@media(max-width:900px){
  .heroB .wrap{grid-template-columns:1fr;text-align:center;}
  .heroB .cta-row{justify-content:center;}
  .heroB .lead{margin-left:auto;margin-right:auto;}
  .heroB .h-media{margin-top:46px;}
  .heroB .stat-strip{justify-content:center;}
  .heroB .phone.back{display:none;}
  .heroB .phone{transform:none;}
}

/* ---------- legal pages ---------- */
.page-wrap{max-width:720px;margin:0 auto;padding:80px 28px 96px;}
.page-kicker{font-size:12px;font-weight:700;letter-spacing:2.5px;text-transform:uppercase;color:var(--accent-2);margin-bottom:12px;display:flex;align-items:center;gap:10px;}
.page-kicker::before{content:"";width:24px;height:1.5px;background:var(--accent-2);opacity:.7;}
.page-wrap h1{font-family:var(--serif);font-size:clamp(36px,5vw,56px);font-weight:700;letter-spacing:-1px;line-height:1.06;color:var(--ink);margin-bottom:10px;}
.page-wrap h1 em{font-style:italic;color:var(--accent-2);}
.effective{font-size:13px;color:var(--muted);margin-bottom:48px;font-weight:500;}
.toc{background:var(--card);border:1px solid var(--card-line);border-radius:var(--r);padding:24px 28px;margin-bottom:48px;}
.toc-title{font-size:11px;font-weight:700;letter-spacing:2px;text-transform:uppercase;color:var(--muted);margin-bottom:14px;}
.toc ol{list-style:decimal;padding-left:18px;display:flex;flex-direction:column;gap:6px;}
.toc a{font-size:14px;color:var(--accent-2);text-decoration:none;font-weight:500;}
.toc a:hover{text-decoration:underline;}
.highlight-box{background:var(--card);border-left:3px solid var(--accent-2);border-radius:0 var(--r) var(--r) 0;padding:18px 22px;margin:28px 0;}
.highlight-box p{margin-bottom:0;font-size:15px;color:var(--ink-soft);}
.page-wrap h2{font-family:var(--serif);font-size:26px;font-weight:700;color:var(--ink);margin:48px 0 14px;padding-top:16px;border-top:1px solid var(--line);}
.page-wrap h3{font-family:var(--sans);font-size:14px;font-weight:700;color:var(--ink);text-transform:uppercase;letter-spacing:.08em;margin:24px 0 8px;}
.page-wrap p{font-size:15px;color:var(--ink-soft);line-height:1.75;margin-bottom:14px;}
.page-wrap ul{list-style:disc;padding-left:20px;margin-bottom:14px;}
.page-wrap ul li{font-size:15px;color:var(--ink-soft);line-height:1.7;margin-bottom:6px;}
.page-wrap a{color:var(--accent-2);text-decoration:underline;}
strong{color:var(--ink);font-weight:600;}
