/* TicketsFest bundle: generated by tools/build-css-bundles.py. Do not edit. */

/* ==== source: theme-stability.css ==== */
/* TicketsFest.EU v9.9.31 — Stability Layout Fix
   Purpose: stabilize non-home pages after global design patches without redesigning the site.
   Scope: layout wrappers, readable section titles, hero overflow, shortcode/plugin compatibility. */

:root{
  --tfe-stable-bg:#f8fafc;
  --tfe-stable-text:#0f172a;
  --tfe-stable-muted:#64748b;
  --tfe-stable-border:#e2e8f0;
  --tfe-stable-blue:#2563eb;
  --tfe-stable-container:min(1240px, calc(100vw - 40px));
}

html,body{overflow-x:hidden;}
#page,.site-content,.site-main{background:var(--tfe-stable-bg);}
.site-main{display:block;width:100%;min-height:70vh;}
.site-main > main,
.site-main > .tfe-page-wrapper,
.site-main > .tfe-events-page,
.site-main > .tfe-simple-page{width:100%;max-width:100%;}

/* Keep homepage controlled by home.css/banner plugin. This file must not redesign it. */
body.home .site-main,
body.page-template-page-home-dots .site-main{background:inherit;}

/* Generic container safety. */
body:not(.home):not(.page-template-page-home-dots) .tfe-container,
body:not(.home):not(.page-template-page-home-dots) .tf-container,
body:not(.home):not(.page-template-page-home-dots) .ticketsfest-container{
  width:var(--tfe-stable-container);
  max-width:var(--tfe-stable-container);
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
@media(max-width:640px){
  body:not(.home):not(.page-template-page-home-dots) .tfe-container,
  body:not(.home):not(.page-template-page-home-dots) .tf-container,
  body:not(.home):not(.page-template-page-home-dots) .ticketsfest-container{
    width:calc(100vw - 28px);
    max-width:calc(100vw - 28px);
    padding-left:0;
    padding-right:0;
  }
}

/* Section titles are not hero titles. Prevent white/huge headings inside white cards. */
body:not(.home):not(.page-template-page-home-dots) .tfe-section-title,
body:not(.home):not(.page-template-page-home-dots) .tfe-section-heading,
body:not(.home):not(.page-template-page-home-dots) .tfe-events-section-title{
  color:var(--tfe-stable-text)!important;
  -webkit-text-fill-color:var(--tfe-stable-text)!important;
  background:none!important;
  font-size:clamp(24px,3vw,38px)!important;
  line-height:1.12!important;
  letter-spacing:-.025em!important;
  margin-top:0!important;
  max-width:none!important;
}
body:not(.home):not(.page-template-page-home-dots) .tfe-hero .tfe-section-title,
body:not(.home):not(.page-template-page-home-dots) .tfe-premium-hero .tfe-section-title,
body:not(.home):not(.page-template-page-home-dots) .tfe-page-hero .tfe-section-title{
  color:#fff!important;
  -webkit-text-fill-color:#fff!important;
}

/* Keep the Artists / Concert Tours premium direction, but stop oversized heroes. */
body:not(.home):not(.page-template-page-home-dots) .tfe-hero,
body:not(.home):not(.page-template-page-home-dots) .tfe-page-hero,
body:not(.home):not(.page-template-page-home-dots) .tfe-premium-hero{
  margin-top:0!important;
  margin-bottom:clamp(22px,4vw,40px)!important;
  padding-top:clamp(58px,8vw,92px)!important;
  padding-bottom:clamp(44px,6vw,70px)!important;
  min-height:auto!important;
}
body:not(.home):not(.page-template-page-home-dots) .tfe-hero-title{
  font-size:clamp(34px,6vw,68px)!important;
  line-height:1.02!important;
  letter-spacing:-.035em!important;
}

/* v10.2.24: single tour title must stay editorial-sized, not archive-hero sized. */
body.single-tour .tfe-hero-title{
  font-size:clamp(30px,3vw,44px)!important;
  line-height:1.08!important;
  letter-spacing:-.025em!important;
  overflow-wrap:normal!important;
  word-break:normal!important;
}

body:not(.home):not(.page-template-page-home-dots) .tfe-hero-desc{
  font-size:clamp(15px,1.7vw,18px)!important;
  line-height:1.65!important;
  max-width:720px!important;
}
body.single-event .tfe-hero,
body.single-tour .tfe-hero,
body.single-performer .tfe-hero{overflow:visible!important;}

/* Page wrappers: prevent double backgrounds, excessive side padding and broken nested-main effects. */
body:not(.home):not(.page-template-page-home-dots) .tfe-page-wrapper,
body:not(.home):not(.page-template-page-home-dots) .tfe-events-page,
body:not(.home):not(.page-template-page-home-dots) .tfe-tours-page,
body:not(.home):not(.page-template-page-home-dots) .tfe-artists-page,
body:not(.home):not(.page-template-page-home-dots) .tfe-contact-page{
  background:var(--tfe-stable-bg)!important;
  overflow-x:clip;
}

/* Archive/event pages: keep shortcode areas aligned and readable. */
.tfe-events-archive-section,
.tfe-premium-section--event-archive,
.tfe-events-featured-section,
.tfe-events-seo-block{
  width:var(--tfe-stable-container);
  max-width:var(--tfe-stable-container);
  margin-left:auto;
  margin-right:auto;
  box-sizing:border-box;
}
.tfe-events-archive-shell,
.tfe-events-archive-shell--flush{
  width:100%!important;
  max-width:100%!important;
  padding-left:0!important;
  padding-right:0!important;
}
@media(max-width:640px){
  .tfe-events-archive-section,
  .tfe-premium-section--event-archive,
  .tfe-events-featured-section,
  .tfe-events-seo-block{
    width:calc(100vw - 28px);
    max-width:calc(100vw - 28px);
  }
}

/* Cards/shortcode plugin compatibility. */
.tfe-grid,
.tfe-events-grid,
.tfe-tours-grid,
.tfe-artists-grid,
.tfe-related-events,
.tfe-performer-events,
.tfe-tour-schedule,
.tfe-slider-shell,
.tfe-slider-safe-area{
  max-width:100%;
  overflow:visible;
}
.tfe-card,
.tfe-panel,
.tfe-event-card,
.tfe-tour-card,
.tfe-artist-card,
.tfe-info-card,
.tfe-faq-item,
.tfe-sub-widget{
  box-sizing:border-box;
}

/* Single event/tour content blocks: stable white cards on light background. */
.tfe-single-layout .tfe-section,
.single-event .tfe-single-layout .tfe-section,
.single-tour .tfe-layout .tfe-section{
  box-sizing:border-box;
}
.single-event .tfe-content,
.single-tour .tfe-content{
  color:#334155;
  line-height:1.75;
}
.single-event .tfe-content h1,
.single-event .tfe-content h2,
.single-event .tfe-content h3,
.single-tour .tfe-content h1,
.single-tour .tfe-content h2,
.single-tour .tfe-content h3{
  color:#0f172a;
}

/* Header/footer should not be affected by page-level fixes. */
.tfe-header-outer,
.tfe-header-wrap,
.site-footer{max-width:100%;}
.tfe-mobile-overlay{box-sizing:border-box;}

/* External sliders used by connected plugins. */
.logo-partners-slider,
.lps-wrapper,
.lps-swiper,
.tftb-banners,
.tftb-track,
.tftb-slide,
.tftb-slide-inner{max-width:100%;box-sizing:border-box;}
.logo-partners-slider img,
.lps-wrapper img,
.lps-swiper img{max-width:100%;height:auto;object-fit:contain;}

/* Legal/simple pages. */
.tfe-simple-page__inner,
.tfe-legal-content,
.tfe-about-content{
  max-width:var(--tfe-stable-container);
  margin-left:auto;
  margin-right:auto;
}


/* v9.9.36 — header, mobile filter and social icon stability */
.tfe-social-svg{display:block;width:18px;height:18px;flex:0 0 auto;}
.tfe-social-icon,.footer-social-btn,.tfe-share-btn,.tfv-share a{font-size:0!important;line-height:1!important;}
.tfe-social-icon .tfe-social-svg,.footer-social-btn .tfe-social-svg,.tfe-share-btn .tfe-social-svg,.tfv-share a .tfe-social-svg{width:18px;height:18px;}
.tfe-share-btn--copy{font-size:13px!important;}

/* The header is fixed; reserve visual space above the home banner so it never covers the slider. */
body.home .tfe-hero-banner-section,
body.page-template-page-home-dots .tfe-hero-banner-section{
  padding-top:clamp(92px,7vw,116px)!important;
}
@media (max-width:768px){
  .tfe-header-outer{padding-top:calc(8px + env(safe-area-inset-top))!important;}
  body.home .tfe-hero-banner-section,
  body.page-template-page-home-dots .tfe-hero-banner-section{
    padding-top:calc(76px + env(safe-area-inset-top))!important;
  }
}

/* Artists page mobile category carousel: allow horizontal movement/tap selection. */
@media (max-width:768px){
  .tfe-artists-page .tfe-toolbar,
  .page-template-page-artists .tfe-toolbar{overflow:visible!important;}
  .tfe-artists-page .tfe-filter-pills,
  .page-template-page-artists .tfe-filter-pills,
  #tfeFilterPills{
    display:flex!important;
    flex-wrap:nowrap!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    width:calc(100vw - 32px)!important;
    max-width:calc(100vw - 32px)!important;
    min-width:0!important;
    padding:2px 0 10px!important;
    gap:8px!important;
    -webkit-overflow-scrolling:touch!important;
    touch-action:pan-x!important;
    overscroll-behavior-inline:contain!important;
    scrollbar-width:none!important;
  }
  .tfe-artists-page .tfe-filter-pills::-webkit-scrollbar,
  .page-template-page-artists .tfe-filter-pills::-webkit-scrollbar,
  #tfeFilterPills::-webkit-scrollbar{display:none!important;}
  .tfe-artists-page .tfe-filter-pill,
  .page-template-page-artists .tfe-filter-pill,
  #tfeFilterPills .tfe-filter-pill{flex:0 0 auto!important;white-space:nowrap!important;}
}

/* ==== source: mobile-polish.css ==== */
/*
 * TicketsFest.EU Theme — Mobile Polish Layer
 * v9.9.58
 * Purpose: final responsive corrections for theme pages without changing desktop design.
 */

@media (max-width: 1024px) {
  :root { --tfe-pad: 18px; }

  html, body,
  #page, #content, .site-content,
  .tfe-page-wrapper, .tfe-events-page, .tfv-page {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  .tfe-container,
  .tfe-layout,
  .tfe-events-featured-section,
  .tfe-events-archive-section,
  .tfe-events-seo-block,
  .tfv-container,
  .footer-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
  }

  .tfe-layout,
  .tfe-single-layout,
  .tfe-hero__content,
  .tfv-hero__grid,
  .tfv-form-shell,
  .tfe-c-grid,
  .tfe-core-grid-2,
  .tfe-core-grid-3,
  .tfe-contact-panel {
    grid-template-columns: 1fr !important;
  }

  .tfe-hero,
  .tfe-events-hero,
  .tfv-hero {
    min-height: auto !important;
    padding-top: clamp(92px, 12vw, 132px) !important;
    padding-bottom: clamp(44px, 8vw, 76px) !important;
  }

  .tfe-hero__content,
  .tfe-events-hero .tfe-hero__content,
  .tfv-hero__grid {
    gap: 24px !important;
    align-items: start !important;
  }

  .tfe-hero-title,
  .tfe-events-hero h1,
  .tfv-hero h1 {
    font-size: clamp(34px, 8vw, 58px) !important;
    line-height: .98 !important;
    letter-spacing: -0.055em !important;
    max-width: 100% !important;
  }

  .tfe-hero-desc,
  .tfe-events-hero p,
  .tfv-hero p,
  .tfv-section-lead {
    font-size: 15px !important;
    line-height: 1.62 !important;
    max-width: 100% !important;
  }

  .tfe-hero .tfe-poster {
    width: min(100%, 420px) !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  .tfe-artists-grid,
  .tfe-tours-grid,
  .tfe-events-grid,
  .tfe-grid,
  .tfe-info-grid,
  .tfe-stats-grid,
  .tfv-grid-3,
  .tfv-grid-4 {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }

  .tfe-toolbar,
  .tfe-search-form,
  .tfe-sub-form,
  .tfe-hero-actions,
  .tfe-events-hero-actions,
  .tfe-actions,
  .tfe-secondary-actions,
  .tfv-actions {
    flex-wrap: wrap !important;
  }

  .tfe-filter-pills,
  .tfe-events-popular-links,
  .tfe-events-active-filters,
  .tfe-meta-row,
  .tfe-hero-meta {
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    flex-wrap: nowrap !important;
    padding-bottom: 4px !important;
  }
  .tfe-filter-pills::-webkit-scrollbar,
  .tfe-events-popular-links::-webkit-scrollbar,
  .tfe-events-active-filters::-webkit-scrollbar,
  .tfe-meta-row::-webkit-scrollbar,
  .tfe-hero-meta::-webkit-scrollbar { display: none !important; }

  .tfe-filter-pill,
  .tfe-events-filter-chip,
  .tfe-events-popular-links a,
  .tfe-meta-pill,
  .tfe-meta-item,
  .tfv-btn,
  .tfe-btn {
    white-space: nowrap !important;
  }
}

@media (max-width: 768px) {
  :root { --tfe-pad: 16px; }

  body { font-size: 15px; }

  .tfe-header-wrap {
    top: calc(10px + env(safe-area-inset-top)) !important;
    width: calc(100% - 20px) !important;
    min-height: 58px !important;
    border-radius: 22px !important;
  }

  .tfe-logo-text { font-size: 19px !important; max-width: 58vw !important; }
  .tfe-burger { min-width: 44px !important; min-height: 44px !important; }

  .tfe-mobile-drawer,
  .tfe-mobile-menu,
  .tfe-mobile-nav {
    max-height: calc(100dvh - 84px) !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }

  .tfe-container,
  .tfe-layout,
  .tfe-events-featured-section,
  .tfe-events-archive-section,
  .tfe-events-seo-block,
  .tfv-container,
  .footer-wrapper {
    padding-left: 16px !important;
    padding-right: 16px !important;
  }

  .tfe-hero,
  .tfe-events-hero,
  .tfv-hero {
    padding-top: calc(86px + env(safe-area-inset-top)) !important;
    padding-bottom: 42px !important;
    border-radius: 0 0 28px 28px !important;
  }

  .tfe-hero-badge,
  .tfv-eyebrow,
  .tfe-events-archive-kicker {
    font-size: 11px !important;
    line-height: 1.2 !important;
  }

  .tfe-hero-title,
  .tfe-events-hero h1,
  .tfv-hero h1 {
    font-size: clamp(31px, 10vw, 44px) !important;
    line-height: 1.02 !important;
  }

  .tfe-section,
  .tfe-core-card,
  .tfv-card,
  .tfv-hero-card,
  .tfe-events-seo-block__inner,
  .tfe-card {
    border-radius: 22px !important;
    padding: 20px !important;
  }

  .tfe-section-title,
  .tfe-section-heading,
  .tfe-events-section-head h2,
  .tfv-section-head h2 {
    font-size: clamp(23px, 7vw, 32px) !important;
    line-height: 1.08 !important;
  }

  .tfe-artists-grid,
  .tfe-tours-grid,
  .tfe-events-grid,
  .tfe-grid,
  .tfe-info-grid,
  .tfe-stats-grid,
  .tfv-grid-3,
  .tfv-grid-4,
  .tfe-c-grid {
    grid-template-columns: 1fr !important;
    gap: 14px !important;
  }

  .tfe-card-item,
  .tfe-artist-card,
  .tfe-tour-card,
  .tfe-event-card,
  .tfv-card,
  .tfe-info-card,
  .tfe-stat-box,
  .tfe-card {
    width: 100% !important;
    min-width: 0 !important;
  }

  .tfe-toolbar,
  .tfe-search-form,
  .tfe-sub-form,
  .tfe-hero-actions,
  .tfe-events-hero-actions,
  .tfe-actions,
  .tfe-secondary-actions,
  .tfv-actions,
  .tfv-form-shell {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
    gap: 12px !important;
  }

  .tfe-btn,
  .tfe-btn-book,
  .tfe-btn-view,
  .tfe-btn--buy,
  .tfe-btn--primary,
  .tfe-btn--outline,
  .tfv-btn,
  .tfe-search-btn,
  .tfe-clear-btn,
  .tfe-sub-btn {
    width: 100% !important;
    min-height: 48px !important;
    justify-content: center !important;
    text-align: center !important;
  }

  .tfe-search-input,
  .tfe-sub-input,
  .tfe-input,
  .tfe-bk-input,
  .tfv-form input,
  .tfv-form select,
  .tfv-form textarea,
  .tfv-field input,
  .tfv-field select,
  .tfv-field textarea {
    width: 100% !important;
    min-height: 48px !important;
    font-size: 16px !important;
  }

  .tfe-sub-widget,
  .tfe-core-cta,
  .tfv-share {
    display: block !important;
    text-align: left !important;
  }

  .tfe-sub-widget-text,
  .tfe-sub-form {
    width: 100% !important;
    max-width: 100% !important;
  }

  .tfe-single-layout,
  .tfe-layout {
    gap: 20px !important;
  }

  .tfe-timer-buy-wrap,
  .tfe-timer {
    width: 100% !important;
  }

  .tfe-timer {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 7px !important;
  }

  .tfe-timer-sep { display: none !important; }
  .tfe-timer-box { padding: 9px 6px !important; min-width: 0 !important; }
  .tfe-timer-val { font-size: 18px !important; }
  .tfe-timer-lbl { font-size: 9px !important; }

  .tfe-spotify-wrap iframe,
  .tfe-map-container iframe,
  iframe[src*="spotify"],
  iframe[src*="google"] {
    width: 100% !important;
    max-width: 100% !important;
  }

  .tfe-video-main,
  .tfe-map-container,
  .tfe-spotify-wrap {
    border-radius: 20px !important;
    overflow: hidden !important;
  }

  .tfe-modal,
  .tfe-bk-modal,
  .tfv-modal {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 32px) !important;
    overflow-y: auto !important;
    border-radius: 24px !important;
  }

  .footer-grid-v994,
  .footer-grid,
  .tfe-footer-grid {
    grid-template-columns: 1fr !important;
    gap: 22px !important;
  }
}

@media (max-width: 480px) {
  .tfe-container,
  .tfe-layout,
  .tfe-events-featured-section,
  .tfe-events-archive-section,
  .tfe-events-seo-block,
  .tfv-container,
  .footer-wrapper {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  .tfe-hero-title,
  .tfe-events-hero h1,
  .tfv-hero h1 {
    font-size: clamp(29px, 11vw, 39px) !important;
  }

  .tfe-section,
  .tfe-core-card,
  .tfv-card,
  .tfv-hero-card,
  .tfe-events-seo-block__inner,
  .tfe-card {
    padding: 18px !important;
    border-radius: 20px !important;
  }

  .tfe-hero-meta,
  .tfe-meta-row,
  .tfe-filter-pills,
  .tfe-events-active-filters,
  .tfe-events-popular-links {
    margin-left: -2px !important;
    margin-right: -2px !important;
  }

  .tfe-price-tag,
  .tfe-hero-badge,
  .tfe-chip,
  .tfe-city-pill,
  .tfe-meta-pill,
  .tfe-filter-pill {
    max-width: 100% !important;
  }

  .tfe-card-title,
  .tfe-event-title,
  .tfe-cover-name,
  .tfe-tour-card__title {
    overflow-wrap: anywhere !important;
  }
}

/* v9.9.44 — scoped mobile poster paint fix for event shortcode only */
@media (max-width: 768px){
  .tfe-events-page .tfe-instance,
  .tfe-events-page .tfe-instance .tfe-grid,
  .tfe-events-page .tfe-instance .tfe-card-item,
  .tfe-events-page .tfe-instance .tfe-card-inner,
  .tfe-events-page .tfe-slider-shell{
    content-visibility: visible !important;
    contain: none !important;
    contain-intrinsic-size: auto !important;
  }

  .tfe-events-page .tfe-instance .tfe-card-inner img.tfe-poster{
    display:block !important;
    width:100% !important;
    height:100% !important;
    min-height:100% !important;
    aspect-ratio:4 / 5 !important;
    object-fit:cover !important;
    object-position:center top !important;
    opacity:1 !important;
    visibility:visible !important;
    margin:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    transform:none !important;
  }
}


/* v9.9.46 — single event mobile poster frame fix
   The event poster is a vertical poster, not a landscape banner. */
@media (max-width: 768px) {
  body.single-event .tfe-page-wrapper > .tfe-hero {
    padding-top: calc(118px + env(safe-area-inset-top)) !important;
    padding-bottom: 46px !important;
    margin-bottom: 0 !important;
    border-radius: 0 0 28px 28px !important;
    overflow: hidden !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-container {
    padding-left: 20px !important;
    padding-right: 20px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero__content {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 24px !important;
    align-items: start !important;
    justify-items: stretch !important;
    text-align: left !important;
    padding-bottom: 0 !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-poster {
    width: min(78vw, 360px) !important;
    max-width: 360px !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    position: relative !important;
    justify-self: center !important;
    margin: 0 auto 22px !important;
    transform: none !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    box-shadow: 0 22px 52px rgba(0,0,0,.48) !important;
    background: rgba(15,23,42,.55) !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-poster > img {
    position: absolute !important;
    inset: 0 !important;
    display: block !important;
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    transform: none !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-info {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    text-align: left !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-badges {
    justify-content: flex-start !important;
    margin-bottom: 18px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-title {
    text-align: left !important;
    margin-bottom: 18px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-meta {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    overflow: visible !important;
    flex-wrap: wrap !important;
    padding-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-bottom: 24px !important;
    justify-content: stretch !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-meta-dot {
    display: none !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-meta-item {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    white-space: normal !important;
    overflow: visible !important;
    text-overflow: clip !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    font-size: 15px !important;
    line-height: 1.38 !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-meta-item svg {
    width: 18px !important;
    height: 18px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-timer-buy-wrap,
  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-secondary-actions {
    align-items: stretch !important;
    justify-content: flex-start !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-timer {
    padding: 12px !important;
    border-radius: 18px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-price-tag {
    margin-left: 10px !important;
    padding-left: 12px !important;
  }
}

@media (max-width: 420px) {
  body.single-event .tfe-page-wrapper > .tfe-hero {
    padding-top: calc(112px + env(safe-area-inset-top)) !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-container {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-poster {
    width: min(82vw, 330px) !important;
    max-width: 330px !important;
    aspect-ratio: 4 / 5 !important;
    border-radius: 20px !important;
    margin-bottom: 20px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-meta {
    gap: 9px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-meta-item {
    font-size: 14px !important;
  }
}


/* v9.9.47 — single event mobile alignment, Event Details and Spotify polish.
   Scoped only to single event pages so other devices/pages are not affected. */
@media (max-width: 768px) {
  body.single-event .tfe-page-wrapper,
  body.single-event .tfe-single-layout,
  body.single-event .tfe-single-layout * {
    box-sizing: border-box !important;
  }

  body.single-event .tfe-page-wrapper {
    overflow-x: hidden !important;
    background: #f8fafc !important;
  }

  body.single-event .tfe-single-layout {
    width: 100% !important;
    max-width: 100% !important;
    padding: 28px 16px 56px !important;
    gap: 24px !important;
    align-items: center !important;
  }

  body.single-event .tfe-single-layout > .tfe-section,
  body.single-event .tfe-single-layout > .tfe-spotify-wrap,
  body.single-event .tfe-single-layout > .tfe-map-container,
  body.single-event .tfe-single-layout > .tfe-sub-widget {
    width: 100% !important;
    max-width: 640px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero__content {
    justify-items: center !important;
    text-align: center !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-info {
    text-align: center !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-badges {
    width: 100% !important;
    justify-content: center !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-title {
    width: 100% !important;
    text-align: center !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-hero-meta {
    width: 100% !important;
    max-width: 440px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    justify-items: center !important;
    justify-content: center !important;
    text-align: center !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-meta-item {
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-timer-buy-wrap,
  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-secondary-actions {
    width: 100% !important;
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    align-items: center !important;
    justify-content: center !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-timer,
  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-btn--buy,
  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-btn--sold,
  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-btn--ended,
  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-btn--notify,
  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-btn--outline {
    width: 100% !important;
    max-width: 520px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-btn--buy {
    min-height: 58px !important;
    padding-left: 16px !important;
    padding-right: 16px !important;
    gap: 10px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-price-tag {
    white-space: nowrap !important;
  }

  body.single-event .tfe-section {
    padding: 22px 18px !important;
    border-radius: 24px !important;
    overflow: hidden !important;
  }

  body.single-event .tfe-event-details-section {
    text-align: center !important;
  }

  body.single-event .tfe-event-details-section .tfe-event-details-head {
    flex-direction: column !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 12px !important;
    margin-bottom: 18px !important;
    padding-bottom: 18px !important;
  }

  body.single-event .tfe-event-details-section .tfe-section-title {
    width: 100% !important;
    justify-content: center !important;
    text-align: center !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  body.single-event .tfe-event-details-section .tfe-status-pill {
    margin: 0 auto !important;
    justify-content: center !important;
    text-align: center !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-grid {
    grid-template-columns: 1fr !important;
    gap: 12px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-card {
    min-height: 0 !important;
    padding: 18px 16px !important;
    text-align: center !important;
    border-radius: 18px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-icon {
    margin: 0 auto 12px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-label,
  body.single-event .tfe-event-details-section .tfe-info-value {
    text-align: center !important;
  }

  body.single-event .tfe-spotify-wrap,
  body.single-event .tfe-spotify-wrap--artist {
    display: block !important;
    width: 100% !important;
    max-width: 640px !important;
    min-height: 352px !important;
    height: auto !important;
    padding: 0 !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    background: #0f172a !important;
  }

  body.single-event .tfe-spotify-wrap iframe,
  body.single-event iframe[src*="open.spotify.com"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 352px !important;
    min-height: 352px !important;
    max-height: none !important;
    border: 0 !important;
    border-radius: 24px !important;
  }
}

@media (max-width: 420px) {
  body.single-event .tfe-single-layout {
    padding-left: 14px !important;
    padding-right: 14px !important;
  }

  body.single-event .tfe-section {
    padding: 20px 16px !important;
    border-radius: 22px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-btn--buy {
    font-size: 15px !important;
  }

  body.single-event .tfe-page-wrapper > .tfe-hero .tfe-price-tag {
    margin-left: 8px !important;
    padding-left: 10px !important;
    font-size: 14px !important;
  }

  body.single-event .tfe-spotify-wrap,
  body.single-event .tfe-spotify-wrap--artist,
  body.single-event .tfe-spotify-wrap iframe,
  body.single-event iframe[src*="open.spotify.com"] {
    min-height: 352px !important;
    height: 352px !important;
  }
}

/* v9.9.48 — single event details mobile grid + footer safety.
   Details cards are 2 columns on phones, with the last odd card spanning full width.
   Footer markup is not changed; this only prevents single-event mobile fixes from leaking visually. */
@media (max-width: 768px) {
  body.single-event .tfe-event-details-section .tfe-info-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 12px !important;
    align-items: stretch !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-card {
    min-width: 0 !important;
    width: 100% !important;
    min-height: 118px !important;
    aspect-ratio: 1 / 1 !important;
    padding: 14px 10px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    text-align: center !important;
    border-radius: 20px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-card:nth-child(odd):last-child {
    grid-column: 1 / -1 !important;
    aspect-ratio: auto !important;
    min-height: 96px !important;
    padding: 16px 14px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-icon {
    width: 34px !important;
    height: 34px !important;
    margin: 0 auto 4px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 18px !important;
    line-height: 1 !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-label {
    font-size: 10px !important;
    line-height: 1.15 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-value {
    max-width: 100% !important;
    font-size: 14px !important;
    line-height: 1.25 !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }

  body.single-event .site-footer {
    display: block !important;
    position: relative !important;
    z-index: 2 !important;
    width: 100% !important;
    clear: both !important;
  }
}

@media (max-width: 420px) {
  body.single-event .tfe-event-details-section .tfe-info-grid {
    gap: 10px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-card {
    min-height: 108px !important;
    padding: 12px 8px !important;
    border-radius: 18px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-card:nth-child(odd):last-child {
    min-height: 88px !important;
    padding: 14px 12px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-icon {
    width: 30px !important;
    height: 30px !important;
    font-size: 16px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-label {
    font-size: 9px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-value {
    font-size: 13px !important;
  }
}



/* v9.9.49 — single event venue address + mobile footer polish. */
@media (max-width: 768px) {
  body.single-event .tfe-event-details-section .tfe-info-card--address {
    grid-column: 1 / -1 !important;
    aspect-ratio: auto !important;
    min-height: 92px !important;
    padding: 16px 14px !important;
  }

  body.single-event .tfe-event-details-section .tfe-info-card:last-child {
    grid-column: 1 / -1 !important;
    aspect-ratio: auto !important;
    min-height: 92px !important;
    padding: 16px 14px !important;
  }

  body.single-event .tfe-map-head {
    justify-content: center !important;
    text-align: center !important;
  }

  body.single-event .tfe-map-head-text {
    width: 100% !important;
  }

  body.single-event .tfe-map-head .tfe-section-title {
    justify-content: center !important;
    text-align: center !important;
    width: 100% !important;
  }

  body.single-event .tfe-map-address {
    max-width: 520px !important;
    margin: 8px auto 0 !important;
    font-size: 13px !important;
    line-height: 1.45 !important;
    color: #64748b !important;
  }

  body.single-event #event-map .tfe-btn {
    width: 100% !important;
    max-width: 320px !important;
    margin: 0 auto !important;
  }
}


/* v9.9.52 — Single Tour final mobile layout fix.
   Keeps the tour page centered and removes the event-style direct purchase CTA from the hero. */
@media (max-width: 768px) {
  body.single-tour,
  body.single-tour #page,
  body.single-tour #content,
  body.single-tour .site-content,
  body.single-tour .tfe-page-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding-top: calc(118px + env(safe-area-inset-top)) !important;
    padding-bottom: 42px !important;
    margin-bottom: 0 !important;
    border-radius: 0 0 28px 28px !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-hero__content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 24px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-items: center !important;
    align-items: center !important;
    text-align: center !important;
    padding-bottom: 0 !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-poster {
    width: min(78vw, 330px) !important;
    max-width: 330px !important;
    min-width: 0 !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    margin: 0 auto 2px !important;
    transform: none !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    box-shadow: 0 20px 54px rgba(0,0,0,.46) !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-poster img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center top !important;
    border-radius: 0 !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-hero-info {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-hero-badge {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-hero-title {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    text-align: center !important;
    font-size: clamp(30px, 9vw, 44px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.045em !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    hyphens: auto !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-meta-row {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-meta-pill {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.25 !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-actions,
  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-secondary-actions {
    width: min(100%, 440px) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-actions {
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 10px !important;
    align-items: stretch !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-secondary-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    align-items: stretch !important;
    padding-top: 16px !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-secondary-actions > *:last-child:nth-child(odd) {
    grid-column: 1 / -1 !important;
  }

  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-btn,
  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-btn--primary,
  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-btn--outline,
  body.single-tour .tfe-page-wrapper > .tfe-hero button.tfe-btn {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    height: auto !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    white-space: normal !important;
    line-height: 1.15 !important;
  }
}

@media (max-width: 390px) {
  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-secondary-actions {
    grid-template-columns: 1fr !important;
  }
}


/* v9.9.53 — Single Performer / Artist page mobile layout.
   Isolated fixes: centered hero, safe poster, sane action buttons, full Spotify player. */
@media (max-width: 768px) {
  body.single-performer,
  body.single-performer #page,
  body.single-performer #content,
  body.single-performer .site-content,
  body.single-performer .tfe-page-wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero {
    width: 100% !important;
    max-width: 100% !important;
    overflow: hidden !important;
    padding-top: calc(118px + env(safe-area-inset-top)) !important;
    padding-bottom: 42px !important;
    margin-bottom: 0 !important;
    border-radius: 0 0 28px 28px !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-container {
    width: 100% !important;
    max-width: 100% !important;
    padding-left: 18px !important;
    padding-right: 18px !important;
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-hero__content {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 22px !important;
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    justify-items: center !important;
    align-items: center !important;
    text-align: center !important;
    padding-bottom: 0 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-poster {
    width: min(76vw, 300px) !important;
    max-width: 300px !important;
    min-width: 0 !important;
    height: auto !important;
    aspect-ratio: 4 / 5 !important;
    margin: 0 auto !important;
    transform: none !important;
    border-radius: 24px !important;
    overflow: hidden !important;
    box-shadow: 0 20px 54px rgba(0,0,0,.46) !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-poster img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: cover !important;
    object-position: center top !important;
    border-radius: 0 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-hero-info {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    text-align: center !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-hero-badge {
    margin-left: auto !important;
    margin-right: auto !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-hero-title {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
    text-align: center !important;
    font-size: clamp(31px, 9vw, 44px) !important;
    line-height: 1.04 !important;
    letter-spacing: -0.045em !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
    hyphens: auto !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-hero-desc {
    max-width: 520px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    text-align: center !important;
    font-size: 15px !important;
    line-height: 1.62 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-meta-row {
    display: flex !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 8px !important;
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    padding-bottom: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-meta-pill {
    max-width: 100% !important;
    min-width: 0 !important;
    white-space: normal !important;
    overflow-wrap: anywhere !important;
    justify-content: center !important;
    text-align: center !important;
    line-height: 1.25 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions {
    width: min(100%, 440px) !important;
    max-width: 100% !important;
    margin-left: auto !important;
    margin-right: auto !important;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: center !important;
    align-items: center !important;
    gap: 10px !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--primary,
  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--dark {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 48px !important;
    height: auto !important;
    padding: 12px 14px !important;
    border-radius: 16px !important;
    white-space: normal !important;
    line-height: 1.15 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--outline {
    width: calc(50% - 5px) !important;
    min-width: 0 !important;
    min-height: 46px !important;
    height: auto !important;
    padding: 11px 12px !important;
    border-radius: 16px !important;
    white-space: normal !important;
    line-height: 1.15 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--icon {
    width: 48px !important;
    height: 48px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    flex: 0 0 48px !important;
    padding: 0 !important;
    border-radius: 999px !important;
  }

  body.single-performer .tfe-layout {
    padding-top: 34px !important;
  }

  body.single-performer .tfe-spotify-wrap {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 352px !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  body.single-performer .tfe-spotify-wrap iframe,
  body.single-performer iframe[src*="open.spotify.com"] {
    display: block !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 352px !important;
    min-height: 352px !important;
    border: 0 !important;
  }

  body.single-performer .tfe-section-title {
    justify-content: center !important;
    text-align: center !important;
  }

  body.single-performer .tfe-booking-info {
    align-items: center !important;
    text-align: center !important;
    padding: 22px 18px !important;
  }

  body.single-performer .tfe-booking-info__meta {
    justify-content: center !important;
  }

  body.single-performer .tfe-share-bar {
    justify-content: center !important;
    text-align: center !important;
  }
}

@media (max-width: 390px) {
  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--outline {
    width: 100% !important;
  }
}


/* v9.9.54 — Single Performer mobile cleanup.
   Fixes the broken action row from v9.9.53, keeps the poster below the fixed header,
   and gives Spotify enough safe height/spacing on iPhone. Scope: artist pages only. */
@media (max-width: 768px) {
  body.single-performer .tfe-page-wrapper > .tfe-hero {
    padding-top: calc(154px + env(safe-area-inset-top)) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-poster {
    margin-top: 0 !important;
    width: min(82vw, 330px) !important;
    max-width: 330px !important;
    aspect-ratio: 4 / 5 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-hero-info {
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions {
    display: grid !important;
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 12px !important;
    width: min(100%, 430px) !important;
    max-width: 100% !important;
    margin: 26px auto 0 !important;
    align-items: stretch !important;
    justify-items: stretch !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn {
    box-sizing: border-box !important;
    max-width: 100% !important;
    margin: 0 !important;
    transform: none !important;
    white-space: nowrap !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--primary,
  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--dark {
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    min-height: 56px !important;
    padding: 0 18px !important;
    border-radius: 18px !important;
    font-size: 17px !important;
    line-height: 1.1 !important;
    justify-content: center !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--icon {
    grid-column: auto !important;
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    min-height: 56px !important;
    max-width: 56px !important;
    flex: none !important;
    justify-self: center !important;
    padding: 0 !important;
    border-radius: 999px !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--outline {
    grid-column: span 2 !important;
    width: 100% !important;
    min-width: 0 !important;
    flex: none !important;
    min-height: 52px !important;
    padding: 0 12px !important;
    border-radius: 18px !important;
    font-size: 15px !important;
    line-height: 1.1 !important;
    justify-content: center !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn svg {
    width: 18px !important;
    height: 18px !important;
    flex: 0 0 auto !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn span {
    display: inline !important;
    min-width: 0 !important;
  }

  body.single-performer .tfe-layout {
    padding-left: 18px !important;
    padding-right: 18px !important;
    padding-bottom: calc(46px + env(safe-area-inset-bottom)) !important;
  }

  body.single-performer .tfe-spotify-wrap {
    width: 100% !important;
    max-width: 520px !important;
    min-height: 380px !important;
    margin-left: auto !important;
    margin-right: auto !important;
    border-radius: 24px !important;
    overflow: hidden !important;
  }

  body.single-performer .tfe-spotify-wrap iframe,
  body.single-performer iframe[src*="open.spotify.com"] {
    width: 100% !important;
    height: 380px !important;
    min-height: 380px !important;
    border-radius: 24px !important;
  }
}

@media (max-width: 430px) {
  body.single-performer .tfe-page-wrapper > .tfe-hero {
    padding-top: calc(146px + env(safe-area-inset-top)) !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    width: 100% !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--icon {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
    max-width: 52px !important;
  }
}

@media (max-width: 360px) {
  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }

  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--primary,
  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--dark,
  body.single-performer .tfe-page-wrapper > .tfe-hero .tfe-actions .tfe-btn--outline {
    grid-column: 1 / -1 !important;
  }
}

/* v9.9.58 — FIX: homepage mobile event rows must stay horizontal-scroll sliders.
   The global mobile layer was forcing .tfe-grid/.tfe-card-item to one-column/full-width,
   which disabled the homepage event swipe sections rendered by [display_events layout="grid" js="0"]. */
@media (max-width: 768px) {
  .tfe-page-wrapper .tfe-slider-lock {
    overflow: visible !important;
    width: 100% !important;
  }

  .tfe-page-wrapper .tfe-slider-lock .tfe-wrap,
  .tfe-page-wrapper .tfe-slider-lock .tfe-instance {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: visible !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  .tfe-page-wrapper .tfe-slider-lock .tfe-instance[data-layout="grid"] > .tfe-grid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    grid-auto-flow: column !important;

    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;

    gap: 16px !important;
    padding: 2px 16px 24px 0 !important;
    margin: 0 -16px 0 0 !important;

    scroll-snap-type: x mandatory !important;
    scroll-padding-left: 0 !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
    scrollbar-width: none !important;
  }

  .tfe-page-wrapper .tfe-slider-lock .tfe-instance[data-layout="grid"] > .tfe-grid::-webkit-scrollbar {
    display: none !important;
  }

  .tfe-page-wrapper .tfe-slider-lock .tfe-instance[data-layout="grid"] > .tfe-grid > .tfe-card-item {
    width: 238px !important;
    min-width: 238px !important;
    max-width: 238px !important;
    flex: 0 0 238px !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
  }
}

@media (max-width: 390px) {
  .tfe-page-wrapper .tfe-slider-lock .tfe-instance[data-layout="grid"] > .tfe-grid > .tfe-card-item {
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
    flex-basis: 220px !important;
  }
}


/* v9.9.83 — restore mobile event sliders after global mobile grid rules.
   Loaded after plugin CSS as an extra theme safety layer. */
@media (max-width: 768px) {
  .tfe-page-wrapper .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid,
  .tfe-events-page .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid,
  body.single-event .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid,
  body.single-tour .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid,
  body.single-performer .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid,
  .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    grid-auto-flow: column !important;
    gap: 16px !important;
    width: calc(100% + 18px) !important;
    max-width: none !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 2px 18px 24px 0 !important;
    margin: 0 -18px 0 0 !important;
    scroll-snap-type: x mandatory !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
    scrollbar-width: none !important;
    content-visibility: visible !important;
    contain: none !important;
  }

  .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid::-webkit-scrollbar {
    display: none !important;
  }

  .tfe-page-wrapper .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid > .tfe-card-item,
  .tfe-events-page .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid > .tfe-card-item,
  body.single-event .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid > .tfe-card-item,
  body.single-tour .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid > .tfe-card-item,
  body.single-performer .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid > .tfe-card-item,
  .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid > .tfe-card-item {
    width: 238px !important;
    min-width: 238px !important;
    max-width: 238px !important;
    flex: 0 0 238px !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
  }
}

@media (max-width: 390px) {
  .tfe-instance[data-mobile-slider="1"][data-layout="grid"] > .tfe-grid > .tfe-card-item {
    width: 220px !important;
    min-width: 220px !important;
    max-width: 220px !important;
    flex-basis: 220px !important;
  }
}


/* v9.9.92 — TOUR PAGE MOBILE SCHEDULE EMERGENCY FIX
   Scope: single tour schedule only. Prevents event cards from being squeezed into
   3–4 tiny columns on phones after global mobile slider/performance changes. */
@media (max-width: 768px) {
  body.single-tour #tour-schedule .tfe-wrap,
  body.single-tour #tour-schedule .tfe-instance {
    width: 100% !important;
    max-width: 100% !important;
    overflow: visible !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  body.single-tour #tour-schedule .tfe-instance > .tfe-grid,
  body.single-tour #tour-past-events .tfe-instance > .tfe-grid {
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: nowrap !important;
    grid-template-columns: none !important;
    grid-auto-flow: initial !important;
    width: calc(100% + 14px) !important;
    max-width: none !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    gap: 16px !important;
    padding: 4px 14px 22px 0 !important;
    margin: 0 -14px 0 0 !important;
    scroll-snap-type: x mandatory !important;
    scroll-padding-left: 0 !important;
    -webkit-overflow-scrolling: touch !important;
    touch-action: pan-x !important;
    overscroll-behavior-x: contain !important;
    scrollbar-width: none !important;
    content-visibility: visible !important;
    contain: none !important;
    contain-intrinsic-size: auto !important;
  }

  body.single-tour #tour-schedule .tfe-instance > .tfe-grid::-webkit-scrollbar,
  body.single-tour #tour-past-events .tfe-instance > .tfe-grid::-webkit-scrollbar {
    display: none !important;
  }

  body.single-tour #tour-schedule .tfe-instance > .tfe-grid > .tfe-card-item,
  body.single-tour #tour-past-events .tfe-instance > .tfe-grid > .tfe-card-item {
    width: min(76vw, 292px) !important;
    min-width: min(76vw, 292px) !important;
    max-width: min(76vw, 292px) !important;
    flex: 0 0 min(76vw, 292px) !important;
    flex-shrink: 0 !important;
    scroll-snap-align: start !important;
    aspect-ratio: 4 / 5 !important;
    min-height: 0 !important;
    height: auto !important;
    border-radius: 22px !important;
    overflow: hidden !important;
  }

  body.single-tour #tour-schedule .tfe-instance .tfe-card-inner,
  body.single-tour #tour-past-events .tfe-instance .tfe-card-inner {
    width: 100% !important;
    height: 100% !important;
    min-height: 0 !important;
    aspect-ratio: 4 / 5 !important;
    content-visibility: visible !important;
    contain: none !important;
    contain-intrinsic-size: auto !important;
  }

  body.single-tour #tour-schedule .tfe-instance .tfe-card-inner img.tfe-poster,
  body.single-tour #tour-past-events .tfe-instance .tfe-card-inner img.tfe-poster {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center top !important;
  }

  body.single-tour #tour-schedule .tfe-instance .tfe-card-caption,
  body.single-tour #tour-past-events .tfe-instance .tfe-card-caption {
    padding: 54px 14px 14px !important;
  }

  body.single-tour #tour-schedule .tfe-instance .tfe-card-caption-title,
  body.single-tour #tour-past-events .tfe-instance .tfe-card-caption-title {
    font-size: 15px !important;
    line-height: 1.18 !important;
  }

  body.single-tour #tour-schedule .tfe-instance .tfe-card-caption-meta,
  body.single-tour #tour-past-events .tfe-instance .tfe-card-caption-meta {
    font-size: 12px !important;
    line-height: 1.28 !important;
  }

  body.single-tour #tour-schedule .tfe-instance .tfe-card-caption-row,
  body.single-tour #tour-past-events .tfe-instance .tfe-card-caption-row {
    flex-direction: row !important;
    align-items: center !important;
    gap: 10px !important;
  }

  body.single-tour #tour-schedule .tfe-instance .tfe-card-caption-cta,
  body.single-tour #tour-past-events .tfe-instance .tfe-card-caption-cta {
    width: auto !important;
    min-height: 40px !important;
    padding: 10px 14px !important;
    font-size: 12px !important;
  }
}

@media (max-width: 390px) {
  body.single-tour #tour-schedule .tfe-instance > .tfe-grid > .tfe-card-item,
  body.single-tour #tour-past-events .tfe-instance > .tfe-grid > .tfe-card-item {
    width: 78vw !important;
    min-width: 78vw !important;
    max-width: 78vw !important;
    flex-basis: 78vw !important;
  }
}


/* v10.2.24 - Single tour hero final authority.
   Keep artwork at its uploaded/native aspect ratio and prevent oversized tour titles.
   This block is intentionally at the end because mobile-polish loads after single-tour.css. */
body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-hero-title {
  font-size: clamp(30px, 3vw, 44px) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.025em !important;
  max-width: 820px !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
}
body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-poster {
  height: auto !important;
  aspect-ratio: auto !important;
}
body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-poster img {
  width: 100% !important;
  height: auto !important;
  max-height: none !important;
  object-fit: contain !important;
  object-position: center !important;
  display: block !important;
}
@media (max-width: 768px) {
  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-hero-title {
    font-size: clamp(27px, 7vw, 38px) !important;
    line-height: 1.08 !important;
  }
  body.single-tour .tfe-page-wrapper > .tfe-hero .tfe-poster {
    width: min(78vw, 330px) !important;
    max-width: 330px !important;
    height: auto !important;
    aspect-ratio: auto !important;
  }
}

/* ==== source: responsive-devices.css ==== */
/*
 * TicketsFest.EU — Responsive Device Layer
 * v10.0.3
 * Target: iPhone SE/mini/standard/Pro/Pro Max, Android narrow/standard/large, tablets.
 * This file is intentionally loaded last and only corrects layout/viewport behavior.
 */

:root{
  --tfe-mobile-gutter: clamp(14px, 4.4vw, 22px);
  --tfe-touch: 44px;
  --tfe-safe-top: env(safe-area-inset-top, 0px);
  --tfe-safe-right: env(safe-area-inset-right, 0px);
  --tfe-safe-bottom: env(safe-area-inset-bottom, 0px);
  --tfe-safe-left: env(safe-area-inset-left, 0px);
}

html{
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  overflow-x: hidden;
}
body{
  overflow-x: hidden;
  min-width: 320px;
}
*,*::before,*::after{box-sizing:border-box;}
img,video,svg,canvas,iframe{max-width:100%;height:auto;}

/* Prevent long PL/UA/EN titles, venues, URLs and chips from breaking mobile width. */
.tfe-page-wrapper,
.tfe-events-page,
.tfe-container,
.tfe-events-archive-section,
.tfe-events-featured-section,
.tfe-events-seo-block,
.tfe-events-faq,
.tfe-card,
.tfe-core-card,
.tfe-events-seo-block__inner,
.tfe-events-faq__inner,
.tfe-event-card,
.tfe-card-item,
.tfe-card-caption,
.tfe-card-caption-title,
.tfe-card-caption-meta,
.tfe-events-seo-links__list a,
.tfe-events-filter-chip,
.tfe-filter-pill,
.tfe-filter-input,
.tfe-select-chip{
  min-width:0;
  overflow-wrap:anywhere;
}

/* iOS prevents zooming inputs only when font-size is 16px+. */
input,select,textarea,button{
  font-size:16px;
}

@media (max-width: 1024px){
  .tfe-container,
  .tfe-events-archive-section,
  .tfe-events-featured-section,
  .tfe-events-seo-block,
  .tfe-events-faq,
  .tfe-page-wrapper .tfe-wrap,
  .site-main,
  .content-area{
    width:100% !important;
    max-width:100% !important;
    padding-left:calc(var(--tfe-mobile-gutter) + var(--tfe-safe-left)) !important;
    padding-right:calc(var(--tfe-mobile-gutter) + var(--tfe-safe-right)) !important;
  }

  .tfe-header-wrap{
    width:calc(100% - (var(--tfe-mobile-gutter) * 2) - var(--tfe-safe-left) - var(--tfe-safe-right)) !important;
    left:calc(var(--tfe-mobile-gutter) + var(--tfe-safe-left)) !important;
    right:auto !important;
    top:calc(10px + var(--tfe-safe-top)) !important;
  }

  .tfe-mobile-drawer,
  .tfe-mobile-menu,
  .tfe-mobile-nav{
    max-height:calc(100dvh - 86px - var(--tfe-safe-top) - var(--tfe-safe-bottom)) !important;
    padding-bottom:calc(18px + var(--tfe-safe-bottom)) !important;
  }

  @supports not (height: 100dvh){
    .tfe-mobile-drawer,
    .tfe-mobile-menu,
    .tfe-mobile-nav{max-height:calc(100vh - 86px) !important;}
  }
}

@media (max-width: 820px){
  .tfe-events-page .tfe-events-archive-section,
  .tfe-events-page .tfe-events-featured-section{
    padding-top:24px !important;
    padding-bottom:42px !important;
  }

  .tfe-advanced-filters,
  .tfe-filter-searchline,
  .tfe-filter-gridline{
    width:100% !important;
    max-width:100% !important;
  }

  .tfe-filter-searchline,
  .tfe-filter-gridline{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .tfe-filter-input,
  .tfe-advanced-filters .tfe-select-chip,
  .tfe-btn-apply,
  .tfe-btn-reset--link,
  .tfe-search-btn,
  .tfe-clear-btn,
  .tfe-btn,
  .tfe-btn-book,
  .tfe-btn-view{
    width:100% !important;
    min-height:48px !important;
    border-radius:16px !important;
  }

  .tfe-filter-actions{
    display:grid !important;
    grid-template-columns:1fr !important;
    gap:10px !important;
  }

  .tfe-events-seo-links,
  .tfe-events-faq__grid{
    display:grid !important;
    grid-template-columns:1fr !important;
  }

  .tfe-events-seo-block__inner,
  .tfe-events-faq__inner{
    border-radius:24px !important;
    padding:22px !important;
  }
}

/* iPhone Pro Max / large Android: cards can breathe, without overflowing. */
@media (max-width: 540px){
  .tfe-events-hero,
  .tfe-hero{
    padding-top:calc(90px + var(--tfe-safe-top)) !important;
  }

  .tfe-events-hero h1,
  .tfe-hero-title{
    font-size:clamp(30px, 10.4vw, 44px) !important;
    line-height:1.02 !important;
    letter-spacing:-.045em !important;
  }

  .tfe-events-hero p,
  .tfe-hero-desc{
    font-size:15px !important;
    line-height:1.55 !important;
  }

  .tfe-events-popular-links,
  .tfe-events-active-filters,
  .tfe-filter-pills,
  .tfe-meta-row{
    display:flex !important;
    flex-wrap:nowrap !important;
    gap:8px !important;
    width:calc(100% + var(--tfe-mobile-gutter)) !important;
    max-width:none !important;
    overflow-x:auto !important;
    overflow-y:hidden !important;
    padding:0 var(--tfe-mobile-gutter) 8px 0 !important;
    margin-right:calc(-1 * var(--tfe-mobile-gutter)) !important;
    -webkit-overflow-scrolling:touch !important;
    scroll-snap-type:x proximity !important;
    scrollbar-width:none !important;
  }
  .tfe-events-popular-links::-webkit-scrollbar,
  .tfe-events-active-filters::-webkit-scrollbar,
  .tfe-filter-pills::-webkit-scrollbar,
  .tfe-meta-row::-webkit-scrollbar{display:none !important;}

  .tfe-events-popular-links span,
  .tfe-events-active-filters__title{
    flex:0 0 auto !important;
  }

  .tfe-events-filter-chip,
  .tfe-events-filter-clear,
  .tfe-events-popular-links a,
  .tfe-filter-pill,
  .tfe-meta-pill,
  .tfe-meta-item{
    flex:0 0 auto !important;
    white-space:nowrap !important;
    max-width:78vw !important;
    min-height:36px !important;
  }

  .tfe-events-seo-links__list{
    gap:8px !important;
  }
  .tfe-events-seo-links__list a{
    justify-content:flex-start !important;
    max-width:100% !important;
    min-height:38px !important;
    white-space:normal !important;
  }

  .site-footer,
  .tfe-footer{
    padding-bottom:calc(20px + var(--tfe-safe-bottom)) !important;
  }
}

/* Standard iPhone / Android widths: 390–430px. */
@media (max-width: 430px){
  :root{--tfe-mobile-gutter:16px;}

  .tfe-header-wrap{
    min-height:56px !important;
    border-radius:20px !important;
  }
  .tfe-logo-text{
    max-width:58vw !important;
    font-size:18px !important;
  }

  .tfe-events-seo-block__inner,
  .tfe-events-faq__inner,
  .tfe-core-card,
  .tfe-card{
    padding:18px !important;
    border-radius:22px !important;
  }

  .tfe-events-seo-block h2,
  .tfe-events-faq h2,
  .tfe-section-title,
  .tfe-section-heading{
    font-size:clamp(22px, 7.5vw, 30px) !important;
    line-height:1.08 !important;
  }

  .tfe-events-faq__item{
    padding:16px !important;
    border-radius:18px !important;
  }
}

/* iPhone SE / old Android 320–375px: no horizontal body overflow, smaller chrome. */
@media (max-width: 375px){
  :root{--tfe-mobile-gutter:14px;}

  .tfe-header-wrap{
    width:calc(100% - 18px - var(--tfe-safe-left) - var(--tfe-safe-right)) !important;
    left:calc(9px + var(--tfe-safe-left)) !important;
    min-height:54px !important;
  }
  .tfe-logo-text{font-size:16px !important;max-width:54vw !important;}
  .tfe-burger{min-width:42px !important;min-height:42px !important;}

  .tfe-events-hero h1,
  .tfe-hero-title{font-size:30px !important;}

  .tfe-events-seo-block__inner,
  .tfe-events-faq__inner,
  .tfe-core-card,
  .tfe-card{
    padding:16px !important;
    border-radius:20px !important;
  }

  .tfe-btn,
  .tfe-btn-book,
  .tfe-btn-view,
  .tfe-search-btn,
  .tfe-clear-btn{
    min-height:46px !important;
    font-size:14px !important;
  }
}

/* Landscape phones: reduce top space and keep content usable. */
@media (max-height: 520px) and (orientation: landscape){
  .tfe-events-hero,
  .tfe-hero{
    padding-top:calc(72px + var(--tfe-safe-top)) !important;
    padding-bottom:24px !important;
    min-height:auto !important;
  }
  .tfe-mobile-drawer,
  .tfe-mobile-menu,
  .tfe-mobile-nav{
    max-height:calc(100dvh - 72px - var(--tfe-safe-top)) !important;
  }
}


/* =====================================================
   v10.0.4 — Real mobile UX hotfix
   Goal: no cropped second card on phones, visible popular-search chips,
   cleaner iPhone/Android homepage and events archive.
   ===================================================== */
@media (max-width: 767px){
  html,body{width:100%;max-width:100%;overflow-x:hidden!important;}
  .tfe-page-wrapper,
  .tfe-events-page{max-width:100%;overflow-x:hidden!important;}

  /* Header: keep it inside every iPhone/Android viewport. */
  .tfe-header-wrap{
    width:calc(100% - 28px - var(--tfe-safe-left) - var(--tfe-safe-right))!important;
    left:calc(14px + var(--tfe-safe-left))!important;
    right:auto!important;
    min-height:58px!important;
    border-radius:22px!important;
  }
  .tfe-logo,
  .tfe-site-logo,
  .tfe-brand{min-width:0!important;}
  .tfe-logo-text,
  .tfe-site-title{
    max-width:58vw!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
  }

  /* Homepage hero banner: less dark frame, stable 16:9 banner, no side overflow. */
  body.home .tfe-hero-banner-section,
  body.page-template-page-home-dots .tfe-hero-banner-section{
    padding-top:calc(86px + var(--tfe-safe-top))!important;
    padding-bottom:24px!important;
    margin-bottom:34px!important;
  }
  body.home .tfe-hero-banner-section .tfe-container,
  body.page-template-page-home-dots .tfe-hero-banner-section .tfe-container{
    width:100%!important;
    max-width:100%!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  body.home .tfe-hero-banner-section .tfe-banners-wrap,
  body.page-template-page-home-dots .tfe-hero-banner-section .tfe-banners-wrap{
    width:100%!important;
    max-width:100%!important;
    border-radius:22px!important;
    overflow:hidden!important;
  }
  body.home .tfe-hero-banner-section .tftb-banners,
  body.home .tfe-hero-banner-section .tftb-track,
  body.home .tfe-hero-banner-section .tftb-slide,
  body.page-template-page-home-dots .tfe-hero-banner-section .tftb-banners,
  body.page-template-page-home-dots .tfe-hero-banner-section .tftb-track,
  body.page-template-page-home-dots .tfe-hero-banner-section .tftb-slide{
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
  }
  body.home .tfe-hero-banner-section .tftb-slide-inner,
  body.page-template-page-home-dots .tfe-hero-banner-section .tftb-slide-inner{
    width:100%!important;
    max-width:100%!important;
    aspect-ratio:16/9!important;
    min-height:0!important;
    border-radius:20px!important;
    overflow:hidden!important;
  }
  body.home .tfe-hero-banner-section .tftb-slide-img,
  body.page-template-page-home-dots .tfe-hero-banner-section .tftb-slide-img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:center center!important;
  }
  body.home .tfe-hero-banner-section .tftb-nav,
  body.page-template-page-home-dots .tfe-hero-banner-section .tftb-nav{
    width:42px!important;
    height:42px!important;
    min-width:42px!important;
    min-height:42px!important;
  }
  body.home .tfe-hero-banner-section .tftb-prev,
  body.page-template-page-home-dots .tfe-hero-banner-section .tftb-prev{left:12px!important;}
  body.home .tfe-hero-banner-section .tftb-next,
  body.page-template-page-home-dots .tfe-hero-banner-section .tftb-next{right:12px!important;}

  /* Homepage sections: one clean card per row, not a half-cut horizontal slider. */
  body.home .tfe-section-gap,
  body.page-template-page-home-dots .tfe-section-gap{
    margin-top:44px!important;
    margin-bottom:44px!important;
  }
  body.home .tfe-section-header,
  body.page-template-page-home-dots .tfe-section-header{
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:10px!important;
    margin-bottom:24px!important;
    padding:0 8px!important;
    text-align:center!important;
  }
  body.home .tfe-section-title,
  body.page-template-page-home-dots .tfe-section-title{
    font-size:clamp(28px,8.6vw,38px)!important;
    line-height:1.06!important;
    letter-spacing:-.035em!important;
    text-align:center!important;
  }
  body.home .tfe-slider-lock,
  body.page-template-page-home-dots .tfe-slider-lock{
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    padding:0!important;
  }

  /* Events page hero: chips visible; buttons full-width; no lonely "Popular searches" label. */
  .tfe-events-page .tfe-events-hero{
    padding-top:calc(96px + var(--tfe-safe-top))!important;
    padding-bottom:42px!important;
    border-radius:0 0 28px 28px!important;
  }
  .tfe-events-page .tfe-hero__content{
    width:100%!important;
    max-width:100%!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .tfe-events-page .tfe-hero-title{
    font-size:clamp(34px,10.4vw,48px)!important;
    line-height:1.03!important;
  }
  .tfe-events-page .tfe-hero-desc{
    font-size:16px!important;
    line-height:1.55!important;
  }
  .tfe-events-page .tfe-events-hero-actions{
    display:grid!important;
    grid-template-columns:1fr!important;
    gap:12px!important;
    width:100%!important;
    margin-top:24px!important;
  }
  .tfe-events-page .tfe-events-hero-actions .tfe-btn{
    width:100%!important;
    min-height:54px!important;
    border-radius:18px!important;
  }
  .tfe-events-page .tfe-events-popular-links{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:flex-start!important;
    gap:8px!important;
    width:100%!important;
    max-width:100%!important;
    overflow:visible!important;
    padding:0!important;
    margin:20px 0 0!important;
  }
  .tfe-events-page .tfe-events-popular-links span{
    flex:1 0 100%!important;
    width:100%!important;
    color:rgba(255,255,255,.72)!important;
    font-weight:850!important;
  }
  .tfe-events-page .tfe-events-popular-links a{
    display:inline-flex!important;
    align-items:center!important;
    justify-content:center!important;
    min-height:36px!important;
    max-width:100%!important;
    white-space:normal!important;
    line-height:1.15!important;
    padding:9px 12px!important;
    border-radius:999px!important;
  }

  .tfe-events-page .tfe-events-archive-section,
  .tfe-events-page .tfe-events-featured-section{
    width:100%!important;
    max-width:100%!important;
    padding-left:16px!important;
    padding-right:16px!important;
  }
  .tfe-events-page .tfe-events-archive-shell{
    width:100%!important;
    max-width:100%!important;
    border-radius:22px!important;
    padding:12px!important;
  }
}

@media (max-width: 430px){
  .tfe-header-wrap{
    width:calc(100% - 24px - var(--tfe-safe-left) - var(--tfe-safe-right))!important;
    left:calc(12px + var(--tfe-safe-left))!important;
  }
  .tfe-logo-text,.tfe-site-title{font-size:17px!important;max-width:56vw!important;}
  body.home .tfe-hero-banner-section .tfe-container,
  body.page-template-page-home-dots .tfe-hero-banner-section .tfe-container,
  .tfe-events-page .tfe-hero__content{
    padding-left:14px!important;
    padding-right:14px!important;
  }
}
