/* Existing Pioneer brand, native CSS. Light theme; restrained motion (2/10),
   layout variance 4/10, density 4/10. Marketing pages share the same form. */
.campaign-page { --shell: 78rem; }
.lp-header { position: sticky; top: 0; z-index: 25; background: #fff; border-bottom: 1px solid var(--line); }
.lp-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 4.75rem; }
.lp-logo { width: 180px; }
.lp-header-actions { display: flex; align-items: center; gap: 1.8rem; }
.lp-phone { font-size: .92rem; font-weight: 650; text-decoration: none; white-space: nowrap; }
.campaign-page .button { box-shadow: none; font-size: .88rem; padding: .95rem 1.25rem; white-space: nowrap; }
.lp-header .button { padding: .7rem 1.1rem; font-size: .76rem; }
.lp-hero { display: grid; grid-template-columns: 1.06fr 1fr; gap: clamp(2rem, 5vw, 5rem); align-items: center; padding-block: clamp(2.5rem, 5vw, 4.5rem) 2rem; }
.lp-eyebrow { color: var(--gold-deep); font-size: .69rem; font-weight: 750; text-transform: uppercase; letter-spacing: .12em; margin: 0 0 1.2rem; }
.campaign-page h1 { font-size: clamp(2.5rem, 4vw, 3.65rem); line-height: 1.09; letter-spacing: -.055em; margin: 0; font-weight: 720; max-width: none; text-wrap: balance; }
.lp-intro { color: var(--ink-soft); font-size: clamp(1rem, 1.4vw, 1.12rem); line-height: 1.7; max-width: 39ch; margin: 1.5rem 0 1.8rem; }
.lp-hero-reassurance { color: var(--gold-deep); font-size: .8rem; font-weight: 650; }
.lp-signup { background: #fff; border: 1px solid var(--line-strong); border-top: 4px solid var(--gold); border-radius: .8rem; padding: clamp(1.25rem, 3vw, 2rem); box-shadow: var(--shadow-soft); scroll-margin-top: 6rem; }
.lp-signup-heading .lp-eyebrow { margin-bottom: .75rem; }
.campaign-page .lp-signup h2 { font-size: clamp(1.4rem, 2.4vw, 1.85rem); margin-bottom: .7rem; }
.lp-signup-heading > p:last-child { font-size: .85rem; color: var(--ink-soft); margin: 0 0 1.4rem; }
.lp-signup-note { color: var(--ink-soft); font-size: .72rem; margin: 1.1rem 0 0; border-top: 1px solid var(--line); padding-top: 1rem; }
.lp-next-step { display: flex; justify-content: space-between; align-items: center; gap: 2rem; }
.lp-next-step p { color: var(--ink-soft); margin: 0; }
.lp-next-step-actions { display: flex; flex-direction: column; align-items: center; gap: 1rem; flex-shrink: 0; font-size: .85rem; }
.lp-eligibility { padding: 1.2rem 0 1.5rem; border-bottom: 1px solid var(--line); }
.lp-eligibility p { font-size: .78rem; color: var(--ink-soft); max-width: 105ch; margin: 0; }
.lp-eligibility strong { color: var(--navy); }
.lp-section { padding-block: clamp(3.5rem, 6vw, 5.5rem); }
.campaign-page h2, .privacy-page h1 { font-size: clamp(1.9rem, 3.1vw, 2.65rem); line-height: 1.2; letter-spacing: -.04em; font-weight: 680; margin: 0 0 1.25rem; max-width: 25ch; }
.campaign-page h3 { font-size: 1.08rem; line-height: 1.4; letter-spacing: -.02em; margin: 0 0 .65rem; font-weight: 700; }
.lp-section-intro { max-width: 44rem; }
.lp-section-intro p, .lp-proof-heading > p { color: var(--ink-soft); font-size: .95rem; max-width: 60ch; }
.lp-deliverables { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2.5rem; padding: 0; list-style: none; margin: 2.8rem 0 0; }
.lp-deliverables li { display: grid; grid-template-columns: auto 1fr; gap: 1.2rem; padding-top: 1.4rem; border-top: 2px solid var(--gold); }
.lp-deliverables li > span { font-size: .8rem; color: var(--gold-deep); font-weight: 700; }
.lp-deliverables p, .lp-options p { font-size: .86rem; line-height: 1.8; color: var(--ink-soft); margin: 0; }
.lp-tinted { padding-block: clamp(3.5rem, 6vw, 5.5rem); background: var(--surface-soft); }
.lp-report-grid, .lp-process-grid { display: grid; grid-template-columns: .9fr 1.1fr; gap: clamp(2rem, 6vw, 6rem); align-items: start; }
.lp-specimen { background: #fff; border: 1px solid var(--line); border-top: 4px solid var(--gold); padding: 2rem; border-radius: .6rem; box-shadow: var(--shadow-soft); }
.lp-specimen-label { color: var(--gold-deep); font-size: .68rem; margin: 0 0 1.2rem; font-weight: 600; }
.lp-specimen dl { margin: 1.3rem 0; }
.lp-specimen dl > div { display: grid; grid-template-columns: .65fr 1fr; gap: 1rem; padding-block: .75rem; border-bottom: 1px solid var(--line); font-size: .77rem; }
.lp-specimen dt { font-weight: 650; }
.lp-specimen dd { margin: 0; color: var(--ink-soft); }
.lp-small { font-size: .72rem; color: var(--ink-soft); margin-bottom: 0; }
.lp-options { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 2rem; margin-top: 2rem; padding: 2rem; background: var(--surface-soft); border-radius: .6rem; }
.lp-proof-heading { margin-bottom: 2rem; }
.lp-proof-heading > p { max-width: 65ch; }
.lp-photo-pair { display: grid; grid-template-columns: 1.15fr .85fr; gap: 1.5rem; }
.lp-photo-pair figure { margin: 0; }
.lp-photo-pair img { width: 100%; height: 23rem; object-fit: cover; object-position: center 35%; border-radius: .8rem; }
.lp-photo-pair figcaption { font-size: .75rem; color: var(--ink-soft); padding-top: .8rem; }
.lp-steps { margin: 0; padding-left: 1.4rem; }
.lp-steps li { padding-left: 1rem; margin-bottom: 1.8rem; }
.lp-steps li:last-child { margin-bottom: 0; }
.lp-steps li::marker { color: var(--gold-deep); font-weight: 700; }
.lp-steps p { font-size: .86rem; color: var(--ink-soft); margin: .5rem 0 0; }
.lp-terms-grid { display: grid; grid-template-columns: .7fr 1.3fr; gap: 3rem; border-bottom: 1px solid var(--line); }
.lp-terms-grid > div:first-child p { color: var(--ink-soft); font-size: .9rem; }
.lp-terms p { font-size: .84rem; color: var(--ink-soft); margin: 0 0 1.2rem; }
.lp-terms p:last-child { margin-bottom: 0; }
.lp-faq { max-width: 57rem; }
.lp-faq details { border-bottom: 1px solid var(--line); }
.lp-faq summary { padding: 1.3rem .3rem; cursor: pointer; font-size: .93rem; font-weight: 650; }
.lp-faq summary:focus-visible { outline: 3px solid var(--gold-deep); outline-offset: 2px; }
.lp-faq details p { color: var(--ink-soft); font-size: .88rem; padding: 0 .3rem .6rem; }
.lp-request-section { padding-block: clamp(3.5rem, 6vw, 5.5rem); background: var(--surface-soft); }
.campaign-page .quote-form { padding: 0; border-radius: 0; box-shadow: none; background: transparent; }
.campaign-page .form-grid { grid-template-columns: 1fr; gap: 1rem; }
.campaign-page .form-actions { flex-direction: column; align-items: stretch; gap: .9rem; margin-top: 1.25rem; }
.campaign-page .form-actions p { max-width: none; }
.campaign-page .form-actions .button { width: 100%; }
.campaign-page .field input, .campaign-page .field textarea, .campaign-page .field select { font-size: 1rem; }
.form-fieldset { border: 0; padding: 0; margin: 0; min-width: 0; }
.form-fieldset:disabled { opacity: .75; }
.form-progress-note { font-size: .76rem; color: var(--ink-soft); margin: 0 0 1.25rem; }
.form-summary:empty { display: none; }
.form-summary { padding: 1rem; background: var(--negative-bg); border-radius: .5rem; color: var(--negative); margin-bottom: 1rem; font-size: .85rem; }
.form-summary ul { margin: 0; padding-left: 1.25rem; }
.form-status a { display: inline-block; margin-top: .5rem; }
.form-status:focus { outline: 3px solid var(--gold-deep); outline-offset: 3px; }
.quote-form .consent a { text-decoration: underline; }
.lp-footer { padding-block: 2.5rem; display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; font-size: .78rem; }
.lp-footer address { font-style: normal; color: var(--ink-soft); margin: .7rem 0; }
.lp-footer nav { display: flex; flex-wrap: wrap; gap: .8rem 1.5rem; align-content: start; justify-content: flex-end; }
.lp-text-button { padding: 0; border: 0; background: transparent; text-decoration: underline; text-underline-offset: .2em; cursor: pointer; font: inherit; }
.lp-mobile-actions { display: none; }
.privacy-page { max-width: 52rem; padding-block: 3rem; }
.privacy-page h2 { font-size: 1.35rem; letter-spacing: -.02em; margin-top: 2.5rem; }
.privacy-page p, .privacy-page li { color: var(--ink-soft); font-size: .95rem; }
.privacy-page .lp-logo { margin-bottom: 2rem; }
.cookie-banner { position: fixed; z-index: 70; bottom: 1rem; left: 1rem; right: 1rem; max-width: 69rem; margin-inline: auto; background: white; border: 1px solid var(--line-strong); border-radius: .65rem; padding: 1.2rem 1.4rem; box-shadow: var(--shadow-strong); }
.cookie-banner[hidden], .lp-mobile-actions[hidden] { display: none; }
.cookie-banner > div { display: flex; gap: 2rem; align-items: center; justify-content: space-between; }
.cookie-banner h2 { font-size: .95rem; margin: 0 0 .4rem; }
.cookie-banner p { font-size: .875rem; line-height: 1.6; margin: 0; max-width: 63ch; color: var(--ink-soft); }
.cookie-actions { display: flex; gap: .6rem; flex-wrap: wrap; flex-shrink: 0; }
.cookie-button { padding: .65rem .85rem; background: white; border: 1px solid var(--navy); border-radius: .4rem; font-size: .875rem; font-weight: 650; cursor: pointer; min-height: 44px; }
.cookie-button:hover { background: var(--surface-soft); }
.cookie-button-primary { background: var(--navy); color: white; }
.cookie-button-primary:hover { background: var(--navy-bright); }
.cookie-dialog { color: var(--navy); border: 1px solid var(--line); border-radius: .8rem; padding: 1.6rem; width: min(34rem, calc(100% - 2rem)); max-height: calc(100dvh - 3rem); overflow-y: auto; }
.cookie-dialog::backdrop { background: rgba(23,42,74,.4); }
.cookie-dialog h2 { font-size: 1.4rem; line-height: 1.3; margin: 0 0 1rem; }
.cookie-dialog p { font-size: .85rem; color: var(--ink-soft); }
.cookie-choice { display: flex; align-items: flex-start; gap: .85rem; padding-block: 1rem; border-top: 1px solid var(--line); font-size: .85rem; }
.cookie-choice input { width: 1.2rem; height: 1.2rem; margin-top: .2rem; accent-color: var(--navy); flex-shrink: 0; }
.cookie-choice span { display: block; }
.cookie-choice small { display: block; color: var(--ink-soft); margin-top: .3rem; line-height: 1.6; }
.cookie-dialog .cookie-actions { margin-top: 1rem; }
.cookie-global-settings { position: fixed; bottom: .5rem; left: .5rem; z-index: 24; background: white; color: var(--ink-soft); border: 1px solid var(--line); border-radius: .35rem; padding: .35rem .6rem; font-size: .65rem; cursor: pointer; }
body:has(.campaign-page) .cookie-global-settings { display: none; }
@media (max-width: 63.99rem) {
    .lp-hero { gap: 2rem; }
    .campaign-page h1 { font-size: clamp(2rem, 4.7vw, 3rem); }
    .lp-deliverables { gap: 1.3rem; }
    .lp-deliverables li { display: block; }
    .lp-deliverables li > span { display: block; margin-bottom: .8rem; }
    .campaign-page .form-grid { grid-template-columns: 1fr; }
    .cookie-banner > div { display: block; }
    .cookie-banner .cookie-actions { margin-top: .9rem; }
}
@media (max-width: 47.99rem) {
    .campaign-page .shell { width: calc(100% - 2rem); }
    .lp-header-inner { min-height: 4.25rem; gap: .7rem; }
    .lp-logo { width: 148px; }
    .lp-phone { font-size: .75rem; }
    .lp-hero { grid-template-columns: 1fr; padding-top: 2.2rem; gap: 1.7rem; }
    .campaign-page h1 { max-width: 15ch; font-size: clamp(2.2rem, 9vw, 3rem); }
    .lp-eyebrow { font-size: .61rem; margin-bottom: .9rem; }
    .lp-intro { max-width: 35ch; margin-block: 1.2rem 1.4rem; }
    .lp-header-cta { display: none !important; }
    .lp-hero-reassurance { display: none; }
    .lp-intro { margin-bottom: 0; }
    .lp-next-step { flex-direction: column; align-items: flex-start; }
    .lp-next-step-actions { align-items: flex-start; }
    .campaign-page .button { font-size: .78rem; padding: .9rem 1rem; }
    .lp-eligibility { padding-top: 0; }
    .lp-section { padding-block: 3rem; }
    .lp-deliverables, .lp-report-grid, .lp-process-grid, .lp-options, .lp-terms-grid { grid-template-columns: 1fr; gap: 1.7rem; }
    .lp-deliverables { margin-top: 2rem; }
    .lp-deliverables li { display: grid; grid-template-columns: auto 1fr; gap: 1rem; }
    .lp-options { padding: 1.4rem; }
    .lp-specimen { padding: 1.3rem; }
    .lp-specimen dl > div { grid-template-columns: 1fr; gap: .25rem; }
    .lp-photo-pair { grid-template-columns: 1fr 1fr; gap: .8rem; }
    .lp-photo-pair img { height: 13rem; }
    .lp-photo-pair figcaption { font-size: .65rem; }
    .lp-tinted { padding-block: 3rem; }
    .lp-terms-grid { gap: .5rem; }
    .lp-footer { grid-template-columns: 1fr; padding-bottom: 6rem; }
    .lp-footer nav { justify-content: flex-start; }
    .lp-mobile-actions { position: fixed; bottom: 0; left: 0; right: 0; z-index: 30; display: flex; gap: 1rem; align-items: center; justify-content: space-between; padding: .7rem 1rem calc(.7rem + env(safe-area-inset-bottom)); background: #fff; border-top: 1px solid var(--line); }
    .lp-mobile-actions > a:first-child { font-size: .8rem; font-weight: 650; padding: .5rem; }
    body:has(.cookie-banner:not([hidden])) .lp-mobile-actions,
    body:has(.cookie-banner:not([hidden])) .mobile-call-bar { display: none; }
    .cookie-global-settings { bottom: 5rem; }
    .cookie-banner { bottom: .5rem; left: .5rem; right: .5rem; padding: 1rem; }
    .cookie-actions { gap: .5rem; }
    .cookie-button { padding-inline: .7rem; }
    .privacy-page { width: calc(100% - 2rem); }
}

.sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
