/* Summit Base v0.1 - shared responsive foundation */
* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; color: #20242b; background: #fff; font-family: Arial, "Noto Sans", sans-serif; line-height: 1.6; }
a { color: inherit; text-decoration: none; }
img { max-width: 100%; height: auto; }
button { font: inherit; }

.sf-skip {
    position: fixed; left: 12px; top: -80px; z-index: 99999;
    padding: 10px 14px; color: #fff; background: #111; border-radius: 6px;
}
.sf-skip:focus { top: 12px; }

.sf-header {
    position: relative; z-index: 1000;
    background: rgba(255,255,255,.98);
    border-bottom: 1px solid #e9ecf1;
}
.sf-header-inner {
    width: min(calc(100% - 32px), var(--sf-max-width));
    min-height: 92px; margin: 0 auto;
    display: flex; align-items: center; gap: 28px;
}
.sf-brand { display: inline-flex; align-items: center; min-width: 170px; }
.sf-logo { display: block; max-width: 260px; max-height: 72px; object-fit: contain; }
.sf-brand-text { display: flex; flex-direction: column; line-height: 1.2; }
.sf-brand-text strong { font-size: 20px; }
.sf-brand-text small { margin-top: 5px; color: #7a828d; font-size: 12px; }

.sf-navigation { margin-left: auto; }
.sf-gnb, .sf-depth2 { list-style: none; padding: 0; margin: 0; }
.sf-gnb { display: flex; align-items: center; gap: 6px; }
.sf-gnb > li { position: relative; }
.sf-gnb > li > a {
    display: block; padding: 26px 13px 24px;
    font-size: 15px; font-weight: 700;
}
.sf-gnb > li > a:hover,
.sf-gnb > li > a:focus { color: var(--sf-primary); }

.sf-depth2 {
    position: absolute; left: 50%; top: calc(100% - 2px);
    min-width: 190px; padding: 8px;
    transform: translate(-50%, 8px);
    opacity: 0; visibility: hidden;
    background: #fff; border: 1px solid #e7eaf0; border-radius: 12px;
    box-shadow: 0 12px 35px rgba(23,35,60,.13);
    transition: .18s ease;
}
.sf-gnb > li:hover > .sf-depth2,
.sf-gnb > li:focus-within > .sf-depth2 {
    opacity: 1; visibility: visible; transform: translate(-50%, 0);
}
.sf-depth2 a {
    display: block; padding: 10px 12px; border-radius: 8px;
    white-space: nowrap; font-size: 14px;
}
.sf-depth2 a:hover, .sf-depth2 a:focus { color: var(--sf-primary); background: #f5f7fb; }

.sf-sub-toggle { display: none; }

.sf-member {
    display: flex; align-items: center; gap: 8px;
    margin-left: 4px; font-size: 13px; white-space: nowrap;
}
.sf-member a {
    padding: 8px 11px; border: 1px solid #dfe3e9; border-radius: 999px;
}
.sf-member a:hover { color: var(--sf-primary); border-color: var(--sf-primary); }

.sf-menu-toggle { display: none; }
.sf-main { min-height: 58vh; }
.sf-content {
    width: min(calc(100% - 32px), var(--sf-max-width));
    margin: 0 auto; padding: 44px 0 60px;
}

.sf-footer { background: #11151b; color: #d6dbe1; }
.sf-footer-inner {
    width: min(calc(100% - 32px), var(--sf-max-width));
    margin: 0 auto; padding: 34px 0;
    display: flex; justify-content: space-between; align-items: flex-end; gap: 24px;
}
.sf-footer strong { color: #fff; font-size: 16px; }
.sf-footer p { margin: 7px 0 0; font-size: 13px; }
.sf-copyright { color: #929aa4; white-space: nowrap; }

@media (max-width: 920px) {
    .sf-header-inner { min-height: 72px; gap: 12px; }
    .sf-brand { min-width: 0; margin-right: auto; }
    .sf-logo { max-width: 205px; max-height: 58px; }

    .sf-menu-toggle {
        display: inline-flex; width: 44px; height: 44px;
        border: 1px solid #dfe3e9; border-radius: 10px; background: #fff;
        flex-direction: column; align-items: center; justify-content: center; gap: 4px;
        cursor: pointer;
    }
    .sf-menu-toggle span { width: 19px; height: 2px; background: #222; }
    .sf-menu-toggle em { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

    .sf-navigation {
        display: none; position: absolute; left: 0; right: 0; top: 72px;
        max-height: calc(100vh - 72px); overflow-y: auto;
        margin: 0; padding: 12px 16px 20px;
        background: #fff; border-bottom: 1px solid #e9ecf1;
    }
    .sf-site.sf-menu-open .sf-navigation { display: block; }
    .sf-gnb { display: block; }
    .sf-gnb > li { border-bottom: 1px solid #edf0f4; }
    .sf-gnb > li > a { padding: 15px 44px 15px 4px; }

    .sf-sub-toggle {
        display: block; position: absolute; right: 0; top: 7px;
        width: 38px; height: 38px; border: 0; border-radius: 8px;
        background: #f3f5f8; cursor: pointer;
    }

    .sf-depth2 {
        display: none; position: static; min-width: 0; padding: 0 0 12px 14px;
        transform: none; opacity: 1; visibility: visible;
        border: 0; border-radius: 0; box-shadow: none;
    }
    .sf-has-children.sf-sub-open > .sf-depth2 { display: block; }

    .sf-member { margin-left: 0; }
    .sf-member a { padding: 7px 9px; }
}

@media (max-width: 560px) {
    .sf-header-inner, .sf-content, .sf-footer-inner { width: min(calc(100% - 24px), var(--sf-max-width)); }
    .sf-member { display: none; }
    .sf-content { padding-top: 30px; padding-bottom: 44px; }
    .sf-footer-inner { align-items: flex-start; flex-direction: column; }
    .sf-copyright { white-space: normal; }
}


/* v0.3 mobile submenu visibility fix */
@media (max-width: 920px) {
    .sf-gnb > li {
        position: relative;
    }

    .sf-sub-toggle {
        display: flex !important;
        position: absolute;
        right: 2px;
        top: 8px;
        width: 40px;
        height: 40px;
        align-items: center;
        justify-content: center;
        border: 1px solid #e1e5ea;
        border-radius: 9px;
        background: #f5f7fa;
        cursor: pointer;
        z-index: 3;
    }

    .sf-sub-icon {
        display: block;
        font-size: 20px;
        line-height: 1;
        transition: transform .18s ease;
    }

    .sf-sub-toggle[aria-expanded="true"] .sf-sub-icon {
        transform: rotate(180deg);
    }

    .sf-depth2 {
        display: none !important;
        position: static !important;
        width: 100%;
        margin: 0 0 10px !important;
        padding: 4px 0 8px 18px !important;
        opacity: 1 !important;
        visibility: visible !important;
        transform: none !important;
        border: 0 !important;
        box-shadow: none !important;
        background: #fafbfc !important;
        border-radius: 8px !important;
    }

    .sf-depth2.sf-depth2-open {
        display: block !important;
    }

    .sf-depth2 li {
        display: block;
        border: 0;
    }

    .sf-depth2 a {
        display: block;
        padding: 11px 12px !important;
        font-size: 14px;
        font-weight: 500;
        white-space: normal;
    }
}


/* Summit Factory Church starter content v0.5 */
.sf-page { width: 100%; }
.sf-page .sf-hero {
    margin: -44px calc(50% - 50vw) 0;
    min-height: 520px;
    display: flex;
    align-items: center;
    background:
        radial-gradient(circle at 85% 20%, rgba(255,255,255,.16), transparent 32%),
        linear-gradient(135deg, #17243b, #253d67);
    color: #fff;
}
.sf-hero-inner {
    width: min(calc(100% - 32px), var(--sf-max-width));
    margin: 0 auto;
    padding: 90px 0;
}
.sf-eyebrow {
    margin: 0 0 12px;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .16em;
    color: var(--sf-primary);
}
.sf-hero .sf-eyebrow { color: rgba(255,255,255,.72); }
.sf-hero h1 {
    max-width: 820px;
    margin: 0;
    font-size: clamp(42px, 7vw, 76px);
    line-height: 1.05;
    letter-spacing: -.04em;
}
.sf-lead {
    max-width: 700px;
    margin: 22px 0 0;
    font-size: clamp(18px, 2.4vw, 24px);
    color: rgba(255,255,255,.82);
}
.sf-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 30px; }
.sf-btn {
    display: inline-flex;
    min-height: 44px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-weight: 700;
}
.sf-btn-primary { background: var(--sf-primary); color: #fff !important; }
.sf-btn-secondary { border-color: rgba(255,255,255,.55); color: #fff !important; background: rgba(255,255,255,.08); }
.sf-section { padding: 70px 0; }
.sf-section-soft {
    margin-left: calc(50% - 50vw);
    margin-right: calc(50% - 50vw);
    padding-left: max(16px, calc((100vw - var(--sf-max-width))/2));
    padding-right: max(16px, calc((100vw - var(--sf-max-width))/2));
    background: #f6f8fb;
}
.sf-section-head { max-width: 760px; margin-bottom: 30px; }
.sf-section-head h2,
.sf-page-hero h1 {
    margin: 0 0 12px;
    font-size: clamp(30px, 4.5vw, 48px);
    line-height: 1.15;
    letter-spacing: -.03em;
}
.sf-section-head p,
.sf-page-hero p { color: #66707d; font-size: 17px; }
.sf-card-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0,1fr));
    gap: 18px;
}
.sf-card {
    display: block;
    min-height: 180px;
    padding: 26px;
    border: 1px solid #e4e8ee;
    border-radius: 16px;
    background: #fff;
    transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease;
}
.sf-card:hover {
    transform: translateY(-2px);
    border-color: #d3dae5;
    box-shadow: 0 12px 28px rgba(26,39,61,.08);
}
.sf-card h3 { margin: 0 0 10px; font-size: 21px; }
.sf-card p { margin: 0; color: #68717d; }
.sf-two-col {
    display: grid;
    grid-template-columns: 1.1fr .9fr;
    gap: 44px;
    align-items: start;
}
.sf-info-panel, .sf-placeholder {
    padding: 26px;
    border: 1px solid #e4e8ee;
    border-radius: 16px;
    background: #fff;
}
.sf-info-panel p { margin: 0 0 16px; }
.sf-info-panel p:last-child { margin-bottom: 0; }
.sf-page-hero {
    margin: -44px calc(50% - 50vw) 0;
    padding: 72px max(16px, calc((100vw - var(--sf-max-width))/2));
    background: #f6f8fb;
}
.sf-narrow { max-width: 820px; }
.sf-narrow h2 { margin-top: 42px; }
.sf-narrow h2:first-child { margin-top: 0; }
.sf-text-link { color: var(--sf-primary); font-weight: 700; }
.sf-muted { color: #7a838f; }

@media (max-width: 760px) {
    .sf-page .sf-hero { min-height: 430px; }
    .sf-hero-inner { padding: 66px 0; }
    .sf-card-grid, .sf-two-col { grid-template-columns: 1fr; }
    .sf-section { padding: 48px 0; }
    .sf-page-hero { padding-top: 50px; padding-bottom: 50px; }
}


/* Summit Factory v0.6 design images */
.sf-page .sf-hero {
    background-image:
        linear-gradient(135deg, rgba(18,31,52,.90), rgba(29,55,94,.76)),
        var(--sf-hero-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
}

.sf-site[data-has-church-image="Y"] .sf-home-page > .sf-hero + .sf-section::after {
    content: "";
    display: block;
    width: 100%;
    height: clamp(230px, 34vw, 430px);
    margin-top: 34px;
    border-radius: 18px;
    background-image: var(--sf-church-image);
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    box-shadow: 0 12px 34px rgba(23,35,60,.10);
}

@media (max-width: 760px) {
    .sf-site[data-has-church-image="Y"] .sf-home-page > .sf-hero + .sf-section::after {
        height: 250px;
        border-radius: 14px;
    }
}


/* v0.6.2: use a real image element for the HOME church photo */
.sf-site .sf-home-page .sf-generated-church-photo {
    display: block;
    width: 100%;
    height: clamp(230px, 34vw, 430px);
    margin-top: 34px;
    object-fit: cover;
    border-radius: 18px;
    box-shadow: 0 12px 34px rgba(23,35,60,.10);
}

/* Disable the older pseudo-element implementation. */
.sf-site[data-has-church-image="Y"] .sf-home-page > .sf-hero + .sf-section::after {
    display: none !important;
}

@media (max-width: 760px) {
    .sf-site .sf-home-page .sf-generated-church-photo {
        height: 250px;
        border-radius: 14px;
    }
}

/* v0.9 preview confirmation bar */
.sf-preview-bar{
    position:sticky;top:0;z-index:99999;
    background:#111827;color:#fff;
    box-shadow:0 3px 14px rgba(0,0,0,.16)
}
.sf-preview-bar-inner{
    width:min(calc(100% - 24px),var(--sf-max-width));
    min-height:54px;margin:0 auto;
    display:flex;align-items:center;justify-content:space-between;gap:14px
}
.sf-preview-actions{display:flex;align-items:center;gap:8px}
.sf-preview-actions form{margin:0}
.sf-preview-edit,.sf-preview-actions button{
    display:inline-flex;align-items:center;justify-content:center;
    min-height:36px;padding:7px 13px;border-radius:8px;
    border:1px solid rgba(255,255,255,.28);font-weight:700;cursor:pointer
}
.sf-preview-edit{color:#fff}
.sf-preview-actions button{border-color:#fff;background:#fff;color:#111827}
@media(max-width:560px){
    .sf-preview-bar-inner{min-height:64px}
    .sf-preview-bar-inner>strong{font-size:13px}
    .sf-preview-edit,.sf-preview-actions button{padding:7px 9px;font-size:12px}
}


/* ==========================================================
   Summit Factory · CHURCH A DEMO v0.1
   Premium church homepage demo. Original design.
   ========================================================== */
.sf-content:has(.sf-church-a){
    width:100%;
    max-width:none;
    padding:0;
}
.sf-church-a{overflow:hidden;background:#fff;color:#1e2933}
.sf-church-a .ca-section,
.sf-church-a .ca-wide-inner{
    width:min(calc(100% - 40px),var(--sf-max-width));
    margin-left:auto;margin-right:auto;
}
.ca-slider{
    position:relative;
    min-height:680px;
    margin:0;
    overflow:hidden;
    background:#142234;
}
.ca-slide{
    position:absolute;inset:0;
    display:flex;align-items:center;
    opacity:0;visibility:hidden;
    transition:opacity .75s ease,visibility .75s ease;
    background-size:cover;background-position:center;
}
.ca-slide.is-active{opacity:1;visibility:visible;z-index:2}
.ca-slide-1{
    background-image:var(--sf-hero-image);
    background-position:center 46%;
}
.ca-slide-2{
    background-image:var(--sf-church-image);
    background-position:center;
}
.ca-slide-3{
    background-image:var(--sf-hero-image);
    background-position:center 70%;
}
.ca-slide-overlay{
    position:absolute;inset:0;
    background:linear-gradient(90deg,rgba(8,23,39,.82) 0%,rgba(8,23,39,.55) 46%,rgba(8,23,39,.16) 100%);
}
.ca-slide-2 .ca-slide-overlay{background:linear-gradient(90deg,rgba(18,35,46,.84),rgba(18,35,46,.48) 58%,rgba(18,35,46,.18))}
.ca-slide-3 .ca-slide-overlay{background:linear-gradient(90deg,rgba(27,31,50,.84),rgba(27,31,50,.49) 58%,rgba(27,31,50,.14))}
.ca-slide-inner{
    position:relative;z-index:3;
    width:min(calc(100% - 40px),var(--sf-max-width));
    margin:0 auto;
    padding:120px 0 155px;
    color:#fff;
}
.ca-kicker,.ca-eyebrow{
    margin:0 0 14px;
    font-size:12px;font-weight:800;letter-spacing:.19em;
    color:#b6d5ff;
}
.ca-slide h1,.ca-slide h2{
    max-width:840px;margin:0;
    color:#fff;
    font-size:clamp(46px,6.1vw,78px);
    line-height:1.07;letter-spacing:-.045em;
    font-weight:800;
}
.ca-slide-copy{
    max-width:720px;margin:24px 0 0;
    color:rgba(255,255,255,.84);
    font-size:clamp(17px,2vw,22px);line-height:1.7;
}
.ca-slide-actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:32px}
.ca-btn{
    display:inline-flex;align-items:center;justify-content:center;
    min-height:48px;padding:0 20px;border-radius:4px;
    font-weight:800;font-size:14px;letter-spacing:.01em;
}
.ca-btn-light{background:#fff;color:#172435}
.ca-btn-outline{border:1px solid rgba(255,255,255,.62);color:#fff;background:rgba(255,255,255,.06)}
.ca-slider-arrow{
    position:absolute;top:50%;z-index:5;
    width:54px;height:54px;margin-top:-27px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:50%;background:rgba(11,22,35,.22);
    color:#fff;font-size:36px;line-height:1;cursor:pointer;
    backdrop-filter:blur(6px);
}
.ca-prev{left:28px}.ca-next{right:28px}
.ca-slider-dots{
    position:absolute;z-index:5;left:50%;bottom:102px;
    display:flex;gap:9px;transform:translateX(-50%);
}
.ca-slider-dots button{
    width:8px;height:8px;padding:0;border:0;border-radius:999px;
    background:rgba(255,255,255,.48);cursor:pointer;transition:.25s ease;
}
.ca-slider-dots button.is-active{width:30px;background:#fff}

.ca-quick-wrap{
    position:relative;z-index:8;
    width:min(calc(100% - 40px),var(--sf-max-width));
    margin:-64px auto 0;
}
.ca-quick{
    display:grid;grid-template-columns:repeat(4,1fr);
    background:#fff;border-radius:8px;
    box-shadow:0 20px 55px rgba(15,29,45,.16);
    overflow:hidden;
}
.ca-quick-item{
    position:relative;display:grid;
    grid-template-columns:46px 1fr;grid-template-rows:auto auto;
    column-gap:13px;align-items:center;
    min-height:126px;padding:27px 28px;
    border-right:1px solid #e7ebef;
    transition:.2s ease;
}
.ca-quick-item:last-child{border-right:0}
.ca-quick-item:hover{background:#f7faff;color:var(--sf-primary)}
.ca-quick-icon{
    grid-row:1/3;display:flex;align-items:center;justify-content:center;
    width:44px;height:44px;border-radius:50%;
    background:#edf4ff;color:var(--sf-primary);font-size:20px;font-weight:800;
}
.ca-quick-item strong{font-size:17px;line-height:1.25}
.ca-quick-item small{color:#8a929d;font-size:11px;letter-spacing:.08em;text-transform:uppercase}

.ca-section{padding-top:94px;padding-bottom:94px}
.ca-intro{
    display:grid;grid-template-columns:1.04fr .96fr;
    gap:68px;align-items:center;
    padding-top:120px;
}
.ca-intro-photo{
    min-height:510px;border-radius:4px;
    background-image:var(--sf-church-image);
    background-size:cover;background-position:center;
    box-shadow:18px 20px 0 #eef3f8;
}
.ca-intro-copy h2,.ca-section-heading h2,.ca-title-row h2,.ca-pastor h2,.ca-contact-section h2{
    margin:0;color:#152333;
    font-size:clamp(34px,4.1vw,52px);line-height:1.2;letter-spacing:-.04em;
}
.ca-intro-copy>p:not(.ca-eyebrow){margin:24px 0 0;color:#67717c;font-size:17px;line-height:1.85}
.ca-intro-note{padding-left:18px;border-left:3px solid var(--sf-primary)}
.ca-more{
    display:inline-flex;align-items:center;gap:16px;
    margin-top:30px;padding-bottom:7px;
    border-bottom:1px solid #1c2733;
    font-weight:800;font-size:14px;
}
.ca-more span{font-size:19px}
.ca-section-heading{max-width:720px;margin-bottom:40px}
.ca-centered{text-align:center;margin-left:auto;margin-right:auto}
.ca-centered>p:last-child,.ca-light-head>p:last-child{margin:12px 0 0;color:#7a8490;font-size:16px}
.ca-worship-section{padding-top:78px}
.ca-worship-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ca-worship-card{
    position:relative;min-height:225px;padding:30px 26px;
    background:#fff;border:1px solid #dfe5eb;border-top:3px solid #ccd5df;
}
.ca-worship-card.ca-featured{
    background:#163a63;border-color:#163a63;color:#fff;
}
.ca-card-label{
    position:absolute;right:18px;top:17px;
    font-size:10px;letter-spacing:.15em;font-weight:800;color:#9fc8ff;
}
.ca-worship-card h3{margin:24px 0 28px;font-size:21px}
.ca-worship-card strong{display:block;font-size:17px}
.ca-worship-card p{margin:8px 0 0;color:#7b8590;font-size:14px}
.ca-worship-card.ca-featured p{color:rgba(255,255,255,.7)}

.ca-wide-section{width:100%}
.ca-sermon-section{
    padding:96px 0;
    background:#111b27;color:#fff;
}
.ca-light-head h2{color:#fff}
.ca-light-head>p:last-child{color:#aeb9c5}
.ca-media-grid{display:grid;grid-template-columns:1.45fr .85fr;gap:34px}
.ca-media-main{
    display:block;background:#fff;color:#1e2933;overflow:hidden;
}
.ca-media-thumb{
    position:relative;min-height:390px;
    background-size:cover;background-position:center;
}
.ca-thumb-hero{background-image:linear-gradient(rgba(11,26,42,.15),rgba(11,26,42,.18)),var(--sf-hero-image)}
.ca-thumb-church,.ca-g2{background-image:linear-gradient(rgba(11,26,42,.14),rgba(11,26,42,.14)),var(--sf-church-image)}
.ca-thumb-hero2,.ca-g3{background-image:linear-gradient(rgba(11,26,42,.23),rgba(11,26,42,.23)),var(--sf-hero-image)}
.ca-thumb-church2,.ca-g4{background-image:linear-gradient(rgba(11,26,42,.24),rgba(11,26,42,.24)),var(--sf-church-image)}
.ca-live-badge{
    position:absolute;left:20px;top:20px;padding:7px 10px;
    background:#e94747;color:#fff;font-size:10px;font-weight:800;letter-spacing:.11em;
}
.ca-play,.ca-play-small{
    position:absolute;left:50%;top:50%;display:flex;align-items:center;justify-content:center;
    transform:translate(-50%,-50%);
    width:68px;height:68px;border-radius:50%;
    background:rgba(255,255,255,.94);color:#182433;
    box-shadow:0 8px 25px rgba(0,0,0,.18);
}
.ca-media-body{padding:25px 28px 29px}
.ca-media-body small,.ca-mini-media small{font-size:10px;letter-spacing:.14em;color:var(--sf-primary);font-weight:900}
.ca-media-body h3{margin:7px 0 6px;font-size:25px}
.ca-media-body p{margin:0;color:#7a8490}
.ca-media-side{display:grid;gap:14px}
.ca-mini-media{
    display:grid;grid-template-columns:145px 1fr;gap:18px;align-items:center;
    min-height:124px;padding:12px;
    border:1px solid rgba(255,255,255,.13);
    color:#fff;background:rgba(255,255,255,.03);
}
.ca-mini-thumb{position:relative;height:100px;background-size:cover;background-position:center}
.ca-play-small{width:42px;height:42px;font-size:13px}
.ca-live-dot{
    position:absolute;left:9px;top:9px;padding:4px 7px;
    background:#e94747;color:#fff;font-size:9px;font-weight:900;letter-spacing:.08em;
}
.ca-mini-media strong{display:block;margin:5px 0 4px;font-size:17px}
.ca-mini-media div:last-child span{display:block;color:#9da8b4;font-size:13px}

.ca-content-pair{display:grid;grid-template-columns:1fr 1fr;gap:60px}
.ca-title-row{display:flex;align-items:flex-end;justify-content:space-between;gap:22px;margin-bottom:26px}
.ca-title-row h2{font-size:36px}
.ca-small-link{font-size:13px;font-weight:800;color:#69747f;white-space:nowrap}
.ca-bulletin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.ca-bulletin-card{
    min-height:245px;padding:24px 20px;
    display:flex;flex-direction:column;justify-content:flex-end;
    background:linear-gradient(155deg,#173a63 0%,#1f5e93 100%);
    color:#fff;
}
.ca-bulletin-card:nth-child(2){background:linear-gradient(155deg,#5a4635,#90704f)}
.ca-bulletin-card:nth-child(3){background:linear-gradient(155deg,#344943,#5f8176)}
.ca-bulletin-card span{font-size:11px;letter-spacing:.16em;color:rgba(255,255,255,.7)}
.ca-bulletin-card strong{font-size:48px;line-height:1;margin:8px 0 24px}
.ca-bulletin-card p{margin:0;font-weight:800}
.ca-news-list{border-top:2px solid #172435}
.ca-news-list a{
    display:grid;grid-template-columns:72px 1fr auto;gap:14px;align-items:center;
    min-height:66px;border-bottom:1px solid #e4e8ec;
}
.ca-news-list a>span{font-size:12px;color:var(--sf-primary);font-weight:800}
.ca-news-list strong{font-size:15px}
.ca-news-list time{color:#9aa2ab;font-size:12px}

.ca-ministry-section{padding:95px 0;background:#f3f6f9}
.ca-ministry-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.ca-ministry-card{
    min-height:270px;padding:28px 24px;background:#fff;border-bottom:3px solid transparent;
    transition:.25s ease;
}
.ca-ministry-card:hover{transform:translateY(-5px);border-color:var(--sf-primary);box-shadow:0 18px 35px rgba(27,43,62,.09)}
.ca-ministry-card>span{font-size:12px;font-weight:900;color:#a2adb8;letter-spacing:.11em}
.ca-ministry-card h3{margin:64px 0 15px;font-size:23px}
.ca-ministry-card p{margin:0;color:#707a84;line-height:1.75}

.ca-pastor{
    display:grid;grid-template-columns:1fr .85fr;gap:80px;align-items:center;
}
.ca-pastor-copy>p:not(.ca-eyebrow){margin:26px 0;color:#68737e;font-size:16px;line-height:1.9}
.ca-pastor-copy>strong{display:block;margin-top:20px}
.ca-pastor-photo{
    position:relative;min-height:470px;
    background-image:linear-gradient(rgba(19,42,62,.16),rgba(19,42,62,.16)),var(--sf-church-image);
    background-size:cover;background-position:center;
}
.ca-pastor-photo span{
    position:absolute;left:18px;bottom:17px;
    color:rgba(255,255,255,.85);font-weight:900;font-size:11px;letter-spacing:.14em;line-height:1.5;
}

.ca-gallery-section{padding-top:55px}
.ca-gallery-grid{
    display:grid;grid-template-columns:1.45fr .8fr .8fr;
    grid-template-rows:240px 240px;gap:12px;
}
.ca-gallery-item{
    position:relative;background-size:cover;background-position:center;overflow:hidden;
}
.ca-gallery-item::after{
    content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(9,19,30,.58),transparent 55%);
}
.ca-gallery-item span{position:absolute;left:20px;bottom:17px;z-index:2;color:#fff;font-weight:800}
.ca-g1{grid-row:1/3;background-image:linear-gradient(rgba(11,26,42,.08),rgba(11,26,42,.08)),var(--sf-hero-image)}
.ca-g4{grid-column:2/4}
.ca-contact-section{padding:88px 0;background:#16283a;color:#fff}
.ca-contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:70px;align-items:center}
.ca-contact-section h2{color:#fff}
.ca-address{margin:26px 0 16px;font-size:21px;font-weight:800}
.ca-contact-meta p{margin:8px 0;color:#c5ced7}
.ca-contact-meta span{display:inline-block;width:58px;color:#8295a7;font-size:12px;font-weight:800}
.ca-contact-meta a{color:#fff}
.ca-map-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:27px}
.ca-map-actions a{
    padding:10px 14px;border:1px solid rgba(255,255,255,.3);
    color:#fff;font-size:13px;font-weight:800;
}
.ca-map-placeholder{
    min-height:320px;display:flex;flex-direction:column;align-items:center;justify-content:center;
    background:#e9eef2;color:#52616e;text-align:center;
}
.ca-map-placeholder>span{font-size:11px;letter-spacing:.2em;font-weight:900;color:#8b98a3}
.ca-map-placeholder>strong{margin-top:15px;font-size:19px;color:#344452}
.ca-map-placeholder p{margin:6px 0 0;font-size:13px}

@media(max-width:1020px){
    .ca-slider{min-height:620px}
    .ca-slider-arrow{display:none}
    .ca-quick-item{padding:23px 18px}
    .ca-intro{gap:42px}
    .ca-worship-grid,.ca-ministry-grid{grid-template-columns:repeat(2,1fr)}
    .ca-content-pair{gap:35px}
    .ca-media-grid{grid-template-columns:1fr}
    .ca-media-side{grid-template-columns:repeat(3,1fr)}
    .ca-mini-media{display:block}
    .ca-mini-thumb{height:150px;margin-bottom:12px}
    .ca-pastor{gap:45px}
}
@media(max-width:760px){
    .sf-content:has(.sf-church-a){padding:0}
    .sf-church-a .ca-section,.sf-church-a .ca-wide-inner{width:min(calc(100% - 28px),var(--sf-max-width))}
    .ca-slider{min-height:560px}
    .ca-slide-inner{width:min(calc(100% - 36px),var(--sf-max-width));padding:92px 0 128px}
    .ca-slide h1,.ca-slide h2{font-size:clamp(38px,11vw,55px)}
    .ca-slide-copy{font-size:16px}
    .ca-slider-dots{bottom:92px}
    .ca-quick-wrap{width:min(calc(100% - 24px),var(--sf-max-width));margin-top:-58px}
    .ca-quick{grid-template-columns:repeat(2,1fr)}
    .ca-quick-item{min-height:104px;padding:18px 15px;grid-template-columns:38px 1fr;gap:3px 10px}
    .ca-quick-item:nth-child(2){border-right:0}
    .ca-quick-item:nth-child(-n+2){border-bottom:1px solid #e7ebef}
    .ca-quick-icon{width:36px;height:36px;font-size:16px}
    .ca-quick-item strong{font-size:14px}
    .ca-section{padding-top:66px;padding-bottom:66px}
    .ca-intro,.ca-pastor,.ca-contact-grid,.ca-content-pair{grid-template-columns:1fr}
    .ca-intro{gap:42px;padding-top:84px}
    .ca-intro-photo{min-height:330px;box-shadow:10px 12px 0 #eef3f8}
    .ca-intro-copy h2,.ca-section-heading h2,.ca-pastor h2,.ca-contact-section h2{font-size:35px}
    .ca-worship-grid,.ca-ministry-grid{grid-template-columns:1fr 1fr}
    .ca-worship-card{min-height:190px;padding:24px 20px}
    .ca-media-thumb{min-height:260px}
    .ca-media-side{grid-template-columns:1fr}
    .ca-mini-media{display:grid;grid-template-columns:130px 1fr}
    .ca-mini-thumb{height:92px;margin:0}
    .ca-bulletin-grid{grid-template-columns:repeat(3,1fr)}
    .ca-bulletin-card{min-height:200px;padding:18px 14px}
    .ca-bulletin-card strong{font-size:38px;margin-bottom:18px}
    .ca-bulletin-card p{font-size:13px}
    .ca-news-list a{grid-template-columns:60px 1fr}
    .ca-news-list time{display:none}
    .ca-pastor{gap:36px}
    .ca-pastor-photo{min-height:350px;order:-1}
    .ca-gallery-grid{grid-template-columns:1fr 1fr;grid-template-rows:230px 180px 180px}
    .ca-g1{grid-column:1/3;grid-row:auto}
    .ca-g4{grid-column:1/3}
    .ca-contact-grid{gap:38px}
}
@media(max-width:480px){
    .ca-slide-actions{gap:8px}
    .ca-btn{min-height:44px;padding:0 15px}
    .ca-worship-grid,.ca-ministry-grid{grid-template-columns:1fr}
    .ca-bulletin-grid{gap:7px}
    .ca-bulletin-card{min-height:170px;padding:14px 10px}
    .ca-bulletin-card strong{font-size:32px}
    .ca-bulletin-card p{font-size:11px}
    .ca-mini-media{grid-template-columns:108px 1fr;gap:13px}
    .ca-title-row{align-items:center}
}


/* ==========================================================
   Summit Factory · Church A Demo v0.4
   Header + Hero slider visual polish
   ========================================================== */

/* Header: calmer spacing, stronger premium navigation rhythm */
.sf-header{
    background:rgba(255,255,255,.985);
    border-bottom:1px solid #e5e9ee;
    box-shadow:0 1px 0 rgba(21,39,57,.02);
}
.sf-header-inner{
    min-height:96px;
    gap:34px;
}
.sf-brand{
    flex:0 0 auto;
    min-width:220px;
}
.sf-logo{
    max-width:270px;
    max-height:74px;
}
.sf-navigation{
    margin-left:auto;
    align-self:stretch;
    display:flex;
    align-items:stretch;
}
.sf-gnb{
    height:100%;
    gap:2px;
}
.sf-gnb > li{
    display:flex;
    align-items:stretch;
}
.sf-gnb > li > a{
    position:relative;
    display:flex;
    align-items:center;
    min-height:96px;
    padding:0 15px;
    color:#253442;
    font-size:14px;
    font-weight:800;
    letter-spacing:-.01em;
    transition:color .18s ease;
}
.sf-gnb > li > a::after{
    content:"";
    position:absolute;
    left:15px;
    right:15px;
    bottom:0;
    height:3px;
    transform:scaleX(0);
    transform-origin:center;
    background:var(--sf-primary);
    transition:transform .18s ease;
}
.sf-gnb > li > a:hover::after,
.sf-gnb > li > a:focus::after,
.sf-gnb > li.active > a::after,
.sf-gnb > li.on > a::after{
    transform:scaleX(1);
}
.sf-depth2{
    top:calc(100% + 1px);
    min-width:205px;
    padding:9px;
    border-radius:4px;
    border-color:#e1e7ed;
    box-shadow:0 16px 40px rgba(18,33,49,.14);
}
.sf-depth2 a{
    padding:10px 13px;
    border-radius:3px;
    color:#41505e;
    font-weight:700;
}
.sf-depth2 a:hover,
.sf-depth2 a:focus{
    background:#f1f5f9;
}
.sf-member{
    gap:6px;
    margin-left:2px;
    font-size:12px;
}
.sf-member a{
    padding:7px 10px;
    border-radius:4px;
    background:#fff;
}

/* Hero: stronger first impression without making it flashy */
.ca-slider{
    min-height:715px;
}
.ca-slide-overlay{
    background:
      linear-gradient(90deg,rgba(7,19,31,.86) 0%,rgba(7,19,31,.63) 43%,rgba(7,19,31,.24) 72%,rgba(7,19,31,.10) 100%);
}
.ca-slide-2 .ca-slide-overlay{
    background:
      linear-gradient(90deg,rgba(11,28,41,.87) 0%,rgba(11,28,41,.62) 46%,rgba(11,28,41,.22) 78%,rgba(11,28,41,.09) 100%);
}
.ca-slide-3 .ca-slide-overlay{
    background:
      linear-gradient(90deg,rgba(20,25,43,.88) 0%,rgba(20,25,43,.60) 47%,rgba(20,25,43,.20) 79%,rgba(20,25,43,.08) 100%);
}
.ca-slide-inner{
    padding:134px 0 174px;
}
.ca-kicker{
    display:flex;
    align-items:center;
    gap:11px;
    margin-bottom:17px;
    color:#d4e6ff;
    text-shadow:0 2px 12px rgba(0,0,0,.18);
}
.ca-kicker::before{
    content:"";
    display:block;
    width:34px;
    height:2px;
    background:#91c4ff;
}
.ca-slide h1,
.ca-slide h2{
    max-width:820px;
    font-weight:800;
    letter-spacing:-.052em;
    text-shadow:0 5px 25px rgba(0,0,0,.22);
}
.ca-slide-copy{
    max-width:680px;
    margin-top:22px;
    color:rgba(255,255,255,.88);
    text-shadow:0 2px 12px rgba(0,0,0,.16);
}
.ca-slide-actions{
    margin-top:34px;
    gap:9px;
}
.ca-btn{
    min-width:132px;
    min-height:50px;
    padding:0 20px;
    border-radius:3px;
    font-size:13px;
    font-weight:900;
    transition:transform .18s ease,background .18s ease,border-color .18s ease;
}
.ca-btn:hover{
    transform:translateY(-2px);
}
.ca-btn-light:hover{
    background:#edf4fb;
}
.ca-btn-outline{
    background:rgba(255,255,255,.08);
    border-color:rgba(255,255,255,.55);
    backdrop-filter:blur(5px);
}
.ca-btn-outline:hover{
    background:rgba(255,255,255,.16);
    border-color:#fff;
}
.ca-slider-arrow{
    width:50px;
    height:50px;
    margin-top:-25px;
    border-color:rgba(255,255,255,.34);
    background:rgba(8,20,32,.28);
    font-size:30px;
    transition:background .18s ease,border-color .18s ease;
}
.ca-slider-arrow:hover{
    background:rgba(8,20,32,.58);
    border-color:rgba(255,255,255,.72);
}
.ca-prev{left:24px}
.ca-next{right:24px}
.ca-slider-dots{
    bottom:108px;
    gap:8px;
}
.ca-slider-dots button{
    height:5px;
    width:22px;
    border-radius:0;
    background:rgba(255,255,255,.35);
}
.ca-slider-dots button.is-active{
    width:42px;
    background:#fff;
}

/* Quick links: make the overlap look intentional and more product-like */
.ca-quick-wrap{
    margin-top:-68px;
}
.ca-quick{
    border-radius:4px;
    box-shadow:0 22px 60px rgba(13,28,44,.15);
}
.ca-quick-item{
    min-height:132px;
}
.ca-quick-item strong{
    color:#243442;
}
.ca-quick-item:hover{
    background:#f5f8fb;
}
.ca-quick-item:hover .ca-quick-icon{
    transform:translateY(-2px);
}
.ca-quick-icon{
    transition:transform .18s ease;
}

/* Tablet and mobile */
@media(max-width:1120px) and (min-width:921px){
    .sf-header-inner{gap:20px}
    .sf-brand{min-width:190px}
    .sf-logo{max-width:235px}
    .sf-gnb > li > a{padding-left:10px;padding-right:10px;font-size:13px}
    .sf-gnb > li > a::after{left:10px;right:10px}
}
@media(max-width:920px){
    .sf-header-inner{
        min-height:76px;
        gap:12px;
    }
    .sf-logo{
        max-width:215px;
        max-height:60px;
    }
    .sf-navigation{
        display:none;
        top:76px;
        max-height:calc(100vh - 76px);
    }
    .sf-site.sf-menu-open .sf-navigation{
        display:block;
    }
    .sf-gnb{
        height:auto;
    }
    .sf-gnb > li{
        display:block;
    }
    .sf-gnb > li > a{
        min-height:0;
        padding:15px 44px 15px 4px;
    }
    .sf-gnb > li > a::after{
        display:none;
    }
    .ca-slider{
        min-height:610px;
    }
    .ca-slide-inner{
        padding:110px 0 150px;
    }
}
@media(max-width:760px){
    .ca-slider{
        min-height:575px;
    }
    .ca-slide-inner{
        padding:98px 0 140px;
    }
    .ca-kicker{
        font-size:10px;
        letter-spacing:.15em;
    }
    .ca-kicker::before{
        width:24px;
    }
    .ca-slide h1,
    .ca-slide h2{
        max-width:94%;
        font-size:clamp(38px,10.5vw,52px);
        line-height:1.09;
    }
    .ca-slide-copy{
        max-width:92%;
        font-size:15px;
        line-height:1.65;
    }
    .ca-slider-dots{
        bottom:96px;
    }
}
@media(max-width:560px){
    .sf-header-inner{
        min-height:72px;
    }
    .sf-logo{
        max-width:190px;
        max-height:54px;
    }
    .sf-navigation{
        top:72px;
        max-height:calc(100vh - 72px);
    }
    .ca-slider{
        min-height:550px;
    }
    .ca-slide-inner{
        padding:86px 0 132px;
    }
    .ca-btn{
        min-width:116px;
        min-height:46px;
        padding:0 16px;
    }
    .ca-slider-dots{
        bottom:90px;
    }
}


/* ==========================================================
   Church A v0.5 · Protected HOME editing
   ========================================================== */
.sf-content:has(.sf-church-a) > .btnArea{
    display:none!important;
}
.sf-church-a .ca-slide-1{
    background-image:var(--ca-slide1-image,var(--sf-hero-image));
}
.sf-church-a .ca-slide-2{
    background-image:var(--ca-slide2-image,var(--sf-church-image));
}
.sf-church-a .ca-slide-3{
    background-image:var(--ca-slide3-image,var(--sf-hero-image));
}
.sf-church-a .ca-intro-photo{
    background-image:var(--ca-intro-image,var(--sf-church-image));
}
.sf-church-a .ca-pastor-photo{
    background-image:
      linear-gradient(rgba(19,42,62,.16),rgba(19,42,62,.16)),
      var(--ca-pastor-image,var(--sf-church-image));
}
.sf-home-manage-link{
    border:1px solid #b9c8d6!important;
    background:#f4f8fb!important;
    color:#173a63!important;
    font-weight:900!important;
}


/* ==========================================================
   Church A v0.6 · Floating HOME / UP button
   ========================================================== */
.sf-home-up{
    position:fixed;
    right:24px;
    bottom:26px;
    z-index:1200;
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.30);
    background:#173a63;
    color:#fff!important;
    font-size:25px;
    line-height:1;
    text-decoration:none!important;
    box-shadow:0 10px 28px rgba(15,34,53,.22);
    opacity:0;
    visibility:hidden;
    transform:translateY(10px);
    transition:opacity .2s ease,visibility .2s ease,transform .2s ease,background .2s ease;
}
.sf-home-up.is-visible{
    opacity:1;
    visibility:visible;
    transform:translateY(0);
}
.sf-home-up:hover,
.sf-home-up:focus{
    background:#0f2f50;
    color:#fff!important;
}
.sf-home-up span{
    display:block;
    transform:translateY(-1px);
}
@media(max-width:760px){
    .sf-home-up{
        right:15px;
        bottom:18px;
        width:44px;
        height:44px;
        font-size:22px;
    }
}


/* ==========================================================
   Church A v0.8 · Mobile parent-menu accordion
   Parent menu text and arrow both toggle the submenu.
   ========================================================== */
@media(max-width:920px){
    .sf-has-children > a{
        cursor:pointer;
        padding-right:52px!important;
        -webkit-tap-highlight-color:transparent;
    }
    .sf-has-children.sf-sub-open > a{
        color:var(--sf-primary);
        font-weight:900;
    }
    .sf-has-children.sf-sub-open > .sf-sub-toggle{
        background:#eaf2fa;
        border-color:#c9d9e8;
        color:var(--sf-primary);
    }
    .sf-has-children.sf-sub-open > .sf-sub-toggle .sf-sub-icon{
        transform:rotate(180deg);
    }
    .sf-depth2.sf-depth2-open{
        animation:sfMobileSubmenuOpen .18s ease-out;
    }
}
@keyframes sfMobileSubmenuOpen{
    from{opacity:0;transform:translateY(-5px)}
    to{opacity:1;transform:translateY(0)}
}


/* ==========================================================
   Church A v0.9 · Final navigation behavior
   PC: hover dropdown + parent representative page
   Mobile: parent/arrow accordion
   ========================================================== */
@media(min-width:921px){
    .sf-gnb > .sf-has-children > a{
        cursor:pointer;
    }
    .sf-gnb > .sf-has-children:hover > .sf-depth2,
    .sf-gnb > .sf-has-children:focus-within > .sf-depth2{
        opacity:1!important;
        visibility:visible!important;
        transform:translate(-50%,0)!important;
        pointer-events:auto;
    }
    .sf-sub-toggle{
        display:none!important;
    }
}
@media(max-width:920px){
    .sf-gnb > .sf-has-children > a{
        cursor:pointer;
    }
}


/* ==========================================================
   Church A v0.10 · Desktop parent click hard-fix
   Hover opens submenu; click navigates parent representative page.
   ========================================================== */
@media(min-width:921px){
    .sf-gnb > .sf-has-children:focus-within > .sf-depth2{
        opacity:0;
        visibility:hidden;
        transform:translate(-50%,8px);
        pointer-events:none;
    }
    .sf-gnb > .sf-has-children:hover > .sf-depth2{
        opacity:1!important;
        visibility:visible!important;
        transform:translate(-50%,0)!important;
        pointer-events:auto!important;
    }
}


/* ==========================================================
   Church A v0.11 · MISSIONS representative parent page
   ========================================================== */
.sf-content:has(.sf-mission-overview){
    width:100%;
    max-width:none;
    padding:0;
}
.sf-mission-overview{
    color:#1e2b37;
    background:#fff;
}
.smo-hero{
    position:relative;
    min-height:500px;
    display:flex;
    align-items:center;
    background-image:var(--sf-hero-image);
    background-size:cover;
    background-position:center 58%;
}
.smo-hero-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(10,27,44,.89) 0%,rgba(10,27,44,.64) 48%,rgba(10,27,44,.18) 100%);
}
.smo-hero-inner{
    position:relative;
    z-index:2;
    width:min(calc(100% - 40px),var(--sf-max-width));
    margin:0 auto;
    padding:90px 0;
    color:#fff;
}
.smo-kicker{
    margin:0 0 15px;
    color:#b7d8ff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.22em;
}
.smo-hero h1{
    margin:0;
    max-width:760px;
    color:#fff;
    font-size:clamp(45px,6vw,70px);
    line-height:1.08;
    letter-spacing:-.052em;
}
.smo-hero-inner>p:last-child{
    max-width:710px;
    margin:25px 0 0;
    color:rgba(255,255,255,.84);
    font-size:18px;
    line-height:1.8;
}
.smo-intro,
.smo-vision,
.smo-story{
    width:min(calc(100% - 40px),var(--sf-max-width));
    margin-left:auto;
    margin-right:auto;
}
.smo-intro{
    display:grid;
    grid-template-columns:.55fr 1.45fr;
    gap:70px;
    padding:110px 0;
}
.smo-intro-label{
    padding-top:7px;
}
.smo-intro-label span{
    display:block;
    margin-bottom:12px;
    color:#81909d;
    font-size:11px;
    font-weight:900;
    letter-spacing:.2em;
}
.smo-intro-label strong{
    color:#173a63;
    font-size:16px;
    letter-spacing:.06em;
}
.smo-intro-copy h2,
.smo-section-head h2,
.smo-story-copy h2,
.smo-prayer h2{
    margin:0;
    color:#152536;
    font-size:clamp(35px,4.2vw,52px);
    line-height:1.24;
    letter-spacing:-.045em;
}
.smo-intro-copy p{
    margin:24px 0 0;
    color:#687580;
    font-size:17px;
    line-height:1.9;
}
.smo-vision{
    padding:15px 0 105px;
}
.smo-section-head{
    max-width:720px;
    margin-bottom:43px;
}
.smo-section-head>p{
    margin:0 0 11px;
    color:#2e6799;
    font-size:11px;
    font-weight:900;
    letter-spacing:.2em;
}
.smo-section-head>span{
    display:block;
    margin-top:14px;
    color:#7d8994;
    font-size:16px;
}
.smo-vision-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    border-top:1px solid #dce3e9;
    border-bottom:1px solid #dce3e9;
}
.smo-vision-grid article{
    min-height:290px;
    padding:34px 34px 36px;
    border-right:1px solid #dce3e9;
}
.smo-vision-grid article:last-child{
    border-right:0;
}
.smo-number{
    color:#9ba8b3;
    font-size:12px;
    font-weight:900;
    letter-spacing:.14em;
}
.smo-vision-grid h3{
    margin:70px 0 15px;
    font-size:24px;
    color:#1b2c3b;
}
.smo-vision-grid p{
    margin:0;
    color:#6e7a85;
    line-height:1.8;
}
.smo-story{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:70px;
    align-items:center;
    padding:45px 0 115px;
}
.smo-story-photo{
    min-height:520px;
    background-image:var(--sf-church-image);
    background-size:cover;
    background-position:center;
    box-shadow:18px 20px 0 #eef3f7;
}
.smo-dark{
    color:#2d689a;
}
.smo-story-copy>p:not(.smo-kicker){
    margin:24px 0 0;
    color:#6b7782;
    font-size:16px;
    line-height:1.9;
}
.smo-story blockquote{
    margin:30px 0 0;
    padding:20px 0 20px 22px;
    border-left:3px solid #173a63;
    color:#263847;
    font-size:18px;
    font-weight:800;
    line-height:1.7;
}
.smo-prayer{
    width:100%;
    padding:92px 0;
    background:#14283c;
    color:#fff;
}
.smo-prayer-inner{
    width:min(calc(100% - 40px),var(--sf-max-width));
    margin:0 auto;
}
.smo-prayer h2{
    color:#fff;
}
.smo-prayer-inner>p:not(.smo-kicker){
    max-width:700px;
    margin:18px 0 0;
    color:#c5d0da;
    font-size:16px;
    line-height:1.8;
}
.smo-prayer-points{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    margin-top:40px;
    background:rgba(255,255,255,.14);
}
.smo-prayer-points div{
    min-height:135px;
    padding:27px 28px;
    background:#14283c;
}
.smo-prayer-points strong{
    display:block;
    margin-bottom:13px;
    color:#acd2ff;
    font-size:13px;
    letter-spacing:.14em;
}
.smo-prayer-points span{
    color:#fff;
    font-size:16px;
    line-height:1.6;
}
@media(max-width:820px){
    .smo-intro{
        grid-template-columns:1fr;
        gap:25px;
        padding:75px 0;
    }
    .smo-vision-grid{
        grid-template-columns:1fr;
        border-bottom:0;
    }
    .smo-vision-grid article{
        min-height:0;
        border-right:0;
        border-bottom:1px solid #dce3e9;
    }
    .smo-vision-grid h3{
        margin-top:35px;
    }
    .smo-story{
        grid-template-columns:1fr;
        gap:45px;
        padding-bottom:85px;
    }
    .smo-story-photo{
        min-height:360px;
    }
}
@media(max-width:620px){
    .smo-hero{
        min-height:420px;
    }
    .smo-hero-inner{
        width:calc(100% - 30px);
        padding:68px 0;
    }
    .smo-hero h1{
        font-size:42px;
    }
    .smo-hero-inner>p:last-child{
        font-size:15px;
    }
    .smo-intro,
    .smo-vision,
    .smo-story,
    .smo-prayer-inner{
        width:calc(100% - 30px);
    }
    .smo-prayer-points{
        grid-template-columns:1fr;
    }
}


/* ==========================================================
   Church A v0.12 · CHURCH + MESSAGES representative pages
   ========================================================== */
.sf-content:has(.sf-church-overview),
.sf-content:has(.sf-messages-overview){
    width:100%;
    max-width:none;
    padding:0;
}

/* ---------- CHURCH ---------- */
.sf-church-overview{background:#fff;color:#1e2b37}
.sco-hero{
    position:relative;min-height:500px;display:flex;align-items:center;
    background-image:var(--sf-church-image);
    background-size:cover;background-position:center;
}
.sco-hero-overlay{
    position:absolute;inset:0;
    background:linear-gradient(90deg,rgba(11,29,45,.89),rgba(11,29,45,.62) 50%,rgba(11,29,45,.18));
}
.sco-hero-inner,.sco-welcome,.sco-values,.sco-paths,.sco-pastor{
    width:min(calc(100% - 40px),var(--sf-max-width));
    margin-left:auto;margin-right:auto;
}
.sco-hero-inner{position:relative;z-index:2;padding:90px 0;color:#fff}
.sco-kicker{margin:0 0 15px;color:#bddcff;font-size:11px;font-weight:900;letter-spacing:.2em}
.sco-dark{color:#2d6799}
.sco-hero h1{
    margin:0;max-width:760px;color:#fff;
    font-size:clamp(44px,6vw,70px);line-height:1.09;letter-spacing:-.052em;
}
.sco-hero-inner>p:last-child{max-width:700px;margin:24px 0 0;color:rgba(255,255,255,.84);font-size:18px;line-height:1.8}
.sco-welcome{
    display:grid;grid-template-columns:1.05fr .95fr;gap:72px;align-items:center;padding:110px 0;
}
.sco-welcome-photo{
    min-height:520px;background-image:var(--sf-church-image);background-size:cover;background-position:center;
    box-shadow:18px 20px 0 #edf2f6;
}
.sco-welcome h2,.sco-section-head h2,.sco-pastor h2,.sco-visit h2{
    margin:0;color:#162636;font-size:clamp(34px,4.2vw,52px);line-height:1.23;letter-spacing:-.045em;
}
.sco-welcome-copy>p:not(.sco-kicker),.sco-pastor-copy>p:not(.sco-kicker){
    margin:23px 0 0;color:#697681;font-size:16px;line-height:1.9;
}
.sco-link{
    display:inline-flex;gap:15px;align-items:center;margin-top:28px;padding-bottom:7px;
    border-bottom:1px solid #213445;color:#213445;font-size:14px;font-weight:900;
}
.sco-values{padding:18px 0 105px}
.sco-section-head{max-width:720px;margin-bottom:42px}
.sco-section-head>p{margin:0 0 11px;color:#2e6799;font-size:11px;font-weight:900;letter-spacing:.2em}
.sco-section-head>span{display:block;margin-top:13px;color:#7d8994}
.sco-center{text-align:center;margin-left:auto;margin-right:auto}
.sco-values-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #dce3e9;border-bottom:1px solid #dce3e9}
.sco-values-grid article{min-height:270px;padding:30px 27px;border-right:1px solid #dce3e9}
.sco-values-grid article:last-child{border-right:0}
.sco-values-grid article>span{color:#9aa7b2;font-size:12px;font-weight:900;letter-spacing:.12em}
.sco-values-grid h3{margin:58px 0 13px;font-size:23px}
.sco-values-grid p{margin:0;color:#6d7984;line-height:1.78}
.sco-paths{padding:20px 0 110px}
.sco-path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.sco-path-card{min-height:310px;padding:32px 28px;background:#f4f7f9;color:#1e2c39;transition:.23s ease}
.sco-path-card:hover{transform:translateY(-5px);background:#173a63;color:#fff;box-shadow:0 18px 38px rgba(20,40,59,.12)}
.sco-path-card>strong{font-size:11px;letter-spacing:.16em;color:#778895}
.sco-path-card:hover>strong{color:#afd2f4}
.sco-path-card h3{margin:68px 0 15px;font-size:25px}
.sco-path-card p{margin:0;line-height:1.8;color:#71808b}
.sco-path-card:hover p{color:rgba(255,255,255,.75)}
.sco-path-card>span{display:block;margin-top:25px;font-size:13px;font-weight:900}
.sco-pastor{display:grid;grid-template-columns:.95fr 1.05fr;gap:70px;align-items:center;padding:25px 0 110px}
.sco-pastor-copy>strong{display:block;margin-top:22px}
.sco-pastor-photo{min-height:500px;background-image:var(--sf-church-image);background-size:cover;background-position:center}
.sco-visit{
    width:100%;display:flex;justify-content:space-between;align-items:center;gap:30px;
    padding:70px max(20px,calc((100vw - var(--sf-max-width))/2));
    background:#14283c;color:#fff;
}
.sco-visit h2{color:#fff;font-size:38px}
.sco-visit>div:first-child>p:last-child{margin:12px 0 0;color:#c2cdd7}
.sco-visit-actions{display:flex;gap:8px;flex-wrap:wrap}
.sco-visit-actions a{padding:12px 17px;border:1px solid rgba(255,255,255,.35);color:#fff;font-weight:800}

/* ---------- MESSAGES ---------- */
.sf-messages-overview{background:#fff;color:#1e2b37}
.smo-msg-hero{
    position:relative;min-height:500px;display:flex;align-items:center;
    background-image:var(--sf-hero-image);background-size:cover;background-position:center 52%;
}
.smo-msg-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(9,24,39,.9),rgba(9,24,39,.63) 49%,rgba(9,24,39,.17))}
.smo-msg-inner,.smo-msg-intro,.smo-msg-feature,.smo-msg-study,.smo-msg-media-inner{
    width:min(calc(100% - 40px),var(--sf-max-width));margin-left:auto;margin-right:auto;
}
.smo-msg-inner{position:relative;z-index:2;padding:90px 0;color:#fff}
.smo-msg-kicker{margin:0 0 15px;color:#bddcff;font-size:11px;font-weight:900;letter-spacing:.2em}
.smo-msg-dark{color:#2d6799}
.smo-msg-hero h1{
    margin:0;max-width:800px;color:#fff;font-size:clamp(44px,6vw,70px);line-height:1.09;letter-spacing:-.052em;
}
.smo-msg-inner>p:last-child{max-width:700px;margin:24px 0 0;color:rgba(255,255,255,.84);font-size:18px;line-height:1.8}
.smo-msg-intro{display:grid;grid-template-columns:1fr 1fr;gap:70px;padding:105px 0}
.smo-msg-intro h2,.smo-msg-feature-copy h2,.smo-msg-section-head h2,.smo-msg-media h2{
    margin:0;color:#162636;font-size:clamp(34px,4.2vw,52px);line-height:1.23;letter-spacing:-.045em;
}
.smo-msg-intro>div:last-child p{margin:3px 0 0;color:#687580;font-size:17px;line-height:1.95}
.smo-msg-feature{display:grid;grid-template-columns:1.15fr .85fr;gap:68px;align-items:center;padding:10px 0 110px}
.smo-msg-feature-photo{
    position:relative;display:block;min-height:480px;background-image:var(--sf-hero-image);background-size:cover;background-position:center;
}
.smo-msg-badge{position:absolute;left:18px;top:18px;padding:7px 9px;background:#d74d45;color:#fff;font-size:10px;font-weight:900;letter-spacing:.13em}
.smo-msg-play{
    position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);
    width:72px;height:72px;border-radius:50%;display:flex;align-items:center;justify-content:center;
    background:rgba(255,255,255,.95);color:#173a63;font-size:20px;box-shadow:0 10px 30px rgba(0,0,0,.15)
}
.smo-msg-feature-copy>p:not(.smo-msg-kicker){margin:23px 0 0;color:#697681;font-size:16px;line-height:1.9}
.smo-msg-link{
    display:inline-flex;gap:15px;align-items:center;margin-top:28px;padding-bottom:7px;border-bottom:1px solid #213445;color:#213445;font-size:14px;font-weight:900;
}
.smo-msg-study{padding:16px 0 110px}
.smo-msg-section-head{max-width:730px;margin-bottom:40px}
.smo-msg-section-head>p{margin:0 0 11px;color:#2e6799;font-size:11px;font-weight:900;letter-spacing:.2em}
.smo-msg-section-head>span{display:block;margin-top:13px;color:#7d8994}
.smo-msg-study-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #dce3e9;border-bottom:1px solid #dce3e9}
.smo-msg-study-grid article{min-height:270px;padding:31px 29px;border-right:1px solid #dce3e9}
.smo-msg-study-grid article:last-child{border-right:0}
.smo-msg-study-grid article>span{font-size:12px;font-weight:900;color:#9aa7b2;letter-spacing:.12em}
.smo-msg-study-grid h3{margin:62px 0 14px;font-size:24px}
.smo-msg-study-grid p{margin:0;color:#6d7984;line-height:1.8}
.smo-msg-link-center{margin-top:34px}
.smo-msg-media{width:100%;padding:90px 0;background:#14283c;color:#fff}
.smo-msg-media-inner{display:grid;grid-template-columns:.9fr 1.1fr;gap:65px;align-items:center}
.smo-msg-media h2{color:#fff}
.smo-msg-media-inner>div:first-child>p:last-child{margin:18px 0 0;color:#c5d0da;line-height:1.8}
.smo-msg-media-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.smo-msg-media-cards a{min-height:150px;padding:24px 20px;display:flex;flex-direction:column;justify-content:space-between;border:1px solid rgba(255,255,255,.16);color:#fff}
.smo-msg-media-cards strong{font-size:13px;letter-spacing:.14em;color:#add3f7}
.smo-msg-media-cards span{font-size:13px;font-weight:800}

@media(max-width:850px){
    .sco-welcome,.sco-pastor,.smo-msg-feature{grid-template-columns:1fr;gap:45px}
    .sco-values-grid{grid-template-columns:1fr 1fr}
    .sco-values-grid article:nth-child(2){border-right:0}
    .sco-values-grid article:nth-child(-n+2){border-bottom:1px solid #dce3e9}
    .sco-path-grid{grid-template-columns:1fr}
    .smo-msg-intro{grid-template-columns:1fr;gap:25px}
    .smo-msg-study-grid{grid-template-columns:1fr}
    .smo-msg-study-grid article{min-height:0;border-right:0;border-bottom:1px solid #dce3e9}
    .smo-msg-media-inner{grid-template-columns:1fr}
}
@media(max-width:620px){
    .sco-hero,.smo-msg-hero{min-height:420px}
    .sco-hero-inner,.sco-welcome,.sco-values,.sco-paths,.sco-pastor,
    .smo-msg-inner,.smo-msg-intro,.smo-msg-feature,.smo-msg-study,.smo-msg-media-inner{
        width:calc(100% - 30px)
    }
    .sco-hero h1,.smo-msg-hero h1{font-size:42px}
    .sco-hero-inner>p:last-child,.smo-msg-inner>p:last-child{font-size:15px}
    .sco-welcome,.smo-msg-intro{padding:75px 0}
    .sco-welcome-photo,.sco-pastor-photo,.smo-msg-feature-photo{min-height:350px}
    .sco-values-grid{grid-template-columns:1fr}
    .sco-values-grid article{border-right:0;border-bottom:1px solid #dce3e9}
    .sco-values-grid h3{margin-top:35px}
    .sco-visit{display:block;padding:55px 15px}
    .sco-visit-actions{margin-top:25px}
    .smo-msg-media-cards{grid-template-columns:1fr}
}


/* ==========================================================
   Church A v0.13 · CONTACT representative page
   ========================================================== */
.sf-content:has(.sf-contact-overview){
    width:100%;
    max-width:none;
    padding:0;
}
.sf-contact-overview{
    background:#fff;
    color:#1e2b37;
}
.sct-hero{
    position:relative;
    min-height:470px;
    display:flex;
    align-items:center;
    background-image:var(--sf-church-image);
    background-size:cover;
    background-position:center;
}
.sct-overlay{
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(10,27,43,.90),rgba(10,27,43,.63) 50%,rgba(10,27,43,.18));
}
.sct-inner,
.sct-info,
.sct-map{
    width:min(calc(100% - 40px),var(--sf-max-width));
    margin-left:auto;
    margin-right:auto;
}
.sct-inner{
    position:relative;
    z-index:2;
    padding:86px 0;
    color:#fff;
}
.sct-kicker{
    margin:0 0 14px;
    color:#bbdcff;
    font-size:11px;
    font-weight:900;
    letter-spacing:.20em;
}
.sct-dark{
    color:#2d6799;
}
.sct-inner h1{
    margin:0;
    color:#fff;
    max-width:760px;
    font-size:clamp(43px,5.8vw,68px);
    line-height:1.09;
    letter-spacing:-.05em;
}
.sct-inner>p:last-child{
    max-width:680px;
    margin:24px 0 0;
    color:rgba(255,255,255,.84);
    font-size:18px;
    line-height:1.8;
}
.sct-info{
    padding:105px 0 95px;
}
.sct-info-heading{
    max-width:720px;
    margin-bottom:42px;
}
.sct-info-heading h2,
.sct-map-copy h2,
.sct-welcome h2{
    margin:0;
    color:#162636;
    font-size:clamp(34px,4.2vw,52px);
    line-height:1.22;
    letter-spacing:-.045em;
}
.sct-info-heading>p:last-child{
    margin:14px 0 0;
    color:#7b8792;
    font-size:16px;
}
.sct-info-grid{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    border-top:1px solid #dce3e9;
    border-bottom:1px solid #dce3e9;
}
.sct-info-grid article{
    min-height:260px;
    padding:29px 25px;
    border-right:1px solid #dce3e9;
}
.sct-info-grid article:last-child{border-right:0}
.sct-info-grid article>span{
    display:block;
    color:#9ba8b2;
    font-size:11px;
    font-weight:900;
    letter-spacing:.12em;
}
.sct-info-grid article>strong{
    display:block;
    margin-top:45px;
    color:#2c679a;
    font-size:11px;
    letter-spacing:.14em;
}
.sct-info-grid h3{
    margin:9px 0 14px;
    font-size:22px;
}
.sct-info-grid p{
    margin:0;
    color:#6c7984;
    line-height:1.75;
    overflow-wrap:anywhere;
}
.sct-info-grid a{color:#315f87}
.sct-map{
    display:grid;
    grid-template-columns:1.18fr .82fr;
    gap:65px;
    align-items:center;
    padding:20px 0 110px;
}
.sct-map-box{
    min-height:420px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    background:#e9eef2;
    color:#536370;
    text-align:center;
    padding:30px;
}
.sct-map-box>span{
    color:#8997a3;
    font-size:11px;
    font-weight:900;
    letter-spacing:.2em;
}
.sct-map-box>strong{
    margin-top:17px;
    color:#344554;
    font-size:20px;
}
.sct-map-box p{
    margin:8px 0 0;
    color:#788691;
}
.sct-map-copy>p:not(.sct-kicker){
    margin:23px 0 0;
    color:#697681;
    font-size:16px;
    line-height:1.9;
}
.sct-map-actions{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin-top:28px;
}
.sct-map-actions a{
    padding:11px 14px;
    border:1px solid #cad4dd;
    color:#26445f;
    font-size:13px;
    font-weight:900;
}
.sct-welcome{
    width:100%;
    padding:72px max(20px,calc((100vw - var(--sf-max-width))/2));
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:32px;
    background:#14283c;
    color:#fff;
}
.sct-welcome h2{
    color:#fff;
    font-size:38px;
}
.sct-welcome>div>p:last-child{
    max-width:700px;
    margin:13px 0 0;
    color:#c3ced8;
    line-height:1.7;
}
.sct-welcome>a{
    flex:0 0 auto;
    padding:13px 17px;
    border:1px solid rgba(255,255,255,.35);
    color:#fff;
    font-weight:900;
}
@media(max-width:900px){
    .sct-info-grid{
        grid-template-columns:1fr 1fr;
    }
    .sct-info-grid article:nth-child(2){border-right:0}
    .sct-info-grid article:nth-child(-n+2){border-bottom:1px solid #dce3e9}
    .sct-map{
        grid-template-columns:1fr;
        gap:42px;
    }
}
@media(max-width:620px){
    .sct-hero{min-height:410px}
    .sct-inner,.sct-info,.sct-map{width:calc(100% - 30px)}
    .sct-inner h1{font-size:41px}
    .sct-inner>p:last-child{font-size:15px}
    .sct-info{padding:75px 0}
    .sct-info-grid{grid-template-columns:1fr}
    .sct-info-grid article{min-height:0;border-right:0;border-bottom:1px solid #dce3e9}
    .sct-info-grid article>strong{margin-top:28px}
    .sct-map-box{min-height:330px}
    .sct-welcome{display:block;padding:56px 15px}
    .sct-welcome>a{display:inline-block;margin-top:25px}
}


/* ==========================================================
   Church A v0.14 · Safe PAGE Manager
   ========================================================== */
.sf-page-manage-link{
    border:1px solid #b9c8d6!important;
    background:#f4f8fb!important;
    color:#173a63!important;
    font-weight:900!important;
}
.sf-content:has(.sf-church-overview) > .btnArea,
.sf-content:has(.sf-messages-overview) > .btnArea,
.sf-content:has(.sf-mission-overview) > .btnArea,
.sf-content:has(.sf-contact-overview) > .btnArea{
    display:none!important;
}


/* ==========================================================
   Church A v1.0 FINAL · Unified management
   ========================================================== */
.sf-admin-manage-link{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    min-width:54px;
    padding:8px 12px!important;
    border:1px solid #b9c8d6!important;
    border-radius:7px!important;
    background:#f4f8fb!important;
    color:#173a63!important;
    font-weight:900!important;
    letter-spacing:-.02em;
}
.sf-admin-manage-link:hover{
    background:#173a63!important;
    border-color:#173a63!important;
    color:#fff!important;
}
