/* =========================================================
   Haliviera — studio à Nice, Carré d'Or
   Palette : encre méditerranéenne, azur, jaune volet niçois
   ========================================================= */

:root{
  --ink:#0E1418;
  --ink-80:rgba(14,20,24,.80);
  --ink-60:rgba(14,20,24,.58);
  --azur:#2EA9E2;
  --azur-dark:#0B6E9E;
  --azur-pale:#E7F5FD;
  --ciel:#BFE6F8;
  --ardoise:#2F343A;
  --ardoise-clair:#474F58;
  --soleil:#FFDA3D;
  --soleil-deep:#F5C51C;
  --sable:#FDFBF3;
  --blanc:#FFFFFF;
  --ligne:rgba(14,20,24,.13);

  --f-display:"Fraunces",Georgia,"Times New Roman",serif;
  --f-body:"Figtree",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --f-util:"DM Mono",ui-monospace,SFMono-Regular,Menlo,monospace;

  --wrap:1180px;
  --gap:clamp(1.5rem,4vw,3rem);
  --arch:210px 210px 10px 10px;
  --shadow:0 18px 44px -24px rgba(14,20,24,.4);
  /* Hauteur maximale réservée au calendrier dans la carte du héros */
  --book-widget-max:330px;
}

*,*::before,*::after{box-sizing:border-box}

html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

body{
  margin:0;
  background:var(--sable);
  color:var(--ink);
  font-family:var(--f-body);
  font-size:1.0625rem;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}

img{max-width:100%;height:auto;display:block}
a{color:var(--azur-dark);text-underline-offset:.18em}
a:hover{color:var(--ink)}

:focus-visible{outline:3px solid var(--azur);outline-offset:3px;border-radius:3px}

h1,h2,h3,h4{
  font-family:var(--f-display);
  font-weight:600;
  font-variation-settings:"SOFT" 40,"WONK" 1,"opsz" 40;
  line-height:1.08;
  letter-spacing:-.015em;
  margin:0 0 .55em;
  text-wrap:balance;
}
h1{font-size:clamp(2.2rem,5vw,3.6rem)}
h2{font-size:clamp(1.85rem,3.6vw,2.85rem)}
h3{font-size:clamp(1.2rem,2vw,1.5rem)}
p{margin:0 0 1.1em;max-width:68ch}
ul{margin:0 0 1.1em}

.wrap{width:min(100% - 2.5rem,var(--wrap));margin-inline:auto}
.wrap--narrow{width:min(100% - 2.5rem,880px);margin-inline:auto}
section{padding-block:clamp(3.25rem,7vw,6rem)}
.section--tight{padding-block:clamp(2.25rem,4vw,3.5rem)}

/* --- Étiquettes / eyebrows ------------------------------ */
.eyebrow{
  font-family:var(--f-util);
  font-size:.75rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  color:var(--azur-dark);
  margin:0 0 1rem;
  display:flex;
  align-items:center;
  gap:.65rem;
}
.eyebrow::before{
  content:"";width:2rem;height:1px;background:var(--azur);flex:none;
}
.eyebrow--plain::before{display:none}

.lead{font-size:clamp(1.1rem,1.7vw,1.3rem);color:var(--ink-80);max-width:60ch}

/* --- Boutons -------------------------------------------- */
.btn{
  display:inline-flex;align-items:center;gap:.5rem;
  font-family:var(--f-body);font-weight:600;font-size:.95rem;
  padding:.85rem 1.5rem;border-radius:100px;border:1.5px solid transparent;
  text-decoration:none;cursor:pointer;transition:transform .18s ease,background .18s ease,color .18s ease;
}
.btn:hover{transform:translateY(-2px)}
.btn--sun{background:var(--soleil);color:var(--ink);box-shadow:0 8px 20px -12px rgba(14,20,24,.6)}
.btn--sun:hover{background:var(--soleil-deep);color:var(--ink)}
.btn--ink{background:var(--ink);color:var(--blanc)}
.btn--ink:hover{background:var(--azur-dark);color:var(--blanc)}
.btn--ghost{border-color:var(--ligne);color:var(--ink);background:transparent}
.btn--ghost:hover{border-color:var(--ink);color:var(--ink)}
.btn--night{background:var(--ink);color:var(--soleil)}
.btn--night:hover{background:#000;color:var(--soleil)}
.btn--light{border-color:rgba(255,255,255,.55);color:var(--blanc);background:transparent}
.btn--light:hover{background:rgba(255,255,255,.12);color:var(--blanc);border-color:var(--blanc)}
@media (prefers-reduced-motion:reduce){.btn:hover{transform:none}}

/* --- En-tête -------------------------------------------- */
.site-header{
  position:sticky;top:0;z-index:60;
  background:var(--soleil);
  border-bottom:1px solid rgba(14,20,24,.16);
}
.site-header__inner{
  display:flex;align-items:center;gap:1.25rem;
  min-height:90px;
}
.brand{display:flex;align-items:center;flex:none;text-decoration:none}
.brand img{width:clamp(170px,17vw,215px)}
.site-nav{margin-left:auto;display:flex;align-items:center;gap:1.6rem}
.site-nav a:not(.btn):not(.lang-list a){
  position:relative;
  font-size:.92rem;font-weight:500;color:var(--ink);text-decoration:none;
  padding-block:.35rem;
  transition:transform .2s ease,opacity .2s ease;
}
.site-nav a:not(.btn):not(.lang-list a)::after{
  content:"";position:absolute;left:0;right:100%;bottom:0;height:2px;
  background:var(--ink);border-radius:2px;
  transition:right .28s cubic-bezier(.2,.8,.2,1);
}
.site-nav a:not(.btn):not(.lang-list a):hover{transform:translateY(-1px)}
.site-nav a:not(.btn):not(.lang-list a):hover::after{right:0}
.site-nav a[aria-current="page"]:not(.btn)::after{right:0;background:var(--ink)}
@media (prefers-reduced-motion:reduce){
  .site-nav a:not(.btn):not(.lang-list a){transition:none}
  .site-nav a:not(.btn):not(.lang-list a)::after{transition:none}
  .site-nav a:not(.btn):not(.lang-list a):hover{transform:none}
}
.site-nav a.btn--night{color:var(--soleil)}
.site-nav a.btn--night:hover{color:var(--soleil)}
.lang-menu{position:relative}
.lang{
  display:inline-flex;align-items:center;gap:.45rem;cursor:pointer;
  font-family:var(--f-util);font-size:.72rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink);text-decoration:none;padding:.3rem .6rem .3rem .4rem;
  border:1px solid rgba(14,20,24,.2);border-radius:100px;background:var(--blanc);
}
.lang:hover{border-color:var(--ink)}
.lang svg{width:22px;height:15px;border-radius:2px;display:block;box-shadow:0 0 0 1px rgba(14,20,24,.12)}
.lang__caret{font-size:.6rem;opacity:.6}
.lang-list{
  position:absolute;top:calc(100% + .4rem);right:0;z-index:70;
  list-style:none;margin:0;padding:.35rem;min-width:190px;
  background:var(--blanc);border:1px solid var(--ligne);border-radius:12px;
  box-shadow:0 22px 46px -26px rgba(14,20,24,.7);display:grid;gap:.1rem;
}
.lang-list[hidden]{display:none}
.lang-list a{
  display:flex;align-items:center;gap:.6rem;padding:.5rem .6rem;border-radius:8px;
  font-size:.9rem;color:var(--ink);text-decoration:none;border:0;
}
.lang-list a:hover{background:var(--azur-pale)}
.lang-list a[aria-current="true"]{background:var(--soleil)}
.lang-list svg{width:22px;height:15px;border-radius:2px;flex:none;box-shadow:0 0 0 1px rgba(14,20,24,.12)}
@media (max-width:900px){.lang-list{position:static;box-shadow:none;margin-top:.4rem;width:100%}}
.nav-toggle{display:none;margin-left:auto;background:var(--blanc);border:1px solid rgba(14,20,24,.2);border-radius:100px;padding:.5rem .9rem;font-family:var(--f-body);font-size:.85rem;font-weight:600;color:var(--ink)}

@media (max-width:900px){
  .nav-toggle{display:block}
  .site-nav{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:flex-start;gap:.25rem;
    background:var(--soleil);border-bottom:1px solid rgba(14,20,24,.16);
    padding:1rem 1.25rem 1.5rem;display:none;
  }
  .site-nav.is-open{display:flex}
  .site-nav a{width:100%;padding-block:.6rem}
  .site-nav .btn{margin-top:.5rem}
}

/* --- Héros ---------------------------------------------- */
.hero{position:relative;padding-block:0;background:var(--ink)}
.hero__media{position:absolute;inset:0;overflow:hidden}
.hero__media img{min-height:100%}
.hero__media img{width:100%;height:100%;position:absolute;inset:0;object-fit:cover}
.hero__media::after{
  content:"";position:absolute;inset:0;
  background:
    linear-gradient(100deg,rgba(10,14,17,.86) 0%,rgba(10,14,17,.66) 34%,rgba(10,14,17,.18) 62%,rgba(10,14,17,0) 82%),
    linear-gradient(180deg,rgba(10,14,17,.34) 0%,rgba(10,14,17,.06) 40%,rgba(10,14,17,.6) 100%);
}
.hero__content{
  position:relative;z-index:2;color:var(--blanc);
  min-height:clamp(420px,64vh,620px);
  display:flex;flex-direction:column;justify-content:flex-end;
  padding-block:clamp(2rem,5vw,3.5rem);
}
.hero__content .eyebrow{color:var(--soleil)}
.hero__content .eyebrow::before{background:var(--soleil)}
.hero h1{color:var(--blanc);max-width:15ch;margin-bottom:.35em;text-shadow:0 2px 24px rgba(0,0,0,.35)}
.hero__sub{font-size:clamp(1rem,1.5vw,1.18rem);color:rgba(255,255,255,.9);max-width:50ch;margin-bottom:1.3rem}
.hero__actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}

.trust{
  display:flex;flex-wrap:wrap;gap:.35rem 1.4rem;align-items:center;
  font-family:var(--f-util);font-size:.78rem;letter-spacing:.06em;text-transform:uppercase;
  color:rgba(255,255,255,.85);margin-top:1.25rem;
}
.trust span{display:flex;align-items:center;gap:.45rem}
.trust strong{color:var(--soleil);font-weight:500}

/* --- Entête de page interne ----------------------------- */
.page-head{background:var(--azur-pale);padding-block:clamp(2.75rem,6vw,4.75rem)}
.page-head--tight{padding-block:clamp(1.5rem,3vw,2.25rem)}
.page-head--tight h1{font-size:clamp(1.9rem,3.6vw,2.7rem);margin-bottom:.25em}
.page-head--tight .lead{font-size:1.02rem}
.page-head h1{max-width:17ch;margin-bottom:.4em}
.page-head .lead{margin-bottom:0}

/* --- Bandeau de réservation ----------------------------- */
.booking-bar{
  background:linear-gradient(155deg,#2F343A 0%,#293440 58%,#22323F 100%);
  color:rgba(255,255,255,.88);
  padding-block:clamp(1.9rem,3.5vw,2.75rem);
}
.booking-bar h2{color:var(--soleil)}
.booking-bar__head{
  border-bottom:1px solid rgba(255,218,61,.32);
  padding-bottom:.9rem;
}
.booking-bar p{color:var(--ciel)}
.booking-bar .bf__fields{
  background:var(--blanc);
  box-shadow:0 18px 40px -24px rgba(0,0,0,.85), 0 0 0 1px rgba(191,230,248,.35);
}
.booking-bar .bf__field label{color:var(--azur-dark)}
.booking-bar .bf__value,.booking-bar .bf__field select{background:#F2F9FD;border-color:rgba(46,169,226,.35)}
.booking-bar .bf__value:hover,.booking-bar .bf__field select:hover{border-color:var(--azur)}
.booking-bar .bf__submit{background:var(--soleil);color:var(--ink)}
.booking-bar .bf__submit:hover{background:var(--soleil-deep);color:var(--ink)}
.booking-bar .bf__note{color:var(--ciel)}
.booking-bar .bf__hint{color:var(--soleil)}
.booking-bar .bf__day.is-start,.booking-bar .bf__day.is-end{background:var(--azur-dark);color:var(--blanc)}
.booking-bar .bf__day.is-between{background:var(--ciel)}
.booking-bar .bf__day:hover{background:#E6F6FE}
.booking-bar .bf__nav:hover{background:var(--ciel);border-color:var(--azur)}
.booking-bar__head{display:flex;flex-wrap:wrap;gap:.75rem 2rem;align-items:baseline;margin-bottom:1.25rem}
.booking-bar h2{font-size:clamp(1.35rem,2.2vw,1.75rem);margin:0}
.booking-bar__head p{margin:0;color:var(--ciel);font-size:.95rem}
.booking-widget{
  background:var(--blanc);border-radius:14px;padding:1.1rem;
  box-shadow:0 12px 30px -20px rgba(14,20,24,.55);
  min-height:96px;
  color:var(--ink);font-family:var(--f-body);font-size:1rem;
}

/* Lisibilité du moteur de réservation.
   Le widget arrive avec ses propres styles : ces règles garantissent des
   champs visibles, quelle que soit la feuille de style chargée par Guesty. */
.booking-widget input,
.booking-widget select,
.booking-widget textarea{
  background:var(--blanc);
  color:var(--ink);
  border:1px solid rgba(14,20,24,.28);
  border-radius:10px;
  padding:.7rem .85rem;
  font-family:var(--f-body);font-size:.98rem;line-height:1.3;
  min-height:48px;max-width:100%;
}
.booking-widget input::placeholder,
.booking-widget textarea::placeholder{color:rgba(14,20,24,.5);opacity:1}
.booking-widget input:focus,
.booking-widget select:focus{border-color:var(--azur);outline:2px solid var(--azur);outline-offset:1px}
.booking-widget label{color:var(--ink);font-size:.82rem;font-weight:600}
.booking-widget button,
.booking-widget [type="submit"],
.booking-widget [role="button"]{
  min-height:48px;font-family:var(--f-body);font-weight:600;font-size:.98rem;cursor:pointer;
}
.booking-widget img,.booking-widget svg{max-width:100%}
.booking-fallback{
  font-size:.9rem;color:var(--ink-60);margin:.75rem 0 0;text-align:center;
}

/* --- Carte de réservation dans le héros ----------------- */
.book-card{
  background:rgba(252,248,239,.97);
  border-radius:14px;padding:.95rem 1rem .85rem;
  color:var(--ink);box-shadow:0 22px 50px -26px rgba(0,0,0,.75);
  border:1px solid rgba(255,255,255,.5);
}
.book-card h2{font-size:1.02rem;margin-bottom:0;line-height:1.25}
.book-card__note{font-size:.8rem;color:var(--ink-60);margin:.1rem 0 .7rem}
.book-card .booking-widget{background:transparent;box-shadow:none;padding:0;min-height:0;border-radius:10px}
.book-card .booking-widget>div{max-width:100%}
/* Garde-fou : si le widget Guesty s'affiche en colonne, la carte reste
   compacte. Réglez --book-widget-max en haut du fichier si besoin. */
.book-card .booking-widget{max-height:var(--book-widget-max);overflow:auto}
.book-card .booking-fallback{margin-top:.55rem;font-size:.74rem;line-height:1.4;text-align:left}

.avail{margin:.7rem 0 0;padding-top:.6rem;border-top:1px dashed var(--ligne)}
.avail[hidden]{display:none}
.avail__label{
  font-family:var(--f-util);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-60);display:block;margin-bottom:.45rem;
}
.avail__list{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:.4rem}
.avail__list a{
  display:inline-flex;align-items:baseline;gap:.35rem;
  font-family:var(--f-util);font-size:.78rem;text-decoration:none;color:var(--ink);
  background:var(--soleil);border-radius:100px;padding:.32rem .7rem;
}
.avail__list a:hover{background:var(--soleil-deep)}
.avail__list a span{color:var(--ink-60);font-size:.72rem}
.avail__stamp{font-family:var(--f-util);font-size:.66rem;color:var(--ink-60);margin:.4rem 0 0}

/* --- Échelle des minutes (signature) -------------------- */
.scale{display:grid;gap:.15rem;margin:0;padding:0;list-style:none;max-width:820px}
.scale__row{
  display:grid;grid-template-columns:5.5rem minmax(0,1fr);
  align-items:center;gap:1rem;
  padding:.7rem 0;border-bottom:1px dashed var(--ligne);
}
.scale__min{
  font-family:var(--f-util);font-size:.9rem;color:var(--azur-dark);
  letter-spacing:.02em;white-space:nowrap;
}
.scale__body{display:grid;gap:.35rem}
.scale__place{font-weight:600;font-size:1rem;line-height:1.3}
.scale__note{font-size:.88rem;color:var(--ink-60)}
.scale__bar{height:6px;border-radius:100px;background:var(--azur-pale);position:relative;overflow:hidden}
.scale__bar i{
  position:absolute;inset:0 auto 0 0;display:block;
  width:calc(var(--t) * 5%);
  background:linear-gradient(90deg,var(--azur),var(--soleil-deep));
  border-radius:100px;
  transform-origin:left;
  animation:grow .9s cubic-bezier(.2,.8,.2,1) both;
}
@keyframes grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media (prefers-reduced-motion:reduce){.scale__bar i{animation:none}}
.scale__legend{font-family:var(--f-util);font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);margin-top:1rem}

/* --- Grilles génériques --------------------------------- */
.grid{display:grid;gap:var(--gap)}
.grid--2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.grid--3{grid-template-columns:repeat(auto-fit,minmax(260px,1fr))}
.grid--split{grid-template-columns:1.05fr 1fr;align-items:center}
@media (max-width:860px){.grid--split{grid-template-columns:1fr}}

.card{
  background:var(--blanc);border:1px solid var(--ligne);border-radius:14px;
  padding:1.6rem 1.5rem;
}
.card h3{margin-bottom:.4rem}
.card p{margin:0;color:var(--ink-80);font-size:.98rem}
.card__icon{
  width:42px;height:42px;border-radius:12px;background:var(--azur-pale);
  display:grid;place-items:center;margin-bottom:1rem;color:var(--azur-dark);
}
.card__icon svg{width:22px;height:22px}

/* --- Photos --------------------------------------------- */
figure{margin:0}
.arch img{border-radius:var(--arch)}
.frame img{border-radius:12px;box-shadow:var(--shadow)}
.frame--wide img{aspect-ratio:16/9;object-fit:cover;width:100%}
.caption{
  font-family:var(--f-util);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase;
  color:var(--ink-60);margin-top:.7rem;
}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:end}

.gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:1rem}
.gallery figure{overflow:hidden;border-radius:12px;background:var(--azur-pale)}
.gallery img{width:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s ease}
.gallery figure:hover img{transform:scale(1.04)}
@media (prefers-reduced-motion:reduce){.gallery figure:hover img{transform:none}}
.gallery--tall img{aspect-ratio:3/4}

/* --- Blocs colorés -------------------------------------- */
.band-ink{background:var(--ink);color:rgba(255,255,255,.84)}
.band-ink h2,.band-ink h3{color:var(--blanc)}
.band-ink .eyebrow{color:var(--soleil)}
.band-ink .eyebrow::before{background:var(--soleil)}
.band-ink a{color:var(--soleil)}
/* Les boutons gardent leur propre couleur de texte : sans cette exception,
   un bouton jaune héritait du jaune des liens et devenait illisible. */
.band-ink a.btn--sun,.band-ink a.btn--sun:hover{color:var(--ink)}
.band-ink a.btn--light,.band-ink a.btn--light:hover{color:var(--blanc)}
.band-ink a.btn--night,.band-ink a.btn--night:hover{color:var(--soleil)}
.band-sun{background:var(--soleil)}
.band-azur{background:linear-gradient(180deg,var(--azur-pale) 0%,#F7FCFF 100%)}
.band-ciel{background:var(--ciel)}
.band-white{background:var(--blanc)}

/* --- Notes voyageurs ------------------------------------ */
.scores{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:1.1rem 2.5rem;list-style:none;padding:0;margin:0}
.scores li{display:grid;gap:.35rem}
.scores__head{display:flex;justify-content:space-between;align-items:baseline;font-size:.95rem}
.scores__val{font-family:var(--f-util);color:var(--soleil)}
.band-white .scores__val,.band-azur .scores__val{color:var(--azur-dark)}
.scores__track{height:4px;border-radius:100px;background:rgba(255,255,255,.2)}
.band-white .scores__track,.band-azur .scores__track{background:var(--ligne)}
.scores__track i{display:block;height:100%;border-radius:100px;background:var(--soleil)}
.band-white .scores__track i,.band-azur .scores__track i{background:var(--azur)}

.big-note{
  font-family:var(--f-display);font-size:clamp(3.4rem,8vw,5.5rem);line-height:1;
  font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 60;
}

/* --- Listes d'équipements ------------------------------- */
.amen{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:2rem}
.amen h3{
  font-family:var(--f-util);font-size:.78rem;letter-spacing:.14em;text-transform:uppercase;
  color:var(--azur-dark);font-weight:500;margin-bottom:.9rem;padding-bottom:.6rem;border-bottom:1px solid var(--ligne);
}
.amen ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.amen li{position:relative;padding-left:1.3rem;font-size:.98rem;color:var(--ink-80)}
.amen li::before{
  content:"";position:absolute;left:0;top:.62em;width:6px;height:6px;border-radius:50%;
  background:var(--soleil-deep);box-shadow:0 0 0 1px var(--azur) inset;
}

/* --- Infos pratiques ------------------------------------ */
.facts{list-style:none;padding:0;margin:0;display:grid;gap:0}
.facts li{
  display:grid;grid-template-columns:minmax(150px,.42fr) 1fr;gap:1rem;
  padding:.85rem 0;border-top:1px solid var(--ligne);align-items:baseline;
}
.facts li:last-child{border-bottom:1px solid var(--ligne)}
.facts dt,.facts .k{
  font-family:var(--f-util);font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60);
}
.facts .v{font-size:1rem}

/* --- Carte ---------------------------------------------- */
.map{
  border-radius:14px;overflow:hidden;border:1px solid var(--ligne);
  box-shadow:var(--shadow);background:var(--azur-pale);
}
.map iframe{display:block;width:100%;height:min(64vh,520px);border:0}

/* --- Étapes --------------------------------------------- */
.steps{list-style:none;counter-reset:s;padding:0;margin:0;display:grid;gap:1.5rem;grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.steps li{counter-increment:s;padding-top:1.1rem;border-top:2px solid var(--ink)}
.steps li::before{
  content:counter(s,decimal-leading-zero);
  display:block;font-family:var(--f-util);font-size:.8rem;letter-spacing:.1em;color:var(--azur-dark);margin-bottom:.5rem;
}
.steps h3{font-size:1.15rem;margin-bottom:.35rem}
.steps p{font-size:.95rem;color:var(--ink-80);margin:0}

/* --- FAQ ------------------------------------------------ */
.faq details{border-bottom:1px solid var(--ligne);padding:1.05rem 0}
.faq summary{
  cursor:pointer;font-weight:600;font-size:1.05rem;list-style:none;
  display:flex;justify-content:space-between;gap:1rem;align-items:center;
}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--f-util);color:var(--azur-dark);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq p{margin:.85rem 0 0;color:var(--ink-80);font-size:.98rem}

/* --- Bandeau CTA ---------------------------------------- */
.cta-band{text-align:center}
.cta-band h2{max-width:20ch;margin-inline:auto}
.cta-band p{margin-inline:auto}
.cta-band .hero__actions{justify-content:center}

/* --- Pied de page --------------------------------------- */
.site-footer{background:var(--ink);color:rgba(255,255,255,.72);padding-block:clamp(3rem,6vw,4.5rem) 2rem;font-size:.95rem}
.site-footer img.mark{width:170px;margin-bottom:1.25rem}
.site-footer a{color:rgba(255,255,255,.86);text-decoration:none}
.site-footer a:hover{color:var(--soleil)}
.site-footer h4{
  font-family:var(--f-util);font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);font-weight:400;margin-bottom:.9rem;
}
.site-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:.5rem}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1.1fr;gap:2.5rem}
@media (max-width:860px){.footer-grid{grid-template-columns:1fr 1fr}}
@media (max-width:520px){.footer-grid{grid-template-columns:1fr}}
.footer-legal{
  margin-top:3rem;padding-top:1.5rem;border-top:1px solid rgba(255,255,255,.14);
  display:flex;flex-wrap:wrap;gap:.75rem 2rem;justify-content:space-between;
  font-family:var(--f-util);font-size:.72rem;letter-spacing:.06em;color:rgba(255,255,255,.5);
}

/* --- Animations d'apparition ---------------------------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .7s ease,transform .7s cubic-bezier(.2,.8,.2,1)}
.reveal.is-in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

.skip{
  position:absolute;left:-9999px;background:var(--ink);color:#fff;padding:.75rem 1.25rem;border-radius:0 0 8px 0;z-index:100;
}
.skip:focus{left:0;top:0}

.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* --- Variantes sur fond encre --------------------------- */
.band-ink .facts li{border-color:rgba(255,255,255,.18)}
.band-ink .facts .k{color:rgba(255,255,255,.55)}
.band-ink .facts .v{color:rgba(255,255,255,.9)}
.band-ink .steps li{border-top-color:var(--soleil)}
.band-ink .steps li::before{color:var(--soleil)}
.band-ink .steps p{color:rgba(255,255,255,.78)}
.band-ink .card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.band-ink .card p{color:rgba(255,255,255,.78)}
.band-ink .card__icon{background:rgba(255,255,255,.1);color:var(--soleil)}
.band-ink .amen li{color:rgba(255,255,255,.8)}
.band-ink .amen h3{color:var(--soleil);border-bottom-color:rgba(255,255,255,.18)}
.band-ink .caption{color:rgba(255,255,255,.6)}


/* --- Notes croisées Airbnb et Booking ------------------- */
.ratings{display:flex;flex-wrap:wrap;gap:1rem 2.75rem;margin:0 0 1.5rem}
.ratings__item a{text-decoration:none;color:inherit;display:grid;align-items:baseline}
.ratings__score{
  font-family:var(--f-display);font-size:clamp(2.6rem,5vw,3.6rem);line-height:1;
  font-variation-settings:"SOFT" 60,"WONK" 1,"opsz" 60;
}
.ratings__max{font-family:var(--f-util);font-size:.8rem;color:inherit;opacity:.6}
.ratings__src{
  font-family:var(--f-util);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  opacity:.65;margin-top:.35rem;
}
.ratings__item a:hover .ratings__score{color:var(--soleil)}
.band-white .ratings__item a:hover .ratings__score,
.band-azur .ratings__item a:hover .ratings__score{color:var(--azur-dark)}


/* =========================================================
   Bloc de réservation Haliviera
   ========================================================= */
.bf{position:relative}
.bf__fields{
  display:grid;grid-template-columns:1fr 1fr .9fr auto;gap:.6rem;align-items:end;
  background:var(--blanc);border-radius:14px;padding:.85rem;
  box-shadow:0 14px 34px -22px rgba(14,20,24,.6);
}
@media (max-width:820px){.bf__fields{grid-template-columns:1fr 1fr}.bf__submit{grid-column:1 / -1}}
@media (max-width:460px){.bf__fields{grid-template-columns:1fr}}

.bf__field{display:grid;gap:.25rem;min-width:0}
.bf__field label{
  font-family:var(--f-util);font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-60);padding-left:.15rem;
}
.bf__value,.bf__field select{
  width:100%;min-height:50px;text-align:left;
  font-family:var(--f-body);font-size:1rem;font-weight:500;color:var(--ink-60);
  background:var(--sable);border:1px solid var(--ligne);border-radius:10px;
  padding:.6rem .85rem;cursor:pointer;
  appearance:none;-webkit-appearance:none;
}
.bf__field select{
  background-image:linear-gradient(45deg,transparent 50%,var(--ink) 50%),linear-gradient(135deg,var(--ink) 50%,transparent 50%);
  background-position:calc(100% - 18px) 22px,calc(100% - 13px) 22px;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;color:var(--ink);
}
.bf__value.is-set{color:var(--ink);font-weight:600}
.bf__value:hover,.bf__field select:hover{border-color:var(--ink)}
.bf__submit{min-height:50px;justify-content:center;white-space:nowrap}

.bf__note{
  margin:.7rem 0 0;font-family:var(--f-util);font-size:.78rem;color:var(--ink-60);min-height:1.2em;
}
.bf__note.is-ok{color:var(--ink)}
.bf__note.is-hint{color:var(--azur-dark)}
.booking-bar .bf__note.is-hint{color:var(--soleil)}
.bf__note.is-warn{color:#B23A17}
.band-ink .bf__note,.hero .bf__note{color:rgba(255,255,255,.75)}
/* Sur le bandeau sombre : rappel des dates en blanc, indice en jaune. */
.booking-bar .bf__note{color:var(--ciel)}
.booking-bar .bf__note.is-ok{color:var(--blanc)}
.booking-bar .bf__note.is-hint{color:var(--soleil)}

.bf__calendar{
  position:absolute;z-index:40;top:calc(100% + .5rem);left:0;right:0;max-width:740px;
  background:var(--blanc);border-radius:14px;padding:1rem 1.1rem 1.2rem;
  box-shadow:0 30px 70px -30px rgba(14,20,24,.7);border:1px solid var(--ligne);
  color:var(--ink);
}
.bf__calendar[hidden]{display:none}
.bf__calhead{display:flex;justify-content:space-between;margin-bottom:.25rem}
.bf__nav{
  width:38px;height:38px;border-radius:50%;border:1px solid var(--ligne);background:var(--blanc);
  color:var(--ink);font-size:1rem;cursor:pointer;line-height:1;
}
.bf__nav:hover{background:var(--ciel);border-color:var(--azur)}
.bf__months{display:grid;grid-template-columns:1fr;gap:1.5rem}
@media (min-width:700px){.bf__months{grid-template-columns:1fr 1fr}}

.bf__month{width:100%;border-collapse:collapse;table-layout:fixed}
.bf__month caption{
  font-family:var(--f-display);font-size:1.02rem;font-weight:600;text-align:left;
  padding:0 0 .55rem;text-transform:capitalize;
}
.bf__month th{
  font-family:var(--f-util);font-size:.66rem;font-weight:400;color:var(--ink-60);
  padding-bottom:.35rem;text-transform:uppercase;
}
.bf__month th abbr{text-decoration:none;border:0}
.bf__month td{padding:1px;text-align:center}
.bf__day{
  width:100%;max-width:46px;margin:0 auto;aspect-ratio:1;min-height:34px;border:0;border-radius:9px;
  background:var(--sable);color:var(--ink);
  font-family:var(--f-util);font-size:.82rem;cursor:pointer;
}
.bf__day:hover{background:var(--ciel)}
.bf__day.is-off{background:transparent;color:rgba(14,20,24,.25);cursor:not-allowed}
.bf__day.is-busy{
  background:transparent;color:rgba(14,20,24,.28);cursor:not-allowed;
  text-decoration:line-through;text-decoration-color:rgba(14,20,24,.4);
}
.bf__day.is-between{background:var(--ciel);border-radius:0}
.bf__day.is-start,.bf__day.is-end{background:var(--ink);color:var(--blanc);font-weight:500}
.bf__legend{
  display:flex;align-items:center;gap:.45rem;margin:1rem 0 0;
  font-family:var(--f-util);font-size:.7rem;color:var(--ink-60);
}
.bf__key{width:16px;height:16px;border-radius:5px;display:inline-block}
.bf__key--busy{background:var(--sable);position:relative}
.bf__key--busy::after{
  content:"";position:absolute;left:2px;right:2px;top:7px;height:1px;background:rgba(14,20,24,.45);
}
.bf__limit{margin-left:auto;padding-left:1rem;color:var(--ink-60)}
@media (max-width:520px){.bf__limit{margin-left:0;padding-left:0;width:100%}}
.bf__legend{flex-wrap:wrap}
.bf__nav[disabled]{opacity:.35;cursor:not-allowed}
.bf__hint{color:var(--azur-dark)}
.band-ink .bf__hint,.hero .bf__hint{color:var(--soleil)}

/* --- Cadre de paiement Guesty --------------------------- */
.guesty-frame{
  border-radius:16px;overflow:hidden;border:1px solid var(--ligne);
  background:var(--blanc);box-shadow:var(--shadow);
}
.guesty-frame iframe{display:block;width:100%;height:min(1500px,180vh);min-height:900px;border:0}
.guesty-note{font-size:.9rem;color:var(--ink-60);margin:.8rem 0 0}


/* =========================================================
   Galerie en grand
   ========================================================= */
.gallery figure{cursor:zoom-in}
.lightbox{
  position:fixed;inset:0;z-index:200;display:grid;place-items:center;
  background:rgba(10,14,17,.94);padding:clamp(1rem,4vw,3rem);
}
.lightbox[hidden]{display:none}
.lightbox img{
  max-width:100%;max-height:82vh;border-radius:10px;
  box-shadow:0 40px 90px -40px rgba(0,0,0,.9);
}
.lightbox__caption{
  color:rgba(255,255,255,.8);font-family:var(--f-util);font-size:.8rem;
  text-align:center;margin-top:1rem;max-width:60ch;
}
.lightbox__count{color:rgba(255,255,255,.5);display:block;margin-top:.4rem;font-size:.72rem}
.lightbox__btn{
  position:absolute;width:52px;height:52px;border-radius:50%;cursor:pointer;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.3);
  color:#fff;font-size:1.3rem;line-height:1;display:grid;place-items:center;
}
.lightbox__btn:hover{background:var(--soleil);color:var(--ink);border-color:var(--soleil)}
.lightbox__close{top:1.2rem;right:1.2rem}
.lightbox__prev{left:1.2rem;top:50%;transform:translateY(-50%)}
.lightbox__next{right:1.2rem;top:50%;transform:translateY(-50%)}
@media (max-width:600px){
  .lightbox__prev{left:.6rem}.lightbox__next{right:.6rem}
  .lightbox__btn{width:44px;height:44px}
}

/* =========================================================
   Formulaire de contact
   ========================================================= */
.cf{display:grid;gap:.9rem;max-width:640px}
.cf__row{display:grid;gap:.9rem;grid-template-columns:1fr 1fr}
@media (max-width:600px){.cf__row{grid-template-columns:1fr}}
.cf label{
  font-family:var(--f-util);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-60);display:block;margin-bottom:.3rem;
}
.cf input,.cf textarea{
  width:100%;background:var(--blanc);color:var(--ink);
  border:1px solid var(--ligne);border-radius:10px;padding:.75rem .9rem;
  font-family:var(--f-body);font-size:1rem;min-height:50px;
}
.cf textarea{min-height:150px;resize:vertical}
.cf input:focus,.cf textarea:focus{border-color:var(--azur);outline:2px solid var(--azur);outline-offset:1px}
.cf__hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.cf__foot{display:flex;flex-wrap:wrap;gap:1rem;align-items:center}
.cf__legal{font-size:.82rem;color:var(--ink-60);margin:0;max-width:42ch}
.cf__status{
  font-family:var(--f-util);font-size:.85rem;margin:0;min-height:1.2em;
}
.cf__status.is-ok{color:#1B7A3E}
.cf__status.is-warn{color:#B23A17}

/* --- Pages légales -------------------------------------- */
.legal-block{padding:0 0 1.6rem;border-bottom:1px solid var(--ligne);margin-bottom:1.6rem}
.legal-block:last-child{border-bottom:0}
.legal-block h2{font-size:clamp(1.15rem,2vw,1.45rem);margin-bottom:.6rem}
.legal-block p{font-size:1rem;color:var(--ink-80)}
.legal-block p:last-child{margin-bottom:0}
.legal{counter-reset:none}


/* =========================================================
   Espace client, page d'accès
   ========================================================= */
.client-header{
  background:var(--ink);
  border-bottom:3px solid var(--soleil);
  position:sticky;top:0;z-index:60;
}
.client-header__inner{display:flex;align-items:center;gap:.75rem 1rem;min-height:76px;flex-wrap:wrap;padding-block:.6rem}
.client-header img{width:clamp(132px,14vw,170px)}
.client-badge{
  font-family:var(--f-util);font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--ink);background:var(--soleil);border-radius:100px;padding:.32rem .8rem;white-space:nowrap;
}
.client-langs{margin-left:auto;display:flex;flex-wrap:wrap;gap:.3rem}
.client-langs a{
  font-family:var(--f-util);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  padding:.3rem .55rem;border-radius:100px;background:transparent;color:rgba(255,255,255,.78);
  text-decoration:none;border:1px solid rgba(255,255,255,.28);
}
.client-langs a:hover{border-color:var(--soleil);color:var(--soleil)}
.client-langs a[aria-current="true"]{background:var(--soleil);color:var(--ink);border-color:var(--soleil)}
@media (max-width:520px){
  .client-header__inner{min-height:0}
  .client-langs{margin-left:0;width:100%}
}

.route-table{width:100%;border-collapse:collapse;margin:0 0 1rem;font-size:.98rem}
.route-table th,.route-table td{text-align:left;padding:.7rem .8rem;border-bottom:1px solid var(--ligne)}
.route-table th{
  font-family:var(--f-util);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-60);font-weight:400;
}
.route-table td:first-child{font-weight:600}
.route-table tr:hover td{background:var(--azur-pale)}

.map--tall iframe{height:min(70vh,560px)}
.tip{
  background:var(--soleil);border-radius:12px;padding:1rem 1.2rem;margin:1.5rem 0;
  font-size:.96rem;
}
.tip > strong:first-child{display:block;font-family:var(--f-util);font-size:.7rem;letter-spacing:.12em;
  text-transform:uppercase;margin-bottom:.35rem}
.applinks{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;padding:0;margin:.8rem 0 0}
.applinks a{
  display:inline-block;padding:.45rem .9rem;border-radius:100px;border:1px solid var(--ligne);
  text-decoration:none;color:var(--ink);font-size:.9rem;background:var(--blanc);
}
.applinks a:hover{border-color:var(--ink)}

/* --- Sélecteur d'arrivée -------------------------------- */
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:.9rem;margin:1.2rem 0 2rem}
.choice{
  display:grid;gap:.35rem;padding:1.1rem 1.2rem;text-decoration:none;color:var(--ink);
  background:var(--blanc);border:1px solid var(--ligne);border-radius:14px;
  transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;
}
.choice:hover{transform:translateY(-2px);border-color:var(--ink);box-shadow:0 16px 32px -22px rgba(14,20,24,.7);color:var(--ink)}
.choice__icon{font-size:1.6rem;line-height:1}
.choice__label{font-weight:600;font-size:1.02rem;line-height:1.3}
.choice__go{
  font-family:var(--f-util);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--azur-dark);
}
.choice:hover .choice__go{color:var(--ink)}
@media (prefers-reduced-motion:reduce){.choice:hover{transform:none}}

.route-table td a{color:var(--ink);text-decoration:none;border-bottom:2px solid var(--soleil)}
.route-table td a:hover{border-bottom-color:var(--ink)}
.tip--blue{background:var(--ciel)}
:target{scroll-margin-top:110px}
.linemap{margin:1.5rem 0;background:var(--sable);border:1px solid var(--ligne);border-radius:14px;padding:.6rem}
.linemap img{width:100%;height:auto;display:block}
.linemap figcaption{margin-top:.5rem;padding:0 .4rem .3rem}

/* --- Espace client, page d'entrée ----------------------- */
.recap{list-style:none;counter-reset:r;padding:0;margin:0 0 1.6rem;display:grid;gap:.5rem}
.recap li{
  counter-increment:r;display:grid;grid-template-columns:2.2rem 1fr;gap:.9rem;align-items:baseline;
  padding:.75rem .9rem;background:var(--blanc);border:1px solid var(--ligne);border-radius:12px;
}
.recap li::before{
  content:counter(r);font-family:var(--f-util);font-size:.85rem;color:var(--azur-dark);
  background:var(--azur-pale);border-radius:50%;width:2.2rem;height:2.2rem;display:grid;place-items:center;
}
.recap li span{display:block;font-family:var(--f-util);font-size:.7rem;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-60)}
.recap li strong{display:block;font-size:1.02rem}
.recap li a span,.recap li a strong{grid-column:1;justify-self:start;text-align:left}

.callout{background:var(--azur-pale);border-radius:14px;padding:1.1rem 1.3rem;margin:1.5rem 0}
.callout p{margin:0 0 .8rem}
.callout p:last-child{margin:0}

.video{margin:1.5rem 0;border-radius:14px;overflow:hidden;border:1px solid var(--ligne);background:#000}
.video iframe{display:block;width:100%;aspect-ratio:16/9;border:0}
.shot{margin:1.5rem 0}
.shot img{width:100%;height:auto;border-radius:14px;box-shadow:var(--shadow)}
.shot--tall img{max-width:360px;display:block}
.recap li{padding:0}
.recap li::before{margin:.75rem 0 .75rem .9rem}
.recap li a{
  grid-column:2;display:grid;gap:.1rem;padding:.75rem .9rem .75rem 0;
  text-decoration:none;color:var(--ink);
}
.recap li:hover{border-color:var(--ink)}
.recap li.recap__map{background:var(--azur-dark);border-color:var(--azur-dark)}
.recap li.recap__map::before{content:"↗";background:rgba(255,255,255,.18);color:#fff}
.recap li.recap__map a{color:#fff}
.recap li.recap__map span{color:rgba(255,255,255,.72)}
.recap li.recap__map:hover{background:var(--ink);border-color:var(--ink)}


/* --- Rythme vertical de l'espace voyageurs -------------- */
.applinks{margin:.9rem 0 2rem}
.route-table{margin-bottom:.6rem}
.route-table + .caption{margin-bottom:2.2rem}
.legal-block p + .btn,.wrap--narrow p + p > .btn{margin-top:.5rem}
.wrap--narrow h3,.wrap--narrow h4{margin-top:2.4rem}
.wrap--narrow h2{margin-top:0}
.wrap--narrow section h3:first-of-type{margin-top:1.6rem}
.tip{margin:1.6rem 0 2rem}
.map,.linemap,.video,.shot{margin-block:1.6rem 2.2rem}
.map + .caption{margin:-1.4rem 0 2.2rem}
.wrap--narrow p > .btn{margin:.4rem 0 1.4rem}
.choice--map{background:var(--azur-dark);border-color:var(--azur-dark);color:#fff}
.choice--map .choice__label{color:#fff}
.choice--map .choice__go{color:rgba(255,255,255,.72)}
.choice--map:hover{background:var(--ink);border-color:var(--ink);color:#fff}
.choice--map:hover .choice__go{color:var(--soleil)}

/* --- Lisibilité sur téléphone --------------------------- */
@media (max-width:560px){
  .route-table{font-size:.9rem}
  .route-table th,.route-table td{padding:.6rem .45rem}
  .route-table th:nth-child(2),.route-table td:nth-child(2){white-space:nowrap}
  .recap li{grid-template-columns:2rem 1fr}
  .recap li::before{margin-left:.6rem;width:2rem;height:2rem;font-size:.78rem}
  .shot--tall img{max-width:100%}
  .map iframe{height:min(52vh,380px)}
  .map--tall iframe{height:min(58vh,420px)}
  .linemap{overflow-x:auto}
  .linemap img{min-width:620px}
  .client-header img{width:130px}
}

@media (max-width:560px){
  .caption,.scale__legend,.bf__note,.avail__stamp,.cf label,.bf__field label,
  .recap li a span,.choice__go,.client-badge,.client-langs a{font-size:.76rem}
  .eyebrow{font-size:.78rem}
  .amen h3,.facts .k{font-size:.8rem}
  .footer-legal{font-size:.76rem}
}

@media (max-width:560px){
  .route-table th{font-size:.76rem}
  .tip strong{font-size:.78rem}
  .tip strong + strong,.tip p strong{font-size:inherit}
}


/* --- Bouton d'en-tête de l'espace voyageurs ------------- */
.head-row{
  display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
  gap:1rem 1.5rem;margin-bottom:.6rem;
}
.head-row h1{margin:0;flex:1 1 320px}
.btn--map{
  background:var(--azur-dark);color:#fff;flex:none;
  box-shadow:0 12px 26px -18px rgba(11,110,158,.9);
}
.btn--map:hover{background:var(--ink);color:var(--soleil)}
@media (max-width:640px){.head-row .btn--map{width:100%;justify-content:center}}

/* --- Accueil de l'espace voyageurs ---------------------- */
.stay{
  list-style:none;padding:0;margin:0 0 2.4rem;display:grid;gap:.6rem;
  grid-template-columns:repeat(auto-fit,minmax(190px,1fr));
}
.stay[hidden]{display:none}
.stay li{background:var(--azur-pale);border-radius:12px;padding:.85rem 1rem;display:grid;gap:.2rem}
.stay span{font-family:var(--f-util);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--azur-dark)}
.stay strong{font-size:1.02rem;line-height:1.3}

.guest-cards{display:grid;gap:1rem;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));margin-top:1.2rem}
.guest-card{
  background:var(--blanc);border:1px solid var(--ligne);border-radius:16px;padding:1.4rem 1.5rem;
  display:grid;align-content:start;gap:.5rem;
}
.guest-card__icon{font-size:1.7rem;line-height:1}
.guest-card h3{margin:0;font-size:1.2rem}
.guest-card p{margin:0;color:var(--ink-80);font-size:.98rem}
.guest-card .btn{justify-self:start;margin-top:.7rem}
.guest-card__lock{
  display:none;font-family:var(--f-util);font-size:.76rem;color:var(--ink-60);margin:0;
}
.guest-card.is-locked{
  background:#F1F2F4;border-color:#DDE0E4;border-style:dashed;
}
.guest-card.is-locked h3{color:#6B7480}
.guest-card.is-locked p{color:#8A929B}
.guest-card.is-locked .guest-card__icon{filter:grayscale(1);opacity:.45}
.guest-card.is-locked .guest-card__step{color:#9AA2AA}
.guest-card.is-locked .guest-card__when{background:#E3E6E9;color:#6B7480}
.guest-card.is-locked .guest-card__lock{color:#6B7480}
.guest-card.is-locked .btn{display:none}
.guest-card.is-locked .guest-card__lock{display:block;margin-top:.7rem}

/* --- Présentation de l'hôte ----------------------------- */
.host{
  display:grid;grid-template-columns:minmax(0,320px) 1fr;gap:1.6rem;align-items:center;
  background:var(--blanc);border:1px solid var(--ligne);border-radius:18px;
  padding:1.2rem;margin:0 0 2.6rem;
}
.host__photo{margin:0}
.host__photo img{width:100%;height:100%;max-height:260px;object-fit:cover;border-radius:12px}
.host__text h2{font-size:clamp(1.4rem,2.4vw,1.9rem);margin-bottom:.5rem}
.host__text p{margin:0 0 .8rem}
.host__text p:last-child{margin:0}
@media (max-width:720px){.host{grid-template-columns:1fr;padding:1rem}}

/* --- Invitation à laisser un avis ----------------------- */
.review{
  background:var(--ink);color:rgba(255,255,255,.86);
  border-radius:18px;padding:1.6rem 1.7rem;margin:0 0 2.4rem;
}
.review[hidden]{display:none}
.review h2{color:var(--blanc);margin:.2rem 0 .6rem;font-size:clamp(1.35rem,2.4vw,1.8rem)}
.review .eyebrow{color:var(--soleil)}
.review .eyebrow::before{background:var(--soleil)}
.review p{margin:0 0 1rem;max-width:62ch}
.review p:last-child{margin:0}

/* --- Serrure de l'espace voyageurs ---------------------- */
.gate{display:grid;place-items:center;padding:clamp(2rem,7vw,5rem) 1.25rem}
.gate[hidden]{display:none}
.gate__box{
  width:min(100%,440px);background:var(--blanc);border:1px solid var(--ligne);
  border-radius:18px;padding:1.8rem 1.7rem;box-shadow:0 26px 60px -34px rgba(14,20,24,.6);
}
.gate__box h1{font-size:clamp(1.4rem,3vw,1.8rem);margin-bottom:.4rem}
.gate__box p{color:var(--ink-80);font-size:.96rem}
.gate form{display:grid;gap:.9rem;margin-top:1.3rem}
.gate label{
  font-family:var(--f-util);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-60);display:block;margin-bottom:.3rem;
}
.gate input{
  width:100%;background:var(--sable);border:1px solid var(--ligne);border-radius:10px;
  padding:.75rem .9rem;font-family:var(--f-body);font-size:1rem;min-height:50px;color:var(--ink);
}
.gate input:focus{border-color:var(--azur);outline:2px solid var(--azur);outline-offset:1px}
.gate .btn{justify-self:stretch;justify-content:center}
.gate__status{font-family:var(--f-util);font-size:.82rem;margin:0;min-height:1.2em;color:var(--ink-60)}
.gate__status.is-warn{color:#B23A17}
.gate__help{font-size:.86rem;color:var(--ink-60);margin:.9rem 0 0}
[data-guarded][hidden]{display:none}
.signout{
  font-family:var(--f-util);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;
  color:rgba(255,255,255,.6);text-decoration:none;border:1px solid rgba(255,255,255,.24);
  border-radius:100px;padding:.3rem .7rem;
}
.signout:hover{color:var(--soleil);border-color:var(--soleil)}

/* --- Étapes numérotées de l'espace ---------------------- */
.guest-cards{counter-reset:gc}
.guest-card{position:relative;counter-increment:gc}
.guest-card__step{
  display:flex;align-items:center;gap:.6rem;
  font-family:var(--f-util);font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--gris-pas,#6B7480);margin-bottom:.2rem;
}
.guest-card__step::after{
  content:counter(gc);
  font-family:var(--f-display);font-size:2rem;font-weight:700;line-height:.9;
  color:#AAB2BA;letter-spacing:0;
}
.guest-card.is-locked .guest-card__step::after{color:#C8CED4}
.guest-card__when{
  font-family:var(--f-util);font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;
  background:var(--azur-pale);color:var(--azur-dark);border-radius:100px;padding:.2rem .6rem;
  justify-self:start;
}
.guest-card.is-locked .guest-card__when{background:rgba(14,20,24,.07);color:var(--ink-60)}
.guest-card[hidden]{display:none}

/* --- Bloc hôte compact ---------------------------------- */
.head-split{display:grid;grid-template-columns:1fr minmax(240px,320px);gap:1.6rem 2rem;align-items:center}
@media (max-width:760px){.head-split{grid-template-columns:1fr}}
.host-mini{
  display:grid;grid-template-columns:76px 1fr;gap:.9rem;align-items:center;
  background:var(--blanc);border:1px solid var(--ligne);border-radius:14px;padding:.85rem 1rem;
}
.host-mini img{width:76px;height:76px;border-radius:50%;object-fit:cover;background:var(--ciel)}
.host-mini__ph{
  width:76px;height:76px;border-radius:50%;background:var(--ciel);color:var(--azur-dark);
  display:grid;place-items:center;font-family:var(--f-display);font-size:1.7rem;font-weight:700;
}
.host-mini h2{font-size:1.02rem;margin:0 0 .2rem}
.host-mini p{margin:0;font-size:.85rem;color:var(--ink-80);line-height:1.45}
.host-mini a{font-size:.82rem;color:var(--azur-dark)}

/* --- Recommandations ------------------------------------ */
.reco{display:grid;gap:.5rem;list-style:none;padding:0;margin:0 0 1rem}
.reco li{
  display:grid;grid-template-columns:1fr auto;gap:.6rem 1rem;align-items:start;
  background:var(--blanc);border:1px solid var(--ligne);border-radius:12px;padding:.8rem 1rem;
}
.reco b{display:block;font-size:1rem;font-weight:600}
.reco span{display:block;font-size:.92rem;color:var(--ink-80)}
.reco em{display:block;font-family:var(--f-util);font-size:.76rem;color:var(--ink-60);font-style:normal;margin-top:.2rem}
.reco .pin{
  flex:none;align-self:center;font-size:.8rem;text-decoration:none;white-space:nowrap;
  background:var(--azur-pale);color:var(--azur-dark);border-radius:100px;padding:.35rem .75rem;
}
.reco .pin:hover{background:var(--azur-dark);color:#fff}
@media (max-width:560px){.reco li{grid-template-columns:1fr}.reco .pin{justify-self:start}}
.section-icon{font-size:1.5rem;line-height:1;display:block;margin-bottom:.3rem}

/* --- Fiche d'informations pratiques --------------------- */
.info-card{
  background:var(--blanc);border:1px solid var(--ligne);border-radius:16px;
  padding:1.3rem 1.4rem;margin:0 0 1rem;
}
.info-card h3{margin:0 0 .6rem;font-size:1.15rem}
.info-card p{margin:0 0 .6rem;color:var(--ink-80)}
.info-card p:last-child{margin:0}
.copyline{
  display:flex;flex-wrap:wrap;gap:.5rem;align-items:center;
  background:var(--sable);border:1px dashed var(--ligne);border-radius:10px;padding:.6rem .8rem;margin:.5rem 0;
}
.copyline b{font-family:var(--f-util);font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-60)}
.copyline code{font-family:var(--f-util);font-size:1rem;color:var(--ink)}
.warn-card{background:var(--soleil);border:0}


/* --- Repère des dossiers d'essai ------------------------ */
.demo-flag{
  position:fixed;left:.75rem;bottom:.75rem;z-index:120;margin:0;
  background:var(--ink);color:var(--soleil);border-radius:100px;
  padding:.35rem .8rem;font-family:var(--f-util);font-size:.7rem;letter-spacing:.06em;
  box-shadow:0 10px 24px -14px rgba(0,0,0,.8);pointer-events:none;
}

.guest-card{padding-top:1.1rem}
.guest-card h3{margin-top:.1rem}


/* --- Images agrandissables ------------------------------ */
figure.zoomable{cursor:zoom-in;position:relative}
figure.zoomable img{transition:filter .2s ease}
figure.zoomable:hover img{filter:brightness(1.03)}
figure.zoomable::after{
  content:"⤢";position:absolute;top:.6rem;right:.6rem;
  width:2rem;height:2rem;display:grid;place-items:center;border-radius:50%;
  background:rgba(14,20,24,.72);color:#fff;font-size:.9rem;line-height:1;
}
figure.zoomable figcaption{position:relative}
.lightbox img{max-height:88vh}

/* --- Lien vers la messagerie de la plateforme ----------- */
.inbox-link{
  display:inline-flex;align-items:center;gap:.35rem;
  color:var(--azur-dark);text-decoration:none;font-weight:600;
  border-bottom:2px solid var(--soleil);
}
.inbox-link:hover{color:var(--ink);border-bottom-color:var(--ink)}
.stay li:has(.inbox-link){background:var(--soleil)}
.stay li:has(.inbox-link) span{color:rgba(14,20,24,.62)}
.stay li:has(.inbox-link) .inbox-link{color:var(--ink);border-bottom-color:rgba(14,20,24,.35)}
.stay li:has(.inbox-link) .inbox-link:hover{border-bottom-color:var(--ink)}

/* --- Sélecteur de langue sur le bandeau sombre ---------- */
.client-header .lang-menu{margin-left:auto}
.client-header .lang{
  background:transparent;color:#fff;border-color:rgba(255,255,255,.3);
}
.client-header .lang:hover{border-color:var(--soleil);color:var(--soleil)}
.client-header .lang svg{box-shadow:0 0 0 1px rgba(255,255,255,.25)}
.client-header .lang-list{background:var(--blanc);border-color:rgba(255,255,255,.2)}
@media (max-width:900px){
  .client-header .lang-list{position:absolute;width:auto;min-width:190px;margin-top:.4rem}
}
.pins{display:flex;flex-wrap:wrap;gap:.35rem;align-self:center}
.pin--site{background:var(--soleil);color:var(--ink)}
.pin--site:hover{background:var(--ink);color:var(--soleil)}

.host-mini__btn{margin-top:.5rem;font-size:.85rem;padding:.5rem 1rem}

/* --- Bandeau d'identification du voyageur --------------- */
.signout-home{font-size:.82rem;padding:.5rem 1rem;white-space:nowrap}
.client-badge{text-decoration:none}
a.client-badge:hover{background:var(--soleil-deep)}
.guestbar{background:#1B242C;border-top:1px solid rgba(255,255,255,.1)}
.guestbar[hidden]{display:none}
.guestbar__inner{
  display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1.2rem;
  padding-block:.55rem;
}
.guestbar__name{color:var(--soleil);font-weight:600;font-size:1rem}
.guestbar__meta{
  font-family:var(--f-util);font-size:.76rem;letter-spacing:.04em;
  color:rgba(255,255,255,.72);
}
.guestbar__home{
  margin-left:auto;font-family:var(--f-util);font-size:.72rem;letter-spacing:.08em;
  text-transform:uppercase;color:rgba(255,255,255,.8);text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.35);
}
.guestbar__home:hover{color:var(--soleil);border-bottom-color:var(--soleil)}
@media (max-width:640px){
  .guestbar__home{margin-left:0}
  .signout-home{font-size:.76rem;padding:.45rem .8rem}
}

/* --- Réglage des horaires ------------------------------- */
.times{
  background:var(--blanc);border:1px solid var(--ligne);border-radius:16px;
  padding:1.2rem 1.3rem;margin:0 0 2rem;
}
.times h2{font-size:1.15rem;margin:0 0 .3rem}
.times > p{color:var(--ink-80);font-size:.95rem;margin:0 0 1rem}
.times__row{display:grid;gap:.9rem;grid-template-columns:1fr 1fr auto;align-items:end}
@media (max-width:640px){.times__row{grid-template-columns:1fr}}
.times label{
  font-family:var(--f-util);font-size:.68rem;letter-spacing:.12em;text-transform:uppercase;
  color:var(--ink-60);display:block;margin-bottom:.3rem;
}
.times select{
  width:100%;background:var(--sable);border:1px solid var(--ligne);border-radius:10px;
  padding:.65rem .8rem;font-family:var(--f-body);font-size:1rem;min-height:48px;color:var(--ink);
}
.times select:focus{border-color:var(--azur);outline:2px solid var(--azur);outline-offset:1px}
.times__status{font-family:var(--f-util);font-size:.82rem;margin:.9rem 0 0;min-height:1.2em;color:var(--ink-60)}
.times__status.is-ok{color:#1B7A3E}
.times__status.is-warn{color:#B23A17}
.stay li small{display:block;font-family:var(--f-util);font-size:.72rem;color:var(--ink-60);margin-top:.15rem}

/* --- Encart d'offre ------------------------------------- */
.callout--offer{position:relative;background:var(--soleil);padding-top:1.7rem;margin-top:1.6rem}
.offer-bubble{
  position:absolute;top:-.85rem;left:1.2rem;
  background:var(--ink);color:var(--soleil);border-radius:100px;
  font-family:var(--f-util);font-size:.7rem;letter-spacing:.16em;
  padding:.35rem .95rem;box-shadow:0 10px 22px -14px rgba(0,0,0,.8);
}
.callout--offer p{color:var(--ink)}
.callout--offer p strong{display:block;font-size:1.05rem;margin-bottom:.2rem}

/* --- Confirmation des horaires en vert ------------------ */
.times__status.is-ok{
  background:#1B7A3E;color:#FFFFFF;border-radius:8px;
  padding:.5rem .85rem;display:inline-block;
}

/* --- Bouton de l'encart hôte, écriture jaune ------------ */
.host-mini .host-mini__btn,.host-mini .host-mini__btn:hover{color:var(--soleil)}

/* --- Plateforme avant le lien de messagerie ------------- */
.stay li [data-portal-name]{display:block;font-size:1.02rem;line-height:1.25}
.stay li [data-portal-name]:empty{display:none}
.portal-link{display:block;margin-top:.15rem;font-size:.86rem}

/* --- Codes promo et notifications ----------------------- */
.promo{background:var(--sable);border:1px dashed var(--ligne);border-radius:12px;padding:.9rem 1.1rem;margin:1rem 0 1.6rem}
.promo p{margin:0 0 .5rem}
.promo p:last-child{margin:0}
.promo__code{
  display:inline-flex;align-items:center;gap:.6rem;cursor:pointer;
  background:var(--soleil);border:0;border-radius:100px;padding:.35rem .5rem .35rem .9rem;
  font-family:var(--f-util);font-size:.95rem;letter-spacing:.06em;color:var(--ink);
}
.promo__code span{
  background:var(--ink);color:var(--soleil);border-radius:100px;
  font-size:.66rem;letter-spacing:.1em;text-transform:uppercase;padding:.25rem .6rem;
}
.promo__code:hover span{background:#000}
.promo__how{font-size:.9rem;color:var(--ink-80)}
.times__notify{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin:1rem 0 0}
.times__notify .btn{font-size:.85rem;padding:.5rem 1rem}
.times__notify-p{font-size:.88rem;color:var(--ink-80);flex:1 1 260px}
.times__fixed{
  font-family:var(--f-util);font-size:.86rem;color:var(--ink-60);
  background:var(--sable);border-radius:10px;padding:.7rem .85rem;margin:0;
}

/* --- Bloc message pleine largeur ------------------------ */
/* Bandeau de message pleine largeur : réservé à l'espace voyageurs, pour ne
   pas décentrer les appels à l'action du site public. */
[data-guarded] .cta-band{padding-block:clamp(2.2rem,5vw,3.4rem)}
[data-guarded] .cta-band .wrap{max-width:none;width:100%}
[data-guarded] .cta-band .hero__actions{justify-content:flex-start}

/* --- Bloc « Écrire à Walide » sur toute la largeur ------- */
.stay li:has(.inbox-link){
  grid-column:1 / -1;
  display:flex;flex-wrap:wrap;align-items:center;gap:.4rem 1.2rem;
  padding:1rem 1.2rem;
}
.stay li:has(.inbox-link) span[data-portal-row],
.stay li:has(.inbox-link) > span:first-child{flex:0 0 auto}
.stay li:has(.inbox-link) [data-portal-name]{margin-right:auto}
.stay li:has(.inbox-link) .portal-link{margin-top:0}
.stay li:has(.inbox-link) .inbox-link{
  background:var(--ink);color:var(--soleil);border-bottom:0;
  border-radius:100px;padding:.5rem 1.1rem;font-size:.88rem;
}
.stay li:has(.inbox-link) .inbox-link:hover{background:#000;color:var(--soleil)}
@media (max-width:560px){
  .stay li:has(.inbox-link){display:grid;gap:.35rem}
  .stay li:has(.inbox-link) .inbox-link{justify-self:start}
}

/* --- Couleurs par plateforme de réservation ------------- */
.stay li[data-brand]{background:var(--soleil)}
.stay li[data-brand] span{color:rgba(14,20,24,.62)}
.stay li[data-brand] .inbox-link{background:var(--ink);color:var(--soleil)}

.stay li[data-brand="airbnb"]{background:#FF5A5F}
.stay li[data-brand="airbnb"] span{color:rgba(255,255,255,.82)}
.stay li[data-brand="airbnb"] [data-portal-name]{color:#fff}
.stay li[data-brand="airbnb"] .inbox-link{background:#fff;color:#D93B47}
.stay li[data-brand="airbnb"] .inbox-link:hover{background:var(--ink);color:#fff}

.stay li[data-brand="booking"]{background:#003580}
.stay li[data-brand="booking"] span{color:rgba(255,255,255,.78)}
.stay li[data-brand="booking"] [data-portal-name]{color:#fff}
.stay li[data-brand="booking"] .inbox-link{background:#FEBB02;color:#003580}
.stay li[data-brand="booking"] .inbox-link:hover{background:#fff;color:#003580}

.stay li[data-brand="vrbo"]{background:#1668E3}
.stay li[data-brand="vrbo"] span{color:rgba(255,255,255,.8)}
.stay li[data-brand="vrbo"] [data-portal-name]{color:#fff}
.stay li[data-brand="vrbo"] .inbox-link{background:#fff;color:#1668E3}
.stay li[data-brand="vrbo"] .inbox-link:hover{background:var(--ink);color:#fff}

.stay li[data-brand="expedia"]{background:#00355F}
.stay li[data-brand="expedia"] span{color:rgba(255,255,255,.78)}
.stay li[data-brand="expedia"] [data-portal-name]{color:#fff}
.stay li[data-brand="expedia"] .inbox-link{background:#FFC94D;color:#00355F}

.stay li[data-brand="direct"]{background:var(--soleil)}
.stay li[data-brand="direct"] [data-portal-name]{color:var(--ink)}
.stay li[data-brand="direct"] .inbox-link{background:var(--ink);color:var(--soleil)}

/* --- Bouton vers les conditions générales --------------- */
.terms-cta{margin-top:2rem}
.btn--big{font-size:1rem;padding:.9rem 1.6rem}

/* --- Bloc d'avis selon la plateforme -------------------- */
.review-platform{
  display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;
  border-radius:14px;padding:1.1rem 1.3rem;margin:1.2rem 0 2rem;
  background:var(--soleil);
}
.review-platform[hidden]{display:none}
.review-platform__label{
  font-family:var(--f-util);font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;
  color:rgba(14,20,24,.6);
}
.review-platform strong{font-size:1.1rem;margin-right:auto;color:var(--ink)}
.review-platform .btn{background:var(--ink);color:var(--soleil);font-size:.9rem}
.review-platform[data-brand="airbnb"]{background:#FF5A5F}
.review-platform[data-brand="airbnb"] .review-platform__label{color:rgba(255,255,255,.82)}
.review-platform[data-brand="airbnb"] strong{color:#fff}
.review-platform[data-brand="airbnb"] .btn{background:#fff;color:#D93B47}
.review-platform[data-brand="booking"]{background:#003580}
.review-platform[data-brand="booking"] .review-platform__label{color:rgba(255,255,255,.78)}
.review-platform[data-brand="booking"] strong{color:#fff}
.review-platform[data-brand="booking"] .btn{background:#FEBB02;color:#003580}
.review-platform[data-brand="vrbo"]{background:#1668E3}
.review-platform[data-brand="vrbo"] .review-platform__label{color:rgba(255,255,255,.8)}
.review-platform[data-brand="vrbo"] strong{color:#fff}
.review-platform[data-brand="vrbo"] .btn{background:#fff;color:#1668E3}
.review-platform[data-brand="expedia"]{background:#00355F}
.review-platform[data-brand="expedia"] .review-platform__label{color:rgba(255,255,255,.78)}
.review-platform[data-brand="expedia"] strong{color:#fff}
.review-platform[data-brand="expedia"] .btn{background:#FFC94D;color:#00355F}
@media (max-width:560px){.review-platform{display:grid}.review-platform .btn{justify-self:start}}

/* --- Encart mis en avant -------------------------------- */
.callout--warn{
  background:var(--soleil);border-left:6px solid var(--ink);
  padding:1.3rem 1.4rem;
}
.callout--warn p strong{display:block;font-size:1.08rem;margin-bottom:.35rem}

/* --- Boutons de lieu en ligne --------------------------- */
.pins--row{display:flex;flex-wrap:wrap;gap:.45rem;margin:0 0 1.6rem}
.pins--row .pin{
  display:inline-block;font-size:.85rem;text-decoration:none;
  background:var(--azur-pale);color:var(--azur-dark);border-radius:100px;padding:.4rem .85rem;
  /* Les libellés longs, « Me rendre vers … (Google Maps) », doivent pouvoir
     revenir à la ligne : sinon ils débordent sur les petits écrans. */
  max-width:100%;white-space:normal;overflow-wrap:anywhere;
}
.pins--row .pin:hover{background:var(--azur-dark);color:#fff}

/* --- Informations réservées ----------------------------- */
[data-secret]{
  font-style:italic;color:var(--ink-60);font-weight:400;
}
[data-secret].is-revealed{font-style:normal;color:inherit;font-weight:inherit}

/* --- Ouvrir la porte de l'immeuble ---------------------- */
.door-wrap{margin:1.6rem 0 .4rem}
.door-wrap[hidden]{display:none}
.door-btn{
  display:flex;align-items:center;justify-content:center;gap:.7rem;width:100%;
  background:#00C2A8;color:#04241F;border:0;border-radius:16px;
  padding:1.15rem 1.4rem;cursor:pointer;
  font-family:var(--f-util);font-size:1.05rem;letter-spacing:.09em;text-transform:uppercase;
  box-shadow:0 16px 34px -18px rgba(0,194,168,.95);
  transition:transform .15s ease,background .15s ease,box-shadow .15s ease;
}
.door-btn span{font-size:1.35rem;line-height:1}
.door-btn:hover{background:#00D9BC;transform:translateY(-2px);box-shadow:0 20px 40px -18px rgba(0,194,168,1)}
.door-btn:active{transform:translateY(0)}
.door-btn:disabled{background:#9FDBD3;cursor:progress;transform:none;box-shadow:none}
.door-btn:focus-visible{outline:3px solid var(--ink);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.door-btn{transition:none}.door-btn:hover{transform:none}}

.door-modal{
  position:fixed;inset:0;z-index:200;display:grid;place-items:center;
  background:rgba(6,12,16,.72);padding:1.25rem;
}
.door-modal[hidden]{display:none}
.door-modal__box{
  width:min(100%,440px);background:var(--blanc);border-radius:20px;
  padding:2rem 1.8rem;text-align:center;
  box-shadow:0 40px 80px -30px rgba(0,0,0,.7);
}
.door-modal__icon{font-size:2.6rem;margin:0 0 .4rem;line-height:1}
.door-modal h2{font-size:1.35rem;margin:0 0 .6rem}
.door-modal p{color:var(--ink-80);margin:0 0 1.4rem}
.door-modal .btn{min-width:140px;justify-content:center}
.door-modal.is-error .door-modal__box{border-top:6px solid #B23A17}
.door-modal.is-error .door-modal__icon::after{content:""}

/* --- Badges des magasins d'applications ----------------- */
.storebadges{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;margin:.9rem 0 1.8rem}
.storebadges a{
  display:inline-block;border-radius:10px;line-height:0;
  transition:transform .15s ease,box-shadow .15s ease;
}
.storebadges img{height:52px;width:auto;display:block;border-radius:10px}
.storebadges a:hover{transform:translateY(-2px);box-shadow:0 12px 26px -14px rgba(14,20,24,.8)}
.storebadges a:focus-visible{outline:3px solid var(--azur);outline-offset:3px}
@media (prefers-reduced-motion:reduce){.storebadges a{transition:none}.storebadges a:hover{transform:none}}
@media (max-width:420px){.storebadges img{height:46px}}
.tip__time{display:block;margin-top:.5rem}
.tip__cta{display:block;margin-top:.9rem}
.tip__cta .btn{font-size:.9rem}

/* --- Bandeau de prévisualisation ------------------------ */
.preview-flag{
  position:fixed;left:0;right:0;bottom:0;z-index:180;
  background:#6B2FB5;color:#fff;text-align:center;
  padding:.55rem 1rem;font-family:var(--f-util);font-size:.78rem;letter-spacing:.04em;
  box-shadow:0 -8px 24px -14px rgba(0,0,0,.8);
}
.preview-flag strong{color:#FFDA3D;letter-spacing:.12em;text-transform:uppercase;margin-right:.4rem}
.preview-flag a{color:#fff;text-decoration:underline;margin-left:.7rem}
.preview-flag a:hover{color:#FFDA3D}
body:has(.preview-flag){padding-bottom:2.6rem}
.demo-flag{bottom:3.2rem}

/* --- Codes Nuki ----------------------------------------- */
.nuki-card{
  background:var(--ink);color:#fff;border-radius:18px;
  padding:1.4rem 1.5rem;margin:1.6rem 0 2rem;
  box-shadow:0 26px 60px -34px rgba(14,20,24,.9);
}
.nuki-card h3{margin:0 0 .35rem;color:var(--soleil);font-size:1.15rem}
.nuki-card p{margin:0 0 .9rem;color:rgba(255,255,255,.76);font-size:.94rem}
.nuki-codes{display:flex;flex-wrap:wrap;gap:.7rem;margin:0}
.nuki-code{
  flex:1 1 220px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);
  border-radius:12px;padding:.85rem 1rem;display:grid;gap:.35rem;
}
.nuki-code__label{
  font-family:var(--f-util);font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);
}
.nuki-code__value{
  font-family:var(--f-util);font-size:1.4rem;letter-spacing:.14em;color:var(--soleil);
  word-break:break-all;
}
.nuki-code__copy{
  justify-self:start;background:var(--soleil);color:var(--ink);border:0;border-radius:100px;
  padding:.3rem .8rem;font-family:var(--f-util);font-size:.66rem;letter-spacing:.1em;
  text-transform:uppercase;cursor:pointer;
}
.nuki-code__copy:hover{background:#fff}
.nuki-card__msg{color:#FFD5C6;margin:.6rem 0 0}
.nuki-card__msg[hidden],.nuki-card__cta[hidden]{display:none}
.nuki-card__cta{margin:1rem 0 0}
.nuki-card .btn--night{background:var(--soleil);color:var(--ink)}
.nuki-card .btn--night:hover{background:#fff}
.nuki-card.is-waiting .nuki-code__value{color:rgba(255,255,255,.45);letter-spacing:.06em;font-size:1rem}
.nuki-card__install-t{
  font-family:var(--f-util);font-size:.68rem;letter-spacing:.14em;text-transform:uppercase;
  color:rgba(255,255,255,.55);margin:0 0 .55rem !important;
}
.nuki-card__install{margin:0 0 1.4rem !important;padding-bottom:1.3rem;
  border-bottom:1px solid rgba(255,255,255,.14)}
.nuki-card__install{display:flex;flex-wrap:wrap;gap:.7rem;margin:0}
.nuki-card__install img{height:46px;width:auto;display:block;border-radius:9px}
.nuki-card__install a{display:inline-block;line-height:0;border-radius:9px;transition:transform .15s ease}
.nuki-card__install a:hover{transform:translateY(-2px)}
.nuki-codes--one .nuki-code{flex:1 1 100%}

/* --- Moteur de réservation Smoobu ----------------------- */
.smoobu-tool{
  background:var(--blanc);border:1px solid var(--ligne);border-radius:18px;
  padding:.6rem;overflow:hidden;min-height:420px;
}
.smoobu-tool iframe{width:100%;border:0;display:block;border-radius:14px}
@media (max-width:640px){.smoobu-tool{padding:.3rem;min-height:520px}}

/* --- Réserver de nouveau, depuis l'espace ---------------- */
.book-again{
  font-size:.8rem;padding:.5rem .95rem;white-space:nowrap;
  background:transparent;color:#fff;border:1px solid rgba(255,255,255,.32);
}
.book-again:hover{background:var(--soleil);color:var(--ink);border-color:var(--soleil)}
.signout-home{font-size:.76rem;padding:.5rem .95rem;white-space:normal;max-width:16rem;line-height:1.25;text-align:center}
@media (max-width:900px){
  .book-again,.signout-home{font-size:.72rem;padding:.45rem .8rem}
  .signout-home{max-width:12rem}
}

/* --- Cadre piloté par le formulaire de recherche -------- */
.smoobu-frame{
  background:var(--blanc);border:1px solid var(--ligne);border-radius:18px;
  overflow:hidden;margin:0 0 1.4rem;
}
.smoobu-frame iframe{width:100%;border:0;display:block;background:var(--sable)}
.smoobu-frame{box-shadow:var(--shadow)}
.cancel-note{
  margin:.9rem 0 0 !important;font-size:.88rem;color:rgba(14,20,24,.72);
}
.cancel-note a{color:var(--ink);text-decoration:underline}

/* --- Rideau de l'espace voyageurs ------------------------
   Tant que la réservation n'est pas vérifiée, la page reste vide : rien ne
   s'affiche, pas même un instant. Le script retire la classe dès que le
   dossier est reconnu, ou renvoie vers l'accueil de l'espace. */
html.guests-locked body > main,
html.guests-locked .guestbar,
html.guests-locked .site-footer{visibility:hidden}
html.guests-locked body::after{
  content:"";position:fixed;inset:0;background:var(--sable);z-index:400;
}
html.guests-locked .client-header{position:relative;z-index:401}

/* --- Pied de page de l'espace voyageurs ----------------- */
.site-footer--guests .wrap{text-align:center}
.site-footer--guests .footer-legal{
  display:flex;flex-wrap:wrap;justify-content:center;align-items:center;
  gap:.5rem 1.4rem;margin-top:.6rem;
}
.site-footer--guests .footer-legal a{
  color:rgba(255,255,255,.86);text-decoration:none;
  border-bottom:1px solid rgba(255,255,255,.3);padding-bottom:1px;
}
.site-footer--guests .footer-legal a:hover{color:var(--soleil);border-bottom-color:var(--soleil)}
.site-footer--guests .footer-legal span{width:100%;opacity:.7}
.site-footer--guests p{margin-inline:auto}
.terms-cta{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:2rem}
.gate__title{font-size:clamp(1.6rem,3.4vw,2.1rem);margin:0 0 .5rem}

/* --- Secours si le moteur Smoobu ne s'affiche pas -------- */
.smoobu-fallback{
  background:var(--soleil);border-radius:14px;padding:1.1rem 1.25rem;margin:1rem 0 0;
  font-size:.95rem;color:var(--ink);
}
.smoobu-fallback[hidden]{display:none}
.smoobu-fallback .btn{margin-top:.7rem;display:inline-block}
.smoobu-frame{min-height:0}
.smoobu-frame .smoobu-tool{min-height:520px}
.smoobu-frame .smoobu-tool[hidden]{display:none}
.smoobu-frame iframe[hidden]{display:none}
.smoobu-frame iframe{width:100%;min-height:1100px;border:0;display:block;background:var(--sable)}
@media (max-width:640px){.smoobu-frame iframe{min-height:1400px}}
.smoobu-note{font-size:.88rem;color:var(--ink-60);margin:.7rem 0 0;text-align:right}
.smoobu-note a{color:var(--azur-dark)}
