@import url('https://fonts.googleapis.com/css2?family=Anton&family=DM+Sans:wght@400;500;600;700&display=swap');

:root {
    --base-color: #b3161b;
    --dark-gray: #171717;
    --medium-gray: #707070;
    --light-medium-gray: #f4f4f2;
    --very-light-gray: #f7f7f5;
    --alt-font: 'Anton', sans-serif;
    --primary-font: 'DM Sans', sans-serif;
}

html { scroll-behavior: smooth; }
body { font-family: var(--primary-font); font-size: 17px; line-height: 29px; color: #666; }
body, p, h1, h2, h3, h4, h5, h6 { overflow-wrap: break-word; }
h1, h2, h3, h4, h5, h6, .alt-font { font-family: var(--primary-font); }
a { transition: color .25s ease, opacity .25s ease, transform .25s ease; }
section { scroll-margin-top: 70px; }
.bg-light-gray { background-color: var(--light-medium-gray) !important; }
.bg-base-color, .btn.btn-base-color { background-color: var(--base-color) !important; }
.text-base-color { color: var(--base-color) !important; }
.btn { font-family: var(--primary-font); font-weight: 700; letter-spacing: .2px; text-transform: none; }
.btn.btn-base-color:hover { background-color: #8d0f14 !important; }
.btn.btn-white { color: var(--dark-gray); }

.navbar .navbar-nav .nav-link {
    color: #fff;
    font-size: 15px;
    font-weight: 700;
    letter-spacing: .4px;
    padding: 40px 16px;
    text-transform: uppercase;
}
header .navbar-brand img { max-height: 62px; width: auto; filter: none; }
header.sticky .navbar .navbar-nav .nav-link { color: var(--dark-gray); }

.hero-slider { min-height: 760px; }
.hero-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(90deg, rgba(0,0,0,.86) 0%, rgba(0,0,0,.48) 58%, rgba(0,0,0,.12) 100%);
}
.hero-title {
    font-family: var(--alt-font);
    font-size: clamp(4.2rem, 8vw, 8rem);
    font-weight: 400;
    letter-spacing: .2px;
    line-height: .98;
    text-transform: uppercase;
}
.section-kicker {
    color: var(--base-color);
    display: block;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 2.2px;
    margin-bottom: 14px;
    text-transform: uppercase;
}
.display-heading {
    font-family: var(--alt-font);
    font-size: clamp(3rem, 5vw, 5.4rem);
    font-weight: 400;
    letter-spacing: 0;
    line-height: 1.02;
    text-transform: uppercase;
}
.hero-pagination { bottom: 35px !important; }
.hero-pagination .swiper-pagination-bullet { background: #fff; opacity: .55; }
.hero-pagination .swiper-pagination-bullet-active { background: var(--base-color); opacity: 1; }
.hero-prev, .hero-next {
    width: 52px;
    height: 52px;
    border: 1px solid rgba(255,255,255,.35);
    border-radius: 50%;
    color: #fff;
}
.hero-prev { left: 28px; }
.hero-next { right: 28px; }
.hero-prev:after, .hero-next:after { display: none; }

.visit-strip { position: relative; z-index: 2; }
.visit-strip h2 { white-space: normal; }
.visit-card { transition: transform .35s ease, box-shadow .35s ease; }
.visit-card:hover { transform: translateY(-8px); }
.vision-badge {
    position: absolute;
    right: 1%;
    bottom: -35px;
    width: 155px;
    height: 155px;
    text-transform: uppercase;
    letter-spacing: 1px;
}
.ministry-card { background-position: center; }
.ministry-card .ministry-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(to top, rgba(0,0,0,.94), rgba(0,0,0,.05) 72%);
    transition: background .35s ease;
}
.ministry-card:hover { transform: translateY(-6px); }
.ministry-card:hover .ministry-overlay { background: linear-gradient(to top, rgba(179,22,27,.95), rgba(0,0,0,.1) 78%); }
.pastor-image { min-height: 650px; background-position: center top; }
.message-overlay { background: rgba(0,0,0,.3); }
.give-section { position: relative; padding: 150px 0; background-position: center 40%; }
.give-overlay { position: absolute; inset: 0; background: rgba(145, 9, 14, .88); }
.footer-logo { max-width: 230px; filter: none; }
.footer-links li { margin-bottom: 9px; }
.footer-links a, footer a { color: rgba(255,255,255,.68); }
.footer-links a:hover, footer a:hover { color: #fff; }
.inner-hero { position: relative; min-height: 560px; display: flex; align-items: center; background-position: center; }
.inner-hero-overlay { position: absolute; inset: 0; background: linear-gradient(rgba(0,0,0,.58), rgba(0,0,0,.8)); }
.ministry-thumb, .blog-thumb { height: 320px; object-fit: cover; transition: transform .5s ease; }
.ministry-page-card:hover .ministry-thumb, article a:hover .blog-thumb { transform: scale(1.04); }
.message-feature { min-height: 540px; display: flex; align-items: center; justify-content: center; }
.message-thumb { height: 260px; object-fit: cover; }
.article-copy p { font-size: 18px; line-height: 32px; }
.form-control, .form-select { min-height: 55px; border: 1px solid #ddd; background: #fff; padding: 12px 16px; }
textarea.form-control { min-height: 150px; }

@media (max-width: 991px) {
    header .navbar-brand img { max-height: 48px; }
    .navbar .navbar-nav .nav-link { color: var(--dark-gray); padding: 12px 15px; }
    .navbar-toggler { margin-left: auto; }
    .navbar-toggler {
        display: block !important;
        position: absolute;
        top: 23px;
        right: 20px;
        width: 42px;
        height: 42px;
        z-index: 10;
    }
    .navbar-toggler .navbar-toggler-line { background-color: #fff !important; width: 24px; margin: 4px auto; }
    header.sticky .navbar-toggler .navbar-toggler-line { background-color: var(--dark-gray); }
    .hero-slider { min-height: 700px; }
    .hero-title { font-size: clamp(3.5rem, 11vw, 6rem); }
    .pastor-image { min-height: 520px; }
}

@media (max-width: 767px) {
    body { font-size: 16px; line-height: 27px; }
    section { padding-top: 75px; padding-bottom: 75px; }
    .hero-slider { min-height: 650px; }
    .hero-slider .container > .row {
        padding-bottom: clamp(135px, 18vh, 180px) !important;
    }
    .hero-title { font-size: 3.5rem; line-height: 1; }
    .hero-slider .swiper-slide p.fs-21 {
        display: block !important;
        inline-size: calc(100vw - 48px) !important;
        max-width: calc(100vw - 48px) !important;
        overflow-wrap: normal;
        word-break: normal;
        white-space: normal !important;
        width: calc(100vw - 48px) !important;
    }
    .hero-overlay { background: linear-gradient(0deg, rgba(0,0,0,.92) 0%, rgba(0,0,0,.35) 85%); }
    .display-heading { font-size: 3.1rem; }
    .vision-badge { width: 120px; height: 120px; right: 0; bottom: -25px; }
    .pastor-image { min-height: 450px; }
    .min-h-650px { min-height: 480px !important; }
    .give-section { padding: 100px 0; }
    .visit-strip h2 { font-size: 2.55rem !important; line-height: 1.1; }
    .inner-hero { min-height: 480px; }
    .ministry-thumb, .blog-thumb { height: 250px; }
    .message-feature { min-height: 400px; }
}

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