/* Shared family: pastel green for hope and movement; slate blue for calm. */
:root{--green:#c7ddb5;--green-hover:#b9d3a3;--ink:#344c59;--muted:#52636b;--cream:#f4f5ef;--paper:#fafaf5;--line:#dce3d7;--yellow:#c7ddb5;--meadow:#c7ddb5;--meadow-light:#e8efdf;--river:#344c59;--river-dark:#344c59;--river-light:#e8efdf;--earth:#eef2e8}
html{scroll-padding-top:30px}
.concept{background:var(--ink);color:var(--paper)}
.yellow,.dark,.member-link,.hero-actions .yellow,.member-next .yellow,.community .yellow,.chip.active{color:var(--ink);background:var(--green);border-color:var(--green)}
.yellow:hover,.dark:hover,.member-link:hover,.hero-actions .yellow:hover,.member-next .yellow:hover,.community .yellow:hover{background:var(--green-hover)}
.row-arrow,.activity-icon,.activity-icon.Vand,.activity-icon.Ro,.activity-icon.Ude,.activity-icon.Puls,.steps article>span{color:var(--ink)}
.membership{border-left-color:var(--green)}
.plan.active{border-color:var(--ink)}.plan.active .plan-radio{border-color:var(--ink);background:var(--ink)}
.skip-link{position:absolute;left:16px;top:-100px;z-index:100;padding:12px 20px;background:var(--ink);color:var(--paper);border-radius:5px}.skip-link:focus{top:12px}
nav.department-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;position:static;padding:0 7%;background:var(--paper);border-bottom:1px solid var(--line);box-shadow:none;font-size:15px;font-weight:600;align-items:stretch}
.department-tabs>a{display:flex;align-items:center;justify-content:center;min-height:61px;gap:8px;padding:12px;border-bottom:3px solid transparent;position:relative;text-align:center;text-decoration:none;color:var(--ink)}
.department-tabs>a:hover{background:var(--earth);text-decoration:none}
.department-tabs>a[aria-current=page]{background:var(--meadow-light);border-bottom-color:#91ad79}
.department-choices{background:var(--earth)}
.department-card-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}
.department-card{display:flex;flex-direction:column;background:var(--paper);padding:32px;border:1px solid var(--line);border-radius:12px;transition:border-color .18s,transform .18s}
.department-card:hover{border-color:#94aa83;transform:translateY(-3px)}
.department-card img{width:290px;max-width:100%;height:125px;object-fit:contain;object-position:left center;margin-bottom:24px}
.department-card h3{font:600 24px/1.3 Manrope,sans-serif;letter-spacing:-.7px;margin:0 0 14px}
.department-card p{font-size:16px;color:var(--muted);line-height:1.75;margin:0 0 25px;max-width:420px}
.department-card>span{display:flex;gap:18px;align-items:center;font-size:15px;font-weight:600;margin-top:auto}
.department-hero{display:grid;grid-template-columns:1.08fr 1fr;gap:55px;align-items:center;padding:48px 7% 65px;background:var(--cream)}
.department-logo{width:290px;height:122px;object-fit:contain;object-position:left center;margin-bottom:14px}
.department-intro .eyebrow{font-size:11px;letter-spacing:1.2px;margin:0 0 18px}
.department-intro h1{font:500 clamp(38px,4.2vw,65px)/1.1 Manrope,sans-serif;letter-spacing:-2.5px;margin:0 0 23px}
.department-intro .lead{font-size:17px;line-height:1.8;color:var(--muted);max-width:550px;margin:0}
.department-intro .hero-actions{gap:12px;flex-wrap:wrap;margin:27px 0 20px}
.button.secondary{background:transparent;border:1px solid #becbb7;color:var(--ink);font-weight:500}
.button.secondary:hover{background:var(--meadow-light)}
.intro-note{font-size:13px;line-height:1.7;color:var(--muted);max-width:450px}
.department-photo{position:relative;align-self:stretch;min-height:490px;margin-top:20px;border-radius:14px;overflow:hidden}
.department-photo>img{width:100%;height:100%;object-fit:cover;position:absolute;object-position:55% center}
.department-photo>span{position:absolute;bottom:22px;left:22px;right:22px;width:fit-content;max-width:calc(100% - 44px);background:var(--paper);color:var(--ink);padding:12px 18px;font-size:13px;border-radius:5px}
.department-about{background:var(--paper);display:grid;grid-template-columns:1fr 1fr;gap:65px;border-block:1px solid var(--line)}
.department-about .eyebrow{margin:0}.department-about h2{margin-top:20px}
.department-about>div>p:not(.eyebrow){font-size:17px;line-height:1.85;color:var(--muted);margin:0 0 18px}
.department-membership{background:var(--paper);border-block:1px solid var(--line)}
.price-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:18px;margin-top:36px}
.price-grid article{border:1px solid var(--line);border-radius:9px;padding:25px;background:var(--cream)}
.price-grid h3{font-size:18px;margin:0 0 8px;font-weight:600}.price-grid p{color:var(--muted);font-size:14px;margin:0 0 24px;line-height:1.6}
.price-grid strong{font:500 38px/1.2 Manrope,sans-serif;letter-spacing:-1.5px}.price-grid strong span{font:400 17px/1.4 'DM Sans',sans-serif;letter-spacing:0}
.price-note{font-size:13px;line-height:1.7;color:var(--muted);margin:20px 0 0}
.section-actions{display:flex;gap:25px;align-items:center;flex-wrap:wrap;margin-top:26px}
.section-actions>a:not(.button){font-size:14px;text-decoration:underline;text-underline-offset:4px}
.ifs-brand-panel{border:1px solid #d5e2c9;align-self:stretch;min-height:430px;background:var(--meadow-light);border-radius:14px;display:flex;flex-direction:column;justify-content:center;padding:40px;gap:45px}
.ifs-brand-panel>img{width:100%;height:auto}
.ifs-panel-copy{border-top:1px solid #cbdac0;padding-top:28px}.ifs-panel-copy>p{font:500 28px/1.3 Manrope,sans-serif;letter-spacing:-1px;margin:0 0 12px}.ifs-panel-copy>span{font-size:14px;color:var(--muted);line-height:1.7}
.ifs-activity-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:36px}
.ifs-activity-grid article{border:1px solid var(--line);background:var(--paper);padding:28px;border-radius:10px}
.ifs-activity-grid h3{font-size:22px;letter-spacing:-.5px;margin:22px 0 12px;font-weight:600}.ifs-activity-grid p{color:var(--muted);font-size:16px;line-height:1.7;margin:0 0 22px}
.ifs-activity-grid a{font-size:14px;font-weight:600}.ifs-activity-grid .activity-icon svg{fill:none;stroke:currentColor;stroke-width:1.7;width:26px;height:26px;stroke-linecap:round;stroke-linejoin:round}
.department-faq{background:var(--cream)}.department-faq h2{margin-bottom:35px}.department-faq details{border-top:1px solid var(--line);padding:20px 0}.department-faq details:last-child{border-bottom:1px solid var(--line)}
.department-faq summary{font-size:18px;font-weight:500;cursor:pointer;line-height:1.6;padding-right:15px}.department-faq details p{font-size:16px;color:var(--muted);line-height:1.8;max-width:700px;margin:15px 0 0}
body[data-department=ifs] .contact-info>a{display:none}
@media(min-width:1550px){.department-tabs{max-width:1800px;margin-inline:auto}}
@media(max-width:1050px){.department-hero{gap:30px;padding-inline:5%}.department-intro h1{font-size:48px}.department-about{gap:35px}.department-photo{min-height:440px}.ifs-brand-panel{padding:28px}.department-card{padding:26px}.department-card h3{font-size:22px}}
@media(max-width:720px){
 nav.department-tabs{position:static;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));padding:0 4%;gap:0;box-shadow:none;background:var(--paper);font-size:13px;line-height:1.3}
 .department-tabs>a{min-height:55px;padding:11px 7px}
 header nav{top:119px;z-index:20}
 .department-hero{display:flex;flex-direction:column;align-items:stretch;padding:28px 6% 42px;gap:25px}
 .department-logo{width:260px;height:109px;margin-bottom:22px}
 .department-intro .eyebrow{font-size:10px;letter-spacing:.9px}
 .department-intro h1{font-size:clamp(36px,10vw,49px);letter-spacing:-1.8px}
 .department-intro .lead{font-size:16px;line-height:1.8}
 .department-intro .hero-actions{flex-direction:column;align-items:stretch}
 .department-intro .button{font-size:14px;padding:16px 19px;gap:14px}
 .intro-note{font-size:13px}
 .department-photo{min-height:300px;margin:0}
 .department-about{grid-template-columns:1fr;gap:28px}
 .department-about>div>p:not(.eyebrow){font-size:16px}
 .department-card-grid,.ifs-activity-grid{grid-template-columns:1fr}
 .department-card{padding:25px}
 .department-card img{width:270px;height:113px;margin-bottom:22px}
 .department-card h3{font-size:23px}
 .department-card>span{font-size:14px}
 .price-grid{grid-template-columns:1fr 1fr;gap:12px}
 .price-grid article{padding:20px 16px}
 .price-grid h3{font-size:16px}.price-grid p{font-size:13px}.price-grid strong{font-size:33px}
 .section-actions{gap:20px;align-items:flex-start;flex-direction:column}
 .ifs-brand-panel{min-height:280px;padding:27px;gap:20px}
 .ifs-panel-copy{padding-top:22px}
 .ifs-panel-copy>p{font-size:25px}
 .ifs-activity-grid article{padding:25px}
 .department-faq summary{font-size:17px}
}
@media(max-width:360px){.price-grid{grid-template-columns:1fr}.department-tabs>a{font-size:12px}}
@media(prefers-reduced-motion:reduce){.department-card{transition:none}.department-card:hover{transform:none}}

/* A moderate crop balances image presence and source resolution. */
.community-photo{min-height:0;aspect-ratio:16 / 10;align-self:center;margin:40px 0 40px 5vw;border-radius:12px}
.community-photo img{width:100%;height:100%;object-fit:cover;object-position:45% center}
.community-photo .photo-label{left:16px;bottom:16px;padding:10px 14px}
@media(max-width:720px){
 .community-photo{min-height:0;width:auto;margin:22px 6%;aspect-ratio:16 / 9;border-radius:10px;overflow:hidden}
 .community-photo .photo-label{position:absolute;top:auto;left:12px;right:12px;bottom:12px;margin:0;padding:9px 11px;font-size:11px;max-width:calc(100% - 24px);width:fit-content}
 .community-photo img{border-radius:10px}
}
