/* ==========================================================================
   CORTE ACQUAVIVA — Design system
   Rustico salentino: pietra leccese, ulivo, ocra, mare Ionio/Adriatico
   ========================================================================== */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,300;0,9..144,400;0,9..144,500;0,9..144,600;0,9..144,700;1,9..144,400;1,9..144,500&family=Jost:wght@300;400;500;600&display=swap');

:root{
  /* --- palette --- */
  --pietra:        #F3E9D6;   /* pietra leccese chiara */
  --pietra-alta:   #FBF6EC;   /* quasi bianco calce */
  --pietra-ombra:  #E3D2AC;   /* pietra in ombra */
  --terracotta:    #BE5A2C;   /* coppo / terracotta */
  --terracotta-alta:#D97D42;
  --ocra:          #D6963C;   /* ocra / grano */
  --ulivo:         #6E7F45;   /* verde ulivo, usato solo per l'illustrazione del ramo */
  --ulivo-scuro:   #3D4A2B;   /* usato per gli stati "disponibile" nel calendario */
  --mare:          #2E8C87;   /* mare cristallino, acque basse */
  --mare-chiaro:   #6BBFB6;   /* riflessi turchesi in superficie */
  --mare-scuro:    #1F5F5C;   /* profondità sotto costa, per sfumature */
  --notte:         #23201A;   /* legno bruciato / testo */
  --crema:         #FDFAF3;

  --font-display: 'Fraunces', serif;
  --font-body: 'Jost', sans-serif;

  --radius-arco: 200px 200px 6px 6px;
  --ombra: 0 12px 32px -12px rgba(35,32,26,0.35);
  --ombra-soft: 0 6px 18px -8px rgba(35,32,26,0.22);
  --ease-elegante: cubic-bezier(.16,1,.3,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  font-family:var(--font-body);
  color:var(--notte);
  background:var(--crema);
  -webkit-font-smoothing:antialiased;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
h1,h2,h3,h4{
  font-family:var(--font-display);
  font-weight:600;
  margin:0 0 .5em;
  line-height:1.08;
  letter-spacing:-.01em;
}
p{ line-height:1.7; margin:0 0 1em; color:#3d3627; }
p a{
  color:var(--mare);
  text-decoration:underline;
  text-underline-offset:2px;
  text-decoration-color:rgba(46,140,135,0.4);
  transition:color .3s var(--ease-elegante), text-decoration-color .3s var(--ease-elegante);
}
p a:hover{ color:var(--terracotta); text-decoration-color:currentColor; }
.eyebrow{
  font-family:var(--font-body);
  text-transform:uppercase;
  letter-spacing:.22em;
  font-size:.72rem;
  font-weight:600;
  color:var(--terracotta);
}
.container{
  max-width:1180px;
  margin:0 auto;
  padding:0 28px;
}
section{ padding:96px 0; position:relative; }
@media (max-width:720px){ section{ padding:64px 0; } }

/* focus visibile per accessibilità */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{
  outline:3px solid var(--ocra);
  outline-offset:3px;
}
@media (prefers-reduced-motion: reduce){
  *{ animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
}

/* ==========================================================================
   Texture di sfondo — intonaco di calce
   ========================================================================== */
.texture-calce{
  background-color:var(--pietra-alta);
  background-image:
    radial-gradient(circle at 18% 22%, rgba(190,90,44,0.05), transparent 40%),
    radial-gradient(circle at 82% 68%, rgba(95,110,67,0.06), transparent 45%);
}

/* ==========================================================================
   HEADER / NAV
   ========================================================================== */
.site-header{
  position:sticky; top:0; z-index:100;
  background:rgba(253,250,243,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(35,32,26,0.08);
  transition:box-shadow .4s var(--ease-elegante), background .4s var(--ease-elegante);
}
.site-header.scorrendo{
  box-shadow:0 10px 30px -16px rgba(35,32,26,0.3);
  background:rgba(253,250,243,0.98);
}
.nav{
  display:flex; align-items:center; justify-content:space-between;
  padding:16px 28px;
  max-width:1180px; margin:0 auto;
}
.brand{
  display:flex; align-items:center; gap:12px;
  font-family:var(--font-display);
  font-size:1.35rem; font-weight:600;
  color:var(--notte);
}
.brand-mark{
  width:38px; height:38px; flex:none;
}
.brand small{
  display:block;
  font-family:var(--font-body);
  font-size:.62rem;
  letter-spacing:.2em;
  text-transform:uppercase;
  color:var(--terracotta);
  font-weight:500;
}
.nav-links{
  display:flex; gap:8px; align-items:center;
  list-style:none; margin:0; padding:0;
}
.nav-links a{
  padding:10px 16px;
  font-size:.92rem; font-weight:500;
  border-radius:999px;
  transition:background .35s var(--ease-elegante), color .35s var(--ease-elegante);
}
.nav-links a:hover{ background:var(--pietra); color:var(--terracotta); }
.nav-links a.attivo{ background:var(--mare); color:var(--crema); }
.nav-cta{
  background:var(--terracotta) !important; color:var(--crema) !important;
}
.nav-cta:hover{ background:var(--terracotta-alta) !important; color:var(--crema) !important; }
.lang-switch{
  border:1.5px solid var(--mare) !important;
  font-weight:700 !important;
  font-size:.8rem !important;
  padding:8px 14px !important;
  margin-left:6px;
}
.lang-switch:hover{ background:var(--mare) !important; color:var(--crema) !important; }

.nav-toggle{
  display:none;
  background:none; border:none; cursor:pointer;
  width:44px; height:44px;
  align-items:center; justify-content:center;
}
.nav-toggle span, .nav-toggle span::before, .nav-toggle span::after{
  content:''; display:block; width:24px; height:2px; background:var(--notte);
  position:relative; transition:.25s;
}
.nav-toggle span::before{ position:absolute; top:-8px; }
.nav-toggle span::after{ position:absolute; top:8px; }

@media (max-width:860px){
  .nav-toggle{ display:flex; }
  .nav-links{
    position:absolute; top:100%; left:0; right:0;
    flex-direction:column; align-items:stretch;
    background:var(--crema);
    padding:12px 20px 24px;
    border-bottom:1px solid rgba(35,32,26,0.08);
    display:none;
  }
  .nav-links.aperto{ display:flex; }
  .nav-links a{ display:block; padding:14px 12px; text-align:center; }
}

/* ==========================================================================
   ARCO — motivo distintivo (finestre/portali in pietra leccese)
   ========================================================================== */
.arco{
  border-radius:var(--radius-arco);
  overflow:hidden;
  position:relative;
  background:linear-gradient(160deg, var(--pietra-ombra), var(--pietra));
}
.arco > svg{ display:block; width:100%; height:100%; transition:transform .7s var(--ease-elegante); transform-origin:center; }
.arco:hover > svg{ transform:scale(1.05); }
.arco::after{
  content:'';
  position:absolute; inset:0;
  border-radius:inherit;
  box-shadow:inset 0 0 0 6px rgba(253,250,243,0.9), inset 0 0 0 9px rgba(35,32,26,0.06);
  pointer-events:none;
}
.arco-placeholder{
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:10px;
  min-height:100%;
  padding:40px 20px;
  color:var(--notte);
  text-align:center;
  transition:transform .7s var(--ease-elegante);
  transform-origin:center;
}
.arco:hover > .arco-placeholder{ transform:scale(1.05); }
.arco-placeholder svg{ width:46px; height:46px; opacity:.55; }
.arco-placeholder span{
  font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; opacity:.65;
}

/* ==========================================================================
   HERO
   ========================================================================== */
.hero{
  padding:64px 0 0;
  overflow:hidden;
  position:relative;
}
.hero-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:56px;
  align-items:center;
}
@media (max-width:900px){
  .hero-grid{ grid-template-columns:1fr; gap:40px; }
}
.hero h1{
  font-size:clamp(2.4rem, 5vw, 3.6rem);
  color:var(--terracotta);
}
.hero h1 em{
  font-style:normal;
  color:var(--mare);
}
.hero-lead{
  font-size:1.12rem;
  max-width:46ch;
}
.hero-visual{
  aspect-ratio:4/5;
  width:100%;
}

/* ==========================================================================
   BOTTONI
   ========================================================================== */
.btn{
  display:inline-flex; align-items:center; gap:10px;
  padding:15px 28px;
  border-radius:999px;
  font-family:var(--font-body); font-weight:600; font-size:.94rem;
  border:1.5px solid transparent;
  cursor:pointer;
  transition:transform .4s var(--ease-elegante), box-shadow .4s var(--ease-elegante), background .4s var(--ease-elegante), color .4s var(--ease-elegante);
}
.btn-primario{ background:var(--terracotta); color:var(--crema); }
.btn-primario:hover{ background:var(--terracotta-alta); box-shadow:var(--ombra-soft); transform:translateY(-3px); }
.btn-secondario{ background:transparent; border-color:var(--mare); color:var(--mare); }
.btn-secondario:hover{ background:var(--mare); color:var(--crema); transform:translateY(-3px); }
.btn-mare{ background:var(--mare); color:var(--crema); }
.btn-mare:hover{ background:var(--mare-scuro); box-shadow:var(--ombra-soft); transform:translateY(-3px); }
.btn-chiaro{ background:var(--crema); color:var(--mare); }
.btn-chiaro:hover{ background:var(--pietra); transform:translateY(-3px); }

/* ==========================================================================
   DIVISORE — filare di pietra a secco (muretto)
   ========================================================================== */
.divisore-muretto{
  height:34px;
  background-image: repeating-linear-gradient(
      100deg,
      rgba(35,32,26,0.08) 0 3px,
      transparent 3px 46px
    ),
    repeating-linear-gradient(
      80deg,
      rgba(35,32,26,0.06) 0 3px,
      transparent 3px 38px
    );
  background-color:var(--pietra-ombra);
  opacity:.7;
}

/* ==========================================================================
   SEZIONI GENERICHE
   ========================================================================== */
.section-head{
  max-width:640px;
  margin:0 auto 56px;
  text-align:center;
}
.section-head.a-sinistra{ margin:0 0 48px; text-align:left; }

.griglia-3{
  display:flex; flex-wrap:wrap; justify-content:center; gap:32px;
}
.griglia-3 > *{
  flex:1 1 300px; max-width:340px;
}
.griglia-2{
  display:grid; grid-template-columns:repeat(2,1fr); gap:48px; align-items:center;
}
@media (max-width:860px){
  .griglia-3{ grid-template-columns:1fr 1fr; }
  .griglia-2{ grid-template-columns:1fr; }
}
@media (max-width:600px){
  .griglia-3{ grid-template-columns:1fr; }
}

/* card servizi / valori */
.card-valore{
  background:var(--crema);
  border:1px solid rgba(35,32,26,0.08);
  border-radius:20px;
  padding:34px 28px;
  box-shadow:var(--ombra-soft);
}
.card-valore svg{ width:34px; height:34px; color:var(--terracotta); margin-bottom:16px; }
.card-valore h3{ font-size:1.15rem; }

/* ==========================================================================
   BANDA MARE — CTA scura
   ========================================================================== */
.banda-mare{
  background:linear-gradient(135deg, var(--mare) 0%, var(--mare-scuro) 100%);
  color:var(--crema);
  position:relative;
  overflow:hidden;
}
.banda-mare::before{
  content:'';
  position:absolute; inset:-20%;
  background-image:repeating-linear-gradient(90deg, rgba(255,255,255,0.04) 0 2px, transparent 2px 34px);
  animation:deriva-luce-mare 16s linear infinite;
}
@keyframes deriva-luce-mare{
  0%{ transform:translateX(0); }
  100%{ transform:translateX(34px); }
}
.banda-mare .container{ position:relative; z-index:1; }
.banda-mare h2{ color:var(--crema); }
.banda-mare p{ color:rgba(253,250,243,0.82); }

/* ==========================================================================
   APPARTAMENTI — card
   ========================================================================== */
.griglia-appartamenti{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  gap:40px;
}
.griglia-appartamenti .card-appartamento{
  flex:1 1 320px;
  max-width:360px;
}
.card-appartamento{
  background:var(--crema);
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--ombra-soft);
  border:1px solid rgba(35,32,26,0.07);
  display:flex; flex-direction:column;
}
.card-appartamento .arco{ aspect-ratio:5/4; border-radius:0; }
.card-appartamento .foto-wrap{
  border-radius: 0 0 90px 90px / 0 0 40px 40px;
  overflow:hidden;
  aspect-ratio:5/4;
}
.card-appartamento-body{ padding:26px 26px 30px; flex:1; display:flex; flex-direction:column; }
.card-appartamento h3{ font-size:1.4rem; color:var(--mare); }
.card-appartamento .eyebrow{ margin-bottom:6px; }
.tag-riga{ display:flex; flex-wrap:wrap; gap:8px; margin:16px 0 20px; }
.tag{
  font-size:.74rem; font-weight:600; letter-spacing:.03em;
  padding:6px 12px; border-radius:999px;
  background:var(--pietra); color:var(--notte);
  display:inline-flex; align-items:center; gap:6px;
}
.tag svg{ width:14px; height:14px; }
.card-appartamento-body p{ flex:1; }

/* ==========================================================================
   ICONE SERVIZI — riga
   ========================================================================== */
.servizi-riga{
  display:grid; grid-template-columns:repeat(4,1fr); gap:28px;
}
@media (max-width:760px){ .servizi-riga{ grid-template-columns:repeat(2,1fr); } }
.servizio-item{ text-align:center; }
.servizio-item svg{ width:36px; height:36px; color:var(--mare); margin-bottom:12px; }
.servizio-item span{ display:block; font-weight:500; font-size:.92rem; }

/* ==========================================================================
   DOVE SIAMO — mappa + attrazioni
   ========================================================================== */
.mappa-embed{
  border-radius:24px;
  overflow:hidden;
  box-shadow:var(--ombra);
  border:6px solid var(--crema);
}
.mappa-embed iframe{ width:100%; height:420px; border:0; display:block; }

.lista-distanze{ list-style:none; margin:0; padding:0; }
.lista-distanze li{
  display:flex; justify-content:space-between; align-items:baseline;
  padding:14px 0; border-bottom:1px dashed rgba(35,32,26,0.18);
  font-size:.98rem;
}
.lista-distanze li strong{ color:var(--mare); }
.lista-distanze li span{ color:var(--terracotta); font-weight:600; white-space:nowrap; margin-left:12px; }

.card-attrazione{
  background:var(--crema); border-radius:20px; padding:0; overflow:hidden;
  box-shadow:var(--ombra-soft); border:1px solid rgba(35,32,26,0.07);
}
.card-attrazione .arco-placeholder{ min-height:150px; }
.scena-attrazione{ min-height:160px; aspect-ratio:400/220; overflow:hidden; }
.scena-attrazione svg{ display:block; width:100%; height:100%; }
.scena-attrazione img{ display:block; width:100%; height:100%; object-fit:cover; }
.card-attrazione-body{ padding:20px 22px 24px; }
.card-attrazione h3{ font-size:1.08rem; margin-bottom:6px; }
.card-attrazione p{ font-size:.92rem; margin-bottom:0; }

/* ==========================================================================
   CONTATTI
   ========================================================================== */
.contatto-hero{
  background:var(--pietra);
  border-radius:28px;
  padding:56px;
  display:grid;
  grid-template-columns:1fr 1fr 1fr;
  gap:28px;
  text-align:center;
}
@media (max-width:760px){ .contatto-hero{ grid-template-columns:1fr; padding:36px 24px; } }
.contatto-card{ display:flex; flex-direction:column; align-items:center; gap:10px; }
.contatto-card svg{ width:38px; height:38px; color:var(--terracotta); }
.contatto-card a, .contatto-card p{ font-weight:600; font-size:1.05rem; margin:0; }
.contatto-card small{ color:var(--terracotta); text-transform:uppercase; letter-spacing:.1em; font-size:.7rem; }

.form-contatto{
  background:var(--crema); border-radius:24px; padding:44px;
  box-shadow:var(--ombra-soft); border:1px solid rgba(35,32,26,0.07);
}
.campo{ margin-bottom:20px; }
.campo label{ display:block; font-weight:600; font-size:.86rem; margin-bottom:6px; color:var(--mare); }
.campo input, .campo textarea{
  width:100%; padding:13px 16px; border-radius:12px;
  border:1.5px solid rgba(35,32,26,0.15);
  font-family:var(--font-body); font-size:.96rem;
  background:var(--pietra-alta);
  color: var(--notte);
}
.campo input:focus, .campo textarea:focus{ border-color:var(--mare); outline:none; }
.campo-riga{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .campo-riga{ grid-template-columns:1fr; } }

/* ==========================================================================
   FOOTER
   ========================================================================== */
.site-footer{
  background:var(--notte);
  color:rgba(253,250,243,0.75);
  padding:56px 0 28px;
}
.footer-grid{
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px;
  padding-bottom:36px; border-bottom:1px solid rgba(253,250,243,0.12);
}
@media (max-width:760px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h4{ color:var(--crema); font-size:.95rem; text-transform:uppercase; letter-spacing:.1em; font-family:var(--font-body); font-weight:600; }
.footer-brand{ font-family:var(--font-display); font-size:1.3rem; color:var(--crema); margin-bottom:10px; }
.footer-links{ list-style:none; padding:0; margin:0; display:flex; flex-direction:column; gap:10px; }
.footer-links a:hover{ color:var(--ocra); }
.footer-bottom{
  padding-top:24px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
  font-size:.82rem;
}

/* ==========================================================================
   STORIA DELLA CORTE — cronaca, leggenda, fonti
   ========================================================================== */
.scheda-storica{
  background:var(--pietra);
  border:1px solid rgba(35,32,26,0.1);
  border-radius:20px;
  padding:30px 32px;
}
.scheda-storica .eyebrow{ display:block; margin-bottom:14px; }
.scheda-storica dl{
  margin:0; display:grid; grid-template-columns:auto 1fr; gap:10px 18px;
}
.scheda-storica dt{
  font-weight:600; font-size:.72rem; text-transform:uppercase; letter-spacing:.08em;
  color:var(--terracotta); white-space:nowrap; padding-top:1px;
}
.scheda-storica dd{ margin:0; font-size:.96rem; color:var(--notte); }

.citazione-storica{
  border-left:3px solid var(--ocra);
  padding:4px 0 4px 22px;
  margin:32px 0;
  font-family:var(--font-display);
  font-style:italic;
  font-size:1.2rem;
  color:var(--mare-scuro);
  line-height:1.5;
}
.citazione-storica cite{
  display:block; margin-top:10px;
  font-family:var(--font-body); font-style:normal; font-size:.76rem;
  text-transform:uppercase; letter-spacing:.08em; color:var(--mare-scuro);
}

.sezione-notte{
  background:linear-gradient(160deg, var(--notte) 0%, #2e2a20 100%);
  color:var(--crema);
  position:relative; overflow:hidden;
}
.sezione-notte::before{
  content:'';
  position:absolute; inset:0;
  background-image:radial-gradient(circle at 15% 20%, rgba(214,150,60,0.08), transparent 45%),
                    radial-gradient(circle at 85% 80%, rgba(46,140,135,0.1), transparent 45%);
  background-size:160% 160%;
  animation:deriva-luce-notte 20s ease-in-out infinite alternate;
}
@keyframes deriva-luce-notte{
  0%{ background-position:0% 0%, 100% 100%; }
  100%{ background-position:30% 20%, 70% 80%; }
}
.sezione-notte .container{ position:relative; z-index:1; }
.sezione-notte h2{ color:var(--crema); }
.sezione-notte p{ color:rgba(253,250,243,0.82); }
.sezione-notte .eyebrow{ color:var(--ocra); }
.sezione-notte .citazione-storica{ color:var(--pietra); border-left-color:var(--terracotta-alta); }
.sezione-notte .citazione-storica cite{ color:rgba(253,250,243,0.6); }

.tappa-leggenda{
  display:flex; gap:20px; margin-bottom:32px;
}
.tappa-leggenda .segno{
  flex:none; width:14px; height:14px; border-radius:50%;
  background:var(--ocra); margin-top:8px;
  box-shadow:0 0 0 4px rgba(214,150,60,0.18);
}
.tappa-leggenda h3{ color:var(--crema); font-size:1.1rem; margin-bottom:6px; }

.note-fonti{
  list-style:none; margin:0; padding:0;
  font-size:.84rem; color:rgba(61,54,39,0.78);
}
.note-fonti li{
  padding:10px 0; border-top:1px dashed rgba(35,32,26,0.15);
}
.note-fonti li:first-child{ border-top:none; }

.avviso-leggenda{
  background:var(--crema);
  border:1px dashed rgba(35,32,26,0.25);
  border-radius:16px;
  padding:18px 22px;
  font-size:.88rem;
  color:#5a5238;
  margin-top:24px;
}

/* ==========================================================================
   CALENDARIO DISPONIBILITÀ
   ========================================================================== */
.calendario-card{
  background:var(--crema);
  border-radius:24px;
  padding:36px;
  box-shadow:var(--ombra-soft);
  border:1px solid rgba(35,32,26,0.08);
  max-width:640px;
  margin:0 auto;
}
.selettore-riga{ display:flex; justify-content:center; margin-bottom:30px; }
.selettore-appartamento{
  padding:12px 22px;
  border-radius:999px;
  border:1.5px solid rgba(35,32,26,0.15);
  font-family:var(--font-body); font-size:1rem;
  background:var(--pietra-alta); color:var(--notte);
  cursor:pointer;
}
.calendario-header{
  display:flex; align-items:center; justify-content:space-between;
  margin-bottom:20px;
}
.calendario-header h3{ margin:0; font-size:1.25rem; color:var(--mare); }
.calendario-nav{
  background:var(--pietra); border:none; width:40px; height:40px;
  border-radius:50%; cursor:pointer; font-size:1.15rem; color:var(--notte);
  transition:background .2s, color .2s;
}
.calendario-nav:hover{ background:var(--ocra); color:var(--crema); }
.calendario-griglia{ display:grid; grid-template-columns:repeat(7,1fr); gap:6px; }
.calendario-etichetta{
  text-align:center; font-size:.7rem; text-transform:uppercase;
  letter-spacing:.05em; color:var(--terracotta); padding-bottom:8px; font-weight:600;
}
.calendario-giorno{
  aspect-ratio:1; display:flex; align-items:center; justify-content:center;
  border-radius:10px; font-size:.86rem; font-weight:500;
}
.calendario-giorno.vuoto{ visibility:hidden; }
.calendario-giorno.libero{ background:rgba(95,110,67,0.15); color:var(--ulivo-scuro); }
.calendario-giorno.occupato{ background:rgba(190,90,44,0.16); color:var(--terracotta); text-decoration:line-through; opacity:.85; }
.calendario-giorno.passato{ background:transparent; color:rgba(35,32,26,0.25); }
.calendario-giorno.oggi{ box-shadow:0 0 0 2px var(--mare) inset; font-weight:700; }
.calendario-legenda{
  display:flex; gap:22px; justify-content:center; margin-top:24px;
  font-size:.82rem; flex-wrap:wrap; color:#4a4330;
}
.calendario-legenda span{ display:inline-flex; align-items:center; gap:7px; }
.pallino{ width:12px; height:12px; border-radius:50%; display:inline-block; }
.pallino.libero{ background:var(--ulivo); }
.pallino.occupato{ background:var(--terracotta); }
.calendario-avviso{ text-align:center; font-size:.82rem; color:#5a5238; margin-top:18px; }

/* ==========================================================================
   PANNELLO ADMIN (host)
   ========================================================================== */
.admin-login{
  max-width:380px; margin:0 auto;
  background:var(--crema); padding:40px 36px;
  border-radius:20px; box-shadow:var(--ombra-soft);
  border:1px solid rgba(35,32,26,0.08);
}
.admin-pannello{ max-width:760px; margin:0 auto; }
.admin-messaggio{ min-height:24px; font-size:.9rem; margin:14px 0; font-weight:500; }
.admin-messaggio.successo{ color:var(--ulivo-scuro); }
.admin-messaggio.errore{ color:var(--terracotta); }
.blocco-form-riga{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .blocco-form-riga{ grid-template-columns:1fr; } }
.lista-blocchi{ margin-top:20px; }
.riga-blocco{
  display:flex; align-items:center; gap:14px; padding:14px 0;
  border-bottom:1px dashed rgba(35,32,26,0.15); font-size:.9rem; flex-wrap:wrap;
}
.riga-blocco .tag{ min-width:84px; text-align:center; }
.origine-airbnb{ color:#ff5a5f; font-weight:700; font-size:.76rem; text-transform:uppercase; letter-spacing:.03em; }
.origine-booking{ color:#003580; font-weight:700; font-size:.76rem; text-transform:uppercase; letter-spacing:.03em; }
.origine-manuale{ color:var(--mare-scuro); font-weight:700; font-size:.76rem; text-transform:uppercase; letter-spacing:.03em; }
.nota-auto{ font-size:.76rem; color:rgba(61,54,39,0.6); font-style:italic; }
.btn-rimuovi{
  background:none; border:1px solid var(--terracotta); color:var(--terracotta);
  border-radius:999px; padding:7px 16px; font-size:.78rem; cursor:pointer;
  font-family:var(--font-body); font-weight:600; margin-left:auto;
}
.btn-rimuovi:hover{ background:var(--terracotta); color:var(--crema); }

/* ==========================================================================
   BANNER COOKIE
   ========================================================================== */
.cookie-banner{
  position:fixed; left:16px; right:16px; bottom:16px; z-index:200;
  max-width:640px; margin:0 auto;
  background:var(--notte); color:var(--crema);
  border-radius:18px;
  padding:22px 24px;
  box-shadow:var(--ombra);
  display:flex; flex-wrap:wrap; align-items:center; gap:16px;
  transform:translateY(140%);
  transition:transform .5s var(--ease-elegante);
}
.cookie-banner.visibile{ transform:translateY(0); }
.cookie-banner p{
  color:rgba(253,250,243,0.85);
  font-size:.86rem; margin:0; flex:1 1 260px;
}
.cookie-banner a{ color:var(--ocra); text-decoration:underline; }
.cookie-banner-azioni{ display:flex; gap:10px; flex:0 0 auto; }
.cookie-banner .btn{ padding:10px 20px; font-size:.86rem; }

/* ==========================================================================
   PAGINA — header interno (pagine diverse dalla home)
   ========================================================================== */
.page-hero{
  padding:64px 0 56px;
  text-align:center;
  position:relative;
  overflow:hidden;
}
.page-hero h1{ font-size:clamp(2.1rem,4vw,2.9rem); color:var(--mare); }
.page-hero p{ max-width:56ch; margin:0 auto; }

/* reveal on scroll */
.reveal{
  opacity:0; transform:translateY(18px);
  transition:opacity .8s var(--ease-elegante), transform .8s var(--ease-elegante);
}
.reveal.visibile{ opacity:1; transform:none; }
