/**
 * Course detail page v2 (template-parts/course-detail-v2.php).
 * Design: jony-marketing-agent content/website/course-page/index.html (approved 2026-10-13).
 * Scoped under .ttgp-cd. Fonts: League Spartan throughout, same as the golf pass pages; not switched in this build.
 * Type: 40/30/22/18/16/14/12. Spacing: 4/8/12/16/20/24/32/40/56.
 */

.ttgp-cd {
	--cd-navy: #023047;
	--cd-orange: #FA8500;
	--cd-orange-hover: #E07700;
	--cd-orange-press: #C86B00;
	--cd-green: #3AAF56;
	--cd-deep-green: #439560;
	--cd-teal: #039CBB;
	--cd-light-blue: #D9F2FF;
	--cd-slate: #35596C;
	--cd-grey: #858585;
	--cd-line: #E4E3E3;
	--cd-off-white: #F9F8F8;
	--cd-shadow: 0 2px 10px rgba(2, 48, 71, .12);
	--cd-display: 'League Spartan', sans-serif;
	--cd-ui: 'League Spartan', sans-serif;
	--cd-body: 'League Spartan', sans-serif;
	/* Same content width and gutters as the golf pass pages (golf-pass-product.css). */
	--cd-container: 1140px;
	--cd-gutter: 4vw;

	font-family: var(--cd-body);
	font-size: 18px;
	line-height: 1.5;
	color: var(--cd-navy);
	background: #fff;
	-webkit-font-smoothing: antialiased;
}

/* Theme header on course pages: hairline under it, as in the approved design. */
body.ttgp-cd-page #masthead { border-bottom: 1px solid #E4E3E3; /* --cd-line */ }

/* Reset theme globals inside the page. */
.ttgp-cd *,
.ttgp-cd *::before,
.ttgp-cd *::after { box-sizing: border-box; }
.ttgp-cd h1, .ttgp-cd h2, .ttgp-cd h3, .ttgp-cd p, .ttgp-cd ul, .ttgp-cd ol, .ttgp-cd address { margin: 0; padding: 0; line-height: inherit; clear: none; }
.ttgp-cd ul, .ttgp-cd ol { list-style: none; }
.ttgp-cd img { max-width: 100%; display: block; }
.ttgp-cd a { color: var(--cd-teal); text-decoration: underline; text-underline-offset: 2px; }
.ttgp-cd a:hover { text-decoration-thickness: 2px; }
.ttgp-cd .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; }

.ttgp-cd .cd-wrap { box-sizing: content-box; max-width: var(--cd-container); margin: 0 auto; padding: 0 var(--cd-gutter); }
@media (max-width: 1024px) { .ttgp-cd { --cd-gutter: 32px; } }
@media (max-width: 767px) { .ttgp-cd { --cd-gutter: 16px; } }
.ttgp-cd .cd-h2 { font: 800 30px/1.05 var(--cd-display); color: var(--cd-navy); }

.ttgp-cd .cd-btn { white-space: nowrap; display: inline-flex; align-items: center; justify-content: center; gap: 8px; background: var(--cd-orange); color: #fff; text-decoration: none; font: 700 16px/1 var(--cd-display); padding: 16px 20px; border-radius: 8px; min-height: 48px; }
.ttgp-cd .cd-btn:hover { background: var(--cd-orange-hover); color: #fff; text-decoration: none; }
.ttgp-cd .cd-btn:active { background: var(--cd-orange-press); }

/* Course header: navy band (theme .tgp-hero-bg, same as the state pages and blog posts). White text. */
.ttgp-cd .cd-hero { color: #fff; padding: 4px 0 32px; }
.ttgp-cd .cd-crumbs { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin-top: 24px; font: 400 16px/1.4 var(--cd-body); color: var(--cd-slate); }
.ttgp-cd .cd-crumbs li { display: flex; align-items: center; gap: 8px; white-space: nowrap; }
.ttgp-cd .cd-hero .cd-crumbs,
.ttgp-cd .cd-crumbs li + li::before { color: rgba(255, 255, 255, .75); }
.ttgp-cd .cd-crumbs li + li::before { content: "\f054"; font: 900 10px "Font Awesome 6 Free"; }
.ttgp-cd .cd-crumbs a { color: #fff; }

.ttgp-cd .cd-head { display: flex; gap: 20px; align-items: center; margin-top: 20px; }
/* Logo on a white tile, fixed height. max-* only, so a small logo is never scaled above its real size. */
.ttgp-cd .cd-logo { flex: none; display: flex; align-items: center; justify-content: center; height: 64px; min-width: 64px; max-width: 160px; padding: 8px; border-radius: 12px; background: #fff; }
.ttgp-cd .cd-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.ttgp-cd .cd-title { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.ttgp-cd .cd-badge-new { display: inline-block; margin-left: 8px; vertical-align: middle; position: relative; top: -0.12em; background: #fff; color: var(--cd-navy); font: 700 14px/1.4 var(--cd-ui); letter-spacing: .04em; text-transform: uppercase; padding: 4px 12px; border-radius: 999px; }
.ttgp-cd .cd-title h1 { font: 900 40px/1.1 var(--cd-display); text-wrap: balance; color: #fff; }
.ttgp-cd .cd-address { display: flex; align-items: center; gap: 8px; font-size: 18px; }
.ttgp-cd .cd-address i { color: #fff; font-size: 14px; }

.ttgp-cd .cd-meta { margin-top: 4px; display: flex; flex-wrap: wrap; gap: 8px 24px; font: 400 16px/1.4 var(--cd-ui); color: rgba(255, 255, 255, .85); }
.ttgp-cd .cd-meta li { display: flex; align-items: center; gap: 8px; }
.ttgp-cd .cd-meta strong { font-weight: 700; color: #fff; }
.ttgp-cd .cd-meta-icon { flex: none; display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 999px; background: var(--cd-light-blue); }
.ttgp-cd .cd-meta-icon i { font-size: 14px; color: var(--cd-navy); }

/* Layout */
.ttgp-cd .cd-layout { display: grid; grid-template-columns: minmax(0, 1fr) 300px; gap: 32px; align-items: start; margin: 32px 0 56px; }
.ttgp-cd .cd-main { display: flex; flex-direction: column; gap: 56px; min-width: 0; }

/* Deals */
.ttgp-cd .cd-deals { background: var(--cd-light-blue); border-radius: 20px; padding: 24px 24px 16px; display: flex; flex-direction: column; gap: 12px; }
.ttgp-cd .cd-deal-cols,
.ttgp-cd .cd-deal { display: grid; grid-template-columns: 40px minmax(0, 1fr) 120px 104px 56px; grid-template-areas: "icon info pay save uses"; gap: 16px; align-items: center; }
.ttgp-cd .cd-deal-cols { padding: 0 20px; font: 600 14px/1.4 var(--cd-ui); letter-spacing: .04em; text-transform: uppercase; color: var(--cd-slate); }
.ttgp-cd .cd-deal-cols span:nth-child(n+3) { text-align: right; }
/* No regular rates for any deal: drop the You save column (desktop table only; stacked cards just omit it). */
@media (min-width: 1151px) {
	.ttgp-cd .cd-deals--no-save .cd-deal-cols,
	.ttgp-cd .cd-deals--no-save .cd-deal { grid-template-columns: 40px minmax(0, 1fr) 120px 56px; grid-template-areas: "icon info pay uses"; }
}
.ttgp-cd .cd-deal-list { display: flex; flex-direction: column; gap: 8px; }
.ttgp-cd .cd-deal { background: #fff; border: 1.5px solid var(--cd-navy); border-radius: 12px; padding: 16px 20px; }
.ttgp-cd .cd-deal-icon.tgp-deal-icon { grid-area: icon; display: block; width: 40px; height: 40px; min-width: 0; margin: 0; border-radius: 8px; background-color: var(--cd-navy); background-repeat: no-repeat; background-position: center; }
.ttgp-cd .cd-deal-info { grid-area: info; min-width: 0; }
.ttgp-cd .cd-deal-name { font: 600 20px/1.2 var(--cd-ui); color: var(--cd-navy); }
.ttgp-cd .cd-deal-when { font-size: 16px; line-height: 1.45; color: var(--cd-slate); margin-top: 4px; }
.ttgp-cd .cd-deal-uses-inline { display: none; }
.ttgp-cd .cd-deal-uses-inline i { margin-right: 4px; }
.ttgp-cd .cd-deal-pay { grid-area: pay; text-align: right; font: 900 30px/1 var(--cd-display); color: var(--cd-navy); }
.ttgp-cd .cd-deal-pay small { display: block; margin-top: 4px; font: 400 14px/1.35 var(--cd-body); color: var(--cd-slate); }
.ttgp-cd .cd-deal-uses { grid-area: uses; text-align: right; font: 600 18px/1.2 var(--cd-ui); }
.ttgp-cd .cd-deal-save { grid-area: save; text-align: right; font: 700 20px/1.2 var(--cd-display); color: var(--cd-deep-green); }
.ttgp-cd .cd-deal-save .cd-m-only { display: none; }
.ttgp-cd .cd-deal-save-per { display: block; margin-top: 4px; font: 400 14px/1.35 var(--cd-body); color: var(--cd-slate); }
.ttgp-cd .cd-pill-popular { display: inline-block; margin-left: 8px; vertical-align: 2px; background: var(--cd-navy); color: #fff; font: 700 14px/1.4 var(--cd-ui); letter-spacing: .02em; padding: 2px 8px; border-radius: 999px; white-space: nowrap; }
.ttgp-cd .cd-deals-app-only,
.ttgp-cd .cd-deals-print-only,
.ttgp-cd .cd-deals-members { display: flex; gap: 8px; align-items: flex-start; font-size: 16px; line-height: 1.5; color: var(--cd-navy); }
.ttgp-cd .cd-deals-app-only i,
.ttgp-cd .cd-deals-print-only i,
.ttgp-cd .cd-deals-members i,
.ttgp-cd .cd-deals-note i { flex: none; display: inline-flex; align-items: center; justify-content: center; height: 18.5px; margin: 0; font-size: 14px; line-height: 1; position: relative; top: 1px; } /* Tuned by eye to sit level with the first line of 16px text; +1px optical nudge (League Spartan sits low). */
.ttgp-cd .cd-deals-note { display: flex; gap: 8px; font-size: 16px; line-height: 1.5; border-top: 1px solid rgba(2, 48, 71, .12); padding-top: 16px; /* = panel bottom padding: same space above and below the text */ }
.ttgp-cd .cd-deals-note a { color: var(--cd-navy); font-weight: 600; position: relative; }
.ttgp-cd .cd-deals-note a::after { content: ""; position: absolute; left: 0; right: 0; top: 50%; height: 44px; transform: translateY(-50%); }

/* How it works */
.ttgp-cd .cd-how { display: flex; flex-direction: column; gap: 16px; background: #fff; border-radius: 16px; box-shadow: var(--cd-shadow); padding: 20px 24px; }
.ttgp-cd .cd-how-title { font: 600 16px/1.4 var(--cd-ui); letter-spacing: .04em; text-transform: uppercase; color: var(--cd-slate); text-align: center; }
.ttgp-cd .cd-how-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ttgp-cd .cd-how-steps li { display: flex; gap: 12px; align-items: center; }
.ttgp-cd .cd-how-img { flex: none; width: 72px; height: 72px; border-radius: 999px; background: var(--cd-light-blue); display: flex; align-items: center; justify-content: center; }
.ttgp-cd .cd-how-img i { font-size: 28px; color: var(--cd-navy); }
.ttgp-cd .cd-how-steps p { font-size: 16px; line-height: 1.45; color: var(--cd-slate); }
.ttgp-cd .cd-how-steps strong { display: block; margin-bottom: 4px; font: 600 18px/1.3 var(--cd-ui); color: var(--cd-navy); }

/* Details */
.ttgp-cd .cd-section { display: flex; flex-direction: column; gap: 16px; }
.ttgp-cd .cd-details-body { display: flex; flex-direction: column; gap: 12px; }
.ttgp-cd .cd-details-body p { font-size: 18px; line-height: 1.6; max-width: 660px; text-wrap: pretty; }

/* App card: secondary, no orange, no shadow */
.ttgp-cd .cd-app { display: grid; grid-template-columns: 96px minmax(0, 1fr) auto; gap: 20px; align-items: center; border: 1px solid var(--cd-line); border-radius: 16px; padding: 20px; }
.ttgp-cd .cd-qr { width: 96px; height: 96px; }
.ttgp-cd .cd-app-text { display: flex; flex-direction: column; gap: 4px; }
.ttgp-cd .cd-app-text h2 { font: 600 20px/1.2 var(--cd-ui); color: var(--cd-navy); }
.ttgp-cd .cd-app-text p { font-size: 16px; line-height: 1.5; color: var(--cd-slate); }
.ttgp-cd .cd-app-badges { display: flex; gap: 8px; }
.ttgp-cd .cd-app-badges a { display: inline-flex; min-height: 44px; align-items: center; }
.ttgp-cd .cd-app-badges img { height: 40px; width: auto; border-radius: 5px; }

/* Location */
.ttgp-cd .cd-location { display: grid; grid-template-columns: minmax(0, 1fr) 240px; border-radius: 16px; overflow: hidden; box-shadow: var(--cd-shadow); }
.ttgp-cd .cd-location iframe,
.ttgp-cd .cd-map { width: 100%; height: 220px; border: 0; display: block; }
.ttgp-cd .cd-map { background: var(--cd-off-white); }
.ttgp-cd .cd-location-addr { padding: 20px; display: flex; flex-direction: column; gap: 8px; justify-content: center; }
.ttgp-cd .cd-location-addr strong { font: 600 16px/1.4 var(--cd-ui); color: var(--cd-slate); }
.ttgp-cd .cd-location-addr address { font-style: normal; font-size: 18px; line-height: 1.5; }
.ttgp-cd .cd-location-addr a { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font: 600 18px/1.2 var(--cd-ui); }

/* Nearby */
.ttgp-cd .cd-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.ttgp-cd .cd-section-head a { font: 600 16px/1.4 var(--cd-ui); white-space: nowrap; }
.ttgp-cd .cd-section-sub { font-size: 18px; color: var(--cd-slate); margin-top: -8px; }
.ttgp-cd .cd-nearby { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.ttgp-cd .cd-nearby-card { background: #fff; border-radius: 16px; box-shadow: var(--cd-shadow); overflow: hidden; display: flex; flex-direction: column; color: var(--cd-navy); text-decoration: none; transition: transform .15s; }
.ttgp-cd .cd-nearby-card:hover { transform: scale(1.02); text-decoration: none; }
.ttgp-cd .cd-nearby-logo { flex: none; display: flex; align-items: center; justify-content: center; height: 132px; padding: 16px; background: #fff; border-bottom: 1px solid var(--cd-line); }
.ttgp-cd .cd-nearby-logo img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; }
.ttgp-cd .cd-nearby-body { flex: 1 1 auto; min-width: 0; padding: 12px 16px 16px; display: flex; flex-direction: column; gap: 4px; }
.ttgp-cd .cd-nearby-name { font: 700 18px/1.15 var(--cd-display); color: var(--cd-navy); }
.ttgp-cd .cd-nearby-town { display: flex; align-items: center; gap: 8px; font-size: 16px; color: var(--cd-slate); }
.ttgp-cd .cd-nearby-deal { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; margin-top: 8px; }
.ttgp-cd .cd-offer-tag { background: var(--cd-light-blue); color: var(--cd-navy); font: 700 14px/1.4 var(--cd-ui); letter-spacing: .04em; text-transform: uppercase; padding: 4px 8px; border-radius: 999px; }
.ttgp-cd .cd-nearby-price { font: 900 22px/1.2 var(--cd-display); }
.ttgp-cd .cd-nearby-price small { font: 400 14px var(--cd-body); color: var(--cd-slate); margin-left: 4px; }

/* Blog */
.ttgp-cd .cd-blog { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: 24px; align-items: start; border-top: 1px solid var(--cd-line); padding-top: 32px; }
.ttgp-cd .cd-blog--no-img { grid-template-columns: minmax(0, 1fr); } /* No featured image (or it failed to load): text takes the full width. */
.ttgp-cd .cd-blog img { width: 100%; height: 150px; object-fit: cover; border-radius: 12px; }
.ttgp-cd .cd-blog-body { display: flex; flex-direction: column; gap: 8px; }
.ttgp-cd .cd-blog-meta { display: flex; gap: 8px; align-items: center; font: 600 14px/1.4 var(--cd-ui); text-transform: uppercase; letter-spacing: .04em; }
.ttgp-cd .cd-chip { background: var(--cd-light-blue); color: var(--cd-navy); padding: 4px 8px; border-radius: 999px; }
.ttgp-cd .cd-blog-title { font: 700 22px/1.2 var(--cd-display); }
.ttgp-cd .cd-blog-title a { color: var(--cd-navy); text-decoration: none; }
.ttgp-cd .cd-blog-by { font-size: 16px; color: var(--cd-slate); }
.ttgp-cd .cd-blog-excerpt { font-size: 16px; line-height: 1.55; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.ttgp-cd .cd-blog-body > a { font: 600 16px/1.4 var(--cd-ui); }

/* Pass card (desktop) */
.ttgp-cd .cd-side { position: static; display: flex; flex-direction: column; gap: 16px; }
@media (min-height: 760px) {
	.ttgp-cd .cd-side { position: sticky; top: 20px; }
}
.ttgp-cd .cd-pass-card { background: #fff; border-radius: 16px; box-shadow: var(--cd-shadow); padding: 24px; display: flex; flex-direction: column; gap: 12px; }
.ttgp-cd .cd-pass-kicker { font-size: 16px; color: var(--cd-slate); }
.ttgp-cd .cd-pass-name { font: 800 30px/1.05 var(--cd-display); text-wrap: balance; }
.ttgp-cd .cd-pass-price { display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
.ttgp-cd .cd-pass-price strong { font: 900 40px/1.1 var(--cd-display); }
.ttgp-cd .cd-pass-perks { display: flex; flex-direction: column; gap: 8px; font-size: 16px; line-height: 1.4; }
.ttgp-cd .cd-pass-perks li { display: flex; gap: 12px; align-items: flex-start; }
.ttgp-cd .cd-pass-perks i { color: var(--cd-green); font-size: 16px; margin-top: 2px; }
.ttgp-cd .cd-pass-card .cd-btn { width: 100%; }

.ttgp-cd .cd-pass-badges { display: grid; grid-template-columns: 1fr 1fr; border-top: 1px solid var(--cd-line); padding-top: 12px; }
.ttgp-cd .cd-badge { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 4px; padding: 4px 8px; font: 400 14px/1.3 var(--cd-ui); color: var(--cd-slate); text-align: center; background: none; border: 0; box-shadow: none; min-height: 44px; }
.ttgp-cd .cd-badge-icon { display: inline-flex; align-items: center; justify-content: center; width: 40px; height: 40px; border-radius: 999px; background: var(--cd-light-blue); }
.ttgp-cd .cd-badge-icon i { font-size: 18px; color: var(--cd-navy); }
.ttgp-cd .cd-badge-text { display: block; }
.ttgp-cd .cd-badge strong { display: block; font: 700 16px/1.2 var(--cd-ui); color: var(--cd-navy); }
.ttgp-cd .cd-badge--info { cursor: pointer; }
.ttgp-cd .cd-badge--info .cd-badge-text { text-decoration: underline dotted; text-underline-offset: 3px; text-decoration-color: var(--cd-grey); }
.ttgp-cd .cd-badge--info:hover,
.ttgp-cd .cd-badge--info:focus { background: none; color: var(--cd-slate); }
.ttgp-cd .cd-badge--info:focus-visible { outline: 2px solid var(--cd-teal); outline-offset: 2px; border-radius: 4px; }
.ttgp-cd .cd-guarantee-pop { max-width: 300px; margin: auto; padding: 20px; border: 0; border-radius: 16px; box-shadow: 0 8px 24px rgba(2, 48, 71, .16); color: var(--cd-navy); font-size: 16px; line-height: 1.5; }
.ttgp-cd .cd-guarantee-pop::backdrop { background: rgba(2, 48, 71, .25); }
.ttgp-cd .cd-guarantee-pop p + p { margin-top: 8px; }
.ttgp-cd .cd-guarantee-pop a { color: var(--cd-navy); font-weight: 600; }

/* Pass bar (mobile) */
.ttgp-cd .cd-pass-bar { display: none; }

/* Previous-year overlay */
.cd-overlay { position: fixed; inset: 0; background: linear-gradient(to bottom, rgba(0, 0, 0, .3), rgba(0, 0, 0, .7)); z-index: 9999; display: none; justify-content: center; align-items: center; padding: 16px; }
.cd-overlay.show { display: flex; }
.cd-overlay-banner { background: #FFB703; color: #1a1a1a; padding: 2rem 3rem; border-radius: 12px; text-align: center; max-width: 700px; box-shadow: 0 8px 30px rgba(0, 0, 0, .4); }
.cd-overlay-banner h2 { font-size: 1.8rem; font-weight: 700; margin-bottom: 1rem; }
.cd-overlay-banner p { font-size: 1rem; margin-bottom: 1.5rem; line-height: 1.5; }
.cd-overlay-banner button { background: #ff7a00; border: none; color: #fff; font-weight: 600; padding: .8rem 1.5rem; border-radius: 6px; cursor: pointer; }
.cd-overlay-banner button:hover { background: #e76b00; }

/* Mid widths: keep the pass column, use the stacked deal card */
@media (max-width: 1150px) {
	.ttgp-cd .cd-layout { grid-template-columns: minmax(0, 1fr) 280px; gap: 24px; }
	.ttgp-cd .cd-deal-cols { display: none; }
	.ttgp-cd .cd-deal { grid-template-columns: 40px minmax(0, 1fr) auto; grid-template-areas: "icon info pay" "icon info save"; gap: 4px 12px; }
	.ttgp-cd .cd-deal-pay { align-self: end; max-width: 132px; }
	.ttgp-cd .cd-deal-save { align-self: start; }
	.ttgp-cd .cd-deal-save .cd-m-only { display: inline; }
	.ttgp-cd .cd-deal-save-per { margin-top: 0; } /* Own small line under "Save $43", so the column stays as narrow as the price. */
	.ttgp-cd .cd-deal-uses-inline { display: block; font-size: 16px; color: var(--cd-slate); margin-top: 4px; }
	.ttgp-cd .cd-deal-uses { display: none; }
	.ttgp-cd .cd-how-steps { grid-template-columns: 1fr; gap: 12px; }
	.ttgp-cd .cd-how-title { text-align: left; }
}

/* Mobile */
@media (max-width: 900px) {
	.ttgp-cd .cd-hero { padding: 0 0 20px; }
	.ttgp-cd .cd-crumbs { margin-top: 0; }
	.ttgp-cd .cd-crumbs li:first-child,
	.ttgp-cd .cd-crumbs li:nth-child(2),
	.ttgp-cd .cd-crumbs li:last-child { display: none; }
	.ttgp-cd .cd-crumbs li:nth-child(3)::before { display: none; }
	.ttgp-cd .cd-crumbs a { display: inline-flex; align-items: center; min-height: 44px; }
	.ttgp-cd .cd-head { gap: 12px; margin-top: 4px; align-items: flex-start; }
	.ttgp-cd .cd-logo { height: 56px; min-width: 56px; max-width: 112px; padding: 6px; border-radius: 10px; }
	.ttgp-cd .cd-title { gap: 4px; }
	.ttgp-cd .cd-title h1 { font-size: 30px; }
	.ttgp-cd .cd-address { font-size: 16px; align-items: flex-start; }
	.ttgp-cd .cd-address i { display: none; }
	.ttgp-cd .cd-meta { font-size: 14px; flex-direction: column; gap: 4px; }
	.ttgp-cd .cd-meta-icon { width: 28px; height: 28px; }
	.ttgp-cd .cd-meta-icon i { font-size: 12px; }
	.ttgp-cd .cd-pill-popular { display: block; width: max-content; margin: 4px 0 0; }
	.ttgp-cd .cd-layout { display: block; margin: 16px 0 0; }
	.ttgp-cd .cd-main { gap: 40px; }
	.ttgp-cd .cd-h2 { font-size: 22px; }
	.ttgp-cd .cd-deals { margin: 0 calc(-1 * var(--cd-gutter)); border-radius: 0; padding: 20px var(--cd-gutter) 16px; gap: 8px; }
	.ttgp-cd .cd-deal { grid-template-columns: 32px minmax(0, 1fr) auto; grid-template-areas: "icon info pay" "icon info save"; gap: 4px 12px; padding: 12px; }
	.ttgp-cd .cd-deal-icon.tgp-deal-icon { width: 32px; height: 32px; border-radius: 6px; align-self: center; }
	.ttgp-cd .cd-deal-name { font-size: 18px; }
	.ttgp-cd .cd-deal-when { margin-top: 0; }
	.ttgp-cd .cd-deal-pay { font-size: 28px; }
	.ttgp-cd .cd-deals-note { border-top: 0; padding-top: 8px; /* + 8px gap = 16px, same as the panel bottom padding */ }
	.ttgp-cd .cd-location { grid-template-columns: 1fr; }
	.ttgp-cd .cd-section-head a { display: inline-flex; align-items: center; min-height: 44px; }
	.ttgp-cd .cd-nearby { grid-template-columns: 1fr; }
	.ttgp-cd .cd-nearby-card { flex-direction: row; }
	.ttgp-cd .cd-nearby-logo { width: 120px; height: auto; min-height: 120px; padding: 12px; border-bottom: 0; border-right: 1px solid var(--cd-line); }
	.ttgp-cd .cd-blog { grid-template-columns: 1fr; padding-top: 24px; }
	.ttgp-cd .cd-blog img { height: 180px; }
	.ttgp-cd .cd-blog-meta a,
	.ttgp-cd .cd-blog-title a,
	.ttgp-cd .cd-blog-body > a { display: inline-flex; align-items: center; min-height: 44px; }
	.ttgp-cd .cd-blog-body { gap: 4px; }
	.ttgp-cd .cd-side { display: none; }
	.ttgp-cd .cd-how { padding: 16px; }
	.ttgp-cd .cd-app { grid-template-columns: 1fr; gap: 12px; padding: 16px; }
	.ttgp-cd .cd-qr { display: none; }
	.ttgp-cd .cd-pass-bar { display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 100; /* above the footer (z-20), below theme popups */ background: #fff; border-top: 1px solid var(--cd-line); box-shadow: 0 -2px 10px rgba(2, 48, 71, .10); padding: 12px 16px calc(16px + env(safe-area-inset-bottom, 0px)); align-items: center; justify-content: space-between; gap: 12px; }
	.ttgp-cd .cd-pass-bar-kicker { font-size: 14px; line-height: 1.4; color: var(--cd-slate); }
	.ttgp-cd .cd-pass-bar-name { font: 700 16px/1.3 var(--cd-display); }
	.ttgp-cd .cd-pass-bar .cd-btn { min-height: 44px; padding: 12px 16px; font-size: 14px; }
	/* Room for the fixed pass bar below the footer. */
	body.ttgp-cd-has-pass-bar { padding-bottom: calc(80px + env(safe-area-inset-bottom, 0px)); }
}
