*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
    :root {
      --sky-900:#023B52; --sky-700:#0A6E8A; --sky-500:#219EBC; --sky-100:#EAF4FB;
      --gold-500:#C9A84C; --gold-300:#E8D5A3;
      --sage-500:#52A05A; --sage-700:#3A7A40; --sage-100:#EBF2EC;
      --white:#FFFFFF; --off-white:#F8F7F4; --stone-100:#F0EDE8;
      --stone-600:#7A736A; --stone-900:#2A2520;
      --serif:'Cormorant Garamond',Georgia,serif;
      --sans:'DM Sans',sans-serif;
    }
    body { font-family:var(--sans); color:var(--stone-900); background:var(--white); overflow-x:hidden; }

    /* ── NAVBAR ───────────────────────────────────────────── */
    nav {
      position:fixed; top:0; left:0; right:0; z-index:300;
      padding:16px 56px;
      display:flex; align-items:center; justify-content:space-between;
      transition: background .4s, padding .4s;
    }
    nav.solid { background:rgba(2,59,82,.97); backdrop-filter:blur(12px); padding:13px 56px; }
    .nav-logo { font-family:var(--serif); font-size:1.4rem; font-weight:400; color:var(--white); letter-spacing:.05em; text-decoration:none; }
    .nav-bread { font-size:.78rem; color:rgba(255,255,255,.55); display:flex; align-items:center; gap:8px; }
    .nav-bread a { color:rgba(255,255,255,.65); text-decoration:none; }
    .nav-bread a:hover { color:var(--white); }
    .nav-bread span { color:var(--gold-500); }
    .nav-right { display:flex; gap:12px; }
    .nav-btn { padding:9px 20px; border-radius:9999px; font-size:.8rem; font-weight:500; cursor:pointer; font-family:var(--sans); text-decoration:none; transition:all .2s; }
    .nav-outline { border:1.5px solid rgba(255,255,255,.35); color:rgba(255,255,255,.85); background:none; }
    .nav-outline:hover { border-color:var(--white); color:var(--white); }
    .nav-gold { background:var(--gold-500); color:var(--white); border:none; }
    .nav-gold:hover { background:#9A7A2E; }

    /* ══ 1. HERO SLIDER ══════════════════════════════════════ */
    .hero { position:relative; height:100vh; overflow:hidden; }
    .hero-slides { position:absolute; inset:0; }
    .hero-slide { position:absolute; inset:0; display:flex; align-items:flex-end; opacity:0; transition:opacity 1.2s ease; }
    .hero-slide.active { opacity:1; z-index:2; }

    .slide-bg { position:absolute; inset:0; animation:none; }
    .hero-slide.active .slide-bg { animation:kb 9s ease-out forwards; }
    @keyframes kb { from { transform:scale(1.06); } to { transform:scale(1); } }

    .s1 .slide-bg { background:linear-gradient(135deg,#021e2e,#0a4a64 45%,#219EBC); }
    .s2 .slide-bg { background:linear-gradient(145deg,#023B52,#1a7a9a 50%,#4db8d4); }
    .s3 .slide-bg { background:linear-gradient(135deg,#010d14,#0a3d52 40%,#1a6e8a); }

    .slide-overlay { position:absolute; inset:0; background:linear-gradient(to bottom,rgba(0,0,0,.08) 0%,rgba(0,0,0,.25) 50%,rgba(0,0,0,.68) 100%); }

    .slide-content { position:relative; z-index:10; width:100%; padding:0 80px 56px; }
    .slide-tag {
      display:inline-flex; align-items:center; gap:10px;
      font-size:.7rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase;
      color:var(--gold-500); margin-bottom:16px;
    }
    .slide-tag::before { content:''; width:28px; height:1px; background:var(--gold-500); }
    .slide-title { font-family:var(--serif); font-size:clamp(2.6rem,5.5vw,4.8rem); font-weight:300; color:var(--white); line-height:1.1; letter-spacing:-.02em; margin-bottom:12px; }
    .slide-title em { font-style:italic; opacity:.82; }
    .slide-sub { font-size:1rem; color:rgba(255,255,255,.75); font-weight:300; line-height:1.65; margin-bottom:28px; max-width:480px; }

    /* Navigazione hero */
    .hero-dots { position:absolute; bottom:28px; left:80px; z-index:20; display:flex; gap:8px; align-items:center; }
    .hd { width:6px; height:6px; border-radius:9999px; background:rgba(255,255,255,.3); cursor:pointer; border:none; padding:0; transition:all .3s; }
    .hd.on { width:28px; background:var(--white); }
    .hero-arrows { position:absolute; bottom:20px; right:80px; z-index:20; display:flex; gap:10px; }
    .ha {
      width:46px; height:46px; border-radius:50%;
      border:1.5px solid rgba(255,255,255,.4); background:rgba(255,255,255,.1);
      backdrop-filter:blur(8px); color:var(--white); font-size:1rem;
      display:flex; align-items:center; justify-content:center;
      cursor:pointer; transition:all .2s;
    }
    .ha:hover { background:rgba(255,255,255,.25); border-color:var(--white); }

    /* Barra meta sotto hero */
    .hero-meta-bar {
      position:absolute; bottom:0; left:0; right:0; z-index:20;
      background:rgba(2,59,82,.92); backdrop-filter:blur(14px);
      padding:0 80px; display:flex; align-items:stretch;
    }
    .hm-item {
      flex:1; display:flex; align-items:center; gap:10px;
      padding:16px 0; border-right:1px solid rgba(255,255,255,.12);
      min-width:0;
    }
    .hm-item:last-child { border-right:none; }
    .hm-icon { font-size:1.2rem; flex-shrink:0; }
    .hm-val { font-weight:600; color:var(--white); font-size:.9rem; line-height:1.2; }
    .hm-lbl { font-size:.7rem; color:rgba(255,255,255,.5); margin-top:2px; letter-spacing:.03em; }
    .hm-sep { width:1px; background:rgba(255,255,255,.12); margin:0 24px; }

    /* ══ 2. INTESTAZIONE ══════════════════════════════════════ */
    .villa-header {
      padding:56px 80px 48px;
      border-bottom:1px solid var(--stone-100);
      display:flex; align-items:flex-end; justify-content:space-between; gap:32px;
      flex-wrap:wrap;
    }
    .vh-left {}
    .vh-tag {
      display:inline-flex; align-items:center; gap:6px;
      background:var(--sky-100); color:var(--sky-700);
      padding:5px 14px; border-radius:9999px;
      font-size:.68rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
      margin-bottom:14px;
    }
    .vh-title { font-family:var(--serif); font-size:clamp(2.2rem,3.5vw,3.25rem); font-weight:300; color:var(--sky-900); line-height:1.15; letter-spacing:-.02em; margin-bottom:16px; }
    .vh-meta { display:flex; align-items:center; gap:0; flex-wrap:wrap; }
    .vh-mi { display:flex; align-items:center; gap:6px; font-size:.875rem; color:var(--stone-600); padding:0 20px 0 0; margin:0 20px 0 0; border-right:1px solid var(--stone-100); }
    .vh-mi:last-child { border-right:none; }
    .vh-mi strong { color:var(--stone-900); }
    .vh-right { display:flex; flex-direction:column; align-items:flex-end; gap:12px; flex-shrink:0; }
    .vh-rating-big { text-align:right; }
    .vh-r-stars { color:var(--gold-500); letter-spacing:3px; font-size:.85rem; }
    .vh-r-score { font-family:var(--serif); font-size:2.5rem; font-weight:300; color:var(--sky-900); line-height:1; }
    .vh-r-count { font-size:.78rem; color:var(--stone-600); margin-top:2px; }
    .vh-cta {
      padding:13px 32px; background:var(--sky-700); color:var(--white);
      border-radius:9999px; font-size:.875rem; font-weight:600;
      text-decoration:none; transition:all .2s;
    }
    .vh-cta:hover { background:var(--sky-900); transform:translateY(-1px); }

    /* ══ 3. HIGHLIGHTS ════════════════════════════════════════ */
    .highlights-section { padding:40px 80px; background:var(--off-white); border-bottom:1px solid var(--stone-100); }
    .hl-grid { display:grid; grid-template-columns:repeat(8,1fr); gap:16px; }
    .hl-card {
      display:flex; flex-direction:column; align-items:center; text-align:center;
      padding:20px 10px; border-radius:14px; background:var(--white);
      border:1px solid var(--stone-100); transition:border-color .2s, box-shadow .2s;
    }
    .hl-card:hover { border-color:var(--sky-500); box-shadow:0 2px 14px rgba(33,158,188,.1); }
    .hl-icon { font-size:1.5rem; margin-bottom:8px; }
    .hl-val { font-family:var(--serif); font-size:1.3rem; font-weight:600; color:var(--sky-900); line-height:1; }
    .hl-lbl { font-size:.68rem; color:var(--stone-600); margin-top:4px; }

    /* ══ 4. TOUR 360 + DOTAZIONI + BOOKING ═══════════════════ */
    .mid-section { padding:64px 80px; }
    .mid-grid {
      display:grid; grid-template-columns:1fr 1fr;
      gap:48px; align-items:start;
    }

    /* Colonna sinistra */
    .mid-left { display:flex; flex-direction:column; gap:32px; }

    .block-title { font-family:var(--serif); font-size:1.75rem; font-weight:300; color:var(--sky-900); margin-bottom:16px; }

    /* Tour 360 */
    .tour360-frame {
      width:100%; aspect-ratio:16/9; border-radius:16px; overflow:hidden;
      background:linear-gradient(135deg,var(--sky-900),#1a7a9a);
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      gap:10px; cursor:pointer; position:relative;
      border:1px solid rgba(255,255,255,.1);
      transition:filter .3s;
    }
    .tour360-frame:hover { filter:brightness(1.1); }
    .tour360-play {
      width:72px; height:72px; border-radius:50%;
      border:2.5px solid rgba(255,255,255,.5); background:rgba(255,255,255,.12);
      display:flex; align-items:center; justify-content:center;
      font-size:1.8rem; color:var(--white); transition:all .25s;
    }
    .tour360-frame:hover .tour360-play { background:rgba(255,255,255,.25); border-color:var(--white); transform:scale(1.05); }
    .tour360-lbl { font-family:var(--serif); font-style:italic; font-size:1.1rem; color:rgba(255,255,255,.7); }
    .tour360-sub { font-size:.75rem; color:rgba(255,255,255,.4); letter-spacing:.05em; }

    /* Booking widget inline (sotto tour 360) */
    .booking-inline {
      background:var(--white); border-radius:20px;
      box-shadow:0 4px 28px rgba(0,0,0,.1), 0 1px 6px rgba(0,0,0,.05);
      overflow:hidden; border:1px solid var(--stone-100);
    }
    .bi-header { padding:20px 24px 16px; border-bottom:1px solid var(--stone-100); display:flex; align-items:center; justify-content:space-between; }
    .bi-price { font-size:1.6rem; font-weight:700; color:var(--sky-900); }
    .bi-price span { font-size:.8rem; font-weight:400; color:var(--stone-600); }
    .bi-rating { display:flex; align-items:center; gap:5px; font-size:.78rem; }
    .bi-stars { color:var(--gold-500); letter-spacing:1px; }
    .bi-rv { font-weight:600; }
    .bi-rc { color:var(--stone-600); }
    .bi-form { padding:20px 24px; display:flex; flex-direction:column; gap:12px; }
    .bi-dates { display:grid; grid-template-columns:1fr 1fr; border:1.5px solid var(--stone-100); border-radius:12px; overflow:hidden; }
    .bi-df {
      padding:12px 14px; cursor:pointer; transition:background .15s;
    }
    .bi-df:first-child { border-right:1px solid var(--stone-100); }
    .bi-df:hover { background:var(--off-white); }
    .bi-lbl { font-size:.62rem; font-weight:700; letter-spacing:.15em; text-transform:uppercase; color:var(--stone-600); margin-bottom:4px; }
    .bi-val { font-size:.875rem; color:var(--stone-100); }
    .bi-guests {
      border:1.5px solid var(--stone-100); border-radius:12px; padding:12px 14px;
      display:flex; justify-content:space-between; align-items:center; cursor:pointer;
      transition:background .15s;
    }
    .bi-guests:hover { background:var(--off-white); }
    .bi-g-val { font-size:.875rem; color:var(--stone-900); }
    .bi-btn {
      width:100%; padding:14px; background:var(--sky-700); color:var(--white);
      border:none; border-radius:12px; font-size:.95rem; font-weight:600;
      cursor:pointer; font-family:var(--sans); transition:background .2s;
    }
    .bi-btn:hover { background:var(--sky-900); }
    .bi-note { text-align:center; font-size:.75rem; color:var(--stone-600); }
    .bi-breakdown { border-top:1px solid var(--stone-100); padding:16px 24px; display:flex; flex-direction:column; gap:8px; }
    .bi-row { display:flex; justify-content:space-between; font-size:.85rem; }
    .bi-row-lbl { color:var(--stone-600); text-decoration:underline; text-underline-offset:2px; cursor:pointer; }
    .bi-row-total { font-weight:700; font-size:.95rem; padding-top:8px; border-top:1px solid var(--stone-100); display:flex; justify-content:space-between; }
    .bi-contacts { padding:14px 24px; border-top:1px solid var(--stone-100); display:flex; gap:8px; }
    .bi-c {
      flex:1; padding:10px; border-radius:10px; font-size:.8rem; font-weight:500;
      text-decoration:none; text-align:center; transition:all .2s; display:flex; align-items:center; justify-content:center; gap:6px;
    }
    .bi-wa { background:#E8F9EF; color:#1a6e3a; border:1px solid #b2dfdb; }
    .bi-wa:hover { background:#25D366; color:var(--white); border-color:#25D366; }
    .bi-tel { background:var(--off-white); color:var(--stone-900); border:1px solid var(--stone-100); }
    .bi-tel:hover { background:var(--stone-900); color:var(--white); }

    /* Colonna destra — dotazioni */
    .mid-right {}
    .desc-text { font-size:.9375rem; color:var(--stone-600); line-height:1.85; font-weight:300; margin-bottom:28px; }
    .desc-text p + p { margin-top:14px; }
    .amenities-grid { display:grid; grid-template-columns:1fr 1fr; gap:4px; }
    .am-item {
      display:flex; align-items:center; gap:10px; padding:11px 12px;
      border-radius:10px; font-size:.875rem;
      transition:background .15s; cursor:default;
    }
    .am-item:hover { background:var(--off-white); }
    .am-icon { font-size:1.05rem; width:22px; text-align:center; flex-shrink:0; }
    .am-more {
      display:inline-flex; align-items:center; gap:6px; margin-top:20px;
      padding:10px 22px; border:1.5px solid var(--stone-900); border-radius:9999px;
      font-size:.85rem; font-weight:500; cursor:pointer; background:none; font-family:var(--sans);
      transition:all .2s;
    }
    .am-more:hover { background:var(--stone-900); color:var(--white); }

    /* ══ 5. DOVE SI TROVA ════════════════════════════════════ */
    .location-section { background:var(--sky-900); padding:72px 80px; }
    .location-grid { display:grid; grid-template-columns:1fr 1.4fr; gap:56px; align-items:start; }
    .loc-overline { display:inline-flex; align-items:center; gap:10px; font-size:.68rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-300); margin-bottom:14px; }
    .loc-overline::before { content:''; width:24px; height:1px; background:var(--gold-300); }
    .loc-title { font-family:var(--serif); font-size:clamp(1.8rem,3vw,2.75rem); font-weight:300; color:var(--white); line-height:1.2; margin-bottom:16px; letter-spacing:-.02em; }
    .loc-sub { font-size:.9375rem; color:rgba(255,255,255,.6); font-weight:300; line-height:1.75; margin-bottom:32px; }
    .poi-list { display:flex; flex-direction:column; gap:0; }
    .poi-row {
      display:flex; align-items:center; gap:14px; padding:14px 0;
      border-bottom:1px solid rgba(255,255,255,.08); transition:padding .2s;
    }
    .poi-row:last-child { border-bottom:none; }
    .poi-row:hover { padding-left:6px; }
    .poi-ico { font-size:1.1rem; width:28px; text-align:center; flex-shrink:0; }
    .poi-nm { font-size:.875rem; font-weight:500; color:var(--white); }
    .poi-dt { font-size:.75rem; color:rgba(255,255,255,.45); margin-top:2px; }
    .map-frame {
      width:100%; aspect-ratio:4/3; border-radius:16px; overflow:hidden;
      background:linear-gradient(135deg,#0a4a64,#0d6080);
      display:flex; align-items:center; justify-content:center;
      border:1px solid rgba(255,255,255,.1);
    }
    .map-ph { font-family:var(--serif); font-style:italic; font-size:1rem; color:rgba(255,255,255,.3); }
    .map-note { margin-top:10px; font-size:.78rem; color:rgba(255,255,255,.35); }

    /* ══ 6. RECENSIONI IN SLIDER ══════════════════════════════ */
    .reviews-section { padding:72px 80px; background:var(--off-white); }
    .rv-header { display:flex; align-items:flex-end; justify-content:space-between; margin-bottom:48px; flex-wrap:wrap; gap:24px; }
    .rv-score-block { display:flex; align-items:center; gap:24px; }
    .rv-big { font-family:var(--serif); font-size:5rem; font-weight:300; color:var(--sky-900); line-height:1; }
    .rv-breakdown { display:flex; flex-direction:column; gap:7px; }
    .rv-br-row { display:flex; align-items:center; gap:10px; font-size:.78rem; }
    .rv-br-lbl { color:var(--stone-600); width:90px; }
    .rv-bar { flex:1; height:4px; background:var(--stone-100); border-radius:9999px; overflow:hidden; min-width:100px; }
    .rv-fill { height:100%; background:var(--sky-500); border-radius:9999px; }
    .rv-bv { color:var(--stone-600); width:28px; text-align:right; }
    .rv-nav { display:flex; gap:10px; }
    .rv-arrow {
      width:44px; height:44px; border-radius:50%; border:1.5px solid var(--stone-100);
      background:var(--white); display:flex; align-items:center; justify-content:center;
      cursor:pointer; font-size:1rem; transition:all .2s;
    }
    .rv-arrow:hover { background:var(--sky-700); color:var(--white); border-color:var(--sky-700); }

    /* Slider recensioni */
    .rv-slider-wrap { overflow:hidden; }
    .rv-slider { display:flex; gap:24px; transition:transform .5s cubic-bezier(.25,.46,.45,.94); }
    .rv-card {
      background:var(--white); border-radius:20px; padding:32px;
      box-shadow:0 2px 16px rgba(0,0,0,.07);
      flex-shrink:0; width:calc(33.333% - 16px);
    }
    .rv-tag { display:inline-block; padding:3px 10px; border-radius:9999px; font-size:.65rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase; margin-bottom:14px; background:var(--sky-100); color:var(--sky-700); }
    .rv-stars { color:var(--gold-500); font-size:.78rem; letter-spacing:2px; margin-bottom:14px; }
    .rv-text { font-family:var(--serif); font-style:italic; font-size:.9375rem; color:var(--stone-600); line-height:1.75; margin-bottom:22px; }
    .rv-author { display:flex; align-items:center; gap:10px; }
    .rv-av { width:40px; height:40px; border-radius:50%; background:var(--sky-100); display:flex; align-items:center; justify-content:center; font-family:var(--serif); font-size:1rem; color:var(--sky-700); font-weight:600; flex-shrink:0; }
    .rv-nm { font-size:.85rem; font-weight:600; color:var(--stone-900); }
    .rv-dt { font-size:.72rem; color:var(--stone-600); margin-top:2px; }
    .rv-dots { display:flex; justify-content:center; gap:8px; margin-top:32px; }
    .rv-dot { width:7px; height:7px; border-radius:9999px; background:var(--stone-100); cursor:pointer; transition:all .3s; border:none; }
    .rv-dot.on { background:var(--sky-700); width:22px; }

    /* ══ 7. BANNER OFFERTE SLIDER ════════════════════════════ */
    .offers-slider-section { background:var(--white); padding:72px 0 72px 80px; overflow:hidden; }
    .os-header { display:flex; align-items:flex-end; justify-content:space-between; padding-right:80px; margin-bottom:40px; flex-wrap:wrap; gap:20px; }
    .os-nav { display:flex; gap:10px; }
    .os-arrow { width:44px; height:44px; border-radius:50%; border:1.5px solid var(--stone-100); background:var(--white); display:flex; align-items:center; justify-content:center; cursor:pointer; font-size:1rem; transition:all .2s; }
    .os-arrow:hover { background:var(--sky-700); color:var(--white); border-color:var(--sky-700); }
    .os-overline { display:inline-flex; align-items:center; gap:10px; font-size:.68rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-500); margin-bottom:12px; }
    .os-overline::before { content:''; width:24px; height:1px; background:var(--gold-500); }

    .os-track-wrap { overflow:hidden; }
    .os-track { display:flex; gap:20px; transition:transform .5s cubic-bezier(.25,.46,.45,.94); padding-right:80px; }

    .offer-card {
      flex-shrink:0; width:320px; border-radius:20px; overflow:hidden;
      position:relative; cursor:pointer;
    }
    .offer-card-bg {
      height:200px; display:flex; flex-direction:column;
      justify-content:flex-end; padding:24px; position:relative; overflow:hidden;
    }
    .offer-card-bg::before { content:''; position:absolute; inset:0; transition:transform .5s; }
    .offer-card:hover .offer-card-bg::before { transform:scale(1.05); }
    .oc-lastminute .offer-card-bg { background:linear-gradient(135deg,#1a0000,#8B1A1A); }
    .oc-alta      .offer-card-bg { background:linear-gradient(135deg,var(--sky-900),#1a7a9a); }
    .oc-lusso7    .offer-card-bg { background:linear-gradient(135deg,#0d1a2e,#0a6e8a); }
    .oc-ritorno   .offer-card-bg { background:linear-gradient(135deg,#1a1000,#8B6914); }
    .oc-group     .offer-card-bg { background:linear-gradient(135deg,#0d2010,#3a7a40); }

    .oc-badge {
      display:inline-flex; align-items:center; gap:6px;
      padding:4px 12px; border-radius:9999px;
      font-size:.65rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase;
      position:relative; z-index:1; margin-bottom:10px; align-self:flex-start;
    }
    .oc-lastminute .oc-badge { background:rgba(255,80,80,.25); color:#FF8080; border:1px solid rgba(255,80,80,.4); }
    .oc-alta      .oc-badge { background:rgba(201,168,76,.2); color:var(--gold-300); border:1px solid rgba(201,168,76,.4); }
    .oc-lusso7    .oc-badge { background:rgba(33,158,188,.25); color:#7DD8F0; border:1px solid rgba(33,158,188,.4); }
    .oc-ritorno   .oc-badge { background:rgba(201,168,76,.2); color:var(--gold-300); border:1px solid rgba(201,168,76,.35); }
    .oc-group     .oc-badge { background:rgba(82,160,90,.2); color:#A8D4AA; border:1px solid rgba(82,160,90,.4); }

    .pulse-dot { width:6px; height:6px; border-radius:50%; background:currentColor; animation:pulse 1.5s infinite; }
    @keyframes pulse { 0%,100%{transform:scale(1);opacity:1;} 50%{transform:scale(1.5);opacity:.5;} }

    .oc-name { font-family:var(--serif); font-size:1.35rem; font-weight:300; color:var(--white); line-height:1.2; position:relative; z-index:1; margin-bottom:4px; }
    .oc-period { font-size:.75rem; color:rgba(255,255,255,.55); position:relative; z-index:1; }
    .offer-card-body { padding:20px 20px 22px; background:var(--white); border:1px solid var(--stone-100); border-top:none; border-radius:0 0 20px 20px; }
    .oc-discount {
      font-family:var(--serif); font-size:2rem; font-weight:600; line-height:1;
      margin-bottom:4px;
    }
    .oc-lastminute .oc-discount { color:#CC3333; }
    .oc-alta      .oc-discount { color:var(--sky-700); }
    .oc-lusso7    .oc-discount { color:var(--sky-700); }
    .oc-ritorno   .oc-discount { color:var(--gold-500); }
    .oc-group     .oc-discount { color:var(--sage-700); }
    .oc-desc { font-size:.82rem; color:var(--stone-600); margin-bottom:14px; line-height:1.5; }
    .oc-cta {
      display:inline-flex; align-items:center; gap:6px; padding:9px 20px;
      border-radius:9999px; font-size:.8rem; font-weight:600; text-decoration:none; transition:all .2s;
    }
    .oc-lastminute .oc-cta { background:#CC3333; color:var(--white); }
    .oc-lastminute .oc-cta:hover { background:#AA1111; }
    .oc-alta      .oc-cta { background:var(--sky-700); color:var(--white); }
    .oc-alta      .oc-cta:hover { background:var(--sky-900); }
    .oc-lusso7    .oc-cta { background:var(--sky-700); color:var(--white); }
    .oc-ritorno   .oc-cta { background:var(--gold-500); color:var(--white); }
    .oc-ritorno   .oc-cta:hover { background:#9A7A2E; }
    .oc-group     .oc-cta { background:var(--sage-500); color:var(--white); }
    .oc-group     .oc-cta:hover { background:var(--sage-700); }

    .os-dots { display:flex; justify-content:center; gap:8px; margin-top:32px; padding-right:80px; }
    .os-dot { width:7px; height:7px; border-radius:9999px; background:var(--stone-100); cursor:pointer; border:none; transition:all .3s; }
    .os-dot.on { background:var(--sky-700); width:22px; }

    /* ══ GALLERIA MOSAICO VILLA ══════════════════════════════ */
    .gallery-mosaic-section {
      background: var(--sky-900);
      padding: 72px 80px;
      overflow: hidden;
    }
    .gm-header { margin-bottom: 40px; display:flex; align-items:flex-end; justify-content:space-between; flex-wrap:wrap; gap:20px; }
    .gm-overline { display:inline-flex; align-items:center; gap:10px; font-size:.68rem; font-weight:600; letter-spacing:.2em; text-transform:uppercase; color:var(--gold-300); margin-bottom:12px; }
    .gm-overline::before { content:''; width:24px; height:1px; background:var(--gold-300); }
    .gm-title { font-family:var(--serif); font-size:clamp(1.8rem,3vw,2.6rem); font-weight:300; color:var(--white); line-height:1.2; }
    .gm-ig-btn {
      display:inline-flex; align-items:center; gap:8px;
      padding:11px 24px; border-radius:9999px;
      border:1.5px solid rgba(255,255,255,.3); color:var(--white);
      font-size:.82rem; font-weight:500; text-decoration:none;
      background:rgba(255,255,255,.08); backdrop-filter:blur(8px);
      transition:all .25s; white-space:nowrap;
    }
    .gm-ig-btn:hover { background:rgba(255,255,255,.2); border-color:var(--white); }

    /* Griglia mosaico — 12 colonne, 3 righe asimmetrica */
    .mosaic {
      display:grid;
      grid-template-columns: repeat(12, 1fr);
      grid-template-rows: 260px 130px 200px;
      gap:6px;
    }
    .mi { border-radius:10px; overflow:hidden; position:relative; cursor:pointer; }

    /* Layout celle */
    .mi-1  { grid-column:1/5;  grid-row:1/3; }   /* grande verticale sx */
    .mi-2  { grid-column:5/8;  grid-row:1/2; }
    .mi-3  { grid-column:8/10; grid-row:1/2; }
    .mi-4  { grid-column:10/13;grid-row:1/3; }   /* grande verticale dx */
    .mi-5  { grid-column:5/7;  grid-row:2/3; }
    .mi-6  { grid-column:7/10; grid-row:2/3; }
    .mi-7  { grid-column:1/4;  grid-row:3/4; }
    .mi-8  { grid-column:4/7;  grid-row:3/4; }
    .mi-9  { grid-column:7/10; grid-row:3/4; }
    .mi-10 { grid-column:10/13;grid-row:3/4; }

    /* Sfondi placeholder (verranno sostituiti con foto reali) */
    .mb-1  { background:linear-gradient(145deg,#0a3d52,#219EBC); }
    .mb-2  { background:linear-gradient(145deg,#023B52,#1a6e8a); }
    .mb-3  { background:linear-gradient(145deg,#021e2e,#0a5a7a); }
    .mb-4  { background:linear-gradient(145deg,#0d4a64,#2a8faa); }
    .mb-5  { background:linear-gradient(145deg,#035070,#1d8cad); }
    .mb-6  { background:linear-gradient(145deg,#0a3060,#1a6890); }
    .mb-7  { background:linear-gradient(145deg,#021428,#0a4a74); }
    .mb-8  { background:linear-gradient(145deg,#0a2840,#155c80); }
    .mb-9  { background:linear-gradient(145deg,#010d18,#0a3d5c); }
    .mb-10 { background:linear-gradient(145deg,#023050,#1a5a7a); }

    .mi-bg { width:100%; height:100%; transition:transform .55s cubic-bezier(.25,.46,.45,.94); }
    .mi:hover .mi-bg { transform:scale(1.06); }

    /* Overlay hover */
    .mi-overlay {
      position:absolute; inset:0;
      background:rgba(2,59,82,.72);
      display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px;
      opacity:0; transition:opacity .3s;
    }
    .mi:hover .mi-overlay { opacity:1; }
    .mi-ov-icon { font-size:1.4rem; color:var(--white); }
    .mi-ov-handle { font-size:.76rem; color:rgba(255,255,255,.85); letter-spacing:.04em; }
    .mi-ov-likes  { font-size:.7rem; color:rgba(255,255,255,.55); }

    /* Label descrittiva in basso a sinistra */
    .mi-label {
      position:absolute; bottom:10px; left:12px;
      font-size:.63rem; font-weight:600; letter-spacing:.1em; text-transform:uppercase;
      color:rgba(255,255,255,.6); pointer-events:none; z-index:1;
    }
    /* Testo placeholder centrato */
    .mi-ph {
      position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
      font-family:var(--serif); font-style:italic; font-size:.85rem;
      color:rgba(255,255,255,.22); text-align:center; padding:8px; pointer-events:none;
    }
    .gm-note { margin-top:20px; text-align:center; font-size:.75rem; color:rgba(255,255,255,.3); }

    /* ── WA float ─────────────────────────────────────────── */
    .wa-float {
      position:fixed; bottom:32px; right:32px; z-index:600;
      width:56px; height:56px; background:#25D366; border-radius:50%;
      display:flex; align-items:center; justify-content:center;
      box-shadow:0 4px 20px rgba(37,211,102,.4); text-decoration:none; transition:transform .2s;
    }
    .wa-float:hover { transform:scale(1.1); }
    .wa-float svg { width:28px; height:28px; fill:white; }
    /* ── MENU PRINCIPALE ────────────────────────────────────── */
    .tv-nav-links { display:flex; gap:28px; list-style:none; align-items:center; margin:0; padding:0; }
    .tv-nav-links > li > a {
      color:rgba(255,255,255,.88); text-decoration:none; font-size:.8rem; font-weight:500;
      letter-spacing:.08em; text-transform:uppercase; transition:color .2s; white-space:nowrap;
    }
    .tv-nav-links > li > a:hover, .tv-nav-links a.is-current { color:var(--gold-500, #C9A84C); }
    @media (max-width: 900px) { .tv-nav-links { gap:16px; } .tv-nav-links > li > a { font-size:.7rem; letter-spacing:.04em; } }
    @media (max-width: 700px) { .tv-nav-links { display:none; } }

    /* ── SOTTOMENU A TENDINA ────────────────────────────────── */
    .tv-nav-links li { position:relative; }
    .tv-nav-links .sub-menu {
      position:absolute; top:100%; left:50%; transform:translateX(-50%);
      background:rgba(2,59,82,.97); backdrop-filter:blur(12px);
      border-radius:10px; padding:10px 0; min-width:190px;
      list-style:none; margin:12px 0 0; display:none; z-index:300;
      box-shadow:0 12px 32px rgba(0,0,0,.22);
    }
    .tv-nav-links li:hover > .sub-menu, .tv-nav-links li:focus-within > .sub-menu { display:block; }
    .tv-nav-links .sub-menu li { display:block; }
    .tv-nav-links .sub-menu a {
      display:block; padding:9px 20px; font-size:.74rem; letter-spacing:.06em;
      color:rgba(255,255,255,.85); text-transform:none;
    }
    .tv-nav-links .sub-menu a:hover { color:var(--gold-500, #C9A84C); background:rgba(255,255,255,.06); }
    /* voce della pagina corrente (classi generate da WordPress) */
    .tv-nav-links .current-menu-item > a,
    .tv-nav-links .current_page_item > a { color:var(--gold-500, #C9A84C); }
    /* ── FEED INSTAGRAM (Smash Balloon) ─────────────────────── */
    .tv-ig-feed { max-width:1100px; margin:0 auto 28px; }
    .tv-ig-feed #sb_instagram { padding-bottom:0 !important; }
    .tv-ig-feed #sb_instagram .sbi_photo_wrap img,
    .tv-ig-feed #sb_instagram .sbi_photo { border-radius:12px; overflow:hidden; }
    .tv-ig-feed #sb_instagram .sbi_item:hover { opacity:.92; }