/* Espace séjour : accueil, onboarding (pré-enregistrement, clé, arrivée, guide), départ et avis. */

.stay-block { display: block; }
.stay-section-title { font-family: var(--font-sans); font-size: 0.8rem; font-weight: 650; letter-spacing: 0.08em; text-transform: uppercase; color: var(--muted); }
.stay-card-title { display: flex; align-items: center; gap: var(--space-2); font-family: var(--font-sans); font-size: 1.05rem; font-weight: 650; letter-spacing: 0; }
.card:not(.stack) > .stay-card-title { margin-bottom: var(--space-3); }
.stay-big { font-size: 1.15rem; font-weight: 600; }
.stay-prose p + p { margin-top: var(--space-3); }
.stay-inline-form { display: inline; }
.stay-greeting h1 { font-size: clamp(1.6rem, 6vw, 2.1rem); }

/* --- Carte « prochaine étape » -------------------------------------------------------------- */

.stay-hero { display: flex; flex-direction: column; align-items: flex-start; gap: var(--space-3); }
.stay-hero h2 { font-size: 1.4rem; }
.stay-hero p { max-width: 52ch; }
.stay-hero--muted { background: var(--sand-2); border-color: var(--line); box-shadow: none; }
.stay-btn-light { background: var(--paper); border-color: var(--paper); color: var(--sea); }
.stay-btn-light:hover { background: var(--sea-soft); border-color: var(--sea-soft); color: var(--sea); }
/* En thème sombre, la carte pleine passe en fond sombre pour garder un contraste suffisant. */
@media (prefers-color-scheme: dark) {
  .theme-auto .stay-hero.card--sea { background: var(--sea-soft); border-color: var(--line-strong); color: var(--ink); }
  .theme-auto .stay-hero.card--sea :is(h2, .eyebrow) { color: var(--ink); }
  .theme-auto .stay-hero .stay-btn-light { background: var(--sea); border-color: var(--sea); color: var(--sand); }
  .theme-auto .stay-hero .stay-pin__digit { background: var(--paper); border-color: var(--line-strong); color: var(--ink); }
  .theme-auto .stay-hero .stay-rating-display { color: var(--ochre); }
}

/* --- Raccourcis et liens rapides ---------------------------------------------------------- */

.stay-shortcuts { list-style: none; margin: 0; padding: 0; display: grid; gap: var(--space-2); grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (min-width: 620px) { .stay-shortcuts { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.stay-shortcut { display: flex; flex-direction: column; gap: var(--space-2); height: 100%; min-height: 112px; }
.stay-shortcut__text { display: flex; flex-direction: column; gap: 2px; }
.stay-shortcut__text strong { font-size: 0.98rem; }

.stay-quick { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); }
.stay-quick__link {
  display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 76px; padding: var(--space-2);
  border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--paper); color: var(--ink); text-decoration: none;
  font-size: 0.8rem; font-weight: 600; text-align: center; line-height: 1.2;
}
.stay-quick__link .icon { color: var(--sea); }
.stay-quick__link:hover { border-color: var(--line-strong); color: var(--ink); }

.stay-teaser { display: flex; align-items: center; gap: var(--space-3); }
.stay-teaser__text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.stay-teaser > .icon:last-child { color: var(--muted); }

.stay-status-list .list-item__main strong { display: block; }

/* --- Séjour : météo, programme, suggestion ------------------------------------------------ */

.stay-weather { display: flex; align-items: center; gap: var(--space-3); color: var(--sea); }
.stay-weather__text { display: flex; flex-direction: column; color: var(--ink); }
.stay-schedule__time { min-width: 3.2em; font-weight: 700; color: var(--sea); }
.stay-suggestion { border-color: var(--ochre-soft); }
.stay-suggestion .eyebrow { display: inline-flex; align-items: center; gap: 6px; color: var(--ochre); }
.stay-suggestion__actions { margin-top: var(--space-4); align-items: center; }
.stay-bullets { margin: var(--space-2) 0; padding-left: 1.2em; }
.stay-bullets li + li { margin-top: 4px; }

/* --- Clé numérique -------------------------------------------------------------------------- */

.stay-key { display: flex; flex-direction: column; gap: var(--space-4); text-align: center; align-items: stretch; }
.stay-pin { display: flex; justify-content: center; gap: clamp(6px, 2vw, 12px); margin: 0; font-variant-numeric: tabular-nums; }
.stay-pin__digit {
  display: inline-grid; place-items: center; width: clamp(40px, 12vw, 58px); height: clamp(54px, 16vw, 74px);
  border-radius: var(--radius-sm); background: var(--sand); border: 1px solid var(--line-strong);
  font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: clamp(1.8rem, 8vw, 2.6rem); font-weight: 700; color: var(--ink);
}
.stay-hero .stay-pin { justify-content: flex-start; }
.stay-hero .stay-pin__digit { background: rgb(255 255 255 / 12%); border-color: rgb(255 255 255 / 35%); color: #fff; }
.stay-key__validity { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); color: var(--ink-2); }
.stay-key__howto { color: var(--ink-2); }
.stay-key__open { width: 100%; }

/* --- Formulaires (pré-enregistrement, avis) -------------------------------------------------- */

.stay-fieldset { margin: 0; min-width: 0; }
.stay-legend { float: left; width: 100%; padding: 0; margin-bottom: var(--space-2); font-size: 1.05rem; font-weight: 650; }
.stay-legend + * { clear: both; }
.stay-police { padding: var(--space-4); border-radius: var(--radius-sm); background: var(--sand); }
.stay-number { max-width: 120px; }

.stay-rating { border: 0; margin: 0; padding: 0; min-width: 0; }
.stay-rating legend { padding: 0; margin-bottom: var(--space-2); }
.stay-rating__stars { display: flex; gap: 2px; }
.stay-rating__stars label { display: inline-grid; place-items: center; width: 52px; height: 52px; border-radius: var(--radius-sm); color: var(--muted); cursor: pointer; }
.stay-rating__stars input:focus-visible + label { outline: 3px solid var(--focus); outline-offset: 1px; }
.stay-rating__stars label .icon { fill: var(--star-fill, none); }
.stay-rating__stars:has(input:nth-of-type(1):checked) label:nth-of-type(-n+1),
.stay-rating__stars:has(input:nth-of-type(2):checked) label:nth-of-type(-n+2),
.stay-rating__stars:has(input:nth-of-type(3):checked) label:nth-of-type(-n+3),
.stay-rating__stars:has(input:nth-of-type(4):checked) label:nth-of-type(-n+4),
.stay-rating__stars:has(input:nth-of-type(5):checked) label:nth-of-type(-n+5) { color: var(--ochre); --star-fill: currentColor; }
@media (hover: hover) {
  .stay-rating__stars:has(label:nth-of-type(1):hover) label:nth-of-type(-n+1),
  .stay-rating__stars:has(label:nth-of-type(2):hover) label:nth-of-type(-n+2),
  .stay-rating__stars:has(label:nth-of-type(3):hover) label:nth-of-type(-n+3),
  .stay-rating__stars:has(label:nth-of-type(4):hover) label:nth-of-type(-n+4),
  .stay-rating__stars:has(label:nth-of-type(5):hover) label:nth-of-type(-n+5) { color: var(--ochre); }
}
.stay-rating-display { display: flex; gap: 2px; color: #fff; opacity: 0.9; }
.stay-rating-display .icon.is-on { fill: currentColor; }
.stay-rating-display .icon:not(.is-on) { opacity: 0.45; }

/* --- Départ ------------------------------------------------------------------------------- */

.stay-checklist { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
.stay-checklist li + li { border-top: 1px solid var(--line); }
.stay-checklist__item { min-height: var(--tap); padding: var(--space-3) 0; align-items: center; }
.stay-checklist__item input { width: 24px; height: 24px; margin: 0; }
.stay-checklist__item:has(input:checked) span { color: var(--muted); text-decoration: line-through; text-decoration-color: var(--line-strong); }
.stay-bill { padding-top: var(--space-2); border-top: 1px solid var(--line); }
.stay-bill { grid-template-columns: 1fr auto; }
.stay-bill dd { text-align: right; white-space: nowrap; }

/* --- Arrivée et guide ------------------------------------------------------------------------ */

.stay-address { font-style: normal; }
.stay-toc ul { list-style: none; margin: 0; padding: 0; }
.stay-toc .chip { min-height: 36px; text-decoration: none; }
.stay-guide-section { scroll-margin-top: 72px; }
.stay-entry { scroll-margin-top: 72px; }
.stay-entry:target { border-color: var(--ochre); box-shadow: 0 0 0 3px var(--ochre-soft); }
.stay-entry h3 { margin-bottom: var(--space-2); }
.stay-wifi .kv dd { display: flex; flex-wrap: wrap; align-items: center; gap: var(--space-2); }
.stay-wifi__password { font-family: ui-monospace, "SF Mono", Menlo, Consolas, monospace; font-size: 1.05rem; user-select: all; }
.stay-tel { min-height: var(--tap); white-space: nowrap; }
.stay-emergency .list > li { flex-wrap: wrap; }

/* --- Hors connexion --------------------------------------------------------------------------- */

/* Les badges et boutons ont un display explicite : l'attribut hidden doit rester prioritaire. */
[data-offline-target][hidden], .stay-police[hidden], .stay-wifi__copy[hidden] { display: none !important; }
