/* =========================================================================
   TEMA "NOTTURNO" — Notturno Oro · Booking engine WBHotel
   CSS self-contained: caricato AL POSTO di style.css quando il tenant sceglie
   il tema Notturno. Re-stila il DOM Bootstrap reale (console, risultati, card
   camera, modal, pagina grazie) in chiave FULL DARK, lusso 5 stelle.
   Concept: eleganza notturna — superfici quasi nere, accenti oro/champagne,
   display serif Didone-ish, prezzi oro tabellari. Nessuna risorsa esterna.
   ========================================================================= */

:root{
  --bg:#12151b;            /* near-black base */
  --surface:#1a1f28;       /* elevated surface */
  --surface-2:#1e232d;     /* card / modal surface */
  --line:rgba(255,255,255,.08);  /* hairline */
  --line-2:rgba(255,255,255,.14);
  --ivory:#ece7db;         /* soft ivory text */
  --muted:#9aa0a8;         /* muted text */
  --faint:#6f757e;         /* faintest text */
  --gold:#c9a24b;          /* champagne gold accent */
  --gold-2:#d9be74;        /* lighter gold */
  --gold-deep:#9c7c33;     /* deep gold for gradients */
  --ink-on-gold:#161009;   /* dark ink over gold CTA */
  --danger:#e08a7e;
  --leaf:#8fbf9a;
  --leaf-bg:rgba(143,191,154,.12);
  --r:16px; --r-sm:11px;
  --shadow:0 24px 60px -22px rgba(0,0,0,.72);
  --shadow-sm:0 12px 30px -18px rgba(0,0,0,.66);
  --glow:0 0 0 3px rgba(201,162,75,.28);
  --ff-display:"Hoefler Text","Didot","Bodoni MT","Playfair Display","Times New Roman",Georgia,serif;
  --ff-sans:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}

/* ---------- Ground: SOLID dark, foto struttura NEUTRALIZZATA ----------
   index.php imposta la foto come style inline sul <body>: la battiamo con
   !important e background-image:none. Sottile bagliore oro via ::before. */
body{
  font-family:var(--ff-sans); color:var(--ivory); font-size:15px; line-height:1.6;
  background-image:none!important;
  background:var(--bg)!important;
  -webkit-font-smoothing:antialiased; position:relative; min-height:100vh;
}
body::before{
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none;
  background:
    radial-gradient(1100px 620px at 78% -8%, rgba(201,162,75,.16), transparent 60%),
    radial-gradient(900px 700px at 12% 108%, rgba(201,162,75,.08), transparent 62%),
    linear-gradient(180deg,#12151b 0%, #0e1116 100%);
}
/* z-index differenziati: header (e dropdown lingua) SOPRA console/risultati. */
.header-content{ position:relative; z-index:3; }
.page-content{ position:relative; z-index:1; }

/* ---------- Header ---------- */
.header-content{ padding-top:6px; }
.header-content .logo{ max-width:190px; height:auto; filter:drop-shadow(0 2px 10px rgba(0,0,0,.6)); }
.header-content .nav-link{
  color:var(--ivory); font-weight:500; letter-spacing:.02em;
  transition:color .2s ease, opacity .2s ease;
}
.header-content .nav-link:hover{ color:var(--gold-2); opacity:1; }
.header-content .dropdown-menu{
  background:var(--surface-2)!important; border:1px solid var(--line-2)!important;
  border-radius:var(--r-sm); box-shadow:var(--shadow); padding:6px;
}
.header-content .dropdown-item{ color:var(--ivory); border-radius:8px; font-size:14px; }
.header-content .dropdown-item:hover{ background:rgba(255,255,255,.06); color:var(--gold-2); }
.header-content .dropdown-item.active{ background:var(--gold)!important; color:var(--ink-on-gold)!important; }
.header-content .nav .lang, .header-content .dropdown-toggle{
  color:var(--ivory); border:1px solid var(--line-2); border-radius:999px; padding:5px 12px;
}

/* ---------- Hero copy (schermata iniziale) ---------- */
h1{ font-family:var(--ff-display); font-weight:500; letter-spacing:.01em; color:var(--ivory); }
#risultati h1{ font-size:clamp(28px,4vw,46px); line-height:1.06; text-wrap:balance; }
.text-shadow{ text-shadow:0 2px 22px rgba(0,0,0,.7); }

/* ---------- Console di ricerca (superficie scura elevata) ---------- */
.page-content .col-md-3 .card{
  background:var(--surface)!important;
  border:1px solid var(--line-2)!important; border-radius:var(--r)!important;
  box-shadow:var(--shadow)!important;
}
.page-content .col-md-3 .card-body{ padding:22px 22px 24px; }

.form-label{
  font-weight:600; font-size:.85rem; color:var(--muted); margin-bottom:.4rem;
  letter-spacing:.02em;
}
.form-label .text-muted{ color:var(--faint)!important; font-weight:500; }

.form-control,
input[type=date], input[type=number], input[type=text], input[type=email], input[type=tel]{
  width:100%; border:1px solid var(--line-2); background:var(--bg); color:var(--ivory);
  border-radius:var(--r-sm); padding:.62rem .8rem; font:inherit; font-weight:500;
  transition:border-color .15s ease, box-shadow .15s ease, background .15s ease;
}
.form-control::placeholder, input::placeholder{ color:var(--faint); }
.form-control:focus,
input[type=date]:focus, input[type=number]:focus, input[type=text]:focus,
input[type=email]:focus, input[type=tel]:focus{
  border-color:var(--gold); background:var(--surface-2);
  box-shadow:var(--glow); outline:none; color:var(--ivory);
}
/* date/number picker indicator visibile su fondo scuro */
input[type=date]::-webkit-calendar-picker-indicator{ filter:invert(1) opacity(.6); }
.form-control-sm{ padding:.45rem .6rem; }
/* riga ospiti: input piccolo + label affiancata */
.form-group.d-flex .form-label{ margin-bottom:0; color:var(--ivory); font-weight:600; }
.form-select{
  background:var(--bg); color:var(--ivory);
  border:1px solid var(--line-2); border-radius:var(--r-sm); padding:.5rem .7rem;
}
.form-select:focus{ border-color:var(--gold); box-shadow:var(--glow); outline:none; }

/* nota ospiti + errore date */
.page-content .col-md-3 .card .text-success{ color:var(--leaf)!important; }
#errore_date .text-danger{ color:var(--danger)!important; }

/* ---------- Bottoni ---------- */
.btn-primary{
  background:linear-gradient(180deg,var(--gold-2),var(--gold) 55%,var(--gold-deep))!important;
  border:0!important; color:var(--ink-on-gold)!important; border-radius:var(--r-sm)!important;
  font-weight:700!important; letter-spacing:.02em; padding:.7rem 1rem;
  box-shadow:0 14px 30px -14px rgba(201,162,75,.55);
  transition:transform .16s ease, box-shadow .16s ease, filter .16s ease;
}
.btn-primary:hover{ transform:translateY(-1px); filter:brightness(1.06); color:var(--ink-on-gold)!important; }
.btn-primary:focus-visible{ outline:3px solid rgba(217,190,116,.7); outline-offset:2px; }
#check_disponibilita{ font-size:1rem; padding:.85rem 1rem; }

.btn-secondary{
  background:transparent!important; border:1px solid var(--line-2)!important; color:var(--gold-2)!important;
  border-radius:var(--r-sm)!important; font-weight:600!important;
}
.btn-secondary:hover{ background:rgba(201,162,75,.10)!important; border-color:var(--gold)!important; color:var(--gold-2)!important; }

/* bottone "Prenota" della tariffa: CTA piena oro. Specificita' (0,2,0) per
   vincere su .btn-secondary a prescindere dall'ordine sorgente. */
.prenota_camera.btn-secondary{
  background:linear-gradient(180deg,var(--gold-2),var(--gold) 55%,var(--gold-deep))!important;
  border:1px solid var(--gold)!important; color:var(--ink-on-gold)!important;
  font-weight:700!important;
}
.prenota_camera.btn-secondary:hover{ filter:brightness(1.06); border-color:var(--gold-2)!important; color:var(--ink-on-gold)!important; }

/* ---------- Pannello risultati ---------- */
#risultati .card{
  background:var(--surface)!important; border:1px solid var(--line-2)!important;
  border-radius:var(--r)!important; box-shadow:var(--shadow)!important; color:var(--ivory);
}
#risultati .card .card-body h5{ font-family:var(--ff-display); font-weight:500; color:var(--ivory); }
.lista-impostazioni{ list-style:none; padding:0; margin:0; display:flex; flex-wrap:wrap; }
.lista-impostazioni li{
  padding:0 14px 4px 0; margin-right:14px; color:var(--muted); font-weight:600; font-size:.86rem;
  border-right:1px solid var(--line);
}
.lista-impostazioni li:last-child{ border-right:0; margin-right:0; }
.contieni-risultati{ height:60vh; overflow-y:auto; padding-right:6px; }
.contieni-risultati::-webkit-scrollbar{ width:8px; }
.contieni-risultati::-webkit-scrollbar-thumb{ background:var(--line-2); border-radius:8px; }
.contieni-risultati::-webkit-scrollbar-track{ background:transparent; }

/* ---------- Card camera ---------- */
.camera{
  background:var(--surface-2)!important; border:1px solid var(--line); border-radius:var(--r);
  box-shadow:var(--shadow-sm); overflow:hidden; margin-bottom:18px; color:var(--ivory);
  transition:transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.camera:hover{ transform:translateY(-2px); box-shadow:var(--shadow); border-color:var(--line-2); }
.camera .img-camera{ width:100%; height:100%; min-height:170px; object-fit:cover; }
.camera h6.fw-bold{ font-family:var(--ff-display); font-weight:500; font-size:1.3rem; letter-spacing:.01em; color:var(--ivory); }
.camera .text-truncate{ color:var(--muted); }
.lista-proprieta-camera, .lista-servizi-camera{ list-style:none; padding:0; margin:.2rem 0; display:flex; flex-wrap:wrap; gap:14px; color:var(--muted); font-size:.85rem; }
.camera .a_partire_da, .camera p.mb-1.fst-italic{ color:var(--faint); text-transform:uppercase; letter-spacing:.06em; font-size:.72rem; }
.camera .prezzo{ font-family:var(--ff-display); font-weight:600; font-size:1.5rem; color:var(--gold-2); font-variant-numeric:tabular-nums; }
.mostra_informazioni{ font-size:.8rem; padding:.5rem .9rem; }

/* ---------- Riga tariffa ---------- */
.tariffa{ border-bottom:1px solid var(--line); }
.tariffa:last-child{ border-bottom:none!important; }
.tariffa h6{ font-family:var(--ff-display); font-style:normal!important; font-weight:500; font-size:1.02rem; color:var(--ivory); display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.tariffa .mb-0{ color:var(--faint); font-size:.82rem; }
.tariffa .border-start{ border-left:1px solid var(--line)!important; }
.tariffa-prezzo{
  font-family:var(--ff-display); font-weight:600; font-size:1.4rem; color:var(--gold-2);
  font-variant-numeric:tabular-nums; letter-spacing:.01em;
}
.risalta{ font-weight:700; color:var(--gold-2); }

/* badge trattamento + Uso singola */
.badge-trattamento{
  display:inline-block; background:var(--leaf-bg); color:var(--leaf);
  font-size:.7rem; font-weight:700; padding:.2rem .55rem; border-radius:7px;
  margin-left:.3rem; vertical-align:middle; white-space:nowrap; letter-spacing:.02em;
  border:1px solid rgba(143,191,154,.28);
}
.badge.bg-info{ background:rgba(201,162,75,.14)!important; color:var(--gold-2)!important; font-weight:700; border-radius:7px; padding:.28rem .55rem; border:1px solid rgba(201,162,75,.3); }

/* ---------- Modal prenotazione / informazioni (DARK obbligatorio) ---------- */
#modalPrenotaCamera .modal-content, #modalInformazioniCamera .modal-content{
  background:var(--surface-2)!important; color:var(--ivory);
  border:1px solid var(--line-2)!important; border-radius:var(--r); box-shadow:var(--shadow); overflow:hidden;
}
#modalPrenotaCamera .modal-header, #modalInformazioniCamera .modal-header{
  background:linear-gradient(180deg,rgba(201,162,75,.10),transparent)!important;
  border-bottom:1px solid var(--line-2)!important; padding:18px 22px;
}
#modalPrenotaCamera .modal-header .btn-close, #modalInformazioniCamera .modal-header .btn-close{
  filter:invert(1) grayscale(1) brightness(1.6);
}
#modalPrenotaCamera .modal-title, #modalInformazioniCamera .modal-title{ font-family:var(--ff-display); font-weight:500; color:var(--ivory); }
#modalPrenotaCamera .modal-body, #modalInformazioniCamera .modal-body{ padding:22px 24px; color:var(--ivory); }
#modalPrenotaCamera .table{ margin-bottom:0; color:var(--ivory); }
#modalPrenotaCamera .table td{ padding:.4rem .2rem; color:var(--ivory); border-color:var(--line)!important; }
#modalPrenotaCamera .form-label.small{ font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--faint); font-weight:700; }
#modalPrenotaCamera h5, #modalPrenotaCamera h6,
#modalInformazioniCamera h5, #modalInformazioniCamera h6{ font-family:var(--ff-display); font-weight:500; color:var(--ivory); }
#modalPrenotaCamera .modal-footer, #modalInformazioniCamera .modal-footer{ border-top:1px solid var(--line-2)!important; }
/* input telefono intl-tel-input: dark + funzionante, largo 100% */
.iti{ width:100%; }
.iti__tel-input, .iti input[type=tel]{ width:100%; background:var(--bg); color:var(--ivory); border:1px solid var(--line-2); }
.iti__dropdown-content, .iti__country-list{ background:var(--surface-2)!important; color:var(--ivory); border:1px solid var(--line-2); }
.iti__country.iti__highlight{ background:rgba(201,162,75,.16)!important; }
.iti__country-name, .iti__dial-code{ color:var(--ivory); }

/* ---------- Pagina "grazie" (usa .text-light bianco → serve fondo scuro) ---------- */
body.thank-you-page{
  background-image:none!important;
  background:
    radial-gradient(1000px 560px at 80% -10%, rgba(201,162,75,.20), transparent 60%),
    linear-gradient(180deg,#141821 0%, #0d1015 100%)!important;
  color:var(--ivory);
}
body.thank-you-page::before{ display:none; }
.thank-you-page h1{ font-family:var(--ff-display); font-weight:500; font-size:clamp(32px,5vw,56px); line-height:1.08; color:var(--ivory); }
/* CTA "nuova prenotazione": rimpiazza l'animazione a maschera con bottone oro pulito */
.button-container-3{
  position:static!important; width:auto!important; height:auto!important;
  overflow:visible!important; border:0!important; background:transparent!important;
  display:inline-block;
}
.button-container-3 .mas{ display:none!important; }
.button-container-3 .torna_home{
  position:static!important; width:auto!important; height:auto!important;
  -webkit-mask:none!important; mask:none!important; animation:none!important;
  background:linear-gradient(180deg,var(--gold-2),var(--gold) 55%,var(--gold-deep))!important;
  color:var(--ink-on-gold)!important; border:0!important;
  border-radius:999px!important; padding:.8rem 1.6rem!important; font-weight:700!important;
  letter-spacing:.02em; box-shadow:0 16px 34px -16px rgba(201,162,75,.6); cursor:pointer;
  transition:transform .16s ease, filter .16s ease;
}
.button-container-3 .torna_home:hover{ transform:translateY(-1px); filter:brightness(1.06); }

/* ---------- Responsive ---------- */
@media (max-width:767px){
  .contieni-risultati{ height:auto; max-height:none; overflow:visible; }
  .camera .img-camera{ min-height:150px; }
  .lista-impostazioni{ font-size:.8rem; }
}

/* ---------- Accessibilità ---------- */
:focus-visible{ outline:3px solid rgba(217,190,116,.65); outline-offset:2px; }
@media (prefers-reduced-motion:reduce){ *{ transition:none!important; animation:none!important; } }
