*,*::before,*::after{box-sizing:border-box}
[hidden]{display:none!important}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--blanc);color:var(--encre);font-family:var(--texte);font-size:16px;line-height:1.6}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
h1,h2,h3,h4{margin:0;font-family:var(--titre);font-weight:800;letter-spacing:-.01em;color:var(--vert);text-wrap:balance}
p{margin:0}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:3px solid var(--vert-2);outline-offset:2px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 16px}

header{position:sticky;top:0;z-index:20;background:var(--blanc);border-bottom:2px solid var(--vert)}
.barre{max-width:var(--max);margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 16px}
.marque{display:inline-flex;align-items:center;min-height:48px}
.marque img{display:block;width:auto;height:30px}
.menu-bouton{min-height:44px;min-width:72px;padding:0 14px;border:0;background:var(--vert);color:var(--blanc);font:600 15px var(--texte);cursor:pointer}
.menu-bouton[aria-expanded="true"]{background:var(--vert-2)}
#menu{display:flex;align-items:center;gap:2px}
#menu a{display:inline-flex;align-items:center;min-height:44px;padding:0 12px;color:var(--vert);font-weight:600;text-decoration:none}
#menu a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--lagon);text-decoration-thickness:4px;text-underline-offset:7px}
#menu a.cta{margin-left:8px;padding:0 16px;background:var(--vert);color:var(--blanc)}
#menu a.langue{justify-content:center;min-width:48px;margin-left:6px;border:2px solid var(--vert)}
.drapeau{display:block;border-radius:2px;box-shadow:0 0 0 1px var(--filet)}
@media(hover:hover){#menu a:not(.cta):not(.langue):hover{text-decoration:underline;text-decoration-color:var(--lagon);text-decoration-thickness:4px;text-underline-offset:7px}#menu a.cta:hover{background:var(--vert-2)}}
@media(min-width:861px){.menu-bouton{display:none}}
@media(max-width:860px){
  #menu{position:absolute;left:0;right:0;top:100%;flex-direction:column;align-items:stretch;gap:0;padding:4px 16px 18px;background:var(--blanc);border-bottom:2px solid var(--vert)}
  #menu a{min-height:54px;border-bottom:1px solid var(--filet);font-size:18px}
  #menu a.cta{justify-content:center;margin:14px 0 0;border-bottom:0}
  #menu a.langue{align-self:flex-start;margin:12px 0 0;padding:0 16px;border-bottom:2px solid var(--vert)}
}

.bouton{display:inline-flex;align-items:stretch;min-height:54px;padding:0;border:0;background:none;text-decoration:none;font:600 17px var(--texte);cursor:pointer}
.bouton b{display:flex;align-items:center;padding:0 18px;background:var(--vert);color:var(--blanc);font-weight:600}
.bouton i{display:flex;align-items:center;justify-content:center;width:54px;background:var(--lagon);color:var(--vert);font-style:normal;font-size:22px}
.bouton i span{transition:transform .2s ease-out}
.bouton:active i span{transform:translateX(5px)}
@media(hover:hover){.bouton:hover b{background:var(--vert-2)}.bouton:hover i span{transform:translateX(5px)}}
.lien{display:inline-flex;align-items:center;min-height:44px;color:var(--vert);font-weight:600;text-decoration:underline;text-decoration-color:var(--lagon);text-decoration-thickness:4px;text-underline-offset:6px}
.actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px;margin-top:22px}

.ouverture{padding:22px 0 0}
.ouverture-grille{display:grid;grid-template-areas:"titre" "faits" "une" "texte";padding:0}
.ouverture h1{grid-area:titre;margin:0 16px 18px;font-size:clamp(44px,12vw,64px);line-height:.94}
.faits{grid-area:faits;display:grid;grid-template-columns:1fr 1fr;gap:2px;margin:0;padding:0;list-style:none;background:var(--vert);border-block:2px solid var(--vert)}
.faits li{padding:11px 16px;background:var(--lagon);color:var(--vert);font-family:var(--titre);font-weight:700;font-size:19px;line-height:1.25}
.une{grid-area:une;margin:0}
.une img{width:100%;aspect-ratio:4/3;object-fit:cover;object-position:50% 70%}
.ouverture-texte{grid-area:texte;padding:20px 16px 0}
.chapeau{max-width:36em;font-size:17.5px}

.pieces{padding:56px 0 0}
.pieces h2,.suite h2,.prix h2{margin-bottom:16px;font-size:clamp(34px,8vw,58px);line-height:.98}
.piste{display:grid;grid-auto-flow:column;grid-auto-columns:80%;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding-inline:16px;padding:0 16px;scrollbar-width:none}
.piste::-webkit-scrollbar{display:none}
.piste figure{margin:0;scroll-snap-align:start}
.piste img{width:100%;aspect-ratio:4/5;object-fit:cover}
.piste figcaption{padding-top:8px;font-weight:600;font-size:15px;line-height:1.35}
.fleches{display:flex;align-items:center;gap:8px;margin-top:12px}
.fleches button{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;padding:0;border:2px solid var(--vert);background:var(--blanc);color:var(--vert);font:700 22px var(--texte);cursor:pointer}
.fleches button:active{background:var(--vert);color:var(--blanc)}
.fleches button:disabled{opacity:.35;cursor:default}
.fleches p{margin-left:auto;color:var(--gris);font-size:13px}

.prix{margin-top:56px;padding:40px 0 36px;background:var(--vert);color:var(--blanc)}
.prix h2{color:var(--lagon)}
.prix .sous{color:#CFE4E0}
.prix .lien{color:var(--blanc);text-decoration-color:var(--lagon)}
.prix-grille{display:grid;gap:30px}
.saisons{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.saisons button{min-height:52px;padding:4px 6px;border:2px solid var(--lagon);background:transparent;color:var(--lagon);font:700 16px/1.1 var(--titre);cursor:pointer}
.saisons button[aria-pressed="true"]{background:var(--lagon);color:var(--vert)}
.tableau-saison{margin-top:24px}
.apd{margin-bottom:8px;color:var(--lagon);font-size:15px}
.montant-saison{color:var(--volet-chiffre);font-family:var(--titre);font-weight:800;font-size:84px;line-height:1}
.detail-saison{margin-top:14px;font-weight:600;font-size:17px}
.plateforme-saison{margin-top:6px;color:#CFE4E0;font-size:14.5px}
.plateforme-saison s{color:#9FC5BE}

.lecteur{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.volets{display:inline-flex;align-items:flex-end;gap:5px;vertical-align:bottom}
.volets .euro{padding:0 0 .06em 4px;color:var(--lagon);font-size:.62em;line-height:1}
.volets .sep{width:.2em}
.volet{position:relative;display:block;width:.8em;height:1.15em;perspective:4em}
.volet>span{position:absolute;left:0;right:0;height:50%;overflow:hidden;backface-visibility:hidden}
.volet .h,.volet .fh{top:0;background:var(--volet-haut);transform-origin:50% 100%}
.volet .b,.volet .fb{bottom:0;background:var(--volet-bas);transform-origin:50% 0}
.volet .h,.volet .b{z-index:1}
.volet .fh,.volet .fb{z-index:2}
.volet .fb{transform:rotateX(90deg)}
.volet b{display:block;height:1.15em;line-height:1.15em;text-align:center;color:var(--volet-chiffre);font-family:var(--titre);font-weight:800;font-variant-numeric:lining-nums tabular-nums}
.volet .b b,.volet .fb b{margin-top:-.575em}
.volet::after{content:"";position:absolute;left:0;right:0;top:50%;height:2px;margin-top:-1px;background:var(--vert);z-index:3}
.volet.bascule .fh{animation:volet-haut .075s ease-in both}
.volet.bascule .fb{animation:volet-bas .075s .075s ease-out both}
@keyframes volet-haut{from{transform:rotateX(0deg)}to{transform:rotateX(-90deg)}}
@keyframes volet-bas{from{transform:rotateX(90deg)}to{transform:rotateX(0deg)}}

.suite{padding:56px 0}
.suite+.suite{border-top:2px solid var(--lagon)}
.suite h3{margin-bottom:8px;font-size:27px;line-height:1.05}
.suite p+p{margin-top:12px}
.sous{max-width:40em;margin-bottom:18px;color:var(--gris)}
.duo{display:grid;gap:40px}
.cadre{margin:0}
.cadre img{width:100%;aspect-ratio:4/5;object-fit:cover}
.points{list-style:none;display:grid;gap:8px;margin:16px 0 0;padding:0}
.points li{position:relative;padding-left:22px}
.points li::before{content:"";position:absolute;left:0;top:.5em;width:10px;height:10px;background:var(--vert)}
.note{margin-top:12px;color:var(--gris);font-size:14px}

.route{list-style:none;margin:0;padding:0 0 0 26px;border-left:3px solid var(--lagon)}
.route li{position:relative;padding:0 0 20px;color:var(--gris);font-size:15px}
.route li::before{content:"";position:absolute;left:-35px;top:5px;width:15px;height:15px;background:var(--vert)}
.route li:last-child{padding-bottom:0}
.route b{display:block;color:var(--encre);font-size:16.5px;font-weight:600}
.trajets{width:100%;border-collapse:collapse;border-top:2px solid var(--vert)}
.trajets td{padding:11px 0;border-bottom:1px solid var(--filet);font-size:15.5px}
.trajets td:last-child{padding-left:12px;text-align:right;white-space:nowrap;color:var(--vert);font-family:var(--titre);font-weight:800;font-size:24px;font-variant-numeric:tabular-nums}

.tarifs{width:100%;margin:6px 0 10px;border-collapse:collapse;border-top:2px solid var(--vert)}
.tarifs th{padding:10px 0 8px;border-bottom:1px solid var(--filet);color:var(--gris);font-size:13px;font-weight:600;text-align:left}
.tarifs th+th{text-align:right}
.tarifs td{padding:14px 0;border-bottom:1px solid var(--filet);vertical-align:bottom}
.tarifs td.prix{padding-left:12px;color:var(--vert);font-family:var(--titre);font-weight:800;font-size:38px;line-height:1;text-align:right;white-space:nowrap}
.tarifs td.prix .volets .euro{color:var(--vert)}
.tarifs td.prix .volet::after{background:var(--blanc)}
.tarifs .plateforme{display:block;margin-bottom:6px;color:var(--gris);font-family:var(--texte);font-weight:400;font-size:13px;text-decoration:line-through}
.tarifs td small{display:block;margin-top:6px;color:var(--gris);font-family:var(--texte);font-weight:400;font-size:12.5px}
.economie{margin:6px 0 12px;padding:14px 16px;background:var(--lagon-2);border-left:4px solid var(--vert);font-size:15px}
.economie .avant{color:var(--gris);text-decoration:line-through}
.economie strong{color:var(--vert);font-weight:600}

.avis-bloc{background:var(--lagon-2)}
.suite+.avis-bloc,.avis-bloc+.suite{border-top:0}
.moyenne{color:var(--vert);font-family:var(--titre);font-weight:800;font-size:clamp(52px,10vw,76px);line-height:1}
.avis-bloc .sous{margin-top:6px}
.avis{display:grid;gap:26px;margin-top:10px}
.un-avis{margin:0}
.un-avis blockquote{margin:0;font-size:18px;line-height:1.45}
.un-avis.grand blockquote{color:var(--vert);font-family:var(--titre);font-weight:700;font-size:clamp(26px,4vw,38px);line-height:1.12}
.un-avis figcaption{margin-top:10px;color:var(--gris);font-size:14px}
.note-avis{max-width:46em;margin-top:28px;color:var(--gris);font-size:13px}

.faq{max-width:860px;border-top:2px solid var(--vert)}
.faq details{border-bottom:1px solid var(--filet)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:58px;padding:12px 0;font-size:17px;font-weight:600;list-style:none;cursor:pointer}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";display:grid;place-items:center;flex:none;width:32px;height:32px;background:var(--lagon);color:var(--vert);font-size:22px;line-height:1;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details p{padding:0 0 18px;color:var(--gris)}
.fin{background:var(--lagon)}
.suite+.fin{border-top:0}
.fin .sous{color:var(--encre)}
.fin .lien{text-decoration-color:var(--vert);text-decoration-thickness:2px}
.fin .bouton i{background:var(--blanc)}
.insecable{white-space:nowrap}

.tete-page{border-bottom:2px solid var(--vert)}
.tete-page>img{width:100%;height:52vh;min-height:260px;max-height:600px;object-fit:cover}
.tete-page .texte{padding-top:26px;padding-bottom:40px}
.tete-page h1{margin-bottom:12px;font-size:clamp(42px,8vw,76px);line-height:.95}
.tete-page .chapeau{color:var(--gris)}
.galerie{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.galerie figure{margin:0;overflow:hidden;cursor:zoom-in}
.galerie img{width:100%;height:100%;aspect-ratio:1;object-fit:cover}
.galerie .large{grid-column:1/-1}
.galerie .large img{aspect-ratio:16/10}
.galerie .haute{grid-row:span 2}
.galerie .haute img{aspect-ratio:auto}
.trois{display:grid;gap:30px}
.trois>div{padding-top:14px;border-top:4px solid var(--lagon)}
.trois p{color:var(--gris)}

.formulaire-grille{display:grid;gap:26px}
.bloc-formulaire{display:grid;gap:16px}
.rangee{display:grid;gap:16px}
.champ{display:grid;gap:6px}
.champ>span:first-child{font-size:14.5px;font-weight:600}
.aide{color:var(--gris);font-size:13px}
input[type=date],input[type=text],input[type=email],input[type=tel],select,textarea{width:100%;min-height:52px;padding:10px 14px;border:2px solid var(--vert);border-radius:0;background:var(--blanc);color:var(--encre);font:16px var(--texte)}
input:focus,select:focus,textarea:focus{border-color:var(--vert-2);background:var(--lagon-2)}
textarea{min-height:120px;resize:vertical}
.cache{display:none}
.consentement{display:flex;align-items:flex-start;gap:12px}
.consentement input{flex:none;width:22px;height:22px;margin-top:2px;accent-color:var(--vert)}
.consentement span{color:var(--gris);font-size:14px;line-height:1.5}
.consentement a{color:var(--vert)}
.souplesse{display:grid;gap:10px;margin:0;padding:0;border:0}
.marge{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px;padding-left:34px}
.marge>span{width:100%;color:var(--gris);font-size:14px}
.marge label{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:0 14px;border:2px solid var(--vert);font-size:15px;font-weight:600;cursor:pointer}
.marge input{accent-color:var(--vert)}
.marge label:has(input:checked){background:var(--lagon)}
.bloc-formulaire .bouton{justify-self:start}
.reponse{padding:15px 17px;border-left:4px solid var(--vert);background:var(--lagon-2);font-size:15px;line-height:1.55}
.reponse.ok{border-left-color:#2E7D5B}
.reponse.ko{border-left-color:#B5482F;background:#FBEDE9}
.pratique{display:grid;margin:0;border-top:2px solid var(--vert)}
.pratique>div{display:grid;gap:4px;padding:14px 0;border-bottom:1px solid var(--filet)}
.pratique dt{color:var(--vert);font-size:13.5px;font-weight:600}
.pratique dd{margin:0}
.pratique dd a{display:inline-flex;align-items:center;min-height:44px}
.itineraire{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.itineraire a{padding:0 14px;border:2px solid var(--vert);color:var(--vert);font-weight:600;text-decoration:none}

.legal h1{margin-bottom:24px;font-size:clamp(38px,6vw,60px);line-height:1}
.legal h2{margin-top:34px;margin-bottom:8px;font-size:30px}
.legal p,.legal ul{max-width:46em;color:var(--gris)}
.legal p+p{margin-top:10px}
.legal ul{padding-left:20px}
.legal li{margin-top:6px}
.legal b{color:var(--encre);font-weight:600}
.avertissement{max-width:46em;padding:15px 17px;border-left:4px solid var(--vert);background:var(--lagon-2)}

footer{padding:48px 0 calc(110px + env(safe-area-inset-bottom,0px));background:var(--plaque);color:#CFE4E0;font-size:14.5px}
.colonnes{display:grid;gap:26px}
footer h4{margin-bottom:8px;color:var(--lagon);font-size:24px}
footer ul{list-style:none;margin:0;padding:0}
footer a{display:inline-flex;align-items:center;min-height:44px;min-width:44px;color:var(--blanc);text-decoration:underline;text-decoration-color:var(--lagon);text-underline-offset:4px}
footer .demo{margin-top:26px;padding-top:18px;border-top:1px solid #1E4C46;font-size:13.5px}
footer .demo a{display:inline;min-height:0}
.social-demo{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin-top:26px;padding-top:22px;border-top:1px solid #1E4C46}
.social-demo__lien,.social-demo__partage{display:inline-flex;align-items:center;gap:8px;min-height:44px;padding:9px 14px;border:2px solid #1E4C46;background:transparent;color:var(--blanc);font:inherit;font-size:14px;cursor:pointer;transition:border-color .25s}
.social-demo__lien{justify-content:center;min-width:44px;padding:9px 12px}
.social-demo__lien svg,.social-demo__partage svg{width:18px;height:18px;fill:currentColor}
.social-demo__partage svg{fill:none}
.social-demo__mot{flex-basis:100%;min-height:1.2em;margin:6px 0 0;text-align:center;font-size:14px}
@media(hover:hover){.social-demo__lien:hover,.social-demo__partage:hover{border-color:var(--lagon)}}

.barre-bas{position:fixed;left:0;right:0;bottom:0;z-index:30;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 12px calc(10px + env(safe-area-inset-bottom,0px)) 16px;border-top:2px solid var(--vert);background:var(--blanc)}
.barre-bas p{color:var(--gris);font-size:13px;line-height:1.25}
.barre-bas p b{display:block;color:var(--vert);font-family:var(--titre);font-weight:800;font-size:21px}
.barre-bas .bouton{min-height:48px;font-size:16px}
.barre-bas .bouton b{padding:0 14px}
.barre-bas .bouton i{width:46px}

.visionneuse{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:clamp(14px,4vw,44px);background:rgba(6,48,43,.96);opacity:0;transition:opacity .28s ease}
.visionneuse.ouverte{opacity:1}
.visionneuse img{max-width:100%;max-height:82vh}
.visionneuse .legende{position:absolute;left:0;right:0;bottom:clamp(14px,3vw,30px);padding:0 66px;color:#CFE4E0;text-align:center;font-size:14.5px}
.visionneuse button{position:absolute;display:grid;place-items:center;width:48px;height:48px;border:2px solid var(--lagon);background:var(--vert);color:var(--blanc);font-size:1.2rem;line-height:1;cursor:pointer}
.visionneuse .fermer{top:clamp(14px,3vw,28px);right:clamp(14px,3vw,28px)}
.visionneuse .prec{left:clamp(10px,2vw,26px);bottom:clamp(10px,3vw,24px)}
.visionneuse .suiv{right:clamp(10px,2vw,26px);bottom:clamp(10px,3vw,24px)}

@media(min-width:900px){
  .wrap{padding:0 40px}
  .barre{padding:12px 40px}
  .marque img{height:38px}
  .ouverture{padding:48px 0 0}
  .ouverture-grille{grid-template-columns:minmax(0,1fr) minmax(0,1.12fr);grid-template-areas:"titre une" "texte une" "faits faits";column-gap:48px;padding:0 40px}
  .ouverture h1{margin:0 0 22px;align-self:end;font-size:clamp(56px,5.6vw,86px)}
  .ouverture-texte{padding:0 0 32px}
  .une img{height:100%;aspect-ratio:auto;min-height:440px}
  .faits{grid-template-columns:repeat(4,1fr);margin-top:2px}
  .faits li{padding:16px 20px;font-size:22px}
  .pieces{padding-top:96px}
  .piste{grid-auto-columns:calc((100% - 30px) / 3.4);padding:0 max(40px,calc((100% - var(--max)) / 2 + 40px));scroll-padding-inline:max(40px,calc((100% - var(--max)) / 2 + 40px))}
  .prix{margin-top:96px;padding:72px 0 64px}
  .prix-grille{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px;align-items:start}
  .montant-saison{font-size:112px}
  .suite{padding:96px 0}
  .duo{grid-template-columns:1fr 1fr;gap:64px;align-items:start}
  .trois{grid-template-columns:repeat(3,1fr);gap:40px}
  .avis{grid-template-columns:1fr 1fr;gap:40px 60px}
  .un-avis.grand{grid-column:1/-1}
  .galerie{grid-template-columns:repeat(3,1fr)}
  .galerie .large{grid-column:span 2}
  .formulaire-grille{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:64px}
  .rangee{grid-template-columns:1fr 1fr}
  .pratique{grid-template-columns:repeat(3,1fr);gap:0 32px}
  .colonnes{grid-template-columns:1.3fr 1fr 1fr}
  .barre-bas{display:none}
  footer{padding-bottom:56px}
  .tete-page .texte{padding-top:40px;padding-bottom:56px}
}
@media(prefers-reduced-motion:reduce){
  .bouton i span,.faq summary::after,.visionneuse{transition:none}
  .volet.bascule .fh,.volet.bascule .fb{animation:none}
}
