/* 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-which-art { margin: 0 0 10px; }
.gd-which-art img { display: block; width: 100%; height: auto; aspect-ratio: 3 / 2; object-fit: cover; border-radius: 6px; }
.gd-which-art .gd-photo-credit { display: block; margin-top: 4px; font-size: 11px; line-height: 1.3; opacity: .7; }
.gd-which-art .gd-photo-credit a { color: inherit; }

.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; }
    /* Equal columns: spacing is the grid gap, and the divider is drawn in the middle of the gap in the li's own border colour (looks recolour it). */
    .gd-which-list { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 72px; }
    .gd-which-list li { position: relative; padding: 0; border-top: 0; border-left: 0 solid var(--gd-gold); }
    .gd-which-list li:first-child { padding: 0; }
    .gd-which-list li + li::before { content: ''; position: absolute; top: 0; bottom: 0; left: -37px; border-left: 2px solid; border-left-color: inherit; }
    .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, .gd-card-venue { 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; }
/* Two or more sellers: one full-width row each (name left, price right), cheapest first (Pete 11/12 picked "stacked rows") */
.gd-buy-row--stack { grid-template-columns: 1fr; gap: 6px; }
body.tpl-guide .gd .gd-buy-row--stack .gd-buy-btn { flex-direction: row; justify-content: space-between; align-items: center; gap: 10px; min-height: 48px; padding: 8px 14px; text-align: left; }
body.tpl-guide .gd .gd-buy-row--stack .gd-buy-seller { display: flex; align-items: center; flex-wrap: wrap; gap: 2px 8px; min-width: 0; }
body.tpl-guide .gd .gd-buy-row--stack .gd-buy-price { white-space: nowrap; font-size: 15px; }
body.tpl-guide .gd .gd-buy-row--stack .gd-buy-low { position: static; transform: none; font-family: inherit; letter-spacing: 0; }
.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: Box Office button in the seller-button style (Pete 11/12: the Vegas.com/Viator buttons look best, ours looked boring).
   Same shape as .gd-buy-btn, bigger, filled in the look's red, gold "Best deal" tab where the sellers show "Lowest price". */
body.tpl-guide .gd .gd-buy-btn.gd-direct { min-height: 76px; padding: 15px 12px 11px; background: var(--ps-red, var(--mc-red, var(--at-red, #c8102e))) !important; border: 2px solid transparent !important; border-radius: 8px; color: #fff !important; font-family: var(--ps-cond, 'Oswald', 'Arial Narrow', sans-serif); box-shadow: 0 3px 0 rgba(0, 0, 0, .28), 0 8px 18px rgba(0, 0, 0, .16); transition: transform .12s ease, filter .12s ease; }
body.tpl-guide .gd .gd-buy-btn.gd-direct:hover, body.tpl-guide .gd .gd-buy-btn.gd-direct:focus-visible { filter: brightness(1.08); transform: translateY(-1px); }
body.tpl-guide .gd .gd-direct .gd-buy-seller { font-size: 27px; font-weight: 700; letter-spacing: .01em; line-height: 1.05; }
body.tpl-guide .gd .gd-direct .gd-buy-price { font-size: 16px; opacity: .95; }
body.tpl-guide .gd .gd-direct .gd-direct-badge { top: -12px; padding: 2px 12px; background: #f5c518; color: #1d1d1f; font-size: 13px; font-weight: 800; letter-spacing: .04em; box-shadow: 0 1px 3px rgba(0, 0, 0, .25); }
body.tpl-guide .gd .gd-buy--direct .gd-buy-row { grid-template-columns: 1fr; }
body.tpl-guide .gd .gd-buy-btn.gd-direct .gd-buy-seller, body.tpl-guide .gd .gd-buy-btn.gd-direct .gd-buy-seller *, body.tpl-guide .gd .gd-buy-btn.gd-direct .gd-buy-price { color: #fff !important; }
body.tpl-guide .gd .gd-buy-label { color: inherit !important; opacity: .85 !important; }

/* Recommended = our own shows (Pete 11/12: "make the recommended show (ours) stand out more"): gold frame + red ribbon on the photo. */
body.tpl-guide .gd .gd-shows .gd-card:not(.gd-card--plain), body.tpl-guide .gd .gd-event--ours { position: relative; box-shadow: 0 0 0 3px #f5c518, 0 8px 22px rgba(0, 0, 0, .16) !important; }
body.tpl-guide .gd .gd-rec { position: absolute; top: 12px; left: 12px; z-index: 3; padding: 4px 12px; background: #c8102e; color: #fff; border-radius: 999px; font-family: 'Source Sans 3', Arial, sans-serif; font-size: 12px; font-weight: 800; letter-spacing: .08em; line-height: 1.2; text-transform: uppercase; box-shadow: 0 2px 6px rgba(0, 0, 0, .35); pointer-events: none; }
/* Marquee look: the name is centred at the top of the card, so it starts below the Recommended badge (it hid the first word on phones). */
body.tpl-guide.gd-look-marquee .gd .gd-rec + .gd-card-name { padding-top: 44px; }

/* Phones: comparison-table ticket buttons wrap inside their cell instead of pushing the page sideways. */
@media (max-width: 640px) {
    body.tpl-guide .gd .gd-compare-table td { min-width: 0; }
    body.tpl-guide .gd .gd-compare-table .gd-cmp-go a { max-width: 100%; box-sizing: border-box; white-space: normal !important; padding-left: 6px !important; padding-right: 6px !important; font-size: 14px !important; letter-spacing: 0 !important; overflow-wrap: normal; word-break: normal; }
}

/* Day picker above a long dates table (more than 30 rows): one day at a time, or all dates. Rows are hidden by script only. */
.gd-daypick { display: flex; flex-wrap: wrap; gap: 8px; max-width: 1040px; margin: 0 auto 14px; }
.gd-daypick .gd-chip { padding: 8px 14px; }
.gd-dates-table tbody tr[hidden] { display: none !important; }
.gd-events .gd-event[hidden], .gd-panel.gd-events[hidden] { display: none !important; }

/* "More Las Vegas guides": each guide's own icon beside its name (Pete 11/14: "needs some work, maybe some graphics, across all sites"). */
.gd-network-list a { display: grid; grid-template-columns: 56px minmax(0, 1fr); gap: 14px; align-items: center; }
.gd-network-icon { display: block; width: 56px; height: 56px; border-radius: 12px; object-fit: cover; }
.gd-network-icon--letter { display: flex; align-items: center; justify-content: center; background: var(--gd-ink); color: var(--gd-cream) !important; font-weight: 800; font-size: 28px; line-height: 1; }
.gd-network-text { min-width: 0; }
@media (min-width: 860px) { .gd-network-list { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); } }

/* "Sponsored by Sin City Seats" under each of our own (featured) listings, and the producer call-out near the foot of the page (Pete 11/14). */
.gd-sponsor { margin: 10px 0 0; text-align: center; font-size: 13px; line-height: 1.3; opacity: .85; }
.gd-sponsor a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.gd-event .gd-sponsor { margin-top: 8px; }
.gd-producers { text-align: center; }
.gd-producers-text { max-width: 760px; margin: 0 auto 14px; font-size: 17px; line-height: 1.45; }
.gd-producers-links { margin: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 10px 14px; }
body.tpl-guide .gd .gd-producers-btn { display: inline-flex; align-items: center; gap: 8px; min-height: 46px; padding: 10px 18px; border: 2px solid var(--gd-ink); border-radius: 6px; background: var(--gd-ink); color: var(--gd-cream); font-weight: 700; font-size: 16px; line-height: 1.2; text-decoration: none; }
body.tpl-guide .gd .gd-producers-btn span { color: inherit; }
body.tpl-guide .gd .gd-producers-btn--plain { background: transparent; color: var(--gd-ink); }
/* Every "More Las Vegas guides" tile is the same size, whatever the length of its text (Pete 11/14). */
body.tpl-guide .gd .gd-network-list { align-items: stretch; grid-auto-rows: 1fr; }
body.tpl-guide .gd .gd-network-list li { display: flex; min-width: 0; }
body.tpl-guide .gd .gd-network-list a { flex: 1 1 auto; box-sizing: border-box; min-height: 88px; height: 100%; margin: 0; }
/* Producer call-out: fixed, readable button colours in every look (the look tokens made dark text on a dark button), and the
   text follows the heading: centred in the Marquee look, left in the others. */
body.tpl-guide .gd .gd-producers .gd-producers-btn, body.tpl-guide .gd .gd-producers .gd-producers-btn span { color: #ffffff !important; }
body.tpl-guide .gd .gd-producers .gd-producers-btn { background: #14213d !important; border-color: #14213d !important; }
body.tpl-guide .gd .gd-producers .gd-producers-btn--plain, body.tpl-guide .gd .gd-producers .gd-producers-btn--plain span { color: #14213d !important; }
body.tpl-guide .gd .gd-producers .gd-producers-btn--plain { background: #ffffff !important; border-color: #14213d !important; }
body.tpl-guide .gd .gd-producers .gd-producers-btn:hover, body.tpl-guide .gd .gd-producers .gd-producers-btn:focus-visible { filter: brightness(1.15); }
body.tpl-guide:not(.gd-look-marquee) .gd .gd-producers { text-align: left; }
body.tpl-guide:not(.gd-look-marquee) .gd .gd-producers-text { margin-left: 0; margin-right: 0; }
body.tpl-guide:not(.gd-look-marquee) .gd .gd-producers-links { justify-content: flex-start; }

/* Heading + sort buttons directly above the general listings (looks with events_first; Pete 11/14: the sort belongs to those listings). */
.gd-sortbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 10px 16px; margin: 22px 0 12px; }
body.tpl-guide .gd .gd-sortbar-h { margin: 0; font-size: clamp(24px, 2.8vw, 34px); line-height: 1.1; }
.gd-sortbar-btns { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.gd-shows .gd-cards[hidden], .gd-sortbar[hidden] { display: none !important; }
/* Corner tags on a card ("Family friendly", "Just added"): only looks that place them show them. */
.gd-tag { display: none; }

/* Newsletter signup after the listings, and the "Latest from Vegas411" strip (Pete 11/14). Fixed, readable colours in every look. */
.gd-signup { display: grid; gap: 12px; align-items: center; }
body.tpl-guide .gd .gd-signup h2 { margin: 0 0 4px; text-align: left; }
.gd-signup-copy p { margin: 0; font-size: 16px; line-height: 1.4; }
.gd-signup-form { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0; }
.gd-signup-form input[type="email"] { flex: 1 1 220px; min-width: 0; min-height: 46px; padding: 8px 12px; box-sizing: border-box; border: 2px solid #14213d; border-radius: 6px; background: #ffffff; color: #14213d; font: inherit; font-size: 16px; }
.gd-signup-form button { flex: 0 0 auto; min-height: 46px; padding: 8px 20px; border: 2px solid #14213d; border-radius: 6px; background: #14213d; color: #ffffff; font: inherit; font-weight: 700; font-size: 16px; cursor: pointer; }
.gd-signup-form button:disabled { opacity: .6; cursor: default; }
.gd-signup-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
body.tpl-guide .gd .gd-signup-msg { flex: 1 1 100%; margin: 0; font-size: 15px; font-weight: 700; color: #9a1c1c; }
body.tpl-guide .gd .gd-signup-msg.is-ok { color: #1f7a3a; }
@media (min-width: 860px) { .gd-signup { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 24px; } }
.gd-news-more { margin: 12px 0 0; text-align: center; }
.gd-news-more a { font-weight: 700; text-decoration: underline; text-underline-offset: 3px; }
.gd-news .gd-article-art img { aspect-ratio: 3 / 2; }
/* Signup heading and the "more news" link: fixed colours (shared stylesheets tinted them unreadably on the light looks). */
body.tpl-guide .gd .gd-signup h2 { color: var(--nl-ink) !important; text-shadow: none; }
body.tpl-guide .gd .gd-signup .gd-signup-copy p { color: var(--nl-ink) !important; }
body.tpl-guide .gd .gd-news-more a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 8px 18px; border: 2px solid #14213d; border-radius: 6px; background: #ffffff; color: #14213d !important; text-decoration: none; }
body.tpl-guide .gd .gd-news-more a span { color: inherit !important; }
/* Phones and tablets: a news story is a short row (small picture left, headline right), not a full-width photo. */
@media (max-width: 859px) {
    .gd-news .gd-article { flex-direction: row; align-items: stretch; }
    .gd-news .gd-article-art { flex: 0 0 112px; }
    .gd-news .gd-article-art img { width: 112px; height: 100%; min-height: 96px; aspect-ratio: auto; object-fit: cover; }
    .gd-news .gd-article-body { padding: 10px 12px; min-width: 0; }
    body.tpl-guide .gd .gd-news .gd-article-body h3 { font-size: 17px; line-height: 1.25; margin: 0; }
    .gd-news .gd-article-body p { display: none; }
}

/* ==== Newsletter call-out (Pete 11/14: "needs a CTA and to stand out on each site") ====================================
   A solid band in each look's own strongest colour, with a labelled envelope line, a big heading, the email box and one
   large button. Every colour is set here per look, so the text is readable whatever the look does to panels. */
body.tpl-guide { --nl-bg: #d4a53a; --nl-ink: #0f1f47; --nl-btn: #0f1f47; --nl-btn-ink: #f5edda; --nl-accent: #0f1f47; }
body.tpl-guide.gd-look-supperclub { --nl-bg: #141414; --nl-ink: #f6f0e4; --nl-btn: #c8402a; --nl-btn-ink: #ffffff; --nl-accent: #f2a594; }
body.tpl-guide.gd-look-sunnyside { --nl-bg: #0f2a5f; --nl-ink: #fdfaf2; --nl-btn: #f6c531; --nl-btn-ink: #0f2a5f; --nl-accent: #f6c531; }
body.tpl-guide.gd-look-atomic { --nl-bg: #1d2b2f; --nl-ink: #f6efdf; --nl-btn: #f2899c; --nl-btn-ink: #1d2b2f; --nl-accent: #f2899c; }
body.tpl-guide.gd-look-menucard { --nl-bg: #8b1a24; --nl-ink: #fffaf0; --nl-btn: #c9a24a; --nl-btn-ink: #1f1a17; --nl-accent: #f3e3b8; }
body.tpl-guide.gd-look-poster { --nl-bg: #d0102a; --nl-ink: #ffffff; --nl-btn: #ffd200; --nl-btn-ink: #0e0e0e; --nl-accent: #ffd200; }
body.tpl-guide.gd-look-standup { --nl-bg: #0b4fc9; --nl-ink: #ffffff; --nl-btn: #ffe14a; --nl-btn-ink: #111f4e; --nl-accent: #ffe14a; }
body.tpl-guide .gd .gd-panel.gd-signup { background: var(--nl-bg) !important; border: 0 !important; border-radius: 12px; padding: 22px 18px 24px; color: var(--nl-ink) !important; box-shadow: none; }
body.tpl-guide .gd .gd-signup .gd-signup-eyebrow { display: flex; align-items: center; gap: 8px; margin: 0 0 6px; font-size: 13px; font-weight: 800; letter-spacing: .14em; line-height: 1.2; text-transform: uppercase; color: var(--nl-accent) !important; }
body.tpl-guide .gd .gd-signup .gd-signup-eyebrow svg { flex: 0 0 auto; color: var(--nl-accent); }
body.tpl-guide .gd .gd-signup h2 { margin: 0 0 6px; padding: 0; background: none; transform: none; clip-path: none; text-align: left; font-size: clamp(27px, 3.2vw, 40px); line-height: 1.08; }
body.tpl-guide .gd .gd-signup .gd-signup-text { margin: 0; max-width: 34em; font-size: 17px; line-height: 1.4; }
body.tpl-guide .gd .gd-signup-form { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
body.tpl-guide .gd .gd-signup-form input[type="email"] { width: 100%; min-height: 54px; padding: 10px 14px; border: 2px solid var(--nl-btn); border-radius: 8px; background: #ffffff; color: #14213d; font-size: 17px; }
body.tpl-guide .gd .gd-signup-form button { width: 100%; min-height: 56px; padding: 10px 20px; border: 2px solid var(--nl-btn); border-radius: 8px; background: var(--nl-btn); color: var(--nl-btn-ink) !important; font-size: 19px; font-weight: 800; letter-spacing: .01em; line-height: 1.15; box-shadow: 0 3px 0 rgba(0, 0, 0, .28); }
body.tpl-guide .gd .gd-signup-form button span { color: inherit !important; }
body.tpl-guide .gd .gd-signup-form button:hover, body.tpl-guide .gd .gd-signup-form button:focus-visible { filter: brightness(1.08); }
body.tpl-guide .gd .gd-signup .gd-signup-note { margin: 0; font-size: 13px; line-height: 1.3; color: var(--nl-ink) !important; opacity: .85; }
body.tpl-guide .gd .gd-signup .gd-signup-msg, body.tpl-guide .gd .gd-signup .gd-signup-msg.is-ok { margin: 0; padding: 8px 12px; border-radius: 6px; background: #ffffff; color: #9a1c1c !important; font-size: 15px; font-weight: 700; }
body.tpl-guide .gd .gd-signup .gd-signup-msg.is-ok { color: #1f7a3a !important; }
@media (min-width: 860px) {
    body.tpl-guide .gd .gd-panel.gd-signup { grid-template-columns: minmax(0, 1.15fr) minmax(0, 1fr); gap: 34px; padding: 30px 36px; }
}

/* ==== The three blocks at the foot of a guide, each with its own look (Pete 11/14: "this all looks jumbled up... should look
   more distinctive"; "Vegas411 should not be listed in the blocks but separately as the headline") =========================
   1. Vegas411 news: a white box with an accent top edge and a labelled heading.
   2. For producers: one dark bar, copy left and buttons right.
   3. More guides: a Vegas411 headline banner in the look's accent colour, then the guide tiles.
   Colours are fixed here so every look reads the same way. */
body.tpl-guide .gd .gd-news, body.tpl-guide .gd .gd-panel.gd-producers, body.tpl-guide .gd .gd-panel.gd-network { margin-top: 30px; }
body.tpl-guide .gd :is(.gd-news, .gd-producers, .gd-network) > h2, body.tpl-guide .gd .gd-producers-copy > h2 { display: block; margin: 0 0 12px; padding: 0; background: none; transform: none; clip-path: none; text-align: left; text-shadow: none; font-size: clamp(22px, 2.5vw, 30px) !important; line-height: 1.12; }

/* 1. news */
body.tpl-guide .gd .gd-articles.gd-news { padding: 18px 16px 20px; background: #ffffff; border: 1px solid #d9dce6; border-top: 6px solid var(--nl-bg); border-radius: 10px; }
body.tpl-guide .gd .gd-news-eyebrow { display: inline-block; margin: 0 0 8px; padding: 3px 10px; border-radius: 4px; background: var(--nl-bg); color: var(--nl-ink) !important; font-size: 12px; font-weight: 800; letter-spacing: .12em; line-height: 1.3; text-transform: uppercase; }
body.tpl-guide .gd .gd-news > h2 { color: #14213d !important; }
body.tpl-guide .gd .gd-news .gd-article { background: #f6f7fb; border: 1px solid #d9dce6; border-radius: 8px; box-shadow: none; }
body.tpl-guide .gd .gd-news .gd-article-body :is(h3, h3 a) { color: #14213d !important; }
body.tpl-guide .gd .gd-news .gd-article-body p { color: #3a4563 !important; }
body.tpl-guide .gd .gd-news-more { text-align: left; }

/* 2. producers */
body.tpl-guide .gd .gd-panel.gd-producers { display: grid; gap: 14px; padding: 20px 18px; background: #14213d !important; border: 0 !important; border-radius: 10px; text-align: left; box-shadow: none; }
body.tpl-guide .gd .gd-producers-eyebrow { margin: 0 0 6px; font-size: 12px; font-weight: 800; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; color: #ffd166 !important; }
body.tpl-guide .gd .gd-producers-copy > h2 { margin-bottom: 6px; color: #ffffff !important; }
body.tpl-guide .gd .gd-producers .gd-producers-text { margin: 0; max-width: 46em; font-size: 16px; line-height: 1.45; color: #dfe4f2 !important; }
body.tpl-guide .gd .gd-producers .gd-producers-links { justify-content: flex-start; margin: 0; }
body.tpl-guide .gd .gd-producers .gd-producers-btn { background: #ffd166 !important; border-color: #ffd166 !important; }
body.tpl-guide .gd .gd-producers .gd-producers-btn, body.tpl-guide .gd .gd-producers .gd-producers-btn span { color: #14213d !important; }
body.tpl-guide .gd .gd-producers .gd-producers-btn--plain { background: transparent !important; border-color: #ffffff !important; }
body.tpl-guide .gd .gd-producers .gd-producers-btn--plain, body.tpl-guide .gd .gd-producers .gd-producers-btn--plain span { color: #ffffff !important; }
@media (min-width: 860px) {
    body.tpl-guide .gd .gd-panel.gd-producers { grid-template-columns: minmax(0, 1fr) auto; align-items: center; gap: 28px; padding: 24px 30px; }
    body.tpl-guide .gd .gd-producers .gd-producers-links { flex-direction: column; align-items: stretch; }
    body.tpl-guide .gd .gd-producers .gd-producers-btn { justify-content: center; }
}

/* 3. more guides: Vegas411 headline banner, then the tiles */
body.tpl-guide .gd .gd-network-lead { display: grid; gap: 2px 22px; margin: 0 0 20px; padding: 18px 20px; border-radius: 10px; background: var(--nl-bg); text-decoration: none; }
body.tpl-guide .gd .gd-network-lead span { color: var(--nl-ink) !important; }
body.tpl-guide .gd .gd-network-lead-by { font-size: 12px; font-weight: 800; letter-spacing: .14em; line-height: 1.3; text-transform: uppercase; opacity: .9; }
body.tpl-guide .gd .gd-network-lead-name { font-size: clamp(36px, 5vw, 58px); font-weight: 900; letter-spacing: -.01em; line-height: 1; }
body.tpl-guide .gd .gd-network-lead-text { font-size: 17px; font-weight: 700; line-height: 1.3; }
body.tpl-guide .gd .gd-network-lead:hover .gd-network-lead-text, body.tpl-guide .gd .gd-network-lead:focus-visible .gd-network-lead-text { text-decoration: underline; text-underline-offset: 3px; }
@media (min-width: 860px) {
    body.tpl-guide .gd .gd-network-lead { grid-template-columns: auto minmax(0, 1fr); align-items: end; padding: 22px 28px; }
    body.tpl-guide .gd .gd-network-lead-by { grid-column: 1 / -1; }
    body.tpl-guide .gd .gd-network-lead-text { padding-bottom: 6px; }
}

/* ==== Newsletter call-out with a Vegas marquee feel (Pete 11/14: "it should have a VEGAS fun feel -- we want them to sign up
   for Vegas news, information, discounts") ==================================================================================
   Marquee bulbs run along the top and bottom edges, a "FREE" starburst sits on the corner, and three perks are listed with
   stars. Flat shapes only (no glow). --nl-bulb is the bulb colour per look. */
body.tpl-guide { --nl-bulb: #fff6d6; }
body.tpl-guide.gd-look-supperclub { --nl-bulb: #ffd166; }
body.tpl-guide.gd-look-sunnyside { --nl-bulb: #f6c531; }
body.tpl-guide.gd-look-atomic { --nl-bulb: #f4c95d; }
body.tpl-guide.gd-look-menucard { --nl-bulb: #f3e3b8; }
body.tpl-guide.gd-look-poster { --nl-bulb: #ffd200; }
body.tpl-guide.gd-look-standup { --nl-bulb: #ffe14a; }
body.tpl-guide .gd .gd-panel.gd-signup { position: relative; overflow: visible; padding: 38px 18px 40px; border-radius: 14px;
    background-image: radial-gradient(circle, var(--nl-bulb) 0 4.5px, transparent 5.5px), radial-gradient(circle, var(--nl-bulb) 0 4.5px, transparent 5.5px) !important;
    background-size: 24px 14px, 24px 14px !important; background-repeat: repeat-x, repeat-x !important; background-position: 12px 8px, 12px calc(100% - 8px) !important; background-color: var(--nl-bg) !important; }
body.tpl-guide .gd .gd-signup-burst { position: absolute; top: -18px; right: 14px; z-index: 2; display: flex; align-items: center; justify-content: center; width: 78px; height: 78px; background: var(--nl-btn); transform: rotate(12deg);
    clip-path: polygon(50% 0, 61% 12%, 75% 5%, 79% 20%, 95% 21%, 90% 36%, 100% 50%, 90% 64%, 95% 79%, 79% 80%, 75% 95%, 61% 88%, 50% 100%, 39% 88%, 25% 95%, 21% 80%, 5% 79%, 10% 64%, 0 50%, 10% 36%, 5% 21%, 21% 20%, 25% 5%, 39% 12%); }
body.tpl-guide .gd .gd-signup-burst b { font-size: 17px; font-weight: 900; letter-spacing: .04em; text-transform: uppercase; color: var(--nl-btn-ink) !important; }
body.tpl-guide .gd .gd-signup .gd-signup-eyebrow { gap: 8px; font-size: 14px; letter-spacing: .2em; }
body.tpl-guide .gd .gd-signup .gd-signup-eyebrow span { color: var(--nl-bulb) !important; font-size: 15px; letter-spacing: 0; }
body.tpl-guide .gd .gd-signup h2 { font-size: clamp(30px, 3.6vw, 46px); padding-right: 70px; }
body.tpl-guide .gd .gd-signup-perks { list-style: none; display: flex; flex-wrap: wrap; gap: 8px 10px; margin: 12px 0 0; padding: 0; }
body.tpl-guide .gd .gd-signup-perks li { display: inline-flex; align-items: center; gap: 6px; padding: 5px 12px; border: 2px solid var(--nl-bulb); border-radius: 999px; font-size: 14px; font-weight: 800; letter-spacing: .03em; line-height: 1.2; color: var(--nl-ink) !important; }
body.tpl-guide .gd .gd-signup-perks li::before { content: '\2605'; color: var(--nl-bulb); font-size: 13px; }
@media (min-width: 860px) {
    body.tpl-guide .gd .gd-panel.gd-signup { padding: 46px 40px 48px; }
    body.tpl-guide .gd .gd-signup-burst { top: -22px; right: 26px; width: 96px; height: 96px; }
    body.tpl-guide .gd .gd-signup-burst b { font-size: 21px; }
    body.tpl-guide .gd .gd-signup h2 { padding-right: 0; }
}
/* Marquee look: its band is gold, so the bulbs and stars are navy there to stay visible. */
body.tpl-guide.gd-look-marquee { --nl-bulb: #0f1f47; }

/* A site's own extra links (a tour, a partner page) are not guides: one "Related" line under the guide tiles (Pete 11/14). */
body.tpl-guide .gd .gd-network-related { margin: 14px 0 0; font-size: 15px; line-height: 1.5; color: inherit; }
body.tpl-guide .gd .gd-network-related a { font-weight: 700; color: inherit; text-decoration: underline; text-underline-offset: 3px; }

/* Age rule badge + age filter (looks with age_filter, Vegas 4 Family): a card the age filter rules out is hidden. */
body.tpl-guide .gd .gd-card[data-age-off] { display: none !important; }
.gd-agebar { display: inline-flex; flex-wrap: wrap; align-items: center; gap: 8px; }
.gd-age { display: inline-block; }
