/*
 * Falconhall component styles. Every value comes from a token (12 UI Design System,
 * section 2); brand colours and fonts arrive as --fh-* properties from Core's Brand.
 * Licence: Falconfox AI licence (see LICENSE-ASSETS.md).
 */

:root {
	--fh-radius-sm: 8px; --fh-radius-md: 14px; --fh-radius-lg: 20px; --fh-radius-pill: 999px;
	--fh-shadow-rest: 0 10px 30px rgb(11 31 58 / 7%); --fh-shadow-raised: 0 22px 46px rgb(11 31 58 / 14%); --fh-shadow-float: 0 30px 60px rgb(0 0 0 / 28%);
	--fh-fast: 150ms; --fh-base: 300ms; --fh-slow: 600ms; --fh-enter: 900ms; --fh-ease: cubic-bezier(.2, .7, .2, 1);
	--fh-success: #1E7D45; --fh-warning: #8A4B00; --fh-danger: #B42318; --fh-info: #1D4E89;
	--fh-container: 1200px; --fh-gutter: 24px; --fh-section: 64px;
}

/* ---------- Base ---------- */
.fh-body { margin: 0; font-family: var(--fh-font-body); font-size: 16px; line-height: 1.65; color: var(--fh-text-body); background: var(--fh-surface); -webkit-font-smoothing: antialiased; }
.fh-body *, .fh-body *::before, .fh-body *::after { box-sizing: border-box; }
:where(.fh-body) img { max-width: 100%; height: auto; }
:where(.fh-body) a { color: var(--fh-primary); }
:where(.fh-body) a:hover { color: var(--fh-primary-dark); }
.fh-body :focus-visible { outline: 2px solid var(--fh-primary); outline-offset: 2px; }
.fh-body .fh-on-ink :focus-visible, .fh-banner :focus-visible, .fh-footer :focus-visible, .fh-cta :focus-visible, .fh-lead-band :focus-visible, .fh-stm :focus-visible, .fh-lightbox :focus-visible { outline-color: var(--fh-on-ink); }
.fh-container { max-width: var(--fh-container); margin: 0 auto; padding: 0 var(--fh-gutter); }
.fh-sr-only { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; }
.fh-skip { position: absolute; left: 12px; top: -60px; z-index: 100; padding: 12px 18px; background: var(--fh-ink); color: var(--fh-on-ink) !important; border-radius: var(--fh-radius-sm); font-weight: 700; }
.fh-skip:focus { top: 12px; }
.fh-icon { flex: none; }
.fh-trap { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
:where(.fh-body) :where(ul, ol) { padding: 0; margin: 0; }
:where(.fh-body) li { list-style: none; }

/* Type */
.fh-display, .fh-h1, .fh-h2, .fh-h3, :where(.fh-body) :where(h1, h2, h3) { font-family: var(--fh-font-heading); color: var(--fh-text); font-weight: 800; letter-spacing: -0.025em; margin: 0; }
.fh-display { font-size: 60px; line-height: 1.05; }
.fh-body .fh-display, .fh-body .fh-banner .fh-h1 { color: var(--fh-on-ink); }
.fh-h1 { font-size: 50px; line-height: 1.08; }
.fh-h2 { font-size: 38px; line-height: 1.15; margin-bottom: 12px; }
.fh-h3 { font-size: 22px; line-height: 1.25; margin-bottom: 6px; }
.fh-lead { font-size: 18px; line-height: 1.6; max-width: 680px; margin: 0; }
.fh-lead--on-ink { color: var(--fh-on-ink-muted); }
.fh-eyebrow { margin: 0 0 10px; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--fh-primary); }
.fh-eyebrow--on-ink { color: var(--fh-accent-light); }
:where(.fh-body) p { margin: 0 0 12px; }

/* ---------- CMP-08 Buttons and links ---------- */
.fh-btn { position: relative; overflow: hidden; display: inline-flex; white-space: nowrap; align-items: center; justify-content: center; gap: 8px; min-height: 50px; padding: 0 24px; border-radius: var(--fh-radius-sm); border: 1px solid transparent; font: inherit; font-weight: 700; font-size: 15px; line-height: 1.2; text-decoration: none; cursor: pointer; transition: filter var(--fh-fast) ease, background var(--fh-fast) ease, color var(--fh-fast) ease; }
.fh-btn:hover { filter: brightness(1.08); }
.fh-btn--small { min-height: 44px; padding: 0 16px; font-size: 14px; }
.fh-body .fh-btn--primary { background: var(--fh-primary); border-color: var(--fh-primary); color: #FFFFFF; }
.fh-body .fh-btn--accent { background: var(--fh-accent); border-color: var(--fh-accent); color: var(--fh-on-accent); }
.fh-body .fh-btn--ink { background: var(--fh-ink); border-color: var(--fh-ink); color: var(--fh-on-ink); }
.fh-body .fh-btn--light { background: #FFFFFF; border-color: #FFFFFF; color: var(--fh-ink); }
.fh-body .fh-btn--outline { background: transparent; border-color: var(--fh-line-strong); color: var(--fh-text); }
.fh-body .fh-btn--outline-light, .fh-banner .fh-btn--outline, .fh-cta .fh-btn--outline { background: transparent; border-color: rgb(255 255 255 / 40%); color: var(--fh-on-ink); }
.fh-btn::after { content: ""; position: absolute; top: 0; left: -60%; width: 40%; height: 100%; background: linear-gradient(100deg, transparent, rgb(255 255 255 / 35%), transparent); transform: skewX(-20deg); pointer-events: none; }
.fh-btn:hover::after { animation: fh-shine .7s ease; }
.fh-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 24px; }
.fh-actions--center { justify-content: center; }
.fh-body .fh-link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 700; text-decoration: none; white-space: nowrap; }
.fh-body .fh-link-arrow--on-ink { color: var(--fh-on-ink); }
.fh-iconbtn { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: var(--fh-radius-sm); border: 1px solid var(--fh-line-strong); background: #FFFFFF; color: var(--fh-text); cursor: pointer; text-decoration: none; }
.fh-iconbtn--small { width: 44px; height: 44px; }
.fh-iconbtn--on-ink { background: rgb(255 255 255 / 10%); border-color: rgb(255 255 255 / 30%); color: var(--fh-on-ink); }
.fh-chip { display: inline-flex; align-items: center; min-height: 32px; padding: 0 12px; border-radius: var(--fh-radius-pill); border: 1px solid var(--fh-line-strong); background: #FFFFFF; color: var(--fh-text); font-size: 13px; font-weight: 600; text-decoration: none; }
.fh-chip--on-ink { background: rgb(255 255 255 / 10%); border-color: rgb(255 255 255 / 25%); color: var(--fh-on-ink); }
.fh-tag { display: inline-block; align-self: flex-start; margin-bottom: 10px; padding: 3px 10px; border-radius: var(--fh-radius-pill); background: var(--fh-primary-tint); color: var(--fh-tag, var(--fh-primary-dark)); font-size: 12px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.fh-tag[style] { background: #FFFFFF; box-shadow: inset 0 0 0 1px var(--fh-tag); }
.fh-pill { display: inline-flex; align-items: center; gap: 10px; padding: 7px 14px; border-radius: var(--fh-radius-pill); border: 1px solid color-mix(in srgb, var(--fh-accent-light) 45%, transparent); background: color-mix(in srgb, var(--fh-accent-light) 10%, transparent); font-size: 13px; font-weight: 600; color: var(--fh-accent-light); margin: 0; }
.fh-pulse { width: 7px; height: 7px; border-radius: 50%; background: var(--fh-accent-light); animation: fh-pulse 2s infinite; }
.fh-icn { display: inline-flex; flex: none; width: 48px; height: 48px; border-radius: var(--fh-radius-md); background: var(--fh-primary-tint); color: var(--fh-primary); align-items: center; justify-content: center; transition: transform var(--fh-base) ease; }
.fh-avatar { display: inline-flex; align-items: center; justify-content: center; width: 48px; height: 48px; border-radius: 50%; background: linear-gradient(160deg, var(--fh-primary), var(--fh-ink)); color: var(--fh-accent-light); font-family: var(--fh-font-heading); font-weight: 800; }
.fh-avatar--large { width: 120px; height: 120px; font-size: 38px; }

/* ---------- Layout ---------- */
.fh-section { position: relative; padding: var(--fh-section) 0; overflow: hidden; }
.fh-section--alt { background: var(--fh-surface-alt); }
.fh-section--ink { background: var(--fh-ink); color: var(--fh-on-ink-muted); }
.fh-section__head { position: relative; display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 28px; }
.fh-section__head > div { max-width: 760px; }
.fh-grid { display: grid; gap: 20px; }
.fh-grid--cards { grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); }
.fh-grid--tiles { grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 14px; }
.fh-grid--content { grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); gap: 24px; }
.fh-grid--people { grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 24px; }
.fh-card { position: relative; background: #FFFFFF; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-md); padding: 24px; box-shadow: var(--fh-shadow-rest); }
.fh-lift { transition: transform var(--fh-base) var(--fh-ease), box-shadow var(--fh-base) ease; }
.fh-lift:hover, .fh-lift:focus-within { transform: translateY(-5px); box-shadow: var(--fh-shadow-raised); }
.fh-lift:hover .fh-icn, .fh-lift:focus-within .fh-icn { transform: rotate(-8deg) scale(1.08); }
.fh-orbs::before, .fh-orbs::after { content: ""; position: absolute; border-radius: 50%; pointer-events: none; }
.fh-orbs::before { left: -200px; top: -160px; width: 560px; height: 560px; background: radial-gradient(circle, rgb(11 31 58 / 7%), transparent 65%); animation: fh-drift1 18s ease-in-out infinite; }
.fh-orbs::after { right: -180px; bottom: -200px; width: 520px; height: 520px; background: radial-gradient(circle, color-mix(in srgb, var(--fh-accent) 12%, transparent), transparent 65%); animation: fh-drift2 22s ease-in-out infinite; }
.fh-geo, .fh-pattern { position: absolute; inset: 0; pointer-events: none; opacity: .9; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='96' height='96'%3E%3Cg fill='none' stroke='%23E2C25A' stroke-opacity='.08'%3E%3Cpath d='M48 8l11.3 28.7L88 48 59.3 59.3 48 88 36.7 59.3 8 48l28.7-11.3z'/%3E%3Cpath d='M20 20h56v56H20z' transform='rotate(45 48 48)'/%3E%3Ccircle cx='48' cy='48' r='10'/%3E%3C/g%3E%3C/svg%3E"); }
.fh-pattern { opacity: .5; }
.fh-emblem { position: absolute; right: -220px; top: -120px; width: 640px; height: 640px; pointer-events: none; background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-360 -360 720 720'%3E%3Cg fill='none' stroke='%23E2C25A'%3E%3Cpath stroke-opacity='.16' d='M-250-250H250V250H-250Z'/%3E%3Cpath stroke-opacity='.16' transform='rotate(45)' d='M-250-250H250V250H-250Z'/%3E%3Cpath stroke-opacity='.12' d='M-190-190H190V190H-190Z'/%3E%3Cpath stroke-opacity='.12' transform='rotate(45)' d='M-190-190H190V190H-190Z'/%3E%3C/g%3E%3C/svg%3E") center / contain no-repeat; animation: fh-spin 90s linear infinite; }

/* ---------- CMP-01 Utility bar ---------- */
.fh-utility { background: color-mix(in srgb, var(--fh-ink) 85%, #000); color: var(--fh-on-ink-muted); font-size: 13px; }
.fh-utility__in { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; padding-top: 6px; padding-bottom: 6px; }
.fh-utility a { display: inline-flex; align-items: center; gap: 8px; min-height: 32px; color: var(--fh-on-ink); text-decoration: none; }
.fh-utility__contact, .fh-utility__right, .fh-utility nav { display: flex; flex-wrap: wrap; align-items: center; gap: 18px; }
.fh-utility__contact a { color: var(--fh-on-ink-muted); }
.fh-utility__contact .fh-icon { color: var(--fh-accent-light); }
.fh-social { display: flex; gap: 8px; flex-wrap: wrap; }
.fh-social a { width: 36px; height: 36px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 12%); color: var(--fh-on-ink); }
.fh-social--small a { width: 28px; height: 28px; min-height: 28px; }

/* ---------- CMP-02, 03 Header and phone menu ---------- */
.fh-header { position: sticky; top: 0; z-index: 30; background: rgb(255 255 255 / 96%); backdrop-filter: blur(10px); border-bottom: 1px solid var(--fh-line); box-shadow: 0 6px 20px rgb(11 37 69 / 6%); }
.fh-header__in { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 76px; }
.fh-header__logo img { height: 46px; width: auto; display: block; }
.fh-header__right { display: flex; align-items: center; gap: 10px; }
.fh-nav { display: flex; align-items: center; gap: 2px; }
.fh-nav__item { position: static; }
.fh-nav__top { list-style: none; display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; border-radius: var(--fh-radius-sm); color: var(--fh-text); font-weight: 500; font-size: 15px; cursor: pointer; position: relative; }
.fh-nav__top::-webkit-details-marker { display: none; }
.fh-nav__top::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 6px; height: 2px; border-radius: 2px; background: var(--fh-accent); transform: scaleX(0); transform-origin: left; transition: transform var(--fh-base) ease; }
.fh-nav__top:hover::after, .fh-nav__item[open] > .fh-nav__top::after, .fh-nav__top[aria-current]::after { transform: scaleX(1); }
.fh-nav__item[open] > .fh-nav__top, .fh-nav__top[aria-current] { font-weight: 700; }
.fh-nav__item[open] > .fh-nav__top .fh-icon { transform: rotate(180deg); }
.fh-mega { position: absolute; left: 0; right: 0; top: 100%; background: #FFFFFF; border-top: 1px solid var(--fh-line); border-bottom: 1px solid var(--fh-line); box-shadow: 0 24px 48px rgb(11 37 69 / 14%); animation: fh-drop var(--fh-base) var(--fh-ease); }
.fh-mega__in { display: flex; flex-wrap: wrap; gap: 32px; padding-top: 28px; padding-bottom: 28px; }
.fh-mega__links { flex: 2 1 560px; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 4px; }
.fh-body .fh-mega__link { display: flex; gap: 14px; align-items: center; padding: 12px 14px; border-radius: 12px; color: var(--fh-text); text-decoration: none; transition: background var(--fh-base) ease, transform var(--fh-base) ease; }
.fh-mega__link:hover, .fh-mega__link:focus-visible { background: var(--fh-surface-alt); transform: translateX(3px); }
.fh-mega__mark { flex: 0 0 44px; height: 44px; border-radius: 12px; background: var(--fh-primary-tint); color: var(--fh-primary); display: flex; align-items: center; justify-content: center; }
.fh-mega__mark img { max-height: 30px; width: auto; }
.fh-mega__mark:has(img) { background: #FFFFFF; border: 1px solid var(--fh-line); }
.fh-mega__title { display: block; font-weight: 700; }
.fh-mega__desc { display: block; font-size: 13px; color: var(--fh-text-muted); }
.fh-body .fh-mega__promo { flex: 1 1 300px; display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 26px; border-radius: var(--fh-radius-md); background: radial-gradient(400px 220px at 90% 0%, color-mix(in srgb, var(--fh-primary) 50%, transparent), transparent 60%), linear-gradient(150deg, var(--fh-ink), var(--fh-ink-2)); color: var(--fh-on-ink); text-decoration: none; }
.fh-mega__promo .fh-eyebrow { color: var(--fh-accent-light); margin: 0; }
.fh-mega__promo-title { font-family: var(--fh-font-heading); font-size: 22px; font-weight: 700; }
.fh-mega__promo-text { font-size: 14px; color: var(--fh-on-ink-muted); }
.fh-body .fh-nav__highlight { margin-left: 8px; min-height: 40px; padding: 0 14px; display: inline-flex; align-items: center; gap: 8px; border-radius: var(--fh-radius-pill); border: 1.5px solid var(--fh-accent); color: var(--fh-ink); font-weight: 700; font-size: 14px; text-decoration: none; }
.fh-nav__highlight .fh-pulse { background: var(--fh-success); }
.fh-phone-menu { width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; padding: 16px 24px 32px; border: 0; background: #FFFFFF; }
.fh-phone-menu::backdrop { background: rgb(0 0 0 / 40%); }
.fh-phone-menu__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 16px; }
.fh-phone-menu__links { padding: 0 0 12px 8px; }
.fh-phone-menu__links a { display: flex; align-items: center; min-height: 44px; color: var(--fh-text); text-decoration: none; }
.fh-phone-menu__cta { display: flex; flex-direction: column; gap: 12px; margin-top: 24px; }
.fh-show-phone { display: none; }

/* ---------- CMP-04 Announcement ---------- */
.fh-announce { background: var(--fh-accent-gradient); color: var(--fh-ink); font-size: 14px; font-weight: 600; }
.fh-announce__in { display: flex; align-items: center; justify-content: center; gap: 12px; min-height: 44px; }
.fh-announce p { margin: 0; text-align: center; }
.fh-body .fh-announce a { color: var(--fh-ink); }
.fh-announce__close { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; background: none; border: 0; color: var(--fh-ink); cursor: pointer; }
.fh-announce.is-dismissed { display: none; }

/* ---------- CMP-05 Search overlay ---------- */
.fh-search { width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; padding: 40px 0; border: 0; background: rgb(255 255 255 / 98%); }
.fh-search::backdrop { background: rgb(11 31 58 / 50%); }
.fh-search__top { display: flex; justify-content: space-between; align-items: center; margin-bottom: 20px; }
.fh-search form { display: flex; gap: 12px; }
.fh-search__input { flex: 1; min-height: 56px; padding: 0 18px; border-radius: var(--fh-radius-sm); border: 1px solid var(--fh-line-strong); font: inherit; font-size: 18px; }
.fh-search__results { margin-top: 20px; }
.fh-search__results h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .08em; color: var(--fh-text-muted); margin: 18px 0 8px; }
.fh-search__results [role="option"] { display: block; padding: 10px 12px; border-radius: var(--fh-radius-sm); color: var(--fh-text); text-decoration: none; }
.fh-search__results [aria-selected="true"], .fh-search__results [role="option"]:hover { background: var(--fh-surface-alt); }
.fh-search__suggest { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 20px; }

/* ---------- CMP-06 Breadcrumbs ---------- */
.fh-crumbs ol { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 28px; font-size: 13px; }
.fh-crumbs li + li::before { content: "/"; margin-right: 8px; opacity: .5; }
.fh-body .fh-crumbs a { color: var(--fh-on-ink-muted); text-decoration: none; }
.fh-crumbs [aria-current] { color: var(--fh-on-ink); }

/* ---------- CMP-07 Footer ---------- */
.fh-footer { position: relative; overflow: hidden; background: var(--fh-ink); color: var(--fh-on-ink-muted); padding: 64px 0 32px; font-size: 14px; }
.fh-footer .fh-container { position: relative; }
.fh-signup { display: flex; flex-wrap: wrap; gap: 24px; align-items: center; justify-content: space-between; padding: 28px 32px; border-radius: var(--fh-radius-md); background: rgb(255 255 255 / 5%); border: 1px solid rgb(255 255 255 / 10%); margin-bottom: 56px; }
.fh-signup__title { font-size: 22px !important; color: var(--fh-on-ink) !important; margin: 0 0 4px !important; }
.fh-signup p { margin: 0; }
.fh-body .fh-footer__refer { display: inline-flex; align-items: center; gap: 8px; margin-top: 12px; font-weight: 700; color: var(--fh-accent-light); text-decoration: none; }
.fh-signup__form { display: flex; flex-wrap: wrap; gap: 10px; flex: 1 1 380px; max-width: 480px; }
.fh-signup__form input[type="email"] { flex: 1 1 220px; min-height: 50px; padding: 0 16px; border-radius: var(--fh-radius-sm); border: 1px solid rgb(255 255 255 / 25%); background: rgb(255 255 255 / 6%); color: var(--fh-on-ink); font: inherit; font-size: 16px; }
.fh-signup__form input::placeholder { color: var(--fh-on-ink-muted); }
.fh-signup__status { flex-basis: 100%; min-height: 1em; color: var(--fh-on-ink); }
.fh-footer__grid { display: grid; grid-template-columns: 1.4fr 4fr; gap: 40px; }
.fh-footer__brand img { height: 54px; width: auto; margin-bottom: 18px; }
.fh-footer__brand p { max-width: 340px; line-height: 1.7; margin-bottom: 18px; }
.fh-footer__nav { display: grid; grid-template-columns: repeat(4, 1fr); gap: 32px; }
.fh-footer__head { font-size: 15px !important; color: var(--fh-on-ink) !important; margin: 0 0 14px !important; letter-spacing: 0 !important; }
.fh-footer__col ul { display: flex; flex-direction: column; gap: 4px; }
.fh-body .fh-footer__col a, .fh-body .fh-footer__legal a { display: inline-flex; min-height: 32px; align-items: center; color: var(--fh-on-ink-muted); text-decoration: none; }
.fh-body .fh-footer__col a:hover { color: var(--fh-on-ink); }
.fh-footer__bottom { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; margin-top: 56px; padding-top: 24px; border-top: 1px solid var(--fh-ink-3); font-size: 13px; }
.fh-footer__legal { display: flex; gap: 20px; }

/* ---------- CMP-10, 11 Banners ---------- */
.fh-banner { position: relative; overflow: hidden; color: var(--fh-on-ink); background: radial-gradient(900px 460px at 85% 10%, color-mix(in srgb, var(--fh-primary) 55%, transparent), transparent 60%), linear-gradient(135deg, var(--fh-ink) 0%, var(--fh-ink-2) 60%, var(--fh-ink-3) 100%); }
.fh-banner__in { position: relative; display: grid; grid-template-columns: 1fr; gap: 64px; align-items: center; padding-top: 64px; padding-bottom: 72px; }
.fh-banner--split .fh-banner__in, .fh-banner__in.fh-banner--split { grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr); }
.fh-banner__text { max-width: 720px; min-width: 0; }
.fh-banner .fh-h1 { color: var(--fh-on-ink); margin: 20px 0 18px; }
.fh-banner .fh-display { margin: 20px 0 18px; }
.fh-banner .fh-lead { margin-bottom: 6px; }
.fh-banner__aside { min-width: 0; }
.fh-banner__strip { position: absolute; left: 0; right: 0; bottom: 0; height: 4px; background: var(--fh-banner-accent, var(--fh-accent-gradient)); }
.fh-underline { color: var(--fh-accent-light); background: linear-gradient(var(--fh-accent), var(--fh-accent)) 0 92% / 100% 6px no-repeat; }
.fh-float { animation: fh-float 6s ease-in-out infinite; }

/* Carousel (CMP-11, 13, 18) */
.fh-car { position: relative; }
.fh-car__controls { display: flex; align-items: center; gap: 8px; margin-bottom: 14px; }
.fh-car__dots { display: flex; gap: 0; margin-right: auto; }
.fh-dot { width: 44px; height: 44px; border: 0; background: none; cursor: pointer; display: inline-flex; align-items: center; justify-content: center; }
.fh-dot::before { content: ""; width: 10px; height: 10px; border-radius: 50%; background: currentColor; opacity: .35; transition: opacity var(--fh-base), width var(--fh-base); }
.fh-dot[aria-selected="true"]::before { opacity: 1; width: 26px; border-radius: 6px; }
.fh-banner .fh-dot, .fh-banner .fh-car .fh-iconbtn { color: var(--fh-on-ink); }
.fh-banner .fh-car .fh-iconbtn { background: rgb(255 255 255 / 10%); border-color: rgb(255 255 255 / 30%); }
.fh-car.is-ready .fh-slide:not(.is-current) { display: none; }
.fh-car:not(.is-ready) .fh-slide + .fh-slide { margin-top: 16px; }
.fh-car.is-ready .fh-slide.is-current { animation: fh-fade var(--fh-slow) var(--fh-ease); }
.fh-car:not(.is-ready) .fh-car__controls { display: none; }
.fh-hl__slide { padding: 28px; border-radius: var(--fh-radius-lg); background: rgb(255 255 255 / 7%); border: 1px solid rgb(255 255 255 / 15%); backdrop-filter: blur(6px); box-shadow: var(--fh-shadow-float); min-height: 300px; }
.fh-hl__label { font-size: 12px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--fh-accent-light); display: flex; gap: 10px; align-items: center; }
.fh-hl__title { color: var(--fh-on-ink) !important; font-size: 26px !important; margin: 10px 0 8px !important; }
.fh-hl__text { color: var(--fh-on-ink-muted); }

/* ---------- CMP-12 Figures ---------- */
.fh-body .fh-figures { position: relative; z-index: 2; margin-top: -48px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; background: #FFFFFF; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-lg); box-shadow: var(--fh-shadow-raised); }
.fh-fig { display: flex; gap: 14px; align-items: center; padding: 24px 28px; }
.fh-fig + .fh-fig { border-left: 1px solid var(--fh-line); }
.fh-fig__icon { width: 44px; height: 44px; border-radius: 12px; background: var(--fh-primary-tint); color: var(--fh-primary); display: inline-flex; align-items: center; justify-content: center; }
.fh-fig__value { display: block; font-family: var(--fh-font-heading); font-size: 32px; font-weight: 800; line-height: 1; color: var(--fh-text); font-variant-numeric: tabular-nums; }
.fh-fig__label { display: block; margin-top: 6px; font-size: 14px; color: var(--fh-text-muted); }

/* ---------- CMP-13 Statement slider ---------- */
.fh-stm { position: relative; overflow: hidden; border-radius: var(--fh-radius-lg); padding: 32px 36px 36px; background: linear-gradient(140deg, var(--fh-ink), var(--fh-ink-2)); color: var(--fh-on-ink-muted); min-height: 280px; }
.fh-stm__top { position: relative; display: flex; justify-content: space-between; gap: 12px; margin-bottom: 20px; }
.fh-stm__tabs { display: flex; flex-wrap: wrap; gap: 8px; }
.fh-stm__tab { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 16px; border-radius: var(--fh-radius-pill); border: 1px solid rgb(255 255 255 / 20%); background: transparent; color: var(--fh-on-ink); font: inherit; font-weight: 600; cursor: pointer; }
.fh-stm__tab[aria-selected="true"] { background: var(--fh-accent); border-color: var(--fh-accent); color: var(--fh-on-accent); }
.fh-stm__panel { position: relative; }
.fh-stm__word { position: absolute; right: -10px; top: -30px; font-family: var(--fh-font-heading); font-size: 120px; font-weight: 800; line-height: 1; color: transparent; -webkit-text-stroke: 1px rgb(255 255 255 / 12%); pointer-events: none; }
.fh-stm__title { color: var(--fh-on-ink) !important; font-size: 30px !important; margin: 10px 0 12px !important; position: relative; }
.fh-stm__panel p { position: relative; font-size: 17px; max-width: 620px; }
.fh-stm__bar { display: block; height: 3px; margin-top: 24px; background: rgb(255 255 255 / 15%); border-radius: 3px; overflow: hidden; }
.fh-stm__bar span { display: block; height: 100%; width: 100%; background: var(--fh-accent); transform-origin: left; }
.fh-car.is-ready:not(.is-paused) .is-current .fh-stm__bar span { animation: fh-grow 5.5s linear; }
.fh-car.is-paused .fh-stm__bar span { transform: scaleX(1); }

/* ---------- CMP-14 Cards and tiles ---------- */
.fh-card .fh-h3 { margin-top: 16px; font-size: 19px; }
.fh-card p { font-size: 15px; }
.fh-body .fh-tile { display: flex; gap: 16px; align-items: center; padding: 18px 20px; border-radius: var(--fh-radius-md); background: #FFFFFF; border: 1px solid var(--fh-line); color: var(--fh-text); text-decoration: none; box-shadow: var(--fh-shadow-rest); }
.fh-tile > span:nth-child(2) { flex: 1; }
.fh-tile__title { display: block; font-weight: 700; }
.fh-tile__text { display: block; font-size: 14px; color: var(--fh-text-muted); }

/* ---------- CMP-15 Chapter panels ---------- */
.fh-cps { display: flex; gap: 12px; height: 440px; }
.fh-cp { position: relative; flex: 1 1 0; min-width: 84px; border-radius: var(--fh-radius-lg); background: var(--fh-cp); color: #FFFFFF; overflow: hidden; transition: flex var(--fh-slow) var(--fh-ease); }
.fh-cp.is-open { flex: 5 1 0; }
.fh-body .fh-cp__h { color: #FFFFFF; margin: 0; height: 100%; position: absolute; inset: 0 auto 0 0; width: 84px; }
.fh-cp__head { width: 84px; height: 100%; padding: 20px 0; border: 0; background: none; color: inherit; font: inherit; cursor: pointer; display: flex; flex-direction: column; align-items: center; gap: 16px; }
.fh-cp__logo { flex: none; width: 56px; height: 56px; border-radius: 14px; background: #FFFFFF; display: flex; align-items: center; justify-content: center; padding: 6px; }
.fh-cp__logo img { max-height: 44px; width: auto; }
.fh-cp__initial { font-family: var(--fh-font-heading); font-weight: 800; font-size: 26px; color: var(--fh-cp); }
.fh-cp__vname { writing-mode: vertical-rl; transform: rotate(180deg); font-family: var(--fh-font-heading); font-size: 20px; font-weight: 800; letter-spacing: .02em; }
.fh-cp__body { position: absolute; left: 96px; right: 24px; bottom: 24px; opacity: 0; visibility: hidden; transition: opacity var(--fh-base) ease; }
.fh-cp.is-open .fh-cp__body { opacity: 1; visibility: visible; transition-delay: .2s; }
.fh-cp__name { font-family: var(--fh-font-heading); font-size: 26px; font-weight: 800; color: #FFFFFF; }
.fh-cp__body p { color: #FFFFFF; }
.fh-cp__lead { color: #FFFFFF; font-size: 14px; }
.fh-cp__figure { font-weight: 700; color: #FFFFFF !important; }
.fh-cp:not(.is-open) .fh-cp__body { pointer-events: none; }
.fh-cps:not([data-ready]) .fh-cp:first-child .fh-cp__body { opacity: 1; visibility: visible; }

/* ---------- CMP-16 Vertical tabs ---------- */
.fh-vt { display: grid; grid-template-columns: 320px 1fr; gap: 24px; }
.fh-vt__list { display: flex; flex-direction: column; gap: 8px; }
.fh-vt__tab { display: flex; align-items: center; gap: 14px; min-height: 64px; padding: 10px 16px; text-align: left; border-radius: var(--fh-radius-md); border: 1px solid var(--fh-line); background: #FFFFFF; color: var(--fh-text); font: inherit; font-weight: 700; cursor: pointer; }
.fh-vt__tab[aria-selected="true"] { border-color: var(--fh-primary); box-shadow: inset 4px 0 0 var(--fh-primary), var(--fh-shadow-rest); }
.fh-vt__panel { display: grid; grid-template-columns: 1fr 0.8fr; gap: 24px; align-items: center; }
.fh-vt__img { border-radius: var(--fh-radius-md); aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.fh-vt.is-ready .fh-vt__panel:not(.is-current), .fh-tabs.is-ready .fh-tabs__panel:not(.is-current) { display: none; }
.fh-vt:not(.is-ready) .fh-vt__panel + .fh-vt__panel { margin-top: 16px; }
.fh-ticks li { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 8px; color: var(--fh-text); }
.fh-ticks .fh-icon { color: var(--fh-success); margin-top: 3px; }

/* ---------- CMP-17 Steps ---------- */
.fh-steps { display: grid; grid-template-columns: 1fr 1.6fr; gap: 40px; align-items: center; }
.fh-steps__list { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 20px; position: relative; }
.fh-steps__list::before { content: ""; position: absolute; left: 24px; right: 24px; top: 48px; border-top: 2px dashed var(--fh-line-strong); }
.fh-step { position: relative; }
.fh-steps__head .fh-actions { margin-top: 20px; }
.fh-step__n { display: inline-flex; width: 48px; height: 48px; border-radius: 50%; align-items: center; justify-content: center; background: var(--fh-ink); color: var(--fh-accent-light); font-family: var(--fh-font-heading); font-weight: 800; font-size: 18px; }

/* ---------- CMP-18 Testimonials ---------- */
.fh-quote { display: grid; grid-template-columns: 160px 1fr; gap: 32px; align-items: center; margin: 0; }
.fh-quote blockquote { margin: 0 0 16px; font-family: var(--fh-font-heading); font-size: 22px; line-height: 1.5; color: var(--fh-text); }
.fh-quote blockquote p::before { content: "\201C"; color: var(--fh-accent); }
.fh-quote figcaption { display: flex; flex-wrap: wrap; gap: 8px 14px; align-items: center; }
.fh-quote__name { font-weight: 800; color: var(--fh-text); }
.fh-quote__role { color: var(--fh-text-muted); font-size: 14px; }
.fh-framed--round .fh-framed__box { aspect-ratio: 1; border-radius: 50%; }

/* ---------- CMP-19, 20, 21 Ticker, scroller, strip ---------- */
.fh-ticker { position: relative; display: flex; align-items: center; background: var(--fh-ink); color: var(--fh-on-ink); padding: 0 12px 0 0; }
.fh-ticker__mask, .fh-strip__mask { flex: 1; overflow: hidden; mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.fh-ticker__track, .fh-strip__track { display: flex; width: max-content; animation: fh-marquee 50s linear infinite; }
.fh-ticker ul, .fh-strip ul { display: flex; flex: none; }
.fh-ticker li { display: inline-flex; align-items: center; gap: 24px; padding: 18px 12px; font-family: var(--fh-font-heading); font-size: 20px; font-weight: 700; white-space: nowrap; }
.fh-ticker__star { color: var(--fh-accent); }
.fh-scroller { position: relative; }
.fh-scroller__mask { height: 360px; overflow: hidden; mask-image: linear-gradient(transparent, #000 10%, #000 90%, transparent); }
.fh-scroller__track { animation: fh-marquee-y 30s linear infinite; }
.fh-scroller ul { display: flex; flex-direction: column; gap: 10px; padding-bottom: 10px; }
.fh-body .fh-scroller__item { display: block; padding: 14px 16px; border-radius: var(--fh-radius-md); background: #FFFFFF; border: 1px solid var(--fh-line); color: var(--fh-text); text-decoration: none; }
.fh-scroller__title { display: block; font-weight: 700; }
.fh-scroller__meta { display: block; font-size: 13px; color: var(--fh-text-muted); }
.fh-scroller .fh-pausebtn { position: absolute; right: 8px; top: -54px; }
.fh-strip { position: relative; display: flex; align-items: center; gap: 12px; }
.fh-strip ul { gap: 16px; padding-right: 16px; }
.fh-strip li { width: 180px; flex: none; }
.is-paused .fh-ticker__track, .is-paused .fh-scroller__track, .is-paused .fh-strip__track, .fh-ticker:hover .fh-ticker__track, .fh-ticker:focus-within .fh-ticker__track, .fh-scroller:hover .fh-scroller__track, .fh-scroller:focus-within .fh-scroller__track, .fh-strip:hover .fh-strip__track, .fh-strip:focus-within .fh-strip__track { animation-play-state: paused; }
.fh-pausebtn[aria-pressed="true"] .fh-icon path { d: path("M8 5l11 7-11 7z"); }

/* People cards */
.fh-person { position: relative; margin: 0; aspect-ratio: 4 / 5; border-radius: var(--fh-radius-md); overflow: hidden; background: var(--fh-ink-2); box-shadow: 0 14px 32px rgb(11 37 69 / 16%); }
.fh-person__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center top; transition: transform var(--fh-slow) ease; }
.fh-person:hover .fh-person__img { transform: scale(1.06); }
.fh-person__initials { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; padding-bottom: 50px; background: linear-gradient(160deg, var(--fh-primary), var(--fh-ink)); font-family: var(--fh-font-heading); font-size: 44px; font-weight: 800; color: var(--fh-accent-light); }
.fh-person::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, transparent 48%, rgb(11 31 58 / 92%) 100%); }
.fh-person::before { content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 3px; background: var(--fh-person-line, var(--fh-accent)); z-index: 2; }
.fh-person figcaption { position: absolute; left: 16px; right: 16px; bottom: 16px; z-index: 1; }
.fh-person__name { display: block; font-family: var(--fh-font-heading); font-size: 17px; font-weight: 800; color: #FFFFFF; line-height: 1.25; }
.fh-person__role { display: block; margin-top: 3px; font-size: 13px; font-weight: 600; color: var(--fh-accent-light); }
.fh-person__sub { display: block; font-size: 12px; color: #D5DEEA; }

/* ---------- CMP-22 Leadership band, CMP-23 CTA band ---------- */
.fh-lead-band { position: relative; overflow: hidden; padding: 64px 0 96px; background: var(--fh-ink); color: var(--fh-on-ink-muted); border-radius: 0 0 50% 50% / 0 0 48px 48px; }
.fh-lead-band .fh-h2 { color: var(--fh-on-ink); }
.fh-lead-band__people { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; text-align: center; position: relative; }
.fh-lead-band__people figure { margin: 0; display: flex; flex-direction: column; align-items: center; gap: 12px; }
.fh-lead-band__img { width: 140px; height: 140px; border-radius: 50%; object-fit: cover; border: 3px solid var(--fh-accent); }
.fh-lead-band__name { display: block; font-weight: 800; color: var(--fh-on-ink); margin-bottom: 6px; }
.fh-cta { position: relative; overflow: hidden; display: flex; flex-wrap: wrap; gap: 28px; align-items: center; justify-content: space-between; margin: 24px 0 80px; padding: 52px 56px; border-radius: 22px; background: linear-gradient(120deg, var(--fh-ink) 0%, var(--fh-primary) 100%); color: var(--fh-on-ink-muted); }
.fh-cta__text { position: relative; flex: 1 1 480px; }
.fh-cta .fh-h2 { color: var(--fh-on-ink); font-size: 32px; }
.fh-cta .fh-actions { position: relative; margin-top: 0; }

/* ---------- CMP-24 Content cards ---------- */
.fh-ccard { position: relative; display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-md); overflow: hidden; box-shadow: var(--fh-shadow-rest); }
.fh-ccard__media { aspect-ratio: 16 / 9; overflow: hidden; background: var(--fh-surface-alt); }
.fh-ccard__media img { width: 100%; height: 100%; object-fit: cover; }
.fh-ccard__body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.fh-ccard .fh-h3 { font-size: 19px; }
.fh-body .fh-ccard__link { color: var(--fh-text); text-decoration: none; }
.fh-ccard__link::after { content: ""; position: absolute; inset: 0; }
.fh-ccard__meta { display: flex; justify-content: space-between; align-items: center; margin: auto 0 0; padding-top: 12px; font-size: 13px; color: var(--fh-text-muted); }
.fh-ccard__meta .fh-icon { color: var(--fh-primary); }

/* ---------- CMP-25 Framed photo ---------- */
.fh-framed { position: relative; }
.fh-framed__outline { position: absolute; inset: 0; transform: translate(14px, 14px); border: 1px solid var(--fh-accent); border-radius: 16px; }
.fh-framed__box { position: relative; aspect-ratio: var(--fh-ratio, 4 / 3); border-radius: 16px; overflow: hidden; box-shadow: var(--fh-shadow-float); background: var(--fh-ink-2); }
.fh-framed__img { width: 100%; height: 100%; object-fit: cover; }
.fh-zoom { animation: fh-kb 14s ease-in-out infinite alternate; }

/* ---------- CMP-30 Accordion ---------- */
.fh-acc { border-top: 1px solid var(--fh-line); }
.fh-acc__item { border-bottom: 1px solid var(--fh-line); }
.fh-acc__head { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 56px; padding: 14px 4px; cursor: pointer; font-weight: 700; color: var(--fh-text); }
.fh-acc__head::-webkit-details-marker { display: none; }
.fh-acc__title { font-size: 17px !important; font-weight: 700 !important; letter-spacing: 0 !important; margin: 0 !important; font-family: var(--fh-font-body) !important; }
.fh-acc__sign { position: relative; flex: none; width: 20px; height: 20px; }
.fh-acc__sign::before, .fh-acc__sign::after { content: ""; position: absolute; left: 3px; right: 3px; top: 9px; height: 2px; background: var(--fh-primary); transition: transform var(--fh-base) ease; }
.fh-acc__sign::after { transform: rotate(90deg); }
.fh-acc__item[open] .fh-acc__sign::after { transform: rotate(0deg); }
.fh-acc__body { padding: 0 4px 18px; }

/* ---------- CMP-31 Tabs ---------- */
.fh-tabs__list { display: flex; gap: 4px; overflow-x: auto; border-bottom: 1px solid var(--fh-line); margin-bottom: 20px; }
.fh-tabs__tab { flex: none; min-height: 48px; padding: 0 18px; border: 0; background: none; color: var(--fh-text-body); font: inherit; font-weight: 600; cursor: pointer; box-shadow: inset 0 -2px 0 transparent; }
.fh-tabs__tab[aria-selected="true"] { color: var(--fh-text); box-shadow: inset 0 -3px 0 var(--fh-primary); }
.fh-tabs--pill .fh-tabs__list { border: 0; }
.fh-tabs--pill .fh-tabs__tab { border-radius: var(--fh-radius-pill); }
.fh-tabs--pill .fh-tabs__tab[aria-selected="true"] { background: var(--fh-ink); color: var(--fh-on-ink); box-shadow: none; }
.fh-tabs.is-ready .fh-tabs__fallback { display: none; }
.fh-tabs:not(.is-ready) .fh-tabs__list { display: none; }

/* ---------- CMP-32 Filter chips ---------- */
.fh-filters { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center; gap: 12px; margin-bottom: 24px; }
.fh-filters__chips { display: flex; gap: 8px; overflow-x: auto; padding: 2px; }
.fh-body .fh-chip--filter { min-height: 44px; padding: 0 16px; border-radius: var(--fh-radius-sm); font-size: 14px; cursor: pointer; white-space: nowrap; }
.fh-body .fh-chip--filter[aria-pressed="true"] { background: var(--fh-ink); border-color: var(--fh-ink); color: var(--fh-on-ink); }
.fh-filters__count { margin: 0 !important; font-size: 14px; color: var(--fh-text-muted); }
[data-filtered-out] { display: none !important; }

/* ---------- CMP-33 Albums and lightbox ---------- */
.fh-album { position: relative; background: #FFFFFF; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-md); overflow: hidden; box-shadow: var(--fh-shadow-rest); }
.fh-album__cover { position: relative; aspect-ratio: 4 / 3; background: var(--fh-surface-alt); }
.fh-album__cover img { width: 100%; height: 100%; object-fit: cover; }
.fh-album__count { position: absolute; right: 12px; bottom: 12px; padding: 4px 10px; border-radius: var(--fh-radius-pill); background: rgb(11 31 58 / 80%); color: #FFFFFF; font-size: 12px; font-weight: 700; }
.fh-album__body { padding: 18px 20px 20px; }
.fh-masonry { columns: 3 260px; column-gap: 14px; margin-top: 28px; }
.fh-masonry li { break-inside: avoid; margin-bottom: 14px; }
.fh-photo { display: block; border-radius: var(--fh-radius-md); overflow: hidden; }
.fh-photo img { width: 100%; display: block; transition: transform var(--fh-slow) ease; }
.fh-photo:hover img { transform: scale(1.04); }
.fh-lightbox { width: 100%; max-width: 100%; height: 100%; max-height: 100%; margin: 0; padding: 0; border: 0; background: rgb(6 14 28 / 96%); color: var(--fh-on-ink); }
.fh-lightbox[open] { display: grid; grid-template-columns: 64px 1fr 64px; align-items: center; }
.fh-lightbox__figure { grid-column: 2; margin: 0; text-align: center; }
.fh-lightbox__img { max-height: 80vh; width: auto; margin: 0 auto; border-radius: 8px; }
.fh-lightbox figcaption { margin-top: 12px; color: var(--fh-on-ink-muted); }
.fh-lightbox__count { opacity: .8; font-variant-numeric: tabular-nums; }
.fh-lightbox__close { position: absolute; top: 16px; right: 16px; }
.fh-lightbox__prev { grid-column: 1; grid-row: 1; justify-self: center; }
.fh-lightbox__next { grid-column: 3; grid-row: 1; justify-self: center; }

/* ---------- CMP-34 Timeline, CMP-35 Org chart, CMP-36 Contents, CMP-37 Pages ---------- */
.fh-body .fh-tl { position: relative; padding-left: 40px; }
.fh-tl::before { content: ""; position: absolute; left: 11px; top: 6px; bottom: 6px; width: 2px; background: var(--fh-line-strong); }
.fh-tl__item { position: relative; margin-bottom: 28px; }
.fh-tl__item::before { content: ""; position: absolute; left: -36px; top: 6px; width: 16px; height: 16px; border-radius: 50%; background: var(--fh-accent); border: 3px solid #FFFFFF; box-shadow: 0 0 0 2px var(--fh-accent); }
.fh-tl__year { font-size: 15px !important; color: var(--fh-primary) !important; margin: 0 0 8px !important; letter-spacing: .04em !important; }
.fh-tl__title { font-family: var(--fh-font-heading); font-size: 19px; font-weight: 800; color: var(--fh-text); margin: 0 0 6px; }
.fh-tl__img { margin-top: 12px; border-radius: var(--fh-radius-sm); }
.fh-org { display: grid; grid-template-columns: 360px 1fr; gap: 32px; }
.fh-org__tree ul { padding-left: 22px; border-left: 1px dashed var(--fh-line-strong); margin-left: 14px; }
.fh-org__tree li { margin: 6px 0; }
.fh-org__tree [role="treeitem"]:focus { outline: none; }
.fh-org__tree [role="treeitem"]:focus > .fh-org__node { outline: 2px solid var(--fh-primary); outline-offset: 2px; }
.fh-body .fh-org__node { display: inline-flex; align-items: center; min-height: 44px; padding: 0 14px; border-radius: var(--fh-radius-sm); border: 1px solid var(--fh-line); background: #FFFFFF; color: var(--fh-text); font-weight: 700; text-decoration: none; }
.fh-org__tree [aria-selected="true"] > .fh-org__node { background: var(--fh-ink); border-color: var(--fh-ink); color: var(--fh-on-ink); }
.fh-org.is-ready .fh-org__people:not(.is-current) { display: none; }
.fh-org:not(.is-ready) .fh-org__people + .fh-org__people { margin-top: 24px; }
.fh-toc { position: sticky; top: 100px; }
.fh-toc__box { border: 1px solid var(--fh-line); border-radius: var(--fh-radius-md); padding: 16px 18px; background: #FFFFFF; }
.fh-toc__title { font-weight: 800; color: var(--fh-text); cursor: pointer; }
.fh-toc ol { margin-top: 10px; }
.fh-body .fh-toc a { display: block; padding: 6px 10px; border-left: 2px solid var(--fh-line); color: var(--fh-text-body); text-decoration: none; font-size: 14px; }
.fh-body .fh-toc a[aria-current] { border-color: var(--fh-primary); color: var(--fh-primary); font-weight: 700; }
.fh-pages ul { display: flex; justify-content: center; gap: 6px; margin-top: 32px; }
.fh-pages a, .fh-pages span { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border-radius: var(--fh-radius-sm); border: 1px solid var(--fh-line); text-decoration: none; color: var(--fh-text); }
.fh-pages [aria-current] { background: var(--fh-ink); border-color: var(--fh-ink); color: var(--fh-on-ink); font-weight: 700; }

/* ---------- CMP-40 to 44 Forms, progress, notices ---------- */
.fh-field { margin-bottom: 18px; }
.fh-field__label { display: block; margin-bottom: 6px; font-weight: 700; color: var(--fh-text); }
.fh-field__opt { font-weight: 400; color: var(--fh-text-muted); }
.fh-field__help { margin: -2px 0 8px !important; font-size: 14px; color: var(--fh-text-muted); }
.fh-input { width: 100%; min-height: 48px; padding: 10px 14px; border-radius: var(--fh-radius-sm); border: 1px solid var(--fh-line-strong); background: #FFFFFF; color: var(--fh-text); font: inherit; font-size: 16px; }
textarea.fh-input { min-height: 120px; resize: vertical; }
.fh-input:focus { border-color: var(--fh-primary); }
.has-error .fh-input { border-color: var(--fh-danger); }
.fh-field__error { display: flex; gap: 6px; align-items: center; margin: 6px 0 0 !important; color: var(--fh-danger); font-size: 14px; font-weight: 600; }
.fh-field--check { display: grid; grid-template-columns: auto 1fr; gap: 4px 12px; align-items: start; }
.fh-field--check .fh-field__label { font-weight: 400; margin: 0; }
.fh-field--check .fh-field__help, .fh-field--check .fh-field__error { grid-column: 2; }
.fh-check { width: 22px; height: 22px; margin: 2px 0 0; accent-color: var(--fh-primary); }
.fh-input-group { display: flex; }
.fh-input-group__prefix { display: inline-flex; align-items: center; padding: 0 12px; border: 1px solid var(--fh-line-strong); border-right: 0; border-radius: var(--fh-radius-sm) 0 0 var(--fh-radius-sm); background: var(--fh-surface-alt); }
.fh-input-group .fh-input { border-radius: 0 var(--fh-radius-sm) var(--fh-radius-sm) 0; }
.fh-errors { margin-bottom: 24px; }
.fh-errors__title { font-size: 17px !important; margin: 0 0 6px !important; color: var(--fh-danger) !important; letter-spacing: 0 !important; }
.fh-stepl { display: flex; gap: 8px; margin-bottom: 28px; counter-reset: s; }
.fh-stepl__item { flex: 1; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: var(--fh-radius-sm); background: var(--fh-surface-alt); color: var(--fh-text-muted); font-weight: 600; font-size: 14px; }
.fh-stepl__item.is-current { background: var(--fh-primary-tint); color: var(--fh-primary-dark); }
.fh-stepl__item.is-done { color: var(--fh-success); }
.fh-stepl__n { display: inline-flex; width: 28px; height: 28px; border-radius: 50%; align-items: center; justify-content: center; background: #FFFFFF; border: 1px solid currentColor; font-weight: 800; }
.fh-seg { display: inline-flex; gap: 4px; padding: 4px; margin: 0 0 18px; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-pill); }
.fh-seg__opt input { position: absolute; opacity: 0; }
.fh-seg__opt span { display: inline-flex; min-height: 40px; align-items: center; padding: 0 18px; border-radius: var(--fh-radius-pill); cursor: pointer; font-weight: 600; }
.fh-seg__opt input:checked + span { background: var(--fh-ink); color: var(--fh-on-ink); }
.fh-seg__opt input:focus-visible + span { outline: 2px solid var(--fh-primary); outline-offset: 2px; }
.fh-signin { display: flex; flex-direction: column; align-items: flex-start; gap: 4px; max-width: 420px; }
.fh-signin .fh-field { width: 100%; }
.fh-progress__label { display: flex; justify-content: space-between; font-size: 14px; font-weight: 600; color: var(--fh-text); margin-bottom: 6px; }
.fh-progress__track { height: 10px; border-radius: 10px; background: var(--fh-surface-alt); overflow: hidden; }
.fh-progress__track span { display: block; height: 100%; border-radius: 10px; background: var(--fh-accent-gradient); transition: width var(--fh-slow) var(--fh-ease); }
.fh-ring { position: relative; display: inline-grid; place-items: center; width: 140px; text-align: center; }
.fh-ring svg { width: 140px; height: 140px; transform: rotate(-90deg); }
.fh-ring__bg { fill: none; stroke: var(--fh-surface-alt); stroke-width: 10; }
.fh-ring__fg { fill: none; stroke: var(--fh-primary); stroke-width: 10; stroke-linecap: round; }
.fh-ring__value { position: absolute; top: 48px; font-family: var(--fh-font-heading); font-size: 28px; font-weight: 800; color: var(--fh-text); }
.fh-ring__label { margin-top: 6px; font-size: 14px; }
.fh-checklist li { display: flex; gap: 10px; align-items: center; padding: 8px 0; border-bottom: 1px solid var(--fh-line); }
.fh-checklist .is-done .fh-icon { color: var(--fh-success); }
.fh-checklist .is-open { color: var(--fh-text-muted); }
.fh-notice { display: flex; gap: 12px; align-items: flex-start; padding: 14px 16px; border-radius: var(--fh-radius-sm); border: 1px solid; font-size: 15px; }
.fh-notice p { margin: 0; }
.fh-notice--success { color: var(--fh-success); background: color-mix(in srgb, var(--fh-success) 8%, #fff); }
.fh-notice--warning { color: var(--fh-warning); background: color-mix(in srgb, var(--fh-warning) 8%, #fff); }
.fh-notice--danger { color: var(--fh-danger); background: color-mix(in srgb, var(--fh-danger) 7%, #fff); }
.fh-notice--info { color: var(--fh-info); background: color-mix(in srgb, var(--fh-info) 7%, #fff); }
.fh-notice ul a { color: inherit; font-weight: 600; }
.fh-toasts { position: fixed; left: 50%; bottom: 24px; transform: translateX(-50%); z-index: 60; display: flex; flex-direction: column; gap: 10px; }
.fh-toast { padding: 14px 18px; border-radius: var(--fh-radius-sm); background: var(--fh-ink); color: var(--fh-on-ink); box-shadow: var(--fh-shadow-raised); animation: fh-fade var(--fh-base) ease; }


/* ---------- Page templates: reading column, article, search, splits ---------- */
.fh-section--prose { padding: 48px 0 8px; }
.fh-section--prose + .fh-section--prose { padding-top: 0; }
.fh-narrow, .fh-prose > * { max-width: 760px; }
.fh-narrow { margin: 0; }
.fh-prose { font-size: 17px; line-height: 1.75; }
.fh-prose > * + * { margin-top: 16px; }
.fh-prose h2 { font-size: 30px; line-height: 1.2; margin-top: 40px; scroll-margin-top: 110px; }
.fh-prose h3 { font-size: 22px; margin-top: 28px; }
.fh-prose :where(ul, ol) { padding-left: 1.4em; }
.fh-prose :where(ul) li { list-style: disc; } .fh-prose :where(ol) li { list-style: decimal; }
.fh-prose li + li { margin-top: 6px; }
.fh-prose blockquote { margin: 24px 0; padding: 4px 0 4px 20px; border-left: 4px solid var(--fh-accent); font-family: var(--fh-font-heading); font-size: 20px; color: var(--fh-text); }
.fh-prose img { border-radius: var(--fh-radius-md); }
.fh-prose figcaption { font-size: 14px; color: var(--fh-text-muted); margin-top: 6px; }
.fh-prose table { width: 100%; border-collapse: collapse; font-size: 15px; }
.fh-prose th, .fh-prose td { padding: 10px 12px; border-bottom: 1px solid var(--fh-line); text-align: left; }
.fh-prose a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
.fh-gap { margin-top: 32px !important; }
.fh-article { display: grid; grid-template-columns: minmax(0, 1fr); gap: 48px; }
.fh-article--toc { grid-template-columns: minmax(0, 760px) 260px; justify-content: space-between; }
.fh-article .fh-toc { align-self: start; }
.fh-byline { font-size: 14px; color: var(--fh-text-muted); margin-bottom: 8px !important; }
.fh-split { display: grid; grid-template-columns: 1fr 1fr; gap: 56px; align-items: center; }
.fh-split--flip > :first-child { order: 2; }
.fh-chapter-logo { display: flex; justify-content: center; }
.fh-chapter-logo img { width: 200px; height: 200px; object-fit: contain; padding: 24px; border-radius: 28px; background: #FFFFFF; box-shadow: var(--fh-shadow-float); }
.fh-searchpage { display: flex; gap: 12px; margin-bottom: 8px; }
.fh-searchpage .fh-input { flex: 1; min-height: 52px; font-size: 18px; }
.fh-results { counter-reset: r; }
.fh-results li { padding: 18px 0; border-bottom: 1px solid var(--fh-line); }
.fh-body .fh-results__title { font-family: var(--fh-font-heading); font-size: 19px; font-weight: 800; text-decoration: none; }
.fh-results__kind { margin-left: 10px; padding: 2px 8px; border-radius: var(--fh-radius-pill); background: var(--fh-surface-alt); font-size: 12px; font-weight: 700; color: var(--fh-text-body); }
.fh-results p { margin: 6px 0 0; font-size: 15px; }
.fh-form .fh-btn { margin-top: 4px; }
.fh-form__status { margin: 12px 0 0 !important; font-weight: 600; color: var(--fh-text); }
.fh-form__status:empty { display: none; }


/* ==========================================================================
   Design pass 2: parts matched to the approved page designs
   ========================================================================== */
.fh-progress { position: absolute; left: 0; right: 0; top: 0; height: 3px; background: var(--fh-accent-gradient); transform-origin: left; transform: scaleX(0); z-index: 2; pointer-events: none; }
.fh-section--tight { padding: 24px 0 56px; }
.fh-section__head--center { justify-content: center; text-align: center; }
.fh-section__head--center .fh-lead { margin: 0 auto; }
.fh-note { font-size: 14px; color: var(--fh-text-muted); margin-top: 12px !important; }
.fh-icn--small { width: 36px; height: 36px; border-radius: 10px; }
.fh-icn--solid { background: var(--fh-primary); color: #FFFFFF; }
.fh-icn--gold { background: var(--fh-accent); color: var(--fh-ink); }

/* Banners: background photo, logo plate, fact card */
.fh-banner__bg { position: absolute; inset: 0; background-size: cover; background-position: center; opacity: .1; mix-blend-mode: luminosity; }
.fh-banner__logo { display: flex; align-items: center; justify-content: center; height: 96px; margin-bottom: 14px; padding: 16px; border-radius: 14px; background: #FFFFFF; box-shadow: var(--fh-shadow-float); }
.fh-banner__logo img { max-height: 64px; width: auto; object-fit: contain; }
.fh-facts { padding: 26px 28px; border-radius: 18px; background: linear-gradient(160deg, rgb(255 255 255 / 12%), rgb(255 255 255 / 4%)); border: 1px solid rgb(255 255 255 / 16%); backdrop-filter: blur(8px); box-shadow: var(--fh-shadow-float); }
.fh-facts dl { margin: 0; }
.fh-facts__row { display: flex; justify-content: space-between; gap: 16px; padding: 13px 0; border-top: 1px solid rgb(255 255 255 / 14%); }
.fh-facts dt { color: var(--fh-on-ink-muted); font-size: 14px; }
.fh-facts dd { margin: 0; font-family: var(--fh-font-heading); font-size: 17px; font-weight: 800; color: #FFFFFF; text-align: right; }

/* Home banner slider: glow frame, chips, avatars, controls below */
.fh-glow { padding: 1.5px; border-radius: 18px; background: conic-gradient(from var(--fh-ga, 0deg), rgb(226 194 90 / 90%), rgb(255 255 255 / 15%) 25%, rgb(58 110 190 / 60%) 50%, rgb(255 255 255 / 15%) 75%, rgb(226 194 90 / 90%)); animation: fh-gspin 8s linear infinite; box-shadow: var(--fh-shadow-float); }
.fh-glow--soft { border-radius: 23px; }
@property --fh-ga { syntax: '<angle>'; inherits: false; initial-value: 0deg; }
@keyframes fh-gspin { to { --fh-ga: 360deg; } }
.fh-hl { border-radius: 16px; background: var(--fh-ink-2); padding: 26px 26px 18px; }
.fh-hl__slide { padding: 0; background: none; border: 0; box-shadow: none; backdrop-filter: none; min-height: 296px; display: flex; flex-direction: column; }
.fh-hl__label { justify-content: space-between; }
.fh-hl__chip { padding: 5px 10px; border-radius: 999px; background: rgb(226 194 90 / 16%); color: var(--fh-accent-light); font-size: 12px; letter-spacing: 0; text-transform: none; }
.fh-hl__avs { display: flex; align-items: center; margin: 14px 0 0 !important; }
.fh-hl__av { width: 44px; height: 44px; border-radius: 50%; margin-left: -12px; border: 2px solid var(--fh-ink); background: linear-gradient(160deg, var(--fh-primary), var(--fh-ink-3)); color: var(--fh-accent-light); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; font-size: 14px; }
.fh-hl__av:first-child { margin-left: 0; }
.fh-hl__av { overflow: hidden; flex: none; }
.fh-hl__av img { width: 100%; height: 100%; object-fit: cover; object-position: center top; }
.fh-hl__avs { display: flex; align-items: center; padding-left: 2px; }
.fh-hl__avbadge { margin-left: 8px; height: 44px; padding: 0 12px; border-radius: 999px; background: var(--fh-accent); color: var(--fh-ink); font-weight: 800; font-size: 14px; display: inline-flex; align-items: center; }
.fh-hl__chips { display: flex; flex-wrap: wrap; gap: 8px; margin: 4px 0 0 !important; }
.fh-hl__chips li { font-size: 13px; padding: 6px 12px; border-radius: 999px; border: 1px solid rgb(255 255 255 / 18%); color: #FFFFFF; }
.fh-hl__btn { margin-top: auto; padding-top: 18px; }
.fh-hl__btn .fh-btn { width: 100%; }
.fh-car__controls--below { margin: 14px 0 0; }
.fh-car__controls--below .fh-car__dots { margin-right: auto; }
.fh-hl .fh-car__controls--below .fh-iconbtn { width: 36px; height: 36px; border-radius: 50%; }
.fh-hl .fh-car__controls--below .fh-iconbtn:last-child { background: var(--fh-accent); border-color: var(--fh-accent); color: var(--fh-ink); }

/* Statement card (Mission, Vision, Purpose) */
.fh-stm__top { align-items: center; }
.fh-stm__kicker { display: inline-flex; align-items: center; gap: 8px; margin: 0 auto 0 0; font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--fh-on-ink-muted); }
.fh-stm__tabs { padding: 4px; border-radius: 999px; background: rgb(255 255 255 / 8%); border: 1px solid rgb(255 255 255 / 14%); gap: 6px; flex-wrap: nowrap; }
.fh-stm__tab { min-height: 34px; padding: 0 16px; border: 0; font-size: 13px; font-weight: 700; }
.fh-stm__kind { display: flex; align-items: center; gap: 14px; margin: 6px 0 18px !important; font-size: 13px; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; color: var(--fh-accent-light); position: relative; }
.fh-stm__chip { display: inline-flex; width: 56px; height: 56px; border-radius: 16px; background: var(--fh-accent); color: var(--fh-ink); align-items: center; justify-content: center; }
.fh-stm__text { font-family: var(--fh-font-heading); font-size: 24px !important; font-weight: 700; line-height: 1.42; color: #FFFFFF; max-width: 620px; }
.fh-stm__word { right: -6px; top: auto; bottom: -30px; font-size: 120px; -webkit-text-stroke: 1.5px rgb(226 194 90 / 28%); }
.fh-aboutintro { position: relative; display: grid; grid-template-columns: 1fr 1.05fr; gap: 56px; align-items: center; }
.fh-aboutintro .fh-lead + .fh-lead { margin-top: 12px; }
.fh-aboutintro .fh-stm { border-radius: 22px; min-height: 340px; }
.fh-lcards { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin-top: 40px; position: relative; }
.fh-section .fh-section__head + .fh-lcards { margin-top: 0; }
@media (min-width: 760px) { .fh-lcards:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, 1fr); } }
.fh-body .fh-lcard { display: flex; gap: 14px; align-items: center; padding: 18px; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--fh-line); box-shadow: 0 8px 24px rgb(11 31 58 / 6%); color: var(--fh-text); text-decoration: none; }
.fh-lcard .fh-icn { width: 46px; height: 46px; border-radius: 14px; }
.fh-lcard__body { flex: 1; min-width: 0; }
.fh-lcard__title { display: block; font-weight: 800; font-size: 15px; }
.fh-lcard__text { display: block; font-size: 13px; color: var(--fh-text-muted); margin-top: 2px; }
.fh-lcard > .fh-icon { color: var(--fh-primary); }

/* Chapter panels as in the design: hover opens, logo plate, count, lead */
.fh-section--nets { background: var(--fh-surface-alt); }
.fh-cps { height: 360px; gap: 10px; }
.fh-cp { background: linear-gradient(165deg, var(--fh-cp) 0%, color-mix(in srgb, var(--fh-cp) 55%, #000) 100%); border-radius: 18px; }
.fh-cp .fh-geo { opacity: .7; }
.fh-cp__bar { position: absolute; left: 0; top: 0; height: 4px; width: 0; background: var(--fh-accent); transition: width var(--fh-slow) ease; z-index: 1; }
.fh-cp.is-open .fh-cp__bar { width: 100%; }
.fh-body .fh-cp__h { position: absolute; inset: 0; width: 100%; color: #FFFFFF; z-index: 1; }
.fh-cp__head { width: 100%; justify-content: flex-end; padding: 26px 12px; }
.fh-cp__logo { width: 64px; height: 64px; border-radius: 16px; padding: 8px; order: -1; margin-top: auto; }
.fh-cp__logo img { max-height: 44px; max-width: 100%; object-fit: contain; }
.fh-cp__initial { color: var(--fh-cp); display: inline-flex; }
.fh-cp__vname { font-size: 22px; }
.fh-cp__body { inset: 0; left: 0; right: 0; bottom: 0; padding: 24px 26px; display: flex; flex-direction: column; z-index: 2; transform: translateY(10px); transition: opacity var(--fh-base) ease, transform var(--fh-base) ease; }
.fh-cp.is-open .fh-cp__body { transform: none; }
.fh-cp.is-open .fh-cp__h { opacity: 0; pointer-events: none; }
.fh-cp__h { transition: opacity var(--fh-fast) ease; }
.fh-cp__plate { display: flex; align-items: center; justify-content: center; width: 190px; height: 92px; padding: 12px; border-radius: 14px; background: #FFFFFF; box-shadow: 0 14px 30px rgb(0 0 0 / 20%); color: var(--fh-cp); }
.fh-cp__plate img { max-height: 64px; max-width: 100%; object-fit: contain; }
.fh-cp__foot { margin-top: auto; }
.fh-cp__name { font-size: 30px; margin: 0 !important; }
.fh-cp__desc { color: rgb(255 255 255 / 85%) !important; font-size: 15px; max-width: 380px; margin: 6px 0 0 !important; }
.fh-cp__row { display: flex; gap: 24px; align-items: center; margin-top: 18px; }
.fh-cp__figure { margin: 0 !important; }
.fh-cp__num { display: block; font-family: var(--fh-font-heading); font-size: 28px; font-weight: 800; line-height: 1; color: var(--fh-accent-light); }
.fh-cp__numlabel { font-size: 12px; color: rgb(255 255 255 / 80%); }
.fh-cp__lead { display: flex; gap: 10px; align-items: center; margin: 18px 0 0 !important; color: #FFFFFF; font-size: 13px; }
.fh-cp__leadpic { width: 42px; height: 42px; flex: none; border-radius: 50%; object-fit: cover; background: rgb(255 255 255 / 20%); box-shadow: 0 0 0 2px rgb(255 255 255 / 70%); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; }
.fh-cp__leadname { display: block; font-weight: 800; }
.fh-cp__leadrole { display: block; font-size: 12px; color: rgb(255 255 255 / 80%); }
@media (hover: hover) and (min-width: 760px) {
	.fh-cps:hover .fh-cp { flex: 1 1 0; }
	.fh-cps:hover .fh-cp:hover { flex: 3.4 1 0; }
	.fh-cps:hover .fh-cp .fh-cp__body { opacity: 0; visibility: hidden; }
	.fh-cps:hover .fh-cp .fh-cp__h { opacity: 1; pointer-events: auto; }
	.fh-cps:hover .fh-cp .fh-cp__bar { width: 0; }
	.fh-cps:hover .fh-cp:hover .fh-cp__body { opacity: 1; visibility: visible; transform: none; transition-delay: .2s; }
	.fh-cps:hover .fh-cp:hover .fh-cp__h { opacity: 0; }
	.fh-cps:hover .fh-cp:hover .fh-cp__bar { width: 100%; }
}
.fh-cp.is-open { flex: 3.4 1 0; }

/* Member voices */
.fh-quotes-card { border-radius: 24px; background: linear-gradient(135deg, #F7F9FC 0%, #FFFFFF 60%, #FBF6E8 100%); border: 1px solid var(--fh-line); box-shadow: 0 24px 56px rgb(11 31 58 / 10%); padding: 32px 40px 22px; }
.fh-quote { grid-template-columns: 4fr 8fr; gap: 56px; min-height: 180px; }
.fh-framed--portrait { width: 128px; justify-self: end; }
.fh-framed--portrait .fh-framed__box { aspect-ratio: 4 / 5; border-radius: 6px; }
.fh-framed--portrait .fh-framed__outline { border-radius: 6px; transform: translate(12px, 12px); border-color: var(--fh-accent); }
.fh-framed__initials { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: linear-gradient(160deg, var(--fh-primary), var(--fh-ink)); color: var(--fh-accent-light); font-family: var(--fh-font-heading); font-size: 36px; font-weight: 800; }
.fh-quote blockquote { font-size: 19px; font-weight: 600; letter-spacing: -.01em; line-height: 1.45; }
.fh-quote__tag { font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; padding: 5px 12px; border-radius: 999px; border: 1px solid var(--fh-accent); color: #8A6A14; background: #FBF6E8; }
.fh-quote__role { flex-basis: 100%; }
.fh-quotes .fh-car__controls--below { justify-content: center; margin-top: 18px; }
.fh-quotes .fh-car__controls--below .fh-car__dots { margin: 0; flex-wrap: wrap; justify-content: center; gap: 12px; }
.fh-dot--avatar { width: 44px; height: 44px; padding: 2px; }
.fh-dot--avatar::before { display: none; }
.fh-dot__i, .fh-dot__img { display: inline-flex; width: 40px; height: 40px; border-radius: 50%; align-items: center; justify-content: center; object-fit: cover; background: linear-gradient(160deg, var(--fh-primary), var(--fh-ink)); color: var(--fh-accent-light); font-size: 13px; font-weight: 800; filter: grayscale(.6) opacity(.75); transition: filter var(--fh-base), box-shadow var(--fh-base), transform var(--fh-base); }
.fh-dot--avatar[aria-selected="true"] .fh-dot__i, .fh-dot--avatar[aria-selected="true"] .fh-dot__img { filter: none; box-shadow: 0 0 0 3px #FFFFFF, 0 0 0 5px var(--fh-accent); }
.fh-dot--avatar:hover .fh-dot__i { transform: translateY(-3px); }

/* Values strip in gold */
.fh-ticker--gold { background: var(--fh-accent-gradient); color: var(--fh-ink); }
.fh-ticker--gold .fh-ticker__star { color: var(--fh-ink); }
.fh-ticker--gold li { font-weight: 800; }

/* Year tabs and numbered tabs */
.fh-yt__tab, .fh-nt__tab, .fh-struct__tab { font-family: inherit; cursor: pointer; }
.fh-yt__tab { border: 0; background: none; padding: 0 8px; }
.fh-tribute__ring .fh-icon { color: var(--fh-accent); opacity: .7; }
.fh-yt__list { display: grid; grid-template-columns: repeat(var(--fh-n, 6), minmax(0, 1fr)); border-bottom: 2px solid var(--fh-line); gap: 0; overflow: visible; margin: 0; }
.fh-yt__tab { min-height: 64px; font-family: var(--fh-font-heading); font-size: 24px; font-weight: 700; color: #66727F; box-shadow: inset 0 -3px 0 transparent; margin-bottom: -2px; }
.fh-yt__tab[aria-selected="true"] { color: var(--fh-text); box-shadow: inset 0 -3px 0 var(--fh-primary); }
.fh-yt__panel { display: flex; flex-wrap: wrap; gap: 40px; padding: 40px 0 0; }
.fh-yt__year { flex: none; font-family: var(--fh-font-heading); font-size: 88px; font-weight: 700; line-height: .9; color: #A07D16; }
.fh-yt__panel > div { flex: 1 1 420px; }
.fh-yt__panel .fh-h3 { font-size: 28px; margin-bottom: 12px; }
.fh-yt__panel .fh-lead { max-width: 680px; }
.fh-yt:not(.is-ready) .fh-yt__list { display: none; }
.fh-yt:not(.is-ready) .fh-yt__panel { border-bottom: 1px solid var(--fh-line); padding-bottom: 24px; }
.fh-nt { display: flex; flex-wrap: wrap; gap: 24px; align-items: stretch; }
.fh-nt__list { flex: 1 1 340px; display: flex; flex-direction: column; gap: 6px; border: 0; margin: 0; overflow: visible; }
.fh-nt__tab { display: flex; gap: 16px; align-items: center; min-height: 54px; padding: 0 18px; border-radius: 8px; border: 1px solid var(--fh-line); background: #FFFFFF; color: var(--fh-text); font-weight: 600; text-align: left; box-shadow: none; }
.fh-nt__tab[aria-selected="true"] { background: var(--fh-ink); border-color: var(--fh-ink); color: #FFFFFF; box-shadow: none; }
.fh-nt__n { font-family: var(--fh-font-heading); font-weight: 700; color: #8A6A14; }
.fh-nt__tab[aria-selected="true"] .fh-nt__n { color: var(--fh-accent-light); }
.fh-nt__panels { flex: 2 1 520px; }
.fh-nt__panel { height: 100%; background: #FFFFFF; border: 1px solid var(--fh-line); border-top: 4px solid var(--fh-primary); border-radius: 12px; padding: 44px; }
.fh-nt__title { font-family: var(--fh-font-heading); font-size: 32px; font-weight: 700; color: var(--fh-text); margin: 0 0 8px; }
.fh-nt__tagline { font-weight: 600; color: var(--fh-text-muted); margin-bottom: 22px !important; }
.fh-nt__text { font-size: 19px; line-height: 1.7; }
.fh-nt:not(.is-ready) .fh-nt__list { display: none; }
.fh-nt:not(.is-ready) .fh-nt__panel + .fh-nt__panel { margin-top: 12px; }

/* Pills, rings, alumni, callouts */
.fh-pills { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px; }
.fh-body .fh-pillcard { display: flex; gap: 14px; align-items: center; padding: 16px 18px; border: 1px solid var(--fh-line); border-radius: 10px; background: #FFFFFF; color: var(--fh-text); font-weight: 600; text-decoration: none; transition: transform var(--fh-fast) ease, background var(--fh-fast) ease; }
.fh-pillcard:hover { background: var(--fh-surface-alt); transform: translateX(4px); }
.fh-section--ink .fh-h2, .fh-section--ink .fh-section__head .fh-h2 { color: #FFFFFF; }
.fh-section--ink .fh-eyebrow { color: var(--fh-accent-light); }
.fh-section--ink .fh-lead { color: var(--fh-on-ink-muted); }
.fh-section--ink { background: radial-gradient(800px 400px at 85% 0%, rgb(42 99 168 / 35%), transparent 60%), linear-gradient(180deg, var(--fh-ink), var(--fh-ink-2)); }
.fh-rings { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 20px; }
.fh-ring-p { margin: 0; text-align: center; padding: 30px 20px 24px; border-radius: 18px; background: rgb(255 255 255 / 6%); border: 1px solid rgb(255 255 255 / 12%); }
.fh-ring-p__img { display: flex; width: 128px; height: 128px; margin: 0 auto; border-radius: 50%; object-fit: cover; object-position: center 18%; box-shadow: 0 0 0 4px var(--fh-ink), 0 0 0 6px var(--fh-accent); }
.fh-ring-p__img--initials { align-items: center; justify-content: center; background: #2A3E5C; color: var(--fh-accent-light); font-family: var(--fh-font-heading); font-size: 38px; font-weight: 800; }
.fh-ring-p figcaption { margin-top: 18px; }
.fh-ring-p__name { display: block; font-family: var(--fh-font-heading); font-size: 18px; font-weight: 800; color: #FFFFFF; }
.fh-ring-p__role { display: inline-block; margin-top: 8px; padding: 4px 12px; border-radius: 999px; background: rgb(226 194 90 / 16%); color: var(--fh-accent-light); font-size: 12px; font-weight: 700; }
.fh-ring-p__sub { display: block; font-size: 13px; color: var(--fh-on-ink-muted); margin-top: 8px; }
.fh-section--ink .fh-strip li { width: 180px; }
.fh-section--ink .fh-person { background: #1A2F4F; }
.fh-alums { display: grid; grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 14px; }
.fh-alum { display: flex; gap: 14px; align-items: flex-start; margin: 0; padding: 18px; border: 1px solid var(--fh-line); border-radius: 12px; background: #FFFFFF; }
.fh-alum__i { flex: none; width: 48px; height: 48px; border-radius: 50%; background: var(--fh-ink); color: var(--fh-accent-light); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; }
.fh-alum__name { display: block; font-weight: 800; color: var(--fh-text); }
.fh-alum__roles { display: block; font-size: 14px; color: var(--fh-text-body); margin-top: 2px; }
.fh-alum__years { display: block; font-size: 13px; color: var(--fh-text-muted); margin-top: 4px; }
.fh-callout { display: flex; gap: 14px; align-items: center; max-width: 620px; margin: 0 0 24px !important; padding: 14px 18px; border-radius: 12px; background: #E8F5EC; border: 1px solid #BFE3CB; color: var(--fh-text); }
.fh-callout .fh-icn { background: #1F8A4C; color: #FFFFFF; }
.fh-callout__title { display: block; font-weight: 800; }
.fh-callout__text { display: block; font-size: 14px; color: var(--fh-text-body); }

/* Structure chart */
.fh-struct__chart { display: flex; flex-direction: column; align-items: center; }
.fh-body .fh-struct__box { min-width: 300px; padding: 20px 28px; border-radius: 10px; background: var(--fh-ink); color: #FFFFFF; text-align: center; text-decoration: none; }
.fh-body .fh-struct__box--1 { background: var(--fh-primary); }
.fh-struct__label { display: block; font-family: var(--fh-font-heading); font-size: 22px; font-weight: 700; }
.fh-struct__sub { font-size: 13px; color: var(--fh-on-ink-muted); }
.fh-struct__line { width: 2px; height: 32px; background: #C3CBC8; }
.fh-struct__row { width: 100%; display: grid; grid-template-columns: repeat(var(--fh-n, 7), minmax(0, 1fr)); gap: 10px; padding-top: 24px; border-top: 2px solid #C3CBC8; border-bottom: 0; margin: 0; overflow: visible; }
.fh-struct__tab { display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 64px; padding: 12px 8px; border-radius: 10px; border: 1px solid var(--fh-line); background: #FFFFFF; color: var(--fh-text); box-shadow: none; }
.fh-struct__tab[aria-selected="true"] { background: var(--fh-primary-tint); border-color: var(--fh-primary); box-shadow: none; }
.fh-struct__name { font-weight: 700; font-size: 14px; }
.fh-struct__kind { font-size: 12px; color: var(--fh-text-muted); font-weight: 400; }
.fh-struct__panels { margin-top: 48px; padding-top: 40px; border-top: 1px solid var(--fh-line); }
.fh-struct__cols { display: flex; flex-wrap: wrap; gap: 40px; margin-top: 24px; }
.fh-struct__cols > :first-child { flex: 1 1 260px; }
.fh-struct__cols > :last-child { flex: 3 1 600px; }
.fh-struct__cols .fh-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
.fh-struct__cols .fh-person { aspect-ratio: 1 / 1; }
.fh-struct__cols .fh-person__initials { font-size: 30px; padding-bottom: 44px; }
.fh-struct__cols .fh-person__name { font-size: 14px; }
.fh-ticks--lines li { padding: 12px 0; border-top: 1px solid var(--fh-line); margin: 0; }
.fh-struct--split { display: block; }
.fh-struct:not(.is-ready) .fh-struct__panel + .fh-struct__panel { margin-top: 32px; padding-top: 32px; border-top: 1px solid var(--fh-line); }

/* Bars and colour lists */
.fh-bars li { display: grid; grid-template-columns: 200px 1fr 70px; gap: 16px; align-items: center; padding: 10px 0; }
.fh-bars__label { font-weight: 600; color: var(--fh-text); }
.fh-bars__track { height: 10px; border-radius: 10px; background: var(--fh-surface-alt); overflow: hidden; }
.fh-bars__track span { display: block; height: 100%; border-radius: 10px; background: var(--fh-primary); }
.fh-bars__value { text-align: right; font-weight: 800; color: var(--fh-text); font-variant-numeric: tabular-nums; }
.fh-dotlist li { display: flex; gap: 14px; align-items: center; padding: 16px 0; border-bottom: 1px solid var(--fh-line); }
.fh-dotlist__dot { width: 12px; height: 12px; border-radius: 50%; flex: none; }
.fh-dotlist__label { flex: 1; font-weight: 700; color: var(--fh-text); }
.fh-dotlist__value { font-weight: 800; color: var(--fh-text); }
.fh-body .fh-figures--many { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); }
.fh-figures--many .fh-fig { padding: 24px 22px; }
.fh-figures--many .fh-fig__icon { display: none; }
.fh-datapair { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 2fr); gap: 24px; align-items: start; }
.fh-datacard { background: #FFFFFF; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-lg); padding: 28px 30px; box-shadow: var(--fh-shadow-rest); }
.fh-datacard .fh-h3 { margin-bottom: 14px; }
.fh-datacard .fh-bars li { grid-template-columns: 150px 1fr 60px; }
.fh-datacard .fh-dotlist li:last-child { border-bottom: 0; }

/* Network cards, network strip, split about, quote, questions */
.fh-ncards { display: grid; grid-template-columns: repeat(auto-fill, minmax(340px, 1fr)); gap: 24px; }
.fh-body .fh-ncard { display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 32px; border-radius: 12px; border: 1px solid var(--fh-line); border-top: 4px solid var(--fh-nc); background: #FFFFFF; color: var(--fh-text); text-decoration: none; }
.fh-ncard__badge { align-self: flex-start; padding: 4px 10px; border-radius: 4px; background: var(--fh-nt); color: color-mix(in srgb, var(--fh-nc) 55%, #000); font-size: 12px; font-weight: 600; }
.fh-ncard__name { font-family: var(--fh-font-heading); font-size: 30px; font-weight: 700; }
.fh-ncard__text { font-size: 16px; line-height: 1.6; color: var(--fh-text-body); }
.fh-ncard__cta { display: inline-flex; gap: 8px; align-items: center; margin-top: auto; padding-top: 8px; font-weight: 600; color: var(--fh-primary); }
.fh-netnav { background: #FFFFFF; border-bottom: 1px solid var(--fh-line); }
.fh-netnav ul { display: flex; flex-wrap: wrap; gap: 4px; font-size: 14px; }
.fh-body .fh-netnav a { min-height: 48px; padding: 0 14px; display: flex; align-items: center; gap: 8px; color: var(--fh-text-body); font-weight: 500; text-decoration: none; }
.fh-body .fh-netnav li:first-child a { color: var(--fh-text-muted); font-weight: 600; }
.fh-body .fh-netnav a[aria-current] { color: var(--fh-text); font-weight: 600; box-shadow: inset 0 -2px 0 var(--fh-nc); }
.fh-netnav__dot { width: 8px; height: 8px; border-radius: 50%; background: var(--fh-nc); }
.fh-splitab { display: flex; flex-wrap: wrap; gap: 56px; }
.fh-splitab__text { flex: 1 1 480px; }
.fh-splitab__paras p { font-size: 17px; line-height: 1.7; max-width: 620px; }
.fh-tagline { margin: 24px 0 0 !important; padding: 18px 22px; border-left: 4px solid var(--fh-ta, var(--fh-primary)); background: var(--fh-surface-alt); font-family: var(--fh-font-heading); font-size: 20px; font-weight: 600; color: var(--fh-text); }
.fh-splitab__side { flex: 1 1 440px; }
.fh-grid--two { grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: 16px; }
.fh-quote1-wrap { display: flex; flex-wrap: wrap; gap: 24px; }
.fh-quote1 { flex: 2 1 560px; margin: 0; padding: 36px; border-radius: 16px; background: #FFFFFF; border: 1px solid var(--fh-line); display: flex; flex-wrap: wrap; gap: 28px; align-items: center; }
.fh-quote1 > div { flex: 1 1 360px; }
.fh-quote1__img, .fh-quote1__i { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; box-shadow: 0 0 0 6px var(--fh-primary-tint); }
.fh-quote1__i { display: inline-flex; align-items: center; justify-content: center; background: linear-gradient(160deg, var(--fh-primary), var(--fh-ink)); color: var(--fh-accent-light); font-family: var(--fh-font-heading); font-size: 36px; font-weight: 800; }
.fh-quote1 blockquote { margin: 0 0 16px; font-family: var(--fh-font-heading); font-size: 20px; line-height: 1.5; font-weight: 600; color: var(--fh-text); }
.fh-quote1 figcaption { display: flex; flex-direction: column; }
.fh-notecard { flex: 1 1 300px; padding: 32px; border-radius: 16px; background: var(--fh-ink); color: var(--fh-on-ink-muted); }
.fh-notecard .fh-h3 { color: #FFFFFF; margin: 18px 0 10px; }
.fh-faqsplit { display: flex; flex-wrap: wrap; gap: 56px; }
.fh-faqsplit > :first-child { flex: 1 1 320px; }
.fh-faqsplit > :last-child { flex: 2 1 560px; }
.fh-faqsplit .fh-lead { margin: 4px 0 20px; }

/* Memorial band, video band */
.fh-tribute { position: relative; overflow: hidden; background: var(--fh-ink); color: #FFFFFF; padding: 88px 0; }
.fh-tribute__in { position: relative; display: flex; flex-wrap: wrap; gap: 48px; align-items: center; }
.fh-tribute__ring { flex: 0 0 180px; height: 180px; border-radius: 50%; border: 2px solid var(--fh-accent); overflow: hidden; display: flex; align-items: center; justify-content: center; background: rgb(255 255 255 / 4%); }
.fh-tribute__img { width: 100%; height: 100%; object-fit: cover; }
.fh-tribute__in > div { flex: 1 1 560px; }
.fh-tribute .fh-h2 { color: #FFFFFF; font-size: 34px; }
.fh-tribute__facts { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 12px 28px; margin: 24px 0 0 !important; }
.fh-tribute__facts li { padding-top: 12px; border-top: 1px solid rgb(255 255 255 / 14%); }
.fh-tribute__k { display: block; font-size: 12px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase; color: var(--fh-accent-light); }
.fh-tribute__v { display: block; margin-top: 4px; color: var(--fh-on-ink); font-size: 15px; line-height: 1.5; }
.fh-tribute__in > div { min-width: 0; }
.fh-vband { display: flex; flex-wrap: wrap; gap: 28px; align-items: center; padding: 28px 32px; border-radius: 18px; background: linear-gradient(135deg, #F7F9FC 0%, #FFFFFF 60%, color-mix(in srgb, var(--fh-accent) 9%, #FFFFFF) 100%); border: 1px solid var(--fh-line); box-shadow: var(--fh-shadow-rest); color: var(--fh-text-body); }
.fh-vband__logo { flex: none; display: inline-flex; padding: 12px 16px; border-radius: 14px; background: #FFFFFF; border: 1px solid var(--fh-line); }
.fh-vband__logo img { height: 48px; width: auto; }
.fh-vband__text { flex: 1 1 360px; }
.fh-vband .fh-h3 { color: var(--fh-text); margin: 0 0 4px; }
.fh-vband__eyebrow { margin: 0 0 4px !important; color: var(--fh-primary); letter-spacing: .1em; }
.fh-vband p { margin: 0; }

/* Contact layout */
.fh-contactgrid { display: grid; grid-template-columns: 1fr 1.4fr; gap: 32px; align-items: start; }
.fh-ccontacts { display: flex; flex-direction: column; gap: 14px; }
.fh-ccontact { --fh-c: var(--fh-primary); }
.fh-ccontact--1 { --fh-c: #7A1350; }
.fh-ccontact--2 { --fh-c: var(--fh-success); }
.fh-ccontact a, .fh-ccontact > span { display: flex; gap: 16px; align-items: center; padding: 22px; border: 1px solid var(--fh-line); border-radius: 16px; background: #FFFFFF; box-shadow: var(--fh-shadow-rest); color: var(--fh-text); text-decoration: none; transition: transform var(--fh-base) var(--fh-ease), box-shadow var(--fh-base) ease; }
.fh-ccontact a:hover { transform: translateY(-5px); box-shadow: var(--fh-shadow-raised); }
.fh-ccontact__icn { flex: none; width: 48px; height: 48px; border-radius: 10px; display: inline-flex; align-items: center; justify-content: center; background: color-mix(in srgb, var(--fh-c) 11%, #FFFFFF); color: var(--fh-c); }
.fh-ccontact__title { display: block; font-weight: 800; }
.fh-ccontact__line { display: block; font-size: 14px; color: var(--fh-c); }
.fh-follow { margin-top: 14px; padding: 24px; border-radius: 14px; background: var(--fh-ink); color: #FFFFFF; }
.fh-follow__title { font-family: var(--fh-font-heading); font-size: 18px; font-weight: 800; margin: 0 0 12px !important; }
.fh-follow ul { display: flex; flex-wrap: wrap; gap: 8px; }
.fh-body .fh-follow a { display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border-radius: 6px; background: var(--fh-ink-2); color: var(--fh-on-ink); text-decoration: none; font-size: 13px; font-weight: 600; }
.fh-body .fh-follow a:hover { background: var(--fh-ink-3); }
.fh-form__done { text-align: center; padding: 40px 12px; }
.fh-form__done:focus { outline: none; }
.fh-form__tick { display: inline-flex; align-items: center; justify-content: center; width: 56px; height: 56px; margin-bottom: 12px; border-radius: 50%; background: color-mix(in srgb, var(--fh-success) 14%, #FFFFFF); color: var(--fh-success); font-size: 28px; font-weight: 800; }
.fh-follow .fh-icon { color: var(--fh-accent-light); }
.fh-form--contact { padding: 32px; }
.fh-form__row { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.fh-pillset { border: 0; padding: 0; margin: 0 0 18px; min-width: 0; }
.fh-pillset__opts { display: flex; flex-wrap: wrap; gap: 8px; }
.fh-radio-pill { position: relative; }
.fh-radio-pill input { position: absolute; opacity: 0; width: 1px; height: 1px; }
.fh-radio-pill span { display: inline-flex; align-items: center; min-height: 44px; padding: 0 16px; border-radius: 999px; border: 1px solid var(--fh-line-strong); background: #FFFFFF; font-size: 14px; font-weight: 600; color: var(--fh-text); cursor: pointer; }
.fh-radio-pill input:checked + span { background: var(--fh-ink); border-color: var(--fh-ink); color: #FFFFFF; }
.fh-radio-pill input:focus-visible + span { outline: 2px solid var(--fh-primary); outline-offset: 2px; }

/* Knowledge: topic tiles and reader */
.fh-topics { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 32px; }
.fh-body .fh-topic { display: flex; flex-direction: column; gap: 4px; padding: 16px 18px; border-radius: 12px; border: 1px solid var(--fh-line); background: #FFFFFF; color: var(--fh-text); text-decoration: none; transition: border-color var(--fh-fast), box-shadow var(--fh-fast); }
.fh-body .fh-topic[aria-current] { border-color: var(--fh-tc); box-shadow: inset 0 0 0 1px var(--fh-tc); background: color-mix(in srgb, var(--fh-tc) 7%, #FFFFFF); }
.fh-topic__dot { width: 10px; height: 10px; border-radius: 50%; background: var(--fh-tc); }
.fh-topic__label { font-weight: 700; }
.fh-topic__count { font-size: 13px; color: var(--fh-text-muted); }
.fh-reader { display: grid; grid-template-columns: 360px 1fr; gap: 28px; align-items: start; }
.fh-reader__list { display: flex; flex-direction: column; gap: 8px; }
.fh-body .fh-reader__item { display: block; padding: 16px 18px; border-radius: 12px; border: 1px solid var(--fh-line); background: #FFFFFF; color: var(--fh-text); text-decoration: none; }
.fh-body .fh-reader__item[aria-current] { border-color: var(--fh-c, var(--fh-primary)); }
.fh-reader__tag { display: block; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fh-c, var(--fh-primary)); }
.fh-reader__title { display: block; font-weight: 800; margin: 2px 0; }
.fh-reader__meta { display: block; font-size: 13px; color: var(--fh-text-muted); }
.fh-reader__pane { border: 1px solid var(--fh-line); border-radius: 16px; background: #FFFFFF; overflow: hidden; }
.fh-reader__cover { position: relative; height: 180px; background: linear-gradient(140deg, var(--fh-ink), var(--fh-primary)); }
.fh-reader__img { width: 100%; height: 100%; object-fit: cover; opacity: .55; }
.fh-reader__topic { position: absolute; left: 28px; bottom: 18px; padding: 5px 12px; border-radius: 999px; background: var(--fh-accent); color: var(--fh-ink); font-size: 12px; font-weight: 800; }
.fh-reader__inner { padding: 28px 32px 36px; }
.fh-reader__inner .fh-h2 a { color: var(--fh-text); text-decoration: none; }
.fh-body .fh-reader__inner .fh-h2 { font-size: 30px; font-weight: 700; margin-bottom: 10px; }
.fh-reader__cols .fh-prose h2 { font-size: 19px; margin: 24px 0 8px; }
.fh-reader__cols .fh-prose h3 { font-size: 17px; }
.fh-reader__cover--tint { height: 200px; background: color-mix(in srgb, var(--fh-c, var(--fh-primary)) 12%, #FFFFFF); }
.fh-reader__cover--tint .fh-reader__topic { background: #FFFFFF; color: var(--fh-c, var(--fh-primary)); border: 1px solid color-mix(in srgb, var(--fh-c, var(--fh-primary)) 30%, #FFFFFF); }
.fh-reader__kicker { margin: 0 0 8px !important; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fh-c, var(--fh-primary)); }
.fh-reader__cols { display: flex; flex-wrap: wrap; gap: 32px; align-items: flex-start; margin-top: 20px; }
.fh-reader__cols .fh-prose { flex: 2 1 340px; min-width: 0; }
.fh-reader__cols .fh-toc { flex: 1 1 180px; position: sticky; top: 100px; }
.fh-reader__cols .fh-toc__box > summary { list-style: none; pointer-events: none; }
.fh-reader__cols .fh-toc__box > summary::-webkit-details-marker { display: none; }

/* Gallery mosaic and viewer */
.fh-mosaic { display: grid; grid-template-columns: repeat(auto-fill, minmax(270px, 1fr)); grid-auto-rows: 120px; grid-auto-flow: dense; gap: 16px; }
.fh-mosaic__tile { grid-row: span 2; }
.fh-mosaic__tile--tall { grid-row: span 3; }
.fh-viewer--inline { margin-top: 24px; padding: 28px; border-radius: 14px; background: var(--fh-ink); color: var(--fh-on-ink); scroll-margin-top: 96px; }
.fh-viewer--inline[hidden] { display: none; }
.fh-viewer--inline .fh-viewer__top { margin-bottom: 20px; flex-wrap: wrap; }
.fh-viewer__meta { margin: 0 !important; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fh-accent-light); }
.fh-body .fh-viewer--inline .fh-viewer__title { margin: 4px 0 0 !important; font-size: 26px; font-weight: 700; color: var(--fh-on-ink); }
.fh-viewer__ctrls { display: flex; gap: 8px; }
.fh-viewer--inline .fh-viewer__stage { position: relative; display: block; height: 520px; margin: 0; border-radius: 14px; background: #081830; overflow: hidden; }
.fh-viewer--inline .fh-lightbox__img { width: 100%; height: 100%; max-height: none; object-fit: contain; }
.fh-viewer__count { position: absolute; right: 12px; bottom: 12px; padding: 4px 10px; border-radius: var(--fh-radius-pill); background: rgb(8 24 48 / 80%); font-size: 12px; font-weight: 700; }
.fh-viewer--inline .fh-viewer__thumbs { margin-top: 14px; gap: 10px; }
.fh-viewer--inline .fh-viewer__thumb { width: 104px; height: 70px; border-radius: 8px; }
.fh-body .fh-mosaic__link { position: relative; display: block; height: 100%; border-radius: 16px; overflow: hidden; background: var(--fh-ink-2); color: #FFFFFF; text-decoration: none; }
.fh-mosaic__img { width: 100%; height: 100%; object-fit: cover; transition: transform var(--fh-slow) ease; }
.fh-mosaic__link:hover .fh-mosaic__img { transform: scale(1.05); }
.fh-mosaic__blank { position: absolute; inset: 0; background: linear-gradient(140deg, var(--fh-ink-2), var(--fh-primary)); }
.fh-mosaic__cap { position: absolute; inset: auto 0 0 0; padding: 48px 18px 18px; background: linear-gradient(0deg, rgb(8 24 48 / 92%), rgb(8 24 48 / 55%) 60%, rgb(8 24 48 / 0%)); }
.fh-mosaic__meta { display: block; font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--fh-accent-light); }
.fh-mosaic__title { display: block; font-family: var(--fh-font-heading); font-size: 19px; font-weight: 800; line-height: 1.3; }
.fh-viewer[open] { display: flex; flex-direction: column; padding: 20px 24px; }
.fh-viewer__top { display: flex; justify-content: space-between; align-items: center; gap: 16px; }
.fh-viewer__title { font-family: var(--fh-font-heading); font-size: 18px; font-weight: 800; margin: 0 !important; }
.fh-viewer__stage { flex: 1; display: grid; grid-template-columns: 56px 1fr 56px; align-items: center; min-height: 0; }
.fh-viewer__stage .fh-lightbox__figure { grid-column: 2; }
.fh-viewer__stage .fh-lightbox__img { max-height: 64vh; }
.fh-viewer__thumbs { display: flex; gap: 8px; overflow-x: auto; padding: 8px 0; }
.fh-viewer__thumb { flex: none; width: 76px; height: 56px; padding: 0; border: 2px solid transparent; border-radius: 6px; background: none; cursor: pointer; overflow: hidden; opacity: .6; }
.fh-viewer__thumb[aria-current="true"] { border-color: var(--fh-accent); opacity: 1; }
.fh-viewer__thumb img { width: 100%; height: 100%; object-fit: cover; }

/* Service band (a programme the organisation runs) */
.fh-service { display: grid; grid-template-columns: 1.1fr 1fr; gap: 56px; align-items: center; }
.fh-service__points { margin: 20px 0 0 !important; display: flex; flex-direction: column; gap: 10px; }
.fh-service__points li { display: flex; gap: 10px; align-items: flex-start; color: var(--fh-text); font-weight: 600; }
.fh-service__points .fh-icon { color: var(--fh-success); margin-top: 3px; flex: none; }
.fh-service__figs { display: flex; gap: 40px; margin: 26px 0 26px !important; }
.fh-service__num { display: block; font-family: var(--fh-font-heading); font-size: 40px; font-weight: 800; line-height: 1; color: var(--fh-text); }
.fh-service__lbl { display: block; margin-top: 6px; font-size: 14px; color: var(--fh-text-muted); }
.fh-service__in { border-radius: 22px; background: #FFFFFF; padding: 32px; }
.fh-service__logo { display: flex; justify-content: center; padding: 18px; margin-bottom: 22px; border-radius: 14px; background: var(--fh-surface-alt); }
.fh-service__logo img { max-height: 72px; width: auto; }
.fh-service__head { font-size: 12px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--fh-primary); margin: 0 0 12px !important; }
.fh-service__steps { display: flex; flex-direction: column; gap: 16px; }
.fh-service__steps li { display: flex; gap: 14px; align-items: flex-start; }
.fh-service__n { flex: none; width: 34px; height: 34px; border-radius: 50%; background: var(--fh-ink); color: var(--fh-accent-light); display: inline-flex; align-items: center; justify-content: center; font-weight: 800; }
.fh-service__st { display: block; font-weight: 800; color: var(--fh-text); }
.fh-service__sx { display: block; font-size: 14px; color: var(--fh-text-body); }

/* Footer badge */
.fh-body .fh-footer__badge { display: inline-flex; flex-direction: column; gap: 8px; margin-top: 20px; padding: 14px 16px; border-radius: 12px; background: rgb(255 255 255 / 6%); border: 1px solid rgb(255 255 255 / 12%); color: var(--fh-accent-light); text-decoration: none; font-size: 13px; font-weight: 700; }
.fh-footer__badge img { height: 40px; width: auto; align-self: flex-start; background: #FFFFFF; border-radius: 6px; padding: 4px 8px; }
.fh-footer__badge span { display: inline-flex; align-items: center; gap: 6px; }

/* ---------- CMP-70 Motion ---------- */
.fh-enter { animation: fh-up var(--fh-enter) var(--fh-ease) both; }
.fh-d1 { animation-delay: .08s; } .fh-d2 { animation-delay: .22s; } .fh-d3 { animation-delay: .36s; } .fh-d4 { animation-delay: .5s; } .fh-d5 { animation-delay: .7s; }
@keyframes fh-up { from { opacity: 0; transform: translateY(22px); } to { opacity: 1; transform: none; } }
@keyframes fh-fade { from { opacity: 0; } to { opacity: 1; } }
@keyframes fh-drop { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: none; } }
@keyframes fh-drift1 { 50% { transform: translate(-60px, 40px) scale(1.12); } }
@keyframes fh-drift2 { 50% { transform: translate(70px, -30px) scale(.92); } }
@keyframes fh-spin { to { transform: rotate(360deg); } }
@keyframes fh-float { 50% { transform: translateY(-10px); } }
@keyframes fh-pulse { 0%, 100% { box-shadow: 0 0 0 0 color-mix(in srgb, currentColor 55%, transparent); } 70% { box-shadow: 0 0 0 10px transparent; } }
@keyframes fh-marquee { to { transform: translateX(-50%); } }
@keyframes fh-marquee-y { to { transform: translateY(-50%); } }
@keyframes fh-shine { from { left: -60%; } to { left: 130%; } }
@keyframes fh-kb { to { transform: scale(1.1); } }
@keyframes fh-grow { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* Motion level "calm": entrance and hover only (12, section 9). */
[data-fh-motion="calm"] .fh-orbs::before, [data-fh-motion="calm"] .fh-orbs::after, [data-fh-motion="calm"] .fh-emblem, [data-fh-motion="calm"] .fh-float,
[data-fh-motion="calm"] .fh-zoom, [data-fh-motion="calm"] .fh-pulse { animation: none; }
/* Motion level "off" and the visitor's reduced-motion setting (UI-03): nothing moves on its own. */
[data-fh-motion="off"] *, [data-fh-motion="off"] *::before, [data-fh-motion="off"] *::after { animation: none !important; transition: none !important; }
@media (prefers-reduced-motion: reduce) {
	.fh-body *, .fh-body *::before, .fh-body *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
/* Marquees become a static, wrapped list whenever motion is off or reduced. */
[data-fh-motion="off"] .fh-ticker__track, [data-fh-motion="off"] .fh-strip__track { width: auto; flex-wrap: wrap; }
@media (prefers-reduced-motion: reduce) {
	.fh-ticker__track, .fh-strip__track { width: auto !important; }
	.fh-ticker ul, .fh-strip ul { flex: 1 1 auto; flex-wrap: wrap; }
	.fh-ticker ul[aria-hidden], .fh-strip ul[aria-hidden], .fh-scroller__copy, .fh-ticker .fh-pausebtn, .fh-strip .fh-pausebtn, .fh-scroller .fh-pausebtn { display: none; }
	.fh-scroller__mask { height: auto; mask-image: none; }
	.fh-scroller ul li:nth-child(n+6) { display: none; }
}

/* Banner logo plate, ticked statement card, past-events archive */
.fh-banner__plate { display: inline-flex; padding: 10px 14px; margin-bottom: 18px; border-radius: 12px; background: #FFFFFF; box-shadow: 0 12px 28px rgb(0 0 0 / 20%); }
.fh-banner__plate img { height: 44px; width: auto; display: block; }
.fh-banner__plate + .fh-pill { display: flex; width: max-content; }
.fh-tickcard { display: flex; flex-wrap: wrap; gap: 28px; align-items: center; padding: 28px; background: #FFFFFF; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-lg); box-shadow: var(--fh-shadow-rest); }
.fh-tickcard__text { flex: 1 1 360px; }
.fh-tickcard__text p:last-child { margin: 0; font-size: 15px; color: var(--fh-text-body); }
.fh-body .fh-tickcard__title { font-size: 28px; font-weight: 700; margin-bottom: 8px; }
.fh-tickcard__list { flex: 1 1 460px; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 8px; }
.fh-tickcard__list li { display: flex; gap: 8px; align-items: center; padding: 10px 12px; border-radius: var(--fh-radius-sm); background: var(--fh-surface-alt); font-size: 14px; font-weight: 600; color: var(--fh-text); }
.fh-tickcard__tick { color: var(--fh-primary); display: inline-flex; }
.fh-evarchive { background: var(--fh-surface-alt); padding-top: 28px; }
.fh-evarchive__head { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 12px; margin-bottom: 18px; }
.fh-body .fh-evarchive__head .fh-h2 { font-size: 26px; margin: 0; }
.fh-evarchive__intro { margin: 4px 0 0; font-size: 15px; color: var(--fh-text-muted); }
.fh-evarchive__nets { margin-bottom: 22px; } .fh-evarchive__years { margin-bottom: 20px; }
.fh-evarchive__nets .fh-filters, .fh-evarchive__years .fh-filters { margin: 0; }
.fh-chip__dot { width: 8px; height: 8px; border-radius: 50%; margin-right: 8px; flex: none; }
.fh-evarchive__empty { padding: 32px; text-align: center; color: var(--fh-text-muted); }
.fh-evgrid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 18px; }
.fh-evcard { display: flex; flex-direction: column; background: #FFFFFF; border: 1px solid var(--fh-line); border-radius: 16px; box-shadow: var(--fh-shadow-rest); overflow: hidden; transition: transform var(--fh-base) var(--fh-ease), box-shadow var(--fh-base) ease; }
.fh-evcard:hover { transform: translateY(-5px); box-shadow: var(--fh-shadow-raised); }
.fh-evcard__img, .fh-evcard__noimg { display: block; height: 220px; background: var(--fh-surface-alt); }
.fh-evcard__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
.fh-evcard__img--flyer img { object-position: top; }
.fh-evcard__noimg { display: flex; align-items: flex-end; padding: 16px; background: linear-gradient(140deg, var(--fh-ink), var(--fh-ink-2)); color: var(--fh-accent-light); font-family: var(--fh-font-heading); font-size: 34px; font-weight: 800; }
.fh-evcard__body { display: flex; flex-direction: column; gap: 6px; flex: 1; padding: 16px 18px 18px; }
.fh-evcard__body p { margin: 0; }
.fh-evcard__meta { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; font-size: 12px; color: var(--fh-text-muted); }
.fh-evcard__date { font-weight: 800; letter-spacing: .04em; color: var(--fh-text); }
.fh-evcard__net { --fh-c: var(--fh-text); padding: 2px 8px; border-radius: var(--fh-radius-pill); background: color-mix(in srgb, var(--fh-c) 10%, #FFFFFF); color: color-mix(in srgb, var(--fh-c) 78%, #000000); font-size: 11px; font-weight: 700; }
.fh-evcard__title { margin: 0; font-family: var(--fh-font-heading); font-size: 17px; line-height: 1.3; letter-spacing: -0.01em; }
.fh-evcard__title a { color: var(--fh-text); text-decoration: none; }
.fh-evcard__title a:hover { color: var(--fh-primary); }
.fh-evcard__who { font-size: 14px; color: var(--fh-text-body); }
.fh-evcard__where { font-size: 13px; color: var(--fh-text-muted); }
.fh-evcard__stat { margin-top: auto !important; padding-top: 8px; border-top: 1px solid var(--fh-line); font-size: 12px; font-weight: 700; color: var(--fh-primary); }
.fh-body .fh-evarchive .fh-chip--filter { min-height: 40px; }
.fh-evarchive .fh-filters__chips { flex-wrap: wrap; overflow: visible; }
.fh-body .fh-evarchive__years .fh-chip--filter { min-height: 36px; padding: 0 12px; border-radius: var(--fh-radius-pill); font-size: 13px; font-weight: 700; }

/* Chapter activity: events beside articles */
.fh-activity { display: flex; flex-wrap: wrap; gap: 48px; }
.fh-activity__events { flex: 3 1 520px; min-width: 0; }
.fh-activity__posts { flex: 2 1 360px; min-width: 0; }
.fh-activity--one > div { flex-basis: 100%; }
.fh-section__head--row { display: flex; flex-wrap: wrap; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 28px; }
.fh-actlist { display: flex; flex-direction: column; gap: 12px; }
.fh-body .fh-actcard { display: flex; gap: 18px; align-items: center; padding: 20px; border: 1px solid var(--fh-line); border-radius: 16px; box-shadow: var(--fh-shadow-rest); background: #FFFFFF; text-decoration: none; color: var(--fh-text); transition: transform var(--fh-base) var(--fh-ease), box-shadow var(--fh-base) ease; }
a.fh-actcard:hover { transform: translateY(-5px); box-shadow: var(--fh-shadow-raised); }
.fh-actcard__date { flex: 0 0 64px; text-align: center; padding: 8px 0; border-radius: var(--fh-radius-sm); background: color-mix(in srgb, var(--fh-c, var(--fh-primary)) 10%, #FFFFFF); color: color-mix(in srgb, var(--fh-c, var(--fh-primary)) 78%, #000000); }
.fh-actcard__date span:first-child { display: block; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.fh-actcard__date span:last-child { display: block; font-family: var(--fh-font-heading); font-size: 20px; font-weight: 700; }
.fh-actcard__title { display: block; font-weight: 600; font-size: 17px; }
.fh-actcard__sub { font-size: 14px; color: var(--fh-text-muted); }
.fh-body .fh-actcard--post { display: block; }
.fh-actcard__tag { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--fh-c, var(--fh-primary)); }
.fh-actcard__ptitle { display: block; font-family: var(--fh-font-heading); font-size: 19px; font-weight: 600; margin-top: 6px; }
.fh-steps__head .fh-callout { margin-top: 20px; }

/* ---------- Tablet and phone ---------- */
@media (max-width: 1024px) {
	.fh-nav__top { padding: 0 10px; }
	.fh-footer__grid { grid-template-columns: 1fr; }
	.fh-org { grid-template-columns: 1fr; }
}
@media (max-width: 759px) {
	:root { --fh-section: 40px; }
	.fh-hide-phone, .fh-utility { display: none !important; }
	.fh-show-phone { display: inline-flex; }
	.fh-display { font-size: 38px; } .fh-h1 { font-size: 34px; } .fh-h2 { font-size: 28px; } .fh-h3 { font-size: 19px; } .fh-lead { font-size: 17px; } .fh-eyebrow { font-size: 12px; }
	.fh-header__in { min-height: 64px; } .fh-header__logo img { height: 38px; }
	.fh-header__right .fh-iconbtn[href$="/search"] { display: none; }
	.fh-banner__in, .fh-banner--split .fh-banner__in, .fh-banner__in.fh-banner--split { grid-template-columns: 1fr; gap: 32px; padding-top: 40px; padding-bottom: 56px; }
	.fh-crumbs li { display: none; } .fh-crumbs li.fh-crumbs__parent { display: block; } .fh-crumbs li.fh-crumbs__parent::before { content: "\2190"; margin-right: 8px; opacity: .8; }
	.fh-actions .fh-btn { flex: 1 1 100%; }
	.fh-body .fh-figures { grid-template-columns: 1fr 1fr; margin-top: -32px; }
	.fh-fig { padding: 18px 16px; } .fh-fig + .fh-fig { border-left: 0; } .fh-fig:nth-child(even) { border-left: 1px solid var(--fh-line); } .fh-fig:nth-child(n+3) { border-top: 1px solid var(--fh-line); }
	.fh-fig__value { font-size: 26px; }
	.fh-cps { flex-direction: column; height: auto; }
	.fh-cp, .fh-cp.is-open { flex: none; min-height: 84px; }
	.fh-body .fh-cp__h { position: static; width: 100%; height: auto; }
	.fh-cp__head { width: 100%; height: 84px; flex-direction: row; padding: 0 16px; }
	.fh-cp__vname { writing-mode: horizontal-tb; transform: none; }
	.fh-cp__body { position: static; padding: 0 16px 20px; display: none; }
	.fh-cp.is-open .fh-cp__body { display: block; }
	.fh-vt, .fh-vt__panel, .fh-steps { grid-template-columns: 1fr; }
	.fh-quote .fh-framed, .fh-quote .fh-avatar { max-width: 120px; }
	.fh-steps__list::before { left: 23px; right: auto; top: 24px; bottom: 24px; border-top: 0; border-left: 2px dashed var(--fh-line-strong); }
	.fh-lead-band__people, .fh-grid--people { grid-template-columns: 1fr 1fr; gap: 14px; }
	.fh-person__name { font-size: 15px; }
	/* On phones the name and role sit under the photo, so faces stay clear and names do not wrap over them. */
	.fh-grid--people .fh-person, .fh-lead-band__people .fh-person, .fh-struct__cols .fh-person { aspect-ratio: auto; display: flex; flex-direction: column; }
	.fh-grid--people .fh-person__img, .fh-lead-band__people .fh-person__img, .fh-struct__cols .fh-person__img { position: static; aspect-ratio: 1 / 1; height: auto; }
	.fh-grid--people .fh-person__initials, .fh-lead-band__people .fh-person__initials, .fh-struct__cols .fh-person__initials { position: static; aspect-ratio: 1 / 1; padding-bottom: 0; }
	.fh-grid--people .fh-person::after, .fh-lead-band__people .fh-person::after, .fh-struct__cols .fh-person::after { display: none; }
	.fh-grid--people .fh-person figcaption, .fh-lead-band__people .fh-person figcaption, .fh-struct__cols .fh-person figcaption { position: static; padding: 10px 12px 14px; }
	.fh-grid--people .fh-person__name, .fh-lead-band__people .fh-person__name, .fh-struct__cols .fh-person__name { font-size: 14px; }
	.fh-grid--people .fh-person__role, .fh-lead-band__people .fh-person__role, .fh-struct__cols .fh-person__role { font-size: 12px; }
	.fh-cp__name { display: none; }
	.fh-cta { padding: 32px 24px; }
	.fh-footer__nav { grid-template-columns: 1fr 1fr; }
	.fh-signup { padding: 24px 20px; }
	.fh-stepl__item:not(.is-current) { display: none; }
	.fh-article--toc, .fh-split { grid-template-columns: 1fr; gap: 28px; }
	.fh-aboutintro, .fh-contactgrid, .fh-reader, .fh-service { grid-template-columns: 1fr; gap: 28px; }
	.fh-service__figs { gap: 24px; }
	.fh-lcards { grid-template-columns: 1fr; }
	.fh-quotes-card { padding: 22px 18px; }
	.fh-quote { grid-template-columns: 76px minmax(0, 1fr); gap: 16px; align-items: start; }
	.fh-framed--portrait { justify-self: start; width: 76px; }
	.fh-stm__text { font-size: 19px !important; }
	.fh-stm__word { display: none; }
	.fh-stm__top { flex-wrap: wrap; }
	.fh-yt__tab { font-size: 16px; min-height: 52px; }
	.fh-yt__year { font-size: 56px; }
	.fh-nt__panel { padding: 28px 22px; }
	.fh-struct__row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.fh-body .fh-struct__box { min-width: 0; width: 100%; }
	.fh-bars li { grid-template-columns: 1fr 60px; }
	.fh-bars__track { grid-column: 1 / -1; grid-row: 2; }
	.fh-ncards, .fh-alums { grid-template-columns: 1fr; }
	.fh-datapair { grid-template-columns: 1fr; } .fh-datacard { padding: 22px 18px; } .fh-datacard .fh-bars li { grid-template-columns: 1fr 60px; }
	.fh-mosaic { grid-template-columns: 1fr; grid-auto-rows: 110px; }
	.fh-viewer--inline { padding: 18px; } .fh-viewer--inline .fh-viewer__stage { height: 300px; }
	.fh-form__row { grid-template-columns: 1fr; }
	.fh-cps { height: auto; }
	.fh-cp__body { position: static; transform: none; display: none; padding: 0 16px 20px; }
	.fh-cp.is-open .fh-cp__body { display: flex; }
	.fh-cp.is-open .fh-cp__h { opacity: 1; position: static; pointer-events: auto; }
	.fh-cp__plate { display: none; }
	.fh-cp__head { flex-direction: row; justify-content: flex-start; padding: 0 16px; height: 84px; }
	.fh-cp__logo { margin: 0; width: 52px; height: 52px; order: 0; }
	.fh-tribute__ring { flex-basis: 120px; height: 120px; }
	.fh-article .fh-toc { position: static; order: -1; }
	.fh-split--flip > :first-child { order: 0; }
	.fh-prose h2 { font-size: 24px; }
	.fh-searchpage { flex-direction: column; }
	.fh-chapter-logo img { width: 140px; height: 140px; }
	.fh-stepl__item.is-current::after { content: attr(data-step-text); margin-left: auto; }
	.fh-lightbox[open] { grid-template-columns: 52px 1fr 52px; }
	.fh-strip__mask { overflow-x: auto; mask-image: none; scroll-snap-type: x mandatory; }
	.fh-strip__track { animation: none; } .fh-strip ul[aria-hidden], .fh-strip .fh-pausebtn { display: none; }
	.fh-scroller__track { animation: none; } .fh-scroller__copy, .fh-scroller .fh-pausebtn { display: none; } .fh-scroller__mask { height: auto; mask-image: none; } .fh-scroller ul li:nth-child(n+6) { display: none; }
}
.fh-quote__body { min-width: 0; }
.fh-contactcol { display: flex; flex-direction: column; min-width: 0; }
.fh-service__text, .fh-service__card { min-width: 0; }

/* ---- Events add-on: event page, speakers, registration (02-EVT) ---- */
.fh-evlayout { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 40px; align-items: start; }
.fh-evlayout__main { min-width: 0; }
.fh-evfacts { position: sticky; top: 96px; display: flex; flex-direction: column; gap: 18px; }
.fh-evfacts__list { margin: 0; display: grid; gap: 14px; }
.fh-evfacts__row dt { font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--fh-text-muted); }
.fh-evfacts__row dd { margin: 2px 0 0; font-weight: 600; color: var(--fh-text); }
.fh-evfacts__label { margin: 0 0 6px; font-size: 13px; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: var(--fh-text-muted); }
.fh-evfacts__links { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 16px; }
.fh-evfacts__links--stack { flex-direction: column; }
.fh-evfacts__links a { font-weight: 600; }
.fh-evspks { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 16px; }
.fh-evspk { display: flex; gap: 14px; align-items: center; padding: 14px; border: 1px solid var(--fh-line); border-radius: var(--fh-radius-md); background: #FFFFFF; }
.fh-evspk__img, .fh-evspk__initials { flex: 0 0 56px; width: 56px; height: 56px; border-radius: 50%; object-fit: cover; }
.fh-evspk__initials { display: flex; align-items: center; justify-content: center; background: linear-gradient(160deg, var(--fh-primary), var(--fh-ink)); color: var(--fh-accent-light); font-weight: 800; }
.fh-evspk__name { margin: 0; font-weight: 700; color: var(--fh-text); }
.fh-evspk__role { margin: 2px 0 0; font-size: 14px; color: var(--fh-text-muted); }
.fh-evagenda { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--fh-line); }
.fh-evagenda__item { display: grid; grid-template-columns: 150px minmax(0, 1fr); gap: 16px; padding: 0 0 22px 20px; position: relative; }
.fh-evagenda__item::before { content: ""; position: absolute; left: -7px; top: 6px; width: 12px; height: 12px; border-radius: 50%; background: var(--fh-accent); }
.fh-evagenda__time { margin: 0; font-weight: 700; color: var(--fh-primary); }
.fh-evagenda__title { margin: 0; font-size: 18px; }
.fh-evagenda__who { margin: 4px 0 0; font-size: 14px; color: var(--fh-text-muted); }
.fh-evvenue__name { font-weight: 700; color: var(--fh-text); }
.fh-evreg { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.4fr); gap: 40px; align-items: start; }
.fh-evreg__note { font-weight: 700; color: var(--fh-primary); }
.fh-form--event { padding: 32px; }
.fh-form__fine { font-size: 13px; color: var(--fh-text-muted); }
.fh-person-link { display: block; text-decoration: none; border-radius: var(--fh-radius-md); }
.fh-person-link:focus-visible { outline: 3px solid var(--fh-accent); outline-offset: 3px; }
@media (max-width: 959px) {
  .fh-evlayout, .fh-evreg { grid-template-columns: minmax(0, 1fr); gap: 24px; }
  .fh-evfacts { position: static; }
}
@media (max-width: 559px) {
  .fh-evagenda__item { grid-template-columns: minmax(0, 1fr); gap: 4px; }
  .fh-form--event { padding: 20px; }
}
