/* Layout: sticky slim header; hero (copy + illustration) on a winter-ink band; then plain
   sections on a snow ground; the booking tool sits in one card. Legal pages reuse the same tokens. */
:root{
  --snow:#F3F6F8;        /* page ground */
  --paper:#FFFFFF;       /* cards */
  --ink:#122033;         /* text + hero band */
  --ink-2:#2A3A52;       /* secondary dark */
  --muted:#5A6878;
  --line:#D3DCE4;
  --orange:#E5602A;      /* safety orange: actions, highlights */
  --orange-ink:#FFFFFF;
  --orange-soft:#FDEBE2;
  --ice:#DCEBF5;         /* cool tint for illustration and chips */
  --ok:#1D7A4E; --ok-soft:#E0F2E8;
  --bad:#B4271F;
  --band-fg:#F3F6F8; --band-muted:#B7C4D3;
  --display:"Barlow Condensed","Arial Narrow",Arial,sans-serif;
  --body:"Barlow",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"IBM Plex Mono",ui-monospace,Menlo,Consolas,monospace;
  --r:10px;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --snow:#0D141D; --paper:#141E2A; --ink:#E8EEF3; --ink-2:#C6D1DC; --muted:#93A2B2; --line:#26354A;
  --orange:#F0753E; --orange-ink:#170D07; --orange-soft:#3A2116; --ice:#1C2C3E; --ok:#5CC98E; --ok-soft:#14301F; --bad:#F2877F;
  --band-fg:#E8EEF3; --band-muted:#93A2B2; color-scheme:dark}}
:root[data-theme="dark"]{
  --snow:#0D141D; --paper:#141E2A; --ink:#E8EEF3; --ink-2:#C6D1DC; --muted:#93A2B2; --line:#26354A;
  --orange:#F0753E; --orange-ink:#170D07; --orange-soft:#3A2116; --ice:#1C2C3E; --ok:#5CC98E; --ok-soft:#14301F; --bad:#F2877F;
  --band-fg:#E8EEF3; --band-muted:#93A2B2; color-scheme:dark}

*{box-sizing:border-box}
[hidden]{display:none!important}
/* Bilingual content: each text exists twice, marked lang="fr" / lang="en"; only the active one shows. */
:root[lang="fr"] body [lang="en"],:root[lang="en"] body [lang="fr"]{display:none!important}
html{scroll-behavior:smooth;scroll-padding-top:4.5rem}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{margin:0;background:var(--snow);color:var(--ink);font:400 1.0625rem/1.6 var(--body);-webkit-font-smoothing:antialiased}
a{color:inherit}
:focus-visible{outline:3px solid var(--orange);outline-offset:2px;border-radius:4px}
.gutter{padding-left:max(16px,env(safe-area-inset-left,0px));padding-right:max(16px,env(safe-area-inset-right,0px))}
.inner{max-width:68rem;margin:0 auto}
h1,h2,h3{font-family:var(--display);font-weight:700;text-transform:uppercase;line-height:.98;text-wrap:balance;margin:0}
h2{font-size:clamp(2rem,5vw,2.8rem)}
h3{font-size:1.35rem;letter-spacing:.01em}
p{margin:0}
.eyebrow{font:600 .8rem var(--body);letter-spacing:.14em;text-transform:uppercase;color:var(--orange)}
.lead{color:var(--muted);max-width:40rem;font-size:1.125rem}

/* Header */
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--paper)}
.hdr{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--paper);border-bottom:1px solid var(--line)}
.hdr .inner{display:flex;align-items:center;gap:1rem;height:3.75rem}
.logo{display:flex;align-items:center;gap:.55rem;text-decoration:none;font:700 1.2rem/1 var(--display);letter-spacing:.02em;min-width:0}
.logo svg{flex:none}
.logo span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav{display:flex;gap:1.4rem;margin-left:auto}
.nav a{text-decoration:none;font-weight:500;color:var(--muted)}
.nav a:hover{color:var(--ink)}
.hdr-actions{display:flex;align-items:center;gap:.6rem;margin-left:1.4rem}
@media (max-width:860px){.nav{display:none}.hdr-actions{margin-left:auto}}
@media (max-width:420px){.hdr .btn-sm{display:none}}
.lang{display:flex;border:1px solid var(--line);border-radius:6px;overflow:hidden}
.lang button{background:none;border:0;color:var(--muted);font:600 .8rem var(--body);padding:.4rem .6rem;cursor:pointer}
.lang button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;background:var(--orange);color:var(--orange-ink);border:0;border-radius:8px;
  padding:.85rem 1.3rem;font:700 1.15rem/1 var(--display);text-transform:uppercase;letter-spacing:.05em;text-decoration:none;cursor:pointer}
.btn:hover{filter:brightness(1.06)}
.btn-ghost{background:none;color:inherit;border:1.5px solid currentColor}
.btn-sm{padding:.55rem .9rem;font-size:1rem}
.btn:disabled{opacity:.6;cursor:wait}

/* Hero */
.hero{background:#122033;color:#F3F6F8}
.hero .inner{display:grid;grid-template-columns:1.05fr .95fr;gap:2.5rem;align-items:center;padding-block:3rem 3.5rem}
@media (max-width:860px){.hero .inner{grid-template-columns:1fr;gap:2rem;padding-block:2rem 2.5rem}}
.hero h1{font-size:clamp(2.9rem,8.5vw,5.2rem)}
.hero h1 em{font-style:normal;color:#FF8A55}
.hero .sub{color:#C9D5E1;font-size:1.15rem;max-width:34rem;margin-top:1.1rem}
.hero .ctas{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.6rem}
.hero .btn-ghost{color:#F3F6F8}
.deadline{display:inline-flex;align-items:center;gap:.5rem;margin-bottom:1.1rem;font:500 .85rem var(--mono);background:rgba(255,138,85,.14);color:#FFB592;
  padding:.4rem .7rem;border-radius:6px}
.deadline::before{content:"";width:.5rem;height:.5rem;border-radius:50%;background:#FF8A55}
.hero-art{min-width:0}
.hero-art svg{width:100%;height:auto;display:block}
.price-tag{display:flex;align-items:baseline;gap:.6rem;margin-top:1.4rem;color:#C9D5E1}
.price-tag b{font:700 2.6rem/1 var(--display);color:#F3F6F8}

/* Promise strip */
.promises{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);border-radius:var(--r);overflow:hidden;margin-top:-1.75rem;position:relative}
@media (max-width:860px){.promises{grid-template-columns:1fr 1fr;margin-top:1.5rem}}
@media (max-width:480px){.promises{grid-template-columns:1fr}}
.promise{background:var(--paper);padding:1.2rem 1.25rem;display:grid;gap:.35rem;align-content:start}
.promise svg{color:var(--orange)}
.promise h3{font-size:1.2rem}
.promise p{color:var(--muted);font-size:.98rem}

section.block{padding-block:4.5rem 0}
@media (max-width:600px){section.block{padding-block:3.25rem 0}}
.head{display:grid;gap:.6rem;margin-bottom:2rem}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:1.25rem;counter-reset:s;list-style:none;padding:0;margin:0}
@media (max-width:760px){.steps{grid-template-columns:1fr}}
.steps li{display:grid;gap:.5rem;align-content:start;padding-top:1rem;border-top:3px solid var(--ink)}
.steps .n{font:500 .85rem var(--mono);color:var(--orange)}
.steps p{color:var(--muted)}

/* Compare */
.compare{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}
@media (max-width:700px){.compare{grid-template-columns:1fr}}
.col{border-radius:var(--r);padding:1.4rem;display:grid;gap:.9rem;align-content:start}
.col.them{border:1px dashed var(--line)}
.col.us{background:var(--ink);color:var(--paper)}
.col ul{list-style:none;margin:0;padding:0;display:grid;gap:.6rem}
.col li{display:grid;grid-template-columns:1.4rem 1fr;gap:.5rem;align-items:start}
.col.them li{color:var(--muted)}
.col li svg{margin-top:.2rem}
.col.us li svg{color:#FF8A55}

/* Price */
.price-card{display:grid;grid-template-columns:auto 1fr;gap:2rem;background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.75rem}
@media (max-width:700px){.price-card{grid-template-columns:1fr;gap:1.25rem}}
.big-price{font:700 5rem/.9 var(--display)}
.big-price small{display:block;font:500 .95rem var(--body);color:var(--muted);text-transform:none;margin-top:.5rem}
.incl{list-style:none;margin:0;padding:0;display:grid;gap:.55rem}
.incl li{display:grid;grid-template-columns:1.4rem 1fr;gap:.5rem}
.incl svg{color:var(--ok);margin-top:.2rem}
.note{border-left:4px solid var(--orange);border-radius:0;background:var(--orange-soft);padding:.8rem 1rem;margin-top:1rem;font-size:.98rem}

/* Booking */
.book{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1.5rem;display:grid;gap:2rem}
@media (max-width:600px){.book{padding:1.1rem}}
.bstep{display:grid;gap:.9rem}
.bstep-h{display:flex;align-items:baseline;gap:.75rem;flex-wrap:wrap}
.bstep-h .n{display:inline-grid;place-items:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--ink);color:var(--paper);font:700 1rem var(--display);flex:none;transform:translateY(-.1rem)}
.bstep-h h3{font-size:1.5rem}
.bstep-h .hint{color:var(--muted);font-size:.95rem;margin-left:auto}
@media (max-width:600px){.bstep-h .hint{margin-left:0;flex-basis:100%}}
.days{display:flex;gap:.5rem;overflow-x:auto;padding:.15rem .15rem .6rem;scroll-snap-type:x proximity}
.day{flex:0 0 5.4rem;scroll-snap-align:start;display:grid;gap:.1rem;text-align:center;padding:.6rem .3rem;border:1.5px solid var(--line);border-radius:8px;background:var(--snow);color:var(--ink);cursor:pointer;font:inherit}
.day .dw{font:600 .75rem var(--body);text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}
.day .dd{font:700 1.6rem/1 var(--display)}
.day .dm{font-size:.8rem;color:var(--muted)}
.day .ds{font-size:.75rem;font-weight:600;color:var(--ok);margin-top:.2rem}
.day.full{cursor:not-allowed;background:transparent;border-style:dashed}
.day.full .dd,.day.full .dw,.day.full .dm{opacity:.45}
.day.full .ds{color:var(--muted)}
.day[aria-pressed="true"]{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.day[aria-pressed="true"] .dw,.day[aria-pressed="true"] .dm,.day[aria-pressed="true"] .ds{color:var(--paper);opacity:.85}
.times{display:grid;grid-template-columns:repeat(auto-fill,minmax(7.2rem,1fr));gap:.5rem}
.time{display:grid;gap:.05rem;text-align:center;padding:.6rem .3rem;border:1.5px solid var(--line);border-radius:8px;background:var(--snow);color:var(--ink);cursor:pointer;font:inherit}
.time .t{font:500 1.05rem var(--mono);font-variant-numeric:tabular-nums}
.time .s{font-size:.75rem;font-weight:600;color:var(--ok)}
.time:disabled{cursor:not-allowed;background:transparent;border-style:dashed}
.time:disabled .t{opacity:.45;text-decoration:line-through}
.time:disabled .s{color:var(--muted)}
.time[aria-pressed="true"]{background:var(--orange);border-color:var(--orange);color:var(--orange-ink)}
.time[aria-pressed="true"] .s{color:var(--orange-ink)}
.empty{color:var(--muted);padding:.8rem 0}

form.details{display:grid;gap:1rem}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
@media (max-width:600px){.grid2{grid-template-columns:1fr}}
.field{display:grid;gap:.35rem;min-width:0}
.field label,.field legend{font-weight:600;font-size:.95rem}
.field .opt{font-weight:400;color:var(--muted)}
.field input,.field textarea{font:inherit;color:var(--ink);background:var(--snow);border:1.5px solid var(--line);border-radius:8px;padding:.7rem .8rem;width:100%}
.field input:focus,.field textarea:focus{border-color:var(--ink);outline:none}
.field textarea{min-height:5rem;resize:vertical}
.field .err{color:var(--bad);font-size:.88rem}
.field.invalid input{border-color:var(--bad)}
fieldset.field{border:0;padding:0;margin:0}
.types{display:grid;grid-template-columns:repeat(4,1fr);gap:.5rem}
@media (max-width:600px){.types{grid-template-columns:1fr 1fr}}
.type{position:relative}
.type input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer}
.type>span{display:grid;justify-items:center;gap:.3rem;padding:.7rem .3rem;border:1.5px solid var(--line);border-radius:8px;background:var(--snow);font-weight:600;font-size:.92rem;text-align:center}
.type svg{color:var(--muted)}
.type input:checked+span{border-color:var(--ink);background:var(--ink);color:var(--paper)}
.type input:checked+span svg{color:var(--paper)}
.type input:focus-visible+span{outline:3px solid var(--orange);outline-offset:2px}
.checks{display:grid;gap:.7rem}
.check{display:grid;grid-template-columns:1.25rem 1fr;gap:.6rem;align-items:start;font-size:.98rem}
.check input{width:1.2rem;height:1.2rem;margin:.2rem 0 0;accent-color:var(--orange)}
.check a{color:var(--orange);font-weight:600}
.check.req>span::after{content:" *";color:var(--bad)}
.check.invalid>span{color:var(--bad)}
.summary{display:flex;flex-wrap:wrap;gap:.4rem 1rem;align-items:center;background:var(--ice);border-radius:8px;padding:.8rem 1rem;font-weight:500}
.summary b{font:700 1.3rem var(--display);text-transform:uppercase}
.form-err{color:var(--bad);font-weight:500}
.submit-row{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.submit-row .small{color:var(--muted);font-size:.9rem}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.demo{font-size:.88rem;color:var(--muted);background:var(--snow);border:1px dashed var(--line);border-radius:8px;padding:.6rem .8rem}

.done{display:grid;gap:1rem;justify-items:start}
.done .tick{width:3.2rem;height:3.2rem;border-radius:50%;background:var(--ok-soft);color:var(--ok);display:grid;place-items:center}
.done h3{font-size:2.2rem}
.done ul{margin:0;padding-left:1.2rem;display:grid;gap:.35rem}
.done .row{display:flex;flex-wrap:wrap;gap:.6rem}

/* FAQ */
.faq{display:grid;gap:.5rem;max-width:50rem}
.faq details{background:var(--paper);border:1px solid var(--line);border-radius:8px}
.faq summary{cursor:pointer;list-style:none;padding:1rem 1.1rem;font-weight:600;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font:700 1.4rem/1 var(--display);color:var(--orange)}
.faq details[open] summary::after{content:"–"}
.faq details p{padding:0 1.1rem 1.1rem;color:var(--muted)}

/* Final CTA + footer */
.cta-band{margin-top:4.5rem;background:var(--orange);color:var(--orange-ink)}
.cta-band .inner{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;padding-block:2.25rem}
.cta-band h2{font-size:clamp(1.8rem,4.5vw,2.6rem)}
.cta-band .btn{background:var(--ink);color:var(--paper)}
footer.ftr{background:var(--paper);border-top:1px solid var(--line)}
footer.ftr .inner{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem;padding-block:2.5rem}
@media (max-width:700px){footer.ftr .inner{grid-template-columns:1fr;gap:1.5rem}}
.ftr h4{margin:0 0 .6rem;font:600 .8rem var(--body);letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.ftr ul{list-style:none;margin:0;padding:0;display:grid;gap:.4rem}
.ftr a{text-decoration:none}
.ftr a:hover{text-decoration:underline}
.ftr .fine{color:var(--muted);font-size:.9rem;margin-top:.6rem;max-width:30rem}
.ftr .inner.copy{display:block;border-top:1px solid var(--line);padding-block:1rem;color:var(--muted);font-size:.85rem}
.ftr .inner.copy a{color:inherit}

/* Legal pages */
.legal{max-width:46rem;margin:0 auto;padding-block:2.5rem 4rem}
.legal h1{font-size:clamp(2.4rem,7vw,3.4rem)}
.legal .meta{color:var(--muted);margin-top:.6rem}
.legal .toc{background:var(--paper);border:1px solid var(--line);border-radius:var(--r);padding:1rem 1.25rem;margin:1.75rem 0}
.legal .toc ol{margin:0;padding-left:1.3rem;columns:2;column-gap:2rem}
@media (max-width:600px){.legal .toc ol{columns:1}}
.legal .toc a{text-decoration:none;color:var(--ink-2)}
.legal h2{font-size:1.7rem;margin-top:2.25rem;margin-bottom:.6rem}
.legal p,.legal li{color:var(--ink-2);margin-bottom:.7rem}
.legal ul{padding-left:1.3rem;margin:0 0 .7rem}
.legal a{color:var(--orange)}
.legal .box{background:var(--ice);border-radius:8px;padding:1rem 1.15rem;margin:1rem 0}
.legal .box p{margin:0}
.back{display:inline-flex;gap:.4rem;align-items:center;text-decoration:none;color:var(--muted);font-weight:500;margin-bottom:1.5rem}
