:root { color-scheme: only light; --site-bg: #FFFFFF; --site-surface: #EEF8F1; --site-text: #052E16; --site-text-muted: #3F5F4A; --site-accent: #047857; --site-accent-contrast: #FFFFFF; --site-accent-deep: #065F46; --site-rule: #BFD9C8; --site-line: #5F8A70; --site-error: #9B1C1C; --portal-deep: #064E3B; --font-display: "Cormorant Garamond", "Cormorant", Georgia, "Times New Roman", serif; --font-body: "Figtree", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif; --frame: calc(940px + 2rem); }
*, *::before, *::after { box-sizing: border-box; }
[hidden] { display: none !important; }
html { background-color: var(--site-bg); color: var(--site-text); -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body { margin: 0; background-color: var(--site-bg); color: var(--site-text); font-family: var(--font-body); font-size: 1.0625rem; line-height: 1.7; overflow-wrap: break-word; }
img, video, svg { max-width: 100%; }
img, video { display: block; height: auto; }
a { color: var(--site-accent); text-decoration-thickness: 1px; text-underline-offset: 0.2em; transition: color 0.2s ease, background-color 0.2s ease, border-color 0.2s ease; }
a:hover { color: var(--site-accent-deep); }
:focus-visible { outline: 3px double var(--site-accent); outline-offset: 1px; }
main { display: block; background-color: var(--site-bg); color: var(--site-text); }
.masthead { background-color: var(--site-bg); color: var(--site-text); border-bottom: 1px solid var(--site-rule); }
.masthead__inner { max-width: var(--frame); margin: 0 auto; padding: 1.25rem 1rem 0.25rem; display: flex; flex-direction: column; align-items: center; gap: 0.25rem; }
.masthead__brand { display: inline-flex; align-items: center; gap: 0.75rem; min-height: 44px; color: var(--site-text); text-decoration: none; }
.masthead__brand:hover { color: var(--site-text); }
.masthead__emblem { width: 2.5rem; height: 2.5rem; flex: none; }
.masthead__title { font-family: var(--font-display); font-size: clamp(1.875rem, 1.4rem + 2vw, 2.75rem); line-height: 1; letter-spacing: 0.01em; color: var(--site-text); }
.masthead__title--compact { font-size: 1.625rem; }
.masthead__title-strong { font-weight: 700; }
.masthead__title-light { font-weight: 400; font-style: italic; color: var(--site-accent); }
.masthead__nav { width: 100%; }
.masthead__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: 0 1.5rem; }
.masthead__link { display: inline-flex; align-items: center; min-height: 44px; padding: 0 0.25rem; font-size: 0.9375rem; font-weight: 500; color: var(--site-text-muted); text-decoration: none; border-bottom: 2px solid transparent; }
.masthead__link:hover, .masthead__link[aria-current="page"] { color: var(--site-accent); border-bottom-color: var(--site-accent); }
.hero { background-color: var(--site-bg); color: var(--site-text); }
.hero__panel { background-color: var(--site-surface); background-image: repeating-linear-gradient(60deg, rgba(4, 120, 87, 0.07) 0, rgba(4, 120, 87, 0.07) 1px, transparent 1px, transparent 26px); color: var(--site-text); padding: 2.25rem 1rem 5.5rem; text-align: center; }
.hero__inner { max-width: 52rem; margin: 0 auto; }
.hero__meta { margin: 0 0 1rem; font-size: 0.9375rem; letter-spacing: 0.02em; color: var(--site-text-muted); }
.hero__title { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.75rem, 0.6rem + 4.2vw, 3rem); line-height: 1.12; text-wrap: balance; color: var(--site-text); }
.hero__dek { max-width: 40rem; margin: 1.25rem auto 0; font-size: 1.0625rem; line-height: 1.65; color: var(--site-text-muted); }
.hero__stage { position: relative; max-width: var(--frame); margin: -3.5rem auto 0; padding: 0 1rem; }
.hero__figure { position: relative; margin: 0; box-shadow: 0 22px 44px -26px rgba(5, 46, 22, 0.55); background-color: var(--site-surface); }
.hero__frame { aspect-ratio: 3 / 2; overflow: hidden; background-color: var(--site-surface); }
.hero__image { width: 100%; height: 100%; object-fit: cover; object-position: 50% 28%; }
.hero__tag { position: absolute; top: 0.75rem; left: 0.75rem; padding: 0.3rem 0.65rem; background-color: var(--site-bg); color: var(--site-text-muted); border: 1px solid var(--site-text-muted); border-radius: 0; font-size: 0.8125rem; line-height: 1.3; letter-spacing: 0.04em; }
.band { background-color: var(--site-bg); color: var(--site-text); }
.band--tint { background-color: var(--site-surface); }
.story { max-width: var(--frame); margin: 0 auto; padding: 0 1rem; }
.story__section { display: grid; gap: 1.25rem; padding: 2.75rem 0; }
.story__rail, .story__body { min-width: 0; }
.story__kicker { margin: 0 0 0.6rem; font-size: 0.9375rem; font-weight: 500; color: var(--site-text-muted); }
.story__heading { margin: 0; padding-left: 1rem; border-left: 5px solid var(--site-accent); font-family: var(--font-display); font-weight: 700; font-size: clamp(1.75rem, 1.3rem + 1.4vw, 2.125rem); line-height: 1.12; hyphens: manual; color: var(--site-text); }
.story__note { margin: 0; padding-top: 0.75rem; border-top: 1px solid var(--site-rule); font-size: 0.9375rem; line-height: 1.6; color: var(--site-text-muted); }
.story__body p { margin: 0 0 1.25rem; }
.story__body > :last-child { margin-bottom: 0; }
.story__wide { margin: 0; padding: 0 0 2.75rem; }
.story__wide + .story__section { padding-top: 0; }
.media { margin: 0; }
.media__frame { position: relative; aspect-ratio: 3 / 2; overflow: hidden; background-color: var(--site-surface); }
.media__frame--video { aspect-ratio: 4 / 3; }
.media__image, .media__video { width: 100%; height: 100%; object-fit: cover; }
.media--inset { margin: 2rem 0; }
.steps { list-style: none; margin: 1.75rem 0; padding: 0; counter-reset: step; }
.steps__item { counter-increment: step; display: grid; grid-template-columns: 2.5rem minmax(0, 1fr); column-gap: 1rem; padding: 1.1rem 0; border-top: 1px solid var(--site-rule); }
.steps__item:last-child { border-bottom: 1px solid var(--site-rule); }
.steps__item::before { content: counter(step); grid-row: 1 / span 2; font-family: var(--font-display); font-weight: 700; font-size: 2.25rem; font-variant-numeric: lining-nums; line-height: 1; color: var(--site-accent); }
.steps__lead { grid-column: 2; display: block; font-weight: 600; }
.steps__text { grid-column: 2; display: block; }
.qa { margin: 0 0 2rem; }
.qa__question { margin: 0 0 0.6rem; font-family: var(--font-display); font-weight: 700; font-size: 1.5rem; line-height: 1.2; color: var(--site-text); }
.qa__question::before { content: ""; display: inline-block; width: 0.5rem; height: 0.5rem; margin-right: 0.65rem; background-color: var(--site-accent); transform: rotate(45deg); vertical-align: 0.15em; }
.qa__answer { margin: 0 0 1rem; }
.pull { margin: 1.5rem 0 0; padding: 1.25rem 1.5rem; background-color: var(--site-bg); color: var(--site-text); border: 1px solid var(--site-rule); border-radius: 12px; }
.story__body .pull__text { margin: 0; font-family: var(--font-display); font-style: italic; font-weight: 600; font-size: 1.375rem; line-height: 1.35; }
.cta { display: flex; flex-direction: column; align-items: flex-start; gap: 0.2rem; min-height: 44px; margin: 2rem 0 0; padding: 0.95rem 1.5rem; background-color: var(--site-accent); color: var(--site-accent-contrast); border-radius: 2px; text-decoration: none; transition: background-color 0.2s ease, transform 0.2s ease; }
.cta:hover { background-color: var(--site-accent-deep); color: var(--site-accent-contrast); transform: translateY(-1px); }
.cta__label { font-size: 1.0625rem; font-weight: 600; line-height: 1.3; }
.cta__sub { font-size: 0.8125rem; font-weight: 400; line-height: 1.4; color: #E3F7EA; }
.footer { background-color: var(--site-bg); color: var(--site-text); border-top: 1px solid var(--site-rule); }
.footer__inner { max-width: var(--frame); margin: 0 auto; padding: 2.5rem 1rem 3rem; display: grid; gap: 1.25rem; }
.footer__office-facts { font-size: 0.9375rem; line-height: 1.65; color: var(--site-text); }
.footer__office-facts p { margin: 0; }
.footer__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0 1.5rem; }
.footer__link { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.9375rem; color: var(--site-text-muted); text-decoration-color: var(--site-rule); }
.footer__link:hover { color: var(--site-accent); text-decoration-color: var(--site-accent); }
.footer__house-note { margin: 0; padding-top: 1.25rem; border-top: 1px solid var(--site-rule); font-size: 0.8125rem; line-height: 1.6; color: var(--site-text-muted); }
.doc__head { background-color: var(--site-surface); background-image: repeating-linear-gradient(60deg, rgba(4, 120, 87, 0.07) 0, rgba(4, 120, 87, 0.07) 1px, transparent 1px, transparent 26px); color: var(--site-text); padding: 2.5rem 1rem; text-align: center; }
.doc__title { max-width: 40rem; margin: 0 auto; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.875rem, 1.2rem + 3vw, 2.75rem); line-height: 1.12; color: var(--site-text); }
.version-stamp { margin: 0.9rem 0 0; font-size: 0.9375rem; color: var(--site-text-muted); }
.doc__body { max-width: calc(760px + 2rem); margin: 0 auto; padding: 2rem 1rem 4rem; background-color: var(--site-bg); color: var(--site-text); }
.doc__clause { padding: 1.25rem 0; }
.doc__heading { margin: 0 0 0.9rem; padding-left: 1rem; border-left: 5px solid var(--site-accent); font-family: var(--font-display); font-weight: 700; font-size: 1.625rem; font-variant-numeric: lining-nums; line-height: 1.15; color: var(--site-text); }
.doc__clause p { margin: 0 0 1rem; }
.doc__clause > :last-child { margin-bottom: 0; }
.doc__list { margin: 0 0 1rem; padding-left: 1.25rem; }
.doc__list li { margin-bottom: 0.5rem; }
.principles { list-style: none; margin: 0 0 1rem; padding: 0; }
.principles__item { position: relative; padding: 0.75rem 0 0.75rem 1.75rem; border-top: 1px solid var(--site-rule); }
.principles__item:last-child { border-bottom: 1px solid var(--site-rule); }
.principles__item::before { content: ""; position: absolute; left: 0.25rem; top: 1.35rem; width: 0.5rem; height: 0.5rem; background-color: var(--site-accent); transform: rotate(45deg); }
.portal-bar { background-color: var(--site-bg); color: var(--site-text); border-bottom: 4px solid var(--site-accent); }
.portal-bar__inner { max-width: 1040px; margin: 0 auto; padding: 0.5rem 1rem; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.25rem 1rem; }
.portal-bar__back { display: inline-flex; align-items: center; min-height: 44px; font-size: 0.9375rem; font-weight: 500; color: var(--site-accent); }
.portal-hero { background-color: var(--portal-deep); color: #FFFFFF; padding: 2.5rem 1rem 6.5rem; }
.portal-hero__inner { max-width: 720px; margin: 0 auto; }
.portal-hero__title { margin: 0; font-family: var(--font-display); font-weight: 600; font-size: clamp(1.75rem, 0.9rem + 3.4vw, 2.75rem); line-height: 1.1; color: #FFFFFF; }
.portal-hero__intro { max-width: 36rem; margin: 1rem 0 0; color: #D6F1E0; }
.portal-hero__steps { list-style: none; margin: 1.5rem 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 0.5rem 1.25rem; counter-reset: portal-step; }
.portal-hero__step { counter-increment: portal-step; display: inline-flex; align-items: center; gap: 0.5rem; font-size: 0.9375rem; color: #FFFFFF; }
.portal-hero__step::before { content: counter(portal-step); display: inline-flex; align-items: center; justify-content: center; width: 1.75rem; height: 1.75rem; border: 1px solid #8FD3AE; border-radius: 50%; font-size: 0.8125rem; font-weight: 600; }
.portal { position: relative; max-width: 720px; margin: -4.5rem auto 0; padding: 0 1rem 3rem; }
.portal__card { background-color: var(--site-bg); color: var(--site-text); border: 1px solid var(--site-rule); border-radius: 16px; box-shadow: 0 26px 50px -30px rgba(5, 46, 22, 0.55); padding: 1.25rem; }
.quiz__progress { margin: 0 0 1.5rem; }
.quiz__count { margin: 0 0 0.5rem; font-size: 0.875rem; font-weight: 600; color: var(--site-text-muted); }
.quiz__track { height: 6px; border-radius: 3px; background-color: var(--site-surface); overflow: hidden; }
.quiz__fill { display: block; height: 100%; width: 0; border-radius: 3px; background-color: var(--site-accent); transition: width 0.3s ease; }
.quiz__step { min-width: 0; margin: 0 0 1.25rem; padding: 0; border: 0; }
.quiz__legend { display: block; width: 100%; margin: 0 0 1rem; padding: 0; font-family: var(--font-display); font-weight: 600; font-size: 1.625rem; line-height: 1.2; color: var(--site-text); }
.quiz__options { display: grid; gap: 0.75rem; }
.quiz__option { position: relative; display: flex; align-items: center; gap: 0.85rem; min-height: 56px; padding: 0.75rem 1rem; background-color: var(--site-bg); border: 1.5px solid var(--site-line); border-radius: 12px; cursor: pointer; transition: border-color 0.2s ease, background-color 0.2s ease; }
.quiz__option:hover { border-color: var(--site-accent); background-color: var(--site-surface); }
.quiz__option:has(.quiz__input:checked) { border-color: var(--site-accent); background-color: var(--site-surface); }
.quiz__input { position: absolute; opacity: 0; width: 1px; height: 1px; margin: 0; }
.quiz__marker { flex: none; display: inline-block; width: 1.25rem; height: 1.25rem; border: 2px solid var(--site-accent); border-radius: 50%; background-color: var(--site-bg); transition: background-color 0.2s ease, box-shadow 0.2s ease; }
.quiz__input:checked + .quiz__marker { background-color: var(--site-accent); box-shadow: inset 0 0 0 3px var(--site-bg); }
.quiz__input:focus-visible + .quiz__marker { outline: 3px double var(--site-accent); outline-offset: 2px; }
.quiz__text { font-size: 1rem; line-height: 1.4; color: var(--site-text); }
.quiz__nav { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 0.75rem; }
.quiz__back, .summary__edit { min-height: 44px; padding: 0 0.5rem; background-color: transparent; color: var(--site-accent); border: 0; font-family: inherit; font-size: 0.9375rem; font-weight: 500; text-decoration: underline; text-underline-offset: 0.2em; cursor: pointer; }
.quiz__back:hover, .summary__edit:hover { color: var(--site-accent-deep); }
.quiz__next { min-height: 48px; margin-left: auto; padding: 0 1.5rem; background-color: var(--site-accent); color: var(--site-accent-contrast); border: 0; border-radius: 12px; font-family: inherit; font-size: 1rem; font-weight: 600; cursor: pointer; transition: background-color 0.2s ease; }
.quiz__next:hover { background-color: var(--site-accent-deep); }
.quiz__next:disabled { background-color: var(--site-rule); color: var(--site-text); cursor: not-allowed; }
.request { margin-top: 0.5rem; }
.request__title { margin: 0 0 1rem; font-family: var(--font-display); font-weight: 600; font-size: 1.75rem; line-height: 1.15; color: var(--site-text); }
.summary { margin: 0 0 1.5rem; padding: 1rem 1.1rem; background-color: var(--site-surface); color: var(--site-text); border-radius: 12px; }
.summary__title { margin: 0 0 0.5rem; font-size: 0.9375rem; font-weight: 600; color: var(--site-text-muted); }
.summary__list { list-style: none; margin: 0 0 0.25rem; padding: 0; }
.summary__item { margin: 0 0 0.4rem; font-size: 0.9375rem; line-height: 1.5; }
.form__field { margin: 0 0 1.1rem; }
.form__label { display: block; margin: 0 0 0.35rem; font-size: 0.9375rem; font-weight: 600; color: var(--site-text); }
.form__input { display: block; width: 100%; min-height: 48px; padding: 0.7rem 0.9rem; background-color: var(--site-bg); color: var(--site-text); border: 1.5px solid var(--site-line); border-radius: 10px; font-family: inherit; font-size: 1rem; line-height: 1.4; transition: border-color 0.2s ease, box-shadow 0.2s ease; }
.form__input--area { min-height: 6.5rem; resize: vertical; }
.form__input:hover { border-color: var(--site-accent); }
.form__input[aria-invalid="true"] { border-color: var(--site-error); }
.form__hint { margin: 0.35rem 0 0; font-size: 0.875rem; line-height: 1.5; color: var(--site-text-muted); }
.form__error { margin: 0.4rem 0 0; font-size: 0.875rem; font-weight: 500; line-height: 1.5; color: var(--site-error); }
.form__consent { display: flex; align-items: flex-start; gap: 0.75rem; min-height: 44px; margin: 0; padding: 0.25rem 0; cursor: pointer; }
.form__check { flex: none; width: 1.375rem; height: 1.375rem; margin: 0.2rem 0 0; accent-color: var(--site-accent); }
.form__consent-text { font-size: 0.9375rem; line-height: 1.55; color: var(--site-text); }
.form__submit { display: block; width: 100%; min-height: 52px; margin-top: 1.5rem; padding: 0 1.5rem; background-color: var(--site-accent); color: var(--site-accent-contrast); border: 0; border-radius: 12px; font-family: inherit; font-size: 1.0625rem; font-weight: 600; cursor: pointer; transition: background-color 0.2s ease, transform 0.2s ease; }
.form__submit:hover { background-color: var(--site-accent-deep); transform: translateY(-1px); }
.success { padding: 1.25rem; background-color: var(--site-surface); color: var(--site-text); border-radius: 12px; }
.success__title { margin: 0 0 0.5rem; font-family: var(--font-display); font-weight: 700; font-size: 1.75rem; line-height: 1.15; color: var(--site-text); }
.success__text { margin: 0; }
.portal-notes { background-color: var(--site-surface); color: var(--site-text); padding: 2.75rem 1rem 3.25rem; }
.portal-notes__inner { max-width: 720px; margin: 0 auto; }
.portal-notes__title { margin: 0 0 1.25rem; padding-left: 1rem; border-left: 5px solid var(--site-accent); font-family: var(--font-display); font-weight: 700; font-size: 1.875rem; line-height: 1.12; color: var(--site-text); }
.portal-notes__list { list-style: none; margin: 0; padding: 0; display: grid; gap: 1rem; }
.portal-notes__item { margin: 0; padding: 1rem 1.1rem; background-color: var(--site-bg); border: 1px solid var(--site-rule); border-radius: 12px; }
.portal-notes__lead { display: block; margin: 0 0 0.25rem; font-weight: 600; }
@media (min-width: 700px) {
  .masthead__inner { padding-top: 1.75rem; }
  .hero__panel { padding: 3.5rem 2rem 8rem; }
  .hero__stage { margin-top: -5.5rem; }
  .hero__frame { aspect-ratio: 16 / 9; }
  .hero__tag { top: 1rem; left: 1rem; }
  .story__section { grid-template-columns: 11rem minmax(0, 1fr); column-gap: 2rem; align-items: start; padding: 3.5rem 0; }
  .story__rail { position: sticky; top: 1.5rem; }
  .story__body--offset { grid-column: 2; }
  .story__wide { padding-bottom: 3.5rem; }
  .media__frame--video { aspect-ratio: 16 / 9; }
  .media--inset { margin: 2.5rem 0; }
  .cta { display: inline-flex; max-width: 30rem; }
  .footer__inner { padding: 3.5rem 1rem 3.5rem; }
  .doc__head { padding: 3.5rem 2rem; }
  .doc__body { padding-top: 3rem; }
  .portal-hero { padding: 3.5rem 1rem 8rem; }
  .portal { margin-top: -6rem; }
  .portal__card { padding: 2.25rem; }
  .quiz__options { grid-template-columns: 1fr 1fr; }
  .form__submit { display: inline-block; width: auto; min-width: 18rem; }
  .portal-notes { padding: 3.5rem 1rem 4rem; }
  .portal-notes__list { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (min-width: 1024px) {
  .hero__panel { padding: 4.5rem 2rem 9rem; }
  .hero__stage { margin-top: -6.5rem; }
  .story__section { grid-template-columns: 200px 680px; column-gap: 60px; padding: 4rem 0; }
  .story__heading { font-size: 2rem; }
  .story__wide { padding-bottom: 4rem; }
}
