/* ═══════════════════════════════════════════════════════════════════════════
   VTS WCAG Typography Override — portale pubblico + dashboard utente
   File: public/css/vts-wcag.css
   Standard: WCAG 2.1 AA + Gemini guidelines
   html font-size: 100% = rispetta preferenze utente
   Body: min 1rem (16px) | Input: min 1rem (16px, obbligatorio iOS)
   Badge/chip: min 0.75rem (12px) — mai sotto
   Timer digits: portati a 0.8125rem (13px) minimo
   ═══════════════════════════════════════════════════════════════════════════ */

/* ── BASE: html 100% scalabile, body 1rem ──────────────────── */
html {
  font-size: 100% !important;
}
body {
  font-size: 1rem !important;    /* 16px — WCAG minimum */
  line-height: 1.65 !important;
}

/* ── NAV ────────────────────────────────────────────────────── */
.nav-logo-name {
  font-size: 1.3125rem !important; /* 21px */
}
.nav-logo-sub {
  font-size: 0.6875rem !important; /* 11px — ok uppercase con spacing */
}
/* Voci nav desktop */
.nav-links a,
[class*="nav-link"],
#vts-nav-links a {
  font-size: 1rem !important;      /* 16px */
  font-weight: 600 !important;
}
/* Bottone Accedi nav */
.nav-cta, .nav-btn,
[class*="nav-cta"] {
  font-size: 1rem !important;
  font-weight: 800 !important;
  min-height: 2.75rem !important;  /* 44px touch */
}
/* Selettore lingua */
.lang-btn, [class*="lang-btn"],
.lang-selector button {
  font-size: 0.875rem !important;  /* 14px — ok label secondaria */
  min-height: 2.75rem !important;
}
/* Drawer mobile nav */
#vts-nav-drawer a {
  font-size: 1.0625rem !important; /* 17px */
  min-height: 3rem !important;     /* 48px touch */
}

/* ── HERO ───────────────────────────────────────────────────── */
/* Il testo hero (H1, H2) è già grande — manteniamo, fix solo testo piccolo */
.hero-sub, [class*="hero-sub"],
.hero-desc, [class*="hero-desc"] {
  font-size: 1rem !important;
  line-height: 1.65 !important;
}
/* Pill/badge nella hero */
.vcc-badge, [class*="hero-badge"],
[class*="badge-top"] {
  font-size: 0.75rem !important;   /* 12px minimo assoluto */
  font-weight: 700 !important;
}

/* ── CARD OFFERTE (IEV) — fix 9px, 8px, 6px sotto soglia ──── */

/* Badge HOT/FLASH/EARLY: da 9px a 11px minimo */
.iev-bdg-hot, .iev-bdg-flash, .iev-bdg-early,
.iev-bdg-group, .iev-bdg-theme, .iev-bdg-rated,
.iev-fly-in, .iev-fly-out {
  font-size: 0.6875rem !important; /* 11px — minimo badge visibile */
  font-weight: 900 !important;
}

/* Timer label "SCADE" — da 8px/6px a 11px */
.iev-timer-lbl {
  font-size: 0.6875rem !important; /* 11px */
  font-weight: 700 !important;
  color: rgba(255,204,0,.75) !important; /* più visibile */
}

/* Timer digits — da 13px ok, mantieni */
.iev-tn {
  font-size: 0.875rem !important;  /* 14px */
  font-weight: 900 !important;
}

/* Timer sub-label "ORE" "MIN" — da 6px a 10px */
.iev-tl {
  font-size: 0.625rem !important;  /* 10px — minimo per label tiny */
  font-weight: 700 !important;
  color: rgba(255,204,0,.7) !important;
}

/* Nome offerta nella card */
.iev-name {
  font-size: 0.9375rem !important; /* 15px */
  font-weight: 800 !important;
}

/* Location card */
.iev-loc {
  font-size: 0.75rem !important;   /* 12px */
  color: rgba(255,255,255,.65) !important; /* più visibile */
}

/* Extra/features chip */
.iev-feat, .iev-extra {
  font-size: 0.6875rem !important; /* 11px */
  font-weight: 700 !important;
  color: rgba(255,255,255,.8) !important;
}

/* "da" label prezzo */
.iev-from, .iev-night, .iev-pct {
  font-size: 0.6875rem !important; /* 11px */
  font-weight: 700 !important;
}

/* Prezzo principale — da 20px ok, alziamo a 22px */
.iev-val {
  font-size: 1.375rem !important;  /* 22px */
  font-weight: 900 !important;
}

/* Prezzo barrato */
.iev-orig {
  font-size: 0.75rem !important;   /* 12px */
}

/* Bottone card */
.iev-btn {
  font-size: 0.75rem !important;   /* 12px — compact ma leggibile */
  font-weight: 800 !important;
  min-height: 2.25rem !important;  /* 36px */
  padding: 0.5rem 1rem !important;
}

/* Filtri sezione offerte */
.iev-filter {
  font-size: 0.875rem !important;  /* 14px */
  font-weight: 700 !important;
  min-height: 2.75rem !important;
}

/* ── CARD RESORT ─────────────────────────────────────────────── */
.rcard-cat {
  font-size: 0.6875rem !important; /* 11px — uppercase, ok */
  font-weight: 700 !important;
  letter-spacing: .1em !important;
}
.rcard-name {
  font-size: 1.25rem !important;   /* 20px */
  font-weight: 800 !important;
}
.rcard-loc {
  font-size: 0.875rem !important;  /* 14px */
}
.rcard-price-lbl {
  font-size: 0.75rem !important;   /* 12px */
  font-weight: 600 !important;
}
.rcard-price {
  font-size: 1.375rem !important;  /* 22px */
  font-weight: 900 !important;
}

/* ── SEZIONI GENERICHE ───────────────────────────────────────── */
/* Testo corpo in tutte le sezioni */
p, li, span.text, [class*="-desc"], [class*="-body"],
[class*="-sub"]:not([class*="logo-sub"]):not([class*="nav-sub"]) {
  font-size: 1rem !important;      /* 16px */
  line-height: 1.65 !important;
}

/* Input/form: OBBLIGATORIO 16px per iOS no-zoom */
input[type="text"],
input[type="email"],
input[type="password"],
input[type="number"],
input[type="search"],
input[type="tel"],
input[type="url"],
input[type="date"],
textarea,
select {
  font-size: 1rem !important;      /* 16px iOS fix */
  min-height: 2.75rem !important;  /* 44px touch */
}

/* ── BADGE GLOBALI ───────────────────────────────────────────── */
.bdg, [class*=".bdg"] {
  font-size: 0.6875rem !important; /* 11px */
  font-weight: 800 !important;
  min-height: 1.5rem !important;
  padding: 0.25rem 0.625rem !important;
}

/* ════════════════════════════════════════════════════════════════
   DASHBOARD UTENTE (/account/dashboard)
   ════════════════════════════════════════════════════════════════ */

/* Sidebar nav utente */
.sb-nav a {
  font-size: 1rem !important;      /* 16px — da 15px */
  font-weight: 600 !important;
  min-height: 2.75rem !important;
  padding: 0.75rem 1.25rem !important;
}
.sb-logo-text {
  font-size: 1rem !important;      /* 16px */
  font-weight: 700 !important;
}
.sb-logo-sub {
  font-size: 0.6875rem !important; /* 11px — ok label small */
}
.sb-user-email {
  font-size: 0.8125rem !important; /* 13px — secondary info */
  color: rgba(255,255,255,.65) !important;
}
.sb-user-logout {
  font-size: 0.875rem !important;  /* 14px — da 11px */
  font-weight: 600 !important;
}

/* Page title dashboard */
.page-title {
  font-size: 1.75rem !important;   /* 28px */
  font-weight: 700 !important;
}

/* Panel header */
.panel-hd {
  font-size: 1rem !important;      /* 16px — da 14px */
  font-weight: 700 !important;
}

/* Tabella dashboard */
table {
  font-size: 1rem !important;      /* 16px — da 15px */
}
th {
  font-size: 0.8125rem !important; /* 13px — ok uppercase */
  font-weight: 700 !important;
  color: rgba(255,255,255,.7) !important;
  text-transform: uppercase !important;
  letter-spacing: .06em !important;
}
td {
  font-size: 1rem !important;      /* 16px */
  font-weight: 500 !important;
  padding: 0.875rem 1rem !important;
}

/* Badge dashboard */
.badge {
  font-size: 0.75rem !important;   /* 12px — da 11px */
  font-weight: 700 !important;
  padding: 0.25rem 0.625rem !important;
}

/* Placeholder vuoto */
.placeholder {
  font-size: 1rem !important;      /* 16px — da 14px */
}

/* PIN login */
.pin-title {
  font-size: 1.125rem !important;  /* 18px */
  font-weight: 700 !important;
}
.pin-sub {
  font-size: 0.875rem !important;  /* 14px — da 12px */
}
.pin-key {
  font-size: 1.5rem !important;    /* 24px */
  min-height: 2.75rem !important;
}
.pin-err {
  font-size: 0.875rem !important;  /* 14px — da 12px */
}

/* ════════════════════════════════════════════════════════════════
   MOBILE PWA — rem scala automaticamente
   ════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  body { font-size: 1rem !important; }

  /* Card offerte mobile: leggermente più grandi */
  .iev-name  { font-size: 1rem !important; }
  .iev-val   { font-size: 1.25rem !important; }
  .iev-btn   { font-size: 0.8125rem !important; min-height: 2.5rem !important; }

  /* Input: SEMPRE 1rem su mobile per iOS */
  input, textarea, select { font-size: 1rem !important; }

  /* Nav mobile drawer */
  #vts-nav-drawer a { font-size: 1.125rem !important; }

  /* Dashboard sidebar mobile */
  .sb-nav a { font-size: 1rem !important; min-height: 3rem !important; }

  /* Tabella: scroll orizzontale, no testo ridotto */
  .panel { overflow-x: auto !important; }
  table { min-width: 30rem !important; font-size: 1rem !important; }
}

@media (max-width: 480px) {
  .iev-name   { font-size: 0.9375rem !important; }
  .iev-val    { font-size: 1.125rem !important; }
  .rcard-name { font-size: 1.0625rem !important; }
}
