@font-face{font-family:'Fraunces';src:url('fonts/fraunces.woff2') format('woff2');font-weight:300 600;font-style:normal;font-display:swap}
@font-face{font-family:'Fraunces';src:url('fonts/fraunces-italic.woff2') format('woff2');font-weight:300 500;font-style:italic;font-display:swap}
@font-face{font-family:'Albert Sans';src:url('fonts/albert-sans.woff2') format('woff2');font-weight:300 500;font-style:normal;font-display:swap}

:root{
  --nuit:#2A2019;
  --nuit-2:#33281F;
  --ivoire:#F8F0E3;
  --sable:#F0E1C8;
  --laiton:#B98A4E;
  --laiton-clair:#DDBB86;
  --texte:#34281F;
  --doux:#76685A;
  --clair:#F1E7D8;
  --serif:'Fraunces',Georgia,'Times New Roman',serif;
  --sans:'Albert Sans','Helvetica Neue',Arial,sans-serif;
  --marge:clamp(20px,5vw,80px);
  --max:1320px;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--ivoire);color:var(--texte);font-family:var(--sans);font-weight:300;font-size:17px;line-height:1.75;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{color:inherit}
:focus-visible{outline:1px solid var(--laiton);outline-offset:4px}

h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.1;letter-spacing:-.015em;font-optical-sizing:auto}
h2{font-size:clamp(2.4rem,5vw,4.4rem)}
h3{font-size:clamp(1.5rem,2.4vw,2.1rem)}
h2 em,h1 em{font-style:italic;color:var(--laiton)}
p{max-width:62ch}
.grand{font-family:var(--serif);font-size:clamp(1.45rem,2.5vw,2.2rem);line-height:1.45}
.surtitre{display:block;font-family:var(--serif);font-style:italic;color:var(--laiton);font-size:1.25rem;margin-bottom:18px}
.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--marge)}
section{padding:clamp(56px,7vw,100px) 0}
.sombre{background:var(--nuit);color:var(--clair)}
.sombre p{color:rgba(237,230,217,.78)}
.centre{text-align:center}
.centre p{margin-left:auto;margin-right:auto}

/* Filet et monogramme */
.filet{display:flex;align-items:center;justify-content:center;gap:18px;color:var(--laiton);margin:0 auto 34px}
.filet::before,.filet::after{content:"";height:1px;width:clamp(40px,8vw,90px);background:currentColor;opacity:.7}
.mono{width:58px;height:58px;border:1px solid currentColor;border-radius:50%;display:grid;place-items:center;font-family:var(--serif);font-style:italic;font-size:1.25rem;letter-spacing:.02em}

/* Boutons */
.btn{display:inline-block;padding:17px 38px;border:1px solid var(--laiton);text-decoration:none;font-family:var(--sans);font-weight:400;font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;background:transparent;color:inherit;cursor:pointer;transition:background .4s,color .4s,border-color .4s}
.btn:hover{background:var(--laiton);color:var(--nuit)}
.btn.or{background:var(--laiton);color:var(--nuit)}
.btn.or:hover{background:var(--laiton-clair);border-color:var(--laiton-clair)}
.lien{font-size:.78rem;letter-spacing:.22em;text-transform:uppercase;text-decoration:none;border-bottom:1px solid var(--laiton);padding-bottom:6px}

/* En-tête */
.entete{position:fixed;inset:0 0 auto 0;z-index:50;padding-top:env(safe-area-inset-top,0px);color:var(--ivoire);transition:background .5s,padding .5s}
.entete.scrolled{background:rgba(42,32,25,.96)}
.entete .wrap{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;height:96px;transition:height .5s}
.entete.scrolled .wrap{height:76px}
.nav{display:flex;gap:34px;list-style:none}
.nav a{text-decoration:none;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;padding:6px 0;border-bottom:1px solid transparent;transition:border-color .3s}
.nav a:hover,.nav a[aria-current="page"]{border-color:var(--laiton)}
.logo{text-decoration:none;text-align:center;font-family:var(--serif);font-size:1.7rem;letter-spacing:.04em;line-height:1}
.logo small{display:block;font-family:var(--sans);font-size:.6rem;letter-spacing:.42em;text-transform:uppercase;color:var(--laiton-clair);margin-top:6px}
.entete .droite{justify-self:end;display:flex;align-items:center;gap:20px}
.entete .btn{padding:12px 26px;color:var(--ivoire)}
.burger{display:none;background:none;border:0;color:inherit;font:inherit;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;cursor:pointer}

/* Hero */
.hero{position:relative;height:100vh;min-height:640px;color:var(--ivoire);overflow:hidden;padding:0;background:var(--nuit)}
.hero .diapo{position:absolute;inset:0;opacity:0;transition:opacity 1.8s ease}
.hero .diapo.actif{opacity:1}
.hero .diapo img{width:100%;height:100%;object-fit:cover;transform:scale(1.08)}
.hero .diapo.actif img{animation:zoom 9s ease-out forwards}
@keyframes zoom{from{transform:scale(1.08)}to{transform:scale(1)}}
.hero::after{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at center,rgba(38,26,18,.25) 0%,rgba(38,26,18,.6) 100%),linear-gradient(to bottom,rgba(38,26,18,.5) 0%,transparent 30%)}
.hero .contenu{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:120px var(--marge) 80px}
.hero .filet{color:var(--laiton-clair)}
.hero h1{font-size:clamp(3.6rem,11vw,9.5rem);line-height:.95;margin-bottom:22px}
.hero .sous{font-family:var(--serif);font-style:italic;font-size:clamp(1.2rem,2.2vw,1.7rem);margin-bottom:44px;opacity:.95}
.defiler{position:absolute;bottom:calc(30px + env(safe-area-inset-bottom,0px));left:50%;transform:translateX(-50%);z-index:2;width:1px;height:60px;background:linear-gradient(var(--laiton-clair),transparent)}

.hero.page{height:72vh;min-height:520px}
.hero.page h1{font-size:clamp(3.2rem,8vw,7rem)}

/* Intro et chiffres */
.chiffres{display:grid;grid-template-columns:repeat(4,1fr);margin-top:clamp(40px,5vw,64px);list-style:none;border-top:1px solid var(--sable);border-bottom:1px solid var(--sable)}
.chiffres li{padding:34px 12px;text-align:center;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--doux)}
.chiffres li + li{border-left:1px solid var(--sable)}
.chiffres strong{display:block;font-family:var(--serif);font-weight:400;font-size:clamp(2rem,3.6vw,3rem);letter-spacing:0;text-transform:none;color:var(--texte);margin-bottom:6px}

/* Panneau image avec carte */
.panneau{position:relative;padding:0}
.panneau > img{width:100%;height:clamp(560px,92vh,940px);object-fit:cover}
.panneau .carte{position:absolute;right:var(--marge);bottom:clamp(40px,8vw,100px);max-width:500px;background:var(--nuit);color:var(--clair);padding:clamp(36px,5vw,64px);border-top:1px solid var(--laiton)}
.panneau .carte.gauche{right:auto;left:var(--marge)}
.panneau .carte h2{font-size:clamp(2rem,3.6vw,3.2rem);margin-bottom:20px}
.panneau .carte p{color:rgba(237,230,217,.8)}
.panneau .carte .lien{display:inline-block;margin-top:28px}

/* Mosaïque */
.mosaique{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:clamp(90px,11vw,150px);gap:14px;margin-top:clamp(36px,4.5vw,60px)}
.mosaique figure{overflow:hidden;position:relative}
.mosaique img{width:100%;height:100%;object-fit:cover;transition:transform 1.4s ease}
.mosaique figure:hover img{transform:scale(1.04)}
.mosaique figcaption{position:absolute;left:18px;bottom:14px;color:var(--ivoire);font-family:var(--serif);font-style:italic;font-size:1.1rem;text-shadow:0 1px 12px rgba(0,0,0,.5)}
.m1{grid-column:1/8;grid-row:span 4}
.m2{grid-column:8/13;grid-row:span 2}
.m3{grid-column:8/13;grid-row:span 2}
.m4{grid-column:1/5;grid-row:span 3}
.m5{grid-column:5/13;grid-row:span 3}

/* Duo */
.duo{display:grid;grid-template-columns:1.1fr 1fr;gap:clamp(40px,7vw,110px);align-items:center}
.duo + .duo{margin-top:clamp(60px,8vw,110px)}
.duo.inverse .visuel{order:2}
.duo.inverse{grid-template-columns:1fr 1.1fr}
.visuel{position:relative}
.visuel img{width:100%;aspect-ratio:4/5;object-fit:cover;position:relative;z-index:1}
.visuel::before{content:"";position:absolute;inset:28px -28px -28px 28px;border:1px solid var(--laiton);opacity:.6}
.duo.inverse .visuel::before{inset:28px 28px -28px -28px}
.duo .texte h2{margin-bottom:26px}
.duo .texte p + p{margin-top:16px}
.duo .texte .lien,.duo .texte .btn{margin-top:36px;display:inline-block}

/* Plaisirs */
.plaisirs{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:clamp(36px,4.5vw,60px)}
.plaisirs figure img{width:100%;aspect-ratio:3/4;object-fit:cover}
.plaisirs figcaption{margin-top:18px;font-family:var(--serif);font-size:1.35rem}
.plaisirs figcaption span{display:block;font-family:var(--sans);font-size:.9rem;color:rgba(237,230,217,.65);margin-top:4px}

/* Note */
.note{font-family:var(--serif);font-size:clamp(5rem,13vw,10rem);line-height:1;color:var(--laiton)}
.etoiles{letter-spacing:.4em;color:var(--laiton);margin:18px 0 12px}

/* Bandeau final */
.final{position:relative;padding:0;color:var(--ivoire);text-align:center}
.final img{width:100%;height:clamp(520px,80vh,820px);object-fit:cover}
.final::after{content:"";position:absolute;inset:0;background:rgba(38,26,18,.55)}
.final .contenu{position:absolute;inset:0;z-index:2;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:0 var(--marge)}
.final h2{margin-bottom:22px}
.final p{margin:0 auto 40px;color:rgba(244,239,230,.88)}

/* Équipements */
.liste-equip{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:0 56px;list-style:none;margin-top:50px}
.liste-equip li{padding:20px 0 20px 26px;border-bottom:1px solid rgba(184,151,95,.3);position:relative}
.liste-equip li::before{content:"";position:absolute;left:0;top:50%;width:8px;height:8px;border:1px solid var(--laiton);transform:translateY(-50%) rotate(45deg)}

/* Alentours */
.distances{list-style:none;margin:50px auto 0;max-width:900px}
.distances li{display:flex;justify-content:space-between;gap:24px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--sable)}
.distances li:first-child{border-top:1px solid var(--sable)}
.distances .lieu{font-family:var(--serif);font-size:clamp(1.5rem,2.4vw,2rem)}
.distances .lieu small{display:block;font-family:var(--sans);font-size:.95rem;color:var(--doux);margin-top:6px}
.distances .temps{white-space:nowrap;font-family:var(--serif);font-style:italic;font-size:1.3rem;color:var(--laiton)}

/* Galerie */
.filtres{display:flex;flex-wrap:wrap;justify-content:center;gap:12px 34px;padding-bottom:30px;margin-bottom:clamp(50px,7vw,80px);border-bottom:1px solid var(--sable)}
.filtres a{text-decoration:none;font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--doux)}
.filtres a:hover{color:var(--laiton)}
.groupe{scroll-margin-top:110px}
.groupe + .groupe{margin-top:clamp(50px,6vw,80px)}
.groupe h2{font-size:clamp(2rem,3.4vw,3rem);margin-bottom:32px;text-align:center}
.galerie{columns:3 300px;column-gap:14px}
.galerie button{display:block;width:100%;margin-bottom:14px;border:0;padding:0;background:none;cursor:zoom-in;break-inside:avoid;overflow:hidden}
.galerie img{width:100%;transition:transform 1.2s ease}
.galerie button:hover img{transform:scale(1.04)}
.visionneuse{position:fixed;inset:0;z-index:100;background:rgba(38,26,18,.97);display:none;align-items:center;justify-content:center;padding:60px 20px}
.visionneuse.ouverte{display:flex}
.visionneuse img{max-height:86vh;width:auto}
.visionneuse button{position:absolute;background:none;border:0;color:var(--laiton-clair);font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;cursor:pointer;padding:14px;font-family:var(--sans)}
.v-fermer{top:calc(14px + env(safe-area-inset-top,0px));right:18px}
.v-prec{left:10px;top:50%;transform:translateY(-50%)}
.v-suiv{right:10px;top:50%;transform:translateY(-50%)}

/* Réservation */
.resa{display:grid;grid-template-columns:1fr 1.25fr;gap:clamp(40px,7vw,110px);align-items:start}
.resa .infos ul{list-style:none;margin-top:36px}
.resa .infos li{padding:16px 0 16px 26px;border-bottom:1px solid var(--sable);position:relative}
.resa .infos li::before{content:"";position:absolute;left:0;top:50%;width:8px;height:8px;border:1px solid var(--laiton);transform:translateY(-50%) rotate(45deg)}
.formulaire{background:var(--nuit);color:var(--clair);padding:clamp(34px,5vw,64px);border-top:1px solid var(--laiton)}
form{display:grid;grid-template-columns:1fr 1fr;gap:30px 26px}
.champ{display:flex;flex-direction:column;gap:8px}
.champ.large{grid-column:1/-1}
label{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;color:var(--laiton-clair)}
input,select,textarea{font:inherit;font-weight:300;color:var(--ivoire);background:transparent;border:0;border-bottom:1px solid rgba(237,230,217,.35);padding:10px 0;border-radius:0;width:100%;appearance:none;color-scheme:dark}
select option{color:var(--texte)}
select{background-image:linear-gradient(45deg,transparent 50%,var(--laiton) 50%),linear-gradient(135deg,var(--laiton) 50%,transparent 50%);background-position:calc(100% - 12px) 55%,calc(100% - 7px) 55%;background-size:5px 5px;background-repeat:no-repeat}
textarea{min-height:130px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--laiton)}
::placeholder{color:rgba(237,230,217,.4)}
.consent{grid-column:1/-1;display:flex;gap:12px;align-items:flex-start;font-size:.9rem;letter-spacing:0;text-transform:none;color:rgba(237,230,217,.7)}
.consent input{width:16px;height:16px;margin-top:5px;flex:none;appearance:auto;accent-color:var(--laiton)}
form .btn{grid-column:1/-1;justify-self:start;margin-top:10px}

/* Pied de page */
.pied{background:var(--nuit);color:var(--clair);padding:100px 0 calc(40px + env(safe-area-inset-bottom,0px));text-align:center;border-top:1px solid rgba(184,151,95,.25)}
.pied .mono{margin:0 auto 26px;color:var(--laiton)}
.pied .logo{display:block;margin-bottom:10px}
.pied p{margin:0 auto;color:rgba(237,230,217,.65)}
.pied ul{list-style:none;display:flex;justify-content:center;gap:34px;flex-wrap:wrap;margin:40px 0}
.pied ul a{text-decoration:none;font-size:.74rem;letter-spacing:.22em;text-transform:uppercase;opacity:.8}
.pied ul a:hover{opacity:1;color:var(--laiton-clair)}
.pied .bas{padding-top:26px;border-top:1px solid rgba(237,230,217,.12);font-size:.82rem;opacity:.5}

@media (max-width:980px){
  .entete .wrap{grid-template-columns:auto 1fr auto}
  .entete .logo{grid-column:1;text-align:left}
  .entete .droite{grid-column:3}
  .entete .droite .btn{display:none}
  .burger{display:block;position:relative;z-index:60}
  .nav{position:fixed;inset:0;background:var(--nuit);flex-direction:column;align-items:center;justify-content:center;gap:30px;transform:translateY(-100%);transition:transform .5s ease}
  .nav.ouverte{transform:none}
  .nav a{font-family:var(--serif);font-size:2rem;letter-spacing:0;text-transform:none}
  .nav-gauche{order:3}
  .chiffres{grid-template-columns:1fr 1fr}
  .chiffres li:nth-child(3){border-left:0}
  .chiffres li:nth-child(n+3){border-top:1px solid var(--sable)}
  .duo,.duo.inverse,.resa{grid-template-columns:1fr}
  .duo.inverse .visuel{order:0}
  .visuel::before{inset:18px -12px -18px 12px!important}
  .panneau .carte{position:relative;right:auto;left:auto!important;bottom:auto;max-width:none;margin:-80px var(--marge) 0}
  .panneau > img{height:70vh}
  .mosaique{grid-template-columns:1fr 1fr;grid-auto-rows:180px}
  .m1{grid-column:1/-1;grid-row:span 2}.m2,.m3{grid-column:auto;grid-row:span 1}.m4{grid-column:1/2;grid-row:span 1}.m5{grid-column:2/3;grid-row:span 1}
  .plaisirs{grid-template-columns:1fr 1fr}
  form{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
  .hero .diapo img{transform:none}
}
.nav a{white-space:nowrap}
.mobile-seul{display:none}
@media (max-width:1180px){.nav{gap:22px}}
@media (max-width:980px){.mobile-seul{display:block}}

/* Services */
.services{list-style:none;display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin-top:clamp(36px,4.5vw,60px);border-top:1px solid var(--sable)}
.services li{padding:40px 28px 10px;text-align:center}
.services li + li{border-left:1px solid var(--sable)}
.services h3{margin-bottom:14px;font-size:clamp(1.35rem,2vw,1.7rem)}
.services h3::before{content:"";display:block;width:9px;height:9px;border:1px solid var(--laiton);transform:rotate(45deg);margin:0 auto 22px}
.services p{font-size:.98rem;color:var(--doux);margin:0 auto}

/* Mot de l'hôtesse */
.mot{background:var(--sable)}
.mot-grille{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,7vw,110px);align-items:center}
.mot blockquote .grand{font-style:italic}
.mot blockquote footer{margin-top:30px;font-family:var(--serif);font-size:1.4rem}
.mot blockquote footer span{display:block;font-family:var(--sans);font-size:.74rem;letter-spacing:.2em;text-transform:uppercase;color:var(--doux);margin-top:8px}
.calme{margin:50px auto 0;max-width:52ch;font-family:var(--serif);font-style:italic;font-size:1.15rem}

/* Responsive, hauteur réelle d'écran sur mobile */
.hero{height:100vh;height:100svh}
.hero.page{height:72vh;height:72svh}

@media (max-width:1100px){
  .services{grid-template-columns:1fr 1fr}
  .services li:nth-child(3){border-left:0}
  .services li:nth-child(n+3){border-top:1px solid var(--sable)}
  .services li{padding-bottom:36px}
}
@media (max-width:980px){
  .mot-grille{grid-template-columns:1fr}
  .mot .visuel{max-width:520px}
  .panneau .carte h2{font-size:2.1rem}
}
@media (max-width:640px){
  body{font-size:16px}
  section{padding:56px 0}
  h2{font-size:clamp(2.1rem,9vw,2.8rem)}
  .grand{font-size:1.35rem}
  .entete .wrap{height:76px}
  .logo{font-size:1.4rem}
  .hero{min-height:560px}
  .hero.page{min-height:440px;height:60svh}
  .hero .contenu{padding:100px 22px 70px}
  .hero .btn{width:100%;max-width:340px;padding:16px 20px}
  .hero .filet .mono,.filet .mono{width:48px;height:48px;font-size:1.05rem}
  .btn{padding:16px 26px;letter-spacing:.18em}
  .chiffres li{padding:26px 8px;font-size:.68rem}
  .panneau > img{height:62svh;min-height:380px}
  .panneau .carte{margin:-60px 16px 0;padding:32px 26px}
  .mosaique{gap:8px;grid-auto-rows:150px}
  .mosaique figcaption{font-size:1rem;left:12px;bottom:10px}
  .visuel::before{display:none}
  .duo + .duo{margin-top:76px}
  .plaisirs{gap:12px}
  .plaisirs figcaption{font-size:1.15rem;margin-top:12px}
  .plaisirs figcaption span{font-size:.82rem}
  .services{grid-template-columns:1fr}
  .services li,.services li:nth-child(3){border-left:0}
  .services li + li{border-top:1px solid var(--sable)}
  .note{font-size:5.5rem}
  .final img{height:78svh;min-height:520px}
  .final h2{font-size:2.2rem}
  .distances li{flex-direction:column;gap:6px;padding:24px 0}
  .distances .temps{font-size:1.1rem}
  .filtres{flex-wrap:nowrap;justify-content:flex-start;overflow-x:auto;gap:24px;margin-left:calc(-1*var(--marge));margin-right:calc(-1*var(--marge));padding:0 var(--marge) 20px;scrollbar-width:none}
  .filtres::-webkit-scrollbar{display:none}
  .filtres a{white-space:nowrap}
  .galerie{columns:2;column-gap:8px}
  .galerie button{margin-bottom:8px}
  .groupe h2{font-size:2rem;margin-bottom:22px}
  .visionneuse{padding:60px 0}
  .visionneuse img{max-width:100%;max-height:75svh}
  .v-prec,.v-suiv{top:auto;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:none}
  .formulaire{margin:0 calc(-1*var(--marge));padding:40px var(--marge)}
  input,select,textarea{font-size:16px}
  .pied{padding-top:70px}
  .pied ul{flex-direction:column;gap:18px}
}
@media (hover:none){
  .mosaique figure:hover img,.galerie button:hover img{transform:none}
}

/* Chaleur, grain et arches provençales */
body{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='g'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .45 0 0 0 0 .33 0 0 0 0 .2 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23g)'/%3E%3C/svg%3E")}
.logo{font-weight:500}
.grand{font-weight:300}
.hero h1{font-weight:400}
.duo .visuel img,.mot .visuel img{border-radius:999px 999px 0 0}
.duo .visuel::before{border-radius:999px 999px 0 0}
.plaisirs figure img{border-radius:999px 999px 0 0}
.mot{background:var(--sable)}

/* Atouts */
.atouts{background:var(--nuit-2);color:var(--clair);padding:34px 0}
.atouts ul{list-style:none;display:flex;justify-content:space-between;gap:24px;flex-wrap:wrap}
.atouts li{display:flex;align-items:center;gap:14px;font-size:.95rem}
.atouts svg{width:30px;height:30px;flex:none;stroke:var(--laiton-clair);fill:none;stroke-width:1.2;stroke-linecap:round;stroke-linejoin:round}

/* Une journée */
.journee{display:grid;grid-template-columns:repeat(3,1fr);gap:clamp(20px,3vw,40px);margin-top:clamp(36px,4.5vw,60px)}
.journee article{background:var(--ivoire);border:1px solid var(--sable)}
.journee img{width:100%;aspect-ratio:4/3;object-fit:cover}
.journee .txt{padding:30px 30px 36px}
.journee .moment{font-family:var(--serif);font-style:italic;color:var(--laiton);font-size:1.1rem}
.journee h3{margin:6px 0 12px}
.journee p{font-size:.98rem;color:var(--doux)}
.fond-lin{background-color:#EFE4D2}

@media (max-width:980px){
  .atouts ul{justify-content:flex-start;gap:18px 30px}
  .atouts li{width:calc(50% - 15px)}
  .journee{grid-template-columns:1fr}
  .journee article{display:grid;grid-template-columns:1fr 1.2fr}
  .journee img{height:100%;aspect-ratio:auto}
}
@media (max-width:640px){
  .atouts li{font-size:.88rem;gap:10px}
  .atouts svg{width:24px;height:24px}
  .journee article{grid-template-columns:1fr}
  .journee img{aspect-ratio:4/3}
  .journee .txt{padding:24px 22px 28px}
}

/* Calendrier des disponibilités */
.cal-section{background:var(--sable)}
.cal-intro{margin-top:14px;color:var(--doux)}
.calendrier{position:relative;background:var(--ivoire);margin-top:clamp(30px,4vw,50px);padding:clamp(24px,4vw,50px);border-top:1px solid var(--laiton);box-shadow:0 30px 60px -40px rgba(42,32,25,.35)}
.cal-nav{position:absolute;left:clamp(14px,3vw,40px);right:clamp(14px,3vw,40px);top:clamp(22px,3.8vw,48px);display:flex;justify-content:space-between;pointer-events:none;z-index:2}
.cal-nav button{pointer-events:auto;width:44px;height:44px;border:1px solid var(--sable);border-radius:50%;background:var(--ivoire);cursor:pointer;display:grid;place-items:center;color:var(--texte);transition:border-color .3s,background .3s}
.cal-nav button:hover:not(:disabled){border-color:var(--laiton);background:var(--sable)}
.cal-nav button:disabled{opacity:.3;cursor:default}
.cal-nav svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.cal-mois{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,5vw,70px)}
.cal-bloc h3{text-align:center;font-size:1.5rem;margin-bottom:22px;line-height:44px}
.cal-jours,.cal-grille{display:grid;grid-template-columns:repeat(7,1fr)}
.cal-jours span{text-align:center;font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:var(--doux);padding-bottom:10px}
.cal-grille{row-gap:4px}
.cal-grille button{aspect-ratio:1;border:0;background:none;font:inherit;font-size:.98rem;color:var(--texte);cursor:pointer;position:relative;border-radius:50%;transition:background .2s,color .2s}
.cal-grille button:hover:not(:disabled):not(.debut):not(.fin){background:var(--sable)}
.cal-grille button.passe{color:rgba(52,40,31,.25);cursor:default}
.cal-grille button.pris{color:rgba(52,40,31,.35);text-decoration:line-through;cursor:default;background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(185,138,78,.14) 5px 6px);border-radius:0}
.cal-grille button.pris:not(:disabled){cursor:pointer;color:var(--texte)}
.cal-grille button.entre{background:rgba(185,138,78,.18);border-radius:0}
.cal-grille button.debut,.cal-grille button.fin{background:var(--laiton);color:var(--nuit);font-weight:500;border-radius:50%;text-decoration:none}
.cal-bas{margin-top:32px;padding-top:26px;border-top:1px solid var(--sable);display:grid;grid-template-columns:auto 1fr auto;gap:18px 34px;align-items:center}
.cal-legende{list-style:none;display:flex;gap:22px;flex-wrap:wrap;font-size:.88rem;color:var(--doux)}
.cal-legende li{display:flex;align-items:center;gap:8px}
.pastille{width:14px;height:14px;border-radius:50%;border:1px solid var(--sable);display:inline-block}
.pastille.pris{border-radius:0;background:repeating-linear-gradient(135deg,transparent 0 3px,rgba(185,138,78,.5) 3px 4px)}
.pastille.choix{background:var(--laiton);border-color:var(--laiton)}
.cal-resume{font-family:var(--serif);font-size:1.15rem;text-align:center;max-width:none}
.cal-resume strong{font-weight:500}
.cal-actions{display:flex;gap:12px}
.cal-actions[hidden]{display:none}
.cal-actions .btn{padding:13px 22px}
.cal-etat{grid-column:1/-1;font-size:.82rem;color:var(--doux);text-align:center;max-width:none}
.alerte{grid-column:1/-1;color:var(--laiton-clair);border-left:2px solid var(--laiton);padding-left:14px;font-size:.95rem}
.alerte[hidden]{display:none}

@media (max-width:1100px){
  .cal-bas{grid-template-columns:1fr;justify-items:center;text-align:center}
}
@media (max-width:760px){
  .cal-mois{grid-template-columns:1fr}
  .calendrier{margin-left:calc(-1*var(--marge));margin-right:calc(-1*var(--marge));padding:24px 16px}
  .cal-nav{left:16px;right:16px;top:24px}
  .cal-grille button{font-size:.95rem}
  .cal-legende{justify-content:center;gap:16px}
  .cal-actions{width:100%}
  .cal-actions .btn{flex:1}
}
/* Cases à hauteur fixe, cercles dessinés à part pour garder une bande continue */
.cal-grille button{aspect-ratio:auto;height:50px;border-radius:0;z-index:0}
.cal-grille button:hover:not(:disabled):not(.debut):not(.fin){background:none}
.cal-grille button::before{content:"";position:absolute;left:50%;top:50%;width:44px;height:44px;margin:-22px 0 0 -22px;border-radius:50%;z-index:-1;transition:background .2s}
.cal-grille button:hover:not(:disabled):not(.debut):not(.fin)::before{background:var(--sable)}
.cal-grille button.debut,.cal-grille button.fin{background:none;color:var(--nuit)}
.cal-grille button.debut::before,.cal-grille button.fin::before{background:var(--laiton)}
.cal-grille button.debut:has(~ .entre),.cal-grille button.debut:has(+ .fin){background:linear-gradient(to right,transparent 50%,rgba(185,138,78,.18) 50%)}
.cal-grille .entre ~ button.fin,.cal-grille button.debut + button.fin{background:linear-gradient(to left,transparent 50%,rgba(185,138,78,.18) 50%)}
@media (max-width:760px){.cal-grille button{height:44px}.cal-grille button::before{width:38px;height:38px;margin:-19px 0 0 -19px}}

/* Reflets dorés et chaleur */
:root{
  --or:linear-gradient(115deg,#A6773D 0%,#E3BF83 30%,#C99A5B 50%,#F3DDB0 70%,#B98A4E 100%);
  --or-doux:linear-gradient(90deg,rgba(185,138,78,0),rgba(221,187,134,.9) 50%,rgba(185,138,78,0));
}
h1 em,h2 em,.surtitre,.note,.journee .moment,.distances .temps,.etoiles{
  background:var(--or);background-size:200% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;-webkit-text-fill-color:transparent}
.sombre h2 em,.hero h1 em{background:linear-gradient(115deg,#C99A5B,#F6E3BC 45%,#D8B175 70%,#F3DDB0);-webkit-background-clip:text;background-clip:text}
.filet::before,.filet::after{background:var(--or-doux);opacity:1;height:1px}
.mono{border-color:#D6B07A;box-shadow:0 0 0 4px rgba(214,176,122,.08)}
.mono{color:#E3BF83}
.intro-mono .mono,section:not(.sombre):not(.hero):not(.final) .mono{color:var(--laiton)}
.btn.or{background:var(--or);background-size:180% 100%;background-position:0 0;border-color:transparent;color:#2A2019;position:relative;overflow:hidden;transition:background-position .8s ease,box-shadow .4s}
.btn.or:hover{background:var(--or);background-size:180% 100%;background-position:100% 0;color:#2A2019;box-shadow:0 10px 30px -12px rgba(185,138,78,.7)}
.btn.or::after{content:"";position:absolute;top:0;left:-60%;width:40%;height:100%;background:linear-gradient(100deg,transparent,rgba(255,255,255,.45),transparent);transform:skewX(-20deg);transition:left .9s ease}
.btn.or:hover::after{left:130%}
.btn:not(.or){border-color:#C99A5B}
.entete.scrolled{box-shadow:inset 0 -1px 0 rgba(221,187,134,.35)}
.sombre{background:radial-gradient(ellipse at 15% 0%,rgba(185,138,78,.16),transparent 55%),radial-gradient(ellipse at 90% 100%,rgba(185,138,78,.1),transparent 50%),var(--nuit)}
.panneau .carte,.formulaire{background:linear-gradient(160deg,#35291F,#261D16);border-top:0;box-shadow:inset 0 1px 0 rgba(227,191,131,.7),0 30px 60px -30px rgba(42,32,25,.5)}
.chiffres li{transition:background .4s}
.chiffres li:hover{background:rgba(240,225,200,.45)}
.visuel::before{border-color:#D6B07A}
.journee article{transition:transform .5s,box-shadow .5s}
.journee article:hover{transform:translateY(-4px);box-shadow:0 24px 40px -28px rgba(42,32,25,.45)}
.atouts{background:linear-gradient(90deg,#2F241C,#3A2C21 50%,#2F241C);box-shadow:inset 0 1px 0 rgba(227,191,131,.25),inset 0 -1px 0 rgba(227,191,131,.25)}
.calendrier{border-top:0;box-shadow:inset 0 1px 0 #D6B07A,0 30px 60px -40px rgba(42,32,25,.35)}
.cal-grille button.debut::before,.cal-grille button.fin::before{background:var(--or)}

/* Pied de page signé */
.pied{position:relative;background:radial-gradient(ellipse at 50% 0%,rgba(185,138,78,.14),transparent 60%),var(--nuit);border-top:0}
.pied::before{content:"";position:absolute;top:0;left:0;right:0;height:1px;background:var(--or-doux)}
.pied .bas{display:flex;justify-content:space-between;align-items:center;gap:20px 40px;flex-wrap:wrap;opacity:1;font-size:.85rem}
.pied .bas p{margin:0;color:rgba(241,231,216,.6);max-width:none}
.pied .bas p a{color:rgba(241,231,216,.85);text-decoration:underline;text-underline-offset:3px}
.signature{display:inline-flex;align-items:center;gap:18px;text-decoration:none;padding:14px 26px 14px 28px;border:1px solid rgba(221,187,134,.4);border-radius:40px;transition:border-color .4s,background .4s}
.signature span{font-size:.8rem;letter-spacing:.2em;text-transform:uppercase;color:#E3BF83}
.signature img{height:40px;width:auto;opacity:.95}
.signature:hover{border-color:#E3BF83;background:rgba(185,138,78,.12)}

/* Mentions légales */
.hero.page.court{height:52vh;height:52svh;min-height:460px}
.legal{display:grid;grid-template-columns:230px 1fr;gap:clamp(40px,6vw,90px);align-items:start}
.sommaire{position:sticky;top:110px;display:flex;flex-direction:column;gap:12px;padding-left:18px;border-left:1px solid var(--sable)}
.sommaire a{text-decoration:none;color:var(--doux);font-size:.92rem}
.sommaire a:hover{color:var(--laiton)}
.legal-texte h2{font-size:clamp(1.6rem,2.6vw,2.1rem);margin:48px 0 16px;scroll-margin-top:110px}
.legal-texte h2:first-of-type{margin-top:20px}
.legal-texte p + p{margin-top:12px}
.maj{font-size:.9rem;color:var(--doux)}
.a-completer{background:rgba(185,138,78,.18);padding:0 6px;border-radius:3px;font-weight:400}
@media (max-width:860px){
  .legal{grid-template-columns:1fr}
  .sommaire{position:static;flex-direction:row;flex-wrap:wrap;gap:10px 20px;border-left:0;padding-left:0;padding-bottom:20px;border-bottom:1px solid var(--sable)}
}
@media (max-width:640px){
  .pied .bas{flex-direction:column;text-align:center}
}
