.rf-page { background: var(--color-background); }
.rf-page main { overflow: clip; }
.rf-page .text-link { max-width: 100%; }
.rf-page .rf-card a, .rf-form a, .rf-faq a { font-weight: 650; text-decoration: underline; text-decoration-color: var(--color-accent); text-underline-offset: 4px; }
.rf-page .rf-card a:hover, .rf-form a:hover, .rf-faq a:hover { color: var(--color-accent-dark); }
.rf-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 11px; padding-block: 20px; color: var(--color-muted); font-size: .84rem; }
.rf-breadcrumb a { color: var(--color-text); }
.rf-breadcrumb a:hover { text-decoration: underline; text-underline-offset: 4px; }
.rf-hero { position: relative; display: grid; align-items: center; min-height: 590px; isolation: isolate; background: #203025; color: #fff; text-align: center; }
.rf-hero__picture { position: absolute; z-index: -2; inset: 0; overflow: hidden; }
.rf-hero__picture img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.rf-hero::before { position: absolute; z-index: -1; inset: 0; content: ""; background: rgba(20,40,26,.68); }
.rf-hero__inner { max-width: 980px; padding-block: 75px 88px; }
.rf-hero .eyebrow { justify-content: center; margin-bottom: 18px; }
.rf-hero h1 { max-width: 930px; margin: 0 auto 21px; font-size: clamp(2.6rem, 7.5vw, 5rem); font-weight: 400; line-height: 1.05; letter-spacing: -.055em; }
.rf-hero__inner > p:not(.eyebrow) { max-width: 750px; margin: 0 auto; color: #f0f3ed; font-size: 1.08rem; line-height: 1.72; }
.rf-actions { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 15px 28px; margin-top: 29px; }
.rf-link-light { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding-block: 6px; border-bottom: 1px solid rgba(255,255,255,.7); color: white; font-size: .9rem; font-weight: 650; line-height: 1.4; }
.rf-link-light:hover { border-color: white; }
.rf-hero__credit { position: absolute; right: var(--gutter); bottom: 10px; left: var(--gutter); margin: 0; color: #f1f4ef; font-size: .875rem; line-height: 1.4; text-align: center; }
.rf-heading { max-width: 865px; margin: 0 auto 38px; text-align: center; }
.rf-heading .eyebrow, .rf-narrow > .eyebrow { justify-content: center; }
.rf-heading .section-title, .rf-narrow > .section-title { margin-inline: auto; }
.rf-heading > p:last-child:not(.eyebrow) { max-width: 750px; margin: 0 auto; color: var(--color-text-secondary); font-size: 1.04rem; line-height: 1.75; }
.rf-narrow { max-width: 850px; text-align: center; }
.rf-narrow p:not(.eyebrow) { color: var(--color-text-secondary); font-size: 1.06rem; line-height: 1.78; }
.rf-narrow p strong { color: var(--color-text); }
.rf-intro, .rf-compare, .rf-reading, .rf-contexts, .rf-process, .rf-investment, .rf-faq, .rf-form { background: #fff; }
.rf-intro .section-title { margin-bottom: 24px; }
.rf-intro p:last-child, .rf-authority p:last-of-type { margin-bottom: 0; }
.rf-grid { display: grid; gap: 17px; }
.rf-grid > * { min-width: 0; }
.rf-card { padding: 25px; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-surface); }
.rf-card--white { background: #fff; }
.rf-card h3 { margin-bottom: 11px; font-size: 1.36rem; font-weight: 500; line-height: 1.27; letter-spacing: -.025em; }
.rf-card p { margin: 0; color: var(--color-text-secondary); font-size: 1rem; line-height: 1.7; }
.rf-card p + p { margin-top: 14px; }
.rf-card strong { color: var(--color-text); }
.rf-card__index { display: block; margin-bottom: 31px; color: var(--color-accent-dark); font-size: .8rem; font-weight: 700; letter-spacing: .13em; }
.rf-center-note { max-width: 800px; margin: 26px auto 0; color: var(--color-text-secondary); font-size: 1.01rem; line-height: 1.7; text-align: center; }
.rf-compare { background: var(--color-surface-soft); }
.rf-reading__inner { display: grid; gap: 30px; align-items: center; }
.rf-reading__copy { min-width: 0; }
.rf-reading__copy .section-title { margin-bottom: 24px; }
.rf-reading__copy p:not(.eyebrow) { color: var(--color-text-secondary); font-size: 1.05rem; line-height: 1.75; }
.rf-reading__visual { max-width: 490px; width: 100%; margin: 0 auto; }
.rf-reading__visual img { width: 100%; max-height: 520px; aspect-ratio: 1.04; object-fit: cover; object-position: center 58%; border-radius: var(--radius); }
.rf-reading__visual figcaption { margin-top: 9px; color: var(--color-muted); font-size: .75rem; line-height: 1.4; text-align: center; }
.rf-decisions { background: var(--color-background); }
.rf-judgment { background: var(--color-surface-soft); }
.rf-judgment .rf-card { background: #fff; }
.rf-contexts__note { max-width: 865px; margin: 23px auto 0; padding: 24px; border: 1px solid var(--color-border); border-radius: var(--radius); background: var(--color-background); text-align: center; }
.rf-contexts__note h3 { margin-bottom: 9px; font-size: 1.38rem; font-weight: 500; letter-spacing: -.025em; }
.rf-contexts__note p { margin: 0; color: var(--color-text-secondary); line-height: 1.7; }
.rf-scope { background: var(--color-background); }
.rf-process__list { display: grid; gap: 0; max-width: 910px; margin: 0 auto; padding: 0; list-style: none; counter-reset: rf-step; border-top: 1px solid var(--color-border); }
.rf-process__list li { display: grid; grid-template-columns: 39px minmax(0,1fr); gap: 2px 14px; min-width: 0; padding: 22px 0; border-bottom: 1px solid var(--color-border); counter-increment: rf-step; }
.rf-process__list li::before { content: counter(rf-step, decimal-leading-zero); grid-row: 1 / span 2; padding-top: 4px; color: var(--color-accent-dark); font-size: .78rem; font-weight: 700; letter-spacing: .1em; }
.rf-process__list h3 { margin-bottom: 4px; font-size: 1.22rem; font-weight: 500; letter-spacing: -.02em; }
.rf-process__list p { grid-column: 2; margin: 0; color: var(--color-text-secondary); line-height: 1.65; }
.rf-projects { background: var(--color-forest); color: #fff; }
.rf-projects .eyebrow { color: #e0eadf; }
.rf-projects .rf-heading > p:last-child:not(.eyebrow) { color: #f1f4ef; }
.rf-project { display: flex; flex-direction: column; min-height: 230px; padding: 30px; border: 1px solid rgba(255,255,255,.38); border-radius: var(--radius); background: rgba(255,255,255,.055); }
.rf-project span { color: #e5ede2; font-size: .72rem; font-weight: 700; letter-spacing: .16em; }
.rf-project h3 { margin: 25px 0 8px; font-size: clamp(1.55rem, 4vw, 2.05rem); font-weight: 400; letter-spacing: -.035em; line-height: 1.25; }
.rf-project p { margin: 0; color: #e7ede6; line-height: 1.6; }
.rf-projects .text-link { color: #fff; border-color: rgba(255,255,255,.8); }
.rf-projects .text-link:hover { color: #fff; border-color: #fff; }
.rf-investment { background: var(--color-surface-soft); }
.rf-authority { background: var(--color-background); }
.rf-authority .text-link { margin-top: 17px; }
.rf-faq__inner { max-width: 930px; }
.rf-faq .faq__items { margin-bottom: 24px; }
.rf-faq .faq-item p { line-height: 1.7; }
.rf-form__inner { max-width: 900px; }
.rf-form__availability { margin: 0 auto 28px; padding: 19px 22px; border: 1px solid var(--color-border); border-radius: var(--radius-small); background: var(--color-background); }
.rf-form__availability p { margin: 0; color: var(--color-text-secondary); line-height: 1.65; }
.rf-form__availability strong { color: var(--color-text); }
.rf-form__fields { display: grid; gap: 26px; }
.rf-form__fields fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.rf-form__fields legend { margin-bottom: 13px; font-size: 1.36rem; font-weight: 500; letter-spacing: -.025em; }
.rf-form__fields fieldset > p { margin: -4px 0 17px; color: var(--color-text-secondary); }
.rf-form__grid { display: grid; gap: 16px; }
.rf-field { display: flex; flex-direction: column; min-width: 0; gap: 7px; }
.rf-field label, .rf-form__consent label { color: var(--color-text); font-size: .94rem; font-weight: 650; }
.rf-field input, .rf-field select, .rf-field textarea { display: block; width: 100%; min-width: 0; min-height: 48px; padding: 11px 13px; border: 1px solid #9baa9b; border-radius: var(--radius-small); background: #fff; color: var(--color-text); font: inherit; line-height: 1.4; }
.rf-field textarea { min-height: 135px; resize: vertical; }
.rf-field input::placeholder, .rf-field textarea::placeholder { color: #5a6a5b; opacity: 1; }
.rf-field input:focus-visible, .rf-field select:focus-visible, .rf-field textarea:focus-visible, .rf-form__consent input:focus-visible { outline: 2px solid var(--color-accent-dark); outline-offset: 2px; }
.rf-optional { color: var(--color-muted); font-size: .78rem; font-weight: 400; }
.rf-form__consent { display: grid; grid-template-columns: 22px minmax(0,1fr); gap: 11px; align-items: start; }
.rf-form__consent input { width: 20px; height: 20px; margin: 2px 0 0; accent-color: var(--color-accent-dark); }
.rf-form__honeypot { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.rf-form__actions { display: flex; flex-wrap: wrap; align-items: center; gap: 17px 25px; }
.rf-form__actions .button:disabled { background: #405246; color: #fff; opacity: .9; cursor: not-allowed; transform: none; }
.rf-form__actions p { max-width: 390px; margin: 0; color: var(--color-text-secondary); font-size: .9rem; line-height: 1.6; }
.rf-error { color: #8d312c; }
.rf-final .rf-actions { justify-content: flex-start; }
.rf-final .rf-link-light { flex-shrink: 0; }
@media (min-width: 640px) {
  .rf-grid--two, .rf-form__grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .rf-field--full { grid-column: 1 / -1; }
}
@media (min-width: 768px) {
  .rf-grid--three { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .rf-hero { min-height: 630px; }
  .rf-reading__inner { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 56px; }
  .rf-reading__visual { margin: 0; }
  .rf-card { padding: 30px; }
}
@media (min-width: 1024px) {
  .rf-hero__inner { padding-block: 100px; }
  .rf-hero { min-height: 650px; }
}
@media (max-width: 639px) {
  .rf-hero .button, .rf-final .button { width: 100%; }
  .rf-hero__inner { padding-block: 68px 96px; }
  .rf-hero h1 { font-size: clamp(2.45rem, 10vw, 3.8rem); }
  .rf-hero__inner > p:not(.eyebrow) { font-size: 1rem; }
  .rf-actions { gap: 12px; }
  .rf-final .rf-actions { justify-content: center; }
  .rf-final .rf-link-light { text-align: center; }
}
@media (max-width: 360px) {
  .rf-hero { min-height: 620px; }
  .rf-hero h1 { font-size: 2.43rem; }
  .rf-card { padding: 22px; }
  .rf-form__availability { padding: 17px; }
}
@media (prefers-reduced-motion: reduce) {
  .rf-page .button { transition: none; }
}
