/* ============================================================
   ALOHA B&B — La tua oasi · Francavilla al Mare
   Design: TM Studio Web & Softwares
   Palette: lagoon teal · sabbia · arancio tramonto · oro
   ============================================================ */

:root{
  --sand:      #F3EAD6;
  --sand-2:    #EFE3CB;
  --cream:     #FBF7EE;
  --ink:       #0C2A30;
  --ink-soft:  #2C4A50;
  --lagoon:    #0C5C59;
  --lagoon-d:  #073F3D;
  --lagoon-dd: #052B2A;
  --surf:      #16A39B;
  --sun:       #E8761C;
  --sun-2:     #F4A24A;
  --brass:     #C2A059;
  --brass-2:   #D8BE83;
  --line:      rgba(12,42,48,.14);
  --line-light:rgba(251,247,238,.18);

  --ff-display:"Fraunces", Georgia, serif;
  --ff-body:"Manrope", system-ui, -apple-system, sans-serif;
  --ff-script:"Caveat", cursive;

  --maxw: 1240px;
  --gutter: clamp(20px, 5vw, 64px);
  --radius: 18px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*,*::before,*::after{ box-sizing:border-box; }
html{ -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html{ scroll-behavior:auto; } }

body{
  margin:0;
  font-family:var(--ff-body);
  color:var(--ink);
  background:var(--sand);
  font-size:clamp(16px,1.05vw,18px);
  line-height:1.65;
  font-weight:400;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
button{ font-family:inherit; cursor:pointer; }

/* lenis */
html.lenis,html.lenis body{ height:auto; }
.lenis.lenis-smooth{ scroll-behavior:auto !important; }
.lenis.lenis-stopped{ overflow:hidden; }

/* ---------- TYPOGRAPHY ---------- */
h1,h2,h3,h4{ font-family:var(--ff-display); font-weight:400; line-height:1.02; margin:0;
  letter-spacing:-.01em; }
.display{
  font-size:clamp(3.1rem, 11vw, 8.6rem);
  font-weight:300;
  letter-spacing:.06em;
}
.h-xl{ font-size:clamp(2.5rem,6vw,4.6rem); font-weight:300; }
.h-lg{ font-size:clamp(2rem,4.4vw,3.4rem); font-weight:340; }
.h-md{ font-size:clamp(1.5rem,2.6vw,2.2rem); font-weight:400; }
em,.it{ font-style:italic; }
.script{ font-family:var(--ff-script); font-weight:600; font-style:normal;
  font-size:1.5em; line-height:1; color:var(--sun); }

.eyebrow{
  font-family:var(--ff-body);
  font-size:.78rem; font-weight:700;
  letter-spacing:.28em; text-transform:uppercase;
  color:var(--brass);
  display:inline-flex; align-items:center; gap:.7em;
}
.eyebrow::before{ content:""; width:30px; height:1px; background:var(--brass); opacity:.7; }
.eyebrow.center::after{ content:""; width:30px; height:1px; background:var(--brass); opacity:.7; }
.lead{ font-size:clamp(1.05rem,1.5vw,1.3rem); color:var(--ink-soft); max-width:48ch; }
.muted{ color:var(--ink-soft); }

/* ---------- LAYOUT ---------- */
.wrap{ width:100%; max-width:var(--maxw); margin-inline:auto; padding-inline:var(--gutter); }
section{ position:relative; }
.section{ padding-block:clamp(76px,11vw,150px); }
.section-tight{ padding-block:clamp(54px,7vw,96px); }
.center{ text-align:center; }
.stack-sm>*+*{ margin-top:1rem; }
.stack>*+*{ margin-top:1.6rem; }
.grid{ display:grid; gap:clamp(20px,3vw,40px); }

/* surfaces */
.bg-dark{ background:var(--lagoon-d); color:var(--cream); }
.bg-dark .lead,.bg-dark .muted{ color:rgba(251,247,238,.74); }
.bg-dark .eyebrow{ color:var(--brass-2); }
.bg-dark .eyebrow::before,.bg-dark .eyebrow.center::after{ background:var(--brass-2); }
.bg-deep{ background:var(--lagoon-dd); color:var(--cream); }
.bg-deep .lead,.bg-deep .muted,.bg-deep p{ color:rgba(251,247,238,.8); }
.bg-deep .eyebrow{ color:var(--brass-2); }
.bg-deep .eyebrow::before,.bg-deep .eyebrow.center::after{ background:var(--brass-2); }
.bg-cream{ background:var(--cream); }
.footer .muted{ color:rgba(251,247,238,.7); }

/* ---------- BUTTONS ---------- */
.btn{
  --bg:var(--sun); --fg:#fff;
  display:inline-flex; align-items:center; gap:.6em;
  padding:.95em 1.6em; border-radius:100px;
  background:var(--bg); color:var(--fg);
  font-weight:700; font-size:.95rem; letter-spacing:.01em;
  border:1px solid transparent;
  transition:transform .35s var(--ease), box-shadow .35s var(--ease), background .3s;
  box-shadow:0 10px 26px -12px rgba(232,118,28,.6);
  will-change:transform;
}
.btn:hover{ transform:translateY(-3px); box-shadow:0 18px 38px -14px rgba(232,118,28,.7); }
.btn svg{ width:1.15em; height:1.15em; }
.btn-ghost{
  --bg:transparent; --fg:var(--ink);
  box-shadow:none; border:1px solid var(--line);
}
.btn-ghost:hover{ background:var(--ink); color:var(--cream); border-color:var(--ink); box-shadow:none; }
.bg-dark .btn-ghost,.hero .btn-ghost{ --fg:var(--cream); border-color:var(--line-light); }
.bg-dark .btn-ghost:hover,.hero .btn-ghost:hover{ background:var(--cream); color:var(--ink); }
.btn-wa{ --bg:#1FA855; box-shadow:0 10px 26px -12px rgba(31,168,85,.6); }
.btn-wa:hover{ box-shadow:0 18px 38px -14px rgba(31,168,85,.7); }

/* ---------- NAV ---------- */
.nav{
  position:fixed; inset:0 0 auto 0; z-index:70; /* FIX: menu overlay issue */
  display:flex; align-items:center; justify-content:space-between;
  padding:18px var(--gutter);
  transition:background .5s var(--ease), padding .5s var(--ease), box-shadow .5s, transform .5s var(--ease);
  color:var(--cream);
}
.nav.solid{
  background:rgba(251,247,238,.86);
  backdrop-filter:saturate(160%) blur(14px);
  color:var(--ink);
  box-shadow:0 1px 0 var(--line);
  padding-block:12px;
}
.nav.hide{ transform:translateY(-110%); }

/* FIX: Quando il menu è aperto, rendi trasparente la navbar per far emergere il menu sotto */
body.menu-open .nav {
  background: transparent !important;
  backdrop-filter: none !important;
  box-shadow: none !important;
  color: var(--cream) !important;
}
body.menu-open .nav-cta .btn {
  display: none !important;
}

.brand{ display:flex; align-items:center; gap:.62em; z-index:2; }
.brand .mark{ width:30px; height:auto; color:currentColor; flex:none; }
.brand .wm{ font-family:var(--ff-display); font-weight:400; font-size:1.42rem;
  letter-spacing:.34em; padding-left:.18em; }
.nav-links{ display:flex; align-items:center; gap:clamp(18px,2vw,34px); list-style:none; margin:0; padding:0; }
.nav-links a{ font-weight:600; font-size:.92rem; position:relative; padding:.3em 0; letter-spacing:.01em; }
.nav-links a::after{ content:""; position:absolute; left:0; bottom:-2px; width:0; height:1.5px;
  background:var(--sun); transition:width .4s var(--ease); }
.nav-links a:hover::after,.nav-links a[aria-current="page"]::after{ width:100%; }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.nav-cta .btn{ padding:.66em 1.2em; font-size:.86rem; }

.burger{ display:none; width:42px; height:42px; border:none; background:none; position:relative; z-index:75; }
.burger span{ position:absolute; left:9px; right:9px; height:2px; background:currentColor; transition:.4s var(--ease); }
.burger span:nth-child(1){ top:15px; } .burger span:nth-child(2){ top:21px; } .burger span:nth-child(3){ top:27px; }
body.menu-open .burger span:nth-child(1){ top:21px; transform:rotate(45deg); }
body.menu-open .burger span:nth-child(2){ opacity:0; }
body.menu-open .burger span:nth-child(3){ top:21px; transform:rotate(-45deg); }

/* mobile menu */
.mobile-menu{
  position:fixed; inset:0; z-index:65;
  background:var(--lagoon-dd); color:var(--cream);
  display:flex; flex-direction:column; justify-content:center;
  padding:var(--gutter);
  clip-path:inset(0 0 100% 0); transition:clip-path .7s var(--ease);
  visibility:hidden;
}
body.menu-open .mobile-menu{ clip-path:inset(0 0 0 0); visibility:visible; }
.mobile-menu ul{ list-style:none; margin:0 0 2rem; padding:0; }
.mobile-menu li{ overflow:hidden; }

/* FIX: il font gigante lo diamo SOLO ai link della lista, non a tutto! */
.mobile-menu ul a{ font-family:var(--ff-display); font-weight:300;
  font-size:clamp(2.2rem,9vw,3.4rem); display:inline-block; padding:.12em 0;
  transform:translateY(110%); transition:transform .6s var(--ease); }
body.menu-open .mobile-menu ul a{ transform:translateY(0); }
.mobile-menu li:nth-child(1) a{ transition-delay:.12s }
.mobile-menu li:nth-child(2) a{ transition-delay:.18s }
.mobile-menu li:nth-child(3) a{ transition-delay:.24s }
.mobile-menu li:nth-child(4) a{ transition-delay:.3s }
.mobile-menu li:nth-child(5) a{ transition-delay:.36s }

/* FIX: sistemati i pulsanti del footer mobile per non avere il font gigante */
.mobile-menu .mm-foot{ display:flex; flex-wrap:wrap; gap:14px; align-items:center;
  opacity:0; transform:translateY(20px); transition:opacity .5s var(--ease) .3s, transform .5s var(--ease) .3s; }
body.menu-open .mobile-menu .mm-foot{ opacity:1; transform:translateY(0); }
.mobile-menu .mm-foot a { font-family:var(--ff-body); font-weight:600; font-size:1rem; transform:none; }
.mobile-menu .mm-foot .btn { font-size:.9rem; }


/* ---------- LANG TOGGLE ---------- */
.lang{
  position:fixed; right:18px; bottom:18px; z-index:55;
  display:flex; align-items:center; gap:8px;
  background:rgba(7,63,61,.92); color:var(--cream);
  border:1px solid var(--line-light);
  padding:7px 9px 7px 11px; border-radius:100px;
  backdrop-filter:blur(8px);
  box-shadow:0 12px 30px -14px rgba(0,0,0,.5);
  font-size:.8rem; font-weight:700; letter-spacing:.06em;
  transition:transform .4s var(--ease);
}
.lang:hover{ transform:translateY(-2px); }
.lang button{ background:none; border:none; color:inherit; font-weight:700;
  letter-spacing:.06em; opacity:.5; padding:2px 4px; font-size:.8rem; transition:opacity .3s; }
.lang button.on{ opacity:1; }
.lang .flag{ width:22px; height:15px; border-radius:3px; overflow:hidden; flex:none;
  box-shadow:0 0 0 1px rgba(255,255,255,.25) inset; display:block; }
.lang .sep{ width:1px; height:14px; background:var(--line-light); }

/* ---------- HERO ---------- */
.hero{ position:relative; min-height:100svh; display:flex; align-items:flex-end;
  overflow:hidden; color:var(--cream); padding-bottom:clamp(48px,8vh,90px); }
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media img{ width:100%; height:100%; object-fit:cover; transform:scale(1.08); }
.hero-sky{ position:absolute; inset:0; z-index:1;
  background:
   linear-gradient(90deg, rgba(4,26,30,.64) 0%, rgba(4,26,30,.3) 42%, rgba(4,26,30,0) 72%),
   linear-gradient(180deg, rgba(5,35,38,.6) 0%, rgba(5,35,38,.12) 24%, rgba(5,35,38,0) 42%),
   linear-gradient(0deg, rgba(4,26,30,.95) 0%, rgba(4,26,30,.85) 30%, rgba(4,26,30,.55) 54%, rgba(4,26,30,.28) 76%, rgba(4,26,30,.08) 100%),
   linear-gradient(0deg, rgba(4,26,30,.16), rgba(4,26,30,.16)); }
.hero-sun{ position:absolute; left:50%; bottom:20%; width:min(66vw,440px); aspect-ratio:1;
  transform:translate(-50%,60%); z-index:1; pointer-events:none;
  background:radial-gradient(circle at 50% 50%,
     rgba(244,162,74,.62) 0%, rgba(232,118,28,.32) 40%, rgba(232,118,28,0) 66%);
  filter:blur(3px); opacity:.0; mix-blend-mode:screen; }
.hero-inner{ position:relative; z-index:2; width:100%; max-width:var(--maxw);
  margin-inline:auto; padding-inline:var(--gutter); }
.hero h1{ text-shadow:0 2px 34px rgba(0,0,0,.6), 0 1px 3px rgba(0,0,0,.45); }
.hero .kicker,.hero .eyebrow{ color:#F4E9CE; text-shadow:0 1px 10px rgba(0,0,0,.6); }
.hero .eyebrow::before{ background:#E6C97E; opacity:.95; }
.hero .hero-sub,.hero p[data-hero]{ text-shadow:0 1px 14px rgba(0,0,0,.55); }
.hero .hero-tagline{ color:#F4E8C8 !important; text-shadow:0 1px 16px rgba(0,0,0,.55); }
.brand-logo{ width:42px; height:42px; border-radius:50%; display:block; flex:none;
  box-shadow:0 2px 12px rgba(0,0,0,.22); }
.hero-h1{ margin:0; line-height:0; }
.hero-logo{ width:clamp(148px,30vw,224px); height:auto; display:block; border-radius:50%;
  filter:drop-shadow(0 14px 32px rgba(0,0,0,.55)); }
.foot-logo{ width:84px; height:84px; border-radius:50%; display:block; margin-bottom:16px;
  box-shadow:0 6px 22px rgba(0,0,0,.32); }
.hero-sub{ margin-top:1.1rem; max-width:40ch; color:rgba(251,247,238,.86);
  font-size:clamp(1.05rem,1.5vw,1.3rem); }
.hero-cta{ margin-top:2rem; display:flex; flex-wrap:wrap; gap:14px; }
.hero-scroll{ position:absolute; left:var(--gutter); bottom:24px; z-index:2;
  font-size:.72rem; letter-spacing:.24em; text-transform:uppercase; color:rgba(251,247,238,.7);
  display:flex; align-items:center; gap:10px; }
.hero-scroll .line{ width:1px; height:42px; background:linear-gradient(var(--brass-2),transparent);
  position:relative; overflow:hidden; }
.hero-scroll .line::after{ content:""; position:absolute; inset:0; background:var(--cream);
  animation:scrolldot 2.2s var(--ease) infinite; }
@keyframes scrolldot{ 0%{transform:translateY(-100%)} 60%,100%{transform:translateY(100%)} }
.hero-badge{ position:absolute; right:var(--gutter); bottom:26px; z-index:2; text-align:right;
  font-size:.74rem; letter-spacing:.18em; text-transform:uppercase; color:rgba(251,247,238,.66); line-height:1.5; }

/* ---------- HORIZON DIVIDER ---------- */
.horizon{ position:relative; height:1px; background:var(--line);
  margin-block:0; overflow:visible; }
.horizon::before{ content:""; position:absolute; left:50%; top:0; transform:translate(-50%,-100%);
  width:54px; height:27px; border-radius:54px 54px 0 0;
  background:linear-gradient(180deg,var(--sun-2),var(--sun)); }
.bg-dark .horizon,.bg-deep .horizon{ background:var(--line-light); }

/* ---------- INTRO / SPLIT ---------- */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,80px); align-items:center; }
.split.rev .split-media{ order:2; }
.split-media{ position:relative; border-radius:var(--radius); overflow:hidden; }
.split-media img{ width:100%; height:100%; object-fit:cover; aspect-ratio:4/5; transition:transform 1.2s var(--ease); }
.split-media:hover img{ transform:scale(1.05); }
.figtag{ position:absolute; left:14px; bottom:14px; z-index:2;
  background:rgba(7,63,61,.84); color:var(--cream); backdrop-filter:blur(6px);
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; font-weight:700;
  padding:7px 12px; border-radius:100px; }

/* ---------- MARQUEE ---------- */
.marquee{ overflow:hidden; padding-block:clamp(18px,2.4vw,30px);
  border-block:1px solid var(--line-light); white-space:nowrap; }
.marquee-track{ display:inline-flex; gap:0; will-change:transform; }
.marquee span{ font-family:var(--ff-display); font-weight:300; font-style:italic;
  font-size:clamp(1.5rem,3.4vw,2.6rem); padding:0 .6em; color:var(--cream); opacity:.92; }
.marquee span .dot{ color:var(--sun); font-style:normal; padding:0 .25em; }

/* ---------- AMENITIES ---------- */
.amen{ display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(14px,2vw,26px); }
.amen-card{ padding:clamp(20px,2.4vw,30px); border:1px solid var(--line);
  border-radius:var(--radius); background:var(--cream);
  transition:transform .5s var(--ease), border-color .4s; }
.amen-card:hover{ transform:translateY(-6px); border-color:var(--brass); }
.amen-card .ic{ width:34px; height:34px; color:var(--lagoon); margin-bottom:14px; }
.amen-card h4{ font-family:var(--ff-body); font-weight:800; font-size:1rem;
  letter-spacing:.02em; margin-bottom:.3em; }
.amen-card p{ margin:0; font-size:.9rem; color:var(--ink-soft); }
.bg-dark .amen-card{ background:rgba(255,255,255,.04); border-color:var(--line-light); }
.bg-dark .amen-card .ic{ color:var(--brass-2); }
.bg-dark .amen-card p{ color:rgba(251,247,238,.7); }

/* ---------- ROOM CARDS ---------- */
.rooms{ display:grid; grid-template-columns:repeat(3,1fr); gap:clamp(18px,2vw,28px); }
.room{ position:relative; border-radius:var(--radius); overflow:hidden;
  aspect-ratio:3/4; display:flex; align-items:flex-end; color:var(--cream); }
.room img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  transition:transform 1.1s var(--ease); }
.room::after{ content:""; position:absolute; inset:0;
  background:linear-gradient(0deg, rgba(5,30,35,.85) 6%, rgba(5,30,35,.1) 52%, transparent 80%); }
.room:hover img{ transform:scale(1.07); }
.room-body{ position:relative; z-index:2; padding:clamp(18px,2vw,26px); width:100%; }
.room-body .n{ font-size:.74rem; letter-spacing:.22em; text-transform:uppercase; color:var(--brass-2); font-weight:700; }
.room-body h3{ font-size:clamp(1.7rem,2.4vw,2.2rem); font-weight:300; margin:.15em 0 .4em; }
.room-body p{ margin:0; font-size:.92rem; color:rgba(251,247,238,.82); max-width:34ch; }
.room-tags{ display:flex; flex-wrap:wrap; gap:8px; margin-top:14px; }
.room-tags span{ font-size:.72rem; padding:5px 10px; border:1px solid var(--line-light);
  border-radius:100px; letter-spacing:.04em; }

/* full room blocks */
.roomblock{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(24px,4vw,64px); align-items:center; }
.roomblock.rev .rb-media{ order:2; }
.rb-media{ border-radius:var(--radius); overflow:hidden; position:relative; }
.rb-media img{ width:100%; aspect-ratio:4/3; object-fit:cover; transition:transform 1.2s var(--ease); }
.rb-media:hover img{ transform:scale(1.05); }
.rb-no{ font-family:var(--ff-display); font-style:italic; font-size:clamp(3rem,7vw,5rem);
  color:var(--brass); line-height:.8; opacity:.55; }

/* ---------- LOCATION ---------- */
.loc{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(24px,4vw,56px); align-items:stretch; }
.loc-map{ border-radius:var(--radius); overflow:hidden; min-height:340px; border:1px solid var(--line);
  background:var(--lagoon-d); }
.loc-map iframe{ width:100%; height:100%; min-height:340px; border:0; filter:grayscale(.2) contrast(1.02); }
.dist{ list-style:none; margin:1.5rem 0 0; padding:0; }
.dist li{ display:flex; justify-content:space-between; gap:16px; align-items:baseline;
  padding:14px 0; border-bottom:1px solid var(--line); }
.dist li .k{ font-weight:600; }
.dist li .v{ font-family:var(--ff-display); font-style:italic; color:var(--lagoon); white-space:nowrap; }
.bg-dark .dist li{ border-color:var(--line-light); }
.bg-dark .dist li .v{ color:var(--brass-2); }

/* ---------- CTA BAND ---------- */
.cta-band{ position:relative; overflow:hidden; text-align:center; color:var(--cream); }
.cta-band .wrap{ position:relative; z-index:2; }

/* ---------- CONTACT ---------- */
.contact-grid{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(28px,5vw,70px); align-items:start; }
.cinfo{ list-style:none; margin:1.6rem 0 0; padding:0; }
.cinfo li{ display:flex; gap:16px; align-items:flex-start; padding:16px 0; border-bottom:1px solid var(--line); }
.cinfo .ic{ width:22px; height:22px; color:var(--lagoon); flex:none; margin-top:3px; }
.cinfo .k{ font-size:.74rem; letter-spacing:.16em; text-transform:uppercase; color:var(--ink-soft); font-weight:700; }
.cinfo .val{ font-size:1.08rem; font-weight:600; }
.bg-dark .cinfo li{ border-color:var(--line-light); }
.bg-dark .cinfo .ic{ color:var(--brass-2); }
.bg-dark .cinfo .k{ color:rgba(251,247,238,.6); }

.form{ background:var(--cream); border:1px solid var(--line); border-radius:var(--radius);
  padding:clamp(22px,3vw,38px); }
.bg-dark .form{ background:rgba(255,255,255,.04); border-color:var(--line-light); }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase;
  font-weight:700; margin-bottom:7px; color:var(--ink-soft); }
.bg-dark .field label{ color:rgba(251,247,238,.66); }
.field input,.field select,.field textarea{
  width:100%; padding:.85em 1em; border-radius:12px; border:1px solid var(--line);
  background:var(--sand); font-family:inherit; font-size:1rem; color:var(--ink); transition:border-color .3s, box-shadow .3s; }
.bg-dark .field input,.bg-dark .field select,.bg-dark .field textarea{
  background:rgba(0,0,0,.18); border-color:var(--line-light); color:var(--cream); }
.field input:focus,.field select:focus,.field textarea:focus{
  outline:none; border-color:var(--surf); box-shadow:0 0 0 3px rgba(22,163,155,.18); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:14px; }
.form .btn{ width:100%; justify-content:center; margin-top:6px; }
.form-note{ font-size:.8rem; color:var(--ink-soft); margin-top:12px; text-align:center; }
.bg-dark .form-note{ color:rgba(251,247,238,.6); }

/* ---------- PAGE HEADER ---------- */
.pagehead{ position:relative; padding-top:clamp(130px,18vh,200px); padding-bottom:clamp(40px,6vw,80px);
  overflow:hidden; }
.pagehead .eyebrow{ margin-bottom:1rem; }

/* ---------- FOOTER ---------- */
.footer{ background:var(--lagoon-dd); color:rgba(251,247,238,.78); padding-top:clamp(60px,8vw,96px); }
.footer a:hover{ color:var(--cream); }
.foot-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:48px;
  border-bottom:1px solid var(--line-light); }
.foot-brand .mark{ width:40px; color:var(--brass-2); }
.foot-brand .wm{ font-family:var(--ff-display); font-size:1.7rem; letter-spacing:.32em; color:var(--cream); margin:14px 0 .6rem; }
.foot-col h5{ font-family:var(--ff-body); font-weight:800; font-size:.78rem; letter-spacing:.18em;
  text-transform:uppercase; color:var(--brass-2); margin:0 0 1rem; }
.foot-col ul{ list-style:none; margin:0; padding:0; }
.foot-col li{ margin-bottom:.6rem; font-size:.95rem; }
.foot-bottom{ display:flex; flex-wrap:wrap; gap:16px; justify-content:space-between; align-items:center;
  padding-block:26px; font-size:.82rem; color:rgba(251,247,238,.55); }
.foot-bottom a{ color:rgba(251,247,238,.7); }
.tm-credit{ font-weight:600; }
.tm-credit a{ color:var(--brass-2); }

/* ---------- COOKIE ---------- */
.cookie{ position:fixed; left:18px; bottom:18px; z-index:80; max-width:340px;
  background:var(--cream); color:var(--ink); border:1px solid var(--line);
  border-radius:16px; padding:18px 18px 16px; box-shadow:0 20px 50px -20px rgba(0,0,0,.4);
  transform:translateY(140%); transition:transform .6s var(--ease); }
.cookie.show{ transform:translateY(0); }
.cookie p{ margin:0 0 12px; font-size:.84rem; line-height:1.55; color:var(--ink-soft); }
.cookie a{ color:var(--lagoon); text-decoration:underline; font-weight:600; }
.cookie .row{ display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.cookie .btn{ padding:.6em 1.1em; font-size:.82rem; }
@media (max-width:560px){
  .cookie{ left:12px; right:12px; max-width:none; bottom:12px; }
  body.cookie-on .lang{ bottom:132px; }
}

/* bilingual legal blocks */
html[lang="en"] .only-it{ display:none; }
html[lang="it"] .only-en{ display:none; }

/* footer legal links */
.foot-legal{ display:flex; gap:10px; align-items:center; }
.foot-legal a{ color:rgba(251,247,238,.7); }
.foot-legal a:hover{ color:var(--cream); }
.foot-legal .sep{ opacity:.4; }

/* legal page body */
.legal-body{ max-width:74ch; }
.legal-body h2{ font-family:var(--ff-display); font-weight:400; font-size:clamp(1.4rem,2.4vw,1.9rem);
  margin:2.2rem 0 .7rem; }
.legal-body h3{ font-family:var(--ff-body); font-weight:800; font-size:1rem; letter-spacing:.02em;
  margin:1.4rem 0 .4rem; }
.legal-body p,.legal-body li{ color:var(--ink-soft); font-size:.98rem; line-height:1.7; }
.legal-body ul{ padding-left:1.2em; margin:.4rem 0 1rem; }
.legal-body li{ margin-bottom:.35rem; }
.legal-body a{ color:var(--lagoon); text-decoration:underline; }
.legal-body .upd{ font-size:.82rem; color:var(--brass); font-weight:700; letter-spacing:.04em;
  text-transform:uppercase; }

/* ---------- REVEAL ---------- */
[data-reveal]{ opacity:0; transform:translateY(28px); }
.is-in[data-reveal],[data-reveal].is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion: reduce){
  [data-reveal]{ opacity:1 !important; transform:none !important; }
  .hero-media img{ transform:none !important; }
}

/* ---------- RESPONSIVE ---------- */
@media (max-width:980px){
  /* FIX: ho rimosso la regola che nascondeva il testo del bottone "Prenota" */
  .nav-links { display:none; }
  .burger{ display:block; }
  .nav-cta{ gap:8px; }
  .split,.loc,.contact-grid,.roomblock{ grid-template-columns:1fr; }
  .split.rev .split-media,.roomblock.rev .rb-media{ order:0; }
  .rooms{ grid-template-columns:1fr 1fr; }
  .amen{ grid-template-columns:1fr 1fr; }
  .foot-top{ grid-template-columns:1fr 1fr; }
  .g-wide,.g-tall,.g-sq,.g-half{ grid-column:span 6; grid-row:auto; aspect-ratio:4/3; }
}
@media (max-width:620px){
  .rooms{ grid-template-columns:1fr; }
  .field-row{ grid-template-columns:1fr; }
  .foot-top{ grid-template-columns:1fr; gap:30px; }
  .hero-badge{ display:none; }
  .g-wide,.g-tall,.g-sq,.g-half{ grid-column:span 12; }
}
