:root {
    --cream: #f5f3ef;
    --line: #dedbd5;
    --lime: #eee2ca;
    --radius: 4px;
    --shadow: none;
}

body { color: #29282a; }
h1, h2 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; letter-spacing: -.035em; }
h3 { font-weight: 600; letter-spacing: -.02em; }
.eyebrow { font-size: 10px; letter-spacing: .12em; }
.button { border-radius: 2px; min-height: 49px; font-size: 12px; font-weight: 600; }
.button:hover { transform: none; }
.button-small { min-height: 43px; }
.text-link { font-size: 13px; font-weight: 600; }
.topbar { background: var(--cream); color: #615a63; border-bottom: 1px solid #e7e1e7; font-size: 10px; letter-spacing: 0; padding: 7px 0; }
.site-header { background: #fff; backdrop-filter: none; border-bottom-color: var(--line); }
.header-inner { height: 91px; }
.brand-name { font-size: 17px; }
.brand-name > span { font-size: 11px; letter-spacing: .02em; }
.main-nav { font-size: 12px; gap: 28px; text-transform: uppercase; }
.main-nav > a:not(.button) { font-weight: 400; }
.main-nav > a[aria-current=page]:not(.button):after { height: 1px; }
.logo-window { border-radius: 0; }
.section { padding: 86px 0; }
.page-intro { padding: 66px 0; }
.page-intro h1 { font-size: clamp(2.6rem, 4.5vw, 4.2rem); }
.page-intro .eyebrow { margin-bottom: 15px; }
.rounded-photo, .about-photo, .article-photo, .gallery-open .photo, .home-gallery .photo { border-radius: 3px; }
.program-card, .value-panel, .news-card, .form-panel, .empty-state, .aside-note { border-radius: 3px; box-shadow: none; }
.program-card:hover, .news-card:hover { transform: none; }
.program-icon { border-radius: 2px; }
.news-card { border: 0; border-bottom: 1px solid var(--line); }
.news-card-body { padding: 23px 0; }
.news-card .photo { border-radius: 3px; }
.filter-button { border-radius: 2px; }
.value-panel > h2 { line-height: 1.2; }
.quote-panel { border-radius: 0; background: var(--cream); }
.section-purple { background: #48204e; }
.site-footer { background: #f0ede8; }
.footer-note .eyebrow { letter-spacing: .08em; }
.footer-note p { font-family: Georgia, 'Times New Roman', serif; font-size: 19px; }
.cta-panel { border-radius: 0; background: #48204e; padding: 48px 55px; }
.cta-panel:after { display: none; }
.cta-panel .eyebrow { color: #e1cfae; }
.cta-panel h2 { font-size: clamp(2rem, 3vw, 2.7rem); }
.cta-panel p { font-size: 13px; }
.cta-panel .button { min-width: 170px; background: #fff; color: var(--purple); }
.cta-panel .button:hover { background: #eee2ca; }

.front-slider { position: relative; min-height: 600px; height: min(690px, 74vw); overflow: hidden; color: #fff; background: #29222c; touch-action: pan-y; }
.front-slides, .front-slide, .front-slide-image, .front-shade { position: absolute; inset: 0; }
.front-slide { visibility: hidden; opacity: 0; transition: opacity .85s ease, visibility .85s; pointer-events: none; }
.front-slide.is-active { visibility: visible; opacity: 1; pointer-events: auto; z-index: 1; }
.front-slide-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.front-slide-image img[src$="/community-dialogue.jpeg"] { transform: scale(1.08); }
.front-shade { background: linear-gradient(90deg, #211326d9 0%, #211326a1 34%, #17121c33 72%), linear-gradient(0deg, #17121cba, transparent 28%); }
.front-slide-content { position: relative; display: flex; align-items: center; height: 100%; padding-top: 20px; padding-bottom: 110px; }
.front-slide-copy { max-width: 660px; }
.front-kicker { display: block; font-size: 10px; text-transform: uppercase; letter-spacing: .13em; margin-bottom: 23px; color: #f0e7ee; }
.front-slide h1, .front-slide h2 { color: #fff; font-size: clamp(2.8rem, 4.8vw, 4.55rem); line-height: 1.08; max-width: 660px; text-wrap: balance; }
.front-slide-copy > p { max-width: 500px; color: #f7f1f4; line-height: 1.8; font-size: 14px; margin: 25px 0 29px; }
.front-slide .button { background: #fff; color: #48204e; min-width: 149px; }
.front-slide .button:hover { background: #eee2ca; }
.front-slider-bottom { position: absolute; left: 0; right: 0; bottom: 30px; z-index: 3; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-top: 1px solid #ffffff50; padding-top: 19px; }
.front-image-caption { color: #f5edf2; font-size: 11px; letter-spacing: .02em; }
.slider-controls { display: flex; align-items: center; gap: 17px; flex-shrink: 0; }
.slider-arrow { width: 35px; height: 35px; border: 1px solid #ffffff7a; color: #fff; background: transparent; border-radius: 0; font-size: 17px; line-height: 1; }
.slider-arrow:hover { background: #ffffff26; }
.slider-dots { display: flex; align-items: center; gap: 9px; }
.slider-dot { display: block; position: relative; width: 23px; height: 35px; border: 0; padding: 0; background: transparent; }
.slider-dot:after { content: ''; position: absolute; left: 0; right: 0; top: 16px; height: 2px; background: #ffffff63; }
.slider-dot.is-active:after { background: #fff; }
.slider-playback { background: transparent; border: 0; padding: 8px 0; margin-left: 2px; color: #fff; text-decoration: underline; text-underline-offset: 4px; font-size: 10px; min-width: 35px; }
.screen-reader-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }

.front-introduction { border-bottom: 1px solid var(--line); }
.front-introduction-grid { display: grid; grid-template-columns: .95fr 1.15fr; gap: 100px; }
.front-introduction h2 { font-size: clamp(2.1rem, 3.3vw, 3rem); line-height: 1.22; max-width: 440px; }
.front-introduction-copy > p { font-size: 14px; line-height: 1.95; color: #58555b; }
.front-introduction-copy .text-link { margin-top: 26px; }
.front-programs { background: var(--cream); }
.front-programs .section-heading { margin-bottom: 43px; }
.front-programs .section-heading > p { max-width: 420px; font-size: 13px; line-height: 1.85; }
.front-program-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 65px; }
.front-program { display: grid; grid-template-columns: 28px 1fr 20px; gap: 17px; align-items: start; padding: 30px 0; border-top: 1px solid #d4cfc8; }
.front-program-index { color: #8b718e; font-size: 11px; margin-top: 4px; }
.front-program h3 { font-family: Georgia, 'Times New Roman', serif; font-weight: 400; font-size: 23px; line-height: 1.28; letter-spacing: -.02em; margin-bottom: 13px; color: #342a36; }
.front-program p { font-size: 12px; line-height: 1.85; color: #656068; }
.front-program > .icon { width: 18px; height: 18px; margin-top: 5px; color: var(--purple); transition: transform .2s; }
.front-program:hover > .icon { transform: translateX(4px); }
.front-program:hover h3 { color: var(--purple); }
.front-approach-grid { display: grid; grid-template-columns: 1fr .95fr; align-items: center; gap: 85px; }
.front-community-photo { aspect-ratio: 4/3; border-radius: 0; }
.front-approach figcaption { padding-top: 14px; font-size: 10px; color: var(--muted); }
.front-approach h2 { font-size: clamp(2rem, 3.1vw, 2.85rem); line-height: 1.2; margin-bottom: 25px; }
.front-approach p { font-size: 13px; line-height: 1.9; }
.front-approach .text-link { margin-top: 25px; }
.front-belief { background: #48204e; color: #fff; padding: 68px 0; }
.front-belief .container { max-width: 970px; text-align: center; }
.front-belief .eyebrow { color: #e1cfae; font-size: 9px; }
.front-belief blockquote { font-size: clamp(1.8rem, 3vw, 2.6rem); line-height: 1.45; margin-bottom: 24px; }
.front-belief p { color: #d7c7da; font-size: 10px; letter-spacing: .03em; }
.front-updates { border-bottom: 1px solid var(--line); }
.home-gallery a > span { font-size: 12px; font-weight: 400; }

@media (min-width: 1600px) {
    .front-slider { height: 730px; }
}
@media (max-width: 1150px) {
    .main-nav { gap: 19px; }
    .front-introduction-grid { gap: 60px; }
    .front-approach-grid { gap: 50px; }
    .front-program-list { column-gap: 40px; }
}
@media (max-width: 960px) {
    .header-inner { height: 85px; }
    .main-nav { font-size: 14px; }
    .front-slider { height: 610px; min-height: 610px; }
    .front-slide-copy { max-width: 570px; }
    .front-slide h1, .front-slide h2 { font-size: 57px; max-width: 570px; }
    .front-shade { background: linear-gradient(90deg, #211326db 0%, #2113268c 55%, #17121c33), linear-gradient(0deg, #17121cba, transparent 25%); }
    .section { padding: 68px 0; }
    .front-introduction-grid { gap: 40px; }
    .front-program-list { column-gap: 30px; }
    .front-program { gap: 10px; grid-template-columns: 22px 1fr 17px; }
    .front-program h3 { font-size: 22px; }
    .front-approach-grid { gap: 35px; }
}
@media (max-width: 700px) {
    .topbar { font-size: 9px; }
    .header-inner { height: 78px; }
    .brand-name { font-size: 15px; }
    .brand-name > span { font-size: 10px; }
    .section { padding: 51px 0; }
    .front-slider { height: 640px; min-height: 640px; }
    .front-slide-image img { object-fit: cover; width: 100%; height: 100%; min-height: 0; max-width: none; }
    .front-slide-image { top: 0; bottom: auto; height: min(260px, 75vw); overflow: hidden; }
    .front-shade { background: linear-gradient(0deg, #29222c 0%, #29222c 57%, #29222c00 77%); }
    .front-slide-content { align-items: flex-start; padding-top: 250px; padding-bottom: 95px; }
    .front-slide-copy { max-width: 100%; }
    .front-kicker { font-size: 8px; margin-bottom: 15px; letter-spacing: .1em; }
    .front-slide h1, .front-slide h2 { font-size: clamp(2rem, 7.6vw, 2.9rem); line-height: 1.11; max-width: 540px; }
    .front-slide-copy > p { margin: 18px 0 20px; font-size: 12px; line-height: 1.75; max-width: 480px; }
    .front-slide .button { min-height: 44px; padding: 12px 18px; font-size: 11px; }
    .front-slider-bottom { bottom: 18px; gap: 15px; padding-top: 12px; }
    .front-image-caption { display: none; }
    .slider-controls { width: 100%; justify-content: flex-start; gap: 17px; }
    .slider-playback { margin-left: auto; }
    .slider-arrow { width: 33px; height: 33px; }
    .front-introduction-grid { grid-template-columns: 1fr; gap: 25px; }
    .front-introduction h2 { font-size: 35px; max-width: 540px; }
    .front-introduction-copy > p { font-size: 13px; line-height: 1.9; }
    .front-introduction-copy .text-link { margin-top: 21px; }
    .front-programs .section-heading { margin-bottom: 28px; gap: 17px; }
    .front-programs .section-heading h2 { font-size: 37px; }
    .front-program-list { grid-template-columns: 1fr; }
    .front-program { padding: 24px 0; grid-template-columns: 25px 1fr 18px; gap: 11px; }
    .front-program h3 { font-size: 23px; margin-bottom: 11px; }
    .front-program p { font-size: 12px; }
    .front-approach-grid { grid-template-columns: 1fr; gap: 35px; }
    .front-approach h2 { font-size: 34px; max-width: 550px; }
    .front-approach p { font-size: 13px; }
    .front-belief { padding: 46px 0; }
    .front-belief blockquote { font-size: 26px; line-height: 1.5; }
    .front-updates .section-heading { flex-direction: row; align-items: flex-end; gap: 15px; }
    .front-updates .section-heading h2 { font-size: 32px; }
    .front-updates .section-heading > .text-link { font-size: 11px; flex-shrink: 0; margin-bottom: 3px; }
    .front-updates .section-heading .eyebrow { font-size: 9px; }
    .home-gallery { grid-template-columns: 1fr; gap: 28px; }
    .cta-panel { padding: 33px 26px; gap: 25px; }
    .cta-panel h2 { font-size: 32px; }
    .page-intro { padding: 45px 0; }
    .page-intro h1 { font-size: 39px; }
}
@media (max-width: 380px) {
    .front-slider { height: 660px; min-height: 660px; }
    .front-slide-copy > p { font-size: 11px; }
    .front-updates .section-heading { align-items: flex-start; flex-direction: column; }
}
@media (prefers-reduced-motion: reduce) {
    .front-slide, .front-program > .icon { transition: none; }
}
