/* css/main.css */

/* Reset minimo per evitare spazi indesiderati */
html, body { margin: 0; padding: 0; }
* { box-sizing: border-box; }

/* AccessibilitĆ  */
.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;
}

/* ====== HEADER / DIV1 ====== */

/* Wrapper full width */
.div1{
  width: 100%;
  background: #004646; /* rgb(0,70,70) */
  color: #fff;
}

/* Contenuto centrato max 1200px */
.div1-inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 16px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
}

.div1-left, .div1-right{
  display: flex;
  align-items: center;
  gap: 10px;
}

/* Language select */
.lang-select{
  background: rgba(255,255,255,.10);
  color: #fff;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 10px;
  padding: 8px 10px;
  outline: none;
  cursor: pointer;
}

/* Le option nei select spesso ereditano colori scuri/chiari in modo diverso */
.lang-select option{ color:#000; }

/* Account button */
.account-btn{
  display: inline-flex;
  align-items: center;
  gap: 10px;

  text-decoration: none;
  color: #fff;

  background: rgba(255,255,255,.10);
  border: 1px solid rgba(255,255,255,.25);
  border-radius: 999px;
  padding: 8px 12px;
}

.account-btn:hover{
  background: rgba(255,255,255,.16);
}

.account-btn__icon{ fill:#fff; display:block; }
.account-btn__text{ font-size: 14px; line-height: 1; white-space: nowrap; }

/* ====== HEADER / DIV2 ====== */

.div2{
  display: block;        /* rende il link un blocco full width */
  width: 100%;
  background: #64d1d4;   /* rgb(100,209,212) */
  color: #002b2c;
  text-decoration: none; /* niente underline */
}

/* zero distanziamenti: div1 finisce e div2 inizia */
.div2-inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 12px 16px;

  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
}

.div2-left{
  display: flex;
  align-items: center;
  gap: 10px;
  min-width: 0; /* permette ellipsis se serve */
}

/* Colonna 1: icona */
.div2-icon{
  fill: #002b2c;
  justify-self: start;
}

/* Colonna 2: testo centrato */
.div2-text{
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  text-align: center;

  display: flex;
  flex-direction: column;
  gap: 2px;
  align-items: center;

  /* evita che il testo si sovrapponga a icona/freccia su schermi piccoli */
  max-width: calc(100% - 96px); /* 96px ~ spazio per icona+freccia+padding */
  pointer-events: none; /* rende cliccabile l'intero div senza zone morte */
}

.div2-title{
  font-size: 14px;
  line-height: 1.1;
  font-weight: 600;
}

.div2-subtitle{
  font-size: 13px;
  line-height: 1.2;
  opacity: 0.9;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* Colonna 3: freccia */
.div2-arrow{
  stroke: #002b2c;
  justify-self: end;
}

/* Feedback click/hover */
.div2:hover{
  filter: brightness(0.98);
}

.div2:active{
  filter: brightness(0.95);
}

/* ====== BLOCCO FISSO (DIV1+DIV2) ====== */
.header-sticky{
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  z-index: 9999;
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}
/* Spazio sopra ai contenuti: viene impostato dal JS */
body.has-fixed-header{
  padding-top: var(--headerStickyH, 0px);
}
/* Effetto che ā€si materializzaā€¯ quando inizi a scrollare */
.header-sticky.is-scrolled{
  box-shadow: 0 6px 18px rgba(0,0,0,.12);
}

/* bottone */
.install-cta[hidden]{
  display:none !important;
}

.install-cta{
  width: 100%;
  background: #fff;
}

.install-cta-inner{
  max-width: 800px;
  margin: 0 auto;
  padding: 10px 16px 14px;

  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;

  border-top: 1px solid rgba(0,70,70,.10);
}

.install-cta-title{
  font-size: 14px;
  font-weight: 800;
  color: #004646;
  line-height: 1.1;
}

.install-cta-subtitle{
  margin-top: 4px;
  font-size: 12px;
  color: #004646;
  opacity: 0.80;
  line-height: 1.2;
}

.install-cta-btn{
  border: 1px solid rgba(0,70,70,.22);
  border-radius: 999px;
  padding: 10px 14px;
  background: #004646;
  color: #fff;
  font-weight: 800;
  cursor: pointer;
  white-space: nowrap;
}

.install-cta-btn:active{
  transform: translateY(1px);
}


/* ====== DIV3 (logo sotto header, centrato) ====== */
.div3{
  width: 100%;
  background: #fff;  /* puoi cambiare colore quando vuoi */
}

.div3-inner{
  max-width: 1200px;
  margin: 0 auto;
  padding: 20px 16px;

  display: flex;
  flex-direction: column;   /* ā† QUESTO ĆØ fondamentale */
  align-items: center;
  text-align: center;
}

.div3-tagline{
  margin-top: 10px;
  font-size: 15px;
  font-weight: 500;
  color: #000;
  opacity: ;
}

.div3-logo-wrap svg{
  height: 200px;
  width: auto;
  display: block;
  
  transform: translateX(-3%);
}

/* ====== GEO OVERLAY ====== */
.geo-overlay{
  position: fixed;
  inset: 0;
  z-index: 20000; /* sopra header */
  background: rgba(0,0,0,.45);

  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}

.geo-modal{
  width: min(520px, 100%);
  background: #fff;
  border-radius: 16px;
  padding: 16px 16px 14px;
  color: #004646;
  border: 1px solid rgba(0,70,70,.14);
}

.geo-title{
  font-size: 16px;
  font-weight: 800;
  margin-bottom: 8px;
}

.geo-text{
  font-size: 13px;
  line-height: 1.35;
  opacity: .95;
}

.geo-row{
  margin-top: 12px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  padding: 10px 12px;
  background: rgba(100,209,212,.12);
  border-radius: 12px;
  border: 1px solid rgba(0,70,70,.12);
}

.geo-label{
  font-size: 13px;
  font-weight: 700;
}

.geo-select{
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(0,70,70,.20);
  background: #fff;
  color: #004646;
}

.geo-actions{
  margin-top: 12px;
  display: flex;
  gap: 10px;
}

.geo-btn{
  flex: 1;
  padding: 10px 12px;
  border-radius: 12px;
  border: 1px solid rgba(0,70,70,.20);
  background: #fff;
  color: #004646;
  font-weight: 800;
}

.geo-btn-primary{
  background: #004646;
  color: #fff;
  border-color: #004646;
}

.geo-btn:active{
  transform: translateY(1px);
}

.geo-skip{
  margin-top: 10px;
  width: 100%;
  padding: 10px 12px;
  border: none;
  background: transparent;
  color: #004646;
  opacity: .85;
  font-weight: 700;
}
/* Forza il comportamento dell'attributo hidden */
.geo-overlay[hidden]{
  display: none !important;
}

.geo-manual-wrap{margin-top:12px}
.geo-manual-input{
  width:100%;
  box-sizing:border-box;
  padding:12px 14px;
  border:1px solid rgba(0,70,70,.18);
  border-radius:12px;
  font:inherit;
  color:#004646;
  background:#fff;
}
.geo-manual-results{
  margin-top:10px;
  display:grid;
  gap:8px;
  max-height:220px;
  overflow:auto;
}
.geo-manual-option{
  width:100%;
  text-align:left;
  border:1px solid rgba(0,70,70,.12);
  border-radius:12px;
  background:#fff;
  padding:10px 12px;
  color:#004646;
  font:inherit;
}
.geo-manual-option span{
  display:block;
  font-size:12px;
  opacity:.75;
  margin-top:2px;
}
.geo-manual-option.active{
  border-color:#004646;
  box-shadow:0 0 0 2px rgba(0,70,70,.08) inset;
}
.geo-manual-empty{
  font-size:13px;
  color:#004646;
  opacity:.75;
  padding:6px 2px;
}

/* =========================
   DIV4 (sezione + contenuti)
   - include HEAD premium + GRID card + FEED dinamico
========================= */

.div4{
  width: 100%;
}

.div4-inner{
  max-width: 1200px; /* se in futuro vuoi 1000px, basta cambiare qui */
  margin: 0 auto;
  padding: 14px 16px 18px;
}

/* ---------- DIV4 HEAD (PREMIUM) ---------- */
.div4-head{
  display: flex;
  align-items: center;              /* allineamento verticale meteo + testo */
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 14px;
}

/* SINISTRA: meteo */
.div4-weather{
  flex: 0 1 420px;                  /* resta su una riga: max area meteo */
  min-width: 280px;
}

.weather-top{
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

.weather-badge{
  display: inline-flex;
  align-items: center;
  padding: 0;
  border-radius: 0;
  font-size: 12px;
  font-weight: 900;
  letter-spacing: 0;
  color: #004646;
  background: transparent;
  border: none;
}

.weather-upd{
  font-size: 11px;
  color: #004646;
  opacity: .65;
}

.weather-line{
  display: none;

  font-weight: 900;
  font-size: 14px;
  color: #004646;
  line-height: 1.15;
  white-space: nowrap;              /* evita wrap */
  overflow: hidden;
  text-overflow: ellipsis;
}

.weather-advice{
  margin-top: 4px;
  font-size: 13px;
  color: #004646;
  opacity: .88;
  line-height: 1.25;

  /* clamp elegante (2 righe max) */
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* Divider verticale */
.div4-divider{
  width: 1px;
  align-self: stretch;
  background: rgba(0, 70, 70, .14);
  border-radius: 1px;
}

/* DESTRA: titolo e posizione */
.div4-head-text{
  flex: 1 1 auto;
  min-width: 280px;
  text-align: right;
}

.div4-title{
  margin: 0 0 6px 0;
}

.div4-subtitle{
  margin: 0;
  font-size: 13px;
  color: #004646;
  opacity: .85;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

/* ---------- GRID (3 card principali) ---------- */
.div4-grid{
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 12px;
}

.div4-card{
  display: block;
  text-decoration: none;
  color: inherit;

  border: 1px solid rgba(0, 70, 70, .14);
  background: #fff;
  border-radius: 16px;
  padding: 14px;
}

.div4-card:focus-visible{
  outline: 2px solid rgba(100, 209, 212, .9);
  outline-offset: 2px;
}

.card-kicker{
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .04em;
  color: #004646;
  opacity: .75;
  margin-bottom: 6px;
}

.card-title{
  font-size: 14px;
  font-weight: 900;
  color: #004646;
  margin-bottom: 6px;
}

.card-desc{
  font-size: 13px;
  color: #004646;
  opacity: .85;
  line-height: 1.25;
}

.card-cta{
  margin-top: 10px;
  font-size: 13px;
  font-weight: 900;
  color: #004646;
}

/* ---------- FEED dinamico sotto grid ---------- */
.div4-feed[hidden]{
  display: none !important;
}

.div4-feed{
  max-width: 1200px;
  margin: 0 auto;
  margin-top: 14px;
  padding-top: 12px;
  border-top: 1px solid rgba(0, 70, 70, .12);
}

.div4-feed-title{
  margin: 0 0 10px 0;
  font-size: 14px;
  font-weight: 900;
  color: #004646;
}

.div4-feed-list{
  display: grid;
  grid-template-columns: 1fr;
  gap: 10px;
}

.feed-card{
  border: 1px solid rgba(0, 70, 70, .14);
  border-radius: 14px;
  padding: 12px 14px;
  background: rgba(100, 209, 212, .08);
}

.feed-card-title{
  font-weight: 900;
  color: #004646;
  font-size: 14px;
  margin-bottom: 6px;
}

.feed-card-text{
  color: #004646;
  opacity: .9;
  font-size: 13px;
  line-height: 1.25;
}

.feed-card-meta{
  margin-top: 8px;
  font-size: 12px;
  color: #004646;
  opacity: .7;
}

.feed-card-link{
  display: block;
  color: inherit;
  text-decoration: none;
}

.feed-card-cta{
  margin-top: 10px;
  font-weight: 900;
  color: #004646;
  opacity: .9;
}

/* ---------- RESPONSIVE ---------- */
@media (max-width: 980px){
  .div4-grid{
    grid-template-columns: 1fr;
  }
}

@media (max-width: 820px){
  .div4-head{
    flex-direction: column;
    align-items: flex-start;
  }

  .div4-weather{
    flex: 1 1 auto;
    width: 100%;
    max-width: 100%;
    min-width: unset;
  }

  .div4-divider{
    display: none;
  }

  .div4-head-text{
    width: 100%;
    min-width: unset;
    text-align: left;
  }

  .weather-line,
  .div4-subtitle{
    white-space: normal;
  }
}

/* ===== Meteo (chips 3h con icone) ===== */

.weather-chips[hidden]{ display:none !important; }

.weather-chips{
  display:flex;
  align-items:stretch;
  gap:8px;
  margin-top:8px;
  flex-wrap:wrap;
}

.weather-chip{
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:14px;
  border:1px solid rgba(0,70,70,.12);
  background: rgba(100,209,212,.10);
  min-width:86px;
}

.weather-chip-icon{
  width:18px;
  height:18px;
  flex:0 0 18px;
  opacity:.95;
}

.weather-chip-body{
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}

.weather-chip-time{
  font-size:11px;
  font-weight:900;
  color:#004646;
  opacity:.75;
  line-height:1.1;
  white-space:nowrap;
}

.weather-chip-temp{
  font-size:14px;
  font-weight:900;
  color:#004646;
  line-height:1.1;
  white-space:nowrap;
}

/* (opzionale) nascondi sottotitolo posizione/periodo in DIV4 */
.div4-subtitle{ display:none; }


/* ===================== Bottom Bar ===================== */
.bottom-nav{
  position: fixed;
  left: 0;
  right: 0;
  bottom: 0;
  background: #ffffff;
  border-top: 1px solid rgba(0,0,0,0.08);
  z-index: 9999;
}

.bottom-nav-inner{
  max-width: 1200px;
  margin: 0 auto;
  display: flex;
  justify-content: space-around;
  align-items: center;
  padding: 10px 16px;
  gap: 10px;
}

.bn-item{
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  color: #004646; /* stesso colore di DIV1 */
  padding: 6px 18px;
  border-radius: 12px;
  -webkit-tap-highlight-color: transparent;
  transition: transform .12s ease, background-color .12s ease;
}

.bn-item:active{ transform: scale(.96); }

.bn-icon{
  width: 30px;
  height: auto;
  display: block;
  margin-bottom: 2px;
}

.bn-label{
  font-size: 11px;
  line-height: 1.1;
}

/* Stato attivo: icona sempre #004646, sfondo giallo logo */
.bn-item.active{
  background: rgba(255,173,0,0.18);
}

@media (hover:hover){
  .bn-item:hover{ background: rgba(0,70,70,0.06); }
  .bn-item.active:hover{ background: rgba(255,173,0,0.22); }
}

/* Spazio sotto contenuti solo quando la bottom bar è visibile */
body{
  padding-bottom: 0;
}
body.has-bottom-nav{
  padding-bottom: 80px;
}

.bottom-nav[hidden]{ display:none !important; }

/* ===== DIV5: spazio promozionale ===== */
.div5{width:100%;}
.div5-inner{max-width:1200px;margin:0 auto;padding:14px 16px 0;}
.div5-banner{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:120px;padding:18px 18px;border-radius:18px;text-decoration:none;
  color:#004646;border:1px solid rgba(0,70,70,.10);
  background:linear-gradient(135deg, rgba(100,209,212,.10), rgba(255,173,0,.10));
}
.div5-badge{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  min-width:54px;height:28px;padding:0 10px;border-radius:999px;
  background:rgba(255,173,0,.18);font-size:12px;font-weight:800;
}
.div5-content{flex:1 1 auto;min-width:0;}
.div5-title{font-size:18px;font-weight:800;line-height:1.15;margin-bottom:6px;}
.div5-text{font-size:14px;line-height:1.35;opacity:.86;}
.div5-cta{flex:0 0 auto;font-size:14px;font-weight:800;white-space:nowrap;}

/* ===== DIV6: testo guida ===== */
.div6{width:100%;}
.div6-inner{max-width:1200px;margin:0 auto;padding:18px 16px 24px;}
.div6-title{margin:0 0 10px;font-size:20px;line-height:1.2;color:#004646;}
.div6-text{margin:0 0 10px;font-size:14px;line-height:1.5;color:#004646;opacity:.9;}
.div6-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:12px;}
.div6-step{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:14px;border:1px solid rgba(0,70,70,.10);background:#fff;}
.div6-step-n{flex:0 0 24px;height:24px;border-radius:999px;background:rgba(255,173,0,.18);display:inline-flex;align-items:center;justify-content:center;font-size:12px;font-weight:800;}

@media (max-width: 820px){
  .div5-banner{align-items:flex-start;flex-direction:column;}
  .div5-cta{align-self:flex-start;}
  .div6-steps{grid-template-columns:1fr;}
}


/* ===== Overlay scelta manuale luogo ===== */
.place-overlay{
  position: fixed;
  inset: 0;
  z-index: 21000;
  background: rgba(0,0,0,.45);
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 18px;
}
.place-overlay[hidden]{ display:none !important; }
.place-modal{
  width: min(560px, 100%);
  max-height: min(80vh, 720px);
  overflow: auto;
  background: #fff;
  border-radius: 16px;
  padding: 16px;
  border: 1px solid rgba(0,70,70,.14);
  color: #004646;
}
.place-head{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
}
.place-title{
  font-size:16px;
  font-weight:800;
  margin-bottom:6px;
}
.place-text{
  font-size:13px;
  line-height:1.35;
  opacity:.9;
}
.place-close{
  width:36px;
  height:36px;
  border:none;
  border-radius:10px;
  background:rgba(0,70,70,.06);
  color:#004646;
  font-size:24px;
  line-height:1;
}
.place-section-label{
  display:block;
  margin:14px 0 8px;
  font-size:12px;
  font-weight:800;
  color:#004646;
  opacity:.8;
}
.place-popular{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
}
.place-pill{
  padding:8px 12px;
  border:1px solid rgba(0,70,70,.14);
  border-radius:999px;
  background:#fff;
  color:#004646;
  font-weight:700;
  font-size:13px;
}
.place-search{
  width:100%;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid rgba(0,70,70,.18);
  background:#fff;
  color:#004646;
  font-size:14px;
}
.place-list{
  margin-top:12px;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
}
.place-item{
  width:100%;
  text-align:left;
  padding:12px 14px;
  border-radius:14px;
  border:1px solid rgba(0,70,70,.12);
  background:rgba(100,209,212,.08);
  color:#004646;
}
.place-item-title{
  font-size:14px;
  font-weight:900;
}
.place-item-meta{
  margin-top:4px;
  font-size:12px;
  opacity:.75;
}
.place-empty{
  margin-top:12px;
  padding:12px 14px;
  border-radius:14px;
  background:rgba(255,173,0,.12);
  color:#004646;
  font-size:13px;
}


/* ===== Forza esclusione bottom nav nelle pagine che non la devono mostrare ===== */
body.no-bottom-nav{
  padding-bottom: 0 !important;
}
body.no-bottom-nav .bottom-nav{
  display: none !important;
}
/* ====== HEADER RESTYLE ====== */
.account-btn--icon-only{
  padding: 8px;
  gap: 0;
  width: 40px;
  height: 40px;
  justify-content: center;
}
.account-btn--icon-only .account-btn__text{
  display:none !important;
}

/* ====== DIV4 RESTYLE ====== */
.div4-head--restyled{
  align-items:flex-start;
}
.div4-head--restyled .div4-weather{
  width:100%;
}

/* Account header state */
.div1-right{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
}
.account-first-name{
  max-width:92px;
  overflow:hidden;
  white-space:nowrap;
  text-overflow:ellipsis;
  font-size:14px;
  font-weight:800;
  color:#fff;
}
.account-menu{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:170px;
  background:#fff;
  border:1px solid rgba(0,70,70,.12);
  border-radius:14px;
  box-shadow:0 14px 34px rgba(0,70,70,.18);
  padding:8px;
  z-index:9999;
}
.account-menu[hidden]{display:none!important;}
.account-menu__item{
  display:block;
  width:100%;
  text-align:left;
  border:0;
  background:transparent;
  color:#004646;
  text-decoration:none;
  font-size:14px;
  font-weight:800;
  padding:11px 10px;
  border-radius:10px;
  cursor:pointer;
}
.account-menu__item:hover{
  background:rgba(100,209,212,.14);
}

/* Auth / stay v2 */
.auth-page{max-width:920px;margin:0 auto;padding:calc(var(--headerStickyH,90px) + 28px) 16px 36px;color:#004646;}
.auth-card{background:#fff;border:1px solid rgba(0,70,70,.10);border-radius:24px;box-shadow:0 14px 34px rgba(0,70,70,.08);padding:22px;}
.auth-card--wide{max-width:980px;}
.auth-card h1{margin:0 0 8px;font-size:30px;line-height:1.1;color:#004646;}
.auth-card h2{margin:22px 0 10px;font-size:18px;line-height:1.2;color:#004646;}
.auth-subtitle,.auth-note{margin:0 0 14px;font-size:14px;line-height:1.5;opacity:.85;}
.auth-form{display:flex;flex-direction:column;gap:12px;}
.auth-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;}
.auth-form input{width:100%;box-sizing:border-box;border:1px solid rgba(0,70,70,.16);border-radius:14px;padding:13px 14px;font-size:15px;outline:none;background:#fff;color:#004646;}
.auth-form input:focus{border-color:#64d1d4;box-shadow:0 0 0 3px rgba(100,209,212,.20);}
.auth-btn{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;border:0;border-radius:999px;background:#004646;color:#fff;font-weight:900;padding:13px 18px;font-size:14px;cursor:pointer;margin-top:4px;}
.auth-message{min-height:20px;font-size:14px;font-weight:700;color:#004646;}
.auth-toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%);z-index:9999;background:#004646;color:#fff;padding:13px 18px;border-radius:999px;box-shadow:0 12px 30px rgba(0,0,0,.22);font-weight:900;}
.stay-events{display:grid;gap:10px;margin-top:12px;}
.stay-event{border:1px solid rgba(0,70,70,.10);border-radius:16px;padding:13px 14px;background:rgba(100,209,212,.07);display:grid;gap:4px;}
.stay-event strong{font-size:15px;}.stay-event span,.stay-event small{font-size:13px;opacity:.82;}
@media(max-width:640px){.auth-grid{grid-template-columns:1fr}.auth-card h1{font-size:25px}.auth-card{padding:18px}}

/* Auth final refinements */
.auth-hp{position:absolute!important;left:-9999px!important;opacity:0!important;height:0!important;width:0!important;padding:0!important;border:0!important;}
.auth-alt{margin:0;font-size:14px;line-height:1.45;color:#004646;}
.auth-alt a{color:#004646;font-weight:800;text-decoration:underline;text-underline-offset:3px;}
.account-first-name{font-weight:900;color:#004646;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:14px;}
.account-menu{position:absolute;right:10px;top:calc(100% + 8px);z-index:9999;background:#fff;border:1px solid rgba(0,70,70,.14);border-radius:16px;box-shadow:0 14px 35px rgba(0,0,0,.16);padding:8px;min-width:170px;}
.account-menu[hidden]{display:none!important;}
.account-menu__item{display:block;width:100%;box-sizing:border-box;text-align:left;text-decoration:none;background:transparent;border:0;border-radius:12px;padding:11px 12px;font-size:14px;font-weight:800;color:#004646;cursor:pointer;}
.account-menu__item:hover{background:rgba(100,209,212,.18);}
.div1-right{position:relative;display:flex;align-items:center;gap:8px;}
@media(max-width:420px){.account-first-name{max-width:76px;font-size:13px}.account-menu{right:0}}

/* ===== Protezione contenuti: lascia utilizzabili moduli e controlli ===== */
body, body *:not(input):not(textarea):not(select):not(option):not([contenteditable="true"]) {
  -webkit-user-select: none;
  user-select: none;
  -webkit-touch-callout: none;
}
img {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: auto;
}
input, textarea, select, option, [contenteditable="true"] {
  -webkit-user-select: text;
  user-select: text;
  -webkit-touch-callout: default;
}

/* Privacy, account e consensi */
.consent-row {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:14px;
  line-height:1.4;
}
.consent-row input { margin-top:3px; flex:0 0 auto; }
.legal-page { max-width:900px; margin:0 auto; padding:28px 16px 60px; }
.legal-card { background:#fff; border-radius:20px; padding:24px; box-shadow:0 8px 28px rgba(0,0,0,.08); }
.legal-card h1 { color:#004646; }
.legal-card h2 { margin-top:28px; color:#004646; font-size:20px; }
.legal-card p { line-height:1.65; }
.legal-warning { padding:14px; border-radius:12px; background:#fff5d8; }
.account-separator { border:0; border-top:1px solid rgba(0,70,70,.15); margin:28px 0; }
.auth-link-button { display:inline-block; padding:11px 15px; border-radius:999px; background:#eefafa; color:#004646; font-weight:700; text-decoration:none; }
.danger-zone { border:1px solid #d9a1a1; border-radius:16px; padding:16px; }
.danger-btn { border:0; border-radius:999px; padding:11px 16px; background:#9f2020; color:#fff; font-weight:700; cursor:pointer; }
.account-dialog { width:min(520px, calc(100% - 32px)); border:0; border-radius:18px; padding:22px; }
.account-dialog::backdrop { background:rgba(0,0,0,.55); }
.dialog-actions { display:flex; justify-content:flex-end; gap:10px; flex-wrap:wrap; }

/* ===== Correzione allineamento checkbox privacy/marketing ===== */
.auth-form .consent-row {
  display: grid;
  grid-template-columns: 22px minmax(0, 1fr);
  align-items: start;
  width: 100%;
  box-sizing: border-box;
  gap: 10px;
  margin: 6px 0;
  padding: 0;
  text-align: left;
}

.auth-form .consent-row input[type="checkbox"] {
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
  justify-self: start;
  align-self: start;
  flex: none;
}

.auth-form .consent-row span {
  display: block;
  min-width: 0;
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
  line-height: 1.45;
  text-align: left;
}
