/* ============================================================
   Luxury Apartment Della Marca — design system condiviso
   Palette "mare" · Brygada 1918 (titoli) + Ysabeau Office (testo): eleganti, caldi, "di famiglia"
   Direzione: "Mattina sul Golfo" — la foto è l'eroe, il layout
   è una cornice editoriale. Motion solo CSS + IntersectionObserver.
   ============================================================ */

/* ---- FONT (self-hosted, latin, variabili — licenza OFL in assets/fonts) ---- */
@font-face{font-family:"Brygada";font-style:normal;font-weight:400 700;font-display:swap;src:url("fonts/brygada.woff2") format("woff2")}
@font-face{font-family:"Brygada";font-style:italic;font-weight:400 700;font-display:swap;src:url("fonts/brygada-italic.woff2") format("woff2")}
@font-face{font-family:"Ysabeau";font-style:normal;font-weight:100 900;font-display:swap;src:url("fonts/ysabeau.woff2") format("woff2")}
@font-face{font-family:"Ysabeau";font-style:italic;font-weight:100 900;font-display:swap;src:url("fonts/ysabeau-italic.woff2") format("woff2")}

:root{
  --sea:#0A567E;           /* blu marino — header, titoli */
  --sea-deep:#06324A;      /* blu profondo — footer, testi scuri */
  --sand:#F4FBFC;          /* bianco schiuma — sfondo pagina */
  --shell:#CDEAEF;         /* azzurro chiaro — campi e dettagli */
  --coral:#15B6C2;         /* turchese — accento decorativo */
  --coral-deep:#0D9BA6;    /* turchese scuro — solo grafica o testo grande */
  --brass:#2E89B0;         /* blu oceano — sfumature intermedie */
  --accent:#E3907E;        /* bouganville — solo azioni (prenota, scrivi a Pia). Testo --sea-deep: 5,48:1 */
  --accent-deep:#D9806E;   /* hover dell'accento. Testo --sea-deep: 4,65:1 */
  --accent-ink:#A34B3A;    /* accento come testo su chiaro (AA) */
  --ink:#11384A;           /* testo su chiaro */
  --muted:#3d7a90;         /* testo secondario su sand */
  --muted-ink:#2B6275;     /* testo secondario su shell (AA) */
  --line:rgba(10,86,126,.14);
  --line-strong:rgba(10,86,126,.26);
  --r:14px;
  --r-img:10px;
  --maxw:1240px;
  --gutter:clamp(20px,4vw,40px);
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);   /* esponenziale: entrate */
  --shadow-card:0 28px 50px -34px rgba(6,50,74,.45);
  --section:clamp(88px,11vw,152px);
  --grain:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--sand);color:var(--ink);
  font-family:"Ysabeau",system-ui,sans-serif;font-size:17px;line-height:1.65;
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;
}
h1,h2,h3,h4{
  font-family:"Brygada",Georgia,serif;font-weight:400;line-height:1.06;margin:0;
  letter-spacing:-.02em;font-optical-sizing:auto;text-wrap:balance;color:var(--sea-deep);overflow-wrap:break-word;
}
p{text-wrap:pretty}
a{color:inherit;text-underline-offset:.22em;text-decoration-thickness:1px}
img{max-width:100%;display:block}
::selection{background:var(--sea);color:var(--sand)}
input,textarea{caret-color:var(--sea)}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter)}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:"Ysabeau";font-weight:600;font-size:15px;letter-spacing:.01em;
  min-height:48px;padding:13px 26px;border-radius:100px;border:1px solid transparent;cursor:pointer;
  text-decoration:none;transition:transform .35s var(--ease-out),background .25s,color .25s,border-color .25s,box-shadow .35s var(--ease-out);
}
.btn-primary{background:var(--accent);color:var(--sea-deep)}
.btn-primary:hover{background:var(--accent-deep);color:var(--sea-deep);transform:translateY(-2px);box-shadow:0 14px 26px -16px rgba(170,70,50,.55)}
.btn-ghost{border-color:var(--line-strong);color:var(--sea-deep);background:transparent}
.btn-ghost:hover{border-color:var(--sea);transform:translateY(-2px)}
.btn-light{background:var(--sand);color:var(--sea-deep)}
.btn-light:hover{background:#fff;transform:translateY(-2px)}
.btn:active{transform:translateY(0)}
:focus-visible{outline:2px solid var(--coral-deep);outline-offset:3px;border-radius:6px}

/* ---- SLOT FOTO + FALLBACK "TRAMONTO SUL GOLFO" ----
   <img class="photo-slot" ... onerror="this.remove()"> dentro un contenitore .ph:
   finché il file non esiste in img/ resta il fallback (gradiente brand, bagliore caldo
   sull'orizzonte, grana fine); quando la foto c'è, la copre del tutto.
   --sx/--sy spostano il "sole" per variare i fallback tra loro. */
.ph{
  position:relative;overflow:hidden;isolation:isolate;
  background:
    linear-gradient(180deg,transparent calc(var(--hz,68%) - 7%),rgba(255,226,208,.16) var(--hz,68%),transparent calc(var(--hz,68%) + 9%)),
    radial-gradient(120% 50% at 50% 100%,rgba(127,202,214,.4),transparent 62%),
    linear-gradient(180deg,#06324A 0%,#0A567E 40%,#1f7aa3 68%,#3f9dbd 88%,#5fb3c9 100%);
}
.ph::before{ /* grana */
  content:"";position:absolute;inset:0;z-index:0;background-image:var(--grain);
  opacity:.16;mix-blend-mode:soft-light;pointer-events:none;
}
.ph::after{ /* orizzonte: linea di luce appena percettibile */
  content:"";position:absolute;left:0;right:0;top:var(--hz,68%);height:1px;z-index:0;
  background:linear-gradient(90deg,transparent,rgba(255,232,214,.38) var(--sx,72%),transparent);
  pointer-events:none;
}
.photo-slot{
  position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
  z-index:1;transition:transform 1.2s var(--ease-out),opacity .9s var(--ease);
}
.js .photo-slot:not(.is-loaded){opacity:0}

/* ---- HEADER ---- */
header{
  position:sticky;top:0;z-index:60;background:rgba(244,251,252,.9);
  backdrop-filter:saturate(1.4) blur(14px);-webkit-backdrop-filter:saturate(1.4) blur(14px);
  border-bottom:1px solid transparent;transition:border-color .4s,background .4s,color .4s;
}
header.scrolled{border-color:var(--line);background:var(--sand)}  /* pieno: i testi che scorrono sotto non si vedono in trasparenza */
.nav{display:flex;align-items:center;justify-content:space-between;height:76px;gap:20px}
.brand{font-family:"Brygada";font-size:22px;font-weight:500;letter-spacing:-.02em;text-decoration:none;color:var(--sea-deep);line-height:1;transition:color .4s}
.brand small{display:block;font-family:"Ysabeau";font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--sea);font-weight:600;margin-top:5px;transition:color .4s}
.nav-links{display:flex;gap:34px;align-items:center}
.nav-links a{
  position:relative;text-decoration:none;font-size:15px;font-weight:500;color:var(--ink);
  padding:6px 0;transition:color .3s;
}
.nav-links a::after{
  content:"";position:absolute;left:0;right:0;bottom:0;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform .5s var(--ease-out);
}
.nav-links a:hover::after,.nav-links a.active::after{transform:scaleX(1);transform-origin:left}
.nav-cta{display:flex;align-items:center;gap:14px}
.nav-cta .btn-primary{min-height:42px;padding:9px 20px;font-size:14px;white-space:nowrap;flex:none}
.menu-btn{display:none;background:none;border:0;cursor:pointer;padding:9px;color:var(--sea-deep);border-radius:10px}
.lang-switch{
  font-size:12.5px;font-weight:700;letter-spacing:.12em;color:var(--sea);text-decoration:none;
  min-width:44px;min-height:40px;display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--line-strong);border-radius:100px;transition:background .25s,border-color .25s,color .4s;
}
.lang-switch:hover{background:var(--shell)}

/* header trasparente sopra l'hero della home, finché non si scorre */
.home header:not(.scrolled):not(.menu-open){background:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
.home header:not(.scrolled):not(.menu-open) .brand,
.home header:not(.scrolled):not(.menu-open) .nav-links a,
.home header:not(.scrolled):not(.menu-open) .menu-btn,
.home header:not(.scrolled):not(.menu-open) .lang-switch{color:#fff}
.home header:not(.scrolled):not(.menu-open) .brand small{color:rgba(255,255,255,.72)}
.home header:not(.scrolled):not(.menu-open) .lang-switch{border-color:rgba(255,255,255,.4)}
.home header:not(.scrolled):not(.menu-open) .lang-switch:hover{background:rgba(255,255,255,.12)}
.home header{position:fixed;left:0;right:0}

/* ---- HERO HOMEPAGE (a tutto schermo) ---- */
.hero{
  position:relative;min-height:max(620px,min(calc(100svh - 48px),960px));display:flex;align-items:flex-end;
  overflow:hidden;color:#fff;isolation:isolate;
}
.hero-media{position:absolute;inset:-8% 0 0;z-index:0;--sx:74%;--sy:66%;--hz:66%}
.hero-media::before{opacity:.22}
.hero-media.ph{
  background:
    linear-gradient(180deg,transparent 58%,rgba(255,224,206,.12) 66%,transparent 76%),
    radial-gradient(90% 60% at 70% 110%,rgba(46,137,176,.55),transparent 70%),
    linear-gradient(180deg,#052a3f 0%,#073f60 38%,#0c5d85 62%,#1a76a0 80%,#16688f 100%);
}
.hero-scrim{
  position:absolute;inset:0;z-index:1;pointer-events:none;
  background:
    linear-gradient(180deg,rgba(6,50,74,.55) 0%,rgba(6,50,74,0) 22%),
    linear-gradient(90deg,rgba(6,50,74,.42) 0%,rgba(6,50,74,.14) 55%,rgba(6,50,74,0) 80%),
    linear-gradient(0deg,rgba(6,50,74,.84) 0%,rgba(6,50,74,.52) 42%,rgba(6,50,74,.3) 78%,rgba(6,50,74,.2) 100%);
}
/* sul telefono il testo copre quasi tutta l'altezza: velatura più uniforme */
@media (max-width:767px){
  .hero-scrim{background:linear-gradient(180deg,rgba(6,50,74,.55) 0%,rgba(6,50,74,.45) 28%,rgba(6,50,74,.5) 60%,rgba(6,50,74,.86) 100%)}
}
.hero-content{position:relative;z-index:2;width:100%;padding-top:128px;padding-bottom:118px}
.hero h1{
  font-size:clamp(46px,6.6vw,100px);line-height:.98;letter-spacing:-.012em;word-spacing:.04em;color:#fff;
  font-weight:400;max-width:16ch;
  text-shadow:0 2px 28px rgba(6,50,74,.35);
}
.hero h1 .ln{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.hero h1 .ln>span{display:inline-block}
.hero h1 em{font-style:italic;font-weight:300;color:#DDF2F5}
.hero-foot{display:flex;align-items:flex-end;justify-content:space-between;gap:40px;margin-top:34px;flex-wrap:wrap}
.hero p.lede{font-size:clamp(17px,1.5vw,20px);line-height:1.55;color:rgba(255,255,255,.9);margin:0;max-width:34ch}
.hero-meta{display:flex;gap:0;flex-wrap:wrap;font-size:14px;color:rgba(255,255,255,.8);margin:0;padding:0;list-style:none}
.hero-meta li{display:flex;flex-direction:column;gap:2px;padding:0 26px;border-left:1px solid rgba(255,255,255,.28)}
.hero-meta li:first-child{padding-left:0;border-left:0}
.hero-meta b{font-family:"Brygada";font-size:26px;font-weight:400;color:#fff;line-height:1.1;display:inline-flex;align-items:center;gap:6px;font-variant-numeric:lining-nums}
.hero-meta b svg{width:16px;height:16px;color:var(--accent)}
.hero-place{
  display:block;margin-top:22px;font-size:13px;letter-spacing:.16em;text-transform:uppercase;
  color:rgba(255,255,255,.72);font-weight:600;
}

/* ---- HERO STRIP (pagine interne) ---- */
.hero-strip{
  color:#fff;padding:clamp(96px,12vw,150px) 0 clamp(64px,8vw,104px);position:relative;overflow:hidden;
  --sx:82%;--sy:92%;--hz:92%;
}
.hero-strip--alt{--sx:18%;--sy:88%}
.hero-strip.ph{background:
    linear-gradient(180deg,transparent 80%,rgba(255,224,206,.12) 92%,transparent 100%),
    linear-gradient(180deg,#052a3f 0%,#08466a 45%,#0f6a93 80%,#1f7aa3 100%)}
.hero-strip .wrap{position:relative;z-index:2}
.hero-strip h1{font-size:clamp(40px,1.6rem + 6vw,104px);line-height:.98;letter-spacing:-.012em;color:#fff}
.hero-strip p{color:rgba(255,255,255,.88);margin:24px 0 0;font-size:clamp(17px,1.5vw,20px);max-width:44ch}
.hero-strip .badge72{
  display:inline-flex;align-items:center;gap:10px;margin-top:30px;
  color:rgba(255,255,255,.92);font-size:14px;font-weight:500;
  padding:0 0 0 0;
}
.hero-strip .badge72 svg{color:var(--accent)}

/* ---- BOOKING BAR ---- */
.booking{position:relative;z-index:30;margin-top:-64px;scroll-margin-top:96px}
.booking-card{
  background:#fff;border-radius:18px;padding:10px;
  box-shadow:0 34px 70px -40px rgba(6,50,74,.6),0 2px 6px -2px rgba(6,50,74,.08);
  display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:0;align-items:stretch;
}
.booking-field{padding:12px clamp(12px,1.6vw,22px)}
.booking-submit{padding:6px 6px 6px 12px;display:flex;align-items:center}
.booking-submit .btn{min-height:56px;padding:14px 30px;border-radius:12px}
.booking-note{font-size:13.5px;color:var(--muted);text-align:center;margin:16px 0 0}
.booking-note b{color:var(--sea);font-weight:600}
.booking-trigger{
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;gap:4px;min-width:0;
  background:transparent;border:0;border-right:1px solid var(--line);border-radius:0;
  font-family:"Ysabeau";text-align:left;cursor:pointer;transition:background .25s;
}
.booking-trigger:nth-child(3){border-right:0}
.booking-trigger:hover{background:var(--sand)}
.booking-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-ink);font-weight:600}
.booking-value{font-size:17px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.booking-value.is-empty{color:var(--muted-ink)}
.btn-wa svg{flex:none}

/* vantaggi prenotazione diretta: una riga, non un banner */
.direct{margin-top:40px}
.direct-card{
  display:flex;align-items:center;justify-content:center;gap:14px 40px;flex-wrap:wrap;
  padding:22px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);
}
.direct-title{font-family:"Brygada";font-style:italic;font-size:21px;color:var(--sea-deep);margin:0}
.direct-perks{display:flex;gap:10px 30px;flex-wrap:wrap;justify-content:center;font-size:14.5px;color:var(--ink)}
.direct-perks span{display:flex;gap:9px;align-items:center}
.check{width:16px;height:16px;flex:none;color:var(--coral-deep)}

/* ---- CALENDARIO DISPONIBILITÀ (assets/booking.js) ---- */
.cal-dialog{
  width:min(800px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);
  border:0;border-radius:22px;padding:24px 28px 0;background:var(--sand);color:var(--ink);
  box-shadow:0 40px 90px -30px rgba(6,50,74,.55);overflow:auto;overscroll-behavior:contain;
}
.cal-dialog[open]{animation:dlgIn .5s var(--ease-out)}
.cal-dialog::backdrop{background:rgba(6,50,74,.55);backdrop-filter:blur(4px)}
@keyframes dlgIn{from{opacity:0;transform:translateY(18px) scale(.985)}}
html:has(.cal-dialog[open]){overflow:hidden}
.cal-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px}
.cal-top h2{font-size:28px;color:var(--sea-deep)}
.cal-ctx{margin:4px 0 0;font-size:14px;color:var(--muted)}
.cal-close{
  flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:#fff;
  color:var(--sea-deep);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s,transform .3s var(--ease-out);
}
.cal-close:hover{border-color:var(--sea);transform:rotate(90deg)}
.cal-head{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.cal-hint{flex:1;margin:0;text-align:center;font-size:14.5px;font-weight:600;color:var(--sea)}
.cal-nav{
  flex:none;width:44px;height:44px;border-radius:50%;border:1px solid var(--line);background:var(--sand);
  color:var(--sea);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s;
}
.cal-nav:hover:not(:disabled){border-color:var(--sea)}
.cal-nav:disabled{opacity:.35;cursor:default}
.cal-months{display:grid;grid-template-columns:repeat(2,1fr);gap:34px}
.cal-month h4{font-size:19px;text-align:center;margin-bottom:10px;color:var(--sea-deep);text-transform:capitalize}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:3px}
.cal-dow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center;font-weight:600;padding:2px 0 6px}
.cal-day{
  height:42px;border:0;border-radius:10px;background:#fff;font-family:"Ysabeau";font-size:14px;font-weight:600;
  color:var(--ink);cursor:pointer;transition:background .15s,box-shadow .15s;font-variant-numeric:tabular-nums;
}
.cal-day:hover:not(:disabled){box-shadow:inset 0 0 0 1.5px var(--brass)}
.cal-day:disabled{background:transparent;color:var(--muted);opacity:.4;cursor:default}
.cal-day.is-today{box-shadow:inset 0 0 0 1.5px var(--coral-deep)}
.cal-day.is-busy{
  color:var(--muted);text-decoration:line-through;cursor:not-allowed;
  background:repeating-linear-gradient(135deg,transparent 0 5px,rgba(10,86,126,.1) 5px 7px);
}
.cal-day.is-range{background:rgba(21,182,194,.22);color:var(--sea-deep)}
.cal-day.is-start,.cal-day.is-end{background:var(--sea);color:#fff;text-decoration:none}
.cal-legend{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;font-size:12.5px;color:var(--muted);margin-top:14px}
.cal-legend span{display:flex;align-items:center;gap:7px}
.cal-legend i{width:14px;height:14px;border-radius:4px;display:block}
.lg-free{background:#fff;border:1px solid var(--line)}
.lg-busy{background:repeating-linear-gradient(135deg,var(--sand) 0 3px,rgba(10,86,126,.3) 3px 4px);border:1px solid var(--line)}
.lg-sel{background:var(--sea)}
.cal-summary{margin-top:16px}
.cal-sum{background:#fff;border:1px solid var(--line);border-radius:12px;padding:16px 18px;display:grid;gap:8px}
.cal-sum p{margin:0}
.cal-sum-line{font-size:15px;color:var(--ink)}
.cal-sum-line b{color:var(--sea-deep)}
.cal-sum-price{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:14px;color:var(--muted)}
.cal-sum-price s{font-size:15px}
.cal-sum-price b{font-family:"Brygada";font-size:30px;font-weight:400;color:var(--sea);line-height:1;font-variant-numeric:lining-nums}
.cal-sum-tag{font-size:12px;font-weight:700;color:var(--sea);background:rgba(21,182,194,.14);padding:3px 10px;border-radius:100px}
.cal-sum small{font-size:12.5px;color:var(--muted);line-height:1.5}
.cal-sum-sub{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.cal-status{font-size:14px;font-weight:600;color:var(--sea)}
.cal-status.is-ok{color:var(--sea)}
.cal-warn{font-size:14px;color:var(--ink);background:rgba(227,144,126,.16);border-radius:8px;padding:8px 12px}
.cal-rooms{display:flex;flex-wrap:wrap;gap:8px}
.cal-form{display:grid;grid-template-columns:auto 1fr;gap:18px;margin-top:18px}
.cal-field{display:flex;flex-direction:column;gap:7px;margin-top:16px;min-width:0}
.cal-field[hidden]{display:none}  /* stanza bloccata: niente scelta della sistemazione */
.cal-form .cal-field{margin-top:0}
.cal-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.cal-label small{font-size:11px;letter-spacing:0;text-transform:none;font-weight:500}
.cal-dialog .people-ctrl{background:#fff;width:150px}
.cal-dialog .people-btn:disabled{opacity:.3;cursor:default}
.cal-input{
  border:1px solid var(--line);background:#fff;border-radius:10px;padding:10px 14px;height:48px;width:100%;
  font-family:"Ysabeau";font-size:16px;font-weight:500;color:var(--ink);
}
.cal-input:focus{border-color:var(--sea);outline:none;box-shadow:0 0 0 3px rgba(21,182,194,.25)}
.cal-room{
  border:1px solid var(--line-strong);background:#fff;border-radius:12px;padding:9px 14px;cursor:pointer;min-height:44px;
  font-family:"Ysabeau";font-size:14px;font-weight:600;color:var(--ink);text-align:left;transition:border-color .2s,background .2s;
}
.cal-room small{display:block;font-size:12px;font-weight:500;color:var(--muted);margin-top:1px}
.cal-room:hover,.cal-room:focus-visible{border-color:var(--sea)}
.cal-room[aria-pressed="true"]{border-color:var(--sea);background:rgba(10,86,126,.07);box-shadow:inset 0 0 0 1px var(--sea)}
.cal-room.is-off{opacity:.45}
.cal-room[aria-disabled="true"]{cursor:not-allowed}
.cal-preview{background:rgba(37,211,102,.08);border:1px solid rgba(37,211,102,.28);border-radius:12px;padding:10px 14px}
.cal-preview span{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:600}
.cal-preview p{margin:4px 0 0;white-space:pre-line;font-size:14px;line-height:1.55;color:var(--ink)}
.cal-foot{
  position:sticky;bottom:0;display:flex;justify-content:flex-end;
  margin:16px -28px 0;padding:14px 28px 18px;background:var(--sand);border-top:1px solid var(--line);
}
@media (max-width:759px){
  .cal-dialog{
    width:100vw;max-height:92dvh;margin:auto 0 0;border-radius:22px 22px 0 0;padding:18px 18px 0;
  }
  .cal-dialog[open]{animation:sheetIn .55s var(--ease-out)}
  .cal-months{grid-template-columns:1fr}
  .cal-day{height:44px}
  .cal-form{grid-template-columns:1fr;gap:0}
  .cal-form .cal-field + .cal-field{margin-top:16px}
  .cal-foot{margin:14px -18px 0;padding:12px 18px calc(14px + env(safe-area-inset-bottom))}
  .cal-foot .btn{width:100%}
}
@keyframes sheetIn{from{transform:translateY(40px);opacity:.4}}

/* ---- SEZIONI ---- */
section.block{padding-top:var(--section)}
.sec-head{max-width:760px;margin-bottom:clamp(40px,5vw,64px)}
.sec-head h2{font-size:clamp(28px,1.3rem + 3.2vw,64px);line-height:1.04}
.sec-head p{color:var(--muted);margin:20px 0 0;font-size:clamp(16px,.95rem + .3vw,18.5px);max-width:58ch}
.sec-head--split{max-width:none;display:grid;grid-template-columns:1.15fr .85fr;gap:24px 64px;align-items:end}
.sec-head--split p{margin:0}

/* ---- SISTEMAZIONI ----
   ordine: Ravello, Capri, intero appartamento (la card grande), poi le altre
   base (768–1079px): 2 colonne, la 3ª a tutta larghezza · ≥1080px: 6/6 · 12 · 7/5 · 6/6
   · <768px: carosello orizzontale con scroll-snap (vedi RESPONSIVE) */
.rooms{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(36px,4.5vw,64px) clamp(16px,2.4vw,32px)}
.room{display:flex;flex-direction:column;position:relative;min-width:0}
.room:nth-child(3){grid-column:1/-1}
.room-photo{aspect-ratio:4/3;border-radius:var(--r-img);--sx:70%;--hz:66%}
.room:nth-child(3) .room-photo{aspect-ratio:2/1}
.room:nth-child(2) .room-photo{--sx:28%;--hz:62%}
.room:nth-child(3) .room-photo{--sx:60%;--hz:58%}
.room:nth-child(4) .room-photo{--sx:36%;--hz:62%}
.room:nth-child(5) .room-photo{--sx:78%;--hz:55%}
.room:nth-child(6) .room-photo{--sx:22%;--hz:70%}
.room:nth-child(7) .room-photo{--sx:84%;--hz:64%}
@media (min-width:1080px){
  .rooms{grid-template-columns:repeat(12,minmax(0,1fr))}
  .room{grid-column:span 6}
  .room:nth-child(3){grid-column:1/-1}
  .room:nth-child(4){grid-column:span 7}
  .room:nth-child(5){grid-column:span 5;display:grid;grid-template-rows:1fr auto}
  .room:nth-child(4) .room-photo{aspect-ratio:16/11}
  .room:nth-child(5) .room-photo{aspect-ratio:auto;min-height:0;height:100%}
}
.carousel-count{display:none}
.room:hover .photo-slot{transform:scale(1.04)}
.room-body{padding:20px 2px 0}
.room-top{display:flex;align-items:baseline;justify-content:space-between;gap:6px 16px;flex-wrap:wrap}
.room-body h3{font-size:clamp(22px,1.1rem + 1vw,30px);line-height:1.1;min-width:0}
.room .price{
  flex:none;font-family:"Brygada";font-size:17px;font-weight:400;color:var(--muted-ink);  /* prezzo discreto: c'è, ma non è il protagonista */
  white-space:nowrap;font-variant-numeric:lining-nums;text-align:right;line-height:1.1;
}
.room .price small{font-family:"Ysabeau";font-size:13px;font-weight:500;color:var(--muted)}
.room .price .stagione{display:block;font-family:"Ysabeau";font-size:10.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.room-spec{display:flex;gap:0;margin:10px 0 16px;font-size:14px;color:var(--muted);flex-wrap:wrap}
.room-spec span+span::before{content:"·";margin:0 10px;color:var(--line-strong)}
.room-link{  /* pulsante pieno nel colore delle azioni: si vede subito sotto ogni stanza */
  font-weight:600;font-size:15px;color:var(--sea-deep);text-decoration:none;display:inline-flex;gap:10px;align-items:center;
  justify-content:center;align-self:flex-start;min-height:46px;padding:11px 24px;border-radius:100px;background:var(--accent);
  transition:background .25s,box-shadow .35s var(--ease-out);
}
/* tutta la card apre la scheda della stanza (a.room-open); il pulsante resta sopra e apre il calendario */
.room-open{position:absolute;inset:0;z-index:3;border-radius:var(--r-img)}
.room-link{position:relative;z-index:5}
.room-link svg{transition:transform .4s var(--ease-out)}
.room-link:hover{background:var(--accent-deep);box-shadow:0 14px 26px -16px rgba(170,70,50,.55)}
.room-link:hover svg{transform:translateX(4px)}

/* ---- SCHEDE SISTEMAZIONI (assets/schede.js, markup generato da tools/costruisci.py) ----
   la foto della card apre la galleria, il resto della card il calendario */
.room-photo{z-index:4}
.room-gallery-link{position:absolute;inset:0;z-index:2;display:flex;align-items:flex-end;padding:14px;text-decoration:none;border-radius:var(--r-img)}
.room-gallery-link span{
  display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border-radius:100px;
  background:rgba(6,50,74,.72);color:#fff;font-size:13.5px;font-weight:600;backdrop-filter:blur(6px);transition:background .25s;
}
.room-gallery-link:hover span{background:var(--sea-deep)}
.room-gallery-link:focus-visible{outline:3px solid var(--accent);outline-offset:-3px}

.sheet{
  width:min(1180px,calc(100vw - 32px));max-width:none;max-height:calc(100dvh - 48px);
  border:0;border-radius:22px;padding:0;background:var(--sand);color:var(--ink);overflow:hidden;
  box-shadow:0 40px 90px -30px rgba(6,50,74,.55);
}
.sheet[open]{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(360px,1fr);animation:dlgIn .5s var(--ease-out)}
.sheet::backdrop{background:rgba(6,50,74,.62);backdrop-filter:blur(4px)}
html:has(.sheet[open]){overflow:hidden}
.sheet-gallery{position:relative;min-width:0;display:flex;align-items:center;background:var(--sea-deep)}
.sheet-track{
  display:flex;width:100%;overflow-x:auto;scroll-snap-type:x mandatory;overscroll-behavior-x:contain;
  scrollbar-width:none;border-radius:0;
}
.sheet-track::-webkit-scrollbar{display:none}
.sheet-track:focus-visible{outline:3px solid var(--accent);outline-offset:-3px;border-radius:0}
.sheet-slide{flex:0 0 100%;position:relative;margin:0;scroll-snap-align:start;scroll-snap-stop:always}
.sheet-slide img{display:block;width:100%;height:auto;aspect-ratio:3/2;object-fit:cover}
.sheet-slide figcaption{
  position:absolute;left:16px;top:16px;padding:6px 12px;border-radius:100px;
  background:rgba(244,251,252,.92);color:var(--sea-deep);font-size:13px;font-weight:600;letter-spacing:.01em;
}
.sheet-nav{
  position:absolute;top:50%;width:46px;height:46px;margin-top:-23px;border-radius:50%;border:0;
  background:rgba(244,251,252,.92);color:var(--sea-deep);cursor:pointer;display:flex;align-items:center;justify-content:center;
  box-shadow:0 10px 24px -12px rgba(6,50,74,.6);transition:opacity .25s,transform .3s var(--ease-out);
}
.sheet-nav:hover{transform:scale(1.06)}
.sheet-nav:disabled{opacity:0;pointer-events:none}
.sheet-prev{left:16px}
.sheet-next{right:16px}
.sheet-count{
  position:absolute;left:16px;bottom:16px;margin:0;padding:6px 12px;border-radius:100px;
  background:rgba(6,50,74,.72);color:#fff;font-size:13px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:.04em;
}
.sheet-body{padding:36px 32px 28px;overflow:auto;display:flex;flex-direction:column}
.sheet-body h2{font-size:clamp(28px,1.2rem + 1.6vw,40px);line-height:1.05;color:var(--sea-deep);padding-right:48px}
.sheet-price{margin:12px 0 0;font-family:"Brygada";font-size:26px;color:var(--sea);font-variant-numeric:lining-nums}
.sheet-price span{font-family:"Ysabeau";font-size:14px;font-weight:500;color:var(--muted)}
.sheet-price small{font-family:"Ysabeau";font-size:14px;font-weight:500;color:var(--muted)}
.sheet-body .room-spec{margin:10px 0 0}
.room-note{margin:8px 0 0;font-size:14.5px;line-height:1.45;color:var(--ink)}
.room-note + .room-spec{margin-top:6px}
.sheet-body .room-note{margin:16px 0 0;font-size:16px;font-weight:500;color:var(--sea-deep)}
.sheet-desc{margin:4px 0 0;font-size:14.5px;color:var(--muted)}
/* servizi della stanza: icone a linea in griglia, come nelle schede di Airbnb */
.sheet-servizi{margin:22px 0 0;padding:20px 0 0;border-top:1px solid var(--line)}
.sheet-servizi h3{margin:0 0 14px;font-size:20px;color:var(--sea-deep)}
.sheet-servizi ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:14px 16px}
@media (max-width:420px){.sheet-servizi ul{grid-template-columns:1fr}}
.sheet-servizi li{display:flex;align-items:center;gap:12px;font-size:15px;line-height:1.3;color:var(--ink)}
.sheet-servizi svg{flex:none;color:var(--sea)}
.sheet-incl{list-style:none;margin:20px 0 26px;padding:16px 0 0;border-top:1px solid var(--line);display:grid;gap:8px;font-size:14.5px;color:var(--muted-ink)}
.sheet-incl li{display:flex;gap:10px;align-items:baseline}
.sheet-incl li::before{content:"";flex:none;width:7px;height:7px;border-radius:50%;background:var(--coral);transform:translateY(-1px)}
.sheet-foot{margin-top:auto}
.sheet-cta{width:100%}
dialog:not([open]){display:none}  /* browser senza <dialog>: le schede non finiscono in pagina */
.sheet-note{margin:12px 0 0;font-size:13.5px;line-height:1.5;color:var(--muted);text-align:center}
.sheet-close{
  position:absolute;top:16px;right:16px;z-index:3;width:44px;height:44px;border-radius:50%;
  border:1px solid var(--line);background:#fff;color:var(--sea-deep);cursor:pointer;
  display:flex;align-items:center;justify-content:center;transition:border-color .2s,transform .3s var(--ease-out);
}
.sheet-close:hover{border-color:var(--sea);transform:rotate(90deg)}
/* telefono/tablet: scheda a schermo intero (niente pannello "appoggiato" in basso, che con le
   barre di Safari/WhatsApp finiva fuori posto), foto in alto, testo che scorre e il pulsante
   "Verifica le date" sempre visibile in fondo */
@media (max-width:899px){
  .sheet{inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;border-radius:0}
  .sheet[open]{display:flex;flex-direction:column;animation:sheetIn .45s var(--ease-out)}
  .sheet-gallery{flex:none}
  .sheet-track{touch-action:pan-x pinch-zoom}  /* lo scorrimento verticale sulle foto non muove la pagina sotto */
  .sheet-body{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 20px 0}
  .sheet-body h2{padding-right:0}
  .sheet-foot{
    position:sticky;bottom:0;z-index:2;margin:auto -20px 0;padding:12px 20px calc(12px + env(safe-area-inset-bottom));
    background:var(--sand);border-top:1px solid var(--line);box-shadow:0 -14px 24px -18px rgba(6,50,74,.35);
  }
  .sheet-note{margin-top:8px}
  .sheet-close{top:12px;right:12px}
  .sheet-nav{width:40px;height:40px;margin-top:-20px}
  .sheet-prev{left:10px}
  .sheet-next{right:10px}
  .sheet-incl{margin:18px 0 20px}
}

/* ---- STORIA: il papà di Pia, che ha costruito la casa ---- */
.storia{margin-top:var(--section);padding:clamp(56px,8vw,112px) 0;background:var(--shell)}
.storia-grid{display:grid;grid-template-columns:minmax(0,6fr) minmax(0,4fr);gap:clamp(32px,6vw,96px);align-items:center}
.storia-kicker{margin:0 0 18px;font-size:13px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-ink)}
.storia-text h2{font-size:clamp(32px,1.5rem + 3.4vw,68px);line-height:1.02}
.storia-text h2 em{font-style:italic;font-weight:300;color:var(--sea)}
.storia-text p:not(.storia-kicker){font-size:clamp(17px,1rem + .35vw,20px);line-height:1.6;color:var(--ink);margin:24px 0 0;max-width:46ch}
.storia-text p.storia-dedica{  /* "Grazie papà": corsivo, come una lettera */
  margin-top:28px;padding-left:20px;border-left:2px solid var(--coral);
  font-family:"Brygada",Georgia,serif;font-style:italic;font-size:clamp(19px,1.05rem + .5vw,23px);line-height:1.5;color:var(--sea-deep);
}
.storia{overflow:clip}  /* il muro può uscire dalla colonna, mai dalla pagina */
.storia-text p.storia-firma{margin-top:14px;padding-left:22px;font-family:"Brygada",Georgia,serif;font-size:17px;color:var(--muted-ink)}
.storia-text p.storia-firma::before{content:"— "}
/* foto di Luigi incastonata in un muro di mattoni chiari che si costruisce mentre si scorre */
.storia-media{position:relative;margin:0;justify-self:end;width:100%;max-width:420px;isolation:isolate}
.storia-muro{
  position:absolute;inset:-72px -120px -64px;z-index:-1;display:flex;flex-direction:column-reverse;gap:6px;overflow:hidden;
  -webkit-mask-image:radial-gradient(closest-side,#000 74%,transparent);mask-image:radial-gradient(closest-side,#000 74%,transparent);
}
.storia-muro div{display:flex;gap:6px;flex:none}
.storia-muro div:nth-child(even){margin-left:-31px}  /* posa a correre: file sfalsate di mezzo mattone */
.storia-muro i{
  flex:none;width:56px;height:22px;border-radius:2px;background:rgba(255,255,255,.9);
  box-shadow:inset 0 -3px 0 rgba(10,86,126,.08),0 1px 0 rgba(6,50,74,.06);
}
.storia-photo{aspect-ratio:3/4;border-radius:4px;width:100%;border:10px solid #fff;box-shadow:0 34px 60px -34px rgba(6,50,74,.55)}
.storia-photo .photo-slot{object-position:70% 100%}
.storia-media figcaption{margin-top:14px;text-align:center;font-family:"Brygada",Georgia,serif;font-style:italic;font-size:17px;color:var(--sea-deep)}
/* i mattoni vengono posati fila dopo fila, dal basso, mentre la sezione entra sullo schermo */
@media (prefers-reduced-motion:no-preference){
  @supports (animation-timeline:view()){
    .storia{view-timeline-name:--storia}
    .storia-muro i{
      animation:posa linear both;animation-timeline:--storia;
      animation-range:entry calc(4% + var(--k) * 2.6%) entry calc(16% + var(--k) * 2.6%);
    }
  }
  @supports not (animation-timeline:view()){
    .js .storia-muro i{opacity:0;transform:translateY(-16px);transition:opacity .5s var(--ease-out),transform .5s var(--ease-out);transition-delay:calc(var(--k) * 45ms)}
    .js .storia.posa .storia-muro i{opacity:1;transform:none}
  }
}
@keyframes posa{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@media (max-width:767px){
  .storia-grid{grid-template-columns:1fr}
  .storia-media{justify-self:stretch;max-width:none;margin-top:12px}
  .storia-photo{aspect-ratio:4/5}
  .storia-muro{inset:-44px -60px -36px}
}


/* ---- ESPERIENZE (home): anteprima compatta ---- */
.exp-preview{padding-bottom:var(--section)}
.exp-mini{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,20px)}
a.exp{
  display:flex;flex-direction:column;gap:8px;padding:22px 20px 20px;border-radius:var(--r);background:#fff;
  box-shadow:0 1px 0 var(--line),0 20px 40px -36px rgba(6,50,74,.5);text-decoration:none;color:inherit;
  transition:transform .5s var(--ease-out),box-shadow .5s var(--ease-out);
}
a.exp:hover{transform:translateY(-3px);box-shadow:0 1px 0 var(--line),0 28px 50px -34px rgba(6,50,74,.5)}
.exp .ico{width:40px;height:40px;border-radius:50%;border:1px solid var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--sea);margin-bottom:6px}
.exp h3{font-size:clamp(19px,1rem + .4vw,22px);line-height:1.15}
.exp p{font-size:14.5px;line-height:1.5;color:var(--muted);margin:0;flex:1}
.exp .from{font-size:11.5px;color:var(--muted-ink);font-weight:600;letter-spacing:.12em;text-transform:uppercase;margin-top:6px}
.more-link{
  display:inline-flex;align-items:center;gap:10px;margin-top:28px;font-weight:600;font-size:15.5px;color:var(--sea);
  text-decoration:none;padding:6px 0;border-bottom:1px solid var(--line-strong);transition:border-color .3s;
}
.more-link svg{transition:transform .4s var(--ease-out)}
.more-link:hover{border-color:var(--sea)}
.more-link:hover svg{transform:translateX(4px)}

/* ---- VOCI DEGLI OSPITI (fondo profondo, a tutta larghezza) ---- */
.voices{
  margin-top:var(--section);padding:var(--section) 0;color:#fff;position:relative;overflow:hidden;
  background:
    radial-gradient(50% 60% at 85% 0%,rgba(46,137,176,.35),transparent 70%),
    var(--sea-deep);
}
.voices::before{content:"";position:absolute;inset:0;background-image:var(--grain);opacity:.08;mix-blend-mode:soft-light;pointer-events:none}
.voices .wrap{position:relative}
.social-strip{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:clamp(56px,7vw,96px);border-top:1px solid rgba(255,255,255,.16)}
.soc-badge{display:flex;flex-direction:column;gap:8px;padding:28px 24px 0 0}
.soc-badge+.soc-badge{padding-left:24px;border-left:1px solid rgba(255,255,255,.16)}
.soc-score{font-family:"Brygada";font-size:clamp(30px,3.4vw,46px);font-weight:400;color:#fff;line-height:1;display:flex;align-items:center;gap:8px;font-variant-numeric:lining-nums;letter-spacing:-.02em}
.soc-score svg{width:.6em;height:.6em;color:var(--accent)}
.soc-label{font-size:14px;color:rgba(255,255,255,.72);font-weight:500}
.reviews{display:grid;grid-template-columns:1.2fr 1fr;gap:clamp(40px,6vw,96px);align-items:start}
.review{margin:0}
.stars{display:flex;gap:4px;color:var(--accent)}
.stars svg{width:15px;height:15px}
.review blockquote{
  font-family:"Brygada";font-style:italic;font-weight:300;font-size:clamp(26px,2.9vw,40px);line-height:1.22;
  margin:22px 0 0;color:#fff;letter-spacing:-.01em;
}
.review+.review blockquote{font-size:clamp(21px,1.9vw,26px);line-height:1.35;color:rgba(255,255,255,.92)}
.review+.review{padding-top:14px}
.review cite{display:block;margin-top:24px;font-style:normal;font-size:14px;letter-spacing:.02em;color:rgba(255,255,255,.72)}
.review cite b{color:#fff;font-weight:600}

/* ---- POSIZIONE ---- */
.loc{display:grid;grid-template-columns:.9fr 1.1fr;gap:clamp(40px,6vw,96px);align-items:end}
.loc .sec-head{margin-bottom:0}
.loc-list{display:grid;grid-template-columns:repeat(2,1fr);border-top:1px solid var(--line-strong)}
.loc-item{padding:26px 0 26px;border-bottom:1px solid var(--line-strong)}
.loc-item:nth-child(odd){padding-right:24px;border-right:1px solid var(--line-strong)}
.loc-item:nth-child(even){padding-left:28px}
.loc-item .km{font-family:"Brygada";font-size:clamp(40px,4.4vw,60px);color:var(--sea);font-weight:300;line-height:1;letter-spacing:-.03em;font-variant-numeric:lining-nums}
.loc-item .pl{font-size:15px;color:var(--muted);margin-top:10px}

/* ============================================================
   PAGINA ESPERIENZE
   ============================================================ */
.exp-page{padding:clamp(56px,7vw,96px) 0 var(--section)}
.exp-grid-full{display:grid;grid-template-columns:repeat(2,1fr);gap:clamp(22px,3vw,36px)}
.exp-card{
  background:#fff;border-radius:18px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 1px 0 var(--line),0 30px 60px -48px rgba(6,50,74,.5);
  transition:box-shadow .5s var(--ease-out),transform .5s var(--ease-out);
}
.exp-card:hover{transform:translateY(-4px);box-shadow:0 1px 0 var(--line),0 40px 70px -40px rgba(6,50,74,.45)}
.exp-card:hover .photo-slot{transform:scale(1.04)}
.exp-photo{aspect-ratio:16/9;position:relative;overflow:hidden}
.exp-card--wide{grid-column:auto}
#foto{grid-column:1/-1;display:grid;grid-template-columns:1.15fr 1fr;grid-template-rows:auto auto 1fr}
#foto .exp-photo{grid-row:1/-1;aspect-ratio:auto;min-height:420px}
#foto .exp-card-head{padding-top:36px}
.exp-card-head{padding:28px 30px 16px;display:grid;grid-template-columns:auto 1fr auto;gap:18px;align-items:start}
.exp-ico{
  flex:none;width:48px;height:48px;border-radius:50%;border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;color:var(--sea);
}
.exp-info{min-width:0}
.exp-info h2,.exp-info h3{font-size:clamp(24px,2.2vw,30px);line-height:1.1}
.exp-info p{font-size:15px;color:var(--muted);margin:10px 0 0;line-height:1.6}
.exp-price-badge{
  flex:none;color:var(--sea);font-family:"Brygada";font-weight:400;font-size:24px;line-height:1;
  white-space:nowrap;text-align:right;font-variant-numeric:lining-nums;
}
.exp-price-badge small{font-family:"Ysabeau";font-size:12px;font-weight:500;color:var(--muted);display:block;margin-top:6px}
.exp-72h{
  margin:0 30px 8px;font-size:13.5px;color:var(--muted-ink);font-weight:500;display:flex;align-items:center;gap:8px;
}
.exp-72h svg{flex:none;color:var(--coral-deep)}
.exp-form{padding:20px 30px 28px;border-top:1px solid var(--line);margin-top:auto}
.exp-form--contact p{font-size:14.5px;color:var(--muted);margin:0 0 16px}
.exp-form--contact .btns{display:flex;gap:12px;flex-wrap:wrap}
.exp-form--contact .btn{flex:1 1 140px;white-space:nowrap}
.form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:14px}
.form-row.single{grid-template-columns:1fr}
.form-field{display:flex;flex-direction:column;gap:6px;min-width:0}
.form-field label,.form-field .form-label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:600}
.form-field input[type="date"]{
  border:1px solid var(--line-strong);background:var(--sand);border-radius:10px;min-height:48px;
  font-family:"Ysabeau";font-size:16px;font-weight:500;color:var(--ink);
  padding:10px 12px;width:100%;transition:border-color .2s,box-shadow .2s;
}
.form-field input[type="date"]:focus{border-color:var(--sea);outline:none;box-shadow:0 0 0 3px rgba(21,182,194,.25)}
.people-ctrl{
  display:flex;align-items:center;border:1px solid var(--line-strong);
  border-radius:10px;overflow:hidden;background:var(--sand);
}
.people-btn{
  background:none;border:none;cursor:pointer;color:var(--ink);font-size:19px;font-weight:600;
  width:44px;height:46px;display:flex;align-items:center;justify-content:center;
  flex:none;transition:background .15s;
}
.people-btn:hover{background:rgba(10,86,126,.07)}
.people-val{flex:1;text-align:center;font-size:16px;font-weight:600;color:var(--ink);font-variant-numeric:tabular-nums}
.deposit-line{
  display:flex;align-items:baseline;justify-content:space-between;
  padding:12px 0;border-top:1px dashed var(--line-strong);
  font-size:14px;margin-bottom:12px;
}
.deposit-line span{color:var(--muted)}
.deposit-line strong{font-size:22px;color:var(--sea);font-family:"Brygada";font-weight:400;font-variant-numeric:lining-nums}
.btn-book{width:100%;min-height:52px;font-size:16px;border-radius:12px}
.transfer-routes{display:flex;flex-wrap:wrap;gap:8px;padding:6px 30px 18px}
.route-pill{
  display:flex;flex-direction:column;align-items:flex-start;gap:1px;
  padding:9px 16px;border-radius:12px;border:1px solid var(--line-strong);
  background:#fff;cursor:pointer;transition:border-color .2s,background .2s;font-family:"Ysabeau";min-height:44px;
}
.route-pill:hover{border-color:var(--sea)}
.route-pill.active{border-color:var(--sea);background:rgba(10,86,126,.07);box-shadow:inset 0 0 0 1px var(--sea)}
.route-name{font-size:14px;font-weight:600;color:var(--ink);display:inline-flex;align-items:center;gap:6px}
.route-name svg{width:14px;height:14px;color:var(--sea)}
.route-price{font-size:12.5px;color:var(--muted-ink);font-weight:500}
.exp-contact-panel{
  grid-column:1/-1;display:grid;grid-template-columns:1.1fr 1fr;border-radius:18px;overflow:hidden;
  background:var(--sea-deep);color:#fff;position:relative;
}
.exp-contact-panel .exp-photo{aspect-ratio:auto;min-height:340px;--sx:30%;--sy:60%;--hz:60%}
.exp-contact-body{display:flex;flex-direction:column;justify-content:center;padding:clamp(28px,4vw,56px)}
.exp-contact-panel .exp-card-head{padding:0;grid-template-columns:auto 1fr}
.exp-contact-panel .exp-ico{border-color:rgba(255,255,255,.3);color:#fff}
.exp-contact-panel .exp-info h2,.exp-contact-panel .exp-info h3{color:#fff;font-size:clamp(28px,3vw,40px)}
.exp-contact-panel .exp-info p{color:rgba(255,255,255,.82);font-size:16px}
.exp-contact-inner{padding:0;margin-top:22px;display:flex;flex-direction:column;align-items:flex-start;gap:22px}
.exp-contact-inner p{font-size:15.5px;color:rgba(255,255,255,.75);margin:0;max-width:48ch;line-height:1.6}
.exp-contact-btns{display:flex;gap:12px;flex-wrap:wrap}
.exp-contact-panel .btn-ghost{color:#fff;border-color:rgba(255,255,255,.4)}
.exp-contact-panel .btn-ghost:hover{border-color:#fff}
.exp-note{font-size:12.5px;color:var(--muted);text-align:center;margin:10px 0 0;line-height:1.5}
.legal{
  margin-top:46px;padding:20px 26px;border-radius:var(--r);
  background:rgba(10,86,126,.05);border:1px solid var(--line);
  font-size:13px;color:var(--muted);line-height:1.72;
}
.legal strong{color:var(--ink)}

/* ============================================================
   PAGINA CONSIGLI
   ============================================================ */
.cat-nav{
  background:var(--sand);
  border-bottom:1px solid var(--line);position:sticky;top:76px;z-index:50;overflow-x:auto;scrollbar-width:none;
  transition:top .3s var(--ease-out);
}
.cat-nav::-webkit-scrollbar{display:none}
.cat-nav-inner{display:flex;gap:4px;min-width:min-content;padding:0 var(--gutter);max-width:var(--maxw);margin:0 auto}
.cat-nav a{
  display:flex;align-items:center;gap:8px;padding:17px 16px;
  font-size:14px;font-weight:600;color:var(--muted-ink);text-decoration:none;
  border-bottom:2px solid transparent;white-space:nowrap;transition:color .2s,border-color .3s;
}
.cat-nav a:first-child{padding-left:0}
.cat-nav a:hover{color:var(--sea-deep)}
.cat-nav a.active{color:var(--sea-deep);border-color:var(--sea)}
.cat-nav svg{flex:none;opacity:.7}
.cat-nav a.active svg,.cat-nav a:hover svg{opacity:1}
.page-body{padding:clamp(56px,7vw,96px) 0 var(--section)}
.category-block{margin-bottom:clamp(88px,10vw,136px);scroll-margin-top:150px}
.category-block:last-of-type{margin-bottom:0}
.category-block .sec-head{margin-bottom:36px;max-width:none}
.category-block .sec-head h2{font-size:clamp(32px,4vw,52px)}
.category-block .sec-head p{font-size:17.5px;max-width:60ch;margin:16px 0 0}
.cat-banner{
  border-radius:var(--r-img);height:clamp(200px,30vw,380px);margin-bottom:36px;--sx:76%;--sy:72%;--hz:72%;
}
#spiagge .cat-banner{--sx:24%;--sy:66%;--hz:66%}
#ristoranti .cat-banner{--sx:58%;--sy:78%;--hz:78%}
#attrazioni .cat-banner{--sx:36%;--sy:60%;--hz:60%}
#barca .cat-banner{--sx:86%;--sy:70%;--hz:70%}
.cat-banner-scrim{position:absolute;inset:0;z-index:2;background:linear-gradient(to top,rgba(6,50,74,.6),transparent 55%);pointer-events:none}
.cat-banner .cat-banner-label{
  position:absolute;left:24px;bottom:20px;z-index:3;color:#fff;
  font-family:"Brygada";font-style:italic;font-size:clamp(20px,2vw,26px);font-weight:400;
}
.tips-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 clamp(24px,3vw,44px);border-top:1px solid var(--line-strong)}
.tips-grid.wide{grid-template-columns:repeat(2,minmax(0,1fr))}
.tip-card{
  padding:28px 0 32px;display:flex;flex-direction:column;gap:12px;border-bottom:1px solid var(--line-strong);min-width:0;
}
.tip-card.placeholder{opacity:.55}
.tip-photo{width:100%;min-width:0;aspect-ratio:3/2;border-radius:var(--r-img);margin-bottom:6px;--sx:70%;--hz:62%}
.tip-card:has(.tip-photo) .tip-ico{display:none}
.tip-card:hover .photo-slot{transform:scale(1.04)}
.tip-card.free .tip-tag{color:var(--sea)}
.tip-card.paid .tip-tag{color:var(--accent-ink)}
.tip-ico{
  width:44px;height:44px;border-radius:50%;flex:none;border:1px solid var(--line-strong);
  display:flex;align-items:center;justify-content:center;color:var(--sea);
}
.tip-card h3{font-size:clamp(22px,1.9vw,26px);line-height:1.15}
.tip-card p{font-size:15px;color:var(--muted);margin:0;line-height:1.65;flex:1}
.tip-tag{
  align-self:flex-start;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;
}
.tip-link{
  display:inline-flex;align-items:center;gap:6px;font-size:14px;font-weight:600;
  color:var(--sea);text-decoration:none;margin-top:auto;align-self:flex-start;padding:4px 0;border-bottom:1px solid var(--line-strong);
}
.tip-link svg{transition:transform .3s var(--ease-out)}
.tip-link:hover{border-color:var(--sea)}
.tip-link:hover svg{transform:translateX(3px)}
.transport-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px}
.transport-card{background:#fff;border-radius:var(--r);overflow:hidden;box-shadow:0 1px 0 var(--line),0 24px 50px -44px rgba(6,50,74,.5)}
.transport-card.placeholder{opacity:.55;border-style:dashed}
.transport-head{
  background:var(--sea-deep);color:#fff;padding:18px 22px;
  display:flex;align-items:center;gap:14px;
}
.transport-head svg{flex:none;opacity:.85}
.transport-head h3{font-size:20px;color:#fff}
.transport-head small{display:block;font-family:"Ysabeau";font-size:12.5px;opacity:.75;margin-top:3px;font-weight:400}
.transport-body{padding:20px 22px}
.transport-row{
  display:flex;align-items:flex-start;gap:12px;padding:10px 0;
  border-bottom:1px solid var(--line);font-size:14.5px;
}
.transport-row:last-child{border-bottom:none;padding-bottom:0}
.transport-row .label{color:var(--muted);min-width:90px;flex:none;font-size:13px;padding-top:2px}
.transport-row .value{color:var(--ink);font-weight:500;min-width:0;overflow-wrap:anywhere}
.exp-banner{
  background:var(--sea-deep);color:#fff;border-radius:18px;position:relative;overflow:hidden;
  padding:clamp(32px,5vw,64px);display:flex;align-items:center;justify-content:space-between;
  gap:28px;flex-wrap:wrap;margin-top:var(--section);
}
.exp-banner::before{content:"";position:absolute;inset:0;background:radial-gradient(50% 90% at 90% 100%,rgba(227,144,126,.2),transparent 70%);pointer-events:none}
.exp-banner>*{position:relative}
.exp-banner h2,.exp-banner h3{font-size:clamp(28px,3.4vw,44px);color:#fff;max-width:18ch}
.exp-banner p{color:rgba(255,255,255,.8);margin:14px 0 0;font-size:16.5px;max-width:52ch}

/* ---- WIDGET ORARI LIVE (Circumvesuviana / bus) ---- */
.transfer-cta{
  display:flex;align-items:center;justify-content:space-between;gap:20px 40px;flex-wrap:wrap;
  background:var(--sea-deep);color:#fff;border-radius:var(--r);padding:clamp(24px,3vw,36px);margin-bottom:22px;
}
.transfer-cta>div:first-child{flex:1 1 320px;min-width:0}
.transfer-cta h3{color:#fff;font-size:clamp(22px,1.9vw,28px);line-height:1.15}
.transfer-cta p{color:rgba(255,255,255,.82);font-size:15px;line-height:1.6;margin:8px 0 0;max-width:60ch}
.transfer-cta-btns{display:flex;align-items:center;gap:12px 22px;flex-wrap:wrap}
.transfer-cta-link{color:#fff;font-size:14px;font-weight:600;text-decoration:none;border-bottom:1px solid rgba(255,255,255,.4);padding:4px 0}
.transfer-cta-link:hover{border-color:#fff}
.cv-widget{background:#fff;border-radius:var(--r);overflow:hidden;margin-bottom:22px;box-shadow:0 1px 0 var(--line),0 24px 50px -44px rgba(6,50,74,.5)}
.cv-widget .transport-head{position:relative}
.cv-live{position:absolute;right:22px;top:50%;transform:translateY(-50%);background:var(--accent);color:var(--sea-deep);font-size:11px;font-weight:700;letter-spacing:.1em;padding:3px 10px;border-radius:100px}
.cv-next-trains{display:grid;grid-template-columns:1fr auto 1fr;padding:24px 22px;gap:0}
.cv-divider{width:1px;background:var(--line);margin:0 24px}
.cv-dir-label{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);font-weight:600;margin-bottom:10px}
.cv-next{display:flex;align-items:baseline;gap:10px;margin-bottom:6px}
.cv-next-time{font-family:"Brygada";font-size:48px;color:var(--sea);line-height:1;font-weight:300;letter-spacing:-.02em;font-variant-numeric:tabular-nums lining-nums}
.cv-next-when{font-size:13.5px;color:var(--muted)}
.cv-following{font-size:13px;color:var(--muted);min-height:20px}
.cv-following span{margin-right:10px;font-weight:500;font-variant-numeric:tabular-nums}
.cv-foot{padding:14px 22px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px}
.cv-note{font-size:13px;color:var(--muted)}
.cv-toggle{display:inline-flex;align-items:center;gap:7px;background:none;border:1px solid var(--line-strong);border-radius:100px;font-family:"Ysabeau";font-size:13.5px;font-weight:600;color:var(--sea);cursor:pointer;padding:10px 16px;min-height:44px;transition:background .15s}
.cv-toggle:hover{background:rgba(10,86,126,.06)}
.cv-toggle svg{transition:transform .2s}
.cv-toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
.cv-timetable{padding:18px 22px 22px;border-top:1px solid var(--line)}
.cv-tt-cols{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.cv-tt-cols h4{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:var(--sea);margin-bottom:12px;font-family:"Ysabeau";font-weight:600}
.cv-times{display:flex;flex-wrap:wrap;gap:6px}
.cv-pill{font-size:13px;font-weight:600;padding:5px 10px;border-radius:7px;background:var(--sand);border:1px solid var(--line);color:var(--ink);font-variant-numeric:tabular-nums}
.cv-pill.is-next{background:var(--sea);color:#fff;border-color:var(--sea)}
.cv-pill.is-past{opacity:.28}

/* ---- FOOTER ---- */
footer{background:var(--sea-deep);color:rgba(255,255,255,.8);position:relative;overflow:hidden}
.voices+footer{border-top:1px solid rgba(255,255,255,.1)}
.foot{display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:48px;padding-top:clamp(72px,8vw,112px);padding-bottom:48px}
.foot .brand{color:#fff;font-size:30px}
.foot .brand small{color:rgba(255,255,255,.6)}
.foot-h{font-family:"Ysabeau";font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.6);margin:0 0 20px;font-weight:600}
.foot a:not(.btn):not(.brand){color:rgba(255,255,255,.86);text-decoration:none;display:block;margin-bottom:12px;font-size:15.5px;transition:color .2s;overflow-wrap:anywhere}
.foot a:not(.btn):not(.brand):hover{color:#fff;text-decoration:underline}
.foot .brand{display:inline-block}
.foot p{font-size:15.5px;margin:0 0 12px;color:rgba(255,255,255,.72)}
.foot-desc{margin-top:22px;max-width:34ch}
.foot .btn{margin-top:10px}
.foot-bottom{border-top:1px solid rgba(255,255,255,.12);padding-top:22px;padding-bottom:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:13px;color:rgba(255,255,255,.6)}

/* ---- WHATSAPP FLOAT ---- */
.wa{
  position:fixed;right:22px;bottom:calc(22px + env(safe-area-inset-bottom));z-index:80;width:52px;height:52px;border-radius:50%;
  background:#25d366;display:flex;align-items:center;justify-content:center;  /* verde WhatsApp originale, come .mbar-wa su mobile */
  box-shadow:0 14px 30px -12px rgba(6,50,74,.55);transition:transform .45s var(--ease-out),opacity .45s;
}
.wa:hover{transform:scale(1.06)}
.wa.is-hidden{opacity:0;transform:translateY(16px) scale(.9);pointer-events:none}

/* ---- SCROLL REVEAL (solo con JS attivo: senza JS tutto resta visibile) ---- */
.js .reveal{opacity:0;transform:translateY(28px);transition:opacity .9s var(--ease-out) var(--d,0s),transform 1.1s var(--ease-out) var(--d,0s)}
.js .reveal.in{opacity:1;transform:none}

/* ---- APERTURA HERO (momento firma) ---- */
@media (prefers-reduced-motion:no-preference){
  .hero-media .photo-slot.is-loaded,.hero-media.no-photo{animation:heroBreath 2.6s var(--ease-out) both}
  .hero h1 .ln>span{animation:lineUp 1.2s var(--ease-out) both}
  .hero h1 .ln:nth-child(2)>span{animation-delay:.1s}
  .hero h1 .ln:nth-child(3)>span{animation-delay:.2s}
  .hero-foot,.hero-place{animation:fadeUp 1.1s var(--ease-out) .45s both}
  .home .booking-card{animation:fadeUp 1.1s var(--ease-out) .6s both}
  @keyframes heroBreath{from{transform:scale(1.08)}to{transform:scale(1)}}
  @keyframes lineUp{from{transform:translateY(105%)}to{transform:none}}
  @keyframes fadeUp{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}

  /* parallax dell'hero legato allo scroll: CSS scroll-driven animations, zero JS.
     Dove il browser non le supporta l'hero resta semplicemente fermo. */
  @supports (animation-timeline:scroll()){
    .hero-media{animation:heroDrift linear both;animation-timeline:scroll(root);animation-range:0 100svh}
    .hero-content{animation:heroFade linear both;animation-timeline:scroll(root);animation-range:0 80svh}
    @keyframes heroDrift{to{transform:translateY(12%)}}
    @keyframes heroFade{to{opacity:.15;transform:translateY(-6%)}}
  }
}

/* ---- RESPONSIVE (verificato in continuo da 320 a 1920px) ---- */
@media (max-width:1079px){
  .nav-links{display:none}
  .nav-links.open{
    display:flex;position:absolute;top:76px;left:0;right:0;flex-direction:column;align-items:flex-start;
    background:var(--sand);padding:12px var(--gutter) 28px;gap:4px;border-bottom:1px solid var(--line);
    box-shadow:0 30px 40px -30px rgba(6,50,74,.35);max-height:calc(100dvh - 76px);overflow:auto;
  }
  .nav-links.open a{font-family:"Brygada";font-size:26px;color:var(--sea-deep);padding:8px 0}
  .menu-btn{display:block}
  .reviews{grid-template-columns:1fr}
  /* prenotazione: tre campi in riga, pulsante a tutta larghezza sotto */
  .booking-card{grid-template-columns:repeat(3,minmax(0,1fr));padding:8px}
  .booking-submit{grid-column:1/-1;padding:6px 4px 4px}
  .booking-submit .btn{width:100%}
  .exp-mini{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:920px){
  .loc{grid-template-columns:1fr}
  .sec-head--split{grid-template-columns:minmax(0,1fr)}
  .social-strip{grid-template-columns:1fr 1fr}
  .soc-badge:nth-child(3){padding-left:0;border-left:0}
  .soc-badge{padding-bottom:28px}
  .exp-contact-panel{grid-template-columns:1fr}
  #foto{display:flex;grid-column:1/-1}
  #foto .exp-photo{min-height:0;aspect-ratio:16/9}
  .exp-contact-panel .exp-photo{min-height:0;aspect-ratio:16/9}
  .tips-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .exp-card:not(#foto) .exp-card-head,.exp-card-head{grid-template-columns:auto 1fr;padding:24px 22px 14px;gap:14px}
  .exp-ico{width:40px;height:40px}
  .exp-price-badge{grid-column:2;text-align:left}
  .exp-price-badge small{display:inline;margin:0 0 0 6px}
  .exp-72h{margin:0 22px 8px}
  .exp-form{padding:18px 22px 24px}
  .transfer-routes{padding:6px 22px 16px}
  .tips-grid.wide{grid-template-columns:minmax(0,1fr)}
  .transport-grid{grid-template-columns:1fr}
  .cv-tt-cols{grid-template-columns:1fr}
  .foot{grid-template-columns:1fr 1fr}
  .foot>div:first-child{grid-column:1/-1}
}
@media (max-width:767px){
  /* sistemazioni: una sotto l'altra a tutta larghezza (più spazio alle foto);
     anteprima esperienze: carosello orizzontale con scroll-snap */
  .rooms{grid-template-columns:1fr;gap:44px}
  .room:nth-child(n){grid-column:auto}
  .room:nth-child(n) .room-photo{aspect-ratio:4/3}
  .exp-mini{
    display:flex;gap:14px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;
    margin:0 calc(var(--gutter) * -1);padding:4px var(--gutter) 18px;scroll-padding-inline:var(--gutter);
    scrollbar-width:none;-webkit-overflow-scrolling:touch;
  }
  .exp-mini::-webkit-scrollbar{display:none}
  .js .exp-mini .reveal{opacity:1;transform:none}
  .room-body{padding-top:16px}
  .room-top{flex-direction:column;align-items:flex-start;gap:4px}
  .room .price{text-align:left}
  .room .price .stagione{display:inline;margin:0 0 0 8px}
  .room-spec{margin:8px 0 12px}
  .room-link{display:flex;width:100%;min-height:50px}  /* telefono: pulsante largo quanto la card */
  .carousel-count{display:block;margin:6px 0 0;font-size:13px;font-weight:600;color:var(--muted-ink);font-variant-numeric:tabular-nums;letter-spacing:.06em}
  a.exp{flex:0 0 min(72%,300px);scroll-snap-align:start}
}
@media (max-width:699px){
  .exp-grid-full{grid-template-columns:minmax(0,1fr)}
  .exp-photo,#foto .exp-photo,.exp-contact-panel .exp-photo{aspect-ratio:2/1}
}
@media (max-width:680px){
  body{font-size:16.5px}
  .hero{min-height:0}
  .hero-content{padding-top:112px;padding-bottom:84px}
  .hero h1{font-size:clamp(38px,11.5vw,56px)}
  .hero p.lede{font-size:16.5px}
  .hero-place{margin-top:18px;font-size:11.5px;letter-spacing:.12em}
  .hero-foot{gap:26px;margin-top:24px}
  .hero-meta li{padding:0 clamp(12px,4vw,18px)}
  .hero-meta b{font-size:22px}
  .booking{margin-top:-44px}
  .booking-card{padding:6px}
  .booking-trigger{padding:10px clamp(8px,2.6vw,12px)}
  .booking-value{font-size:clamp(13.5px,3.8vw,15px)}
  .booking-label{font-size:11px;letter-spacing:.08em}
  .tips-grid{grid-template-columns:minmax(0,1fr)}
  .form-row{grid-template-columns:minmax(0,1fr)}
  .cv-next-trains{grid-template-columns:1fr;gap:18px}
  .cv-divider{width:100%;height:1px;margin:8px 0}
  .cv-next-time{font-size:40px}
  .foot{grid-template-columns:1fr}
  .direct-card{justify-content:flex-start}
  .direct-perks{justify-content:flex-start;display:grid;grid-template-columns:1fr 1fr;gap:12px 16px}
  .booking-note{text-align:left}
}
@media (max-width:600px){
  /* header stretto: niente spazio per la CTA — restano calendario, menu e WhatsApp */
  .nav-cta .btn-primary{display:none}
  .nav-cta{gap:4px}
  .brand small{letter-spacing:.14em}
}
@media (max-width:380px){
  .brand{font-size:20px}
  .brand small{letter-spacing:.03em;font-size:10px;white-space:nowrap}
  .hero-meta{display:grid;grid-template-columns:repeat(3,auto);justify-content:start}
  .hero-meta li{padding:0 10px}
  .hero-meta b{font-size:19px}
  .hero-meta span,.hero-meta li{font-size:13px}
  .lang-switch{min-width:40px}
  /* prenotazione: date affiancate, ospiti su riga propria */
  .booking-card{grid-template-columns:1fr 1fr}
  .booking-trigger:nth-child(2){border-right:0}
  .booking-trigger:nth-child(3){grid-column:1/-1;border-right:0;border-top:1px solid var(--line);flex-direction:row;align-items:baseline;gap:10px}
  .direct-perks{grid-template-columns:1fr}
  .loc-item:nth-child(even){padding-left:16px}
  .loc-item:nth-child(odd){padding-right:14px}
  .soc-badge+.soc-badge{padding-left:16px}
}
@media (prefers-reduced-motion:reduce){
  *{scroll-behavior:auto!important}
  .js .reveal{opacity:1;transform:none;transition:none}
  .photo-slot,.room-link svg,a.exp,.more-link svg{transition:none}
  .rooms,.exp-mini{scroll-behavior:auto}
  .js .photo-slot:not(.is-loaded){opacity:1}
  .cal-dialog[open],.sheet[open]{animation:none}
  .sheet-nav,.sheet-close{transition:none}
}

/* ---- COOKIE: banner (assets/site.js) e informativa (cookie.html) ---- */
.cookie{
  position:fixed;left:16px;bottom:16px;z-index:90;width:min(460px,calc(100vw - 32px));
  background:#fff;color:var(--ink);border-radius:18px;padding:22px 22px 18px;
  box-shadow:0 30px 70px -24px rgba(6,50,74,.55),0 0 0 1px var(--line);animation:dlgIn .5s var(--ease-out);
}
.cookie .cookie-t{font-family:"Brygada";font-size:22px;line-height:1.2;color:var(--sea-deep);margin:0 40px 8px 0}
.cookie p{margin:0;font-size:14.5px;line-height:1.55}
.cookie a{color:var(--sea);font-weight:600}
.cookie-x{
  position:absolute;top:12px;right:12px;width:40px;height:40px;border-radius:50%;border:1px solid var(--line);
  background:#fff;color:var(--sea-deep);cursor:pointer;display:flex;align-items:center;justify-content:center;
}
.cookie-opts{display:grid;gap:10px;margin:16px 0 0;padding:14px 0 0;border-top:1px solid var(--line);font-size:14.5px}
.cookie-opts[hidden]{display:none}
.cookie-opts label{display:flex;gap:10px;align-items:center;cursor:pointer}
.cookie-opts input{width:18px;height:18px;accent-color:var(--sea);margin:0}
.cookie-btns{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px}
.cookie-btns .btn{flex:1 1 auto;min-height:44px;padding:10px 16px;font-size:14px}
@media (max-width:600px){
  .cookie{left:0;bottom:0;width:100%;border-radius:18px 18px 0 0;padding:20px 18px calc(16px + env(safe-area-inset-bottom))}
}
@media (prefers-reduced-motion:reduce){ .cookie{animation:none} }
.foot-legal{display:flex;gap:16px;flex-wrap:wrap}
.foot-legal a,.linklike{color:inherit;text-decoration:underline;text-underline-offset:3px}
.linklike{background:none;border:0;padding:0;font:inherit;cursor:pointer}
.foot-legal a:hover,.linklike:hover{color:#fff}
.legal{max-width:760px;padding-top:clamp(40px,6vw,72px);overflow-wrap:anywhere}
.legal h2{font-size:clamp(22px,1rem + 1vw,28px);margin:40px 0 12px;color:var(--sea-deep)}
.legal p,.legal li{font-size:16.5px;line-height:1.65;color:var(--ink)}
.legal ul{padding-left:20px}
.legal a{color:var(--sea)}
.legal table{display:block;overflow-x:auto;width:100%;border-collapse:collapse;font-size:15px;margin:8px 0;overflow-wrap:normal}
.legal th,.legal td{text-align:left;padding:10px 12px;border-bottom:1px solid var(--line);vertical-align:top;color:var(--ink)}
.legal th{font-weight:600;color:var(--sea-deep)}

/* ---- MAPPA (sezione Posizione): riquadro con indirizzo finché Google Maps non viene caricata ---- */
.loc-map{margin-top:clamp(40px,5vw,64px);border-radius:var(--r-img);height:clamp(320px,38vw,460px);color:#fff}
.loc-map.ph{background:linear-gradient(160deg,#06324A 0%,#0A567E 100%)}
.loc-map.ph::after{display:none}
.loc-map-ph{position:relative;z-index:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:18px;padding:24px;text-align:center}
.loc-addr{margin:0;font-size:17px;line-height:1.5;color:rgba(255,255,255,.92)}
.loc-addr strong{display:block;margin-bottom:6px;font-family:"Brygada";font-size:clamp(24px,1.2rem + 1vw,32px);font-weight:400;color:#fff}
.loc-map-note{margin:0;max-width:44ch;font-size:13px;line-height:1.5;color:rgba(255,255,255,.82)}
.loc-map iframe{position:absolute;inset:0;z-index:2;width:100%;height:100%;border:0}
.loc-map.is-loaded .loc-map-ph{visibility:hidden}
.loc-dir{margin-top:20px}
section.rooms-block{padding-top:clamp(40px,5vw,64px)}  /* niente titolo visibile: meno aria sopra le card */

/* ---- BARRA FISSA SU MOBILE (assets/site.js): "Verifica disponibilità" sempre a portata di pollice ---- */
.mbar{display:none}
@media (max-width:767px){
  .wa{display:none}  /* WhatsApp è nella barra */
  .mbar{
    position:fixed;left:0;right:0;bottom:0;z-index:70;display:flex;gap:10px;align-items:center;
    padding:8px 14px calc(8px + env(safe-area-inset-bottom));background:var(--sand);
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-top:1px solid var(--line);
    transition:transform .35s var(--ease-out);
  }
  .mbar.is-hidden{transform:translateY(110%)}
  .mbar-cta{flex:1;min-height:44px;padding-top:9px;padding-bottom:9px}
  .mbar-wa{flex:none;width:44px;height:44px;border-radius:50%;background:#25d366;display:flex;align-items:center;justify-content:center}
  .mbar-wa svg{width:22px;height:22px}
  body:has(.mbar){padding-bottom:calc(64px + env(safe-area-inset-bottom))}  /* il footer non resta sotto la barra */
}
@media (max-width:767px) and (prefers-reduced-motion:reduce){ .mbar{transition:none} }

/* telefono: l'header si nasconde scorrendo verso il basso e torna scorrendo verso l'alto
   (classe hdr-up su <html>, site.js); la barra categorie dei Consigli sale al suo posto */
@media (max-width:767px){
  header{transition:transform .3s var(--ease-out),border-color .4s,background .4s}
  .hdr-up header{transform:translateY(-100%)}
  .hdr-up .cat-nav{top:0}
}
@media (max-width:767px) and (prefers-reduced-motion:reduce){ header,.cat-nav{transition:none} }

/* esperienze spente dall'Area Pia (contenuti/esperienze.json → costruisci.py) */
[data-esperienza][hidden]{display:none!important}

/* ---- AREA PIA: avviso in home, descrizione nella scheda, "da" sui prezzi (contenuti/ → costruisci.py) ---- */
/* l'avviso sta sopra la carta di prenotazione (che resta dov'è) e l'hero si allunga per fargli posto */
.booking-avviso{
  position:absolute;left:0;right:0;bottom:100%;padding:0 var(--gutter);margin:0 0 14px;
  display:flex;align-items:center;gap:10px;line-height:1.4;
  color:#fff;font-size:15.5px;font-weight:500;letter-spacing:.01em;text-shadow:0 1px 12px rgba(6,50,74,.5);
}
body:has(.booking-avviso) .hero-content{padding-bottom:130px}
@media (max-width:680px){ body:has(.booking-avviso) .hero-content{padding-bottom:100px} .booking-avviso{font-size:15px} }
.booking-avviso::before{content:"";flex:none;width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 4px rgba(227,144,126,.25)}
.sheet-body .sheet-descr{margin:14px 0 0;font-size:15.5px;line-height:1.6;color:var(--ink)}
.room .price .da{font-family:"Ysabeau";font-size:13px;font-weight:500;color:var(--muted)}
