/* ==========================================================================
   Casita : feuille de style principale
   Reprend les règles et composants du design system (tokens, typo, boutons,
   pastilles, cartes, barres, FAQ, animations…) appliqués aux blocs du thème.
   ========================================================================== */

/* 0. POLICES (auto-hébergées) ------------------------------------------------ */
@font-face{font-family:"Manrope";font-style:normal;font-weight:500 700;font-display:swap;src:url("../fonts/manrope-latin.woff2") format("woff2")}
@font-face{font-family:"Inter";font-style:normal;font-weight:400 700;font-display:swap;src:url("../fonts/inter-latin.woff2") format("woff2")}
@font-face{font-family:"Averia Serif Libre";font-style:italic;font-weight:400;font-display:swap;src:url("../fonts/averia-serif-libre-latin.woff2") format("woff2")}

/* 1. TOKENS ----------------------------------------------------------------- */
:root{
  /* Couleurs */
  /* Palette reprise de l'ancien site : noir chaud, sable et jaune soleil */
  --ink:#141312; --ink-2:#5A5653; --muted:#6F6B67; --line:#E8E1D6;
  --surface:#F5EFE6; --surface-2:#EBE3D6; --white:#FFFFFF;
  --sea:#F6CF69; --sea-deep:#E9BC45; --on-sea:#100F0E;
  --sun-soft:#FCEFC8; --sun-ink:#7A5A0C;
  --glass-06:rgba(255,255,255,.06); --glass-10:rgba(255,255,255,.10); --glass-70:rgba(255,255,255,.70);

  /* Typo */
  --f-display:"Manrope",system-ui,sans-serif;
  --f-body:"Inter",system-ui,sans-serif;
  --f-accent:"Averia Serif Libre",Georgia,serif;

  /* Rayons */
  --r-pill:99px; --r-xl:32px; --r-lg:24px; --r-md:20px; --r-sm:16px; --r-xs:12px;

  /* Ombres */
  --sh-soft:0 1px 5px 2px rgba(237,237,237,.25);
  --sh-button:0 .6px 1.6px -1.5px rgba(0,0,0,.17),0 2.3px 6px -3px rgba(0,0,0,.14),0 10px 26px -4.5px rgba(0,0,0,.02);

  /* Espacements (grille 4/8) */
  --s-1:4px; --s-2:8px; --s-3:12px; --s-4:16px; --s-5:24px; --s-6:32px; --s-7:48px; --s-8:64px; --s-9:96px; --s-10:128px;
  --container:1046px; --gutter:40px; --nav-h:96px; --section-y:var(--s-10);

  /* Motion */
  --ease-out:cubic-bezier(.22,1,.36,1);
  --ease-spring:cubic-bezier(.34,1.56,.64,1);
  --dur-fast:.2s; --dur:.6s; --dur-slow:1s;
}
@media (max-width:860px){:root{--section-y:88px}}
@media (max-width:640px){:root{--nav-h:76px}}
@media (max-width:640px){:root{--gutter:16px;--section-y:72px}}

/* 2. BASE ------------------------------------------------------------------- */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 16px);-webkit-text-size-adjust:100%}
body{font-family:var(--f-body);font-size:16px;line-height:24px;letter-spacing:-.02em;color:var(--ink);background:var(--white);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
img,svg{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
ul{list-style:none}
:focus-visible{outline:2px solid var(--ink);outline-offset:3px;border-radius:4px}
.screen-reader-text,.skip-link:not(:focus){position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip-link:focus{position:fixed;top:12px;left:12px;z-index:100;background:var(--ink);color:#fff;padding:10px 16px;border-radius:var(--r-pill)}
::selection{background:var(--sea);color:var(--on-sea)}

/* 3. TYPOGRAPHIE ------------------------------------------------------------ */
.t-hero{font-family:var(--f-display);font-weight:600;font-size:clamp(40px,6vw,60px);line-height:1;letter-spacing:-.03em}
.t-hero em{font-family:var(--f-accent);font-style:italic;font-weight:400;font-size:1.25em;line-height:.9;letter-spacing:-.03em}
.t-h2{font-family:var(--f-display);font-weight:600;font-size:clamp(32px,4.2vw,44px);line-height:1.1;letter-spacing:-.03em}
.t-h3{font-family:var(--f-display);font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.02em}
.t-lead{font-family:var(--f-display);font-weight:600;font-size:20px;line-height:28px;letter-spacing:-.02em;color:var(--muted)}
.t-eyebrow{font-family:var(--f-display);font-weight:600;font-size:15px;line-height:21px}
/* Sur-titre des sections : pastille jaune (palette de l'ancien site) */
.head .t-eyebrow{display:inline-block;padding:5px 12px;border-radius:var(--r-pill);background:var(--sun-soft);color:var(--sun-ink);font-size:14px;line-height:20px}
.section--sea .head .t-eyebrow{background:rgba(255,255,255,.55);color:var(--on-sea)}
.section--photo .head .t-eyebrow,.section--page-photo .head .t-eyebrow{background:rgba(255,255,255,.18);color:#fff;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.t-body{font-size:16px;line-height:24px;letter-spacing:-.02em;color:var(--muted)}
.t-ui{font-weight:500;font-size:14px;line-height:21px;letter-spacing:-.01em}
.t-price{font-family:var(--f-body);font-weight:700;font-size:24px;line-height:1.3;letter-spacing:-.02em}
.t-stat{font-weight:700;font-size:30px;line-height:36px;letter-spacing:-.02em}
@media (max-width:640px){.t-lead{font-size:18px;line-height:26px}}

/* 4. MISE EN PAGE ----------------------------------------------------------- */
.container{max-width:calc(var(--container) + var(--gutter)*2);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--section-y) 0;position:relative}
.section--alt{background:var(--surface)}
.section--sea{background:var(--sea);color:var(--on-sea);overflow:hidden}
.section--sea > .container{position:relative}
.section--sea .head .t-lead{color:rgba(16,15,14,.72)}
.section--sea .card{color:var(--ink)}
.section--page{padding:calc(var(--nav-h) + clamp(48px,9vh,96px)) 0 clamp(56px,8vh,88px)}
.section--page .head{margin-bottom:0}
.section--page .head .t-lead{max-width:640px}
.section--text{padding-top:var(--s-8)}
/* Une page qui ne commence ni par un hero ni par un en-tête démarre sous la navigation */
.main > .section:first-child:not(.section--page):not(.section--fill){padding-top:calc(var(--nav-h) + var(--s-8))}
.section--fill{min-height:100svh;padding-top:calc(var(--nav-h) + 48px);display:flex;align-items:center}
.section--fill > .container{width:100%}

.head{text-align:center;display:flex;flex-direction:column;align-items:center;gap:10px;margin-bottom:var(--s-8)}
.head .t-lead{max-width:600px}
.head .btn{margin-top:14px}
@media (max-width:640px){.head{margin-bottom:var(--s-7)}}

.grid{display:grid;gap:var(--s-4)}
.g-2{grid-template-columns:repeat(2,1fr)}
.g-3{grid-template-columns:repeat(3,1fr)}
.g-4{grid-template-columns:repeat(4,1fr)}
@media (max-width:1024px){.g-4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:860px){.g-2,.g-3{grid-template-columns:1fr}}
@media (max-width:560px){.g-4{grid-template-columns:1fr}}

.center{text-align:center;margin-top:28px}
.btn-row{display:flex;flex-wrap:wrap;gap:10px}

/* 5. COMPOSANTS ------------------------------------------------------------- */

/* Boutons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 18px;border-radius:var(--r-lg);font:500 14px/16.8px var(--f-body);letter-spacing:-.01em;border:0;cursor:pointer;white-space:nowrap;
  transition:transform var(--dur-fast) var(--ease-out),background-color var(--dur-fast),box-shadow var(--dur-fast)}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:scale(.97)}
.btn--dark{background:var(--ink);color:#fff;box-shadow:var(--sh-button)}
.btn--dark:hover{background:#000}
.btn--light{background:#fff;color:var(--ink);box-shadow:var(--sh-button)}
.btn--soft{background:var(--surface-2);color:var(--ink)}
.btn--soft:hover{background:var(--line)}
.btn--lg{padding:14px 20px;font-size:15px}
.btn .ico{flex:none}
.btn__count{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--r-pill);background:#fff;font-size:12px;font-weight:600}
.icon-btn{width:42px;height:42px;display:grid;place-items:center;border-radius:var(--r-xs);background:var(--surface);border:0;cursor:pointer;color:var(--ink);transition:background var(--dur-fast)}
.icon-btn:hover{background:var(--surface-2)}

/* Pastille note (verre) */
.rating-pill{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:var(--r-md);
  background:var(--glass-06);backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);color:#fff;font:500 14px/21px var(--f-body)}

/* Pastille équipement (sur fond jaune) */
.chip{display:inline-flex;align-items:center;gap:10px;padding:10px 18px;border-radius:var(--r-md);
  background:rgba(255,255,255,.42);color:var(--on-sea);font:500 16px/24px var(--f-body);transition:background var(--dur-fast),transform var(--dur-fast) var(--ease-out)}
.chip:hover{background:rgba(255,255,255,.62);transform:translateY(-2px)}
.chip .ico{width:20px;height:20px;flex:none}

/* Cartes */
.card{background:#fff;border-radius:var(--r-xl);padding:var(--s-6);box-shadow:var(--sh-soft);border:1px solid var(--line)}
.card--flat{border:0;box-shadow:none;border-radius:var(--r-sm);padding:var(--s-4)}
.card__text{margin-top:8px}
@media (max-width:640px){.card{padding:var(--s-5);border-radius:var(--r-lg)}}

/* Liste à icônes */
.list-ico{display:flex;flex-direction:column;gap:10px;margin:var(--s-4) 0 var(--s-5)}
.list-ico li{display:flex;align-items:flex-start;gap:12px;color:var(--muted)}
.list-ico .ico{width:22px;height:22px;stroke:var(--sun-ink);flex:none;margin-top:1px}
.list-ico a{color:var(--ink);text-decoration:underline;text-decoration-color:var(--line);text-underline-offset:3px;transition:text-decoration-color var(--dur-fast)}
.list-ico a:hover{text-decoration-color:currentColor}

/* Barre de note */
.bar{height:6px;border-radius:var(--r-pill);background:var(--surface-2);overflow:hidden}
.bar > i{display:block;height:100%;background:var(--sea-deep);border-radius:inherit;transform-origin:left;transform:scaleX(0);transition:transform 1.2s var(--ease-out) .2s}
.in-view .bar > i,html:not(.js) .bar > i{transform:scaleX(var(--v))}

/* Accordéon FAQ */
.faq{border:1px solid var(--line);border-radius:var(--r-sm);background:#fff;overflow:hidden}
.faq summary{list-style:none;cursor:pointer;display:flex;align-items:center;gap:16px;padding:18px 20px;font:500 18px/23.4px var(--f-body);letter-spacing:-.02em}
.faq summary::-webkit-details-marker{display:none}
.faq .plus{width:20px;height:20px;position:relative;flex:none;color:var(--muted)}
.faq .plus::before,.faq .plus::after{content:"";position:absolute;inset:9px 0 auto;height:1.5px;background:currentColor;transition:transform .35s var(--ease-out)}
.faq .plus::after{transform:rotate(90deg)}
.faq[open] .plus::after{transform:rotate(0)}
.faq .ans{padding:0 20px 20px 56px;color:var(--muted)}
.faq .ans p + p{margin-top:8px}
.faq .ans a{color:var(--ink);text-decoration:underline}
.faq[open] .ans{animation:fadeUp .45s var(--ease-out)}
@media (max-width:640px){.faq summary{font-size:16px;line-height:22px;padding:16px}.faq .ans{padding:0 16px 18px 52px}}

/* Avatar */
.avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,#f2c27b,#c96a3a);flex:none;display:grid;place-items:center;color:#fff;font:600 18px/1 var(--f-display)}

/* Étoiles */
.star{flex:none}

/* 6. ANIMATIONS ------------------------------------------------------------- */
@keyframes blurIn{from{opacity:0;filter:blur(10px);transform:translateY(12px)}to{opacity:1;filter:blur(0);transform:none}}
/* Variante « au-dessus de la ligne de flottaison » : part de 0.01 (invisible à l'œil) pour que le navigateur compte l'élément comme affiché (LCP) */
@keyframes blurInTop{from{opacity:.01;filter:blur(10px);transform:translateY(12px)}to{opacity:1;filter:blur(0);transform:none}}
@keyframes fadeUp{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes heroZoom{from{transform:scale(1.08)}to{transform:scale(1)}}
@keyframes ripple{0%{transform:scale(.6);opacity:0}30%{opacity:.5}100%{transform:scale(1.6);opacity:0}}

/* Reveal au scroll : flou + fondu + léger glissement (signature du design) */
.js .reveal{opacity:0;filter:blur(10px);transform:translateY(24px);transition:opacity .9s var(--ease-out),filter .9s var(--ease-out),transform .9s var(--ease-out)}
.js .reveal.in-view{opacity:1;filter:none;transform:none}
.reveal[data-delay="1"]{transition-delay:.1s}.reveal[data-delay="2"]{transition-delay:.2s}.reveal[data-delay="3"]{transition-delay:.3s}

/* Mots qui apparaissent un à un (découpés par main.js) */
.js .words:not(.is-split){visibility:hidden}
.words .w{display:inline-block;opacity:.01;animation:blurInTop .9s var(--ease-out) forwards;animation-delay:calc(var(--i) * 70ms + var(--base,0ms))}
.fade-in{opacity:.01;animation:blurInTop .9s var(--ease-out) var(--d,.25s) forwards}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .js .reveal,.words .w,.fade-in{opacity:1;filter:none;transform:none}
  .js .words:not(.is-split){visibility:visible}
  .bar > i{transform:scaleX(var(--v))}
}

/* 7. EN-TÊTE : pilule blanche flottante posée sur la page ------------------- */
.nav{position:fixed;top:16px;left:0;right:0;z-index:50;padding:0 16px;pointer-events:none;transition:top .5s var(--ease-out),padding .5s var(--ease-out)}
.admin-bar .nav{top:48px}
@media (max-width:782px){.admin-bar .nav{top:62px}.admin-bar .nav.is-bar{top:46px}}
.nav__in{pointer-events:auto;max-width:1080px;margin:0 auto;height:64px;display:flex;align-items:center;justify-content:space-between;gap:24px;
  background:#fff;border-radius:var(--r-pill);padding:0 8px 0 24px;box-shadow:0 10px 30px -14px rgba(0,0,0,.22),0 0 0 1px rgba(0,0,0,.04);
  transition:max-width .5s var(--ease-out),height .5s var(--ease-out),border-radius .5s var(--ease-out),padding .5s var(--ease-out),box-shadow .5s var(--ease-out)}
.nav.is-scrolled .nav__in{box-shadow:0 12px 34px -12px rgba(0,0,0,.26),0 0 0 1px rgba(0,0,0,.05)}
/* Une fois la première section dépassée : barre blanche pleine largeur, collée en haut (comme l'inspiration) */
.nav.is-bar{top:0;padding:0}
.admin-bar .nav.is-bar{top:32px}
.nav.is-bar .nav__in{max-width:100%;height:80px;border-radius:0;padding:0 40px;box-shadow:0 1px 0 var(--line)}
.nav.is-bar .mnav{max-width:100%;margin-top:0;border-radius:0 0 var(--r-lg) var(--r-lg)}
.logo{display:flex;align-items:center;gap:10px;font:500 22px/1 var(--f-display);letter-spacing:-.02em;flex:none}
.logo svg{width:20px;height:20px}
.logo__mark{height:34px;width:auto}
.nav__links ul{display:flex;gap:26px}
.nav__links a{font:500 17px/20.4px var(--f-body);letter-spacing:-.02em;padding:6px 0;position:relative;display:block}
.nav__links a::after{content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform .35s var(--ease-out)}
.nav__links a:hover::after,.nav__links .current_page_item > a::after{transform:scaleX(1);transform-origin:left}
.nav__actions{display:flex;align-items:center;gap:6px}
.nav__stars{display:inline-flex;flex-direction:column;align-items:center;gap:3px;padding:7px 10px;border-radius:var(--r-sm);transition:background var(--dur-fast)}
.nav__stars:hover{background:var(--surface)}
.nav__stars-icons{display:flex;gap:1px;color:var(--sea-deep)}
.nav__stars-txt{font:500 10.5px/1 var(--f-body);letter-spacing:0;white-space:nowrap;color:var(--muted)}
@media (max-width:1180px){.nav__stars-txt{display:none}.nav__stars{padding:10px 8px}}
@media (min-width:961px) and (max-width:1120px){.nav__in{gap:16px;padding-left:20px}.nav__links ul{gap:18px}.nav__links a{font-size:16px}}
.nav .btn{padding:14px 20px;font-size:15px;border-radius:var(--r-pill)}
.nav__burger{display:none;border-radius:var(--r-pill)}
.nav__burger .i-close{display:none}
.nav__burger[aria-expanded="true"] .i-open{display:none}
.nav__burger[aria-expanded="true"] .i-close{display:block}

/* Sélecteur de langue */
.lang{position:relative}
.lang summary{list-style:none}
.lang summary::-webkit-details-marker{display:none}
.lang__btn{display:inline-flex;align-items:center;gap:6px;padding:10px 12px;border-radius:var(--r-pill);font:500 14px/1 var(--f-body);cursor:pointer;color:var(--ink-2);transition:background var(--dur-fast)}
.lang__btn:hover,.lang[open] .lang__btn{background:var(--surface)}
.lang__menu{position:absolute;right:0;top:calc(100% + 14px);min-width:150px;background:#fff;border:1px solid var(--line);border-radius:var(--r-sm);box-shadow:0 12px 32px -12px rgba(0,0,0,.14);padding:6px;animation:fadeUp .3s var(--ease-out)}
.lang__menu a{display:block;padding:8px 12px;border-radius:10px;font:500 14px/21px var(--f-body);color:var(--ink-2)}
.lang__menu a:hover{background:var(--surface);color:var(--ink)}
.lang__menu a[aria-current]{color:var(--ink);font-weight:600}

/* Menu mobile : carte sous la pilule */
.mnav{pointer-events:auto;max-width:1080px;margin:8px auto 0;max-height:calc(100svh - 110px);overflow:auto;background:#fff;border-radius:var(--r-lg);
  box-shadow:0 20px 40px -16px rgba(0,0,0,.25),0 0 0 1px rgba(0,0,0,.04);padding:8px 20px 20px;animation:fadeUp .35s var(--ease-out)}
.mnav[hidden]{display:none}
.mnav__links ul{display:flex;flex-direction:column}
.mnav__links a{display:block;padding:14px 0;border-bottom:1px solid var(--line);font:600 22px/1.2 var(--f-display);letter-spacing:-.03em}
.mnav__lang{display:flex;gap:8px;margin:20px 0}
.mnav__lang a{display:inline-block;padding:8px 14px;border-radius:var(--r-pill);background:var(--surface);font:500 14px/1 var(--f-body)}
.mnav__lang a[aria-current]{background:var(--ink);color:#fff}
.mnav__cta{width:100%}
.mnav-open{overflow:hidden}

@media (max-width:960px){
  .nav__links{display:none}
  .nav__burger{display:grid}
}
@media (max-width:640px){
  .nav{top:10px;padding:0 10px}
  .nav__in{height:58px;padding:0 6px 0 16px;gap:8px}
  .nav.is-bar .nav__in{height:64px;padding:0 10px 0 16px}
  .nav .lang{display:none}
  .nav__cta{padding:11px 16px!important;font-size:14px!important}
  .logo{font-size:20px}
  .logo__mark{height:30px}
}

/* 8. HERO : photo plein écran sous la navigation ----------------------------- */
/* Haut comme dans l'inspiration, plafonné au format 4:3 de la photo pour éviter le sur-zoom */
.hero{position:relative;height:min(140svh,75vw);min-height:min(100svh,860px);max-height:1500px;overflow:hidden;color:#fff;isolation:isolate}
@media (max-width:640px){.hero{height:115svh;min-height:640px}}
/* La photo dépasse de 16 % pour l'effet de parallaxe (décalage piloté par main.js) */
.hero__bg{position:absolute;top:0;left:0;right:0;height:116%;z-index:-2;overflow:hidden;will-change:transform;
  background:linear-gradient(180deg,#cfdbe6 0%,#a9c3da 18%,#7fa8cc 23.5%,#2f74b5 24%,#1f63a8 40%,#165799 62%,#0f4d8c 100%)}
.hero__bg:not(.has-image)::after{content:"";position:absolute;inset:24% 0 0;opacity:.35;
  background:repeating-linear-gradient(180deg,rgba(255,255,255,.12) 0 1px,transparent 1px 7px);-webkit-mask:linear-gradient(#000,transparent 85%);mask:linear-gradient(#000,transparent 85%)}
.hero__bg:not(.has-image){animation:heroZoom 2.2s var(--ease-out) both}
.hero__img,.hero__bg .casita-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.hero__bg.has-image{background:#3a3f44}
.hero__img{animation:heroZoom 2.2s var(--ease-out) both}
.hero__shade{position:absolute;inset:0 0 auto;height:min(100svh,100%);z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.06) 0%,rgba(0,0,0,.14) 40%,rgba(0,0,0,0) 70%)}
/* Avec une vraie photo : voile léger, concentré derrière le texte (la photo reste lumineuse) */
.hero__bg.has-image + .hero__shade{background:
  radial-gradient(ellipse 60% 30% at 50% 44%,rgba(8,12,18,.38) 0%,rgba(8,12,18,.16) 55%,rgba(8,12,18,0) 100%),
  linear-gradient(180deg,rgba(8,12,18,.22) 0%,rgba(8,12,18,0) 30%)}
.hero__content{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;text-align:center;padding:clamp(150px,31vh,320px) var(--gutter) 0;gap:12px}
.hero .t-hero{text-shadow:0 2px 30px rgba(0,0,0,.18);max-width:1000px}
.hero__sub{font:500 18px/23.4px var(--f-body);letter-spacing:-.02em;max-width:640px;opacity:.01;animation:blurInTop .9s var(--ease-out) .75s forwards;text-shadow:0 1px 16px rgba(0,0,0,.28)}
.hero .rating-pill{opacity:.01;animation:blurInTop .9s var(--ease-out) .05s forwards;margin-bottom:6px;padding:9px 16px;background:rgba(255,255,255,.16);
  backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);font-size:15px}
.hero .btn{margin-top:14px;opacity:.01;animation:blurInTop .9s var(--ease-out) .95s forwards;padding:14px 22px;font-size:16px;border-radius:var(--r-pill)}
@media (max-width:640px){.hero__content{padding-top:clamp(130px,26vh,220px)}.hero__sub{font-size:16px;line-height:22px}}
/* Encart classement (logo Étoiles de France sur pastille blanche) */
.hero__label{display:inline-flex;align-items:center;gap:12px;margin-top:18px;padding:8px 16px 8px 8px;border-radius:var(--r-sm);background:#fff;color:var(--ink);text-align:left;
  box-shadow:0 10px 30px -12px rgba(0,0,0,.35);opacity:.01;animation:blurInTop .9s var(--ease-out) 1.1s forwards}
.hero__label-logo{height:34px;width:auto;flex:none}
.hero__label-text{display:flex;flex-direction:column;gap:1px;padding-left:12px;border-left:1px solid var(--line);font:400 13px/17px var(--f-body);letter-spacing:-.01em;color:var(--ink-2)}
.hero__label-text strong{font-weight:600;color:var(--ink)}
@media (max-width:640px){.hero__label{flex-direction:column;gap:8px;padding:10px 14px;text-align:center}.hero__label-logo{height:28px}.hero__label-text{padding:8px 0 0;border-left:0;border-top:1px solid var(--line)}}
/* Bas du hero : fondu vers le blanc (enchaînement sur la section suivante) + flou progressif */
.hero::after,.section--page-photo::after{content:"";position:absolute;left:0;right:0;bottom:0;height:26%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.35) 45%,rgba(255,255,255,.85) 80%,#fff 100%)}
/* Flou progressif : 8 couches de backdrop-filter masquées */
.pblur{position:absolute;left:0;right:0;bottom:0;height:30%;pointer-events:none;z-index:0}
.pblur > div{position:absolute;inset:0}
.pblur > div:nth-child(1){backdrop-filter:blur(.047px);-webkit-backdrop-filter:blur(.047px);mask:linear-gradient(transparent 0%,#000 12.5%,#000 25%,transparent 37.5%);-webkit-mask:linear-gradient(transparent 0%,#000 12.5%,#000 25%,transparent 37.5%)}
.pblur > div:nth-child(2){backdrop-filter:blur(.094px);-webkit-backdrop-filter:blur(.094px);mask:linear-gradient(transparent 12.5%,#000 25%,#000 37.5%,transparent 50%);-webkit-mask:linear-gradient(transparent 12.5%,#000 25%,#000 37.5%,transparent 50%)}
.pblur > div:nth-child(3){backdrop-filter:blur(.19px);-webkit-backdrop-filter:blur(.19px);mask:linear-gradient(transparent 25%,#000 37.5%,#000 50%,transparent 62.5%);-webkit-mask:linear-gradient(transparent 25%,#000 37.5%,#000 50%,transparent 62.5%)}
.pblur > div:nth-child(4){backdrop-filter:blur(.375px);-webkit-backdrop-filter:blur(.375px);mask:linear-gradient(transparent 37.5%,#000 50%,#000 62.5%,transparent 75%);-webkit-mask:linear-gradient(transparent 37.5%,#000 50%,#000 62.5%,transparent 75%)}
.pblur > div:nth-child(5){backdrop-filter:blur(.75px);-webkit-backdrop-filter:blur(.75px);mask:linear-gradient(transparent 50%,#000 62.5%,#000 75%,transparent 87.5%);-webkit-mask:linear-gradient(transparent 50%,#000 62.5%,#000 75%,transparent 87.5%)}
.pblur > div:nth-child(6){backdrop-filter:blur(1.5px);-webkit-backdrop-filter:blur(1.5px);mask:linear-gradient(transparent 62.5%,#000 75%,#000 87.5%,transparent 100%);-webkit-mask:linear-gradient(transparent 62.5%,#000 75%,#000 87.5%,transparent 100%)}
.pblur > div:nth-child(7){backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);mask:linear-gradient(transparent 75%,#000 87.5%,#000 100%);-webkit-mask:linear-gradient(transparent 75%,#000 87.5%,#000 100%)}
.pblur > div:nth-child(8){backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);mask:linear-gradient(transparent 87.5%,#000 100%);-webkit-mask:linear-gradient(transparent 87.5%,#000 100%)}
@media (max-width:640px){.hero{min-height:520px}.hero__sub{font-size:16px;line-height:22px}}

/* 9. SECTIONS --------------------------------------------------------------- */

/* Ondes des sections bleues */
.rings{position:absolute;inset:0;pointer-events:none}
.rings i{position:absolute;left:50%;top:70%;width:900px;height:900px;margin:-450px 0 0 -450px;border-radius:50%;
  background:radial-gradient(circle,transparent 55%,rgba(255,255,255,.22) 62%,transparent 70%);animation:ripple 7s linear infinite}
.rings i:nth-child(2){animation-delay:-2.3s}.rings i:nth-child(3){animation-delay:-4.6s}

/* En-tête de page sur photo (mêmes voile, parallaxe et fondu que le hero) */
.section--page-photo{color:#fff;overflow:hidden;isolation:isolate;min-height:min(82svh,780px);display:flex;align-items:center;padding:calc(var(--nav-h) + 64px) 0 150px}
.section--page-photo > .container{width:100%}
.section--page-photo .t-h2{text-shadow:0 2px 30px rgba(0,0,0,.2)}
.section--page-photo .head .t-lead{color:rgba(255,255,255,.88);text-shadow:0 1px 16px rgba(0,0,0,.3)}

/* Section sur photo de fond */
.section--photo{color:#fff;isolation:isolate;overflow:hidden;background:#2b3035}
.section__photo{position:absolute;inset:0;z-index:-1}
.section__photo img{width:100%;height:100%;object-fit:cover}
.section__photo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,16,20,.66) 0%,rgba(12,16,20,.5) 50%,rgba(12,16,20,.7) 100%)}
.section--photo .head .t-lead{color:rgba(255,255,255,.84)}
.section--photo .card,.section--photo .faq{color:var(--ink);border-color:transparent}

/* Mot d'accueil */
.intro__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:clamp(32px,6vw,80px);align-items:center}
.intro__media{border-radius:var(--r-xl);overflow:hidden;aspect-ratio:4/5;background:var(--surface-2);position:relative}
.intro__media img{width:100%;height:100%;object-fit:cover}
.intro__text{display:flex;flex-direction:column;gap:12px}
.intro__text .t-h2{margin-bottom:8px}
.intro__body{display:flex;flex-direction:column;gap:14px;font-size:17px;line-height:27px}
.intro__sign{margin-top:12px;font:600 17px/24px var(--f-display);letter-spacing:-.02em;color:var(--ink)}
.intro--solo .intro__grid{grid-template-columns:1fr;max-width:720px;margin:0 auto;text-align:center}
@media (max-width:860px){.intro__grid{grid-template-columns:1fr}.intro__media{aspect-ratio:4/3;max-height:520px}}

/* Points forts / cartes d'infos */
.highlight,.info-card{display:flex;flex-direction:column;gap:8px;padding:28px}
.highlight__ico{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-xs);background:var(--sun-soft);color:var(--sun-ink);margin-bottom:12px;flex:none}
.section--alt .highlight__ico{background:var(--sun-soft)}
.highlight__ico .ico{width:22px;height:22px}
.info-card .t-price{margin:2px 0 4px}
.info-card .t-body p + p{margin-top:8px}
.info-card .t-body strong{color:var(--ink);font-weight:600}

/* Galerie bento */
.gallery{display:grid;grid-template-columns:1fr 1fr 2fr;grid-template-rows:226px 226px;gap:16px}
.gallery__item{border-radius:var(--r-sm);background:var(--surface-2);overflow:hidden;position:relative;padding:0;transition:transform .8s var(--ease-out)}
.gallery__item:nth-child(3){grid-column:3;grid-row:1 / span 2}
.gallery__item img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-out)}
.gallery__item:hover{transform:scale(.985)}
.gallery__item:hover img{transform:scale(1.04)}
@media (max-width:860px){
  .gallery{grid-template-columns:1fr 1fr;grid-template-rows:160px 240px 160px}
  .gallery__item:nth-child(3){grid-column:1 / span 2;grid-row:2}
}
/* Avec vidéo : grande tuile à droite sur ordinateur, première tuile (pleine largeur) sur mobile */
.gallery.has-video .gallery__item:nth-child(3){grid-column:auto;grid-row:auto}
.gallery.has-video .gallery__item--video{grid-column:3;grid-row:1 / span 2}
.gallery__item--video{background:#111}
.gallery__item--video video{width:100%;height:100%;object-fit:cover;display:block}
.gallery__play{position:absolute;left:16px;bottom:16px;width:48px;height:48px;display:grid;place-items:center;border-radius:50%;background:rgba(255,255,255,.9);color:var(--ink);
  box-shadow:0 8px 24px -8px rgba(0,0,0,.4);transition:transform var(--dur-fast) var(--ease-out)}
.gallery__play .ico{fill:currentColor;stroke:none;margin-left:3px}
.gallery__item--video:hover .gallery__play{transform:scale(1.08)}
@media (max-width:860px){
  .gallery.has-video{grid-template-rows:440px 160px 160px}
  .gallery.has-video .gallery__item--video{grid-column:1 / span 2;grid-row:1}
}

/* Visionneuse */
.lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;border:0;padding:0;background:rgba(14,15,16,.94);color:#fff;display:grid;place-items:center}
.lightbox:not([open]){display:none}
.lightbox::backdrop{background:transparent}
.lightbox__img{max-width:min(92vw,1400px);max-height:82svh;width:auto;height:auto;border-radius:var(--r-sm);object-fit:contain;animation:fadeUp .4s var(--ease-out)}
.lightbox__video{max-width:min(92vw,1400px);max-height:82svh;width:auto;height:auto;border-radius:var(--r-sm);background:#000;animation:fadeUp .4s var(--ease-out)}
.lightbox__img[hidden],.lightbox__video[hidden]{display:none}
.lightbox .icon-btn{position:absolute;background:var(--glass-10);color:#fff;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.lightbox .icon-btn:hover{background:rgba(255,255,255,.2)}
.lightbox__close{top:20px;right:20px}
.lightbox__prev{left:20px;top:50%;margin-top:-21px}
.lightbox__next{right:20px;top:50%;margin-top:-21px}
.lightbox__count{position:absolute;bottom:22px;left:0;right:0;text-align:center;color:var(--glass-70)}
@media (max-width:640px){.lightbox__prev,.lightbox__next{top:auto;bottom:12px;margin:0}.lightbox__prev{left:16px}.lightbox__next{right:16px}}

/* Grande photo + carte flottante */
.feature{position:relative;border-radius:var(--r-xl);padding:16px;background:#fff;box-shadow:var(--sh-soft)}
.section--alt .feature{border:1px solid var(--line)}
.feature__img{height:clamp(320px,48vw,520px);border-radius:var(--r-sm);overflow:hidden;background:var(--surface-2);position:relative}
.feature__img img{width:100%;height:100%;object-fit:cover}
.feature__card{position:absolute;left:28px;bottom:28px;max-width:400px;background:#fff;border-radius:var(--r-lg);padding:24px;box-shadow:0 10px 30px -12px rgba(0,0,0,.18)}
.feature__card .t-body{margin-top:8px}
@media (max-width:640px){.feature{padding:10px}.feature__card{position:relative;left:auto;bottom:auto;max-width:none;margin:-48px 10px 6px;padding:20px}}

/* Équipements */
.chips{display:flex;flex-wrap:wrap;gap:16px;justify-content:center;max-width:900px;margin:0 auto}
.chips:not(.is-open) .is-extra{display:none}
.chips.is-open .is-extra{animation:fadeUp .45s var(--ease-out) both}
.section--sea .center{margin-top:48px}
/* Équipements regroupés par catégorie */
.amen-groups{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;max-width:1046px;margin:0 auto}
.amen-group{flex:1 1 300px;max-width:calc((100% - 32px) / 3);background:rgba(255,255,255,.38);border-radius:var(--r-lg);padding:22px 22px 24px}
@media (max-width:1000px){.amen-group{max-width:calc((100% - 16px) / 2)}}
@media (max-width:640px){.amen-group{max-width:100%}}
.amen-group__title{font:600 17px/24px var(--f-display);letter-spacing:-.02em;margin-bottom:14px}
.chips--group{justify-content:flex-start;gap:8px;max-width:none}
.chips--group .chip{background:rgba(255,255,255,.7);padding:8px 14px;font-size:15px;line-height:22px}
.chips--group .chip:hover{background:#fff}
@media (max-width:640px){.amen-group{padding:18px}.chips--group .chip{font-size:14px;padding:7px 12px}}
@media (max-width:640px){.chips{gap:10px}.chip{font-size:15px;padding:9px 14px}}

/* Avis */
.review-card{display:flex;flex-direction:column}
.review-card__platform{align-self:flex-start;margin-bottom:16px;padding:5px 12px;border-radius:var(--r-pill);background:var(--surface);font:600 13px/18px var(--f-display);color:var(--ink-2)}
.review-card__big{font:700 56px/1 var(--f-display);letter-spacing:-.03em;margin-bottom:8px}
.review-card__big small{font-size:.45em;font-weight:600;color:var(--muted);margin-left:2px}
.review-card--booking .stats{margin-top:20px}
.review-card__cta{margin-top:auto;padding-top:24px}
.rating-card__score{display:flex;align-items:center;gap:12px}
.rating-card__score .star{color:var(--sea-deep)}
.rating-card__caption{margin:6px 0 24px}
.bars{display:grid;gap:14px}
.bars__row{display:grid;grid-template-columns:120px 1fr 36px;gap:20px;align-items:center}
.bars__row strong{text-align:right;font-weight:600}
.stats-card{display:flex;flex-direction:column;justify-content:space-between;gap:24px}
.stats{display:grid}
.stats__item{display:flex;flex-direction:column;gap:2px;padding:14px 0;border-bottom:1px solid var(--line)}
.stats__item:first-child{padding-top:0}
.stats__item:last-child{border-bottom:0}
.testimonials{margin-top:var(--s-7)}
.testimonials__nav{display:flex;justify-content:flex-end;gap:8px;margin-bottom:16px}
.section--alt .testimonials__nav .icon-btn{background:#fff;border:1px solid var(--line)}
.testimonials__track{display:grid;grid-auto-flow:column;grid-auto-columns:calc((100% - 32px) / 3);gap:16px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px;margin:-2px;overscroll-behavior-x:contain}
.testimonials__track::-webkit-scrollbar{display:none}
.testimonial{scroll-snap-align:start;display:flex;flex-direction:column;gap:16px;padding:28px}
.testimonial__stars{display:flex;gap:4px;color:var(--sea-deep)}
.testimonial__text{flex:1;font-size:17px;line-height:25px;color:var(--muted)}
.testimonial__author{display:flex;gap:12px;align-items:center}
.testimonial__author strong{display:block;font:700 17px/20.4px var(--f-body);color:var(--ink)}
.testimonial__author .t-ui{color:var(--muted);display:block}
@media (max-width:960px){.testimonials__track{grid-auto-columns:calc((100% - 16px) / 2)}}
@media (max-width:640px){.testimonials__track{grid-auto-columns:86%}.bars__row{grid-template-columns:104px 1fr 32px;gap:14px}}

/* Autour de la Casita */
.place{padding:12px;display:flex;flex-direction:column;border-radius:var(--r-lg)}
.place__media{position:relative;border-radius:var(--r-sm);overflow:hidden;aspect-ratio:4/3;background:var(--surface-2)}
.place__media img{width:100%;height:100%;object-fit:cover;transition:transform 1s var(--ease-out)}
.place:hover .place__media img{transform:scale(1.04)}
.place__badge{position:absolute;top:12px;left:12px;padding:6px 12px;border-radius:var(--r-pill);background:rgba(27,28,29,.5);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font:500 13px/18px var(--f-body)}
.place__body{display:flex;flex-direction:column;flex:1;padding:16px 12px 8px}
.place__loc{display:flex;align-items:center;gap:6px;color:var(--muted);margin:4px 0 10px}
.place__loc .ico{width:16px;height:16px}
.place__link{margin-top:auto;align-self:flex-start}
.place .t-body{margin-bottom:18px}

/* FAQ */
.faq-list{max-width:760px;margin:0 auto;display:grid;gap:10px}

/* Réservation */
.booking .card{display:flex;flex-direction:column}
.booking .t-price{margin-top:8px}
.booking .card > .btn-row:last-child,.booking .card > .btn:last-child{margin-top:auto}
.booking .card > .btn:last-child{align-self:flex-start}

/* Contact */
.contact{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;align-items:start}
.contact__info .list-ico li{color:var(--ink-2)}
.sep{border:0;border-top:1px solid var(--line);margin:24px 0}
@media (max-width:860px){.contact{grid-template-columns:1fr}}

/* Liste à icônes (+ photo facultative à côté) */
.icon-list{max-width:900px;margin:0 auto}
.icon-list__wrap.has-image{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);gap:16px;align-items:stretch}
.icon-list__wrap.has-image .icon-list{max-width:none;margin:0;display:flex;align-items:center}
.icon-list__wrap.has-image .list-ico--grid{grid-template-columns:1fr;gap:14px}
.icon-list__media{border-radius:var(--r-xl);overflow:hidden;min-height:440px;position:relative;background:var(--surface-2)}
.icon-list__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
@media (max-width:860px){.icon-list__wrap.has-image{grid-template-columns:1fr}.icon-list__media{min-height:0;aspect-ratio:4/3}}
.list-ico--grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 32px;margin:0}
.list-ico--grid li{color:var(--ink-2)}
@media (max-width:640px){.list-ico--grid{grid-template-columns:1fr}}

/* Texte libre */
.prose{max-width:760px;margin:0 auto;color:var(--muted)}
.prose > * + *{margin-top:14px}
.prose h2{font:600 26px/32px var(--f-display);letter-spacing:-.03em;color:var(--ink);margin-top:48px}
.prose h3{font:600 20px/28px var(--f-display);letter-spacing:-.02em;color:var(--ink);margin-top:32px}
.prose > :first-child{margin-top:0}
.prose ul,.prose ol{padding-left:22px}
.prose ul{list-style:disc}
.prose li + li{margin-top:6px}
.prose a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.prose strong{color:var(--ink);font-weight:600}

/* 10. FORMULAIRES ----------------------------------------------------------- */
.field{display:flex;flex-direction:column;gap:6px}
.field__label{font:500 14px/21px var(--f-body);color:var(--ink-2)}
.cform__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.field--full{grid-column:1 / -1}
.cform .hidden-fields-container{display:none;border:0;margin:0;padding:0}
.cform input[type=text],.cform input[type=email],.cform input[type=tel],.cform input[type=date],.cform select,.cform textarea,.pw-form input{
  width:100%;height:48px;padding:0 14px;border:1px solid var(--line);border-radius:var(--r-xs);background:#fff;font:400 16px/22px var(--f-body);color:var(--ink);letter-spacing:-.01em;
  transition:border-color var(--dur-fast),box-shadow var(--dur-fast);-webkit-appearance:none;appearance:none;margin:0}
.cform input:hover,.cform select:hover,.cform textarea:hover{border-color:#d5dae0}
.cform input[type=date]{display:block;color:var(--ink);line-height:46px}
.cform input[type=date]::-webkit-date-and-time-value{text-align:left;margin:0}
.cform input[type=date]::-webkit-datetime-edit{padding:0;font:inherit;color:inherit}
.cform input[type=date].is-empty{color:var(--muted)}
.cform input[type=date]::-webkit-calendar-picker-indicator{opacity:.55;cursor:pointer;margin:0 0 0 auto;padding:4px}
.cform input[type=date]::-webkit-datetime-edit-fields-wrapper{padding:0}
.cform select{background:#fff 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='%236F7275' stroke-width='1.6'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 14px center;padding-right:40px;cursor:pointer}
.cform textarea{height:144px;min-height:110px;padding:12px 14px;resize:vertical;display:block}
.cform input:focus,.cform select:focus,.cform textarea:focus,.pw-form input:focus{outline:0;border-color:var(--ink);box-shadow:0 0 0 3px var(--surface-2)}
.cform .wpcf7-form-control-wrap{display:block}
/* Consentement : case à cocher au style du design system */
.field--consent{margin:20px 0 22px;color:var(--muted);font-size:14px;line-height:20px}
.field--consent .wpcf7-list-item{margin:0;display:block}
.field--consent label{display:flex;gap:12px;align-items:flex-start;cursor:pointer}
.field--consent input[type=checkbox]{-webkit-appearance:none;appearance:none;width:20px;height:20px;flex:none;margin:0;border:1.5px solid #c9cfd6;border-radius:6px;background:#fff center/14px no-repeat;cursor:pointer;transition:background-color var(--dur-fast),border-color var(--dur-fast)}
.field--consent input[type=checkbox]:hover{border-color:var(--ink-2)}
.field--consent input[type=checkbox]:checked{background-color:var(--ink);border-color:var(--ink);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12l5 5L20 7'/%3E%3C/svg%3E")}
.field--consent input[type=checkbox]:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
.field--consent a{color:var(--ink);text-decoration:underline;text-underline-offset:3px}
.cform .wpcf7-submit{display:inline-flex;align-items:center;height:48px;padding:0 24px;border-radius:var(--r-pill);background:var(--ink);color:#fff;font:500 15px/1 var(--f-body);border:0;cursor:pointer;box-shadow:var(--sh-button);transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast),opacity var(--dur-fast)}
.cform .wpcf7-submit:hover{background:#000;transform:translateY(-1px)}
.cform .wpcf7-submit:disabled{opacity:.45;cursor:not-allowed;transform:none}
.cform .wpcf7-spinner{display:none}
.cform.submitting .wpcf7-spinner{display:inline-block;margin-left:12px;vertical-align:middle}
.wpcf7-not-valid-tip{color:#b42318;font-size:13px;line-height:18px;margin-top:6px;display:block}
.cform .wpcf7-not-valid{border-color:#f0b4ae!important}
.wpcf7-response-output{margin:18px 0 0!important;padding:12px 16px!important;border-radius:var(--r-xs);border:1px solid var(--line)!important;font-size:14px;color:var(--ink-2)}
.wpcf7 form.sent .wpcf7-response-output{border-color:#a6d8b8!important;background:#f1faf4}
.wpcf7 form.invalid .wpcf7-response-output,.wpcf7 form.failed .wpcf7-response-output,.wpcf7 form.spam .wpcf7-response-output{border-color:#f0b4ae!important;background:#fdf3f2}
.wpcf7 form.init .wpcf7-response-output:empty{display:none}
.cform .hp{position:absolute!important;left:-9999px!important;width:1px;height:1px;overflow:hidden}
.screen-reader-response{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.cform__grid{row-gap:18px}
@media (max-width:640px){.cform__grid{grid-template-columns:1fr}}

.pw-form{max-width:460px;margin:0 auto;display:grid;gap:16px}

/* Numéros d'urgence (encart sous les cartes d'infos) */
.section--snug{padding-top:0;margin-top:calc(var(--s-4) - var(--section-y))}
.emergency{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,2fr);gap:var(--s-5) var(--s-6);align-items:center}
.emergency__head{display:flex;gap:16px;align-items:flex-start}
.emergency__head .t-body{margin-top:6px}
.emergency__ico{width:48px;height:48px;flex:none;display:grid;place-items:center;border-radius:var(--r-xs);background:#FDECEA;color:#B42318}
.emergency__ico .ico{width:24px;height:24px}
.emergency__list{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
.emergency__list a,.emergency__item{display:flex;flex-direction:column;gap:2px;height:100%;padding:12px 14px;border-radius:var(--r-sm);background:var(--surface);transition:background var(--dur-fast),transform var(--dur-fast) var(--ease-out)}
.emergency__list a:hover{background:var(--surface-2);transform:translateY(-2px)}
.emergency__num{font:700 22px/1.15 var(--f-display);letter-spacing:-.02em;color:#B42318}
.emergency__list span{font:400 13px/18px var(--f-body);letter-spacing:-.01em;color:var(--ink-2)}
@media (max-width:860px){.emergency{grid-template-columns:1fr}}
@media (max-width:560px){.emergency__list{grid-template-columns:1fr 1fr}}

/* Livre d'or */
.gb-list{display:flex;flex-wrap:wrap;justify-content:center;gap:16px}
.gb-card{position:relative;display:flex;flex-direction:column;gap:16px;padding:28px;flex:1 1 300px;max-width:calc((100% - 32px) / 3)}
@media (max-width:1000px){.gb-card{max-width:calc((100% - 16px) / 2)}}
@media (max-width:640px){.gb-card{max-width:100%}}
.gb-card__quote{font:400 64px/1 var(--f-accent);color:var(--sea-deep);height:28px;margin-top:-6px}
.gb-card__text{color:var(--ink-2);font-size:16px;line-height:25px}
.gb-card__author{margin-top:auto;display:flex;flex-direction:column;gap:2px}
.gb-card__author .t-ui{color:var(--muted)}
.gb-form-card{max-width:720px;margin:var(--s-6) auto 0}
.gb-list + .gb-form-card{margin-top:var(--s-7)}
.gb-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.gb-notice{margin-bottom:20px;padding:12px 16px;border-radius:var(--r-xs);font-size:15px;line-height:22px}
.gb-notice--ok{background:#EAF3E3;color:#33521F}
.gb-notice--error{background:#FDECEA;color:#B42318}

/* Encart flottant « Espace locataires » */
.guest-pop{position:fixed;right:20px;bottom:20px;z-index:45;width:min(360px,calc(100vw - 32px));display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;
  padding:16px;background:#fff;border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:0 18px 40px -16px rgba(0,0,0,.28)}
.guest-pop[hidden],.mnav-open .guest-pop{display:none}
.guest-pop.is-visible{animation:blurIn .8s var(--ease-out) both}
.guest-pop__ico{width:44px;height:44px;display:grid;place-items:center;border-radius:var(--r-xs);background:var(--sun-soft);color:var(--sun-ink)}
.guest-pop__txt{padding-right:24px}
.guest-pop__txt strong{display:block;font:600 16px/22px var(--f-display);letter-spacing:-.02em;color:var(--ink)}
.guest-pop__txt span{display:block;font:400 14px/20px var(--f-body);color:var(--muted);margin-top:2px}
.guest-pop__btn{grid-column:1 / -1;border-radius:var(--r-pill)}
.guest-pop__close{position:absolute;top:10px;right:10px;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;color:var(--muted);transition:background var(--dur-fast),color var(--dur-fast)}
.guest-pop__close:hover{background:var(--surface);color:var(--ink)}
@media (max-width:640px){
  .guest-pop{left:10px;right:10px;bottom:calc(10px + env(safe-area-inset-bottom));width:auto;grid-template-columns:auto 1fr auto;gap:10px;padding:10px 10px 10px 12px;border-radius:var(--r-md)}
  .guest-pop__ico{width:38px;height:38px}
  .guest-pop__txt{padding-right:0}
  .guest-pop__txt strong{font-size:14px;line-height:19px}
  .guest-pop__txt span{display:none}
  .guest-pop__btn{grid-column:auto;padding:10px 14px;font-size:13px}
  .guest-pop__btn .ico{display:none}
  .guest-pop__close{top:-10px;right:-4px;width:26px;height:26px;background:#fff;border:1px solid var(--line);box-shadow:0 4px 10px -4px rgba(0,0,0,.2)}
}
/* Bouton replié, toujours visible après fermeture de l'encart */
.guest-tab{position:fixed;right:20px;bottom:20px;z-index:45;display:inline-flex;align-items:center;gap:8px;padding:12px 18px 12px 14px;border-radius:var(--r-pill);
  background:var(--ink);color:#fff;font:500 14px/1 var(--f-body);letter-spacing:-.01em;box-shadow:0 14px 30px -12px rgba(0,0,0,.4);transition:transform var(--dur-fast) var(--ease-out),background var(--dur-fast)}
.guest-tab:hover{background:#000;transform:translateY(-2px)}
.guest-tab .ico{color:var(--sea)}
.guest-tab[hidden],.mnav-open .guest-tab{display:none}
.guest-tab.is-visible{animation:blurIn .6s var(--ease-out) both}
@media (max-width:640px){.guest-tab{right:12px;bottom:calc(12px + env(safe-area-inset-bottom));padding:11px 16px 11px 13px;font-size:13px}}

/* 11. BAS DE PAGE : grande photo d'appel + footer minimal centré ------------- */
.btn--glass{background:rgba(255,255,255,.16);color:#fff;backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);box-shadow:inset 0 0 0 1px rgba(255,255,255,.28)}
.btn--glass:hover{background:rgba(255,255,255,.26)}
.footer-cta{position:relative;isolation:isolate;overflow:hidden;color:#fff;background:#3a3f44;height:clamp(620px,62vw,980px)}
.footer-cta__bg{position:absolute;left:0;right:0;top:-8%;height:116%;z-index:-2;will-change:transform}
.footer-cta__bg img{width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.footer-cta__shade{position:absolute;inset:0;z-index:-1;background:
  radial-gradient(ellipse 60% 32% at 50% 32%,rgba(8,12,18,.38) 0%,rgba(8,12,18,.14) 60%,rgba(8,12,18,0) 100%),
  linear-gradient(180deg,rgba(8,12,18,.2) 0%,rgba(8,12,18,0) 40%)}
.footer-cta::after{content:"";position:absolute;left:0;right:0;bottom:0;height:30%;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.35) 45%,rgba(255,255,255,.85) 80%,#fff 100%)}
.footer-cta__content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;text-align:center;gap:14px;padding-top:clamp(120px,20%,220px)}
.footer-cta__title{font-family:var(--f-accent);font-style:italic;font-weight:400;font-size:clamp(48px,7.2vw,92px);line-height:1;letter-spacing:-.03em;text-shadow:0 2px 30px rgba(0,0,0,.2)}
.footer-cta__sub{font:500 18px/24px var(--f-body);letter-spacing:-.02em;max-width:460px;text-shadow:0 1px 16px rgba(0,0,0,.3)}
.footer-cta .btn-row{justify-content:center;margin-top:8px}
.footer-cta .btn{border-radius:var(--r-pill)}
.footer-cta .pblur{height:34%}
@media (max-width:640px){.footer-cta{height:clamp(560px,150vw,720px)}.footer-cta__sub{font-size:16px;line-height:22px}.footer-cta .btn-row{flex-direction:column;align-items:stretch;width:100%;max-width:300px}}

.footer{padding:var(--s-6) 0 var(--s-8);color:var(--muted);text-align:center}
.footer__in{display:flex;flex-direction:column;align-items:center;gap:6px}
.footer__line{font:400 16px/24px var(--f-body);letter-spacing:-.02em}
.footer__strong{color:var(--ink)}
.footer__links{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px}
.footer__links ul{display:flex;flex-wrap:wrap;justify-content:center;gap:4px 12px}
.footer__links a{color:var(--ink);transition:opacity var(--dur-fast)}
.footer__links a:hover{opacity:.6}
.footer__icons{display:flex;gap:6px;margin-top:14px}
.footer__icons a{width:40px;height:40px;display:grid;place-items:center;border-radius:var(--r-xs);color:var(--ink);transition:background var(--dur-fast)}
.footer__icons a:hover{background:var(--surface)}
@media (max-width:640px){.footer{padding-bottom:calc(var(--s-8) + 72px)}}
