/* GUIDE homepage (templates/guide/homepage.blade.php) — motownvegas.com, Pete's DiffUI pick A 11/11 + phone layout 2.
   Mobile first: one column at 390px, no sideways scroll; two columns from 860px. Tokens/header/footer: guide-shared.css. */
body.tpl-guide { margin: 0; background: var(--gd-navy); color: #fff; font-family: var(--gd-text); font-size: 17px; line-height: 1.5; overflow-x: hidden; }
body.tpl-guide .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
body.tpl-guide main.gd { width: 100%; max-width: 1372px; margin: 0 auto; padding: 0 12px 28px; box-sizing: border-box; }
body.tpl-guide .gd :is(h1, h2, h3) { text-transform: none; letter-spacing: 0; }
.gd *, .gd *::before, .gd *::after { box-sizing: border-box; }
.gd a { color: inherit; }

/* ---- hero ---------------------------------------------------------------------------------- */
.gd-hero { text-align: center; padding: 14px 4px 14px; }
.gd-hero-rule { display: flex; align-items: center; justify-content: center; gap: 14px; color: var(--gd-gold); max-width: 680px; margin: 0 auto 4px; }
.gd-hero-rule::before, .gd-hero-rule::after { content: ''; flex: 1 1 0; height: 3px; background: var(--gd-gold); border-radius: 2px; }
.gd-crown { width: 34px; height: auto; flex: 0 0 auto; color: var(--gd-gold); }
.gd-hero h1 { margin: 0; font-family: var(--gd-slab); font-weight: 400; font-size: clamp(28px, 7.6vw, 92px); line-height: 1.04; color: var(--gd-cream); text-shadow: 3px 3px 0 var(--gd-gold-deep); text-wrap: wrap; max-width: 11.3em; margin-inline: auto; }
.gd-intro { margin: 12px auto 0; max-width: 1200px; font-size: clamp(17px, 2.1vw, 25px); line-height: 1.35; color: #fff; text-wrap: balance; }
.gd-updated { margin: 12px 0 0; font-family: var(--gd-label); font-weight: 500; font-size: 13px; letter-spacing: .2em; text-transform: uppercase; color: #fff; }

/* ---- listing cards -------------------------------------------------------------------------- */
.gd-cards { display: grid; grid-template-columns: 1fr; gap: 14px; margin-top: 14px; }
.gd-card { background: var(--gd-navy-deep); border: 5px solid var(--gd-gold); border-radius: 14px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.gd-card-name { margin: 0; padding: 12px 12px 8px; text-align: center; font-family: var(--gd-slab); font-weight: 400; font-size: clamp(30px, 4.2vw, 50px); line-height: 1.05; color: var(--gd-cream); text-shadow: 2px 2px 0 var(--gd-gold-deep); }
.gd-card-name a { text-decoration: none; }
.gd-card-art { display: block; margin: 0 14px; }
.gd-card-art img { display: block; width: 100%; height: auto; aspect-ratio: 30 / 13; object-fit: cover; object-position: center 62%; border-radius: 4px; }

/* Ribbon tagline: a navy plate with a gold edge and folded gold tails, overlapping the photo's lower edge. */
.gd-ribbon { position: relative; z-index: 1; margin: -20px auto 0; width: calc(100% - 64px); max-width: 520px; text-align: center; }
.gd-ribbon span { position: relative; display: block; padding: 7px 12px; background: var(--gd-navy-deep); border: 3px solid var(--gd-gold); font-family: var(--gd-label); font-weight: 500; font-size: clamp(14px, 1.7vw, 20px); letter-spacing: .16em; text-transform: uppercase; color: var(--gd-cream); line-height: 1.25; }
.gd-ribbon::before, .gd-ribbon::after { content: ''; position: absolute; top: 8px; bottom: -6px; width: 26px; background: var(--gd-gold); z-index: -1; }
.gd-ribbon::before { left: -18px; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 34% 50%); }
.gd-ribbon::after { right: -18px; clip-path: polygon(0 0, 100% 0, 66% 50%, 100% 100%, 0 100%); }

.gd-card-panel { flex: 1 1 auto; display: flex; flex-direction: column; margin: 10px 4px 4px; padding: 16px 16px 14px; background: var(--gd-cream); color: var(--gd-ink); border-radius: 8px; }
.gd-card-art + .gd-card-panel { margin-top: 12px; }
.gd-facts { margin: 0 0 14px; display: grid; gap: 5px; }
.gd-facts > div { display: grid; grid-template-columns: 116px 1fr; gap: 12px; align-items: baseline; }
.gd-facts dt { font-family: var(--gd-label); font-weight: 600; font-size: 14px; letter-spacing: .16em; text-transform: uppercase; }
.gd-facts dd { margin: 0; font-size: 18px; line-height: 1.3; min-width: 0; overflow-wrap: anywhere; }
.gd-facts dd a { text-decoration: underline; text-underline-offset: 3px; }
.gd-btn { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 52px; margin-top: auto; padding: 10px 20px; background: var(--gd-gold); color: var(--gd-ink) !important; border-radius: 6px; font-family: var(--gd-label); font-weight: 600; font-size: 22px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; }
.gd-btn:hover, .gd-btn:focus-visible { background: #e3b854; }

/* Outside shows: plain navy cards, thin gold edge, no photo. */
.gd-card--plain { border-width: 3px; padding: 14px 16px 16px; text-align: center; background: var(--gd-navy); }
.gd-card--plain .gd-card-name { padding: 0 0 2px; font-size: clamp(26px, 2.8vw, 34px); }
.gd-card-sub { margin: 2px 0 0; font-family: var(--gd-label); font-weight: 500; font-size: 14px; letter-spacing: .2em; text-transform: uppercase; color: var(--gd-cream); }
.gd-card--plain .gd-facts { width: 100%; max-width: 460px; margin: 12px auto 0; text-align: left; color: #fff; }
.gd-card--plain .gd-facts dt { font-size: 13px; }
.gd-card--plain .gd-facts dd { font-size: 17px; }
.gd-out { margin: 12px 0 0; display: flex; flex-direction: column; align-items: center; gap: 2px; }
.gd-out a { display: inline-flex; align-items: center; min-height: 44px; color: #e9c264 !important; font-weight: 600; font-size: 19px; text-decoration: underline; text-underline-offset: 4px; }
.gd-out small { font-size: 14px; color: #e9e1cf; }

/* ---- cream panels: which show, history, FAQ ----------------------------------------------------- */
.gd-panel { margin-top: 14px; padding: 20px 16px 22px; background: var(--gd-cream); color: var(--gd-ink); border-radius: 8px; }
.gd-panel > h2 { margin: 0 0 12px; text-align: center; font-family: var(--gd-slab); font-weight: 400; font-size: clamp(26px, 3.1vw, 40px); line-height: 1.1; color: var(--gd-ink); text-wrap: balance; }
.gd-which-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 14px; }
.gd-which-list li { padding-top: 14px; border-top: 2px solid var(--gd-gold); }
.gd-which-list li:first-child { padding-top: 0; border-top: 0; }
body.tpl-guide .gd .gd-which-list h3 { margin: 0 0 4px; font-family: var(--gd-label); font-weight: 600; font-size: 17px; letter-spacing: .16em; text-transform: uppercase; }
.gd-which-list p { margin: 0; font-size: 18px; line-height: 1.4; }

.gd-history-intro { margin: -4px auto 14px; max-width: 900px; text-align: center; font-style: italic; font-size: 18px; }
.gd-timeline { list-style: none; margin: 0 auto; padding: 0; max-width: 560px; display: grid; }
.gd-timeline li { position: relative; display: grid; grid-template-columns: 76px 1fr; gap: 12px; padding: 0 0 14px 34px; align-items: baseline; }
.gd-timeline li::before { content: ''; position: absolute; left: 2px; top: 4px; width: 18px; height: 18px; border-radius: 50%; background: var(--gd-gold); }
.gd-timeline li::after { content: ''; position: absolute; left: 9px; top: 12px; bottom: -6px; width: 4px; background: var(--gd-gold); }
.gd-timeline li:last-child { padding-bottom: 0; }
.gd-timeline li:last-child::after { display: none; }
.gd-timeline b { font-family: var(--gd-slab); font-weight: 400; font-size: 19px; }
.gd-timeline span { font-size: 17px; line-height: 1.35; }

.gd-faq-list { max-width: 1040px; margin: 0 auto; border-top: 2px solid var(--gd-gold); }
.gd-faq-item { padding: 12px 4px 14px; border-bottom: 2px solid var(--gd-gold); }
.gd-faq-item h3 { margin: 0 0 4px; font-family: var(--gd-text); font-weight: 600; font-size: 19px; line-height: 1.3; }
.gd-faq-item p { margin: 0; font-size: 17px; line-height: 1.5; }

.gd-disclosure { margin: 18px auto 0; max-width: 900px; text-align: center; font-size: 15px; line-height: 1.45; color: #e9e1cf; }

/* ---- wide screens ----------------------------------------------------------------------------- */
@media (min-width: 860px) {
    body.tpl-guide main.gd { padding: 0 34px 40px; }
    .gd-hero { padding: 18px 0 20px; }
    .gd-crown { width: 56px; }
    .gd-hero h1 { text-shadow: 5px 5px 0 var(--gd-gold-deep); }
    .gd-updated { font-size: 15px; letter-spacing: .24em; }
    .gd-cards { grid-template-columns: 1fr 1fr; gap: 18px; margin-top: 18px; }
    .gd-card-art { margin: 0 20px; }
    .gd-card-panel { padding: 20px 40px 18px; }
    .gd-facts > div { grid-template-columns: 142px 1fr; }
    .gd-facts dt { font-size: 15px; }
    .gd-facts dd { font-size: 20px; }
    .gd-btn { align-self: center; min-width: 52%; min-height: 56px; }
    .gd-card--plain { padding: 16px 24px 18px; }
    .gd-card--plain .gd-facts dd { font-size: 18px; }
    .gd-panel { margin-top: 18px; padding: 26px 40px 30px; }
    .gd-which-list { grid-template-columns: repeat(3, 1fr); gap: 0; }
    .gd-which-list li { padding: 0 36px; border-top: 0; border-left: 2px solid var(--gd-gold); }
    .gd-which-list li:first-child { padding-left: 4px; border-left: 0; }
    .gd-which-list h3 { font-size: 18px; }
    .gd-which-list p { font-size: 20px; }
    .gd-history-intro { font-size: 21px; }
    /* Timeline turns horizontal: a gold line with a dot above each step. */
    .gd-timeline { max-width: none; grid-template-columns: repeat(var(--gd-steps, 3), 1fr); gap: 0 20px; padding-top: 6px; }
    .gd-timeline li { display: block; padding: 34px 0 0; }
    .gd-timeline li::before { left: 0; top: 0; width: 26px; height: 26px; }
    .gd-timeline li::after { left: 0; right: -20px; top: 10px; bottom: auto; width: auto; height: 5px; display: block; }
    .gd-timeline li:last-child::after { right: 0; }
    .gd-timeline b { display: block; font-size: 22px; margin-bottom: 2px; }
    .gd-faq-item h3 { font-size: 21px; }
    .gd-disclosure { font-size: 16px; }
}

/* Shared stylesheets colour paragraphs for dark pages: cream panels need their own ink. */
body.tpl-guide .gd :is(.gd-panel, .gd-card-panel) :is(p, span, b, li, h3, dt, dd, a) { color: var(--gd-ink); }
body.tpl-guide .gd .gd-card-panel .gd-btn { color: var(--gd-ink); }

/* Outside shows with Vegas.com's own show image (Pete 11/11): image above the text on phones, beside it on wide screens. */
.gd-out-art { display: block; width: 100%; max-width: 250px; margin: 0 auto 10px; }
.gd-out-art img { display: block; width: 100%; height: auto; aspect-ratio: 250 / 188; object-fit: cover; border-radius: 4px; border: 2px solid var(--gd-gold); }
.gd-out-body { min-width: 0; }
@media (min-width: 860px) {
    .gd-card--pic { flex-direction: row; align-items: center; gap: 22px; text-align: left; }
    .gd-card--pic .gd-out-art { flex: 0 0 210px; margin: 0; }
    .gd-card--pic .gd-out-body { flex: 1 1 auto; }
    .gd-card--pic .gd-card-name, .gd-card--pic .gd-card-sub { text-align: left; }
    .gd-card--pic .gd-facts { margin-left: 0; }
    .gd-card--pic .gd-out { align-items: flex-start; }
}
.gd-star { color: var(--gd-gold-deep) !important; }

/* ---- articles: "More about … in Las Vegas" (the site's guides; drafts show only in a ?site= preview) ---------- */
.gd-articles { margin-top: 18px; }
body.tpl-guide .gd .gd-articles > h2 { margin: 0 0 12px; text-align: center; font-family: var(--gd-slab); font-weight: 400; font-size: clamp(26px, 3.1vw, 40px); line-height: 1.1; color: var(--gd-cream); text-shadow: 2px 2px 0 var(--gd-gold-deep); text-wrap: balance; }
.gd-article-grid { display: grid; grid-template-columns: 1fr; gap: 14px; }
.gd-article { background: var(--gd-cream); color: var(--gd-ink); border: 3px solid var(--gd-gold); border-radius: 10px; overflow: hidden; display: flex; flex-direction: column; min-width: 0; }
.gd-article-art img { display: block; width: 100%; height: auto; aspect-ratio: 32 / 15; object-fit: cover; }
.gd-article-body { padding: 12px 16px 16px; }
body.tpl-guide .gd .gd-article-body h3 { margin: 0 0 6px; font-family: var(--gd-slab); font-weight: 400; font-size: 22px; line-height: 1.2; }
body.tpl-guide .gd .gd-article-body :is(h3, h3 a, p) { color: var(--gd-ink); }
.gd-article-body h3 a { text-decoration: none; }
.gd-article-body h3 a:hover, .gd-article-body h3 a:focus-visible { text-decoration: underline; text-underline-offset: 3px; }
.gd-article-body p { margin: 0; font-size: 17px; line-height: 1.4; }
body.tpl-guide .gd .gd-article-body .gd-article-draft { margin: 0 0 6px; font-family: var(--gd-label); font-weight: 600; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: #9a1c1c; }
@media (min-width: 860px) {
    .gd-article-grid { grid-template-columns: repeat(3, 1fr); gap: 18px; }
}

/* ---- upcoming dates: a real table of our shows' next 14 days (also the page's Event markup) ---------------- */
.gd-dates-table { width: 100%; max-width: 1040px; margin: 0 auto; border-collapse: collapse; font-size: 17px; }
.gd-dates-table th { text-align: left; padding: 6px 8px; border-bottom: 2px solid var(--gd-gold); font-family: var(--gd-label); font-weight: 600; font-size: 13px; letter-spacing: .14em; text-transform: uppercase; color: var(--gd-ink); }
.gd-dates-table td { padding: 9px 8px; border-bottom: 1px solid rgba(169, 125, 31, .45); vertical-align: top; line-height: 1.3; color: var(--gd-ink); }
.gd-dates-table td small { display: block; font-size: 14px; opacity: .8; }
.gd-dates-table td:last-child, .gd-dates-table th:last-child { text-align: right; white-space: nowrap; }
.gd-dates-table td a { display: inline-block; padding: 4px 0; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.gd-sold { font-family: var(--gd-label); font-size: 14px; letter-spacing: .1em; text-transform: uppercase; }
.gd-dates-more { margin: 14px 0 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 6px 26px; }
.gd-dates-more a { font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 860px) { .gd-dates-table { font-size: 19px; } .gd-dates-table td { padding: 10px 12px; } }
.gd-dates-table td:first-child { white-space: nowrap; }
@media (max-width: 859px) { .gd-dates-table .gd-dot { display: none; } .gd-dates-table .gd-time { display: block; } }
body.tpl-guide .gd .gd-dates-table td small { color: var(--gd-ink); opacity: 1; font-size: 13px; }
@media (max-width: 859px) {
    .gd-dates-table { font-size: 16px; table-layout: auto; }
    .gd-dates-table th, .gd-dates-table td { padding-left: 2px; padding-right: 2px; }
    .gd-dates-table td:nth-child(2) { padding-left: 8px; padding-right: 6px; }
}
.gd-dates-table td:last-child small { display: block; font-size: 12px; }
.gd-dates-table tr.gd-row-ours td:nth-child(2) { font-weight: 600; }
.gd-dates-note { max-width: 1040px; margin: 10px auto 0; font-size: 14px; line-height: 1.4; text-align: center; }

/* A longer headline ("Every Sinatra & Rat Pack Show in Las Vegas"): a little smaller, two balanced lines. */
body.tpl-guide .gd .gd-hero h1.gd-h1--long { font-size: clamp(26px, 6.2vw, 76px); max-width: 17em; text-wrap: balance; }
/* A guide with one show in a group: one centred card, not half an empty row. */
@media (min-width: 860px) {
    .gd-cards:has(> .gd-card:only-child) { grid-template-columns: minmax(0, 760px); justify-content: center; }
}

/* Parts only some looks show (config sites.guide_looks): hidden in the engine's own Marquee look. */
.gd-tagline, .gd-hero-art, .gd-kicker { display: none; }
.gd-dates-table .gd-col-venue { display: none; }

/* Comparison table: one column per show, one row per fact. On phones each fact's label sits on its own line above the
   values, so the show columns get the full width (no sideways scroll). */
.gd-compare-table { width: 100%; max-width: 1040px; margin: 0 auto; border-collapse: collapse; font-size: 15px; line-height: 1.3; color: var(--gd-ink); }
.gd-compare-table thead th { text-align: left; vertical-align: bottom; font-weight: 700; font-size: 16px; line-height: 1.2; }
.gd-compare-table tbody th { text-align: left; font-family: var(--gd-label); font-weight: 600; font-size: 12px; letter-spacing: .14em; text-transform: uppercase; }
.gd-compare-table td { vertical-align: top; overflow-wrap: break-word; }
.gd-compare-table .gd-cmp-cost b { font-size: 19px; letter-spacing: .04em; }
.gd-compare-table small { display: block; font-size: 13px; }
body.tpl-guide .gd .gd-compare-table small { color: inherit; opacity: .8; }
.gd-compare-table .gd-cmp-go a { display: inline-block; padding: 6px 0; font-weight: 700; white-space: nowrap; text-decoration: underline; text-underline-offset: 3px; }
@media (max-width: 859px) {
    .gd-compare-table, .gd-compare-table thead, .gd-compare-table tbody { display: block; }
    .gd-compare-table tr { display: grid; grid-template-columns: repeat(var(--gd-cols, 2), minmax(0, 1fr)); column-gap: 10px; border-bottom: 1px solid rgba(169, 125, 31, .45); }
    .gd-compare-table thead tr { border-bottom: 2px solid var(--gd-gold); align-items: end; }
    .gd-compare-table .gd-cmp-corner { display: none; }
    .gd-compare-table thead th { padding: 0 0 8px; }
    .gd-compare-table tbody th { grid-column: 1 / -1; padding: 8px 0 1px; }
    .gd-compare-table td { padding: 0 0 8px; }
    .gd-compare-table tbody tr:last-child { border-bottom: 0; }
    .gd-compare-table td { hyphens: auto; }
    .gd-compare-table--many { font-size: 14px; }
    .gd-compare-table--many tr { column-gap: 8px; }
    .gd-compare-table--many thead th { font-size: 15px; }
}
@media (min-width: 860px) {
    .gd-compare-table { font-size: 18px; }
    .gd-compare-table thead th { padding: 8px 12px; font-size: 20px; border-bottom: 2px solid var(--gd-gold); }
    .gd-compare-table tbody th { width: 150px; padding: 10px 12px 10px 0; font-size: 13px; vertical-align: top; border-bottom: 1px solid rgba(169, 125, 31, .45); }
    .gd-compare-table td { padding: 10px 12px; border-bottom: 1px solid rgba(169, 125, 31, .45); }
    .gd-compare-table .gd-cmp-cost b { font-size: 22px; }
}

/* "More Las Vegas guides": the guide sites linking to each other (ShowGuide::network). */
.gd-network-list { list-style: none; margin: 0 auto; padding: 0; max-width: 1040px; display: grid; gap: 10px; }
.gd-network-list a { display: block; padding: 12px 14px; border: 2px solid var(--gd-gold); border-radius: 8px; text-decoration: none; line-height: 1.3; }
.gd-network-list b { display: block; font-size: 19px; }
.gd-network-list small { display: block; margin-top: 2px; font-size: 15px; }
body.tpl-guide .gd .gd-network-list small { color: inherit; opacity: .85; }
.gd-network-list a:hover b { text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 860px) { .gd-network-list { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 14px; } }

/* Credit beside "Last updated" (guide_credit). */
body.tpl-guide .gd .gd-updated a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Drive time from the centre of the Strip: a clock-face dial (the wedge is the minutes out of an hour) + the minutes. */
.gd-drive { display: flex; align-items: center; gap: 7px; margin-bottom: 3px; }
.gd-dial { flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%; box-sizing: border-box; border: 2px solid var(--gd-dial, var(--gd-ink)); background: conic-gradient(var(--gd-dial, var(--gd-ink)) calc(var(--m, 5) * 6deg), transparent 0); }
.gd-drive b { font-size: 17px; line-height: 1; white-space: nowrap; }
.gd-compare-table tbody th small { display: inline; font-weight: 400; letter-spacing: 0; text-transform: none; font-size: 12px; }
.gd-compare-table .gd-loc { display: block; font-size: 13px; }
@media (max-width: 859px) {
    .gd-compare-table--many .gd-drive { flex-direction: column; align-items: flex-start; gap: 3px; }
}

/* Dates table: show names are links; on phones the rows are kept short (the venue is in the comparison table above). */
.gd-dates-table td a.gd-date-show { padding: 0; color: inherit; text-decoration-thickness: 1px; }
@media (max-width: 859px) {
    .gd-dates-table td:nth-child(2) small { display: none; }
    .gd-dates-table td { padding-top: 6px; padding-bottom: 6px; }
    .gd-dates-table td a { padding: 2px 0; }
}

/* A long comparison is split into several tables (homepage.blade.php). */
.gd-compare-table + .gd-compare-table { margin-top: 22px; }

/* Credit line under an own-website listing's free-licence picture. */
.gd-photo-credit { display: block; margin: -8px 0 10px; font-size: 11px; line-height: 1.3; opacity: .75; }

/* Things to do (Admin → Guide Sites → "Things to do"; ShowGuide::things) */
.gd-things-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 12px; }
.gd-things-list li { padding: 14px 16px; border: 2px solid var(--gd-gold); border-radius: 8px; }
.gd-things-list h3 { margin: 0 0 4px; font-size: 20px; line-height: 1.2; }
.gd-things-list h3 a { color: inherit; text-decoration: underline; text-underline-offset: 3px; }
.gd-things-list p { margin: 4px 0 0; font-size: 16px; line-height: 1.5; }
.gd-things-meta { display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: 15px; }
.gd-things-meta b { text-transform: uppercase; letter-spacing: .06em; }
@media (min-width: 860px) { .gd-things-list { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }

/* Special events (listings ticked "Special event": one-off concerts, festivals) */
.gd-events-list { display: grid; gap: 12px; }
.gd-event { display: flex; flex-direction: column; padding: 16px 18px; border: 2px solid var(--gd-gold); border-radius: 8px; }
.gd-event-name { margin: 0; font-size: 22px; line-height: 1.15; }
.gd-event-name a { color: inherit; text-decoration: none; }
.gd-event-sub { margin: 6px 0 10px; font-size: 16px; line-height: 1.45; }
.gd-event .gd-facts { margin: 0 0 14px; }
.gd-event .gd-btn, .gd-event .gd-out { margin-top: auto; }
@media (min-width: 860px) { .gd-events-list { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 14px; } }
.gd-event-art { display: block; margin: -16px -18px 12px; }
.gd-event-art img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px 6px 0 0; }
.gd-event .gd-photo-credit { display: block; margin: -8px 0 8px; font-size: 12px; opacity: .75; }

/* Guide-site footer (components/layout/footer.blade.php, $ftGuide): plain link lists, no contact column */
.footer-grid--guide ul.footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 6px; }
.footer-grid--guide .footer-about-text { margin-top: 6px; line-height: 1.5; }

/* "A tribute to …" line and the artist filter chips (listing fields honors / genre) */
.gd-honors { margin: 4px 0 8px; font-size: 16px; line-height: 1.3; opacity: .85; }
.gd-filter { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin: 18px 0 6px; }
.gd-filter-label { font-weight: 700; margin-right: 4px; }
.gd-chip { padding: 8px 18px; border: 0; border-radius: 999px; background: #ece7df; color: #1d1d1f; font: inherit; font-weight: 600; cursor: pointer; }
.gd-chip.is-on { background: #c8102e; color: #fff; }
.gd-shows .gd-card[hidden] { display: none !important; }

/* Second seller (Viator) under the first ticket link: same size, outlined, so the two prices sit side by side */
.gd-out--viator { margin-top: 6px !important; }
.gd .gd-out--viator a { background: transparent !important; color: inherit !important; border: 2px solid currentColor !important; }
.gd-cmp-go .gd-cmp-alt { display: inline-block; margin-top: 6px; font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }

/* "Buy tickets" block: the sellers side by side, each with its price; the cheaper one is marked (Pete 11/12) */
.gd-buy { margin-top: auto; padding-top: 6px; }
.gd-buy-label { margin: 0 0 6px; font-weight: 700; font-size: 14px; letter-spacing: .04em; text-transform: uppercase; opacity: .75; }
.gd-buy-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(0, 1fr)); gap: 8px; }
.gd .gd-buy-btn { position: relative; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; min-height: 58px; padding: 9px 8px 8px; border: 2px solid currentColor; border-radius: 6px; background: transparent; color: inherit; text-align: center; text-decoration: none; line-height: 1.15; }
.gd .gd-buy-btn:hover, .gd .gd-buy-btn:focus-visible { background: rgba(0, 0, 0, .05); }
.gd-buy-seller { font-weight: 800; font-size: 17px; }
.gd-buy-price { font-size: 14px; }
.gd-buy-low { position: absolute; top: -10px; left: 50%; transform: translateX(-50%); padding: 1px 8px; border-radius: 999px; background: #1f7a3a; color: #fff; font-size: 11px; font-weight: 700; white-space: nowrap; }
.gd .gd-buy-btn.is-lowest { border-color: #1f7a3a; }
.gd-buy-note { display: block; margin-top: 6px; font-size: 12px; opacity: .7; }
.gd-sort { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px 10px; margin-left: auto; }
@media (max-width: 759px) { .gd-sort { margin-left: 0; } }

/* Our own shows: "Buy direct from the Box Office" (Pete 11/12: should say best deal and look better than the other options). */
body.tpl-guide .gd .gd-btn.gd-btn--direct { flex-direction: column; gap: 6px; padding-top: 12px; padding-bottom: 12px; line-height: 1.15; box-shadow: 0 4px 0 rgba(0, 0, 0, .28), 0 8px 18px rgba(0, 0, 0, .18); }
body.tpl-guide .gd .gd-btn--direct .gd-direct-tag { display: inline-block; padding: 3px 10px; background: #fff; color: #1d1d1f; border-radius: 999px; font-family: 'Source Sans 3', Arial, sans-serif; font-size: 12px; font-weight: 800; letter-spacing: .14em; line-height: 1.2; text-transform: uppercase; }
body.tpl-guide .gd .gd-btn--direct .gd-direct-main { font-size: .82em; letter-spacing: .04em; }
