/* ============================================================
   DP NATION — PAGE BUILDER SECTIONS
   Loaded after css/style.css on pages the admin renders:
   builder pages (/my-page), /announcements, /schedule.php, 404.
   Same tokens, type and motion language as the static pages:
   black #06070b, crest blue, white ink, Sora / Manrope / Playfair.
   ============================================================ */

/* ── Page shell ─────────────────────────────────────────────── */
.pb-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.pb-main { position: relative; z-index: 1; }
body.pb-solid .pb-main { padding-top: 96px; }
.site-header.pb-nav-solid::before { opacity: 1; }
.pb-draft-pill {
  position: fixed; z-index: 400; left: 50%; bottom: 20px; transform: translateX(-50%);
  margin: 0; padding: 9px 18px; border-radius: 999px;
  background: var(--blue); color: #fff; font-size: 13px; font-weight: 600;
  box-shadow: 0 12px 40px -8px rgba(28, 63, 196, 0.8);
}
.container, .container-narrow { max-width: var(--max); margin: 0 auto; padding-left: var(--pad); padding-right: var(--pad); }
.container-narrow { max-width: 860px; }

/* ── Reveal (js/builder.js adds .is-visible) ─────────────────── */
.reveal-up, .reveal-left { opacity: 0; transition: opacity 0.9s var(--ease), transform 0.9s var(--ease); transition-delay: var(--delay, 0s); }
.reveal-up { transform: translateY(28px); }
.reveal-left { transform: translateX(-28px); }
.reveal-up.is-visible, .reveal-left.is-visible { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .reveal-up, .reveal-left { opacity: 1; transform: none; transition: none; } }

/* ── Section spacing & backgrounds ───────────────────────────── */
.pb-sec { position: relative; padding: clamp(74px, 10vw, 140px) 0; }
.pb-bg-dark { background: var(--bg); }
.pb-bg-raise { background: var(--bg-raise); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pb-bg-blue { background: radial-gradient(90% 120% at 100% 0%, rgba(77, 141, 255, 0.35), transparent 60%), linear-gradient(150deg, var(--blue) 0%, var(--blue-deep) 100%); }
.pb-bg-white { background: var(--white-acc); color: #06070b; }
.pb-bg-white .section-sub, .pb-bg-white .section-body, .pb-bg-white p { color: #4c5468; }

/* ── Headings, pills, buttons ─────────────────────────────────── */
.pb-head { margin-bottom: clamp(36px, 5vw, 64px); max-width: 780px; }
.pb-head--center { text-align: center; margin-left: auto; margin-right: auto; }
.pb-head--center .eyebrow-pill { justify-content: center; }
.eyebrow-pill {
  display: inline-flex; align-items: center; gap: 14px; margin-bottom: 22px;
  font-size: 12px; font-weight: 600; letter-spacing: 0.28em; text-transform: uppercase; color: var(--muted);
}
.eyebrow-pill::before { content: ""; width: 40px; height: 1px; background: var(--blue-bright); flex-shrink: 0; }
.eyebrow-pill.inverse { color: var(--ink-dim); }
.pb-bg-white .eyebrow-pill { color: #4c5468; }
.section-headline, .hero-headline, .giving-headline, .mission-headline {
  font-family: var(--font-head); font-weight: 800; letter-spacing: -0.03em; line-height: 1.04;
  font-size: clamp(32px, 4.4vw, 60px); color: var(--ink);
}
.pb-bg-white .section-headline { color: #06070b; }
.section-headline em, .hero-headline em, .giving-headline em, .pb-panel-title em {
  font-family: var(--font-serif); font-style: italic; font-weight: 500; letter-spacing: 0; color: var(--serif-ink);
}
.pb-bg-blue .section-headline em, .pb-bg-blue .giving-headline em { color: #d6e4ff; }
.pb-bg-white .section-headline em { color: var(--blue); }
.section-sub, .section-body { margin-top: 20px; color: var(--muted); font-size: clamp(16px, 1.3vw, 19px); max-width: 58ch; }
.pb-head--center .section-sub { margin-left: auto; margin-right: auto; }
.pb-bg-blue .section-sub { color: #d6e4ff; }

.btn-primary, .btn-ghost, .btn-outline, .btn-gold {
  display: inline-flex; align-items: center; gap: 12px; padding: 16px 28px; border-radius: 8px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase;
  transition: background 0.3s, color 0.3s, border-color 0.3s, transform 0.3s var(--ease), box-shadow 0.3s;
}
.btn-primary, .btn-gold { background: var(--blue); color: #fff; box-shadow: 0 14px 30px -14px rgba(28, 63, 196, 0.9); }
.btn-primary:hover, .btn-gold:hover { background: var(--blue-bright); transform: translateY(-2px); }
.btn-ghost, .btn-outline { border: 1px solid var(--line-strong); color: var(--ink); background: rgba(255, 255, 255, 0.04); backdrop-filter: blur(8px); }
.btn-ghost:hover, .btn-outline:hover { background: var(--white-block); color: var(--btn-block-hover-ink); border-color: var(--white-block); }
.btn-outline.dark { color: #06070b; border-color: rgba(6, 7, 11, 0.25); background: transparent; }
.pb-bg-blue .btn-primary, .pb-bg-blue .btn-gold { background: #fff; color: var(--blue-deep); }
.btn-icon svg { width: 12px; height: 12px; }
.pb-more { font-style: normal; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blue-glow); margin-top: auto; padding-top: 14px; }
.pb-more-row { margin: 44px 0 0; text-align: center; }
.pb-card-link { display: block; color: inherit; height: 100%; }

/* ── Heroes ──────────────────────────────────────────────────── */
.pb-hero, .pb-slideshow { position: relative; display: flex; align-items: flex-end; overflow: hidden; background: var(--bg); padding: 0; }
.pb-hero.pb-h-tall { min-height: 76vh; }
.pb-hero.pb-h-full, .pb-slideshow { min-height: 100vh; min-height: 100svh; }
.pb-hero.pb-h-short { min-height: 52vh; }
.pb-hero-media, .pb-slide { position: absolute; inset: 0; }
.pb-hero-media img, .pb-hero-media video, .pb-slide-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center 35%; }
.pb-hero-media iframe { position: absolute; top: 50%; left: 50%; width: 177.78vh; height: 56.25vw; min-width: 100%; min-height: 100%; transform: translate(-50%, -50%) scale(1.45); border: 0; pointer-events: none; }
.pb-shade { position: absolute; inset: 0; z-index: 1; }
.pb-ov-dark .pb-shade { background: linear-gradient(to top, rgba(6, 7, 11, 0.96) 0%, rgba(6, 7, 11, 0.35) 55%, rgba(6, 7, 11, 0.55) 100%), linear-gradient(90deg, rgba(6, 7, 11, 0.75), transparent 70%); }
.pb-ov-blue .pb-shade { background: linear-gradient(to top, rgba(6, 7, 11, 0.95) 0%, rgba(10, 20, 66, 0.55) 60%), linear-gradient(120deg, rgba(28, 63, 196, 0.55), transparent 70%); }
.pb-ov-light .pb-shade { background: linear-gradient(90deg, rgba(238, 242, 251, 0.96) 0%, rgba(238, 242, 251, 0.75) 55%, rgba(238, 242, 251, 0.15) 100%); }
.pb-hero-inner, .pb-slide-copy { position: relative; z-index: 2; width: 100%; padding-top: 150px; padding-bottom: clamp(60px, 10vh, 110px); }
.pb-hero-title { max-width: 14ch; font-size: clamp(44px, 6.4vw, 96px); }
.pb-hero-title em { display: block; }
.hero-sub { margin-top: 24px; color: var(--ink-dim); font-size: clamp(16px, 1.35vw, 20px); max-width: 52ch; }
.hero-sub strong { color: var(--ink-hi); }
.pb-align-center .pb-hero-inner { text-align: center; }
.pb-align-center .pb-hero-title, .pb-align-center .hero-sub { margin-left: auto; margin-right: auto; }
.pb-align-center .hero-actions, .pb-align-center .eyebrow-pill { justify-content: center; }
.pb-ov-light .hero-headline, .pb-ov-light .eyebrow-pill { color: #06070b; }
.pb-ov-light .hero-sub { color: #4c5468; }
.pb-ov-light .hero-headline em { color: var(--blue); }
.pb-ov-light .btn-ghost { color: #06070b; border-color: rgba(6, 7, 11, 0.25); }

/* Slideshow */
.pb-slides { position: absolute; inset: 0; }
.pb-slide { opacity: 0; transition: opacity 1.4s ease-in-out; display: flex; align-items: flex-end; }
.pb-slide.is-active { opacity: 1; z-index: 1; }
.pb-slide:not(.is-active) .pb-slide-copy > * { opacity: 0; transform: translateY(24px); }
.pb-slide-copy > * { transition: opacity 0.9s var(--ease) 0.3s, transform 0.9s var(--ease) 0.3s; }
.pb-slide-ui { position: absolute; z-index: 3; left: 0; right: 0; bottom: 28px; display: flex; justify-content: space-between; align-items: center; padding: 0 var(--pad); max-width: var(--max); margin: 0 auto; }
.pb-dots { display: flex; gap: 8px; }
.pb-dots button { width: 40px; height: 3px; padding: 0; border: 0; background: rgba(255, 255, 255, 0.25); overflow: hidden; }
.pb-dots button span { display: block; height: 100%; width: 0; background: var(--blue-glow); }
.pb-dots button.active span { animation: pbDot var(--pb-int, 7000ms) linear forwards; }
.pb-slideshow.is-paused .pb-dots button.active span, .pb-slideshow.no-autoplay .pb-dots button.active span { animation: none; width: 100%; }
@keyframes pbDot { to { width: 100%; } }
.pb-arrows { display: flex; gap: 8px; }
.pb-arrow { width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--line-strong); background: rgba(255, 255, 255, 0.05); color: #fff; display: grid; place-items: center; transition: background 0.2s; }
.pb-arrow:hover { background: var(--blue); border-color: var(--blue); }
.pb-pause i { width: 10px; height: 12px; border-left: 3px solid currentColor; border-right: 3px solid currentColor; }
.pb-slideshow.is-paused .pb-pause i { width: 0; height: 0; border: 0; border-left: 10px solid currentColor; border-top: 6px solid transparent; border-bottom: 6px solid transparent; margin-left: 3px; }

/* Photo panel */
.pb-panel { display: flex; align-items: center; min-height: 66vh; background-color: var(--bg); background-size: cover; background-position: center; text-align: center; }
.pb-panel::before { content: ""; position: absolute; inset: 0; background: radial-gradient(80% 90% at 50% 100%, rgba(28, 63, 196, 0.45), transparent 70%), linear-gradient(rgba(6, 7, 11, 0.6), rgba(6, 7, 11, 0.88)); }
.pb-panel-inner { position: relative; z-index: 1; }
.pb-panel-title { font-size: clamp(44px, 7vw, 104px); margin: 0 auto; max-width: 14ch; }
.pb-panel .hero-sub { margin-left: auto; margin-right: auto; }
.pb-panel .hero-actions, .pb-panel .eyebrow-pill { justify-content: center; }

/* ── Schedule cards (the "worship" section type) ─────────────── */
.services-header { margin-bottom: clamp(36px, 5vw, 60px); }
.services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.service-card-inner { height: 100%; padding: clamp(28px, 3vw, 40px); background: var(--bg); border: 1px solid var(--line); border-radius: 14px; display: flex; flex-direction: column; gap: 12px; transition: background 0.4s var(--ease), border-color 0.3s; }
.service-card-inner.featured, .service-card-inner.dark { border-color: rgba(77, 141, 255, 0.35); }
.pb-bg-raise .service-card-inner { background: var(--bg-raise); }
.service-card-inner:hover { background: var(--bg-panel); }
.service-card-inner.featured { background: linear-gradient(150deg, var(--blue), var(--blue-deep)); }
.service-card-inner.dark { background: var(--bg-blue); }
.service-time-badge { font-family: var(--font-head); font-size: clamp(34px, 3.4vw, 48px); font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
.service-title { font-size: clamp(19px, 1.7vw, 24px); }
.service-desc, .service-address { color: var(--muted); font-size: 15.5px; font-style: normal; }
.featured .service-desc { color: #d6e4ff; }
.service-meta { margin-top: auto; padding-top: 18px; display: flex; align-items: center; gap: 10px; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blue-glow); }
.featured .service-meta { color: #fff; }
.service-dot { width: 4px; height: 4px; border-radius: 50%; background: currentColor; opacity: 0.6; }
.service-meta:has(.service-location:empty) .service-dot, .service-location:empty { display: none; }
.service-icon { color: var(--blue-glow); }
.service-link { margin-top: auto; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blue-glow); }

/* ── Upcoming events ─────────────────────────────────────────── */
.calendar-header { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: clamp(36px, 5vw, 56px); }
.calendar-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 16px; }
.event-card-link { display: block; height: 100%; }
.event-card-inner { height: 100%; display: flex; gap: 22px; padding: 26px; border: 1px solid var(--line); border-radius: 14px; background: var(--bg-raise); transition: border-color 0.3s, transform 0.4s var(--ease), background 0.3s; }
.event-card-link:hover .event-card-inner { border-color: rgba(77, 141, 255, 0.5); transform: translateY(-3px); background: var(--bg-panel); }
.event-card-inner.featured { background: linear-gradient(150deg, rgba(28, 63, 196, 0.35), var(--bg-raise) 70%); border-color: rgba(77, 141, 255, 0.35); }
.event-date { flex: none; width: 64px; height: 72px; border-radius: 10px; display: grid; place-content: center; text-align: center; background: var(--bg-blue); border: 1px solid rgba(77, 141, 255, 0.3); }
.event-day { font-size: 11px; font-weight: 700; letter-spacing: 0.18em; color: var(--blue-glow); }
.event-num { font-family: var(--font-head); font-size: 26px; font-weight: 800; line-height: 1.1; }
.event-tag { font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.event-tag.featured-tag { color: var(--blue-glow); }
.event-title { margin: 8px 0 8px; font-size: 20px; }
.event-time, .event-place { color: var(--muted); font-size: 14.5px; }

/* ── Contact form & venue ─────────────────────────────────────── */
.pb-connect-grid { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(40px, 7vw, 110px); align-items: start; }
.pb-venue-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 90px); align-items: stretch; }
.pb-venue-solo { grid-template-columns: minmax(0, 760px); }
.pb-venue-facts { margin: 30px 0 34px; border-top: 1px solid var(--line); }
.pb-venue-facts div { display: grid; grid-template-columns: 160px 1fr; gap: 20px; padding: 18px 0; border-bottom: 1px solid var(--line); }
.pb-venue-facts dt { display: flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.pb-venue-facts dt svg { color: var(--blue-glow); }
.pb-venue-facts dd { margin: 0; color: var(--ink-dim); }
.pb-venue-map { min-height: 380px; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); filter: grayscale(0.4) contrast(1.05); }

/* ── Support band (the "giving" section type) ────────────────── */
.giving { overflow: hidden; background: linear-gradient(150deg, var(--blue) 0%, var(--blue-deep) 70%, #06070b 100%); }
.giving-bg { position: absolute; inset: 0; pointer-events: none; background-image: linear-gradient(rgba(255, 255, 255, 0.05) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, 0.05) 1px, transparent 1px); background-size: 64px 64px; mask-image: radial-gradient(70% 90% at 80% 20%, #000, transparent); }
.giving-inner { position: relative; display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 0.8fr); gap: clamp(40px, 6vw, 90px); align-items: center; }
.giving .eyebrow-pill { color: #d6e4ff; }
.giving .eyebrow-pill::before { background: #fff; }
.giving-headline em { color: #d6e4ff; }
.giving-body { margin-top: 22px; color: #d6e4ff; font-size: clamp(16px, 1.3vw, 19px); max-width: 52ch; }
.giving-actions { margin-top: 34px; display: flex; align-items: center; gap: 20px; flex-wrap: wrap; }
.giving .btn-gold { background: #fff; color: var(--blue-deep); box-shadow: 0 14px 34px -12px rgba(0, 0, 0, 0.6); }
.giving .btn-gold:hover { background: var(--white-block); }
.giving-note { font-size: 13px; color: rgba(214, 228, 255, 0.75); }
.giving-ways { display: grid; gap: 1px; background: rgba(255, 255, 255, 0.14); border: 1px solid rgba(255, 255, 255, 0.14); border-radius: 14px; overflow: hidden; }
.giving-way { display: flex; gap: 16px; align-items: flex-start; padding: 22px; background: rgba(6, 7, 11, 0.28); backdrop-filter: blur(6px); }
.giving-way-icon { flex: none; width: 40px; height: 40px; border-radius: 10px; display: grid; place-items: center; background: rgba(255, 255, 255, 0.12); color: #fff; }
.giving-way-title { font-weight: 700; color: #fff; }
.giving-way-desc { font-size: 14px; color: #d6e4ff; }

/* ── Icon cards (the "ministries" section type) ──────────────── */
.ministries-header { margin-bottom: clamp(36px, 5vw, 60px); max-width: 780px; }
.ministries-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.ministry-card-inner { position: relative; overflow: hidden; height: 100%; display: flex; flex-direction: column; gap: 12px; padding: clamp(28px, 3vw, 40px); background: var(--bg); border: 1px solid var(--line); border-radius: 14px; transition: background 0.45s var(--ease); }
.pb-bg-raise .ministry-card-inner { background: var(--bg-raise); }
.ministry-card-inner::after { content: ""; position: absolute; left: 0; top: 0; width: 100%; height: 2px; background: linear-gradient(90deg, var(--blue-bright), transparent); transform: scaleX(0); transform-origin: left; transition: transform 0.5s var(--ease); }
.ministry-card-inner:hover { background: var(--bg-panel); }
.ministry-card-inner:hover::after { transform: scaleX(1); }
.ministry-icon { width: 52px; height: 52px; border-radius: 12px; display: grid; place-items: center; color: var(--blue-glow); background: rgba(28, 63, 196, 0.16); border: 1px solid rgba(77, 141, 255, 0.25); margin-bottom: 8px; }
.ministry-title { font-size: clamp(19px, 1.7vw, 24px); }
.ministry-desc { color: var(--muted); font-size: 15.5px; }

/* ── Grids & cards ──────────────────────────────────────────── */
.pb-cols-2 { grid-template-columns: repeat(2, 1fr) !important; }
.pb-cols-3 { grid-template-columns: repeat(3, 1fr) !important; }
.pb-cols-4 { grid-template-columns: repeat(4, 1fr) !important; }
.pb-cards, .pb-numgrid, .pb-tiles, .pb-vgrid, .pb-stats { display: grid; gap: 16px; }
.pb-card { display: flex; flex-direction: column; overflow: hidden; border-radius: 14px; background: var(--bg-raise); border: 1px solid var(--line); transition: transform 0.4s var(--ease), border-color 0.3s; }
.pb-bg-raise .pb-card { background: var(--bg-panel); }
a.pb-card:hover { transform: translateY(-4px); border-color: rgba(77, 141, 255, 0.45); }
.pb-card-media { display: block; aspect-ratio: 16 / 10; background: linear-gradient(135deg, var(--bg-blue), var(--bg-panel)); overflow: hidden; }
.pb-card-media:empty { display: none; }
.pb-card-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
a.pb-card:hover .pb-card-media img { transform: scale(1.05); }
.pb-card-body { display: flex; flex-direction: column; gap: 8px; padding: 24px 26px 28px; flex: 1; }
.pb-card-eyebrow { font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--blue-glow); }
.pb-card-body strong { font-family: var(--font-head); font-size: 21px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.15; }
.pb-card-body > span { font-size: 15px; color: var(--muted); }
.pb-numcard { position: relative; display: flex; flex-direction: column; gap: 12px; padding: clamp(28px, 3vw, 40px); border-radius: 14px; background: var(--bg-raise); border: 1px solid var(--line); overflow: hidden; transition: background 0.45s var(--ease), border-color 0.3s; }
.pb-numcard:hover { background: linear-gradient(150deg, rgba(28, 63, 196, 0.35), var(--bg-raise) 70%); border-color: rgba(77, 141, 255, 0.4); }
.pb-numcard-n { font-family: var(--font-head); font-size: 12px; font-weight: 700; letter-spacing: 0.2em; color: var(--faint); }
.pb-numcard h3 { font-size: clamp(19px, 1.7vw, 24px); }
.pb-numcard p { font-size: 15.5px; color: var(--muted); }
.pb-tile { position: relative; display: flex; flex-direction: column; gap: 6px; padding: 20px 22px; border-radius: 12px; background: var(--bg-raise); border: 1px solid var(--line); transition: border-color 0.2s, transform 0.3s var(--ease); }
.pb-tile:hover { border-color: var(--blue-bright); transform: translateY(-2px); }
.pb-tile b { font-weight: 700; padding-right: 20px; }
.pb-tile small { font-size: 13.5px; color: var(--muted); }
.pb-ext { position: absolute; top: 16px; right: 18px; color: var(--blue-glow); }
.pb-hub-group + .pb-hub-group { margin-top: 36px; }
.pb-hub-label { margin: 0 0 14px; font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--blue-glow); }

/* Photo rail */
.pb-rail { display: flex; gap: 16px; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0 var(--pad) 16px; scrollbar-width: thin; scrollbar-color: var(--blue) transparent; }
.pb-rail-card { flex: none; width: clamp(240px, 28vw, 380px); margin: 0; scroll-snap-align: start; }
.pb-rail-card img { width: 100%; aspect-ratio: 3 / 4; object-fit: cover; border-radius: 14px; }
.pb-rail-card figcaption { margin-top: 12px; font-size: 14px; color: var(--muted); }

/* ── Text ───────────────────────────────────────────────────── */
.post-body { color: var(--ink-dim); font-size: 17.5px; line-height: 1.75; }
.post-body > * + * { margin-top: 1.1em; }
.post-body h2, .post-body h3 { color: var(--ink); margin-top: 1.6em; }
.post-body h2 { font-size: clamp(26px, 2.6vw, 36px); }
.post-body h3 { font-size: 22px; }
.post-body a { color: var(--blue-glow); text-decoration: underline; text-underline-offset: 3px; }
.post-body strong { color: var(--ink-hi); }
.post-body ul, .post-body ol { padding-left: 1.3em; }
.post-body ul { list-style: disc; } .post-body ol { list-style: decimal; }
.post-body li + li { margin-top: 0.4em; }
.post-body blockquote { padding: 22px 26px; border-left: 2px solid var(--blue-bright); background: var(--bg-raise); font-family: var(--font-serif); font-style: italic; font-size: 1.15em; color: var(--ink); }
.post-body img { border-radius: 12px; margin: 1.5em 0; }
.pb-bg-white .post-body { color: #33394a; }
.pb-bg-white .post-body strong, .pb-bg-white .post-body h2, .pb-bg-white .post-body h3 { color: #06070b; }
.pb-reading .section-headline { margin-bottom: 28px; }
.pb-split { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.pb-split-head { position: sticky; top: 110px; }
.pb-text .btn-primary { margin-top: 32px; }
.about-grid { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(40px, 6vw, 96px); align-items: center; }
.pb-img-right .about-image-col { order: 2; }
.about-img-frame { position: relative; }
.about-img-outer { border-radius: 16px; overflow: hidden; border: 1px solid var(--line); }
.about-img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.about-img-badge { position: absolute; right: -18px; bottom: -18px; padding: 18px 22px; border-radius: 12px; background: var(--blue); box-shadow: 0 20px 44px -16px rgba(28, 63, 196, 0.9); }
.about-badge-year { display: block; font-family: var(--font-head); font-size: 34px; font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
.about-badge-label { display: block; margin-top: 4px; font-size: 11px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: #d6e4ff; }
.about-text-col .post-body { margin-top: 24px; }

/* Quote */
.pb-quote { text-align: center; background-size: cover; background-position: center; }
.pb-quote--dark { background-color: var(--bg); }
.pb-quote--blue { background: radial-gradient(90% 120% at 50% 0%, rgba(77, 141, 255, 0.4), transparent 60%), linear-gradient(160deg, var(--blue), var(--blue-deep)); }
.pb-quote--photo { background-color: var(--bg); }
.pb-quote--photo::before { content: ""; position: absolute; inset: 0; background: rgba(6, 7, 11, 0.78); }
.pb-quote-inner { position: relative; }
.pb-quote-mark { display: block; font-family: var(--font-serif); font-size: 120px; line-height: 0.6; height: 50px; color: var(--blue-glow); }
.pb-quote--blue .pb-quote-mark { color: rgba(255, 255, 255, 0.55); }
.pb-quote blockquote { margin: 0; font-family: var(--font-serif); font-style: italic; font-weight: 500; font-size: clamp(28px, 3.6vw, 48px); line-height: 1.25; }
.pb-quote-attr { margin-top: 30px; display: flex; flex-direction: column; gap: 4px; }
.pb-quote-attr b { font-family: var(--font-head); font-size: 16px; font-weight: 700; }
.pb-quote-attr span { font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.pb-quote--blue .pb-quote-attr span { color: #d6e4ff; }

/* Values band */
.mission-inner { display: grid; grid-template-columns: minmax(0, 0.9fr) minmax(0, 1.1fr); gap: clamp(40px, 6vw, 96px); align-items: start; }
.mission-left { position: sticky; top: 110px; }
.mission-headline { font-size: clamp(36px, 5vw, 72px); }
.mission-value { display: grid; grid-template-columns: 64px 1fr; gap: 20px; padding: 28px 0; border-top: 1px solid var(--line); }
.value-number { font-family: var(--font-head); font-size: 12px; font-weight: 700; letter-spacing: 0.2em; color: var(--blue-glow); padding-top: 6px; }
.value-title { font-size: clamp(20px, 2vw, 28px); }
.value-desc { margin-top: 8px; color: var(--muted); }

/* Numbers (mirrors .stats-panel) */
.pb-stats { gap: 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pb-stat { padding: clamp(28px, 3vw, 44px) clamp(18px, 2vw, 32px); border-right: 1px solid var(--line); }
.pb-stat:last-child { border-right: 0; }
.pb-stat strong { display: block; font-family: var(--font-head); font-size: clamp(44px, 5.4vw, 80px); font-weight: 800; letter-spacing: -0.04em; line-height: 1; }
.pb-stat-label { display: block; margin-top: 14px; font-size: 12px; font-weight: 600; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.pb-stat p { margin-top: 10px; font-size: 15px; color: var(--muted); }

/* Timeline (mirrors .process-row) */
.pb-step { display: grid; grid-template-columns: 180px minmax(0, 0.8fr) minmax(0, 1.2fr); gap: 32px; align-items: baseline; padding: 30px 0; border-top: 1px solid var(--line); transition: padding-left 0.4s var(--ease); }
.pb-step:last-child { border-bottom: 1px solid var(--line); }
.pb-step:hover { padding-left: 16px; }
.pb-step-label { font-family: var(--font-head); font-size: 14px; font-weight: 700; letter-spacing: 0.18em; color: var(--blue-glow); }
.pb-step h3 { font-size: clamp(20px, 2vw, 28px); }
.pb-step p { color: var(--muted); }

/* Alumni stories */
.pb-testimonies { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.pb-testimony { margin: 0; display: flex; flex-direction: column; gap: 16px; padding: 32px; border-radius: 14px; background: var(--bg-raise); border: 1px solid var(--line); }
.pb-bg-raise .pb-testimony { background: var(--bg-panel); }
.pb-testimony-mark { font-family: var(--font-serif); font-size: 72px; line-height: 0.5; height: 24px; color: var(--blue-glow); }
.pb-testimony blockquote { margin: 0; font-size: 17px; line-height: 1.65; color: var(--ink-dim); }
.pb-testimony figcaption { margin-top: auto; display: flex; flex-direction: column; gap: 2px; }
.pb-testimony figcaption b { font-family: var(--font-head); font-weight: 700; }
.pb-testimony figcaption small { font-size: 13px; color: var(--muted); }

/* FAQ */
.pb-faq-wrap { display: grid; grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr); gap: clamp(32px, 6vw, 96px); align-items: start; }
.pb-faq-wrap .pb-head { position: sticky; top: 110px; }
.pb-faq { border-top: 1px solid var(--line); }
.pb-faq-item { border-bottom: 1px solid var(--line); }
.pb-faq-item summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; padding: 24px 0; cursor: pointer; font-family: var(--font-head); font-weight: 600; font-size: clamp(17px, 1.5vw, 21px); }
.pb-faq-item summary::-webkit-details-marker { display: none; }
.pb-faq-item summary i { position: relative; width: 30px; height: 30px; flex: none; border-radius: 50%; border: 1px solid var(--line-strong); }
.pb-faq-item summary i::before, .pb-faq-item summary i::after { content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 1.5px; background: currentColor; transform: translate(-50%, -50%); transition: transform 0.3s var(--ease); }
.pb-faq-item summary i::after { transform: translate(-50%, -50%) rotate(90deg); }
.pb-faq-item[open] summary i { border-color: var(--blue-bright); color: var(--blue-glow); }
.pb-faq-item[open] summary i::after { transform: translate(-50%, -50%) rotate(0deg); }
.pb-faq-a p { margin: 0 0 24px; color: var(--muted); max-width: 62ch; }

/* Scrolling words (mirrors .ticker) */
.pb-ticker { overflow: hidden; padding: 26px 0; background: var(--bg); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.pb-ticker--light { background: var(--bg-blue); border-color: rgba(255, 255, 255, 0.12); }
.pb-ticker-track { display: flex; align-items: center; gap: 32px; width: max-content; animation: pbTicker 38s linear infinite; }
.pb-ticker span { font-family: var(--font-head); font-size: clamp(36px, 5vw, 72px); font-weight: 800; letter-spacing: -0.03em; line-height: 1; white-space: nowrap; }
.pb-ticker span.is-out { color: transparent; -webkit-text-stroke: 1.2px rgba(246, 248, 252, 0.6); }
.pb-ticker i { width: 10px; height: 10px; border-radius: 50%; background: var(--blue-bright); flex: none; }
.pb-ticker--light i { background: #fff; }
@keyframes pbTicker { to { transform: translateX(-50%); } }

/* ── Video ──────────────────────────────────────────────────── */
.pb-player { position: relative; overflow: hidden; aspect-ratio: 16 / 9; border-radius: 16px; background: #000; cursor: pointer; border: 1px solid var(--line); }
.pb-facade { position: absolute; inset: 0; }
.pb-facade img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
.pb-facade iframe, .pb-facade video { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; background: #000; }
.pb-player:hover .pb-facade img { transform: scale(1.03); }
.pb-player-body { position: absolute; inset: 0; display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; padding: clamp(20px, 3vw, 40px); background: linear-gradient(to top, rgba(6, 7, 11, 0.92), rgba(6, 7, 11, 0.1) 60%); }
.pb-player.is-playing .pb-player-body { display: none; }
.pb-player-body h3 { font-size: clamp(22px, 2.6vw, 38px); }
.pb-player-body p { margin-top: 8px; font-size: 15px; color: var(--ink-dim); max-width: 56ch; }
.pb-player-meta { margin: 0 0 8px !important; font-size: 11px !important; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--blue-glow) !important; }
.pb-player-meta:empty { display: none; }
.pb-play { flex: none; width: 76px; height: 76px; border-radius: 50%; border: 0; background: var(--blue); display: grid; place-items: center; box-shadow: 0 0 0 10px rgba(28, 63, 196, 0.25); transition: transform 0.3s var(--ease), background 0.3s; }
.pb-play i { width: 0; height: 0; border-left: 17px solid #fff; border-top: 11px solid transparent; border-bottom: 11px solid transparent; margin-left: 5px; }
.pb-player:hover .pb-play { transform: scale(1.08); background: var(--blue-bright); }
.pb-player--empty { display: grid; place-items: center; cursor: default; background: var(--bg-raise); }
.pb-player--empty .pb-player-body { position: static; background: none; justify-content: center; text-align: center; color: var(--muted); }
.pb-playlist { display: grid; grid-template-columns: minmax(0, 1.7fr) minmax(280px, 1fr); gap: 16px; align-items: start; }
.pb-list { border-radius: 16px; background: var(--bg-raise); border: 1px solid var(--line); overflow: hidden; }
.pb-list-head { display: flex; justify-content: space-between; gap: 16px; padding: 16px 20px; font-size: 13px; border-bottom: 1px solid var(--line); }
.pb-list-head span { color: var(--muted); }
.pb-list ol { list-style: none; margin: 0; padding: 8px; max-height: 440px; overflow-y: auto; }
.pb-item { width: 100%; display: flex; align-items: center; gap: 14px; padding: 10px; border: 0; border-radius: 10px; background: transparent; text-align: left; font-family: var(--font-body); }
.pb-item:hover { background: rgba(255, 255, 255, 0.04); }
.pb-item.is-active { background: rgba(28, 63, 196, 0.22); }
.pb-thumb { position: relative; flex: none; width: 92px; aspect-ratio: 16 / 9; border-radius: 6px; overflow: hidden; background: #111; }
.pb-thumb img { width: 100%; height: 100%; object-fit: cover; }
.pb-item-text { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 2px; }
.pb-item-text b { font-weight: 600; font-size: 14px; line-height: 1.35; }
.pb-item-text small { font-size: 12px; color: var(--muted); }
.pb-num { font-family: var(--font-head); font-weight: 700; font-size: 12px; color: var(--faint); }
.pb-item.is-active .pb-num { color: var(--blue-glow); }
.pb-vcard { margin: 0; cursor: pointer; }
.pb-vcard-media { position: relative; display: block; aspect-ratio: 16 / 9; border-radius: 12px; overflow: hidden; background: #111; border: 1px solid var(--line); }
.pb-vcard-media img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
.pb-vcard:hover .pb-vcard-media img { transform: scale(1.05); }
.pb-vcard iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; z-index: 2; }
.pb-vcard.has-frame .pb-mini-play { display: none; }
.pb-mini-play { position: absolute; left: 50%; top: 50%; width: 56px; height: 56px; margin: -28px 0 0 -28px; border-radius: 50%; background: var(--blue); box-shadow: 0 0 0 8px rgba(28, 63, 196, 0.25); }
.pb-mini-play::after { content: ""; position: absolute; left: 22px; top: 18px; border-left: 14px solid #fff; border-top: 10px solid transparent; border-bottom: 10px solid transparent; }
.pb-vcard figcaption { margin-top: 14px; font-family: var(--font-head); font-weight: 600; }

/* ── Announcements ─────────────────────────────────────────── */
.announce-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.announce-card { display: flex; flex-direction: column; border-radius: 14px; overflow: hidden; background: var(--bg-raise); border: 1px solid var(--line); transition: transform 0.4s var(--ease), border-color 0.3s; }
.announce-card:hover { transform: translateY(-4px); border-color: rgba(77, 141, 255, 0.45); }
.announce-img { display: block; aspect-ratio: 16 / 9; overflow: hidden; }
.announce-img img { width: 100%; height: 100%; object-fit: cover; }
.announce-body { display: flex; flex-direction: column; gap: 10px; padding: 24px 26px 28px; flex: 1; }
.announce-date { font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--blue-glow); }
.announce-title { font-family: var(--font-head); font-size: 21px; font-weight: 700; letter-spacing: -0.02em; line-height: 1.2; }
.announce-excerpt { color: var(--muted); font-size: 15px; }
.announce-more { margin-top: auto; padding-top: 10px; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-dim); }
.announce-empty { max-width: 52ch; }

/* ── Single announcement / page ─────────────────────────────── */
.page-hero--photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(to top, var(--bg) 5%, rgba(6, 7, 11, 0.55)), var(--hero-img) center / cover no-repeat; opacity: 0.55; }
.page-hero--photo { isolation: isolate; }
.post { padding-top: 0; }
.post-wrap { max-width: 860px; }
.post-draft { margin-bottom: 32px; padding: 14px 18px; border-radius: 10px; border: 1px solid rgba(77, 141, 255, 0.4); background: rgba(28, 63, 196, 0.14); color: var(--success-ink); font-size: 14.5px; }
.post-draft a { color: var(--ink-hi); text-decoration: underline; }
.post-foot { margin-top: 56px; padding-top: 28px; border-top: 1px solid var(--line); display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; }
.link-arrow--back { flex-direction: row-reverse; }
.link-arrow--back::after { content: "←"; }

/* ── DP Nation collections, calendar, event and roster ─────── */
.dp-toolbar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 28px; padding: 14px 16px 14px 22px; border: 1px solid var(--line); border-radius: 12px; background: var(--bg-raise); }
.dp-toolbar > span { font-size: 12px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.dp-toolbar input { width: min(340px, 70vw); padding: 12px 16px; border-radius: 8px; border: 1px solid var(--line-strong); background: var(--bg); color: var(--ink); }
.dp-toolbar input:focus { outline: none; border-color: var(--blue-bright); box-shadow: 0 0 0 3px rgba(77, 141, 255, 0.2); }
.dp-card-grid, .dp-article-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 16px; }
.dp-card > a { display: flex; flex-direction: column; height: 100%; border-radius: 14px; overflow: hidden; background: var(--bg-raise); border: 1px solid var(--line); transition: transform 0.4s var(--ease), border-color 0.3s; }
.dp-card > a:hover { transform: translateY(-4px); border-color: rgba(77, 141, 255, 0.45); }
.dp-card-photo { position: relative; aspect-ratio: 16 / 10; overflow: hidden; background: var(--bg-blue); }
.dp-card-photo img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.9s var(--ease); }
.dp-card > a:hover .dp-card-photo img { transform: scale(1.05); }
.dp-card-photo span { position: absolute; left: 14px; top: 14px; padding: 5px 10px; border-radius: 6px; background: rgba(6, 7, 11, 0.7); color: #fff; backdrop-filter: blur(6px); font-size: 11px; font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase; }
.dp-card-copy { display: flex; flex-direction: column; gap: 8px; padding: 22px 24px 26px; flex: 1; }
.dp-card-copy h3 { font-size: 21px; }
.dp-card-copy p { color: var(--muted); font-size: 15px; }
.dp-card-copy .link-arrow { margin-top: auto; padding-top: 10px; }
.dp-kicker { font-size: 11px !important; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--blue-glow) !important; }
.dp-article-grid .dp-featured { grid-column: 1 / -1; }
.dp-article-grid .dp-featured > a { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); }
.dp-article-grid .dp-featured .dp-card-photo { aspect-ratio: auto; min-height: 320px; }
.dp-article-grid .dp-featured .dp-card-copy { padding: clamp(28px, 3vw, 44px); justify-content: center; }
.dp-article-grid .dp-featured h3 { font-size: clamp(26px, 2.6vw, 38px); }
.dp-empty { padding: 48px 0; color: var(--muted); }
.dp-empty h3 { margin: 12px 0 10px; font-size: clamp(24px, 2.4vw, 34px); color: var(--ink); }
.dp-empty .btn-block { margin-top: 24px; }
.dp-empty a:not(.btn-block) { color: var(--blue-glow); text-decoration: underline; }

.dp-month-buttons { display: flex; align-items: center; gap: 8px; }
.dp-month-buttons h3 { min-width: 11ch; margin: 0 8px; font-size: 20px; }
.dp-month-buttons button { height: 38px; min-width: 38px; padding: 0 12px; border-radius: 8px; border: 1px solid var(--line-strong); color: var(--ink); transition: background 0.2s, border-color 0.2s; }
.dp-month-buttons button:hover { background: var(--blue); border-color: var(--blue); }
.dp-note { font-size: 13px; color: var(--muted); }
.dp-month-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 1px; background: var(--line); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; }
.dp-weekday { padding: 12px; background: var(--bg-raise); font-size: 11px; font-weight: 700; letter-spacing: 0.18em; text-transform: uppercase; color: var(--muted); }
.dp-day { min-height: 110px; padding: 10px; background: var(--bg); display: flex; flex-direction: column; gap: 6px; }
.dp-day-blank { background: var(--bg-raise); opacity: 0.5; }
.dp-day time { font-family: var(--font-head); font-size: 14px; font-weight: 700; color: var(--muted); }
.dp-day.is-today { background: linear-gradient(160deg, rgba(28, 63, 196, 0.28), var(--bg) 70%); }
.dp-day.is-today time { color: #fff; display: inline-grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; background: var(--blue); }
.dp-day a { display: block; padding: 5px 8px; border-radius: 6px; background: rgba(28, 63, 196, 0.25); border-left: 2px solid var(--blue-bright); font-size: 12.5px; font-weight: 600; line-height: 1.3; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.dp-day a:hover { background: var(--blue); }
.dp-month-agenda { margin-top: 36px; }
.dp-month-agenda h3 { margin-bottom: 14px; font-size: 20px; }
.dp-agenda-row { display: grid; grid-template-columns: 90px 1fr; gap: 18px; padding: 16px 0; border-top: 1px solid var(--line); }
.dp-agenda-row time { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blue-glow); padding-top: 3px; }
.dp-agenda-row a { font-family: var(--font-head); font-weight: 700; font-size: 17px; }
.dp-agenda-row p { color: var(--muted); font-size: 14.5px; }
.dp-agenda-empty { color: var(--muted); }

.dp-event { padding-top: 140px; }
.dp-back { display: inline-block; margin-bottom: 28px; font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blue-glow); }
.dp-event-layout { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(280px, 0.8fr); gap: clamp(32px, 5vw, 72px); align-items: start; }
.dp-event-cover, .dp-event-video { width: 100%; aspect-ratio: 16 / 9; border-radius: 16px; overflow: hidden; border: 1px solid var(--line); object-fit: cover; margin-bottom: 36px; }
.dp-event-video iframe { width: 100%; height: 100%; border: 0; }
.dp-event-main .h2 { margin: 18px 0 24px; }
.dp-event-info { position: sticky; top: 110px; padding: 30px; border-radius: 16px; background: linear-gradient(160deg, rgba(28, 63, 196, 0.3), var(--bg-raise) 60%); border: 1px solid rgba(77, 141, 255, 0.3); }
.dp-event-info h2 { margin: 14px 0 20px; font-size: 28px; }
.dp-event-info dl { margin: 0 0 26px; }
.dp-event-info dt { margin-top: 14px; font-size: 11px; font-weight: 700; letter-spacing: 0.2em; text-transform: uppercase; color: var(--muted); }
.dp-event-info dd { margin: 4px 0 0; color: var(--ink); }
.dp-event-info .btn-block { width: 100%; justify-content: center; }
.dp-event-info .dp-note { margin-top: 16px; }

.dp-roster-group { margin-top: 36px; }
.dp-roster-group h3 { display: flex; align-items: baseline; gap: 12px; padding-bottom: 14px; border-bottom: 1px solid var(--line); font-size: clamp(22px, 2.2vw, 30px); }
.dp-roster-group h3 small { font-family: var(--font-body); font-size: 13px; font-weight: 700; letter-spacing: 0.14em; color: var(--blue-glow); }
.dp-roster-group ul { columns: 4 220px; column-gap: 32px; margin-top: 18px; }
.dp-roster-group li { break-inside: avoid; padding: 7px 0; color: var(--ink-dim); border-bottom: 1px solid var(--line); }

/* ── Footers ────────────────────────────────────────────────── */
.pb-foot-min .pb-foot-min-inner { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; padding-bottom: 28px; }
.pb-foot-min .pb-foot-min-inner nav { display: flex; flex-wrap: wrap; gap: 24px; font-size: 14px; color: var(--muted); }
.pb-foot-min .pb-foot-min-inner nav a:hover { color: var(--ink-hi); }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .pb-cols-4 { grid-template-columns: repeat(2, 1fr) !important; }
  .pb-testimonies { grid-template-columns: repeat(2, 1fr); }
  .pb-playlist, .giving-inner, .dp-event-layout { grid-template-columns: 1fr; }
  .pb-step { grid-template-columns: 120px 1fr; }
  .pb-step p { grid-column: 2; }
  .dp-event-info { position: static; }
  .dp-article-grid .dp-featured > a { grid-template-columns: 1fr; }
}
@media (max-width: 768px) {
  body.pb-solid .pb-main { padding-top: 84px; }
  .pb-cols-2, .pb-cols-3, .pb-cols-4 { grid-template-columns: 1fr !important; }
  .pb-tiles.pb-cols-4 { grid-template-columns: 1fr 1fr !important; }
  .pb-split, .pb-faq-wrap, .pb-connect-grid, .pb-venue-grid, .about-grid, .mission-inner { grid-template-columns: 1fr; }
  .pb-split-head, .pb-faq-wrap .pb-head, .mission-left { position: static; }
  .pb-testimonies { grid-template-columns: 1fr; }
  .pb-stats { grid-template-columns: 1fr 1fr !important; }
  .pb-stat:nth-child(2n) { border-right: 0; }
  .pb-stat { border-bottom: 1px solid var(--line); }
  .pb-step { grid-template-columns: 1fr; gap: 8px; }
  .pb-step p { grid-column: auto; }
  .pb-img-right .about-image-col { order: -1; }
  .about-img-badge { right: 12px; bottom: -16px; }
  .pb-venue-facts div { grid-template-columns: 1fr; gap: 6px; }
  .pb-play { width: 56px; height: 56px; }
  .dp-month-grid { grid-template-columns: repeat(7, minmax(0, 1fr)); }
  .dp-day { min-height: 56px; padding: 6px; }
  .dp-day a { font-size: 0; padding: 0; height: 6px; border-left: 0; background: var(--blue-bright); }
  .dp-weekday { padding: 8px 4px; font-size: 10px; letter-spacing: 0.06em; text-align: center; }
  .dp-agenda-row { grid-template-columns: 1fr; gap: 4px; }
}
@media (prefers-reduced-motion: reduce) {
  .pb-ticker-track { animation: none; }
}

/* ── Schedule: compact header, List / Calendar switch, month-grouped list ──
   Mobbin references: Sweatpals schedule (one-line title + view switch),
   Circle events (month groups, date blocks), Eventbrite (List / Calendar toggle). */
.dp-schedule { padding-top: clamp(28px, 4vw, 48px); }
body.pb-solid .dp-schedule:first-of-type { padding-top: clamp(28px, 3vw, 40px); }
.dp-sched-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px 32px; flex-wrap: wrap; padding-bottom: 22px; margin-bottom: 28px; border-bottom: 1px solid var(--line); }
.dp-sched-eyebrow { margin: 0 0 6px; font-size: 11px; font-weight: 700; letter-spacing: 0.24em; text-transform: uppercase; color: var(--blue-glow); }
.dp-sched-title { font-size: clamp(30px, 3.4vw, 44px); font-weight: 800; letter-spacing: -0.035em; line-height: 1; }
.dp-sched-title em { font-family: var(--font-serif); font-style: italic; font-weight: 500; letter-spacing: 0; color: var(--serif-ink); }
.dp-sched-sub { margin-top: 8px; color: var(--muted); font-size: 15.5px; }
.dp-sched-actions { display: flex; align-items: center; gap: 14px; }
.dp-sched-count { font-size: 12px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--muted); }
.dp-view-toggle { display: inline-flex; padding: 4px; gap: 2px; border: 1px solid var(--line-strong); border-radius: 999px; background: var(--bg-raise); }
.dp-view-toggle a { display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 16px; border-radius: 999px; font-size: 13px; font-weight: 700; color: var(--ink-dim); transition: background 0.2s, color 0.2s; }
.dp-view-toggle a:hover { color: var(--ink-hi); }
.dp-view-toggle a.is-active { background: var(--blue); color: #fff; box-shadow: 0 8px 20px -10px rgba(28, 63, 196, 0.9); }
.dp-view-toggle svg { width: 16px; height: 16px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.dp-view[hidden] { display: none; }
.dp-calendar-panel .dp-toolbar { margin-top: 0; }

.dp-sched-month + .dp-sched-month { margin-top: 34px; }
.dp-sched-month-label { display: flex; align-items: baseline; gap: 10px; margin-bottom: 12px; font-size: 18px; font-weight: 700; }
.dp-sched-month-label small { font-family: var(--font-body); font-size: 12px; font-weight: 700; color: var(--blue-glow); }
.dp-sched-list { display: grid; border: 1px solid var(--line); border-radius: 14px; overflow: hidden; background: var(--bg-raise); }
.dp-sched-list li + li { border-top: 1px solid var(--line); }
.dp-sched-row { display: grid; grid-template-columns: 64px minmax(0, 1fr) auto 24px; align-items: center; gap: 20px; padding: 16px 20px; transition: background 0.2s; }
.dp-sched-row:hover { background: var(--bg-panel); }
.dp-sched-row.is-featured { background: linear-gradient(90deg, rgba(28, 63, 196, 0.2), transparent 60%); }
.dp-sched-date { display: grid; justify-items: center; gap: 1px; width: 64px; padding: 8px 0; border-radius: 10px; background: var(--bg-blue); border: 1px solid rgba(77, 141, 255, 0.3); line-height: 1.1; }
.dp-sched-date small { font-size: 10px; font-weight: 700; letter-spacing: 0.16em; text-transform: uppercase; color: var(--blue-glow); }
.dp-sched-date small:last-child { color: var(--muted); letter-spacing: 0.08em; }
.dp-sched-date strong { font-family: var(--font-head); font-size: 24px; font-weight: 800; }
.dp-sched-info { display: grid; gap: 6px; min-width: 0; }
.dp-sched-info strong { font-family: var(--font-head); font-size: 17px; font-weight: 700; letter-spacing: -0.01em; }
.dp-sched-meta { display: flex; flex-wrap: wrap; gap: 6px 18px; color: var(--muted); font-size: 14px; }
.dp-sched-meta span { display: inline-flex; align-items: center; gap: 6px; }
.dp-sched-meta svg { width: 15px; height: 15px; fill: none; stroke: var(--blue-glow); stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; flex: none; }
.dp-sched-tags { display: flex; gap: 6px; flex-wrap: wrap; justify-content: flex-end; }
.dp-sched-tag { font-style: normal; padding: 4px 10px; border-radius: 999px; border: 1px solid var(--line-strong); font-size: 11px; font-weight: 700; letter-spacing: 0.12em; text-transform: uppercase; color: var(--ink-dim); white-space: nowrap; }
.dp-sched-tag.is-blue { border-color: rgba(77, 141, 255, 0.5); color: var(--blue-glow); }
.dp-sched-go { color: var(--faint); font-size: 18px; transition: transform 0.3s var(--ease), color 0.2s; }
.dp-sched-row:hover .dp-sched-go { color: var(--blue-glow); transform: translateX(3px); }
.dp-sched-empty { padding: clamp(36px, 5vw, 64px); border: 1px dashed var(--line-strong); border-radius: 16px; text-align: center; }
.dp-sched-empty .eyebrow { justify-content: center; }
.dp-sched-empty h3 { margin: 14px 0 10px; font-size: clamp(22px, 2.4vw, 32px); }
.dp-sched-empty p:not(.eyebrow) { color: var(--muted); max-width: 48ch; margin: 0 auto; }
.dp-sched-empty .btn-block { margin-top: 24px; }
@media (max-width: 640px) {
  .dp-sched-actions { width: 100%; justify-content: space-between; }
  .dp-sched-row { grid-template-columns: 56px minmax(0, 1fr); gap: 14px; padding: 14px; }
  .dp-sched-date { width: 56px; }
  .dp-sched-tags { grid-column: 2; justify-content: flex-start; }
  .dp-sched-go { display: none; }
}

/* ── Light mode ─────────────────────────────────────────────── */
[data-theme="light"] .page-hero--photo::after { background: linear-gradient(to top, var(--bg) 5%, rgba(245, 247, 251, 0.55)), var(--hero-img) center / cover no-repeat; }
[data-theme="light"] .pb-item:hover { background: rgba(11, 15, 26, 0.04); }
