/* =============================================================================
   BMABA Sign Up v5.0
   Electric blue, Inter Tight, quiet cards, one loud accent.
   ========================================================================== */

.bs-wrap {
    --bs-blue:        #002FED;
    --bs-blue-dark:   #0022B4;
    --bs-blue-deep:   #001A8A;
    --bs-blue-wash:   #EEF2FF;
    --bs-blue-line:   #C8D4FF;

    --bs-ink:         #0A0E1A;
    --bs-body:        #464E63;
    --bs-muted:       #79819A;
    --bs-line:        #E3E7F0;
    --bs-wash:        #F6F8FC;
    --bs-white:       #FFFFFF;

    --bs-green:       #00875A;
    --bs-green-wash:  #E7F7F0;
    --bs-gold:        #A8720F;
    --bs-gold-wash:   #FDF6E9;
    --bs-red:         #C42525;
    --bs-red-wash:    #FDECEC;

    --bs-r-lg: 22px;
    --bs-r:    16px;
    --bs-r-sm: 12px;

    --bs-shadow:    0 1px 2px rgba(10,14,26,.03), 0 6px 22px rgba(10,14,26,.045);
    --bs-shadow-lg: 0 2px 4px rgba(10,14,26,.04), 0 24px 64px rgba(10,14,26,.09);
    --bs-shadow-blue: 0 8px 30px rgba(0,47,237,.18);

    --bs-ease: cubic-bezier(.22,.72,.26,1);
    --bs-t: .28s var(--bs-ease);

    --bs-font: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;

    max-width: 1000px;
    margin: 0 auto;
    padding: 0 0 150px;
    font-family: var(--bs-font);
    font-optical-sizing: auto;
    color: var(--bs-body);
    font-size: 15.5px;
    font-weight: 300;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

.bs-wrap *, .bs-wrap *::before, .bs-wrap *::after { box-sizing: border-box; }

/* The theme sets font-family on headings, buttons and inputs at a specificity
   that beat the wrapper, which is why bits were falling back to a system face.
   Nothing inside the wizard should ever render in anything but Manrope. */
.bs-wrap,
.bs-wrap h1, .bs-wrap h2, .bs-wrap h3, .bs-wrap h4, .bs-wrap h5, .bs-wrap h6,
.bs-wrap p, .bs-wrap span, .bs-wrap div, .bs-wrap li, .bs-wrap a,
.bs-wrap b, .bs-wrap strong, .bs-wrap em, .bs-wrap i, .bs-wrap small, .bs-wrap s,
.bs-wrap button, .bs-wrap input, .bs-wrap select, .bs-wrap textarea, .bs-wrap label {
    font-family: var(--bs-font) !important;
    font-synthesis-weight: none;
}
.bs-wrap, .bs-wrap * { -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale; }

/* Every inline icon is a bare 24x24 viewBox with no width or height, so without
   this an un-sized one expands to fill its container. This is the floor, the
   component rules below override it. */
.bs-wrap svg { width: 18px; height: 18px; flex: 0 0 auto; }

/* Logo sizing is forced because the theme applies height:auto !important to
   images, which otherwise lets these render at their natural 1000px. */
.bs-wrap img { max-width: 100%; }
.bs-hero__marks img,
.bs-marks img,
.bs-forces img,
.bs-modal__logo {
    width: auto !important;
    object-fit: contain !important;
    object-position: center !important;
}

.bs-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

.bs-wrap h1, .bs-wrap h2, .bs-wrap h3, .bs-wrap h4 {
    font-family: inherit;
    color: var(--bs-ink);
    margin: 0;
    letter-spacing: -.03em;
    line-height: 1.15;
    font-weight: 500;
}
.bs-wrap p { margin: 0; }
.bs-wrap button { font-family: inherit; }

/* --- Progress rail ------------------------------------------------------- */

.bs-rail { margin: 0 0 30px; }
.bs-rail__track {
    height: 3px;
    background: var(--bs-line);
    border-radius: 99px;
    overflow: hidden;
}
.bs-rail__fill {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, var(--bs-blue), #5B7BFF);
    border-radius: 99px;
    transition: width .45s var(--bs-ease);
}
.bs-rail__meta {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    margin-top: 10px;
    font-size: 12.5px;
    font-weight: 600;
    letter-spacing: .04em;
    text-transform: uppercase;
    color: var(--bs-muted);
}
.bs-rail__meta strong { color: var(--bs-blue); font-weight: 700; }

/* --- Panels -------------------------------------------------------------- */

.bs-panel { display: none; }
.bs-panel.is-active { display: block; padding-bottom: clamp(28px, 4vw, 48px); animation: bs-in .42s var(--bs-ease) both; }

@keyframes bs-in {
    from { opacity: 0; transform: translateY(14px); }
    to   { opacity: 1; transform: none; }
}

.bs-head { margin-bottom: 34px; }
.bs-head__eyebrow {
    display: inline-block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .16em;
    text-transform: uppercase;
    color: var(--bs-blue);
    margin-bottom: 14px;
}
.bs-head h2 { font-size: clamp(1.9rem, 4.2vw, 2.6rem); font-weight: 300; letter-spacing: -.038em; }
.bs-head p { margin-top: 14px; font-size: 16px; font-weight: 300; color: var(--bs-body); max-width: 60ch; }

/* --- Route chooser, full bleed hero ------------------------------------- */

body.bs-hero-on { background: var(--bs-blue-deep); overflow-x: clip; }

.bs-hero {
    position: relative;
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
    padding: clamp(120px, 17vh, 210px) 24px clamp(80px, 11vh, 130px);
    background: var(--bs-blue);
    background-image:
        radial-gradient(60rem 40rem at 78% -12%, rgba(255,255,255,.16), transparent 62%),
        radial-gradient(48rem 34rem at 8% 108%, rgba(0,0,0,.20), transparent 60%);
    color: #fff;
    isolation: isolate;
}
.bs-hero__inner { max-width: 1140px; margin: 0 auto; }

.bs-hero__eyebrow {
    display: block;
    font-size: 11px;
    font-weight: 600;
    letter-spacing: .2em;
    text-transform: uppercase;
    color: rgba(255,255,255,.62);
    margin-bottom: 22px;
}
.bs-hero h2 {
    color: #fff;
    font-size: clamp(2.4rem, 6vw, 4.2rem);
    font-weight: 200;
    letter-spacing: -.045em;
    line-height: 1.02;
    max-width: 16ch;
}
.bs-hero h2 em {
    font-style: normal;
    color: rgba(255,255,255,.52);
}
.bs-hero__lede {
    margin-top: 22px;
    font-size: clamp(1rem, 1.6vw, 1.16rem);
    font-weight: 300;
    line-height: 1.62;
    color: rgba(255,255,255,.76);
    max-width: 56ch;
}

.bs-choices {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 20px;
    margin-top: clamp(46px, 6vw, 72px);
}

.bs-choice {
    --bs-delay: 0ms;
    position: relative;
    display: flex;
    flex-direction: column;
    text-align: left;
    width: 100%;
    padding: 34px 30px 30px;
    border-radius: 24px;
    border: 1px solid rgba(255,255,255,.17);
    background: rgba(255,255,255,.075);
    backdrop-filter: blur(22px) saturate(150%);
    -webkit-backdrop-filter: blur(22px) saturate(150%);
    color: #fff;
    cursor: pointer;
    transition: background .5s var(--bs-ease), border-color .5s var(--bs-ease), transform .5s var(--bs-ease);
    animation: bs-rise .8s var(--bs-ease) both;
    animation-delay: var(--bs-delay);
}
.bs-choice:nth-child(2) { --bs-delay: 90ms; }
.bs-choice:nth-child(3) { --bs-delay: 180ms; }

.bs-choice:hover {
    background: rgba(255,255,255,.135);
    border-color: rgba(255,255,255,.34);
    transform: translateY(-6px);
}
.bs-choice:focus-visible { outline: 2px solid #fff; outline-offset: 4px; }

@keyframes bs-rise {
    from { opacity: 0; transform: translateY(26px); }
    to   { opacity: 1; transform: none; }
}

.bs-choice__icon {
    width: 46px; height: 46px;
    display: flex; align-items: center; justify-content: center;
    border-radius: 14px;
    background: rgba(255,255,255,.13);
    border: 1px solid rgba(255,255,255,.14);
    color: #fff;
    margin-bottom: 26px;
    transition: background .45s var(--bs-ease);
}
.bs-choice:hover .bs-choice__icon { background: rgba(255,255,255,.24); }
.bs-choice__icon svg { width: 21px; height: 21px; stroke-width: 1.5; }

.bs-choice__title {
    display: block;
    font-size: 1.42rem;
    font-weight: 400;
    letter-spacing: -.028em;
    color: #fff;
    margin-bottom: 10px;
}
.bs-choice__desc {
    display: block;
    font-size: 14.5px;
    font-weight: 300;
    line-height: 1.62;
    color: rgba(255,255,255,.7);
    flex: 1;
}
.bs-choice__from {
    display: block;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid rgba(255,255,255,.14);
    font-size: 13px;
    font-weight: 400;
    letter-spacing: .01em;
    color: rgba(255,255,255,.9);
}
.bs-choice__from b { font-weight: 600; }

.bs-choice__cta {
    display: flex; align-items: center; justify-content: space-between;
    gap: 12px;
    margin-top: 22px;
    font-size: 14.5px;
    font-weight: 500;
    color: #fff;
}
.bs-choice__cta svg {
    width: 17px; height: 17px; stroke-width: 1.75;
    transition: transform .45s var(--bs-ease);
}
.bs-choice:hover .bs-choice__cta svg { transform: translateX(5px); }

.bs-choice--free {
    background: #fff;
    border-color: #fff;
    color: var(--bs-ink);
}
.bs-choice--free:hover { background: #fff; border-color: #fff; }
.bs-choice--free .bs-choice__icon { background: var(--bs-blue-wash); border-color: transparent; color: var(--bs-blue); }
.bs-choice--free:hover .bs-choice__icon { background: var(--bs-blue); color: #fff; }
.bs-choice--free .bs-choice__title { color: var(--bs-ink); }
.bs-choice--free .bs-choice__desc { color: var(--bs-muted); }
.bs-choice--free .bs-choice__from { color: var(--bs-ink); border-top-color: var(--bs-line); }
.bs-choice--free .bs-choice__cta { color: var(--bs-blue); }

.bs-choice__actions { display: flex; flex-direction: column; gap: 12px; margin-top: 22px; }
.bs-choice__more {
    background: none; border: 0; padding: 0;
    font-family: inherit; font-size: 13.5px; font-weight: 400;
    color: var(--bs-muted); cursor: pointer; text-decoration: underline;
    text-underline-offset: 3px; align-self: center;
    transition: color var(--bs-t);
}
.bs-choice__more:hover { color: var(--bs-blue); }

.bs-tag {
    position: absolute; top: 22px; right: 24px;
    font-size: 10px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase;
    background: var(--bs-blue); color: #fff;
    padding: 6px 12px; border-radius: 99px;
}

/* Certification marks under the cards */
.bs-hero__marks {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: clamp(24px, 4vw, 46px);
    margin-top: clamp(48px, 6vw, 76px);
    padding-top: clamp(32px, 4vw, 44px);
    border-top: 1px solid rgba(255,255,255,.15);
}
.bs-hero__marks-label {
    font-size: 11px; font-weight: 600; letter-spacing: .17em; text-transform: uppercase;
    color: rgba(255,255,255,.5);
    flex: 0 0 100%;
    margin-bottom: -8px;
}
.bs-hero__mark {
    display: inline-flex; align-items: center; justify-content: center;
    flex: 0 0 auto;
    overflow: hidden;
    background: #fff;
    border-radius: 14px;
    padding: 14px 20px;
    box-shadow: 0 4px 18px rgba(0,0,0,.14);
    transition: transform .4s var(--bs-ease);
}
.bs-hero__mark:hover { transform: translateY(-3px); }
.bs-hero__marks img {
    height: clamp(44px, 5vw, 56px) !important;
    max-height: clamp(44px, 5vw, 56px) !important;
    max-width: 180px !important;
    display: block;
}
.bs-hero__marks-note {
    flex: 1 1 240px;
    font-size: 12.5px; font-weight: 300; line-height: 1.6;
    color: rgba(255,255,255,.5);
    min-width: 220px;
}

/* --- Yes / no question --------------------------------------------------- */

.bs-ask { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 24px; }

.bs-ask__opt {
    background: var(--bs-white);
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    padding: 26px 24px;
    text-align: left;
    cursor: pointer;
    transition: border-color var(--bs-t), box-shadow var(--bs-t), transform var(--bs-t);
    box-shadow: var(--bs-shadow);
}
.bs-ask__opt:hover { border-color: var(--bs-blue-line); transform: translateY(-2px); box-shadow: var(--bs-shadow-lg); }
.bs-ask__opt:focus-visible { outline: 3px solid var(--bs-blue); outline-offset: 3px; }
.bs-ask__opt.is-on { border-color: var(--bs-blue); box-shadow: var(--bs-shadow-blue); }
.bs-ask__opt h3 { font-size: 1.14rem; }
.bs-ask__opt p { font-size: 14px; color: var(--bs-muted); margin-top: 7px; }
.bs-ask__badge {
    display: inline-block; font-size: 11px; font-weight: 700;
    letter-spacing: .07em; text-transform: uppercase;
    color: var(--bs-blue); background: var(--bs-blue-wash);
    padding: 3px 10px; border-radius: 99px; margin-bottom: 11px;
}

/* --- Plan switch --------------------------------------------------------- */

.bs-plan {
    display: inline-flex;
    background: var(--bs-wash);
    border: 1px solid var(--bs-line);
    border-radius: 99px;
    padding: 4px;
    margin-bottom: 8px;
}
.bs-plan__btn {
    border: 0; background: transparent;
    padding: 9px 22px;
    border-radius: 99px;
    font-size: 14px; font-weight: 600;
    color: var(--bs-muted);
    cursor: pointer;
    display: inline-flex; align-items: center; gap: 8px;
    transition: background var(--bs-t), color var(--bs-t), box-shadow var(--bs-t);
}
.bs-plan__btn.is-on {
    background: var(--bs-ink); color: #fff;
    box-shadow: 0 2px 10px rgba(10,14,26,.22);
}
.bs-plan__save {
    font-size: 11px; font-weight: 800; letter-spacing: .04em;
    color: var(--bs-green); background: var(--bs-green-wash);
    padding: 2px 8px; border-radius: 99px;
}
.bs-plan__btn.is-on .bs-plan__save { background: rgba(255,255,255,.16); color: #7CE8BD; }
.bs-plan__note { font-size: 13.5px; color: var(--bs-muted); margin: 10px 0 26px; }

/* --- Tier cards ---------------------------------------------------------- */

.bs-tiers { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 12px; }

.bs-tier {
    position: relative;
    background: var(--bs-white);
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    padding: 32px 26px 26px;
    text-align: left;
    cursor: pointer;
    display: flex; flex-direction: column;
    transition: border-color var(--bs-t), box-shadow var(--bs-t), transform var(--bs-t);
    box-shadow: var(--bs-shadow);
}
.bs-tier:hover { border-color: var(--bs-blue-line); transform: translateY(-3px); box-shadow: var(--bs-shadow-lg); }
.bs-tier:focus-visible { outline: 3px solid var(--bs-blue); outline-offset: 3px; }
.bs-tier.is-on { border-color: var(--bs-blue); box-shadow: var(--bs-shadow-blue); }
.bs-tier.is-on::before {
    content: '';
    position: absolute; inset: -1.5px;
    border-radius: var(--bs-r-lg);
    border: 1.5px solid var(--bs-blue);
    pointer-events: none;
}

.bs-tier__name {
    font-size: 12px; font-weight: 800; letter-spacing: .1em;
    text-transform: uppercase; color: var(--bs-muted);
}
.bs-tier.is-on .bs-tier__name { color: var(--bs-blue); }

.bs-tier__price {
    display: flex; align-items: baseline; gap: 3px;
    margin: 12px 0 2px;
    font-weight: 500; letter-spacing: -.04em;
    color: var(--bs-ink);
}
.bs-tier__price .bs-cur { font-size: 1.35rem; }
.bs-tier__price .bs-amt { font-size: 2.65rem; line-height: 1; font-weight: 500; letter-spacing: -.045em; font-variant-numeric: tabular-nums; }
.bs-tier__per { font-size: 13px; color: var(--bs-muted); font-weight: 500; }
.bs-tier__was {
    font-size: 13px; color: var(--bs-muted); margin-top: 6px;
    display: none;
}
.bs-tier__was.is-shown { display: block; }
.bs-tier__was s { opacity: .75; }
.bs-tier__was em { font-style: normal; font-weight: 700; color: var(--bs-green); }

.bs-tier__incl {
    margin: 16px 0 0;
    padding: 12px 0 0;
    border-top: 1px solid var(--bs-line);
    list-style: none;
    display: flex; flex-direction: column; gap: 8px;
    flex: 1;
}
.bs-tier__incl li {
    display: grid; grid-template-columns: 16px 1fr; gap: 9px;
    font-size: 13.5px; line-height: 1.45; color: var(--bs-body);
}
.bs-tier__incl svg { width: 16px; height: 16px; color: var(--bs-blue); margin-top: 2px; }

.bs-tier__pick {
    margin-top: 18px;
    border: 1.5px solid var(--bs-line);
    background: var(--bs-white);
    color: var(--bs-ink);
    border-radius: var(--bs-r-sm);
    padding: 11px;
    font-size: 14px; font-weight: 650;
    transition: background var(--bs-t), color var(--bs-t), border-color var(--bs-t);
    pointer-events: none;
}
.bs-tier.is-on .bs-tier__pick { background: var(--bs-blue); border-color: var(--bs-blue); color: #fff; }

.bs-tier__flag {
    position: absolute; top: -10px; left: 22px;
    font-size: 10.5px; font-weight: 800; letter-spacing: .09em; text-transform: uppercase;
    background: var(--bs-gold); color: #fff;
    padding: 4px 11px; border-radius: 99px;
}
.bs-tier--best { border-color: var(--bs-gold); }

/* --- Collapsible sections ------------------------------------------------ */

.bs-sec {
    background: var(--bs-white);
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    margin-bottom: 14px;
    overflow: hidden;
    transition: border-color var(--bs-t), box-shadow var(--bs-t);
}
.bs-sec.is-open { border-color: var(--bs-blue-line); box-shadow: var(--bs-shadow); }

.bs-sec__bar {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 22px;
    align-items: center;
    padding: 26px 30px;
}
.bs-sec__title {
    font-size: 1.12rem; font-weight: 500; color: var(--bs-ink);
    display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
}
.bs-sec__desc { font-size: 13.5px; color: var(--bs-muted); margin-top: 4px; max-width: 60ch; }

.bs-sec__nudge {
    font-size: 10.5px; font-weight: 800; letter-spacing: .08em; text-transform: uppercase;
    color: var(--bs-gold); background: var(--bs-gold-wash);
    border: 1px solid rgba(168,114,15,.22);
    padding: 3px 10px; border-radius: 99px;
    animation: bs-glow 2.6s var(--bs-ease) infinite;
}
@keyframes bs-glow {
    0%, 100% { box-shadow: 0 0 0 0 rgba(168,114,15,.26); }
    50%      { box-shadow: 0 0 0 6px rgba(168,114,15,0); }
}

.bs-sec__body {
    display: grid;
    grid-template-rows: 0fr;
    transition: grid-template-rows .38s var(--bs-ease);
}
.bs-sec.is-open .bs-sec__body { grid-template-rows: 1fr; }
.bs-sec__inner { overflow: hidden; }
.bs-sec__pad { padding: 6px 30px 30px; border-top: 1px solid var(--bs-line); margin-top: 0; }
.bs-sec__pad > * + * { margin-top: 20px; }

/* Locked open (instructors on the club route) */
.bs-sec--locked .bs-sec__body { grid-template-rows: 1fr; }
.bs-sec--locked .bs-sec__lock {
    font-size: 11px; font-weight: 700; letter-spacing: .07em; text-transform: uppercase;
    color: var(--bs-blue); background: var(--bs-blue-wash);
    padding: 5px 12px; border-radius: 99px;
}

/* --- Switch -------------------------------------------------------------- */

.bs-switch {
    position: relative;
    width: 62px; height: 34px;
    border-radius: 99px;
    border: 0;
    background: #CDD3E2;
    cursor: pointer;
    padding: 0;
    flex-shrink: 0;
    transition: background var(--bs-t);
}
.bs-switch::after {
    content: '';
    position: absolute; top: 4px; left: 4px;
    width: 26px; height: 26px;
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 2px 6px rgba(10,14,26,.24);
    transition: transform var(--bs-t);
}
.bs-switch[aria-checked="true"] { background: var(--bs-blue); }
.bs-switch[aria-checked="true"]::after { transform: translateX(28px); }
.bs-switch:focus-visible { outline: 3px solid var(--bs-blue); outline-offset: 3px; }

/* --- Rows, steppers, checks --------------------------------------------- */

.bs-row {
    display: grid;
    grid-template-columns: 1fr auto;
    gap: 22px;
    align-items: center;
    background: var(--bs-wash);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    padding: 22px 24px;
}
.bs-row__label { font-size: 15.5px; font-weight: 500; color: var(--bs-ink); }
.bs-row__hint { font-size: 13px; color: var(--bs-muted); margin-top: 3px; max-width: 54ch; }
.bs-row__rate { font-size: 13px; color: var(--bs-blue); font-weight: 650; margin-top: 5px; }

.bs-qty { display: inline-flex; align-items: center; gap: 0; flex: 0 0 auto; }
.bs-qty__btn {
    width: 40px; min-width: 40px; height: 40px;
    box-sizing: border-box;
    padding: 0;
    flex: 0 0 auto;
    border: 1.5px solid var(--bs-line);
    background: var(--bs-white);
    color: var(--bs-ink);
    font-size: 19px; font-weight: 600;
    cursor: pointer; line-height: 1;
    display: flex; align-items: center; justify-content: center;
    transition: background var(--bs-t), border-color var(--bs-t), color var(--bs-t);
}
.bs-qty__btn:first-child { border-radius: var(--bs-r-sm) 0 0 var(--bs-r-sm); }
.bs-qty__btn:last-child  { border-radius: 0 var(--bs-r-sm) var(--bs-r-sm) 0; }
.bs-qty__btn:hover { background: var(--bs-blue); border-color: var(--bs-blue); color: #fff; }
.bs-qty__btn:focus-visible { outline: 3px solid var(--bs-blue); outline-offset: 2px; z-index: 1; }
.bs-wrap .bs-qty input[type="number"] {
    /* Every one of these is forced because the theme sets width, padding and
       colour on inputs at a specificity that beats a plain class selector.
       Four figures need to fit, so 200 and 1000 both read cleanly. */
    box-sizing: border-box !important;
    width: 96px !important;
    min-width: 96px !important;
    max-width: 96px !important;
    height: 40px !important;
    min-height: 40px !important;
    margin: 0 !important;
    padding: 0 8px !important;
    border: 1.5px solid var(--bs-line) !important;
    border-left: 0 !important;
    border-right: 0 !important;
    border-radius: 0 !important;
    text-align: center !important;
    text-indent: 0 !important;
    font-size: 16px !important;
    font-weight: 500 !important;
    line-height: 36px !important;
    letter-spacing: 0 !important;
    color: var(--bs-ink) !important;
    -webkit-text-fill-color: var(--bs-ink) !important;
    opacity: 1 !important;
    background: var(--bs-white) !important;
    background-image: none !important;
    box-shadow: none !important;
    -moz-appearance: textfield;
    appearance: textfield;
    flex: 0 0 auto;
}
.bs-qty input::-webkit-outer-spin-button,
.bs-qty input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.bs-qty input:focus { outline: 0; border-color: var(--bs-blue); }

.bs-sub {
    min-width: 96px; text-align: right;
    font-size: 15px; font-weight: 700; color: var(--bs-ink);
    font-variant-numeric: tabular-nums;
}

.bs-check {
    display: grid; grid-template-columns: 22px 1fr auto; gap: 13px;
    align-items: start;
    background: var(--bs-wash);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    padding: 16px 18px;
    cursor: pointer;
    transition: border-color var(--bs-t), background var(--bs-t);
}
.bs-check:hover { border-color: var(--bs-blue-line); }
.bs-check input { width: 20px; height: 20px; accent-color: var(--bs-blue); margin: 1px 0 0; cursor: pointer; }
.bs-check__t { font-size: 14.5px; font-weight: 650; color: var(--bs-ink); }
.bs-check__d { font-size: 13px; color: var(--bs-muted); margin-top: 3px; }
.bs-check__p { font-size: 14px; font-weight: 700; color: var(--bs-blue); white-space: nowrap; }
.bs-check:has(input:checked) { border-color: var(--bs-blue); background: var(--bs-blue-wash); }

.bs-pills { display: flex; flex-wrap: wrap; gap: 9px; }
.bs-pill {
    position: relative;
    border: 1.5px solid var(--bs-line);
    background: var(--bs-white);
    border-radius: 99px;
    padding: 9px 18px;
    font-size: 13.5px; font-weight: 650; color: var(--bs-body);
    cursor: pointer;
    transition: border-color var(--bs-t), background var(--bs-t), color var(--bs-t);
}
.bs-pill:hover { border-color: var(--bs-blue-line); }
.bs-pill.is-on { border-color: var(--bs-blue); background: var(--bs-blue); color: #fff; }
.bs-pill input { position: absolute; opacity: 0; pointer-events: none; }

.bs-save {
    display: none;
    align-items: center; gap: 9px;
    background: var(--bs-green-wash);
    border: 1px solid rgba(0,135,90,.2);
    border-radius: var(--bs-r);
    padding: 12px 16px;
    font-size: 13.5px; color: var(--bs-green); font-weight: 600;
}
.bs-save.is-shown { display: flex; }
.bs-save svg { width: 17px; height: 17px; color: var(--bs-green); }
.bs-save strong { font-weight: 600; }

/* --- Notes and info ------------------------------------------------------ */

.bs-note {
    display: grid; grid-template-columns: 20px 1fr; gap: 12px;
    background: var(--bs-blue-wash);
    border: 1px solid var(--bs-blue-line);
    border-radius: var(--bs-r);
    padding: 15px 18px;
    font-size: 13.5px; line-height: 1.55; color: #24316B;
}
.bs-note svg { width: 20px; height: 20px; color: var(--bs-blue); margin-top: 1px; }
.bs-note strong { color: var(--bs-blue-deep); }
.bs-note--warn { background: var(--bs-red-wash); border-color: rgba(196,37,37,.2); color: #7A1A1A; }
.bs-note--warn svg { color: var(--bs-red); }
.bs-note--free { background: var(--bs-green-wash); border-color: rgba(0,135,90,.2); color: #0A4F38; }
.bs-note--free svg { color: var(--bs-green); }

/* --- Trust --------------------------------------------------------------- */

.bs-trust { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; margin-bottom: 26px; }
.bs-trust__card {
    background: var(--bs-white);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    padding: 20px 22px;
    box-shadow: var(--bs-shadow);
}
.bs-trust__card h4 {
    font-size: 15px; display: flex; align-items: center; gap: 9px; margin-bottom: 8px;
}
.bs-trust__card h4 svg { width: 18px; height: 18px; color: var(--bs-blue); flex-shrink: 0; }
.bs-trust__card p { font-size: 13.5px; line-height: 1.6; color: var(--bs-body); }

.bs-marks {
    display: flex; flex-wrap: wrap; align-items: center;
    gap: 30px;
    padding: 26px 30px;
    margin-bottom: 26px;
    background: var(--bs-white);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
}
.bs-marks img { height: 48px !important; max-height: 48px !important; max-width: 170px !important; display: block; }
.bs-marks p {
    flex: 1 1 240px; min-width: 200px;
    font-size: 12.5px; font-weight: 300; line-height: 1.6; color: var(--bs-muted);
}

/* --- Details form -------------------------------------------------------- */

.bs-fieldset {
    background: var(--bs-white);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    padding: 32px;
    margin-bottom: 16px;
    box-shadow: var(--bs-shadow);
}
.bs-fieldset__title {
    font-size: 1.06rem; font-weight: 500; color: var(--bs-ink);
    display: flex; align-items: center; gap: 10px;
    padding-bottom: 14px; margin-bottom: 20px;
    border-bottom: 1px solid var(--bs-line);
}
.bs-fieldset__title svg { width: 19px; height: 19px; color: var(--bs-blue); }

.bs-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bs-grid--full { grid-template-columns: 1fr; }
.bs-field--wide { grid-column: 1 / -1; }

.bs-field label {
    display: block;
    font-size: 13px; font-weight: 650; color: var(--bs-ink);
    margin-bottom: 7px;
}
.bs-field label .bs-req { color: var(--bs-red); margin-left: 2px; }
.bs-field input[type="text"],
.bs-field input[type="email"],
.bs-field input[type="tel"],
.bs-field input[type="date"],
.bs-field select {
    width: 100%;
    height: 46px;
    padding: 0 14px;
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r-sm);
    background: var(--bs-white);
    font-family: inherit;
    font-size: 14.5px;
    color: var(--bs-ink);
    transition: border-color var(--bs-t), box-shadow var(--bs-t);
}
.bs-field input:focus, .bs-field select:focus {
    outline: 0;
    border-color: var(--bs-blue);
    box-shadow: 0 0 0 4px rgba(0,47,237,.11);
}
.bs-field input.has-error, .bs-ms__btn.has-error {
    border-color: var(--bs-red);
    box-shadow: 0 0 0 4px rgba(196,37,37,.09);
}
.bs-field__err {
    display: none;
    font-size: 12.5px; color: var(--bs-red); font-weight: 600; margin-top: 6px;
}
.bs-field__err.is-shown { display: block; }
.bs-field__hint { font-size: 12.5px; color: var(--bs-muted); margin-top: 6px; }

/* Multiselect */
.bs-ms { position: relative; }
.bs-ms__btn {
    width: 100%; min-height: 46px;
    padding: 11px 40px 11px 14px;
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r-sm);
    background: var(--bs-white);
    text-align: left;
    font-family: inherit; font-size: 14.5px; color: var(--bs-ink);
    cursor: pointer;
    transition: border-color var(--bs-t), box-shadow var(--bs-t);
}
.bs-ms__btn:focus-visible { outline: 0; border-color: var(--bs-blue); box-shadow: 0 0 0 4px rgba(0,47,237,.11); }
.bs-ms__btn.is-empty { color: var(--bs-muted); }
.bs-ms__btn::after {
    content: ''; position: absolute; right: 16px; top: 20px;
    width: 8px; height: 8px;
    border-right: 2px solid var(--bs-muted);
    border-bottom: 2px solid var(--bs-muted);
    transform: rotate(45deg);
    transition: transform var(--bs-t);
}
.bs-ms.is-open .bs-ms__btn::after { transform: rotate(-135deg); top: 24px; }
.bs-ms__panel {
    display: none;
    position: absolute; z-index: 40; top: calc(100% + 6px); left: 0; right: 0;
    background: var(--bs-white);
    border: 1.5px solid var(--bs-blue-line);
    border-radius: var(--bs-r);
    box-shadow: var(--bs-shadow-lg);
    max-height: 300px;
    overflow: hidden;
    flex-direction: column;
}
.bs-ms.is-open .bs-ms__panel { display: flex; }
.bs-ms__search {
    border: 0; border-bottom: 1px solid var(--bs-line);
    height: 44px; padding: 0 14px;
    font-family: inherit; font-size: 14px;
    width: 100%;
}
.bs-ms__search:focus { outline: 0; }
.bs-ms__list { overflow-y: auto; padding: 6px; }
.bs-ms__opt {
    display: flex; align-items: center; gap: 10px;
    padding: 9px 11px; border-radius: var(--bs-r-sm);
    font-size: 14px; cursor: pointer;
}
.bs-ms__opt:hover { background: var(--bs-blue-wash); }
.bs-ms__opt input { width: 17px; height: 17px; accent-color: var(--bs-blue); }
.bs-ms__chips { display: flex; flex-wrap: wrap; gap: 7px; margin-top: 9px; }
.bs-ms__chip {
    display: inline-flex; align-items: center; gap: 7px;
    background: var(--bs-blue-wash); color: var(--bs-blue-deep);
    border: 1px solid var(--bs-blue-line);
    border-radius: 99px; padding: 5px 8px 5px 12px;
    font-size: 12.5px; font-weight: 600;
}
.bs-ms__chip button {
    border: 0; background: transparent; cursor: pointer;
    color: var(--bs-blue); font-size: 15px; line-height: 1; padding: 0 2px;
}

/* --- Review -------------------------------------------------------------- */

.bs-summary {
    background: var(--bs-white);
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    overflow: hidden;
    box-shadow: var(--bs-shadow);
    margin-bottom: 20px;
}
.bs-summary__head {
    background: var(--bs-ink); color: #fff;
    padding: 18px 24px;
    font-size: 1.02rem; font-weight: 700;
    display: flex; justify-content: space-between; align-items: center;
}
.bs-summary__head span { font-size: 12px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; opacity: .7; }
.bs-summary__body { padding: 8px 24px 20px; }

.bs-li {
    display: grid; grid-template-columns: 1fr auto;
    gap: 16px; align-items: baseline;
    padding: 13px 0;
    border-bottom: 1px solid var(--bs-line);
}
.bs-li:last-child { border-bottom: 0; }
.bs-li__t { font-size: 14.5px; font-weight: 600; color: var(--bs-ink); }
.bs-li__d { font-size: 12.5px; color: var(--bs-muted); margin-top: 3px; }
.bs-li__a { font-size: 14.5px; font-weight: 700; color: var(--bs-ink); font-variant-numeric: tabular-nums; }
.bs-li--save .bs-li__t, .bs-li--save .bs-li__a { color: var(--bs-green); }
.bs-li--free .bs-li__a { color: var(--bs-green); }

.bs-summary__total {
    display: flex; justify-content: space-between; align-items: baseline;
    padding: 20px 24px;
    background: var(--bs-blue-wash);
    border-top: 1.5px solid var(--bs-blue-line);
}
.bs-summary__total b { font-size: 1.02rem; color: var(--bs-ink); }
.bs-summary__total i {
    font-style: normal; font-size: 2.05rem; font-weight: 500;
    color: var(--bs-blue); letter-spacing: -.03em; font-variant-numeric: tabular-nums;
}

.bs-terms {
    background: var(--bs-gold-wash);
    border: 1px solid rgba(168,114,15,.24);
    border-radius: var(--bs-r);
    padding: 20px 22px;
    margin-bottom: 20px;
    display: none;
}
.bs-terms.is-shown { display: block; }
.bs-terms h4 { font-size: 15px; color: #6B4A0A; margin-bottom: 9px; }
.bs-terms p, .bs-terms li { font-size: 13.5px; color: #6B4A0A; line-height: 1.6; }
.bs-terms ul { margin: 9px 0 0; padding-left: 19px; }
.bs-terms li { margin-bottom: 5px; }

/* --- Declarations -------------------------------------------------------- */

.bs-declarations {
    background: var(--bs-white);
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    padding: 30px;
    margin-bottom: 22px;
    box-shadow: var(--bs-shadow);
}
.bs-declarations.has-error { border-color: var(--bs-red); }

.bs-declarations__head {
    display: flex; flex-wrap: wrap; gap: 16px;
    align-items: flex-start; justify-content: space-between;
    padding-bottom: 18px; margin-bottom: 6px;
    border-bottom: 1px solid var(--bs-line);
}
.bs-declarations__head h3 { font-size: 1.12rem; font-weight: 500; color: var(--bs-ink); }
.bs-declarations__head p {
    margin-top: 6px; max-width: 58ch;
    font-size: 13.5px; font-weight: 300; line-height: 1.6; color: var(--bs-muted);
}
.bs-declarations__all {
    flex: 0 0 auto;
    border: 1.5px solid var(--bs-line);
    background: var(--bs-white);
    border-radius: 99px;
    padding: 9px 18px;
    font-size: 13px; font-weight: 500; color: var(--bs-ink);
    cursor: pointer;
    transition: border-color var(--bs-t), background var(--bs-t), color var(--bs-t);
}
.bs-declarations__all:hover { border-color: var(--bs-blue); background: var(--bs-blue); color: #fff; }

.bs-declare {
    display: grid;
    grid-template-columns: 22px 1fr;
    gap: 14px;
    align-items: start;
    padding: 16px 0;
    border-bottom: 1px solid var(--bs-line);
    cursor: pointer;
}
.bs-declarations .bs-declare:last-child { border-bottom: 0; padding-bottom: 0; }
.bs-declare input {
    width: 20px; height: 20px;
    margin: 1px 0 0;
    accent-color: var(--bs-blue);
    cursor: pointer;
    flex: 0 0 auto;
}
.bs-declare span {
    font-size: 13.5px;
    font-weight: 300;
    line-height: 1.66;
    color: var(--bs-body);
}
.bs-declare span strong { font-weight: 600; color: var(--bs-ink); }
.bs-declare span a { color: var(--bs-blue); text-decoration: underline; text-underline-offset: 2px; }
.bs-declare.has-error span { color: var(--bs-red); }
.bs-declare:has(input:checked) span { color: var(--bs-muted); }

.bs-declare--warn {
    margin-top: 16px; padding: 16px; border-bottom: 0;
    background: rgba(255,255,255,.7);
    border: 1px solid rgba(168,114,15,.3);
    border-radius: var(--bs-r-sm);
}
.bs-declare--warn span { color: #6B4A0A; }

/* --- No cover warning ---------------------------------------------------- */

.bs-warn {
    display: none;
    grid-template-columns: 28px 1fr;
    gap: 16px;
    background: #FFFBEB;
    border: 1px solid rgba(168,114,15,.3);
    border-radius: var(--bs-r-lg);
    padding: 24px 26px;
    margin-bottom: 22px;
}
.bs-warn.is-shown { display: grid; }
.bs-warn__icon { color: var(--bs-gold); }
.bs-warn__icon svg { width: 26px; height: 26px; }
.bs-warn h4 { font-size: 1rem; font-weight: 500; color: #6B4A0A; margin-bottom: 7px; }
.bs-warn p { font-size: 13.5px; font-weight: 300; line-height: 1.6; color: #6B4A0A; }
.bs-warn .bs-declare {
    margin-top: 14px; padding: 14px; border-bottom: 0;
    background: #fff;
    border: 1px solid rgba(168,114,15,.3);
    border-radius: var(--bs-r-sm);
}
.bs-warn .bs-declare span { color: #6B4A0A; }

/* --- Sticky total bar ---------------------------------------------------- */

.bs-form-area { position: relative; }

.bs-dock-sentinel { height: 1px; margin-top: -1px; }

.bs-bar {
    position: sticky;
    bottom: 12px;
    z-index: 30;
    margin-top: 26px;
    background: rgba(255,255,255,.94);
    backdrop-filter: blur(14px);
    -webkit-backdrop-filter: blur(14px);
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    box-shadow: 0 -2px 30px rgba(10,14,26,.09);
    padding: 15px 22px;
    transition: box-shadow .4s var(--bs-ease), background .4s var(--bs-ease), border-color .4s var(--bs-ease);
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 18px;
    align-items: center;
}
.bs-bar.is-docked {
    background: #fff;
    border-color: var(--bs-blue-line);
    box-shadow: 0 2px 4px rgba(10,14,26,.04), 0 14px 40px rgba(0,47,237,.1);
}

.bs-bar__amt {
    display: flex; align-items: baseline; gap: 3px;
    font-weight: 500; letter-spacing: -.04em; color: var(--bs-ink);
}
.bs-bar__amt .bs-cur { font-size: 1.05rem; }
.bs-bar__amt .bs-amt { font-size: 1.95rem; line-height: 1; font-variant-numeric: tabular-nums; }
.bs-bar__amt.is-bumped { animation: bs-bump .42s var(--bs-ease); }
@keyframes bs-bump {
    0%   { transform: none; }
    38%  { transform: scale(1.075); color: var(--bs-blue); }
    100% { transform: none; }
}
.bs-bar__per { font-size: 12.5px; color: var(--bs-muted); font-weight: 600; }
.bs-bar__meta { font-size: 12.5px; color: var(--bs-muted); }
.bs-bar__meta strong { color: var(--bs-green); }
.bs-bar__acts { display: flex; gap: 10px; }

/* --- Buttons ------------------------------------------------------------- */

.bs-btn {
    border: 0;
    border-radius: 99px;
    padding: 14px 30px;
    font-size: 14.5px; font-weight: 500;
    cursor: pointer;
    display: inline-flex; align-items: center; justify-content: center; gap: 9px;
    transition: background var(--bs-t), color var(--bs-t), box-shadow var(--bs-t), transform var(--bs-t);
    white-space: nowrap;
}
.bs-btn:focus-visible { outline: 3px solid var(--bs-blue); outline-offset: 3px; }
.bs-btn svg { width: 17px; height: 17px; }

.bs-btn--primary { background: var(--bs-blue); color: #fff; box-shadow: 0 4px 16px rgba(0,47,237,.26); }
.bs-btn--primary:hover { background: var(--bs-blue-dark); transform: translateY(-1px); box-shadow: 0 7px 24px rgba(0,47,237,.32); }
.bs-btn--primary:disabled { background: #A9B4D8; box-shadow: none; cursor: not-allowed; transform: none; }

.bs-btn--ghost { background: transparent; color: var(--bs-body); border: 1.5px solid var(--bs-line); }
.bs-btn--ghost:hover { border-color: var(--bs-blue); color: var(--bs-blue); }

.bs-btn--quiet { background: var(--bs-wash); color: var(--bs-ink); }
.bs-btn--quiet:hover { background: var(--bs-blue-wash); color: var(--bs-blue); }

.bs-btn--wide { width: 100%; }

.bs-spin {
    width: 16px; height: 16px;
    border: 2px solid rgba(255,255,255,.35);
    border-top-color: #fff;
    border-radius: 50%;
    animation: bs-spin .7s linear infinite;
    display: none;
}
.bs-btn.is-busy .bs-spin { display: block; }
.bs-btn.is-busy .bs-btn__t { opacity: .7; }
@keyframes bs-spin { to { transform: rotate(360deg); } }

.bs-back {
    background: none; border: 0; cursor: pointer;
    color: var(--bs-muted); font-size: 14px; font-weight: 600;
    padding: 8px 0; margin-bottom: 14px;
    display: inline-flex; align-items: center; gap: 7px;
    transition: color var(--bs-t);
}
.bs-back:hover { color: var(--bs-blue); }
.bs-back svg { width: 15px; height: 15px; }

.bs-err {
    display: none;
    background: var(--bs-red-wash);
    border: 1px solid rgba(196,37,37,.24);
    border-radius: var(--bs-r);
    padding: 14px 18px;
    font-size: 14px; color: #7A1A1A; font-weight: 600;
    margin-bottom: 16px;
}
.bs-err.is-shown { display: block; }

/* --- Blue band above every step after the chooser ------------------------ */

.bs-band {
    position: relative;
    left: 50%;
    width: 100vw;
    margin-left: -50vw;
    margin-bottom: clamp(34px, 4vw, 52px);
    padding: clamp(110px, 15vh, 185px) 24px clamp(40px, 5vh, 62px);
    background: var(--bs-blue);
    background-image: radial-gradient(52rem 30rem at 82% -20%, rgba(255,255,255,.15), transparent 60%);
    color: #fff;
}
.bs-band__inner { max-width: 1000px; margin: 0 auto; }

.bs-band .bs-back { color: rgba(255,255,255,.7); margin-bottom: 26px; }
.bs-band .bs-back:hover { color: #fff; }

.bs-band .bs-rail { margin-bottom: 30px; }
.bs-band .bs-rail__track { background: rgba(255,255,255,.2); }
.bs-band .bs-rail__fill { background: #fff; }
.bs-band .bs-rail__meta { color: rgba(255,255,255,.6); }
.bs-band .bs-rail__meta strong { color: #fff; }

.bs-band__eyebrow {
    display: block;
    font-size: 11px; font-weight: 600; letter-spacing: .2em; text-transform: uppercase;
    color: rgba(255,255,255,.6);
    margin-bottom: 14px;
}
.bs-band__head h2 {
    color: #fff;
    font-size: clamp(1.9rem, 4.4vw, 3rem);
    font-weight: 200;
    letter-spacing: -.042em;
    line-height: 1.06;
}
.bs-band__head p {
    margin-top: 16px;
    font-size: clamp(.95rem, 1.4vw, 1.05rem);
    font-weight: 300;
    line-height: 1.62;
    color: rgba(255,255,255,.74);
    max-width: 62ch;
}

/* --- Explainer cards inside sections ------------------------------------- */

.bs-explain { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.bs-explain__card--wide { grid-column: 1 / -1; }

.bs-explain__card {
    background: linear-gradient(180deg, var(--bs-blue-wash), #FBFCFF);
    border: 1px solid var(--bs-blue-line);
    border-radius: var(--bs-r);
    padding: 24px 26px;
}
.bs-explain__icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px;
    border-radius: 11px;
    background: var(--bs-blue); color: #fff;
    margin-bottom: 16px;
}
.bs-explain__icon svg { width: 18px; height: 18px; stroke-width: 1.6; }
.bs-explain__card h4 {
    font-size: 1rem; font-weight: 500; color: var(--bs-ink);
    letter-spacing: -.02em; margin-bottom: 10px;
}
.bs-explain__card p { font-size: 13.5px; font-weight: 300; line-height: 1.62; color: var(--bs-body); }
.bs-explain__card ul { margin: 12px 0 0; padding: 0; list-style: none; }
.bs-explain__card li {
    position: relative;
    padding-left: 20px;
    margin-bottom: 8px;
    font-size: 13.5px; font-weight: 300; line-height: 1.58; color: var(--bs-body);
}
.bs-explain__card li::before {
    content: '';
    position: absolute; left: 4px; top: 8px;
    width: 5px; height: 5px; border-radius: 50%;
    background: var(--bs-blue);
}
.bs-explain__card li b { font-weight: 600; color: var(--bs-ink); }
.bs-explain__card ul + p { margin-top: 12px; }
.bs-explain__link { margin-top: 14px; }

.bs-link {
    display: inline-flex; align-items: center; gap: 6px;
    color: var(--bs-blue); font-weight: 500; font-size: 13.5px;
    text-decoration: none;
    border-bottom: 1px solid var(--bs-blue-line);
    padding-bottom: 1px;
    transition: border-color var(--bs-t);
}
.bs-link:hover { border-bottom-color: var(--bs-blue); }
.bs-link svg { width: 13px; height: 13px; }

/* --- Anchored strip below the wizard ------------------------------------- */

.bs-anchor { margin-top: clamp(64px, 8vw, 104px); padding-top: clamp(8px, 2vw, 20px); }

.bs-help {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 22px;
    align-items: center;
    background: var(--bs-ink);
    border-radius: var(--bs-r-lg);
    padding: 26px 30px;
    color: #fff;
    margin-bottom: 20px;
}
.bs-help__pulse {
    position: relative;
    width: 46px; height: 46px; border-radius: 50%;
    display: flex; align-items: center; justify-content: center;
    background: rgba(255,255,255,.1);
    color: #fff;
}
.bs-help__pulse::after {
    content: '';
    position: absolute; inset: 0; border-radius: 50%;
    border: 1px solid rgba(255,255,255,.4);
    animation: bs-ripple 3.2s var(--bs-ease) infinite;
}
@keyframes bs-ripple {
    0%   { transform: scale(1);   opacity: .8; }
    70%  { transform: scale(1.5); opacity: 0; }
    100% { transform: scale(1.5); opacity: 0; }
}
.bs-help__text h3 { color: #fff; font-size: 1.1rem; font-weight: 500; }
.bs-help__text p { margin-top: 5px; font-size: 13.5px; font-weight: 300; color: rgba(255,255,255,.66); }

@property --bs-angle {
    syntax: '<angle>';
    initial-value: 0deg;
    inherits: false;
}

.bs-assure { display: grid; grid-template-columns: repeat(2, 1fr); gap: 14px; }

.bs-assure__item {
    position: relative;
    background: #fff;
    border: 0;
    border-radius: var(--bs-r);
    padding: 22px 24px;
    box-shadow: 0 1px 2px rgba(10,14,26,.03), 0 8px 26px rgba(10,14,26,.05);
    transition: transform var(--bs-t), box-shadow var(--bs-t);
}
.bs-assure__item:hover { transform: translateY(-2px); box-shadow: var(--bs-shadow-lg); }

/* Animated hairline. A conic gradient masked to the border edge only, so the
   card face stays clean white. Falls back to a static rainbow where @property
   is unsupported. */
.bs-assure__item::before {
    content: '';
    position: absolute; inset: 0;
    border-radius: inherit;
    padding: 1.5px;
    background: conic-gradient(
        from var(--bs-angle),
        #002FED, #4F46E5, #9333EA, #EC4899, #F59E0B, #10B981, #06B6D4, #002FED
    );
    -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
            mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor;
            mask-composite: exclude;
    animation: bs-hue 7s linear infinite, bs-hue-fade 4.5s var(--bs-ease) infinite;
    pointer-events: none;
}
.bs-assure__item:nth-child(2)::before { animation-delay: 0s, 1.1s; }
.bs-assure__item:nth-child(3)::before { animation-delay: 0s, 2.2s; }
.bs-assure__item:nth-child(4)::before { animation-delay: 0s, 3.3s; }

@keyframes bs-hue      { to { --bs-angle: 360deg; } }
@keyframes bs-hue-fade {
    0%, 100% { opacity: .34; }
    50%      { opacity: .85; }
}

.bs-assure__item h4 {
    font-size: 11.5px;
    font-weight: 600;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: var(--bs-ink);
    margin-bottom: 9px;
}
@supports (-webkit-background-clip: text) or (background-clip: text) {
    .bs-assure__item h4 {
        background: linear-gradient(90deg, #0A0E1A, #002FED, #7C3AED, #DB2777, #C2620C, #047857, #0A0E1A);
        background-size: 320% 100%;
        -webkit-background-clip: text;
                background-clip: text;
        color: transparent;
        animation: bs-textflow 14s linear infinite;
    }
    .bs-assure__item:nth-child(2) h4 { animation-delay: -3.5s; }
    .bs-assure__item:nth-child(3) h4 { animation-delay: -7s; }
    .bs-assure__item:nth-child(4) h4 { animation-delay: -10.5s; }
}
@keyframes bs-textflow {
    from { background-position: 0 0; }
    to   { background-position: -320% 0; }
}
.bs-assure__item p { font-size: 13px; font-weight: 300; line-height: 1.62; color: var(--bs-body); }

/* Help block sitting inside the blue hero */
.bs-hero__help {
    display: flex; flex-wrap: wrap; gap: 20px;
    align-items: center; justify-content: space-between;
    margin-top: clamp(40px, 5vw, 60px);
    padding: 24px 28px;
    border: 1px solid rgba(255,255,255,.2);
    border-radius: var(--bs-r-lg);
    background: rgba(255,255,255,.06);
}
.bs-hero__help h3 { color: #fff; font-size: 1.06rem; font-weight: 400; }
.bs-hero__help p { margin-top: 5px; font-size: 13.5px; font-weight: 300; color: rgba(255,255,255,.68); }

.bs-btn--light { background: #fff; color: var(--bs-blue); }
.bs-btn--light:hover { background: rgba(255,255,255,.9); transform: translateY(-1px); }

/* --- Armed Forces and blue light discount -------------------------------- */

.bs-forces {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 26px;
    align-items: center;
    background: #fff;
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r-lg);
    padding: 26px 30px;
    margin-bottom: 20px;
}
.bs-forces img { height: 72px !important; max-height: 72px !important; max-width: 190px !important; display: block; }
.bs-forces__body h3 { font-size: 1.06rem; font-weight: 500; color: var(--bs-ink); margin-bottom: 8px; }
.bs-forces__body p { font-size: 13.5px; font-weight: 300; line-height: 1.62; color: var(--bs-body); }
.bs-forces__body p + p { margin-top: 8px; }
.bs-forces__how { color: var(--bs-blue) !important; font-weight: 500 !important; }

/* --- Volume ladder, compact and inline ----------------------------------- */

.bs-tierrow + .bs-tierrow { margin-top: 14px; }

.bs-ladder { margin-top: 10px; }
.bs-ladder__label {
    display: block;
    font-size: 10px; font-weight: 600; letter-spacing: .11em; text-transform: uppercase;
    color: var(--bs-muted);
    margin-bottom: 7px;
}
.bs-ladder__track {
    display: flex; align-items: center; gap: 3px;
    flex-wrap: wrap;
}
.bs-ladder__arrow { color: #C7CEDD; font-size: 12px; line-height: 1; flex: 0 0 auto; }

.bs-ladder__step {
    flex: 0 0 auto;
    display: inline-flex; align-items: baseline; gap: 5px;
    padding: 4px 9px;
    border: 1px solid var(--bs-line);
    border-radius: 99px;
    background: var(--bs-white);
    white-space: nowrap;
    transition: border-color .4s var(--bs-ease), background .4s var(--bs-ease), color .4s var(--bs-ease);
}
.bs-ladder__step b {
    font-size: 11.5px; font-weight: 500; color: var(--bs-ink);
    font-variant-numeric: tabular-nums; letter-spacing: -.01em;
}
.bs-ladder__step em {
    font-style: normal; font-size: 9.5px; font-weight: 500;
    letter-spacing: .04em; color: var(--bs-muted);
}

.bs-ladder__step.is-passed { opacity: .4; }
.bs-ladder__step.is-passed b { text-decoration: line-through; }

.bs-ladder__step.is-live {
    border-color: var(--bs-blue);
    background: var(--bs-blue);
    animation: bs-light 2.8s var(--bs-ease) infinite;
}
.bs-ladder__step.is-live b { color: #fff; }
.bs-ladder__step.is-live em { color: rgba(255,255,255,.72); }

@keyframes bs-light {
    0%, 100% { box-shadow: 0 0 0 0 rgba(0,47,237,.34); }
    50%      { box-shadow: 0 0 0 5px rgba(0,47,237,0); }
}

.bs-ladder__step.is-next { border-style: dashed; border-color: var(--bs-blue-line); }

.bs-ladder__allin {
    display: none;
    margin-top: 8px;
    font-size: 12px; font-weight: 400; color: var(--bs-body);
}
.bs-ladder__allin.is-shown { display: block; }
.bs-ladder__allin b { font-weight: 600; color: var(--bs-blue); }

/* --- Named versus open --------------------------------------------------- */

.bs-diff {
    display: flex; flex-wrap: wrap; gap: 14px;
    align-items: center; justify-content: space-between;
    padding: 15px 20px;
    background: var(--bs-wash);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    font-size: 13.5px; font-weight: 300; color: var(--bs-body);
}

.bs-covers { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }

.bs-cover {
    position: relative;
    display: flex; flex-direction: column;
    background: var(--bs-white);
    border: 1.5px solid var(--bs-line);
    border-radius: var(--bs-r);
    padding: 26px 24px 22px;
    transition: border-color var(--bs-t), box-shadow var(--bs-t);
}
.bs-cover:hover { border-color: var(--bs-blue-line); box-shadow: var(--bs-shadow); }
.bs-cover__tag {
    align-self: flex-start;
    font-size: 10px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
    background: var(--bs-blue); color: #fff;
    padding: 4px 11px; border-radius: 99px;
    margin-bottom: 14px;
}
.bs-cover__tag--alt { background: var(--bs-wash); color: var(--bs-muted); }

.bs-cover__head { display: flex; align-items: flex-start; justify-content: space-between; gap: 14px; }
.bs-cover.is-off { opacity: .5; }
.bs-cover.is-off .bs-cover__price { color: var(--bs-muted); }

.bs-switch--sm { width: 48px; height: 27px; }
.bs-switch--sm::after { width: 21px; height: 21px; top: 3px; left: 3px; }
.bs-switch--sm[aria-checked="true"]::after { transform: translateX(21px); }
.bs-cover h4 { font-size: 1.06rem; font-weight: 500; color: var(--bs-ink); margin-bottom: 10px; }
.bs-cover p { font-size: 13.5px; font-weight: 300; line-height: 1.62; color: var(--bs-body); }
.bs-cover ul { margin: 12px 0 0; padding: 0; list-style: none; flex: 1; }
.bs-cover li {
    position: relative; padding-left: 20px; margin-bottom: 7px;
    font-size: 13px; font-weight: 300; line-height: 1.55; color: var(--bs-muted);
}
.bs-cover li::before {
    content: ''; position: absolute; left: 4px; top: 7px;
    width: 5px; height: 5px; border-radius: 50%; background: var(--bs-blue-line);
}
.bs-cover__foot {
    display: flex; align-items: center; justify-content: space-between; gap: 14px;
    margin-top: 18px; padding-top: 16px;
    border-top: 1px solid var(--bs-line);
    font-size: 13px; font-weight: 300; color: var(--bs-muted);
}
.bs-cover__foot b { font-weight: 600; color: var(--bs-ink); }
.bs-cover__price {
    font-size: 1.15rem; font-weight: 500; color: var(--bs-ink);
    letter-spacing: -.03em; font-variant-numeric: tabular-nums;
}

.bs-upgrades {
    background: var(--bs-wash);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    padding: 24px;
}
.bs-upgrades > * + * { margin-top: 14px; }
.bs-upgrades__title {
    font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
    color: var(--bs-muted);
}
.bs-upgrades .bs-check { background: var(--bs-white); }

/* --- Help modal ---------------------------------------------------------- */

.bs-modal { --bs-font: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
    position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: 24px; }
.bs-modal[hidden] { display: none; }
.bs-modal__scrim {
    position: absolute; inset: 0;
    background: rgba(6,10,24,.62);
    backdrop-filter: blur(6px);
    -webkit-backdrop-filter: blur(6px);
    animation: bs-fade .3s var(--bs-ease) both;
}
@keyframes bs-fade { from { opacity: 0; } to { opacity: 1; } }

.bs-modal__panel {
    position: relative;
    width: min(640px, 100%);
    max-height: 88vh;
    overflow-y: auto;
    background: var(--bs-white);
    border-radius: 26px;
    padding: 42px 40px 34px;
    box-shadow: 0 40px 100px rgba(6,10,24,.4);
    font-family: var(--bs-font);
    animation: bs-modal-in .42s var(--bs-ease) both;
}
@keyframes bs-modal-in {
    from { opacity: 0; transform: translateY(24px) scale(.97); }
    to   { opacity: 1; transform: none; }
}
.bs-modal__x {
    position: absolute; top: 20px; right: 20px;
    width: 36px; height: 36px; border-radius: 50%;
    border: 0; background: var(--bs-wash); color: var(--bs-muted);
    cursor: pointer; display: flex; align-items: center; justify-content: center;
    transition: background var(--bs-t), color var(--bs-t);
}
.bs-modal__x:hover { background: var(--bs-blue-wash); color: var(--bs-blue); }
.bs-modal__x svg { width: 17px; height: 17px; }

.bs-modal__eyebrow {
    display: block; font-size: 11px; font-weight: 600;
    letter-spacing: .2em; text-transform: uppercase;
    color: var(--bs-blue); margin-bottom: 12px;
}
.bs-modal__panel h2 { font-size: clamp(1.5rem, 3vw, 1.95rem); font-weight: 300; letter-spacing: -.04em; }
.bs-modal__lede { margin-top: 12px; font-size: 14.5px; font-weight: 300; line-height: 1.62; color: var(--bs-body); }
.bs-modal__foot {
    margin-top: 22px; padding-top: 18px;
    border-top: 1px solid var(--bs-line);
    font-size: 12.5px; font-weight: 300; line-height: 1.6; color: var(--bs-muted);
}

.bs-contact {
    display: grid;
    grid-template-columns: auto 1fr auto;
    gap: 16px; align-items: center;
    padding: 18px 20px;
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    text-decoration: none;
    transition: border-color var(--bs-t), background var(--bs-t), transform var(--bs-t);
}
.bs-contact:hover { border-color: var(--bs-blue); background: var(--bs-blue-wash); transform: translateY(-2px); }
.bs-contact__icon {
    width: 40px; height: 40px; border-radius: 12px;
    display: flex; align-items: center; justify-content: center;
    background: var(--bs-blue-wash); color: var(--bs-blue);
}
.bs-contact__icon svg { width: 19px; height: 19px; stroke-width: 1.6; }
.bs-contact__title { display: block; font-size: 14.5px; font-weight: 500; color: var(--bs-ink); }
.bs-contact__title em {
    font-style: normal; font-size: 10px; font-weight: 600;
    letter-spacing: .1em; text-transform: uppercase;
    background: var(--bs-green-wash); color: var(--bs-green);
    padding: 3px 9px; border-radius: 99px; margin-left: 9px;
    vertical-align: 2px;
}
.bs-contact__desc { display: block; margin-top: 4px; font-size: 13px; font-weight: 300; line-height: 1.55; color: var(--bs-muted); }
.bs-contact__go { color: var(--bs-blue); }

.bs-contact--hero {
    margin-top: 26px;
    border-color: var(--bs-blue);
    background: linear-gradient(135deg, var(--bs-blue-wash), #FAFBFF);
    align-items: flex-start;
    box-shadow: 0 6px 22px rgba(0,47,237,.1);
}
.bs-contact--hero .bs-contact__icon { background: var(--bs-blue); color: #fff; }
.bs-contact--hero .bs-contact__go { margin-top: 10px; }

.bs-contact__grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-top: 12px; }

.bs-modal__logo { height: 58px !important; max-height: 58px !important; max-width: 170px !important; display: block; margin-bottom: 20px; }

.bs-proof {
    background: var(--bs-wash);
    border: 1px solid var(--bs-line);
    border-radius: var(--bs-r);
    padding: 20px 22px;
    margin-top: 22px;
}
.bs-proof h4 {
    font-size: 11px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
    color: var(--bs-muted); margin-bottom: 12px;
}
.bs-proof ul { margin: 0 0 14px; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px; }
.bs-proof li {
    font-size: 13px; font-weight: 400; color: var(--bs-ink);
    background: var(--bs-white);
    border: 1px solid var(--bs-line);
    border-radius: 99px;
    padding: 6px 14px;
}
.bs-proof p { font-size: 13px; font-weight: 300; line-height: 1.6; color: var(--bs-body); }

/* --- Celebration --------------------------------------------------------- */

.bs-confetti {
    position: fixed; inset: 0;
    pointer-events: none;
    z-index: 99998;
}

/* --- Responsive ---------------------------------------------------------- */

@media (max-width: 960px) {
    .bs-choices { grid-template-columns: 1fr; gap: 16px; }
    .bs-explain { grid-template-columns: 1fr; }
    .bs-covers { grid-template-columns: 1fr; }
    .bs-forces { grid-template-columns: auto 1fr; }
    .bs-forces .bs-btn { grid-column: 1 / -1; }
    .bs-assure { grid-template-columns: 1fr; }
    .bs-help { grid-template-columns: auto 1fr; }
    .bs-help .bs-btn { grid-column: 1 / -1; }
    .bs-choice { padding: 28px 26px; }
    .bs-choice__desc { flex: none; }
}

@media (max-width: 860px) {
    .bs-tiers { grid-template-columns: 1fr; }
    .bs-trust { grid-template-columns: 1fr; }
    .bs-ask { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
    .bs-wrap { padding-bottom: 160px; font-size: 15px; }
    .bs-hero { padding-top: clamp(88px, 12vh, 130px); padding-left: 20px; padding-right: 20px; }
    .bs-hero h2 { font-size: clamp(2.1rem, 9vw, 2.9rem); }
    .bs-hero__marks { gap: 22px; }
    .bs-hero__marks img { height: 38px !important; max-height: 38px !important; }
    .bs-grid { grid-template-columns: 1fr; }
    .bs-row { grid-template-columns: 1fr; }
    .bs-sec__bar { padding: 18px; }
    .bs-sec__pad { padding: 4px 18px 20px; }
    .bs-fieldset { padding: 20px; }
    .bs-bar { grid-template-columns: 1fr auto; gap: 12px; padding: 13px 16px; }
    .bs-bar__meta { display: none; }
    .bs-bar__acts .bs-btn { padding: 12px 18px; }
    .bs-summary__body, .bs-summary__head, .bs-summary__total { padding-left: 18px; padding-right: 18px; }
    .bs-band { padding-top: clamp(84px, 12vh, 130px); padding-left: 20px; padding-right: 20px; }
    .bs-contact__grid { grid-template-columns: 1fr; }
    .bs-modal { padding: 14px; }
    .bs-modal__panel { padding: 34px 24px 26px; border-radius: 22px; }
    .bs-help { padding: 22px; }
    .bs-explain__card { padding: 20px; }
    .bs-declarations { padding: 22px; }
    .bs-declarations__head { flex-direction: column; }
    .bs-marks { padding: 20px; gap: 20px; }
    .bs-marks img { height: 40px !important; max-height: 40px !important; }
    .bs-forces { grid-template-columns: 1fr; text-align: left; padding: 22px; gap: 18px; }
    .bs-forces img { height: 58px !important; max-height: 58px !important; }
    .bs-diff { flex-direction: column; align-items: flex-start; }
}

/* --- Motion preferences -------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {
    .bs-wrap *, .bs-wrap *::before, .bs-wrap *::after {
        animation-duration: .01ms !important;
        animation-iteration-count: 1 !important;
        transition-duration: .01ms !important;
    }
    .bs-panel.is-active { animation: none; }
}
