/* ==========================================================================
   PROGRAMS.CSS
   Programs + Services page only — matches Programs + Services PDF
   Uses global heading / intro-row / 72rem content systems.
   ========================================================================== */

.page-programs .slam-main {
    padding-bottom: 0;
    overflow-x: clip;
}

/* Hero height/fit: shared .page-service .slam-ihero in interior.css
   (Lisa short-banner aspect 2667/278 + tablet/mobile min-heights). */

/* Chef/kitchen is left-weighted — keep subject visible if mobile crops sides */
.page-programs .slam-ihero-img--programs {
    object-position: left center;
}

/* --------------------------------------------------------------------------
   WHITE CONTENT — shared 72rem grid + global intro-arrow row
   -------------------------------------------------------------------------- */
.page-programs .slam-programs-section {
    padding-top: clamp(2.75rem, 4.8vw, 4rem);
    /*
     * Chart JPG includes ~88px bottom white (88/1495 of rendered width).
     * Subtract that from the shared footer gap so visual space
     * (chart ink → quote) ≈ (quote → footer). Do not increase footer gap.
     */
    --programs-areas-width: calc(38.5rem * 1.15);
    padding-bottom: max(0px, calc(var(--slam-footer-gap) - var(--programs-areas-width) * 88 / 1495));
    background: var(--color-white);
}

.page-programs .slam-programs-content {
    box-sizing: border-box;
    width: min(100%, var(--content-wide));
    max-width: var(--content-wide);
    margin-inline: auto;
}

.page-programs .slam-programs-section .slam-section-heading {
    margin-bottom: clamp(1.75rem, 3.5vw, 2.5rem);
}

.page-programs .slam-programs-coming-soon {
    color: var(--color-primary);
    font-weight: var(--weight-extrabold);
}

/* Space before Areas of Focus — tightened from clamp(2.75rem, 5.5vw, 4rem) */
.page-programs .slam-programs-section .slam-intro-row {
    margin-bottom: clamp(1.5rem, 3vw, 2.25rem);
}

.page-programs .slam-programs-focus-heading {
    margin: 0 0 clamp(1rem, 2.2vw, 1.5rem);

    font-family: var(--font-heading);
    font-size: clamp(1.25rem, 2.2vw, 1.75rem);
    font-weight: var(--weight-extrabold);
    line-height: var(--line-section);
    letter-spacing: 0.02em;
    text-align: center;
    text-transform: uppercase;
    color: var(--color-primary);
}

.page-programs .slam-programs-areas {
    display: block;
    /* 15% larger than the prior 38.5rem cap.
       max-width: none overrides the global img { max-width: 100% }
       so the graphic can grow past the content column. */
    width: calc(38.5rem * 1.15);
    max-width: none;
    height: auto;
    margin-left: 50%;
    transform: translateX(-50%);
}

/* --------------------------------------------------------------------------
   QUOTE INFOGRAPHIC — Lisa short banner (2667×278). Quote + attribution baked in.
   Full-bleed, natural aspect — no HTML text overlay (would duplicate the art).
   -------------------------------------------------------------------------- */
.page-programs .slam-programs-quote {
    margin: 0;
    /* Below-quote gap comes from shared .slam-footer { margin-top } */
    padding: 0;
    line-height: 0;
    overflow: visible;
    background: none;
    background-color: transparent;
    background-repeat: no-repeat;
}

.page-programs .slam-programs-quote__img {
    display: block;
    width: 100%;
    max-width: none;
    height: auto;
}

/* --------------------------------------------------------------------------
   RESPONSIVE
   -------------------------------------------------------------------------- */
@media (max-width: 1199px) {
    /* Tablet: 15% larger than the prior min(100%, 46rem) size */
    .page-programs .slam-programs-section {
        --programs-areas-width: min(115%, calc(46rem * 1.15));
    }

    .page-programs .slam-programs-areas {
        width: min(115%, calc(46rem * 1.15));
        max-width: none;
    }
}

@media (max-width: 768px) {
    .page-programs .slam-programs-section {
        padding-top: clamp(2rem, 6vw, 2.75rem);
        /* Match chart width inside .slam-container gutters (not full section) */
        --programs-areas-width: calc(100vw - 2 * var(--layout-gutter));
        padding-bottom: max(0px, calc(var(--slam-footer-gap) - var(--programs-areas-width) * 88 / 1495));
    }

    .page-programs .slam-programs-section .slam-intro-row {
        margin-bottom: clamp(1.25rem, 4vw, 1.75rem);
    }

    .page-programs .slam-programs-areas {
        width: 115%;
        max-width: none;
    }
}
