/* ==========================================================================
   Custom Template: November 2026 layouts and options (Part D3 in CUSTOM-TEMPLATE.md)
   Scoped to .ct3-* (plus the option classes on existing layouts). Built on the Branding variables;
   rules use currentColor mixes so they work on light and dark section backgrounds.
   Root font size is 10px: 1.6em = 16px.
   ========================================================================== */

:is(.ct3-annotated, .ct3-reviews, .ct3-lineup, .ct3-campaign, .ct3-pathway, .ct3-cover, .ct3-impact, .ct3-countdown, .ct3-ba, .ct3-board, .ct3-agenda, .ct3-stmedia, .ct3-plspot, .ct3-listings, .ct3-filter, .ct3-proof) *, .ct3-listing, .ct2-st-stack .ct2-st-item { box-sizing: border-box; }
:root { --ct3-hair: color-mix(in srgb, currentColor 16%, transparent); --ct3-faint: color-mix(in srgb, currentColor 8%, transparent); }
.ct3-chip { font: inherit; font-family: var(--font-small-titles); font-size: 1.5em; line-height: 1.2; padding: 10px 18px; background: transparent; color: inherit; border: 1px solid color-mix(in srgb, currentColor 28%, transparent); border-radius: var(--btn-radius, 0); cursor: pointer; }
.ct3-chip:hover { border-color: currentColor; }
.ct3-chip[aria-pressed="true"] { background: var(--color-main); border-color: var(--color-main); color: #fff; }
.bg-main .ct3-chip[aria-pressed="true"], .bg-black .ct3-chip[aria-pressed="true"] { background: #fff; border-color: #fff; color: var(--color-main); }
.ct3-chip:focus-visible, .ct3-hs-pin:focus-visible, .ct3-hs-head:focus-visible, .ct2-pl-item.has-photo:focus-visible { outline: 2px solid var(--color-main); outline-offset: 3px; }
.ct3-is-out { display: none !important; }
@media (prefers-reduced-motion: no-preference) { .ct3-is-in { animation: ct3-in .45s ease both; } }
@keyframes ct3-in { from { opacity: 0; transform: translateY(10px); } }

/* Stars: one glyph run, filled to --ct3-fill. */
.ct3-stars { display: inline-block; font-size: 1.8em; letter-spacing: .08em; line-height: 1; background: linear-gradient(90deg, var(--color-main) var(--ct3-fill), color-mix(in srgb, currentColor 22%, transparent) var(--ct3-fill)); -webkit-background-clip: text; background-clip: text; color: transparent; }
.bg-main .ct3-stars, .bg-black .ct3-stars { background-image: linear-gradient(90deg, currentColor var(--ct3-fill), color-mix(in srgb, currentColor 30%, transparent) var(--ct3-fill)); }

/* ── Split section header ─────────────────────────────────────── */
.ct3-head-split { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 6fr); gap: 30px 90px; align-items: end; text-align: left; }
.ct3-head-split .ct3-hs-title > :last-child, .ct3-head-split .ct3-hs-body > :last-child { margin-bottom: 0 !important; }
.ct3-head-split .ct3-hs-body .wysiwyg > :last-child { margin-bottom: 0; }
@media (max-width: 900px) { .ct3-head-split { grid-template-columns: 1fr; gap: 24px; } }

/* ── Social proof row ─────────────────────────────────────────── */
.ct3-proof { display: flex; align-items: center; flex-wrap: wrap; gap: 14px 18px; margin-top: 28px; }
.ta-center .ct3-proof, .ct3-countdown.ta-center .ct3-proof { justify-content: center; }
.ct3-proof-faces { display: flex; }
.ct3-proof-faces img { width: 42px !important; height: 42px !important; max-width: none; flex: 0 0 42px; border-radius: 50% !important; object-fit: cover; border: 2px solid var(--color-white, #fff); margin-left: -12px; }
.ct3-proof-faces img:first-child { margin-left: 0; }
.ct3-proof-copy { display: grid; gap: 4px; }
.ct3-proof .ct3-stars { font-size: 1.6em; }
.ct3-proof-text { font-size: 1.5em; opacity: .8; }

/* ── Annotated Image ──────────────────────────────────────────── */
.ct3-annotated { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 60px; align-items: start; }
.ct3-hs-list-left .ct3-hs-items { order: -1; }
.ct3-hs-list-left { grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); }
.ct3-hs-list-below, .ct3-hs-list-none { grid-template-columns: 1fr; }
.ct3-hs-list-below .ct3-hs-items { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); column-gap: 40px; }
.ct3-hs-figure { position: relative; margin: 0; }
.ct3-hs-img { display: block; width: 100%; height: auto; border-radius: var(--img-radius, 0); }
.ct3-hs-pin { position: absolute; transform: translate(-50%, -50%); width: 40px; height: 40px; padding: 0; border: 0; border-radius: 50%; background: var(--color-main); color: #fff; cursor: pointer; display: grid; place-items: center; box-shadow: 0 0 0 6px color-mix(in srgb, var(--color-main) 28%, transparent), 0 6px 16px rgba(0,0,0,.25); }
.ct3-hs-mark { font-family: var(--font-data-numbers, var(--font-titles)); font-size: 1.6em; font-weight: 700; line-height: 1; }
.ct3-hs-dots .ct3-hs-pin { width: 20px; height: 20px; }
.ct3-hs-plus .ct3-hs-mark { font-size: 2.4em; font-weight: 400; }
.ct3-hs-pin.is-active { box-shadow: 0 0 0 10px color-mix(in srgb, var(--color-main) 35%, transparent), 0 6px 16px rgba(0,0,0,.25); }
@media (prefers-reduced-motion: no-preference) { .ct3-hs-pin { transition: transform .2s, box-shadow .2s; } .ct3-hs-pin:hover, .ct3-hs-pin.is-active { transform: translate(-50%, -50%) scale(1.12); } }
.ct3-hs-items { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ct3-hair); }
.ct3-hs-item { margin: 0; border-bottom: 1px solid var(--ct3-hair); }
.ct3-hs-item::before { display: none !important; }
.ct3-hs-head { width: 100%; display: flex; align-items: center; gap: 16px; padding: 18px 0; background: none; border: 0; color: inherit; text-align: left; cursor: pointer; font: inherit; }
.ct3-hs-num { flex: 0 0 30px; height: 30px; border-radius: 50%; border: 1px solid currentColor; display: grid; place-items: center; font-family: var(--font-data-numbers, var(--font-titles)); font-size: 1.4em; }
.ct3-hs-item.is-active .ct3-hs-num { background: var(--color-main); border-color: var(--color-main); color: #fff; }
.ct3-hs-title { margin: 0; }
.ct3-hs-body { padding: 0 0 22px 46px; }
.ct3-hs-body p { margin: 0 0 10px; }
.ct3-hs-link { font-size: 1.6em; }
.ct3-annotated.is-js .ct3-hs-item:not(.is-active) .ct3-hs-body { display: none; }
@media (max-width: 1000px) { .ct3-annotated, .ct3-hs-list-left { grid-template-columns: 1fr; gap: 36px; } .ct3-hs-list-left .ct3-hs-items { order: 0; } .ct3-hs-pin { width: 30px; height: 30px; } .ct3-hs-mark { font-size: 1.3em; } }

/* ── Reviews Wall ─────────────────────────────────────────────── */
.ct3-reviews { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 8fr); gap: 80px; align-items: start; }
.ct3-rv-summary-inner { position: sticky; top: 140px; }
.ct3-rv-score { display: flex; align-items: flex-end; gap: 18px; }
.ct3-rv-avg { margin: 0; font-size: clamp(8rem, 9vw, 14rem) !important; line-height: .82; letter-spacing: -.03em; color: var(--color-main); font-variant-numeric: tabular-nums; }
.bg-main .ct3-rv-avg, .bg-black .ct3-rv-avg { color: inherit; }
.ct3-rv-avg-side { display: grid; gap: 8px; padding-bottom: 6px; }
.ct3-rv-avg-stars { font-size: 2.4em; }
.ct3-rv-count { font-size: 1.5em; opacity: .75; }
.ct3-rv-bars { list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 8px; }
.ct3-rv-bars li { margin: 0; display: grid; grid-template-columns: 44px 1fr 48px; gap: 12px; align-items: center; font-size: 1.4em; }
.ct3-rv-bars li::before { display: none !important; }
.ct3-rv-bar { height: 6px; border-radius: 3px; background: var(--ct3-faint); overflow: hidden; }
.ct3-rv-bar span { display: block; height: 100%; background: var(--color-main); border-radius: inherit; }
.bg-main .ct3-rv-bar span, .bg-black .ct3-rv-bar span { background: currentColor; }
.ct3-rv-bar-pct { text-align: right; opacity: .7; font-variant-numeric: tabular-nums; }
.ct3-rv-source { margin: 24px 0 0; font-size: 1.5em; opacity: .85; }
.ct3-rv-wall { columns: 2; column-gap: 24px; }
.ct3-rv-card { break-inside: avoid; margin: 0 0 24px !important; width: auto !important; padding: 30px !important; border: 1px solid var(--ct3-hair); border-radius: var(--img-radius, 0); display: grid; gap: 14px; }
.ct3-rv-card.pad-40 { border: 0; }
.ct3-rv-card blockquote { margin: 0; padding: 0; border: 0; }
.ct3-rv-card blockquote p { margin: 0; font-size: max(var(--size-copy), 1.7em); line-height: 1.55; }
.ct3-rv-card-stars { font-size: 1.6em; }
.ct3-rv-card figcaption { display: grid; gap: 2px; }
.ct3-rv-name { font-family: var(--font-titles); font-size: 1.7em; font-weight: var(--weight-headers, 600); }
.ct3-rv-meta { font-size: 1.4em; opacity: .7; }
@media (max-width: 1000px) { .ct3-reviews { grid-template-columns: 1fr; gap: 50px; } .ct3-rv-summary-inner { position: static; } }
@media (max-width: 600px) { .ct3-rv-wall { columns: 1; } }

/* ── Lineup Poster ────────────────────────────────────────────── */
.ct3-lineup { display: grid; gap: 34px; }
.ct3-lu-tier { display: grid; gap: 10px; }
.ct3-lu-label { margin: 0; opacity: .7; }
.ct3-lu-names { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; align-items: baseline; gap: .1em 0; }
.ta-center .ct3-lu-names, .ct3-lineup.ta-center .ct3-lu-names { justify-content: center; }
.ta-right .ct3-lu-names { justify-content: flex-end; }
.ct3-lu-name { margin: 0; position: relative; font-family: var(--font-titles); font-weight: var(--weight-headers, 600); text-transform: var(--title-transform, none); line-height: 1.02; letter-spacing: -.01em; }
.ct3-lu-name::before { display: none !important; }
.ct3-lu-name a { color: inherit; text-decoration: none; }
.ct3-lu-name a:hover, .ct3-lu-name a:focus-visible { text-decoration: underline; text-decoration-thickness: .06em; text-underline-offset: .12em; }
.ct3-lu-huge .ct3-lu-name { font-size: clamp(4.4rem, 7.2vw, 11.5rem); letter-spacing: -.025em; }
.ct3-lu-large .ct3-lu-name { font-size: clamp(3.2rem, 4.4vw, 6.6rem); }
.ct3-lu-medium .ct3-lu-name { font-size: clamp(2.4rem, 2.8vw, 4.2rem); }
.ct3-lu-small .ct3-lu-name { font-size: clamp(1.9rem, 1.8vw, 2.6rem); font-weight: var(--weight-copy, 400); }
.ct3-lu-sep { display: inline-block; margin: 0 .95em; font-size: .42em; vertical-align: .32em; color: var(--color-main); }
.ct3-lu-sep-slash .ct3-lu-sep { font-size: .7em; vertical-align: .05em; opacity: .5; color: inherit; }
.bg-main .ct3-lu-sep, .bg-black .ct3-lu-sep { color: inherit; opacity: .55; }
.ct3-lu-sep-none .ct3-lu-name { margin: 0 .3em; }
.ct3-lu-photo { position: absolute; z-index: 5; left: 50%; bottom: calc(100% + 10px); width: 170px; aspect-ratio: 4 / 5; transform: translateX(-50%); opacity: 0; pointer-events: none; border-radius: var(--img-radius, 0); overflow: hidden; box-shadow: 0 18px 40px -14px rgba(0,0,0,.45); }
.ct3-lu-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (hover: hover) and (min-width: 1001px) { .ct3-lu-name:hover .ct3-lu-photo, .ct3-lu-name:focus-within .ct3-lu-photo { opacity: 1; } }
@media (hover: hover) and (min-width: 1001px) and (prefers-reduced-motion: no-preference) { .ct3-lu-photo { transition: opacity .2s, transform .25s; transform: translate(-50%, 8px); } .ct3-lu-name:hover .ct3-lu-photo, .ct3-lu-name:focus-within .ct3-lu-photo { transform: translate(-50%, 0); } }

/* ── Campaign Progress ────────────────────────────────────────── */
.ct3-cp-top { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 40px 80px; align-items: end; }
.ct3-cp-copy .ct2-head > :last-child { margin-bottom: 0 !important; }
.ct3-cp-figures { text-align: right; }
.ct3-cp-raised { margin: 0; font-size: clamp(6rem, 8.5vw, 14rem) !important; line-height: .85; letter-spacing: -.03em; color: var(--color-main); white-space: nowrap; font-variant-numeric: tabular-nums; }
.bg-main .ct3-cp-raised, .bg-black .ct3-cp-raised { color: inherit; }
.ct3-cp-pre { font-size: .55em; vertical-align: .55em; margin-right: .04em; }
.ct3-cp-suf { font-size: .4em; letter-spacing: 0; }
.ct3-cp-goal { margin: 16px 0 0; font-size: 1.8em; opacity: .8; }
.ct3-cp-dot { opacity: .4; margin: 0 .3em; }
.ct3-cp-track { position: relative; margin: 110px 0 80px; height: 2px; background: color-mix(in srgb, currentColor 20%, transparent); }
.ct3-cp-fill { position: absolute; left: 0; top: -2px; height: 6px; width: var(--ct3-pct); background: var(--color-main); border-radius: 3px; }
.ct3-cp-bar .ct3-cp-track { height: 18px; border-radius: var(--btn-radius, 0); background: var(--ct3-faint); overflow: visible; }
.ct3-cp-bar .ct3-cp-fill { top: 0; height: 100%; border-radius: inherit; }
.bg-main .ct3-cp-fill, .bg-black .ct3-cp-fill { background: currentColor; }
.ct3-cp-now { position: absolute; left: var(--ct3-pct); bottom: 18px; transform: translateX(-50%); font-family: var(--font-data-numbers, var(--font-titles)); font-size: 1.6em; font-weight: 700; color: var(--color-main); white-space: nowrap; }
.bg-main .ct3-cp-now, .bg-black .ct3-cp-now { color: inherit; }
.ct3-cp-ms { position: absolute; top: -10px; width: 1px; height: 22px; background: currentColor; opacity: .5; }
.ct3-cp-bar .ct3-cp-ms { top: -4px; height: 26px; }
.ct3-cp-ms.is-reached { background: var(--color-main); opacity: 1; }
.ct3-cp-ms-amount, .ct3-cp-ms-label { position: absolute; left: 0; transform: translateX(-50%); white-space: nowrap; font-size: 1.4em; }
.ct3-cp-ms-amount { top: 30px; font-weight: 700; font-variant-numeric: tabular-nums; }
.ct3-cp-ms-label { top: 50px; opacity: .75; }
.ct3-cp-ms:last-child .ct3-cp-ms-amount, .ct3-cp-ms:last-child .ct3-cp-ms-label { left: auto; right: 0; transform: none; }
.ct3-cp-ms-list { display: none; list-style: none; margin: 0 0 40px; padding: 0; gap: 10px; }
.ct3-cp-ms-list li { margin: 0; font-size: 1.6em; padding-left: 18px; position: relative; }
.ct3-cp-ms-list li::before { content: ''; position: absolute; left: 0; top: .6em; width: 8px; height: 8px; border-radius: 50%; border: 1px solid currentColor; }
.ct3-cp-ms-list li.is-reached::before { background: var(--color-main); border-color: var(--color-main); }
.ct3-cp-foot { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 20px 40px; }
.ct3-cp-deadline { margin: 0; font-size: 1.6em; opacity: .75; }
@media (prefers-reduced-motion: no-preference) { .ct3-cp-track.is-wait .ct3-cp-fill { width: 0; } .ct3-cp-track.is-in .ct3-cp-fill { transition: width 1.6s cubic-bezier(.2,.7,.2,1); } }
@media (max-width: 1000px) {
	.ct3-cp-top { grid-template-columns: 1fr; } .ct3-cp-figures { text-align: left; }
	.ct3-cp-track { margin: 70px 0 34px; } .ct3-cp-ms-amount, .ct3-cp-ms-label { display: none; } .ct3-cp-ms-list { display: grid; }
}

/* ── Pathway Finder ───────────────────────────────────────────── */
.ct3-pw-ask { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.ct3-pw-q { margin: 0; }
.ct3-pw-chips { display: flex; flex-wrap: wrap; gap: 10px; }
.ct3-pw-results { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 24px; margin-top: 44px; }
.ct3-pw-card { box-sizing: border-box; margin: 0 !important; width: auto !important; padding: 0 !important; overflow: hidden; border: 1px solid var(--ct3-hair); border-radius: var(--img-radius, 0); display: flex; flex-direction: column; }
.ct3-pw-card.pad-40 { border: 0; }
.ct3-pw-img { aspect-ratio: 16 / 10; overflow: hidden; }
.ct3-pw-img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ct3-pw-copy { padding: 28px; display: grid; gap: 12px; align-content: start; }
.ct3-pw-copy .titles, .ct3-pw-copy p { margin: 0; }
.ct3-pw-link { font-size: 1.6em; font-weight: 600; justify-self: start; }
.ct3-pw-link::after { content: ' →'; }

/* ── Magazine Cover ───────────────────────────────────────────── */
.ct3-cv-frame { position: relative; container-type: inline-size; aspect-ratio: 16 / 10; overflow: hidden; border-radius: var(--img-radius, 0); }
.ct3-cv-main .ct3-cv-frame { background: var(--color-main); color: #fff; }
.ct3-cv-sec .ct3-cv-frame { background: var(--color-sec); }
.ct3-cv-third .ct3-cv-frame { background: var(--color-third); }
.ct3-cv-fourth .ct3-cv-frame { background: var(--color-fourth); }
.ct3-cv-black .ct3-cv-frame { background: #111; color: #fff; }
.ct3-cv-none .ct3-cv-frame { border: 1px solid var(--ct3-hair); }
.ct3-cv-frame a { color: inherit; }
.ct3-cv-issue { position: absolute; top: 3.2cqi; left: 3.2cqi; right: 3.2cqi; margin: 0; z-index: 3; display: flex; justify-content: space-between; }
.ct3-cv-mast { position: absolute; z-index: 1; top: 8cqi; left: 0; right: 0; margin: 0; text-align: center; font-family: var(--font-headlines, var(--font-titles)); font-weight: 800; font-size: min(18cqi, calc(132cqi / var(--ct3-len, 8))); line-height: .82; letter-spacing: -.04em; text-transform: uppercase; white-space: nowrap; }
.ct3-cv-photo { position: absolute; z-index: 2; left: 50%; bottom: 0; transform: translateX(-50%); height: 68%; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--img-radius, 0) var(--img-radius, 0) 0 0; }
.ct3-cv-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ct3-cover:not(.is-cutout) .ct3-cv-mast { z-index: 3; }
.ct3-cover.is-cutout .ct3-cv-photo { height: 88%; aspect-ratio: auto; border-radius: 0; overflow: visible; }
.ct3-cover.is-cutout .ct3-cv-photo img { width: auto; height: 100%; object-fit: contain; }
.ct3-cv-line { position: absolute; z-index: 3; max-width: 25cqi; display: grid; gap: 6px; }
.ct3-cv-tl { left: 3.2cqi; top: 38%; } .ct3-cv-tr { right: 3.2cqi; top: 38%; text-align: right; }
.ct3-cv-bl { left: 3.2cqi; bottom: 6%; } .ct3-cv-br { right: 3.2cqi; bottom: 6%; text-align: right; }
.ct3-cv-kicker { margin: 0; opacity: .8; }
.ct3-cv-text { margin: 0; line-height: 1.12; }
.ct3-cv-foot { margin-top: 44px; }
@media (max-width: 767px) {
	.ct3-cv-frame { aspect-ratio: auto; padding: 22px 20px 0; display: grid; gap: 18px; }
	.ct3-cv-issue, .ct3-cv-mast, .ct3-cv-photo, .ct3-cv-line { position: static; transform: none; }
	.ct3-cv-issue { order: -2; } .ct3-cv-mast { order: -1; font-size: 22cqi; text-align: left; white-space: normal; }
	.ct3-cv-photo { height: auto; width: 82%; margin: 0 auto; }
	.ct3-cv-line { max-width: none; text-align: left !important; padding-bottom: 16px; border-bottom: 1px solid color-mix(in srgb, currentColor 22%, transparent); }
	.ct3-cv-line:last-child { border-bottom: 0; padding-bottom: 22px; }
}

/* ── Impact Spread ────────────────────────────────────────────── */
.ct3-im-head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 20px 40px; }
.ct3-im-head .ct2-head > :last-child { margin-bottom: 0 !important; }
.ct3-im-label { margin: 0; opacity: .7; }
.ct3-im-grid { list-style: none; margin: 60px 0 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); grid-auto-flow: dense; gap: 60px 40px; }
.ct3-im-item { margin: 0; padding-top: 22px; border-top: 1px solid color-mix(in srgb, currentColor 22%, transparent); }
.ct3-im-item::before { display: none !important; }
.ct3-im-large { grid-column: span 7; } .ct3-im-medium { grid-column: span 5; } .ct3-im-small { grid-column: span 4; }
.ct3-im-num { margin: 0; line-height: .88; letter-spacing: -.03em; color: var(--color-main); font-variant-numeric: tabular-nums; white-space: nowrap; }
.bg-main .ct3-im-num, .bg-black .ct3-im-num { color: inherit; }
.ct3-im-large .ct3-im-num { font-size: clamp(7rem, 10vw, 16rem) !important; }
.ct3-im-medium .ct3-im-num { font-size: clamp(5rem, 6.2vw, 9.4rem) !important; }
.ct3-im-small .ct3-im-num { font-size: clamp(3.6rem, 4vw, 6rem) !important; }
.ct3-im-pre, .ct3-im-suf { font-size: .5em; letter-spacing: 0; }
.ct3-im-pre { vertical-align: .6em; }
.ct3-im-text { margin: 14px 0 0; max-width: 30ch; font-size: max(var(--size-copy), 1.7em); opacity: .82; }
@media (max-width: 1000px) { .ct3-im-large { grid-column: span 12; } .ct3-im-medium, .ct3-im-small { grid-column: span 6; } .ct3-im-grid { gap: 44px 30px; } }
@media (max-width: 600px) { .ct3-im-medium, .ct3-im-small { grid-column: span 12; } }

/* ── Countdown Band ───────────────────────────────────────────── */
.ct3-cd-clock { display: flex; flex-wrap: wrap; gap: clamp(16px, 3vw, 54px); margin-top: 40px; }
.ct3-countdown.ta-center .ct3-cd-clock { justify-content: center; }
.ct3-countdown.ta-right .ct3-cd-clock { justify-content: flex-end; }
.ct3-countdown .ct2-head + .ct3-cd-clock { margin-top: 40px; }
.ct3-countdown > .ct3-cd-clock:first-child { margin-top: 0; }
.ct3-cd-unit { display: grid; gap: 10px; justify-items: center; min-width: 1.6em; }
.ct3-cd-n { font-size: clamp(6rem, 9vw, 14rem) !important; line-height: .88; letter-spacing: -.02em; font-variant-numeric: tabular-nums; color: var(--color-main); }
.bg-main .ct3-cd-n, .bg-black .ct3-cd-n { color: inherit; }
.ct3-cd-l { font-size: 1.3em; letter-spacing: .14em; text-transform: uppercase; opacity: .7; }
.ct3-cd-boxes .ct3-cd-unit { padding: 26px 24px 20px; min-width: 150px; border: 1px solid var(--ct3-hair); border-radius: var(--img-radius, 0); }
.ct3-cd-boxes .ct3-cd-n { font-size: clamp(4.6rem, 6vw, 9rem) !important; }
.ct3-cd-where { margin: 30px 0 0; }
.ct3-cd-after { margin: 30px 0 0; }
@media (max-width: 600px) { .ct3-cd-n { font-size: clamp(4.4rem, 15vw, 7rem) !important; } .ct3-cd-boxes .ct3-cd-unit { min-width: 0; flex: 1 1 40%; padding: 18px 12px; } }

/* ── Before / After ───────────────────────────────────────────── */
.ct3-ba { display: grid; grid-template-columns: repeat(var(--ct3-ba-cols, 1), minmax(0, 1fr)); gap: 40px; }
.ct3-ba-cols-2 { --ct3-ba-cols: 2; }
.ct3-ba-item { margin: 0; }
.ct3-ba-stage { position: relative; overflow: hidden; border-radius: var(--img-radius, 0); aspect-ratio: 3 / 2; touch-action: pan-y; }
.ct3-ba-wide .ct3-ba-stage { aspect-ratio: 16 / 9; } .ct3-ba-square .ct3-ba-stage { aspect-ratio: 1; } .ct3-ba-portrait .ct3-ba-stage { aspect-ratio: 4 / 5; }
.ct3-ba-before, .ct3-ba-after { position: absolute; inset: 0; }
.ct3-ba-before img, .ct3-ba-after img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ct3-ba-after { clip-path: inset(0 0 0 var(--ct3-ba)); }
.ct3-ba-handle { position: absolute; top: 0; bottom: 0; left: var(--ct3-ba); width: 2px; margin-left: -1px; background: #fff; pointer-events: none; box-shadow: 0 0 0 1px rgba(0,0,0,.15); }
.ct3-ba-handle::after { content: '‹ ›'; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 46px; height: 46px; border-radius: 50%; background: #fff; color: #111; display: grid; place-items: center; font-size: 1.8em; font-weight: 700; letter-spacing: .1em; box-shadow: 0 6px 18px rgba(0,0,0,.3); }
.ct3-ba-range { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: ew-resize; -webkit-appearance: none; appearance: none; }
.ct3-ba-stage:has(.ct3-ba-range:focus-visible) { outline: 3px solid var(--color-main); outline-offset: 3px; }
.ct3-ba-tag { position: absolute; bottom: 14px; padding: 6px 12px; background: rgba(0,0,0,.6); color: #fff; font-family: var(--font-small-titles); font-size: 1.3em; letter-spacing: .08em; text-transform: uppercase; border-radius: var(--btn-radius, 0); }
.ct3-ba-tag-b { left: 14px; } .ct3-ba-tag-a { right: 14px; }
.ct3-ba-cap { margin: 12px 0 0; font-size: 1.6em; opacity: .8; }
@media (max-width: 767px) { .ct3-ba-cols-2 { --ct3-ba-cols: 1; } }

/* ── Schedule: Up Next board ──────────────────────────────────── */
.ct3-board-rows { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ct3-hair); }
.ct3-board-row { margin: 0; display: grid; grid-template-columns: 230px minmax(0, 1fr) auto; gap: 10px 30px; align-items: center; padding: 22px 0 22px 18px; border-bottom: 1px solid var(--ct3-hair); border-left: 3px solid transparent; }
.ct3-board-row::before { display: none !important; }
.ct3-board-row.is-later { display: none; }
.ct3-board-when { display: flex; align-items: baseline; gap: 12px; font-family: var(--font-data-numbers, var(--font-titles)); font-variant-numeric: tabular-nums; }
.ct3-board-day { font-family: var(--font-small-titles); font-size: 1.4em; letter-spacing: .12em; text-transform: uppercase; opacity: .7; }
.ct3-board-time { font-size: 2.6em; line-height: 1; }
.ct3-board-what { display: grid; gap: 4px; }
.ct3-board-title { font-family: var(--font-titles); font-size: 2.6em; line-height: 1.15; font-weight: var(--weight-headers, 600); }
.ct3-board-meta { font-size: 1.5em; opacity: .7; }
.ct3-board-in { font-family: var(--font-small-titles); font-size: 1.4em; letter-spacing: .06em; white-space: nowrap; opacity: .8; }
.ct3-board-row.is-next .ct3-board-in { opacity: 1; padding: 6px 12px; background: var(--color-main); color: #fff; border-radius: var(--btn-radius, 0); }
.bg-main .ct3-board-row.is-next .ct3-board-in, .bg-black .ct3-board-row.is-next .ct3-board-in { background: #fff; color: var(--color-main); }
.ct3-board-row.is-next .ct3-board-title { font-size: 3.4em; }
@media (max-width: 767px) { .ct3-board-row { grid-template-columns: 1fr auto; } .ct3-board-what { grid-column: 1 / -1; grid-row: 2; } .ct3-board-title, .ct3-board-row.is-next .ct3-board-title { font-size: 2.2em; } .ct3-board-time { font-size: 2.2em; } }

/* ── Schedule: Agenda ─────────────────────────────────────────── */
.ct3-ag-tabs { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 26px; }
.ct3-ag-tabs button { font: inherit; font-family: var(--font-small-titles); font-size: 1.5em; padding: 12px 20px; background: transparent; color: inherit; border: 1px solid color-mix(in srgb, currentColor 25%, transparent); border-radius: var(--btn-radius, 0); cursor: pointer; }
.ct3-ag-tabs button[aria-selected="true"] { background: var(--color-main); border-color: var(--color-main); color: #fff; }
.ct3-ag-legend { list-style: none; margin: 0 0 26px; padding: 0; display: flex; flex-wrap: wrap; gap: 10px 26px; }
.ct3-ag-legend li { margin: 0; padding-left: 14px; border-left: 4px solid currentColor; font-size: 1.5em; }
.ct3-ag-legend li::before { display: none !important; }
.ct3-agenda.is-js .ct3-ag-day { display: none; }
.ct3-agenda.is-js .ct3-ag-day.is-shown { display: block; }
.ct3-agenda.is-js .ct3-ag-dayname { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
.ct3-ag-dayname { margin: 30px 0 12px; }
.ct3-ag-slot { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 30px; padding: 22px 0; border-top: 1px solid var(--ct3-hair); }
.ct3-ag-time { margin: 0; font-family: var(--font-data-numbers, var(--font-titles)); font-size: 2em; font-variant-numeric: tabular-nums; }
.ct3-ag-sessions { display: grid; grid-template-columns: repeat(var(--ct3-n), minmax(0, 1fr)); gap: 16px; }
.ct3-ag-session { margin: 0 !important; width: auto !important; padding: 20px 22px !important; border-top: 3px solid color-mix(in srgb, currentColor 18%, transparent); display: grid; gap: 6px; align-content: start; }
.ct3-ag-session.ct2-tag-main { border-top-color: var(--color-main); } .ct3-ag-session.ct2-tag-sec { border-top-color: var(--color-sec); } .ct3-ag-session.ct2-tag-third { border-top-color: var(--color-third); } .ct3-ag-session.ct2-tag-fourth { border-top-color: var(--color-fourth); }
.ct3-ag-legend .ct2-tag-main { border-left-color: var(--color-main); } .ct3-ag-legend .ct2-tag-sec { border-left-color: var(--color-sec); } .ct3-ag-legend .ct2-tag-third { border-left-color: var(--color-third); } .ct3-ag-legend .ct2-tag-fourth { border-left-color: var(--color-fourth); }
.ct3-ag-track { font-family: var(--font-small-titles); font-size: 1.3em; letter-spacing: .1em; text-transform: uppercase; opacity: .75; }
.ct3-ag-title { font-family: var(--font-titles); font-size: 2.1em; line-height: 1.2; font-weight: var(--weight-headers, 600); }
.ct3-ag-meta { font-size: 1.5em; opacity: .75; }
@media (max-width: 767px) { .ct3-ag-slot { grid-template-columns: 1fr; gap: 12px; } .ct3-ag-sessions { grid-template-columns: 1fr; } }

/* ── Sticky Story: stacking cards ─────────────────────────────── */
.ct2-st-stack .ct2-sticky-items { gap: 0; }
.ct2-st-stack .ct2-st-item { position: sticky; top: 130px; margin-bottom: 40px !important; padding: 40px !important; border: 1px solid var(--ct3-hair); border-radius: var(--img-radius, 0); background: var(--color-white, #fff); box-shadow: 0 -14px 34px -24px rgba(0,0,0,.35); }
.bg-main .ct2-st-stack .ct2-st-item:not([class*="pad-"]) { background: var(--color-main); }
.ct2-st-stack .ct2-st-item:nth-child(2) { top: 150px; } .ct2-st-stack .ct2-st-item:nth-child(3) { top: 170px; } .ct2-st-stack .ct2-st-item:nth-child(4) { top: 190px; } .ct2-st-stack .ct2-st-item:nth-child(5) { top: 210px; } .ct2-st-stack .ct2-st-item:nth-child(n+6) { top: 230px; }
.ct2-st-stack .ct2-st-img { margin: -40px -40px 30px; aspect-ratio: 16 / 9; overflow: hidden; }
@media (max-width: 1000px) { .ct2-st-stack .ct2-st-item { top: 90px; } .ct2-st-stack .ct2-st-item:nth-child(n+2) { top: calc(90px + 14px * var(--ct3-i, 1)); } }

/* ── Sticky Story: pinned photo that changes ──────────────────── */
.ct3-stmedia { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: 90px; align-items: start; }
.ct3-stmedia.ct2-pin-right .ct3-stm-pin { order: 2; }
.ct3-stm-pin { position: sticky; top: 120px; }
.ct3-stm-frame { position: relative; aspect-ratio: 4 / 5; max-height: calc(100vh - 170px); margin: 0 auto; overflow: hidden; border-radius: var(--img-radius, 0); background: var(--ct3-faint); }
.ct3-stm-photo { position: absolute; inset: 0; opacity: 0; }
.ct3-stm-photo.is-on { opacity: 1; }
.ct3-stm-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (prefers-reduced-motion: no-preference) { .ct3-stm-photo { transition: opacity .6s ease; } .ct3-stmedia.is-js .ct3-stm-item { transition: opacity .4s ease; } }
.ct3-stm-items { list-style: none; margin: 0; padding: 0; }
.ct3-stm-item { margin: 0; min-height: 62vh; display: flex; flex-direction: column; justify-content: center; gap: 14px; padding: 40px 0; }
.ct3-stm-item::before { display: none !important; }
.ct3-stmedia.is-js .ct3-stm-item:not(.is-on) { opacity: .32; }
.ct3-stm-num { font-family: var(--font-data-numbers, var(--font-titles)); font-size: 1.6em; color: var(--color-main); letter-spacing: .1em; }
.bg-main .ct3-stm-num, .bg-black .ct3-stm-num { color: inherit; opacity: .7; }
.ct3-stm-item .titles, .ct3-stm-item p { margin: 0; }
.ct3-stm-thumb { display: none; }
@media (max-width: 1000px) {
	.ct3-stmedia { grid-template-columns: 1fr; gap: 0; } .ct3-stm-pin { display: none; }
	.ct3-stm-item { min-height: 0; padding: 30px 0; } .ct3-stmedia.is-js .ct3-stm-item:not(.is-on) { opacity: 1; }
	.ct3-stm-thumb { display: block; aspect-ratio: 4 / 3; overflow: hidden; border-radius: var(--img-radius, 0); margin-bottom: 8px; } .ct3-stm-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
}

/* ── Price List: photo spotlight ──────────────────────────────── */
.ct3-plspot { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: 70px; align-items: start; }
.ct3-plspot .ct2-price-list { grid-template-columns: 1fr; }
.ct3-pls-pin { position: sticky; top: 130px; }
.ct3-pls-frame { position: relative; aspect-ratio: 4 / 5; overflow: hidden; border-radius: var(--img-radius, 0); background: var(--ct3-faint); }
.ct3-pls-photo { position: absolute; inset: 0; opacity: 0; }
.ct3-pls-photo.is-on { opacity: 1; }
.ct3-pls-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (prefers-reduced-motion: no-preference) { .ct3-pls-photo { transition: opacity .35s ease; } }
.ct2-pl-item.has-photo { cursor: default; }
.ct2-pl-item.has-photo.is-on .ct2-pl-name { color: var(--color-main); }
.ct3-pls-thumb { display: none; }
@media (max-width: 1000px) {
	.ct3-plspot { grid-template-columns: 1fr; } .ct3-pls-pin { display: none; }
	.ct2-pl-item.has-photo { display: grid; grid-template-columns: 64px minmax(0, 1fr); column-gap: 16px; }
	.ct3-pls-thumb { display: block; grid-row: span 2; width: 64px; height: 64px; overflow: hidden; border-radius: var(--img-radius, 0); }
	.ct3-pls-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
}

/* ── Image with Content: text on a plate over the photo ───────── */
/* Markup: .section.image-content(.flip) > .div-within-section > .relative > .left (photo) + .right (text) */
.ct3-plate .image-content .div-within-section > .relative > .right { padding: clamp(32px, 4vw, 64px); border-radius: var(--img-radius, 0); box-shadow: 0 30px 60px -40px rgba(0,0,0,.4); position: relative; z-index: 2; }
@media (min-width: 1001px) {
	.ct3-plate .image-content .div-within-section > .relative { display: flex; align-items: center; }
	.ct3-plate .image-content .div-within-section > .relative > .left { float: none; flex: 0 0 60%; width: 60% !important; }
	.ct3-plate .image-content .div-within-section > .relative > .right { float: none; flex: 1 1 auto; width: auto !important; margin-left: -10%; }
	.ct3-plate .image-content.flip .div-within-section > .relative { flex-direction: row-reverse; }
	.ct3-plate .image-content.flip .div-within-section > .relative > .right { margin-left: 0; margin-right: -10%; }
}
.ct3-plate .image-content .div-within-section > .relative > .right .center-v { width: 100% !important; position: relative; top: 0; transform: none !important; }
.ct3-plate-white .image-content .relative > .right { background: var(--color-white, #fff); }
.ct3-plate-grey .image-content .relative > .right { background: #f3f3f1; }
.ct3-plate-main .image-content .relative > .right { background: var(--color-main); color: #fff; }
.ct3-plate-sec .image-content .relative > .right { background: var(--color-sec); }
.ct3-plate-third .image-content .relative > .right { background: var(--color-third); }
.ct3-plate-fourth .image-content .relative > .right { background: var(--color-fourth); }
.ct3-plate-black .image-content .relative > .right { background: #111; color: #fff; }
.ct3-plate-main .image-content .relative > .right :is(h2, h3, p, li, .titles, .small-titles), .ct3-plate-black .image-content .relative > .right :is(h2, h3, p, li, .titles, .small-titles) { color: inherit !important; }
@media (max-width: 1000px) { .ct3-plate .image-content .div-within-section > .relative > .right { margin: -60px 18px 0 !important; width: auto !important; } }

/* ── Grids: Listing cards ─────────────────────────────────────── */
.ct3-listing { position: relative; box-sizing: border-box; margin: 0 !important; padding: 0 !important; overflow: hidden; border: 1px solid var(--ct3-hair); border-radius: var(--img-radius, 0); display: flex; flex-direction: column; text-align: left; }
.ct3-listing.pad-40 { border: 0; }
.ct3-ls-media { position: relative; aspect-ratio: 4 / 3; overflow: hidden; background: var(--ct3-faint); }
.ct3-ls-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.ct3-ls-status { position: absolute; top: 14px; left: 14px; padding: 6px 12px; background: var(--color-main); color: #fff; font-family: var(--font-small-titles); font-size: 1.3em; letter-spacing: .06em; border-radius: var(--btn-radius, 0); }
.ct3-ls-body { padding: 24px 26px 26px; display: grid; gap: 6px; flex: 1; align-content: start; }
.ct3-ls-price { margin: 0; font-family: var(--font-data-numbers, var(--font-titles)); font-size: 2.6em; font-weight: var(--weight-headers, 600); line-height: 1.1; color: var(--color-main); font-variant-numeric: tabular-nums; }
.bg-main .ct3-ls-price, .bg-black .ct3-ls-price { color: inherit; }
.ct3-ls-title { margin: 0; }
.ct3-ls-title a { color: inherit; text-decoration: none; }
.ct3-ls-title a::after { content: ''; position: absolute; inset: 0; z-index: 1; }
.ct3-ls-title a:focus-visible { outline: none; }
.ct3-listing:has(.ct3-ls-title a:focus-visible) { outline: 2px solid var(--color-main); outline-offset: 3px; }
.ct3-ls-addr { margin: 0; font-size: 1.5em; opacity: .75; }
.ct3-ls-specs { list-style: none; margin: 12px 0 0; padding: 14px 0 0; border-top: 1px solid var(--ct3-hair); display: flex; flex-wrap: wrap; gap: 6px 18px; }
.ct3-ls-specs li { margin: 0; font-family: var(--font-small-titles); font-size: 1.4em; }
.ct3-ls-specs li::before { display: none !important; }
@media (prefers-reduced-motion: no-preference) { .ct3-listing { transition: transform .25s ease, box-shadow .25s ease; } .ct3-listing:hover { transform: translateY(-4px); box-shadow: 0 24px 40px -28px rgba(0,0,0,.4); } .ct3-ls-media img { transition: transform .6s ease; } .ct3-listing:hover .ct3-ls-media img { transform: scale(1.04); } }

/* ── Grids: category filter ───────────────────────────────────── */
.ct3-filter { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 34px; }
.ta-center .ct3-filter { justify-content: center; }

/* ── Phone refinements ────────────────────────────────────────── */
.ct3-board-when { white-space: nowrap; }
@media (max-width: 600px) {
	.ct3-cp-raised { font-size: clamp(4.4rem, 15vw, 7rem) !important; white-space: normal; }
	.ct3-cp-suf { display: block; font-size: .5em; margin-top: 6px; }
}
@media (max-width: 767px) {
	.ct3-lu-huge .ct3-lu-sep, .ct3-lu-large .ct3-lu-sep { display: none; }
	.ct3-lu-huge .ct3-lu-names, .ct3-lu-large .ct3-lu-names { flex-direction: column; align-items: center; gap: .08em; }
	.ta-left .ct3-lu-huge .ct3-lu-names, .ta-left .ct3-lu-large .ct3-lu-names { align-items: flex-start; }
}
@media (max-width: 600px) { .ct3-cp-foot { display: grid; justify-content: stretch; } .ct3-cp-foot .ct2-buttons { width: 100%; } }
@media (max-width: 1000px) { .ct3-listings > .panel { flex-basis: calc(50% - 15px) !important; } }
@media (max-width: 600px) { .ct3-listings > .panel { flex-basis: 100% !important; } }
