/* ================================================
   GOGCS Custom Styles, matches original HTML design
   ================================================ */

:root {
  --royal: #2850a0; --royal-dark: #1a3870; --royal-deep: #102255;
  --royal-light: #3a68c8; --crimson: #b41428; --crimson-dark: #8a0e1e;
  --white: #ffffff; --off-white: #f4f7fc; --light-blue: #dce8f8;
  --text-dark: #0d1f47; --text-mid: #4a6090; --text-muted: #7a90b8;
}

/* ---- RESET for GOGCS template pages ---- */
.gogcs-page { font-family: 'Source Sans 3', sans-serif; font-weight: 300; color: var(--text-dark); line-height: 1.6; }
.gogcs-page .gogcs-hero { overflow: hidden; }
.gogcs-page .gogcs-nav { overflow: visible; }
.gogcs-page *, .gogcs-page *::before, .gogcs-page *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ---- NAV ---- */
.gogcs-nav { position: fixed; top: 0; left: 0; right: 0; z-index: 1000; display: flex; align-items: center; padding: 0 2.5rem; height: 72px; background: rgba(16,34,85,0.97); backdrop-filter: blur(12px); border-bottom: 3px solid var(--crimson); }
.nav-brand { display: flex; align-items: center; gap: 0.9rem; text-decoration: none; }
.nav-logo { width: 52px; height: 52px; flex-shrink: 0; }
.nav-logo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; background: white; box-shadow: 0 0 0 2px rgba(255,255,255,0.15); }
.nav-name { display: flex; flex-direction: column; line-height: 1.25; }
.nav-name strong { font-family: 'Cinzel', serif; font-size: 0.9rem; letter-spacing: 0.12em; color: var(--white); font-weight: 600; white-space: nowrap; }
.nav-name span { font-size: 0.68rem; letter-spacing: 0.1em; color: var(--text-muted); }
.gogcs-nav .nav-links { display: flex; align-items: center; gap: 1.6rem; list-style: none; margin: 0; padding: 0; margin-left: auto; }
.gogcs-nav .nav-links li { position: relative; }
.gogcs-nav .nav-links a { font-family: 'Cinzel', serif; font-size: 0.78rem; letter-spacing: 0.15em; color: rgba(255,255,255,0.75); text-decoration: none; text-transform: uppercase; transition: color 0.25s; white-space: nowrap; }
.gogcs-nav .nav-links a:hover { color: white; }
/* Connect demoted to a regular link, Plan Your Visit is the single header CTA */
.nav-cta { color: rgba(255,255,255,0.75); }
.nav-cta:hover { color: white; }

/* Dropdown */
.gogcs-nav .nav-links li .dropdown { display: none; position: absolute; top: 100%; left: 0; background: rgba(16,34,85,0.97); backdrop-filter: blur(12px); min-width: 200px; padding: 0.5rem 0; list-style: none; border-top: 2px solid var(--crimson); }
.gogcs-nav .nav-links li:hover .dropdown { display: block; }
.gogcs-nav .nav-links .dropdown li { padding: 0; }
.gogcs-nav .nav-links .dropdown a { display: block; padding: 0.65rem 1.2rem; font-size: 0.72rem; white-space: nowrap; }
.gogcs-nav .nav-links .dropdown a:hover { background: rgba(255,255,255,0.05); }

/* Nav social icons, between brand and menu */
.nav-social { display: flex; align-items: center; gap: 0.7rem; margin-left: auto; }
.nav-social a { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; color: rgba(255,255,255,0.5); transition: color 0.25s, transform 0.25s; }
.nav-social a:hover { color: white; transform: scale(1.15); }
.nav-social svg { width: 19px; height: 19px; }

/* Plan Your Visit header CTA */
.nav-visit-cta { font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.15em; text-transform: uppercase; color: white; text-decoration: none; background: linear-gradient(135deg, var(--crimson) 0%, var(--crimson-dark) 100%); padding: 0.6rem 1.4rem; border-radius: 2px; margin-left: 1.4rem; flex-shrink: 0; white-space: nowrap; transition: box-shadow 0.25s, transform 0.2s; }
.nav-visit-cta:hover { color: white; box-shadow: 0 4px 15px rgba(180,20,40,0.4); transform: translateY(-1px); }

/* Condensing sticky nav */
.gogcs-nav { transition: height 0.3s ease, background 0.3s ease; }
.gogcs-nav.nav-condensed { height: 56px; background: rgba(16,34,85,0.99); }
.nav-logo { transition: width 0.3s ease, height 0.3s ease; }
.gogcs-nav.nav-condensed .nav-logo { width: 40px; height: 40px; }
.gogcs-nav.nav-condensed .nav-name span { display: none; }

/* Mobile toggle */
.nav-toggle { display: none; background: none; border: none; cursor: pointer; padding: 0.5rem; margin-left: auto; flex-shrink: 0; }
.nav-toggle span { display: block; width: 22px; height: 2px; background: white; margin: 4px 0; transition: all 0.3s; }

/* ---- HERO ---- */
.gogcs-hero { min-height: 100vh; display: flex; align-items: center; justify-content: flex-start; position: relative; overflow: hidden; padding-top: 72px; padding-left: 2rem; padding-right: 2rem; background: var(--royal-deep); }
/* Rotating photo layers under the gradient overlay, synced to the text slides */
.hero-photos { position: absolute; inset: 0; background: #102255; overflow: hidden; }
.hero-photo { position: absolute; inset: -5%; background-position: center 30%; background-size: cover; background-repeat: no-repeat; opacity: 0; transition: opacity 1.5s ease; animation: heroDrift 28s ease-in-out infinite alternate; }
.hero-photo.active { opacity: 1; }
.hero-bg { position: absolute; inset: 0; background:
  radial-gradient(ellipse 70% 70% at 60% 40%, rgba(40,80,160,0.35) 0%, transparent 65%),
  linear-gradient(150deg, rgba(16,34,85,0.93) 0%, rgba(26,56,112,0.82) 40%, rgba(13,24,53,0.94) 100%); }
@keyframes heroDrift { from { transform: scale(1) translate(0, 0); } to { transform: scale(1.06) translate(-1.5%, 1%); } }
.hero-ring { position: absolute; right: calc(50% - 550px - 35px); top: 50%; transform: translateY(-50%); width: 500px; height: 500px; border-radius: 50%; border: 1px solid rgba(255,255,255,0.05); animation: slowSpin 60s linear infinite; pointer-events: none; }
.hero-ring::before { content: ''; position: absolute; inset: 18px; border-radius: 50%; border: 1px solid rgba(180,20,40,0.1); }
@keyframes slowSpin { from { transform: translateY(-50%) rotate(0deg); } to { transform: translateY(-50%) rotate(360deg); } }
.hero-logo-bg { position: absolute; right: calc(50% - 550px + 20px); top: 50%; transform: translateY(-50%); width: 390px; height: 390px; opacity: 0.13; pointer-events: none; }
.hero-logo-bg img { width: 100%; height: 100%; object-fit: contain; }
.hero-content { position: relative; z-index: 2; max-width: 650px; padding: 0; animation: heroReveal 1s ease both; }
@keyframes heroReveal { from { opacity: 0; transform: translateX(-30px); } to { opacity: 1; transform: translateX(0); } }
.hero-badge { display: inline-flex; align-items: center; gap: 0.6rem; background: var(--crimson); padding: 0.35rem 1rem; margin-bottom: 1.8rem; }
.hero-badge span { font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.18em; color: white; text-transform: uppercase; }
.hero-badge::before { content: '\2720'; color: rgba(255,255,255,0.7); font-size: 0.7rem; }
.hero-title { font-family: 'Playfair Display', serif; font-size: clamp(2.8rem, 6vw, 5rem); font-weight: 400; line-height: 1.05; color: white; margin-bottom: 0.5rem; }
.hero-title em { font-style: italic; color: #7ea8e8; }
.hero-sub { font-family: 'Cinzel', serif; font-size: clamp(0.62rem, 1.1vw, 0.78rem); letter-spacing: 0.25em; color: rgba(255,255,255,0.5); text-transform: uppercase; margin-bottom: 1.5rem; }
.hero-verse { font-family: 'Playfair Display', serif; font-size: clamp(0.95rem, 1.5vw, 1.15rem); font-style: italic; color: rgba(255,255,255,0.65); margin-bottom: 0.5rem; line-height: 1.6; border-left: 2px solid var(--crimson); padding-left: 1rem; }
.hero-verse-ref { font-family: 'Cinzel', serif; font-size: 0.58rem; letter-spacing: 0.15em; color: rgba(255,255,255,0.35); text-transform: uppercase; padding-left: 1rem; margin-bottom: 2rem; }
.hero-loc { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; color: rgba(255,255,255,0.4); margin-bottom: 2.5rem; }
.hero-loc::before { content: '\1F4CD'; font-size: 0.8rem; }
.hero-actions { display: flex; gap: 1rem; flex-wrap: wrap; }
.hero-scroll { position: absolute; bottom: 1rem; left: 50%; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 0.5rem; animation: bounce 2.5s ease-in-out infinite; }
.hero-scroll span { font-family: 'Cinzel', serif; font-size: 0.5rem; letter-spacing: 0.2em; color: rgba(255,255,255,0.3); text-transform: uppercase; }
.scroll-line { width: 1px; height: 36px; background: linear-gradient(to bottom, rgba(255,255,255,0.4), transparent); }
@keyframes bounce { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(7px); } }

/* ---- HERO SLIDER ---- */
.hero-slider { position: relative; z-index: 2; width: 100%; height: 100%; }
.hero-slide { position: absolute; inset: 0; display: flex; align-items: center; opacity: 0; transition: opacity 0.8s ease, transform 0.8s ease; transform: translateX(30px); pointer-events: none; }
.hero-slide.active { opacity: 1; transform: translateX(0); pointer-events: all; position: relative; }
.hero-slide.exit { opacity: 0; transform: translateX(-30px); position: absolute; }

.hero-dots { position: absolute; bottom: 5.5rem; left: 50%; transform: translateX(-50%); z-index: 10; display: flex; gap: 0.6rem; }
.hero-dot { width: 10px; height: 10px; border-radius: 50%; border: 1.5px solid rgba(255,255,255,0.4); background: transparent; cursor: pointer; transition: all 0.3s; padding: 0; }
.hero-dot.active { background: var(--crimson); border-color: var(--crimson); transform: scale(1.2); }
.hero-dot:hover { border-color: white; }

/* ---- BUTTONS ---- */
.btn-primary { font-family: 'Cinzel', serif; font-size: 0.63rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 0.95rem 2rem; background: linear-gradient(135deg, var(--crimson) 0%, var(--crimson-dark) 100%); color: white; border: none; cursor: pointer; text-decoration: none; display: inline-block; transition: box-shadow 0.25s, transform 0.2s; border-radius: 2px; }
.btn-primary:hover { box-shadow: 0 6px 20px rgba(180,20,40,0.35); transform: translateY(-2px); color: white; }
.btn-outline { font-family: 'Cinzel', serif; font-size: 0.63rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 0.95rem 2rem; background: transparent; color: white; border: 1px solid rgba(255,255,255,0.35); cursor: pointer; text-decoration: none; display: inline-block; transition: border-color 0.25s, background 0.25s, transform 0.2s; border-radius: 2px; }
.btn-outline:hover { border-color: white; background: rgba(255,255,255,0.08); transform: translateY(-2px); color: white; }

/* ---- SHARED SECTION STYLES ---- */
.gogcs-section { padding: 6rem 2rem; }
.gogcs-container { max-width: 1100px; margin: 0 auto; }
.section-tag { display: inline-flex; align-items: center; gap: 0.6rem; font-family: 'Cinzel', serif; font-size: 0.66rem; letter-spacing: 0.28em; color: var(--crimson); text-transform: uppercase; margin-bottom: 1rem; }
.section-tag::before { content: ''; display: block; width: 28px; height: 2px; background: var(--crimson); flex-shrink: 0; }
.section-tag.light { color: rgba(126,168,232,0.9); }
.section-tag.light::before { background: rgba(126,168,232,0.6); }
.section-tag.on-dark { color: rgba(255,255,255,0.6); }
.section-tag.on-dark::before { background: rgba(255,255,255,0.3); }
.section-title { font-family: 'Playfair Display', serif; font-size: clamp(2.3rem, 4vw, 3.4rem); font-weight: 400; line-height: 1.15; color: var(--text-dark); margin-bottom: 1.2rem; }
.section-title em { font-style: italic; color: var(--royal); }
.section-title.light { color: white; }
.section-title.light em { color: #7ea8e8; }
.rule { width: 50px; height: 3px; background: var(--royal); margin-bottom: 2rem; }
.rule.red { background: var(--crimson); }
.scripture { font-family: 'Playfair Display', serif; font-style: italic; font-size: 0.95rem; color: var(--text-muted); border-left: 2px solid var(--royal); padding-left: 1rem; margin-bottom: 1.5rem; line-height: 1.6; }
.scripture.light { color: rgba(255,255,255,0.55); border-color: rgba(126,168,232,0.4); }
.prose { font-size: 1rem; line-height: 1.9; color: #3a4e70; margin-bottom: 1.2rem; }

/* ---- ABOUT / HISTORY ---- */
.bg-offwhite { background: var(--off-white); }
.bg-royaldeep { background: var(--royal-deep); }
.bg-white { background: var(--white); }
.bg-crimson { background: var(--crimson-dark); position: relative; overflow: hidden; }
.bg-crimson::before { content: ''; position: absolute; top: -150px; right: -150px; width: 500px; height: 500px; background: radial-gradient(circle, rgba(255,255,255,0.04) 0%, transparent 70%); border-radius: 50%; pointer-events: none; }

.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; }
.about-logo-wrap { display: flex; align-items: center; justify-content: center; position: sticky; top: 100px; }
.about-logo-card { background: none; border-radius: 50%; width: 300px; height: 300px; display: flex; align-items: center; justify-content: center; box-shadow: none; position: relative; }
.about-logo-card img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; filter: drop-shadow(0 4px 20px rgba(40,80,160,0.3)); position: relative; z-index: 2; }
.about-logo-card::before { content: ''; position: absolute; inset: -6px; border-radius: 50%; border: 3px solid transparent; border-top: 5px solid var(--crimson); animation: orbitDot 3s linear infinite; z-index: 3; }
.about-logo-card::after { content: ''; position: absolute; inset: -16px; border-radius: 50%; border: 2px solid transparent; border-bottom: 4px solid var(--royal); animation: orbitDot 5s linear infinite reverse; z-index: 1; }
@keyframes orbitDot { from { transform: rotate(0deg); } to { transform: rotate(360deg); } }

/* ---- VISION / ROOTS / FAITH ---- */
.vision-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5px; background: rgba(255,255,255,0.08); margin-top: 3rem; }
.v-card { background: var(--royal-deep); padding: 2.5rem 2rem; border-top: 3px solid transparent; transition: background 0.25s; }
.v-card:hover { background: var(--royal-dark); border-top-color: var(--crimson); }
.v-card h3 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.12em; color: white; text-transform: uppercase; margin-bottom: 1rem; }
.v-card p { font-size: 0.9rem; color: rgba(255,255,255,0.6); line-height: 1.8; }

/* ---- BELIEFS ---- */
.beliefs-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1rem; margin-top: 2.5rem; }
.belief-item { display: flex; gap: 1rem; align-items: flex-start; padding: 1.4rem; background: var(--off-white); border-left: 3px solid var(--royal); transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s, background 0.3s; cursor: default; }
.belief-item:hover { border-color: var(--crimson); transform: translateX(5px); box-shadow: 0 6px 20px rgba(40,80,160,0.1); background: var(--white); }
.belief-item:hover .belief-num { opacity: 0.6; color: var(--crimson); }
.belief-num { font-family: 'Playfair Display', serif; font-size: 1.6rem; color: var(--royal); opacity: 0.3; line-height: 1; flex-shrink: 0; width: 28px; transition: opacity 0.3s, color 0.3s; }
.belief-text { font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.06em; color: var(--text-dark); line-height: 1.6; }

/* ---- FIVE P'S ---- */
.passion-list { display: flex; flex-direction: column; gap: 2rem; margin-top: 2.5rem; }
.p-item { display: grid; grid-template-columns: 80px 1fr; gap: 2rem; align-items: start; padding: 2rem; background: white; box-shadow: 0 2px 12px rgba(40,80,160,0.07); border-bottom: 3px solid var(--royal); transition: box-shadow 0.25s, transform 0.25s; }
.p-item:nth-child(even) { border-bottom-color: var(--crimson); }
.p-item:hover { box-shadow: 0 8px 30px rgba(40,80,160,0.13); transform: translateY(-2px); }
.p-letter { font-family: 'Playfair Display', serif; font-size: 4rem; font-weight: 400; color: var(--royal); line-height: 1; opacity: 0.25; }
.p-item:nth-child(even) .p-letter { color: var(--crimson); }
.p-content h3 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.12em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.7rem; transition: letter-spacing 0.3s; }
.p-item:nth-child(even) .p-content h3 { color: var(--crimson); }
.p-item:hover .p-content h3 { letter-spacing: 0.18em; }
.p-content p { font-size: 0.95rem; color: #3a4e70; line-height: 1.8; }

/* ---- C&S HISTORY ---- */
.cns-intro { max-width: 700px; margin-bottom: 3rem; }
.cns-intro p { font-size: 1rem; color: rgba(255,255,255,0.65); line-height: 1.9; margin-bottom: 1.2rem; }

/* ---- PRACTICES ---- */
.practices-intro { max-width: 700px; margin-bottom: 2.5rem; }
.practices-intro p { font-size: 1rem; color: #3a4e70; line-height: 1.85; margin-bottom: 1rem; }
.practices-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.practice-item { padding: 1.4rem; background: var(--off-white); border-top: 2px solid var(--royal); transition: transform 0.3s ease, box-shadow 0.3s ease, background 0.3s ease, border-color 0.3s ease; cursor: default; }
.practice-item:nth-child(3n+2) { border-top-color: var(--crimson); }
.practice-item:nth-child(3n+3) { border-top-color: var(--royal-light); }
.practice-item:hover { transform: translateY(-4px) scale(1.02); box-shadow: 0 10px 30px rgba(40,80,160,0.15); background: var(--white); border-top-width: 3px; }
.practice-item:hover h4 { color: var(--crimson); }
.practice-item h4 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.5rem; transition: color 0.3s ease; }
.practice-item p { font-size: 0.9rem; color: #3a4e70; line-height: 1.7; transition: color 0.3s ease; }
.practice-item:hover p { color: var(--text-dark); }

/* ---- SERVICES (from old HTML) ---- */
.services-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5px; background: rgba(255,255,255,0.08); }
.service-card { background: var(--royal-deep); padding: 2.5rem 2rem; border-top: 3px solid transparent; transition: background 0.25s; }
.service-card:hover { background: var(--royal-dark); border-top-color: var(--crimson); }
.service-card h3 { font-family: 'Cinzel', serif; font-size: 0.82rem; letter-spacing: 0.1em; color: white; text-transform: uppercase; margin-bottom: 0.7rem; }
.service-card p { font-size: 0.87rem; color: rgba(255,255,255,0.55); line-height: 1.7; margin-bottom: 1rem; }
.svc-time { font-family: 'Playfair Display', serif; font-style: italic; font-size: 0.95rem; color: #7ea8e8; }

/* ---- MINISTRIES (from old HTML) ---- */
.min-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.min-card { background: var(--off-white); padding: 1.8rem; border: 1px solid var(--light-blue); border-radius: 2px; transition: border-color 0.25s, transform 0.25s, box-shadow 0.25s; }
.min-card:hover { border-color: var(--royal); transform: translateY(-3px); box-shadow: 0 8px 30px rgba(40,80,160,0.1); }
.min-card:nth-child(even) { border-left: 3px solid var(--crimson); }
.min-card:nth-child(odd) { border-left: 3px solid var(--royal); }
.min-card h3 { font-family: 'Cinzel', serif; font-size: 0.84rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.5rem; transition: color 0.3s; }
.min-card:hover h3 { color: var(--crimson); }
.min-card p { font-size: 0.92rem; color: #3a4e70; line-height: 1.7; }

/* ---- IMPACT / STATS (from old HTML) ---- */
.stats-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; margin-bottom: 3rem; }
.stat { text-align: center; background: var(--off-white); padding: 1.5rem 1rem; box-shadow: 0 2px 12px rgba(40,80,160,0.07); }
.stat-num { font-family: 'Playfair Display', serif; font-size: 2.8rem; font-weight: 600; color: var(--royal); }
.stat-label { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.15em; color: var(--text-muted); text-transform: uppercase; }
.programs { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.prog { padding: 2rem; background: white; box-shadow: 0 2px 12px rgba(40,80,160,0.06); transition: transform 0.25s, box-shadow 0.25s; }
.prog:hover { transform: translateY(-2px); box-shadow: 0 12px 30px rgba(40,80,160,0.12); }
.prog h4 { font-family: 'Cinzel', serif; font-size: 0.76rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.7rem; }
.prog p { font-size: 0.87rem; color: var(--text-muted); line-height: 1.7; }

/* ---- GIVE (from old HTML) ---- */
.give-verse { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1.55rem; color: white; line-height: 1.6; border-left: 3px solid rgba(255,255,255,0.3); padding-left: 1.5rem; margin-bottom: 1rem; }
.give-ref { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.15em; color: rgba(255,255,255,0.4); text-transform: uppercase; margin-bottom: 1.8rem; }
.give-text { font-size: 1rem; color: rgba(255,255,255,0.6); line-height: 1.85; margin-bottom: 2.5rem; }
.give-options { display: flex; flex-direction: column; gap: 0.8rem; }
.give-btn { display: flex; justify-content: space-between; align-items: center; padding: 1.2rem 1.5rem; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); border-radius: 2px; text-decoration: none; transition: background 0.25s, border-color 0.25s, transform 0.25s; }
.give-btn:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.45); transform: translateX(4px); }
.give-btn span { font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.12em; color: white; text-transform: uppercase; }
.give-btn .arrow { color: rgba(255,255,255,0.6); }

/* ---- VISIT ---- */
.visit-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: start; position: relative; z-index: 1; }
.visit-info-block { margin-bottom: 0.8rem; padding: 0.8rem 1.2rem; border-left: 3px solid transparent; transition: border-color 0.3s, background 0.3s, transform 0.3s; border-radius: 2px; }
.visit-info-block:hover { border-left-color: rgba(255,255,255,0.4); background: rgba(255,255,255,0.05); transform: translateX(4px); }
.visit-info-block:hover h4 { color: rgba(255,255,255,0.8); }
.visit-info-block h4 { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.2em; color: rgba(255,255,255,0.5); text-transform: uppercase; margin-bottom: 0.5rem; transition: color 0.3s; }
.visit-info-block p, .visit-info-block a { font-size: 1.05rem; color: white; line-height: 1.7; text-decoration: none; display: block; }
.visit-info-block a:hover { color: rgba(255,255,255,0.7); }
.visit-services { display: flex; flex-direction: column; gap: 1rem; }
.svc-item { display: flex; justify-content: space-between; align-items: center; padding: 1.2rem 1.5rem; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); border-radius: 2px; transition: background 0.3s, border-color 0.3s, transform 0.3s, box-shadow 0.3s; cursor: default; }
.svc-item:hover { background: rgba(255,255,255,0.14); border-color: rgba(255,255,255,0.25); transform: translateX(6px); box-shadow: 0 4px 20px rgba(0,0,0,0.15); }
.svc-item span:first-child { font-family: 'Cinzel', serif; font-size: 0.68rem; letter-spacing: 0.12em; color: white; text-transform: uppercase; transition: letter-spacing 0.3s; }
.svc-item:hover span:first-child { letter-spacing: 0.18em; }
.svc-item span:last-child { font-family: 'Playfair Display', serif; font-style: italic; font-size: 1rem; color: rgba(255,255,255,0.6); transition: color 0.3s; }
.svc-item:hover span:last-child { color: rgba(255,255,255,0.85); }

/* ---- CONTACT ---- */
.contact-wrap { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; }
.form { display: flex; flex-direction: column; gap: 1rem; }
.fg { display: flex; flex-direction: column; gap: 0.35rem; }
.fg label { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.18em; color: rgba(255,255,255,0.4); text-transform: uppercase; }
.fg input, .fg textarea, .fg select { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); color: white; padding: 0.8rem 1rem; font-family: 'Source Sans 3', sans-serif; font-size: 0.9rem; outline: none; transition: border-color 0.25s; resize: vertical; border-radius: 2px; }
.fg input::placeholder, .fg textarea::placeholder { color: rgba(255,255,255,0.25); }
.fg input:focus, .fg textarea:focus, .fg select:focus { border-color: var(--royal-light); }
.fg textarea { min-height: 110px; }
.fg select { appearance: none; cursor: pointer; }

/* ---- EVENTS ---- */
.events-list { display: flex; flex-direction: column; gap: 1.2rem; }
.event-card { display: grid; grid-template-columns: 90px 1fr; gap: 1.5rem; padding: 1.8rem; background: var(--off-white); border-left: 3px solid var(--royal); transition: box-shadow 0.25s, transform 0.25s; }
.event-card:nth-child(even) { border-left-color: var(--crimson); }
.event-card:hover { box-shadow: 0 8px 30px rgba(40,80,160,0.1); transform: translateY(-2px); }
.event-date { text-align: center; }
.event-date .month { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.15em; color: var(--crimson); text-transform: uppercase; }
.event-date .day { font-family: 'Playfair Display', serif; font-size: 2.2rem; color: var(--royal); line-height: 1; }
.event-info h3 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.3rem; }
.event-info .event-time { font-family: 'Cinzel', serif; font-size: 0.6rem; color: var(--crimson); margin-bottom: 0.5rem; }
.event-info p { font-size: 0.88rem; color: #3a4e70; line-height: 1.7; }

/* ---- FOOTER ---- */
.gogcs-footer { background: #080f22; padding: 2.2rem 2rem; border-top: 3px solid var(--crimson); }
.footer-inner { max-width: 1100px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1.2rem; }
.footer-brand { display: flex; align-items: center; gap: 0.8rem; }
.footer-logo { width: 44px; height: 44px; }
.footer-logo img { width: 100%; height: 100%; object-fit: cover; border-radius: 50%; background: white; box-shadow: 0 0 0 2px rgba(255,255,255,0.1); }
.footer-text { font-family: 'Playfair Display', serif; font-style: italic; font-size: 0.9rem; color: rgba(255,255,255,0.45); }
.footer-text strong { color: white; font-style: normal; }
.footer-copy { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.1em; color: rgba(255,255,255,0.55); text-align: center; line-height: 1.8; }
.footer-copy span { display: block; color: rgba(255,255,255,0.7); margin-top: 0.6rem; font-size: 0.68rem; letter-spacing: 0.12em; }
.footer-links { display: flex; gap: 1.5rem; list-style: none; margin: 0; padding: 0; }
.footer-links a { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; color: rgba(255,255,255,0.35); text-decoration: none; text-transform: uppercase; transition: color 0.2s; }
.footer-links a:hover { color: white; }

/* ---- REVEAL ANIMATION ---- */
.reveal { opacity: 0; transform: translateY(22px); transition: opacity 0.75s ease, transform 0.75s ease; }
.reveal.visible { opacity: 1; transform: none; }

/* ---- PILLARS (from old HTML about section) ---- */
.pillars { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1rem; margin-top: 2.5rem; }
.pillar { padding: 1.4rem; background: white; border-top: 2px solid var(--royal); transition: border-color 0.3s, transform 0.3s, box-shadow 0.3s; cursor: default; }
.pillar:nth-child(even) { border-top-color: var(--crimson); }
.pillar:hover { transform: translateY(-4px); box-shadow: 0 8px 25px rgba(40,80,160,0.12); border-top-width: 3px; }
.pillar:hover h4 { color: var(--crimson); }
.pillar h4 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.4rem; transition: color 0.3s; }
.pillar p { font-size: 0.88rem; color: #3a4e70; line-height: 1.6; }

/* ---- RESPONSIVE ---- */
@media (max-width: 900px) {
  .gogcs-nav { padding: 0 1rem; }
  .nav-brand { flex: 1; min-width: 0; }
  .nav-name strong { font-size: 0.6rem; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
  .nav-name span { font-size: 0.5rem; }
  .nav-logo { width: 40px; height: 40px; }
  .nav-social { display: none; }
  .gogcs-nav .nav-links { display: none; }
  .nav-toggle { display: block; margin-left: 1rem; }
  .gogcs-nav .nav-links.open { display: flex; flex-direction: column; position: absolute; top: 72px; left: 0; right: 0; background: rgba(16,34,85,0.98); padding: 1.5rem; gap: 0; border-bottom: 3px solid var(--crimson); z-index: 100; }
  .gogcs-nav .nav-links.open li { padding: 0.7rem 0; }
  .gogcs-nav .nav-links.open .dropdown { position: static; display: block; border-top: none; padding-left: 1rem; }

  .about-grid, .visit-grid, .contact-wrap { grid-template-columns: 1fr; gap: 3rem; }
  .vision-grid { grid-template-columns: 1fr; }
  .beliefs-grid { grid-template-columns: 1fr; }
  .practices-grid { grid-template-columns: 1fr 1fr; }
  .services-grid { grid-template-columns: 1fr; }
  .min-grid { grid-template-columns: 1fr; }
  .stats-row { grid-template-columns: 1fr 1fr; }
  .programs { grid-template-columns: 1fr; }
  .pillars { grid-template-columns: 1fr 1fr; }
  .hero-logo-bg, .hero-ring { display: none; }
  .hero-content { padding: 0; }
  .about-logo-wrap { position: static; }
  .event-card { grid-template-columns: 70px 1fr; }
  .p-item { grid-template-columns: 50px 1fr; gap: 1rem; }
  .p-letter { font-size: 2.5rem; }
}

@media (max-width: 600px) {
  .practices-grid { grid-template-columns: 1fr; }
  .pillars { grid-template-columns: 1fr; }
  .stats-row { grid-template-columns: 1fr; }
}


/* ---- ORIMOLADE PORTRAIT ---- */
.orimolade-wrap { align-self: stretch; display: flex; justify-content: flex-end; align-items: flex-start; }
.orimolade-portrait { text-align: center; position: sticky; top: 90px; padding-right: 1rem; }
.orimolade-portrait img { width: 100%; max-width: 450px; height: auto; border-radius: 2px; box-shadow: 0 8px 40px rgba(40,80,160,0.15); border: 4px solid var(--white); }
.portrait-caption { margin-top: 1rem; font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; line-height: 1.6; }
.portrait-caption span { font-family: 'Source Sans 3', sans-serif; font-size: 0.8rem; color: var(--text-muted); text-transform: none; letter-spacing: 0; }

/* ---- SCROLL TIMELINE ---- */
.gogcs-timeline { position: relative; padding: 2rem 0; max-width: 800px; margin: 0 auto; }
.timeline-line { position: absolute; left: 50%; top: 0; bottom: 0; width: 3px; background: var(--royal); transform: translateX(-50%); z-index: 0; }
.timeline-node { position: relative; display: grid; grid-template-columns: 1fr 40px 1fr; align-items: center; margin-bottom: 2.5rem; opacity: 0; transition: opacity 0.7s ease, transform 0.7s ease; }
.timeline-node:nth-child(odd) { transform: translateX(40px); }
.timeline-node:nth-child(even) { transform: translateX(-40px); }
.timeline-node.visible { opacity: 1; transform: translateX(0); }
.timeline-dot { grid-column: 2; grid-row: 1; width: 14px; height: 14px; background: var(--crimson); border-radius: 50%; border: 3px solid var(--white); box-shadow: 0 0 0 3px var(--royal); justify-self: center; z-index: 2; }
/* Odd nodes: desc left, dot center, year right */
.timeline-node:nth-child(odd) .timeline-desc { grid-column: 1; grid-row: 1; text-align: right; padding-right: 1.5rem; }
.timeline-node:nth-child(odd) .timeline-year { grid-column: 3; grid-row: 1; text-align: left; padding-left: 1.5rem; }
/* Even nodes: year left, dot center, desc right */
.timeline-node:nth-child(even) .timeline-year { grid-column: 1; grid-row: 1; text-align: right; padding-right: 1.5rem; }
.timeline-node:nth-child(even) .timeline-desc { grid-column: 3; grid-row: 1; text-align: left; padding-left: 1.5rem; }
.timeline-year { font-family: 'Cinzel', serif; font-size: 1.3rem; font-weight: 700; color: var(--royal); letter-spacing: 0.05em; }
.timeline-desc { font-family: 'Source Sans 3', sans-serif; font-size: 0.95rem; color: var(--text-mid); line-height: 1.6; }

@media (max-width: 900px) {
  .timeline-line { left: 20px; transform: none; }
  .timeline-node,
  .timeline-node:nth-child(odd),
  .timeline-node:nth-child(even) { grid-template-columns: 40px 1fr; grid-template-rows: auto auto; transform: translateX(-30px); }
  .timeline-node.visible { transform: translateX(0); }
  .timeline-dot { grid-column: 1; grid-row: 1 / 3; justify-self: center; align-self: center; }
  .timeline-year,
  .timeline-node:nth-child(odd) .timeline-year,
  .timeline-node:nth-child(even) .timeline-year { grid-column: 2; grid-row: 1; text-align: left; padding: 0 0 0 0.8rem; font-size: 1.1rem; }
  .timeline-desc,
  .timeline-node:nth-child(odd) .timeline-desc,
  .timeline-node:nth-child(even) .timeline-desc { grid-column: 2; grid-row: 2; text-align: left; padding: 0 0 0 0.8rem; }
}

/* ---- ANIMATED GRAIN / NOISE ON DARK SECTIONS ---- */
.bg-royaldeep { position: relative; overflow: hidden; }
.bg-royaldeep::before {
  content: '';
  position: absolute;
  inset: -50%;
  width: 200%;
  height: 200%;
  background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADIAAAAyCAYAAAAeP4ixAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAOxAAADsQBlSsOGwAAAi5JREFUaIHtmk1uwzAMhT9Z9AT1IXqfniS76CJZeJEsusgiiyxygB6iJ+gNitJkJFGU/jzJLGZh2ZL4+EhRlg0cHBwcHBwcHBwcHBz8F3CxA6jqGsANAB4BrJm5c6Nv+JdfAPgFACZ+BLADU8+Kz+Hb8g0AL4MwxAD2E8kEMOYAvlMbxkjO3eSI9oa2tuJ5rNRUVTUFcJ0s1qqpaquo5H/H0DWAs0rxHEAG09xE/p0YWRP0/D8zzM8Pj5i2rYIwxBVVYXL5eJ8l4bA7hxijHvkSHYGQH6fp4xc2hZBEKCqqvA4HsMkScI4jh2JtHs/B++JXC6X8PX1NXRep/N5ruu6rusihBBCFEVhFEWe5jnLONkDkR3xCbcATr3y1G+aJqmqKuya/p6I7IhzCLUA6nBuaSL3cKQfJEf6bdsGYRhi8r29OKrT5XIJoygK4ziW/q20A5Ed4XYeA3iq6/rE9FpFUYgwDJMkSSqlcjKSI5kD8QnAlqf9A8AHnxBjrBXn0xBAVRRFnCTJ4CLIp4jsCAD8CuCGmT8IIS6llNe2bUOeD/d0FEekfggA5wBOAZwxxs4BnAghr4UQZyzPMy60L6NlIi4APBdCnFnkUTq0vU76j+wIlwCeM/NTIcSFEOLC6Jwxds45P+ecR0T0Cv3WpU3d97/IjiRJcpYkyblS6owxdsE5vxRCXHLOLxhjl5zzSyHERVmW5bqu69daM0+jl+dJHlqWZbm2I7s7+APyGD2Dg4ODg4ODg4ODg/+IPzbYvr+Rh5uCAAAAAElFTkSuQmCC");
  opacity: 0.04;
  pointer-events: none;
  z-index: 0;
  animation: grainShift 8s steps(4) infinite;
}
.bg-royaldeep::after {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 80%;
  height: 80%;
  transform: translate(-50%, -50%);
  background: radial-gradient(ellipse at center, rgba(40,80,160,0.12) 0%, transparent 70%);
  pointer-events: none;
  z-index: 0;
  animation: breatheGlow 6s ease-in-out infinite;
}
.bg-royaldeep > * { position: relative; z-index: 1; }
@keyframes grainShift {
  0% { transform: translate(0, 0); }
  25% { transform: translate(-2%, -3%); }
  50% { transform: translate(1%, 2%); }
  75% { transform: translate(-1%, 1%); }
  100% { transform: translate(0, 0); }
}
@keyframes breatheGlow {
  0%, 100% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); }
}

/* ---- PARALLAX PERFORMANCE HINTS ---- */
.hero-logo-bg, .hero-ring, .hero-content {
  will-change: transform;
}

/* ---- ACCESSIBILITY ---- */
.skip-to-content { position: absolute; top: -100px; left: 50%; transform: translateX(-50%); background: var(--crimson); color: white; padding: 0.8rem 1.5rem; z-index: 10000; font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.12em; text-transform: uppercase; text-decoration: none; border-radius: 0 0 4px 4px; transition: top 0.3s; }
.skip-to-content:focus { top: 0; }

.a11y-toggle { position: fixed; left: 0; top: 50%; transform: translateY(-50%); z-index: 999; background: var(--royal); color: white; padding: 0.7rem 0.5rem; border-radius: 0 4px 4px 0; cursor: pointer; box-shadow: 2px 0 15px rgba(0,0,0,0.2); transition: background 0.3s; }
.a11y-toggle:hover, .a11y-toggle:focus { background: var(--royal-dark); outline: 2px solid white; }

.a11y-panel { position: fixed; left: -320px; top: 0; bottom: 0; width: 300px; background: white; z-index: 1001; transition: left 0.4s cubic-bezier(0.25,0.8,0.25,1); box-shadow: 5px 0 30px rgba(0,0,0,0.2); display: flex; flex-direction: column; }
.a11y-panel.open { left: 0; }
.a11y-panel-header { display: flex; justify-content: space-between; align-items: center; padding: 1.2rem 1.5rem; background: var(--royal); }
.a11y-panel-header h3 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.12em; color: white; text-transform: uppercase; margin: 0; }
.a11y-panel-close { background: none; border: none; color: rgba(255,255,255,0.6); font-size: 1.2rem; cursor: pointer; padding: 0.3rem; }
.a11y-panel-close:hover { color: white; }
.a11y-panel-body { padding: 1rem; flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 0.5rem; }

.a11y-option { padding: 0.8rem; background: var(--off-white); border-radius: 4px; }
.a11y-option-label { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; display: block; margin-bottom: 0.5rem; }
.a11y-font-controls { display: flex; gap: 0.4rem; }
.a11y-btn { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.08em; padding: 0.5rem 1rem; background: white; border: 1px solid var(--light-blue); color: var(--royal); cursor: pointer; border-radius: 2px; transition: all 0.3s; flex: 1; text-align: center; text-transform: uppercase; }
.a11y-btn:hover, .a11y-btn:focus { background: var(--royal); color: white; border-color: var(--royal); }

.a11y-option-toggle { display: flex; align-items: center; gap: 0.8rem; padding: 0.8rem; background: var(--off-white); border: 1px solid transparent; border-radius: 4px; cursor: pointer; transition: all 0.3s; width: 100%; text-align: left; }
.a11y-option-toggle:hover, .a11y-option-toggle:focus { border-color: var(--royal); }
.a11y-option-toggle.active { background: var(--royal); color: white; border-color: var(--royal); }
.a11y-option-toggle .a11y-option-icon { width: 28px; height: 28px; display: flex; align-items: center; justify-content: center; font-size: 1rem; flex-shrink: 0; }
.a11y-option-toggle span:last-child { font-family: 'Source Sans 3', sans-serif; font-size: 0.85rem; color: var(--text-dark); }
.a11y-option-toggle.active span:last-child { color: white; }

.a11y-reset-all { margin-top: 0.5rem; background: var(--crimson) !important; color: white !important; border-color: var(--crimson) !important; }

/* Accessibility states */
body.a11y-high-contrast { filter: contrast(1.5) !important; }
body.a11y-high-contrast .bg-royaldeep, body.a11y-high-contrast .bg-crimson { background: #000 !important; }
body.a11y-high-contrast .bg-white, body.a11y-high-contrast .bg-offwhite { background: #fff !important; }
body.a11y-high-contrast * { border-color: #000 !important; }

body.a11y-grayscale { filter: grayscale(100%) !important; }

body.a11y-underline-links a { text-decoration: underline !important; }

body.a11y-readable-font, body.a11y-readable-font * { font-family: Arial, Helvetica, sans-serif !important; letter-spacing: 0.02em !important; }

body.a11y-pause-motion, body.a11y-pause-motion * { animation: none !important; transition: none !important; }
body.a11y-pause-motion .hero-ring, body.a11y-pause-motion .hero-scroll { display: none !important; }
body.a11y-pause-motion .hero-slide { transition: none !important; }

body.a11y-big-cursor, body.a11y-big-cursor * { cursor: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M7 2l12 11.2-5.8.5 3.3 7.3-2.2 1-3.2-7.4L7 18.5z'/%3E%3C/svg%3E") 4 2, auto !important; }

/* Focus indicators */
*:focus-visible { outline: 3px solid var(--crimson) !important; outline-offset: 2px !important; }

/* Respect prefers-reduced-motion */
@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
  .hero-ring, .hero-scroll { display: none !important; }
  .reveal { opacity: 1 !important; transform: none !important; }
}

@media (max-width: 900px) {
  .a11y-panel { width: 260px; left: -280px; }
}

/* ---- CONTACT PAGE ---- */
.contact-location-card { display: flex; align-items: center; gap: 1.2rem; padding: 1.5rem; background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15); border-left: 4px solid var(--crimson); border-radius: 2px; margin-bottom: 1.5rem; text-decoration: none; transition: background 0.3s, transform 0.3s; }
.contact-location-card:hover { background: rgba(255,255,255,0.12); transform: translateX(4px); }
.contact-location-icon { font-size: 2rem; flex-shrink: 0; }
.contact-location-label { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.15em; color: var(--crimson); text-transform: uppercase; margin-bottom: 0.3rem; }
.contact-location-address { font-family: 'Playfair Display', serif; font-size: 1.15rem; color: white; font-weight: 600; margin-bottom: 0.2rem; }
.contact-location-sub { font-size: 0.75rem; color: rgba(255,255,255,0.4); }
.contact-info-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.contact-info-item { padding: 1rem; background: rgba(255,255,255,0.04); border: 1px solid rgba(255,255,255,0.08); border-radius: 2px; transition: background 0.3s; }
.contact-info-item:hover { background: rgba(255,255,255,0.08); }
.contact-info-label { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.15em; color: rgba(255,255,255,0.4); text-transform: uppercase; margin-bottom: 0.3rem; }

/* CF7 form styling for dark backgrounds */
.gogcs-page .wpcf7 input[type="text"],
.gogcs-page .wpcf7 input[type="email"],
.gogcs-page .wpcf7 textarea,
.gogcs-page .wpcf7 select { background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.12); color: white; padding: 0.8rem 1rem; font-family: 'Source Sans 3', sans-serif; font-size: 0.9rem; outline: none; border-radius: 2px; width: 100%; margin-bottom: 0.8rem; transition: border-color 0.25s; }
.gogcs-page .wpcf7 input:focus, .gogcs-page .wpcf7 textarea:focus, .gogcs-page .wpcf7 select:focus { border-color: #3a68c8; }
.gogcs-page .wpcf7 input::placeholder, .gogcs-page .wpcf7 textarea::placeholder { color: rgba(255,255,255,0.25); }
.gogcs-page .wpcf7 textarea { min-height: 110px; resize: vertical; }
.gogcs-page .wpcf7 select { appearance: none; cursor: pointer; }
.gogcs-page .wpcf7 input[type="submit"] { background: #b41428; color: white; font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 1.1rem 2rem; border: none; border-radius: 2px; cursor: pointer; width: 100%; transition: background 0.25s; }
.gogcs-page .wpcf7 input[type="submit"]:hover { background: #8a0e1e; }
.gogcs-page .wpcf7 label { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.18em; color: rgba(255,255,255,0.4); text-transform: uppercase; display: block; margin-bottom: 0.3rem; }
.gogcs-page .wpcf7-response-output { color: rgba(255,255,255,0.7); border-color: rgba(255,255,255,0.2) !important; }

/* CF7 on light backgrounds (prayer form, etc.) */
.bg-white .wpcf7 input[type="text"],
.bg-white .wpcf7 input[type="email"],
.bg-white .wpcf7 input[type="tel"],
.bg-white .wpcf7 textarea,
.bg-white .wpcf7 select { background: white; border: 1px solid #dce8f8; color: #0d1f47; padding: 0.8rem 1rem; font-family: 'Source Sans 3', sans-serif; font-size: 0.9rem; outline: none; border-radius: 2px; width: 100%; margin-bottom: 1rem; transition: border-color 0.25s; }
.bg-white .wpcf7 input:focus, .bg-white .wpcf7 textarea:focus, .bg-white .wpcf7 select:focus { border-color: #3a68c8; }
.bg-white .wpcf7 input::placeholder, .bg-white .wpcf7 textarea::placeholder { color: rgba(13,31,71,0.3); }
.bg-white .wpcf7 textarea { min-height: 150px; resize: vertical; }
.bg-white .wpcf7 select { appearance: none; cursor: pointer; }
.bg-white .wpcf7 label { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.18em; color: rgba(13,31,71,0.5); text-transform: uppercase; display: block; margin-bottom: 0.3rem; }
.bg-white .wpcf7 .wpcf7-list-item { font-size: 0.9rem; color: rgba(13,31,71,0.7); }
.bg-white .wpcf7 .wpcf7-list-item input[type="checkbox"] { width: 16px; height: 16px; accent-color: var(--crimson); cursor: pointer; }
.bg-white .wpcf7-response-output { color: var(--text-dark); border-color: rgba(13,31,71,0.15) !important; }

@media (max-width: 900px) { .contact-info-grid { grid-template-columns: 1fr; } }
@media (max-width: 768px) { .gogcs-page .bg-offwhite [style*="grid-template-columns:1fr 1fr"] { grid-template-columns: 1fr !important; } }

/* ---- SM SLIDE-OUT PANEL ---- */
.sm-panel-toggle { position: fixed; right: 0; top: 50%; transform: translateY(-50%); z-index: 999; background: var(--crimson); color: white; border: 0; font: inherit; padding: 0.8rem 0.6rem; border-radius: 4px 0 0 4px; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 0.4rem; box-shadow: -2px 0 15px rgba(0,0,0,0.2); transition: background 0.3s; writing-mode: vertical-lr; }
.sm-panel-toggle:hover { background: var(--crimson-dark); }
.sm-panel-toggle span { font-family: 'Cinzel', serif; font-size: 0.5rem; letter-spacing: 0.15em; text-transform: uppercase; }
.sm-panel { position: fixed; right: -360px; top: 0; bottom: 0; width: 340px; background: var(--royal-deep); z-index: 1001; transition: right 0.4s cubic-bezier(0.25,0.8,0.25,1); box-shadow: -5px 0 30px rgba(0,0,0,0.3); display: flex; flex-direction: column; }
.sm-panel.open { right: 0; }
.sm-panel-header { display: flex; justify-content: space-between; align-items: center; padding: 1.5rem; border-bottom: 2px solid var(--crimson); }
.sm-panel-header h3 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.12em; color: white; text-transform: uppercase; }
.sm-panel-close { background: none; border: none; color: rgba(255,255,255,0.5); font-size: 1.2rem; cursor: pointer; padding: 0.3rem; transition: color 0.3s; }
.sm-panel-close:hover { color: white; }
.sm-panel-body { padding: 1rem; flex: 1; overflow-y: auto; display: flex; flex-direction: column; gap: 0.6rem; }
.sm-link { display: flex; align-items: center; gap: 1rem; padding: 1rem; background: rgba(255,255,255,0.06); border: 1px solid rgba(255,255,255,0.1); border-radius: 6px; text-decoration: none; transition: background 0.3s, transform 0.3s, border-color 0.3s; }
.sm-link:hover { background: rgba(255,255,255,0.1); transform: translateX(4px); border-color: rgba(255,255,255,0.2); }
.sm-link-icon { width: 40px; height: 40px; border-radius: 8px; display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.sm-link-info { flex: 1; }
.sm-link-name { display: block; font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.1em; color: white; text-transform: uppercase; }
.sm-link-handle { display: block; font-size: 0.8rem; color: rgba(255,255,255,0.45); margin-top: 0.1rem; }
.sm-link-arrow { color: rgba(255,255,255,0.3); font-size: 1.2rem; transition: color 0.3s; }
.sm-link:hover .sm-link-arrow { color: white; }
.sm-panel-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.5); z-index: 1000; opacity: 0; pointer-events: none; transition: opacity 0.4s; }
.sm-panel-overlay.open { opacity: 1; pointer-events: all; }
@media (max-width: 900px) { .sm-panel { width: 280px; right: -300px; } }

/* ---- BLOG ---- */
.blog-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.blog-card { background: var(--off-white); border-radius: 2px; overflow: hidden; border-top: 3px solid var(--royal); transition: transform 0.3s, box-shadow 0.3s; }
.blog-card:nth-child(even) { border-top-color: var(--crimson); }
.blog-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(40,80,160,0.12); }
.blog-card:hover h3 { color: var(--crimson); }
.blog-thumb { width: 100%; aspect-ratio: 16/10; background: var(--light-blue); display: flex; align-items: center; justify-content: center; }
.blog-thumb img { width: 100%; height: 100%; object-fit: cover; }
.blog-card-body { padding: 1.2rem; }
.blog-card-body h3 { font-family: 'Cinzel', serif; font-size: 0.68rem; letter-spacing: 0.08em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.3rem; transition: color 0.3s; }
.blog-date { font-family: 'Source Sans 3', sans-serif; font-size: 0.78rem; color: var(--crimson); margin-bottom: 0.5rem; }
.blog-card-body p { font-size: 0.85rem; color: #3a4e70; line-height: 1.6; margin-bottom: 0.6rem; }
.blog-read-more { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; color: var(--royal); text-transform: uppercase; text-decoration: none; transition: color 0.3s; }
.blog-read-more:hover { color: var(--crimson); }
.featured-post { display: grid; grid-template-columns: 1fr 1fr; gap: 2.5rem; align-items: center; padding: 2.5rem; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.1); border-radius: 2px; }
.featured-post:hover { background: rgba(255,255,255,0.1); }

/* ---- PRAYER ---- */
.prayer-cards { display: flex; flex-direction: column; gap: 1rem; }
.prayer-card { padding: 1.2rem; background: white; border-left: 3px solid var(--royal); border-radius: 2px; transition: transform 0.3s; }
.prayer-card:nth-child(even) { border-left-color: var(--crimson); }
.prayer-card:hover { transform: translateX(4px); }
.prayer-card h4 { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.3rem; }
.prayer-card p { font-size: 0.88rem; color: #3a4e70; line-height: 1.6; }
.prayer-form input[type="text"],
.prayer-form input[type="email"],
.prayer-form input[type="tel"],
.prayer-form textarea,
.prayer-form select { background: white; border: 1px solid var(--light-blue); color: var(--text-dark); padding: 0.8rem 1rem; font-family: 'Source Sans 3', sans-serif; font-size: 0.9rem; outline: none; border-radius: 2px; width: 100%; margin-bottom: 0.8rem; transition: border-color 0.25s; }
.prayer-form input:focus, .prayer-form textarea:focus, .prayer-form select:focus { border-color: var(--royal); }
.prayer-form textarea { min-height: 150px; resize: vertical; }
.prayer-form label { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.15em; color: var(--text-muted); text-transform: uppercase; display: block; margin-bottom: 0.3rem; }
.prayer-form .checkbox-wrap { display: flex; align-items: center; gap: 0.6rem; margin-bottom: 1rem; }
.prayer-form .checkbox-wrap input[type="checkbox"] { width: auto; margin: 0; }
.prayer-form .checkbox-wrap label { margin: 0; font-size: 0.8rem; font-family: 'Source Sans 3', sans-serif; text-transform: none; letter-spacing: 0; color: #3a4e70; }

/* ---- LIVESTREAM ---- */
.livestream-embed { width: 100%; aspect-ratio: 16/9; background: var(--royal-deep); border-radius: 2px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; margin-bottom: 2rem; }
.livestream-embed svg { opacity: 0.3; }
.livestream-embed span { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.12em; color: var(--text-muted); text-transform: uppercase; }
.platform-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.platform-card { padding: 2rem; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); border-radius: 2px; text-align: center; transition: background 0.3s, border-color 0.3s, transform 0.3s; }
.platform-card:hover { background: rgba(255,255,255,0.12); border-color: rgba(255,255,255,0.25); transform: translateY(-3px); }
.platform-card svg { margin-bottom: 1rem; }
.platform-card h4 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.12em; color: white; text-transform: uppercase; margin-bottom: 0.5rem; }
.platform-card p { font-size: 0.85rem; color: rgba(255,255,255,0.5); margin-bottom: 1rem; }

@media (max-width: 900px) {
  .blog-grid { grid-template-columns: 1fr; }
  .featured-post { grid-template-columns: 1fr; }
  .platform-grid { grid-template-columns: 1fr; }
}

/* ---- LIBRARY ---- */
.library-grid { display: flex; flex-direction: column; gap: 1rem; }
.library-card { display: grid; grid-template-columns: 60px 1fr; gap: 1.5rem; padding: 1.5rem; background: white; border-left: 3px solid var(--royal); border-radius: 2px; transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; align-items: start; }
.library-card:nth-child(even) { border-left-color: var(--crimson); }
.library-card:hover { transform: translateX(4px); box-shadow: 0 6px 25px rgba(40,80,160,0.1); }
.library-card:hover h3 { color: var(--crimson); }
.library-icon { width: 52px; height: 52px; background: var(--off-white); border-radius: 2px; display: flex; align-items: center; justify-content: center; }
.library-info h3 { font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.4rem; transition: color 0.3s; }
.library-info p { font-size: 0.9rem; color: #3a4e70; line-height: 1.6; margin-bottom: 0.6rem; }
.library-meta { display: flex; align-items: center; gap: 1rem; }
.library-type { font-family: 'Cinzel', serif; font-size: 0.5rem; letter-spacing: 0.12em; color: var(--text-muted); text-transform: uppercase; background: var(--off-white); padding: 0.25rem 0.6rem; border-radius: 2px; }
.library-download { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; color: var(--royal); text-transform: uppercase; text-decoration: none; transition: color 0.3s; }
.library-download:hover { color: var(--crimson); }

@media (max-width: 900px) {
  .library-card { grid-template-columns: 1fr; }
  .library-icon { margin-bottom: 0.5rem; }
}

/* ---- SERMONS ---- */
.sermon-list { display: flex; flex-direction: column; gap: 1rem; }
.sermon-card { display: grid; grid-template-columns: 80px 1fr; gap: 1.5rem; padding: 1.5rem; background: var(--off-white); border-left: 3px solid var(--royal); border-radius: 2px; transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
.sermon-card:nth-child(even) { border-left-color: var(--crimson); }
.sermon-card:hover { transform: translateX(4px); box-shadow: 0 6px 25px rgba(40,80,160,0.1); }
.sermon-card:hover h3 { color: var(--crimson); }
.sermon-date-col { text-align: center; }
.sermon-month { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.12em; color: var(--crimson); text-transform: uppercase; }
.sermon-day { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 600; color: var(--royal); line-height: 1.1; }
.sermon-year { font-family: 'Source Sans 3', sans-serif; font-size: 0.75rem; color: var(--text-muted); }
.sermon-details h3 { font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.4rem; transition: color 0.3s; }
.sermon-meta { display: flex; gap: 1.5rem; flex-wrap: wrap; margin-bottom: 0.5rem; }
.sermon-meta span { font-family: 'Source Sans 3', sans-serif; font-size: 0.8rem; color: var(--text-muted); }
.sermon-details p { font-size: 0.88rem; color: #3a4e70; line-height: 1.6; margin-bottom: 0.8rem; }
.sermon-actions { display: flex; gap: 0.6rem; }
.sermon-btn { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; color: var(--royal); text-transform: uppercase; text-decoration: none; padding: 0.4rem 1rem; border: 1px solid var(--royal); border-radius: 2px; transition: all 0.3s; display: inline-block; }
.sermon-btn:hover { background: var(--royal); color: white; }

@media (max-width: 900px) {
  .sermon-card { grid-template-columns: 60px 1fr; gap: 1rem; }
  .sermon-day { font-size: 1.5rem; }
}

/* ---- ANNIVERSARY ---- */
.anniversary-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.5rem; }
.anniversary-card { background: var(--off-white); border-radius: 2px; border-top: 3px solid var(--royal); overflow: hidden; transition: transform 0.3s, box-shadow 0.3s; display: grid; grid-template-columns: 200px 1fr; cursor: pointer; }
.anniversary-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(40,80,160,0.12); }
.anniv-photo-placeholder { width: 100%; height: 100%; min-height: 180px; background: var(--light-blue); border: 1px solid var(--light-blue); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.5rem; }
.anniv-photo-placeholder span { font-family: 'Cinzel', serif; font-size: 0.45rem; letter-spacing: 0.1em; color: var(--text-muted); text-transform: uppercase; }
.anniv-info { padding: 1.5rem; }
.anniv-year { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 600; color: var(--royal); opacity: 0.25; line-height: 1; margin-bottom: 0.3rem; }
.anniv-info h3 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.12em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.4rem; transition: color 0.3s; }
.anniversary-card:hover .anniv-info h3 { color: var(--crimson); }
.anniv-theme { font-family: 'Playfair Display', serif; font-size: 0.9rem; font-style: italic; color: var(--text-muted); margin-bottom: 0.5rem; }
.anniv-desc { font-size: 0.85rem; color: #3a4e70; line-height: 1.6; margin-bottom: 0.8rem; }
.anniv-gallery-link { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; color: var(--royal); text-transform: uppercase; text-decoration: none; transition: color 0.3s; }
.anniv-gallery-link:hover { color: var(--crimson); }

@media (max-width: 900px) {
  .anniversary-grid { grid-template-columns: 1fr; }
  .anniversary-card { grid-template-columns: 1fr; }
  .anniv-photo-placeholder { min-height: 150px; }
}

/* ---- GIVE CARDS ---- */
.give-cards { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.give-card { background: var(--off-white); padding: 2rem; border-radius: 2px; border-top: 3px solid var(--royal); text-align: center; transition: transform 0.3s, box-shadow 0.3s; }
.give-card:nth-child(even) { border-top-color: var(--crimson); }
.give-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(40,80,160,0.12); }
.give-card-icon { font-size: 2rem; margin-bottom: 1rem; }
.give-card h3 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.12em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.6rem; }
.give-card p { font-size: 0.9rem; color: #3a4e70; line-height: 1.6; margin-bottom: 1.2rem; }
.give-card .btn-primary { font-size: 0.58rem; padding: 0.7rem 1.5rem; }
.give-form-wrap { margin-top: 1.5rem; text-align: left; }
@media (max-width: 900px) { .give-cards { grid-template-columns: 1fr; } }

/* ---- GALLERY ---- */
.gallery-filters { display: flex; justify-content: center; gap: 0.6rem; flex-wrap: wrap; margin-bottom: 2rem; }
.gallery-filter-btn { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.15em; text-transform: uppercase; padding: 0.6rem 1.4rem; background: var(--off-white); border: 1px solid var(--light-blue); color: var(--text-mid); cursor: pointer; border-radius: 2px; transition: all 0.3s; text-decoration: none; display: inline-block; }
.gallery-filter-btn:hover { border-color: var(--royal); color: var(--royal); }
.gallery-filter-btn.active { background: var(--royal); color: white; border-color: var(--royal); }
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1rem; }
.gallery-item { overflow: hidden; border-radius: 2px; transition: transform 0.3s, box-shadow 0.3s; cursor: pointer; }
.gallery-item:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(40,80,160,0.15); }
.gallery-item:nth-child(3n+1) .gallery-placeholder { aspect-ratio: 1/1; }
.gallery-item:nth-child(3n+2) .gallery-placeholder { aspect-ratio: 3/4; }
.gallery-item:nth-child(3n+3) .gallery-placeholder { aspect-ratio: 4/3; }
.gallery-placeholder { width: 100%; background: var(--light-blue); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.8rem; }
.gallery-placeholder svg { opacity: 0.3; }
.gallery-placeholder span { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; color: var(--text-muted); text-transform: uppercase; }
.gallery-caption { padding: 0.8rem; background: white; }
.gallery-caption h4 { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.08em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.2rem; }
.gallery-caption span { font-family: 'Source Sans 3', sans-serif; font-size: 0.8rem; color: var(--text-muted); }
.gallery-item.hidden { display: none; }
.video-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.video-item { border-radius: 2px; overflow: hidden; transition: transform 0.3s, box-shadow 0.3s; }
.video-item:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(40,80,160,0.15); }
.video-placeholder { width: 100%; aspect-ratio: 16/9; background: var(--royal-deep); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.8rem; }
.video-placeholder svg { opacity: 0.4; }
.video-placeholder span { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; color: rgba(255,255,255,0.4); text-transform: uppercase; }
.video-caption { padding: 0.8rem; background: var(--off-white); }
.video-caption h4 { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.08em; color: var(--royal); text-transform: uppercase; }

/* ---- LEADERSHIP ---- */
.leader-photo-placeholder { width: 100%; max-width: 300px; height: 380px; background: var(--royal-dark); border-radius: 2px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.8rem; box-shadow: 0 8px 30px rgba(40,80,160,0.15); }
.leader-photo-placeholder span { font-family: 'Cinzel', serif; font-size: 0.5rem; letter-spacing: 0.12em; color: rgba(255,255,255,0.3); text-transform: uppercase; }
.leader-featured { display: grid; grid-template-columns: auto 1fr; gap: 3rem; align-items: center; }
.leader-featured.reversed { grid-template-columns: 1fr auto; }
.leader-featured.reversed .leader-photo-placeholder { order: 2; }
.leader-featured.reversed .leader-info { order: 1; }
.leader-info h3 { font-family: 'Playfair Display', serif; font-size: 1.8rem; font-weight: 600; color: var(--royal); margin-bottom: 0.3rem; }
.leader-info .leader-title { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.15em; color: var(--crimson); text-transform: uppercase; margin-bottom: 0.3rem; }
.leader-info .leader-subtitle { font-family: 'Playfair Display', serif; font-size: 0.95rem; font-style: italic; color: var(--text-muted); margin-bottom: 1rem; }
.leader-info p { font-size: 1rem; color: #3a4e70; line-height: 1.8; }
.leader-info.light h3 { color: white; }
.leader-info.light .leader-title { color: rgba(255,255,255,0.6); }
.leader-info.light .leader-subtitle { color: rgba(255,255,255,0.5); }
.leader-info.light p { color: rgba(255,255,255,0.65); }
.clergy-rank { margin-bottom: 2.5rem; }
.clergy-rank h3 { font-family: 'Cinzel', serif; font-size: 0.75rem; letter-spacing: 0.15em; color: var(--royal); text-transform: uppercase; margin-bottom: 1.2rem; padding-bottom: 0.5rem; border-bottom: 2px solid var(--royal); display: inline-block; }
.leader-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.leader-card { text-align: center; padding: 1.5rem; background: white; border-radius: 2px; border-top: 3px solid var(--royal); transition: transform 0.3s, box-shadow 0.3s; }
.leader-card:nth-child(even) { border-top-color: var(--crimson); }
.leader-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(40,80,160,0.12); }
.leader-card .leader-photo-placeholder { width: 160px; height: 200px; margin: 0 auto 1rem; max-width: none; }
.leader-card h4 { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.1em; color: var(--text-dark); text-transform: uppercase; margin-bottom: 0.2rem; }
.leader-card .card-role { font-family: 'Source Sans 3', sans-serif; font-size: 0.85rem; color: var(--text-muted); }
.officer-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 1.5rem; }
.officer-card { text-align: center; padding: 1.2rem; background: var(--off-white); border-radius: 2px; border-left: 3px solid var(--royal); transition: transform 0.3s, box-shadow 0.3s; }
.officer-card:nth-child(even) { border-left-color: var(--crimson); }
.officer-card:hover { transform: translateY(-3px); box-shadow: 0 8px 25px rgba(40,80,160,0.1); }
.officer-card .leader-photo-placeholder { width: 120px; height: 150px; margin: 0 auto 0.8rem; max-width: none; }
.officer-card h4 { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.08em; color: var(--text-dark); text-transform: uppercase; margin-bottom: 0.15rem; }
.officer-card .card-role { font-family: 'Source Sans 3', sans-serif; font-size: 0.8rem; color: var(--crimson); }

/* Org chart */
.org-chart { display: flex; flex-direction: column; align-items: center; gap: 0; padding: 2rem 0; }
.org-level { display: flex; justify-content: center; gap: 1rem; flex-wrap: wrap; position: relative; }
.org-connector { width: 2px; height: 2rem; background: rgba(255,255,255,0.2); margin: 0 auto; }
.org-branch-connector { display: flex; justify-content: center; position: relative; width: 100%; height: 2rem; }
.org-branch-connector::before { content: ''; position: absolute; top: 0; width: 2px; height: 100%; background: rgba(255,255,255,0.2); left: 50%; transform: translateX(-50%); }
.org-branch-connector::after { content: ''; position: absolute; bottom: 0; height: 2px; background: rgba(255,255,255,0.2); left: 15%; right: 15%; }
.org-node { background: rgba(255,255,255,0.08); border: 1px solid rgba(255,255,255,0.15); border-radius: 2px; padding: 0.8rem 1.5rem; text-align: center; transition: background 0.3s, border-color 0.3s, transform 0.3s; cursor: default; }
.org-node:hover { background: rgba(255,255,255,0.15); border-color: var(--crimson); transform: translateY(-2px); }
.org-node.primary { border-color: var(--crimson); border-width: 2px; }
.org-node h4 { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.1em; color: white; text-transform: uppercase; margin-bottom: 0.2rem; }
.org-node span { font-family: 'Source Sans 3', sans-serif; font-size: 0.75rem; color: rgba(255,255,255,0.5); }

/* ---- EVENTS REVAMP ---- */
.featured-event { display: grid; grid-template-columns: 300px 1fr; gap: 2rem; align-items: center; padding: 2rem; background: rgba(255,255,255,0.07); border: 1px solid rgba(255,255,255,0.12); border-radius: 2px; margin-bottom: 1.5rem; transition: background 0.3s, transform 0.3s; }
.featured-event:hover { background: rgba(255,255,255,0.1); transform: translateY(-2px); }
.event-photo-placeholder { width: 100%; aspect-ratio: 3/2; background: rgba(255,255,255,0.05); border: 1px solid rgba(255,255,255,0.1); border-radius: 2px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6rem; }
.event-photo-placeholder svg { opacity: 0.25; }
.event-photo-placeholder span { font-family: 'Cinzel', serif; font-size: 0.5rem; letter-spacing: 0.1em; color: rgba(255,255,255,0.3); text-transform: uppercase; }
.event-badge { display: inline-block; font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.15em; color: white; text-transform: uppercase; background: var(--crimson); padding: 0.3rem 0.8rem; margin-bottom: 0.8rem; border-radius: 2px; }
.featured-event h3 { font-family: 'Playfair Display', serif; font-size: 1.4rem; font-weight: 600; color: white; margin-bottom: 0.5rem; }
.featured-event p { font-size: 0.95rem; color: rgba(255,255,255,0.6); line-height: 1.7; margin-bottom: 0.5rem; }
.featured-event .event-location { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.1em; color: rgba(255,255,255,0.4); text-transform: uppercase; margin-bottom: 1rem; }
.past-events-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.past-event-card { background: white; border-radius: 2px; overflow: hidden; border-top: 3px solid var(--royal); transition: transform 0.3s, box-shadow 0.3s; }
.past-event-card:nth-child(even) { border-top-color: var(--crimson); }
.past-event-card:hover { transform: translateY(-4px); box-shadow: 0 10px 30px rgba(40,80,160,0.12); }
.past-event-photo { width: 100%; aspect-ratio: 16/10; background: var(--light-blue); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 0.6rem; }
.past-event-photo svg { opacity: 0.25; }
.past-event-photo span { font-family: 'Cinzel', serif; font-size: 0.5rem; letter-spacing: 0.1em; color: var(--text-muted); text-transform: uppercase; }
.past-event-info { padding: 1.2rem; }
.past-event-info h4 { font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.08em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.3rem; }
.past-event-info .past-date { font-family: 'Source Sans 3', sans-serif; font-size: 0.8rem; color: var(--crimson); margin-bottom: 0.5rem; }
.past-event-info p { font-size: 0.85rem; color: #3a4e70; line-height: 1.6; margin-bottom: 0.6rem; }
.past-event-info a { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; color: var(--royal); text-transform: uppercase; text-decoration: none; transition: color 0.3s; }
.past-event-info a:hover { color: var(--crimson); }

/* ---- RESPONSIVE: new components ---- */
@media (max-width: 900px) {
  .gallery-grid { grid-template-columns: 1fr 1fr; }
  .video-grid { grid-template-columns: 1fr; }
  .leader-featured, .leader-featured.reversed { grid-template-columns: 1fr; text-align: center; }
  .leader-featured .leader-photo-placeholder { margin: 0 auto; }
  .leader-featured.reversed .leader-photo-placeholder { order: 0; }
  .leader-featured.reversed .leader-info { order: 0; }
  .leader-grid { grid-template-columns: 1fr 1fr; }
  .officer-grid { grid-template-columns: 1fr 1fr; }
  .org-level { gap: 0.5rem; }
  .org-node { padding: 0.5rem 0.8rem; }
  .org-node h4 { font-size: 0.5rem; }
  .featured-event { grid-template-columns: 1fr; }
  .past-events-grid { grid-template-columns: 1fr; }
}
@media (max-width: 600px) {
  .gallery-grid { grid-template-columns: 1fr; }
  .leader-grid { grid-template-columns: 1fr; }
  .officer-grid { grid-template-columns: 1fr; }
}

/* ---- OVERRIDE KADENCE DEFAULTS on gogcs-page ---- */
.gogcs-page .entry-content-wrap { padding: 0 !important; max-width: 100% !important; }
.gogcs-page .site-main { padding: 0 !important; }
.gogcs-page .content-wrap { max-width: 100% !important; padding: 0 !important; }
.gogcs-page .site-container { max-width: 100% !important; }
.gogcs-page .entry-content { margin: 0 !important; max-width: 100% !important; }
/* Hide ALL Kadence default header/footer elements */
.gogcs-page .site-header,
.gogcs-page #masthead,
.gogcs-page header.site-header,
.gogcs-page .site-header-wrap,
.gogcs-page .site-top-header-wrap,
.gogcs-page .site-main-header-wrap,
.gogcs-page .site-bottom-header-wrap,
.gogcs-page .header-desktop-items,
.gogcs-page .header-mobile-items,
.gogcs-page .kadence-sticky-header,
.gogcs-page .wp-site-blocks > header,
.gogcs-page .site-footer,
.gogcs-page #colophon,
.gogcs-page footer.site-footer,
.gogcs-page .site-footer-wrap,
.gogcs-page .site-bottom-footer-wrap { display: none !important; visibility: hidden !important; height: 0 !important; overflow: hidden !important; margin: 0 !important; padding: 0 !important; }

/* ================================================
   Modernization additions (2026-09), homepage
   sermons/events blocks, nav CTA responsive rules
   ================================================ */

/* Homepage sermon list, capped width on the dark section */
.home-sermon-list { max-width: 860px; }
.home-sermon-list .sermon-card { margin-bottom: 1.2rem; }

/* Homepage upcoming events cards */
.home-events-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.5rem; }
.home-event-card { position: relative; background: white; padding: 1.8rem; border-left: 3px solid var(--royal); border-radius: 2px; transition: box-shadow 0.25s, transform 0.25s; }
.home-event-card:nth-child(even) { border-left-color: var(--crimson); }
.home-event-card:hover { box-shadow: 0 8px 30px rgba(40,80,160,0.12); transform: translateY(-3px); }
.home-event-date { display: inline-flex; align-items: baseline; gap: 0.4rem; margin-bottom: 1rem; }
.home-event-date .he-month { font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.15em; color: var(--crimson); text-transform: uppercase; }
.home-event-date .he-day { font-family: 'Playfair Display', serif; font-size: 1.7rem; font-weight: 700; color: var(--text-dark); line-height: 1; }
.home-event-card h3 { font-family: 'Cinzel', serif; font-size: 0.9rem; letter-spacing: 0.1em; color: var(--text-dark); text-transform: uppercase; margin-bottom: 0.6rem; }
.home-event-card .he-meta { font-family: 'Cinzel', serif; font-size: 0.63rem; letter-spacing: 0.1em; color: var(--text-muted); text-transform: uppercase; margin-bottom: 0.8rem; }
.home-event-card .he-excerpt { font-size: 0.9rem; color: var(--text-mid); line-height: 1.75; margin-bottom: 0.8rem; }
.home-event-card .he-link { font-family: 'Cinzel', serif; font-size: 0.66rem; letter-spacing: 0.15em; color: var(--crimson); text-transform: uppercase; text-decoration: none; transition: color 0.25s; }
.home-event-card .he-link:hover { color: var(--crimson-dark); }

@media (max-width: 900px) {
  .nav-visit-cta { display: none; }
  .home-events-grid { grid-template-columns: 1fr; }
  .gogcs-nav.nav-condensed .nav-links.open { top: 56px; }
}

/* ================================================
   YOUTH MINISTRY PAGE, crimson-led, mobile-first
   Scoped to .gogcs-youth; never leaks to main site
   ================================================ */

/* Hero */
.gogcs-youth .youth-hero { position: relative; min-height: 92vh; display: flex; align-items: center; overflow: hidden; padding: 72px 2rem 3rem; background: var(--crimson-dark); }
.gogcs-youth .youth-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 22%; z-index: 0; }
.gogcs-youth .youth-hero-bg { position: absolute; inset: -5%; z-index: 0; background: radial-gradient(ellipse 65% 65% at 70% 30%, rgba(180,20,40,0.55) 0%, transparent 60%), linear-gradient(155deg, #8a0e1e 0%, #b41428 45%, #401020 100%); animation: heroDrift 24s ease-in-out infinite alternate; }
.gogcs-youth .youth-hero-video + .youth-hero-bg { display: none; }
.gogcs-youth .youth-hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(20,8,12,0.35) 0%, rgba(20,8,12,0.55) 100%); }
.gogcs-youth .youth-hero-inner { position: relative; z-index: 2; }
.gogcs-youth .youth-badge { display: inline-block; font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.18em; text-transform: uppercase; color: white; background: rgba(255,255,255,0.14); border: 1px solid rgba(255,255,255,0.2); padding: 0.45rem 1.1rem; border-radius: 2px; margin-bottom: 1.6rem; }
.gogcs-youth .youth-title { font-family: 'Playfair Display', serif; font-size: clamp(3.2rem, 11vw, 6.5rem); line-height: 0.98; color: white; font-weight: 800; margin-bottom: 1.2rem; }
.gogcs-youth .youth-title em { font-style: italic; font-weight: 500; color: #ffd7dd; }
.gogcs-youth .youth-sub { font-family: 'Cinzel', serif; font-size: clamp(0.7rem, 2.4vw, 0.85rem); letter-spacing: 0.2em; text-transform: uppercase; color: rgba(255,255,255,0.85); margin-bottom: 1.6rem; }
.gogcs-youth .youth-verse { font-size: clamp(0.95rem, 2.6vw, 1.05rem); line-height: 1.8; color: rgba(255,255,255,0.75); max-width: 620px; font-style: italic; margin-bottom: 2.2rem; }
.gogcs-youth .youth-verse span { display: block; font-style: normal; font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.15em; color: rgba(255,255,255,0.5); margin-top: 0.6rem; }
.gogcs-youth .youth-hero-actions { display: flex; flex-wrap: wrap; gap: 1rem; }

/* Youth buttons, large tap targets */
.youth-btn-primary { font-family: 'Cinzel', serif; font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 1.1rem 2.4rem; min-height: 48px; background: white; color: var(--crimson-dark); text-decoration: none; display: inline-flex; align-items: center; border-radius: 3px; transition: transform 0.2s, box-shadow 0.25s; }
.youth-btn-primary:hover { transform: translateY(-2px); box-shadow: 0 8px 25px rgba(0,0,0,0.3); color: var(--crimson-dark); }
.youth-btn-outline { font-family: 'Cinzel', serif; font-size: 0.68rem; letter-spacing: 0.18em; text-transform: uppercase; padding: 1.1rem 2.4rem; min-height: 48px; background: transparent; color: white; border: 1px solid rgba(255,255,255,0.45); text-decoration: none; display: inline-flex; align-items: center; border-radius: 3px; transition: border-color 0.25s, background 0.25s, transform 0.2s; }
.youth-btn-outline:hover { border-color: white; background: rgba(255,255,255,0.1); transform: translateY(-2px); color: white; }

/* Next Steps */
.gogcs-youth .youth-steps { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.gogcs-youth .youth-step { position: relative; display: block; padding: 2rem 1.8rem; background: white; border-radius: 4px; border-top: 3px solid var(--crimson); text-decoration: none; transition: transform 0.25s, box-shadow 0.25s; }
.gogcs-youth .youth-step:hover { transform: translateY(-4px); box-shadow: 0 12px 35px rgba(180,20,40,0.14); }
.gogcs-youth .ys-num { font-family: 'Playfair Display', serif; font-size: 2rem; font-weight: 800; color: rgba(180,20,40,0.15); position: absolute; top: 1rem; right: 1.4rem; line-height: 1; }
.gogcs-youth .youth-step h3 { font-family: 'Cinzel', serif; font-size: 0.85rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-dark); margin-bottom: 0.6rem; }
.gogcs-youth .youth-step p { font-size: 0.95rem; color: var(--text-mid); line-height: 1.75; margin-bottom: 1rem; }
.gogcs-youth .ys-go { font-family: 'Cinzel', serif; font-size: 0.58rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--crimson); }

/* Dark + crimson sections */
.gogcs-youth .youth-dark { background: #180a10; }
.gogcs-youth .youth-crimson { background: linear-gradient(160deg, var(--crimson) 0%, var(--crimson-dark) 100%); }

/* About / photo slot */
.gogcs-youth .youth-about-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; }
.gogcs-youth .youth-photo-slot img { width: 100%; height: auto; border-radius: 4px; display: block; }
.gogcs-youth .youth-photo-placeholder { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1rem; min-height: 320px; background: var(--light-blue); border: 1px dashed rgba(40,80,160,0.35); border-radius: 4px; color: var(--text-muted); }
.gogcs-youth .youth-photo-placeholder span { font-family: 'Cinzel', serif; font-size: 0.58rem; letter-spacing: 0.14em; text-transform: uppercase; }

/* Connect / socials */
.gogcs-youth .youth-connect-text { font-size: 1.05rem; color: rgba(255,255,255,0.8); line-height: 1.8; max-width: 560px; margin-bottom: 2.5rem; }
.gogcs-youth .youth-socials { display: grid; grid-template-columns: 1fr; gap: 1rem; max-width: 720px; }
.gogcs-youth .youth-social-card { display: flex; align-items: center; gap: 1.1rem; padding: 1.3rem 1.6rem; min-height: 48px; background: rgba(255,255,255,0.1); border: 1px solid rgba(255,255,255,0.18); border-radius: 4px; color: white; text-decoration: none; font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.15em; text-transform: uppercase; transition: background 0.25s, transform 0.25s; }
.gogcs-youth .youth-social-card:hover { background: rgba(255,255,255,0.18); transform: translateX(6px); color: white; }
.gogcs-youth .youth-social-card svg { width: 22px; height: 22px; flex-shrink: 0; }
.gogcs-youth .youth-handle { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.25em; color: rgba(255,255,255,0.55); text-transform: uppercase; margin-top: 2rem; }

/* Scale up from mobile */
@media (min-width: 700px) {
  .gogcs-youth .youth-steps { grid-template-columns: 1fr 1fr; }
  .gogcs-youth .youth-socials { grid-template-columns: repeat(3, 1fr); }
  .gogcs-youth .youth-social-card { justify-content: center; }
}
@media (min-width: 1000px) {
  .gogcs-youth .youth-steps { grid-template-columns: repeat(4, 1fr); }
  .gogcs-youth .youth-about-grid { grid-template-columns: 1.1fr 0.9fr; gap: 4rem; }
}

/* Reduced-motion: stop hero video */
@media (prefers-reduced-motion: reduce) {
  .gogcs-youth .youth-hero-video { display: none; }
  .gogcs-youth .youth-hero-video + .youth-hero-bg { display: block; }
}
body.a11y-pause-motion .youth-hero-video { display: none; }
.gogcs-youth .youth-crimson .section-title em { color: #ffd7dd; }

/* Anchor targets clear the fixed nav */
.min-card[id] { scroll-margin-top: 90px; }

/* ================================================
   STANDARD FOOTER, 4-column layout + bottom bar
   ================================================ */
.gogcs-footer { padding: 4rem 2rem 0; }
.footer-grid { max-width: 1180px; margin: 0 auto; display: grid; grid-template-columns: 1.4fr 0.8fr 1.1fr 1fr; gap: 3rem; padding-bottom: 3rem; }
.footer-col h4 { font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.18em; color: #7ea8e8; text-transform: uppercase; margin-bottom: 1.2rem; }
.footer-col-brand .footer-brand { margin-bottom: 1.2rem; }
.footer-blurb { font-size: 0.88rem; line-height: 1.8; color: rgba(255,255,255,0.5); max-width: 320px; margin-bottom: 1.4rem; }
.footer-social { display: flex; gap: 0.7rem; }
.footer-social a { display: flex; align-items: center; justify-content: center; width: 34px; height: 34px; border: 1px solid rgba(255,255,255,0.15); border-radius: 50%; color: rgba(255,255,255,0.55); transition: color 0.25s, border-color 0.25s, transform 0.25s; }
.footer-social a:hover { color: white; border-color: var(--crimson); transform: translateY(-2px); }
.footer-social svg { width: 15px; height: 15px; }
.footer-nav { list-style: none; margin: 0; padding: 0; }
.footer-nav li { margin-bottom: 0.55rem; }
.footer-nav a { font-size: 0.88rem; color: rgba(255,255,255,0.55); text-decoration: none; transition: color 0.2s, padding-left 0.2s; }
.footer-nav a:hover { color: white; padding-left: 4px; }
.footer-svc { display: flex; justify-content: space-between; gap: 1rem; padding: 0.45rem 0; border-bottom: 1px solid rgba(255,255,255,0.07); font-size: 0.82rem; }
.footer-svc span:first-child { color: rgba(255,255,255,0.55); }
.footer-svc span:last-child { color: #7ea8e8; white-space: nowrap; }
.footer-address { font-style: normal; margin-bottom: 0.9rem; }
.footer-address a { font-family: 'Playfair Display', serif; font-size: 1.05rem; line-height: 1.5; color: rgba(255,255,255,0.85); text-decoration: none; transition: color 0.2s; }
.footer-address a:hover { color: white; }
.footer-contact { margin-bottom: 0.5rem; }
.footer-contact a { font-size: 0.88rem; color: rgba(255,255,255,0.55); text-decoration: none; transition: color 0.2s; }
.footer-contact a:hover { color: white; }
.footer-visit-btn { display: inline-block; margin-top: 1rem; font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.15em; text-transform: uppercase; color: white; text-decoration: none; background: linear-gradient(135deg, var(--crimson) 0%, var(--crimson-dark) 100%); padding: 0.7rem 1.5rem; border-radius: 2px; transition: box-shadow 0.25s, transform 0.2s; }
.footer-visit-btn:hover { color: white; box-shadow: 0 5px 18px rgba(180,20,40,0.4); transform: translateY(-2px); }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.08); padding: 1.6rem 0; }
.footer-bottom .footer-copy { max-width: 1180px; margin: 0 auto; }

@media (max-width: 1000px) { .footer-grid { grid-template-columns: 1fr 1fr; gap: 2.5rem; } }
@media (max-width: 600px) { .footer-grid { grid-template-columns: 1fr; gap: 2.2rem; } }
.footer-col-brand .footer-text strong { display: block; margin-bottom: 0.2rem; }

/* ================================================
   ASYMMETRY PASS, featured cards + member quote
   ================================================ */

/* Featured ministry card, deep blue, spans 2 columns */
.min-card.min-featured { grid-column: span 2; background: linear-gradient(140deg, var(--royal-deep) 0%, var(--royal-dark) 75%); border: none; border-left: 3px solid var(--crimson); padding: 2.4rem; display: flex; flex-direction: column; justify-content: center; }
.min-card.min-featured h3 { color: white; font-size: 1rem; }
.min-card.min-featured p { color: rgba(255,255,255,0.7); }
.min-card.min-featured:hover { transform: translateY(-3px); box-shadow: 0 12px 35px rgba(16,34,85,0.3); }
.min-featured-link { font-family: 'Cinzel', serif; font-size: 0.66rem; letter-spacing: 0.15em; text-transform: uppercase; color: #7ea8e8; text-decoration: none; margin-top: 1.1rem; display: inline-block; transition: color 0.25s; }
.min-featured-link:hover { color: white; }

/* Featured service card, spans 2 in the mosaic */
.service-card.svc-featured { grid-column: span 2; border-top: 3px solid var(--crimson); background: #16306e; }

/* Member voice, offset pull-quote */
.member-voice { max-width: 780px; margin-left: clamp(0px, 12vw, 160px); padding-left: 2.2rem; border-left: 3px solid var(--crimson); }
.member-voice blockquote { border: 0; padding: 0; background: none; font-family: 'Playfair Display', serif; font-style: italic; font-size: clamp(1.35rem, 2.6vw, 1.9rem); line-height: 1.5; color: var(--text-dark); margin: 0 0 1.4rem; }
.member-voice cite { font-family: 'Cinzel', serif; font-style: normal; font-size: 0.68rem; letter-spacing: 0.15em; text-transform: uppercase; color: var(--crimson); }
.member-voice cite span { display: block; color: var(--text-muted); font-size: 0.6rem; margin-top: 0.35rem; letter-spacing: 0.1em; }

@media (max-width: 900px) {
  .min-card.min-featured, .service-card.svc-featured { grid-column: span 1; }
  .member-voice { margin-left: 0; }
}

/* Sermons page header, worship leader photo behind blue overlay */
.sermons-hero { background:
  linear-gradient(150deg, rgba(16,34,85,0.93) 0%, rgba(26,56,112,0.84) 45%, rgba(13,24,53,0.95) 100%),
  url('../../../../uploads/fb-temp/fb-temp-07.jpg') center 25%/cover no-repeat, var(--royal-deep); }

/* Designer credit */
.footer-credit { color: white; font-weight: 600; text-decoration: none; border-bottom: 2px solid var(--crimson); padding-bottom: 1px; transition: color 0.2s, border-color 0.2s; }
.footer-credit:hover { color: #7ea8e8; border-color: #7ea8e8; }

/* Video layer inside hero slide 1, photo beneath acts as fallback/poster */
.hero-photo .hero-layer-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; }
@media (prefers-reduced-motion: reduce) { .hero-layer-video { display: none !important; } }
body.a11y-pause-motion .hero-layer-video { display: none !important; }

/* Connect panel mobile refinements: lock page scroll while open, larger tap target */
body.sm-open { overflow: hidden; position: fixed; width: 100%; }
@media (max-width: 900px) {
  .sm-panel-toggle { padding: 1rem 0.8rem; }
  .sm-panel-toggle span { font-size: 0.55rem; }
}

/* ================================================
   NAV INTERMEDIATE BREAKPOINTS, 9 items + CTA
   don't fit between 900 and ~1350px
   ================================================ */

/* Tighten nav 1251–1450px */
@media (max-width: 1450px) {
  .gogcs-nav { padding: 0 1.5rem; }
  .gogcs-nav .nav-links { gap: 0.95rem; margin-left: 1.2rem; }
  .gogcs-nav .nav-links a { font-size: 0.66rem; letter-spacing: 0.1em; }
  .nav-name strong { font-size: 0.78rem; }
  .nav-name span { display: none; }
  .nav-visit-cta { font-size: 0.62rem; padding: 0.5rem 1rem; margin-left: 1rem; }
}

/* Hamburger below 1250px (was 900, nav overflowed in between) */
@media (max-width: 1250px) {
  .gogcs-nav .nav-links { display: none; }
  .nav-toggle { display: block; margin-left: auto; }
  .nav-visit-cta { display: none; }
  .gogcs-nav .nav-links.open { display: flex; flex-direction: column; position: absolute; top: 72px; left: 0; right: 0; background: rgba(16,34,85,0.98); padding: 1.5rem; gap: 0; border-bottom: 3px solid var(--crimson); z-index: 100; margin-left: 0; }
  .gogcs-nav .nav-links.open li { padding: 0.7rem 0; }
  .gogcs-nav .nav-links.open a { font-size: 0.78rem; }
  .gogcs-nav .nav-links.open .dropdown { position: static; display: block; border-top: none; padding-left: 1rem; }
  .gogcs-nav.nav-condensed .nav-links.open { top: 56px; }
  .nav-name span { display: none; }
}

/* On smaller windows the mid-left a11y toggle overlaps hero text, pin to bottom-left corner instead */
@media (max-width: 1250px) {
  .a11y-toggle { top: auto; bottom: 1.2rem; transform: none; border-radius: 0 4px 4px 0; }
}

/* Mobile menu polish: left-aligned full-width rows (base nav's align-items:center leaked in) */
@media (max-width: 1250px) {
  .gogcs-nav .nav-links.open { align-items: stretch; max-height: calc(100vh - 72px); overflow-y: auto; }
  .gogcs-nav .nav-links.open li { border-bottom: 1px solid rgba(255,255,255,0.08); }
  .gogcs-nav .nav-links.open li:last-child { border-bottom: none; }
  .gogcs-nav .nav-links.open .dropdown { background: transparent; min-width: 0; padding: 0.2rem 0 0.6rem 1.2rem; }
  .gogcs-nav .nav-links.open .dropdown a { font-size: 0.7rem; color: rgba(255,255,255,0.6); }
}

/* ================================================
   MINISTRY DETAIL PAGES
   ================================================ */
.min-detail-hero .min-detail-mission { font-size: 1.05rem; color: rgba(255,255,255,0.8); line-height: 1.85; max-width: 640px; margin: 1.5rem 0 2rem; }
.min-detail-need-grid { display: grid; grid-template-columns: 1fr; gap: 2rem; }
.min-detail-need-grid .prose + .prose { margin-top: 1.2rem; }
.min-detail-split { display: grid; grid-template-columns: 1fr; gap: 3rem; }
.min-audience { display: grid; grid-template-columns: 1fr; gap: 1rem; margin-top: 1.8rem; }
.min-audience-card { padding: 1.5rem; background: var(--off-white); border-left: 3px solid var(--royal); border-radius: 2px; }
.min-audience-card h4 { font-family: 'Cinzel', serif; font-size: 0.76rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.5rem; }
.min-audience-card p { font-size: 0.9rem; color: var(--text-mid); line-height: 1.7; }
.min-schedule { margin-top: 1.8rem; }
.min-schedule .svc-item { color: var(--text-dark); background: transparent; border: none; border-bottom: 1px solid var(--light-blue); border-radius: 0; padding-left: 0; padding-right: 0; }
.min-schedule .svc-item:hover { background: var(--off-white); border-color: var(--light-blue); box-shadow: none; padding-left: 0.75rem; }
.min-schedule .svc-item span:first-child { color: var(--text-dark); }
.min-schedule .svc-item span:last-child { color: var(--crimson); font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.08em; }
.min-detail-cta { max-width: 720px; }
.min-detail-cta-text { font-size: 1rem; color: rgba(255,255,255,0.78); line-height: 1.85; margin: 1.4rem 0 2rem; }
.min-detail-cta-actions { display: flex; flex-wrap: wrap; gap: 1rem; }

/* ================================================
   COMMUNITY IMPACT PAGE
   ================================================ */
.impact-intro { font-size: 1.05rem; color: rgba(255,255,255,0.8); line-height: 1.85; max-width: 680px; margin: 1.5rem 0 2rem; }
.impact-program { display: grid; grid-template-columns: 1fr; gap: 1.8rem; padding: 2.2rem; background: white; box-shadow: 0 2px 12px rgba(40,80,160,0.06); margin-bottom: 1.8rem; border-left: 3px solid var(--royal); }
.impact-program:nth-child(even) { border-left-color: var(--crimson); }
.impact-program h3 { font-family: 'Cinzel', serif; font-size: 0.9rem; letter-spacing: 0.1em; color: var(--royal); text-transform: uppercase; margin-bottom: 0.9rem; }
.impact-list { list-style: none; margin-top: 1.2rem; }
.impact-list li { position: relative; padding-left: 1.4rem; font-size: 0.9rem; color: var(--text-mid); line-height: 1.8; }
.impact-list li::before { content: ''; position: absolute; left: 0; top: 0.7em; width: 6px; height: 6px; background: var(--crimson); border-radius: 50%; }
.impact-program-meta { padding-top: 0.4rem; border-top: 1px solid var(--light-blue); }
.impact-tag { display: block; font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: var(--text-muted); margin-top: 1rem; }
.impact-program-meta p { font-size: 0.9rem; color: var(--text-dark); margin-top: 0.25rem; }
.impact-program-meta a { color: var(--crimson); text-decoration: none; }
.impact-program-meta a:hover { text-decoration: underline; }
.partner-row { display: grid; grid-template-columns: repeat(2, 1fr); gap: 1.2rem; margin-top: 2.5rem; }
.partner-slot { display: flex; align-items: center; justify-content: center; min-height: 90px; padding: 1rem; background: var(--off-white); border: 1px solid var(--light-blue); border-radius: 2px; font-family: 'Cinzel', serif; font-size: 0.78rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--royal); text-align: center; }
.partner-slot-empty { color: var(--text-muted); border-style: dashed; }
.testimony-placeholder { max-width: 680px; padding: 2rem; background: white; border-left: 3px solid var(--text-muted); }
.testimony-note { font-size: 0.95rem; color: var(--text-muted); line-height: 1.85; font-style: italic; margin-top: 0.8rem; }

/* ================================================
   PLAN YOUR VISIT, steps, map, FAQ
   ================================================ */
.visit-welcome { font-size: 1rem; color: rgba(255,255,255,0.82); line-height: 1.85; margin: 1.3rem 0 2rem; max-width: 520px; }
.visit-info-block a { color: rgba(255,255,255,0.9); }
.visit-steps { display: grid; grid-template-columns: 1fr; gap: 1.2rem; margin-top: 2.5rem; }
.visit-step { position: relative; padding: 2rem 1.8rem; background: white; border-radius: 4px; border-top: 3px solid var(--royal); transition: transform 0.25s, box-shadow 0.25s; }
.visit-step:hover { transform: translateY(-4px); box-shadow: 0 12px 35px rgba(40,80,160,0.12); }
.visit-step:nth-child(even) { border-top-color: var(--crimson); }
.vs-num { display: block; font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.16em; color: var(--text-muted); margin-bottom: 0.8rem; }
.visit-step h3 { font-family: 'Cinzel', serif; font-size: 0.85rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--text-dark); margin-bottom: 0.6rem; }
.visit-step p { font-size: 0.93rem; color: var(--text-mid); line-height: 1.75; }
.vs-go { display: inline-block; margin-top: 1rem; font-family: 'Cinzel', serif; font-size: 0.66rem; letter-spacing: 0.12em; text-transform: uppercase; color: var(--crimson); text-decoration: none; }
.vs-go:hover { text-decoration: underline; }
.visit-map-wrap { display: grid; grid-template-columns: 1fr; gap: 1.5rem; margin-top: 2.5rem; }
.visit-map { width: 100%; height: 340px; border: 0; border-radius: 2px; display: block; filter: saturate(0.85); }
.visit-map-aside { padding: 1.8rem; background: var(--off-white); border-left: 3px solid var(--crimson); }
.visit-map-aside h4 { font-family: 'Cinzel', serif; font-size: 0.8rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--royal); margin-bottom: 0.7rem; }
.visit-map-aside p { font-size: 0.95rem; color: var(--text-mid); line-height: 1.75; margin-bottom: 1.3rem; }

/* FAQ, native <details>, no JS required */
.faq-list { margin-top: 2.5rem; border-top: 1px solid var(--light-blue); }
.faq-item { border-bottom: 1px solid var(--light-blue); background: white; }
.faq-item summary { list-style: none; cursor: pointer; padding: 1.3rem 3rem 1.3rem 1.4rem; position: relative; font-family: 'Cinzel', serif; font-size: 0.8rem; letter-spacing: 0.08em; color: var(--royal); transition: color 0.2s, background 0.2s; }
.faq-item summary::-webkit-details-marker { display: none; }
.faq-item summary:hover { color: var(--crimson); background: var(--off-white); }
.faq-item summary:focus-visible { outline: 2px solid var(--crimson); outline-offset: -2px; }
.faq-item summary::after { content: '+'; position: absolute; right: 1.4rem; top: 50%; transform: translateY(-50%); font-size: 1.3rem; line-height: 1; color: var(--crimson); font-family: 'Source Sans 3', sans-serif; }
.faq-item[open] summary::after { content: '\2212'; }
.faq-item[open] summary { color: var(--crimson); }
.faq-answer { padding: 0 1.4rem 1.6rem; }
.faq-answer p { font-size: 0.94rem; color: var(--text-mid); line-height: 1.85; }
.faq-answer p + p { margin-top: 0.9rem; }
.faq-answer a { color: var(--crimson); text-decoration: none; }
.faq-answer a:hover { text-decoration: underline; }

/* ================================================
   CONTACT, privacy note + next steps
   ================================================ */
.form-privacy-note { font-size: 0.85rem; color: rgba(255,255,255,0.7); line-height: 1.7; margin-bottom: 1.2rem; padding: 0.9rem 1rem; background: rgba(255,255,255,0.06); border-left: 2px solid var(--crimson); }
.form-privacy-note strong { color: white; font-weight: 600; }
.form-next-steps { margin-top: 1.6rem; padding-top: 1.4rem; border-top: 1px solid rgba(255,255,255,0.15); }
.form-next-steps h4 { font-family: 'Cinzel', serif; font-size: 0.7rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.75); margin-bottom: 0.6rem; }
.form-next-steps p { font-size: 0.88rem; color: rgba(255,255,255,0.6); line-height: 1.8; }

/* ---- RESPONSIVE ---- */
@media (min-width: 700px) {
  .min-audience { grid-template-columns: 1fr 1fr; }
  .visit-steps { grid-template-columns: 1fr 1fr; }
  .partner-row { grid-template-columns: repeat(4, 1fr); }
}
@media (min-width: 900px) {
  .min-detail-need-grid { grid-template-columns: 320px 1fr; gap: 3.5rem; }
  .min-detail-split { grid-template-columns: 1fr 1fr; gap: 4rem; }
  .impact-program { grid-template-columns: 1fr 260px; gap: 2.5rem; }
  .impact-program-meta { padding-top: 0; padding-left: 2rem; border-top: 0; border-left: 1px solid var(--light-blue); }
  .impact-tag:first-child { margin-top: 0; }
  .visit-map-wrap { grid-template-columns: 1fr 320px; }
  .visit-map { height: 100%; min-height: 360px; }
}

/* ================================================
   STATEMENT LINE, word-by-word reveal
   Reusable: add class="statement word-reveal" to any <p>.
   Words are wrapped by gogcs.js at runtime; without JS the
   sentence simply renders as a static statement line.
   ================================================ */
.statement {
  font-family: 'Playfair Display', serif;
  font-weight: 400;
  font-size: clamp(1.15rem, 1.8vw, 1.42rem);
  line-height: 1.62;
  color: var(--text-dark);
  max-width: 660px;
  margin: 1.6rem 0 2.6rem;
}
.statement strong {
  font-weight: 600;
  color: var(--crimson);
  white-space: nowrap;
}
.statement.light { color: rgba(255,255,255,0.88); }
.statement.light strong { color: #ff8b9c; }

/* each word is wrapped in .wr-word by JS, then staggered in */
.word-reveal.is-split .wr-word {
  display: inline-block;
  opacity: 0;
  transform: translateY(0.42em);
  will-change: opacity, transform;
}
.word-reveal.is-split.is-revealed .wr-word {
  animation: gogcsWordIn 0.52s cubic-bezier(0.22, 0.61, 0.36, 1) both;
  animation-delay: calc(var(--wr-i) * 24ms);
}
@keyframes gogcsWordIn {
  from { opacity: 0; transform: translateY(0.42em); }
  to   { opacity: 1; transform: none; }
}
/* the emphasised phrases settle a touch heavier */
.word-reveal.is-split.is-revealed strong .wr-word {
  animation-duration: 0.66s;
}
@media (prefers-reduced-motion: reduce) {
  .word-reveal.is-split .wr-word {
    opacity: 1 !important;
    transform: none !important;
    animation: none !important;
  }
}

/* ================================================
   TYPEWRITER STATEMENT
   Reusable: class="statement type-on", optional data-cps="70".
   Characters are wrapped by gogcs.js and hidden with visibility
   (not display), so the paragraph reserves its full height up front
   and nothing on the page shifts while it types.
   ================================================ */
.type-on.is-typing-ready .tw-c {
  visibility: hidden;
}
.type-on.is-typing-ready .tw-c.is-typed {
  visibility: visible;
}
/* caret drawn on the character currently being typed; the negative
   margin cancels the border's width so no text moves sideways */
.type-on .tw-c.tw-head {
  border-right: 2px solid var(--crimson);
  margin-right: -2px;
  animation: gogcsCaret 0.85s step-end infinite;
}
.type-on.is-typed-out .tw-c.tw-head {
  animation: none;
  border-right-color: transparent;
}
@keyframes gogcsCaret {
  0%, 100% { border-right-color: var(--crimson); }
  50%      { border-right-color: transparent; }
}
.statement.light .tw-c.tw-head { border-right-color: #ff8b9c; }

@media (prefers-reduced-motion: reduce) {
  .type-on.is-typing-ready .tw-c { visibility: visible !important; }
  .type-on .tw-c.tw-head { border-right-color: transparent !important; animation: none !important; }
}

/* ================================================
   HYBRID STATEMENT: typed claim + fading explanation
   ================================================ */
.statement-lead {
  font-size: clamp(1.4rem, 2.4vw, 1.85rem);
  font-weight: 600;
  line-height: 1.34;
  color: var(--crimson);
  max-width: 100%;
  margin: 1.8rem 0 1.1rem;
  text-wrap: balance;
}
.statement-lead.light { color: #ff8b9c; }

.statement-follow {
  font-size: clamp(1.02rem, 1.5vw, 1.16rem);
  color: var(--text-mid);
  max-width: 620px;
  margin: 0 0 2.6rem;
}
.statement-follow.light { color: rgba(255,255,255,0.72); }

/* Hidden only once JS arms it, so a failed script leaves the text readable */
.statement-follow.is-armed {
  opacity: 0;
  transform: translateY(10px);
}
.statement-follow.is-armed.is-shown {
  opacity: 1;
  transform: none;
  transition: opacity 0.7s ease, transform 0.7s cubic-bezier(0.22, 0.61, 0.36, 1);
}
@media (prefers-reduced-motion: reduce) {
  .statement-follow.is-armed { opacity: 1 !important; transform: none !important; transition: none !important; }
}

/* ================================================
   CHILDREN'S CHURCH PAGE, kids-club structure in brand colours
   Scoped to .gogcs-kids; one display font (Fredoka) for this page only
   ================================================ */
.gogcs-kids {
  --k-sky: #dce8f8; --k-sky-deep: #2850a0; --k-sky-mid: #7ea8e8;
  --k-rose: #fbe3e6; --k-rose-deep: #b41428;
  --k-sun: #fff1c2; --k-sun-deep: #e8b31a; --k-sun-dark: #8a6300;
  --k-navy: #102255; --k-ink: #0d1f47;
  font-weight: 400;
}
.gogcs-kids .k-display { font-family: 'Fredoka', 'Source Sans 3', sans-serif; font-weight: 600; letter-spacing: -0.01em; }
.gogcs-kids .kids-section { padding: 5rem 1.25rem; background: white; }
.gogcs-kids .kids-container { max-width: 1180px; margin: 0 auto; }
.gogcs-kids .k-h2 { font-size: clamp(2.2rem, 5.5vw, 3.6rem); line-height: 1.05; color: var(--k-ink); text-align: center; margin-bottom: 1.6rem; font-weight: 700; }
.gogcs-kids .k-h2.k-left { text-align: left; }
.gogcs-kids .k-h2-sub { display: block; font-weight: 500; color: var(--k-sky-deep); }
.gogcs-kids .kids-lead { max-width: 720px; margin: 0 auto 2.5rem; text-align: center; font-size: 1.05rem; line-height: 1.8; color: #3a4e70; }

/* Sub nav, sticks under the fixed main nav */
.gogcs-kids .kids-subnav { position: sticky; top: 56px; margin-top: 72px; z-index: 900; background: white; border-bottom: 1px solid var(--k-sky); }
.gogcs-kids .kids-subnav-inner { max-width: 1180px; margin: 0 auto; display: flex; align-items: center; gap: 1.2rem; padding: 0 1.25rem; height: 48px; overflow-x: auto; -webkit-overflow-scrolling: touch; scrollbar-width: none; }
.gogcs-kids .kids-subnav-inner::-webkit-scrollbar { display: none; }
.gogcs-kids .kids-subnav-brand { font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 0.95rem; color: var(--k-ink); white-space: nowrap; padding-right: 1.2rem; border-right: 1px solid var(--k-sky); }
.gogcs-kids .kids-subnav ul { display: flex; gap: 1.4rem; list-style: none; margin: 0; padding: 0; }
.gogcs-kids .kids-subnav a { font-size: 0.9rem; color: #4a6090; text-decoration: none; white-space: nowrap; padding: 0.4rem 0; border-bottom: 2px solid transparent; transition: color 0.2s, border-color 0.2s; }
.gogcs-kids .kids-subnav a:hover, .gogcs-kids .kids-subnav a.is-active { color: var(--k-rose-deep); border-color: var(--k-rose-deep); }
.gogcs-kids [id] { scroll-margin-top: 112px; }

/* Hero */
.gogcs-kids .kids-hero { position: relative; min-height: 78vh; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: 4rem 1.25rem 7rem; background: var(--k-navy); }
.gogcs-kids .kids-hero-photo, .gogcs-kids .kids-hero-bg { position: absolute; inset: 0; z-index: 0; }
.gogcs-kids .kids-hero-photo img { width: 100%; height: 100%; object-fit: cover; }
.gogcs-kids .kids-hero-bg { background:
  radial-gradient(circle at 18% 22%, rgba(126,168,232,0.45) 0, transparent 26%),
  radial-gradient(circle at 82% 70%, rgba(180,20,40,0.55) 0, transparent 30%),
  radial-gradient(circle at 70% 15%, rgba(232,179,26,0.35) 0, transparent 22%),
  linear-gradient(160deg, #1a3870 0%, #102255 55%, #0b1740 100%); }
.gogcs-kids .kids-hero-bg::after { content: ''; position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,0.14) 1.5px, transparent 1.5px); background-size: 26px 26px; opacity: 0.5; }
.gogcs-kids .kids-hero-overlay { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(16,34,85,0.15) 0%, rgba(16,34,85,0.55) 100%); }
.gogcs-kids .kids-hero-inner { position: relative; z-index: 2; width: 100%; max-width: 1180px; text-align: center; }
.gogcs-kids .kids-badge { display: inline-flex; align-items: center; gap: 0.7rem; background: var(--k-rose-deep); color: white; padding: 0.8rem 1.3rem 0.8rem 0.9rem; border-radius: 16px; transform: rotate(-4deg); box-shadow: 0 0 0 4px white, 0 12px 30px rgba(0,0,0,0.3); margin-bottom: 2.2rem; }
.gogcs-kids .kids-badge img { width: 44px; height: 44px; border-radius: 50%; background: white; }
.gogcs-kids .kids-badge span { font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 1.15rem; line-height: 1; text-align: left; }
.gogcs-kids .kids-headline { display: flex; flex-direction: column; align-items: center; gap: 0.2rem; margin: 0 0 2.4rem; line-height: 1; }
.gogcs-kids .k-line { font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: clamp(2.6rem, 9vw, 6.4rem); letter-spacing: -0.01em; paint-order: stroke fill; -webkit-text-stroke: 0.14em white; filter: drop-shadow(0 8px 0 rgba(13,31,71,0.35)); }
.gogcs-kids .k-sun { color: var(--k-sun-deep); transform: rotate(-2deg); }
.gogcs-kids .k-sky { color: var(--k-sky-mid); transform: rotate(1.5deg); }
.gogcs-kids .k-of { font-size: clamp(1.6rem, 4.5vw, 3rem); color: white; -webkit-text-stroke: 0.16em var(--k-navy); margin: 0.1em 0; }
.gogcs-kids .k-of em { font-style: normal; display: inline-block; padding: 0.2em 0.6em; border: 3px solid white; border-radius: 50%; transform: rotate(-6deg); }
.gogcs-kids .kids-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; margin-bottom: 1.4rem; }
.gogcs-kids .k-pill { display: inline-flex; flex-direction: column; align-items: center; justify-content: center; min-width: 240px; padding: 0.75rem 1.8rem; border-radius: 999px; text-decoration: none; line-height: 1.15; transition: transform 0.2s, box-shadow 0.2s; box-shadow: 0 0 0 3px white, 0 10px 24px rgba(0,0,0,0.25); }
.gogcs-kids .k-pill:hover { transform: translateY(-3px); }
.gogcs-kids .k-pill strong { font-family: 'Fredoka', sans-serif; font-weight: 700; font-size: 1.15rem; }
.gogcs-kids .k-pill span { font-size: 0.82rem; opacity: 0.85; }
.gogcs-kids .k-pill-sun { background: var(--k-sun-deep); color: var(--k-ink); }
.gogcs-kids .k-pill-navy { background: var(--k-navy); color: white; }
.gogcs-kids .kids-hero-note { color: rgba(255,255,255,0.85); font-size: 0.95rem; }
.gogcs-kids .kids-hero-note a { color: white; font-weight: 600; text-decoration: underline; text-underline-offset: 3px; }
.gogcs-kids .kids-wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 70px; z-index: 2; }

/* Tabs */
.gogcs-kids .kids-tabs { display: flex; flex-wrap: wrap; justify-content: center; gap: 0.6rem; margin-bottom: 0.6rem; }
.gogcs-kids .kids-tab { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 0.95rem; padding: 0.6rem 1.3rem; border-radius: 999px; border: 0; background: var(--off-white); color: var(--k-ink); cursor: pointer; transition: background 0.2s, color 0.2s, transform 0.2s; }
.gogcs-kids .kids-tab:hover { background: var(--k-sky); }
.gogcs-kids .kids-tab.is-active { background: var(--k-rose-deep); color: white; }
.gogcs-kids .kids-tabs-note { text-align: center; font-size: 0.78rem; color: #7a90b8; margin-bottom: 2.4rem; }

/* What-to-expect cards */
.gogcs-kids .kids-cards { display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
.gogcs-kids .kids-card { position: relative; padding: 2rem 1.8rem 2.2rem; border-radius: 22px; border: 4px solid; min-height: 100%; transition: transform 0.25s; }
.gogcs-kids .kids-card:hover { transform: translateY(-4px); }
.gogcs-kids .tone-sky { background: var(--k-sky); border-color: var(--k-sky-deep); }
.gogcs-kids .tone-rose { background: var(--k-rose); border-color: var(--k-rose-deep); }
.gogcs-kids .tone-sun { background: var(--k-sun); border-color: var(--k-sun-deep); }
.gogcs-kids .tone-navy { background: var(--k-navy); border-color: var(--k-navy); color: white; }
.gogcs-kids .kids-card-top { display: flex; align-items: center; gap: 1rem; margin-bottom: 2.2rem; }
.gogcs-kids .k-sticker { display: inline-flex; align-items: center; justify-content: center; width: 64px; height: 64px; border-radius: 18px; background: white; color: var(--k-rose-deep); box-shadow: 0 0 0 3px var(--k-ink), 0 6px 0 rgba(13,31,71,0.25); transform: rotate(-6deg); flex-shrink: 0; }
.gogcs-kids .k-sticker svg { width: 32px; height: 32px; }
.gogcs-kids .k-sticker-lg { width: 84px; height: 84px; border-radius: 24px; }
.gogcs-kids .k-sticker-lg svg { width: 42px; height: 42px; }
.gogcs-kids .tone-sky .k-sticker { color: var(--k-sky-deep); }
.gogcs-kids .tone-sun .k-sticker { color: var(--k-sun-dark); }
.gogcs-kids .k-chip { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 0.95rem; color: white; padding: 0.45rem 1.1rem; border-radius: 999px; }
.gogcs-kids .tone-sky .k-chip { background: var(--k-sky-deep); }
.gogcs-kids .tone-rose .k-chip { background: var(--k-rose-deep); }
.gogcs-kids .tone-sun .k-chip { background: var(--k-sun-dark); }
.gogcs-kids .kids-card h3 { font-size: 1.7rem; line-height: 1.1; color: var(--k-ink); margin-bottom: 0.8rem; font-weight: 700; }
.gogcs-kids .kids-card-text { font-size: 1rem; line-height: 1.7; color: #2c3e66; min-height: 6.8em; }

/* Program strip */
.gogcs-kids .kids-sundays { background: var(--off-white); }
.gogcs-kids .kids-strip-wrap { position: relative; }
.gogcs-kids .kids-strip { display: flex; gap: 1.4rem; overflow-x: auto; scroll-snap-type: x mandatory; padding: 0.5rem calc((100vw - 1180px) / 2 + 1.25rem) 1.5rem; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.gogcs-kids .kids-strip::-webkit-scrollbar { display: none; }
.gogcs-kids .kids-prog { flex: 0 0 min(320px, 82vw); scroll-snap-align: start; border-radius: 22px; overflow: hidden; background: white; border: 3px solid var(--k-ink); box-shadow: 0 8px 0 rgba(13,31,71,0.18); display: flex; flex-direction: column; }
.gogcs-kids .kids-prog-art { height: 180px; display: flex; align-items: center; justify-content: center; }
.gogcs-kids .kids-prog-art svg { width: 84px; height: 84px; }
.gogcs-kids .kids-prog.tone-sky .kids-prog-art { background: var(--k-sky); color: var(--k-sky-deep); }
.gogcs-kids .kids-prog.tone-rose .kids-prog-art { background: var(--k-rose); color: var(--k-rose-deep); }
.gogcs-kids .kids-prog.tone-sun .kids-prog-art { background: var(--k-sun); color: var(--k-sun-dark); }
.gogcs-kids .kids-prog.tone-navy { background: white; color: var(--k-ink); }
.gogcs-kids .kids-prog.tone-navy .kids-prog-art { background: var(--k-navy); color: var(--k-sky-mid); }
.gogcs-kids .kids-prog-body { padding: 1.3rem 1.4rem 1.5rem; }
.gogcs-kids .kids-prog h3 { font-size: 1.35rem; color: var(--k-ink); margin-bottom: 0.5rem; font-weight: 700; }
.gogcs-kids .kids-prog p { font-size: 0.95rem; line-height: 1.65; color: #3a4e70; margin-bottom: 0.9rem; }
.gogcs-kids .kids-prog-meta { font-size: 0.8rem; font-weight: 600; color: var(--k-rose-deep); }
.gogcs-kids .kids-scroll-hint { display: flex; align-items: center; gap: 0.6rem; max-width: 1180px; margin: 0.4rem auto 0; padding: 0 1.25rem; }
.gogcs-kids .kids-scroll-hint span { display: inline-flex; align-items: center; justify-content: center; width: 58px; height: 58px; border-radius: 50%; background: var(--k-rose-deep); color: white; font-size: 0.85rem; border: 3px dashed rgba(255,255,255,0.7); box-shadow: 0 0 0 3px var(--k-rose-deep); cursor: pointer; user-select: none; transition: transform 0.12s linear; will-change: transform; }
.gogcs-kids .kids-scroll-hint { position: relative; }
.gogcs-kids .kids-scroll-hint.is-tracking span { position: absolute; left: 1.25rem; top: 0; }
.gogcs-kids .kids-scroll-hint.is-tracking { min-height: 58px; }
.gogcs-kids .kids-scroll-hint.is-tracking i { margin-left: 62px; }
.gogcs-kids .kids-scroll-hint i { flex: 1; height: 4px; background-image: radial-gradient(circle, #b7c6e6 2px, transparent 2px); background-size: 12px 4px; background-repeat: repeat-x; }
.gogcs-kids .kids-socials { display: flex; justify-content: center; gap: 0.8rem; margin-top: 3rem; }
.gogcs-kids .kids-socials a { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 50%; background: var(--k-sky); color: var(--k-ink); transition: background 0.2s, color 0.2s, transform 0.2s; }
.gogcs-kids .kids-socials a:hover { background: var(--k-rose-deep); color: white; transform: translateY(-3px); }
.gogcs-kids .kids-socials svg { width: 18px; height: 18px; }

/* Join: wave + burst + tiles */
.gogcs-kids .kids-join { position: relative; background: var(--k-sky-deep); padding: 5rem 1.25rem 5.5rem; overflow: hidden; }
.gogcs-kids .kids-wave-top { position: absolute; top: -1px; left: 0; width: 100%; height: 90px; }
.gogcs-kids .kids-burst { position: relative; z-index: 1; width: 168px; height: 168px; margin: 0 auto 3rem; display: flex; align-items: center; justify-content: center; text-align: center; color: white; background: var(--k-rose-deep); clip-path: polygon(50% 0%, 59% 9%, 70% 4%, 75% 15%, 87% 14%, 87% 26%, 98% 30%, 93% 41%, 100% 50%, 93% 59%, 98% 70%, 87% 74%, 87% 86%, 75% 85%, 70% 96%, 59% 91%, 50% 100%, 41% 91%, 30% 96%, 25% 85%, 13% 86%, 13% 74%, 2% 70%, 7% 59%, 0% 50%, 7% 41%, 2% 30%, 13% 26%, 13% 14%, 25% 15%, 30% 4%, 41% 9%); }
.gogcs-kids .kids-burst span { font-size: 1.25rem; line-height: 1.05; text-transform: uppercase; font-weight: 700; }
.gogcs-kids .kids-tiles { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 1.4rem; }
.gogcs-kids .kids-tile { position: relative; display: flex; align-items: flex-end; min-height: 260px; padding: 1.8rem; border-radius: 22px; text-decoration: none; overflow: hidden; border: 4px solid white; box-shadow: 0 14px 34px rgba(13,31,71,0.3); transition: transform 0.25s; }
.gogcs-kids .kids-tile:hover { transform: translateY(-5px); }
.gogcs-kids .kids-tile.tone-rose { background: linear-gradient(150deg, var(--k-rose-deep), #7a0d1c); border-color: white; }
.gogcs-kids .kids-tile.tone-sun { background: linear-gradient(150deg, var(--k-sun-deep), #b98a0a); border-color: white; }
.gogcs-kids .kids-tile-art { position: absolute; right: 1.2rem; top: 1.2rem; width: 120px; height: 120px; color: rgba(255,255,255,0.35); }
.gogcs-kids .kids-tile-art svg { width: 100%; height: 100%; }
.gogcs-kids .kids-tile-label { font-size: 2.4rem; line-height: 1; color: white; font-weight: 700; text-shadow: 0 3px 0 rgba(0,0,0,0.2); }

/* Parents steps */
.gogcs-kids .kids-steps { list-style: none; margin: 0 0 2.5rem; padding: 0; display: grid; grid-template-columns: 1fr; gap: 1.2rem; counter-reset: step; }
.gogcs-kids .kids-step { position: relative; padding: 1.8rem 1.6rem 1.8rem 5.2rem; border-radius: 18px; background: var(--off-white); border: 2px solid var(--k-sky); }
.gogcs-kids .kids-step-num { position: absolute; left: 1.3rem; top: 1.5rem; width: 46px; height: 46px; border-radius: 50%; background: var(--k-rose-deep); color: white; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; font-weight: 700; box-shadow: 0 0 0 3px white, 0 0 0 5px var(--k-rose-deep); }
.gogcs-kids .kids-step h3 { font-size: 1.25rem; color: var(--k-ink); margin-bottom: 0.4rem; font-weight: 700; }
.gogcs-kids .kids-step p { font-size: 0.95rem; line-height: 1.7; color: #3a4e70; }
.gogcs-kids .kids-parents-cta { text-align: center; }
.gogcs-kids .kids-parents-cta p { font-size: 1.05rem; color: #3a4e70; margin-bottom: 1.2rem; }
.gogcs-kids .kids-parents-cta .k-btn { margin: 0.3rem; }

/* Buttons */
.gogcs-kids .k-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0.8rem 2rem; border-radius: 999px; font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 1.05rem; text-decoration: none; transition: transform 0.2s, box-shadow 0.2s; }
.gogcs-kids .k-btn:hover { transform: translateY(-3px); }
.gogcs-kids .k-btn-crimson { background: var(--k-rose-deep); color: white; box-shadow: 0 6px 0 #7a0d1c; }
.gogcs-kids .k-btn-royal { background: var(--k-sky-deep); color: white; box-shadow: 0 6px 0 #1a3870; }
.gogcs-kids .k-btn-ghost { background: white; color: var(--k-ink); border: 2px solid var(--k-ink); }
.gogcs-kids .k-btn-white { background: white; color: var(--k-rose-deep); box-shadow: 0 6px 0 rgba(0,0,0,0.25); }

/* Times & location */
.gogcs-kids .kids-times { background: var(--off-white); }
.gogcs-kids .kids-times-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: start; }
.gogcs-kids .kids-schedule { border-top: 2px solid var(--k-sky); }
.gogcs-kids .kids-sched-row { display: flex; justify-content: space-between; gap: 1rem; flex-wrap: wrap; padding: 1rem 0; border-bottom: 2px solid var(--k-sky); }
.gogcs-kids .kids-sched-row span:first-child { font-family: 'Fredoka', sans-serif; font-weight: 600; color: var(--k-ink); }
.gogcs-kids .kids-sched-row span:last-child { color: var(--k-rose-deep); font-weight: 600; }
.gogcs-kids .kids-address { background: white; border-radius: 22px; border: 3px solid var(--k-ink); box-shadow: 0 8px 0 rgba(13,31,71,0.18); padding: 2rem; text-align: center; }
.gogcs-kids .kids-address .k-sticker { margin-bottom: 1rem; }
.gogcs-kids .kids-address-name { font-size: 1.3rem; color: var(--k-ink); margin-bottom: 0.3rem; font-weight: 700; }
.gogcs-kids .kids-address-line { display: block; font-size: 1.05rem; line-height: 1.5; color: #3a4e70; text-decoration: none; margin-bottom: 1.4rem; }
.gogcs-kids .kids-address-line:hover { color: var(--k-rose-deep); }

/* Volunteer: halftone crimson with floating stickers */
.gogcs-kids .kids-volunteer { position: relative; overflow: hidden; padding: 6rem 1.25rem; background-color: var(--k-rose-deep); background-image: radial-gradient(rgba(0,0,0,0.22) 2.5px, transparent 2.5px), radial-gradient(rgba(255,255,255,0.08) 1.5px, transparent 1.5px); background-size: 22px 22px, 44px 44px; background-position: 0 0, 11px 11px; }
.gogcs-kids .kids-volunteer-inner { position: relative; z-index: 1; text-align: center; max-width: 720px; }
.gogcs-kids .kids-volunteer h2 { font-size: clamp(2.2rem, 5.5vw, 3.6rem); line-height: 1.05; color: white; margin-bottom: 1.2rem; font-weight: 700; }
.gogcs-kids .kids-volunteer p { color: rgba(255,255,255,0.9); font-size: 1.05rem; line-height: 1.8; margin-bottom: 2rem; }
.gogcs-kids .k-float { position: absolute; width: 92px; height: 92px; border-radius: 24px; background: white; color: var(--k-sky-deep); display: flex; align-items: center; justify-content: center; box-shadow: 0 0 0 3px var(--k-ink), 0 8px 0 rgba(0,0,0,0.25); }
.gogcs-kids .k-float svg { width: 48px; height: 48px; }
.gogcs-kids .k-float-1 { left: 4%; top: 12%; transform: rotate(-12deg); color: var(--k-sun-dark); }
.gogcs-kids .k-float-2 { left: 9%; bottom: 10%; transform: rotate(10deg); color: var(--k-rose-deep); }
.gogcs-kids .k-float-3 { right: 6%; top: 14%; transform: rotate(8deg); }
.gogcs-kids .k-float-4 { right: 10%; bottom: 12%; transform: rotate(-8deg); color: var(--k-navy); }
@media (max-width: 899px) { .gogcs-kids .k-float { width: 60px; height: 60px; border-radius: 16px; opacity: 0.9; } .gogcs-kids .k-float svg { width: 30px; height: 30px; } .gogcs-kids .k-float-1, .gogcs-kids .k-float-3 { top: 4%; } .gogcs-kids .k-float-2, .gogcs-kids .k-float-4 { bottom: 4%; } }


/* Age groups (Preschool / Elementary) */
.gogcs-kids .kids-ages { background: var(--off-white); }
.gogcs-kids .kids-age-grid { display: grid; grid-template-columns: 1fr; gap: 1.8rem; }
.gogcs-kids .kids-age { display: flex; flex-direction: column; background: white; border-radius: 24px; border: 3px solid var(--k-ink); box-shadow: 0 8px 0 rgba(13,31,71,0.18); overflow: hidden; }
.gogcs-kids .kids-age-band { display: flex; align-items: center; gap: 1.2rem; padding: 1.6rem 1.8rem; }
.gogcs-kids .tone-sky .kids-age-band { background: var(--k-sky); }
.gogcs-kids .tone-rose .kids-age-band { background: var(--k-rose); }
.gogcs-kids .kids-age-band .k-sticker { flex-shrink: 0; }
.gogcs-kids .tone-rose .kids-age-band .k-sticker { color: var(--k-rose-deep); }
.gogcs-kids .kids-age-title h3 { font-size: 1.8rem; line-height: 1.05; color: var(--k-ink); font-weight: 700; margin-bottom: 0.5rem; }
.gogcs-kids .kids-age-meta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.6rem 0.9rem; }
.gogcs-kids .kids-age-when { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 0.95rem; color: var(--k-ink); }
.gogcs-kids .kids-age.tone-sky .k-chip { background: var(--k-sky-deep); }
.gogcs-kids .kids-age.tone-rose .k-chip { background: var(--k-rose-deep); }
.gogcs-kids .kids-age-body { padding: 1.6rem 1.8rem 0.4rem; flex: 1; }
.gogcs-kids .kids-age-lead { font-size: 1.35rem; line-height: 1.3; color: var(--k-ink); font-weight: 600; margin-bottom: 0.8rem; }
.gogcs-kids .kids-age-intro { font-size: 0.98rem; line-height: 1.7; color: #3a4e70; margin-bottom: 1.4rem; }
.gogcs-kids .kids-age-sub { font-family: 'Fredoka', sans-serif; font-weight: 600; font-size: 0.8rem; letter-spacing: 0.08em; text-transform: uppercase; color: #7a90b8; margin: 0 0 0.8rem; }
.gogcs-kids .kids-age-steps { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; gap: 0.5rem; }
.gogcs-kids .kids-age-steps li { display: grid; grid-template-columns: 34px 30px 1fr; align-items: center; gap: 0.7rem; padding: 0.6rem 0.8rem; border-radius: 14px; background: var(--off-white); }
.gogcs-kids .kids-age-step-n { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 34px; border-radius: 50%; background: var(--k-rose-deep); color: white; font-weight: 700; font-size: 1rem; }
.gogcs-kids .tone-sky .kids-age-step-n { background: var(--k-sky-deep); }
.gogcs-kids .kids-age-step-ic { display: inline-flex; color: var(--k-ink); }
.gogcs-kids .kids-age-step-ic svg { width: 22px; height: 22px; }
.gogcs-kids .kids-age-step-t { display: flex; flex-direction: column; line-height: 1.3; }
.gogcs-kids .kids-age-step-t strong { font-family: 'Fredoka', sans-serif; font-weight: 600; color: var(--k-ink); font-size: 1rem; }
.gogcs-kids .kids-age-step-t em { font-style: normal; font-size: 0.85rem; color: #4a6090; }
.gogcs-kids .kids-age-icons { list-style: none; margin: 0 0 1.5rem; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.6rem; }
.gogcs-kids .kids-age-icons li { display: flex; align-items: center; gap: 0.6rem; font-size: 0.95rem; color: var(--k-ink); font-weight: 500; padding: 0.55rem 0.7rem; border-radius: 12px; border: 2px solid var(--k-sky); background: white; }
.gogcs-kids .tone-rose .kids-age-icons li { border-color: var(--k-rose); }
.gogcs-kids .kids-age-icons span { display: inline-flex; width: 30px; height: 30px; border-radius: 9px; align-items: center; justify-content: center; background: var(--k-sky); color: var(--k-sky-deep); flex-shrink: 0; }
.gogcs-kids .tone-rose .kids-age-icons span { background: var(--k-rose); color: var(--k-rose-deep); }
.gogcs-kids .kids-age-icons svg { width: 17px; height: 17px; }
.gogcs-kids .kids-age-quote { margin: 0 0 1.2rem; padding: 1rem 1.2rem; border-radius: 14px; font-family: 'Fredoka', sans-serif; font-weight: 500; font-size: 1.05rem; line-height: 1.45; color: var(--k-ink); background: var(--k-sun); }
.gogcs-kids .kids-age-quote::before { content: '\201C'; color: var(--k-sun-dark); font-size: 1.4em; line-height: 0; margin-right: 0.2rem; }
.gogcs-kids .kids-age-note { display: flex; gap: 0.9rem; align-items: flex-start; padding: 1rem 1.1rem; border-radius: 14px; border: 2px dashed var(--k-sky-deep); margin-bottom: 1.2rem; }
.gogcs-kids .kids-age-note-ic { display: inline-flex; width: 36px; height: 36px; border-radius: 10px; background: var(--k-sky-deep); color: white; align-items: center; justify-content: center; flex-shrink: 0; }
.gogcs-kids .kids-age-note-ic svg { width: 20px; height: 20px; }
.gogcs-kids .kids-age-note strong { font-family: 'Fredoka', sans-serif; font-weight: 600; color: var(--k-ink); display: block; margin-bottom: 0.2rem; }
.gogcs-kids .kids-age-note p { font-size: 0.92rem; line-height: 1.6; color: #3a4e70; margin: 0; }
.gogcs-kids .kids-age-foot { padding: 0 1.8rem 1.8rem; }
.gogcs-kids .kids-age-foot .k-btn { width: 100%; }
@media (min-width: 800px) { .gogcs-kids .kids-age-grid { grid-template-columns: 1fr 1fr; gap: 2rem; } }
@media (min-width: 1100px) { .gogcs-kids .kids-age-icons { grid-template-columns: repeat(3, 1fr); } .gogcs-kids .tone-rose .kids-age-icons { grid-template-columns: repeat(3, 1fr); } }

/* Scale up */
@media (min-width: 700px) {
  .gogcs-kids .kids-cards { grid-template-columns: repeat(3, 1fr); }
  .gogcs-kids .kids-tiles { grid-template-columns: 1fr 1fr; gap: 2rem; }
  .gogcs-kids .kids-tile { min-height: 340px; }
  .gogcs-kids .kids-steps { grid-template-columns: 1fr 1fr; }
  .gogcs-kids .kids-times-grid { grid-template-columns: 1.2fr 0.8fr; gap: 4rem; }
  .gogcs-kids .kids-section { padding: 6rem 2rem; }
  .gogcs-kids .kids-badge { position: absolute; right: 0; top: 0.4rem; transform: rotate(6deg); margin: 0; }
}
@media (min-width: 1000px) {
  .gogcs-kids .kids-steps { grid-template-columns: repeat(4, 1fr); }
  .gogcs-kids .kids-step { padding: 4.6rem 1.5rem 1.8rem; }
  .gogcs-kids .kids-step-num { left: 1.5rem; top: 1.4rem; }
}
@media (prefers-reduced-motion: reduce) {
  .gogcs-kids .kids-card, .gogcs-kids .kids-tile, .gogcs-kids .k-btn, .gogcs-kids .k-pill { transition: none; }
}

/* ================================================
   FOOTER V2, brand row + four ruled columns
   ================================================ */
.gogcs-footer-v2 { background: #080f22; border-top: 3px solid var(--crimson); padding: 0; }
.gogcs-footer-v2 .f2-inner { max-width: 1180px; margin: 0 auto; padding: 3rem 2rem 0; }
.gogcs-footer-v2 .f2-top { display: flex; align-items: center; justify-content: space-between; flex-wrap: wrap; gap: 1.2rem; padding-bottom: 2rem; border-bottom: 1px solid rgba(255,255,255,0.1); }
.gogcs-footer-v2 .f2-logo img { width: 74px; height: 74px; border-radius: 50%; background: white; box-shadow: 0 0 0 3px rgba(255,255,255,0.12); display: block; }
.gogcs-footer-v2 .f2-name { font-family: 'Cinzel', serif; font-size: clamp(1.1rem, 2.6vw, 1.7rem); letter-spacing: 0.12em; text-transform: uppercase; color: white; font-weight: 600; text-align: right; }
.gogcs-footer-v2 .f2-name span { display: block; font-family: 'Playfair Display', serif; font-style: italic; text-transform: none; letter-spacing: 0; font-size: 0.9rem; color: rgba(255,255,255,0.5); margin-top: 0.3rem; font-weight: 400; }
.gogcs-footer-v2 .f2-cols { display: grid; grid-template-columns: 1fr; }
.gogcs-footer-v2 .f2-col { padding: 2.4rem 0; border-bottom: 1px solid rgba(255,255,255,0.08); }
.gogcs-footer-v2 .f2-col h4 { font-family: 'Playfair Display', serif; font-size: 1.25rem; color: white; font-weight: 600; margin-bottom: 0.6rem; }
.gogcs-footer-v2 .f2-col h4::after { content: ''; display: block; width: 34px; height: 3px; background: var(--crimson); margin: 0.7rem 0 1.4rem; box-shadow: 42px 0 0 -1px rgba(180,20,40,0.5); }
.gogcs-footer-v2 .f2-blurb { font-size: 0.9rem; line-height: 1.85; color: rgba(255,255,255,0.6); margin-bottom: 1.4rem; }
.gogcs-footer-v2 .f2-social { display: flex; gap: 0.6rem; }
.gogcs-footer-v2 .f2-social a { display: flex; align-items: center; justify-content: center; width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,0.08); color: white; transition: background 0.2s, transform 0.2s; }
.gogcs-footer-v2 .f2-social a:hover { background: var(--crimson); transform: translateY(-2px); }
.gogcs-footer-v2 .f2-social svg { width: 15px; height: 15px; }
.gogcs-footer-v2 .f2-list, .gogcs-footer-v2 .f2-contact { list-style: none; margin: 0; padding: 0; }
.gogcs-footer-v2 .f2-list li { margin-bottom: 0.75rem; }
.gogcs-footer-v2 .f2-list a { display: inline-flex; align-items: center; gap: 0.6rem; font-size: 0.92rem; color: rgba(255,255,255,0.7); text-decoration: none; transition: color 0.2s, padding-left 0.2s; }
.gogcs-footer-v2 .f2-list a:hover { color: white; padding-left: 4px; }
.gogcs-footer-v2 .f2-arrow { width: 14px; height: 14px; color: var(--crimson); flex-shrink: 0; }
.gogcs-footer-v2 .f2-contact li { display: flex; align-items: flex-start; gap: 0.7rem; font-size: 0.92rem; line-height: 1.6; color: rgba(255,255,255,0.7); margin-bottom: 0.9rem; }
.gogcs-footer-v2 .f2-contact svg { width: 16px; height: 16px; color: var(--crimson); flex-shrink: 0; margin-top: 0.25rem; }
.gogcs-footer-v2 .f2-contact a { color: rgba(255,255,255,0.7); text-decoration: none; }
.gogcs-footer-v2 .f2-contact a:hover { color: white; }
.gogcs-footer-v2 .footer-visit-btn { margin-top: 0.6rem; }
.gogcs-footer-v2 .f2-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding: 1.4rem 2rem; }
.gogcs-footer-v2 .f2-svc { display: flex; justify-content: space-between; gap: 1rem; padding: 0.55rem 0; border-bottom: 1px solid rgba(255,255,255,0.08); font-size: 0.86rem; }
.gogcs-footer-v2 .f2-svc span:first-child { color: rgba(255,255,255,0.7); }
.gogcs-footer-v2 .f2-svc span:last-child { color: #7ea8e8; white-space: nowrap; }
@media (min-width: 800px) and (max-width: 1099px) {
  .gogcs-footer-v2 .f2-cols { grid-template-columns: 1fr 1fr 1fr; }
  .gogcs-footer-v2 .f2-col { padding: 2.4rem 1.6rem; border-bottom: 1px solid rgba(255,255,255,0.08); border-right: 1px solid rgba(255,255,255,0.08); }
  .gogcs-footer-v2 .f2-col:nth-child(3n) { border-right: 0; }
  .gogcs-footer-v2 .f2-col:nth-child(3n+1) { padding-left: 0; }
}
@media (min-width: 1100px) {
  .gogcs-footer-v2 .f2-cols { grid-template-columns: 1.15fr 0.8fr 0.9fr 1.35fr 1fr; }
  .gogcs-footer-v2 .f2-col { padding: 2.8rem 1.4rem; border-bottom: 0; border-right: 1px solid rgba(255,255,255,0.08); }
  .gogcs-footer-v2 .f2-col:first-child { padding-left: 0; }
  .gogcs-footer-v2 .f2-col:last-child { border-right: 0; padding-right: 0; }
}

/* Footer v2 bottom bar: copyright left, credit right, both readable */
.gogcs-footer-v2 .f2-bottom { max-width: 1180px; margin: 0 auto; padding: 1.4rem 2rem; }
.gogcs-footer-v2 .footer-copy { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 0.8rem 2rem; text-align: left; font-size: 0.72rem; letter-spacing: 0.1em; color: rgba(255,255,255,0.8); }
.gogcs-footer-v2 .footer-copy span { display: inline; margin: 0; font-size: 0.72rem; color: rgba(255,255,255,0.8); }
@media (max-width: 699px) { .gogcs-footer-v2 .footer-copy { justify-content: center; text-align: center; } }

/* ================================================
   FLUID FIT: containers and base type scale with the browser width
   1100px content at laptop sizes, up to 1440px on wide monitors;
   base type stays 16px up to ~1440px wide, then grows to 18px on large monitors.
   ================================================ */
html { font-size: clamp(16px, 0.3vw + 11.7px, 18px); }
.gogcs-container, .footer-inner { max-width: clamp(1100px, 72vw, 1440px); }
.gogcs-kids .kids-container, .gogcs-kids .kids-subnav-inner, .gogcs-kids .kids-hero-inner, .gogcs-kids .kids-scroll-hint,
.footer-grid, .footer-bottom .footer-copy, .gogcs-footer-v2 .f2-inner, .gogcs-footer-v2 .f2-bottom { max-width: clamp(1180px, 76vw, 1520px); }
.gogcs-kids .kids-strip { padding-left: max(1.25rem, calc((100vw - clamp(1180px, 76vw, 1520px)) / 2 + 1.25rem)); padding-right: max(1.25rem, calc((100vw - clamp(1180px, 76vw, 1520px)) / 2 + 1.25rem)); }
/* hero decorations were positioned against the old 1100px container; follow the new one */
@media (min-width: 1250px) {
  .hero-ring { right: calc(50% - clamp(550px, 36vw, 720px) - 35px); }
  .hero-logo-bg { right: calc(50% - clamp(550px, 36vw, 720px) + 20px); }
}
.hero-logo-bg img { border-radius: 50%; }

/* Cartoon characters: hero peek row and age-card mascots */
.gogcs-kids .kids-hero { padding-top: 5.5rem; padding-bottom: 16rem; }
.gogcs-kids .kids-peek { position: absolute; left: 50%; bottom: 62px; transform: translateX(-50%); width: min(720px, 92vw); height: auto; z-index: 1; pointer-events: none; filter: drop-shadow(0 6px 0 rgba(13,31,71,0.35)); }
.gogcs-kids .kids-badge { margin-bottom: 1.6rem; }
.gogcs-kids .kids-age-band { position: relative; padding-right: 7.5rem; }
.gogcs-kids .kids-age-char { position: absolute; right: 0.9rem; bottom: 0; width: 108px; height: 108px; pointer-events: none; }
@media (max-width: 699px) { .gogcs-kids .kids-age-band { padding-right: 1.8rem; padding-bottom: 5.4rem; } .gogcs-kids .kids-age-char { right: 1rem; width: 88px; height: 88px; } .gogcs-kids .kids-hero { padding-top: 2.5rem; padding-bottom: 10rem; } .gogcs-kids .kids-peek { bottom: 56px; } }

/* Journey map */
.gogcs-kids .kids-journey { background: var(--k-sky); overflow: hidden; }
.gogcs-kids .kids-journey .kids-lead { color: var(--k-ink); }
.gogcs-kids .kids-journey-wrap { position: relative; }
.gogcs-kids .kids-journey-svg { display: block; width: 100%; height: auto; overflow: visible; }
.gogcs-kids .kids-journey-svg.is-vertical { display: none; max-width: 400px; margin: 0 auto; }
.gogcs-kids .kids-stop { transition: transform 0.25s cubic-bezier(0.22, 1, 0.36, 1); cursor: default; }
.gogcs-kids .kids-stop:hover { transform: scale(1.08) rotate(-4deg); }
@media (max-width: 799px) { .gogcs-kids .kids-journey-svg.is-horizontal { display: none; } .gogcs-kids .kids-journey-svg.is-vertical { display: block; } }
@media (prefers-reduced-motion: reduce) { .gogcs-kids .kids-stop { transition: none; } .gogcs-kids .kids-stop:hover { transform: none; } }

/* Portrait reel card (phone frame, click to play) */
.gogcs-reel { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 0.8rem; }
.gogcs-reel-frame { position: relative; width: min(320px, 100%); aspect-ratio: 9 / 16; border-radius: 28px; overflow: hidden; background: #0d1f47; border: 6px solid #0d1f47; box-shadow: 0 20px 50px rgba(13,31,71,0.35); }
.gogcs-reel-video { width: 100%; height: 100%; object-fit: cover; display: block; background: #0d1f47; }
.gogcs-reel-play { position: absolute; inset: 0; margin: auto; width: 76px; height: 76px; border-radius: 50%; border: 0; background: rgba(255,255,255,0.92); color: var(--crimson); display: flex; align-items: center; justify-content: center; cursor: pointer; box-shadow: 0 8px 24px rgba(0,0,0,0.35); transition: transform 0.2s, background 0.2s; }
.gogcs-reel-play svg { width: 36px; height: 36px; margin-left: 4px; }
.gogcs-reel-play:hover { transform: scale(1.06); background: white; }
.gogcs-reel-play:active { transform: scale(0.96); }
.gogcs-reel.is-playing .gogcs-reel-play { display: none; }
.gogcs-reel-caption { font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-muted); text-align: center; }
.gogcs-kids .gogcs-reel-caption { font-family: 'Fredoka', sans-serif; font-size: 0.9rem; letter-spacing: 0; text-transform: none; color: #4a6090; }
/* Events highlight layout */
.events-highlight { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; }
@media (min-width: 900px) { .events-highlight { grid-template-columns: 1.2fr 0.8fr; gap: 4rem; } }
/* Kids moments layout */
.gogcs-kids .kids-moments { background: white; }
.gogcs-kids .kids-moments-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: center; }
.gogcs-kids .kids-moments-text { font-size: 1.05rem; line-height: 1.8; color: #3a4e70; margin-bottom: 1.6rem; }
@media (min-width: 900px) { .gogcs-kids .kids-moments-grid { grid-template-columns: 1.2fr 0.8fr; gap: 4rem; } }

/* ================================================
   YOUTH MINISTRY PAGE v2, crimson-led, modelled on a youth-owned ministry page
   Scoped to .gogcs-youth.yt; heavy condensed display face (Anton) for this page only
   ================================================ */
.yt { --yt-ink: #14060a; --yt-crimson: #b41428; --yt-crimson-dark: #7a0d1c; --yt-paper: #fbf7f7; --yt-royal: #2850a0; font-weight: 400; }
.yt .yt-display, .yt .yt-h2, .yt .yt-statement, .yt .yt-pillar-title, .yt .yt-track h3, .yt .yt-featured-title, .yt .yt-featured-day, .yt .yt-detail-v, .yt .yt-parents h3, .yt .yt-social h3 { font-family: 'Anton', 'Source Sans 3', sans-serif; font-weight: 400; text-transform: uppercase; letter-spacing: 0.01em; }
.yt .yt-section { padding: 5rem 1.25rem; background: white; }
.yt .yt-container { max-width: clamp(1100px, 72vw, 1440px); margin: 0 auto; }
.yt .yt-h2 { font-size: clamp(2.4rem, 5vw, 3.6rem); line-height: 1; color: var(--yt-ink); margin-bottom: 0.9rem; }
.yt .yt-rule { height: 3px; background: var(--yt-ink); margin-bottom: 2.4rem; }
.yt .yt-kicker { display: inline-block; font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.22em; text-transform: uppercase; color: var(--yt-crimson); margin-bottom: 0.6rem; }
.yt .yt-kicker-light { color: rgba(255,255,255,0.7); }
.yt .yt-lead { font-size: 1.1rem; line-height: 1.75; color: #3a2a2e; max-width: 62ch; margin-bottom: 2.4rem; }
/* buttons */
.yt .yt-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 50px; padding: 0.8rem 1.8rem; font-family: 'Source Sans 3', sans-serif; font-weight: 600; font-size: 0.95rem; letter-spacing: 0.06em; text-transform: uppercase; text-decoration: none; border-radius: 2px; transition: transform 0.15s, background 0.2s, color 0.2s; }
.yt .yt-btn:active { transform: scale(0.97); }
.yt .yt-btn-white { background: white; color: var(--yt-crimson-dark); }
.yt .yt-btn-white:hover { background: #ffe7ea; }
.yt .yt-btn-outline { background: transparent; color: white; border: 2px solid rgba(255,255,255,0.7); }
.yt .yt-btn-outline:hover { background: rgba(255,255,255,0.12); border-color: white; }
.yt .yt-btn-crimson { background: var(--yt-crimson); color: white; }
.yt .yt-btn-crimson:hover { background: var(--yt-crimson-dark); }
/* hero */
.yt .yt-hero { position: relative; min-height: 88vh; display: flex; align-items: center; justify-content: center; overflow: hidden; padding: calc(72px + 3rem) 1.25rem 5rem; background: var(--yt-crimson-dark); }
.yt .yt-hero-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 25%; z-index: 0; }
.yt .yt-hero-bg { position: absolute; inset: 0; z-index: 0; background: radial-gradient(ellipse 70% 60% at 70% 30%, rgba(180,20,40,0.6) 0%, transparent 60%), linear-gradient(160deg, #8a0e1e 0%, #4a0810 100%); }
.yt .yt-hero-video + .yt-hero-bg { display: none; }
.yt .yt-hero-shade { position: absolute; inset: 0; z-index: 1; background: linear-gradient(180deg, rgba(20,6,10,0.25) 0%, rgba(20,6,10,0.6) 100%); }
.yt .yt-hero-inner { position: relative; z-index: 2; text-align: center; max-width: 1100px; }
.yt .yt-wordmark { display: inline-block; font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.3em; text-transform: uppercase; color: white; background: var(--yt-crimson); padding: 0.5rem 1.1rem; margin-bottom: 1.8rem; }
.yt .yt-statement { font-size: clamp(3rem, 9vw, 7.2rem); line-height: 0.95; color: white; text-shadow: 0 6px 30px rgba(0,0,0,0.35); margin-bottom: 2.2rem; }
.yt .yt-statement .yt-accent, .yt .yt-statement .yt-accent .wr-word { color: #ffb3bd; }
.yt .yt-hero-actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 1rem; }
.yt .yt-notch { position: absolute; left: 50%; bottom: -1px; width: 0; height: 0; transform: translateX(-50%); border-left: 44px solid transparent; border-right: 44px solid transparent; border-bottom: 34px solid white; z-index: 2; }
/* details */
.yt .yt-details-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 1.2rem 2rem; margin-bottom: 3rem; }
.yt .yt-detail-k { display: block; font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: var(--yt-crimson); margin-bottom: 0.2rem; }
.yt .yt-detail-v { display: block; font-size: 1.5rem; line-height: 1.1; color: var(--yt-ink); }
/* pillars */
.yt .yt-pillars { display: grid; grid-template-columns: 1fr; gap: 1.6rem; }
.yt .yt-pillar { border: 3px solid var(--yt-ink); background: white; display: flex; flex-direction: column; }
.yt .yt-pillar-img { aspect-ratio: 16 / 10; overflow: hidden; border-bottom: 3px solid var(--yt-ink); }
.yt .yt-pillar-img img { width: 100%; height: 100%; object-fit: cover; display: block; filter: saturate(0.9); transition: transform 0.4s cubic-bezier(0.22, 1, 0.36, 1); }
.yt .yt-pillar:hover .yt-pillar-img img { transform: scale(1.04); }
.yt .yt-pillar-body { padding: 1.4rem 1.4rem 1.6rem; text-align: center; }
.yt .yt-pillar-title { font-size: 1.9rem; line-height: 1.05; color: var(--yt-ink); margin-bottom: 0.5rem; }
.yt .yt-arrow { color: var(--yt-crimson); margin: 0 0.25em; }
.yt .yt-pillar-when { font-weight: 600; font-size: 0.9rem; color: var(--yt-crimson); margin-bottom: 0.7rem; }
.yt .yt-pillar-text { font-size: 0.95rem; line-height: 1.65; color: #3a2a2e; }
/* featured event */
.yt .yt-featured { background: var(--yt-crimson); color: white; padding: 2rem 1.25rem; }
.yt .yt-featured-inner { display: flex; flex-wrap: wrap; align-items: center; gap: 1.4rem 2rem; }
.yt .yt-featured-date { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 84px; height: 84px; background: white; color: var(--yt-crimson-dark); flex-shrink: 0; }
.yt .yt-featured-month { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; }
.yt .yt-featured-day { font-size: 2.2rem; line-height: 1; }
.yt .yt-featured-body { flex: 1; min-width: 220px; }
.yt .yt-featured .yt-kicker { color: rgba(255,255,255,0.7); margin-bottom: 0.2rem; }
.yt .yt-featured-title { font-size: 1.9rem; line-height: 1; color: white; }
.yt .yt-featured-meta { color: rgba(255,255,255,0.85); margin-top: 0.3rem; }
/* academy */
.yt .yt-academy { background: var(--yt-paper); }
.yt .yt-tracks { display: grid; grid-template-columns: 1fr; gap: 1.2rem; margin-bottom: 2rem; }
.yt .yt-track { position: relative; background: white; border: 3px solid var(--yt-ink); padding: 1.6rem 1.4rem 1.6rem; }
.yt .yt-track-k { display: block; font-family: 'Anton', sans-serif; font-size: 2.6rem; line-height: 1; color: var(--yt-crimson); margin-bottom: 0.6rem; }
.yt .yt-track h3 { font-size: 1.4rem; line-height: 1.05; color: var(--yt-ink); margin-bottom: 0.5rem; }
.yt .yt-track p { font-size: 0.95rem; line-height: 1.65; color: #3a2a2e; }
.yt .yt-academy-cta { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem 1.4rem; }
.yt .yt-academy-note { font-size: 0.85rem; color: #7a5a60; }
/* vision */
.yt .yt-vision { position: relative; padding: 7rem 1.25rem; overflow: hidden; background: var(--yt-ink); }
.yt .yt-vision-img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 30%; opacity: 0.55; }
.yt .yt-vision-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(122,13,28,0.55), rgba(20,6,10,0.85)); }
.yt .yt-vision-inner { position: relative; text-align: center; }
.yt .yt-verse { border: 0; padding: 0; background: none; font-family: 'Source Sans 3', sans-serif; font-weight: 600; font-size: clamp(1.4rem, 3vw, 2.2rem); line-height: 1.35; color: white; max-width: 24ch; margin: 0 auto; }
.yt .yt-verse cite { display: block; font-family: 'Cinzel', serif; font-style: normal; font-size: 0.7rem; letter-spacing: 0.2em; text-transform: uppercase; color: #ffb3bd; margin-top: 1.2rem; }
/* connect */
.yt .yt-connect-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; margin-bottom: 3rem; }
.yt .yt-parents h3, .yt .yt-social h3 { font-size: 1.9rem; line-height: 1; color: var(--yt-ink); margin-bottom: 0.8rem; }
.yt .yt-parents p { font-size: 1rem; line-height: 1.75; color: #3a2a2e; margin-bottom: 1.4rem; max-width: 52ch; }
.yt .yt-social-links { display: flex; gap: 0.8rem; margin-bottom: 0.8rem; }
.yt .yt-social-links a { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; background: var(--yt-ink); color: white; transition: background 0.2s, transform 0.15s; }
.yt .yt-social-links a:hover { background: var(--yt-crimson); }
.yt .yt-social-links svg { width: 20px; height: 20px; }
.yt .yt-handle { font-family: 'Cinzel', serif; font-size: 0.72rem; letter-spacing: 0.25em; color: #7a5a60; text-transform: uppercase; }
.yt .yt-strip { display: grid; grid-template-columns: repeat(2, 1fr); gap: 0.8rem; align-items: start; }
.yt .yt-strip-img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; display: block; filter: saturate(0.9); }
/* where */
.yt .yt-where { background: var(--yt-ink); color: white; padding: 2.4rem 1.25rem; }
.yt .yt-where-inner { display: flex; flex-wrap: wrap; justify-content: center; gap: 1.2rem 3rem; }
.yt .yt-where-item { display: flex; align-items: center; gap: 0.7rem; font-family: 'Source Sans 3', sans-serif; font-weight: 600; font-size: 0.9rem; letter-spacing: 0.06em; text-transform: uppercase; }
.yt .yt-where-ic { display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 50%; background: var(--yt-crimson); }
.yt .yt-where-ic svg { width: 18px; height: 18px; }
@media (min-width: 700px) {
  .yt .yt-section { padding: 6rem 2rem; }
  .yt .yt-details-grid { grid-template-columns: repeat(4, 1fr); }
  .yt .yt-pillars { grid-template-columns: repeat(3, 1fr); }
  .yt .yt-tracks { grid-template-columns: repeat(2, 1fr); }
  .yt .yt-strip { grid-template-columns: repeat(5, 1fr); }
  .yt .yt-strip-2, .yt .yt-strip-4 { margin-top: 2.2rem; }
}
@media (min-width: 1000px) {
  .yt .yt-tracks { grid-template-columns: repeat(4, 1fr); }
  .yt .yt-connect-grid { grid-template-columns: 1fr 1fr; gap: 4rem; }
}
@media (prefers-reduced-motion: reduce) { .yt .yt-hero-video { display: none; } .yt .yt-hero-video + .yt-hero-bg { display: block; } .yt .yt-pillar-img img { transition: none; } }
body.a11y-pause-motion .yt-hero-video { display: none; }

/* ---- Youth v2: dark ground, sticker language, motion ---- */
.yt { --yt-ground: #120508; --yt-ground-2: #1c0a0e; --yt-line: rgba(255,255,255,0.14); --yt-text: rgba(255,255,255,0.82); }
.yt .yt-section { background: var(--yt-ground); color: white; }
.yt .yt-academy, .yt .yt-voices { background: var(--yt-ground-2); }
.yt .yt-h2, .yt .yt-detail-v, .yt .yt-parents h3, .yt .yt-social h3, .yt .yt-track h3, .yt .yt-pillar-title { color: white; }
.yt .yt-rule { background: var(--yt-crimson); }
.yt .yt-lead, .yt .yt-pillar-text, .yt .yt-track p, .yt .yt-parents p { color: var(--yt-text); }
.yt .yt-handle, .yt .yt-academy-note { color: rgba(255,255,255,0.55); }
.yt .yt-notch { border-bottom-color: var(--yt-ground); }
.yt .yt-pillar, .yt .yt-track { background: var(--yt-ground-2); border-color: rgba(255,255,255,0.9); }
.yt .yt-pillar-img { border-bottom-color: rgba(255,255,255,0.9); position: relative; overflow: visible; }
.yt .yt-pillar-img img { transform: rotate(-1.2deg) scale(1.03); }
.yt .yt-pillar:nth-child(2) .yt-pillar-img img { transform: rotate(1deg) scale(1.03); }
.yt .yt-pillar-img { overflow: hidden; }
.yt .yt-social-links a { background: white; color: var(--yt-ink); }
.yt .yt-social-links a:hover { background: var(--yt-crimson); color: white; }
.yt .yt-where { background: var(--yt-crimson-dark); }
/* tape corners */
.yt .yt-tape { position: absolute; top: -8px; width: 76px; height: 22px; background: rgba(255,226,122,0.85); transform: rotate(-8deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); z-index: 2; }
.yt .yt-tape-l { left: -14px; } .yt .yt-tape-r { right: -14px; transform: rotate(7deg); }
/* stamp in the hero */
.yt .yt-hero-inner { position: relative; }
.yt .yt-stamp { position: absolute; right: -0.5rem; top: -0.5rem; font-family: 'Anton', sans-serif; font-size: 1.05rem; line-height: 1; text-transform: uppercase; color: #ffb3bd; border: 3px solid #ffb3bd; border-radius: 6px; padding: 0.5rem 0.7rem; transform: rotate(9deg); letter-spacing: 0.04em; opacity: 0.95; text-align: center; box-shadow: inset 0 0 0 2px rgba(0,0,0,0.25); }
/* ticker */
.yt .yt-ticker { background: var(--yt-crimson); color: white; overflow: hidden; border-top: 3px solid var(--yt-ink); border-bottom: 3px solid var(--yt-ink); }
.yt .yt-ticker-track { display: flex; width: max-content; gap: 0; padding: 0.7rem 0; animation: ytTicker 38s linear infinite; font-family: 'Anton', sans-serif; font-size: 1.1rem; letter-spacing: 0.06em; text-transform: uppercase; white-space: nowrap; }
.yt .yt-ticker-track span { padding: 0 1.2rem; }
.yt .yt-ticker-track i { font-style: normal; color: #ffb3bd; }
@keyframes ytTicker { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.yt .yt-ticker:hover .yt-ticker-track { animation-play-state: paused; }
/* torn edge between details and the featured band */
.yt .yt-featured { position: relative; }
.yt .yt-featured::before { content: ''; position: absolute; left: 0; right: 0; top: -14px; height: 16px; background: var(--yt-crimson); clip-path: polygon(0 100%, 2% 20%, 5% 90%, 9% 30%, 13% 80%, 17% 10%, 21% 70%, 25% 25%, 30% 85%, 34% 15%, 38% 75%, 43% 30%, 47% 90%, 52% 20%, 56% 70%, 61% 10%, 65% 80%, 70% 35%, 74% 90%, 79% 20%, 83% 75%, 88% 25%, 92% 85%, 96% 30%, 100% 70%, 100% 100%); }
/* groups */
.yt .yt-groups-grid { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.yt .yt-group { border: 3px dashed rgba(255,255,255,0.4); padding: 1.6rem 1.4rem; }
.yt .yt-group-launch { border-style: solid; border-color: var(--yt-crimson); }
.yt .yt-group-k { display: block; font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: #ffb3bd; margin-bottom: 0.5rem; }
.yt .yt-group h3 { font-family: 'Anton', sans-serif; font-weight: 400; text-transform: uppercase; font-size: 1.6rem; line-height: 1; color: white; margin-bottom: 0.4rem; }
.yt .yt-group p { color: var(--yt-text); font-size: 0.95rem; }
/* voices */
.yt .yt-voices-grid { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.yt .yt-voice { margin: 0; border: 3px solid rgba(255,255,255,0.9); padding: 1.6rem 1.4rem; background: var(--yt-ground); }
.yt .yt-voice blockquote { border: 0; padding: 0; margin: 0 0 0.8rem; background: none; font-family: 'Anton', sans-serif; font-size: 1.5rem; line-height: 1.15; text-transform: uppercase; color: white; }
.yt .yt-voice-slot { color: rgba(255,255,255,0.35); }
.yt .yt-voice figcaption { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.2em; text-transform: uppercase; color: #ffb3bd; }
/* whatsapp */
.yt .yt-btn-wa { background: #25D366; color: #0b2b16; gap: 0.6rem; margin-top: 1rem; }
.yt .yt-btn-wa svg { width: 20px; height: 20px; }
.yt .yt-btn-wa:hover { background: #1fbf5a; }
.yt .yt-sticky-wa { display: none; }
@media (max-width: 899px) { .yt .yt-sticky-wa { position: fixed; left: 50%; bottom: 14px; transform: translateX(-50%); z-index: 950; display: inline-flex; align-items: center; gap: 0.5rem; background: #25D366; color: #0b2b16; font-family: 'Source Sans 3', sans-serif; font-weight: 700; font-size: 0.85rem; letter-spacing: 0.06em; text-transform: uppercase; padding: 0.8rem 1.2rem; border-radius: 999px; box-shadow: 0 10px 30px rgba(0,0,0,0.4); text-decoration: none; } .yt .yt-sticky-wa svg { width: 20px; height: 20px; } }
/* latest posts */
.yt .yt-latest { margin-bottom: 3rem; }
.yt .yt-latest-grid { display: grid; grid-template-columns: 1fr; gap: 1.6rem; align-items: start; }
.yt .yt-latest-note p { color: var(--yt-text); font-size: 0.95rem; line-height: 1.7; margin-bottom: 1rem; max-width: 46ch; }
.yt .yt-btn-outline-dark { background: transparent; color: white; border: 2px solid rgba(255,255,255,0.6); }
.yt .yt-btn-outline-dark:hover { border-color: white; background: rgba(255,255,255,0.1); }
/* strip slot */
.yt .yt-strip-slot { display: flex; align-items: center; justify-content: center; text-align: center; border: 3px dashed rgba(255,255,255,0.4); color: rgba(255,255,255,0.6); font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.16em; padding: 1rem; }
/* card tilt (JS sets --rx/--ry) */
@media (hover: hover) and (pointer: fine) { .yt .yt-pillar, .yt .yt-track, .yt .yt-voice { transform: perspective(900px) rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg)); transition: transform 0.25s ease-out; } }
@media (min-width: 700px) { .yt .yt-groups-grid, .yt .yt-voices-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1000px) { .yt .yt-latest-grid { grid-template-columns: 1fr 1fr; gap: 3rem; } }
@media (prefers-reduced-motion: reduce) { .yt .yt-ticker-track { animation: none; } .yt .yt-pillar, .yt .yt-track, .yt .yt-voice { transform: none !important; transition: none; } }
body.a11y-pause-motion .yt-ticker-track { animation: none; }
.yt .yt-latest .gogcs-reel-caption { color: rgba(255,255,255,0.6); }
.yt .yt-latest-grid { align-items: center; }

/* Mobile hardening: stable hero heights on phones with collapsing browser bars */
@supports (height: 100svh) {
  .yt .yt-hero { min-height: 88svh; }
  .gogcs-kids .kids-hero { min-height: 78svh; }
  .gogcs-hero { min-height: 100svh; }
  .gogcs-youth .youth-hero { min-height: 92svh; }
}
/* Sticky WhatsApp pill: keep clear of the accessibility toggle and the Connect tab */
@media (max-width: 899px) { .yt .yt-sticky-wa { bottom: max(14px, env(safe-area-inset-bottom)); left: auto; right: 14px; transform: none; } }

/* Connect panel on phones: full-width sheet, big tap targets, tab clear of hero text */
@media (max-width: 600px) {
  .sm-panel { width: 100vw; right: -100vw; }
  .sm-panel.open { right: 0; }
  .sm-panel-header { padding: 1.2rem 1.25rem; }
  .sm-panel-header h3 { font-size: 0.8rem; }
  .sm-panel-close { font-size: 1.6rem; padding: 0.4rem 0.7rem; color: white; min-width: 48px; min-height: 48px; }
  .sm-panel-body { padding: 1.25rem; gap: 0.8rem; -webkit-overflow-scrolling: touch; }
  .sm-link { padding: 1.1rem 1rem; min-height: 64px; }
  .sm-link-icon { width: 46px; height: 46px; }
  .sm-link-name { font-size: 0.72rem; }
  .sm-link-handle { font-size: 0.9rem; }
  .sm-panel-toggle { top: auto; bottom: 22vh; transform: none; }
}

/* ================================================
   WHAT WE BELIEVE, revamp: creed list, chaptered passions, gifts grid
   ================================================ */
.wwb .wwb-hero { position: relative; overflow: hidden; }
.wwb .wwb-hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 35%; opacity: 0.16; filter: saturate(0.6); z-index: 0; }
.wwb .wwb-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: center; }
.wwb .wwb-title { font-size: clamp(2.8rem, 6vw, 4.6rem); line-height: 1.02; }
.wwb .wwb-lead { font-family: 'Playfair Display', serif; font-size: clamp(1.05rem, 1.6vw, 1.3rem); line-height: 1.7; color: rgba(255,255,255,0.85); max-width: 40ch; margin-bottom: 2rem; }
.wwb .wwb-jump { display: flex; flex-wrap: wrap; gap: 0.6rem; }
.wwb .wwb-jump a { font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: white; text-decoration: none; border: 1px solid rgba(255,255,255,0.35); padding: 0.7rem 1.1rem; border-radius: 2px; transition: background 0.2s, border-color 0.2s; }
.wwb .wwb-jump a:hover { background: rgba(255,255,255,0.1); border-color: white; }
.wwb .wwb-creed-card { position: relative; justify-self: end; width: min(100%, 360px); padding: 2.2rem 2rem 2rem; border: 1px solid rgba(255,255,255,0.18); background: rgba(255,255,255,0.05); backdrop-filter: blur(6px); display: grid; gap: 1.4rem; }
.wwb .wwb-cross { position: absolute; top: -18px; left: 50%; transform: translateX(-50%); width: 36px; height: 36px; border-radius: 50%; background: var(--crimson); color: white; display: flex; align-items: center; justify-content: center; font-size: 1rem; box-shadow: 0 0 0 4px var(--royal-deep); }
.wwb .wwb-stat { display: grid; grid-template-columns: 74px 1fr; align-items: center; gap: 1rem; padding-bottom: 1.2rem; border-bottom: 1px solid rgba(255,255,255,0.12); }
.wwb .wwb-stat:last-child { border-bottom: 0; padding-bottom: 0; }
.wwb .wwb-stat strong { font-family: 'Playfair Display', serif; font-weight: 400; font-size: 2.6rem; line-height: 1; color: #7ea8e8; }
.wwb .wwb-stat span { font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.14em; text-transform: uppercase; color: rgba(255,255,255,0.75); line-height: 1.6; }
/* creed list */
.wwb .wwb-articles-grid { display: grid; grid-template-columns: 1fr; gap: 3rem; align-items: start; }
.wwb .wwb-rail { position: static; }
.wwb .wwb-list { list-style: none; margin: 0; padding: 0; counter-reset: creed; border-top: 1px solid var(--light-blue); }
.wwb .wwb-article { display: grid; grid-template-columns: 56px 1fr; gap: 1.2rem; align-items: baseline; padding: 1.5rem 0.4rem; border-bottom: 1px solid var(--light-blue); transition: background 0.25s, padding-left 0.25s; }
.wwb .wwb-article:hover { background: var(--off-white); padding-left: 1rem; }
.wwb .wwb-num { font-family: 'Playfair Display', serif; font-size: 2.2rem; line-height: 1; color: var(--royal); }
.wwb .wwb-article:nth-child(even) .wwb-num { color: var(--crimson); }
.wwb .wwb-article p { font-family: 'Playfair Display', serif; font-size: clamp(1.1rem, 1.5vw, 1.35rem); line-height: 1.45; color: var(--text-dark); margin: 0; }
/* five P's */
.wwb .wwb-pnav { display: flex; flex-wrap: wrap; gap: 0.6rem; margin: 2rem 0 3rem; }
.wwb .wwb-pnav a { display: inline-flex; align-items: center; gap: 0.6rem; font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-dark); text-decoration: none; background: white; border: 1px solid var(--light-blue); padding: 0.55rem 1rem 0.55rem 0.55rem; border-radius: 999px; transition: border-color 0.2s, transform 0.15s; }
.wwb .wwb-pnav a span { display: inline-flex; align-items: center; justify-content: center; width: 26px; height: 26px; border-radius: 50%; background: var(--royal); color: white; font-family: 'Playfair Display', serif; font-size: 0.95rem; }
.wwb .wwb-pnav a:nth-child(even) span { background: var(--crimson); }
.wwb .wwb-pnav a:hover { border-color: var(--royal); transform: translateY(-2px); }
.wwb .wwb-chapters { display: grid; gap: 2rem; }
.wwb .wwb-chapter { position: relative; display: grid; grid-template-columns: 1fr; gap: 1.2rem; padding: 2.2rem 1.8rem; background: white; border-top: 3px solid var(--royal); box-shadow: 0 2px 12px rgba(40,80,160,0.07); overflow: hidden; scroll-margin-top: 100px; }
.wwb .wwb-chapter:nth-child(even) { border-top-color: var(--crimson); }
.wwb .wwb-chapter-mark { position: relative; height: 96px; }
.wwb .wwb-bigp { position: absolute; left: -0.1em; top: -0.35em; font-family: 'Playfair Display', serif; font-size: 9rem; line-height: 1; color: var(--royal); opacity: 0.07; pointer-events: none; }
.wwb .wwb-chapter:nth-child(even) .wwb-bigp { color: var(--crimson); }
.wwb .wwb-chapter-n { position: absolute; left: 0; top: 0.4rem; font-family: 'Cinzel', serif; font-size: 0.65rem; letter-spacing: 0.25em; color: var(--text-muted); }
.wwb .wwb-chapter h3 { font-family: 'Playfair Display', serif; font-size: clamp(1.5rem, 2.4vw, 2.1rem); font-weight: 400; line-height: 1.15; color: var(--text-dark); margin-bottom: 0.9rem; }
.wwb .wwb-chapter h3::first-letter { color: var(--royal); }
.wwb .wwb-chapter:nth-child(even) h3::first-letter { color: var(--crimson); }
.wwb .wwb-chapter p { font-size: 1rem; line-height: 1.85; color: #3a4e70; }
.wwb .wwb-chapter p em { font-family: 'Playfair Display', serif; color: var(--royal); }
/* gifts */
.wwb .wwb-gifts-head { max-width: 760px; margin-bottom: 3rem; }
.wwb .wwb-verse { border: 0; padding: 0; margin: 1rem 0 1.6rem; font-family: 'Playfair Display', serif; font-style: italic; font-size: clamp(1.4rem, 2.6vw, 2.1rem); line-height: 1.35; color: white; }
.wwb .wwb-verse cite { display: block; font-family: 'Cinzel', serif; font-style: normal; font-size: 0.62rem; letter-spacing: 0.2em; text-transform: uppercase; color: #7ea8e8; margin-top: 0.8rem; }
.wwb .wwb-gifts-intro { font-size: 1rem; color: rgba(255,255,255,0.7); line-height: 1.9; }
.wwb .wwb-gift-grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 1px; background: rgba(255,255,255,0.12); border: 1px solid rgba(255,255,255,0.12); }
.wwb .wwb-gift { position: relative; display: flex; flex-direction: column; gap: 0.5rem; padding: 1.6rem 1.4rem 1.4rem; background: var(--royal-deep); transition: background 0.25s; }
.wwb .wwb-gift:hover { background: rgba(40,80,160,0.45); }
.wwb .wwb-gift-n { font-family: 'Playfair Display', serif; font-size: 1.2rem; color: #7ea8e8; opacity: 0.8; }
.wwb .wwb-gift strong { font-family: 'Playfair Display', serif; font-weight: 400; font-size: 1.25rem; color: white; line-height: 1.25; }
.wwb .wwb-gift-ref { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.16em; text-transform: uppercase; color: rgba(255,255,255,0.45); }
@media (min-width: 800px) {
  .wwb .wwb-hero-grid { grid-template-columns: 1.2fr 0.8fr; }
  .wwb .wwb-articles-grid { grid-template-columns: 0.8fr 1.2fr; gap: 4rem; }
  .wwb .wwb-rail { position: sticky; top: 100px; }
  .wwb .wwb-article { grid-template-columns: 84px 1fr; }
  .wwb .wwb-chapter { grid-template-columns: 150px 1fr; gap: 2rem; padding: 2.6rem 2.4rem; }
  .wwb .wwb-chapter-mark { height: auto; min-height: 110px; }
  .wwb .wwb-gift-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (prefers-reduced-motion: reduce) { .wwb .wwb-article, .wwb .wwb-pnav a { transition: none; } }

/* Generic sticky section nav (What We Believe and any page that adds [data-subnav]) */
.gogcs-subnav { position: sticky; top: 56px; z-index: 900; background: rgba(255,255,255,0.96); backdrop-filter: blur(8px); border-bottom: 1px solid var(--light-blue); }
.gogcs-subnav-inner { max-width: clamp(1100px, 72vw, 1440px); margin: 0 auto; display: flex; align-items: center; gap: 1.4rem; padding: 0 2rem; height: 50px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.gogcs-subnav-inner::-webkit-scrollbar { display: none; }
.gogcs-subnav-brand { font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--text-dark); white-space: nowrap; padding-right: 1.4rem; border-right: 1px solid var(--light-blue); }
.gogcs-subnav ul { display: flex; gap: 1.6rem; list-style: none; margin: 0; padding: 0; }
.gogcs-subnav a { font-family: 'Cinzel', serif; font-size: 0.6rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--text-mid); text-decoration: none; white-space: nowrap; padding: 0.5rem 0; border-bottom: 2px solid transparent; transition: color 0.2s, border-color 0.2s; }
.gogcs-subnav a:hover, .gogcs-subnav a.is-active { color: var(--crimson); border-color: var(--crimson); }
.wwb [id] { scroll-margin-top: 116px; }
@media (max-width: 600px) { .gogcs-subnav-inner { padding: 0 1rem; gap: 1rem; } .gogcs-subnav-brand { display: none; } }

/* ================================================
   WORSHIP & PRACTICES, revamp: grouped practice cards, feature panel, visitor timeline
   ================================================ */
.wpr .wpr-hero { position: relative; overflow: hidden; }
.wpr .wpr-hero-photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: 50% 40%; opacity: 0.16; filter: saturate(0.6); z-index: 0; }
.wpr .wpr-hero-inner { position: relative; z-index: 1; }
.wpr .wpr-title { font-size: clamp(2.6rem, 5.5vw, 4.2rem); line-height: 1.05; }
.wpr .wpr-quote { border: 0; padding: 0; margin: 1.6rem 0 0; font-family: 'Playfair Display', serif; font-style: italic; font-size: clamp(1.25rem, 2.2vw, 1.8rem); line-height: 1.45; color: rgba(255,255,255,0.9); max-width: 34ch; }
.wpr .wpr-quote cite { display: block; margin-top: 1rem; font-family: 'Cinzel', serif; font-style: normal; font-size: 0.62rem; letter-spacing: 0.18em; text-transform: uppercase; color: #7ea8e8; }
.wpr .wpr-quote cite a { color: white; text-decoration: underline; text-underline-offset: 3px; }
/* why strip */
.wpr .wpr-intro { max-width: 720px; margin-bottom: 2.6rem; }
.wpr .wpr-why-grid { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.wpr .wpr-why-item { padding: 1.6rem 1.5rem; border-top: 3px solid var(--royal); background: var(--off-white); }
.wpr .wpr-why-item:nth-child(2) { border-top-color: var(--crimson); }
.wpr .wpr-why-item span { display: block; font-family: 'Cinzel', serif; font-size: 0.62rem; letter-spacing: 0.22em; color: var(--text-muted); margin-bottom: 0.7rem; }
.wpr .wpr-why-item h3 { font-family: 'Playfair Display', serif; font-weight: 400; font-size: 1.4rem; line-height: 1.2; color: var(--text-dark); margin-bottom: 0.5rem; }
.wpr .wpr-why-item p { font-size: 0.95rem; line-height: 1.7; color: #3a4e70; }
/* group cards */
.wpr .wpr-group-head { max-width: 720px; margin-bottom: 2.4rem; }
.wpr .wpr-cards { display: grid; grid-template-columns: 1fr; gap: 1.2rem; }
.wpr .wpr-card { position: relative; padding: 1.7rem 1.6rem 1.5rem; background: white; border: 1px solid var(--light-blue); border-radius: 4px; transition: transform 0.2s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.2s; }
.wpr .wpr-card:hover { transform: translateY(-3px); box-shadow: 0 12px 30px rgba(40,80,160,0.12); }
.wpr .bg-white .wpr-card { background: var(--off-white); }
.wpr .wpr-card-ic { display: inline-flex; align-items: center; justify-content: center; width: 50px; height: 50px; border-radius: 50%; background: var(--royal-deep); color: #9fc0f0; margin-bottom: 1rem; }
.wpr .wpr-card:nth-child(even) .wpr-card-ic { background: var(--crimson-dark); color: #ffc7cf; }
.wpr .wpr-card-ic svg { width: 26px; height: 26px; }
.wpr .wpr-card h3 { font-family: 'Playfair Display', serif; font-weight: 400; font-size: 1.35rem; line-height: 1.2; color: var(--text-dark); margin-bottom: 0.5rem; }
.wpr .wpr-card p { font-size: 0.95rem; line-height: 1.7; color: #3a4e70; margin-bottom: 0.9rem; }
.wpr .wpr-refs { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.wpr .wpr-refs span { font-family: 'Cinzel', serif; font-size: 0.56rem; letter-spacing: 0.1em; color: var(--royal); background: rgba(40,80,160,0.08); border: 1px solid rgba(40,80,160,0.15); padding: 0.3rem 0.55rem; border-radius: 999px; white-space: nowrap; }
/* feature panel */
.wpr .wpr-feature { display: grid; grid-template-columns: 1fr; gap: 2rem; align-items: center; margin-top: 2.5rem; padding: 2.4rem 2rem; background: var(--royal-deep); color: white; border-left: 4px solid var(--crimson); }
.wpr .wpr-feature-art { display: flex; justify-content: center; color: #ffe27a; }
.wpr .wpr-feature-art svg { width: 120px; height: 160px; }
.wpr .wpr-feature h3 { font-family: 'Playfair Display', serif; font-weight: 400; font-size: clamp(1.6rem, 2.6vw, 2.2rem); line-height: 1.15; color: white; margin: 0.4rem 0 1rem; }
.wpr .wpr-feature p { font-size: 1rem; line-height: 1.85; color: rgba(255,255,255,0.78); margin-bottom: 1rem; }
/* timeline */
.wpr .wpr-service-lead { font-size: 1rem; line-height: 1.85; color: rgba(255,255,255,0.72); max-width: 640px; margin-bottom: 2.8rem; }
.wpr .wpr-timeline { list-style: none; margin: 0; padding: 0; position: relative; max-width: 820px; }
.wpr .wpr-timeline::before { content: ''; position: absolute; left: 21px; top: 10px; bottom: 10px; width: 2px; background: linear-gradient(180deg, rgba(126,168,232,0.6), rgba(180,20,40,0.6)); }
.wpr .wpr-step { position: relative; display: grid; grid-template-columns: 44px 1fr; gap: 1.4rem; padding-bottom: 2.4rem; }
.wpr .wpr-step:last-child { padding-bottom: 0; }
.wpr .wpr-step-dot { position: relative; z-index: 1; width: 44px; height: 44px; border-radius: 50%; background: var(--royal); color: white; display: flex; align-items: center; justify-content: center; font-family: 'Playfair Display', serif; font-size: 1.1rem; box-shadow: 0 0 0 4px var(--royal-deep); }
.wpr .wpr-step:nth-child(even) .wpr-step-dot { background: var(--crimson); }
.wpr .wpr-step-when { display: block; font-family: 'Cinzel', serif; font-size: 0.58rem; letter-spacing: 0.2em; text-transform: uppercase; color: #7ea8e8; margin: 0.6rem 0 0.3rem; }
.wpr .wpr-step h3 { font-family: 'Playfair Display', serif; font-weight: 400; font-size: 1.5rem; line-height: 1.2; color: white; margin-bottom: 0.5rem; }
.wpr .wpr-step p { font-size: 0.98rem; line-height: 1.8; color: rgba(255,255,255,0.78); margin-bottom: 0.8rem; }
.wpr .wpr-step-tags { display: flex; flex-wrap: wrap; gap: 0.4rem; }
.wpr .wpr-step-tags span { font-family: 'Cinzel', serif; font-size: 0.55rem; letter-spacing: 0.12em; text-transform: uppercase; color: white; border: 1px solid rgba(255,255,255,0.3); padding: 0.3rem 0.6rem; border-radius: 999px; }
.wpr [id] { scroll-margin-top: 116px; }
@media (min-width: 700px) {
  .wpr .wpr-why-grid { grid-template-columns: repeat(3, 1fr); }
  .wpr .wpr-cards { grid-template-columns: repeat(2, 1fr); }
  .wpr .wpr-feature { grid-template-columns: 200px 1fr; gap: 3rem; padding: 3rem; }
}
@media (min-width: 1000px) { .wpr .wpr-cards { grid-template-columns: repeat(3, 1fr); } }
@media (prefers-reduced-motion: reduce) { .wpr .wpr-card { transition: none; } }

/* ================================================================
   EVENT COUNTDOWNS + recurring event cards (2026-09-18)
   ================================================================ */
.gogcs-countdown { display:inline-flex; align-items:stretch; gap:0.45rem; margin-top:1.1rem; font-family:'Cinzel',serif; }
.gogcs-countdown .cd-cell { display:flex; flex-direction:column; align-items:center; min-width:3.4rem; padding:0.55rem 0.5rem 0.45rem; background:rgba(255,255,255,0.1); border:1px solid rgba(255,255,255,0.22); border-radius:3px; color:#fff; }
.gogcs-countdown .cd-cell b { font-size:1.35rem; line-height:1; font-variant-numeric:tabular-nums; }
.gogcs-countdown .cd-cell i { font-style:normal; font-size:0.5rem; letter-spacing:0.14em; text-transform:uppercase; opacity:0.7; margin-top:0.35rem; }
.gogcs-countdown .cd-state { display:none; align-self:center; font-size:0.62rem; letter-spacing:0.14em; text-transform:uppercase; color:#fff; }
.gogcs-countdown.is-live .cd-cell { display:none; }
.gogcs-countdown.is-live .cd-state { display:inline-flex; align-items:center; gap:0.5rem; padding:0.5rem 0.9rem; background:var(--crimson,#b41428); border-radius:3px; }
.gogcs-countdown.is-live .cd-state::before { content:''; width:8px; height:8px; border-radius:50%; background:#fff; animation:cdPulse 1.2s ease-in-out infinite; }
@keyframes cdPulse { 0%,100% { opacity:1; transform:scale(1);} 50% { opacity:0.35; transform:scale(0.7);} }
@media (prefers-reduced-motion: reduce) { .gogcs-countdown.is-live .cd-state::before { animation:none; } }
/* compact: one line, dark text for light cards */
.gogcs-countdown.is-compact { gap:0.3rem; margin-top:0.8rem; }
.gogcs-countdown.is-compact .cd-cell { min-width:2.7rem; padding:0.35rem 0.35rem 0.3rem; background:rgba(40,80,160,0.07); border-color:rgba(40,80,160,0.18); color:var(--royal-deep,#0d1f47); }
.gogcs-countdown.is-compact .cd-cell b { font-size:1rem; }
.gogcs-countdown.is-compact .cd-cell i { font-size:0.45rem; }
.gogcs-countdown.is-compact .cd-state { color:#fff; }
.gogcs-countdown[data-has-time="0"] .cd-cell:nth-child(4) { display:none; }
/* home cards */
.home-event-card .he-repeat { display:inline-block; font-family:'Cinzel',serif; font-size:0.5rem; letter-spacing:0.14em; text-transform:uppercase; color:var(--crimson,#b41428); margin:0.4rem 0 0.3rem; }
/* Events page featured cards (styles were inline before) */
.featured-event { display:grid; grid-template-columns:300px 1fr; gap:2.5rem; align-items:center; padding:2.5rem; background:rgba(255,255,255,0.05); border:1px solid rgba(255,255,255,0.1); border-radius:2px; }
.featured-event .fe-photo { width:300px; height:200px; object-fit:cover; border-radius:2px; }
.featured-event .fe-date { width:300px; height:200px; display:flex; flex-direction:column; align-items:center; justify-content:center; background:rgba(255,255,255,0.07); border:1px solid rgba(255,255,255,0.12); border-radius:2px; color:#fff; font-family:'Cinzel',serif; text-transform:uppercase; letter-spacing:0.12em; }
.featured-event .fe-dow { font-size:0.6rem; opacity:0.6; }
.featured-event .fe-day { font-family:'Playfair Display',serif; font-size:4.5rem; line-height:1; margin:0.3rem 0; }
.featured-event .fe-month { font-size:0.6rem; opacity:0.8; }
.featured-event .fe-badges { display:flex; flex-wrap:wrap; gap:0.5rem; margin-bottom:1rem; }
.featured-event .event-badge { display:inline-block; font-family:'Cinzel',serif; font-size:0.6rem; letter-spacing:0.15em; color:#fff; text-transform:uppercase; background:rgba(255,255,255,0.15); padding:0.35rem 1rem; border-radius:2px; }
.featured-event .event-badge.is-repeat { background:transparent; border:1px solid rgba(255,255,255,0.35); }
.featured-event .fe-title { font-family:'Cinzel',serif; font-size:0.85rem; letter-spacing:0.1em; color:#fff; text-transform:uppercase; margin-bottom:0.7rem; }
.featured-event .fe-text { font-size:0.92rem; color:rgba(255,255,255,0.65); line-height:1.8; margin-bottom:0.8rem; }
.featured-event .fe-meta { font-family:'Cinzel',serif; font-size:0.55rem; letter-spacing:0.1em; color:rgba(255,255,255,0.45); text-transform:uppercase; }
@media (max-width:760px) { .featured-event { grid-template-columns:1fr; padding:1.6rem; } .featured-event .fe-photo, .featured-event .fe-date { width:100%; height:170px; } }
/* recurring cards: next occurrence line */
.event-card .event-next { display:flex; flex-wrap:wrap; align-items:center; gap:0.6rem; margin-top:0.9rem; font-family:'Cinzel',serif; font-size:0.62rem; letter-spacing:0.1em; text-transform:uppercase; color:rgba(13,31,71,0.6); }
.event-card .event-next strong { color:var(--royal-deep,#0d1f47); }
.event-card .event-next .gogcs-countdown { margin-top:0; }

/* ================================================================
   EVENTS PAGE revamp (2026-09-18): hero wash, light upcoming cards,
   navy past-events band
   ================================================================ */
.evp-hero { position:relative; overflow:hidden; }
.evp-hero-photo { position:absolute; inset:0; width:100%; height:100%; object-fit:cover; opacity:0.18; filter:saturate(0.6); pointer-events:none; }
.evp-hero::after { content:''; position:absolute; inset:0; background:linear-gradient(90deg, rgba(13,31,71,0.95) 0%, rgba(13,31,71,0.75) 55%, rgba(13,31,71,0.35) 100%); pointer-events:none; }
.evp-hero-grid { position:relative; z-index:1; display:grid; grid-template-columns:1.25fr 0.75fr; gap:3rem; align-items:center; }
.evp-lead { font-size:1.05rem; color:rgba(255,255,255,0.72); line-height:1.85; max-width:600px; }
.evp-jump { display:flex; flex-wrap:wrap; gap:0.6rem; margin-top:1.8rem; }
.evp-jump a { font-family:'Cinzel',serif; font-size:0.6rem; letter-spacing:0.14em; text-transform:uppercase; color:#fff; text-decoration:none; padding:0.6rem 1rem; border:1px solid rgba(255,255,255,0.3); border-radius:2px; transition:background 0.25s, border-color 0.25s; }
.evp-jump a:hover { background:rgba(255,255,255,0.1); border-color:rgba(255,255,255,0.6); }
.evp-next { display:flex; flex-direction:column; gap:0.5rem; padding:1.8rem 1.9rem; background:rgba(255,255,255,0.06); border:1px solid rgba(255,255,255,0.16); border-top:3px solid var(--crimson,#b41428); border-radius:3px; color:#fff; text-decoration:none; backdrop-filter:blur(4px); transition:background 0.25s; }
.evp-next:hover { background:rgba(255,255,255,0.1); }
.evp-next-tag { font-family:'Cinzel',serif; font-size:0.55rem; letter-spacing:0.18em; text-transform:uppercase; color:#e8b31a; }
.evp-next-title { font-family:'Cinzel',serif; font-size:0.9rem; letter-spacing:0.08em; text-transform:uppercase; line-height:1.45; }
.evp-next-when { font-size:0.95rem; color:rgba(255,255,255,0.7); }
.evp-next .gogcs-countdown { margin-top:0.6rem; }
@media (max-width:900px) { .evp-hero-grid { grid-template-columns:1fr; gap:2rem; } .evp-hero::after { background:rgba(13,31,71,0.85); } }

/* upcoming cards on a light ground */
.evp-list { display:flex; flex-direction:column; gap:1.2rem; margin-top:2.5rem; }
.evp-upcoming .featured-event { background:#fff; border:1px solid rgba(40,80,160,0.1); border-left:3px solid var(--royal,#2850a0); box-shadow:0 4px 18px rgba(13,31,71,0.05); padding:2rem 2.2rem; gap:2.2rem; grid-template-columns:220px 1fr; transition:transform 0.25s, box-shadow 0.25s; }
.evp-upcoming .featured-event:hover { transform:translateY(-2px); box-shadow:0 12px 32px rgba(13,31,71,0.09); }
.evp-upcoming .featured-event.is-next { border-left-color:var(--crimson,#b41428); }
.evp-upcoming .fe-photo, .evp-upcoming .fe-date { width:220px; height:170px; }
.evp-upcoming .fe-date { background:var(--royal-deep,#0d1f47); border:0; color:#fff; }
.evp-upcoming .is-next .fe-date { background:var(--crimson,#b41428); }
.evp-upcoming .fe-dow { opacity:0.7; }
.evp-upcoming .fe-day { font-size:4rem; }
.evp-upcoming .fe-month { opacity:0.85; }
.evp-upcoming .event-badge { background:var(--royal-deep,#0d1f47); color:#fff; }
.evp-upcoming .event-badge.is-repeat { background:transparent; color:var(--crimson,#b41428); border:1px solid rgba(180,20,40,0.35); }
.evp-upcoming .is-next .event-badge:first-child { background:var(--crimson,#b41428); }
.evp-upcoming .fe-title { color:var(--royal-deep,#0d1f47); font-size:0.9rem; }
.evp-upcoming .fe-text { color:#3a4e70; }
.evp-upcoming .fe-meta { color:var(--crimson,#b41428); }
.evp-upcoming .gogcs-countdown .cd-cell { background:rgba(40,80,160,0.06); border-color:rgba(40,80,160,0.18); color:var(--royal-deep,#0d1f47); }
.evp-upcoming .gogcs-countdown .cd-cell i { opacity:0.6; }
@media (max-width:760px) { .evp-upcoming .featured-event { grid-template-columns:1fr; padding:1.4rem; } .evp-upcoming .fe-photo, .evp-upcoming .fe-date { width:100%; height:150px; } }

/* recurring block on off-white: give cards a white face */
.evp-weekly .event-card { background:#fff; box-shadow:0 2px 10px rgba(13,31,71,0.04); }

/* past events on navy */
.evp-past .past-events-grid { margin-top:2.5rem; }
.evp-past .past-event-card { box-shadow:0 10px 30px rgba(0,0,0,0.25); }
.evp-past .past-event-card:hover { box-shadow:0 18px 40px rgba(0,0,0,0.35); }
/* event flyers are portrait: show them whole, linked to the full image */
.evp-upcoming .fe-photo-link { display:block; width:220px; }
.evp-upcoming .fe-photo { width:220px; height:auto; max-height:300px; object-fit:contain; background:var(--royal-deep,#0d1f47); border-radius:2px; box-shadow:0 6px 18px rgba(13,31,71,0.18); transition:transform 0.25s; }
.evp-upcoming .fe-photo-link:hover .fe-photo { transform:scale(1.02); }
@media (max-width:760px) { .evp-upcoming .fe-photo-link, .evp-upcoming .fe-photo { width:100%; max-height:none; height:auto; } }
