/* =========================================================
   EAGLE GRACE WORSHIP CENTRE
   THE PROPHETIC CAPITOL
   CHARCOAL + WHITE + GOLD SHARED WEBSITE STYLES
   ========================================================= */

:root {
    --black: #1d1d1d;
    --black-2: #262525;
    --black-3: #2d2c2c;
    --navy: #151a25;
    --navy-2: #202735;
    --gold: #b5863a;
    --gold-light: #c79b52;
    --gold-dark: #8f682d;
    --white: #f5f5f5;
    --text: #e8e8e8;
    --muted: #b7b7b7;
    --line: rgba(255,255,255,.14);
    --line-light: rgba(255,255,255,.08);
    --shadow: 0 22px 60px rgba(0,0,0,.45);
    --container: 1440px;
    --transition: .3s ease;
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body {
    font-family:"Inter",sans-serif;
    background:var(--black);
    color:var(--white);
    line-height:1.7;
    overflow-x:hidden;
}
body, button, input, textarea { -webkit-font-smoothing:antialiased; }
img { display:block; max-width:100%; }
a { color:inherit; text-decoration:none; }
ul { list-style:none; }
button,input,textarea { font:inherit; }
button { cursor:pointer; }

.container {
    width:min(92%, var(--container));
    margin-inline:auto;
}

.section, .section-padding { padding:100px 0; }
.dark-section { background:var(--black-2); }

h1,h2,h3,h4,h5,h6 {
    font-family:"Cormorant Garamond",serif;
    line-height:1.12;
}
h1 { font-size:clamp(3rem,7vw,6rem); }
h2 { font-size:clamp(2.4rem,5vw,4rem); }
h3 { font-size:1.8rem; }
p { color:var(--text); }

.eyebrow,.section-label {
    display:inline-block;
    color:var(--gold);
    font-size:.75rem;
    font-weight:700;
    letter-spacing:2.8px;
    text-transform:uppercase;
    margin-bottom:14px;
}

.gold-line {
    width:70px;
    height:2px;
    background:var(--gold);
    margin:22px 0;
}
.gold-line.center,
.text-center .gold-line { margin-left:auto; margin-right:auto; }
.text-center { text-align:center; }

.section-heading { max-width:820px; margin:0 auto 55px; }
.section-heading.light h2 { color:var(--white); }
.section-heading p { max-width:720px; margin:0 auto; }

.btn {
    display:inline-flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    min-height:52px;
    padding:0 28px;
    border:1px solid transparent;
    font-size:.88rem;
    font-weight:700;
    transition:var(--transition);
}
.btn-primary { background:var(--gold); color:#151a25; }
.btn-primary:hover { background:var(--gold-light); transform:translateY(-3px); }
.btn-outline,.btn-secondary {
    background:transparent;
    border-color:var(--gold);
    color:var(--gold);
}
.btn-outline:hover,.btn-secondary:hover { background:var(--gold); color:#151a25; transform:translateY(-3px); }
.text-link { color:var(--gold); font-weight:700; display:inline-flex; gap:10px; align-items:center; }
.text-link:hover { gap:15px; }

/* ================= HEADER ================= */
.site-header {
    position:relative;
    z-index:1000;
    background:var(--black);
    border-bottom:1px solid rgba(255,255,255,.10);
}

.nav-container {
    width:100%;
    max-width:1600px;
    min-height:108px;
    padding:0 38px;
    margin-inline:auto;
    display:flex;
    align-items:center;
    gap:42px;
}

.logo {
    order:1;
    display:flex;
    align-items:center;
    flex:0 0 auto;
    margin:0;
    position:relative;
    z-index:2;
}

.logo img {
    width:112px;
    height:auto;
    object-fit:contain;
}

.main-nav {
    order:2;
    flex:1 1 auto;
    min-width:0;
    min-height:62px;
    padding:0 28px;
    display:flex;
    flex-direction:row;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    flex-wrap:nowrap;
    background:var(--navy);
    border:1px solid rgba(255,255,255,.08);
    border-radius:999px;
    box-shadow:0 12px 35px rgba(0,0,0,.28);
}

.main-nav a {
    position:relative;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    color:#f2f2f2;
    font-size:1.08rem;
    font-weight:600;
    letter-spacing:.1px;
    padding:20px 14px;
    border-radius:999px;
    white-space:nowrap;
    transition:var(--transition);
}

.main-nav a::after {
    content:"";
    position:absolute;
    left:14px;
    right:14px;
    bottom:10px;
    width:auto;
    height:2px;
    background:var(--gold);
    transform:scaleX(0);
    transform-origin:center;
    transition:var(--transition);
}

.main-nav a:hover,
.main-nav a.active {
    color:var(--gold);
}

.main-nav a:hover::after,
.main-nav a.active::after {
    width:auto;
    transform:scaleX(1);
}

.menu-toggle {
    order:3;
    display:none;
    width:46px;
    height:46px;
    align-items:center;
    justify-content:center;
    border:1px solid var(--line);
    background:transparent;
    color:var(--gold);
}

/* ================= HERO ================= */
.hero,.page-hero {
    position:relative;
    overflow:hidden;
}
.hero {
    min-height:calc(100vh - 88px);
    display:flex;
    align-items:center;
    background:linear-gradient(120deg,#171717 0%,#1d1d1d 58%,#292828 100%);
}
.hero::before,.page-hero::before {
    content:"";
    position:absolute;
    width:650px;
    height:650px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:50%;
    right:-280px;
    top:-250px;
}
.hero-overlay,.page-hero-overlay { position:absolute; inset:0; background:linear-gradient(90deg,rgba(0,0,0,.28),rgba(0,0,0,.05)); }
.hero-content,.page-hero-content { position:relative; z-index:2; }
.hero-content { max-width:900px; text-align:left; }
.hero-label { color:var(--gold); font-size:1rem; letter-spacing:4px; font-weight:700; }
.hero h1 { margin:18px 0 20px; max-width:800px; text-align:left; }
.hero h1 span { display:block; color:var(--gold); }
.hero p { max-width:800px; font-size:1.18rem; margin:0 0 30px; text-align:left; }
.hero-buttons,.cta-buttons { display:flex; flex-wrap:wrap; justify-content:flex-start; gap:14px; }

.page-hero {
    min-height:420px;
    display:flex;
    align-items:center;
    background:linear-gradient(135deg,#171717,#262525 55%,#292828 100%);
}
.page-hero-content { max-width:850px; }
.page-hero h1 { margin-bottom:18px; }
.page-hero p { max-width:720px; }

/* ================= HOME ================= */
.welcome { background:var(--black); }
.welcome .section-heading { text-align:center; }
.welcome-content { max-width:850px; margin:auto; }
.welcome-content p { margin-bottom:18px; }
.welcome-content .lead,.lead { font-size:1.12rem; color:var(--text); }
.founder { background:var(--black-2); }
.founder-grid { display:grid; grid-template-columns:1fr 1fr; gap:75px; align-items:center; }
.founder-images { display:grid; grid-template-columns:1.2fr .8fr; gap:16px; align-items:end; }
.founder-image { overflow:hidden; background:var(--black-3); border:1px solid var(--line); }
.founder-image img { width:100%; height:100%; object-fit:cover; }
.founder-image.main-image { aspect-ratio:4/5; }
.founder-image.secondary-image { aspect-ratio:4/5; transform:translateY(35px); }
.founder-content p { margin-bottom:18px; }
.founder-content .btn { margin-top:10px; }

.vision { background:var(--black); }
.vision-box { max-width:900px; margin:auto; padding:50px; border:1px solid var(--line); background:linear-gradient(135deg,#262525,#151a25); }
.vision-box p { font-size:1.05rem; }

.ministries { background:var(--black-2); }
.ministry-grid,.expression-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:25px; }
.ministry-card,.expression-card,.vision-card,.mission-card,.value-card,.location-card,.focus-card,.category-card,.privilege-item,.service-card,.contact-card {
    background:var(--black);
    border:1px solid var(--line);
}
.ministry-card { padding:35px; transition:var(--transition); }
.ministry-card:hover,.expression-card:hover,.vision-card:hover,.mission-card:hover,.value-card:hover,.location-card:hover,.focus-card:hover,.category-card:hover,.service-card:hover,.contact-card:hover { transform:translateY(-5px); border-color:rgba(255,255,255,.5); }
.ministry-card .card-icon,.card-icon { width:58px; height:58px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold); margin-bottom:22px; }
.ministry-card h3 { margin-bottom:12px; }

.location { background:var(--black); }
.location-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.location-card { padding:32px; }
.location-card h3 { margin-bottom:10px; }
.location-card .address { color:var(--text); }

.partnership-preview { background:var(--black-2); }
.partnership-content { max-width:850px; margin:auto; text-align:center; }
.partnership-content p { margin-bottom:25px; }

.cta { background:linear-gradient(135deg,#151a25,#202735); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.cta-content { text-align:center; max-width:800px; margin:auto; }
.cta-content h2 { margin-bottom:18px; }
.cta-content p { max-width:650px; margin:0 auto 28px; }
.cta-buttons { justify-content:center; }

/* ================= ABOUT ================= */
.about-intro-grid,.founder-about-grid,.mission-grid { display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
.about-intro-content p,.founder-about-content p,.mission-card p,.expression-card p { margin-bottom:18px; }
.about-image { position:relative; }
.about-image img { width:100%; aspect-ratio:4/5; object-fit:cover; }
.about-image::after { content:""; position:absolute; inset:18px -18px -18px 18px; border:1px solid var(--gold); z-index:-1; }
.about-image-secondary img { aspect-ratio:16/10; }
.story-content { max-width:850px; margin:auto; }
.story-content p { margin-bottom:18px; }
.founder-about-grid { grid-template-columns:.9fr 1.1fr; }
.founder-about-grid .about-image img { aspect-ratio:1/1; }
.vision-box h3,.mission-card h3 { margin-bottom:14px; color:var(--gold); }
.mission-card,.vision-box { padding:42px; }
.expression-card { padding:40px; transition:var(--transition); }
.expression-card h3 { margin-bottom:15px; }
.values { background:var(--black); }
.values-grid { display:grid; grid-template-columns:repeat(5,1fr); gap:16px; }
.value-card { padding:30px 22px; transition:var(--transition); }
.value-letter { display:block; color:var(--gold); font:700 3.2rem/1 "Cormorant Garamond",serif; margin-bottom:12px; }
.value-card h3 { font-family:Inter,sans-serif; font-size:1rem; margin-bottom:10px; }
.value-card p { font-size:.84rem; }

/* ================= SERVICES ================= */
.services-intro { background:var(--black); }
.service-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.service-card { padding:38px; transition:var(--transition); min-height:380px; display:flex; flex-direction:column; }
.service-number { color:rgba(255,255,255,.35); font:700 3.5rem/1 "Cormorant Garamond",serif; }
.service-icon { width:62px; height:62px; border:1px solid var(--gold); color:var(--gold); display:flex; align-items:center; justify-content:center; margin:15px 0 22px; }
.service-card h3 { margin-bottom:15px; }
.service-description { color:var(--text); }
.service-time { margin-top:auto; padding-top:18px; border-top:1px solid var(--line-light); color:var(--gold-light); font-size:.86rem; font-weight:600; }
.service-location { margin-top:7px; color:var(--muted); font-size:.8rem; }
.service-divider { width:45px; height:2px; background:var(--gold); margin:20px 0; }
.service-cta { margin-top:30px; text-align:center; }
.time-item { display:flex; gap:10px; align-items:center; color:var(--text); }
.time-item i { color:var(--gold); }

/* ================= EVENTS ================= */
.events-intro { background:var(--black); }
.events-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:24px; }
.event-card { background:var(--black-2); border:1px solid var(--line); overflow:hidden; transition:var(--transition); }
.event-card:hover { transform:translateY(-7px); border-color:rgba(255,255,255,.5); box-shadow:var(--shadow); }
.event-card-top { min-height:125px; padding:28px; display:flex; align-items:center; justify-content:space-between; background:linear-gradient(135deg,#151a25,#202735); }
.event-number { color:rgba(255,255,255,.35); font:700 4rem/1 "Cormorant Garamond",serif; }
.event-icon { width:58px; height:58px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold); }
.event-card-content { padding:32px; }
.event-frequency { display:block; color:var(--gold); font-size:.7rem; font-weight:700; letter-spacing:2px; margin-bottom:8px; }
.event-card h3 { min-height:60px; margin-bottom:15px; }
.event-divider { width:45px; height:2px; background:var(--gold); margin-bottom:20px; }
.event-date { display:flex; gap:10px; align-items:center; color:var(--gold-light); font-size:.84rem; font-weight:600; margin-bottom:20px; }
.event-date i { color:var(--gold); }
.event-card p { font-size:.88rem; }
.event-holder { margin-top:24px; padding:13px; border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.06); }
.event-holder span { display:flex; gap:9px; align-items:center; color:var(--gold); font-size:.76rem; font-weight:600; }
.event-note-box { max-width:900px; margin:auto; padding:40px; display:flex; gap:28px; align-items:center; background:var(--black-2); border:1px solid var(--line); }
.event-note-icon { flex:0 0 68px; width:68px; height:68px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold); }
.event-note-content h2 { margin-bottom:10px; }

/* ================= GALLERY ================= */
.gallery-section,.gallery-intro { background:var(--black); }
.gallery-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.gallery-item { overflow:hidden; background:var(--black); border:1px solid var(--line); }
.gallery-item img { width:100%; aspect-ratio:4/5; object-fit:cover; transition:.55s ease; }
.gallery-item:hover img { transform:scale(1.05); }
.gallery-message-box { max-width:900px; margin:auto; display:flex; align-items:center; gap:28px; padding:42px; background:linear-gradient(135deg,#262525,#151a25); border:1px solid var(--line); }
.gallery-message-icon { flex:0 0 68px; width:68px; height:68px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold); }
.gallery-message-content h2 { margin-bottom:10px; }

/* ================= PARTNERSHIP ================= */
.partnership-intro,.partnership-focus,.partnership-categories,.partner-privileges { background:var(--black); }
.partnership-intro-content { max-width:850px; margin:auto; text-align:center; }
.partnership-message { background:var(--black-2); }
.message-box { max-width:950px; margin:auto; padding:48px; border-left:3px solid var(--gold); background:var(--black); }
.message-box p { margin-bottom:17px; }
.message-signature { color:var(--gold); font-weight:700; margin-top:25px; }
.focus-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; }
.focus-card { padding:30px; transition:var(--transition); }
.focus-card i { color:var(--gold); margin-right:10px; }
.focus-card h3 { margin-bottom:10px; }
.category-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.category-card { padding:35px 24px; text-align:center; transition:var(--transition); }
.category-card.featured { border-color:var(--gold); }
.category-number { color:rgba(255,255,255,.3); font:700 2.5rem/1 "Cormorant Garamond",serif; margin-bottom:10px; }
.category-icon { width:55px; height:55px; margin:0 auto 18px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold); }
.category-card h3 { color:var(--gold); margin-bottom:7px; }
.category-card p { font-size:.8rem; }
.privileges-list { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }
.privilege-item { padding:20px; display:flex; gap:14px; transition:var(--transition); }
.privilege-icon { color:var(--gold); }
.privilege-item p { font-size:.85rem; }
.bank-card { max-width:850px; margin:auto; padding:45px; background:linear-gradient(135deg,#262525,#151a25); border:1px solid var(--line); }
.bank-details { display:flex; flex-direction:column; border:1px solid var(--line-light); }
.bank-row { display:grid; grid-template-columns:1fr 1.4fr; border-bottom:1px solid var(--line-light); }
.bank-row:last-child { border-bottom:0; }
.bank-label,.bank-value { padding:17px 20px; }
.bank-label { color:var(--gold); font-size:.72rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; }
.bank-value { color:var(--white); font-size:.88rem; }
.bank-note { margin-top:18px; color:var(--muted); font-size:.78rem; }

/* ================= CONTACT ================= */
.contact-intro { background:var(--black); }
.contact-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.contact-card { padding:28px 24px; transition:var(--transition); }
.contact-card-icon { width:54px; height:54px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold); margin-bottom:18px; }
.contact-label { display:block; color:var(--gold); font-size:.68rem; font-weight:700; letter-spacing:1.5px; margin-bottom:7px; }
.contact-card h3 { font-size:1.4rem; margin-bottom:9px; }
.contact-card p { font-size:.82rem; }
.contact-card a:hover { color:var(--gold); }
.contact-form-section { background:var(--black-2); }
.contact-form-wrapper { display:grid; grid-template-columns:.85fr 1.15fr; gap:65px; align-items:start; }
.contact-form-intro h2 { margin-bottom:10px; }
.contact-form-intro > p { margin-bottom:25px; }
.form-email-notice { display:flex; gap:14px; align-items:center; padding:17px; border:1px solid var(--line); background:rgba(255,255,255,.06); }
.form-email-notice > i { color:var(--gold); }
.form-email-notice div { display:flex; flex-direction:column; }
.form-email-notice strong { font-size:.78rem; }
.form-email-notice span { color:var(--gold); font-size:.78rem; }
.contact-form { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.form-group { display:flex; flex-direction:column; gap:7px; }
.form-group.full-width { grid-column:1/-1; }
.form-group label { color:var(--gold); font-size:.76rem; font-weight:600; letter-spacing:.4px; }
.form-group input,.form-group textarea { width:100%; padding:17px 20px; border:1px solid rgba(255,255,255,.75); background:#f5f5f5; color:#1d1d1d; outline:0; resize:vertical; transition:var(--transition); border-radius:34px; }
.form-group textarea { min-height:260px; border-radius:26px; }
.form-group input:focus,.form-group textarea:focus { border-color:var(--gold); box-shadow:0 0 0 3px rgba(181,134,58,.18); background:#ffffff; }
.form-group input::placeholder,.form-group textarea::placeholder { color:#777; opacity:1; }
.form-submit { padding-top:4px; }
.contact-message { background:var(--black); }
.contact-message-box { max-width:950px; margin:auto; display:flex; align-items:center; gap:28px; padding:42px; background:linear-gradient(135deg,#262525,#151a25); border:1px solid var(--line); }
.contact-message-icon { flex:0 0 68px; width:68px; height:68px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold); }
.contact-message-content h2 { margin-bottom:10px; }
.contact-message-content p { margin-bottom:22px; }
.contact-actions { display:flex; flex-wrap:wrap; gap:12px; }
.social-section { background:var(--black-2); }
.social-connect-grid { max-width:900px; margin:auto; display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
.social-connect-card { text-align:center; padding:30px 20px; background:var(--black); border:1px solid var(--line); transition:var(--transition); }
.social-connect-card:hover { transform:translateY(-5px); border-color:var(--gold); }
.social-connect-icon { width:58px; height:58px; display:flex; align-items:center; justify-content:center; margin:0 auto 15px; border:1px solid var(--gold); color:var(--gold); }
.social-connect-card h3 { margin-bottom:4px; }
.social-connect-card span { color:var(--muted); font-size:.76rem; }
.location-section { background:var(--black); }
.location-box { max-width:900px; margin:auto; display:flex; align-items:center; gap:28px; padding:42px; background:var(--black-2); border:1px solid var(--line); }
.location-icon { flex:0 0 68px; width:68px; height:68px; display:flex; align-items:center; justify-content:center; border:1px solid var(--gold); color:var(--gold); }
.location-content h2 { margin-bottom:7px; }

/* ================= BOXED FOOTER ================= */
.site-footer {
    background:var(--black);
    padding:72px 0 30px;
}
.footer-card {
    position:relative;
    border:1px solid rgba(255,255,255,.22);
    border-radius:28px;
    overflow:hidden;
    background:var(--black-2);
    display:grid;
    grid-template-columns:30% 70%;
}
.footer-brand {
    padding:72px 58px 58px;
    border-right:1px solid rgba(255,255,255,.18);
}
.footer-brand img {
    width:170px;
    max-width:100%;
    margin-bottom:24px;
}
.footer-brand p {
    color:var(--white);
    font-size:.9rem;
    line-height:1.7;
}
.footer-brand p span { color:var(--gold); }
.footer-brand-social { margin-top:26px; }
.footer-brand-social a {
    width:40px;
    height:40px;
    border:1px solid rgba(181,134,58,.65);
    color:var(--gold);
}
.footer-brand-social a:hover {
    background:var(--gold);
    color:var(--black);
}
.footer-main {
    display:grid;
    grid-template-columns:1fr 1.25fr 1fr;
    gap:44px;
    padding:72px 58px 62px;
}
.footer-column h3 {
    font-family:"Inter",sans-serif;
    color:var(--white);
    font-size:1rem;
    font-weight:700;
    letter-spacing:.2px;
    margin-bottom:25px;
}
.footer-links { display:flex; flex-direction:column; align-items:flex-start; }
.footer-links a {
    color:var(--muted);
    font-size:.86rem;
    margin-bottom:11px;
    transition:var(--transition);
}
.footer-links a:hover { color:var(--gold); transform:translateX(4px); }
.footer-contact p {
    display:flex;
    flex-direction:column;
    gap:3px;
    margin-bottom:16px;
    font-size:.82rem;
    line-height:1.55;
}
.footer-contact strong {
    color:var(--gold);
    font-size:.68rem;
    letter-spacing:1.2px;
}
.footer-contact span { color:var(--muted); }
.footer-connect p {
    color:var(--muted);
    font-size:.84rem;
    line-height:1.7;
    max-width:300px;
    margin-bottom:24px;
}
.footer-cta {
    display:inline-flex;
    align-items:center;
    gap:10px;
    color:var(--white);
    border:1px solid var(--gold);
    border-radius:999px;
    padding:11px 18px;
    font-size:.78rem;
    font-weight:700;
    transition:var(--transition);
}
.footer-cta i { color:var(--gold); }
.footer-cta:hover { background:var(--gold); color:var(--black); }
.footer-cta:hover i { color:var(--black); }
.footer-bottom {
    grid-column:1 / -1;
    border-top:1px solid rgba(255,255,255,.14);
    padding:20px 34px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:20px;
    text-align:center;
}
.footer-bottom p { color:#a7a7a7; font-size:.74rem; }
.footer-bottom p:last-child { color:var(--gold); }

/* ================= ACCESSIBILITY ================= */
a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible { outline:2px solid var(--gold); outline-offset:3px; }

/* ================= GALLERY IMAGE LIGHTBOX ================= */
.gallery-image-button {
    display: block;
    width: 100%;
    padding: 0;
    margin: 0;
    border: 0;
    background: transparent;
    cursor: zoom-in;
    color: inherit;
    font: inherit;
    text-align: inherit;
}

.gallery-image-button:focus-visible {
    outline: 2px solid var(--gold);
    outline-offset: 3px;
}

.gallery-item img {
    display: block;
    cursor: zoom-in;
}

.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 9999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 40px;
    background: rgba(4, 12, 27, 0.92);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transition: opacity 0.25s ease, visibility 0.25s ease;
}

.gallery-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.gallery-lightbox-image {
    display: block;
    max-width: min(92vw, 1200px);
    max-height: 88vh;
    width: auto;
    height: auto;
    object-fit: contain;
    border: 1px solid rgba(181, 134, 58, 0.55);
    box-shadow: 0 25px 80px rgba(0, 0, 0, 0.7);
    transform: scale(0.96);
    transition: transform 0.25s ease;
}

.gallery-lightbox.is-open .gallery-lightbox-image {
    transform: scale(1);
}

.gallery-lightbox-close {
    position: absolute;
    top: 22px;
    right: 28px;
    width: 48px;
    height: 48px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(181, 134, 58, 0.7);
    border-radius: 50%;
    background: #151a25;
    color: #fff;
    font-size: 1.2rem;
    cursor: pointer;
    transition: 0.2s ease;
}

.gallery-lightbox-close:hover {
    background: var(--gold);
    color: #ffffff;
}

.gallery-lightbox-prev,
.gallery-lightbox-next {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 58px;
    height: 58px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid rgba(181, 134, 58, 0.7);
    border-radius: 50%;
    background: #151a25;
    color: #fff;
    font-size: 1.35rem;
    cursor: pointer;
    z-index: 2;
    transition: 0.2s ease;
}

.gallery-lightbox-prev { left: 28px; }
.gallery-lightbox-next { right: 28px; }

.gallery-lightbox-prev:hover,
.gallery-lightbox-next:hover {
    background: var(--gold);
    color: #ffffff;
}

.gallery-lightbox-prev:disabled,
.gallery-lightbox-next:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.gallery-lightbox-counter {
    position: absolute;
    left: 50%;
    bottom: 22px;
    transform: translateX(-50%);
    color: #fff;
    font-size: 0.9rem;
    font-weight: 600;
    letter-spacing: 1px;
    background: rgba(10, 31, 68, 0.85);
    border: 1px solid rgba(212, 175, 55, 0.45);
    border-radius: 999px;
    padding: 7px 14px;
}

body.lightbox-open {
    overflow: hidden;
}

/* =========================================================
   HOMEPAGE HERO — FAMILY IMAGE
   Homepage only. The inner pages keep their existing layout.
   ========================================================= */
.home-hero {
    min-height:calc(100vh - 108px);
    isolation:isolate;
    background:
        radial-gradient(circle at 12% 55%, rgba(255,255,255,.10), transparent 30%),
        linear-gradient(120deg, #171717 0%, #1d1d1d 55%, #292828 100%);
}

.home-hero .hero-overlay {
    background:linear-gradient(90deg, rgba(0,0,0,.12), rgba(0,0,0,.04));
    z-index:1;
}

.home-hero-content {
    width:min(92%, var(--container));
    max-width:none;
    min-height:calc(100vh - 108px);
    display:flex;
    flex-direction:column;
    justify-content:center;
    align-items:flex-start;
    padding-right:48%;
    padding-left:0;
    text-align:left;
}

.home-hero .hero-label {
    font-size:1.02rem;
    letter-spacing:4px;
    margin-bottom:18px;
}

.home-hero h1 {
    font-size:clamp(4.1rem, 6.5vw, 6.6rem);
    line-height:.92;
    max-width:650px;
    margin:0 0 22px;
}

.home-hero h1 span {
    display:block;
    margin-top:10px;
}

.home-hero .gold-line {
    width:72px;
    height:3px;
    margin:0 0 24px;
}

.home-hero p {
    max-width:650px;
    margin:0 0 32px;
    font-size:1.12rem;
    line-height:1.65;
}

.home-hero .hero-buttons {
    gap:14px;
}

.home-hero .btn {
    min-height:58px;
    padding:0 30px;
    font-size:.92rem;
}

.home-hero .btn i {
    font-size:.82rem;
    transition:transform .25s ease;
}

.home-hero .btn:hover i {
    transform:translateX(4px);
}

.home-hero-image {
    position:absolute;
    z-index:0;
    top:0;
    right:0;
    width:46%;
    height:100%;
    overflow:hidden;
    background:#2d2c2c;
    border-radius:150px 0 0 150px;
    box-shadow:-25px 0 60px rgba(255,255,255,.12);
}

.home-hero-image::before {
    content:"";
    position:absolute;
    z-index:2;
    left:-105px;
    top:-8%;
    width:210px;
    height:116%;
    border-right:2px solid rgba(255,255,255,.65);
    border-radius:50%;
    transform:rotate(9deg);
    pointer-events:none;
}

.home-hero-image::after {
    content:"";
    position:absolute;
    inset:0;
    z-index:1;
    background:linear-gradient(90deg, rgba(255,255,255,.18), transparent 24%, transparent 78%, rgba(255,255,255,.06));
    pointer-events:none;
}

.home-hero-image img {
    width:100%;
    height:100%;
    object-fit:cover;
    object-position:center 42%;
    transform:scale(1.005);
}


/* ================= MOBILE NAVIGATION ================= */
@media (max-width: 768px) {
    .main-nav:not(.mobile-active) {
        max-height:0 !important;
        height:0 !important;
        padding-top:0 !important;
        padding-bottom:0 !important;
        border-width:0 1px 0 1px !important;
        opacity:0 !important;
        visibility:hidden !important;
        pointer-events:none !important;
        overflow:hidden !important;
    }

    .main-nav.mobile-active {
        max-height:600px !important;
        height:auto !important;
        opacity:1 !important;
        visibility:visible !important;
        pointer-events:auto !important;
    }

    .nav-container {
        min-height:82px;
    }
}

/* ================= RESPONSIVE ================= */
@media (max-width: 1200px) {
    .nav-container { gap: 28px; padding-inline: 30px; }
    .main-nav { padding-inline: 20px; gap: 10px; }
    .main-nav a { font-size: 1rem; padding-inline: 10px; }
    .footer-grid { gap: 30px; }
}

@media (max-width: 1050px) {
    .main-nav { gap: 6px; padding-inline: 14px; }
    .main-nav a { font-size: .94rem; padding-inline: 7px; }
    .values-grid { grid-template-columns: repeat(3,1fr); }
    .category-grid { grid-template-columns: repeat(2,1fr); }
    .contact-grid { grid-template-columns: repeat(2,1fr); }
    .footer-grid { grid-template-columns: repeat(2,1fr); }
    .home-hero-content { padding-right: 42%; }
    .home-hero h1 { font-size: clamp(3.6rem, 6vw, 5.5rem); }
    .home-hero-image { width: 48%; }
}

@media (max-width: 768px) {
    .section, .section-padding { padding: 75px 0; }

    .nav-container {
        min-height:82px;
        padding:0 5%;
        gap:14px;
        position:relative;
    }

    .site-header { position:relative; }

    .logo { margin: 0; }
    .logo img { width: 78px; }

    .menu-toggle {
        display: flex;
        margin-left: auto;
    }

    .main-nav {
        position:absolute;
        top:100%;
        left:4%;
        width:92%;
        max-height:0;
        overflow:hidden;
        flex-direction:column;
        align-items:stretch;
        gap:0;
        padding:0 22px;
        background:var(--navy);
        border:1px solid rgba(255,255,255,.28);
        border-top:0;
        border-radius:0 0 22px 22px;
        box-shadow:0 18px 35px rgba(255,255,255,.20);
        opacity:0;
        visibility:hidden;
        pointer-events:none;
        transform:translateY(-8px);
        transition:max-height .35s ease, padding .35s ease, opacity .25s ease, transform .25s ease, visibility .25s ease;
    }

    .main-nav.mobile-active {
        max-height:600px;
        padding:10px 22px 20px;
        opacity:1;
        visibility:visible;
        pointer-events:auto;
        transform:translateY(0);
    }

    .main-nav a {
        width: 100%;
        justify-content: flex-start;
        padding: 14px 4px;
        font-size: 1rem;
        border-bottom: 1px solid rgba(255,255,255,.08);
    }

    .main-nav a::after { display: none; }

    .page-hero { min-height:300px; }
    .page-hero-content { width:100%; }
    .page-hero h1 {
        max-width:100%;
        overflow-wrap:break-word;
        font-size:clamp(2.8rem,12vw,4.5rem);
    }

    .hero { min-height:650px; }
    .hero h1 { font-size:clamp(2.9rem,13vw,5rem); }

    .founder-grid,
    .about-intro-grid,
    .founder-about-grid,
    .mission-grid,
    .contact-form-wrapper { grid-template-columns: 1fr; }

    .founder-images { max-width: 650px; }
    .ministry-grid,
    .expression-grid,
    .focus-grid,
    .privileges-list,
    .location-grid { grid-template-columns: 1fr; }
    .service-grid,
    .events-grid { grid-template-columns: 1fr; }
    .values-grid { grid-template-columns: repeat(2,1fr); }
    .gallery-grid { grid-template-columns: repeat(2,1fr); }
    .contact-grid { grid-template-columns: repeat(2,1fr); }
    .social-connect-grid { grid-template-columns: 1fr; max-width: 450px; }
    .contact-form { grid-template-columns: 1fr; }
    .form-group.full-width { grid-column: auto; }

    /* Homepage hero */
    .home-hero {
        min-height: auto;
        padding: 70px 0 0;
    }

    .home-hero-content {
        min-height: auto;
        width: 90%;
        margin-inline: auto;
        padding: 0;
        align-items: flex-start;
    }

    .home-hero h1 {
        font-size:clamp(2.65rem, 12.5vw, 4.6rem);
        line-height:.94;
        max-width:100%;
        overflow-wrap:normal;
        word-break:normal;
    }
    .home-hero .hero-label { font-size:.82rem; letter-spacing:3px; }
    .home-hero p { font-size:1rem; max-width:100%; }
    .home-hero .hero-buttons { width:100%; }
    .home-hero .hero-buttons .btn { width:100%; max-width:340px; }

    /* Show the new family image on phones as a full-width visual below the hero copy. */
    .home-hero-image {
        position:relative;
        top:auto;
        right:auto;
        width:100%;
        height:420px;
        margin-top:48px;
        border-radius:70px 70px 0 0;
        box-shadow:none;
    }

    .home-hero-image img {
        object-position:center 38%;
    }

    .home-hero-image::before { display:none; }

    /* Gallery lightbox */
    .gallery-lightbox { padding: 20px; }
    .gallery-lightbox-image { max-width: 94vw; max-height: 82vh; }
    .gallery-lightbox-close { top: 14px; right: 14px; }
    .gallery-lightbox-prev,
    .gallery-lightbox-next {
        width: 46px;
        height: 46px;
        font-size: 1rem;
    }
    .gallery-lightbox-prev { left: 10px; }
    .gallery-lightbox-next { right: 10px; }
    .gallery-lightbox-counter { bottom: 12px; font-size: .8rem; }
}

@media (max-width: 500px) {
    .container { width: 90%; }
    .nav-container { padding-inline: 5%; }
    .logo img { width: 70px; }

    .hero-buttons,
    .cta-buttons,
    .contact-actions { flex-direction: column; align-items: stretch; }
    .btn { width: 100%; }

    .founder-images { grid-template-columns: 1fr; }
    .founder-image.secondary-image { transform: none; }
    .values-grid,
    .category-grid,
    .gallery-grid,
    .contact-grid { grid-template-columns: 1fr; }

    .event-note-box,
    .gallery-message-box,
    .contact-message-box,
    .location-box {
        flex-direction: column;
        padding: 30px;
    }

    .bank-card,
    .message-box { padding: 30px 22px; }
    .bank-row { grid-template-columns: 1fr; }
    .bank-label { padding-bottom: 5px; }
    .bank-value { padding-top: 5px; }

    .footer-grid {
        grid-template-columns:1fr;
        padding:52px 0 40px;
        gap:30px;
    }

    .footer-bottom-inner {
        flex-direction: column;
        align-items: flex-start;
    }

    .home-hero-image {
        display:none !important;
    }
}

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after {
        transition-duration: .01ms !important;
        animation-duration: .01ms !important;
    }
}



/* =========================================================
   INNER PAGE TOPOGRAPHIC DESIGN
   Applied to all inner pages; homepage remains unchanged.
   ========================================================= */
.page-hero {
    isolation:isolate;
    background:
        radial-gradient(circle at 18% 35%, rgba(181,134,58,.16), transparent 28%),
        linear-gradient(135deg, #1b1b1b 0%, #1d1d1d 58%, #202020 100%);
}

.page-hero-pattern {
    position:absolute;
    z-index:0;
    top:-20px;
    right:-40px;
    width:min(62vw, 900px);
    height:100%;
    min-height:420px;
    background:url('../images/topographic-lines.svg') center right / cover no-repeat;
    opacity:.78;
    pointer-events:none;
}

.page-hero-pattern::after {
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(90deg, var(--black) 0%, transparent 34%, transparent 100%);
}

.page-hero .page-hero-content { max-width:760px; }

/* ================= BOXED FOOTER RESPONSIVE ================= */
@media (max-width: 1050px) {
    .footer-card { grid-template-columns:1fr; }
    .footer-brand {
        border-right:0;
        border-bottom:1px solid rgba(255,255,255,.18);
        padding:52px 42px 44px;
    }
    .footer-main { grid-template-columns:1fr 1fr; padding:48px 42px; }
    .footer-connect { grid-column:1 / -1; }
}

@media (max-width: 600px) {
    .site-footer { padding:48px 0 20px; }
    .footer-card { border-radius:20px; }
    .footer-brand { padding:42px 28px 36px; }
    .footer-brand img { width:145px; }
    .footer-main {
        grid-template-columns:1fr;
        gap:34px;
        padding:40px 28px 42px;
    }
    .footer-connect { grid-column:auto; }
    .footer-bottom {
        flex-direction:column;
        gap:5px;
        padding:18px 20px;
    }
}

/* =========================================================
   ABOUT PAGE — EDITORIAL CONTENT STRUCTURE
   Inspired by the reference layout: image-led introduction,
   numbered horizontal rows, generous spacing and thin rules.
   ========================================================= */
.about-editorial-intro {
    background: var(--black);
}

.about-editorial-intro-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 78px;
    align-items: center;
}

.about-editorial-image {
    position: relative;
    min-height: 620px;
}

.about-editorial-image img {
    display: block;
    width: 100%;
    height: 620px;
    object-fit: cover;
}

.about-image-tag {
    position: absolute;
    right: 0;
    bottom: 0;
    padding: 13px 20px;
    background: var(--gold);
    color: #fff;
    font-size: .72rem;
    font-weight: 700;
    letter-spacing: 2px;
}

.about-editorial-copy h2,
.founder-about-content h2 {
    font-size: clamp(2.8rem, 4.2vw, 4.8rem);
    line-height: .98;
    margin-bottom: 22px;
}

.about-editorial-copy p,
.founder-about-content p {
    max-width: 650px;
    margin-bottom: 20px;
}

.about-facts {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    margin-top: 42px;
    border-top: 1px solid var(--line-light);
    border-bottom: 1px solid var(--line-light);
}

.about-facts > div {
    padding: 22px 18px 22px 0;
    border-right: 1px solid var(--line-light);
}

.about-facts > div:last-child { border-right: 0; padding-left: 18px; }
.about-facts > div:nth-child(2) { padding-left: 18px; }
.about-facts span { display:block; color: var(--gold); font-size:.78rem; letter-spacing:2px; margin-bottom:10px; }
.about-facts strong { display:block; color:var(--white); margin-bottom:5px; }
.about-facts small { display:block; color:var(--muted); line-height:1.5; }

.about-editorial-rows { overflow:hidden; }
.about-editorial-rows > .container { position:relative; }
.about-editorial-heading { margin-bottom: 28px; }

.editorial-row {
    display: grid;
    grid-template-columns: 130px minmax(230px, .9fr) minmax(0, 1.55fr);
    gap: 42px;
    align-items: start;
    padding: 48px 0;
    border-top: 1px solid var(--line-light);
}

.editorial-row:last-child { border-bottom: 1px solid var(--line-light); }

.editorial-marker {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 25px;
    color: var(--gold);
}

.editorial-marker i {
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gold);
    border-radius: 50%;
    font-size: 1.15rem;
}

.editorial-marker > span:last-child {
    color: transparent;
    -webkit-text-stroke: 1px rgba(255,255,255,.32);
    font-size: 3.5rem;
    line-height: .8;
    font-weight: 300;
}

.editorial-title h2 {
    margin: 8px 0 0;
    font-size: clamp(2rem, 3vw, 3.25rem);
    line-height: 1.02;
}

.editorial-content p { margin-bottom: 17px; max-width: 760px; }
.editorial-quote p {
    font-family: 'Cormorant Garamond', serif;
    font-size: clamp(1.65rem, 2.4vw, 2.45rem);
    line-height: 1.18;
    color: var(--white);
}

.editorial-check-list {
    list-style: none;
    margin: 0;
    padding: 0;
}

.editorial-check-list li {
    display: grid;
    grid-template-columns: minmax(190px, .75fr) 1.25fr;
    gap: 25px;
    padding: 15px 0;
    border-top: 1px solid var(--line-light);
}

.editorial-check-list li:first-child { border-top: 0; padding-top: 0; }
.editorial-check-list strong { color: var(--white); }
.editorial-check-list span { color: var(--text); }

.editorial-action {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    color: var(--white);
    font-weight: 700;
    margin-top: 5px;
    border-bottom: 1px solid var(--gold);
    padding-bottom: 5px;
}

.editorial-action i { color: var(--gold); transition: transform .25s ease; }
.editorial-action:hover i { transform: translateX(5px); }

.founder-about-editorial-grid {
    display: grid;
    grid-template-columns: .9fr 1.1fr;
    gap: 78px;
    align-items: center;
}

.founder-editorial-image::after {
    content: "";
    position: absolute;
    inset: 18px -18px -18px 18px;
    border: 1px solid var(--gold);
    z-index: -1;
}

.values-editorial { background: var(--black); }
.values-editorial .section-heading > p { max-width: 760px; margin: 0 auto; }

.price-row .editorial-marker { gap: 18px; }
.price-letter {
    width: 54px;
    height: 54px;
    display: flex;
    align-items: center;
    justify-content: center;
    border: 1px solid var(--gold);
    border-radius: 50%;
    color: var(--gold);
    font-size: 1.25rem;
    font-weight: 700;
}

/* About page keeps the topographic treatment in its hero, not the home hero. */
.about-page-hero { min-height: 430px; }

@media (max-width: 900px) {
    .about-editorial-intro-grid,
    .founder-about-editorial-grid { grid-template-columns: 1fr; gap: 45px; }
    .about-editorial-image,
    .about-editorial-image img { min-height: 480px; height: 480px; }
    .editorial-row { grid-template-columns: 90px 1fr; gap: 25px; }
    .editorial-content { grid-column: 2; }
    .editorial-title { grid-column: 2; grid-row: 1; }
    .editorial-marker { grid-column: 1; grid-row: 1 / span 2; }
    .editorial-check-list li { grid-template-columns: 1fr; gap: 5px; }
}

@media (max-width: 600px) {
    .about-editorial-intro-grid,
    .founder-about-editorial-grid { gap: 32px; }
    .about-editorial-image,
    .about-editorial-image img { min-height: 390px; height: 390px; }
    .about-facts { grid-template-columns: 1fr; }
    .about-facts > div,
    .about-facts > div:nth-child(2),
    .about-facts > div:last-child { padding: 16px 0; border-right: 0; border-bottom: 1px solid var(--line-light); }
    .about-facts > div:last-child { border-bottom: 0; }
    .editorial-row { grid-template-columns: 64px 1fr; gap: 18px; padding: 36px 0; }
    .editorial-marker i,
    .price-letter { width: 46px; height: 46px; }
    .editorial-marker > span:last-child { font-size: 2.65rem; }
    .editorial-title h2 { font-size: 2rem; }
    .editorial-content { grid-column: 2; }
    .editorial-quote p { font-size: 1.55rem; }
}


/* Gallery category sections */
.gallery-categories{
    padding-top:70px;
    padding-bottom:80px;
}
.gallery-category{
    padding:42px 0 56px;
    border-top:1px solid var(--line);
}
.gallery-category:first-of-type{
    border-top:0;
}
.gallery-category-heading{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:28px;
}
.gallery-category-number{
    display:grid;
    place-items:center;
    width:54px;
    height:54px;
    flex:0 0 54px;
    border:1px solid rgba(181,134,58,.55);
    border-radius:50%;
    color:var(--gold);
    font-size:.8rem;
    letter-spacing:1px;
}
.gallery-category-heading h3{
    margin:4px 0 0;
    font-family:"Cormorant Garamond",serif;
    font-size:clamp(2rem,4vw,3rem);
    line-height:1;
}
.gallery-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
}
@media (max-width:900px){
    .gallery-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }
}
@media (max-width:600px){
    .gallery-categories{
        padding-top:45px;
        padding-bottom:55px;
    }
    .gallery-category{
        padding:30px 0 40px;
    }
    .gallery-category-heading{
        gap:14px;
    }
    .gallery-category-number{
        width:44px;
        height:44px;
        flex-basis:44px;
    }
    .gallery-grid{
        grid-template-columns:1fr;
    }
    .gallery-empty-state{
        min-height:190px;
    }
}


/* Gallery photographs */
.gallery-photo-card{
    margin:0;
    overflow:hidden;
    border-radius:20px;
    border:1px solid rgba(181,134,58,.28);
    background:#262525;
    box-shadow:0 16px 38px rgba(0,0,0,.25);
}
.gallery-photo-link{
    display:block;
    width:100%;
    height:100%;
}
.gallery-photo-card img{
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    transition:transform .45s ease, opacity .3s ease;
}
.gallery-photo-card:hover img{
    transform:scale(1.035);
    opacity:.94;
}
@media (max-width:600px){
    .gallery-photo-card{
        border-radius:16px;
    }
}


/* Gallery carousel — shows five photos at a time with arrow navigation */
.gallery-carousel{
    position:relative;
    width:100%;
    padding:0 58px;
}
.gallery-carousel-window{
    width:100%;
    overflow:hidden;
}
.gallery-carousel-track{
    display:flex;
    gap:18px;
    transform:translateX(0);
    transition:transform .45s cubic-bezier(.22,.61,.36,1);
    will-change:transform;
}
.gallery-carousel .gallery-photo-card{
    flex:0 0 calc((100% - 72px) / 5);
    min-width:0;
}
.gallery-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:3;
    width:46px;
    height:46px;
    border:1px solid rgba(181,134,58,.5);
    border-radius:50%;
    display:grid;
    place-items:center;
    cursor:pointer;
    transition:all .25s ease;
    font-size:.9rem;
}
.gallery-arrow-prev{
    left:0;
    background:rgba(255,255,255,.10);
    color:var(--white);
}
.gallery-arrow-next{
    right:0;
    background:var(--gold);
    color:#171717;
}
.gallery-arrow:hover:not(:disabled){
    transform:translateY(-50%) scale(1.07);
}
.gallery-arrow:disabled{
    opacity:.28;
    cursor:not-allowed;
}
@media (max-width:1100px){
    .gallery-carousel{
        padding:0 52px;
    }
    .gallery-carousel .gallery-photo-card{
        flex-basis:calc((100% - 54px) / 4);
    }
}
@media (max-width:800px){
    .gallery-carousel{
        padding:0 48px;
    }
    .gallery-carousel .gallery-photo-card{
        flex-basis:calc((100% - 36px) / 3);
    }
}
@media (max-width:600px){
    .gallery-carousel{
        padding:0 42px;
    }
    .gallery-carousel-track{
        gap:12px;
    }
    .gallery-carousel .gallery-photo-card{
        flex-basis:calc((100% - 12px) / 2);
    }
    .gallery-arrow{
        width:38px;
        height:38px;
        font-size:.75rem;
    }
}
@media (max-width:420px){
    .gallery-carousel{
        padding:0 40px;
    }
    .gallery-carousel .gallery-photo-card{
        flex-basis:100%;
    }
}


/* Founder gallery carousel */
.founder-gallery-carousel{
    position:relative;
    width:100%;
    padding:0 58px;
}
.founder-gallery-window{
    width:100%;
    overflow:hidden;
}
.founder-gallery-track{
    display:flex;
    gap:18px;
    transition:transform .45s cubic-bezier(.22,.61,.36,1);
    will-change:transform;
}
.founder-gallery-item{
    flex:0 0 calc((100% - 72px) / 5);
    min-width:0;
}
.founder-gallery-item .gallery-image-button{
    display:block;
    width:100%;
    padding:0;
    border:0;
    background:transparent;
    cursor:pointer;
}
.founder-gallery-item img{
    display:block;
    width:100%;
    aspect-ratio:4/3;
    object-fit:cover;
    border-radius:16px;
}
.founder-gallery-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:4;
    width:46px;
    height:46px;
    border:1px solid rgba(181,134,58,.5);
    border-radius:50%;
    display:grid;
    place-items:center;
    cursor:pointer;
    transition:all .25s ease;
}
.founder-gallery-prev{left:0;background:rgba(255,255,255,.10);color:var(--white);}
.founder-gallery-next{right:0;background:var(--gold);color:#171717;}
.founder-gallery-arrow:hover:not(:disabled){transform:translateY(-50%) scale(1.07);}
.founder-gallery-arrow:disabled{opacity:.28;cursor:not-allowed;}

@media (max-width:1100px){
    .founder-gallery-item{flex-basis:calc((100% - 54px) / 4);}
}
@media (max-width:800px){
    .founder-gallery-item{flex-basis:calc((100% - 36px) / 3);}
}
@media (max-width:600px){
    .founder-gallery-carousel{padding:0 42px;}
    .founder-gallery-track{gap:12px;}
    .founder-gallery-item{flex-basis:calc((100% - 12px) / 2);}
    .founder-gallery-arrow{width:38px;height:38px;font-size:.75rem;}
}
@media (max-width:420px){
    .founder-gallery-carousel{padding:0 40px;}
    .founder-gallery-item{flex-basis:100%;}
}


/* About first image — full portrait */
.about-first-image{
    object-fit:contain !important;
    object-position:center top !important;
    background:#f5f5f5;
}




/* ==========================================================
   PREMIUM EDITORIAL GALLERY
   Five photographs per slide, arranged differently by section.
   ========================================================== */

.editorial-carousel{
    position:relative;
    width:100%;
    padding:0 58px 34px;
}
.editorial-viewport{
    width:100%;
    overflow:hidden;
    border-radius:24px;
}
.editorial-slides{
    display:flex;
    width:100%;
    transition:transform .55s cubic-bezier(.22,.61,.36,1);
    will-change:transform;
}
.editorial-slide{
    position:relative;
    flex:0 0 100%;
    width:100%;
    display:grid;
    gap:10px;
    min-width:0;
}
.editorial-photo{
    margin:0;
    min-width:0;
    min-height:0;
    overflow:hidden;
    position:relative;
    border-radius:18px;
    background:#262525;
    border:1px solid rgba(255,255,255,.10);
}
.editorial-photo .gallery-image-button{
    position:relative;
    display:block;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:transparent;
    cursor:pointer;
    overflow:hidden;
}
.editorial-photo img{
    display:block;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .55s ease, filter .4s ease;
}
.editorial-photo-shade{
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 52%,rgba(0,0,0,.36));
    opacity:.55;
    transition:opacity .35s ease;
    pointer-events:none;
}
.editorial-photo:hover img{
    transform:scale(1.045);
}
.editorial-photo:hover .editorial-photo-shade{
    opacity:.82;
}

/* 01 — Founder & Visionary: featured + supporting photographs */
.editorial-featured{
    grid-template-columns:1.65fr 1fr 1fr;
    grid-template-rows:repeat(2, 205px);
}
.editorial-featured .editorial-photo-1{
    grid-row:1 / 3;
}
.editorial-featured .editorial-photo-2,
.editorial-featured .editorial-photo-3,
.editorial-featured .editorial-photo-4,
.editorial-featured .editorial-photo-5{
    min-height:0;
}

/* 02 — Congregation: asymmetric editorial grid */
.editorial-asymmetric{
    grid-template-columns:1.35fr 1fr 1fr;
    grid-template-rows:repeat(2, 205px);
}
.editorial-asymmetric .editorial-photo-1{
    grid-row:1 / 3;
}
.editorial-asymmetric .editorial-photo-2{
    grid-row:1 / 2;
}
.editorial-asymmetric .editorial-photo-3{
    grid-row:2 / 3;
}
.editorial-asymmetric .editorial-photo-4{
    grid-row:1 / 2;
}
.editorial-asymmetric .editorial-photo-5{
    grid-row:2 / 3;
}

/* 03 — Praise and Worship: staggered masonry */
.editorial-masonry{
    grid-template-columns:1.35fr .82fr .82fr 1fr;
    grid-template-rows:145px 145px 145px;
}
.editorial-masonry .editorial-photo-1{
    grid-column:1 / 2;
    grid-row:1 / 4;
}
.editorial-masonry .editorial-photo-2{
    grid-column:2 / 3;
    grid-row:1 / 3;
}
.editorial-masonry .editorial-photo-3{
    grid-column:3 / 4;
    grid-row:1 / 2;
}
.editorial-masonry .editorial-photo-4{
    grid-column:3 / 4;
    grid-row:2 / 4;
}
.editorial-masonry .editorial-photo-5{
    grid-column:4 / 5;
    grid-row:1 / 4;
}

/* 04 — Deliverance and Impartation: bold overlay grid */
.editorial-overlay{
    grid-template-columns:1.55fr 1fr 1fr;
    grid-template-rows:repeat(2, 205px);
}
.editorial-overlay .editorial-photo-1{
    grid-row:1 / 3;
}
.editorial-overlay .editorial-photo-2{
    grid-column:2 / 3;
    grid-row:1 / 2;
}
.editorial-overlay .editorial-photo-3{
    grid-column:3 / 4;
    grid-row:1 / 2;
}
.editorial-overlay .editorial-photo-4{
    grid-column:2 / 3;
    grid-row:2 / 3;
}
.editorial-overlay .editorial-photo-5{
    grid-column:3 / 4;
    grid-row:2 / 3;
}

/* Navigation */
.editorial-arrow{
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    z-index:5;
    width:48px;
    height:48px;
    border-radius:50%;
    border:1px solid rgba(181,134,58,.5);
    display:grid;
    place-items:center;
    cursor:pointer;
    transition:all .25s ease;
}
.editorial-arrow-prev{
    left:0;
    background:rgba(255,255,255,.07);
    color:var(--white);
}
.editorial-arrow-next{
    right:0;
    background:var(--gold);
    color:#171717;
}
.editorial-arrow:hover:not(:disabled){
    transform:translateY(-50%) scale(1.08);
}
.editorial-arrow:disabled{
    opacity:.25;
    cursor:not-allowed;
}
.editorial-dots{
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    display:flex;
    justify-content:center;
    gap:7px;
}
.editorial-dot{
    width:7px;
    height:7px;
    padding:0;
    border:0;
    border-radius:50%;
    background:rgba(255,255,255,.25);
    cursor:pointer;
    transition:all .25s ease;
}
.editorial-dot.is-active{
    width:22px;
    border-radius:10px;
    background:var(--gold);
}

/* Final slide with fewer than five photos: fill the composition cleanly. */
.editorial-slide .editorial-photo:only-child{
    grid-column:1 / -1;
}

/* Mobile: preserve the editorial character without forcing a cramped grid. */
@media (max-width:800px){
    .editorial-carousel{
        padding:0 48px 32px;
    }
    .editorial-featured,
    .editorial-asymmetric,
    .editorial-overlay{
        grid-template-columns:1.2fr 1fr;
        grid-template-rows:170px 170px 170px;
    }
    .editorial-featured .editorial-photo-1,
    .editorial-asymmetric .editorial-photo-1,
    .editorial-overlay .editorial-photo-1{
        grid-row:1 / 3;
    }
    .editorial-featured .editorial-photo-2,
    .editorial-asymmetric .editorial-photo-2,
    .editorial-overlay .editorial-photo-2{
        grid-column:2;
        grid-row:1;
    }
    .editorial-featured .editorial-photo-3,
    .editorial-asymmetric .editorial-photo-3,
    .editorial-overlay .editorial-photo-3{
        grid-column:2;
        grid-row:2;
    }
    .editorial-featured .editorial-photo-4,
    .editorial-asymmetric .editorial-photo-4,
    .editorial-overlay .editorial-photo-4{
        grid-column:1;
        grid-row:3;
    }
    .editorial-featured .editorial-photo-5,
    .editorial-asymmetric .editorial-photo-5,
    .editorial-overlay .editorial-photo-5{
        grid-column:2;
        grid-row:3;
    }
    .editorial-masonry{
        grid-template-columns:1.25fr 1fr;
        grid-template-rows:170px 170px 170px;
    }
    .editorial-masonry .editorial-photo-1{
        grid-column:1;
        grid-row:1 / 3;
    }
    .editorial-masonry .editorial-photo-2{
        grid-column:2;
        grid-row:1 / 2;
    }
    .editorial-masonry .editorial-photo-3{
        grid-column:2;
        grid-row:2 / 3;
    }
    .editorial-masonry .editorial-photo-4{
        grid-column:1;
        grid-row:3;
    }
    .editorial-masonry .editorial-photo-5{
        grid-column:2;
        grid-row:3;
    }
}
@media (max-width:520px){
    .editorial-carousel{
        padding:0 40px 30px;
    }
    .editorial-slide{
        grid-template-columns:1fr 1fr !important;
        grid-template-rows:155px 155px 155px !important;
        gap:8px;
    }
    .editorial-slide .editorial-photo-1{
        grid-column:1 / 3 !important;
        grid-row:1 / 3 !important;
    }
    .editorial-slide .editorial-photo-2{
        grid-column:1 !important;
        grid-row:3 !important;
    }
    .editorial-slide .editorial-photo-3{
        grid-column:2 !important;
        grid-row:3 !important;
    }
    .editorial-slide .editorial-photo-4,
    .editorial-slide .editorial-photo-5{
        display:none;
    }
    .editorial-arrow{
        width:38px;
        height:38px;
        font-size:.75rem;
    }
}




/* Founder & Visionary → Congregation: same divider as the other gallery sections */
.gallery-section-divider{
    width:100vw;
    height:1px;
    margin:8px 0 72px;
    margin-left:calc(50% - 50vw);
    background:var(--line);
}
@media (max-width:800px){
    .gallery-section-divider{
        margin:4px 0 54px;
        margin-left:calc(50% - 50vw);
    }
}
