    /* ── CSS custom properties ─────────────────────────────── */
    :root {
      --deep:     #f5ba1a;
      --teal:     #c560e0;
      --soft:     #5995D0;
      --lavender: #B38AC0;
      --pink:     #FFACB5;
      --bg:          #f8fafc;
      --surface:     #ffffff;
      --surface-2:   #f1f5f9;
      --border:      #e2e8f0;
      --text:        #1e293b;
      --text-muted:  #979797;
      --focus-ring:  #019EB2;
      --bar-bg:      #0f172a;
      --bar-text:    #e2e8f0;
      --bar-border:  #334155;
      --bar-hover:   #1e293b;
      --bar-h:       42px;
      --header-h:    64px;
    }
    
    .dark {
      --bg: #0f172a; --surface: #1e293b; --surface-2: #0f172a;
      --border: #334155; --text: #f1f5f9; --text-muted: #94a3b8;
      --bar-bg: #020617; --bar-border: #1e293b;
    }
    .a11y-high-contrast {
      --bg:#000 !important; --surface:#000 !important; --surface-2:#111 !important;
      --border:#fff !important; --text:#fff !important; --text-muted:#eee !important;
      --deep:#00d0ff !important; --teal:#00ffee !important; --soft:#aaddff !important;
      --lavender:#ddaaff !important; --pink:#ffccdd !important;
    }
    .a11y-highlight-links a:not([role="button"]) {
      background:#ffff00!important; color:#000!important;
      text-decoration:underline 3px!important; border-radius:2px; padding:0 2px;
    }
    .dark .a11y-highlight-links a:not([role="button"]) { background:#ffd700!important; color:#000!important; }

    /* ── Base ───────────────────────────────────────────────── */
    *,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
    html{scroll-behavior:smooth}
    body{
      font-family:'Nunito Sans',sans-serif;
      background:var(--bg); color:var(--text);
      padding-top:var(--bar-h);
      transition:background .3s,color .3s;
      line-height:1.6;
    }
    :focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px;border-radius:4px}

    /* ── Accessibility bar ─────────────────────────────────── */
    #a11y-bar{
      position:fixed;top:0;right:0;z-index:9999;
      background:var(--bar-bg);color:var(--bar-text);
      border-bottom:1px solid var(--bar-border);
      font-family:'Nunito Sans',sans-serif;font-size:.78rem; width:70px;
      display: none;
    }
    .a11y-toggle-btn{
      display:flex;align-items:center;gap:6px;padding:8px 16px;
      width:100%;background:transparent;color:var(--bar-text);
      border:none;cursor:pointer;font-size:.78rem;font-family:inherit;
      font-weight:600;letter-spacing:.03em;transition:background .2s;
    }
    .a11y-toggle-btn:hover{background:var(--bar-hover)}
    .a11y-toggle-btn:focus-visible{outline:2px solid var(--focus-ring);outline-offset:-2px}
    .a11y-chevron{margin-left:auto;transition:transform .25s}
    #a11y-bar.open .a11y-chevron{transform:rotate(180deg)}
    #a11y-controls{
      display:flex;flex-wrap:wrap;align-items:center;gap:4px;
      padding:6px 12px 8px;border-top:1px solid var(--bar-border);
    }
    #a11y-controls[hidden]{display:none!important}
    #a11y-controls button{
      display:inline-flex;align-items:center;gap:5px;
      padding:4px 12px;background:transparent;color:var(--bar-text);
      border:1px solid var(--bar-border);border-radius:999px;
      cursor:pointer;font-family:inherit;font-size:.74rem;font-weight:600;
      transition:background .15s,color .15s,border-color .15s;white-space:nowrap;
    }
    #a11y-controls button:hover{background:var(--bar-hover);border-color:var(--teal);color:var(--teal)}
    #a11y-controls button[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}
    #a11y-controls button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}
    .a11y-group{display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border:1px solid var(--bar-border);border-radius:999px}
    .a11y-group-label{font-size:.7rem;opacity:.7;margin-right:2px}
    .a11y-group button{border:none!important;padding:2px 6px!important;border-radius:50%!important}
    #font-size-indicator{min-width:1.6rem;text-align:center;font-weight:700;font-size:.8rem;color:var(--teal)}
    .a11y-sep{width:1px;height:22px;background:var(--bar-border);margin:0 4px}

    /* ── Material Symbols ──────────────────────────────────── */
    .ms{
      font-family:'Material Symbols Outlined';
      font-variation-settings:'wght' 100,'FILL' 0,'GRAD' 0,'opsz' 24;
      font-size:1.3em;line-height:1;vertical-align:middle;
      user-select:none;white-space:nowrap;
    }
    .ms-xl{font-size:2.8rem;font-variation-settings:'wght' 100,'FILL' 0}

    /* ── Skip link ─────────────────────────────────────────── */
    .skip-link{
      position:absolute;top:-100px;left:12px;z-index:10000;
      background:var(--teal);color:#fff;padding:8px 16px;
      border-radius:0 0 8px 8px;font-weight:700;font-size:.85rem;
      transition:top .2s;text-decoration:none;
    }
    .skip-link:focus{top:calc(var(--bar-h) + 2px)}

    /* ── Header ────────────────────────────────────────────── */
    .site-header{
      position:sticky;top:var(--bar-h);z-index:100;
      background:var(--surface);
      display:flex;align-items:center;transition:background .3s,border-color .3s;    
      top: 120px;
      margin-top: -145px;
      background: transparent;
      position: relative;
      border: none;
      box-shadow: none;
    }
    .header-inner{
      max-width:1280px;margin:0 auto;padding:0 1rem;width:100%;
      display:flex;align-items:center;justify-content:space-between;gap:1rem;
    }
    .logo{
      font-family:'Bangers',cursive;font-size:1.8rem;letter-spacing:.05em;
      color:var(--surface);text-decoration:none;line-height:1;
      display:flex;align-items:center;gap:.4rem;transition:color .2s;
    }
    .logo:hover{color:var(--teal)}
    .dark .logo{color:var(--teal)}
    .logo-badge{
      display:inline-flex;align-items:center;justify-content:center;
      width:36px;height:36px;border-radius:50%;
      background:var(--teal);color:#fff;
      font-family:'Bangers',cursive;font-size:.95rem;
    }
    .main-nav{display:flex;align-items:center;gap:1.5rem}
    .main-nav a{
      font-size:.85rem;font-weight:700;color:var(--surface);
      text-decoration:none;position:relative;transition:color .2s;
    }
    .main-nav a::after{content:'';position:absolute;left:0;bottom:-3px;width:0;height:2px;background:var(--teal);transition:width .25s}
    .main-nav a:hover,.main-nav a[aria-current="page"]{color:var(--deep)}
    .dark .main-nav a:hover,.dark .main-nav a[aria-current="page"]{color:var(--teal)}
    .main-nav a:hover::after,.main-nav a[aria-current="page"]::after{width:100%}
    .btn-primary{
      display:inline-flex;align-items:center;gap:5px;padding:7px 18px;
      background:var(--teal);color:#fff!important;border-radius:999px;
      font-size:.82rem;font-weight:700;text-decoration:none!important;
      transition:background .2s,transform .15s,box-shadow .2s;border:none;cursor:pointer;
    }
    .btn-primary:hover{background:var(--deep);transform:translateY(-1px);box-shadow:0 4px 12px rgba(1,158,178,.3)}
    .btn-primary::after{display:none!important}
    .btn-outline{
      display:inline-flex;align-items:center;gap:5px;padding:7px 18px;
      background:transparent;color:var(--teal);border:2px solid var(--teal);
      border-radius:999px;font-size:.82rem;font-weight:700;
      text-decoration:none;transition:background .2s,color .2s;cursor:pointer;
    }
    .btn-outline:hover{background:var(--teal);color:#fff}

    /* ── Mobile nav ────────────────────────────────────────── */
    .mobile-nav-btn{    display: none;
    background: #cc64dc;
    border: none;
    cursor: pointer;
    color: #ffffff;
    padding: 10px;
    border-radius: 8px;
    opacity: 1;
    border-radius: 50%;}
    @media(max-width:767px){.main-nav{display:none}.mobile-nav-btn{display:flex}}
    .mobile-nav{
      position:fixed;inset:0;background:var(--surface);z-index:200;
      display:flex;flex-direction:column;padding:2rem;gap:1.5rem;
      transform:translateX(-100%);transition:transform .3s cubic-bezier(.4,0,.2,1);
      overflow-y:auto;
    }
    .mobile-nav.open{transform:none}
    .mobile-nav a{
      font-family:'Bangers',cursive;font-size:2rem;letter-spacing:.05em;
      color:var(--text);text-decoration:none;border-bottom:1px solid var(--border);
      padding-bottom:.75rem;display:flex;align-items:center;gap:.5rem;
    }
    .mobile-nav-close{align-self:flex-end;background:none;border:none;cursor:pointer;color:var(--text-muted)}

    /* ── Hero ───────────────────────────────────────────────── */
    .hero{
      background:linear-gradient(135deg,var(--deep) 0%,var(--teal) 55%,var(--soft) 100%);
      padding:4rem 1rem 3rem;text-align:center;color:#fff;position:relative;overflow:hidden;
    }
    .hero{
         background-image: linear-gradient(rgb(0 14 42 / 60%), /* color oscuro arriba */ rgba(0, 0, 0, 0.2) /* más claro abajo */), 
         url(../img/banner-home.jpg);

    }
    .hero::before{
      content:'';position:absolute;inset:0;
      background:url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cg fill='none' fill-rule='evenodd'%3E%3Cg fill='%23ffffff' fill-opacity='0.04'%3E%3Cpath d='M36 34v-4h-2v4h-4v2h4v4h2v-4h4v-2h-4zm0-30V0h-2v4h-4v2h4v4h2V6h4V4h-4zM6 34v-4H4v4H0v2h4v4h2v-4h4v-2H6zM6 4V0H4v4H0v2h4v4h2V6h4V4H6z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");
    }
    .hero-content{position:relative;z-index:1;max-width:720px;margin:0 auto}
    .hero-eyebrow{font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.8;margin-bottom:.5rem}
    .hero-title{font-family:'Bangers',cursive;font-size:clamp(2.8rem,7vw,5rem);letter-spacing:.01em;line-height:1;margin-bottom:.3rem;drop-shadow:0 2px 8px rgba(0,0,0,.2)}
    .hero-subtitle{font-family: 'Chewy', cursive;font-size:clamp(1.8rem,6vw,3rem); }
    .hero-sub{font-size:1.05rem;opacity:.9;max-width:480px;margin:0 auto 2rem}

    /* Search form */
    .search-form{
      display:flex;flex-wrap:wrap;gap:.5rem;
      border-radius:1rem;padding:.5rem;;max-width:680px;margin:0 auto;
    }
    .search-input-wrap{
      flex:1 1 200px;display:flex;align-items:center;gap:.5rem;
      background:var(--surface-2);border:1px solid var(--border);
      border-radius:.6rem;padding:0 .75rem;
    }
    .search-input-wrap .ms{color:var(--text-muted);font-size:1.1rem}
    .search-input-wrap input{
      flex:1;border:none;background:transparent;
      font-family:'Nunito Sans',sans-serif;font-size:.88rem;color:var(--text);
      padding:.6rem 0;outline:none;
    }
    .search-input-wrap input::placeholder{color:var(--text-muted)}
    .search-select{
      flex:0 1 175px;padding:.6rem .75rem;border:1px solid var(--border);
      border-radius:.6rem;font-family:'Nunito Sans',sans-serif;font-size:.82rem;
      color:var(--text);background:var(--surface-2);cursor:pointer;outline:none;
    }
    .search-select:focus-visible{outline:3px solid var(--focus-ring)}

    /* Cat grid */
    .cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:.75rem;max-width:860px;margin:2.5rem auto 0}
    @media(max-width:640px){.cat-grid{grid-template-columns:repeat(2,1fr)}}
    .cat-item{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .4rem;
    padding: 1.1rem .75rem;
    border-radius: 1rem;
    background: rgb(81 208 239 / 80%);;
    backdrop-filter: blur(8px);
    color: #fff;
    text-decoration: none;
    /* border: 1px solid rgba(255, 255, 255, .2); */
    transition: background .2s, transform .2s, border-color .2s;
    text-align: center;
    }
    .cat-item:hover{background:rgba(255,255,255,.28);transform:scale(1.05);border-color:rgba(255,255,255,.5)}
    .cat-item:focus-visible{outline:3px solid #fff;outline-offset:3px}
    .cat-item .ms{font-size:2.2rem;font-variation-settings:'wght' 100,'FILL' 0}
    .cat-item-name{font-family:'Chewy',cursive;font-size:.95rem;line-height:1.2}
    .cat-item-sub{font-size:.65rem;opacity:.78}

    /* ── Sections ───────────────────────────────────────────── */
    .section{padding:4rem 1rem;transition:background .3s}
    .section-alt{background:var(--surface-2)}
    .container{max-width:1280px;margin:0 auto}
    .sec-eyebrow{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--teal);margin-bottom:.25rem}
    .sec-title{font-family:'Chewy',cursive;font-size:clamp(1.7rem,4vw,2.4rem);color:var(--deep);line-height:1.1}
    .dark .sec-title{color:var(--soft)}
    .sec-desc{font-size:.9rem;color:var(--text-muted);margin-top:.4rem;max-width:480px}

    /* Places grid */
    .places-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:1.25rem;margin-top:1.5rem}
    .place-card{
      background:var(--surface);border:1px solid var(--border);
      border-radius:1rem;overflow:hidden;
      transition:transform .25s,box-shadow .25s;
      text-decoration:none;color:var(--text);display:flex;flex-direction:column;
    }
    .place-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(0,114,160,.14)}
    .place-card:focus-visible{outline:3px solid var(--focus-ring);outline-offset:3px}
    .card-thumb{height:9rem;display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}
    .card-thumb .ms{font-size:3rem;color:rgba(255,255,255,.85);font-variation-settings:'wght' 100,'FILL' 0}
    .badge{display:inline-flex;align-items:center;gap:3px;padding:2px 9px;border-radius:999px;font-size:.68rem;font-weight:700;line-height:1.5}
    .badge-pub{background:rgba(255,255,255,.9);color:var(--teal)}
    .badge-priv{background:rgba(255,255,255,.9);color:var(--lavender)}
    .badge-open{background:#f0fdf4;color:#16a34a}
    .badge-night{background:#fefce8;color:#ca8a04}
    .dark .badge-open{background:rgba(22,163,74,.2);color:#4ade80}
    .dark .badge-night{background:rgba(202,138,4,.2);color:#fbbf24}
    .card-body{padding:.9rem;flex:1;display:flex;flex-direction:column;gap:.25rem}
    .card-cat{font-size:.68rem;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
    .card-title{font-family:'Chewy',cursive;font-size:1.15rem;line-height:1.2;color:var(--text)}
    .card-loc{font-size:.7rem;color:var(--text-muted);display:flex;align-items:center;gap:2px}
    .card-desc{font-size:.8rem;color:var(--text-muted);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1;margin-top:auto}
    .card-foot{display:flex;align-items:center;justify-content:space-between;margin-top:.5rem;padding-top:.5rem;border-top:1px solid var(--border)}
    .card-link{font-size:.75rem;font-weight:700;color:var(--deep)}
    .dark .card-link{color:var(--teal)}

    /* Place type tabs */
    .tab-list{display:flex;gap:.5rem;flex-wrap:wrap;border-bottom:2px solid var(--border);margin-bottom:1.5rem}
    .tab-btn{
      padding:.5rem 1.1rem;font-size:.82rem;font-weight:700;color:var(--text-muted);
      background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;
      cursor:pointer;transition:color .2s,border-color .2s;white-space:nowrap;
      display:flex;align-items:center;gap:5px;
    }
    .tab-btn:hover{color:var(--deep)}
    .tab-btn[aria-selected="true"]{color:var(--teal);border-bottom-color:var(--teal)}
    .tab-panel[hidden]{display:none}

    /* Event cards */
    .events-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem}
    .ev-card{background:var(--surface);border:1px solid var(--border);border-radius:1rem;overflow:hidden;transition:box-shadow .2s}
    .ev-card:hover{box-shadow:0 8px 24px rgba(0,0,0,.1)}
    .ev-card-accent{height:4px}
    .ev-card-body{padding:1rem}
    .ev-card-head{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.5rem}
    .ev-date-chip{
      display:inline-flex;flex-direction:column;align-items:center;
      padding:6px 10px;border-radius:.5rem;color:#fff;font-weight:700;
      font-size:.65rem;line-height:1.2;min-width:46px;text-align:center;flex-shrink:0;
    }
    .ev-day{font-family:'Chewy',cursive;font-size:1.4rem;line-height:1}
    .ev-title{font-family:'Chewy',cursive;font-size:1.1rem;line-height:1.2;color:var(--text)}
    .ev-venue{font-size:.72rem;color:var(--text-muted);display:flex;align-items:center;gap:2px}
    .ev-desc{font-size:.8rem;color:var(--text-muted);margin:.4rem 0}
    .ev-tags{display:flex;flex-wrap:wrap;gap:.3rem;margin-top:.5rem}
    .ev-tag{font-size:.65rem;font-weight:700;padding:2px 8px;border-radius:999px;background:var(--surface-2);color:var(--text-muted)}
    .ev-foot{display:flex;align-items:center;justify-content:space-between;margin-top:.75rem;padding-top:.5rem;border-top:1px solid var(--border)}
    .ev-price{font-size:.72rem;padding:2px 10px;border-radius:999px;font-weight:700;color:#fff}

    /* Calendar */
    .cal-wrap{background:var(--surface);border-radius:1.2rem;box-shadow:0 4px 24px rgba(0,0,0,.08);padding:1.5rem;max-width:580px;margin:0 auto;border:1px solid var(--border)}
    .cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:1rem}
    .cal-nav-btn{background:none;border:none;cursor:pointer;color:var(--text-muted);border-radius:50%;width:32px;height:32px;display:flex;align-items:center;justify-content:center;transition:background .15s}
    .cal-nav-btn:hover{background:var(--surface-2)}
    .cal-month{font-family:'Chewy',cursive;font-size:1.4rem;color:var(--deep)}
    .dark .cal-month{color:var(--soft)}
    .cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
    .cal-day-label{font-size:.65rem;font-weight:700;color:var(--text-muted);padding:.3rem 0}
    .cal-day{
      aspect-ratio:1;display:flex;flex-direction:column;align-items:center;
      justify-content:center;border-radius:.4rem;font-size:.78rem;font-weight:600;
      cursor:pointer;transition:background .15s;position:relative;color:var(--text);
    }
    .cal-day:hover{background:var(--surface-2)}
    .cal-day.has-event{font-weight:700}
    .cal-dot{width:5px;height:5px;border-radius:50%;position:absolute;bottom:2px}
    .cal-legend{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1rem;font-size:.72rem;align-items:center}
    .cal-legend-item{display:flex;align-items:center;gap:4px}
    .cal-legend-dot{width:8px;height:8px;border-radius:50%}

    /* CTA */
    .cta-section{
      padding:5rem 1rem;text-align:center;
      background:linear-gradient(135deg,var(--deep),var(--teal));color:#fff;
    }
    .cta-title{font-family:'Bangers',cursive;font-size:clamp(2rem,5vw,3.5rem);letter-spacing:.04em;margin-bottom:.75rem}
    .cta-desc{font-size:1rem;opacity:.9;max-width:500px;margin:0 auto 2rem}
    .cta-actions{display:flex;flex-wrap:wrap;gap:.75rem;justify-content:center}
    .btn-cta-white{
      display:inline-flex;align-items:center;gap:6px;
      padding:12px 28px;background:#fff;color:var(--deep);border-radius:999px;
      font-weight:700;font-size:.95rem;text-decoration:none;transition:box-shadow .2s,transform .15s;
    }
    .btn-cta-white:hover{box-shadow:0 8px 24px rgba(0,0,0,.2);transform:translateY(-2px)}
    .btn-cta-outline{
      display:inline-flex;align-items:center;gap:6px;
      padding:12px 28px;border:2px solid #fff;color:#fff;border-radius:999px;
      font-weight:700;font-size:.95rem;text-decoration:none;transition:background .2s,color .2s;
    }
    .btn-cta-outline:hover{background:#fff;color:var(--deep)}

    /* Region features */
    .features-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:1rem;margin-top:1.5rem}
    .feature-card{
      background:var(--surface);border:1px solid var(--border);border-radius:1rem;
      padding:1.25rem;text-align:center;transition:transform .25s,box-shadow .25s;
    }
    .feature-card:hover{transform:translateY(-4px);box-shadow:0 12px 28px rgba(0,0,0,.08)}
    .feature-icon{display:flex;align-items:center;justify-content:center;width:52px;height:52px;border-radius:1rem;margin:0 auto .75rem;color:#fff}
    .feature-icon .ms{font-size:1.6rem}
    .feature-title{font-family:'Chewy',cursive;font-size:1.1rem;color:var(--text);margin-bottom:.3rem}
    .feature-desc{font-size:.78rem;color:var(--text-muted)}

    /* Footer */
    .site-footer{background:var(--deep);color:#fff;transition:background .3s}
    .dark .site-footer{background:#020617}
    .footer-inner{max-width:1280px;margin:0 auto;padding:3rem 1rem 1.5rem}
    .footer-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:2rem;margin-bottom:2rem}
    .footer-heading{font-family:'Chewy',cursive;font-size:1.1rem;margin-bottom:.75rem}
    .footer-links{list-style:none;display:flex;flex-direction:column;gap:.4rem}
    .footer-links a{font-size:.82rem;color:rgba(255,255,255,.7);text-decoration:none;display:flex;align-items:center;gap:5px;transition:color .15s}
    .footer-links a:hover{color:#fff}
    .footer-links .ms{font-size:.9rem}
    .footer-bar{border-top:1px solid rgba(255,255,255,.15);padding-top:1rem;text-align:center;font-size:.75rem;opacity:.5}

    /* Reveal */
    .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s,transform .6s}
    .reveal.visible{opacity:1;transform:none}

    /* Chip filters */
    .chip{
      display:inline-flex;align-items:center;gap:4px;
      padding:4px 14px;border-radius:999px;font-size:.75rem;
      font-weight:700;border:2px solid var(--border);color:var(--text-muted);
      background:var(--surface);cursor:pointer;transition:all .15s;
    }
    .chip:hover{border-color:var(--teal);color:var(--teal)}
    .chip[aria-pressed="true"]{background:var(--teal);border-color:var(--teal);color:#fff}

    /* Sidebar info */
    .info-card{background:var(--surface);border:1px solid var(--border);border-radius:1.2rem;padding:1.25rem}
    .info-row{display:flex;align-items:flex-start;gap:.75rem;font-size:.83rem;padding:.5rem 0;border-bottom:1px solid var(--border)}
    .info-row:last-child{border:none}
    .info-row .ms{color:var(--teal);flex-shrink:0;font-size:1.2rem}

    #main-content > section{
          padding-top: 211px;
    }


    /* ── MATERIAL SYMBOLS ───────────────── */
    .ms {
      font-family:'Material Symbols Outlined';
      font-variation-settings:'wght' 100,'FILL' 0,'GRAD' 0,'opsz' 24;
      font-size:1.25em; line-height:1; vertical-align:middle;
      user-select:none; white-space:nowrap;
    }

    /* ── SKIP LINK ──────────────────────── */
    .skip-link {
      position:absolute; top:-100px; left:12px; z-index:10000;
      background:var(--teal); color:#fff; padding:8px 16px;
      border-radius:0 0 8px 8px; font-weight:700; font-size:.85rem;
      transition:top .2s; text-decoration:none;
    }
    .skip-link:focus { top:calc(var(--bar-h) + 2px); }

    /* ── SEARCH HERO BAR ─────────────────── */
    .search-hero {
      background:linear-gradient(135deg,var(--deep),var(--teal));
      padding:2rem 1rem;
      padding-top: 300px
    }
    .search-hero-inner { max-width:900px; margin:0 auto; }
    .search-hero h1 { font-family:'Bangers',cursive; font-size:2rem; letter-spacing:.04em; color:#fff; margin-bottom:1rem; }
    .search-form {
      display:flex; flex-wrap:wrap; gap:.5rem;
      background:var(--surface); border-radius:1rem; padding:.5rem;
      box-shadow:0 8px 32px rgba(0,0,0,.2);
    }
    .search-input-wrap {
      flex:1 1 200px; display:flex; align-items:center; gap:.5rem;
      background:var(--surface-2); border:1px solid var(--border);
      border-radius:.6rem; padding:0 .75rem; position:relative;
    }
    .search-input-wrap .ms { color:var(--text-muted); font-size:1.1rem; }
    .search-input-wrap input {
      flex:1; border:none; background:transparent;
      font-family:'Nunito Sans',sans-serif; font-size:.88rem; color:var(--text);
      padding:.6rem 0; outline:none;
    }
    .search-input-wrap input::placeholder { color:var(--text-muted); }
    .search-select {
      flex:0 1 175px; padding:.6rem .75rem; border:1px solid var(--border);
      border-radius:.6rem; font-family:'Nunito Sans',sans-serif; font-size:.82rem;
      color:var(--text); background:var(--surface-2); cursor:pointer; outline:none;
    }
    .search-select:focus-visible { outline:3px solid var(--focus-ring); }

    /* ── SEARCH SUGGESTIONS ──────────────── */
    .search-suggestions {
      position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:500;
      background:var(--surface); border:1px solid var(--border);
      border-radius:.75rem; box-shadow:0 8px 24px rgba(0,0,0,.12);
      overflow:hidden; display:none;
    }
    .search-suggestions.open { display:block; }
    .suggestion-item {
      display:flex; align-items:center; gap:.5rem;
      padding:.5rem .75rem; font-size:.82rem; cursor:pointer;
      transition:background .15s; color:var(--text);
    }
    .suggestion-item:hover { background:var(--surface-2); }
    .suggestion-item .ms { font-size:1rem; color:var(--teal); }
    .suggestion-item strong { color:var(--teal); font-weight:700; }
    .suggestion-tag {
      margin-left:auto; font-size:.68rem; font-weight:700;
      padding:1px 8px; border-radius:999px; background:var(--surface-2);
      color:var(--text-muted); text-transform:capitalize;
    }

    /* ── FILTER CHIPS BAR ────────────────── */
    .chips-bar {
      background:var(--surface); border-bottom:1px solid var(--border);
      padding:.5rem 1rem; overflow-x:auto;
    }
    .chips-bar-inner { max-width:1280px; margin:0 auto; display:flex; align-items:center; gap:.4rem; flex-wrap:nowrap; }
    .chip {
      display:inline-flex; align-items:center; gap:4px;
      padding:4px 14px; border-radius:999px; font-size:.75rem;
      font-weight:700; border:2px solid var(--border); color:var(--text-muted);
      background:var(--surface); cursor:pointer; transition:all .15s; white-space:nowrap;
      flex-shrink:0;
    }
    .chip .ms { font-size:1rem; }
    .chip:hover { border-color:var(--teal); color:var(--teal); }
    .chip[aria-pressed="true"] { background:var(--teal); border-color:var(--teal); color:#fff; }
    .chip:focus-visible { outline:3px solid var(--focus-ring); outline-offset:2px; }
    .chips-label { font-size:.72rem; font-weight:700; color:var(--text-muted); white-space:nowrap; flex-shrink:0; }

    /* ── LAYOUT ──────────────────────────── */
    .results-layout {
      max-width:1280px; margin:0 auto; padding:1.5rem 1rem;
      display:grid; grid-template-columns:260px 1fr; gap:1.5rem;
    }
    @media(max-width:900px){ .results-layout { grid-template-columns:1fr; } }
    .sidebar { align-self:start; position:sticky; top:calc(var(--bar-h) + var(--header-h) + 12px); }
    @media(max-width:900px){ .sidebar { position:static; } }

    /* ── SIDEBAR FILTERS ─────────────────── */
    .filter-panel {
      background:var(--surface); border:1px solid var(--border);
      border-radius:1rem; padding:1.25rem; display:flex; flex-direction:column; gap:1.25rem;
    }
    .filter-panel-title { font-family:'Chewy',cursive; font-size:1.3rem; color:var(--deep); }
    .dark .filter-panel-title { color:var(--soft); }
    .filter-group { display:flex; flex-direction:column; gap:.4rem; }
    .filter-group-label { font-size:.7rem; font-weight:700; text-transform:uppercase; letter-spacing:.08em; color:var(--text-muted); margin-bottom:.25rem; }
    .filter-opt { display:flex; align-items:center; gap:.5rem; font-size:.84rem; cursor:pointer; }
    .filter-opt input { accent-color:var(--teal); width:15px; height:15px; cursor:pointer; }
    .filter-sep { height:1px; background:var(--border); }
    .filter-sort select {
      width:100%; padding:.5rem .75rem; border:1px solid var(--border);
      border-radius:.6rem; font-family:'Nunito Sans',sans-serif; font-size:.82rem;
      color:var(--text); background:var(--surface-2); cursor:pointer; outline:none;
    }
    .filter-sort select:focus-visible { outline:3px solid var(--focus-ring); }
    .btn-outline {
      display:inline-flex; align-items:center; justify-content:center; gap:5px; padding:8px 18px;
      background:transparent; color:var(--teal); border:2px solid var(--teal);
      border-radius:999px; font-size:.82rem; font-weight:700;
      text-decoration:none; transition:background .2s,color .2s; cursor:pointer; width:100%;
    }
    .btn-outline:hover { background:var(--teal); color:#fff; }

    /* ── SUBCATEGORIES ───────────────────── */
    .subcat-block {
      overflow:hidden;
      max-height:0; opacity:0;
      transition:max-height .35s ease, opacity .3s ease;
      display:flex; flex-direction:column; gap:.4rem;
    }
    .subcat-block.open {
      max-height:400px; opacity:1;
    }
    .subcat-header {
      display:flex; align-items:center; gap:.4rem;
      font-size:.7rem; font-weight:700; text-transform:uppercase;
      letter-spacing:.08em; color:var(--teal); margin-top:.5rem;
      padding:.4rem .5rem; background:color-mix(in srgb,var(--teal) 8%,transparent);
      border-radius:.5rem; border-left:3px solid var(--teal);
    }
    .subcat-header .ms { font-size:.9rem; }
    .subcat-opt {
      display:flex; align-items:center; gap:.5rem;
      font-size:.8rem; cursor:pointer; padding-left:1rem;
      color:var(--text-muted); transition:color .15s;
    }
    .subcat-opt:hover { color:var(--text); }
    .subcat-opt input { accent-color:var(--lavender); width:13px; height:13px; cursor:pointer; }
    .subcat-opt input:checked + span { color:var(--text); font-weight:600; }
    .cat-row {
      display:flex; align-items:center; gap:.5rem; cursor:pointer;
      font-size:.84rem; padding:.2rem 0; border-radius:.4rem;
      transition:color .15s;
    }
    .cat-row input { accent-color:var(--teal); width:15px; height:15px; cursor:pointer; }
    .cat-row .cat-toggle {
      margin-left:auto; font-size:.85rem; color:var(--text-muted);
      transition:transform .25s; flex-shrink:0;
    }
    .cat-row.has-sub:hover .cat-toggle { color:var(--teal); }
    .cat-row.expanded .cat-toggle { transform:rotate(180deg); }

    /* Mobile filter toggle */
    .mobile-filter-btn {
      display:none; align-items:center; gap:6px;
      background:var(--surface); border:1px solid var(--border); border-radius:.75rem;
      padding:.5rem 1rem; font-size:.82rem; font-weight:700; color:var(--text);
      cursor:pointer; margin-bottom:1rem;
    }
    @media(max-width:900px){ .mobile-filter-btn { display:flex; } .sidebar { display:block; } }
    #filterDrawer { transition:max-height .3s ease,opacity .3s; overflow:hidden; max-height:9999px; opacity:1; }
    #filterDrawer.collapsed { max-height:0; opacity:0; }

    /* ── RESULTS AREA ────────────────────── */
    .results-header {
      display:flex; align-items:center; justify-content:space-between;
      flex-wrap:wrap; gap:.75rem; margin-bottom:1.25rem;
    }
    .results-title { font-family:'Chewy',cursive; font-size:1.5rem; color:var(--deep); }
    .dark .results-title { color:var(--soft); }
    .results-count { font-size:.82rem; color:var(--text-muted); }
    .view-toggle { display:flex; gap:.25rem; }
    .view-btn {
      width:32px; height:32px; display:flex; align-items:center; justify-content:center;
      border-radius:.5rem; border:1px solid var(--border); background:var(--surface);
      cursor:pointer; transition:background .15s; color:var(--text-muted);
    }
    .view-btn.active { background:var(--teal); color:#fff; border-color:var(--teal); }
    .view-btn:focus-visible { outline:3px solid var(--focus-ring); outline-offset:2px; }

    /* ── ACTIVE FILTERS STRIP ────────────── */
    #activeFiltersBar {
      display:flex; flex-wrap:wrap; gap:.4rem; margin-bottom:1rem;
    }
    #activeFiltersBar:empty { display:none; }
    .filter-pill {
      display:inline-flex; align-items:center; gap:4px;
      padding:3px 10px 3px 12px; border-radius:999px; font-size:.72rem; font-weight:700;
      background:color-mix(in srgb,var(--teal) 12%,transparent);
      color:var(--teal); border:1px solid var(--teal);
    }
    .filter-pill button {
      background:none; border:none; cursor:pointer; color:var(--teal);
      display:flex; align-items:center; padding:0; font-size:.8rem; margin-left:2px;
    }
    .filter-pill button:hover { color:var(--deep); }

    /* ── CARDS GRID ──────────────────────── */
    #resultsGrid {
      display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:1.1rem;
    }
    #resultsGrid.list-view { grid-template-columns:1fr; }
    .place-card {
      background:var(--surface); border:1px solid var(--border);
      border-radius:1rem; overflow:hidden;
      transition:transform .25s,box-shadow .25s;
      text-decoration:none; color:var(--text); display:flex; flex-direction:column;
    }
    .place-card:hover { transform:translateY(-4px); box-shadow:0 16px 32px rgba(0,114,160,.14); }
    .place-card:focus-visible { outline:3px solid var(--focus-ring); outline-offset:3px; }
    .list-view .place-card { flex-direction:row; }
    .card-thumb {
      height:9rem; display:flex; align-items:center; justify-content:center;
      position:relative; overflow:hidden; flex-shrink:0;
    }
    .list-view .card-thumb { width:120px; height:auto; min-height:100px; }
    .card-thumb .ms {
      font-size:3rem; color:rgba(255,255,255,.85);
      font-variation-settings:'wght' 100,'FILL' 0;
    }
    .badge { display:inline-flex; align-items:center; gap:3px; padding:2px 9px; border-radius:999px; font-size:.68rem; font-weight:700; line-height:1.5; }
    .badge-pub { background:rgba(255,255,255,.9); color:var(--teal); }
    .badge-priv { background:rgba(255,255,255,.9); color:var(--lavender); }
    .badge-open { background:#f0fdf4; color:#16a34a; }
    .badge-night { background:#fefce8; color:#ca8a04; }
    .dark .badge-open { background:rgba(22,163,74,.2); color:#4ade80; }
    .dark .badge-night { background:rgba(202,138,4,.2); color:#fbbf24; }
    .card-body { padding:.9rem; flex:1; display:flex; flex-direction:column; gap:.25rem; }
    .card-cat { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.07em; }
    .card-title { font-family:'Chewy',cursive; font-size:1.15rem; line-height:1.2; color:var(--text); }
    .card-loc { font-size:.7rem; color:var(--text-muted); display:flex; align-items:center; gap:2px; }
    .card-desc { font-size:.8rem; color:var(--text-muted); display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; flex:1; margin-top:.25rem; }
    .card-foot { display:flex; align-items:center; justify-content:space-between; margin-top:.5rem; padding-top:.5rem; border-top:1px solid var(--border); }
    .card-link { font-size:.75rem; font-weight:700; color:var(--deep); }
    .dark .card-link { color:var(--teal); }
    .card-keywords { display:flex; flex-wrap:wrap; gap:3px; margin-top:.3rem; }
    .card-keyword {
      font-size:.62rem; padding:1px 7px; border-radius:999px;
      background:color-mix(in srgb,var(--soft) 15%,transparent);
      color:var(--soft); font-weight:600;
    }
    .card-keyword.match {
      background:color-mix(in srgb,var(--teal) 18%,transparent);
      color:var(--teal);
    }

    /* ── BREADCRUMB ──────────── */
    .breadcrumb {
      background:var(--surface); border-bottom:1px solid var(--border);
      padding:.6rem 1rem; font-size:.8rem;
    }
    .breadcrumb-inner { max-width:1280px; margin:0 auto; display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
    .breadcrumb a { color:var(--teal); text-decoration:none; }
    .breadcrumb a:hover { text-decoration:underline; }
    .breadcrumb-sep { color:var(--text-muted); }
    .breadcrumb-current { color:var(--text); font-weight:600; }

    /* ── HERO ────────────────── */
    .place-hero {
      position:relative; height:280px; overflow:hidden;
      background:linear-gradient(135deg,#0072A0 0%,#019EB2 55%,#5995D0 100%);
      display:flex; align-items:flex-end;
    }
    @media(min-width:768px){ .place-hero { height:360px; } }
    .place-hero-bg {
      position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    }
    .place-hero-bg .ms {
      font-size:12rem; color:rgba(255,255,255,.12);
      font-variation-settings:'wght' 100,'FILL' 0;
    }
    .hero-overlay {
      position:absolute; inset:0;
      background:linear-gradient(to top,rgba(0,0,0,.65) 0%,transparent 60%);
    }
    .hero-content {
      position:relative; z-index:1; color:#fff;
      max-width:1280px; margin:0 auto; width:100%; padding:1.5rem 1rem;
    }
    .hero-badges { display:flex; gap:.5rem; flex-wrap:wrap; margin-bottom:.6rem; }
    .hero-badge {
      display:inline-flex; align-items:center; gap:4px;
      background:rgba(255,255,255,.18); backdrop-filter:blur(6px);
      border:1px solid rgba(255,255,255,.3); border-radius:999px;
      color:#fff; font-size:.72rem; font-weight:700; padding:3px 12px;
    }
    .hero-open { background:rgba(22,163,74,.7); border-color:transparent; }
    .hero-title { font-family:'Bangers',cursive; font-size:clamp(2rem,6vw,6.5rem); letter-spacing:.04em; line-height:1.05; margin-bottom:.4rem; }
    .hero-meta { font-size:.82rem; opacity:.85; display:flex; align-items:center; gap:1rem; flex-wrap:wrap; }
    .hero-actions {
      position:absolute; bottom:1.5rem; right:1rem; z-index:2;
      display:flex; gap:.5rem;
    }
    .hero-action-btn {
      display:inline-flex; align-items:center; gap:5px;
      background:rgba(255,255,255,.15); backdrop-filter:blur(8px);
      border:1px solid rgba(255,255,255,.3); color:#fff; border-radius:.6rem;
      padding:6px 14px; font-size:.78rem; font-weight:700; cursor:pointer;
      transition:background .2s; text-decoration:none;
    }
    .hero-action-btn:hover { background:rgba(255,255,255,.28); }

    /* ── MAIN LAYOUT ─────────── */
    .detail-layout {
      max-width:1280px; margin:0 auto; padding:1.5rem 1rem;
      display:grid; grid-template-columns:1fr 320px; gap:1.5rem;
    }
    @media(max-width:900px){ .detail-layout { grid-template-columns:1fr; } }

    /* ── TABS ────────────────── */
    .tab-list {
      display:flex; gap:0; border-bottom:2px solid var(--border);
      margin-bottom:1.5rem; overflow-x:auto;
    }
    .tab-btn {
      padding:.6rem 1.1rem; font-size:.82rem; font-weight:700; color:var(--text-muted);
      background:none; border:none; border-bottom:2px solid transparent; margin-bottom:-2px;
      cursor:pointer; transition:color .2s,border-color .2s; white-space:nowrap;
      display:flex; align-items:center; gap:5px; flex-shrink:0;
    }
    .tab-btn .ms { font-size:1rem; }
    .tab-btn:hover { color:var(--deep); }
    .dark .tab-btn:hover { color:var(--teal); }
    .tab-btn[aria-selected="true"] { color:var(--teal); border-bottom-color:var(--teal); }
    .tab-panel[hidden] { display:none; }

    /* ── CONTENT COMPONENTS ── */
    .sec-title { font-family:'Chewy',cursive; font-size:1.5rem; color:var(--deep); margin-bottom:.75rem; }
    .dark .sec-title { color:var(--soft); }
    .sec-title-sm { font-family:'Chewy',cursive; font-size:1.2rem; color:var(--deep); margin-bottom:.5rem; }
    .dark .sec-title-sm { color:var(--soft); }
    .body-text { font-size:.9rem; color:var(--text-muted); line-height:1.7; margin-bottom:1rem; }

    /* Feature list */
    .features-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(172px,1fr)); gap:.6rem; margin-bottom:1.5rem; }
    .feature-item {
      display:flex; align-items:center; gap:.5rem;
      background:var(--surface-2); border:1px solid var(--border);
      border-radius:.75rem; padding:.6rem .75rem; font-size:.8rem; font-weight:600;
    }
    .feature-item .ms { color:var(--teal); font-size:1.1rem; }

    /* Event type list */
    .ev-type-list { display:flex; flex-direction:column; gap:.75rem; }
    .ev-type-item {
      display:flex; align-items:flex-start; gap:.75rem;
      background:var(--surface-2); border:1px solid var(--border);
      border-radius:.75rem; padding:.9rem;
    }
    .ev-type-icon {
      width:40px; height:40px; border-radius:.5rem; flex-shrink:0;
      display:flex; align-items:center; justify-content:center; color:#fff;
    }
    .ev-type-icon .ms { font-size:1.3rem; }

    /* Event cards (detail) */
    .detail-ev-card {
      background:var(--surface); border:1px solid var(--border);
      border-radius:1rem; overflow:hidden;
      display:flex; flex-direction:column;
      transition:box-shadow .2s;
    }
    .detail-ev-card:hover { box-shadow:0 6px 20px rgba(0,0,0,.1); }
    @media(min-width:600px){ .detail-ev-card { flex-direction:row; } }
    .ev-date-col {
      display:flex; flex-direction:column; align-items:center; justify-content:center;
      padding:1rem; color:#fff; text-align:center; min-width:80px; font-weight:700; font-size:.7rem;
    }
    .ev-day { font-family:'Chewy',cursive; font-size:2rem; line-height:1; }
    .ev-body { padding:1rem; flex:1; }
    .ev-title { font-family:'Chewy',cursive; font-size:1.15rem; color:var(--text); margin-bottom:.3rem; }
    .ev-meta { font-size:.75rem; color:var(--text-muted); display:flex; align-items:center; gap:4px; margin-bottom:.4rem; }
    .ev-desc { font-size:.82rem; color:var(--text-muted); margin-bottom:.5rem; }
    .ev-tags { display:flex; flex-wrap:wrap; gap:.3rem; }
    .ev-tag { font-size:.67rem; font-weight:700; padding:2px 9px; border-radius:999px; background:var(--surface-2); color:var(--text-muted); }
    .ev-price { display:inline-flex; align-items:center; padding:3px 10px; border-radius:999px; font-size:.72rem; font-weight:700; color:#fff; }
    .ev-foot { display:flex; align-items:center; justify-content:space-between; margin-top:.75rem; padding-top:.5rem; border-top:1px solid var(--border); }

    /* Gallery */
    .gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:.5rem; }
    .gallery-item {
      aspect-ratio:1; border-radius:.75rem; overflow:hidden;
      display:flex; align-items:center; justify-content:center;
      cursor:pointer; transition:transform .25s;
    }
    .gallery-item:hover { transform:scale(1.04); }
    .gallery-item .ms { font-size:2.5rem; color:rgba(255,255,255,.85); font-variation-settings:'wght' 100,'FILL' 0; }

    /* Reviews */
    .rating-bar { display:flex; align-items:center; gap:.75rem; font-size:.8rem; margin-bottom:.3rem; }
    .rating-bar-track { flex:1; height:6px; background:var(--border); border-radius:3px; overflow:hidden; }
    .rating-bar-fill { height:100%; border-radius:3px; }
    .review-card { background:var(--surface-2); border:1px solid var(--border); border-radius:.75rem; padding:.9rem; }
    .reviewer-avatar {
      width:36px; height:36px; border-radius:50%; flex-shrink:0;
      display:flex; align-items:center; justify-content:center; color:#fff;
      font-weight:700; font-size:.85rem;
    }

    /* Calendar */
    .cal-wrap { background:var(--surface); border:1px solid var(--border); border-radius:1.2rem; padding:1.25rem; }
    .cal-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:1rem; }
    .cal-nav-btn { background:none; border:none; cursor:pointer; color:var(--text-muted); border-radius:50%; width:30px; height:30px; display:flex; align-items:center; justify-content:center; transition:background .15s; }
    .cal-nav-btn:hover { background:var(--surface-2); }
    .cal-month { font-family:'Chewy',cursive; font-size:1.3rem; color:var(--deep); }
    .dark .cal-month { color:var(--soft); }
    .cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; text-align:center; }
    .cal-day-label { font-size:.62rem; font-weight:700; color:var(--text-muted); padding:.3rem 0; }
    .cal-day {
      aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center;
      border-radius:.4rem; font-size:.76rem; font-weight:600; cursor:pointer;
      transition:background .15s; position:relative; color:var(--text);
    }
    .cal-day:hover { background:var(--surface-2); }
    .cal-dot { width:5px; height:5px; border-radius:50%; position:absolute; bottom:2px; }
    .cal-event-list { margin-top:1rem; border-top:1px solid var(--border); padding-top:.75rem; display:flex; flex-direction:column; gap:.4rem; }
    .cal-event-row { display:flex; align-items:center; gap:.5rem; font-size:.78rem; }
    .cal-event-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; }

    /* Sidebar info */
    .info-card { background:var(--surface); border:1px solid var(--border); border-radius:1rem; padding:1.25rem; }
    .info-card-title { font-family:'Chewy',cursive; font-size:1.2rem; color:var(--deep); margin-bottom:.9rem; }
    .dark .info-card-title { color:var(--soft); }
    .info-row { display:flex; align-items:flex-start; gap:.6rem; padding:.5rem 0; border-bottom:1px solid var(--border); font-size:.83rem; }
    .info-row:last-child { border:none; }
    .info-row .ms { color:var(--teal); flex-shrink:0; font-size:1.1rem; margin-top:1px; }
    .info-label { font-weight:700; color:var(--text); display:block; margin-bottom:1px; }
    .info-value { color:var(--text-muted); }
    .btn-outline {
      display:inline-flex; align-items:center; justify-content:center; gap:5px;
      padding:8px 18px; background:transparent; color:var(--teal); border:2px solid var(--teal);
      border-radius:999px; font-size:.82rem; font-weight:700;
      text-decoration:none; transition:background .2s,color .2s; cursor:pointer;
    }
    .btn-outline:hover { background:var(--teal); color:#fff; }

    /* Nearby */
    .nearby-item {
      display:flex; align-items:center; gap:.75rem;
      padding:.6rem; border-radius:.75rem; transition:background .15s;
      text-decoration:none; color:var(--text);
    }
    .nearby-item:hover { background:var(--surface-2); }
    .nearby-thumb {
      width:40px; height:40px; border-radius:.5rem; flex-shrink:0;
      display:flex; align-items:center; justify-content:center; color:#fff;
    }
    .nearby-thumb .ms { font-size:1.3rem; }

    /* Next event promo */
    .promo-card {
      border-radius:1rem; overflow:hidden; color:#fff;
      background:linear-gradient(135deg,var(--teal),var(--deep));
      padding:1.25rem;
    }
    .promo-eyebrow { font-size:.68rem; font-weight:700; text-transform:uppercase; letter-spacing:.1em; opacity:.8; margin-bottom:.3rem; }
    .promo-title { font-family:'Chewy',cursive; font-size:1.3rem; margin-bottom:.25rem; }
    .promo-meta { font-size:.78rem; opacity:.85; margin-bottom:.75rem; }
    .promo-btn {
      width:100%; padding:8px; background:#fff; border:none; border-radius:.6rem;
      font-family:'Nunito Sans',sans-serif; font-weight:700; font-size:.82rem;
      color:var(--deep); cursor:pointer; transition:opacity .2s;
    }
    .promo-btn:hover { opacity:.9; }
    /* ── NO RESULTS ──────────────────────── */
    #noResults { text-align:center; padding:4rem 1rem; }
    #noResults .ms { font-size:4rem; color:var(--text-muted); display:block; margin-bottom:1rem; }
    .no-results-title { font-family:'Chewy',cursive; font-size:1.8rem; color:var(--deep); margin-bottom:.5rem; }
    .dark .no-results-title { color:var(--soft); }
    /* Animated gradient bg */
    .wip-bg {
      background: linear-gradient(270deg, var(--deep), var(--teal), var(--soft), var(--lavender), var(--pink));
      background-size: 400% 400%;
      animation: gradientMove 8s ease infinite;
    }
    @keyframes gradientMove {
      0% { background-position: 0% 50%; }
      50% { background-position: 100% 50%; }
      100% { background-position: 0% 50%; }
    }

    /* Floating icon animation */
    @keyframes float {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-18px); }
    }
    .float-anim { animation: float 3s ease-in-out infinite; }

    /* Progress bar animation */
    @keyframes progress {
      0% { width: 0%; }
      100% { width: 65%; }
    }
    .progress-bar { animation: progress 2s ease-out forwards; }

    /* Gear spin */
    @keyframes spin-slow { 100% { transform: rotate(360deg); } }
    .spin-slow { animation: spin-slow 4s linear infinite; }
    @keyframes spin-rev { 100% { transform: rotate(-360deg); } }
    .spin-rev { animation: spin-rev 3s linear infinite; }

    /* Bubble particles */
    .bubble {
      position: absolute;
      border-radius: 50%;
      opacity: 0.15;
      animation: rise linear infinite;
    }
    @keyframes rise {
      0% { transform: translateY(100vh) scale(0); opacity: 0.15; }
      100% { transform: translateY(-100px) scale(1); opacity: 0; }
    }

    /* Card hover */
    .feature-card { transition: transform .3s, box-shadow .3s; }
    .feature-card:hover { transform: translateY(-6px); box-shadow: 0 20px 40px rgba(0,0,0,.15); }
    /* ── FOOTER ──────────────────────────── */
    .site-footer { background:var(--soft); color:#fff; transition:background .3s; margin-top:2rem; }
    .dark .site-footer { background:#020617; }
    .footer-inner { max-width:1280px; margin:0 auto; padding:3rem 1rem 1.5rem; }
    .footer-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:2rem; margin-bottom:2rem; }
    .footer-heading { font-family:'Chewy',cursive; font-size:1.1rem; margin-bottom:.75rem; }
    .footer-links { list-style:none; display:flex; flex-direction:column; gap:.4rem; }
    .footer-links a { font-size:.82rem; color:rgba(255,255,255,.7); text-decoration:none; display:flex; align-items:center; gap:5px; transition:color .15s; }
    .footer-links a:hover { color:#fff; }
    .footer-links .ms { font-size:.9rem; }
    .footer-bar { border-top:1px solid rgba(255,255,255,.15); padding-top:1rem; text-align:center; font-size:.75rem; opacity:.5; }

    .sr-only { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
  