/* SAT prep v2 extras — sits on top of bergen-county-academies-v2.css
   (the site's shared v2 design system). Everything is scoped under
   .bcav2-page so header/nav/footer are untouched.

   Mobile-first: base rules are the phone layout. min-width queries add
   tablet/desktop columns. Hero H1 must beat global
   body h1,h2… { color: #377988 } which is unreadable on navy. */

/* Global css/style.css sets overflow-x:hidden on BOTH html and body. That turns body
   into a scroll container that never scrolls, so position:sticky (the quick-nav)
   can never stick. `clip` still blocks horizontal scroll but creates no scroll
   container. Loaded after style.css and only on this page, so other pages are unaffected. */
html,
body { overflow-x: clip; }
.bcav2-page { overflow-x: clip; }
.bcav2-page .satv2-content { padding-top: 22px; }

/* Sticky quick-nav. The site header turns position:fixed (z-index 1000) once the page
   scrolls, so the bar sticks just below it. --satv2-sticky-top is set from the real
   header height by satv2 sticky-nav script; 90px is only the no-JS fallback.
   z-index stays under the header (1000) and above page content. */
.bcav2-page .bcav2-quicknav-wrap {
    position: sticky;
    top: var(--satv2-sticky-top, 90px);
    z-index: 900;
    box-shadow: 0 4px 10px rgba(0, 0, 0, .06);
}
.bcav2-page .bcav2-quicknav a.is-active {
    background: var(--bca-primary);
    color: #fff;
    border-color: var(--bca-primary);
}
/* Section anchors clear both the fixed header and the sticky bar (~60px tall). */
.bcav2-page .bcav2-section { scroll-margin-top: calc(var(--satv2-sticky-top, 90px) + 70px); }
/* Mini Assessment steps merged into #digital-sat: keep the anchor offset and space them off the demo. */
.bcav2-page #digital-sat .satv2-steps { margin: 22px 0 0; scroll-margin-top: calc(var(--satv2-sticky-top, 90px) + 70px); }

.bcav2-page .bcav2-hero {
    padding: 28px 0 24px;
}
.bcav2-page .bcav2-hero .bcav2-hero-grid.has-photo {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    align-items: start;
}
.bcav2-page .bcav2-hero #satv2-form { position: relative; z-index: 1; }
.bcav2-page .bcav2-hero .bcav2-form-card {
    padding: 16px;
}
.bcav2-page .bcav2-hero .bcav2-form-card textarea { min-height: 72px; }

/* Paired fields (Name + Email, Phone + Zip) share one row to keep the card short.
   Stacked on very narrow phones where two columns would be cramped. */
.bcav2-page .bcav2-hero .satv2-form-row {
    display: grid;
    grid-template-columns: 1fr;
    column-gap: 12px;
}
@media (min-width: 380px) {
    .bcav2-page .bcav2-hero .satv2-form-row { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.bcav2-page .bcav2-hero .g-recaptcha {
    max-width: 100%;
    overflow: hidden;
    transform: scale(.78);
    transform-origin: 0 0;
    height: 62px;
}

.bcav2-page .bcav2-eyebrow {
    font-size: 12px;
    line-height: 1.4;
    white-space: normal;
    max-width: 100%;
    margin-bottom: 12px;
}

/* White H1 on navy — keep location gold. Poppins 800 beats Oswald 500 teal. */
.bcav2-page .bcav2-hero h1,
.bcav2-page .bcav2-hero h1 .satv2-h1-lead,
.bcav2-page .bcav2-hero h1 .satv2-h1-lead sup {
    color: #fff !important;
    font-family: 'Poppins', sans-serif;
    font-weight: 800;
    font-style: normal;
}
.bcav2-page .bcav2-hero h1 {
    font-size: clamp(1.7rem, 7.2vw, 2.65rem);
    line-height: 1.16;
    letter-spacing: -0.02em;
    text-shadow: 0 2px 14px rgba(0, 0, 0, 0.28);
    margin: 0 0 12px;
}
.bcav2-page .bcav2-hero h1 .satv2-h1-geo {
    color: var(--bca-gold) !important;
    text-shadow: none;
}
.bcav2-page .bcav2-hero-sub {
    font-size: 1rem;
    line-height: 1.55;
    max-width: none;
    margin: 0 0 16px;
}

.bcav2-page .bcav2-hero-ctas {
    display: flex;
    flex-direction: column;
    flex-wrap: nowrap;
    gap: 10px;
    margin-bottom: 16px;
}
.bcav2-page .bcav2-hero-ctas .bcav2-btn { width: 100%; }

.bcav2-page .bcav2-stat-chip {
    min-width: 0;
    flex: 1 1 calc(50% - 10px);
}

@media (min-width: 400px) {
    .bcav2-page .bcav2-hero .g-recaptcha {
        transform: scale(.88);
        height: 70px;
    }
}

@media (min-width: 576px) {
    .bcav2-page .bcav2-hero { padding: 36px 0 32px; }
    .bcav2-page .satv2-content { padding-top: 28px; }
    .bcav2-page .bcav2-hero .bcav2-form-card { padding: 20px; }
    .bcav2-page .bcav2-hero .g-recaptcha {
        transform: scale(.92);
        height: auto;
    }
}

@media (min-width: 768px) {
    .bcav2-page .bcav2-hero-ctas {
        flex-direction: row;
        flex-wrap: wrap;
    }
    .bcav2-page .bcav2-hero-ctas .bcav2-btn {
        width: auto;
        flex: 1 1 auto;
    }
}

.bcav2-page .bcav2-section {
    padding: 20px 16px 22px;
}
.bcav2-page .bcav2-section h2 {
    font-size: clamp(1.2rem, 4.6vw, 1.5rem);
    color: var(--bca-ink);
}

@media (min-width: 992px) {
    .bcav2-page .satv2-content { padding-top: 34px; }
    .bcav2-page .bcav2-hero { padding: 44px 0 40px; }
    .bcav2-page .bcav2-hero .bcav2-hero-grid.has-photo {
        grid-template-columns: 1.15fr .85fr;
        gap: 36px;
    }
    .bcav2-page .bcav2-hero-ctas .bcav2-btn { flex: 0 1 auto; }
    .bcav2-page .bcav2-hero-sub { max-width: 560px; }
    .bcav2-page .bcav2-section { padding: 26px 26px 28px; }
}

.bcav2-page .satv2-video {
    width: 100%;
    border-radius: 12px;
    margin: 0 0 18px;
    background: #000;
    display: block;
}

.bcav2-page .satv2-kicker-row {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: 0 0 14px;
}
.bcav2-page .satv2-kicker-row a {
    font-size: 13px;
    font-weight: 700;
    color: var(--bca-primary);
    background: #eaf0fb;
    border: 1px solid #d3e0f5;
    padding: 7px 12px;
    border-radius: 999px;
}
.bcav2-page .satv2-kicker-row a:hover { background: var(--bca-primary); color: #fff; }

/* Mini assessment — same job as BCA sample-test cards, one primary action */
.bcav2-page .satv2-assess {
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    align-items: stretch;
}
.bcav2-page .satv2-assess-copy h3 {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 8px;
    color: var(--bca-ink);
}
.bcav2-page .satv2-assess-copy ul {
    list-style: none;
    margin: 12px 0 0;
    padding: 0;
}
.bcav2-page .satv2-assess-copy li {
    display: flex;
    gap: 10px;
    font-size: 14.5px;
    line-height: 1.6;
    color: #3a3f45;
    padding: 5px 0;
}
.bcav2-page .satv2-assess-copy li i { color: #2f9e44; margin-top: 4px; flex-shrink: 0; }

.bcav2-page .satv2-assess-card {
    border: 1px solid var(--bca-line);
    border-radius: 14px;
    padding: 22px 20px;
    background: linear-gradient(180deg, #fff 0%, #fbf8f3 100%);
    display: flex;
    flex-direction: column;
    justify-content: center;
    text-align: left;
    cursor: pointer;
    transition: box-shadow .15s ease, transform .15s ease;
}
.bcav2-page .satv2-assess-card:hover {
    box-shadow: 0 10px 22px rgba(34,65,134,.12);
    transform: translateY(-2px);
}
.bcav2-page .satv2-assess-card .icon-wrap {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #e8eef9;
    color: var(--bca-primary);
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 22px;
    margin-bottom: 12px;
}
.bcav2-page .satv2-assess-card .label {
    display: block;
    font-size: 17px;
    font-weight: 800;
    color: var(--bca-ink);
    margin-bottom: 4px;
}
.bcav2-page .satv2-assess-card .sub {
    display: block;
    font-size: 13.5px;
    color: var(--bca-muted);
    margin-bottom: 16px;
    line-height: 1.5;
}

/* Score-range cards — always open, no hidden accordions */
.bcav2-page .satv2-range {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
}
.bcav2-page .satv2-range-card {
    border: 1px solid var(--bca-line);
    border-radius: 12px;
    padding: 18px 16px 16px;
    background: var(--bca-bg);
}
.bcav2-page .satv2-range-card .band {
    display: inline-block;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
    margin-bottom: 8px;
}
.bcav2-page .satv2-range-card.lower .band { background: #eaf6f9; color: #1e6b7a; }
.bcav2-page .satv2-range-card.mid .band { background: #e8eef9; color: var(--bca-primary); }
.bcav2-page .satv2-range-card.high .band { background: #fff4d6; color: #6b3d00; }
.bcav2-page .satv2-range-card h3 {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 8px;
    color: var(--bca-ink);
}
.bcav2-page .satv2-range-card p {
    font-size: 14px;
    line-height: 1.6;
    color: #3a3f45;
    margin: 0;
}

/* Platform benefit cards */
.bcav2-page .satv2-benefit h3 {
    font-size: 16px;
    font-weight: 800;
    margin: 0 0 10px;
    color: var(--bca-primary);
}

/* Pricing */
.bcav2-page .satv2-price-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 16px;
}
.bcav2-page .satv2-price-card {
    border: 1px solid var(--bca-line);
    border-radius: 14px;
    padding: 22px 18px 18px;
    background: #fff;
    display: flex;
    flex-direction: column;
    position: relative;
}
.bcav2-page .satv2-price-card.featured {
    border: 2px solid var(--bca-primary);
    box-shadow: 0 12px 28px rgba(34,65,134,.12);
}
.bcav2-page .satv2-price-card .popular {
    position: absolute;
    top: -11px;
    left: 18px;
    background: var(--bca-primary);
    color: #fff;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
    padding: 4px 10px;
    border-radius: 999px;
}
.bcav2-page .satv2-price-card h3 {
    font-size: 18px;
    font-weight: 800;
    margin: 0 0 6px;
    color: var(--bca-ink);
}
.bcav2-page .satv2-price-card .lede {
    font-size: 13.5px;
    line-height: 1.5;
    color: var(--bca-muted);
    margin: 0 0 10px;
}
.bcav2-page .satv2-price-card .meta {
    font-size: 13px;
    color: #3a3f45;
    margin: 0 0 4px;
}
.bcav2-page .satv2-price-card .price {
    font-size: 22px;
    font-weight: 800;
    color: var(--bca-primary);
    margin: 12px 0 14px;
    padding: 10px 0;
    border-top: 1px dashed var(--bca-line);
    border-bottom: 1px dashed var(--bca-line);
}
.bcav2-page .satv2-price-card .price span {
    font-size: 13px;
    font-weight: 600;
    color: var(--bca-muted);
}
.bcav2-page .satv2-price-card h4 {
    font-size: 13.5px;
    font-weight: 800;
    margin: 0 0 8px;
}
.bcav2-page .satv2-price-card ul {
    list-style: none;
    margin: 0 0 16px;
    padding: 0;
    flex: 1;
}
.bcav2-page .satv2-price-card li {
    display: flex;
    gap: 8px;
    font-size: 13.5px;
    line-height: 1.5;
    color: #3a3f45;
    padding: 5px 0;
}
.bcav2-page .satv2-price-card li i { color: #2f9e44; margin-top: 3px; flex-shrink: 0; }
.bcav2-page .satv2-price-card .bcav2-btn { width: 100%; }

.bcav2-page .satv2-guarantee {
    font-size: 15.5px;
    line-height: 1.65;
    margin: 0;
    text-align: center;
    color: #3a3f45;
}
.bcav2-page .satv2-guarantee b { color: var(--bca-orange); }

/* Four process steps — one column on phones, extra columns at min-width. */
.bcav2-page .bcav2-timeline { grid-template-columns: 1fr; }

#satv2-form { scroll-margin-top: 90px; }
#satv2-form:target .bcav2-form-card { animation: bcav2-form-highlight 1.6s ease-out; }
@media (prefers-reduced-motion: reduce) { #satv2-form:target .bcav2-form-card { animation: none; } }

.bcav2-page .satv2-stars { color: #e0a100; letter-spacing: 1px; font-size: 14px; margin: 0 0 8px; }

.bcav2-page .satv2-hero-proof {
    margin: 0 0 18px;
    padding: 10px 14px;
    background: rgba(255,255,255,.1);
    border-left: 3px solid var(--bca-gold);
    border-radius: 0 10px 10px 0;
    font-size: 14.5px;
    line-height: 1.5;
    color: rgba(255,255,255,.95);
    max-width: 540px;
}
.bcav2-page .satv2-hero-proof i { color: var(--bca-gold); margin-right: 6px; }
.bcav2-page .satv2-hero-proof b { color: var(--bca-gold); }
.bcav2-page .satv2-hero-proof span { display: block; margin-top: 4px; font-size: 12.5px; color: rgba(255,255,255,.75); }

/* Curved arrow from the "Book a Free Consultation" button to the form.
   Position + size are set by satv2PositionCtaArrow() (page script) because the
   button's row changes with viewport width. Hidden until placed.
   < 992px the form is below the pitch column, so the arrow is rotated to point
   down and sits in the space reserved under the button. */
.bcav2-page .bcav2-hero-ctas .satv2-cta-pointer { margin-bottom: 44px; }
.bcav2-page .bcav2-hero-grid .satv2-cta-arrow {
    --satv2-arrow-rot: 90deg;
    position: absolute;
    z-index: 2;
    left: 0;
    top: 0;
    width: 48px;
    height: auto;
    max-width: none;
    visibility: hidden;
    pointer-events: none;
    transform: rotate(var(--satv2-arrow-rot));
    filter: drop-shadow(0 4px 6px rgba(0, 0, 0, .35));
}
.bcav2-page .bcav2-hero-grid .satv2-cta-arrow.is-placed {
    visibility: visible;
    animation: satv2-arrow-bob 1.6s ease-in-out infinite;
}
@keyframes satv2-arrow-bob {
    0%, 100% { transform: rotate(var(--satv2-arrow-rot)) translate(0, 0); }
    50% { transform: rotate(var(--satv2-arrow-rot)) translate(5px, -5px); }
}
@media (min-width: 992px) {
    .bcav2-page .bcav2-hero-ctas .satv2-cta-pointer { margin-bottom: 0; }
    .bcav2-page .bcav2-hero-grid .satv2-cta-arrow { --satv2-arrow-rot: 0deg; }
}
@media (prefers-reduced-motion: reduce) {
    .bcav2-page .bcav2-hero-grid .satv2-cta-arrow.is-placed { animation: none; }
}

.bcav2-page .satv2-worry-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 8px 0 4px;
}
.bcav2-page .satv2-photo-wide {
    margin: 4px 0 18px;
}
.bcav2-page .satv2-photo-wide img {
    width: 100%;
    height: 180px;
    object-fit: cover;
    object-position: center 20%;
    border-radius: 12px;
    display: block;
}
.bcav2-page .satv2-photo-wide--short img { height: 150px; }

.bcav2-page .satv2-worry {
    overflow: hidden;
    padding: 0 0 16px;
    background: var(--bca-bg);
    border: 1px solid var(--bca-line);
    border-radius: 12px;
}
.bcav2-page .satv2-worry > img {
    width: 100%;
    height: 132px;
    object-fit: cover;
    display: block;
    margin: 0 0 12px;
}
.bcav2-page .satv2-worry .worry-label,
.bcav2-page .satv2-worry h3,
.bcav2-page .satv2-worry p { padding-left: 16px; padding-right: 16px; }
.bcav2-page .satv2-worry .worry-label { margin-top: 2px; }

.bcav2-page .satv2-assess-photo {
    width: 100%;
    height: 148px;
    object-fit: cover;
    border-radius: 10px;
    margin: 0 0 14px;
    display: block;
}

.bcav2-page .satv2-mosaic {
    display: grid;
    grid-template-columns: 1fr;
    gap: 14px;
    margin: 0 0 22px;
}
.bcav2-page .satv2-mosaic figure {
    margin: 0;
    background: #fff;
    border: 1px solid var(--bca-line);
    border-radius: 14px;
    overflow: hidden;
}
.bcav2-page .satv2-mosaic img {
    width: 100%;
    height: 160px;
    object-fit: cover;
    display: block;
}
.bcav2-page .satv2-mosaic figcaption {
    font-size: 13.5px;
    font-weight: 700;
    color: var(--bca-primary);
    padding: 10px 14px 12px;
}
.bcav2-page .satv2-worry .worry-label {
    display: inline-block;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--bca-orange);
    margin-bottom: 6px;
}
.bcav2-page .satv2-worry h3 { font-size: 15.5px; font-weight: 800; margin: 0 0 6px; color: var(--bca-ink); }
.bcav2-page .satv2-worry p { font-size: 13.5px; line-height: 1.55; color: #3a3f45; margin: 0; }

.bcav2-page .satv2-demo {
    display: grid;
    grid-template-columns: 1fr;
    gap: 22px;
    align-items: center;
    margin: 8px 0 4px;
}
.bcav2-page .satv2-demo-kicker {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 12.5px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
    color: var(--bca-primary);
    margin: 0 0 8px;
}
.bcav2-page .satv2-demo-copy h3 { font-size: 18px; font-weight: 800; margin: 0 0 8px; }
.bcav2-page .satv2-demo-copy ul { list-style: none; margin: 0 0 16px; padding: 0; }
.bcav2-page .satv2-demo-copy li {
    display: flex;
    gap: 10px;
    font-size: 14.5px;
    line-height: 1.55;
    color: #3a3f45;
    padding: 5px 0;
}
.bcav2-page .satv2-demo-copy li i { color: #2f9e44; margin-top: 3px; flex-shrink: 0; }
.bcav2-page .satv2-demo-cta { margin-top: 4px; }

.bcav2-page .satv2-demo-frame {
    margin: 0;
    background: #16294f;
    border-radius: 16px;
    padding: 12px 12px 10px;
    box-shadow: 0 16px 36px rgba(22,41,79,.28);
}
.bcav2-page .satv2-demo-badge {
    display: flex;
    align-items: center;
    gap: 8px;
    color: var(--bca-gold);
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .3px;
    text-transform: uppercase;
    margin: 0 0 8px 4px;
}
.bcav2-page .satv2-demo-frame .satv2-demo-player {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 10px;
    overflow: hidden;
    background: #000;
}
.bcav2-page .satv2-demo-frame .satv2-video {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    margin: 0;
    border-radius: 10px;
    background: #000;
    object-fit: contain;
    display: block;
}
.bcav2-page .satv2-demo-caption {
    margin: 8px 4px 2px;
    font-size: 12.5px;
    line-height: 1.45;
    color: rgba(255,255,255,.78);
}

.bcav2-page .satv2-steps {
    list-style: none;
    display: grid;
    grid-template-columns: 1fr;
    gap: 12px;
    margin: 0 0 18px;
    padding: 0;
}
.bcav2-page .satv2-steps li {
    display: flex;
    gap: 10px;
    align-items: flex-start;
    background: var(--bca-bg);
    border: 1px dashed var(--bca-line);
    border-radius: 12px;
    padding: 12px 12px;
    font-size: 13.5px;
    line-height: 1.5;
    color: #3a3f45;
}
.bcav2-page .satv2-steps .num {
    flex-shrink: 0;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--bca-primary);
    color: #fff;
    font-size: 13px;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}
.bcav2-page .satv2-assess-note {
    font-size: 13.5px;
    color: var(--bca-muted);
    margin: 12px 0 0;
}
.bcav2-page .satv2-assess-note i { color: var(--bca-primary); margin-right: 6px; }

.bcav2-page .satv2-assess-card { position: relative; overflow: hidden; }
.bcav2-page .satv2-assess-pulse {
    position: absolute;
    top: 14px;
    right: 14px;
    background: var(--bca-gold);
    color: #3a2400;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .4px;
    text-transform: uppercase;
    padding: 4px 9px;
    border-radius: 999px;
}

.bcav2-page .satv2-range-card { display: flex; flex-direction: column; }
.bcav2-page .satv2-range-fit {
    margin: 12px 0 0;
    padding-top: 10px;
    border-top: 1px dashed var(--bca-line);
    font-size: 13px;
    font-weight: 700;
    color: var(--bca-primary);
}
.bcav2-page .satv2-range-cta {
    margin: 16px 0 0;
    font-size: 14.5px;
    text-align: center;
    color: #3a3f45;
}
.bcav2-page .satv2-range-cta a { font-weight: 800; color: var(--bca-primary); text-decoration: underline; }

.bcav2-page .satv2-bestfor {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    color: var(--bca-primary);
    background: #eaf0fb;
    border-radius: 999px;
    padding: 4px 10px;
    margin: 0 0 10px;
    line-height: 1.4;
}
.bcav2-page .satv2-banner-kicker {
    font-size: 12px;
    font-weight: 800;
    letter-spacing: .5px;
    text-transform: uppercase;
    color: var(--bca-gold);
    margin: 0 0 8px !important;
}
/* "What is the SAT format?" banner. Text is only ever white or gold on the blue
   background; the global body h2 teal (#377988) is overridden explicitly. */
.bcav2-page .satv2-format-banner {
    position: relative;
    overflow: hidden;
    display: grid;
    grid-template-columns: 1fr;
    gap: 18px;
    align-items: center;
    padding: 26px 20px;
    text-align: center;
    background: linear-gradient(120deg, var(--bca-primary-dark) 0%, #1f3d7a 55%, var(--bca-primary) 100%);
    box-shadow: 0 12px 28px rgba(34, 65, 134, .22);
}
.bcav2-page .satv2-format-banner::after {
    content: "";
    position: absolute;
    inset: 0;
    background: radial-gradient(55% 120% at 92% 10%, rgba(255, 204, 47, .2), transparent 60%);
    pointer-events: none;
}
.bcav2-page .satv2-format-copy,
.bcav2-page .satv2-format-cta { position: relative; z-index: 1; }
.bcav2-page .satv2-format-banner .satv2-banner-title {
    font-family: 'Poppins', sans-serif;
    font-size: clamp(1.3rem, 5vw, 1.7rem);
    font-weight: 800;
    line-height: 1.25;
    letter-spacing: -0.01em;
    color: #fff;
    margin: 0 0 10px;
}
.bcav2-page .satv2-format-banner p { color: rgba(255, 255, 255, .92); }
.bcav2-page .satv2-format-banner .satv2-banner-kicker { color: var(--bca-gold); }
.bcav2-page .satv2-format-flow {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 8px;
}
.bcav2-page .satv2-format-flow li {
    margin: 0;
    padding: 7px 14px;
    border-radius: 999px;
    background: rgba(255, 255, 255, .12);
    border: 1px solid rgba(255, 255, 255, .3);
    color: #fff;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.3;
}
.bcav2-page .satv2-format-flow li.satv2-format-arrow {
    padding: 0;
    background: none;
    border: 0;
    color: var(--bca-gold);
}
.bcav2-page .satv2-format-cta .bcav2-btn { width: 100%; }
@media (min-width: 768px) {
    .bcav2-page .satv2-format-banner {
        grid-template-columns: 1fr auto;
        gap: 28px;
        padding: 30px 32px;
        text-align: left;
    }
    .bcav2-page .satv2-format-flow { justify-content: flex-start; }
    .bcav2-page .satv2-format-cta .bcav2-btn { width: auto; }
}

.bcav2-page .satv2-pullquote {
    margin: 0 0 22px;
    padding: 22px 26px;
    background: linear-gradient(120deg, var(--bca-primary-dark), var(--bca-primary));
    color: #fff;
    border-radius: 14px;
}
.bcav2-page .satv2-pullquote p { font-size: 17px; line-height: 1.55; margin: 0 0 10px; font-style: italic; }
.bcav2-page .satv2-pullquote b { color: var(--bca-gold); font-style: normal; }
.bcav2-page .satv2-pullquote footer { font-size: 13px; opacity: .85; }

@media (min-width: 700px) {
    .bcav2-page .satv2-range,
    .bcav2-page .satv2-price-grid,
    .bcav2-page .satv2-worry-grid,
    .bcav2-page .satv2-mosaic,
    .bcav2-page .bcav2-timeline { grid-template-columns: 1fr 1fr; }
    .bcav2-page .satv2-price-card.featured { grid-column: 1 / -1; }
    .bcav2-page .satv2-photo-wide img { height: 220px; }
    .bcav2-page .satv2-photo-wide--short img { height: 180px; }
    .bcav2-page .satv2-mosaic img { height: 170px; }
}

@media (min-width: 992px) {
    .bcav2-page .satv2-assess { grid-template-columns: 1.15fr .85fr; }
    .bcav2-page .satv2-range,
    .bcav2-page .satv2-price-grid,
    .bcav2-page .satv2-worry-grid,
    .bcav2-page .satv2-mosaic { grid-template-columns: repeat(3, 1fr); }
    .bcav2-page .satv2-price-card.featured { grid-column: auto; }
    .bcav2-page .satv2-demo { grid-template-columns: .9fr 1.1fr; }
    .bcav2-page .satv2-steps { grid-template-columns: repeat(3, 1fr); }
    .bcav2-page .satv2-photo-wide img { height: 280px; }
    .bcav2-page .satv2-photo-wide--short img { height: 200px; }
    .bcav2-page .satv2-mosaic img { height: 180px; }
}

@media (min-width: 1100px) {
    .bcav2-page .bcav2-timeline { grid-template-columns: repeat(4, 1fr); }
}

/* FAQ accordion icon: + when closed, – when open (base CSS rotates the + into a cross) */
.bcav2-page .bcav2-accordion[open] summary::after {
    content: "\2013";
    transform: none;
}

/* ------------------------------------------------------------------
   Inline link affordance
   Base CSS sets `.bcav2-page a { text-decoration: none; }`, so links
   inside body copy inherited the ink color and were indistinguishable
   from plain text. Inline links now carry brand color + underline;
   component anchors (buttons, quicknav, location chips, assess card)
   are excluded because they already read as clickable.
   ------------------------------------------------------------------ */
.bcav2-page .bcav2-text a:not(.bcav2-btn),
.bcav2-page .bcav2-hero-sub a:not(.bcav2-btn),
.bcav2-page .bcav2-form-note a,
.bcav2-page .bcav2-contact-line a,
.bcav2-page .bcav2-accordion-body a:not(.bcav2-btn),
.bcav2-page .bcav2-accordion-body li a:not(.bcav2-btn),
.bcav2-page .satv2-range-cta a,
.bcav2-page .bcav2-link-list a {
    color: var(--bca-primary);
    font-weight: 600;
    text-decoration: underline;
    text-decoration-thickness: 1.5px;
    text-underline-offset: 3px;
    text-decoration-color: rgba(34, 65, 134, .45);
    transition: color .15s ease, text-decoration-color .15s ease;
}

.bcav2-page .bcav2-text a:not(.bcav2-btn):hover,
.bcav2-page .bcav2-hero-sub a:not(.bcav2-btn):hover,
.bcav2-page .bcav2-form-note a:hover,
.bcav2-page .bcav2-contact-line a:hover,
.bcav2-page .bcav2-accordion-body a:not(.bcav2-btn):hover,
.bcav2-page .satv2-range-cta a:hover,
.bcav2-page .bcav2-link-list a:hover {
    color: var(--bca-primary-dark);
    text-decoration-thickness: 2.5px;
    text-decoration-color: currentColor;
}

/* Keyboard users get the same signal as mouse users */
.bcav2-page a:focus-visible {
    outline: 2px solid var(--bca-primary);
    outline-offset: 3px;
    border-radius: 3px;
}

/* External links in body copy get an outbound marker */
.bcav2-page .bcav2-text a[target="_blank"]:not(.bcav2-btn)::after,
.bcav2-page .bcav2-accordion-body a[target="_blank"]:not(.bcav2-btn)::after,
.bcav2-page .bcav2-link-list a[target="_blank"]::after {
    content: "\2197";
    display: inline-block;
    margin-left: 3px;
    font-size: .85em;
    text-decoration: none;
}
