/* The Annuity Couple's own theme. Shared files supply markup and behavior only.
   Exact brand colors; dark bronze is reserved for readable text on light surfaces. */
html:root {
    --bg: #F5F0E7;
    --bg-soft: #F5F0E7;
    --bg-tint: #F5F0E7;
    --ink: #302824;
    --ink-2: #302824;
    --ink-3: #302824;
    --line: #B59A73;
    --accent: #153D40;
    --accent-strong: #153D40;
    --accent-bright: #153D40;
    --accent-soft: #F5F0E7;
    --accent-line: #153D40;
    --accent-glow: transparent;
    --accent-shadow: #153D40;
    --on-accent: #F5F0E7;
    --on-accent-muted: #F5F0E7;
    --scrim: #153D40;
    --glass: #F5F0E7;
    --gold: #B59A73;
    --gold-strong: #79603F;
    --gold-soft: #F5F0E7;
    --gold-line: #B59A73;
    --good: #153D40;
    --danger: #79603F;
    --shadow-sm: none;
    --shadow-md: none;
    --shadow-lg: none;
    --shadow-up: none;
    --font-body: 'Source Sans 3', Arial, sans-serif;
    --font-head: 'Source Sans 3', Arial, sans-serif;
    --font-serif: 'Lora', Georgia, serif;
    color-scheme: light;
    scroll-behavior: auto;
    scrollbar-color: #153D40 #F5F0E7;
}
body { font-size: 19px; line-height: 1.75; }
body *, body *::before, body *::after { animation: none; transition: none; }
body h1, body h2 { font-family: var(--font-serif); font-weight: 500; letter-spacing: -0.025em; line-height: 1.2; }
body :focus-visible { outline: 3px solid var(--accent); outline-offset: 4px; }
body ::selection { background: var(--accent); color: var(--on-accent); }
body input::placeholder { color: rgba(48, 40, 36, 0.72); opacity: 1; }
body input:autofill { background: var(--bg); color: var(--ink); }
body input:-webkit-autofill { -webkit-text-fill-color: var(--ink); -webkit-box-shadow: 0 0 0 1000px #F5F0E7 inset; caret-color: var(--ink); }
main [id] { scroll-margin-top: 100px; }

/* Ivory header: the shared own-brand markup needs only these layout rules. */
body .rw-topbar { background: var(--bg); border-bottom: 1px solid var(--gold); backdrop-filter: none; }
body .rw-topbar-inner { min-height: 86px; gap: 18px; }
body .rw-brand { flex-shrink: 0; }
body .rw-logo { width: 210px; height: 56px; object-fit: contain; }
body .rw-nav, body .rw-nav-cta { display: none; }
body .rw-nav a { color: var(--accent); font-size: 17px; font-weight: 600; text-decoration: none; }
body .rw-nav a:hover { text-decoration: underline; text-underline-offset: 5px; }
body .rw-nav-cta, body .rw-menu-panel .rw-menu-cta {
    align-items: center; justify-content: center; min-height: 52px; padding: 12px 20px;
    border-radius: 999px; background: var(--accent); color: var(--on-accent);
    font-size: 18px; font-weight: 700; text-decoration: none; text-align: center;
}
body .rw-nav-cta:hover, body .rw-menu-panel .rw-menu-cta:hover { background: var(--ink); }
body .rw-menu { flex-shrink: 0; }
body .rw-menu-btn { display: flex; gap: 8px; align-items: center; min-height: 48px; padding: 8px 12px; border: 1px solid var(--accent); border-radius: 12px; color: var(--accent); font-size: 18px; font-weight: 600; list-style: none; cursor: pointer; }
body .rw-menu-btn::-webkit-details-marker { display: none; }
body .rw-menu-btn svg { width: 24px; height: 24px; }
body .rw-menu[open] .rw-menu-btn { background: var(--accent); color: var(--on-accent); }
body .rw-menu-panel { position: absolute; top: 100%; left: 0; right: 0; padding: 12px 24px 24px; display: flex; flex-direction: column; background: var(--bg); border-bottom: 1px solid var(--gold); }
body .rw-menu-panel a { display: flex; align-items: center; min-height: 52px; padding: 8px 0; color: var(--accent); border-bottom: 1px solid var(--gold); text-decoration: none; }
body .rw-menu-panel .rw-menu-cta { margin-top: 16px; border: 0; }
.cf-short .rw-nav-cta, .cf-short .rw-menu-cta { display: none; }
@media (min-width: 700px) { body .rw-nav-cta { display: inline-flex; margin-left: auto; } }
@media (min-width: 1100px) {
    body .rw-nav { display: flex; gap: 20px; margin-left: auto; }
    body .rw-nav-cta { margin-left: 0; }
    body .rw-menu { display: none; }
}
@media (max-width: 374px) { body .rw-logo { width: 150px; height: 44px; } }

/* Hero: existing headshot beside the copy, with the shared video below.
   The decorative repeat uses the same photo identified in the advisor section. */
body.lp-page .lp-hero { background: var(--accent); color: var(--on-accent); padding: 48px 0 60px; }
body.lp-page .lp-hero > .rw-wrap {
    display: grid; gap: 24px;
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: 'eyebrow' 'title' 'intro' 'portrait' 'video' 'disclaimer' 'step' 'cta' 'more' 'trust';
}
body.lp-page .lp-hero > .rw-wrap::before {
    content: 'THE ANNUITY COUPLE'; grid-area: eyebrow;
    font-size: 20px; font-weight: 700; letter-spacing: 0.12em; color: var(--gold);
}
body.lp-page .lp-hero > .rw-wrap::after {
    content: ''; grid-area: portrait; justify-self: center; align-self: center;
    width: min(100%, 320px); aspect-ratio: 1; border: 3px solid var(--gold); border-radius: 24px;
    background: var(--bg) url('/media/angie-garner.jpg') center top / cover no-repeat;
}
body.lp-page .lp-hero h1 { grid-area: title; margin: 0; font-size: clamp(34px, 4.5vw, 56px); line-height: 1.2; font-weight: 500; color: var(--on-accent); }
body.lp-page .lp-hero .lp-hl-underline { color: var(--on-accent); background: none; padding: 0; }
body.lp-page .lp-hero-sub { grid-area: intro; margin: 0; max-width: none; color: var(--on-accent); }
body.lp-page .lp-video-frame { grid-area: video; width: 100%; max-width: 760px; margin: 16px auto 0; padding: 0; border: 1px solid var(--gold); border-radius: 16px; box-shadow: none; }
body.lp-page .lp-video-ratio { background: var(--accent); border-radius: 15px; }
body.lp-page .lp-hero-disclaimer { grid-area: disclaimer; max-width: 760px; margin: 0 auto; color: var(--on-accent); font-size: 16px; }
body.lp-page .lp-hero .lp-step { grid-area: step; margin: 8px 0 0; }
body.lp-page .lp-hero .lp-cta { grid-area: cta; }
body.lp-page .lp-hero .lp-text-link { grid-area: more; color: var(--on-accent); margin: 0; }
body.lp-page .lp-hero .lp-trust { grid-area: trust; margin: 0; }
body.lp-page .lp-hero .lp-pill { background: transparent; color: var(--on-accent); border-color: var(--gold); }
body .lp-video-arc, body .lp-video-placeholder .lp-play { opacity: 1; }
body .lp-play, body .lp-video-knob { box-shadow: none; }
body .lp-video-track { background: var(--on-accent); }
@media (min-width: 900px) {
    body.lp-page .lp-hero { padding-top: 72px; }
    body.lp-page .lp-hero > .rw-wrap {
        grid-template-columns: minmax(0, 1fr) 320px; column-gap: 56px;
        grid-template-areas: 'eyebrow portrait' 'title portrait' 'intro portrait' 'video video' 'disclaimer disclaimer' 'step step' 'cta cta' 'more more' 'trust trust';
    }
    body.lp-page .lp-hero h1, body.lp-page .lp-hero-sub, body.lp-page .lp-hero > .rw-wrap::before { text-align: left; }
}

/* Quiet content sections: ivory and white, bronze dividers, no stamp or shadows. */
body.lp-page .lp-section { padding: 64px 0; border-top: 1px solid var(--gold); border-bottom: 0; background: #FFFFFF; }
body.lp-page .lp-section--soft, body.lp-page #services { background: var(--bg); }
body.lp-page .lp-section-head h2, body.lp-page .lp-closing h2 { font-size: clamp(30px, 4vw, 44px); font-weight: 500; line-height: 1.25; }
body.lp-page .lp-highlight { color: var(--accent); }
body .lp-pill { background: transparent; color: var(--gold-strong); border-color: var(--gold); border-radius: 8px; font-size: 14px; }
body .lp-hero-sub, body .lp-section-sub, body .lp-step-card p, body .lp-card p,
body .lp-checklist li, body .lp-advisor-bio p, body .lp-faq-answer p,
body .lp-faq-answer li, body .lp-closing-sub, body .lp-commitment p:last-child { font-size: 19px; line-height: 1.75; }
body .lp-faq-question, body .lp-facts li, body .lp-stat-label { font-size: 18px; line-height: 1.6; }
body.lp-page .lp-stats { background: var(--bg); color: var(--ink); padding: 48px 0; }
body.lp-page .lp-stat-num { font-family: var(--font-serif); color: var(--accent); font-size: clamp(26px, 3.6vw, 38px); font-weight: 500; }
body.lp-page .lp-stat-label { color: var(--ink); }
body .lp-step-card, body .lp-card, body .lp-faq-item, body .lp-facts, body .lp-commitment,
body .lp-pullquote, body .lp-advisor-photo { background: #FFFFFF; border: 1px solid var(--gold); border-radius: 16px; box-shadow: none; }
body .lp-pullquote { border-left-width: 4px; }
body .lp-commitment-icon { background: var(--bg); color: var(--accent); box-shadow: none; }
body #services .lp-service { background: #FFFFFF; color: var(--ink); border: 1px solid var(--gold); border-radius: 16px; }
body #services .lp-service svg { color: var(--gold-strong); }
body .lp-facts li::before { background-color: var(--bg); background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23153D40' stroke-width='3.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E"); }
body.lp-page .lp-closing { width: 100%; max-width: none; margin: 0; padding: 64px 0; border: 0; border-radius: 0; background: var(--accent); color: var(--on-accent); }
body.lp-page .lp-closing h2, body.lp-page .lp-closing-sub, body.lp-page .lp-closing strong { color: var(--on-accent); }
body.lp-page .lp-closing .lp-highlight { color: var(--gold); }
body .lp-trust svg { background: transparent; color: var(--gold); }
body.lp-page .lp-cta { min-height: 64px; padding: 20px 24px; border-radius: 14px; background: var(--accent); color: var(--on-accent); box-shadow: none; }
body.lp-page .lp-cta-sub { color: var(--on-accent); font-size: 16px; }
body.lp-page .lp-cta-main { font-size: 21px; }
body.lp-page .lp-cta:hover { background: var(--ink); transform: none; box-shadow: none; }
body.lp-page .lp-cta:hover .lp-cta-main svg { transform: none; }
body.lp-page .lp-hero .lp-cta, body.lp-page .lp-closing .lp-cta { background: var(--gold); color: var(--ink); }
body.lp-page .lp-hero .lp-cta-sub, body.lp-page .lp-closing .lp-cta-sub { color: var(--ink); }
body.lp-page .lp-hero .lp-cta:hover, body.lp-page .lp-closing .lp-cta:hover { background: var(--bg); }
body.lp-page .lp-cta:focus-visible { outline: 3px solid var(--accent); outline-offset: 5px; }
body.lp-page .lp-hero .lp-cta:focus-visible, body.lp-page .lp-closing .lp-cta:focus-visible,
body.lp-page .lp-hero .lp-text-link:focus-visible { outline-color: var(--on-accent); }
@media (min-width: 768px) { body.lp-page .lp-section { padding: 80px 0; } }
@media (max-width: 374px) { body.lp-page .lp-stat-num { font-size: 28px; } body.lp-page .lp-cta-main { font-size: 18px; } }

/* Espresso footer, including legal contacts. */
body .rw-footer { background: var(--ink); color: var(--on-accent); border-top: 1px solid var(--gold); font-size: 16px; line-height: 1.7; }
body .rw-footer-disclosures a, body .rw-footer-links a { color: var(--on-accent); }
body .rw-footer a:focus-visible { outline-color: var(--on-accent); }

/* Complete standalone quiz palette, including dynamic questions and form states. */
body.quiz-page { --quiz-navy: #153D40; --quiz-gold: #B59A73; --quiz-cream: #F5F0E7; --quiz-green: #153D40; --quiz-border: #153D40; background: var(--bg); color: var(--ink); font-family: var(--font-body); font-size: 19px; }
body .quiz-band, body .quiz-band--landscape { background: var(--accent); }
body .quiz-header, body .quiz-brand { color: var(--on-accent); }
body .quiz-brand img.rw-mark { filter: none; }
body .quiz-offer { background: var(--accent); color: var(--on-accent); border-color: var(--gold); }
body .quiz-progress-track { background: #FFFFFF; border: 1px solid var(--accent); }
body .quiz-progress-track span { background: var(--accent); }
body .quiz-progress p { color: var(--ink); }
body .quiz-card { background: #FFFFFF; border: 1px solid var(--gold); box-shadow: none; }
body .quiz-card h1 { color: var(--accent); font-family: var(--font-serif); font-weight: 500; }
body .quiz-answer, body .quiz-state-select, body .quiz-field input, body .quiz-phone-field { color: var(--ink); background: #FFFFFF; border-color: var(--accent); }
body .quiz-answer:hover { background: var(--bg); }
body .quiz-answer[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); }
body .quiz-answer-icon-circle { background: var(--bg); }
body .quiz-answer-icon, body .quiz-lock-icon { color: var(--accent); }
body .quiz-answer[aria-pressed="true"] .quiz-chevron { border-color: var(--on-accent); }
body .quiz-avatar { background: var(--bg); border-color: var(--gold); }
body .quiz-hint { background: var(--bg); color: var(--ink); border: 1px solid var(--gold); }
body .quiz-hint-advisor { color: var(--accent); }
body .quiz-compliment { background: var(--accent); color: var(--on-accent); }
body .quiz-primary { background: var(--gold); color: var(--ink); min-height: 58px; }
body .quiz-primary:hover { background: var(--accent); color: var(--on-accent); }
body .quiz-field label, body .quiz-phone-field span, body .quiz-phone-field input { color: var(--ink); }
body .quiz-phone-field input { background: transparent; }
body.quiz-page .rw-consent, body.quiz-page .rw-consent-fine { color: var(--ink); }
body.quiz-page .rw-consent-fine a, body .quiz-footer a { color: var(--accent); }
body .quiz-footer, body .quiz-footer .quiz-private, body .quiz-booking-copy { color: var(--ink); }
body .quiz-field-error, body .quiz-form-error { color: var(--gold-strong); }
body .quiz-form-error { background: var(--bg); border: 1px solid var(--gold-strong); }
body .quiz-field.is-invalid input, body .quiz-field.is-invalid .quiz-state-select, body .quiz-field.is-invalid .quiz-phone-field { border-color: var(--gold-strong); border-style: dashed; }
body.quiz-page button:focus-visible, body.quiz-page a:focus-visible,
body.quiz-page select:focus-visible, body.quiz-page input:focus-visible,
body .quiz-phone-field:focus-within { outline: 3px solid var(--accent); outline-offset: 3px; }
body .quiz-phone-field input:focus-visible { outline: none; }
body.quiz-page .quiz-header a:focus-visible { outline-color: var(--on-accent); }
body .quiz-booking-host .rw-calendar-placeholder { background: var(--bg); border-color: var(--gold); color: var(--ink); }
body .quiz-booking-host .rw-calendar-placeholder-title { color: var(--accent); }
/* Qualified results are teal; the pending page uses bronze, with its existing text. */
body.quiz-page #quizBooking { border-top: 5px solid var(--accent); }
body.quiz-page #quizBookingTitle { background: var(--accent); color: var(--on-accent); padding: 18px; border-radius: 12px; }
body.cf-short .pending { background: var(--bg); }
body.cf-short .pending-card { background: #FFFFFF; border-top: 5px solid var(--gold); box-shadow: none; }
body.cf-short .pending-card .icon, body.cf-short .next span { background: var(--gold); color: var(--ink); }
body.cf-short .pending-card .eyebrow { color: var(--gold-strong); }

/* Shared modal/form controls use the same theme if rendered, including SVG arrows. */
body .rw-quiz::backdrop { background: var(--ink); }
body .rw-quiz-option, body .rw-quiz-select, body .rw-field input, body .rw-phone { border-color: var(--accent); }
body .rw-quiz-select, body .quiz-state-select {
    appearance: none; -webkit-appearance: none; padding-right: 48px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23153D40' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
    background-repeat: no-repeat; background-position: right 16px center; background-size: 22px;
}
body .rw-quiz-option[aria-pressed="true"] { background: var(--accent); color: var(--on-accent); box-shadow: none; }
body .rw-quiz-option[aria-pressed="true"] .rw-quiz-key { border-color: var(--on-accent); }
body .rw-field.is-invalid input, body .rw-field.is-invalid .rw-phone { border-color: var(--gold-strong); }
body .rw-form-error { background: var(--bg); color: var(--gold-strong); border: 1px solid var(--gold-strong); }
body .rw-btn { color: var(--on-accent); background: var(--accent); box-shadow: none; }
body .rw-btn:disabled { opacity: 1; border: 2px dashed var(--on-accent); }
body .rw-consent input { appearance: none; -webkit-appearance: none; border: 2px solid var(--accent); border-radius: 4px; background: #FFFFFF; }
body .rw-consent input:checked { background: var(--accent) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23F5F0E7' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='5 12 10 17 19 7'/%3E%3C/svg%3E") center / 18px no-repeat; }
body .rw-sticky-cta { background: var(--bg); border-color: var(--gold); box-shadow: none; }
body .rw-sticky-cta-link { background: var(--accent); color: var(--on-accent); box-shadow: none; }
body .rw-sticky-cta-close { background: #FFFFFF; color: var(--ink); border-color: var(--accent); }
body .rw-sticky-cta-link:focus-visible, body .rw-sticky-cta-close:focus-visible { outline-color: var(--accent); }

body.lp-page .lp-section.lp-services + .lp-section:not(.lp-section--soft) { padding-top: 64px; }

/* Consultation-only focus beats the later forms.css reset. The phone wrapper
   gets one complete ring; standalone quiz focus rules remain unchanged. */
body .rw-optin .rw-field input:focus-visible,
body .rw-optin .rw-phone:focus-within {
    outline: 3px solid var(--accent);
    outline-offset: 3px;
    border-color: var(--accent);
    box-shadow: none;
}
body .rw-optin .rw-field .rw-phone input:focus-visible {
    outline: none;
    box-shadow: none;
}
