@font-face {
    font-family:Figtree;
    src:url('/fonts/gigguide/figtree.woff2') format('woff2');
    font-weight:300 900;
    font-display:swap
}

@font-face {
    font-family:Jost;
    src:url('/fonts/gigguide/jost.woff2') format('woff2');
    font-weight:100 900;
    font-display:swap
}

* {
    box-sizing:border-box
}
body {
    margin:0;
    background:var(--gg-bg);
    color:var(--gg-text-1);
    font:15px/1.6 var(--gg-font-body)
}
[hidden] {
    display:none!important
}
img {
    max-width:100%;
    height:auto
}
a {
    color:var(--gg-link);
    text-underline-offset:4px
}
@media(hover:hover) and (pointer:fine) {
 a:hover {
    color:white
}
}

h1,h2,h3,button,summary {
    font-family:var(--gg-font-display)
}
h1,h2,h3 {
    color:white;
    line-height:1.2;
    letter-spacing:-.025em
}
h1 {
    font-size:var(--gg-fs-h1);
    margin:32px 0 24px;
    max-width:1000px
}
h2 {
    font-size:24px;
    margin:32px 0 20px
}
h3 {
    font-size:18px;
    margin:0 0 8px
}
p {
    margin:12px 0
}
button,input,select,summary {
    font:inherit
}
button,a,input,select,summary {
    -webkit-tap-highlight-color:transparent
}
button {
    cursor:pointer
}
input,select {
    background:var(--gg-surface-3);
    color:white;
    border:1px solid var(--gg-border-strong);
    border-radius:var(--gg-radius);
    padding:12px;
    width:100%;
    min-height:48px;
    min-width:0
}
button,.ticket-button,.button {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:12px;
    min-height:44px;
    border:1px solid var(--gg-border-strong);
    border-radius:var(--gg-radius);
    padding:9px 18px;
    background:var(--gg-surface);
    color:white;
    font-weight:600;
    text-decoration:none;
    line-height:1.4
}
@media(hover:hover) and (pointer:fine) {
 button:where(:not(:disabled):not([aria-disabled=true])):hover,.button:where(:not(:disabled):not([aria-disabled=true])):hover {
    background:var(--gg-surface-4)
}
}

.ticket-button,.find-button {
    background:white;
    color:var(--gg-bg);
    border-color:white
}
@media(hover:hover) and (pointer:fine) {
 .ticket-button:where(:not(:disabled):not([aria-disabled=true])):hover,.find-button:where(:not(:disabled):not([aria-disabled=true])):hover {
    background:var(--gg-primary-hover);
    color:black
}
}

a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible {
    outline:2px solid var(--gg-success);
    outline-offset:4px
}
main:focus {
    outline:none
}
.skip-link {
    position:fixed;
    top:-100px;
    left:16px;
    z-index:200;
    background:white;
    color:black;
    padding:12px
}
.skip-link:focus {
    top:12px
}
main {
    max-width:1220px;
    margin:0 auto;
    padding:24px 0 64px;
    min-height:55vh
}
main>* {
    min-width:0
}
.muted,small {
    color:var(--gg-text-3)
}
.eyebrow {
    color:var(--gg-text-3);
    text-transform:uppercase;
    letter-spacing:.12em;
    font-size:11px
}
.eyebrow:before {
    content:'';
    display:inline-block;
    width:6px;
    height:6px;
    background:var(--gg-success);
    border-radius:50%;
    margin-right:8px
}

.site-header {
    position:sticky;
    top:0;
    z-index:60;
    background:#0b0b0bf5;
    border-bottom:1px solid var(--gg-border);
    backdrop-filter:blur(12px)
}
.header-main {
    max-width:1220px;
    margin:auto;
    min-height:68px;
    display:flex;
    align-items:center;
    gap:32px
}
.brand {
    display:flex;
    flex-shrink:0
}
.brand img {
    width:217px;
    height:46px;
    object-fit:contain
}
.area-picker {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:12px;
    min-width:220px;
    max-width:300px;
    padding:8px 16px;
    background:var(--gg-surface);
    border:1px solid var(--gg-border);
    border-radius:var(--gg-radius);
    color:white;
    text-decoration:none;
    font-size:14px
}
.header-main nav {
    display:flex;
    align-items:center;
    gap:12px;
    margin-left:auto
}
.header-main nav a {
    padding:10px;
    color:#cfcfcf;
    text-decoration:none;
    white-space:nowrap
}
.header-main nav button {
    background:transparent;
    border-color:transparent;
    padding:10px;
    white-space:nowrap;
    color:#cfcfcf
}
.category-bar {
    max-width:1220px;
    margin:auto;
    display:flex;
    gap:8px;
    overflow-x:auto;
    padding:10px 0;
    scrollbar-width:thin
}
.category-bar form {
    flex-shrink:0
}
.category-chip {
    padding:5px 12px;
    min-height:32px;
    font-size:13px;
    color:var(--category-color,#ccc);
    background:color-mix(in srgb,var(--category-color,#ccc) 14%,transparent);
    border-color:color-mix(in srgb,var(--category-color,#ccc) 33%,transparent)
}
.type-live-music {
    --category-color:var(--gg-cat-live-bands)
}
.type-dj {
    --category-color:var(--gg-cat-djs)
}
.type-festival {
    --category-color:var(--gg-cat-festivals)
}
.type-concert {
    --category-color:var(--gg-cat-concerts)
}
.type-theatre {
    --category-color:var(--gg-cat-theatre)
}
.type-comedy {
    --category-color:var(--gg-cat-comedy)
}
.type-cabaret {
    --category-color:var(--gg-cat-cabaret)
}
.type-dance {
    --category-color:var(--gg-cat-dance)
}
.type-cultural {
    --category-color:var(--gg-cat-cultural)
}
.type-family {
    --category-color:var(--gg-cat-family)
}
.type-tribute {
    --category-color:var(--gg-cat-tribute)
}
.type-other-entertainment {
    --category-color:var(--gg-cat-other)
}

.home-hero {
    position:relative;
    text-align:center;
    padding:42px 0 32px;
    margin-bottom:36px;
    isolation:isolate
}
.home-hero:before {
    content:'';
    position:absolute;
    z-index:-1;
    inset:-24px calc((1220px - 100vw)/2) 0;
    background:radial-gradient(ellipse at 50% 0,#252025 0,var(--gg-bg-hero) 70%)
}
.home-hero h1 {
    font-size:var(--gg-fs-hero);
    letter-spacing:-.035em;
    margin:12px auto;
    line-height:1.15
}
.home-hero .lead {
    font-size:16.5px;
    color:#cfcfcf;
    max-width:650px;
    margin:16px auto 24px
}
.quick-links {
    display:flex;
    justify-content:center;
    flex-wrap:wrap;
    gap:8px;
    margin-top:16px
}
.quick-links button,.quick-links a {
    font-size:13px;
    padding:6px 12px;
    min-height:32px;
    color:#cfcfcf;
    background:var(--gg-surface);
    border:1px solid var(--gg-border);
    border-radius:var(--gg-radius);
    text-decoration:none
}

.discovery-form {
    display:grid;
    grid-template-columns:1.15fr .85fr 1.2fr auto;
    gap:1px;
    text-align:left;
    background:var(--gg-border);
    border:1px solid var(--gg-border);
    border-radius:var(--gg-radius);
    margin:24px 0;
    overflow:clip
}
.discovery-form>.field {
    background:var(--gg-surface);
    padding:12px 16px
}
.field {
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:0
}
.field label,.field>span:first-child {
    font-size:11px;
    color:#cfcfcf;
    font-weight:600;
    letter-spacing:.045em
}
.field small {
    font-size:11px
}
.field input,.field select {
    border:0;
    background:transparent;
    padding:0;
    min-height:36px;
    font-size:15px
}
.field select option {
    background:var(--gg-surface-2)
}
.field [id$="-error"]:empty {
    display:none
}
.find-button {
    margin:14px;
    align-self:center;
    min-width:130px;
    min-height:48px
}
.advanced-filters {
    grid-column:1/-1;
    background:#161616;
    padding:0 16px
}
.advanced-filters summary {
    cursor:pointer;
    padding:10px 0;
    color:#aaa;
    font-size:13px;
    min-height:44px
}
.advanced-grid {
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    padding:8px 0 20px
}
.advanced-grid .field {
    padding:12px;
    background:var(--gg-surface);
    border-radius:var(--gg-radius)}
.place-choice {
    margin:12px 0
}
.place-choice button {
    text-align:left;
    justify-content:flex-start;
    max-width:100%;
    overflow-wrap:anywhere
}
.search-pagination form {
    display:flex;
    gap:16px;
    align-items:center;
    flex-wrap:wrap;
    margin:24px 0
}
[role=alert] {
    padding:16px;
    border:1px solid var(--gg-danger);
    border-radius:var(--gg-radius)}
.section-heading {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px
}
.section-heading h2 {
    margin-top:20px
}
.section-heading a {
    font-size:14px
}
.home-cards {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:20px;
    margin:0 0 36px
}
.event-card {
    overflow:hidden;
    border:1px solid var(--gg-border);
    border-radius:var(--gg-radius);
    background:#111;
    min-width:0
}
.event-card>a {
    display:block;
    text-decoration:none
}
.event-card .card-copy {
    padding:16px
}
.event-card h3 {
    font-size:18px
}
.event-card p {
    font-size:13px;
    color:#aaa;
    margin:6px 0
}
.event-card .event-art {
    aspect-ratio:16/9
}
.event-art {
    position:relative;
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:center;
    gap:12px;
    overflow:hidden;
    aspect-ratio:16/10;
    background:radial-gradient(ellipse at 20% 20%,color-mix(in srgb,var(--category-color,#aaa) 18%,#171717),#111 90%);
    border-bottom:1px solid var(--gg-border)
}
.event-art:before,.event-art:after {
    content:'';
    position:absolute;
    width:80%;
    height:180%;
    border:1px solid color-mix(in srgb,var(--category-color,#aaa) 20%,transparent);
    transform:rotate(36deg);
    border-radius:50%;
    pointer-events:none
}
.event-art:after {
    transform:rotate(36deg) translateX(28px)
}
.event-art img {
    width:52px;
    height:52px;
    object-fit:contain;
    position:relative
}
.event-art span {
    color:var(--category-color,#aaa);
    font-size:10px;
    letter-spacing:.12em;
    text-transform:uppercase;
    position:relative
}
.gig-result {
    display:grid;
    grid-template-columns:52px 136px minmax(0,1fr);
    gap:20px;
    align-items:center;
    padding:20px 0;
    border-bottom:1px solid var(--gg-border)
}
.gig-result .event-art {
    border-radius:var(--gg-radius)}
.event-copy {
    min-width:0;
    overflow-wrap:anywhere
}
.event-copy h2,.event-copy h3 {
    font-size:17.5px;
    margin:0 0 6px;
    line-height:1.4
}
.event-copy h2 a,.event-copy h3 a {
    color:white;
    text-decoration:none
}
@media(hover:hover) and (pointer:fine) {
 .event-copy h2 a:hover,.event-copy h3 a:hover {
    text-decoration:underline
}
}

.event-copy p {
    font-size:13px;
    color:#aaa;
    margin:4px 0
}
.event-copy .venue a {
    color:#cfcfcf
}
.event-date {
    text-align:center;
    text-transform:uppercase;
    line-height:1.25;
    font-family:var(--gg-font-display);
    color:#aaa;
    font-size:11px;
    letter-spacing:.07em
}
.event-date strong {
    display:block;
    font-size:29px;
    font-weight:600;
    color:white
}
.gig-status {
    display:table;
    color:var(--gg-warning)!important;
    font-weight:600;
    background:#25221b;
    border-radius:var(--gg-radius-xs);
    padding:4px 10px;
    font-size:13px
}
.browse-grid {
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px
}
.browse-grid a {
    display:block;
    padding:16px 20px;
    background:var(--gg-surface);
    border:1px solid var(--gg-border);
    border-radius:var(--gg-radius);
    color:white;
    text-decoration:none
}
@media(hover:hover) and (pointer:fine) {
 .browse-grid a:hover {
    background:var(--gg-surface-2)
}
}

.event-detail-grid {
    display:grid;
    grid-template-columns:minmax(0,1fr) 316px;
    gap:32px;
    margin:32px 0
}
.event-story>.event-art {
    min-height:320px;
    max-height:420px;
    border:1px solid var(--gg-border);
    border-radius:var(--gg-radius)}
.event-story>.event-art img {
    width:100px;
    height:100px
}
.event-story>.event-art span {
    font-size:14px
}
.event-booking {
    align-self:start;
    padding:24px;
    border:1px solid var(--gg-border);
    border-radius:var(--gg-radius);
    background:var(--gg-surface)
}
.event-booking h2 {
    margin:0 0 20px
}
.event-booking .ticket-button {
    width:100%;
    font-size:14px;
    text-align:center
}
.event-booking p {
    font-size:14px;
    overflow-wrap:anywhere
}
.gig-description {
    font-size:17px;
    line-height:1.8;
    margin-top:24px
}
.page-places main>ul {
    list-style:none;
    padding:0;
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:12px
}
.page-places main>ul li {
    padding:16px;
    background:var(--gg-surface);
    border:1px solid var(--gg-border);
    border-radius:var(--gg-radius);
    color:#aaa;
    font-size:13px;
    overflow-wrap:anywhere
}
.page-places main>ul a {
    display:block;
    color:white;
    font-size:16px
}
.page-places main>form {
    display:grid;
    grid-template-columns:1fr auto;
    gap:12px
}
.page-places main>form label {
    grid-column:1/-1
}
.page-venue nav ul {
    display:flex;
    flex-wrap:wrap;
    list-style:none;
    padding:0;
    gap:10px
}
.page-venue nav li a {
    display:block;
    padding:8px 12px;
    background:var(--gg-surface);
    border-radius:var(--gg-radius)}
.site-footer {
    border-top:1px solid var(--gg-border);
    max-width:1220px;
    margin:auto;
    padding:40px 0;
    display:grid;
    grid-template-columns:1fr auto;
    gap:24px;
    font-size:13px
}
.site-footer img {
    width:180px;
    height:42px;
    object-fit:contain
}
.site-footer nav {
    display:flex;
    align-items:start;
    gap:24px;
    flex-wrap:wrap
}
.site-footer .muted {
    grid-column:1/-1;
    margin:0
}
.mobile-nav {
    display:none
}

@media(min-width:1273px) {
    .home-hero:before {
    inset-inline:calc((1220px - 100vw)/2)
}

}

@media(max-width:1272px) {
    main,.header-main,.category-bar,.site-footer {
    margin-inline:26px
}
.home-hero:before {
    inset-inline:-26px
}

}

@media(max-width:999px) {
    .header-main {
    gap:20px
}
.header-main nav form {
    display:none
}
.area-picker {
    min-width:180px
}
.category-chip {
    min-height:44px
}
.discovery-form {
    grid-template-columns:1fr 1fr
}
.find-button {
    align-self:stretch
}
.home-cards {
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.browse-grid {
    grid-template-columns:repeat(3,minmax(0,1fr))
}
.quick-links button,.quick-links a {
    min-height:44px
}
.event-detail-grid {
    grid-template-columns:1fr
}
.event-booking {
    max-width:none
}
.page-places main>ul {
    grid-template-columns:repeat(2,minmax(0,1fr))
}

}

@media(max-width:759px) {
    .advanced-grid {
    grid-template-columns:1fr
}
.gig-result {
    grid-template-columns:42px 100px minmax(0,1fr);
    gap:12px
}
.header-main nav {
    display:none
}
.header-main {
    justify-content:space-between
}
.browse-grid {
    grid-template-columns:repeat(2,minmax(0,1fr))
}
.site-footer {
    grid-template-columns:1fr
}
.site-footer .muted {
    grid-column:auto
}

}

@media(max-width:559px) {
    main,.header-main,.category-bar,.site-footer {
    margin-inline:20px
}
main {
    padding-top:20px;
    padding-bottom:32px
}
.header-main {
    flex-wrap:wrap;
    gap:8px;
    padding:12px 0
}
.brand img {
    width:174px;
    height:37px
}
.area-picker {
    min-width:0;
    width:100%;
    max-width:none;
    min-height:44px
}
.category-bar {
    padding:8px 0
}
.home-hero {
    padding-top:24px
}
.home-hero:before {
    inset-inline:-20px
}
.home-hero h1 {
    font-size:38px
}
.home-hero .lead {
    font-size:15px
}
.discovery-form {
    grid-template-columns:1fr
}
.find-button {
    margin:12px
}
.home-cards {
    gap:12px
}
.event-card .card-copy {
    padding:12px
}
.event-card h3 {
    font-size:16px
}
.event-card .event-art img {
    width:36px;
    height:36px
}
.event-art span {
    font-size:8px
}
.event-card .event-art {
    gap:6px
}
.gig-result {
    grid-template-columns:38px minmax(0,1fr);
    gap:12px
}
.gig-result>.event-art {
    display:none
}
.event-copy h2,.event-copy h3 {
    font-size:17px
}
.section-heading {
    align-items:baseline
}
.section-heading h2 {
    font-size:22px
}
.section-heading a {
    font-size:12px
}
.event-story>.event-art {
    min-height:210px
}
.event-detail-grid {
    gap:20px
}
.event-booking {
    padding:20px
}
.site-footer {
    padding-bottom:90px
}
.mobile-nav {
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    display:grid;
    grid-template-columns:repeat(4,1fr);
    height:calc(60px + env(safe-area-inset-bottom));
    padding-bottom:env(safe-area-inset-bottom);
    z-index:80;
    background:var(--gg-bg-hero);
    border-top:1px solid var(--gg-surface-4)
}
.mobile-nav a,.mobile-nav button {
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    height:60px;
    padding:0;
    text-decoration:none;
    color:#cfcfcf;
    font-size:13px;
    background:transparent;
    border:0
}
.page-places main>ul {
    grid-template-columns:1fr
}
.page-places main>form {
    grid-template-columns:1fr
}
.browse-grid a {
    padding:12px;
    font-size:14px
}

}

@media(prefers-reduced-motion:reduce) {
    * {
    scroll-behavior:auto!important;
    animation:none!important;
    transition:none!important
}

}

/* Keep the supplied artwork ratio from imposing a minimum width on narrow screens. */
.event-detail-grid>* {
    min-width:0
}
.event-story>.event-art {
    width:100%;
    aspect-ratio:auto;
    height:320px
}
.event-card time {
    display:block;
    color:var(--gg-text-2);
    font-size:13px;
    line-height:1.6
}
.event-copy time {
    font-size:13px;
    color:var(--gg-text-3)
}
h1 {
    overflow-wrap:anywhere
}
.discovery-hero {
    padding:8px 0 24px;
    border-bottom:1px solid var(--gg-border);
    margin-bottom:24px
}
.category-chip[aria-current=true] {
    background:var(--category-color,#ccc);
    color:var(--gg-bg)
}
.field input::placeholder {
    color:var(--gg-text-3)
}

@media(max-width:559px) {
    .event-story>.event-art {
    height:220px
}

}


/* Reference v17 fidelity: shared discovery geometry and existing-feature styling. */
body { -webkit-font-smoothing:antialiased; }
.footer-affiliate-note { max-width:1220px;white-space:normal;overflow-wrap:anywhere;font-size:12px;line-height:1.5;color:var(--gg-text-3);margin:24px auto 0; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0; }
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible { outline:2px solid var(--gg-link);outline-offset:2px; }
button,.button,.category-chip { transition:background-color .15s ease,border-color .15s ease,color .15s ease,transform .1s ease; }

.header-main { gap:16px; }
.brand { margin-right:10px; }
.area-picker { width:250px;min-width:0;max-width:250px;height:36px;padding:0 12px;font-size:13.5px;font-weight:600; }
.area-picker>span:first-child { color:var(--gg-success); }
.category-bar { justify-content:safe center; }
.category-chip { background:var(--gg-surface);border:0;color:var(--gg-text-1);gap:6px;padding:0 13px;min-height:32px;height:32px;font-size:13.5px;white-space:nowrap; }
.category-chip:before { content:'';width:8px;height:8px;border-radius:50%;background:var(--category-color,#ccc);flex:none; }
.category-all:before { display:none; }
.category-all[aria-current=true] { background:var(--gg-text-1);color:var(--gg-bg); }
.category-chip[aria-current=true]:before { background:currentColor; }
.page-home main,.page-search main { padding-top:0; }
.home-hero.discovery-hero { padding:24px 0 28px;margin:0 0 24px;border:0; }
.home-hero:before { inset-block:0;background:radial-gradient(ellipse at 50% 30%,#211e19 0,var(--gg-bg-hero) 70%); }
.home-hero .eyebrow { margin:0 0 12px;height:auto;font:500 11px/16px var(--gg-font-display);letter-spacing:.1em;overflow:visible;white-space:normal;text-overflow:clip; }
.hero-title-slot { height:83.2px;display:flex;align-items:flex-start;justify-content:center; }
.home-hero h1 { margin:0;max-width:100%;font-size:var(--gg-fs-hero);font-weight:700;line-height:1.15;letter-spacing:-.035em; }
.home-hero h1.results-title { font-size:calc(var(--gg-fs-hero) * .62);align-self:center;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden; }
.home-hero .lead { height:49.5px;max-width:600px;margin:12px auto 24px;font-size:16.5px;line-height:1.5;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden; }
.discovery-form { grid-template-columns:minmax(0,2.1fr) minmax(0,1.4fr) 190px auto;gap:8px;padding:8px;margin:0;background:var(--gg-surface);overflow:visible; }
.discovery-form>.field { background:var(--gg-surface-3);border-radius:var(--gg-radius);padding:9px 12px;gap:2px;min-height:60px;justify-content:center; }
.discovery-form>.field>label,.discovery-form>.field>span:first-child { font:600 10px/14px var(--gg-font-display);letter-spacing:.1em;text-transform:uppercase;color:var(--gg-text-3); }
.discovery-form>.field input,.discovery-form>.field select { min-height:24px;height:24px;font-size:15px;line-height:24px; }
.location-field { position:relative; }
.location-field>strong { font-size:15px;line-height:24px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;padding-right:66px; }
.location-field>button { position:absolute;right:8px;bottom:8px;min-height:28px;padding:2px 6px;font-size:11px;max-width:66px; }
.find-button { height:60px;min-height:48px;margin:0;align-self:stretch;min-width:148px;font:700 16px/1 var(--gg-font-display); }
.advanced-filters { padding:0 4px;background:transparent; }
.advanced-filters summary { min-height:32px;padding:4px 0;font-size:12px; }
.advanced-grid { padding:12px 0; }
.quick-links { margin-top:14px; }
.quick-links button,.quick-links a { font:600 12.5px/20px var(--gg-font-body); }
.section-heading h2 { font-size:22px;margin:0 0 16px;letter-spacing:-.03em; }
.section-heading { margin-top:32px;align-items:baseline; }
.home-cards { gap:12px;margin-bottom:32px; }
.event-card { background:var(--gg-surface); }
@media(hover:hover) and (pointer:fine) {
 .event-card:hover { background:var(--gg-surface-2); }
}

.event-card .card-copy { padding:12px; }
.event-card h3 { font-size:17.5px;line-height:1.25;letter-spacing:-.015em; }
.gig-result { position:relative;grid-template-columns:44px 120px minmax(0,1fr) auto;gap:16px;padding:10px 14px;margin:8px 0;background:var(--gg-surface);border:0;border-radius:var(--gg-radius); }
@media(hover:hover) and (pointer:fine) {
 .gig-result:hover { background:var(--gg-surface-2); }
}

.gig-result:not(:has(.row-details)) { grid-template-columns:44px 120px minmax(0,1fr); }
.event-date { font-size:10.5px;line-height:1.1;font-weight:700; }
.event-date strong { font-size:24px;font-weight:800;margin:2px 0; }
.row-details { display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:36px;padding:0 16px;background:var(--gg-primary);color:var(--gg-on-light);border-radius:var(--gg-radius);text-decoration:none;font-size:13.5px;font-weight:600; }
@media(hover:hover) and (pointer:fine) {
 .row-details:hover { background:var(--gg-primary-hover);color:var(--gg-on-light); }
}

@media(max-width:999px) {
 .area-picker { height:44px; }
 .category-chip { min-height:44px;height:44px; }
 .discovery-form { grid-template-columns:minmax(0,1.5fr) minmax(0,1fr); }
 .hero-title-slot { height:calc(clamp(36px,5vw,64px) * 1.3); }
 .advanced-filters summary,.row-details { min-height:44px; }
 .location-field>strong { padding-right:76px; }
 .location-field>button { min-height:44px;bottom:8px;max-width:76px; }
 .gig-result { grid-template-columns:44px 84px minmax(0,1fr) auto; }
 .gig-result:not(:has(.row-details)) { grid-template-columns:44px 84px minmax(0,1fr); }
}
@media(max-width:759px) {
 .discovery-form { grid-template-columns:minmax(0,1fr); }
 .home-cards { grid-template-columns:1fr; }
 .mobile-nav { position:fixed;inset:auto 0 0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));height:calc(60px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);z-index:80;background:#121212f5;border-top:1px solid var(--gg-border);backdrop-filter:blur(12px); }
 .mobile-nav a,.mobile-nav button { display:flex;align-items:center;justify-content:center;width:100%;height:60px;padding:0;text-decoration:none;color:var(--gg-text-2);font-size:13px;background:transparent;border:0; }
 .site-footer { padding-bottom:90px; }
 .row-details { min-width:44px; }
 .section-heading { gap:12px; }
 .section-heading a { flex-shrink:0; }
}
@media(max-width:559px) {
 main,.header-main,.category-bar,.site-footer { margin-inline:26px; }
 .brand img { width:152px;height:32.2px; }
 .header-main { min-height:68px;padding:11px 0; }
 .area-picker { max-width:none;width:100%; }
 .home-hero.discovery-hero { padding:20px 0 24px; }
 .home-hero:before { inset-inline:-26px; }
 .hero-title-slot { height:calc(36px * 2.44); }
 .home-hero h1 { font-size:36px; }
 .home-hero h1.results-title { font-size:27px; }
 .home-hero .lead { height:90px;font-size:15px;line-height:1.5;-webkit-line-clamp:4; }
 .find-button { margin:0;min-width:0;height:48px; }
 .gig-result,.gig-result:not(:has(.row-details)) { grid-template-columns:38px minmax(0,1fr);gap:12px; }
 .row-details { position:static;background:transparent;font-size:0;padding:0;min-height:0; }
 .row-details>span { display:none; }
 .row-details:after { content:'';position:absolute;inset:0; }
 .row-details:focus-visible:after { outline:2px solid var(--gg-link);outline-offset:2px;border-radius:var(--gg-radius); }
 .gig-result:has(.row-details) .event-copy a { position:relative;z-index:1; }
 .section-heading h2 { font-size:20px; }
}
@media(prefers-reduced-motion:reduce) { button,.button,.category-chip { transition:none; } }
.filter-panel { position:fixed;inset:120px 26px auto auto;width:min(600px,calc(100vw - 52px));max-height:calc(100dvh - 160px);margin:0;padding:0 20px;border:1px solid var(--gg-border);border-radius:var(--gg-radius);background:var(--gg-bg-hero);color:var(--gg-text-1);box-shadow:var(--gg-shadow-pop);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable; }
.filter-panel::backdrop { background:#0008; }
.filter-panel-heading,.filter-panel-footer { position:sticky;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;background:var(--gg-bg-hero);z-index:1; }
.filter-panel-heading { top:0;border-bottom:1px solid var(--gg-border); }
.filter-panel-heading h2 { margin:0;font-size:22px; }
.filter-panel-heading button { width:44px;height:44px;padding:0; }
.filter-panel-footer { bottom:0;border-top:1px solid var(--gg-border); }
.filter-panel .advanced-grid { grid-template-columns:1fr; }
.filter-panel .field input,.filter-panel .field select { min-height:44px; }
@media(max-width:759px) { .filter-panel { inset:auto 0 0;width:100%;height:85dvh;max-height:85dvh;border-radius:var(--gg-radius-lg) var(--gg-radius-lg) 0 0;padding:0 16px env(safe-area-inset-bottom); } body:has(.filter-panel:popover-open) .mobile-nav { visibility:hidden; } }
/* Full-bleed paint without making the document wider than its scrollbar. */
.home-hero:before { inset:0;box-shadow:0 0 0 100vmax var(--gg-bg-hero);clip-path:inset(0 -100vmax); }
.category-bar { scrollbar-width:none; }
.category-bar::-webkit-scrollbar { display:none; }
.home-hero .standalone-filter-trigger { display:none; }
.standalone-filter-trigger { margin:12px 0; }

/* Discovery-only launch: no empty commercial sidebar. */
.city-grid.city-grid-listings-only{grid-template-columns:minmax(0,1fr)}

/* Processed gig photos; generated artwork remains the fallback. */
.gig-photo{margin:0;position:relative;overflow:hidden;background:#172130}.gig-photo img{display:block;width:auto;max-width:100%;height:auto;max-height:600px;object-fit:contain;margin-inline:auto}.gig-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:7px 12px;background:#000c;color:white;font-size:12px}.card-art .gig-photo img{height:100%;aspect-ratio:16/10;object-fit:cover}
