/*
Theme Name: Evently
Theme URI: https://example.com/evently
Author: Evently Studio
Author URI: https://example.com
Description: A premium WordPress theme for an event discovery and price-comparison platform (not a ticket-selling site). Includes custom post types for Events, Organizers and Venues, taxonomies for Categories and Cities, a price-comparison table on each event page, and a fully responsive glassmorphism design.
Version: 1.0.29
Requires at least: 6.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: fenix
*/

  :root{
    --primary:#5B4BFF;
    --primary-light:#8B7CFF;
    --secondary:#7C3AED;
    --accent:#FF6B35;
    --success:#10B981;
    --bg:#F8FAFC;
    --ink:#111827;
    --navy:#0B1130;
    --gray-light:#F3F4F6;
    --muted:#6B7280;
    --white:#FFFFFF;
    --radius:24px;
    --shadow-sm: 0 2px 10px rgba(17,24,39,.06);
    --shadow-md: 0 12px 32px rgba(91,75,255,.14);
    --shadow-lg: 0 24px 60px rgba(17,24,39,.16);
    --font-display:'Plus Jakarta Sans', sans-serif;
    --font-body:'Inter', sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    font-family:var(--font-body);
    background:var(--bg);
    color:var(--ink);
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{max-width:100%;display:block;}
  a{color:inherit;text-decoration:none;}
  button{font-family:inherit;cursor:pointer;border:none;background:none;}
  .wrap{max-width:1280px;margin:0 auto;padding:0 32px;}
  h1,h2,h3,h4{font-family:var(--font-display);letter-spacing:-0.02em;line-height:1.08;}
  ::selection{background:var(--primary);color:#fff;}
  :focus-visible{outline:3px solid var(--primary);outline-offset:3px;border-radius:6px;}

  @media (prefers-reduced-motion: reduce){
    *{animation-duration:.001ms !important; animation-iteration-count:1 !important; transition-duration:.001ms !important; scroll-behavior:auto !important;}
  }

  /* ---------- scroll progress ---------- */
  #scroll-progress{position:fixed;top:0;left:0;height:3px;background:linear-gradient(90deg,var(--primary),var(--accent));z-index:9999;width:0%;transition:width .1s ease-out;}

  /* ---------- header ---------- */
  header{
    position:fixed;top:0;left:0;right:0;z-index:1000;
    padding:22px 0;
    transition:all .35s cubic-bezier(.4,0,.2,1);
  }
  header .wrap{display:flex;align-items:center;justify-content:space-between;}
  header.scrolled{
    padding:12px 0;
    background:rgba(248,250,252,.75);
    backdrop-filter:blur(16px) saturate(160%);
    -webkit-backdrop-filter:blur(16px) saturate(160%);
    box-shadow:0 1px 0 rgba(17,24,39,.06), 0 8px 30px rgba(17,24,39,.05);
  }
  /* Homepage header sits above the light slider stage, so keep it solid and neutral. */
  body.home #site-header:not(.scrolled){background:#fff;}
  body.home #site-header:not(.scrolled) .mobile-toggle{background:rgba(17,24,39,.04);color:var(--ink);}
  .logo{display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-weight:800;font-size:22px;}
  .logo .mark{
    width:36px;height:36px;border-radius:11px;
    background:linear-gradient(135deg,var(--primary),var(--secondary));
    display:flex;align-items:center;justify-content:center;color:#fff;font-size:18px;
    box-shadow:var(--shadow-md);
    position:relative;
  }
  .logo .mark::after{content:'';position:absolute;inset:0;border-radius:11px;border:2px dashed rgba(255,255,255,.35);}
  .location-dropdown{position:relative;}
  .location-trigger{
    display:flex;align-items:center;justify-content:center;gap:7px;width:56px;height:40px;padding:0;border-radius:100px;
    background:var(--gray-light);border:1px solid rgba(17,24,39,.08);font-size:14px;font-weight:600;color:var(--ink);transition:.2s;
  }
  .location-trigger:hover{border-color:var(--primary);}
  .location-trigger svg{width:16px;height:16px;color:var(--primary);flex-shrink:0;}
  .location-trigger > span{display:none;}
  .location-trigger .chev{width:13px;height:13px;color:var(--muted);transition:transform .2s;}
  .location-trigger[aria-expanded="true"] .chev{transform:rotate(180deg);}
  .location-menu{
    position:absolute;top:calc(100% + 10px);left:0;min-width:200px;background:#fff;border-radius:16px;
    box-shadow:var(--shadow-lg);border:1px solid rgba(17,24,39,.06);padding:8px;
    opacity:0;pointer-events:none;transform:translateY(-8px);transition:.2s;z-index:200;max-height:320px;overflow-y:auto;
  }
  .location-menu.open{opacity:1;pointer-events:all;transform:translateY(0);}
  .location-menu button, .location-menu a{
    display:block;width:100%;text-align:left;padding:10px 14px;border-radius:10px;font-size:14px;font-weight:600;color:var(--ink);transition:.15s;
  }
  .location-menu button:hover, .location-menu a:hover{background:rgba(91,75,255,.08);color:var(--primary);}

  .country-dropdown{position:relative;}
  .country-trigger{
    display:flex;align-items:center;gap:6px;padding:10px 12px;border-radius:100px;
    background:var(--gray-light);border:1px solid rgba(17,24,39,.08);font-size:14px;font-weight:600;color:var(--ink);transition:.2s;
  }
  .country-trigger:hover{border-color:var(--primary);}
  .country-trigger span{line-height:1;}
  .country-trigger #country-flag{font-size:15px;}
  .country-trigger .chev{width:12px;height:12px;color:var(--muted);transition:transform .2s;}
  .country-trigger[aria-expanded="true"] .chev{transform:rotate(180deg);}
  .country-menu{
    position:absolute;top:calc(100% + 10px);right:0;min-width:170px;background:#fff;border-radius:16px;
    box-shadow:var(--shadow-lg);border:1px solid rgba(17,24,39,.06);padding:8px;
    opacity:0;pointer-events:none;transform:translateY(-8px);transition:.2s;z-index:200;
  }
  .country-menu.open{opacity:1;pointer-events:all;transform:translateY(0);}
  .country-option{
    display:flex;align-items:center;gap:8px;width:100%;text-align:left;padding:10px 12px;border-radius:10px;
    font-size:14px;font-weight:600;color:var(--ink);transition:.15s;
  }
  .country-option:hover{background:rgba(91,75,255,.08);color:var(--primary);}
  .header-right{display:flex;align-items:center;gap:18px;}
  .icon-btn{width:42px;height:42px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:rgba(17,24,39,.04);transition:.25s;position:relative;}
  .icon-btn:hover{background:rgba(91,75,255,.1);transform:translateY(-2px);}
  .icon-btn svg{width:19px;height:19px;}
  .btn{
    padding:12px 22px;border-radius:100px;font-weight:700;font-size:14.5px;
    display:inline-flex;align-items:center;gap:8px;transition:.25s cubic-bezier(.4,0,.2,1);
    position:relative; overflow:hidden;
  }
  .btn-primary{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;box-shadow:0 8px 20px rgba(91,75,255,.35);}
  .btn-primary:hover{transform:translateY(-2px);box-shadow:0 12px 28px rgba(91,75,255,.45);}
  .btn-primary::before{content:'';position:absolute;top:0;left:-100%;width:60%;height:100%;background:linear-gradient(120deg,transparent,rgba(255,255,255,.35),transparent);transition:left .5s;}
  .btn-primary:hover::before{left:130%;}
  .btn-ghost{color:var(--ink);font-weight:600;}
  .btn-ghost:hover{color:var(--primary);}
  .btn-outline{border:1.5px solid rgba(17,24,39,.12);color:var(--ink);}
  .btn-outline:hover{border-color:var(--primary);color:var(--primary);}
  .mobile-toggle{display:none;width:42px;height:42px;border-radius:12px;align-items:center;justify-content:center;background:rgba(17,24,39,.04);}
  .mobile-toggle svg{width:20px;height:20px;}

  /* ---------- homepage horizontal banner slider ---------- */
  .hero-slider{
    --slide-width:min(72vw,900px);
    position:relative;
    width:100%;
    overflow:hidden;
    padding:18px 0 34px;
    background:var(--bg);
  }
  .hero-slider-viewport{position:relative;overflow:hidden;width:100%;}
  .hero-slider-track{
    display:flex;
    gap:22px;
    width:max-content;
    padding:0 calc((100% - var(--slide-width))/2);
    transition:transform .55s cubic-bezier(.22,.61,.36,1);
    will-change:transform;
  }
  .hero-slide{
    position:relative;
    flex:0 0 var(--slide-width);
    aspect-ratio:16/6.4;
    overflow:hidden;
    border-radius:16px;
    background:#dfe3e8;
    box-shadow:0 10px 28px rgba(17,24,39,.10);
    transform:scale(.94);
    opacity:.76;
    transition:transform .45s ease,opacity .45s ease,box-shadow .45s ease;
  }
  .hero-slide.is-active{
    transform:scale(1);
    opacity:1;
    box-shadow:0 18px 42px rgba(17,24,39,.18);
    z-index:2;
  }
  .hero-slide img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center;
  }
  .hero-slide-content{
    position:absolute;
    left:24px;
    right:24px;
    bottom:22px;
    max-width:430px;
    padding:18px 20px;
    border-radius:14px;
    color:#fff;
    background:linear-gradient(135deg,rgba(11,17,48,.84),rgba(11,17,48,.48));
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
  }
  .hero-slide-content h2{font-size:clamp(20px,2.2vw,30px);color:#fff;margin:0 0 6px;}
  .hero-slide-content p{font-size:13px;color:rgba(255,255,255,.84);margin:0 0 12px;}
  .hero-slider-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:44px;height:44px;
    border-radius:50%;
    display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.92);
    color:var(--ink);
    box-shadow:0 8px 24px rgba(17,24,39,.16);
    z-index:5;
    transition:.2s ease;
  }
  .hero-slider-arrow:hover{transform:translateY(-50%) scale(1.06);background:#fff;color:var(--primary);}
  .hero-slider-arrow svg{width:20px;height:20px;}
  .hero-slider-arrow.prev{left:18px;}
  .hero-slider-arrow.next{right:18px;}
  .hero-slider-dots{
    position:absolute;
    left:50%;
    bottom:12px;
    transform:translateX(-50%);
    display:flex;
    align-items:center;
    gap:7px;
    z-index:6;
  }
  .hero-dot{
    width:8px;height:8px;
    padding:0;border-radius:50%;
    background:#c7cbd1;
    transition:.25s ease;
  }
  .hero-dot.active{width:22px;border-radius:99px;background:#d99035;}
  
  /* ---------- hero ---------- */
  .hero{
    position:relative;padding:170px 0 130px;overflow:hidden;
    background-image:
      linear-gradient(90deg, rgba(11,17,48,.95) 0%, rgba(11,17,48,.88) 32%, rgba(11,17,48,.55) 52%, rgba(11,17,48,.1) 68%, rgba(11,17,48,0) 80%),
      url('assets/images/hero-desktop.jpg');
    background-size:cover;
    background-position:center;
    color:#fff;
  }
  .hero .wrap{position:relative;z-index:2;}
  .hero-copy{max-width:600px;}
  .hero-eyebrow{
    display:inline-flex;align-items:center;gap:8px;padding:8px 16px;border-radius:100px;
    background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.18);backdrop-filter:blur(6px);
    font-size:13px;font-weight:700;color:#fff;margin-bottom:22px;
  }
  .hero-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--success);box-shadow:0 0 0 4px rgba(16,185,129,.28);animation:pulse 2s infinite;}
  @keyframes pulse{0%,100%{opacity:1;}50%{opacity:.4;}}
  .hero h1{font-size:clamp(34px,5vw,58px);font-weight:800;color:#fff;margin-bottom:22px;}
  .hero h1 .grad{background:linear-gradient(135deg,#8B7CFF,var(--secondary) 60%,var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent;}
  .hero p.lead{font-size:17px;color:rgba(255,255,255,.82);max-width:520px;margin-bottom:34px;line-height:1.65;}

  .hero-search{
    display:flex;gap:8px;background:rgba(255,255,255,.95);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.6);border-radius:16px;padding:8px;box-shadow:var(--shadow-lg);max-width:560px;
  }
  .hero-search input{flex:1;border:none;background:none;font-family:inherit;font-size:15px;padding:12px 16px;color:var(--ink);min-width:0;}
  .hero-search input:focus{outline:none;}
  .hero-search input::placeholder{color:#9CA3AF;}
  .hero-search button{
    background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;border-radius:11px;padding:0 26px;
    font-weight:700;font-size:14.5px;box-shadow:0 8px 20px rgba(91,75,255,.3);transition:.25s;white-space:nowrap;flex-shrink:0;
  }
  .hero-search button:hover{transform:translateY(-2px);}

  .quick-cats-grid{
    display:flex;flex-wrap:nowrap;gap:10px;margin-top:26px;
  }
  .qcat-tile{
    display:flex;flex-direction:column;align-items:center;gap:6px;flex:1 1 0;min-width:0;padding:12px 4px;border-radius:14px;
    background:rgba(255,255,255,.95);box-shadow:var(--shadow-sm);transition:.22s cubic-bezier(.4,0,.2,1);
  }
  .qcat-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
  .qcat-tile .qcat-icon{width:28px;height:28px;display:flex;align-items:center;justify-content:center;font-size:16px;}
  .qcat-tile span{font-size:11px;font-weight:700;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}

  /* Mobile-only duplicate of the same 8 categories, shown as its own
     section below the hero instead of inside it (hidden by default,
     revealed at the mobile breakpoint further down this file). */
  .mobile-cats-section{display:none;}

  /* ---------- section shell ---------- */
  section{padding:96px 0;position:relative;}
  .section-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:48px;gap:24px;flex-wrap:wrap;}
  .view-all-link{font-size:14px;font-weight:700;color:var(--primary);white-space:nowrap;transition:.2s;}
  .view-all-link:hover{color:var(--secondary);}
  .eyebrow-label{font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--primary);margin-bottom:10px;display:block;}
  .section-head h2{font-size:clamp(28px,3.4vw,40px);font-weight:800;}
  .section-head p{color:var(--muted);font-size:15.5px;max-width:440px;margin-top:8px;}
  .reveal{opacity:0;transform:translateY(28px);transition:opacity .7s cubic-bezier(.4,0,.2,1), transform .7s cubic-bezier(.4,0,.2,1);}
  .reveal.in{opacity:1;transform:translateY(0);}

  /* ---------- ticket-stub event cards (signature element) ---------- */
  .events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
  .trending-grid{grid-template-columns:repeat(5,1fr);}
  .trending-grid .ticket-media{height:140px;}
  .trending-grid .ticket-body{padding:16px 16px 14px;}
  .trending-grid .ticket-body h3{font-size:14.5px;margin-bottom:6px;}
  .trending-grid .meta-row{font-size:12px;margin-bottom:6px;}
  .trending-grid .rating{font-size:12px;margin-bottom:4px;}
  .trending-grid .price-tag{font-size:15.5px;}
  .trending-grid .onwards{font-size:10.5px;}
  .trending-grid .book-btn{padding:8px 12px;font-size:12px;}
  .trending-grid .ticket-foot{margin-top:10px;padding-top:10px;}
.trending-grid .ticket-city{font-size:12px;color:var(--muted);line-height:1.25;margin-top:2px;min-height:15px;}
  .trending-grid .date-badge{padding:6px 8px;min-width:44px;}
  .trending-grid .date-badge .day{font-size:16px;}
  .ticket-card{margin-bottom:4px;}
  .ticket-card{
    background:#fff;border-radius:var(--radius);overflow:hidden;box-shadow:var(--shadow-sm);
    transition:transform .35s cubic-bezier(.4,0,.2,1), box-shadow .35s;
    position:relative;
  }
  .ticket-card:hover{transform:translateY(-8px);box-shadow:var(--shadow-lg);}
  .ticket-media{position:relative;height:200px;overflow:hidden;}
  .ticket-media .ph{width:100% !important;height:100% !important;max-width:none;object-fit:cover;object-position:center;transition:transform .5s cubic-bezier(.4,0,.2,1);display:flex;align-items:center;justify-content:center;font-size:52px;}
  .ticket-card:hover .ticket-media .ph{transform:scale(1.08);}
  .date-badge{
    position:absolute;top:14px;left:14px;background:rgba(255,255,255,.92);backdrop-filter:blur(6px);
    border-radius:12px;padding:8px 10px;text-align:center;line-height:1.1;box-shadow:var(--shadow-sm);min-width:52px;
  }
  .date-badge .mon{font-size:10.5px;font-weight:700;color:var(--accent);text-transform:uppercase;}
  .date-badge .day{font-size:19px;font-weight:800;color:var(--ink);}
  .cat-tag{
    position:absolute;top:66px;left:14px;background:rgba(91,75,255,.9);backdrop-filter:blur(6px);
    color:#fff;font-size:11px;font-weight:700;padding:5px 12px;border-radius:100px;
  }
  .heart-btn{
    position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;
    background:rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;
    box-shadow:var(--shadow-sm);transition:.2s;
  }
  .heart-btn svg{width:16px;height:16px;stroke:var(--ink);fill:none;transition:.2s;}
  .heart-btn.active svg{fill:var(--accent);stroke:var(--accent);}
  .heart-btn:hover{transform:scale(1.1);}

  .ticket-body{padding:22px 22px 20px;}
  .ticket-body h3{font-size:18px;font-weight:800;margin-bottom:8px;line-height:1.3;}
  .meta-row{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:13.5px;margin-bottom:5px;}
  .meta-row svg{width:14px;height:14px;flex-shrink:0;}
  .ticket-foot{display:flex;justify-content:space-between;align-items:center;margin-top:14px;padding-top:16px;border-top:1px dashed rgba(17,24,39,.1);}
  .price-tag{font-family:var(--font-display);font-weight:800;font-size:19px;color:var(--ink);display:inline;}
  .price-tag span{font-size:12px;font-weight:600;color:var(--muted);}
  .onwards{display:block;font-size:11.5px;color:var(--muted);font-weight:600;}
  .rating{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--ink);margin-bottom:6px;}
  .rating svg{width:14px;height:14px;fill:#FBBF24;}
  .review-count{font-weight:500;color:var(--muted);font-size:12px;}
  .book-btn{
    padding:10px 18px;border-radius:100px;font-weight:700;font-size:13.5px;color:#fff;
    background:linear-gradient(135deg,var(--primary),var(--secondary));
    box-shadow:0 6px 16px rgba(91,75,255,.28);transition:.25s;
  }
  .book-btn:hover{transform:translateY(-2px) scale(1.03);box-shadow:0 10px 22px rgba(91,75,255,.4);}

  .view-all-wrap{text-align:center;margin-top:48px;}

  /* ---------- categories ---------- */
  .cat-grid{display:flex;flex-wrap:nowrap;gap:12px;}
  .cat-card{
    position:relative;border-radius:16px;overflow:hidden;text-align:center;box-shadow:var(--shadow-sm);
    transition:.3s cubic-bezier(.4,0,.2,1);cursor:pointer;flex:1 1 0;min-width:0;min-height:104px;
    display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:14px 6px;
  }
  .cat-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;z-index:0;}
  .cat-card::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(11,17,48,.55), rgba(11,17,48,.05) 65%);}
  .cat-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
  .cat-icon{
    position:relative;z-index:1;width:34px;height:34px;margin:0 auto 8px;display:flex;align-items:center;justify-content:center;
    font-size:18px;transition:.3s;
  }
  .cat-card:hover .cat-icon{transform:rotate(-6deg) scale(1.08);}

  /* Photo-style category tile — image/gradient background with title
     overlaid at the bottom, matching the reference design. No real
     category photography was supplied, so these use the theme's
     gradient palette as the "photo" background instead. */
  .cat-photo-grid{display:flex;gap:14px;overflow-x:auto;padding-bottom:6px;-webkit-overflow-scrolling:touch;}
  .cat-photo-tile{
    position:relative;flex:0 0 140px;height:110px;border-radius:16px;overflow:hidden;box-shadow:var(--shadow-sm);
    display:flex;align-items:flex-end;padding:12px;transition:.25s cubic-bezier(.4,0,.2,1);
  }
  .cat-photo-tile:hover{transform:translateY(-4px);box-shadow:var(--shadow-md);}
  .cat-photo-tile img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
  .cat-photo-tile::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(11,17,48,.72), transparent 60%);}
  .cat-photo-tile .cat-photo-icon{position:relative;z-index:1;position:absolute;top:10px;left:10px;font-size:18px;}
  .cat-photo-tile span{position:relative;z-index:1;color:#fff;font-size:13.5px;font-weight:800;}
  .cat-photo-tile.see-all{background:var(--gray-light);align-items:center;justify-content:center;padding:0;}
  .cat-photo-tile.see-all span{color:var(--ink);}
  .cat-card h4{position:relative;z-index:1;font-size:12px;font-weight:800;color:#fff;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
  .cat-card span{position:relative;z-index:1;font-size:10px;color:rgba(255,255,255,.85);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;max-width:100%;}

  /* ---------- upcoming carousel ---------- */
  .filter-chips{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:32px;}
  .chip{padding:9px 18px;border-radius:100px;font-size:13.5px;font-weight:600;background:var(--gray-light);transition:.2s;}
  .chip.active{background:var(--ink);color:#fff;}
  .chip:hover:not(.active){background:#E9E7FF;color:var(--primary);}
  .carousel-track{display:flex;gap:22px;overflow-x:auto;padding-bottom:16px;scroll-snap-type:x mandatory;}
  .carousel-track::-webkit-scrollbar{height:6px;}
  .carousel-track::-webkit-scrollbar-thumb{background:rgba(91,75,255,.25);border-radius:10px;}
  .up-card{
    flex:0 0 300px;scroll-snap-align:start;background:#fff;border-radius:20px;overflow:hidden;box-shadow:var(--shadow-sm);
    transition:.3s;
  }
  .up-card:hover{box-shadow:var(--shadow-md);transform:translateY(-4px);}
  .up-media{height:150px;position:relative;overflow:hidden;}
  .up-media .ph{width:100% !important;height:100% !important;max-width:none;object-fit:cover;object-position:center;display:flex;align-items:center;justify-content:center;font-size:38px;}
  .up-body{padding:18px;}
  .up-body h4{font-size:15.5px;font-weight:700;margin-bottom:8px;}
.up-city{font-size:12px;color:var(--muted);line-height:1.25;margin-bottom:12px;min-height:15px;}
  .seats-left{font-size:12px;color:var(--accent);font-weight:700;margin-bottom:12px;}
  .up-foot{display:flex;justify-content:space-between;align-items:center;}

  /* ---------- why choose us ---------- */
  .feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
  .feature-card{background:#fff;border-radius:20px;padding:32px 26px;box-shadow:var(--shadow-sm);transition:.3s;}
  .feature-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
  .feature-icon{width:52px;height:52px;border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:22px;margin-bottom:20px;}
  .feature-card h4{font-size:17px;font-weight:800;margin-bottom:8px;}
  .feature-card p{font-size:14px;color:var(--muted);line-height:1.6;}

  /* ---------- how it works ---------- */
  .steps-row{display:grid;grid-template-columns:repeat(3,1fr);gap:0;position:relative;}
  .step-line{position:absolute;top:34px;left:16.5%;right:16.5%;height:0;border-top:2px dashed rgba(91,75,255,.3);z-index:0;}
  .step{text-align:center;position:relative;z-index:1;padding:0 24px;}
  .step-num{
    width:68px;height:68px;border-radius:50%;background:linear-gradient(135deg,var(--primary),var(--secondary));
    color:#fff;font-family:var(--font-display);font-weight:800;font-size:24px;display:flex;align-items:center;justify-content:center;
    margin:0 auto 20px;box-shadow:var(--shadow-md);
  }
  .step h4{font-size:18px;font-weight:800;margin-bottom:8px;}
  .step p{font-size:14px;color:var(--muted);max-width:230px;margin:0 auto;line-height:1.6;}

  /* ---------- organizers ---------- */
  .org-row{display:grid;grid-template-columns:repeat(5,1fr);gap:22px;}
  .org-card{background:#fff;border-radius:20px;padding:26px 18px;text-align:center;box-shadow:var(--shadow-sm);transition:.3s;}
  .org-card:hover{transform:translateY(-6px);box-shadow:var(--shadow-md);}
  .org-avatar{
    width:72px;height:72px;border-radius:50%;margin:0 auto 14px;display:flex;align-items:center;justify-content:center;
    font-size:26px;font-weight:800;color:#fff;
  }
  .org-card h4{font-size:14.5px;font-weight:700;margin-bottom:4px;}
  .org-stats{font-size:12px;color:var(--muted);margin-bottom:14px;}
  .follow-btn{padding:8px 20px;border-radius:100px;border:1.5px solid rgba(17,24,39,.12);font-size:12.5px;font-weight:700;transition:.2s;}
  .follow-btn:hover{border-color:var(--primary);color:var(--primary);background:rgba(91,75,255,.06);}

  /* ---------- cities ---------- */
  .city-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;}
  .city-card{
    position:relative;border-radius:20px;overflow:hidden;height:160px;display:flex;align-items:flex-end;padding:18px;
    box-shadow:var(--shadow-sm);transition:.3s;
  }
  .city-card:hover{transform:translateY(-5px);box-shadow:var(--shadow-md);}
  .city-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .4s;}
  .city-card:hover img{transform:scale(1.06);}
  .city-card::after{content:'';position:absolute;inset:0;background:linear-gradient(0deg, rgba(17,24,39,.65), rgba(17,24,39,.05) 60%);}
  .city-card h4{position:relative;z-index:1;color:#fff;font-size:17px;font-weight:800;}
  .city-card span{position:relative;z-index:1;color:rgba(255,255,255,.8);font-size:12px;}

  /* ---------- testimonials ---------- */
  .testi-wrap{position:relative;overflow:hidden;}
  .testi-track{display:flex;gap:24px;transition:transform .6s cubic-bezier(.4,0,.2,1);}
  .testi-card{
    flex:0 0 calc(33.333% - 16px);
    background:rgba(255,255,255,.6);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
    border:1px solid rgba(255,255,255,.7);border-radius:20px;padding:28px;box-shadow:var(--shadow-sm);
  }
  .stars{display:flex;gap:3px;margin-bottom:16px;}
  .stars svg{width:15px;height:15px;fill:#FBBF24;}
  .testi-card p{font-size:14.5px;color:var(--ink);line-height:1.7;margin-bottom:20px;}
  .testi-person{display:flex;align-items:center;gap:12px;}
  .testi-avatar{width:44px;height:44px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:800;color:#fff;font-size:15px;}
  .testi-person h5{font-size:13.5px;font-weight:700;}
  .testi-person span{font-size:12px;color:var(--muted);}
  .testi-dots{display:flex;justify-content:center;gap:8px;margin-top:32px;}
  .tdot{width:8px;height:8px;border-radius:50%;background:rgba(17,24,39,.15);transition:.25s;}
  .tdot.active{background:var(--primary);width:22px;border-radius:6px;}

  /* ---------- gallery (masonry) ---------- */
  .masonry{columns:4 220px;column-gap:18px;}
  .m-item{break-inside:avoid;margin-bottom:18px;border-radius:18px;overflow:hidden;position:relative;box-shadow:var(--shadow-sm);cursor:pointer;}
  .m-item .ph{width:100%;display:flex;align-items:center;justify-content:center;font-size:32px;}
  .m-overlay{position:absolute;inset:0;background:linear-gradient(0deg, rgba(17,24,39,.75), transparent 55%);opacity:0;transition:.3s;display:flex;align-items:flex-end;padding:14px;}
  .m-item:hover .m-overlay{opacity:1;}
  .m-item:hover .ph{transform:scale(1.06);}
  .m-item .ph{transition:transform .4s;}
  .m-overlay span{color:#fff;font-weight:700;font-size:13px;}


  /* ---------- footer ---------- */
  footer{background:var(--navy);color:rgba(255,255,255,.65);padding:70px 0 28px;margin-top:60px;}
  .footer-grid{display:grid;grid-template-columns:1.4fr repeat(4,1fr);gap:40px;padding-bottom:50px;border-bottom:1px solid rgba(255,255,255,.1);}
  .footer-brand p{font-size:14px;line-height:1.7;margin:16px 0 22px;color:rgba(255,255,255,.55);max-width:260px;}
  .foot-col h5{color:#fff;font-size:14px;font-weight:700;margin-bottom:18px;display:flex;align-items:center;justify-content:space-between;}
  .foot-chev{width:16px;height:16px;display:none;transition:transform .2s;flex-shrink:0;}
  .foot-links{display:flex;flex-direction:column;}
  .foot-col a{display:block;font-size:13.5px;margin-bottom:12px;color:rgba(255,255,255,.6);transition:.2s;}
  .foot-col a:hover{color:#fff;}
  .social-row{display:flex;gap:10px;margin-top:4px;}
  .social-row a{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,.08);display:flex;align-items:center;justify-content:center;margin:0;}
  .social-row a:hover{background:var(--primary);}
  .social-row svg{width:16px;height:16px;}
  .foot-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:26px;font-size:13px;flex-wrap:wrap;gap:14px;}
  .badge-row{display:flex;gap:10px;}
  .mini-badge{padding:8px 14px;border-radius:10px;background:rgba(255,255,255,.08);font-size:12px;font-weight:600;color:#fff;}

  /* skeleton loader */
  .skeleton{background:linear-gradient(90deg, #eee 25%, #f5f5f5 37%, #eee 63%);background-size:400% 100%;animation:sk 1.4s ease infinite;}
  @keyframes sk{0%{background-position:100% 50%;}100%{background-position:0 50%;}}

  /* ---------- counters ---------- */
  .counter-strip{display:flex;gap:60px;margin-top:8px;}
  .counter-item strong{display:block;font-family:var(--font-display);font-size:26px;font-weight:800;}
  .counter-item span{font-size:12.5px;color:var(--muted);}

  /* ---------- mobile nav ---------- */
  .mobile-menu{
    position:fixed;top:0;right:-100%;width:82%;max-width:340px;height:100vh;background:#fff;z-index:1100;
    box-shadow:-10px 0 40px rgba(0,0,0,.15);transition:right .35s cubic-bezier(.4,0,.2,1);padding:28px;
    display:flex;flex-direction:column;gap:6px;
  }
  .mobile-menu.open{right:0;}
  .mobile-menu a{padding:14px 6px;font-weight:700;font-size:16px;border-bottom:1px solid rgba(17,24,39,.06);}
  .menu-backdrop{position:fixed;inset:0;background:rgba(17,24,39,.4);z-index:1050;opacity:0;pointer-events:none;transition:.3s;}
  .menu-backdrop.open{opacity:1;pointer-events:all;}

  /* ---------- responsive ---------- */
  @media (max-width:1080px){
    .events-grid{grid-template-columns:repeat(2,1fr);}
    .cat-grid{gap:8px;}
    .feature-grid{grid-template-columns:repeat(2,1fr);}
    .org-row{grid-template-columns:repeat(3,1fr);}
    .city-grid{grid-template-columns:repeat(3,1fr);}
    .testi-card{flex:0 0 calc(50% - 12px);}
  }
  @media (max-width:860px){
    .hero-slider{--slide-width:86vw;padding:12px 0 30px;}
    .hero-slider-track{gap:14px;}
    .hero-slide{aspect-ratio:16/8;transform:scale(.96);border-radius:12px;}
    .hero-slide.is-active{transform:scale(1);}
    .hero-slider-arrow{width:36px;height:36px;}
    .hero-slider-arrow.prev{left:10px;}
    .hero-slider-arrow.next{right:10px;}
    .hero-slide-content{left:12px;right:12px;bottom:12px;padding:12px 14px;}
    .hero-slide-content h2{font-size:19px;}
    .hero-slide-content p{font-size:12px;}

    .header-right .btn, .header-right .icon-btn{display:none;}
    .header-right{gap:8px;}
    .location-menu{left:auto;right:0;min-width:190px;}
    .country-trigger{padding:9px 10px;}
    .country-trigger #country-label{display:none;}
    .country-menu{left:auto;right:0;}
    .mobile-toggle{display:flex;}
    .hero{
      padding:150px 0 70px;
      background-image:
        linear-gradient(180deg, rgba(11,17,48,.92) 0%, rgba(11,17,48,.82) 28%, rgba(11,17,48,.3) 46%, rgba(11,17,48,.05) 60%, rgba(11,17,48,.12) 100%),
        url('assets/images/hero-mobile.jpg');
      background-position:top center;
    }
    .hero-copy{max-width:none;}
    .hero .quick-cats-grid{display:none;}
    .mobile-cats-section{
      display:grid;grid-template-columns:repeat(4,1fr);gap:12px;
      background:var(--bg);padding:24px 20px 8px;
    }
    .mobile-cats-section .qcat-tile{background:#fff;padding:14px 6px;border-radius:14px;}
    .mobile-cats-section .qcat-icon{width:30px;height:30px;font-size:17px;}
    .mobile-cats-section span{font-size:11.5px;}
    .steps-row{grid-template-columns:1fr;gap:36px;}
    .step-line{display:none;}
    .cat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;overflow-x:visible;}
    .cat-grid .cat-card{flex:none;}
    .events-grid{grid-template-columns:1fr;}
    .feature-grid{grid-template-columns:1fr;}
    .org-row{grid-template-columns:repeat(2,1fr);}
    .city-grid{grid-template-columns:repeat(2,1fr);}
    .testi-card{flex:0 0 100%;}
    .masonry{columns:2 160px;}
    .footer-grid{grid-template-columns:1fr;gap:0;padding-bottom:6px;border-bottom:none;}
    .footer-brand{margin-bottom:20px;}
    .foot-col{grid-column:1;border-bottom:1px solid rgba(255,255,255,.1);padding:14px 0;}
    .foot-col h5{margin-bottom:0;cursor:pointer;font-size:13.5px;}
    .foot-chev{display:block;}
    .foot-col.open .foot-chev{transform:rotate(180deg);}
    .foot-links{max-height:0;overflow:hidden;transition:max-height .3s ease;}
    .foot-col.open .foot-links{max-height:300px;padding-top:14px;}
    .foot-col a{margin-bottom:10px;}
    .foot-bottom{padding-top:12px;flex-direction:column;align-items:flex-start;}
    .wrap{padding:0 20px;}
    .section-head{flex-direction:column;align-items:flex-start;}
  }

/* =====================================================================
   INNER PAGES — Event Details, City Archive, Organizer, generic Page
   ===================================================================== */

/* breadcrumb */
.breadcrumb{padding:110px 0 0;}
.breadcrumb ol{display:flex;flex-wrap:wrap;gap:6px;list-style:none;font-size:13px;color:var(--muted);max-width:1280px;margin:0 auto;padding:0 32px;}
.breadcrumb li:not(:last-child)::after{content:'/';margin-left:8px;color:#D1D5DB;}
.breadcrumb a{color:var(--muted);font-weight:600;transition:.2s;}
.breadcrumb a:hover{color:var(--primary);}
.breadcrumb span{color:var(--ink);font-weight:700;}

/* event main image + thumbnail strip */
.event-media-block{margin-bottom:36px;}
.event-main-image{position:relative;height:380px;border-radius:24px;overflow:hidden;box-shadow:var(--shadow-md);}
.event-main-image img, .event-main-image .ph{width:100%;height:100%;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:70px;}
.event-thumb-strip{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:10px;}
.event-thumb{
  height:64px;border-radius:12px;background-size:cover;background-position:center;border:2px solid transparent;
  cursor:pointer;transition:.2s;position:relative;
}
.event-thumb:hover{border-color:var(--primary);}
.event-thumb.more-thumb{display:flex;align-items:center;justify-content:center;}
.event-thumb.more-thumb::after{content:'';position:absolute;inset:0;background:rgba(11,17,48,.55);border-radius:10px;}
.event-thumb.more-thumb span{position:relative;z-index:1;color:#fff;font-size:12.5px;font-weight:700;}

/* layout: content + sticky sidebar */
.event-layout{display:grid;grid-template-columns:1fr 340px;gap:40px;padding:48px 32px;max-width:1280px;margin:0 auto;align-items:start;}
.event-section{margin-bottom:44px;}
.event-section h2{font-size:22px;font-weight:800;margin-bottom:16px;}
.event-section p{color:var(--muted);line-height:1.8;font-size:15px;}

.read-more-content{max-height:130px;overflow:hidden;position:relative;transition:max-height .35s ease;}
.read-more-content.expanded{max-height:2000px;}
.read-more-btn{
  display:inline-flex;align-items:center;gap:6px;margin-top:10px;font-size:13.5px;font-weight:700;color:var(--primary);
}
.read-more-btn svg{width:14px;height:14px;transition:transform .2s;}
.read-more-btn.open svg{transform:rotate(180deg);}

.price-table{width:100%;border-collapse:separate;border-spacing:0 10px;}
.price-table th{text-align:left;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:0 16px 6px;}
.price-table td{background:#fff;padding:14px 16px;font-size:14.5px;box-shadow:var(--shadow-sm);}
.price-table tr td:first-child{border-radius:14px 0 0 14px;font-weight:700;}
.price-table tr td:last-child{border-radius:0 14px 14px 0;text-align:right;}
.price-table .provider-price{font-family:var(--font-display);font-weight:800;font-size:16px;color:var(--ink);}
.price-table .view-price-btn{padding:9px 18px;border-radius:100px;font-weight:700;font-size:13px;background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;transition:.2s;}
.price-table .view-price-btn:hover{transform:translateY(-2px);}

.share-buttons{display:flex;gap:10px;}
.share-buttons a{width:38px;height:38px;border-radius:50%;background:var(--gray-light);display:flex;align-items:center;justify-content:center;transition:.2s;}
.share-buttons a:hover{background:var(--primary);color:#fff;}
.share-buttons svg{width:16px;height:16px;}

/* sticky sidebar */
.sidebar-sticky{position:sticky;top:100px;display:flex;flex-direction:column;gap:20px;}
.sidebar-card{background:#fff;border-radius:20px;padding:24px;box-shadow:var(--shadow-sm);}
.sidebar-card h4{font-size:15px;font-weight:800;margin-bottom:14px;}
.sidebar-card .btn{width:100%;justify-content:center;margin-top:10px;}

.sidebar-top-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px;}
.event-cat-pill-inline{display:inline-block;background:rgba(91,75,255,.1);color:var(--primary);font-size:12px;font-weight:700;padding:5px 12px;border-radius:100px;margin-bottom:12px;}
.event-rating-inline{display:flex;align-items:center;gap:4px;font-size:13px;font-weight:700;color:var(--ink);}
.event-rating-inline svg{width:14px;height:14px;fill:#FBBF24;}
.sidebar-card h1{font-size:22px;font-weight:800;line-height:1.3;margin-bottom:16px;}
.sidebar-meta-list{display:flex;flex-direction:column;gap:10px;margin-bottom:14px;}
.sidebar-meta-list div{display:flex;align-items:flex-start;gap:8px;font-size:13.5px;color:var(--ink);font-weight:600;line-height:1.4;}
.sidebar-meta-list svg{width:15px;height:15px;color:var(--primary);flex-shrink:0;margin-top:1px;}
.sidebar-organizer-line{font-size:13.5px;color:var(--muted);margin-bottom:16px;}
.sidebar-organizer-line a{color:var(--primary);font-weight:700;}
.verified-badge{width:14px;height:14px;vertical-align:middle;margin-left:2px;}
.sidebar-divider{border:none;border-top:1px dashed rgba(17,24,39,.1);margin:16px 0;}
.sidebar-price{font-family:var(--font-display);font-size:28px;font-weight:800;color:var(--ink);margin-bottom:4px;}

.organizer-mini{display:flex;align-items:center;gap:12px;}
.organizer-mini .org-avatar{width:52px;height:52px;font-size:16px;overflow:hidden;}
.org-mini-desc{font-size:13px;color:var(--muted);line-height:1.6;margin:12px 0;}
.org-stats-row-mini{display:flex;justify-content:space-between;padding:14px 0;border-top:1px solid rgba(17,24,39,.06);border-bottom:1px solid rgba(17,24,39,.06);margin-bottom:14px;}
.org-stats-row-mini div{text-align:center;flex:1;}
.org-stats-row-mini strong{display:block;font-family:var(--font-display);font-size:16px;font-weight:800;color:var(--ink);}
.org-stats-row-mini span{font-size:11px;color:var(--muted);}
.org-card-btn-row{display:flex;gap:8px;}
.org-card-btn-row .btn{margin-top:0;}

/* related events reuse .events-grid */

/* city archive */
.city-hero{
  position:relative;padding:170px 0 60px;overflow:hidden;
  background-image:linear-gradient(135deg, rgba(248,250,252,.94), rgba(245,243,255,.88)), url('assets/images/city-hero-bg.jpg');
  background-size:cover;background-position:center;
}
.city-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(90deg, rgba(248,250,252,.18), rgba(124,58,237,.05));pointer-events:none;}
.city-hero .wrap{position:relative;z-index:1;}
.city-hero h1{color:#111827;font-size:clamp(30px,4vw,46px);margin-bottom:10px;}
.city-hero p{color:#475569;font-size:15.5px;}
.city-hero .hero-search{margin-top:26px;max-width:520px;}

.filter-bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:16px;margin-bottom:32px;}
.sort-select{padding:10px 16px;border-radius:12px;border:1px solid rgba(17,24,39,.1);font-size:13.5px;font-weight:600;background:#fff;}

.pagination{display:flex;justify-content:center;gap:8px;margin-top:40px;}
.pagination a, .pagination span{width:40px;height:40px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-weight:700;font-size:14px;background:#fff;box-shadow:var(--shadow-sm);transition:.2s;}
.pagination .current{background:linear-gradient(135deg,var(--primary),var(--secondary));color:#fff;}
.pagination a:hover{color:var(--primary);}

/* organizer page */
.org-banner{position:relative;height:220px;background:linear-gradient(135deg,var(--primary),var(--secondary));margin-top:0;}
.org-banner-inner{max-width:1280px;margin:0 auto;padding:0 32px;position:relative;}
.org-profile{display:flex;align-items:flex-end;gap:24px;transform:translateY(50%);}
.org-profile .org-avatar{width:110px;height:110px;font-size:34px;border:5px solid #fff;box-shadow:var(--shadow-lg);}
.org-profile-info{padding-bottom:12px;}
.org-profile-info h1{font-size:26px;color:#fff;margin-bottom:4px;}
.org-profile-info span{color:rgba(255,255,255,.85);font-size:13.5px;}
.org-body{padding:90px 32px 60px;max-width:1280px;margin:0 auto;}
.org-stats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin:28px 0 44px;}
.org-stat{background:#fff;border-radius:16px;padding:20px;text-align:center;box-shadow:var(--shadow-sm);}
.org-stat strong{display:block;font-family:var(--font-display);font-size:24px;font-weight:800;color:var(--primary);}
.org-stat span{font-size:12.5px;color:var(--muted);}
.org-social-row{display:flex;gap:10px;margin-top:16px;}
.org-social-row a{width:36px;height:36px;border-radius:10px;background:var(--gray-light);display:flex;align-items:center;justify-content:center;transition:.2s;}
.org-social-row a:hover{background:var(--primary);color:#fff;}
.org-tabs{display:flex;gap:10px;margin:36px 0 24px;border-bottom:1px solid rgba(17,24,39,.08);}
.org-tab{padding:12px 6px;font-weight:700;font-size:14.5px;color:var(--muted);border-bottom:2px solid transparent;margin-right:20px;}
.org-tab.active{color:var(--primary);border-color:var(--primary);}

/* no results / empty state */
.empty-state{text-align:center;padding:80px 20px;}
.empty-state .icon{font-size:52px;margin-bottom:16px;}
.empty-state h3{font-size:20px;font-weight:800;margin-bottom:8px;}
.empty-state p{color:var(--muted);}

/* generic page content */
.page-content{padding:150px 32px 80px;max-width:820px;margin:0 auto;}
.page-content h1{font-size:clamp(28px,4vw,44px);margin-bottom:24px;}
.page-content .entry-content{font-size:16px;line-height:1.8;color:var(--ink);}
.page-content .entry-content h2{font-size:22px;margin:32px 0 14px;font-weight:800;}
.page-content .entry-content p{margin-bottom:16px;color:var(--muted);}
.page-content .entry-content ul{margin:0 0 16px 20px;color:var(--muted);}

@media (max-width:1080px){
  .event-layout{grid-template-columns:1fr;}
  .sidebar-sticky{position:static;}
  .org-stats-grid{grid-template-columns:repeat(3,1fr);}
}
@media (max-width:860px){
  .event-main-image{height:220px;border-radius:18px;}
  .event-thumb-strip{grid-template-columns:repeat(5,1fr);gap:6px;}
  .event-thumb{height:44px;border-radius:8px;}
  .event-layout{padding:32px 20px;}
  .org-banner-inner, .org-body, .page-content{padding-left:20px;padding-right:20px;}
  .org-profile{flex-direction:column;align-items:flex-start;gap:12px;}
  .org-stats-grid{grid-template-columns:1fr 1fr;}

  /* Reorder so the price/booking sidebar card appears right after the
     event image, before "About The Event" — main/aside become
     transparent via display:contents so their children can freely
     interleave using flex order, with no change to desktop layout. */
  .event-layout{display:flex;flex-direction:column;gap:0;}
  .event-media-block{margin-bottom:14px;}
  .event-layout > main, .event-layout > aside{display:contents;}
  .event-media-block{order:1;}
  .sidebar-card{order:2;margin-bottom:20px;}
  .event-section{order:3;}
}

/* Book Now dropdown — lists every booking platform entered in the
   Event's "Price Comparison" meta box (Events > [event] > Price Comparison). */
.book-dropdown{position:relative;margin-top:10px;}
.book-dropdown-btn{width:100%;justify-content:center;gap:8px;}
.book-dropdown-btn svg{width:15px;height:15px;transition:transform .2s;}
.book-dropdown-btn[aria-expanded="true"] svg{transform:rotate(180deg);}
.book-dropdown-menu{
  position:absolute;top:calc(100% + 8px);left:0;right:0;background:#fff;border-radius:16px;
  box-shadow:var(--shadow-lg);border:1px solid rgba(17,24,39,.06);padding:10px;
  opacity:0;pointer-events:none;transform:translateY(-8px);transition:.2s;z-index:50;
  max-height:280px;overflow-y:auto;
}
.book-dropdown-menu.open{opacity:1;pointer-events:all;transform:translateY(0);}
.book-dropdown-label{display:block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);padding:6px 10px;}
.book-dropdown-item{
  display:flex;justify-content:space-between;align-items:center;gap:10px;padding:12px 10px;border-radius:10px;
  font-size:14px;font-weight:600;color:var(--ink);transition:.15s;
}
.book-dropdown-item:hover{background:rgba(91,75,255,.08);color:var(--primary);}
.book-dropdown-item .provider-price{font-weight:800;color:var(--ink);}
.book-dropdown-item:hover .provider-price{color:var(--primary);}


/* =====================================================================
   HOMEPAGE POLISH — slider/header separation + search/category alignment
   ===================================================================== */
/* Keep the fixed navigation visually separate from the homepage slider.
   The slider now begins below the navigation instead of sitting underneath it. */
/* Keep the fixed navigation visually separate from the homepage slider
   before scrolling. Once scrolled, this intentionally does NOT set its
   own background/blur — it falls through to the shared header.scrolled
   rule so the homepage matches city/event-details pages exactly. */
body.home #site-header:not(.scrolled){
  background:rgba(248,250,252,.97);
  color:var(--ink);
  box-shadow:0 1px 0 rgba(17,24,39,.06), 0 8px 26px rgba(17,24,39,.06);
  backdrop-filter:blur(16px) saturate(150%);
  -webkit-backdrop-filter:blur(16px) saturate(150%);
}
body.home #site-header:not(.scrolled) .logo{color:var(--ink);}
body.home #site-header:not(.scrolled) .btn-ghost{color:var(--ink);}
body.home #site-header:not(.scrolled) .btn-ghost:hover{color:var(--primary);}
body.home #site-header:not(.scrolled) .location-trigger{
  background:#fff;
  border-color:rgba(17,24,39,.09);
  color:var(--ink);
  backdrop-filter:none;
}
body.home #site-header:not(.scrolled) .location-trigger svg{color:var(--primary);}
body.home #site-header:not(.scrolled) .location-trigger .chev{color:var(--muted);}
body.home #site-header:not(.scrolled) .location-trigger:hover{border-color:var(--primary);}
body.home #site-header:not(.scrolled) .mobile-toggle{background:rgba(17,24,39,.04);color:var(--ink);}

/* Fixed header occupies visual space on the homepage. */
body.home .hero-slider{margin-top:84px;}

/* Give the banner a clean, intentional stage rather than a cramped strip. */
body.home .hero-slider{
  padding-top:18px;
  padding-bottom:38px;
  background:linear-gradient(180deg,#eef1f4 0%,#f4f6f8 100%);
}
body.home .hero-slide{
  box-shadow:0 10px 28px rgba(17,24,39,.12);
}
body.home .hero-slide.is-active{
  box-shadow:0 20px 48px rgba(17,24,39,.18);
}

/* Search/category area: one centered column and a properly aligned category row. */
.hero-search-section{
  padding:52px 0 56px;
  background:#fff;
}
.hero-search-section > .wrap{
  display:flex;
  flex-direction:column;
  align-items:center;
}
.hero-search-section .hero-search{
  width:min(760px,100%);
  max-width:none;
  margin:0 auto;
}
.hero-search-section .quick-cats-grid{
  width:100%;
  max-width:1180px;
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:12px;
  margin:22px auto 0;
}
.hero-search-section .qcat-tile{
  min-height:76px;
  padding:14px 8px;
  justify-content:center;
  border:1px solid rgba(17,24,39,.05);
  box-shadow:0 6px 18px rgba(17,24,39,.06);
}
.hero-search-section .qcat-tile:hover{
  border-color:rgba(91,75,255,.16);
  box-shadow:0 12px 26px rgba(91,75,255,.11);
}

/* Do not render the old duplicate mobile category strip; the responsive
   category grid above remains the single source of truth. */
.mobile-cats-section{display:none !important;}

/* Keep subsequent sections visually connected instead of leaving oversized gaps. */
body.home #trending{padding-top:48px;}
body.home #categories{padding-top:48px;padding-bottom:24px;}
body.home #upcoming{padding-top:0;padding-bottom:48px;}

@media (max-width:1080px){
  .hero-search-section .quick-cats-grid{grid-template-columns:repeat(4,minmax(0,1fr));}
}

@media (max-width:860px){
  body.home .hero-slider{
    margin-top:70px;
    padding:12px 0 32px;
  }
  .hero-search-section{
    padding:30px 0 34px;
  }
  .hero-search-section .hero-search{
    width:100%;
  }
  .hero-search-section .quick-cats-grid{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:10px;
    margin-top:16px;
  }
  .hero-search-section .qcat-tile{
    min-height:68px;
    padding:10px 4px;
  }
  body.home #trending,
  body.home #categories{
    padding-top:44px;
    padding-bottom:32px;
  }
  body.home #upcoming{
    padding-top:20px;
    padding-bottom:56px;
  }
}

@media (max-width:520px){
  body.home .hero-slider{margin-top:68px;}
  .hero-search-section .quick-cats-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .hero-search-section .qcat-tile{
    min-height:64px;
    flex-direction:row;
    gap:8px;
  }
}


/* =====================================================================
   HOMEPAGE SLIDER + POPULAR CATEGORY CARDS — 1.0.2
   ===================================================================== */
body.home .hero-slider{
  margin-top:108px;
  padding:18px 0 36px;
  min-height:clamp(250px, 31vw, 410px);
}
body.home .hero-slider-empty{
  min-height:clamp(230px, 28vw, 380px);
}
body.home .hero-slider-track{
  align-items:center;
}
body.home .hero-slide{
  aspect-ratio:16/6.4;
}
body.home .hero-slider-empty .hero-slider-track{display:none;}

.hero-search-section{
  padding:38px 0 54px;
  background:#fff;
}
.hero-search-section > .wrap{max-width:1280px;}
.hero-search-section .hero-search{margin:0 auto;}

.home-popular-categories{width:100%;margin-top:42px;}
.home-popular-categories-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin-bottom:22px;
}
.home-popular-categories-head h2{font-size:30px;margin-top:5px;}
.home-popular-categories-head p{color:var(--muted);margin-top:7px;}
.home-category-cards{
  display:grid;
  grid-template-columns:repeat(8,minmax(0,1fr));
  gap:14px;
}
.home-category-card{
  position:relative;
  min-width:0;
  aspect-ratio:4/5;
  overflow:hidden;
  border-radius:17px;
  background:#dfe3e8;
  box-shadow:0 8px 22px rgba(17,24,39,.09);
  isolation:isolate;
  transition:transform .25s ease,box-shadow .25s ease;
}
.home-category-card:hover{transform:translateY(-4px);box-shadow:0 16px 30px rgba(17,24,39,.16);}
.home-category-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;}
.home-category-overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 35%,rgba(0,0,0,.82) 100%);z-index:1;}
.home-category-copy{position:absolute;left:12px;right:12px;bottom:11px;color:#fff;z-index:2;text-shadow:0 2px 8px rgba(0,0,0,.35);}
.home-category-copy strong{display:block;font-family:var(--font-display);font-size:14px;line-height:1.1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.home-category-copy small{display:block;font-size:11px;font-weight:600;margin-top:3px;color:rgba(255,255,255,.9);}

/* The old standalone category section is intentionally removed; keep any
   accidental anchors from affecting layout. */
#categories{display:none !important;}

@media (max-width:1080px){
  body.home .hero-slider{margin-top:100px;}
  .home-category-cards{grid-template-columns:repeat(4,minmax(0,1fr));}
}
@media (max-width:860px){
  body.home .hero-slider{
    margin-top:100px;
    padding:14px 0 34px;
    min-height:0;
  }
  body.home .hero-slider-empty{min-height:240px;}
  .hero-search-section{padding:30px 0 42px;}
  .home-popular-categories{margin-top:32px;}
  .home-popular-categories-head{align-items:flex-start;}
  .home-popular-categories-head h2{font-size:26px;}
  .home-category-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}
  .home-category-card{border-radius:15px;}
}
@media (max-width:520px){
  /* Header is fixed on mobile; reserve a real visual gap so the slider never
     appears attached to the bottom edge of the header. */
  body.home .hero-slider{margin-top:104px;padding-top:16px;padding-bottom:28px;}
  body.home .hero-slider-empty{min-height:220px;}
  .hero-search-section{padding:26px 0 36px;}
  .home-popular-categories{margin-top:30px;}
  .home-popular-categories-head{display:block;margin-bottom:18px;}
  .home-popular-categories-head .view-all-link{display:none;}
  .home-popular-categories-head h2{font-size:25px;}
  .home-popular-categories-head p{font-size:14px;max-width:330px;}
  .home-category-cards{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;}
  .home-category-card{aspect-ratio:4/5;min-height:112px;border-radius:14px;}
  .home-category-copy{left:8px;right:8px;bottom:8px;}
  .home-category-copy strong{font-size:11px;}
  .home-category-copy small{font-size:9px;}
}

/* =====================================================================
   STEP 2 — CLEAN HOMEPAGE SLIDER STAGE + IDENTICAL LOCATION CONTROL
   ===================================================================== */
/* Use one neutral surface across the header gap and slider stage. This
   removes the visible light double-tone/gradient band above the banners. */
/* Use one neutral surface across the header gap and slider stage before
   scrolling. Once scrolled, the homepage header now blurs the same way
   as every other page (city, event details) instead of staying flat. */
body.home #site-header:not(.scrolled){
  background:#fff;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:0 1px 0 rgba(17,24,39,.06);
}
body.home .hero-slider,
body.home .hero-slider-empty{
  background:var(--bg);
}

/* The desktop location control uses the exact same compact icon + arrow
   treatment as mobile. The text remains available inside the opened menu. */
.location-trigger{
  width:56px !important;
  height:40px !important;
  padding:0 !important;
  justify-content:center;
  gap:7px;
}
.location-trigger > span{display:none !important;}

@media (max-width:860px){
  .location-trigger{
    width:56px !important;
    height:40px !important;
    padding:0 !important;
  }
}

/* =====================================================================
   STEP 3 — SMALL HOMEPAGE SECTION SPACING + CITY-ONLY LOCATION MENU
   ===================================================================== */
/* Slightly tighten the vertical space before the homepage content sections.
   This is intentionally a small reduction, not a major layout change. */
body.home > section:not(.hero-slider):not(.hero-search-section){
  padding-top:84px;
}

@media (max-width:860px){
  body.home > section:not(.hero-slider):not(.hero-search-section){
    padding-top:52px;
  }
}

@media (max-width:520px){
  body.home > section:not(.hero-slider):not(.hero-search-section){
    padding-top:50px;
  }
}


/* =====================================================================
   STEP 4 — CITY FILTER SPACING + HOMEPAGE EVENT SCROLLING
   ===================================================================== */

/* City page: only slightly reduce the gap between the city hero and filters. */
.city-hero + section{
  padding-top:76px;
}

/* Trending: horizontal event rail with touch/mouse-friendly native scrolling. */
body.home #trending .trending-grid{
  display:flex;
  grid-template-columns:none;
  flex-wrap:nowrap;
  gap:22px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px 4px 14px;
  scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  scrollbar-width:thin;
}
body.home #trending .trending-grid::-webkit-scrollbar{height:6px;}
body.home #trending .trending-grid::-webkit-scrollbar-track{background:transparent;}
body.home #trending .trending-grid::-webkit-scrollbar-thumb{background:rgba(91,75,255,.22);border-radius:999px;}
body.home #trending .ticket-card{
  flex:0 0 214px;
  width:214px;
  scroll-snap-align:start;
}

/* Upcoming: horizontal scroll rail on desktop, matching Trending. Scroll
   works via mouse wheel/trackpad/touch, but no visible scrollbar track —
   and the cursor stays a normal pointer, not a drag/grab hand. */
body.home #upcoming .carousel-track{
  display:flex;
  flex-wrap:nowrap;
  gap:22px;
  overflow-x:auto;
  overflow-y:hidden;
  padding:4px 4px 16px;
  scroll-snap-type:x proximity;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  cursor:default;
  scrollbar-width:none;
  -ms-overflow-style:none;
}
body.home #upcoming .carousel-track::-webkit-scrollbar{display:none;}
body.home #upcoming .up-card{
  flex:0 0 280px;
  width:280px;
  scroll-snap-align:start;
}

@media (max-width:860px){
  .city-hero + section{padding-top:64px;padding-bottom:56px;}

  body.home #trending .trending-grid{
    gap:14px;
    padding-left:2px;
    padding-right:2px;
  }
  body.home #trending .ticket-card{
    flex-basis:230px;
    width:230px;
  }

  /* Upcoming becomes a plain vertical stack on mobile — it scrolls with
     the page itself, not within its own contained scroll panel. */
  body.home #upcoming .carousel-track{
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    overflow:visible;
    max-height:none;
    gap:16px;
    padding:0;
    scroll-snap-type:none;
  }
  body.home #upcoming .up-card{
    flex:none;
    width:auto;
    min-width:0;
  }
}

@media (max-width:520px){
  .city-hero + section{padding-top:56px;padding-bottom:48px;}

  body.home #trending .trending-grid{
    gap:12px;
    padding-bottom:10px;
  }
  body.home #trending .ticket-card{
    flex-basis:245px;
    width:245px;
  }

  body.home #upcoming .carousel-track{
    gap:14px;
  }
}


/* =====================================================================
   STEP 5 — EVENT DETAILS + HEADER SPACING + HOMEPAGE SECTION RHYTHM
   ===================================================================== */

/* Event details: keep related-event cards evenly inset on small screens. */
@media (max-width:860px){
  .related-events-grid{
    width:100%;
    margin-left:0;
    margin-right:0;
    grid-template-columns:1fr;
  }
  .related-events-grid .ticket-card{
    width:100%;
    margin-left:0;
    margin-right:0;
  }
}

/* Desktop header: use one consistent gap between location, country, login and
   sign-up controls. Mobile keeps its existing compact spacing. */
@media (min-width:861px){
  #site-header .header-right{
    gap:20px;
  }
}

/* Homepage: bring Upcoming Events a little closer to Trending This Week.
   This is intentionally a modest reduction. */
body.home #upcoming{
  padding-top:32px;
}

@media (max-width:860px){
  body.home #upcoming{
    padding-top:20px;
  }
}

/* Final homepage spacing refinement: tighten the desktop gap between Trending and Upcoming. */
@media (min-width:861px){
  body.home #trending{padding-bottom:16px;}
  body.home #upcoming{padding-top:0;}
}


/* =====================================================================
   STEP 6 — TRENDING CARD ALIGNMENT + DESKTOP HEADER CONTROL SPACING
   ===================================================================== */

/* Trending cards use the same core details as Upcoming Events: title, price
   and Book Now. Keep the footer anchored to the same vertical position even
   when event titles have different lengths. */
body.home #trending .ticket-card{
  display:flex;
  flex-direction:column;
  align-self:stretch;
}
body.home #trending .ticket-body{
  display:flex;
  flex:1 1 auto;
  flex-direction:column;
  min-height:118px;
}
body.home #trending .ticket-body h3{
  min-height:38px;
  margin-bottom:0;
}
body.home #trending .ticket-foot{
  margin-top:auto;
  padding-top:12px;
  border-top:0;
  align-items:center;
}
body.home #trending .ticket-foot .price-tag{
  display:block;
  line-height:1.15;
}
body.home #trending .book-btn{
  flex:0 0 auto;
  white-space:nowrap;
}

/* Desktop: make the visual distance between each header control consistent.
   Login is a text control, so remove its horizontal button padding; otherwise
   its invisible padding makes the gaps look larger than the others. */
@media (min-width:861px){
  #site-header .header-right{
    column-gap:20px;
  }
  #site-header .header-right > .btn-ghost{
    padding-left:0;
    padding-right:0;
  }
}

@media (max-width:860px){
  body.home #trending .ticket-body{
    min-height:116px;
  }
  body.home #trending .ticket-body h3{
    min-height:42px;
  }
  body.home #trending .ticket-foot{
    padding-top:10px;
  }
}


/* =====================================================================
   STEP 7 — HOMEPAGE CARD TITLES + SECTION SPACING REFINEMENT
   ===================================================================== */

/* Keep event names on a single line in both homepage event rails. Long
   titles are truncated so card heights and footer alignment stay consistent. */
body.home #trending .ticket-body h3,
body.home #upcoming .up-body h4{
  display:block;
  width:100%;
  min-height:0 !important;
  height:auto;
  margin-bottom:6px;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  line-height:1.35;
}

/* Reduce the space above the lower homepage sections. Desktop gets the
   larger reduction; mobile keeps more breathing room. */
@media (min-width:861px){
  body.home #why-evently,
  body.home #how-it-works,
  body.home #organizers,
  body.home #cities,
  body.home #testimonials{
    padding-top:52px;
  }
  body.home #testimonials{
    padding-bottom:52px;
  }
}

@media (max-width:860px){
  body.home #why-evently,
  body.home #how-it-works,
  body.home #organizers,
  body.home #cities,
  body.home #testimonials{
    padding-top:44px;
  }
  body.home #testimonials{
    padding-bottom:44px;
  }
}

@media (max-width:520px){
  body.home #why-evently,
  body.home #how-it-works,
  body.home #organizers,
  body.home #cities,
  body.home #testimonials{
    padding-top:40px;
  }
  body.home #testimonials{
    padding-bottom:40px;
  }
}

/* v1.0.10 — light city hero treatment */

/* =====================================================================
   CITY PAGE — EDITABLE CITY BANNER
   ===================================================================== */
.city-hero{
  min-height:360px;
  display:flex;
  align-items:center;
  padding:120px 0 58px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.city-hero::before{display:none;}
.city-hero .wrap{width:100%;}
.city-hero h1{color:#fff;text-shadow:0 2px 18px rgba(0,0,0,.22);}
.city-hero p{color:rgba(255,255,255,.9);max-width:680px;text-shadow:0 1px 10px rgba(0,0,0,.18);}
.city-hero .hero-search{background:rgba(255,255,255,.96);box-shadow:0 14px 40px rgba(0,0,0,.18);}

@media (max-width:860px){
  .city-hero{min-height:320px;padding:100px 0 42px;background-position:center;}
}
@media (max-width:520px){
  .city-hero{min-height:300px;padding:92px 0 34px;}
  .city-hero h1{font-size:clamp(28px,8vw,36px);}
  .city-hero p{font-size:14px;}
  .city-hero .hero-search{margin-top:20px;}
}

/* v1.0.12 — city hero/header contrast polish
   Keep the city image, but make header controls readable over darker city banners. */
body.tax-fenix_city #site-header:not(.scrolled){
  background:linear-gradient(180deg,rgba(8,12,35,.48) 0%,rgba(8,12,35,.18) 70%,rgba(8,12,35,0) 100%);
  color:#fff;
}
body.tax-fenix_city #site-header:not(.scrolled) .logo{color:#fff;}
body.tax-fenix_city #site-header:not(.scrolled) .custom-logo{filter:brightness(0) invert(1);}
body.tax-fenix_city #site-header:not(.scrolled) .btn-ghost{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.28);}
body.tax-fenix_city #site-header:not(.scrolled) .btn-ghost:hover{color:#fff;opacity:.82;}
body.tax-fenix_city #site-header:not(.scrolled) .location-trigger,
body.tax-fenix_city #site-header:not(.scrolled) .country-trigger{
  background:rgba(255,255,255,.14);
  border-color:rgba(255,255,255,.32);
  color:#fff;
  box-shadow:0 4px 18px rgba(0,0,0,.12);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
body.tax-fenix_city #site-header:not(.scrolled) .location-trigger svg{color:#fff;}
body.tax-fenix_city #site-header:not(.scrolled) .location-trigger .chev,
body.tax-fenix_city #site-header:not(.scrolled) .country-trigger .chev{color:rgba(255,255,255,.9);}
body.tax-fenix_city #site-header:not(.scrolled) .mobile-toggle{
  background:rgba(255,255,255,.14);
  color:#fff;
  border:1px solid rgba(255,255,255,.28);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
/* A gentle top-to-bottom image overlay improves title/header contrast without
   changing the uploaded city artwork. */
.city-hero::after{
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(180deg,rgba(8,12,35,.28) 0%,rgba(8,12,35,.08) 36%,rgba(8,12,35,0) 68%);
}
.city-hero .wrap{position:relative;z-index:1;}
@media (max-width:860px){
  body.tax-fenix_city #site-header:not(.scrolled){
    background:linear-gradient(180deg,rgba(8,12,35,.52) 0%,rgba(8,12,35,.2) 75%,rgba(8,12,35,0) 100%);
  }
}

/* v1.0.13 — force city-hero header contrast
   City archives use a dark image overlay, so header content must remain white
   regardless of inherited theme/link styles. */
body.tax-fenix_city #site-header:not(.scrolled) .logo,
body.tax-fenix_city #site-header:not(.scrolled) .logo a,
body.tax-fenix_city #site-header:not(.scrolled) .logo span,
body.tax-fenix_city #site-header:not(.scrolled) .logo .custom-logo-link,
body.tax-fenix_city #site-header:not(.scrolled) .logo .custom-logo-link span {
  color:#fff !important;
}
body.tax-fenix_city #site-header:not(.scrolled) .logo .custom-logo {
  filter:brightness(0) invert(1) !important;
}
body.tax-fenix_city #site-header:not(.scrolled) .header-right .btn-ghost,
body.tax-fenix_city #site-header:not(.scrolled) .header-right .btn-ghost:link,
body.tax-fenix_city #site-header:not(.scrolled) .header-right .btn-ghost:visited,
body.tax-fenix_city #site-header:not(.scrolled) .header-right .btn-ghost:hover {
  color:#fff !important;
  text-shadow:0 1px 10px rgba(0,0,0,.35);
}

/* v1.0.15 — city archive header contrast: final override */
body.tax-fenix_city #site-header,
body.tax-fenix_city #site-header.scrolled {
  background:linear-gradient(180deg,rgba(8,12,35,.62) 0%,rgba(8,12,35,.38) 72%,rgba(8,12,35,.18) 100%) !important;
  color:#fff !important;
}
body.tax-fenix_city #site-header .logo,
body.tax-fenix_city #site-header .logo * { color:#fff !important; }
body.tax-fenix_city #site-header .logo .custom-logo,
body.tax-fenix_city #site-header .logo img { filter:brightness(0) invert(1) !important; }
body.tax-fenix_city #site-header .header-right .btn-ghost,
body.tax-fenix_city #site-header .header-right .btn-ghost:link,
body.tax-fenix_city #site-header .header-right .btn-ghost:visited,
body.tax-fenix_city #site-header .header-right .btn-ghost:hover,
body.tax-fenix_city #site-header .header-right .btn-ghost:focus {
  color:#fff !important; opacity:1 !important; text-shadow:0 1px 10px rgba(0,0,0,.45) !important;
}
body.tax-fenix_city #site-header .location-trigger,
body.tax-fenix_city #site-header .country-trigger {
  color:#fff !important; background:rgba(255,255,255,.14) !important; border-color:rgba(255,255,255,.34) !important;
}
body.tax-fenix_city #site-header .location-trigger svg,
body.tax-fenix_city #site-header .country-trigger svg,
body.tax-fenix_city #site-header .location-trigger .chev,
body.tax-fenix_city #site-header .country-trigger .chev { color:#fff !important; }
body.tax-fenix_city #site-header .mobile-toggle {
  color:#fff !important; background:rgba(255,255,255,.14) !important; border-color:rgba(255,255,255,.30) !important;
}

/* v1.0.16 — unified global header
   Keep the exact same light header treatment across homepage, city archives,
   event details, organizer pages, category archives, and other templates. */
#site-header,
#site-header.scrolled,
body.tax-fenix_city #site-header,
body.tax-fenix_city #site-header.scrolled {
  background:#fff !important;
  color:var(--ink) !important;
  box-shadow:0 1px 0 rgba(17,24,39,.06);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
#site-header .logo,
#site-header .logo a,
#site-header .logo span,
#site-header .logo .custom-logo-link,
#site-header .logo .custom-logo-link span,
body.tax-fenix_city #site-header .logo,
body.tax-fenix_city #site-header .logo * {
  color:var(--ink) !important;
  text-shadow:none !important;
}
#site-header .logo .custom-logo,
#site-header .logo img,
body.tax-fenix_city #site-header .logo .custom-logo,
body.tax-fenix_city #site-header .logo img {
  filter:none !important;
}
#site-header .header-right .btn-ghost,
#site-header .header-right .btn-ghost:link,
#site-header .header-right .btn-ghost:visited,
#site-header .header-right .btn-ghost:hover,
#site-header .header-right .btn-ghost:focus,
body.tax-fenix_city #site-header .header-right .btn-ghost,
body.tax-fenix_city #site-header .header-right .btn-ghost:link,
body.tax-fenix_city #site-header .header-right .btn-ghost:visited,
body.tax-fenix_city #site-header .header-right .btn-ghost:hover,
body.tax-fenix_city #site-header .header-right .btn-ghost:focus {
  color:var(--ink) !important;
  opacity:1 !important;
  text-shadow:none !important;
}
#site-header .location-trigger,
#site-header .country-trigger,
body.tax-fenix_city #site-header .location-trigger,
body.tax-fenix_city #site-header .country-trigger {
  color:var(--ink) !important;
  background:var(--gray-light) !important;
  border-color:rgba(17,24,39,.08) !important;
  box-shadow:none !important;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
#site-header .location-trigger svg,
#site-header .country-trigger svg,
#site-header .location-trigger .chev,
#site-header .country-trigger .chev,
body.tax-fenix_city #site-header .location-trigger svg,
body.tax-fenix_city #site-header .country-trigger svg,
body.tax-fenix_city #site-header .location-trigger .chev,
body.tax-fenix_city #site-header .country-trigger .chev {
  color:var(--primary) !important;
}
#site-header .location-trigger .chev,
#site-header .country-trigger .chev {
  color:var(--muted) !important;
}
#site-header .mobile-toggle,
body.tax-fenix_city #site-header .mobile-toggle {
  color:var(--ink) !important;
  background:rgba(17,24,39,.04) !important;
  border-color:transparent !important;
}


/* v1.0.17 — city header logo + taller city banner
   Keep the global light header, and explicitly force the text-based Evently
   wordmark to the same dark ink color used everywhere else. */
body.tax-fenix_city #site-header .logo,
body.tax-fenix_city #site-header .logo a,
body.tax-fenix_city #site-header .logo > span:not(.mark),
body.tax-fenix_city #site-header .logo > .custom-logo-link,
body.tax-fenix_city #site-header .logo .custom-logo-link,
body.tax-fenix_city #site-header .logo .custom-logo-link span {
  color:#111827 !important;
  text-shadow:none !important;
  filter:none !important;
}
body.tax-fenix_city #site-header .logo .mark {
  color:#fff !important;
  filter:none !important;
}
body.tax-fenix_city #site-header .logo img,
body.tax-fenix_city #site-header .logo .custom-logo {
  filter:none !important;
}

/* Give the city artwork more breathing room without changing its crop style. */
.city-hero {
  min-height:420px;
}
@media (max-width:860px){
  .city-hero {
    min-height:370px;
    padding-top:92px;
    padding-bottom:44px;
  }
}
@media (max-width:520px){
  .city-hero {
    min-height:350px;
    padding-top:82px;
    padding-bottom:38px;
  }
}

/* v1.0.18 — city pages use the same light global header as every other page.
   This final rule intentionally overrides older city-specific contrast rules. */
body.tax-fenix_city #site-header,
body.tax-fenix_city #site-header.scrolled {
  background:#fff !important;
  color:var(--ink) !important;
  background-image:none !important;
  box-shadow:0 1px 0 rgba(17,24,39,.06) !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
}
body.tax-fenix_city #site-header .logo,
body.tax-fenix_city #site-header .logo a,
body.tax-fenix_city #site-header .logo > span,
body.tax-fenix_city #site-header .logo .custom-logo-link,
body.tax-fenix_city #site-header .logo .custom-logo-link span,
body.tax-fenix_city #site-header .logo .custom-logo-link a {
  color:#111827 !important;
  text-shadow:none !important;
  filter:none !important;
}
body.tax-fenix_city #site-header .logo .mark {
  color:#fff !important;
}
body.tax-fenix_city #site-header .logo img,
body.tax-fenix_city #site-header .logo .custom-logo {
  filter:none !important;
}
body.tax-fenix_city #site-header .header-right .btn-ghost,
body.tax-fenix_city #site-header .header-right .btn-ghost:link,
body.tax-fenix_city #site-header .header-right .btn-ghost:visited,
body.tax-fenix_city #site-header .header-right .btn-ghost:hover,
body.tax-fenix_city #site-header .header-right .btn-ghost:focus {
  color:#111827 !important;
  opacity:1 !important;
  text-shadow:none !important;
  filter:none !important;
}
body.tax-fenix_city #site-header .location-trigger,
body.tax-fenix_city #site-header .country-trigger {
  color:var(--ink) !important;
  background:var(--gray-light) !important;
  border-color:rgba(17,24,39,.08) !important;
  box-shadow:none !important;
}
body.tax-fenix_city #site-header .location-trigger svg,
body.tax-fenix_city #site-header .country-trigger svg,
body.tax-fenix_city #site-header .location-trigger .chev,
body.tax-fenix_city #site-header .country-trigger .chev {
  color:var(--primary) !important;
}
body.tax-fenix_city #site-header .location-trigger .chev,
body.tax-fenix_city #site-header .country-trigger .chev {
  color:var(--muted) !important;
}
body.tax-fenix_city #site-header .mobile-toggle {
  color:var(--ink) !important;
  background:rgba(17,24,39,.04) !important;
  border-color:transparent !important;
}

/* City page — slightly reduce the space before the category/event filters. */
body.tax-fenix_city .city-hero + section {
  padding-top:44px !important;
}
@media (max-width:860px){
  body.tax-fenix_city .city-hero + section {
    padding-top:48px !important;
  }
}
@media (max-width:520px){
  body.tax-fenix_city .city-hero + section {
    padding-top:40px !important;
  }
}


/* v1.0.19 — harden city header text colors and tighten mobile sort spacing.
   The brand text and login label use dedicated hooks so they cannot inherit
   the city-hero contrast styling. */
body.tax-fenix_city #site-header .brand-text {
  color:#111827 !important;
  -webkit-text-fill-color:#111827 !important;
  opacity:1 !important;
  text-shadow:none !important;
  filter:none !important;
}
body.tax-fenix_city #site-header .login-link,
body.tax-fenix_city #site-header .login-link:link,
body.tax-fenix_city #site-header .login-link:visited,
body.tax-fenix_city #site-header .login-link:hover,
body.tax-fenix_city #site-header .login-link:focus {
  color:#111827 !important;
  -webkit-text-fill-color:#111827 !important;
  opacity:1 !important;
  text-shadow:none !important;
  filter:none !important;
}

@media (max-width:860px){
  body.tax-fenix_city .filter-bar {
    row-gap:10px;
  }
  body.tax-fenix_city .filter-bar .filter-chips {
    margin-bottom:0;
  }
}
@media (max-width:520px){
  body.tax-fenix_city .filter-bar {
    row-gap:8px;
  }
}

/* v1.0.20 — restore the premium blurred header when scrolling.
   Keep the header white/clean at rest, then add a translucent glass effect
   once the user starts scrolling. This applies consistently to every page. */
#site-header.scrolled,
body.tax-fenix_city #site-header.scrolled {
  background:rgba(255,255,255,.78) !important;
  color:var(--ink) !important;
  backdrop-filter:blur(16px) saturate(160%) !important;
  -webkit-backdrop-filter:blur(16px) saturate(160%) !important;
  box-shadow:0 1px 0 rgba(17,24,39,.06), 0 8px 30px rgba(17,24,39,.06) !important;
}

/* v1.0.20 — city filter spacing polish.
   Bring the filter area slightly closer to the banner while preserving a
   small, deliberate gap before the sort control on mobile. */
@media (max-width:860px){
  body.tax-fenix_city .city-hero + section {
    padding-top:34px !important;
  }
}
@media (max-width:520px){
  body.tax-fenix_city .city-hero + section {
    padding-top:30px !important;
  }
  body.tax-fenix_city .filter-bar {
    row-gap:12px;
  }
  body.tax-fenix_city .filter-bar .sort-select {
    margin-top:4px;
  }
}


/* =====================================================================
   v1.0.21 — RELATED EVENTS MOBILE INSET + CITY HERO MOBILE POSITION
   ===================================================================== */

/* Mobile event details: keep Related Events cards perfectly centered so
   the left and right outer spacing is identical at every phone width. */
@media (max-width:860px){
  .event-section:has(.related-events-grid){
    width:100%;
    box-sizing:border-box;
  }
  .related-events-grid{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    padding-left:0 !important;
    padding-right:0 !important;
    box-sizing:border-box;
    grid-template-columns:minmax(0,1fr) !important;
  }
  .related-events-grid .ticket-card{
    width:100% !important;
    max-width:100% !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box;
  }
}

/* City page mobile: move the banner content down only a little, without
   changing the banner height or desktop positioning. */
@media (max-width:860px){
  body.tax-fenix_city .city-hero .wrap{
    transform:translateY(8px);
  }
}
@media (max-width:520px){
  body.tax-fenix_city .city-hero .wrap{
    transform:translateY(8px);
  }
}


/* =====================================================================
   v1.0.22 — UPCOMING DESKTOP MOUSE SCROLL + HOMEPAGE SLIDER SURFACE
   ===================================================================== */

/* Keep the entire homepage slider stage on one consistent neutral surface.
   The viewport/track are explicitly transparent so there is no white inner
   band against the surrounding light background. */
body.home .hero-slider,
body.home .hero-slider-viewport,
body.home .hero-slider-empty,
body.home .hero-slider-track {
  background:var(--bg) !important;
}

/* Desktop upcoming rail: keep a real horizontal overflow area. */
@media (min-width:861px){
  body.home #upcoming .carousel-track{
    cursor:grab;
    scroll-behavior:auto;
    scrollbar-width:thin;
  }
  body.home #upcoming .carousel-track:active{cursor:grabbing;}
}

/* =====================================================================
   v1.0.23 — UNIFIED SLIDER STAGE + RELIABLE DESKTOP UPCOMING SCROLL
   ===================================================================== */

/* Ensure every visible part of the homepage banner stage uses exactly the
   same background as the page, including the full-bleed area behind the
   side slides. */
body.home .hero-slider,
body.home .hero-slider-viewport,
body.home .hero-slider-track{
  background-color:var(--bg) !important;
}

@media (min-width:861px){
  body.home #upcoming .carousel-track{
    overflow-x:scroll;
    overflow-y:hidden;
    overscroll-behavior-x:contain;
    scrollbar-gutter:stable;
  }
  body.home #upcoming .up-card{
    flex:0 0 280px;
    width:280px;
    min-width:280px;
  }
}


/* =====================================================================
   v1.0.24 — SINGLE-TONE HOMEPAGE SLIDER + SMOOTH DESKTOP UPCOMING RAIL
   ===================================================================== */

/* One single surface for the complete homepage banner stage. This removes
   the remaining visible two-tone band between the slider container,
   viewport and track. */
body.home .hero-slider,
body.home .hero-slider-viewport,
body.home .hero-slider-track,
body.home .hero-slider-empty{
  background:#F8FAFC !important;
  background-color:#F8FAFC !important;
}

/* Desktop only: no native scrollbar and no rough native scroll behavior.
   JavaScript supplies smooth horizontal wheel/trackpad movement below. */
@media (min-width:861px){
  body.home #upcoming .carousel-track{
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
    scroll-behavior:auto;
    scroll-snap-type:none;
    cursor:grab;
    padding-bottom:8px;
  }
  body.home #upcoming .carousel-track::-webkit-scrollbar{display:none;width:0;height:0;}
  body.home #upcoming .carousel-track:active{cursor:grabbing;}
  body.home #upcoming .up-card{
    flex:0 0 300px;
    width:300px;
    min-width:300px;
  }
}

/* =====================================================================
   v1.0.25 — DESKTOP UPCOMING: MOUSE DRAG ONLY
   ===================================================================== */
@media (min-width:861px){
  body.home #upcoming .carousel-track{
    cursor:grab;
    user-select:none;
    -webkit-user-select:none;
    touch-action:pan-y;
    scroll-behavior:auto;
    overscroll-behavior-x:contain;
  }
  body.home #upcoming .carousel-track.is-dragging{
    cursor:grabbing;
  }
  body.home #upcoming .carousel-track.is-dragging img,
  body.home #upcoming .carousel-track.is-dragging a{
    pointer-events:none;
  }
}


/* =====================================================================
   v1.0.28 — FULL EVENT CARD + BANNER CLICK TARGETS
   =====================================================================
   The desktop Upcoming rail now behaves like the mobile Trending rail:
   direct, responsive dragging with momentum after release. Mouse-wheel
   scrolling is intentionally untouched so the page itself remains vertical.
*/
@media (min-width:861px){
  body.home #upcoming .carousel-track{
    overflow-x:auto;
    overflow-y:hidden;
    scrollbar-width:none;
    -ms-overflow-style:none;
    scroll-behavior:auto;
    scroll-snap-type:x proximity;
    overscroll-behavior-x:contain;
    cursor:grab;
    user-select:none;
    -webkit-user-select:none;
    touch-action:pan-y;
  }
  body.home #upcoming .carousel-track::-webkit-scrollbar{
    display:none;
    width:0;
    height:0;
  }
  body.home #upcoming .carousel-track.is-dragging{cursor:grabbing;}
  body.home #upcoming .carousel-track.is-dragging img,
  body.home #upcoming .carousel-track.is-dragging a{
    pointer-events:none;
  }
}


/* =====================================================================
   STEP 8 — FULL EVENT CARD + HOMEPAGE BANNER CLICK TARGETS
   ===================================================================== */
.is-event-clickable{cursor:pointer;}
.is-event-clickable:focus-visible{outline:3px solid rgba(91,75,255,.35);outline-offset:3px;}

/* =====================================================================
   STEP 9 — DESKTOP UPCOMING: CARD ITSELF READS AS CLICKABLE
   =====================================================================
   Desktop-only. An older rule forced cursor:default on every part of the
   Upcoming card (with !important), which silently overrode the pointer
   cursor .is-event-clickable was supposed to give it — so the whole-card
   click-through worked in JS but never looked clickable. This restores
   the pointer cursor across the entire card (image, title, city, price,
   whitespace) while leaving the empty rail track itself as grab/grabbing,
   so the two affordances stay visually distinct. Mobile is untouched.
*/
@media (min-width:861px){
  body.home #upcoming .up-card.is-event-clickable,
  body.home #upcoming .up-card.is-event-clickable *{
    cursor:pointer !important;
  }
  body.home #upcoming .carousel-track.is-dragging .up-card,
  body.home #upcoming .carousel-track.is-dragging .up-card *{
    cursor:grabbing !important;
  }
}
.is-slide-clickable{cursor:pointer;}
.is-slide-clickable:focus-visible{outline:3px solid rgba(91,75,255,.35);outline-offset:-3px;}


/* v1.0.29: prevent snap/scroll jumps in the desktop Upcoming rail. */
@media (min-width:861px){
  body.home #upcoming .carousel-track{
    scroll-snap-type:none !important;
    scroll-behavior:auto !important;
  }
}

/* v1.0.30 — city page: logo disappearing on load, reappearing after scroll.
   v1.0.13's rule (line ~1445) targets `#site-header:not(.scrolled) .custom-logo`
   with !important. The extra :not() pseudo-class makes it MORE SPECIFIC than
   the later v1.0.18 "final override" rule that resets the logo to normal
   colors/filter — so despite appearing earlier in the file, it still won on
   specificity and kept inverting the logo to a white silhouette before the
   page was scrolled, which blended into the hero image and read as "gone."
   This matches that selector's specificity so the always-visible, normal-
   color logo (the intended final design) actually wins in the unscrolled
   state too, not just after .scrolled is added. */
body.tax-fenix_city #site-header:not(.scrolled) .logo .custom-logo,
body.tax-fenix_city #site-header:not(.scrolled) .logo img {
  filter:none !important;
}
body.tax-fenix_city #site-header:not(.scrolled) .logo,
body.tax-fenix_city #site-header:not(.scrolled) .logo a,
body.tax-fenix_city #site-header:not(.scrolled) .logo span,
body.tax-fenix_city #site-header:not(.scrolled) .logo .custom-logo-link,
body.tax-fenix_city #site-header:not(.scrolled) .logo .custom-logo-link span {
  color:#111827 !important;
}
