/* ──────────────────────────────────────────────────────────────────
   Weight Loss Clinic — Assessment / Eligibility Quiz
   Dedicated conversion shell. The active step is always cleanly
   visible inside the viewport; the site footer is pushed off-screen
   until the user intentionally scrolls past the assessment.
   ────────────────────────────────────────────────────────────────── */

/* ══ Shell ═════════════════════════════════════════════════════════ */

.fc-assessment {
    position: relative;
    min-height: 100vh;
    display: flex;
    align-items: flex-start;
    background: var(--fc-cream, #FAF8F5);
    padding: clamp(1rem, 3vw, 2.5rem) clamp(1rem, 3vw, 2.5rem) clamp(2rem, 4vw, 4rem);
    isolation: isolate;
}

.fc-assessment__shell {
    /* One height for the photo panel on every step. The form card uses it
       as its minimum, so short steps line up with the photo; taller steps
       (health question, results) grow the card while the photo keeps its
       size and stays in view beside it. */
    --fc-quiz-panel-h: 580px;
    width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1.6fr) minmax(0, 1fr);
    gap: clamp(1.5rem, 3vw, 3rem);
    align-items: start;
}

/* Form card dominates. The side panel is a quiet trust signal. */
.fc-assessment__form {
    background: #FFFFFF;
    border-radius: 20px;
    border: 1px solid rgba(20, 40, 30, 0.06);
    box-shadow:
        0 20px 50px -28px rgba(20, 40, 30, 0.22),
        0 8px 24px -16px rgba(20, 40, 30, 0.10);
    padding: clamp(1.25rem, 2.5vw, 2rem) clamp(1.5rem, 3vw, 2.5rem) clamp(1.5rem, 3vw, 2.5rem);
    display: flex;
    flex-direction: column;
    min-height: var(--fc-quiz-panel-h);
}

.fc-assessment__sidepanel {
    position: sticky;
    top: calc(var(--fc-quiz-sticky-top, 96px) + 1rem);
    height: var(--fc-quiz-panel-h);
    border-radius: 20px;
    overflow: hidden;
    background: #1F1D1A;
}

@media (max-width: 1024px) {
    .fc-assessment__shell {
        grid-template-columns: 1fr;
    }
    .fc-assessment__sidepanel {
        display: none;
    }
    .fc-assessment__form {
        min-height: calc(100vh - 6rem);
    }
}

@media (max-width: 600px) {
    .fc-assessment {
        padding: 1rem 0.875rem 2rem;
    }
    .fc-assessment__form {
        border-radius: 14px;
        padding: 1.25rem 1.125rem 1.5rem;
        min-height: calc(100vh - 4rem);
    }
}

/* ══ Side panel (desktop trust visual) ═════════════════════════════ */

.fc-intake__image-layer {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center 30%;
    background-repeat: no-repeat;
    opacity: 0;
    transition: opacity 0.6s ease;
    z-index: 1;
}
.fc-intake__image-layer--active { opacity: 1; }

.fc-intake__image-gradient {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(180deg, rgba(21, 34, 28, 0.15) 0%, rgba(21, 34, 28, 0.05) 35%, rgba(21, 34, 28, 0.65) 100%);
    z-index: 2;
    pointer-events: none;
}

.fc-assessment__sidepanel-overlay {
    position: absolute;
    inset: 0;
    z-index: 3;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 1.5rem 1.75rem;
    color: #FFFFFF;
    pointer-events: none;
}

.fc-intake__imagequote {
    max-width: 360px;
    transition: opacity 0.3s ease;
}
.fc-intake__imagequote--fading { opacity: 0; }

.fc-intake__imagequote-text {
    font-family: var(--fc-font-display, 'DM Serif Display', Georgia, serif);
    font-size: clamp(1.0625rem, 1.4vw, 1.375rem);
    line-height: 1.3;
    margin: 0 0 0.5rem;
    font-weight: 400;
}

.fc-intake__imagequote-attribution {
    font-size: 0.6875rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    opacity: 0.8;
    margin: 0;
}

/* ══ Brand row + progress header ═══════════════════════════════════ */

.fc-intake__progress-header {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.fc-intake__brand-row {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    color: var(--fc-black, #1A1A18);
    font-family: var(--fc-font-display, Georgia, serif);
    font-size: 1.0625rem;
    line-height: 1;
    font-weight: 400;
    letter-spacing: -0.01em;
}
.fc-intake__brand-mark {
    color: var(--fc-green, #1B7A5A);
    display: inline-flex;
    align-items: center;
}

.fc-intake__progress-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    font-family: var(--fc-font-body);
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.08em;
    color: var(--fc-gray-700, #4A4744);
    text-transform: uppercase;
}

.fc-intake__progress-pct {
    color: var(--fc-green, #1B7A5A);
    font-variant-numeric: tabular-nums;
}

.fc-intake__progress-track {
    width: 100%;
    height: 3px;
    background: var(--fc-gray-100, #E8E4DF);
    border-radius: 2px;
    overflow: hidden;
}
.fc-intake__progress-fill {
    height: 100%;
    width: 0;
    background: var(--fc-green, #1B7A5A);
    border-radius: 2px;
    transition: width 0.55s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ══ Topbar (back + trust) ═════════════════════════════════════════ */

.fc-intake__topbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin-bottom: 1rem;
    min-height: 22px;
}

.fc-intake__back {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    background: var(--fc-warm-white, #FDFCFA);
    border: 1px solid var(--fc-gray-300, #D9D4CE);
    border-radius: 999px;
    cursor: pointer;
    color: var(--fc-gray-600, #5C5854);
    font-family: var(--fc-font-body);
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1;
    padding: 0.5rem 1rem 0.5rem 0.8rem;
    transition: color 0.2s ease, border-color 0.2s ease, background 0.2s ease;
}
.fc-intake__back:hover {
    color: var(--fc-black, #1A1A18);
    border-color: var(--fc-gray-500, #7A7672);
    background: #FFFFFF;
}
.fc-intake__back:focus-visible {
    outline: 2px solid var(--fc-green, #1B7A5A);
    outline-offset: 4px;
    border-radius: 4px;
}

.fc-intake__trust {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--fc-gray-500, #7A7672);
    letter-spacing: 0.02em;
}
.fc-intake__trust svg { color: var(--fc-green, #1B7A5A); }

/* ══ Viewport (active step) ════════════════════════════════════════ */

.fc-intake__viewport {
    position: relative;
    flex: 1;
    display: flex;
    flex-direction: column;
    min-height: 0;
}

.fc-intake__screen {
    animation: fcIntakeFadeIn 0.35s cubic-bezier(0.25, 0.46, 0.45, 0.94) both;
    display: flex;
    flex-direction: column;
    flex: 1;
}

@keyframes fcIntakeFadeIn {
    from { opacity: 0; transform: translateY(6px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ══ Trust row at the bottom of the form card ══════════════════════ */

.fc-assessment__trustrow {
    margin-top: auto;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(20, 40, 30, 0.06);
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem 1.25rem;
    font-size: 0.75rem;
    color: var(--fc-gray-500, #7A7672);
}
.fc-assessment__trustrow-item {
    display: inline-flex;
    align-items: center;
    gap: 0.375rem;
}
.fc-assessment__trustrow-item svg { color: var(--fc-green, #1B7A5A); }

@media (max-width: 480px) {
    .fc-assessment__trustrow {
        font-size: 0.6875rem;
        gap: 0.4rem 0.875rem;
    }
}

/* ══ Shared screen typography ══════════════════════════════════════ */

.fc-intake__eyebrow {
    display: inline-block;
    font-family: var(--fc-font-body);
    font-size: 0.6875rem;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--fc-green, #1B7A5A);
    margin-bottom: 0.625rem;
}

.fc-intake__headline {
    font-family: var(--fc-font-display, 'DM Serif Display', Georgia, serif);
    font-size: clamp(1.5rem, 2.6vw, 2rem);
    line-height: 1.15;
    color: var(--fc-black, #1A1A18);
    margin: 0 0 0.75rem;
    font-weight: 400;
    letter-spacing: -0.01em;
}
.fc-intake__headline--h2 {
    font-size: clamp(1.375rem, 2.2vw, 1.75rem);
    line-height: 1.2;
}

@media (max-width: 480px) {
    .fc-intake__headline    { font-size: 1.5rem; }
    .fc-intake__headline--h2 { font-size: 1.3125rem; }
}

.fc-intake__body {
    font-family: var(--fc-font-body);
    font-size: 0.9375rem;
    line-height: 1.55;
    color: var(--fc-gray-700, #4A4744);
    margin: 0 0 1.25rem;
}
.fc-intake__body--muted {
    color: var(--fc-gray-500, #7A7672);
    font-size: 0.875rem;
    margin-bottom: 1rem;
}

/* ══ Welcome screen ════════════════════════════════════════════════ */

.fc-intake__screen--welcome .fc-intake__meta {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    display: flex;
    flex-wrap: wrap;
    gap: 0.625rem 1.5rem;
}
.fc-intake__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--fc-gray-700, #4A4744);
}
.fc-intake__meta-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    height: 24px;
    border-radius: 50%;
    background: rgba(27, 122, 90, 0.1);
    color: var(--fc-green, #1B7A5A);
}

.fc-intake__cta {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 220px;
    margin-top: auto;
    margin-bottom: 0.875rem;
}

@media (max-width: 560px) {
    .fc-intake__cta { width: 100%; min-width: 0; }
}

.fc-intake__disclaimer {
    font-size: 0.75rem;
    line-height: 1.55;
    color: var(--fc-gray-500, #7A7672);
    margin: 0 0 0.5rem;
    max-width: 540px;
}

/* ══ Interstitial screen ═══════════════════════════════════════════ */

.fc-intake__points {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}
.fc-intake__point {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 1rem;
    background: var(--fc-cream, #FAF8F5);
    border: 1px solid rgba(20, 40, 30, 0.05);
    border-radius: 10px;
}
.fc-intake__point-check {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    border-radius: 50%;
    background: var(--fc-green, #1B7A5A);
    color: var(--fc-white);
    flex-shrink: 0;
    margin-top: 1px;
}
.fc-intake__point-body { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.fc-intake__point-title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--fc-black, #1A1A18);
    line-height: 1.3;
}
.fc-intake__point-text {
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--fc-gray-700, #4A4744);
}

/* ══ Question screen ═══════════════════════════════════════════════ */

.fc-intake__screen--question .fc-quiz__options {
    margin-top: 0.5rem;
}

/* ── Option Buttons ───────────────────────────────────────────────── */

.fc-quiz__options {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
}
.fc-quiz__options--multi {
    grid-template-columns: 1fr;
}

@media (max-width: 640px) {
    .fc-quiz__options { grid-template-columns: 1fr; }
}

.fc-quiz__option {
    position: relative;
    display: flex;
    align-items: center;
    gap: 0.625rem;
    width: 100%;
    text-align: left;
    background: var(--fc-white, #FFFFFF);
    border: 1.5px solid var(--fc-gray-100, #E8E4DF);
    border-radius: 10px;
    padding: 0.75rem 0.875rem;
    font-family: var(--fc-font-body);
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--fc-black, #1A1A18);
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
    min-height: 46px;
}

.fc-quiz__option:hover {
    border-color: var(--fc-green-light, #2E936F);
    background: rgba(27, 122, 90, 0.025);
}

.fc-quiz__option:focus-visible {
    outline: none;
    border-color: var(--fc-green, #1B7A5A);
    box-shadow: 0 0 0 3px rgba(27, 122, 90, 0.18);
}

.fc-quiz__option.is-selected {
    border-color: var(--fc-green, #1B7A5A);
    background: linear-gradient(180deg, rgba(27, 122, 90, 0.10) 0%, rgba(27, 122, 90, 0.06) 100%);
    box-shadow:
        inset 0 0 0 1px var(--fc-green, #1B7A5A),
        0 0 0 4px rgba(27, 122, 90, 0.08),
        0 8px 24px -12px rgba(27, 122, 90, 0.30);
    transform: translateY(-1px);
}

/* Brief affirmation pulse before auto-advance on single-select */
.fc-quiz__option.is-firing {
    animation: fc-option-pulse 480ms cubic-bezier(0.32, 0.72, 0, 1);
}
@keyframes fc-option-pulse {
    0%   { box-shadow: inset 0 0 0 1px var(--fc-green, #1B7A5A), 0 0 0 0 rgba(27, 122, 90, 0.45); }
    45%  { box-shadow: inset 0 0 0 1px var(--fc-green, #1B7A5A), 0 0 0 12px rgba(27, 122, 90, 0.00); }
    100% { box-shadow: inset 0 0 0 1px var(--fc-green, #1B7A5A), 0 8px 24px -12px rgba(27, 122, 90, 0.30); }
}

.fc-quiz__option-arrow {
    margin-left: auto;
    color: var(--fc-gray-300, #B8B4AE);
    display: inline-flex;
    align-items: center;
    transition: color 0.18s ease, transform 0.18s ease;
}
.fc-quiz__option:hover .fc-quiz__option-arrow {
    color: var(--fc-green, #1B7A5A);
    transform: translateX(2px);
}
.fc-quiz__option.is-selected .fc-quiz__option-arrow {
    color: var(--fc-green, #1B7A5A);
    transform: translateX(2px);
}

/* Multiselect check */
.fc-quiz__option-check {
    width: 18px;
    height: 18px;
    border-radius: 5px;
    border: 1.5px solid var(--fc-gray-300, #B8B4AE);
    flex-shrink: 0;
    background: var(--fc-white);
    position: relative;
    transition: all 0.18s ease;
}
.fc-quiz__option-check::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 5px;
    width: 4px;
    height: 8px;
    border: solid var(--fc-white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    opacity: 0;
    transition: opacity 0.15s ease;
}
.fc-quiz__options--multi .fc-quiz__option.is-selected .fc-quiz__option-check {
    background: var(--fc-green, #1B7A5A);
    border-color: var(--fc-green, #1B7A5A);
}
.fc-quiz__options--multi .fc-quiz__option.is-selected .fc-quiz__option-check::after { opacity: 1; }
.fc-quiz__option-label { flex: 1; min-width: 0; }

/* ── Number input (kg / cm) ───────────────────────────────────────── */

.fc-quiz__input-wrap {
    position: relative;
    display: flex;
    align-items: center;
    margin-top: 0.75rem;
    max-width: 280px;
}

.fc-quiz__input {
    width: 100%;
    padding: 0.875rem 1.125rem;
    padding-right: 3rem;
    font-family: var(--fc-font-body);
    font-size: 1.0625rem;
    font-weight: 500;
    color: var(--fc-black, #1A1A18);
    background: var(--fc-white, #FFFFFF);
    border: 1.5px solid var(--fc-gray-100, #E8E4DF);
    border-radius: 10px;
    outline: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
    -moz-appearance: textfield;
    appearance: none;
    -webkit-appearance: none;
}
.fc-quiz__input::-webkit-outer-spin-button,
.fc-quiz__input::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
.fc-quiz__input:focus {
    border-color: var(--fc-green, #1B7A5A);
    box-shadow: 0 0 0 3px rgba(27, 122, 90, 0.15);
}

.fc-quiz__suffix {
    position: absolute;
    right: 1rem;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--fc-gray-500, #7A7672);
    pointer-events: none;
}

/* ── Contact details (name + email + phone) ──────────────────────── */

.fc-quiz__contact {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
    margin-top: 0.75rem;
}

.fc-quiz__field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.fc-quiz__field-label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--fc-gray-700, #4A4744);
    text-transform: uppercase;
}

.fc-quiz__field-optional {
    color: var(--fc-gray-500, #7A7672);
    font-weight: 400;
    text-transform: none;
    letter-spacing: 0;
}

.fc-quiz__input--text {
    width: 100%;
    max-width: none;
    padding: 0.75rem 1rem;
    padding-right: 1rem;
    font-family: var(--fc-font-body);
    font-size: 0.9375rem;
    font-weight: 500;
    color: var(--fc-black, #1A1A18);
    background: var(--fc-white, #FFFFFF);
    border: 1.5px solid var(--fc-gray-100, #E8E4DF);
    border-radius: 10px;
    outline: none;
    transition: border-color 0.18s ease, box-shadow 0.18s ease;
}
.fc-quiz__input--text:focus {
    border-color: var(--fc-green, #1B7A5A);
    box-shadow: 0 0 0 3px rgba(27, 122, 90, 0.15);
}

/* ── Consent checkbox ─────────────────────────────────────────────── */

.fc-quiz__consent {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
    margin-top: 0.75rem;
    padding: 0.875rem 1rem;
    background: var(--fc-cream, #FAF8F5);
    border: 1px solid rgba(20, 40, 30, 0.06);
    border-radius: 10px;
    cursor: pointer;
    transition: border-color 0.18s ease, background 0.18s ease;
}
.fc-quiz__consent:hover {
    border-color: var(--fc-green-light, #2E936F);
}
.fc-quiz__consent-input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}
.fc-quiz__consent-box {
    width: 20px;
    height: 20px;
    border-radius: 5px;
    border: 1.5px solid var(--fc-gray-300, #B8B4AE);
    background: var(--fc-white);
    flex-shrink: 0;
    margin-top: 1px;
    position: relative;
    transition: all 0.18s ease;
}
.fc-quiz__consent-box::after {
    content: '';
    position: absolute;
    top: 2px;
    left: 6px;
    width: 5px;
    height: 10px;
    border: solid var(--fc-white);
    border-width: 0 2px 2px 0;
    transform: rotate(45deg);
    opacity: 0;
    transition: opacity 0.15s ease;
}
.fc-quiz__consent-input:checked ~ .fc-quiz__consent-box {
    background: var(--fc-green, #1B7A5A);
    border-color: var(--fc-green, #1B7A5A);
}
.fc-quiz__consent-input:checked ~ .fc-quiz__consent-box::after { opacity: 1; }
.fc-quiz__consent-input:focus-visible ~ .fc-quiz__consent-box {
    box-shadow: 0 0 0 3px rgba(27, 122, 90, 0.18);
}
.fc-quiz__consent-text {
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--fc-black, #1A1A18);
}
.fc-quiz__consent-fine {
    font-size: 0.75rem;
    line-height: 1.55;
    color: var(--fc-gray-500, #7A7672);
    margin: 0.625rem 0 0;
}

/* ── Results screen: contact details + consent ───────────────────── */

.fc-quiz__group {
    border: 0;
    margin: 0;
    padding: 0;
    min-width: 0;
}
.fc-quiz__details {
    margin: 0 0 1.25rem;
    padding-top: 1.25rem;
    border-top: 1px solid rgba(20, 40, 30, 0.08);
}
/* Floated so the legend is laid out like a normal heading instead of
   cutting through the fieldset's top border. */
.fc-quiz__group-title {
    float: left;
    width: 100%;
    padding: 0;
    margin: 0 0 0.25rem;
    font-family: var(--fc-font-body);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--fc-black, #1A1A18);
}
.fc-quiz__group-title + * { clear: both; }
.fc-quiz__group-help {
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--fc-gray-500, #7A7672);
    margin: 0 0 0.625rem;
}
.fc-quiz__group .fc-quiz__contact { margin-top: 0.5rem; }

.fc-quiz__error {
    font-size: 0.8125rem;
    font-weight: 500;
    line-height: 1.4;
    color: #A04040;
    margin: 0.5rem 0 0;
}
.fc-quiz__contact .fc-quiz__error { margin-top: -0.375rem; }
.fc-quiz__group-help + .fc-quiz__error { margin-top: 0; }
.fc-quiz__input--text[aria-invalid="true"] { border-color: #C25555; }
.fc-quiz__consent-input[aria-invalid="true"] ~ .fc-quiz__consent-box { border-color: #C25555; }

/* ══ Action row (continue / back) ══════════════════════════════════ */

.fc-quiz__actions {
    display: flex;
    align-items: center;
    gap: 0.875rem;
    margin-top: auto;
    padding-top: 1.25rem;
}
.fc-quiz__actions--solo { justify-content: flex-end; }

.fc-quiz__continue {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 200px;
    flex: 1;
    max-width: 300px;
    margin-left: auto;
}

.fc-quiz__continue[disabled] {
    opacity: 0.45;
    cursor: not-allowed;
    pointer-events: none;
}

@media (max-width: 560px) {
    .fc-quiz__continue { max-width: none; }
}

/* ══ Results screen ════════════════════════════════════════════════ */

/* Outcome banner: the one thing the patient must not miss. */
.fc-result-banner {
    display: flex;
    align-items: flex-start;
    gap: 1rem;
    margin: 0.25rem 0 1.5rem;
    padding: 1.125rem 1.25rem;
    border-radius: 14px;
    border: 1px solid transparent;
}
.fc-result-banner--eligible {
    background: linear-gradient(135deg, rgba(27, 122, 90, 0.10) 0%, rgba(27, 122, 90, 0.04) 100%);
    border-color: rgba(27, 122, 90, 0.28);
}
.fc-result-banner--review {
    background: #FBF5E9;
    border-color: rgba(176, 128, 40, 0.32);
}
.fc-result-banner__icon {
    flex-shrink: 0;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: #FFFFFF;
}
.fc-result-banner--eligible .fc-result-banner__icon { background: var(--fc-green, #1B7A5A); }
.fc-result-banner--review .fc-result-banner__icon   { background: #B08028; }
.fc-result-banner__text { min-width: 0; }
.fc-result-banner__title {
    font-family: var(--fc-font-display, 'DM Serif Display', Georgia, serif);
    font-size: clamp(1.375rem, 2.2vw, 1.75rem);
    font-weight: 400;
    line-height: 1.2;
    color: var(--fc-black, #1A1A18);
    margin: 0.125rem 0 0.375rem;
}
.fc-result-banner__note {
    font-size: 0.875rem;
    line-height: 1.5;
    color: var(--fc-gray-700, #4A4744);
    margin: 0;
}

.fc-result__headline {
    font-family: var(--fc-font-body);
    font-size: 1.0625rem;
    font-weight: 600;
    line-height: 1.35;
    color: var(--fc-black, #1A1A18);
    margin: 0 0 0.375rem;
}
.fc-result__intro {
    font-size: 0.9375rem;
    line-height: 1.6;
    color: var(--fc-gray-700, #4A4744);
    margin: 0 0 1.25rem;
}

/* What happens next: numbered timeline with a connecting line. */
.fc-result__steps {
    list-style: none;
    padding: 0;
    margin: 0 0 1.25rem;
}
.fc-result__step {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 0.875rem;
    padding-bottom: 0.875rem;
}
.fc-result__step:last-child { padding-bottom: 0; }
.fc-result__step:not(:last-child)::before {
    content: '';
    position: absolute;
    left: 13px;
    top: 28px;
    bottom: 2px;
    width: 2px;
    background: rgba(27, 122, 90, 0.18);
}
.fc-result__step-num {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--fc-green, #1B7A5A);
    background: #FFFFFF;
    border: 2px solid var(--fc-green, #1B7A5A);
}
.fc-result__step:first-child .fc-result__step-num {
    color: #FFFFFF;
    background: var(--fc-green, #1B7A5A);
}
.fc-result__step > div { flex: 1; min-width: 0; padding-top: 3px; }
.fc-result__step strong {
    display: block;
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--fc-black, #1A1A18);
    margin-bottom: 2px;
}
.fc-result__step p {
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--fc-gray-700, #4A4744);
    margin: 0;
}

/* BMI: a quiet fact row. */
.fc-result__bmi {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    gap: 0.25rem 0.75rem;
    padding: 0.75rem 1rem;
    margin: 0 0 1.25rem;
    background: var(--fc-cream, #FAF8F5);
    border-radius: 10px;
}
.fc-result__bmi-label {
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--fc-gray-700, #4A4744);
}
.fc-result__bmi-value {
    font-family: var(--fc-font-display, 'DM Serif Display', Georgia, serif);
    font-size: 1.5rem;
    font-weight: 400;
    line-height: 1;
    color: var(--fc-black, #1A1A18);
}
.fc-result__bmi-note {
    flex-basis: 100%;
    font-size: 0.75rem;
    color: var(--fc-gray-500, #7A7672);
}

.fc-intake__screen--pathway .fc-intake__cta {
    width: 100%;
    margin-top: 0.25rem;
}

@media (max-width: 600px) {
    .fc-result-banner {
        gap: 0.75rem;
        padding: 1rem;
    }
    .fc-result-banner__icon {
        width: 38px;
        height: 38px;
    }
}

.fc-intake__fine {
    font-size: 0.75rem;
    color: var(--fc-gray-500, #7A7672);
    margin: 0.5rem 0 0;
}

.fc-intake__compliance {
    font-size: 0.6875rem;
    line-height: 1.55;
    color: var(--fc-gray-500, #7A7672);
    margin: 1rem 0 0;
    padding-top: 0.875rem;
    border-top: 1px solid rgba(20, 40, 30, 0.06);
}

/* ══ Result — Unsuitable ═══════════════════════════════════════════ */

.fc-intake__screen--result { text-align: left; }
.fc-intake__result-icon {
    width: 44px;
    height: 44px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.625rem;
}
.fc-intake__result-icon--unsuitable {
    background: rgba(180, 80, 80, 0.1);
    color: #A04040;
}

/* ══ Mobile: keep the step and its action above the fold ═══════════
   The card used to stretch to calc(100vh - 4rem) with the action row
   pushed to its bottom (margin-top: auto). Under the site header, and
   with iOS 100vh measuring the toolbar-hidden height, that put Continue
   below the fold behind a band of empty card. On phones the card now
   hugs its content, spacing is tighter, and the action row is sticky to
   the bottom edge on long steps. Sticky (not fixed) keeps it in normal
   flow, so it never covers the end of the content. Scoped to #fc-quiz:
   the intake (#fc-intake) shares this stylesheet. */
@media (max-width: 600px) {
    #fc-quiz.fc-assessment {
        min-height: 100svh;
        padding: 0.625rem 0.625rem 1.5rem;
    }
    #fc-quiz .fc-assessment__form {
        min-height: 0;
        padding: 1rem 1rem 1.125rem;
    }
    #fc-quiz .fc-intake__progress-header {
        gap: 0.375rem;
        margin-bottom: 0.625rem;
    }
    #fc-quiz .fc-intake__topbar { margin-bottom: 0.75rem; }
    #fc-quiz .fc-intake__back { padding: 0.4rem 0.875rem 0.4rem 0.7rem; }

    /* The progress row already reads "Question N of M". */
    #fc-quiz .fc-intake__screen--question > .fc-intake__eyebrow { display: none; }

    #fc-quiz .fc-intake__headline { margin-bottom: 0.5rem; }
    #fc-quiz .fc-intake__body { margin-bottom: 1rem; }
    #fc-quiz .fc-intake__body--muted { margin-bottom: 0.75rem; }
    #fc-quiz .fc-intake__screen--question .fc-quiz__options { margin-top: 0.25rem; }
    #fc-quiz .fc-quiz__option {
        min-height: 44px;
        padding: 0.625rem 0.875rem;
    }
    #fc-quiz .fc-quiz__input-wrap { margin-top: 0.5rem; }
    #fc-quiz .fc-intake__cta { margin-top: 0.5rem; }

    #fc-quiz .fc-quiz__actions {
        position: sticky;
        bottom: -1px; /* never fully visible while stuck: quiz.js flags .is-stuck */
        z-index: 5;
        margin: 0.5rem -1rem 0;
        padding: 0.75rem 1rem calc(0.75rem + 1px + env(safe-area-inset-bottom, 0px));
        background: #FFFFFF;
        transition: box-shadow 0.2s ease;
    }
    #fc-quiz .fc-quiz__actions.is-stuck {
        box-shadow: 0 -12px 16px -14px rgba(20, 40, 30, 0.28);
    }
    /* In flow (not stuck) the bar needs no backdrop; painting one there
       leaves hairline seams at its edges in Chrome. */
    #fc-quiz .fc-quiz__actions[data-sticky-watch]:not(.is-stuck) {
        background: transparent;
    }

    #fc-quiz .fc-assessment__trustrow { padding-top: 1rem; }
}

/* ══ Hide the site footer below the first viewport on the quiz ════
   The .fc-assessment wrapper is min-height: 100vh so the footer
   naturally sits below the fold. We also pull the body's overflow
   anchor up to prevent jumpy scroll on input focus. */
body.page-template-template-quiz {
    scroll-padding-top: 0;
}

/* ══ Reduced motion ════════════════════════════════════════════════ */

@media (prefers-reduced-motion: reduce) {
    .fc-intake__screen,
    .fc-intake__image-layer,
    .fc-intake__imagequote,
    .fc-intake__progress-fill,
    .fc-quiz__option {
        transition: none;
        animation: none;
    }
    .fc-quiz__option.is-firing { animation: none; }
    .fc-quiz__option.is-selected { transform: none; }
}
