body{margin:0}img{max-width:100%}[hidden]{display:none!important}.carte{margin:12px 0 0;min-width:0;width:100%;display:flex;flex-direction:column;gap:10px}
.carte-scroll{min-width:0;overflow-x:auto;border:1px solid var(--trait);border-radius:8px;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}
.carte-svg{display:block;width:100%;height:auto}
.carte figcaption{font-size:.88rem;color:var(--gris)}
.carte .glisser{display:none}
.carte .glisser{display:none}@media (max-width:640px){.carte-svg{width:500px;max-width:none}.carte .glisser{display:inline}}
.c-eau{fill:color-mix(in srgb,var(--bassin) 30%,var(--papier))}
.c-lac{stroke:var(--trait);stroke-width:1.5}
.c-terre{fill:var(--sable);stroke:color-mix(in srgb,var(--bassin) 35%,var(--trait));stroke-width:1.5}
.c-ile{fill:color-mix(in srgb,var(--pin) 14%,var(--sable));stroke:var(--trait)}
.c-fleuve{fill:none;stroke:color-mix(in srgb,var(--bassin) 40%,var(--papier));stroke-width:7;stroke-linecap:round;stroke-linejoin:round}
.c-mer{font-family:var(--f-titre);font-style:italic;font-size:36px;fill:var(--bassin);opacity:.8}
.c-petit{font-size:28px}.c-mini{font-size:17px}
.c-foret{font-family:var(--f-titre);font-style:italic;font-size:26px;fill:var(--pin-doux);opacity:.75}
.c-lab{font-family:var(--f-texte);font-size:27px;font-weight:600;paint-order:stroke;stroke:var(--papier);stroke-width:7px;stroke-linejoin:round}
.c-lab-plage{fill:var(--bassin)}.c-lab-voir{fill:var(--resine)}.c-lab-ville{fill:var(--pin)}
.c-pt-plage,.c-pt-voir,.c-pt-ville{stroke:var(--papier);stroke-width:2}
.c-pt-plage{fill:var(--bassin)}.c-pt-voir{fill:var(--resine)}.c-pt-ville{fill:var(--pin)}
.c-trait-voir{stroke:var(--resine);stroke-width:1.5}.c-trait-ville{stroke:var(--pin);stroke-width:1.5}
.c-avion{fill:var(--papier)}
.c-maison-halo{fill:var(--resine);opacity:.25}.c-maison{fill:var(--resine);stroke:var(--papier);stroke-width:3}
.c-pastille{fill:var(--pin)}.c-pastille-txt{font-family:var(--f-texte);font-size:23px;font-weight:600;fill:var(--papier)}
.c-cartouche{fill:var(--papier);opacity:.92}.c-echelle{stroke:var(--encre);stroke-width:3}
.c-lab-echelle{font-family:var(--f-texte);font-size:18px;fill:var(--encre)}.c-nord{fill:var(--encre)}
/* Layout : une colonne éditoriale, bandeaux pleine largeur (pins / sable / bassin), contenu centré à 1080px */
:root{
  --sable:#f3f1ea; --papier:#fbfaf6; --pin:#1f3b2f; --pin-doux:#2f5443;
  --bassin:#3d6470; --resine:#b8862f; --encre:#1c2420; --gris:#5b6660; --trait:#d9dbd2;
  --logo-filtre:none;
  --f-titre:"Gloock", Georgia, "Times New Roman", serif;
  --f-texte:"Figtree", "Segoe UI", system-ui, sans-serif;
}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]){
  --sable:#161c19; --papier:#1b221e; --pin:#9cc4ad; --pin-doux:#7fae95;
  --bassin:#8fb5c0; --resine:#d9ab55; --encre:#e8ece7; --gris:#a7b2ab; --trait:#2d3832; --logo-filtre:brightness(2.6) saturate(.7); color-scheme:dark}}
:root[data-theme="dark"]{
  --sable:#161c19; --papier:#1b221e; --pin:#9cc4ad; --pin-doux:#7fae95;
  --bassin:#8fb5c0; --resine:#d9ab55; --encre:#e8ece7; --gris:#a7b2ab; --trait:#2d3832; --logo-filtre:brightness(2.6) saturate(.7); color-scheme:dark}
*{box-sizing:border-box}
body{background:var(--papier);color:var(--encre);font-family:var(--f-texte);font-size:17px;line-height:1.65}
.wrap{max-width:1080px;margin:0 auto;padding-left:max(20px, env(safe-area-inset-left,0px));padding-right:max(20px, env(safe-area-inset-right,0px))}
h1,h2,h3{font-family:var(--f-titre);font-weight:400;line-height:1.12;text-wrap:balance;margin:0}
h1{font-size:clamp(2.2rem,5.6vw,4rem);color:var(--pin)}
h2{font-size:clamp(1.7rem,3.6vw,2.5rem);color:var(--pin)}
h3{font-size:1.25rem}
p{margin:0;max-width:65ch}
a{color:var(--bassin)}
:focus-visible{outline:3px solid var(--resine);outline-offset:2px}
.eyebrow{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--resine);font-weight:600}

header.top{border-bottom:1px solid var(--trait)}
header.top .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;padding-block:16px;flex-wrap:wrap}
.logo{font-family:var(--f-titre);font-size:1.5rem;color:var(--pin);text-decoration:none}
nav{display:flex;gap:18px;flex-wrap:wrap;font-size:.95rem}
nav a{color:var(--encre);text-decoration:none}
nav a.cta{background:var(--pin);color:var(--papier);padding:8px 16px;border-radius:999px}

.hero .wrap{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:center;padding-block:56px 48px}
.hero .txt{display:flex;flex-direction:column;gap:20px;min-width:0}
.hero .lead{font-size:1.15rem;color:var(--gris)}
.boutons{display:flex;gap:12px;flex-wrap:wrap}
.btn{display:inline-block;padding:13px 22px;border-radius:999px;font-weight:600;text-decoration:none;border:2px solid var(--pin)}
.btn.plein{background:var(--pin);color:var(--papier)}
.btn.vide{color:var(--pin)}
.photo{border-radius:4px;aspect-ratio:4/3;max-width:100%;width:100%;display:flex;align-items:flex-end;padding:14px;
  background:repeating-linear-gradient(135deg,var(--sable) 0 14px,var(--trait) 14px 15px);color:var(--gris);font-size:.85rem;border:1px solid var(--trait)}
.photo.haute{aspect-ratio:3/4}
.img{display:block;width:100%;max-width:100%;height:100%;object-fit:cover;border-radius:4px;background:var(--sable)}
.hero figure{margin:0;aspect-ratio:4/5;max-width:100%}
.hotes-photo{margin:0;max-width:100%;display:flex;flex-direction:column;gap:8px}
.hotes-photo img{aspect-ratio:4/5;height:auto}
.hotes-cap{font-family:var(--f-titre);font-size:1.2rem;color:var(--pin)}
.galerie-titre{display:flex;justify-content:space-between;align-items:baseline;gap:16px;flex-wrap:wrap}
.galerie-titre p{color:var(--gris)}
.mosaique{display:grid;grid-template-columns:repeat(4,1fr);grid-auto-rows:220px;gap:10px;grid-auto-flow:dense}
.mosaique button{all:unset;cursor:zoom-in;position:relative;overflow:hidden;border-radius:4px;min-width:0}
.mosaique button:focus-visible{outline:3px solid var(--resine);outline-offset:2px}
.mosaique img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .5s ease}
.mosaique button:hover img{transform:scale(1.04)}
.mosaique figcaption{position:absolute;left:0;right:0;bottom:0;padding:24px 12px 10px;font-size:.82rem;color:#fff;background:linear-gradient(transparent,rgba(10,20,15,.65))}
.mosaique .grand{grid-column:span 2;grid-row:span 2}
.mosaique .haut{grid-row:span 2}
.mosaique .large{grid-column:span 2}
.tarifs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.tarif{display:flex;flex-direction:column;gap:6px;padding:24px;border:1px solid var(--trait);border-radius:6px;background:var(--papier)}
.tarif.haute{border-color:var(--pin)}
.tarif span{font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);font-weight:600}
.tarif b{font-family:var(--f-titre);font-weight:400;font-size:2.6rem;line-height:1;color:var(--pin);font-variant-numeric:tabular-nums}
.tarif small{color:var(--gris);font-size:.9rem}
.compris{display:grid;grid-template-columns:1fr 1fr;gap:28px}
.compris > div{display:flex;flex-direction:column;gap:12px;min-width:0}
.compris ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
.compris li{padding-left:26px;position:relative}
.compris .oui li::before{content:"✓";position:absolute;left:0;color:var(--pin-doux);font-weight:700}
.compris .plus li::before{content:"+";position:absolute;left:2px;color:var(--resine);font-weight:700}
@media (max-width:800px){.tarifs,.compris{grid-template-columns:1fr}}
.vigilance{border-left:3px solid var(--resine);padding:4px 0 4px 16px;color:var(--encre);font-size:.95rem}
.plan{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.aile{display:flex;flex-direction:column;gap:10px;padding:24px;border:1px solid var(--trait);border-radius:6px;min-width:0}
.aile h3{color:var(--pin)}
.aile ul{margin:0;padding-left:20px;display:flex;flex-direction:column;gap:6px}
.aile p{color:var(--gris);font-size:.95rem}
@media (max-width:800px){.plan{grid-template-columns:1fr}}
.equip-tete{border-top:1px solid var(--trait);padding-top:40px;margin-top:16px}
.equipements{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.cat{display:flex;flex-direction:column;gap:12px;padding:22px 24px;background:var(--sable);border-radius:6px;min-width:0}
.cat h3{font-size:1.15rem;color:var(--pin)}
.cat ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column}
.cat li{padding:7px 0 7px 20px;position:relative;border-top:1px solid var(--trait);font-size:.95rem}
.cat li:first-child{border-top:0}
.cat li::before{content:"";position:absolute;left:0;top:1.05em;width:7px;height:7px;border-radius:50%;background:var(--resine)}
.aile ul{padding-left:20px}
@media (max-width:900px){.equipements{grid-template-columns:1fr 1fr}}
@media (max-width:560px){.equipements{grid-template-columns:1fr}}
.confiance{display:flex;flex-direction:column;gap:10px;padding:22px 24px;background:var(--papier);border:1px solid var(--trait);border-radius:6px}
.confiance h3{color:var(--pin)}
.guide .cat li{display:flex;flex-direction:column;gap:2px}
.guide .cat li b{font-weight:600}
.guide .cat li span{color:var(--gris);font-size:.88rem;line-height:1.5}
.guide .cat li::before{top:1.15em}
body::before{content:"";position:fixed;inset:0 0 auto;height:env(safe-area-inset-top,0px);z-index:10;background:var(--papier)}
header.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:9;background:var(--papier)}
header.top .wrap{flex-wrap:nowrap}
header.top nav{display:flex;gap:20px;font-size:.95rem}
header.top nav a{color:var(--encre);text-decoration:none;padding-block:4px}
header.top nav a:hover{color:var(--pin)}
.actions{display:flex;align-items:center;gap:10px}
.actions .cta{background:var(--pin);color:var(--papier);padding:9px 18px;border-radius:999px;text-decoration:none;font-weight:600;font-size:.95rem;white-space:nowrap}
.burger{all:unset;display:none;cursor:pointer;width:44px;height:44px;align-items:center;justify-content:center;flex-direction:column;gap:5px;border-radius:999px}
.burger span{display:block;width:22px;height:2px;background:var(--encre);transition:transform .25s ease,opacity .25s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.burger:focus-visible{outline:3px solid var(--resine)}
section[id],#guide{scroll-margin-top:80px}
@media (max-width:1180px){
  .burger{display:flex}
  header.top nav{display:none;position:absolute;left:0;right:0;top:100%;flex-direction:column;gap:0;background:var(--papier);border-bottom:1px solid var(--trait);
    padding:8px max(20px,env(safe-area-inset-right,0px)) 16px max(20px,env(safe-area-inset-left,0px));box-shadow:0 12px 24px rgba(0,0,0,.08)}
  header.top nav.ouvert{display:flex}
  header.top nav a{padding:14px 0;border-top:1px solid var(--trait);font-size:1.05rem}
  header.top nav a:first-child{border-top:0}
}
@media (prefers-reduced-motion:reduce){.burger span{transition:none}}
.guide .cat a.lieu{font-weight:600;color:var(--encre);text-decoration:none;border-bottom:1px solid var(--resine);align-self:flex-start}
.guide .cat a.lieu:hover{color:var(--pin)}
.guide .cat a.lieu span{color:var(--resine);font-size:.85em}
.guide-note{color:var(--gris);font-size:.9rem}
.bande{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.bande.duo{grid-template-columns:1fr 1fr}
.bande figure{margin:0;display:flex;flex-direction:column;gap:6px;min-width:0}
.bande img{width:100%;max-width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px;display:block;background:var(--sable)}
.bande figcaption,.photo-texte figcaption{font-size:.85rem;color:var(--gris)}
.aile-photo{width:100%;max-width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:4px;display:block}
.photo-texte{margin:0;display:flex;flex-direction:column;gap:6px}
.photo-texte img{width:100%;max-width:100%;aspect-ratio:4/3;object-fit:cover;object-position:center 65%;border-radius:4px;display:block}
@media (max-width:560px){.bande{grid-template-columns:1fr 1fr}.bande > figure:nth-child(3):last-child{grid-column:1/-1}.bande > figure:nth-child(3):last-child img{aspect-ratio:16/10}}
.photo-guide{margin:0;display:flex;flex-direction:column;gap:6px}
.photo-guide img{width:100%;max-width:100%;aspect-ratio:21/9;object-fit:cover;object-position:center 55%;border-radius:4px;display:block}
.photo-guide figcaption{font-size:.85rem;color:var(--gris)}
@media (max-width:560px){.photo-guide img{aspect-ratio:4/3}}
.credit{flex-basis:100%;font-size:.8rem;color:var(--gris)}
.ig{display:inline-flex;align-items:center;gap:8px;color:var(--pin);font-weight:600;text-decoration:none;border-bottom:1px solid var(--resine)}
.ig:hover{color:var(--bassin)}
.ig-ico{flex:none}
.logo{display:inline-flex;align-items:center;gap:10px}
.logo-img,.logo-pied{filter:var(--logo-filtre)}
.logo-img{width:40px;height:40px}
.pied-logo{flex-basis:100%}
.logo-pied{display:block;height:auto;width:230px;max-width:100%}
.avis{columns:2;column-gap:16px}
.avis-carte{margin:0 0 16px;break-inside:avoid;display:flex;flex-direction:column;gap:14px;padding:28px;background:var(--sable);border-radius:6px;min-width:0}
.etoiles{color:var(--resine);letter-spacing:.2em;font-size:1.1rem}
.avis-carte blockquote{margin:0;font-family:var(--f-titre);font-size:1.15rem;line-height:1.5;color:var(--encre)}
.avis-carte figcaption{font-size:.8rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:var(--pin)}
@media (max-width:800px){.avis{columns:1}}
.avis-carte blockquote{font-size:1.05rem}
.avis-date{display:block;margin-top:4px;font-weight:400;letter-spacing:.04em;text-transform:none;color:var(--gris);font-size:.85rem}
.evin{display:block;font-size:.75rem;font-style:italic;color:var(--gris);margin-top:2px}
.dist-cap{caption-side:top;text-align:left;font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;color:var(--gris);font-weight:600;padding-bottom:8px}
.simu{display:flex;flex-direction:column;gap:20px;padding:28px;border:1px solid var(--pin);border-radius:8px;background:var(--papier)}
.simu-tete{display:flex;flex-direction:column;gap:6px}
.simu-tete h3{font-size:1.5rem;color:var(--pin)}
.simu-tete p{color:var(--gris)}
.simu-corps{display:grid;grid-template-columns:1fr 1fr;gap:28px;align-items:start}
.simu-corps > *{min-width:0}
.simu-form{display:grid;grid-template-columns:1fr 1fr;gap:14px;border:0;padding:0;background:none}
.simu-res{background:var(--sable);border-radius:6px;padding:22px;display:flex;flex-direction:column;gap:12px}
.simu-lignes{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.simu-lignes li{display:flex;justify-content:space-between;gap:16px;padding:8px 0;border-bottom:1px solid var(--trait);font-variant-numeric:tabular-nums;font-size:.95rem}
.simu-lignes li span:last-child{white-space:nowrap;font-weight:600}
.simu-lignes li small{display:block;color:var(--gris);font-size:.8rem}
.simu-total{display:flex;justify-content:space-between;align-items:baseline;padding-top:6px}
.simu-total span{font-weight:600}
.simu-total b{font-family:var(--f-titre);font-weight:400;font-size:2.2rem;color:var(--pin);font-variant-numeric:tabular-nums}
.simu-note,.simu-mention{font-size:.85rem;color:var(--gris)}
.simu-erreur{color:var(--resine);font-weight:600}
.simu-res .btn{align-self:flex-start}
@media (max-width:800px){.simu-corps{grid-template-columns:1fr}}
@media (max-width:420px){.simu-form{grid-template-columns:1fr}.simu{padding:20px}}
.tarif .periode{font-style:normal;font-size:.88rem;color:var(--encre);border-top:1px solid var(--trait);padding-top:10px;margin-top:6px;line-height:1.5}
.suisse{display:flex;flex-direction:column;gap:6px;margin-top:20px;padding:18px 20px;border-left:3px solid var(--resine);background:var(--sable);border-radius:0 6px 6px 0}
.suisse h3{color:var(--pin)}
.infos{display:flex;flex-direction:column;gap:20px;border-top:1px solid var(--trait);padding-top:40px;margin-top:16px}
.infos-grille{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.info-carte{display:flex;flex-direction:column;gap:12px;padding:22px 24px;background:var(--sable);border-radius:6px;min-width:0}
.info-carte h3{color:var(--pin);font-size:1.15rem}
.horaires{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-variant-numeric:tabular-nums}
.horaires dt{font-weight:600}.horaires dd{margin:0}
.annul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
.annul li{display:flex;flex-direction:column;padding:8px 0;border-top:1px solid var(--trait)}
.annul li:first-child{border-top:0;padding-top:0}
.annul b{color:var(--pin)}.annul span{color:var(--gris);font-size:.92rem}
.info-carte .num{color:var(--gris);font-size:.92rem}.info-carte .num b{color:var(--encre);font-size:1.05rem;letter-spacing:.04em;font-variant-numeric:tabular-nums}
@media (max-width:900px){.infos-grille{grid-template-columns:1fr}}
.note-annul{font-size:.85rem;color:var(--gris);border-top:1px solid var(--trait);padding-top:10px}
.cat ul.pictos li{display:flex;align-items:center;gap:12px;padding:9px 0}
.cat ul.pictos li::before{display:none}
.picto{width:26px;height:26px;flex:none;color:var(--pin)}
.compris ul.pictos li{display:flex;align-items:center;gap:12px;padding-left:0}
.compris ul.pictos li::before{display:none}
.compris .oui .picto{color:var(--pin-doux)}
/* correctif formulaires mobiles (iOS) */
form > *, .simu-form > *, label{min-width:0}
input, select, textarea{max-width:100%;min-width:0;box-sizing:border-box}
input[type="date"]{-webkit-appearance:none;appearance:none;display:block;min-height:46px;line-height:1.3;text-align:left;background:var(--papier)}
input[type="date"]::-webkit-date-and-time-value{text-align:left}
select{-webkit-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%235b6660' stroke-width='1.8'/%3E%3C/svg%3E")!important;background-repeat:no-repeat!important;background-position:right 14px center!important;padding-right:38px}
@media (max-width:520px){form,.simu-form{grid-template-columns:minmax(0,1fr)!important}.simu{padding:18px}.simu-res{padding:16px}}
.simu-lignes li small.s-dates{display:block;margin-top:4px;color:var(--resine);font-weight:600;font-size:.95rem}
#s-detail{display:flex;flex-direction:column;gap:12px}
.simu-res .btn{align-self:center!important;margin-top:6px;padding:9px 18px;font-size:.92rem;border-width:1.5px}
.compris h3,.titre-dore{color:var(--resine)}
.equipements:not(.guide) .cat h3{color:var(--resine)}
.tarif > span{color:var(--resine)!important}
.tarifs.t5{grid-template-columns:repeat(5,1fr)}
@media (max-width:1000px){.tarifs.t5{grid-template-columns:repeat(3,1fr)}}
@media (max-width:640px){.tarifs.t5{grid-template-columns:1fr 1fr}}
@media (max-width:400px){.tarifs.t5{grid-template-columns:1fr}}
.regle-sejour{margin:0;font-size:.95rem;color:var(--encre);max-width:none}
.s-remise span:last-child{color:var(--pin-doux)}
.saison-note{display:block;font-size:.82rem;color:var(--gris)}
.logo{white-space:nowrap}
header.top nav{gap:18px}
header.top nav a{white-space:nowrap}
.filtres{display:flex;gap:8px;flex-wrap:wrap}
.filtres button{all:unset;cursor:pointer;padding:8px 16px;border-radius:999px;border:1px solid var(--trait);background:var(--papier);font-size:.92rem;color:var(--encre)}
.filtres button[aria-selected="true"]{background:var(--pin);border-color:var(--pin);color:var(--papier)}
.filtres button:focus-visible{outline:3px solid var(--resine);outline-offset:2px}
.mosaique button.cache{display:none}
.mosaique button.grand{grid-column:span 2;grid-row:span 2}
.voir-tout{display:flex;justify-content:center}
.voir-tout .btn{font:inherit;font-weight:600;cursor:pointer;background:none}
@media (max-width:560px){.filtres{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px;margin-inline:-4px;padding-inline:4px}.filtres button{white-space:nowrap}}
.visio{position:fixed;inset:0;z-index:40;background:rgba(8,14,11,.92);display:flex;align-items:center;justify-content:center;
  padding:max(16px,env(safe-area-inset-top,0px)) max(16px,env(safe-area-inset-right,0px)) max(16px,env(safe-area-inset-bottom,0px)) max(16px,env(safe-area-inset-left,0px))}
.visio img{max-width:100%;max-height:86vh;object-fit:contain;border-radius:4px}
.visio p{position:absolute;left:0;right:0;bottom:max(18px,env(safe-area-inset-bottom,0px));text-align:center;color:#fff;font-size:.95rem;margin:0 auto}
.visio .fermer,.visio .nav{all:unset;cursor:pointer;position:absolute;color:#fff;font-size:2rem;line-height:1;padding:12px}
.visio .fermer{top:max(10px,env(safe-area-inset-top,0px));right:max(14px,env(safe-area-inset-right,0px))}
.visio .prec{left:max(6px,env(safe-area-inset-left,0px));top:50%;transform:translateY(-50%)}
.visio .suiv{right:max(6px,env(safe-area-inset-right,0px));top:50%;transform:translateY(-50%)}
@media (max-width:800px){.mosaique{grid-template-columns:repeat(2,1fr);grid-auto-rows:170px}}
@media (prefers-reduced-motion:reduce){.mosaique img{transition:none}}

.fiche{background:var(--pin);color:var(--papier)}
.fiche .wrap{display:grid;grid-template-columns:repeat(6,1fr);padding-block:28px;gap:8px}
.fiche div{display:flex;flex-direction:column;gap:2px;text-align:center}
.fiche b{font-family:var(--f-titre);font-weight:400;font-size:2rem;line-height:1;font-variant-numeric:tabular-nums}
.fiche span{font-size:.82rem;opacity:.85}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .fiche{background:#24392e;color:var(--encre)}}
:root[data-theme="dark"] .fiche{background:#24392e;color:var(--encre)}

section{padding-block:72px}
section .wrap{display:flex;flex-direction:column;gap:28px}
.deux{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start}
.deux > *{min-width:0}
.col{display:flex;flex-direction:column;gap:16px}
.galerie{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.alt{background:var(--sable)}

ul.equip{list-style:none;padding:0;margin:0;display:grid;grid-template-columns:repeat(2,1fr);gap:10px 28px}
ul.equip li{padding-left:22px;position:relative}
ul.equip li::before{content:"";position:absolute;left:0;top:.6em;width:10px;height:10px;border-radius:50%;background:var(--resine)}

.distances{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
.distances td{padding:12px 0;border-bottom:1px solid var(--trait)}
.distances td:last-child{text-align:right;font-weight:600;color:var(--pin);white-space:nowrap;padding-left:16px}

.regles{display:flex;gap:12px;flex-wrap:wrap}
.regles span{border:1px solid var(--trait);background:var(--papier);padding:8px 14px;border-radius:999px;font-size:.92rem}

.avantages{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.avantages div{display:flex;flex-direction:column;gap:8px;border-top:2px solid var(--resine);padding-top:16px}
.avantages p{color:var(--gris)}

form{display:grid;grid-template-columns:1fr 1fr;gap:16px;background:var(--papier);border:1px solid var(--trait);padding:28px;border-radius:6px}
form .plein{grid-column:1/-1}
label{display:flex;flex-direction:column;gap:6px;font-size:.9rem;font-weight:600}
input,select,textarea{font:inherit;font-weight:400;padding:11px 12px;border:1px solid var(--trait);border-radius:4px;background:var(--papier);color:var(--encre);width:100%}
textarea{min-height:110px;resize:vertical}
button{font:inherit;font-weight:600;background:var(--pin);color:var(--papier);border:0;padding:14px 24px;border-radius:999px;cursor:pointer;justify-self:start}
.ok{color:var(--pin-doux);font-weight:600}

details{border-bottom:1px solid var(--trait);padding-block:16px}
summary{cursor:pointer;font-weight:600;font-size:1.05rem}
details p{margin-top:10px;color:var(--gris)}

footer{border-top:1px solid var(--trait);color:var(--gris);font-size:.9rem}
footer .wrap{padding-block:32px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap}

@media (max-width:800px){
  .hero .wrap,.deux{grid-template-columns:1fr}
  .fiche .wrap{grid-template-columns:repeat(3,1fr);row-gap:20px}
  .avantages{grid-template-columns:1fr}
  .galerie{grid-template-columns:1fr 1fr}
}
@media (max-width:520px){
  ul.equip{grid-template-columns:1fr}
  form{grid-template-columns:1fr;padding:20px}
  section{padding-block:52px}
}

img{height:auto}
.texte-seo{max-width:72ch;display:flex;flex-direction:column;gap:14px}
.texte-seo p{margin:0}
.cookies{position:fixed;left:16px;right:16px;bottom:16px;z-index:50;max-width:560px;margin-inline:auto;display:flex;flex-direction:column;gap:12px;padding:18px 20px;background:var(--papier);color:var(--encre);border:1px solid var(--trait);border-radius:10px;box-shadow:0 10px 30px rgba(0,0,0,.18);font-size:.92rem}
.cookies p{margin:0}
.cookies a{color:var(--pin)}
.cookies-btn{display:flex;gap:10px;justify-content:flex-end;flex-wrap:wrap}
.cookies-btn button{all:unset;cursor:pointer;padding:9px 18px;border-radius:999px;border:1px solid var(--pin);color:var(--pin);font-weight:600}
.cookies-btn button[data-c="oui"]{background:var(--pin);color:var(--papier)}
.cookies-btn button:focus-visible{outline:3px solid var(--resine);outline-offset:2px}
a.btn[href$="#laisser-avis"]{background:var(--resine);border-color:var(--resine);color:#1c2420}
a.btn[href$="#laisser-avis"]:hover{filter:brightness(1.08)}
footer a[href$="#laisser-avis"]{color:var(--resine);font-weight:600}
label.case{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-weight:400}
label.case input{width:auto;min-height:0;margin-top:4px;flex:none}
#laisser-avis .col{display:flex;flex-direction:column;gap:12px}
.bande.quatre{grid-template-columns:repeat(4,1fr);margin-top:40px}
@media (max-width:760px){.bande.quatre{grid-template-columns:1fr 1fr}}
.infos-grille{grid-template-columns:repeat(2,1fr)}
@media (max-width:760px){.infos-grille{grid-template-columns:1fr}}
.langue{display:inline-flex;align-items:center;gap:6px}
.drapeau{border-radius:2px;box-shadow:0 0 0 1px var(--trait);flex:none}
.cat-titre{display:flex;align-items:center;gap:10px}
.cat-titre .picto{color:var(--resine)}
.texte-seo .distances td:last-child{white-space:normal;text-align:left;font-weight:400;color:inherit}
@media (max-width:560px){.texte-seo .distances{font-size:.88rem}.texte-seo .distances th,.texte-seo .distances td{padding-right:8px}}
.texte-seo .distances{width:100%}
.texte-seo .distances th{text-align:left;font-weight:600;color:var(--pin);font-size:.9rem;padding:8px 8px 8px 0;border-bottom:1px solid var(--trait)}
.note-vols{font-size:.88rem;color:var(--gris)}
.texte-seo a{color:var(--pin);text-decoration:underline;text-decoration-color:var(--resine);text-underline-offset:3px}
/* ---- multipages ---- */
.fiche b{color:var(--resine)}
.page-tete{border-bottom:1px solid var(--trait);background:var(--sable)}
.page-tete .wrap{padding-block:40px 36px;display:flex;flex-direction:column;gap:12px}
.page-tete h1{font-size:clamp(2rem,4.6vw,3.2rem)}
.page-tete .lead{max-width:60ch;margin:0;color:var(--gris)}
.ariane{display:flex;flex-wrap:wrap;gap:8px;font-size:.85rem;color:var(--gris)}
.ariane a{color:var(--pin)}
header.top nav a[aria-current="page"]{color:var(--pin);font-weight:600;box-shadow:inset 0 -2px 0 var(--resine)}
.rubriques{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:28px}
.rubrique{display:flex;flex-direction:column;background:var(--papier);border:1px solid var(--trait);border-radius:8px;overflow:hidden;text-decoration:none;color:var(--encre);transition:border-color .2s,transform .2s}
.rubrique:hover{border-color:var(--resine);transform:translateY(-2px)}
.rubrique img{width:100%;aspect-ratio:16/10;object-fit:cover;display:block}
.rubrique div{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px}
.rubrique h3{color:var(--pin);font-size:1.3rem}
.rubrique p{margin:0;color:var(--gris);font-size:.95rem}
.rubrique .suite{margin-top:6px;color:var(--pin);font-weight:600;font-size:.92rem}
.accueil-maison{display:grid;grid-template-columns:1.1fr 1fr;gap:48px;align-items:center}
.accueil-maison img{width:100%;aspect-ratio:4/3;object-fit:cover;border-radius:6px;display:block}
.accueil-maison .col{display:flex;flex-direction:column;gap:16px}
.accueil-maison p{margin:0}
.boutons{display:flex;flex-wrap:wrap;gap:12px}
.avis-extrait{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:24px}
.avis-extrait .avis-carte{margin:0}
.lien-suite{margin-top:24px}
.bandeau-cta{background:var(--pin);color:var(--papier)}
.bandeau-cta .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px;padding-block:44px}
.bandeau-cta h2{color:var(--papier);font-size:clamp(1.6rem,3.4vw,2.3rem)}
.bandeau-cta p{margin:6px 0 0;opacity:.85}
.bandeau-cta .btn{background:var(--papier);color:var(--pin);border-color:var(--papier)}
@media (max-width:900px){.rubriques,.avis-extrait{grid-template-columns:1fr 1fr}.accueil-maison{grid-template-columns:1fr;gap:28px}}
@media (max-width:560px){.rubriques,.avis-extrait{grid-template-columns:1fr}.page-tete .wrap{padding-block:28px}}
