/*
 * KTFM Home — Welcome Section Desktop Polish
 * Isolated override: does not alter site.css or PageController.
 */

.welcome {
    padding-top: clamp(72px, 7vw, 108px);
    padding-bottom: clamp(68px, 6.5vw, 100px);
}

.welcome__grid {
    grid-template-columns: minmax(0, .92fr) minmax(0, 1.08fr);
    gap: clamp(44px, 6vw, 90px);
    align-items: start;
}

.welcome__identity .section-heading {
    max-width: 560px;
}

.welcome__image {
    width: min(100%, 620px);
    margin-top: clamp(28px, 3.6vw, 50px);
    border-radius: 34px;
    box-shadow:
        0 28px 72px rgba(8, 29, 51, .13),
        0 0 0 1px rgba(10, 33, 60, .06);
}

.welcome__copy {
    max-width: 700px;
    padding-top: 4px;
}

.welcome__copy .welcome__lead {
    max-width: 640px;
    font-size: clamp(1.28rem, 1.5vw, 1.55rem);
    line-height: 1.48;
}

.welcome__copy blockquote {
    margin-top: 24px;
    padding: 10px 0 10px 22px;
}

.welcome__actions {
    margin-top: 28px;
    padding-bottom: 30px;
    border-bottom: 1px solid var(--line);
}

/*
 * The three ministry-focus cards now sit under the CTA column instead of
 * waiting below the taller left image. This is what removes the large empty
 * desktop gap visible beneath About KTFM / Discover Our Story.
 */
.welcome__values--integrated {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 24px;
    border: 0;
}

.welcome__values--integrated article {
    min-height: 178px;
    padding: 22px 20px 20px;
    border: 1px solid rgba(10, 33, 60, .09);
    border-radius: 20px;
    background:
        linear-gradient(
            145deg,
            rgba(255, 255, 255, .9),
            rgba(250, 245, 233, .72)
        );
    box-shadow: 0 14px 34px rgba(8, 29, 51, .055);
}

.welcome__values--integrated article + article {
    border-left: 1px solid rgba(10, 33, 60, .09);
}

.welcome__values--integrated span {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 34px;
    height: 34px;
    border-radius: 50%;
    background: rgba(205, 151, 50, .11);
    color: var(--gold-600);
    font-size: .68rem;
    font-weight: 800;
}

.welcome__values--integrated h3 {
    margin: 22px 0 8px;
    font-size: clamp(1.08rem, 1.35vw, 1.3rem);
    line-height: 1.12;
}

.welcome__values--integrated p {
    max-width: none;
    font-size: .82rem;
    line-height: 1.55;
}

@media (min-width: 1180px) {
    .welcome__copy {
        padding-top: 10px;
    }

    .welcome__image {
        aspect-ratio: 4 / 3;
        min-height: 0;
    }
}

@media (max-width: 1100px) {
    .welcome__grid {
        grid-template-columns: 1fr;
        gap: 42px;
    }

    .welcome__identity {
        display: grid;
        grid-template-columns: minmax(0, .8fr) minmax(320px, 1fr);
        gap: 34px;
        align-items: center;
    }

    .welcome__image {
        margin-top: 0;
    }

    .welcome__copy {
        max-width: none;
    }
}

@media (max-width: 760px) {
    .welcome {
        padding-top: 70px;
        padding-bottom: 70px;
    }

    .welcome__identity {
        display: block;
    }

    .welcome__image {
        margin-top: 34px;
        border-radius: 24px;
    }

    .welcome__actions {
        margin-top: 25px;
        padding-bottom: 26px;
    }

    .welcome__values--integrated {
        grid-template-columns: 1fr;
        gap: 10px;
    }

    .welcome__values--integrated article {
        min-height: 0;
        padding: 20px;
    }

    .welcome__values--integrated h3 {
        margin-top: 15px;
    }
}


/* ================================================================
   KTFM HOME HERO — DESKTOP CTA / SLIDER CONTROL CLEARANCE
   ================================================================

   The slider navigation is absolutely positioned near the bottom while the
   slide content can be very tall. On shorter desktop/laptop viewports this
   allowed Join Online / Watch Services and other slide CTAs to sit behind or
   too close to the dots/control bar.

   Keep this override scoped to desktop only. Mobile already has its own
   dedicated hero layout in site.css.
*/

@media (min-width: 901px) {
    .hero-slider {
        /*
         * The original rule could shrink the hero to roughly
         * `100vh - 130px`, which is too short for the larger editorial slides.
         */
        min-height: clamp(780px, calc(100vh - 56px), 920px);
    }

    .hero-slide__inner {
        /*
         * Reserve a real CTA safety zone above the slider dots and controls.
         * More bottom padding moves the centred content slightly upward.
         */
        padding-top: clamp(64px, 6.5vw, 94px);
        padding-bottom: clamp(188px, 17vh, 224px);
    }

    .hero-slide__content--focused {
        max-width: 760px;
    }

    .hero-slide__statement {
        margin-top: 24px;
        line-height: 1.4;
    }

    .hero-slide__actions {
        position: relative;
        z-index: 12;
        margin-top: 28px;
    }

    .hero-slide__actions .button {
        position: relative;
        z-index: 1;
        min-height: 54px;
        box-shadow: 0 14px 34px rgba(0, 0, 0, .16);
    }

    .hero-slider__navigation {
        bottom: 30px;
        z-index: 20;
    }

    .hero-slider__dots,
    .hero-slider__controls {
        /*
         * Give the controls their own readable glass surface instead of
         * visually merging with the CTA row or background image.
         */
        background: rgba(4, 18, 35, .68);
        box-shadow: 0 16px 34px rgba(0, 0, 0, .2);
        backdrop-filter: blur(14px);
    }

    .hero-slider__dots {
        padding: 5px 9px;
        border: 1px solid rgba(255, 255, 255, .13);
        border-radius: 999px;
    }
}

/*
 * Laptop-height refinement:
 * Keep the large editorial impact while preventing content from being pushed
 * into the navigation safety zone at 768–850px desktop heights.
 */
@media (min-width: 901px) and (max-height: 850px) {
    .hero-slider {
        min-height: 780px;
    }

    .hero-slide__inner {
        padding-top: 58px;
        padding-bottom: 164px;
    }

    .hero-slide h1,
    .hero-slide h2 {
        font-size: clamp(3.8rem, 6.6vw, 6.55rem);
        line-height: .86;
    }

    .hero-slide h1 span,
    .hero-slide h2 span {
        margin-top: 12px;
    }

    .hero-slide__statement {
        margin-top: 20px;
        font-size: clamp(1.18rem, 1.75vw, 1.55rem);
        line-height: 1.38;
    }

    .hero-slide__actions {
        margin-top: 24px;
    }

    .hero-slide__card,
    .hero-slide__feature {
        margin-bottom: 8px;
    }
}

/*
 * Very short desktop windows (for example a browser with a large toolbar):
 * allow vertical page scrolling rather than clipping a CTA.
 */
@media (min-width: 901px) and (max-height: 720px) {
    .hero-slider {
        min-height: 760px;
    }

    .hero-slide__inner {
        padding-top: 52px;
        padding-bottom: 150px;
    }
}
