/* Complete page headings; card titles are the only headings allowed an ellipsis. */
/* Touch keyboards should not magnify smaller text controls on phones or tablets. */
@media(max-width:1024px){#main :is(input:not([type]),input[type=text],input[type=search],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],textarea,select),#area-query,#suggestions-query,#mobile-sort .results-sort select{font-size:16px}}
#main :is(h1,h2){height:auto;max-height:none;white-space:normal;overflow:visible;text-overflow:clip;-webkit-line-clamp:unset;overflow-wrap:anywhere}
#main .hero-title-slot{height:auto;min-height:0;flex-wrap:wrap;gap:8px}
#main .home-hero h1.results-title{position:static;width:auto;height:auto;clip-path:none;display:block;overflow:visible;-webkit-line-clamp:unset}
#main .discovery-heading-full{display:block}
#main .discovery-heading-compact{display:none}
#main .home-hero .lead{height:auto;max-height:none;-webkit-line-clamp:unset;overflow:visible}
/* Three lines with the full title retained in HTML and the destination page. */
#main :is(.event-card h3,.weekend-card h3,.experience-card h2,.experience-card h3,.event-copy h3,.category-pick h3,.category-option,.place-experience-grid h3,.whats-on-experience-pick h3,.whats-on-experience-pick>.listing-card-title,.night-out-card h3,.festival-card>h3,.tour-acts .row-primary,.act-link-list>li>a,.act-experience-list>li>a,.act-venue-summary h3),.featured-copy h3{
 display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;text-overflow:ellipsis;height:auto;max-height:none;white-space:normal;overflow-wrap:anywhere;min-width:0
}
#main :is(.home-cards,.weekend-cards,.experience-grid,.whats-on-pick-grid,.place-experience-grid,.category-pick-grid,.act-city-grid,.act-trip-grid){align-items:stretch}
#main :is(.event-card,.weekend-card,.category-pick,.whats-on-experience-pick,.act-city-card,.act-trip-card){display:flex;flex-direction:column;height:100%;min-width:0}
#main .event-card>a:first-child{display:flex;flex-direction:column;flex:1;min-height:0}
#main .event-card .card-copy{display:flex;flex-direction:column;flex:1}
#main .event-card .card-meta{margin-top:auto;padding-top:8px}
#main .event-card>.whats-on-ticket,#main .whats-on-experience-pick>.whats-on-ticket{margin-top:auto}
#main .whats-on-experience-pick>.whats-on-ticket{padding-top:12px}
#main .weekend-card>a{display:flex;flex-direction:column;height:100%}
#main .weekend-card-meta{margin-top:auto;padding-top:12px}
#main .category-pick>a{display:flex;flex-direction:column;flex:1}
#main .category-pick>p{margin-top:auto}
#main :is(.act-city-card,.act-trip-card)>:is(.act-text-link,.act-stay-link):last-child{margin-top:auto}
#main .act-trip-card>.act-stay-link{margin-top:auto}
#main .act-trip-card>.act-stay-link+.act-text-link{margin-top:0}
#main .night-out-card h3 a{display:block}
#main .experience-card{padding:0}
#main .experience-card .experience-card-link{height:100%}
#main .night-out-card{display:flex;flex-direction:column}
#main .night-out-action{margin-top:auto}
#main .area-artists{margin:32px 0;padding-top:24px;border-top:1px solid var(--gg-border)}
#main .area-artist-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;list-style:none;padding:0}
#main .area-artist-grid li{min-width:0}
#main .area-artist-grid a{display:block;height:100%;white-space:normal;overflow-wrap:anywhere;padding:14px;background:var(--gg-surface);border:1px solid var(--gg-border);border-radius:var(--gg-radius);color:var(--gg-text-1);text-decoration:none;line-height:1.5;min-height:52px}
#main .area-artist-grid a:is(:hover,:focus-visible){background:var(--gg-surface-2);text-decoration:underline}
/* White action remains legible in every state. */
#main .place-money-action:is(:hover,:focus-visible,:active){color:var(--gg-on-light,var(--gg-on-light));background:var(--gg-primary-hover,#eee);text-decoration:none}
/* Stretch every card in the rail; no fixed section height may clip a wrapping heading. */
.featured-strip,.page-home main>.featured-strip{height:auto;min-height:0}
.featured-copy h3{min-height:0}
.featured-scroll-tools{flex:none}
.featured-strip .featured-heading{align-items:flex-start}
.featured-gig{flex:1}
.event-stay-wrap{max-width:1080px;margin:0 auto;padding:0 26px}
.stay-map-section{margin:32px 0;padding-top:24px;border-top:1px solid var(--gg-border);min-width:0}
.stay-map-section>p{color:var(--gg-text-2);line-height:1.5}
.stay-map-frame{height:380px;width:100%;background:var(--gg-surface);border:1px solid var(--gg-border);border-radius:var(--gg-radius);overflow:hidden;margin:16px 0}
.stay-map-frame iframe{display:block;width:100%;height:380px;border:0}
@media(max-width:759px){
 #main .area-artist-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:560px){
 .featured-strip .featured-heading h2{overflow-wrap:anywhere}
 #main .home-hero h1.results-title{font-size:20px;line-height:1.25}
 #main .area-artist-grid{grid-template-columns:1fr}
}

/* Top picks use the same image-led cards at every screen size, including missing-photo fallbacks. */
#main .whats-on-pick-grid{list-style:none;padding:0;gap:16px;grid-auto-rows:1fr}
#main .whats-on-pick-grid>li{display:flex;min-width:0}
#main .whats-on-pick-grid>li>article{width:100%}
#main .whats-on-experience-pick{padding:0;overflow:hidden}
#main .whats-on-pick-detail{display:flex;flex-direction:column;flex:1;color:inherit;text-decoration:none}
#main .whats-on-pick-photo{position:relative;margin:0;flex:none}
#main .whats-on-pick-photo .experience-image{width:100%;aspect-ratio:16/9;overflow:hidden;background:#1c2128}
#main .whats-on-pick-photo .experience-image>img{display:block;width:100%;height:100%;object-fit:cover;border-radius:0}
#main .whats-on-pick-photo figcaption{position:absolute;bottom:0;left:0;right:0;padding:7px 12px;background:#000c;color:white}
#main .whats-on-pick-copy{padding:12px}
#main .whats-on-pick-copy h3{font-size:17.5px;line-height:1.25;letter-spacing:-.015em;margin:0 0 8px}
#main .whats-on-pick-copy p{font-size:13px;line-height:1.45;color:var(--gg-text-3);margin:6px 0}
#main .whats-on-pick-grid .whats-on-ticket{align-self:flex-start;min-height:44px;margin:0 12px 12px;padding:10px 14px;background:var(--gg-text-1,#fff);color:var(--gg-on-light,var(--gg-on-light));border:1px solid var(--gg-border);border-radius:var(--gg-radius);text-decoration:none}
#main .whats-on-pick-grid .whats-on-ticket:is(:hover,:focus-visible){background:var(--gg-primary-hover,#eee);color:var(--gg-on-light,var(--gg-on-light))}
#main .whats-on-pick-detail:is(:hover,:focus-visible) h3{text-decoration:underline}

/* Required location-data attribution, kept beside its derived content. */
.experience-coordinate-credit{display:block;padding:4px 0;font-family:inherit;font-size:13px;font-style:normal;font-weight:400;letter-spacing:normal;line-height:1.5;color:#fff}
.experience-coordinate-credit a{color:#fff;white-space:nowrap;font-weight:400}
.experience-card>.experience-coordinate-credit{padding:8px 16px}

/* A rail inside a page already has its outer gutter. */
#main>.featured-strip .featured-inner,#main .results-content>.featured-strip .featured-inner{padding-inline:0}
/* No-photo listings use a small intentional brand cue rather than an empty cover. */
#main .card-art:has(>.event-art),#main .card-art:has(>.gig-photo.is-unavailable){display:flex;align-items:center;justify-content:space-between;gap:12px;aspect-ratio:auto;height:auto;min-height:0;padding:16px 16px 0;background:transparent}
#main .card-art:has(>.event-art) .card-time,#main .card-art:has(>.gig-photo.is-unavailable) .card-time{position:static;margin-left:auto}
#main .card-art>.event-art,#main .card-art>.gig-photo.is-unavailable{flex:none;width:32px;height:40px;min-height:0;aspect-ratio:auto;background:transparent;border:0;box-shadow:none}
#main .card-art .event-art:before,#main .card-art .event-art:after,#main .card-art .event-art>span{display:none}
#main .card-art .gig-photo.is-unavailable [data-photo-fallback]{background:transparent;height:40px;min-height:0;aspect-ratio:auto}
#main .card-art .event-art>img{width:28px;height:32px;max-height:32px}
#main .experience-image:has(>.experience-image-fallback:not([hidden])){height:48px;min-height:0;aspect-ratio:auto;background:transparent;padding:12px 16px 0}
#main .experience-card-link .experience-image:has(>.experience-image-fallback:not([hidden])){padding-inline:0}
#main .experience-image>.experience-image-fallback:not([hidden]){position:static;align-items:flex-start;justify-content:flex-start;height:32px;min-height:0;gap:0;background:transparent}
#main .experience-image>.experience-image-fallback>img{width:28px;height:32px;max-height:32px;opacity:1;margin:0}
#main .experience-image>.experience-image-fallback>span{display:none}
#main .event-story>.event-art,#main .event-story>.gig-photo.is-unavailable{display:none}
#main .gig-result:has(>.event-art),#main .gig-result:has(>.gig-photo.is-unavailable){grid-template-columns:44px 32px minmax(0,1fr);min-height:96px}
#main .gig-result:has(>.event-art):has(.save-gig),#main .gig-result:has(>.gig-photo.is-unavailable):has(.save-gig){grid-template-columns:44px 32px minmax(0,1fr) 44px auto}
#main .gig-result>.event-art,#main .gig-result>.gig-photo.is-unavailable{width:32px;height:40px;min-height:0;aspect-ratio:auto;background:transparent;border:0;box-shadow:none}
#main .gig-result>.event-art:before,#main .gig-result>.event-art:after,#main .gig-result>.event-art>span{display:none}
#main .gig-result>.event-art>img,#main .gig-result>.gig-photo.is-unavailable [data-photo-fallback]>img{width:28px;height:32px;max-height:32px}
#main .gig-result>.gig-photo.is-unavailable [data-photo-fallback]{background:transparent;min-height:0;height:40px}
@media(max-width:759px){
 #main .gig-result:has(>.event-art),#main .gig-result:has(>.gig-photo.is-unavailable),#main .gig-result:has(>.event-art):has(.save-gig),#main .gig-result:has(>.gig-photo.is-unavailable):has(.save-gig){grid-template-columns:32px minmax(0,1fr);min-height:104px}
 #main :is(input:not([type]),input[type=text],input[type=search],input[type=email],input[type=tel],input[type=url],input[type=number],input[type=date],textarea,select),#suggestions-query,#mobile-sort .results-sort select{font-size:16px}
}
