/* Polices fournies */
@font-face{
  font-family:'Alta';
  src:url('../fonts/Alta_light.otf') format('opentype');
  font-weight:300; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Alta';
  src:url('../fonts/Alta_regular.otf') format('opentype');
  font-weight:400; font-style:normal; font-display:swap;
}
@font-face{
  font-family:'Brother Signature';
  src:url('../fonts/Brother Signature.otf') format('opentype');
  font-weight:400; font-style:normal; font-display:swap;
}
:root{
  --brown-dark:#927657;
  --brown-light:#7d6547; /* assombri pour contraste AA (4.87:1 sur crème) */
  --brown-decor:#b19b83; /* ancienne valeur, réservée aux éléments décoratifs */
  --brown-far:#c8b5a3;
  --pine-dark:#3a402e;
  --pine-mid:#616b4d;
  --pine-back:#99a181;
  --lake:#a0a794;
  --cream:#f4f1ea;
  --cream-2:#e8e5de;
  --ink:#252623;
  --ink-soft:#42443f;

}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Nunito', 'Helvetica Neue', Arial, sans-serif;
  background:var(--cream);
  color:var(--ink);
  overflow-x:hidden;
}
h1,h2,h3,.brand{ font-family:'Alta', Georgia, 'Times New Roman', serif; font-weight:400; }
.script{ font-family:'Brother Signature', cursive; font-weight:400; letter-spacing:.5px; }
a{color:inherit; text-decoration:none; cursor:pointer;}
::selection{ background:var(--pine-dark); color:var(--cream); }

/* ---------- NAV ---------- */
.nav{
  position:absolute; top:0; left:0; right:0; z-index:100;
  display:flex; align-items:center; justify-content:space-between;
  padding:26px 40px;
}
.brand{ display:flex; align-items:center; gap:0; font-size:20px; font-weight:400; letter-spacing:.5px; color:var(--pine-dark); }
.brand .logo-svg{ height:64px; width:auto; display:block; transition:height .4s ease; }
.nav.scrolled .brand .logo-svg{ height:44px; }
.nav.light-mode .brand, .nav.light-mode .menu-btn, .nav.light-mode .menu-btn .bars span{ color:#fff; }
.nav.light-mode .brand{ color:var(--cream); }
.nav.light-mode .menu-btn .bars span{ background:#fff; }
.foot-top .brand .logo-svg{ height:130px; }
.nav-cluster{ display:flex; align-items:center; gap:20px; background:rgba(35,31,26,.16); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); padding:9px 20px; border-radius:40px; color:var(--ink); transition:background .3s ease, color .3s ease; }
.nav.light-mode .nav-cluster{ background:rgba(255,255,255,.16); color:#fff; }
.lang-toggle{ display:flex; align-items:center; gap:4px; }
.lang-btn{ background:none; border:none; cursor:pointer; font-size:20px; opacity:.6; padding:2px 3px; line-height:1; transition:opacity .25s; }
.lang-btn.active{ opacity:1; }
.icon-btn{ background:none; border:none; cursor:pointer; color:inherit; display:flex; align-items:center; opacity:.9; }
.nav-right{ display:flex; align-items:center; gap:14px; }
.nav-reserve{ font-size:11px; letter-spacing:2px; text-transform:uppercase; text-decoration:none; white-space:nowrap; padding:13px 24px; border-radius:30px; transition:background .25s, box-shadow .25s; border:none; color:#fff; background:var(--pine-dark); box-shadow:0 2px 12px rgba(58,64,46,.45); }
.nav-reserve:hover{ background:var(--pine-mid); box-shadow:0 4px 18px rgba(58,64,46,.6); }
.nav.scrolled .nav-reserve{ box-shadow:0 2px 10px rgba(58,64,46,.3); }
.nav-links{ display:none; }
.nav-link{ font-size:12px; letter-spacing:1.5px; text-transform:uppercase; color:var(--pine-dark); white-space:nowrap; opacity:.82; transition:opacity .25s; }
.nav-link:hover{ opacity:1; }
@media (min-width:900px){
  .nav-links{ display:flex; align-items:center; gap:32px; }
}
.menu-btn{
  font-size:12px; letter-spacing:2px; text-transform:uppercase;
  color:var(--ink); background:none; border:none; cursor:pointer;
  display:flex; align-items:center; gap:10px;
  padding:14px 10px; margin:-14px -10px; /* zone tactile 44px sans changer le rendu */
}
@media (min-width:900px){ .menu-btn{ display:none; } }
.menu-btn .bars{ width:26px; height:14px; position:relative; }
.menu-btn .bars span{ position:absolute; left:0; right:0; height:1.5px; background:var(--ink); transition:transform .3s ease, top .3s ease, background .3s ease; }
.menu-btn .bars span:nth-child(1){ top:0; }
.menu-btn .bars span:nth-child(2){ top:100%; }
.menu-open .bars span:nth-child(1){ top:50%; transform:rotate(45deg); }
.menu-open .bars span:nth-child(2){ top:50%; transform:rotate(-45deg); }

/* ---------- FULLSCREEN MENU OVERLAY ---------- */
.overlay{
  position:fixed; inset:0; background:var(--pine-dark); z-index:90;
  display:flex; flex-direction:column; align-items:flex-start; justify-content:center;
  padding:40px 8vw; transform:translateY(-100%); transition:transform .6s cubic-bezier(.65,0,.35,1);
}
.overlay.open{ transform:translateY(0); }
.overlay a{
  font-family:'Alta', Georgia, serif;
  font-size:clamp(36px,7vw,84px); color:var(--cream); line-height:1.15; font-weight:400;
  opacity:.7; transition:opacity .3s, padding-left .3s;
}
.overlay a:hover{ opacity:1; padding-left:16px; }
.overlay .ov-sub{ font-size:12px; letter-spacing:2px; color:var(--pine-back); text-transform:uppercase; margin-bottom:18px; }

/* ---------- HERO — MODE CARTE POSTALE ---------- */
/* ORIGINAL: .hero{ position:relative; height:100vh; overflow:hidden; background:var(--ink); } */
.hero{ position:relative; height:calc(100vh - 124px); margin:100px 32px 24px; border-radius:20px; overflow:hidden; background:var(--ink); }
/* Ken Burns + crossfade slideshow */
.hero-slides{ position:absolute; inset:0; will-change:transform; overflow:hidden; }
.hero-slide{ position:absolute; inset:0; background-size:cover; background-position:center; }
.hero-slide:nth-child(1){ animation:hero-slide-1 20s ease-in-out infinite; }
.hero-slide:nth-child(2){ animation:hero-slide-2 20s ease-in-out infinite; }
@keyframes hero-slide-1 {
  0%   { opacity:1; transform:scale(1.0) translate3d(0,0,0); }
  40%  { opacity:1; transform:scale(1.08) translate3d(0,0,0); }
  50%  { opacity:0; transform:scale(1.08) translate3d(0,0,0); }
  90%  { opacity:0; transform:scale(1.0) translate3d(0,0,0); }
  100% { opacity:1; transform:scale(1.0) translate3d(0,0,0); }
}
@keyframes hero-slide-2 {
  0%   { opacity:0; transform:scale(1.0) translate3d(0,0,0); }
  40%  { opacity:0; transform:scale(1.0) translate3d(0,0,0); }
  50%  { opacity:1; transform:scale(1.0) translate3d(0,0,0); }
  90%  { opacity:1; transform:scale(1.08) translate3d(0,0,0); }
  100% { opacity:0; transform:scale(1.08) translate3d(0,0,0); }
}
/* Vignette périphérique (C) */
.hero-vignette{
  position:absolute; inset:0; z-index:4; pointer-events:none;
  background:radial-gradient(ellipse 85% 80% at 50% 45%, transparent 30%, rgba(20,26,16,.6) 100%);
}
/* ORIGINAL gradient: rgba(20,26,16,.65) 0%, .28 35%, .28 65%, .6 100% */
.hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(20,26,16,.5) 0%, rgba(20,26,16,.2) 35%, rgba(20,26,16,.28) 65%, rgba(20,26,16,.62) 100%);
}
/* ORIGINAL: .cloud-fade visible */
.cloud-fade{ display:none; }
.hero-content{ position:absolute; top:40%; left:0; right:0; text-align:center; transform:translateY(-50%); z-index:10; }
.hero-kicker{ font-size:12px; letter-spacing:4px; text-transform:uppercase; color:var(--cream-2); margin-bottom:18px; text-shadow:0 2px 14px rgba(0,0,0,.4); }
.hero-content .icone-svg{ height:140px; width:auto; color:#fff; display:block; margin:0 auto 24px; opacity:.9; }
.hero-content h1{ font-size:clamp(38px,7.4vw,100px); color:#fff; letter-spacing:0px; font-weight:400; line-height:.98; text-shadow:0 2px 14px rgba(0,0,0,.3); padding:0 4vw; }
.hero-content p{ margin-top:12px; font-family:'Brother Signature', cursive; font-size:clamp(22px,3.4vw,40px); font-weight:400; color:var(--cream-2); text-shadow:0 2px 14px rgba(0,0,0,.4); max-width:560px; margin-left:auto; margin-right:auto; line-height:1.2; }
.scroll-cue{ position:absolute; bottom:44px; left:50%; transform:translateX(-50%); font-size:11px; letter-spacing:2px; color:var(--cream-2); text-transform:uppercase; animation:bob 2s ease-in-out infinite; z-index:10; transition:opacity .3s ease; will-change:opacity; }
@keyframes bob{ 0%,100%{transform:translate(-50%,0);} 50%{transform:translate(-50%,8px);} }

/* ---------- BOOKING BAR (hero bottom, non-activé) ---------- */
.booking-bar{
  position:absolute; bottom:10vh; left:0; right:0; z-index:10;
  display:flex; flex-direction:column; align-items:center;
  padding:0 6vw;
}
.booking-bar-inner{
  display:flex; align-items:center;
  background:rgba(244,241,234,0.9); backdrop-filter:blur(12px); -webkit-backdrop-filter:blur(12px);
  border-radius:60px; padding:10px 10px 10px 28px;
  box-shadow:0 8px 32px rgba(0,0,0,.22);
  width:100%; max-width:800px;
}
.bb-field{ display:flex; flex-direction:column; flex:1; padding:4px 16px; }
.bb-divider{ width:1px; height:36px; background:rgba(37,38,35,.15); flex-shrink:0; }
.bb-label{
  font-size:10px; letter-spacing:2px; text-transform:uppercase;
  color:var(--pine-mid); margin-bottom:4px;
}
.bb-input{
  border:none; background:none; font-size:14px; color:var(--ink-soft);
  font-family:inherit; outline:none; width:100%; padding:0; cursor:pointer;
}
.bb-input::-webkit-calendar-picker-indicator{ opacity:.5; cursor:pointer; }
.bb-val{ font-size:14px; color:var(--ink-soft); }
.bb-btn{
  flex-shrink:0; background:var(--pine-dark); color:#fff; border:none;
  border-radius:50px; padding:14px 30px; font-size:12px; letter-spacing:1.5px;
  text-transform:uppercase; font-family:inherit; margin-left:8px; cursor:pointer;
  text-decoration:none; display:inline-flex; align-items:center; transition:background .25s;
}
.bb-btn:hover{ background:var(--pine-mid); }
.bb-notice{
  margin-top:10px; font-size:10px; letter-spacing:2px; text-transform:uppercase;
  color:rgba(244,241,234,.75);
}
.bb-notice-dark{ margin-top:10px; font-size:10px; letter-spacing:2px; text-transform:uppercase; color:var(--ink-soft); opacity:.5; }
.res-booking{ position:relative; bottom:auto; padding:0; margin-top:40px; }
@media (max-width:800px){
  .booking-bar-inner{
    flex-direction:column; border-radius:20px; padding:16px 20px; gap:0;
  }
  .bb-field{ padding:10px 0; }
  .bb-divider{ width:100%; height:1px; }
  .bb-btn{ width:100%; margin:10px 0 0; padding:14px; }
}

/* ---------- WELCOME ---------- */
.welcome{ position:relative; padding:110px 8vw 130px; display:grid; grid-template-columns:1fr 1.2fr 1fr; gap:5vw; align-items:center; }
.welcome-photo{ width:100%; aspect-ratio:3/4; background-size:cover; background-position:center; border-radius:14px; }
.welcome-photo.right{ margin-top:60px; }
.welcome-text{ text-align:center; padding:0 10px; }
.welcome-text .script{ display:block; font-size:clamp(34px,4.4vw,52px); color:var(--brown-light); margin-bottom:10px; line-height:1.15; }
.welcome-text h2{ font-size:clamp(30px,3.6vw,48px); color:var(--pine-dark); margin-bottom:22px; line-height:1.1; }
.welcome-text p{ font-size:15px; color:var(--ink-soft); line-height:1.8; max-width:400px; margin:0 auto 30px; }
.welcome-btn{
  display:inline-block; background:var(--pine-dark); color:var(--cream); padding:15px 36px;
  font-size:12px; letter-spacing:2px; text-transform:uppercase; transition:background .3s ease;
  border-radius:40px;
}
.welcome-btn:hover{ background:var(--brown-light); }
@media (max-width:900px){
  .welcome{ grid-template-columns:1fr; gap:30px; padding:90px 8vw 90px; }
  .welcome-photo{ aspect-ratio:16/9; max-width:360px; margin:0 auto; }
  .welcome-photo.right{ margin-top:0; }
}

/* ---------- PRESTATIONS ---------- */
.prestations{ position:relative; background:var(--pine-mid); padding:110px 4vw; text-align:center; color:#fff; margin:0 32px 24px; border-radius:20px; overflow:hidden; }
.prestations::before{ content:''; position:absolute; inset:0; background:url('/assets/img/fond-nature.png') center/cover no-repeat; opacity:.1; pointer-events:none; }
.prest-head{ position:relative; z-index:1; margin-bottom:64px; }
.prest-head .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; opacity:.85; margin-bottom:14px; }
.prest-head h2{ font-size:clamp(28px,3.6vw,44px); color:#fff; }
.prest-grid{ position:relative; z-index:1; display:grid; grid-template-columns:repeat(5,1fr); gap:40px; width:100%; }
.prest-item{ display:flex; flex-direction:column; align-items:center; gap:16px; }
.prest-item img{ width:auto; height:80px; object-fit:contain; filter:brightness(0) invert(1); }
.prest-item span{ font-size:12px; letter-spacing:3px; text-transform:uppercase; line-height:1.6; }
@media (max-width:900px){ .prest-grid{ grid-template-columns:repeat(3,1fr); gap:40px 24px; } }

/* ---------- GALERIE MASONRY ---------- */
.gallery{ padding:130px 4vw; }
.gallery-head{ text-align:center; margin-bottom:60px; }
/* ---------- FORMULES (accueil) ---------- */
.formules{ padding:0 32px 100px; }
.formules-head{ text-align:center; margin-bottom:44px; }
.formules-head .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--brown-light); margin-bottom:14px; }
.formules-head h2{ font-size:clamp(28px,3.6vw,46px); color:var(--pine-dark); }
.formules-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.formule-tile{
  position:relative; display:block; background:#fff; border-radius:16px;
  padding:0; overflow:hidden; text-decoration:none;
  box-shadow:0 14px 40px rgba(43,38,32,.06);
  transition:transform .3s ease, box-shadow .3s ease;
}
.formule-tile:hover{ transform:translateY(-5px); box-shadow:0 26px 60px rgba(43,38,32,.12); }
.formule-img{
  height:180px; background-size:cover; background-position:center;
  transition:transform .7s cubic-bezier(.22,.61,.36,1);
}
.formule-tile:hover .formule-img{ transform:scale(1.07); }
.formule-body{ padding:24px 26px 26px; }
.formule-label{ font-size:10px; letter-spacing:2.5px; text-transform:uppercase; color:var(--brown-light); margin-bottom:10px; }
.formule-name{ font-family:'Alta', sans-serif; font-size:clamp(20px,1.8vw,26px); color:var(--pine-dark); margin-bottom:8px; }
.formule-price{ font-size:13px; color:var(--ink-soft); }
.formule-arrow{ position:absolute; right:22px; bottom:20px; color:var(--pine-dark); font-size:18px; transition:transform .3s ease; }
.formule-tile:hover .formule-arrow{ transform:translateX(5px); }
@media (max-width:1000px){ .formules-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px){ .formules-grid{ grid-template-columns:1fr; } .formules{ padding:0 14px 70px; } }

/* Mention exemple (page producteurs) */
.prod-group{ margin-bottom:70px; }
.prod-group:last-child{ margin-bottom:0; }
.prod-group-title{ font-family:'Alta', sans-serif; font-size:clamp(22px,2.4vw,32px); color:var(--pine-dark); text-align:center; margin:0 0 34px; }
.activite-card{ position:relative; }
.prod-badge{ position:absolute; top:14px; right:14px; z-index:2; font-size:10px; letter-spacing:2px; text-transform:uppercase; background:var(--brown-light); color:#fff; padding:5px 12px; border-radius:20px; }
.prod-grid-2{ max-width:760px; }

.gallery-head .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--brown-light); margin-bottom:14px; }
.gallery-head h2{ font-size:clamp(28px,3.6vw,46px); color:var(--pine-dark); }
.masonry{ display:grid; grid-template-columns:repeat(4,1fr); grid-auto-rows:200px; grid-auto-flow:dense; gap:14px; width:100%; }
.m-item{ position:relative; border-radius:14px; overflow:hidden; cursor:pointer; display:block; grid-row:span 2; }
/* Spans variés par photo */
.m-item:nth-child(1){ grid-row:span 3; }
.m-item:nth-child(3){ grid-row:span 1; }
.m-item:nth-child(4){ grid-column:span 2; grid-row:span 2; }
.m-item:nth-child(6){ grid-row:span 4; }
.m-item:nth-child(7){ grid-column:span 2; grid-row:span 2; }
.m-item:nth-child(8){ grid-row:span 3; }
.m-item:nth-child(9){ grid-row:span 1; }
.m-item:nth-child(10){ grid-column:3 / span 2; grid-row:span 2; }
.m-item:nth-child(10) img{ object-position:center top; }
.m-item img{
  width:100%; height:100%; object-fit:cover; display:block;
  transition:transform 1.4s cubic-bezier(.22,.61,.36,1), filter .6s ease;
}
.m-item:hover img{ transform:scale(1.08); filter:brightness(.92); }
.m-item::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to top, rgba(37,38,35,.55) 0%, rgba(37,38,35,0) 45%);
  opacity:0; transition:opacity .5s ease; pointer-events:none;
}
.m-item:hover::after{ opacity:1; }
.m-caption{
  position:absolute; left:22px; right:22px; bottom:16px; z-index:2;
  opacity:0; transform:translateY(14px);
  transition:opacity .5s ease .08s, transform .5s ease .08s;
  pointer-events:none;
}
.m-caption .script{ font-size:clamp(22px,2vw,28px); color:var(--cream); text-shadow:0 2px 14px rgba(37,38,35,.45); }
.m-item:hover .m-caption{ opacity:1; transform:translateY(0); }
@media (hover:none){
  .m-item::after{ opacity:1; }
  .m-caption{ opacity:1; transform:none; }
}

/* ---------- LIGHTBOX ---------- */
.lightbox{
  position:fixed; inset:0; z-index:300;
  display:flex; align-items:center; justify-content:center; gap:18px;
  background:rgba(30,31,27,.94);
  -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
  opacity:0; pointer-events:none; transition:opacity .35s ease;
}
.lightbox.open{ opacity:1; pointer-events:auto; }
.lb-figure{ margin:0; max-width:min(1200px,86vw); text-align:center; }
.lb-figure img{
  max-width:100%; max-height:78vh; object-fit:contain;
  border-radius:14px; box-shadow:0 40px 90px rgba(0,0,0,.5);
  transform:scale(.97); opacity:0; transition:transform .45s cubic-bezier(.22,.61,.36,1), opacity .45s ease;
}
.lightbox.open .lb-figure img{ transform:scale(1); opacity:1; }
.lb-caption{ margin-top:18px; display:flex; align-items:baseline; justify-content:center; gap:16px; }
.lb-caption .script{ font-size:clamp(26px,2.6vw,34px); color:var(--cream); }
.lb-count{ font-size:12px; letter-spacing:2px; color:var(--cream); opacity:.55; }
.lb-close, .lb-nav{
  background:rgba(244,241,234,.08); color:var(--cream);
  border:1px solid rgba(244,241,234,.25); border-radius:50%;
  width:52px; height:52px; flex-shrink:0;
  display:flex; align-items:center; justify-content:center;
  font-size:26px; line-height:1; cursor:pointer;
  transition:background .3s, border-color .3s, transform .3s;
}
.lb-close:hover, .lb-nav:hover{ background:rgba(244,241,234,.18); border-color:rgba(244,241,234,.5); transform:scale(1.06); }
.lb-close{ position:absolute; top:26px; right:26px; font-size:30px; }
@media (max-width:800px){
  .lightbox{ gap:0; }
  .lb-nav{ position:absolute; bottom:24px; width:48px; height:48px; }
  .lb-prev{ left:calc(50% - 60px); }
  .lb-next{ right:calc(50% - 60px); }
  .lb-figure{ max-width:92vw; }
  .lb-figure img{ max-height:66vh; }
}
@media (max-width:800px){
  .masonry{ grid-template-columns:repeat(2,1fr); }
  .m-item:nth-child(4){ grid-column:span 1; }
  .m-item:nth-child(6){ grid-row:span 3; }
  .m-item:nth-child(7){ grid-column:span 1; }
  .m-item:nth-child(8){ grid-row:span 2; }
  .m-item:nth-child(10){ grid-column:span 2; grid-row:span 2; }
}

/* ---------- RESERVATION (simplifiée) ---------- */
.reservation{ padding:120px 8vw; text-align:center; }
.res-head{ text-align:center; max-width:640px; margin:0 auto 60px; }
.res-head .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--brown-light); margin-bottom:18px; }
.res-head h2{ font-size:clamp(32px,4.5vw,58px); color:var(--pine-dark); margin-bottom:16px; }
.res-head .script{ font-size:clamp(30px,3.6vw,42px); color:var(--ink-soft); margin-top:6px; }
.res-card{ max-width:1100px; margin:0 auto; background:#fff; padding:44px clamp(24px,4vw,56px); box-shadow:0 30px 70px rgba(43,38,32,.08); border-radius:18px; text-align:left; }
.res-steps{ display:flex; justify-content:center; gap:8px; margin-bottom:44px; }
.res-steps span{ width:34px; height:4px; background:var(--cream-2); }
.res-steps span.active{ background:var(--pine-back); }
.res-grid{ display:grid; grid-template-columns:1fr 1.3fr; gap:60px; }
.res-field{ margin-bottom:26px; }
.res-field label{ display:flex; align-items:center; gap:8px; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink-soft); margin-bottom:10px; }
.res-field label svg{ width:15px; height:15px; stroke:var(--brown-light); }
.res-field select{
  width:100%;
  border:1.5px solid rgba(92,64,48,.2);
  background:var(--cream) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%23927657' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 16px center;
  background-size:16px;
  padding:14px 44px 14px 16px;
  font-family:inherit; font-size:15px; color:var(--ink);
  cursor:pointer; -webkit-appearance:none; appearance:none;
  border-radius:12px;
  transition:border-color .2s, box-shadow .2s;
}
.res-field select:focus{
  outline:none;
  border-color:var(--pine-back);
  box-shadow:0 0 0 3px rgba(153,161,129,.22);
}
.res-continue{ width:100%; background:var(--pine-back); color:#fff; border:none; padding:17px; font-size:13px; letter-spacing:2px; text-transform:uppercase; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:10px; transition:background .3s ease; border-radius:50px; }
.res-continue:hover{ background:var(--pine-dark); }
.res-right label{ display:flex; align-items:center; gap:8px; font-size:11px; letter-spacing:1.5px; text-transform:uppercase; color:var(--ink-soft); margin-bottom:14px; }
.res-right label svg{ width:15px; height:15px; stroke:var(--brown-light); }
.cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:18px; }
.cal-head span{ font-size:16px; font-weight:600; color:var(--ink); }
.cal-nav{ width:32px; height:32px; border:1px solid rgba(92,64,48,.25); background:none; cursor:pointer; display:flex; align-items:center; justify-content:center; color:var(--ink-soft); transition:background .2s; border-radius:8px; }
.cal-nav:hover{ background:var(--cream-2); }
.cal-weekdays{ display:grid; grid-template-columns:repeat(7,1fr); text-align:center; margin-bottom:6px; }
.cal-weekdays span{ font-size:12px; color:var(--ink-soft); opacity:.7; padding:6px 0; }
.cal-days{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.cal-day{ aspect-ratio:1; display:flex; align-items:center; justify-content:center; font-size:14.5px; color:var(--ink); cursor:pointer; border-radius:3px; transition:background .2s, color .2s; }
.cal-day.muted{ color:var(--brown-far); pointer-events:none; }
.cal-day.past{ color:var(--brown-far); pointer-events:none; opacity:.5; }
.cal-day:not(.muted):not(.past):hover{ background:var(--cream-2); }
.cal-day.in-range{ background:var(--cream-2); }
.cal-day.selected{ background:var(--pine-back); color:#fff; }
@media (max-width:800px){ .res-grid{ grid-template-columns:1fr; gap:36px; } .res-card{ padding:32px 20px; } }

/* ---------- AVIS ---------- */
.avis{ padding:130px 8vw; background:var(--cream-2); }
.avis-head{ text-align:center; margin-bottom:60px; }
.avis-head .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--brown-light); margin-bottom:14px; }
.avis-head h2{ font-size:clamp(28px,3.6vw,46px); color:var(--pine-dark); }
.avis-rating{ display:inline-flex; align-items:center; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:22px; padding:10px 22px; background:#fff; border:1px solid rgba(92,64,48,.14); border-radius:50px; box-shadow:0 6px 20px rgba(43,38,32,.06); }
.avis-rating-stars{ color:var(--brown-light); letter-spacing:2px; font-size:15px; }
.avis-rating-note{ font-size:15px; color:var(--pine-dark); }
.avis-rating-note strong{ font-weight:700; }
.avis-rating-count{ font-size:12.5px; letter-spacing:.3px; color:var(--ink-soft); opacity:.7; }
.avis-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); gap:30px; max-width:1100px; margin:0 auto; }
.avis-card{ background:#fff; padding:38px 32px; border:1px solid rgba(92,64,48,.12); border-radius:16px; }
.avis-stars{ color:var(--brown-light); letter-spacing:3px; margin-bottom:18px; font-size:14px; }
.avis-card p{ font-size:14.5px; line-height:1.75; color:var(--ink-soft); margin-bottom:22px; font-style:italic; }
.avis-name{ font-size:13px; color:var(--pine-dark); font-weight:600; }

/* ---------- CONTACT ---------- */
.contact{ position:relative; background:var(--pine-dark); color:var(--cream); padding:160px 8vw 60px; text-align:center; margin:0 32px 24px; border-radius:20px; overflow:hidden; }
.contact::before{ content:''; position:absolute; inset:0; background:url('/assets/img/fond-nature.png') center/cover no-repeat; opacity:.08; pointer-events:none; }
.contact .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--pine-back); margin-bottom:20px; }
.contact h2{ font-size:clamp(30px,4vw,58px); line-height:1.05; margin-bottom:34px; white-space:nowrap; }
.contact-btn{
  display:inline-block; border:1.5px solid var(--cream); padding:18px 44px; border-radius:40px;
  font-size:13px; letter-spacing:2px; text-transform:uppercase;
  transition:background .3s, color .3s;
}
.contact-btn:hover{ background:var(--cream); color:var(--pine-dark); }
.contact-actions{ display:flex; justify-content:center; align-items:center; gap:14px; flex-wrap:wrap; }
.contact-btn-primary{ background:var(--cream); color:var(--pine-dark); font-weight:600; }
.contact-btn-primary:hover{ background:#fff; border-color:#fff; }
@media (max-width:520px){
  .contact-actions{ flex-direction:column; gap:12px; }
  .contact-actions .contact-btn{ width:100%; max-width:300px; padding:16px 24px; }
}
.contact-note{ margin-top:26px; font-size:12.5px; color:var(--pine-back); }
.contact-infos{
  margin:90px auto 0; display:grid; grid-template-columns:repeat(4,1fr); gap:36px;
  max-width:1000px; text-align:left; border-top:1px solid rgba(255,255,255,.16); padding-top:50px;
}
.ci-item h3{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--cream); opacity:.65; margin-bottom:12px; font-family:'Nunito', sans-serif; font-weight:600; }
.ci-item p{ font-size:14px; line-height:1.7; opacity:.9; margin-bottom:10px; }
.ci-link{ font-size:13px; color:var(--cream); text-decoration:underline; text-underline-offset:3px; opacity:.85; transition:opacity .2s; }
.ci-link:hover{ opacity:1; }

/* ---------- CONTACT FOOTER BAR ---------- */
.contact-foot{ display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:10px; margin-top:60px; padding-top:24px; border-top:1px solid rgba(255,255,255,.12); font-size:12px; opacity:.5; }
.foot-legal{ display:flex; gap:20px; flex-wrap:wrap; }
.foot-legal a{ color:inherit; text-decoration:none; }
.foot-legal a:hover{ opacity:.7; }

/* ---------- reveal générique ---------- */
.reveal-card{ opacity:0; transform:translateY(30px); transition:opacity .7s ease, transform .7s ease; }
.reveal-card.in-view{ opacity:1; transform:translateY(0); }

/* ---------- RESPONSIVE MOBILE & TABLETTE ---------- */
@media (max-width:900px){
  /* Nav compacte : plus de débordement horizontal */
  .nav{ padding:14px 14px; }
  .brand .logo-svg{ height:42px; }
  .nav-right{ gap:8px; }
  .nav-cluster{ gap:10px; padding:7px 12px; }
  .nav-reserve{ padding:14px 18px; font-size:10px; letter-spacing:1.5px; }
}
@media (max-width:600px){
  #menuLabel{ display:none; }
}
@media (max-width:480px){
  .lang-toggle{ display:none; }
}

/* ---------- NAV LIEN ACTIF ---------- */
.nav-link.active{ opacity:1; position:relative; }
.nav-link.active::after{ content:''; position:absolute; left:0; right:0; bottom:-5px; height:1.5px; background:var(--pine-dark); border-radius:2px; }

/* ---------- NAV PAGE INTÉRIEURE ---------- */
/* Nav absolute en haut, sans fond, comme la page d'accueil.
   Sur les pages à bannière photo ou bloc sombre (body.nav-light), les liens passent en crème. */
body.nav-light .brand{ color:var(--cream); }
body.nav-light .nav-link{ color:var(--cream); }
body.nav-light .nav-link.active::after{ background:var(--cream); }
body.nav-light .nav-cluster{ background:rgba(255,255,255,.16); color:#fff; }
body.nav-light .menu-btn{ color:#fff; }
body.nav-light .menu-btn .bars span{ background:#fff; }
body.nav-light .nav-reserve{ border:1px solid rgba(255,255,255,.35); box-shadow:0 2px 12px rgba(0,0,0,.25); }

/* ---------- PAGE BANNER ---------- */
.page-banner{
  position:relative;
  height:42vh; min-height:260px; max-height:440px;
  margin:100px 32px 0;
  border-radius:20px;
  background-size:cover; background-position:center;
  overflow:hidden;
}
.page-banner::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(20,26,16,.55) 0%, rgba(20,26,16,.32) 35%, rgba(20,26,16,.68) 100%);
  border-radius:20px;
}
.pb-content{ position:absolute; inset:0; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; z-index:10; padding:44px 52px; }
.pb-content .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:rgba(255,255,255,.75); margin-bottom:12px; }
.pb-content h1{ font-family:'Alta', Georgia, serif; font-size:clamp(38px,6vw,80px); color:#fff; font-weight:400; line-height:1; text-shadow:0 2px 14px rgba(0,0,0,.3); }

/* Page contact : carte postale sous nav absolute */
body.inner-page .contact{ padding-top:150px; margin-top:16px; }

/* Pages légales : dégager la nav absolute */
body.inner-page .legal{ padding-top:180px; }

/* Liens légaux dans le contact-foot */
.sf-legal{ display:flex; gap:20px; flex-wrap:wrap; }
.sf-legal a{ color:inherit; text-decoration:none; transition:opacity .2s; }
.sf-legal a:hover{ opacity:.7; }

/* ---------- BOUTON DE RÉSERVATION (hero + section réservation) ---------- */
.hero-resa-btn{
  display:inline-block; background:var(--cream); color:var(--pine-dark); padding:20px 54px;
  font-size:13.5px; font-weight:600; letter-spacing:2.6px; text-transform:uppercase; border-radius:40px;
  transition:background .25s, color .25s, box-shadow .25s, transform .25s;
  box-shadow:0 10px 34px rgba(0,0,0,.5), 0 0 0 1px rgba(58,64,46,.18) inset;
}
.hero-resa-btn:hover{ background:var(--pine-dark); color:var(--cream); transform:translateY(-2px); box-shadow:0 14px 40px rgba(0,0,0,.55), 0 0 0 1px rgba(244,241,234,.25) inset; }
.res-card-center{ text-align:center; }
.res-note{ font-size:14px; color:var(--ink-soft); line-height:1.7; max-width:520px; margin:0 auto 24px; }
.res-note-alt{ margin:24px auto 0; font-size:13px; }
.res-note-alt a{ color:var(--pine-dark); text-decoration:underline; text-underline-offset:3px; }

/* ---------- CONTACT PAGE ---------- */
.contact-info{ padding:90px 8vw; }
.ci-head{ text-align:center; margin-bottom:60px; }
.ci-head .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--brown-light); margin-bottom:14px; }
.ci-head h2{ font-family:'Alta', Georgia, serif; font-size:clamp(28px,4vw,48px); color:var(--pine-dark); font-weight:400; }
.ci-grid{ display:grid; grid-template-columns:1fr 1fr; gap:48px; max-width:960px; margin:0 auto; align-items:start; }
.ci-map{ border-radius:18px; overflow:hidden; box-shadow:0 8px 32px rgba(43,38,32,.12); }
.ci-map iframe{ width:100%; min-height:380px; display:block; border:0; }
.ci-details{ display:flex; flex-direction:column; gap:34px; }
.ci-block .label{ font-size:11px; letter-spacing:2.5px; text-transform:uppercase; color:var(--brown-light); margin-bottom:10px; }
.ci-block p{ font-size:15px; color:var(--ink-soft); line-height:1.75; }
.contact-info .ci-link{ display:inline-block; margin-top:10px; font-size:13px; color:var(--pine-dark); text-decoration:underline; text-underline-offset:3px; transition:opacity .2s; }
.contact-info .ci-link:hover{ opacity:.65; }
.ci-divider{ width:32px; height:1px; background:var(--brown-far); margin:0 0 34px; }

/* ---------- TARIFS ---------- */
.tarifs{ padding:100px 8vw; }
.tarifs-head{ text-align:center; max-width:700px; margin:0 auto 70px; }
.tarifs-head .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--brown-light); margin-bottom:14px; }
.tarifs-head h2{ font-size:clamp(28px,4vw,52px); color:var(--pine-dark); margin-bottom:18px; line-height:1.1; }
.tarifs-head p{ font-size:15px; color:var(--ink-soft); line-height:1.8; }
.tarifs-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:22px; max-width:1320px; margin:0 auto 60px; }
@media (max-width:1150px){ .tarifs-grid{ grid-template-columns:repeat(2,1fr); max-width:760px; } }
@media (max-width:640px){ .tarifs-grid{ grid-template-columns:1fr; } }
.tarif-card{ scroll-margin-top:120px; }
.tarif-card{ background:#fff; border-radius:18px; padding:40px 28px; box-shadow:0 20px 50px rgba(43,38,32,.07); position:relative; transition:transform .3s ease, box-shadow .3s ease; }
.tarif-card:hover{ transform:translateY(-5px); box-shadow:0 34px 80px rgba(43,38,32,.13); }
.tarif-card.featured{ background:var(--pine-dark); color:var(--cream); }
.tarif-badge{ position:absolute; top:-12px; left:50%; transform:translateX(-50%); white-space:nowrap; font-size:10px; letter-spacing:2px; text-transform:uppercase; background:var(--brown-light); color:#fff; padding:6px 16px; border-radius:20px; box-shadow:0 4px 14px rgba(43,38,32,.18); }
.tarif-card .label{ font-size:11px; letter-spacing:3px; text-transform:uppercase; color:var(--brown-light); margin-bottom:16px; }
.tarif-card.featured .label{ color:var(--pine-back); }
.tarif-name{ font-family:'Alta', Georgia, serif; font-size:clamp(22px,2.5vw,28px); margin-bottom:10px; color:var(--pine-dark); }
.tarif-card.featured .tarif-name{ color:var(--cream); }
.tarif-price{ margin-bottom:2px; }
.tarif-from{ display:block; font-family:'Nunito', sans-serif; font-size:10.5px; letter-spacing:2.5px; text-transform:uppercase; color:var(--brown-light); margin-bottom:8px; }
.tarif-amount{ display:flex; align-items:baseline; gap:8px; flex-wrap:wrap; font-family:'Alta', Georgia, serif; font-size:clamp(34px,3.4vw,46px); line-height:1; color:var(--pine-dark); }
.tarif-unit{ font-family:'Nunito', sans-serif; font-size:13px; letter-spacing:.4px; color:var(--ink-soft); }
.tarif-card.featured .tarif-from{ color:var(--pine-back); }
.tarif-card.featured .tarif-amount{ color:var(--cream); }
.tarif-card.featured .tarif-unit{ color:rgba(244,241,234,.75); }
.tarif-divider{ height:1px; background:rgba(92,64,48,.1); margin:26px 0; }
.tarif-card.featured .tarif-divider{ background:rgba(255,255,255,.15); }
.tarif-features{ list-style:none; display:flex; flex-direction:column; gap:11px; margin-bottom:30px; }
.tarif-features li{ font-size:14px; color:var(--ink-soft); display:flex; align-items:flex-start; gap:10px; line-height:1.55; }
.tarif-features li::before{ content:'✓'; color:var(--pine-back); font-weight:700; flex-shrink:0; }
.tarif-card.featured .tarif-features li{ color:rgba(244,241,234,.82); }
.tarif-card.featured .tarif-features li::before{ color:var(--pine-back); }
.tarif-btn{ display:block; text-align:center; padding:15px 28px; border-radius:40px; font-size:12px; letter-spacing:2px; text-transform:uppercase; transition:background .3s, color .3s, border-color .3s; }
.tarif-card:not(.featured) .tarif-btn{ border:1.5px solid var(--pine-dark); color:var(--pine-dark); }
.tarif-card:not(.featured) .tarif-btn:hover{ background:var(--pine-dark); color:#fff; }
.tarif-card.featured .tarif-btn{ background:var(--cream); color:var(--pine-dark); border:1.5px solid transparent; }
.tarif-card.featured .tarif-btn:hover{ background:var(--cream-2); }
.tarifs-note{ text-align:center; font-size:13px; color:var(--ink-soft); opacity:.7; max-width:600px; margin:0 auto; line-height:1.7; }

/* ---------- ACTIVITÉS ---------- */
.activites-section{ padding:100px 8vw; }
.activites-head{ text-align:center; max-width:700px; margin:0 auto 70px; }
.activites-head .label{ font-size:12px; letter-spacing:3px; text-transform:uppercase; color:var(--brown-light); margin-bottom:14px; }
.activites-head h2{ font-size:clamp(28px,4vw,52px); color:var(--pine-dark); margin-bottom:18px; line-height:1.1; }
.activites-head p{ font-size:15px; color:var(--ink-soft); line-height:1.8; }
.activites-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(250px,1fr)); gap:26px; max-width:1150px; margin:0 auto; }
.activite-card{ background:#fff; border-radius:16px; overflow:hidden; box-shadow:0 16px 40px rgba(43,38,32,.07); transition:transform .3s ease, box-shadow .3s ease; }
.activite-card:hover{ transform:translateY(-5px); box-shadow:0 28px 70px rgba(43,38,32,.12); }
.activite-img{ height:190px; background-size:cover; background-position:center; position:relative; display:flex; align-items:center; justify-content:center; }
.activite-img-gradient .activite-icon{ width:60px; height:60px; opacity:.8; }
.activite-body{ padding:26px 28px 32px; }
.activite-body h3, .activite-body h4{ font-family:'Alta', Georgia, serif; font-size:22px; color:var(--pine-dark); margin-bottom:9px; }
.activite-body p{ font-size:14px; color:var(--ink-soft); line-height:1.75; }
.activite-dist{ font-size:11px; letter-spacing:2px; text-transform:uppercase; color:var(--brown-light); margin-top:14px; }

/* ---------- PAGES LÉGALES ---------- */
.legal{ padding:80px 8vw; max-width:900px; margin:0 auto; }
.legal h1{ font-family:'Alta', Georgia, serif; font-size:clamp(28px,4vw,50px); color:var(--pine-dark); margin-bottom:44px; line-height:1.1; }
.legal h2{ font-family:'Alta', Georgia, serif; font-size:clamp(19px,2.5vw,26px); color:var(--pine-dark); margin:42px 0 14px; }
.legal p{ font-size:14.5px; color:var(--ink-soft); line-height:1.85; margin-bottom:12px; }
.legal ul{ padding-left:20px; margin-bottom:14px; }
.legal li{ font-size:14.5px; color:var(--ink-soft); line-height:1.85; margin-bottom:6px; }
.legal a{ color:var(--pine-dark); text-decoration:underline; }
.legal em{ color:var(--ink-soft); opacity:.7; }

/* ---------- RESPONSIVE PAGES INTÉRIEURES ---------- */
@media (max-width:900px){
  .activites-grid{ grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); }
}
@media (max-width:800px){
  .page-banner{ height:36vh; min-height:200px; margin:70px 14px 0; border-radius:16px; }
  .pb-content{ padding:28px 24px; }
  .tarifs{ padding:64px 5vw; }
  .tarifs-head{ margin-bottom:44px; }
  .activites-section{ padding:64px 5vw; }
  .activites-head{ margin-bottom:44px; }
  .legal{ padding:60px 6vw; }
}

@media (max-width:800px){
  /* Carte postale resserrée */
  .hero{ height:calc(100vh - 86px); margin:70px 14px 16px; border-radius:16px; }
  .prestations{ padding:70px 6vw; margin:0 14px 16px; border-radius:16px; }
  .contact{ padding:90px 7vw 40px; margin:0 14px 16px; border-radius:16px; }
  .contact h2{ white-space:normal; font-size:clamp(26px,7vw,40px); }
  .contact-infos{ grid-template-columns:repeat(2,1fr); gap:32px; margin-top:60px; padding-top:40px; }

  /* Sections : marges verticales réduites */
  .welcome{ padding:64px 7vw; }
  .gallery{ padding:64px 4vw; }
  .gallery-head{ margin-bottom:34px; padding:0 10px; }
  .gallery-head h2{ font-size:clamp(22px,5.6vw,32px); }
  .reservation{ padding:64px 5vw; }
  .res-head{ margin-bottom:36px; }
  .avis{ padding:70px 6vw; }

  /* Hero mobile : contenu remonté, booking bar compacte */
  .hero-content{ top:26%; }
  .hero-content .icone-svg{ height:88px; margin-bottom:14px; }
  .booking-bar{ bottom:4vh; padding:0 5vw; }
  .booking-bar-inner{ padding:8px 16px; }
  .bb-field{ padding:7px 0; }
  .bb-notice{ display:none; }
  .ci-grid{ grid-template-columns:1fr; }
  .ci-map iframe{ min-height:240px; }
  #carte-gite{ min-height:260px; }
  .contact-info{ padding:60px 6vw; }
}

/* ---------- Écrans peu hauts : éviter le chevauchement contenu hero / barre de résa ---------- */
@media (max-height:860px){
  .hero-content{ top:34%; }
  .hero-content .icone-svg{ height:90px; margin-bottom:14px; }
  .hero-content h1{ font-size:clamp(32px,5.6vw,68px); }
  .hero-content p{ font-size:clamp(19px,2.4vw,28px); margin-top:8px; }
  .booking-bar{ bottom:4vh; }
}
@media (max-height:700px){
  .hero-content{ top:31%; }
  .hero-content .icone-svg{ height:56px; margin-bottom:10px; }
  .hero-content h1{ font-size:clamp(26px,4.6vw,48px); }
  .hero-content p{ font-size:clamp(17px,2vw,22px); }
  .booking-bar{ bottom:3vh; }
}

/* ---------- Nunito auto-hébergée (police variable, conformité CNIL) ---------- */
@font-face{
  font-family:'Nunito';
  src:url('/assets/fonts/nunito-var.woff2') format('woff2');
  font-weight:300 700; font-style:normal; font-display:swap;
}

/* ---------- Accessibilité : focus clavier visible ---------- */
a:focus-visible, button:focus-visible, select:focus-visible, input:focus-visible{
  outline:2px solid var(--pine-dark); outline-offset:3px; border-radius:2px;
}
.overlay .ov-link:focus-visible, .prestations a:focus-visible, .contact a:focus-visible{ outline-color:#fff; }

/* ---------- Accessibilité : animations réduites ---------- */
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *, *::before, *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

/* ---------- Carte Leaflet (page contact, sans cookies) ---------- */
#carte-gite{ width:100%; height:100%; min-height:380px; border-radius:inherit; background:var(--cream-2); }
#carte-gite .leaflet-tile{ filter:sepia(.18) saturate(.82); } /* teinte pastel accordée au site */
.pin-gite{ width:34px; height:44px; position:relative; }
.pin-gite span{
  position:absolute; left:50%; top:0; width:30px; height:30px; margin-left:-15px;
  background:var(--pine-dark); border:3px solid var(--cream);
  border-radius:50% 50% 50% 0; transform:rotate(-45deg);
  box-shadow:0 4px 12px rgba(37,38,35,.35);
}
.pin-gite span::after{
  content:''; position:absolute; left:50%; top:50%; width:8px; height:8px;
  margin:-4px 0 0 -4px; background:var(--cream); border-radius:50%;
}
#carte-gite .leaflet-popup-content-wrapper{ background:var(--cream); color:var(--ink); border-radius:12px; font-family:'Nunito', sans-serif; }
#carte-gite .leaflet-popup-tip{ background:var(--cream); }

/* Footer : une seule colonne sur très petits écrans */
@media (max-width:480px){
  .contact-infos{ grid-template-columns:1fr; gap:28px; }
}

/* ---------- BANDEAU COOKIES (consentement CNIL) ---------- */
.cookie-banner{
  position:fixed; right:36px; bottom:36px; left:auto; z-index:200;
  width:300px;
  background:rgba(244,241,234,.96);
  backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
  color:var(--ink);
  border-radius:16px; padding:22px 24px;
  box-shadow:0 4px 22px rgba(37,38,35,.20);
  display:flex; flex-direction:column; gap:16px;
  animation:cookie-apparait .45s ease both;
}
@keyframes cookie-apparait{ from{ opacity:0; transform:translateY(12px); } to{ opacity:1; transform:none; } }
.cookie-banner[hidden]{ display:none; }
.cookie-text{ font-size:12.5px; line-height:1.55; color:var(--ink-soft); margin:0; }
.cookie-text a{ color:var(--pine-dark); text-decoration:underline; text-underline-offset:2px; white-space:nowrap; }
.cookie-actions{ display:flex; gap:8px; }
/* Refuser et Accepter ont le même poids visuel (exigence CNIL) */
.cookie-btn{
  flex:1; font-family:inherit; font-size:10.5px; letter-spacing:1.2px; text-transform:uppercase;
  padding:10px 8px; border-radius:24px; cursor:pointer; transition:background .25s, color .25s;
}
.cookie-refuse{ background:none; border:1.5px solid var(--pine-dark); color:var(--pine-dark); }
.cookie-refuse:hover{ background:rgba(58,64,46,.08); }
.cookie-accept{ background:var(--pine-dark); border:1.5px solid var(--pine-dark); color:#fff; }
.cookie-accept:hover{ background:var(--pine-mid); border-color:var(--pine-mid); }
@media (max-width:600px){
  .cookie-banner{ left:16px; right:16px; bottom:16px; width:auto; }
}
