/* ============================================================
   ALBATRO B&B · Taviano — "l'albatro sulla città dei fiori"
   Identità n. 11 · Playfair Display + Mulish
   Palette: petalo #FDFCFA · foglia #33584E · ciclamino #B04F6E
            celeste ionio #86B5CF (decorativo) · inchiostro #22322E
   ============================================================ */

:root{
  --paper:#FDFCFA;
  --ink:#22322E;
  --leaf:#33584E;
  --leaf-deep:#26423A;
  --leaf-night:#1E332C;
  --bloom:#B04F6E;
  --bloom-deep:#98415D;
  --sky:#86B5CF;
  --sky-soft:#EDF4F8;
  --petal:#FAF3F4;
  --mist:#F2F5F2;
  --line:#E6E1D8;
  --radius:16px;
  --shadow:0 10px 30px rgba(34,50,46,.10);
  --shadow-soft:0 6px 18px rgba(34,50,46,.07);
  --font-title:"Playfair Display",Georgia,serif;
  --font-body:"Mulish",system-ui,-apple-system,"Segoe UI",sans-serif;
  --head-h:70px;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;
  font-family:var(--font-body);
  font-size:1rem;line-height:1.65;
  color:var(--ink);
  background:var(--paper);
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
body.no-scroll{overflow:hidden}
img{max-width:100%;display:block}
a{color:var(--bloom);text-decoration-thickness:1px;text-underline-offset:3px}
a:hover{color:var(--bloom-deep)}
h1,h2,h3,h4{font-family:var(--font-title);font-weight:600;line-height:1.15;color:var(--leaf);margin:0 0 .55em}
h1{font-size:clamp(2.35rem,7.5vw,4.1rem)}
h2{font-size:clamp(1.7rem,4.6vw,2.5rem)}
h3{font-size:clamp(1.2rem,3vw,1.5rem)}
p{margin:0 0 1em}
::selection{background:var(--bloom);color:#fff}
:focus-visible{outline:3px solid var(--bloom);outline-offset:3px;border-radius:4px}

.container{max-width:1120px;margin-inline:auto;padding-inline:clamp(18px,4.5vw,32px)}
section[id],div[id]{scroll-margin-top:calc(var(--head-h) + 14px)}
.section{padding-block:clamp(58px,9vw,104px)}
.section--tight{padding-block:clamp(42px,6vw,72px)}
.kicker{
  display:inline-flex;align-items:center;gap:10px;
  font-size:.78rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;
  color:var(--bloom);margin-bottom:14px;
}
.kicker::before{content:"";width:26px;height:2px;background:var(--sky);border-radius:2px}
.lead{font-size:1.08rem;max-width:62ch}
.center{text-align:center}
.center .lead{margin-inline:auto}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--leaf);color:#fff;padding:10px 16px;border-radius:999px}
.skip:focus{left:8px}

/* ---------- bottoni ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  font-family:var(--font-body);font-weight:700;font-size:.98rem;
  padding:13px 26px;border-radius:999px;border:2px solid transparent;
  text-decoration:none;cursor:pointer;line-height:1.2;
  transition:transform .2s ease,box-shadow .2s ease,background .2s ease,color .2s ease;
}
.btn svg{flex:0 0 auto}
.btn:hover{transform:translateY(-2px)}
.btn-bloom{background:var(--bloom);color:#fff}
.btn-bloom:hover{background:var(--bloom-deep);color:#fff;box-shadow:0 10px 22px rgba(176,79,110,.32)}
.btn-leaf{background:var(--leaf);color:#fff}
.btn-leaf:hover{background:var(--leaf-deep);color:#fff;box-shadow:0 10px 22px rgba(51,88,78,.28)}
.btn-ghost{background:rgba(253,252,250,.08);color:#fff;border-color:rgba(253,252,250,.75)}
.btn-ghost:hover{background:rgba(253,252,250,.18);color:#fff}
.btn-white{background:#fff;color:var(--bloom-deep)}
.btn-white:hover{color:var(--bloom-deep);box-shadow:0 10px 22px rgba(30,51,44,.25)}
.btn-line{background:transparent;color:var(--leaf);border-color:var(--leaf)}
.btn-line:hover{background:var(--leaf);color:#fff}

/* ---------- badge & chip ---------- */
.badge{
  display:inline-flex;align-items:center;gap:8px;
  background:rgba(30,51,44,.42);border:1px solid rgba(253,252,250,.5);
  color:#fff;font-weight:700;font-size:.88rem;
  padding:8px 15px;border-radius:999px;
  backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
}
.badge svg{color:#FFD98A}
.badge small{font-weight:600;opacity:.85;font-size:.78em}
.chip{
  display:inline-flex;align-items:center;gap:6px;
  font-size:.8rem;font-weight:700;color:var(--leaf);
  background:var(--mist);border:1px solid var(--line);
  padding:5px 12px;border-radius:999px;white-space:nowrap;
}
.chip--bloom{background:var(--petal);color:var(--bloom-deep);border-color:#EBD3DA}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 18px}

/* ---------- header ---------- */
.site-head{
  position:sticky;top:0;z-index:60;
  border-bottom:1px solid rgba(230,225,216,.65);
}
.head-blur{
  position:absolute;inset:0;
  background:rgba(253,252,250,.82);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
}
.head-in{
  position:relative;z-index:2;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  min-height:var(--head-h);
}
.brand{display:inline-flex;align-items:center;gap:11px;text-decoration:none;color:var(--leaf)}
.brand-mark{width:46px;height:46px;flex:0 0 auto}
.brand-txt{display:flex;flex-direction:column;line-height:1.12}
.brand-txt strong{font-family:var(--font-title);font-size:1.22rem;font-weight:700;letter-spacing:.01em}
.brand-txt small{font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--bloom)}

.main-nav a{text-decoration:none}
.nav-list{list-style:none;margin:0;padding:0;display:flex;align-items:center;gap:6px}
.nav-link{
  display:inline-block;padding:10px 14px;border-radius:999px;
  font-weight:700;font-size:.96rem;color:var(--ink);
}
.nav-link:hover{color:var(--bloom-deep);background:var(--petal)}
.nav-link[aria-current="page"]{color:var(--bloom-deep);background:var(--petal)}
.has-sub{position:relative}
.has-sub > .nav-link::after{
  content:"";display:inline-block;margin-left:7px;width:7px;height:7px;
  border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);
}
.sub{
  list-style:none;margin:0;padding:10px;
  position:absolute;top:calc(100% + 6px);left:8px;min-width:270px;
  background:#fff;border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);
  opacity:0;visibility:hidden;transform:translateY(8px);
  transition:opacity .22s ease,transform .22s ease,visibility .22s;
}
.has-sub:hover .sub,.has-sub:focus-within .sub{opacity:1;visibility:visible;transform:translateY(0)}
.sub a{
  display:block;padding:9px 12px;border-radius:10px;
  color:var(--ink);font-weight:600;font-size:.92rem;
}
.sub a small{display:block;font-size:.74rem;color:var(--bloom);font-weight:700;letter-spacing:.06em}
.sub a:hover{background:var(--petal);color:var(--bloom-deep)}
.nav-cta-wrap{margin-left:8px}
.nav-cta{padding:11px 22px;font-size:.92rem}

.burger{
  display:none;position:relative;z-index:90;
  width:46px;height:46px;border:0;background:transparent;cursor:pointer;
  border-radius:12px;
}
.burger span{
  position:absolute;left:11px;width:24px;height:2.4px;border-radius:2px;
  background:var(--leaf);transition:transform .3s ease,opacity .2s ease,background .3s ease;
}
.burger span:nth-child(1){top:15px}
.burger span:nth-child(2){top:22px}
.burger span:nth-child(3){top:29px}
.burger.open span{background:#fff}
.burger.open span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.open span:nth-child(2){opacity:0}
.burger.open span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

/* ---------- hero (home) ---------- */
.hero{
  position:relative;min-height:100svh;min-height:100vh;
  display:flex;align-items:center;
  color:#fff;overflow:hidden;
}
.hero-media{position:absolute;inset:0;z-index:0}
.hero-media img{width:100%;height:100%;object-fit:cover}
.hero-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(30,51,44,.38) 0%,rgba(30,51,44,.22) 42%,rgba(30,51,44,.82) 100%);
}
.hero-in{position:relative;z-index:2;text-align:center;padding-block:110px 90px}
.hero-kicker{
  display:inline-block;font-size:.8rem;font-weight:800;letter-spacing:.22em;text-transform:uppercase;
  color:#fff;background:rgba(176,79,110,.55);border:1px solid rgba(253,252,250,.4);
  padding:7px 16px;border-radius:999px;margin-bottom:20px;
  backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);
}
.hero h1{color:#fff;margin-bottom:.1em;text-shadow:0 2px 24px rgba(30,51,44,.45)}
.hero-tagline{
  font-family:var(--font-title);font-style:italic;font-weight:500;
  font-size:clamp(1.25rem,4vw,1.9rem);color:#fff;margin:0 0 .5em;
  text-shadow:0 2px 18px rgba(30,51,44,.5);
}
.hero-sub{font-size:clamp(.98rem,2.6vw,1.12rem);max-width:46ch;margin:0 auto 26px;color:rgba(253,252,250,.94)}
.hero-badges{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-bottom:26px}
.hero-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.hero-bird{width:min(150px,34vw);height:auto;margin:0 auto 14px;color:rgba(253,252,250,.95)}
.scroll-cue{
  position:absolute;left:50%;bottom:18px;transform:translateX(-50%);z-index:2;
  display:flex;flex-direction:column;align-items:center;gap:4px;
  color:rgba(253,252,250,.85);font-size:.72rem;font-weight:700;letter-spacing:.18em;text-transform:uppercase;
  text-decoration:none;
}
.scroll-cue svg{animation:bob 2.2s ease-in-out infinite}
@keyframes bob{0%,100%{transform:translateY(0)}50%{transform:translateY(7px)}}

/* petali fluttuanti */
.petals{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden}
.petals span{
  position:absolute;top:-6%;width:17px;height:26px;opacity:0;
  background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 36'%3E%3Cpath d='M12 2c8 8 8 22 0 32C4 24 4 10 12 2z' fill='%23FDFCFA' opacity='.75'/%3E%3C/svg%3E") center/contain no-repeat;
  animation:fall linear infinite;
}
.petals span:nth-child(1){left:9%;animation-duration:17s;animation-delay:1s}
.petals span:nth-child(2){left:27%;animation-duration:21s;animation-delay:6s;width:13px}
.petals span:nth-child(3){left:52%;animation-duration:19s;animation-delay:3s}
.petals span:nth-child(4){left:73%;animation-duration:23s;animation-delay:9s;width:14px}
.petals span:nth-child(5){left:88%;animation-duration:18s;animation-delay:12s}
@keyframes fall{
  0%{transform:translateY(0) rotate(0deg);opacity:0}
  8%{opacity:.65}
  85%{opacity:.5}
  100%{transform:translateY(112vh) rotate(70deg);opacity:0}
}

/* ---------- divisore "scia di volo" ---------- */
.flight{display:flex;justify-content:center;padding:8px 0 0}
.flight svg{width:min(330px,72vw);height:auto;color:var(--sky)}
.flight .bird{color:var(--leaf)}

/* ---------- pattern petali per sezioni alternate ---------- */
.section--petal{
  background-color:#FBF5F3;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cpath d='M30 18c9 9 9 24 0 33c-9-9-9-24 0-33z' fill='%23B04F6E' opacity='.05' transform='rotate(24 30 34)'/%3E%3Cpath d='M118 76c7 7 7 19 0 26c-7-7-7-19 0-26z' fill='%2386B5CF' opacity='.07' transform='rotate(-30 118 89)'/%3E%3Cpath d='M58 122c6 6 6 16 0 22c-6-6-6-16 0-22z' fill='%23B04F6E' opacity='.045' transform='rotate(48 58 133)'/%3E%3C/svg%3E");
}
.section--mist{
  background-color:#F2F6F3;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160' viewBox='0 0 160 160'%3E%3Cpath d='M36 22c8 8 8 21 0 29c-8-8-8-21 0-29z' fill='%2333584E' opacity='.04' transform='rotate(-20 36 36)'/%3E%3Cpath d='M112 92c7 7 7 18 0 25c-7-7-7-18 0-25z' fill='%2386B5CF' opacity='.075' transform='rotate(36 112 104)'/%3E%3C/svg%3E");
}

/* ---------- card messaggi chiave ---------- */
.cards-3{display:grid;gap:18px;margin-top:34px}
.kcard{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;box-shadow:var(--shadow-soft);
  display:flex;flex-direction:column;gap:4px;
}
.kcard-ico{
  width:52px;height:52px;border-radius:16px;display:grid;place-items:center;
  background:var(--petal);color:var(--bloom);margin-bottom:14px;
}
.kcard h3{margin-bottom:.3em}
.kcard p{margin:0;font-size:.95rem}

/* ---------- split (highlight / insegna) ---------- */
.split{display:grid;gap:26px;align-items:center}
.split-media{position:relative}
.split-media img{
  width:100%;aspect-ratio:4/3.2;object-fit:cover;
  border-radius:22px;box-shadow:var(--shadow);
}
.split-media::after{
  content:"";position:absolute;inset:auto -12px -12px auto;width:64%;height:52%;
  border:2px solid var(--sky);border-radius:22px;z-index:-1;
  transform:translate(0,0);
}
.split-media--bloom::after{border-color:#E5C2CD}
.split-list{list-style:none;margin:16px 0 22px;padding:0;display:grid;gap:11px}
.split-list li{display:flex;gap:11px;align-items:flex-start;font-size:.98rem}
.split-list svg{flex:0 0 auto;color:var(--bloom);margin-top:3px}
.note-src{font-size:.8rem;color:#5C6B66}

/* ---------- citazioni ---------- */
.quotes{display:grid;gap:18px;margin-top:34px}
.quote{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:26px 24px;box-shadow:var(--shadow-soft);
  display:flex;flex-direction:column;gap:12px;margin:0;
}
.quote-mark{width:34px;height:34px;color:var(--sky)}
.quote p{margin:0;font-family:var(--font-title);font-style:italic;font-size:1.06rem;line-height:1.5;color:var(--ink)}
.quote footer{font-size:.84rem;font-weight:700;color:var(--bloom-deep)}
.quote footer small{display:block;font-weight:600;color:#5C6B66}
.quote-fig{margin:0;border-radius:var(--radius);overflow:hidden;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow-soft);display:flex;flex-direction:column}
.quote-fig img{width:100%;aspect-ratio:4/3;object-fit:cover;flex:1}
.quote-fig figcaption{padding:13px 18px;font-size:.82rem;color:#5C6B66}

/* ---------- striscia numeri ---------- */
.numbers{
  background:linear-gradient(150deg,var(--leaf) 0%,var(--leaf-deep) 100%);
  background-color:var(--leaf);
  color:#fff;position:relative;overflow:hidden;
}
.numbers::before{
  content:"";position:absolute;inset:0;opacity:.5;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='190' height='190' viewBox='0 0 190 190'%3E%3Cpath d='M40 24c10 10 10 26 0 36c-10-10-10-26 0-36z' fill='%23FDFCFA' opacity='.05' transform='rotate(22 40 42)'/%3E%3Cpath d='M140 96c8 8 8 21 0 29c-8-8-8-21 0-29z' fill='%23FDFCFA' opacity='.045' transform='rotate(-34 140 110)'/%3E%3C/svg%3E");
}
.numbers .container{position:relative;z-index:1}
.num-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:26px 14px;text-align:center}
.num b{display:block;font-family:var(--font-title);font-weight:700;font-size:clamp(1.7rem,5.5vw,2.5rem);line-height:1.05;color:#fff}
.num b sup{font-size:.45em;font-weight:600}
.num span{display:block;margin-top:6px;font-size:.8rem;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:#B7D2C9}

/* ---------- banda CTA finale ---------- */
.cta-band{
  background:linear-gradient(140deg,var(--bloom-deep) 0%,var(--bloom) 78%);
  color:#fff;position:relative;overflow:hidden;
}
.cta-band::before{
  content:"";position:absolute;inset:0;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cpath d='M46 26c11 11 11 29 0 40c-11-11-11-29 0-40z' fill='%23FDFCFA' opacity='.06' transform='rotate(26 46 46)'/%3E%3Cpath d='M148 108c9 9 9 23 0 32c-9-9-9-23 0-32z' fill='%23FDFCFA' opacity='.05' transform='rotate(-38 148 124)'/%3E%3C/svg%3E");
}
.cta-band .container{position:relative;z-index:1;text-align:center}
.cta-band h2{color:#fff}
.cta-band .lead{color:rgba(255,255,255,.94);margin-inline:auto}
.cta-band .hero-cta{margin-top:26px}
.cta-band .after-link{margin-top:18px;font-size:.92rem}
.cta-band .after-link a{color:#fff;font-weight:700}
.cta-band .flight svg{color:rgba(253,252,250,.55)}
.cta-band .flight .bird{color:#fff}

/* ---------- footer ---------- */
.site-foot{background:var(--leaf-night);color:#C9D8D2;font-size:.92rem}
.foot-in{display:grid;gap:30px;padding-block:54px 30px}
.foot-brand{display:flex;align-items:center;gap:12px;color:#fff}
.foot-brand .brand-mark{width:44px;height:44px}
.foot-brand strong{font-family:var(--font-title);font-size:1.3rem;display:block;line-height:1.1}
.foot-brand small{font-size:.72rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--sky)}
.foot-col h4{color:#fff;font-size:1.02rem;margin-bottom:.7em}
.foot-col p{margin:0 0 .5em}
.site-foot a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4)}
.site-foot a:hover{color:var(--sky)}
.foot-meta{font-size:.8rem;color:#9DB3AB}
.foot-bottom{
  border-top:1px solid rgba(201,216,210,.18);
  padding-block:18px calc(20px + env(safe-area-inset-bottom));
  display:flex;flex-wrap:wrap;gap:10px 24px;justify-content:space-between;align-items:center;
  font-size:.8rem;color:#9DB3AB;
}
.foot-bottom a{color:inherit;text-decoration:underline}
.foot-bottom a b{font-weight:700}

/* ---------- page hero (interne) ---------- */
.page-hero{
  background:linear-gradient(160deg,var(--leaf) 0%,var(--leaf-deep) 100%);
  color:#fff;position:relative;overflow:hidden;
  padding-block:clamp(64px,10vw,104px) clamp(46px,7vw,72px);
}
.page-hero::before{
  content:"";position:absolute;inset:0;opacity:.6;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='190' height='190' viewBox='0 0 190 190'%3E%3Cpath d='M42 26c10 10 10 27 0 37c-10-10-10-27 0-37z' fill='%23FDFCFA' opacity='.05' transform='rotate(20 42 44)'/%3E%3Cpath d='M138 100c8 8 8 22 0 30c-8-8-8-22 0-30z' fill='%2386B5CF' opacity='.1' transform='rotate(-30 138 115)'/%3E%3C/svg%3E");
}
.page-hero .container{position:relative;z-index:1}
.page-hero h1{color:#fff;margin-bottom:.25em}
.page-hero .kicker{color:#F3C7D3}
.page-hero .kicker::before{background:var(--sky)}
.page-hero .lead{color:rgba(253,252,250,.92)}
.page-hero .hero-bird{margin:0 0 10px;width:110px;color:rgba(253,252,250,.9)}

/* ---------- galleria + lightbox ---------- */
.gallery{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-top:34px}
.g-item{
  position:relative;display:block;border-radius:var(--radius);overflow:hidden;
  box-shadow:var(--shadow-soft);
}
.g-item img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover;transition:transform .5s ease}
.g-item:hover img{transform:scale(1.045)}
.g-item::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,transparent 55%,rgba(30,51,44,.66) 100%);
  opacity:.9;transition:opacity .3s ease;
}
.g-cap{
  position:absolute;left:14px;right:14px;bottom:11px;z-index:2;
  color:#fff;font-size:.8rem;font-weight:700;letter-spacing:.02em;
  text-shadow:0 1px 6px rgba(30,51,44,.6);
}
.g-item:first-child{grid-column:span 2}
.g-item:first-child img{aspect-ratio:16/9.5}

.lb{
  position:fixed;inset:0;z-index:120;display:none;
  background:rgba(30,51,44,.93);
  padding:24px;align-items:center;justify-content:center;
}
.lb.open{display:flex}
.lb-frame{max-width:min(960px,94vw);width:100%;text-align:center}
.lb-frame img{
  width:auto;max-width:100%;max-height:76vh;margin-inline:auto;
  border-radius:14px;box-shadow:0 20px 60px rgba(0,0,0,.4);
  background:var(--leaf-deep);aspect-ratio:auto;
}
.lb-cap{color:#E4EDE9;font-size:.92rem;margin:14px auto 0;max-width:60ch}
.lb-btn{
  position:absolute;z-index:2;width:48px;height:48px;border-radius:50%;
  border:1px solid rgba(253,252,250,.45);background:rgba(253,252,250,.12);
  color:#fff;display:grid;place-items:center;cursor:pointer;
  transition:background .2s ease;
}
.lb-btn:hover{background:rgba(176,79,110,.75)}
.lb-close{top:16px;right:16px}
.lb-prev{left:10px;top:50%;transform:translateY(-50%)}
.lb-next{right:10px;top:50%;transform:translateY(-50%)}

/* ---------- camere ---------- */
.room{
  scroll-margin-top:calc(var(--head-h) + 22px);
  background:#fff;border:1px solid var(--line);border-radius:22px;
  overflow:hidden;box-shadow:var(--shadow-soft);
  display:grid;margin-top:30px;
}
.room-media{position:relative}
.room-media img{width:100%;height:100%;aspect-ratio:4/3;object-fit:cover}
.room-tag{
  position:absolute;top:14px;left:14px;z-index:2;
  background:rgba(30,51,44,.55);border:1px solid rgba(253,252,250,.5);color:#fff;
  font-size:.76rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  padding:7px 14px;border-radius:999px;
  backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px);
}
.room-body{padding:26px 24px 28px;display:flex;flex-direction:column;align-items:flex-start}
.room-body h3{font-size:clamp(1.35rem,3.4vw,1.7rem);margin-bottom:.15em}
.room-sub{font-size:.86rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--bloom);margin:0 0 12px}
.room-body p{font-size:.97rem}
.room-cta{display:flex;flex-wrap:wrap;gap:10px;margin-top:auto}
.room-cta .btn{padding:11px 22px;font-size:.92rem}

/* ---------- servizi ---------- */
.services{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:34px}
.srv{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:18px 16px;display:flex;flex-direction:column;gap:10px;
  box-shadow:var(--shadow-soft);
}
.srv svg{color:var(--leaf);width:30px;height:30px}
.srv b{font-size:.9rem;line-height:1.35;font-weight:700;color:var(--ink)}
.srv-note{margin-top:22px;font-size:.86rem;color:#5C6B66}

/* ---------- dove siamo ---------- */
.dist-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:34px}
.dist{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:18px;box-shadow:var(--shadow-soft);
}
.dist b{display:block;font-family:var(--font-title);font-size:1.35rem;color:var(--bloom-deep);line-height:1.1}
.dist span{font-size:.88rem;font-weight:700;color:var(--ink)}
.dist small{display:block;font-size:.78rem;color:#5C6B66;margin-top:3px}

/* ---------- contatti ---------- */
.contact-grid{display:grid;gap:26px;margin-top:8px}
.form-card{
  background:#fff;border:1px solid var(--line);border-radius:22px;
  padding:clamp(22px,4vw,34px);box-shadow:var(--shadow);
  scroll-margin-top:calc(var(--head-h) + 18px);
}
.form-card h2{margin-bottom:.2em}
.form-hint{font-size:.92rem;color:#5C6B66;margin-bottom:22px}
.f-grid{display:grid;gap:16px}
.f-field label{display:block;font-size:.82rem;font-weight:800;letter-spacing:.05em;text-transform:uppercase;color:var(--leaf);margin-bottom:6px}
.f-field input,.f-field select,.f-field textarea{
  width:100%;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;
  font-family:var(--font-body);font-size:1rem;color:var(--ink);background:#fff;
  transition:border-color .2s ease,box-shadow .2s ease;
}
.f-field input:focus,.f-field select:focus,.f-field textarea:focus{
  outline:none;border-color:var(--bloom);box-shadow:0 0 0 3px rgba(176,79,110,.15);
}
.f-field textarea{min-height:110px;resize:vertical}
.date-box{
  background:linear-gradient(140deg,var(--petal) 0%,var(--sky-soft) 100%);
  border:2px solid var(--bloom);border-radius:var(--radius);
  padding:18px 16px;
}
.date-box-head{display:flex;align-items:center;gap:10px;margin-bottom:14px}
.date-box-head svg{color:var(--bloom)}
.date-box-head b{font-size:.95rem;font-weight:800;color:var(--bloom-deep);letter-spacing:.04em;text-transform:uppercase}
.date-box-head small{display:block;font-weight:600;color:#5C6B66;font-size:.78rem;letter-spacing:0;text-transform:none}
.date-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(146px,1fr));gap:12px}
.form-ok{
  margin-top:18px;padding:20px;border-radius:var(--radius);
  background:var(--mist);border:1.5px solid var(--leaf);
}
.form-ok p{margin:0 0 12px;font-size:.96rem}
.form-ok .btn{margin-bottom:8px}
.form-ok small{display:block;color:#5C6B66}
.f-privacy{font-size:.78rem;color:#5C6B66;margin:2px 0 0}

.aside-card{
  background:#fff;border:1px solid var(--line);border-radius:var(--radius);
  padding:20px;box-shadow:var(--shadow-soft);
  display:flex;gap:14px;align-items:flex-start;
}
.aside-card + .aside-card{margin-top:14px}
.aside-ico{
  flex:0 0 auto;width:46px;height:46px;border-radius:14px;
  display:grid;place-items:center;background:var(--petal);color:var(--bloom);
}
.aside-card h3{font-size:1.05rem;margin-bottom:.25em}
.aside-card p{margin:0;font-size:.92rem}
.aside-card a{font-weight:700}

.map-wrap{margin-top:34px}
.map-wrap iframe{
  width:100%;height:340px;border:0;border-radius:22px;
  box-shadow:var(--shadow);display:block;
}
.map-note{font-size:.84rem;color:#5C6B66;margin-top:10px}

/* ---------- reveal ---------- */
html.js .reveal{opacity:0;transform:translateY(20px);transition:opacity .7s ease,transform .7s ease}
html.js .reveal.in{opacity:1;transform:none}
html.js .reveal-d1.in{transition-delay:.07s}
html.js .reveal-d2.in{transition-delay:.14s}
html.js .reveal-d3.in{transition-delay:.21s}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
  html.js .reveal{opacity:1;transform:none}
  .petals{display:none}
}

/* ============================================================
   MOBILE NAV (≤899px) — pannello compatto, tutte le voci visibili
   ============================================================ */
@media (max-width:899px){
  .burger{display:block}
  .main-nav{
    position:fixed;inset:0;z-index:80;
    background:linear-gradient(165deg,var(--leaf) 0%,var(--leaf-deep) 72%,#22453B 100%);
    padding:78px 30px calc(20px + env(safe-area-inset-bottom));
    clip-path:circle(0px at calc(100% - 44px) 42px);
    visibility:hidden;
    transition:clip-path .5s cubic-bezier(.65,0,.35,1),visibility .5s;
    overflow-y:auto;
  }
  .main-nav.open{clip-path:circle(142% at calc(100% - 44px) 42px);visibility:visible}
  .main-nav::before{
    content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180' viewBox='0 0 180 180'%3E%3Cpath d='M40 24c9 9 9 25 0 34c-9-9-9-25 0-34z' fill='%23FDFCFA' opacity='.06' transform='rotate(24 40 41)'/%3E%3Cpath d='M132 96c8 8 8 20 0 28c-8-8-8-20 0-28z' fill='%2386B5CF' opacity='.12' transform='rotate(-32 132 110)'/%3E%3C/svg%3E");
  }
  .nav-list{flex-direction:column;align-items:flex-start;gap:0;position:relative;z-index:1}
  .nav-list > li{width:100%;border-bottom:1px solid rgba(253,252,250,.14)}
  .nav-list > li:last-child{border-bottom:0}
  .nav-link{
    display:block;width:auto;padding:10px 0;border-radius:0;
    font-family:var(--font-title);font-weight:600;font-size:1.3rem;color:#fff;background:none;
  }
  .nav-link:hover,.nav-link[aria-current="page"]{color:#F3C7D3;background:none}
  .has-sub > .nav-link::after{display:none}
  .sub{
    position:static;opacity:1;visibility:visible;transform:none;
    background:none;border:0;box-shadow:none;min-width:0;
    padding:0 0 8px 4px;transition:none;
  }
  .sub a{
    display:flex;align-items:center;gap:9px;
    padding:6px 0 6px 12px;border-left:2px solid rgba(176,120,143,.85);
    border-radius:0;color:rgba(253,252,250,.93);font-size:1rem;font-weight:600;
  }
  .sub a small{display:inline;color:var(--sky);font-size:.72rem}
  .sub a:hover{background:none;color:#F3C7D3}
  .nav-cta-wrap{margin:16px 0 0}
  .nav-cta{width:100%;background:var(--bloom);color:#fff;font-size:1.02rem;padding:14px 20px}
  .nav-cta:hover{background:var(--bloom-deep)}
}

/* ============================================================
   DESKTOP ≥ 720px / ≥ 900px
   ============================================================ */
@media (min-width:720px){
  .cards-3{grid-template-columns:repeat(3,1fr)}
  .num-grid{grid-template-columns:repeat(3,1fr)}
  .quotes{grid-template-columns:1fr 1fr}
  .quote-fig{grid-column:span 2}
  .services{grid-template-columns:repeat(3,1fr)}
  .dist-grid{grid-template-columns:repeat(3,1fr)}
  .gallery{grid-template-columns:repeat(3,1fr);gap:14px}
  .g-item:first-child{grid-column:span 2;grid-row:span 1}
  .g-item:first-child img{aspect-ratio:auto;height:100%}
  .foot-in{grid-template-columns:1.2fr 1fr 1fr}
}
@media (min-width:900px){
  .split{grid-template-columns:1.05fr 1fr;gap:52px}
  .split--rev .split-media{order:2}
  .room{grid-template-columns:1.02fr 1fr}
  .room--rev .room-media{order:2}
  .room-media img{aspect-ratio:auto;min-height:340px}
  .num-grid{grid-template-columns:repeat(6,1fr)}
  .services{grid-template-columns:repeat(4,1fr)}
  .quotes{grid-template-columns:1.1fr 1.1fr .9fr}
  .quote-fig{grid-column:auto}
  .contact-grid{grid-template-columns:1.5fr 1fr;align-items:start}
  .map-wrap iframe{height:400px}
}
