/* ─── TRULLUX — trullux.css ───────────────────────────────────
   Pochi pezzi propri, caricati per ultimi: marchio testuale al centro
   dell'header, classi al posto degli stili inline (la CSP non li ammette),
   gruppo Civis, fatti, recapiti e modulo della pagina Prenota.
   Regola dei testi lunghi: ogni colonna di griglia è minmax(0, 1fr) e i
   valori lunghi (email, coordinate) vanno a capo invece di allargare la pagina.
──────────────────────────────────────────────────────────────── */

/* salto al contenuto */
.skip-link {
  position: absolute; left: 1rem; top: -100px; z-index: 1000;
  padding: .75rem 1.25rem; border-radius: 999px;
  background: var(--ink); color: var(--paper); font: 500 var(--text-sm)/1.2 var(--sans);
}
.skip-link:focus { top: 1rem; }

/* marchio testuale al centro dell'header */
.nav__wordmark {
  font: 400 clamp(1.25rem, 1.05rem + .6vw, 1.6rem)/1 var(--serif);
  letter-spacing: .02em;
  color: oklch(97% 0 0);
  min-height: 44px;
  justify-content: center;
  white-space: nowrap;
}
.nav--scrolled .nav__wordmark, html.menu-open .nav__wordmark { color: var(--ivory); }

/* tema: con il sistema scuro e nessuna scelta, mostra la luna */
@media (prefers-color-scheme: dark) {
  :root:not([data-theme]) .theme-icon--sun { display: none; }
  :root:not([data-theme]) .theme-icon--moon { display: block; }
}
.nav__theme { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.nav__lang-switch .nav__lang { min-height: 44px; }
.lang-dropdown li a { min-width: 44px; }

/* hero della home: riga di presentazione */
.hero__lead {
  margin-top: 1rem; max-width: 46ch;
  font: 400 var(--text-md)/1.5 var(--sans); color: var(--ivory-dim);
  text-shadow: 0 1px 10px oklch(0% 0 0 / .6);
}

/* video dentro le cornici delle foto */
.ph video.ph__img, .lounge__fig .ph video.ph__img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; display: block;
}
.lounge__fig .ph { position: relative; }
figure.ph { margin: 0; }

/* immagine di fondo delle hero interne */
.page-hero__bg .ph__img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; object-position: center 45%; transform: none;
}
.page-hero--plain { min-height: 340px; height: 46svh; }
.page-hero--plain .page-hero__content { padding-top: 7rem; }
.page-hero--plain { background: oklch(13% 0 0); }

/* occhielli centrati e filetto speculare (prima erano style="" inline) */
.kicker--center { justify-content: center; }
.kicker__line--flip { transform: scaleX(-1); }

/* inclusi in home */
.services-strip__heading { margin-bottom: 0; max-width: 24ch; }
.services-strip__link { margin-top: 2rem; }
.svc__name { overflow-wrap: anywhere; }

/* dove siamo */
.location__places { list-style: none; margin: 0; padding: 0; }
.location__addr-line--gap { margin-top: .5rem; }
.location__addr-line a { color: inherit; text-decoration: none; overflow-wrap: anywhere; }
.location__addr-line a:hover { color: var(--accent); }

/* gruppo Civis: quattro indirizzi */
.sister__list {
  list-style: none; margin: 2rem auto 0; padding: 0; max-width: 1000px;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px;
}
.sister__card {
  display: flex; flex-direction: column; gap: 4px; height: 100%; min-height: 44px;
  padding: 1rem 1.1rem; border: 1px solid var(--border); border-radius: var(--radius-lg);
  text-align: left; text-decoration: none; color: var(--ivory);
  transition: border-color .2s;
}
.sister__card:hover { border-color: var(--ivory); }
.sister__name { font: 400 var(--text-lg)/1.2 var(--serif); }
.sister__sub { font: 400 var(--text-xs)/1.4 var(--sans); color: var(--ivory-dim); }
@media (max-width: 900px) { .sister__list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 420px) { .sister__list { grid-template-columns: minmax(0, 1fr); } }

/* footer */
.footer__main { grid-template-columns: minmax(0, 2fr) repeat(3, minmax(0, 1fr)); }
.footer__link--static { cursor: default; }
.footer__link--gap { margin-top: .5rem; display: block; }
.footer__link { overflow-wrap: anywhere; }
.footer__bottom-end { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem 1.5rem; }
.footer__copy--link { text-decoration: underline; text-underline-offset: 2px; }
.footer__lang { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
.footer__langs { gap: .25rem; flex-wrap: wrap; }
@media (max-width: 1024px) { .footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 640px) {
  .footer__main { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .footer__main > address { grid-column: 1 / -1; }
  .footer__links a.footer__link { display: inline-flex; align-items: center; min-height: 44px; }
}

/* fatti (Servizi) */
.facts { margin: 2.5rem 0 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: clamp(2rem, 4vw, 4rem); }
.facts__row { display: grid; grid-template-columns: minmax(0, 11rem) minmax(0, 1fr); gap: .5rem 1.5rem; padding: 1.1rem 0; border-top: 1px solid var(--border); min-width: 0; }
.facts dt { font: 600 var(--text-sm)/1.4 var(--sans); color: var(--ivory); }
.facts dd { margin: 0; font: 400 var(--text-sm)/1.6 var(--sans); color: var(--ivory-dim); overflow-wrap: anywhere; min-width: 0; }
@media (max-width: 900px) { .facts { grid-template-columns: minmax(0, 1fr); } }
@media (max-width: 480px) { .facts__row { grid-template-columns: minmax(0, 1fr); } }
.svc-extras__title {
  max-width: 1000px; margin: 0 auto 1.25rem;
  font: 500 var(--text-xs)/1.2 var(--sans); letter-spacing: .14em; text-transform: uppercase; color: var(--accent-pale);
}
.svc-list dd, .svc-list dt { margin: 0; }
.svc-list__name, .svc-list__detail, .svc-cta__value { overflow-wrap: anywhere; }

/* recapiti (Contatti) */
.contact-dl { margin: 0; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.75rem; }
.contact-dl dd { margin: 0; min-width: 0; }
.contact-value { overflow-wrap: anywhere; }
.contact-place { font: 400 var(--text-base)/1.7 var(--sans); color: var(--ivory); max-width: 52ch; }
.contact-write { padding: clamp(4rem, 6vw, 6rem) var(--page-gutter); background: var(--bg-mid); }
.contact-write__inner { max-width: 760px; margin: 0 auto; text-align: center; }
.contact-actions--center { justify-content: center; }

/* modulo completo (Prenota) */
.book-form { padding: clamp(3.5rem, 6vw, 6rem) var(--page-gutter) clamp(2rem, 4vw, 3rem); }
.book-form__inner { max-width: var(--page-content-max); margin: 0 auto; display: flex; flex-direction: column; gap: 1.25rem; }
.book-form__inner .kicker { margin-bottom: 0; }
.book-form__note { font: 400 var(--text-sm)/1.6 var(--sans); color: var(--ivory-dim); overflow-wrap: anywhere; }
.tbk--page { margin-top: .5rem; }

/* niente scorrimento orizzontale: le griglie copiate si restringono */
.editorial, .location__cols, .contact-main, .svc-split__inner, .lounge__head, .cat-strip__inner { min-width: 0; }
.editorial > *, .location__cols > *, .contact-main > *, .svc-split__inner > * { min-width: 0; }
