/* Cycling with Antoine : CSS du design system, repris de la maquette de reference. */
/* Layout : site éditorial, sections alternées ciel (snow) et lac (glacier-pale), comme le reflet du logo. Tokens = design system CWA. */
:root{
  --snow:#f5f8fb; --snow-raised:#fcfdfe; --ink:#13202e; --ink-muted:#4a5868;
  --alpine:#1e4a7a; --alpine-deep:#13304f; --on-deep:#fcfdfe; --on-deep-muted:#c9d6e4;
  --glacier:#7fa8da; --glacier-pale:#dce8f6; --mint:#a6dad6; --mint-pale:#e3f4f2;
  --alpenglow:#b84e25; --alpenglow-press:#a84520; --on-alpenglow:#fffdfb;
  --line:#c9d4e0; --control:#6f7f91; --focus:#1e4a7a; --danger:#a4161a; --success:#2e6b4f;
  --shadow-lift:0 12px 32px -12px rgba(19,48,79,.28);
  --font-display:"Jost","Futura","Century Gothic",system-ui,sans-serif;
  --font-body:"Figtree","Segoe UI",system-ui,sans-serif;
  --r-sharp:2px; --r-field:6px; --r-ring:999px;
  --gutter:max(16px, env(safe-area-inset-left, 0px));
  --gutter-r:max(16px, env(safe-area-inset-right, 0px));
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --snow:#0e1720; --snow-raised:#15212d; --ink:#e8eef4; --ink-muted:#9aa9b8;
  --alpine:#8db4e2; --alpine-deep:#1b3a5c; --on-deep:#e8eef4; --on-deep-muted:#b5c6d8;
  --glacier:#7fa8da; --glacier-pale:#1a2c40; --mint:#7fc4be; --mint-pale:#14302e;
  --alpenglow:#e27a4e; --alpenglow-press:#ef8d63; --on-alpenglow:#1a0e08;
  --line:#263544; --control:#6f8296; --focus:#8db4e2; --danger:#f08a80; --success:#7cc6a0;
  --shadow-lift:0 12px 32px -12px rgba(0,0,0,.6); color-scheme:dark;}}
:root[data-theme="dark"]{
  --snow:#0e1720; --snow-raised:#15212d; --ink:#e8eef4; --ink-muted:#9aa9b8;
  --alpine:#8db4e2; --alpine-deep:#1b3a5c; --on-deep:#e8eef4; --on-deep-muted:#b5c6d8;
  --glacier:#7fa8da; --glacier-pale:#1a2c40; --mint:#7fc4be; --mint-pale:#14302e;
  --alpenglow:#e27a4e; --alpenglow-press:#ef8d63; --on-alpenglow:#1a0e08;
  --line:#263544; --control:#6f8296; --focus:#8db4e2; --danger:#f08a80; --success:#7cc6a0;
  --shadow-lift:0 12px 32px -12px rgba(0,0,0,.6); color-scheme:dark;}

*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{background:var(--snow);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:30;background:var(--snow-raised)}
h1,h2,h3{font-family:var(--font-display);font-weight:500;color:var(--ink);margin:0;text-wrap:balance}
h1{font-size:clamp(36px,5vw,54px);line-height:1.08;letter-spacing:-.01em}
h2{font-size:clamp(28px,3.4vw,36px);line-height:1.15}
h3{font-size:21px;line-height:1.3;font-weight:600}
p{margin:0}
a{color:var(--alpine)}
:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.wrap{max-width:1200px;margin-inline:auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}
.measure{max-width:62ch}
.lead{font-size:19px;line-height:1.6;color:var(--ink-muted)}
.muted{color:var(--ink-muted)}
.small{font-size:14px;line-height:1.5}
.label{font-family:var(--font-display);font-size:12px;letter-spacing:.24em;text-transform:uppercase;color:var(--alpine);font-weight:500}
.stack{display:flex;flex-direction:column;gap:16px}
.band{padding-block:clamp(64px,8vw,96px)}
.band--lake{background:var(--glacier-pale)}
.band--deep{background:var(--alpine-deep);color:var(--on-deep)}
.band--deep h2,.band--deep h3{color:var(--on-deep)}
.band--deep .muted{color:var(--on-deep-muted)}
.tbd{display:inline-block;font-family:var(--font-body);font-size:12px;line-height:1.4;font-weight:600;letter-spacing:.02em;color:var(--ink-muted);border:1.5px dashed var(--control);border-radius:var(--r-ring);padding:1px 9px;vertical-align:middle;white-space:nowrap}

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 24px;border-radius:var(--r-ring);border:1.5px solid transparent;font:600 16px/20px var(--font-body);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background-color .2s ease,border-color .2s ease,transform .1s ease}
.btn:active{transform:translateY(1px)}
.btn--primary{background:var(--alpenglow);color:var(--on-alpenglow)}
.btn--primary:hover{background:var(--alpenglow-press)}
.btn--secondary{background:transparent;color:var(--alpine);border-color:var(--control)}
.btn--secondary:hover{border-color:var(--alpine)}
.band--deep .btn--secondary{color:var(--on-deep);border-color:var(--on-deep-muted)}
.link{color:var(--alpine);font-weight:600;text-decoration:underline;text-decoration-color:var(--mint);text-decoration-thickness:1.5px;text-underline-offset:4px}
.link:hover{text-decoration-color:var(--alpine)}
.actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* En-tête */
.header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:var(--snow-raised);border-bottom:1px solid var(--line)}
.header__in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.brand{display:flex;flex-direction:column;text-decoration:none;color:var(--ink);line-height:1.1}
.brand__name{font-family:var(--font-display);font-size:15px;letter-spacing:.32em;text-transform:uppercase;font-weight:500}
.brand__name em{font-style:normal;color:var(--alpine)}
.brand__sub{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-top:3px}
.nav{display:flex;align-items:center;gap:4px}
.nav a,.nav button.navbtn{font:500 15px/20px var(--font-body);color:var(--ink);text-decoration:none;padding:8px 12px;border-radius:var(--r-field);background:none;border:0;cursor:pointer}
.nav a:hover,.nav button.navbtn:hover{color:var(--alpine)}
.nav a[aria-current="page"]{color:var(--alpine);text-decoration:underline;text-decoration-color:var(--mint);text-decoration-thickness:2px;text-underline-offset:6px}
.drop{position:relative}
.drop__panel{position:absolute;left:0;top:calc(100% + 8px);background:var(--snow-raised);border:1px solid var(--line);border-radius:var(--r-field);padding:8px;min-width:260px;box-shadow:var(--shadow-lift);display:flex;flex-direction:column}
.drop__panel a{padding:10px 12px}
.drop__panel small{display:block;color:var(--ink-muted);font-size:13px;font-weight:400}
.navtoggle{display:none;background:none;border:1.5px solid var(--control);border-radius:var(--r-ring);padding:8px 16px;font:600 15px var(--font-body);color:var(--ink);cursor:pointer}
.header .btn{padding:10px 20px}
@media (max-width: 1023px){
  .nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--snow-raised);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;padding:8px var(--gutter-r) 16px var(--gutter)}
  .nav.is-open{display:flex}
  .drop__panel{position:static;box-shadow:none;border:0;padding:0 0 0 12px;min-width:0}
  .navtoggle{display:inline-block}
  .header .actions .btn--primary{display:none}
  .nav a.btn--primary{display:inline-flex;margin-top:8px;color:var(--on-alpenglow);background:var(--alpenglow);padding:12px 24px;border-radius:var(--r-ring)}
}
@media (min-width: 1024px){.nav .btn--primary.nav-cta-m{display:none}}
@media (max-width: 520px){.brand__name{font-size:13px;letter-spacing:.18em;white-space:nowrap}.brand__sub{display:none}}

/* Photos en attente */
.photo{position:relative;background:var(--glacier-pale);border-radius:var(--r-sharp);overflow:hidden;display:flex;align-items:flex-end;max-width:100%}
.band--lake .photo{background:var(--snow-raised)}
.photo:not(:has(img))::before{content:"";position:absolute;inset:auto 0 0 0;height:46%;background:linear-gradient(180deg,transparent,var(--mint-pale));opacity:.9}
.photo figcaption,.photo>span{position:relative;margin:16px;font-size:13px;line-height:1.4;color:var(--ink-muted);background:var(--snow-raised);padding:6px 10px;border-radius:var(--r-field);max-width:calc(100% - 32px)}
.ar-45{aspect-ratio:4/5}.ar-32{aspect-ratio:3/2}.ar-169{aspect-ratio:16/9}.ar-wide{aspect-ratio:21/8}

/* Hero accueil */
.hero{padding-block:clamp(40px,6vw,80px)}
.hero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(32px,5vw,64px);align-items:center}
.hero__grid>*{min-width:0}
.hero h1{margin-block:16px 20px;font-size:clamp(36px,4.2vw,50px)}
.hero .lead{max-width:44ch;margin-bottom:28px}
@media (max-width: 860px){.hero__grid{grid-template-columns:1fr}.hero .photo{aspect-ratio:3/2}}

/* Bande de confiance */
.trust{border-block:1px solid var(--line);background:var(--snow-raised)}
.trust ul{list-style:none;margin:0;padding:20px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:16px 32px}
.trust li{display:flex;flex-direction:column;font-size:14px;line-height:1.4;color:var(--ink-muted)}
.trust strong{font-family:var(--font-display);font-size:20px;font-weight:500;color:var(--ink);margin-bottom:2px}
@media (max-width: 860px){.trust ul{grid-template-columns:1fr 1fr}}

/* Séjours (bento 1 + 2) */
.section-head{display:flex;flex-direction:column;gap:12px;margin-bottom:40px;max-width:66ch}
.tours{display:grid;grid-template-columns:1.25fr 1fr;grid-template-rows:auto auto;gap:24px}
.tour{display:grid;text-decoration:none;color:inherit;border-radius:var(--r-sharp);background:var(--snow-raised);transition:box-shadow .3s ease}
.tour:hover{box-shadow:var(--shadow-lift)}
.tour:focus-visible{outline-offset:4px}
.tour--main{grid-row:span 2;grid-template-rows:1fr auto}
.tour--side{grid-template-columns:.9fr 1.1fr}
.tour__body{padding:24px;display:flex;flex-direction:column;gap:10px;min-width:0}
.tour__meta{font-size:14px;color:var(--ink-muted);line-height:1.5}
.tour__price{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;padding-top:8px;font-size:14px}
.tour__price b{color:var(--alpine);font-weight:600}
.tour--main .photo{min-height:340px}
.tour--side .photo{height:100%;min-height:220px}
@media (max-width: 860px){.tours{grid-template-columns:1fr}.tour--main{grid-row:auto}.tour--side{grid-template-columns:1fr}.tour--side .photo{min-height:200px}}
.aside-note{margin-top:28px;font-size:16px}

/* Journée */
.day{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,5vw,72px);align-items:start}
.day>*{min-width:0}
.timeline{list-style:none;margin:0;padding:0;position:relative}
.timeline::before{content:"";position:absolute;left:7px;top:10px;bottom:10px;width:2px;background:var(--mint)}
.timeline li{position:relative;padding:0 0 28px 40px}
.timeline li::before{content:"";position:absolute;left:0;top:8px;width:16px;height:16px;border-radius:50%;background:var(--snow-raised);border:2px solid var(--alpine)}
.band--lake .timeline li::before{background:var(--glacier-pale)}
.timeline li:last-child{padding-bottom:0}
.timeline b{display:block;font-family:var(--font-display);font-weight:600;font-size:18px;color:var(--ink)}
@media (max-width: 860px){.day{grid-template-columns:1fr}}

/* Antoine */
.antoine{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:center}
.antoine>*{min-width:0}
.counters{display:grid;grid-template-columns:1fr 1fr;gap:24px 32px;margin-top:32px;padding-top:24px;border-top:1px solid var(--line)}
.counters>*{display:flex;flex-direction:column;font-size:14px;color:var(--ink-muted);line-height:1.4}
.counters strong{font-family:var(--font-display);font-weight:500;font-size:30px;color:var(--ink);line-height:1.2}
@media (max-width: 860px){.antoine{grid-template-columns:1fr}}

/* Avis */
.quotes{display:grid;grid-template-columns:1.3fr 1fr;gap:24px}
.quote{margin:0;background:var(--snow-raised);border-radius:var(--r-field);padding:28px;display:flex;flex-direction:column;gap:16px}
.quote--big{grid-row:span 2;justify-content:center}
.stars{display:flex;gap:3px;color:var(--alpenglow)}
.stars svg{width:16px;height:16px;fill:currentColor}
.quote blockquote{margin:0;font-style:italic;font-size:20px;line-height:1.5;color:var(--ink)}
.quote--big blockquote{font-size:24px}
.quote figcaption{font-size:14px;color:var(--ink-muted)}
.quote figcaption b{color:var(--ink);font-weight:600}
@media (max-width: 860px){.quotes{grid-template-columns:1fr}.quote--big{grid-row:auto}}

/* Pour qui */
.who{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.who>:is(li,.cwa-tag-li){display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto;gap:16px 32px;align-items:center;padding:28px 0;border-top:1px solid var(--line)}
.who>:is(li,.cwa-tag-li):last-child{border-bottom:1px solid var(--line)}
@media (max-width: 860px){.who>:is(li,.cwa-tag-li){grid-template-columns:1fr}}

/* Appel final */
.final{display:grid;grid-template-columns:1.3fr auto;gap:32px;align-items:end}
.final .sign{font-style:italic;color:var(--on-deep-muted);margin-top:16px}
@media (max-width: 760px){.final{grid-template-columns:1fr}}

/* Pages séjour */
.page-hero{padding-block:clamp(40px,6vw,72px) 0}
.crumb{font-size:14px;color:var(--ink-muted);margin-bottom:16px}
.crumb a{color:var(--ink-muted)}
.page-hero h1{max-width:20ch}
.page-hero .lead{max-width:56ch;margin-top:16px}
.facts{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:0;margin:32px 0 0;padding:0;border-block:1px solid var(--line)}
.facts div{padding:18px 16px 18px 0;min-width:0}
.facts div+div{padding-left:16px;border-left:1px solid var(--line)}
.facts dt{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-muted);margin-bottom:4px}
.facts dd{margin:0;font-family:var(--font-display);font-size:18px;line-height:1.3;color:var(--ink)}
@media (max-width: 960px){.facts{grid-template-columns:repeat(3,minmax(0,1fr))}.facts div:nth-child(4){border-left:0;padding-left:0}.facts div:nth-child(n+4){border-top:1px solid var(--line)}}
@media (max-width: 560px){.facts{grid-template-columns:1fr 1fr}.facts div{border-left:0!important;padding-left:0!important}.facts div:nth-child(n+3){border-top:1px solid var(--line)}}
.pricebar{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between;padding:20px 0 32px}
.pricebar .price{font-family:var(--font-display);font-size:20px}
.pricebar .price small{font-family:var(--font-body);font-size:14px;color:var(--ink-muted)}
.two{display:grid;grid-template-columns:1fr 1fr;gap:clamp(32px,5vw,72px);align-items:start}
.two>*{min-width:0}
@media (max-width: 860px){.two{grid-template-columns:1fr}}
.prose{display:flex;flex-direction:column;gap:16px;max-width:62ch}
.tablewrap{overflow-x:auto;margin-top:32px;border-top:2px solid var(--ink)}
table{width:100%;border-collapse:collapse;font-size:15px;font-variant-numeric:tabular-nums}
th{font:600 12px/1.4 var(--font-body);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-muted);text-align:left;padding:14px 12px 10px 0}
td{padding:14px 12px 14px 0;border-top:1px solid var(--line);vertical-align:top}
td.num,th.num{text-align:right;white-space:nowrap}
td.day{font-family:var(--font-display);font-size:20px;color:var(--alpine);width:3.5rem}
td .col{display:block;color:var(--ink-muted);font-size:14px}
.tablenote{font-size:14px;color:var(--ink-muted);margin-top:16px}
.incl{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.incl>div{background:var(--snow-raised);border-radius:var(--r-field);padding:28px}
.incl ul{list-style:none;margin:16px 0 0;padding:0;display:flex;flex-direction:column;gap:12px}
.incl li{padding-left:28px;position:relative;line-height:1.5}
.incl .yes li::before{content:"";position:absolute;left:4px;top:7px;width:10px;height:6px;border-left:2px solid var(--success);border-bottom:2px solid var(--success);transform:rotate(-45deg)}
.incl .no li::before{content:"";position:absolute;left:4px;top:11px;width:12px;height:2px;background:var(--control)}
@media (max-width: 760px){.incl{grid-template-columns:1fr}}
.regions{list-style:none;margin:32px 0 0;padding:0;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:0;border-top:2px solid var(--ink)}
.regions li{padding:20px 16px 0 0;display:flex;flex-direction:column;gap:6px}
.regions li+li{padding-left:16px;border-left:1px solid var(--line)}
.regions b{font-family:var(--font-display);font-size:18px;font-weight:500}
.regions span{font-size:15px;color:var(--ink-muted)}
.regions em{font-style:normal;font-size:14px;color:var(--alpine);font-weight:600}
@media (max-width: 960px){.regions{grid-template-columns:1fr}.regions li{padding:16px 0!important;border-left:0!important;border-bottom:1px solid var(--line)}}
.raid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:24px}
.raid>div{border:1.5px solid var(--line);border-radius:var(--r-field);padding:24px;display:flex;flex-direction:column;gap:8px}
.raid strong{font-family:var(--font-display);font-size:28px;font-weight:500}
@media (max-width: 640px){.raid{grid-template-columns:1fr}}
details.qa{border-top:1px solid var(--line);padding:4px 0}
details.qa:last-of-type{border-bottom:1px solid var(--line)}
details.qa summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:16px;padding:16px 0;font-weight:600;font-size:17px}
details.qa summary::-webkit-details-marker{display:none}
details.qa summary::after{content:"+";font-family:var(--font-display);font-size:22px;line-height:1;color:var(--alpine);transition:transform .2s ease}
details.qa[open] summary::after{transform:rotate(45deg)}
details.qa p{padding:0 0 18px;max-width:64ch;color:var(--ink-muted)}

/* Assistance */
.van{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(32px,5vw,64px);align-items:center}
.van>*{min-width:0}
.checks{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:20px 32px}
.checks li{padding-left:28px;position:relative}
.checks li::before{content:"";position:absolute;left:2px;top:8px;width:12px;height:12px;border-radius:50%;border:2px solid var(--alpine)}
@media (max-width: 860px){.van{grid-template-columns:1fr}.checks{grid-template-columns:1fr}}
.tip{background:var(--mint-pale);border-radius:var(--r-field);padding:24px 28px;margin-top:32px;max-width:72ch}

/* Antoine page */
.quotes-strip{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 48px;margin-top:32px}
.quotes-strip p{font-family:var(--font-display);font-size:22px;line-height:1.35}
.quotes-strip small{display:block;font-family:var(--font-body);font-size:14px;color:var(--ink-muted);margin-top:6px}
@media (max-width: 760px){.quotes-strip{grid-template-columns:1fr}}
.creds{list-style:none;margin:24px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px}
.creds li{border:1.5px solid var(--line);border-radius:var(--r-ring);padding:6px 16px;font-size:14px}

/* Avis page */
.reviews{columns:2 340px;column-gap:24px}
.reviews .quote{break-inside:avoid;margin-bottom:24px}
.reviews .quote blockquote{font-size:17px}
.filter{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:32px}
.filter button{font:600 14px var(--font-body);border:1.5px solid var(--control);background:transparent;color:var(--ink);border-radius:var(--r-ring);padding:8px 16px;cursor:pointer}
.filter button[aria-pressed="true"]{background:var(--alpine);border-color:var(--alpine);color:var(--snow-raised)}

/* Formulaire */
.form{background:var(--snow-raised);border-radius:var(--r-field);padding:clamp(20px,4vw,40px);display:grid;gap:20px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:20px}
@media (max-width: 640px){.row{grid-template-columns:1fr}}
.field{display:grid;gap:8px;min-width:0}
.field label{font-size:14px;font-weight:600}
.field label .opt{font-weight:400;color:var(--ink-muted)}
.field input,.field select,.field textarea{font:16px/1.4 var(--font-body);color:var(--ink);background:var(--snow-raised);border:1.5px solid var(--control);border-radius:var(--r-field);padding:11px 12px;width:100%}
.field textarea{min-height:120px;resize:vertical}
.field .help{font-size:14px;color:var(--ink-muted)}
.field .err{font-size:14px;color:var(--danger)}
.field.is-error input,.field.is-error select{border-color:var(--danger)}
.consent{display:flex;gap:12px;align-items:flex-start;font-size:14px}
.consent input{margin-top:4px;width:18px;height:18px;accent-color:var(--alpine)}
.form__foot{display:flex;flex-wrap:wrap;gap:16px;align-items:center}
.contactline{display:flex;flex-wrap:wrap;gap:8px 24px;font-size:15px;margin-top:24px}
.contactline span{user-select:all}

/* Pied de page */
.footer{background:var(--alpine-deep);color:var(--on-deep-muted);padding-block:56px 32px;font-size:15px}
.footer a{color:var(--on-deep);text-decoration:none}
.footer a:hover{text-decoration:underline}
.footer__grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:32px}
.footer h4{font:500 12px/1.4 var(--font-display);letter-spacing:.24em;text-transform:uppercase;color:var(--on-deep);margin:0 0 12px}
.footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.footer .brand__name{color:var(--on-deep)}
.footer .brand__name em{color:var(--mint)}
.footer__bottom{margin-top:48px;padding-top:20px;border-top:1px solid rgba(201,214,228,.25);display:flex;flex-wrap:wrap;gap:12px 24px;justify-content:space-between;font-size:13px}
@media (max-width: 860px){.footer__grid{grid-template-columns:1fr 1fr}}
@media (max-width: 480px){.footer__grid{grid-template-columns:1fr}}



/* Utilitaires (issus des styles en ligne de la maquette) */
.err{color:var(--danger)}
.u-pb-hero{padding-bottom:clamp(40px,6vw,72px)}.u-pb40{padding-bottom:40px}.u-pt48{padding-top:48px}.u-pt24{padding-top:24px}
.u-mb32{margin-bottom:32px}.u-mt8{margin-top:8px}.u-mt16{margin-top:16px}.u-mt28{margin-top:28px}.u-mt32{margin-top:32px}
.u-w52{max-width:52ch}.u-w62{max-width:62ch}.wrap.u-w880{max-width:880px;margin-left:0}.wrap.u-w720{max-width:720px;margin-left:0}
.u-quiet{opacity:.7}.u-italic{font-style:italic}.sign{font-style:italic;color:var(--ink-muted)}.u-end{align-items:end}
.stack--tight{gap:8px}.stack--12{gap:12px}.checks.checks--one{grid-template-columns:1fr}
.tip.tip--row{margin-top:0;max-width:none;display:flex;flex-wrap:wrap;gap:16px 32px;align-items:center;justify-content:space-between}

/* Revue design du 12 novembre : preuves sur 3 colonnes, grande citation, intros de séjour empilées, titres équilibrés */
.trust ul{grid-template-columns:repeat(3,1fr)}
@media (max-width: 860px){.trust ul{grid-template-columns:1fr 1fr}.trust li:last-child{grid-column:1/-1}}
.quote--big{padding:clamp(28px,4vw,48px)}.quote--big blockquote{font-size:clamp(22px,2.2vw,28px);line-height:1.45}
.intro{display:grid;gap:28px}.intro h2{max-width:24ch}
.intro .prose{max-width:none;display:grid;grid-template-columns:1fr 1fr;gap:16px clamp(24px,4vw,56px)}.intro .prose p{font-size:18px;line-height:1.65;color:var(--ink)}
@media (max-width: 860px){.intro .prose{grid-template-columns:1fr}}
.hero .label{text-wrap:balance}.trust .tbd{align-self:flex-start}p{text-wrap:pretty}
