/* ════════════════════════════════════════════════════════════════════
   CONVERGENCE MICROSITE — loaded only on /convergence/* (layouts/convergence.php)
   Same family as the KIC site: kic.css tokens, Newsreader + Inter, the prism
   as a hairline of identity. Darker, more cinematic, event-driven.
   ════════════════════════════════════════════════════════════════════ */

.cv-body { background: #fff; overflow-x: clip; }
.cv-main { overflow-x: clip; }

/* ─ Staff preview ribbon ─ */
.cv-preview { display: flex; flex-wrap: wrap; gap: 6px 10px; align-items: center; justify-content: center; padding: 8px var(--gutter); background: var(--warning-100); color: var(--warning-700); font-size: var(--fs-sm); text-align: center; }
.cv-preview a { color: inherit; font-weight: 600; text-decoration: underline; }

/* ─ Event header ─ */
.cv-header { background: var(--navy-975); color: #fff; position: relative; }
.cv-bar { display: flex; align-items: center; gap: 16px; min-height: 64px; }
.cv-back { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px 6px 8px; border-radius: var(--r-pill); border: 1px solid rgba(255,255,255,.16); color: rgba(255,255,255,.82); font-size: var(--fs-sm); font-weight: 600; letter-spacing: .04em; transition: background var(--t-base), border-color var(--t-base); flex: none; }
.cv-back:hover { background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.4); color: #fff; }
.cv-back img { width: 22px; height: auto; }
.cv-brand { display: inline-flex; align-items: baseline; gap: 8px; margin-right: auto; color: #fff; font-family: var(--font-serif); font-weight: 300; font-size: 1.625rem; letter-spacing: -0.02em; line-height: 1; min-width: 0; }
.cv-brand em { font-style: italic; color: var(--blue-300); }
.cv-bar-actions { display: flex; align-items: center; gap: 14px; flex: none; }
.cv-my { display: inline-flex; align-items: center; gap: 6px; color: rgba(255,255,255,.85); font-size: var(--fs-sm); font-weight: 600; }
.cv-my:hover { color: #fff; }
.cv-cta { white-space: nowrap; }

/* ─ Sub-nav: sticky tab strip, scrollable on phones ─ */
.cv-subnav { position: sticky; top: 0; z-index: var(--z-header); background: rgba(6,17,49,.94); backdrop-filter: saturate(160%) blur(14px); border-top: 1px solid rgba(255,255,255,.08); }
.cv-subnav::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 2px; background: var(--prism); opacity: .9; }
.cv-subnav ul { display: flex; gap: 2px; margin: 0; padding: 0; list-style: none; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.cv-subnav ul::-webkit-scrollbar { display: none; }
.cv-subnav li { flex: none; scroll-snap-align: start; }
.cv-subnav a { position: relative; display: inline-flex; align-items: center; gap: 6px; height: 50px; padding: 0 14px; color: rgba(255,255,255,.7); font-size: var(--fs-sm); font-weight: 600; white-space: nowrap; transition: color var(--t-base); }
.cv-subnav a:hover { color: #fff; }
.cv-subnav a[aria-current] { color: #fff; }
.cv-subnav a[aria-current]::after { content: ''; position: absolute; left: 14px; right: 14px; bottom: 8px; height: 2px; border-radius: 2px; background: #fff; }
.cv-subnav-my { margin-left: auto; }
.cv-subnav-my a { color: var(--blue-300); }
@media (min-width: 768px) { .cv-subnav-my { display: none; } }
@media (max-width: 767px) {
  .cv-bar { gap: 10px; min-height: 56px; }
  .cv-back { padding: 5px 10px 5px 6px; }
  .cv-back img { display: none; }
  .cv-brand { font-size: 1.3125rem; }
  .cv-subnav ul { margin-inline: calc(var(--gutter) * -1); padding-inline: calc(var(--gutter) - 6px); mask-image: linear-gradient(90deg, transparent 0, #000 14px, #000 calc(100% - 22px), transparent 100%); }
  .cv-subnav a { height: 46px; padding: 0 12px; }
}
@media (max-width: 359px) { .cv-back span { display: none; } }

/* ─ Shared bits ─ */
.cv-kicker { display: inline-flex; align-items: center; gap: 10px; font-size: var(--fs-eyebrow); font-weight: 600; letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--blue-300); }
.cv-kicker::before { content: ''; width: 28px; height: 2px; border-radius: 2px; background: var(--prism); flex: none; }
.cv-theme { margin-top: 18px; max-width: 42ch; font-family: var(--font-serif); font-style: italic; font-weight: 300; font-size: clamp(1.375rem, 1.05rem + 1.3vw, 2.25rem); line-height: 1.25; color: rgba(255,255,255,.92); }
.cv-theme-label { display: inline-block; margin-right: 8px; padding: 3px 10px; border-radius: var(--r-pill); border: 1px solid rgba(255,255,255,.3); font-family: var(--font-sans); font-style: normal; font-size: 11px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; vertical-align: middle; color: var(--blue-300); }
.cv-prose p + p { margin-top: 1em; }
.cv-prose { font-size: var(--fs-body); line-height: var(--lh-body); color: var(--ink-700); max-width: var(--w-read); }
.on-dark .cv-prose { color: rgba(255,255,255,.8); }
.cv-draft { display: inline-flex; align-self: start; padding: 2px 8px; border-radius: var(--r-pill); background: var(--warning-100); color: var(--warning-700); font-size: 11px; font-weight: 600; }
.cv-empty { display: grid; justify-items: center; gap: 12px; max-width: 520px; margin-inline: auto; padding: clamp(40px, 6vw, 72px) 24px; text-align: center; border: 1px dashed var(--line); border-radius: var(--r-xl); color: var(--ink-600); }
.cv-empty > .icon { width: 36px; height: 36px; color: var(--blue-500); }
.cv-callout { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; padding: 16px 20px; border-radius: var(--r-lg); background: var(--blue-50); border: 1px solid var(--blue-100); color: var(--navy-900); }
.cv-callout > .icon { color: var(--blue-600); }
.cv-callout > div { flex: 1 1 240px; }

/* ─ Overview hero ─ */
.cv-hero, .cv-recap-hero { position: relative; isolation: isolate; overflow: hidden; color: #fff; background: var(--navy-975); }
.cv-hero { min-height: min(92svh, 920px); display: flex; align-items: flex-end; padding: clamp(96px, 14vh, 160px) 0 clamp(48px, 8vh, 88px); }
.cv-hero-media, .cv-hero-media picture, .cv-hero-media img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 62% 10%; z-index: -3; }
.cv-hero-media img { animation: cv-drift 28s var(--ease) infinite alternate; }
.cv-hero::before, .cv-recap-hero::before { content: ''; position: absolute; inset: 0; z-index: -2; background: linear-gradient(180deg, rgba(4,11,29,.5) 0%, rgba(4,11,29,.15) 32%, rgba(4,11,29,.96) 90%), linear-gradient(90deg, rgba(10,26,61,.85), transparent 65%); }
.cv-hero-glow { position: absolute; z-index: -1; width: 70vmax; height: 70vmax; right: -30vmax; bottom: -42vmax; border-radius: 50%; background: radial-gradient(closest-side, rgba(91,51,230,.35), rgba(213,43,208,.12) 45%, transparent 70%); filter: blur(10px); animation: cv-pulse 9s ease-in-out infinite alternate; pointer-events: none; }
.cv-hero-inner { position: relative; }
.cv-hero-word { margin-top: 18px; font-size: clamp(3.25rem, 0.6rem + 11vw, 11.5rem); }
.cv-hero-meta { display: flex; flex-wrap: wrap; gap: 12px 32px; margin-top: 28px; font-size: 1.0625rem; color: rgba(255,255,255,.9); }
.cv-hero-meta span { display: inline-flex; gap: 10px; align-items: center; }
.cv-hero-meta .icon { color: var(--blue-300); }
.cv-countdown > div { min-width: 76px; backdrop-filter: blur(8px); }
.cv-countdown > div > div { min-width: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.cv-hero-cta { margin-top: 36px; --gap: 12px; }
.cv-thanks { margin-top: 32px; }
@keyframes cv-drift { from { transform: scale(1.02); } to { transform: scale(1.1) translate(-1.5%, -1%); } }
@keyframes cv-pulse { from { opacity: .55; transform: scale(.95); } to { opacity: 1; transform: scale(1.05); } }

/* ─ Ticker band ─ */
.cv-ticker { overflow: hidden; background: var(--navy-950); color: rgba(255,255,255,.78); border-block: 1px solid rgba(255,255,255,.06); }
.cv-ticker-track { display: flex; width: max-content; animation: cv-marquee 48s linear infinite; }
.cv-ticker-set { display: flex; align-items: center; }
.cv-ticker-set span { padding: 18px 22px; font-family: var(--font-serif); font-size: clamp(1.125rem, 1rem + .6vw, 1.5rem); font-style: italic; font-weight: 300; white-space: nowrap; }
.cv-ticker-set i { width: 8px; height: 8px; border-radius: 50%; background: var(--prism); background-size: 400% 100%; flex: none; }
.cv-ticker-set i:nth-of-type(4n+2) { background-position: 33% 0; } .cv-ticker-set i:nth-of-type(4n+3) { background-position: 66% 0; } .cv-ticker-set i:nth-of-type(4n) { background-position: 100% 0; }
@keyframes cv-marquee { to { transform: translateX(-50%); } }

/* ─ Pillars (flexible count) ─ */
.cv-body .conv-pillars { grid-template-columns: repeat(var(--n, 5), minmax(0, 1fr)); }
@media (max-width: 1100px) { .cv-body .conv-pillars { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (max-width: 767px) { .cv-body .conv-pillars { grid-template-columns: 1fr 1fr; } }
@media (max-width: 480px) { .cv-body .conv-pillars { grid-template-columns: 1fr; } }

/* ─ Why attend ─ */
.cv-why-grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(32px, 5vw, 96px); align-items: center; }
.cv-why-copy .arrow-link { display: inline-flex; }
.cv-why-photos { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.cv-why-photos > div { border-radius: var(--r-xl); overflow: hidden; aspect-ratio: 3 / 4; }
.cv-why-photos > div:nth-child(2) { transform: translateY(32px); }
.cv-why-photos img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 900px) { .cv-why-grid { grid-template-columns: 1fr; } .cv-why-photos { max-width: 520px; } }

/* ─ Highlights ─ */
.cv-hl-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr)); gap: 1px; padding: 0; margin-top: 40px; background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.1); border-radius: var(--r-xl); overflow: hidden; }
.cv-hl-grid li { list-style: none; padding: 28px 26px 32px; background: var(--navy-950); display: grid; gap: 10px; align-content: start; }
.cv-hl-n { font-family: var(--font-mono); font-size: 12px; letter-spacing: .12em; background: var(--prism); -webkit-background-clip: text; background-clip: text; color: transparent; }
.cv-hl-grid h3 { font-family: var(--font-serif); font-weight: 400; font-size: 1.5rem; color: #fff; }
.cv-hl-grid p { color: rgba(255,255,255,.7); }

/* ─ Speakers ─ */
.cv-speakers { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); gap: clamp(16px, 2vw, 28px); padding: 0; }
.cv-speaker { list-style: none; }
.cv-speaker a { display: grid; gap: 6px; color: inherit; }
.cv-speaker-photo { position: relative; display: grid; place-items: center; aspect-ratio: 4 / 5; border-radius: var(--r-lg); overflow: hidden; background: linear-gradient(160deg, var(--navy-800), var(--navy-975)); margin-bottom: 10px; }
.cv-speaker-photo::after { content: ''; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--prism); transform: scaleX(0); transform-origin: left; transition: transform var(--t-slow) var(--ease-out); }
.cv-speaker a:hover .cv-speaker-photo::after, .cv-speaker a:focus-visible .cv-speaker-photo::after { transform: scaleX(1); }
.cv-speaker-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease-out); }
.cv-speaker a:hover img { transform: scale(1.04); }
.cv-speaker-initials { font-family: var(--font-serif); font-size: clamp(2.5rem, 2rem + 2vw, 3.5rem); font-weight: 300; color: var(--blue-300); }
.cv-speaker-name { font-family: var(--font-serif); font-size: 1.3125rem; line-height: 1.2; color: var(--navy-900); }
.cv-speaker-role { font-size: var(--fs-sm); color: var(--ink-500); }
.cv-speaker.is-featured .cv-speaker-name::after { content: 'Featured'; display: inline-block; margin-left: 8px; padding: 1px 8px; border-radius: var(--r-pill); background: var(--blue-50); color: var(--blue-700); font-family: var(--font-sans); font-size: 10.5px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; vertical-align: middle; }

/* ─ Plan cards ─ */
.cv-plan { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.cv-plan-card { position: relative; display: grid; gap: 4px; padding: 22px 22px 24px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); color: inherit; transition: border-color var(--t-base), box-shadow var(--t-base), transform var(--t-base); }
.cv-plan-card:hover { border-color: var(--blue-300); box-shadow: var(--sh-2); transform: translateY(-2px); }
.cv-plan-card .icon-tile { margin-bottom: 10px; }
.cv-plan-card .t { font-weight: 600; color: var(--navy-900); font-size: 1.0625rem; }
.cv-plan-card .s { font-size: var(--fs-sm); color: var(--ink-500); }
.cv-plan-go { position: absolute; top: 24px; right: 22px; color: var(--blue-600); transition: transform var(--t-base); }
.cv-plan-card:hover .cv-plan-go { transform: translateX(4px); }
@media (max-width: 1000px) { .cv-plan { grid-template-columns: 1fr 1fr; } }
@media (max-width: 520px) { .cv-plan { grid-template-columns: 1fr; } }
.cv-links { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 20px; }
.cv-links a { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--blue-600); }
.cv-mosaic { margin-top: 8px; }
.cv-body .conv-mosaic { padding-block: 8px; }

/* ─ Inner-page intro ─ */
.cv-intro { position: relative; isolation: isolate; overflow: hidden; background: var(--navy-975); color: #fff; padding: clamp(56px, 8vw, 104px) 0 clamp(40px, 6vw, 72px); }
.cv-intro-bg, .cv-intro-bg picture, .cv-intro-bg img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; }
.cv-intro-bg { opacity: .32; }
.cv-intro::before { content: ''; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(4,11,29,.96) 20%, rgba(4,11,29,.6)), linear-gradient(0deg, rgba(4,11,29,.9), transparent 60%); }
.cv-intro-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 32px; align-items: end; }
.cv-intro-title { margin-top: 16px; font-family: var(--font-serif); font-weight: 300; font-size: clamp(2.5rem, 1.5rem + 4.4vw, 5rem); line-height: 1; letter-spacing: -0.03em; color: #fff; }
.cv-intro-title em { color: var(--blue-300); }
.cv-intro-lead { margin-top: 18px; max-width: 56ch; font-size: var(--fs-lead); color: rgba(255,255,255,.75); }
.cv-intro-aside { min-width: min(100%, 320px); }
@media (max-width: 900px) { .cv-intro-inner { grid-template-columns: 1fr; } }
.cv-reg-status { display: grid; gap: 6px; padding: 22px 24px; border-radius: var(--r-xl); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.16); backdrop-filter: blur(12px); color: rgba(255,255,255,.78); font-size: var(--fs-sm); max-width: 380px; }
.cv-reg-status strong { color: #fff; font-size: 1.0625rem; }
.cv-reg-status .dot { width: 10px; height: 10px; border-radius: 50%; background: var(--ink-400); }
.cv-reg-status.is-open .dot { background: #34D399; box-shadow: 0 0 0 0 rgba(52,211,153,.6); animation: cv-ping 2s infinite; }
.cv-reg-status .btn { justify-self: start; }
@keyframes cv-ping { 70% { box-shadow: 0 0 0 10px rgba(52,211,153,0); } 100% { box-shadow: 0 0 0 0 rgba(52,211,153,0); } }

/* ─ Program ─ */
.cv-days { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: thin; padding-bottom: 6px; margin-bottom: 28px; }
.cv-day-tab { flex: none; display: grid; gap: 2px; min-width: 170px; padding: 14px 18px; border-radius: var(--r-lg); border: 1px solid var(--line); background: #fff; text-align: left; cursor: pointer; color: var(--ink-700); transition: border-color var(--t-base), background var(--t-base), color var(--t-base); }
.cv-day-tab:hover { border-color: var(--blue-300); }
.cv-day-tab[aria-selected='true'] { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.cv-day-tab .d { font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; opacity: .75; }
.cv-day-tab .n { font-family: var(--font-serif); font-size: 1.5rem; line-height: 1.15; }
.cv-day-tab .c { font-size: var(--fs-xs); opacity: .7; }
.cv-session { display: grid; grid-template-columns: 170px minmax(0, 1fr); gap: 24px; padding: 24px 0; border-top: 1px solid var(--line); }
.cv-session-time { font-family: var(--font-mono); font-size: 13px; color: var(--blue-700); padding-top: 4px; }
.cv-session-kind { display: inline-flex; align-items: center; gap: 6px; font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ink-500); }
.cv-session-kind::before { content: ''; width: 8px; height: 8px; border-radius: 50%; background: var(--k, var(--blue-500)); }
.cv-kind-plenary { --k: #1F4FD6; } .cv-kind-worship { --k: #5B33E6; } .cv-kind-workshop { --k: #D52BD0; } .cv-kind-luncheon { --k: #FF5A2E; } .cv-kind-business { --k: #E0A21B; } .cv-kind-prayer { --k: #12795A; }
.cv-session-title { margin-top: 6px; font-family: var(--font-serif); font-weight: 400; font-size: 1.5rem; line-height: 1.2; color: var(--navy-900); }
.cv-session-desc { margin-top: 8px; color: var(--ink-600); max-width: 70ch; }
.cv-session-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; margin-top: 10px; font-size: var(--fs-sm); color: var(--ink-500); }
.cv-session-meta span, .cv-session-extra { display: inline-flex; align-items: center; gap: 6px; }
.cv-session-speakers { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; padding: 0; list-style: none; }
.cv-session-speakers a { display: inline-flex; align-items: center; gap: 8px; padding: 4px 12px 4px 4px; border-radius: var(--r-pill); background: var(--blue-50); border: 1px solid var(--blue-100); color: var(--navy-900); font-size: var(--fs-sm); font-weight: 600; transition: border-color var(--t-base); }
.cv-session-speakers a:hover { border-color: var(--blue-400); }
.cv-session-extra { font-size: var(--fs-sm); color: var(--ink-500); }
.cv-chip-photo { display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; overflow: hidden; background: var(--navy-900); color: #fff; font-size: 11px; }
.cv-chip-photo img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 767px) { .cv-session { grid-template-columns: 1fr; gap: 6px; padding: 20px 0; } .cv-day-tab { min-width: 150px; } }

/* ─ Speaker profile ─ */
.cv-profile { padding: clamp(40px, 6vw, 88px) 0; background: linear-gradient(180deg, var(--mist), #fff); }
.cv-profile-grid { display: grid; grid-template-columns: minmax(0, 4fr) minmax(0, 7fr); gap: clamp(28px, 5vw, 80px); align-items: start; }
.cv-profile-photo { display: grid; place-items: center; aspect-ratio: 4 / 5; border-radius: var(--r-xl); overflow: hidden; background: linear-gradient(160deg, var(--navy-800), var(--navy-975)); box-shadow: var(--sh-3); }
.cv-profile-photo img { width: 100%; height: 100%; object-fit: cover; }
.cv-profile .cv-kicker { color: var(--blue-600); display: flex; }
.cv-profile-name { margin-top: 12px; font-family: var(--font-serif); font-weight: 300; font-size: clamp(2.25rem, 1.6rem + 3vw, 4rem); line-height: 1.02; letter-spacing: -0.025em; color: var(--navy-900); }
.cv-profile-role { margin-top: 12px; font-size: var(--fs-lead); color: var(--ink-600); }
.cv-backlink { display: inline-flex; align-items: center; gap: 6px; font-size: var(--fs-sm); font-weight: 600; color: var(--blue-600); }
@media (max-width: 767px) { .cv-profile-grid { grid-template-columns: 1fr; } .cv-profile-photo { max-width: 320px; } }
.cv-mini-sessions { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 300px), 1fr)); gap: 12px; padding: 0; list-style: none; }
.cv-mini-sessions a { display: grid; gap: 4px; padding: 18px 20px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); color: inherit; }
.cv-mini-sessions a:hover { border-color: var(--blue-300); }
.cv-mini-sessions .when { font-family: var(--font-mono); font-size: 12px; color: var(--blue-700); }
.cv-mini-sessions .t { font-weight: 600; color: var(--navy-900); }
.cv-mini-sessions .s { font-size: var(--fs-sm); color: var(--ink-500); }

/* ─ Register ─ */
.cv-tickets .ticket-card.is-addon { background: var(--paper); }
.cv-steps { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; padding: 0; list-style: none; }
.cv-steps li { display: grid; grid-template-columns: auto 1fr; gap: 14px; padding: 20px; border-radius: var(--r-lg); border: 1px solid var(--line-soft); }
.cv-steps li > span { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: var(--navy-900); color: #fff; font-weight: 600; }
.cv-steps p { font-size: var(--fs-sm); color: var(--ink-500); margin-top: 2px; }
@media (max-width: 900px) { .cv-steps { grid-template-columns: 1fr; } }
.cv-vendor { background: #fff; }

/* ─ Travel ─ */
.cv-travel { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(32px, 5vw, 96px); align-items: start; }
.cv-venue h2 { font-family: var(--font-serif); font-weight: 400; }
.cv-venue-addr, .cv-venue-when { display: flex; gap: 10px; align-items: flex-start; margin-top: 14px; color: var(--ink-700); }
.cv-venue-addr .icon, .cv-venue-when .icon { color: var(--blue-600); flex: none; margin-top: 3px; }
.cv-local { padding: clamp(24px, 3vw, 36px); border-radius: var(--r-xl); background: var(--linen); border: 1px solid #ECE8DE; }
.cv-local h2 { display: flex; gap: 10px; align-items: center; }
.cv-map-art { display: grid; place-items: center; width: 56px; height: 56px; border-radius: 50%; background: #fff; color: var(--blue-600); margin-bottom: 12px; }
@media (max-width: 900px) { .cv-travel { grid-template-columns: 1fr; } }
.cv-hotels { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 340px), 1fr)); gap: 16px; margin-top: 32px; }
.cv-hotel { padding: 24px; border-radius: var(--r-lg); background: #fff; border: 1px solid var(--line); display: flex; flex-direction: column; }
.cv-hotel-head { display: grid; grid-template-columns: auto 1fr; gap: 14px; align-items: start; }
.cv-hotel-facts { display: grid; gap: 8px; margin: 18px 0 0; padding-top: 16px; border-top: 1px solid var(--line-soft); }
.cv-hotel-facts > div { display: grid; grid-template-columns: 110px 1fr; gap: 12px; font-size: var(--fs-sm); }
.cv-hotel-facts dt { color: var(--ink-500); }
.cv-hotel-facts dd { margin: 0; color: var(--navy-900); font-weight: 500; overflow-wrap: anywhere; }
.cv-hotel .cluster { margin-top: auto; padding-top: 16px; }
.cv-copy { margin-left: 6px; padding: 1px 8px; border-radius: var(--r-pill); border: 1px solid var(--line); background: #fff; font-size: 11px; font-weight: 600; color: var(--blue-700); cursor: pointer; }
.cv-copy:hover { border-color: var(--blue-400); }

/* ─ Past years ─ */
.cv-next-card { display: grid; grid-template-columns: auto 1fr auto; gap: 4px 18px; align-items: center; padding: 22px 26px; border-radius: var(--r-xl); background: var(--navy-900); color: #fff; }
.cv-next-card .label-caps { color: var(--blue-300); grid-row: span 2; }
.cv-next-card .t { font-family: var(--font-serif); font-size: 1.5rem; }
.cv-next-card .s { color: rgba(255,255,255,.7); font-size: var(--fs-sm); grid-column: 2; }
.cv-next-card > .icon { grid-row: 1 / span 2; grid-column: 3; }

/* ─ Recap ─ */
.cv-recap-hero { padding: clamp(80px, 12vw, 160px) 0 clamp(40px, 6vw, 72px); }
.cv-recap-word { margin-top: 18px; font-size: clamp(3rem, 1rem + 8vw, 8.5rem); }
.cv-quotes { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 16px; }
.cv-quote { margin: 0; padding: 28px; border-radius: var(--r-xl); background: rgba(255,255,255,.05); border: 1px solid rgba(255,255,255,.12); }
.cv-quote > .icon { color: var(--blue-300); width: 28px; height: 28px; }
.cv-quote blockquote { margin: 14px 0 0; font-family: var(--font-serif); font-size: 1.375rem; line-height: 1.4; color: #fff; font-weight: 300; }
.cv-quote figcaption { margin-top: 14px; font-size: var(--fs-sm); color: rgba(255,255,255,.62); }
.cv-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 260px), 1fr)); grid-auto-rows: 220px; grid-auto-flow: dense; gap: 8px; padding: 0; margin-top: 32px; list-style: none; }
.cv-gallery li:nth-child(5n+1) { grid-column: span 2; grid-row: span 2; }
.cv-gallery a { position: relative; display: block; height: 100%; border-radius: 14px; overflow: hidden; background: var(--mist); }
.cv-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--t-slow) var(--ease-out); }
.cv-gallery a:hover img { transform: scale(1.04); }
.cv-gallery .cap { position: absolute; left: 0; right: 0; bottom: 0; padding: 24px 14px 10px; background: linear-gradient(0deg, rgba(4,11,29,.8), transparent); color: #fff; font-size: var(--fs-sm); }
@media (max-width: 600px) { .cv-gallery { grid-auto-rows: 180px; } .cv-gallery li:nth-child(5n+1) { grid-column: auto; grid-row: auto; } }
.cv-recap-program > summary { display: flex; align-items: baseline; gap: 14px; cursor: pointer; list-style: none; padding: 12px 0; }
.cv-recap-program > summary::-webkit-details-marker { display: none; }
.cv-recap-program > summary::after { content: '+'; margin-left: auto; font-size: 1.5rem; color: var(--blue-600); }
.cv-recap-program[open] > summary::after { content: '–'; }
.cv-recap-day { margin-top: 24px; font-family: var(--font-serif); font-weight: 400; font-size: 1.375rem; color: var(--navy-900); }

@media (prefers-reduced-motion: reduce) {
  .cv-hero-media img, .cv-hero-glow, .cv-ticker-track, .cv-reg-status.is-open .dot { animation: none; }
}
.cv-intro + .section, .cv-intro + .section-sm { padding-top: clamp(40px, 5vw, 72px); }
@media (max-width: 767px) {
  .cv-body .stat-row { grid-template-columns: 1fr 1fr; }
  .cv-body .stat-row > div { padding: 20px 12px 20px 0; }
  .cv-body .stat-row > div + div { border-top: 0; }
  .cv-body .stat-row > div:nth-child(n+3) { border-top: 1px solid var(--line); }
  .cv-body .stat-row > div:nth-child(even) { padding-left: 16px; border-left: 1px solid var(--line); }
  .cv-body .stat-row .num-xl { font-size: 2.5rem; }
}
@media (max-width: 520px) {
  .cv-speakers { grid-template-columns: 1fr 1fr; gap: 16px 12px; }
  .cv-speaker-name { font-size: 1.0625rem; }
  .cv-speaker.is-featured .cv-speaker-name::after { display: block; width: max-content; margin: 4px 0 0; }
}
