:root {
      --blu: #1a5f8a;
      --blu-scuro: #0d3d5e;
      --blu-chiaro: #2e85c0;
      --oro: #c8860a;
      --turchese: #4ecdc4;
      --sabbia: #f5ede0;
      --testo: #1e293b;
      --testo-chiaro: #64748b;
      --bianco: #ffffff;
      --sfondo: #f8f7f4;
      --ombra-s: 0 2px 12px rgba(0,0,0,0.08);
      --ombra: 0 4px 24px rgba(0,0,0,0.12);
      --ombra-g: 0 8px 48px rgba(0,0,0,0.18);
      --raggio: 14px;
      --raggio-g: 22px;
      --verde: #059669;
    }

    *, *::before, *::after { margin:0; padding:0; box-sizing:border-box; }
    html { scroll-behavior: smooth; }
    body { font-family:'Inter',sans-serif; color:var(--testo); line-height:1.65; overflow-x:hidden; }
    h1,h2,h3,h4 { font-family:'Playfair Display',serif; line-height:1.2; }
    a { text-decoration:none; color:inherit; }
    img { max-width:100%; height:auto; display:block; }
    ::-webkit-scrollbar { width:8px; }
    ::-webkit-scrollbar-track { background:#f0f0f0; }
    ::-webkit-scrollbar-thumb { background:var(--blu); border-radius:4px; }

    /* ── NAV ── */
    #navbar {
      position:fixed; top:0; left:0; right:0; z-index:1000;
      padding:1rem 2.5rem;
      display:flex; align-items:center; justify-content:space-between;
      transition:background .35s, box-shadow .35s;
    }
    #navbar.scrolled {
      background:rgba(255,255,255,.96);
      backdrop-filter:blur(12px);
      box-shadow:var(--ombra-s);
    }
    .nav-logo {
      display:flex; align-items:center; gap:.6rem;
      font-family:'Playfair Display',serif; font-size:1.15rem;
      color:#fff; transition:color .35s;
    }
    .nav-logo img { width:36px; height:36px; object-fit:contain; filter:brightness(10); transition:filter .35s; }
    #navbar.scrolled .nav-logo { color:var(--testo); }
    #navbar.scrolled .nav-logo img { filter:none; }
    .nav-links { display:flex; gap:2rem; list-style:none; }
    .nav-links a {
      color:rgba(255,255,255,.88); font-size:.875rem; font-weight:500;
      text-transform:uppercase; letter-spacing:.05em; transition:color .25s;
    }
    #navbar.scrolled .nav-links a { color:var(--testo); }
    .nav-links a:hover { color:var(--turchese); }
    .nav-cta {
      background:var(--blu); color:#fff !important;
      padding:.5rem 1.3rem; border-radius:50px;
    }
    .nav-cta:hover { background:var(--blu-scuro) !important; }
    #navbar.scrolled .nav-cta { color:#fff !important; }
    .hamburger { display:none; flex-direction:column; gap:5px; cursor:pointer; }
    .hamburger span { display:block; width:26px; height:2px; background:#fff; transition:.3s; }
    #navbar.scrolled .hamburger span { background:var(--testo); }

    /* ── HERO ── */
    #hero {
      height:100vh; min-height:640px; position:relative;
      display:flex; align-items:center; justify-content:center; text-align:center;
    }
    .hero-bg {
      position:absolute; inset:0;
      background:url('../img/saline.jpg') center/cover no-repeat;
    }
    .hero-overlay {
      position:absolute; inset:0;
      background:linear-gradient(to bottom,
        rgba(10,35,60,.3) 0%,
        rgba(10,35,60,.55) 55%,
        rgba(10,35,60,.82) 100%);
    }
    .hero-content { position:relative; z-index:2; color:#fff; max-width:820px; padding:0 2rem; }
    .eyebrow {
      font-size:.8rem; letter-spacing:.35em; text-transform:uppercase;
      opacity:.8; margin-bottom:1.2rem;
    }
    .hero-title {
      font-size:clamp(3.5rem,8vw,6.5rem); font-weight:700;
      text-shadow:0 2px 24px rgba(0,0,0,.4); margin-bottom:.8rem;
    }
    .hero-sub {
      font-size:1.15rem; font-weight:300; opacity:.9;
      max-width:520px; margin:0 auto 2.5rem;
    }
    .hero-btns { display:flex; gap:1rem; justify-content:center; flex-wrap:wrap; }
    .btn {
      padding:.85rem 2rem; border-radius:50px; font-weight:600; font-size:.9rem;
      cursor:pointer; border:none; letter-spacing:.04em; transition:all .3s;
      display:inline-flex; align-items:center; gap:.5rem;
    }
    .btn-primary { background:var(--blu); color:#fff; }
    .btn-primary:hover { background:var(--blu-scuro); transform:translateY(-2px); box-shadow:var(--ombra); }
    .btn-outline { background:transparent; color:#fff; border:2px solid rgba(255,255,255,.65); }
    .btn-outline:hover { background:rgba(255,255,255,.15); border-color:#fff; }
    .btn-secondary { background:var(--turchese); color:#fff; font-size:1rem;
      padding:1rem 2.2rem; box-shadow:0 4px 18px rgba(78,205,196,.35); }
    .btn-secondary:hover { background:#3ab5ac; transform:translateY(-3px);
      box-shadow:0 8px 28px rgba(78,205,196,.45); }
    .btn-secondary i { font-size:1.1rem; }
    .hero-scroll {
      position:absolute; bottom:2rem; left:50%; transform:translateX(-50%);
      color:rgba(255,255,255,.55); display:flex; flex-direction:column;
      align-items:center; gap:.4rem; font-size:.75rem; letter-spacing:.15em;
      text-transform:uppercase; animation:bob 2.2s ease-in-out infinite;
    }
    @keyframes bob { 0%,100%{transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(-10px)} }

    /* ── SEZIONI GENERALI ── */
    section { padding:5.5rem 0; }
    .container { max-width:1240px; margin:0 auto; padding:0 2rem; }
    .section-header { text-align:center; margin-bottom:3.5rem; }
    .label-tag {
      font-size:.75rem; letter-spacing:.3em; text-transform:uppercase;
      color:var(--blu); font-weight:600; margin-bottom:.6rem;
    }
    .section-title { font-size:clamp(2rem,4vw,2.8rem); margin-bottom:.8rem; }
    .divisore {
      width:56px; height:3px; margin:1rem auto;
      background:linear-gradient(90deg,var(--blu),var(--turchese)); border-radius:3px;
    }
    .section-sub { font-size:1rem; color:var(--testo-chiaro); max-width:580px; margin:0 auto; }

    /* ── FADE IN ── */
    .fade { opacity:0; transform:translateY(28px); transition:opacity .65s ease, transform .65s ease; }
    .fade.on { opacity:1; transform:translateY(0); }

    /* ── CALASETTA ── */
    #calasetta { background:var(--bianco); }
    .cala-grid { display:grid; grid-template-columns:1fr 1fr; gap:4rem; align-items:center; }
    .cala-text h3 { font-size:1.9rem; margin-bottom:1rem; }
    .cala-text p { color:var(--testo-chiaro); margin-bottom:1rem; line-height:1.85; }
    .cala-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:1rem; margin-top:2rem; }
    .stat-box { text-align:center; padding:1.2rem .8rem; background:var(--sfondo); border-radius:var(--raggio); }
    .stat-num { font-size:2rem; font-weight:700; color:var(--blu); font-family:'Playfair Display',serif; }
    .stat-lab { font-size:.72rem; color:var(--testo-chiaro); text-transform:uppercase; letter-spacing:.05em; margin-top:.2rem; }
    .photo-mosaic { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:220px 220px; gap:1rem; }
    .photo-mosaic .pm-item { border-radius:var(--raggio); overflow:hidden; }
    .photo-mosaic .pm-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
    .photo-mosaic .pm-item:hover img { transform:scale(1.06); }
    .photo-mosaic .pm-item:first-child { grid-row:span 2; }

    /* ── LA CASA ── */
    #casa { background:var(--sfondo); }
    .casa-layout { display:grid; grid-template-columns:1.1fr 1fr; gap:3.5rem; align-items:start; }
    .casa-gallery { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:260px 200px 180px; gap:.9rem; }
    .cg-main { grid-column:span 2; border-radius:var(--raggio); overflow:hidden; }
    .cg-main img { width:100%; height:100%; object-fit:cover; }
    .cg-item { border-radius:var(--raggio); overflow:hidden; background:var(--sabbia); }
    .cg-full { grid-column:span 2; border-radius:var(--raggio); overflow:hidden; }
    .cg-full img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
    .cg-full:hover img { transform:scale(1.04); }
    .cg-item img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
    .cg-item:hover img { transform:scale(1.06); }
    .cg-placeholder {
      width:100%; height:100%;
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      gap:.5rem; background:var(--sabbia); color:var(--testo-chiaro); font-size:.85rem;
    }
    .cg-placeholder i { font-size:2rem; color:var(--blu); opacity:.4; }
    .casa-info h3 { font-size:1.85rem; margin-bottom:1rem; }
    .casa-info p { color:var(--testo-chiaro); line-height:1.85; margin-bottom:1.5rem; }
    .amenities { display:grid; grid-template-columns:1fr 1fr; gap:.65rem; }
    .amenity {
      display:flex; align-items:center; gap:.7rem;
      padding:.7rem .9rem; background:#fff; border-radius:10px; box-shadow:var(--ombra-s);
    }
    .amenity i { color:var(--blu); width:18px; text-align:center; }
    .amenity span { font-size:.87rem; }

    /* ── PRENOTAZIONI ── */
    #prenota { background:var(--bianco); }
    .prenota-wrap { display:grid; grid-template-columns:1.25fr 1fr; gap:3rem; align-items:start; }
    .cal-card { border-radius:var(--raggio-g); box-shadow:var(--ombra); overflow:hidden; }
    .cal-head {
      background:linear-gradient(135deg,var(--blu),var(--blu-scuro));
      color:#fff; padding:1.4rem 1.8rem;
      display:flex; align-items:center; justify-content:space-between;
    }
    .cal-head h3 { font-family:'Inter',sans-serif; font-size:1.05rem; font-weight:600; }
    .cal-nav {
      background:none; border:none; color:#fff; cursor:pointer;
      padding:.4rem .9rem; border-radius:8px; font-size:1rem; transition:background .2s;
    }
    .cal-nav:hover { background:rgba(255,255,255,.2); }
    .cal-body { padding:1.4rem 1.6rem; }
    .cal-dnames {
      display:grid; grid-template-columns:repeat(7,1fr); gap:3px; margin-bottom:6px;
    }
    .cal-dname {
      text-align:center; font-size:.7rem; font-weight:600;
      text-transform:uppercase; letter-spacing:.04em; color:var(--testo-chiaro); padding:.3rem;
    }
    .cal-dates { display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
    .cal-d {
      aspect-ratio:1; display:flex; align-items:center; justify-content:center;
      border-radius:8px; font-size:.88rem; cursor:pointer; position:relative;
      border:2px solid transparent; transition:all .2s;
    }
    .cal-d:hover:not(.booked):not(.past) { background:rgba(26,95,138,.1); border-color:var(--blu); }
    .cal-d.today { font-weight:700; color:var(--blu); }
    .cal-d.past { color:#d1d5db; cursor:not-allowed; }
    .cal-d.booked {
      background:#fee2e2; color:#dc2626; cursor:not-allowed;
      font-size:.7rem; flex-direction:column; gap:1px;
    }
    .cal-d.booked::after {
      content:''; display:block; width:4px; height:4px;
      background:#dc2626; border-radius:50%;
    }
    .cal-d.sel-start,.cal-d.sel-end { background:var(--blu); color:#fff; font-weight:600; }
    .cal-d.sel-start { border-radius:8px 0 0 8px !important; }
    .cal-d.sel-end { border-radius:0 8px 8px 0 !important; }
    .cal-d.sel-start.sel-end { border-radius:8px !important; }
    .cal-d.in-range { background:rgba(26,95,138,.15); border-radius:0; }
    /* connettori visivi bordi mese */
    .cal-d.sel-start + .cal-d.in-range,
    .cal-d.in-range { border-left:none; border-right:none; }
    .cal-d.empty { cursor:default; }
    .cal-legend {
      padding:.9rem 1.6rem; border-top:1px solid #f0f0f0;
      display:flex; gap:1.5rem; flex-wrap:wrap;
    }
    .leg-item { display:flex; align-items:center; gap:.4rem; font-size:.78rem; color:var(--testo-chiaro); }
    .leg-dot { width:14px; height:14px; border-radius:4px; }
    .leg-dot.av { background:#fff; border:2px solid #d1d5db; }
    .leg-dot.bo { background:#fee2e2; }
    .leg-dot.se { background:var(--blu); }

    .form-card { border-radius:var(--raggio-g); box-shadow:var(--ombra); overflow:hidden; position:sticky; top:90px; }
    .form-head {
      background:linear-gradient(135deg,var(--oro),#e5a020);
      color:#fff; padding:1.4rem 1.6rem; text-align:center;
    }
    .form-head h3 { font-family:'Inter',sans-serif; font-size:1.1rem; font-weight:600; }
    .form-head p { font-size:.82rem; opacity:.85; margin-top:.2rem; }
    .dates-row {
      padding:.9rem 1.4rem; background:var(--sfondo);
      display:flex; justify-content:space-between; border-bottom:1px solid #eee;
    }
    .date-box { text-align:center; }
    .date-box label { display:block; font-size:.65rem; text-transform:uppercase; letter-spacing:.1em; color:var(--testo-chiaro); font-weight:600; }
    .date-val { font-size:.95rem; font-weight:600; color:var(--testo); margin-top:.2rem; }
    .date-input {
      border:none; background:transparent; font-size:.95rem; font-weight:600;
      color:var(--testo); margin-top:.2rem; cursor:pointer; width:100%;
      padding:0; outline:none; font-family:inherit; text-align:center;
    }
    .date-input::-webkit-calendar-picker-indicator { opacity:.45; cursor:pointer; margin-left:2px; }
    .date-input:focus { color:var(--blu); }
    .cal-d.hover-end { background:rgba(26,95,138,.35); color:#fff; border-radius:0 8px 8px 0 !important; cursor:pointer; }
    .cal-d.in-range-hover { background:rgba(26,95,138,.10); border-radius:0; }
    .booking-form { padding:1.4rem 1.4rem; }
    .fg { margin-bottom:.85rem; }
    .fg label { display:block; font-size:.82rem; font-weight:500; margin-bottom:.35rem; }
    .fg input, .fg select, .fg textarea {
      width:100%; padding:.7rem .9rem;
      border:2px solid #e5e7eb; border-radius:9px;
      font-size:.88rem; font-family:'Inter',sans-serif; color:var(--testo);
      outline:none; transition:border-color .25s;
    }
    .fg input:focus, .fg select:focus, .fg textarea:focus { border-color:var(--blu); }
    .fg textarea { resize:vertical; min-height:75px; }
    .fg-row { display:grid; grid-template-columns:1fr 1fr; gap:.75rem; }
    .btn-invia {
      width:100%; padding:.95rem; background:var(--blu); color:#fff;
      border:none; border-radius:10px; font-size:.95rem; font-weight:600;
      cursor:pointer; transition:all .3s; display:flex; align-items:center; justify-content:center; gap:.5rem;
    }
    .btn-invia:hover { background:var(--blu-scuro); transform:translateY(-2px); box-shadow:var(--ombra); }
    .nota-form { font-size:.72rem; color:var(--testo-chiaro); text-align:center; margin-top:.7rem; }
    .success-box { display:none; text-align:center; padding:2rem 1.4rem; color:#10b981; }
    .success-box i { font-size:3rem; margin-bottom:.8rem; }

    /* ── EVENTI ── */
    #eventi { background:var(--sfondo); }
    .ev-filters {
      display:flex; gap:.5rem; justify-content:center; flex-wrap:wrap; margin-bottom:2.5rem;
    }
    .ev-filter {
      padding:.45rem 1.2rem; border:2px solid #e5e7eb;
      background:#fff; border-radius:50px; font-size:.83rem;
      cursor:pointer; transition:all .25s; font-family:'Inter',sans-serif;
    }
    .ev-filter.on, .ev-filter:hover { border-color:var(--blu); background:var(--blu); color:#fff; }
    .ev-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.5rem; }
    .ev-card {
      background:#fff; border-radius:var(--raggio-g); overflow:hidden;
      box-shadow:var(--ombra-s); transition:all .3s;
    }
    .ev-card:hover { transform:translateY(-5px); box-shadow:var(--ombra); }
    .ev-img { height:175px; background:var(--sabbia); overflow:hidden; }
    .ev-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
    .ev-card:hover .ev-img img { transform:scale(1.07); }
    .ev-body { display:flex; }
    .ev-badge {
      background:var(--blu); color:#fff; text-align:center;
      padding:.8rem .7rem; min-width:58px; display:flex; flex-direction:column; align-items:center; justify-content:center;
    }
    .ev-badge .g { font-size:1.6rem; font-weight:700; line-height:1; }
    .ev-badge .m { font-size:.65rem; text-transform:uppercase; opacity:.8; }
    .ev-info { padding:1rem; flex:1; }
    .ev-cat { font-size:.68rem; text-transform:uppercase; letter-spacing:.1em; color:var(--oro); font-weight:600; margin-bottom:.3rem; }
    .ev-title { font-size:1rem; font-weight:600; margin-bottom:.4rem; }
    .ev-desc { font-size:.82rem; color:var(--testo-chiaro); line-height:1.6; }
    .ev-meta {
      display:flex; gap:.9rem; font-size:.76rem; color:var(--testo-chiaro);
      margin-top:.7rem; padding-top:.6rem; border-top:1px solid #f3f4f6;
    }
    .ev-meta span { display:flex; align-items:center; gap:.3rem; }

    /* ── ATTRAZIONI ── */
    #attrazioni { background:var(--bianco); }

    /* Meteo */
    .meteo-banner {
      background:linear-gradient(135deg,var(--blu),var(--blu-scuro));
      border-radius:var(--raggio-g); margin-bottom:3rem;
      padding:1.5rem 2rem; color:#fff; overflow:hidden; position:relative;
    }
    .meteo-titolo {
      font-size:.75rem; text-transform:uppercase; letter-spacing:.2em;
      opacity:.7; margin-bottom:1.2rem; display:flex; align-items:center; gap:.5rem;
    }
    #meteo-ora { display:flex; gap:1rem; overflow-x:auto; padding-bottom:.5rem; scrollbar-width:thin; scrollbar-color:rgba(255,255,255,.3) transparent; }
    .ora-card {
      min-width:80px; text-align:center; background:rgba(255,255,255,.12);
      border-radius:12px; padding:.75rem .5rem; flex-shrink:0;
    }
    .ora-card .ora { font-size:.72rem; opacity:.7; margin-bottom:.4rem; }
    .ora-card .ico { font-size:1.8rem; margin-bottom:.3rem; }
    .ora-card .temp { font-size:1.1rem; font-weight:600; }
    .ora-card .vento { font-size:.68rem; opacity:.65; margin-top:.2rem; }
    #meteo-5g {
      display:flex; gap:1rem; margin-top:1.2rem; padding-top:1rem;
      border-top:1px solid rgba(255,255,255,.2); flex-wrap:wrap;
    }
    .giorno-card {
      flex:1; min-width:90px; text-align:center;
      background:rgba(255,255,255,.1); border-radius:10px; padding:.7rem .5rem;
    }
    .giorno-card .gn { font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; opacity:.7; }
    .giorno-card .ico { font-size:1.5rem; margin:.3rem 0; }
    .giorno-card .temps { font-size:.88rem; }
    .giorno-card .temps span { opacity:.6; font-size:.78rem; }
    .meteo-loading { opacity:.7; font-size:.9rem; }
    .meteo-err { opacity:.7; font-size:.85rem; }
    /* ── Meteo mini-tabs ── */
    .meteo-header { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:1.2rem; gap:1rem; flex-wrap:wrap; }
    .meteo-header a { text-decoration:none; color:inherit; }
    .meteo-header .meteo-titolo { margin-bottom:0; }
    .m-tabs { display:flex; gap:.4rem; flex-shrink:0; }
    .m-tab { background:rgba(255,255,255,.15); border:1px solid rgba(255,255,255,.25); color:#fff;
             border-radius:20px; padding:.35rem .9rem; font-size:.76rem; cursor:pointer;
             transition:background .2s,border-color .2s; font-family:'Inter',sans-serif; }
    .m-tab.on { background:rgba(255,255,255,.32); border-color:rgba(255,255,255,.5); font-weight:600; }
    .m-tab:hover:not(.on) { background:rgba(255,255,255,.22); }
    .meteo-panel { display:none; }
    .meteo-panel.on { display:block; }
    /* ── Vento spiagge ── */
    .vento-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(148px,1fr)); gap:.8rem; }
    .v-card { background:rgba(255,255,255,.12); border-radius:12px; padding:.9rem 1rem; position:relative; }
    .v-card .vc-sem { font-size:1.6rem; line-height:1; }
    .v-card .vc-nome { font-size:.85rem; font-weight:600; margin:.3rem 0 .1rem; }
    .v-card .vc-loc { font-size:.7rem; opacity:.55; }
    .v-card .vc-label { font-size:.72rem; font-weight:600; margin-top:.4rem; }
    .v-card .vc-detail { font-size:.68rem; opacity:.6; margin-top:.15rem; }
    .v-card.verde { border-left:3px solid #4ade80; }
    .v-card.giallo { border-left:3px solid #fbbf24; }
    .v-card.rosso { border-left:3px solid #f87171; }
    .vento-attuale { display:flex; gap:1rem; align-items:center; margin-bottom:1rem;
                     background:rgba(255,255,255,.1); border-radius:10px; padding:.7rem 1rem; flex-wrap:wrap; }
    .vento-attuale .va-big { font-size:1.8rem; font-weight:700; line-height:1; }
    .vento-attuale .va-unit { font-size:.75rem; opacity:.7; }
    .vento-attuale .va-dir { font-size:.85rem; display:flex; align-items:center; gap:.4rem; }
    .vento-attuale .va-dir .arrow { display:inline-block; font-size:1.2rem; transition:transform .5s; }
    .vento-attuale .va-raffica { font-size:.78rem; opacity:.7; }
    .vento-note { margin-top:.9rem; font-size:.68rem; opacity:.5; text-align:center; }
    .vento-note a { color:#fff; opacity:.8; }

    /* Tabs */
    .attr-tabs {
      display:flex; gap:0; border-bottom:2px solid #e5e7eb; margin-bottom:2.5rem;
    }
    .tab-btn {
      padding:.7rem 1.5rem; border:none; background:none;
      font-family:'Inter',sans-serif; font-size:.9rem; font-weight:500;
      color:var(--testo-chiaro); cursor:pointer;
      border-bottom:2px solid transparent; margin-bottom:-2px; transition:all .25s;
    }
    .tab-btn.on { color:var(--blu); border-bottom-color:var(--blu); }
    .tab-content { display:none; }
    .tab-content.on { display:block; }
    .rist-grid, .attr-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:1.5rem; }
    .rist-card, .attr-card {
      background:#fff; border:1px solid #e8eaed; border-radius:var(--raggio-g);
      overflow:hidden; transition:all .3s;
    }
    .rist-card:hover, .attr-card:hover { box-shadow:var(--ombra); transform:translateY(-4px); }
    .card-img { height:195px; background:var(--sabbia); overflow:hidden; }
    .card-maps-link { display:block; text-decoration:none; }
    .card-maps-placeholder {
      height:150px; background:var(--sfondo); border-bottom:1px solid #f0f0f0;
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      gap:.3rem; transition:background .25s;
    }
    .card-maps-link:hover .card-maps-placeholder { background:#e8f0fe; }
    .card-img img { width:100%; height:100%; object-fit:cover; transition:transform .5s; }
    .rist-card:hover .card-img img, .attr-card:hover .card-img img { transform:scale(1.06); }
    .card-body { padding:1.2rem; }
    .card-row { display:flex; justify-content:space-between; align-items:start; margin-bottom:.3rem; }
    .card-nome { font-size:1.02rem; font-weight:600; }
    .card-prezzo { font-size:.85rem; color:var(--testo-chiaro); font-weight:500; }
    .card-cucina { font-size:.78rem; color:var(--testo-chiaro); margin-bottom:.5rem; }
    .stelle { display:flex; align-items:center; gap:.3rem; margin-bottom:.45rem; }
    .st { color:#f59e0b; font-size:.85rem; }
    .voto { font-size:.85rem; font-weight:600; }
    .nr { font-size:.75rem; color:var(--testo-chiaro); }
    .badges { display:flex; gap:.4rem; flex-wrap:wrap; margin-bottom:.7rem; }
    .badge {
      font-size:.68rem; padding:.18rem .5rem; border-radius:20px; font-weight:500;
    }
    .badge.g { background:#eff6ff; color:#1d4ed8; }
    .badge.t { background:#ecfdf5; color:#065f46; }
    .badge.f { background:#fff7ed; color:#9a3412; }
    .card-desc { font-size:.83rem; color:var(--testo-chiaro); line-height:1.65; margin-bottom:.7rem; }
    .card-meta { display:flex; gap:1rem; font-size:.78rem; color:var(--testo-chiaro); flex-wrap:wrap; }
    .card-meta span { display:flex; align-items:center; gap:.3rem; }

    /* ── FOOTER ── */
    footer { background:var(--testo); color:rgba(255,255,255,.75); padding:3.5rem 0 1.5rem; }
    .footer-grid { display:grid; grid-template-columns:2fr 1fr 1fr; gap:3rem; margin-bottom:2.5rem; }
    .footer-brand h3 { color:#fff; font-size:1.25rem; margin-bottom:.7rem; }
    .footer-brand p { font-size:.88rem; line-height:1.75; }
    .social-links { display:flex; gap:1rem; margin-top:1.2rem; }
    .social-links a { color:rgba(255,255,255,.5); font-size:1.25rem; transition:color .25s; }
    .social-links a:hover { color:var(--turchese); }
    .footer-col h4 { color:#fff; font-size:.82rem; text-transform:uppercase; letter-spacing:.12em; margin-bottom:1rem; }
    .footer-col ul { list-style:none; }
    .footer-col li { margin-bottom:.5rem; }
    .footer-col a { font-size:.87rem; transition:color .25s; }
    .footer-col a:hover { color:var(--turchese); }
    .footer-bottom {
      border-top:1px solid rgba(255,255,255,.1); padding-top:1.5rem;
      display:flex; justify-content:space-between; align-items:center;
      font-size:.78rem; flex-wrap:wrap; gap:.5rem;
    }

    /* ── RESPONSIVE ── */
    @media(max-width:1024px) {
      .cala-grid,.casa-layout,.prenota-wrap { grid-template-columns:1fr; }
      .form-card { position:static; }
      .footer-grid { grid-template-columns:1fr 1fr; }
    }
    @media(max-width:768px) {
      .nav-links { display:none; }
      .hamburger { display:flex; }
      .nav-mobile-open {
        display:flex !important; position:fixed; top:62px; right:0;
        background:#fff; padding:1.2rem 2rem; flex-direction:column;
        box-shadow:var(--ombra); border-radius:0 0 var(--raggio) var(--raggio);
      }
      .nav-mobile-open a { color:var(--testo) !important; }
      section { padding:3.5rem 0; }
      .footer-grid { grid-template-columns:1fr; }
      .footer-bottom { flex-direction:column; text-align:center; }
      .attr-tabs { overflow-x:auto; }
    }
    @media(max-width:520px) {
      .fg-row { grid-template-columns:1fr; }
      .hero-title { font-size:3rem; }
    }

    /* ════ ADMIN PANEL ════ */
    #adminOverlay { display:none; position:fixed; inset:0; z-index:9999;
      background:rgba(0,0,0,.65); overflow-y:auto; padding:2rem 1rem; }
    .admin-box { max-width:620px; margin:0 auto; background:#fff;
      border-radius:20px; padding:2rem; position:relative; }
    .admin-header { display:flex; align-items:center; justify-content:space-between;
      margin-bottom:1.5rem; padding-bottom:1rem; border-bottom:1px solid #f0f0f0; }
    .admin-header h2 { margin:0; font-size:1.3rem; }
    .admin-close { background:none; border:none; font-size:1.4rem; cursor:pointer;
      color:#9ca3af; width:36px; height:36px; border-radius:50%;
      display:flex; align-items:center; justify-content:center; }
    .admin-close:hover { background:#f3f4f6; color:#374151; }
    .admin-section { margin-bottom:1.5rem; }
    .admin-section-title { font-size:.78rem; font-weight:700; color:var(--testo-chiaro);
      text-transform:uppercase; letter-spacing:.08em; margin-bottom:.8rem; }
    .admin-booking-row { display:flex; align-items:center; justify-content:space-between;
      padding:.75rem 1rem; border-radius:10px; border:1px solid #f0f0f0;
      margin-bottom:.5rem; background:#fafafa; }
    .admin-booking-info strong { font-size:.95rem; display:block; }
    .admin-booking-dates { font-size:.82rem; color:var(--testo-chiaro); margin-top:.15rem; }
    .admin-del-btn { background:#fee2e2; color:#dc2626; border:none;
      padding:.4rem .9rem; border-radius:8px; cursor:pointer; font-size:.83rem;
      font-weight:600; transition:background .2s; }
    .admin-del-btn:hover { background:#fecaca; }
    .admin-add-box { background:var(--sabbia); border-radius:14px; padding:1.2rem; }
    .admin-add-box h3 { font-size:.95rem; margin:0 0 1rem; }
    .admin-grid { display:grid; grid-template-columns:1fr 1fr; gap:.8rem;
      margin-bottom:.8rem; }
    .admin-field label { font-size:.82rem; font-weight:600; display:block;
      margin-bottom:.3rem; }
    .admin-field input { width:100%; padding:.55rem .75rem;
      border:1px solid #e5e7eb; border-radius:8px; font-size:.9rem;
      box-sizing:border-box; }
    .admin-req-row { display:flex; align-items:flex-start; justify-content:space-between;
      padding:.75rem 1rem; border-radius:10px; border:1px solid #e5f0fb;
      margin-bottom:.5rem; background:#f0f7ff; gap:.75rem; flex-wrap:wrap; }
    .admin-req-details { font-size:.82rem; color:var(--testo-chiaro); margin-top:.2rem; line-height:1.55; }
    .admin-req-actions { display:flex; gap:.5rem; flex-shrink:0; align-items:center; }
    .admin-empty { font-size:.88rem; color:var(--testo-chiaro); padding:.5rem 0; font-style:italic; }
    .req-badge { background:#ef4444; color:#fff; border-radius:99px; font-size:.72rem;
      font-weight:700; padding:.1rem .45rem; margin-left:.4rem; vertical-align:middle; }
    .admin-add-btn { width:100%; background:var(--verde); color:#fff; border:none;
      padding:.75rem; border-radius:10px; cursor:pointer; font-weight:600;
      font-size:.95rem; margin-top:.8rem; transition:background .2s; }
    .admin-add-btn:hover { background:#047857; }
    .admin-confirm-btn { background:var(--blu); color:#fff; border:none;
      padding:.4rem .9rem; border-radius:8px; cursor:pointer; font-weight:600;
      font-size:.83rem; transition:background .2s; }
    .admin-confirm-btn:hover { background:#145c87; }
    .admin-export-btn { background:none; border:1px solid #e5e7eb; color:var(--testo-chiaro);
      padding:.5rem 1rem; border-radius:8px; cursor:pointer; font-size:.82rem;
      margin-top:1rem; width:100%; transition:all .2s; }
    .admin-export-btn:hover { border-color:var(--blu); color:var(--blu); }
    #adminTrigger { position:fixed; bottom:18px; right:18px; width:36px; height:36px;
      background:rgba(0,0,0,.08); border-radius:50%; border:none; cursor:pointer;
      opacity:.35; transition:opacity .3s; z-index:100; font-size:.7rem; color:#666; }
    #adminTrigger:hover { opacity:.7; }