.plan-page { background: white; }
.visit-programs { padding-block: 118px; }
.programs-intro { max-width: 620px; margin-bottom: 62px; }
.programs-intro .section-title { margin: 0; }
.program-list { display: grid; gap: 30px; }
.visit-program { position: relative; display: grid; grid-template-columns: .9fr 1.1fr; min-height: 480px; overflow: hidden; border: 1px solid var(--border); border-radius: var(--radius); background: var(--linen); box-shadow: var(--shadow-sm); }
.visit-program.reverse { grid-template-columns: 1.1fr .9fr; }
.visit-program.reverse .program-image { grid-column: 2; }
.visit-program.reverse .program-copy { grid-column: 1; grid-row: 1; }
.program-image { min-height: 480px; overflow: hidden; background: var(--coal); }
.program-image img { width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.program-image.portrait img { object-position: center 34%; }
.program-image.wide img { object-position: center; }
.visit-program:hover .program-image img { transform: scale(1.025); }
.program-copy { position: relative; display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 58px 9vw 58px 65px; }
.reverse .program-copy { padding: 58px 65px 58px 9vw; }
.program-number { position: absolute; top: 30px; right: 34px; color: rgba(183,122,43,.18); font: 800 82px/1 "Manrope",sans-serif; letter-spacing: -.08em; }
.program-copy h2 { max-width: 500px; margin-bottom: 17px; font: 700 clamp(28px,3.2vw,42px)/1.1 "Manrope",sans-serif; letter-spacing: -.045em; }
.program-copy p { margin-bottom: 28px; color: var(--muted); font-size: 16px; line-height: 1.7; }
.program-copy .btn { min-height: 44px; padding-inline: 20px; }

.belief-banner { position: relative; overflow: hidden; text-align: center; background: var(--sand); }
.belief-mark { position: absolute; top: -50px; left: 7%; color: rgba(183,122,43,.08); font: 800 260px/1 Georgia,serif; }
.belief-inner { position: relative; max-width: 900px; }
.belief-inner .eyebrow::after { content: ""; width: 24px; height: 2px; background: currentColor; }
.belief-inner h2 { margin-bottom: 20px; font: 700 clamp(30px,4vw,48px)/1.12 "Manrope",sans-serif; letter-spacing: -.045em; }
.belief-inner p { max-width: 650px; margin: 0 auto; color: var(--muted); font-size: 16px; line-height: 1.65; }

.mission-band { color: white; background: var(--coal); }
.mission-band-grid { display: grid; grid-template-columns: .75fr 1.25fr; gap: 11%; align-items: start; }
.mission-band .eyebrow { color: var(--bronze-soft); }
.mission-band h2 { max-width: 440px; margin: 0; font: 700 clamp(31px,4vw,48px)/1.12 "Manrope",sans-serif; letter-spacing: -.04em; }
.mission-band p { color: rgba(255,255,255,.68); font-size: 16px; line-height: 1.7; }
.mission-band .text-link { margin-top: 14px; color: white; }
.mission-band .text-link .arrow { border-color: rgba(255,255,255,.18); }

.ministry-program { padding-block: 118px; background: var(--sand); }
.ministry-grid { display: grid; grid-template-columns: .9fr 1fr; gap: 11%; align-items: center; }
.ministry-images { position: relative; min-height: 600px; }
.ministry-images::before { content: ""; position: absolute; top: -18px; right: 48px; bottom: 55px; left: -18px; border: 1px solid var(--bronze-soft); border-radius: var(--radius); }
.ministry-back { position: absolute; top: 0; left: 0; width: 67%; height: 78%; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.ministry-front { position: absolute; right: 0; bottom: 0; width: 58%; height: 58%; object-fit: cover; border: 10px solid var(--sand); border-radius: var(--radius); box-shadow: var(--shadow-lg); }
.ministry-images > span { position: absolute; right: 18px; top: 28px; color: rgba(183,122,43,.14); font: 800 90px/1 "Manrope",sans-serif; }
.schedule .section-title { margin-bottom: 34px; }
.schedule-group { display: grid; grid-template-columns: 90px 1fr; gap: 22px; padding: 20px 0; border-top: 1px solid var(--border); }
.schedule-group:last-child { border-bottom: 1px solid var(--border); }
.schedule-group h3 { margin: 2px 0 0; font: 700 14px/1.4 "Manrope",sans-serif; text-transform: uppercase; }
.schedule-group ul { margin: 0; padding-left: 18px; color: var(--muted); font-size: 15px; line-height: 1.75; }

@media (max-width: 980px) {
    .visit-program, .visit-program.reverse { grid-template-columns: 1fr 1fr; }
    .program-copy, .reverse .program-copy { padding: 50px 38px; }
    .ministry-grid { gap: 7%; }
    .ministry-images { min-height: 510px; }
}

@media (max-width: 720px) {
    .visit-programs, .ministry-program { padding-block: 72px; }
    .programs-intro { margin-bottom: 40px; }
    .visit-program, .visit-program.reverse { display: flex; min-height: 0; flex-direction: column; }
    .visit-program.reverse .program-image, .visit-program.reverse .program-copy { grid-column: auto; grid-row: auto; }
    .program-image { min-height: 0; height: 390px; }
    .program-image.portrait { height: 540px; }
    .program-copy, .reverse .program-copy { padding: 40px 28px; }
    .program-number { top: 24px; right: 25px; font-size: 62px; }
    .program-copy h2 { padding-right: 45px; font-size: 31px; }
    .mission-band-grid { grid-template-columns: 1fr; gap: 38px; }
    .ministry-grid { grid-template-columns: 1fr; gap: 60px; }
    .ministry-images { min-height: 500px; }
}

@media (max-width: 420px) {
    .program-image { height: 300px; }
    .program-image.portrait { height: 460px; }
    .ministry-images { min-height: 420px; }
    .schedule-group { grid-template-columns: 1fr; gap: 8px; }
}
