/* Public home only. Carousel CSS/JS and their markup remain untouched. */
.hp-page {
    --hp-forest: #023524; --hp-ink: #213b30; --hp-muted: #4b5b53;
    --hp-gold: #8a652c; --hp-gold-light: #dfc28d; --hp-paper: #faf9f5;
    --hp-line: #d8dfd5; --hp-soft: #eef2e9;
    color: var(--hp-ink); background: var(--hp-paper);
}
.hp-container { width: 100%; max-width: 1328px; padding-inline: 28px; margin-inline: auto; }
.hp-page :is(.hp-hero,.hp-services,.hp-process,.hp-portal,.hp-journal,.hp-contact) :where(h1,h2,h3,p,a) { overflow-wrap: anywhere; }
.hp-page :is(.hp-hero,.hp-services,.hp-impact,.hp-process,.hp-portal,.hp-journal,.hp-contact) :where(a,button,summary):focus-visible { outline: 3px solid #8a652c; outline-offset: 5px; }
.hp-page .hp-eyebrow { display: flex; align-items: center; gap: 11px; margin: 0 0 22px; font: 700 14px/1.6 'Manrope',sans-serif; letter-spacing: .085em; color: var(--hp-gold); }
.hp-eyebrow>span { display: inline-block; width: 26px; height: 2px; background: currentColor; flex: 0 0 26px; }
.hp-page :is(.hp-section-heading,.hp-impact-heading,.hp-process-intro,.hp-portal-copy,.hp-contact) h2 { font: 500 clamp(38px,4.1vw,58px)/1.06 'Newsreader',Georgia,serif; color: var(--hp-forest); letter-spacing: -.035em; margin: 0; }
.hp-page h2 em { font-weight: 400; }
.hp-page :is(.hp-hero,.hp-services,.hp-process,.hp-portal,.hp-journal,.hp-contact) p { font-size: 17px; line-height: 1.8; }
.hp-page .hp-hero { display: grid; grid-template-columns: minmax(0,1.12fr) minmax(0,.88fr); align-items: center; gap: 64px; padding-block: 74px 64px; }
.hp-hero-copy { min-width: 0; }
.hp-page .hp-title { font: 500 clamp(64px,7.1vw,100px)/.96 'Newsreader',Georgia,serif; letter-spacing: -.055em; color: var(--hp-forest); margin: 0 0 28px; }
.hp-title em { font-weight: 400; color: var(--hp-gold); }
.hp-page .hp-hero-lead { font: 600 22px/1.5 'Manrope',sans-serif; color: var(--hp-forest); margin-bottom: 18px; }
.hp-hero-description { max-width: 530px; color: var(--hp-muted); margin: 0 0 26px; }
.hp-actions { display: flex; gap: 16px 24px; flex-wrap: wrap; align-items: center; }
.hp-button { display: inline-flex; align-items: center; justify-content: center; gap: 14px; min-height: 52px; border-radius: 8px; padding: 14px 21px; font: 700 16px/1.5 'Manrope',sans-serif; text-decoration: none; border: 1px solid transparent; transition: background .18s ease; text-align: center; }
.hp-page .hp-primary { background: var(--hp-forest); color: #fff; border-color: var(--hp-forest); }
.hp-page .hp-primary:hover { background: #104a36; color: #fff; }
.hp-text-link { display: inline-flex; gap: 10px; align-items: center; min-height: 48px; font: 700 16px/1.5 'Manrope',sans-serif; color: var(--hp-forest); text-decoration: none; }
.hp-text-link:hover { color: var(--hp-forest); text-decoration: underline; text-underline-offset: 5px; }
.hp-text-link.home-discover>.icon { transform: rotate(-90deg); }
.hp-hero-footnote { display: flex; align-items: center; gap: 12px; margin-top: 30px; color: var(--hp-muted); font: 400 15px/1.65 'Manrope',sans-serif; }
.hp-hero-footnote>.icon { width: 42px; height: 42px; padding: 10px; background: #edf2e9; border-radius: 50%; color: var(--hp-forest); }
.hp-hero-footnote strong { font-weight: 600; color: var(--hp-forest); }
.hp-hero-art { position: relative; min-width: 0; background: #edf1e7; border: 1px solid #d6dfce; border-radius: 150px 14px 14px 14px; padding: 30px 30px 26px; margin: 10px 0 28px; }
.hp-art-heading { display: flex; justify-content: space-between; align-items: center; padding-left: 14px; color: var(--hp-forest); }
.hp-art-heading>span:last-child { text-align: right; font: 700 12px/1.6 'Manrope',sans-serif; letter-spacing: .14em; }
.hp-art-mark { font: 600 36px/1 'Newsreader',Georgia,serif; letter-spacing: -.08em; }
.hp-art-mark>span { font: 12px 'Manrope',sans-serif; vertical-align: top; letter-spacing: 0; margin-left: 5px; }
.hp-hero-art>img { display: block; width: 100%; height: 285px; object-fit: contain; margin: 34px 0 26px; }
.hp-art-bottom { display: flex; align-items: center; justify-content: space-between; gap: 16px; border-top: 1px solid #c7d3c0; padding-top: 20px; font: 600 15px/1.6 'Manrope',sans-serif; color: var(--hp-forest); }
.hp-art-arrow { width: 40px; height: 40px; border: 1px solid #bdcdb6; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; flex-shrink: 0; }
.hp-art-label { position: absolute; bottom: -29px; left: 0; width: 100%; text-align: center; color: #53654f; font: 600 11px/1.5 'Manrope',sans-serif; letter-spacing: .1em; }
.hp-disciplines { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 16px 22px; padding-block: 22px; border-block: 1px solid var(--hp-line); color: var(--hp-forest); margin-bottom: 26px; font: 600 16px/1.6 'Manrope',sans-serif; }
.hp-disciplines>span { display: inline-flex; gap: 12px; align-items: center; }
.hp-disciplines i { font-style: normal; color: var(--hp-gold); font-size: 13px; }
.hp-disciplines>a { display: inline-flex; align-items: center; gap: 9px; font-size: 15px; color: var(--hp-forest); text-underline-offset: 5px; }
.hp-services { padding-block: 86px; scroll-margin-top: 100px; }
.hp-section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 28px 64px; margin-bottom: 38px; }
.hp-section-heading>div { min-width: 0; }
.hp-section-heading>p { color: var(--hp-muted); max-width: 390px; margin: 0 0 2px; }
.hp-service-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 18px; }
.hp-service-count-4 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.hp-service { display: flex; flex-direction: column; padding: 30px; background: #fff; border: 1px solid var(--hp-line); border-radius: 12px; color: var(--hp-forest); text-decoration: none; min-width: 0; transition: border-color .18s ease, background .18s ease; }
.hp-service:hover { border-color: #91a488; background: #f6f8f2; color: var(--hp-forest); }
.hp-service-top { display: flex; align-items: center; justify-content: space-between; gap: 16px; color: var(--hp-gold); font: 600 14px/1.5 'Manrope',sans-serif; margin-bottom: 36px; }
.hp-service-top>.icon { width: 28px; height: 28px; }
.hp-page .hp-service h3 { font: 500 29px/1.18 'Newsreader',Georgia,serif; letter-spacing: -.02em; color: inherit; margin: 0 0 18px; }
.hp-service p { color: var(--hp-muted); margin: 0 0 26px; }
.hp-service-link { display: flex; justify-content: space-between; gap: 12px; align-items: center; margin-top: auto; padding-top: 18px; border-top: 1px solid var(--hp-line); font: 700 15px/1.5 'Manrope',sans-serif; }
.hp-service-featured, .hp-service-featured:hover { background: var(--hp-forest); border-color: var(--hp-forest); color: #fff; }
.hp-service-featured .hp-service-top, .hp-service-featured .hp-service-link { color: var(--hp-gold-light); border-color: #ffffff30; }
.hp-service-featured p { color: #dce7de; }
.hp-page .hp-service-featured:focus-visible { outline-color: var(--hp-gold-light); outline-offset: -7px; }
.hp-section-foot { display: flex; justify-content: space-between; flex-wrap: wrap; gap: 16px; align-items: center; padding-top: 24px; color: var(--hp-muted); font-size: 15px; }
.hp-empty { padding: 32px; border: 1px solid var(--hp-line); background: #fff; border-radius: 12px; color: var(--hp-muted); }
.hp-page .hp-empty h3 { font: 500 30px/1.2 'Newsreader',Georgia,serif; color: var(--hp-forest); }
.hp-impact { background: var(--hp-forest); padding-block: 66px 34px; color: #fff; }
.hp-impact .hp-eyebrow { color: var(--hp-gold-light); }
.hp-impact-heading { display: flex; justify-content: space-between; align-items: flex-end; gap: 28px 60px; margin-bottom: 42px; }
.hp-page .hp-impact-heading h2 { color: #fff; }
.hp-impact-heading>p { max-width: 370px; font: 400 17px/1.8 'Manrope',sans-serif; color: #dce7de; margin-bottom: 5px; }
.hp-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 0; margin: 0 0 32px; border-block: 1px solid #ffffff38; }
.hp-kpi { min-width: 0; padding: 28px 25px; }
.hp-kpi:first-child { padding-left: 0; }
.hp-kpi+.hp-kpi { border-left: 1px solid #ffffff38; }
.hp-kpi dt { font: 600 16px/1.6 'Manrope',sans-serif; color: #e7ede7; margin-bottom: 18px; }
.hp-kpi dd { margin: 0; }
.hp-kpi strong { display: block; font: 500 clamp(38px,4.2vw,60px)/1.15 'Newsreader',Georgia,serif; color: var(--hp-gold-light); letter-spacing: -.025em; font-variant-numeric: tabular-nums; overflow-wrap: anywhere; margin-bottom: 12px; }
.hp-kpi-note { display: block; max-width: 245px; color: #dce7de; font: 400 14px/1.7 'Manrope',sans-serif; }
.hp-impact-foot { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px 48px; color: #dce7de; font: 400 14px/1.75 'Manrope',sans-serif; }
.hp-impact-foot>span { display: flex; align-items: flex-start; gap: 10px; max-width: 660px; }
.hp-impact-foot .icon { flex-shrink: 0; margin-top: 3px; }
.hp-method { max-width: 460px; min-width: 210px; }
.hp-method summary { min-height: 44px; padding-bottom: 10px; color: var(--hp-gold-light); cursor: pointer; font-size: 14px; font-weight: 600; }
.hp-method p { margin: 0; font-size: 14px; line-height: 1.8; color: #dce7de; }
.hp-page .hp-impact summary:focus-visible { outline-color: var(--hp-gold-light); }
.hp-metrics-notice { background: #ffffff0c; border-left: 2px solid var(--hp-gold-light); padding: 14px 18px; color: #e7ede7; font-size: 16px; }
.hp-sr { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; border: 0; }
.hp-process { padding-block: 88px 70px; display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1.2fr); gap: 80px; }
.hp-process-intro>p:not(.hp-eyebrow) { color: var(--hp-muted); max-width: 400px; margin-block: 24px 8px; }
.hp-process-intro>img { width: 230px; height: 165px; object-fit: contain; margin-top: 24px; }
.hp-steps { list-style: none; margin: 0; padding: 0; }
.hp-steps li { display: flex; align-items: flex-start; gap: 24px; padding-block: 26px; border-top: 1px solid var(--hp-line); }
.hp-steps li:first-child { padding-top: 14px; border-top: 0; }
.hp-step-number { flex: 0 0 44px; width: 44px; height: 44px; display: inline-flex; align-items: center; justify-content: center; font: 700 14px/1.5 'Manrope',sans-serif; border: 1px solid #cdd8c7; border-radius: 50%; color: var(--hp-gold); margin-top: 3px; }
.hp-page .hp-steps h3 { font: 500 31px/1.2 'Newsreader',Georgia,serif; letter-spacing: -.025em; margin: 0 0 12px; color: var(--hp-forest); }
.hp-steps p { margin: 0; color: var(--hp-muted); }
.hp-portal { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); align-items: center; gap: 75px; padding-block: 20px 85px; }
.hp-portal-art { border: 1px solid var(--hp-line); border-radius: 14px; padding: 24px 30px; background: #f0f2eb; }
.hp-portal-caption { display: flex; align-items: center; gap: 10px; font: 700 13px/1.6 'Manrope',sans-serif; color: #355340; letter-spacing: .06em; }
.hp-portal-art>img { display: block; height: 245px; width: 100%; object-fit: contain; margin-block: 24px; }
.hp-portal-tags { display: flex; flex-wrap: wrap; justify-content: center; gap: 9px; }
.hp-portal-tags>span { background: #fff; border: 1px solid #d8dfd5; border-radius: 5px; padding: 6px 10px; font-size: 13px; color: #355340; }
.hp-portal-copy>p:not(.hp-eyebrow) { color: var(--hp-muted); margin-block: 24px; }
.hp-portal-note { display: flex; align-items: center; gap: 8px; font-size: 14px; color: var(--hp-muted); margin-top: 18px; }
.hp-journal { padding-block: 70px 85px; border-top: 1px solid var(--hp-line); }
.hp-post-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 22px; }
.hp-post-count-2 { grid-template-columns: repeat(2,minmax(0,1fr)); }
.hp-post-grid.hp-post-count-1 { grid-template-columns: minmax(0,1fr); }
.hp-post-count-1 .hp-post { display: grid; grid-template-columns: minmax(0,.8fr) minmax(0,1.2fr); }
.hp-post-count-1 :is(.hp-post-placeholder,.hp-post-image) { min-height: 250px; height: 100%; }
.hp-post { min-width: 0; border: 1px solid var(--hp-line); border-radius: 12px; overflow: hidden; background: #fff; display: flex; flex-direction: column; }
.hp-post-image { display: block; overflow: hidden; height: 195px; }
.hp-post-image>img { width: 100%; height: 100%; object-fit: cover; }
.hp-post-placeholder { display: flex; align-items: center; justify-content: center; gap: 16px; height: 170px; background: #edf1e7; color: #355340; font: 600 12px/1.8 'Manrope',sans-serif; letter-spacing: .06em; padding: 24px; }
.hp-post-placeholder>.icon { width: 34px; height: 34px; flex-shrink: 0; }
.hp-post-copy { display: flex; flex-direction: column; padding: 24px; flex: 1; }
.hp-post-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; font: 500 13px/1.6 'Manrope',sans-serif; color: var(--hp-muted); margin-bottom: 18px; }
.hp-post-meta>span { color: var(--hp-gold); font-weight: 700; }
.hp-post-access { display: inline-flex; align-items: center; gap: 5px; }
.hp-post-access>.icon { width: 15px; height: 15px; }
.hp-page .hp-post h3 { font: 500 28px/1.2 'Newsreader',Georgia,serif; letter-spacing: -.025em; margin-bottom: 18px; }
.hp-post h3>a { color: var(--hp-forest); text-decoration: none; }
.hp-post h3>a:hover { text-decoration: underline; text-underline-offset: 5px; }
.hp-post p { color: var(--hp-muted); margin-bottom: 18px; }
.hp-post .hp-text-link { margin-top: auto; }
.hp-contact { background: #edece2; border-top: 1px solid #dfdfd0; padding-block: 64px; }
.hp-contact-inner { display: flex; justify-content: space-between; align-items: center; gap: 36px 64px; }
.hp-contact p:not(.hp-eyebrow) { color: var(--hp-muted); margin: 24px 0 0; }
.hp-contact-actions { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; min-width: 255px; }
@media(min-width:1600px) { .hp-page .hp-hero { gap: 80px; padding-block: 90px 70px; } }
@media(max-width:1100px) {
    .hp-page .hp-hero { gap: 32px; padding-block: 56px; }
    .hp-page .hp-title { font-size: 76px; }
    .hp-hero-art { padding: 26px 24px; border-top-left-radius: 110px; }
    .hp-hero-art>img { height: 245px; }
    .hp-service { padding: 24px; }
    .hp-process,.hp-portal { gap: 48px; }
    .hp-kpi { padding-inline: 20px; }
    .hp-post-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media(max-width:800px) {
    .hp-page .hp-hero { grid-template-columns: minmax(0,1fr); padding-block: 44px 42px; }
    .hp-hero-description { max-width: 620px; }
    .hp-hero-art { max-width: 540px; width: 100%; justify-self: center; margin-top: 10px; }
    .hp-page .hp-title { font-size: 86px; }
    .hp-disciplines { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; }
    .hp-section-heading,.hp-impact-heading { align-items: flex-start; flex-direction: column; gap: 24px; }
    .hp-section-heading>p,.hp-impact-heading>p { max-width: 650px; }
    .hp-service-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .hp-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }
    .hp-kpi { padding: 24px; }
    .hp-kpi:first-child { padding-left: 24px; }
    .hp-kpi:nth-child(3) { border-left: 0; }
    .hp-kpi:nth-child(n+3) { border-top: 1px solid #ffffff38; }
    .hp-impact-foot { flex-direction: column; gap: 14px; }
    .hp-method { max-width: 100%; }
    .hp-process { gap: 40px; }
    .hp-portal { gap: 32px; }
    .hp-portal-art { padding: 22px; }
    .hp-contact-inner { flex-direction: column; align-items: flex-start; }
}
@media(max-width:600px) {
    .hp-container { padding-inline: 20px; }
    .hp-page .hp-eyebrow { font-size: 12px; letter-spacing: .06em; gap: 9px; margin-bottom: 18px; }
    .hp-eyebrow>span { width: 20px; flex-basis: 20px; }
    .hp-page .hp-title { font-size: clamp(44px,14vw,68px); margin-bottom: 24px; }
    .hp-page .hp-hero-lead { font-size: 20px; }
    .hp-page .hp-hero { padding-top: 34px; gap: 32px; }
    .hp-page :is(.hp-hero,.hp-services,.hp-process,.hp-portal,.hp-journal,.hp-contact) p { font-size: 16px; line-height: 1.8; }
    .hp-actions { gap: 12px; align-items: flex-start; flex-direction: column; }
    .hp-button { padding-inline: 18px; font-size: 15px; max-width: 100%; }
    .hp-hero-footnote { margin-top: 18px; font-size: 14px; }
    .hp-hero-art { padding: 24px 22px; border-top-left-radius: 100px; }
    .hp-art-heading { padding-left: 20px; }
    .hp-hero-art>img { height: 210px; margin-block: 25px; }
    .hp-art-bottom { font-size: 14px; gap: 10px; }
    .hp-art-label { font-size: 9px; }
    .hp-disciplines { font-size: 14px; gap: 18px 12px; }
    .hp-disciplines>span { gap: 8px; }
    .hp-disciplines i { font-size: 12px; }
    .hp-disciplines>a { font-size: 14px; }
    .hp-services,.hp-journal { padding-block: 55px; }
    .hp-page :is(.hp-section-heading,.hp-impact-heading,.hp-process-intro,.hp-portal-copy,.hp-contact) h2 { font-size: 40px; }
    .hp-section-heading { margin-bottom: 28px; gap: 22px; }
    .hp-service-grid,.hp-post-grid { grid-template-columns: minmax(0,1fr); }
    .hp-service { padding: 26px; }
    .hp-service-top { margin-bottom: 28px; }
    .hp-page .hp-service h3 { font-size: 30px; }
    .hp-impact { padding-block: 48px 24px; }
    .hp-impact-heading { margin-bottom: 30px; }
    .hp-kpi,.hp-kpi:first-child { padding: 22px 14px; }
    .hp-kpi dt { font-size: 14px; margin-bottom: 14px; }
    .hp-kpi strong { font-size: clamp(32px,10vw,43px); }
    .hp-kpi-note { font-size: 13px; }
    .hp-impact-foot { font-size: 13px; }
    .hp-method summary,.hp-method p { font-size: 14px; }
    .hp-process { grid-template-columns: minmax(0,1fr); padding-block: 56px; gap: 25px; }
    .hp-process-intro>img { display: none; }
    .hp-steps li { gap: 18px; padding-block: 24px; }
    .hp-page .hp-steps h3 { font-size: 29px; }
    .hp-step-number { flex-basis: 38px; width: 38px; height: 38px; font-size: 13px; }
    .hp-portal { grid-template-columns: minmax(0,1fr); gap: 30px; padding-block: 10px 56px; }
    .hp-portal-copy { grid-row: 1; }
    .hp-portal-art>img { height: 210px; }
    .hp-portal-caption { font-size: 12px; }
    .hp-contact { padding-block: 48px; }
    .hp-contact-inner { gap: 28px; }
    .hp-contact-actions { min-width: 0; width: 100%; }
    .hp-post h3>a { font-size: 28px; }
    .hp-post-count-1 .hp-post { grid-template-columns: minmax(0,1fr); }
    .hp-post-count-1 :is(.hp-post-placeholder,.hp-post-image) { min-height: 170px; height: 170px; }
}
@media(prefers-reduced-motion:reduce) {
    .hp-page :is(.hp-button,.hp-service) { transition: none; }
}
