/*
Theme Name: Bristleback Academy
Author: Bristleback Academy
Version: 0.10.43
Description: Custom Bristleback Academy website theme.
*/

@font-face {
    font-family: "Inter";
    src: url("assets/fonts/Inter-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 100 900;
    font-display: swap;
}

@font-face {
    font-family: "Space Grotesk";
    src: url("assets/fonts/Space-Grotesk-latin.woff2") format("woff2");
    font-style: normal;
    font-weight: 300 700;
    font-display: swap;
}

:root {
    --bb-orange: #F97316;
    --bb-navy: #0F172A;
    --bb-blue: #3B82F6;
    --bb-violet: #8B5CF6;
    --bb-teal: #14B8A6;
    --bb-bg: #F8F7F2;
    --bb-white: #FFFFFF;
    --bb-slate: #475569;
    --bb-heading: "Space Grotesk", sans-serif;
    --bb-body: "Inter", sans-serif;
}

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

html {
    scroll-behavior: smooth;
}

body {
    margin: 0;
    color: var(--bb-navy);
    background: var(--bb-bg);
    font-family: var(--bb-body);
}

a {
    color: inherit;
    text-decoration: none;
}

/* =========================
   HERO
   ========================= */

.bb-hero {
    position: relative;
    height: 100vh;
    height: 100svh;
    min-height: 100vh;
    min-height: 100svh;
    max-height: 100vh;
    max-height: 100svh;
    overflow: hidden;
    isolation: isolate;
    background: #eeebe7;
}

.bb-hero__backgrounds {
    position: absolute;
    inset: 0;
    z-index: -3;
}

.bb-hero__background {
    position: absolute;
    inset: 0;
    background-image: none;
    background-position: center center;
    background-repeat: no-repeat;
    background-size: cover;
    opacity: 0;
    transform: scale(1.015);
    transition: opacity 750ms ease, transform 7000ms linear;
}

.bb-hero__background.is-active {
    opacity: 1;
    transform: scale(1);
}

/*
   Orange brand wash:
   strongest behind the text and gradually disappears
   before reaching the mascot.
*/
.bb-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: -2;
    pointer-events: none;
    background:
        linear-gradient(
            90deg,
            rgba(249, 115, 22, 0.97) 0%,
            rgba(249, 115, 22, 0.90) 14%,
            rgba(249, 115, 22, 0.67) 30%,
            rgba(249, 115, 22, 0.32) 46%,
            rgba(249, 115, 22, 0.08) 60%,
            rgba(249, 115, 22, 0.00) 74%
        );
}

.bb-hero__content {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: center;
    width: min(1280px, calc(100% - 48px));
    height: 100%;
    margin-inline: auto;
    padding: 135px 0 250px;
}

.bb-hero__copy {
    max-width: 680px;
    color: var(--bb-navy);
}

.bb-hero__eyebrow {
    margin: 0 0 18px;
    font-size: 12px;
    line-height: 1.2;
    font-weight: 700;
    letter-spacing: .14em;
    text-transform: uppercase;
}

.bb-hero__title {
    margin: 0;
    font-family: var(--bb-heading);
    font-size: clamp(42px, 5.1vw, 74px);
    line-height: .98;
    font-weight: 600;
    letter-spacing: -.04em;
    text-wrap: balance;
}

.bb-hero__description {
    max-width: 620px;
    margin: 26px 0 0;
    font-size: clamp(16px, 1.25vw, 18px);
    line-height: 1.62;
}

/* =========================
   FOUR INFO CARDS
   ========================= */

.bb-hero__panels {
    position: absolute;
    z-index: 4;
    left: 50%;
    bottom: 28px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 16px;
    width: min(1280px, calc(100% - 48px));
    transform: translateX(-50%);
}

.bb-hero__panel {
    position: relative;
    display: block;
    min-width: 0;
    min-height: 122px;
    padding: 20px 22px 26px;
    margin: 0;
    border: 0;
    border-radius: 14px;
    outline: 0;
    overflow: hidden;
    background: rgba(255, 255, 255, 0.64);
    color: var(--bb-navy);
    font-family: var(--bb-body);
    text-align: left;
    cursor: pointer;
    opacity: .72;
    box-shadow: 0 8px 30px rgba(15, 23, 42, .08);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
    transition:
        opacity 250ms ease,
        background-color 250ms ease,
        transform 250ms ease,
        box-shadow 250ms ease;
}

.bb-hero__panel:hover,
.bb-hero__panel.is-active {
    opacity: 1;
    background: rgba(255, 255, 255, .88);
}

.bb-hero__panel.is-active {
    transform: translateY(-3px);
    box-shadow: 0 12px 36px rgba(15, 23, 42, .12);
}

.bb-hero__panel:focus-visible {
    box-shadow: 0 0 0 3px rgba(249, 115, 22, .35);
}

.bb-hero__panel h3 {
    margin: 0 0 8px;
    font-family: var(--bb-heading);
    font-size: 18px;
    line-height: 1.2;
    font-weight: 600;
    letter-spacing: -.015em;
}

.bb-hero__panel p {
    margin: 0;
    max-width: 270px;
    color: var(--bb-slate);
    font-size: 13px;
    line-height: 1.5;
}

.bb-hero__progress {
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 4px;
    overflow: hidden;
    border-radius: 0 0 14px 14px;
    background: rgba(15, 23, 42, .12);
}

.bb-hero__progress::after {
    content: "";
    display: block;
    width: 0;
    height: 100%;
}

.bb-hero__panel:nth-child(1) .bb-hero__progress::after {
    background: #F97316;
}

.bb-hero__panel:nth-child(2) .bb-hero__progress::after {
    background: #3B82F6;
}

.bb-hero__panel:nth-child(3) .bb-hero__progress::after {
    background: #8B5CF6;
}

.bb-hero__panel:nth-child(4) .bb-hero__progress::after {
    background: #14B8A6;
}

.bb-hero__panel.is-active .bb-hero__progress::after {
    animation: bb-progress 6000ms linear forwards;
}

@keyframes bb-progress {
    from {
        width: 0;
    }

    to {
        width: 100%;
    }
}

/* =========================
   RESPONSIVE
   ========================= */

@media (max-width: 900px) {
    .bb-hero__content {
        width: min(calc(100% - 36px), 720px);
        padding: 125px 0 305px;
    }

    .bb-hero__panels {
        width: calc(100% - 36px);
        grid-template-columns: repeat(2, minmax(0, 1fr));
        gap: 12px;
        bottom: 18px;
    }

    .bb-hero__panel {
        min-height: 106px;
    }
}

@media (max-width: 600px) {
    /*
     * Mobile hero composition v0.6.6:
     * - mascot is the dominant visual and remains large/clear
     * - heading + description move down to a compact text block
     * - text sits immediately above the information cards
     * - hero keeps a fixed viewport height so the composition never jumps
     */
    .bb-hero {
        background: #eeebe7;
    }

    .bb-hero__background {
        /* Dedicated 9:16 artwork is used on mobile. The artwork is composed
           specifically for portrait screens, so it is no longer cropped from
           the desktop 16:9 source. */
        inset: 0;
        width: 100%;
        height: 100%;
        background-image: none;
        background-position: center center;
        background-size: cover;
        background-repeat: no-repeat;
        transform: none;
        transition: opacity 650ms ease;
    }

    .bb-hero__background.is-active {
        transform: none;
    }

    .bb-hero__overlay {
        background: none;
    }

    .bb-hero__content {
        position: absolute;
        inset: 0;
        width: calc(100% - 28px);
        height: 100%;
        padding: 0;
        align-items: flex-end;
        pointer-events: none;
    }

    .bb-hero__copy {
        position: absolute;
        left: 0;
        right: 0;
        bottom: 124px;
        z-index: 3;
        width: 100%;
        max-width: 100%;
        color: var(--bb-navy);
        pointer-events: none;
    }

    .bb-hero__eyebrow {
        margin: 0 0 7px;
        font-size: 9px;
        line-height: 1.2;
        letter-spacing: .13em;
    }

    .bb-hero__title {
        max-width: 72%;
        margin: 0;
        font-size: clamp(27px, 7.5vw, 34px);
        line-height: 1.02;
        letter-spacing: -.035em;
        text-wrap: balance;
    }

    .bb-hero__description {
        max-width: 70%;
        margin: 9px 0 0;
        font-size: 12px;
        line-height: 1.4;
    }

    /*
     * Mobile cards: active card is centred; neighbouring cards peek in
     * from both sides, as in the reference design.
     */
    .bb-hero__panels {
        position: absolute;
        left: 0;
        bottom: 12px;
        width: 100%;
        transform: none;
        display: flex;
        gap: 10px;
        padding: 0 14px;
        overflow-x: auto;
        overflow-y: hidden;
        scroll-snap-type: x mandatory;
        scrollbar-width: none;
        -ms-overflow-style: none;
    }

    .bb-hero__panels::-webkit-scrollbar {
        display: none;
    }

    .bb-hero__panel {
        flex: 0 0 calc(100vw - 56px);
        width: calc(100vw - 56px);
        min-height: 104px;
        padding: 15px 14px 20px;
        border-radius: 14px;
        scroll-snap-align: center;
        scroll-snap-stop: always;
    }

    .bb-hero__panel h3 {
        font-size: 16px;
    }

    .bb-hero__panel p {
        max-width: 100%;
        font-size: 12px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html {
        scroll-behavior: auto;
    }

    .bb-hero__background,
    .bb-hero__panel,
    .bb-hero__progress::after {
        transition: none;
        animation: none !important;
    }

    .bb-hero__background {
        transform: none;
    }
}


/* =========================================================
   GLOBAL HEADER
   ========================================================= */

:root {
    --bb-font-scale: 1;
}

body {
    font-size: calc(16px * var(--bb-font-scale));
}

.bb-header {
    position: fixed;
    top: 16px;
    left: 0;
    right: 0;
    z-index: 1000;
    width: min(1280px, calc(100% - 48px));
    margin-inline: auto;
    transform: none;
    transition: top 350ms ease, width 350ms ease;
}

.bb-header__bar {
    position: relative;
    display: grid;
    grid-template-columns: 1fr auto 1fr;
    align-items: center;
    min-height: 74px;
    padding: 0 24px;
    border-radius: 20px 20px 0 0;
    background: rgba(255, 255, 255, .86);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
    box-shadow: 0 8px 35px rgba(15, 23, 42, .08);
    transition: min-height 350ms ease, border-radius 350ms ease, background-color 350ms ease;
}

.bb-header.is-sticky {
    top: 0;
    width: min(1280px, calc(100% - 48px));
}

.bb-header.is-sticky .bb-header__bar {
    min-height: 62px;
    border-radius: 0 0 18px 18px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 5px 25px rgba(15, 23, 42, .10);
}

.bb-header__menu-button,
.bb-header__icon-button {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    width: fit-content;
    padding: 9px 0;
    border: 0;
    background: transparent;
    color: var(--bb-navy);
    font-family: var(--bb-body);
    font-size: 15px;
    cursor: pointer;
}

.bb-header__actions {
    display: flex;
    justify-content: flex-end;
    align-items: center;
    gap: 22px;
}

.bb-header__logo {
    display: flex;
    justify-content: center;
    align-items: center;
}

.bb-header__logo img {
    display: block;
    width: 190px;
    height: auto;
    max-height: 52px;
    object-fit: contain;
}

.bb-icon--menu {
    display: inline-flex;
    flex-direction: column;
    justify-content: center;
    gap: 4px;
    width: 22px;
    height: 22px;
}

.bb-icon--menu i {
    display: block;
    width: 21px;
    height: 1.5px;
    background: currentColor;
}

.bb-icon--search {
    position: relative;
    display: inline-block;
    width: 21px;
    height: 21px;
    border: 1.7px solid currentColor;
    border-radius: 50%;
}

.bb-icon--search::after {
    content: "";
    position: absolute;
    width: 9px;
    height: 1.7px;
    right: -6px;
    bottom: 0;
    transform: rotate(48deg);
    transform-origin: left center;
    background: currentColor;
}

.bb-accessibility-symbol {
    font-size: 20px;
    line-height: 1;
}

.bb-header__register { text-decoration: none; }
.bb-header__register-label { margin-left: 2px; }
.bb-icon--register {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 21px;
    height: 21px;
}

.bb-icon--register svg {
    display: block;
    width: 21px;
    height: 21px;
    fill: none;
    stroke: currentColor;
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
}

html[style*="--bb-font-scale"] body { font-size: calc(16px * var(--bb-font-scale, 1)); }
html.bb-reduce-motion *, html.bb-reduce-motion *::before, html.bb-reduce-motion *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }

.bb-header__search-label {
    margin-left: 2px;
}

.bb-icon--close {
    position: relative;
    display: inline-block;
    width: 22px;
    height: 22px;
}

.bb-icon--close::before,
.bb-icon--close::after {
    content: "";
    position: absolute;
    top: 10px;
    left: 1px;
    width: 21px;
    height: 1.5px;
    background: currentColor;
}

.bb-icon--close::before { transform: rotate(45deg); }
.bb-icon--close::after { transform: rotate(-45deg); }

body.bb-modal-open {
    overflow: hidden;
}


/* v0.10.12 — navigation icon tooltips */
.bb-header__actions .bb-header__icon-button[data-bb-tooltip] {
    position: relative;
}
.bb-header__actions .bb-header__icon-button[data-bb-tooltip]::after {
    content: attr(data-bb-tooltip);
    position: absolute;
    top: calc(100% + 9px);
    right: 0;
    z-index: 1100;
    min-width: max-content;
    max-width: 220px;
    padding: 7px 10px;
    border-radius: 7px;
    background: #0F172A;
    color: #fff;
    font: 500 12px/1.2 var(--bb-body);
    letter-spacing: 0;
    white-space: nowrap;
    box-shadow: 0 6px 18px rgba(15,23,42,.18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-3px);
    pointer-events: none;
    transition: opacity 140ms ease, transform 140ms ease, visibility 140ms ease;
}
.bb-header__actions .bb-header__icon-button[data-bb-tooltip]:hover::after,
.bb-header__actions .bb-header__icon-button[data-bb-tooltip]:focus-visible::after {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}
html.bb-high-contrast .bb-header__actions .bb-header__icon-button[data-bb-tooltip]::after {
    background: #000;
    color: #fff;
    border: 1px solid #fff;
}

/* v0.10.12 — search results */
.bb-search-results-page {
    min-height: 65vh;
    padding: 150px 24px 90px;
    background: #fff;
}
.bb-search-results-shell {
    width: min(1120px, 100%);
    margin: 0 auto;
}
.bb-search-results-kicker {
    margin: 0 0 12px;
    color: #64748B;
    font: 700 12px/1.2 var(--bb-heading);
    letter-spacing: .14em;
}
.bb-search-results-page h1 {
    margin: 0;
    color: var(--bb-navy);
    font: 600 clamp(40px, 6vw, 68px)/.98 var(--bb-heading);
    letter-spacing: -.045em;
}
.bb-search-results-query {
    margin: 18px 0 42px;
    color: #64748B;
    font-size: 17px;
}
.bb-search-result-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 18px;
}
.bb-search-result-card {
    display: flex;
    flex-direction: column;
    min-height: 210px;
    padding: 26px;
    border: 1px solid #E2E8F0;
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 10px 28px rgba(15,23,42,.05);
}
.bb-search-result-card__type {
    margin-bottom: 34px;
    color: #F97316;
    font: 700 11px/1.2 var(--bb-heading);
    letter-spacing: .12em;
    text-transform: uppercase;
}
.bb-search-result-card h2 {
    margin: 0 0 10px;
    font: 600 24px/1.1 var(--bb-heading);
    letter-spacing: -.025em;
}
.bb-search-result-card h2 a {
    color: var(--bb-navy);
    text-decoration: none;
}
.bb-search-result-card p {
    margin: 0;
    color: #64748B;
    line-height: 1.55;
}
.bb-search-result-card__link {
    margin-top: auto !important;
    padding-top: 22px;
    color: var(--bb-navy) !important;
    font-weight: 700;
    text-decoration: none;
}
.bb-search-empty {
    max-width: 720px;
    padding: 34px;
    border: 1px solid #E2E8F0;
    border-radius: 16px;
    background: #F8FAFC;
}
.bb-search-empty h2 {
    margin: 0 0 10px;
    font: 600 28px/1.1 var(--bb-heading);
    color: var(--bb-navy);
}
.bb-search-empty p { margin: 0; color: #64748B; line-height: 1.6; }

@media (max-width: 800px) {
    .bb-search-results-page { padding-top: 120px; }
    .bb-search-result-grid { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 600px) {
    .bb-search-result-grid { grid-template-columns: 1fr; }
    .bb-header__actions .bb-header__icon-button[data-bb-tooltip]::after {
        right: 50%;
        transform: translate(50%, -3px);
    }
    .bb-header__actions .bb-header__icon-button[data-bb-tooltip]:hover::after,
    .bb-header__actions .bb-header__icon-button[data-bb-tooltip]:focus-visible::after {
        transform: translate(50%, 0);
    }
}

/* =========================================================
   MENU OVERLAY
   ========================================================= */

.bb-menu-overlay {
    position: fixed;
    inset: 0;
    z-index: -1;
    visibility: hidden;
    opacity: 0;
    transition: opacity 250ms ease, visibility 250ms ease;
}

.bb-menu-overlay.is-open {
    visibility: visible;
    opacity: 1;
    z-index: 1001;
    pointer-events: auto;
}

.bb-menu-backdrop {
    position: absolute;
    inset: 0;
    background: rgba(15, 23, 42, .42);
    backdrop-filter: blur(5px);
    -webkit-backdrop-filter: blur(5px);
}

.bb-menu-panel {
    position: absolute;
    top: 114px;
    right: 24px;
    bottom: 18px;
    left: 24px;
    display: grid;
    grid-template-columns: 235px minmax(0, 1fr);
    overflow: hidden;
    border-radius: 20px;
    background: rgba(255, 255, 255, .97);
    box-shadow: 0 20px 70px rgba(15, 23, 42, .22);
}

.bb-menu-sidebar {
    display: flex;
    flex-direction: column;
    min-width: 0;
    padding: 16px;
    background: #F8F7F2;
    border-right: 1px solid var(--bb-border);
}

.bb-menu-close {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    align-self: flex-start;
    margin: 0 0 20px;
    padding: 10px 8px;
    border: 0;
    background: transparent;
    color: var(--bb-navy);
    font-family: var(--bb-body);
    font-size: 15px;
    cursor: pointer;
}

.bb-menu-nav {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.bb-menu-nav-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 72px;
    padding: 12px 12px;
    border: 0;
    border-radius: 12px;
    background: transparent;
    color: var(--bb-navy);
    font-family: var(--bb-heading);
    font-size: 15px;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
    transition: background-color 180ms ease;
}

.bb-menu-nav-item:hover,
.bb-menu-nav-item.is-active {
    background: #EDE9FE;
}

.bb-menu-arrow {
    font-size: 21px;
    font-weight: 400;
}

.bb-menu-sidebar-link {
    display: flex;
    justify-content: space-between;
    margin-top: auto;
    padding: 16px 8px 4px;
    border-top: 1px solid var(--bb-border);
    font-family: var(--bb-heading);
    font-weight: 600;
    font-size: 14px;
}

.bb-menu-content {
    min-width: 0;
    padding: 42px 42px 36px;
    overflow: auto;
}

.bb-menu-section {
    display: none;
    animation: bb-menu-in 220ms ease both;
}

.bb-menu-section.is-active {
    display: block;
}

@keyframes bb-menu-in {
    from { opacity: 0; transform: translateY(5px); }
    to { opacity: 1; transform: translateY(0); }
}

.bb-menu-kicker {
    margin: 0 0 12px;
    color: #64748B;
    font-family: var(--bb-heading);
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .12em;
}

.bb-menu-heading-row {
    display: flex;
    justify-content: space-between;
    align-items: flex-end;
    gap: 30px;
    padding-bottom: 24px;
    border-bottom: 1px solid var(--bb-border);
}

.bb-menu-content h2 {
    max-width: 700px;
    margin: 0;
    color: var(--bb-navy);
    font-family: var(--bb-heading);
    font-size: clamp(30px, 3vw, 48px);
    line-height: 1.02;
    letter-spacing: -.04em;
    font-weight: 600;
}

.bb-menu-intro {
    max-width: 620px;
    margin: 14px 0 0;
    color: var(--bb-slate);
    font-size: 15px;
    line-height: 1.55;
}

.bb-menu-cta {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    flex: 0 0 auto;
    padding: 12px 15px;
    border: 1px solid var(--bb-navy);
    border-radius: 7px;
    color: var(--bb-navy);
    font-family: var(--bb-heading);
    font-size: 13px;
    font-weight: 600;
}

.bb-menu-cta--dark {
    margin-top: 28px;
    background: var(--bb-navy);
    color: #fff;
}

.bb-program-list {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    padding: 24px 0;
}

.bb-program-card {
    position: relative;
    display: grid;
    grid-template-columns: 38px 1fr 25px;
    column-gap: 10px;
    align-items: center;
    min-height: 86px;
    padding: 15px 16px;
    border: 1px solid var(--bb-border);
    border-radius: 12px;
    background: #fff;
    transition: border-color 180ms ease, transform 180ms ease, box-shadow 180ms ease;
}

.bb-program-card:hover {
    border-color: #CBD5E1;
    transform: translateY(-2px);
    box-shadow: 0 8px 25px rgba(15, 23, 42, .08);
}

.bb-program-number {
    grid-row: span 2;
    font-family: var(--bb-heading);
    font-size: 13px;
    color: var(--bb-orange);
    font-weight: 700;
}

.bb-program-card strong {
    font-family: var(--bb-heading);
    font-size: 16px;
    font-weight: 600;
}

.bb-program-card small {
    color: var(--bb-slate);
    font-size: 12px;
}

.bb-program-arrow {
    grid-column: 3;
    grid-row: 1 / span 2;
    justify-self: end;
    font-size: 19px;
}

.bb-schedule {
    padding-top: 22px;
    border-top: 1px solid var(--bb-border);
}

.bb-schedule-title {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
}

.bb-schedule-title h3 {
    margin: 0;
    font-family: var(--bb-heading);
    font-size: 22px;
    letter-spacing: -.02em;
}

.bb-online-note {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: .1em;
    color: #0F766E;
}

.bb-slot-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.bb-slot {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-height: 130px;
    padding: 15px;
    border: 1px solid var(--bb-border);
    border-radius: 11px;
    background: #F8FAFC;
}

.bb-slot.is-filled {
    border-color: rgba(249, 115, 22, .45);
    background: #FFF7ED;
}

.bb-slot-label {
    margin-bottom: auto;
    color: #64748B;
    font-family: var(--bb-heading);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: .12em;
}

.bb-slot strong {
    font-family: var(--bb-heading);
    font-size: 15px;
    font-weight: 600;
}

.bb-slot span:not(.bb-slot-label),
.bb-slot time {
    color: var(--bb-slate);
    font-size: 12px;
}

.bb-menu-feature-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 14px;
    margin-top: 30px;
}

.bb-menu-feature-grid--three {
    grid-template-columns: repeat(3, minmax(0, 1fr));
}

.bb-menu-feature-grid a {
    display: flex;
    flex-direction: column;
    gap: 8px;
    min-height: 120px;
    padding: 18px;
    border: 1px solid var(--bb-border);
    border-radius: 12px;
}

.bb-menu-feature-grid strong {
    font-family: var(--bb-heading);
    font-size: 17px;
}

.bb-menu-feature-grid span,
.bb-menu-large-copy {
    color: var(--bb-slate);
    line-height: 1.55;
    font-size: 14px;
}

.bb-menu-large-copy {
    max-width: 750px;
    margin: 20px 0 0;
    font-size: 17px;
}

/* =========================================================
   ACCESSIBILITY + SEARCH PANELS
   ========================================================= */

.bb-accessibility-panel,
.bb-search-panel {
    position: fixed;
    top: 99px;
    right: max(24px, calc((100vw - 1280px) / 2));
    z-index: 1002;
    width: min(390px, calc(100vw - 32px));
    padding: 30px;
    border-radius: 18px;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 18px 60px rgba(15, 23, 42, .22);
    visibility: hidden;
    opacity: 0;
    transform: translateY(-8px);
    transition: opacity 220ms ease, transform 220ms ease, visibility 220ms ease;
}

.bb-accessibility-panel.is-open,
.bb-search-panel.is-open {
    visibility: visible;
    opacity: 1;
    transform: translateY(0);
}

.bb-panel-close {
    position: absolute;
    top: 18px;
    right: 18px;
    width: 34px;
    height: 34px;
    padding: 5px;
    border: 0;
    background: transparent;
    color: var(--bb-navy);
    cursor: pointer;
}

.bb-accessibility-panel h2,
.bb-search-panel h2 {
    margin: 0 0 28px;
    padding-right: 35px;
    font-family: var(--bb-heading);
    font-size: 28px;
    line-height: 1.05;
    letter-spacing: -.03em;
}

.bb-toggle-row,
.bb-text-size-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    min-height: 55px;
    border-top: 1px solid var(--bb-border);
    font-size: 14px;
}

.bb-toggle-row input {
    position: absolute;
    opacity: 0;
    pointer-events: none;
}

.bb-toggle {
    position: relative;
    width: 44px;
    height: 25px;
    border-radius: 99px;
    background: #CBD5E1;
    cursor: pointer;
}

.bb-toggle::after {
    content: "";
    position: absolute;
    top: 3px;
    left: 3px;
    width: 19px;
    height: 19px;
    border-radius: 50%;
    background: #fff;
    transition: transform 180ms ease;
}

.bb-toggle-row input:checked + .bb-toggle {
    background: var(--bb-orange);
}

.bb-toggle-row input:checked + .bb-toggle::after {
    transform: translateX(19px);
}

.bb-text-size-row {
    justify-content: flex-start;
}

.bb-text-size-row span {
    margin-right: auto;
}

.bb-text-size-row button {
    border: 0;
    background: transparent;
    font-family: var(--bb-heading);
    font-weight: 600;
    cursor: pointer;
}

.bb-reset-button {
    margin-top: 18px;
    padding: 0;
    border: 0;
    background: transparent;
    color: #475569;
    text-decoration: underline;
    cursor: pointer;
}

.bb-search-panel form {
    position: relative;
    display: flex;
}

.bb-search-panel input {
    width: 100%;
    min-height: 54px;
    padding: 0 54px 0 15px;
    border: 1px solid #CBD5E1;
    border-radius: 8px;
    outline: 0;
    font-family: var(--bb-body);
    font-size: 15px;
}

.bb-search-panel input:focus {
    border-color: var(--bb-orange);
    box-shadow: 0 0 0 3px rgba(249, 115, 22, .15);
}

.bb-search-panel form button {
    position: absolute;
    top: 5px;
    right: 5px;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 6px;
    background: var(--bb-navy);
    color: #fff;
    cursor: pointer;
}

/* Accessibility mode */
html.bb-high-contrast body {
    background: #fff;
    color: #000;
}

html.bb-high-contrast .bb-header__bar,
html.bb-high-contrast .bb-menu-panel,
html.bb-high-contrast .bb-accessibility-panel,
html.bb-high-contrast .bb-search-panel {
    background: #fff;
    color: #000;
    box-shadow: 0 0 0 2px #000;
}

html.bb-reduce-motion *,
html.bb-reduce-motion *::before,
html.bb-reduce-motion *::after {
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
}

/* =========================================================
   MOBILE HEADER / MENU
   ========================================================= */

@media (max-width: 800px) {
    .bb-header {
        top: 10px;
        left: 0;
        right: 0;
        width: calc(100% - 20px);
        margin-inline: auto;
    }

    .bb-header__bar {
        min-height: 64px;
        padding: 0 14px;
        border-radius: 16px 16px 0 0;
    }

    .bb-header.is-sticky {
        top: 10px;
        width: calc(100% - 20px);
    }

    .bb-header.is-sticky .bb-header__bar {
        border-radius: 0 0 16px 16px;
    }

    .bb-header__logo img {
        width: 142px;
        max-height: 40px;
    }

    .bb-header__actions {
        gap: 10px;
    }

    .bb-header__icon-button {
        padding: 8px 3px;
    }

    .bb-header__search-label,
    .bb-header__actions .bb-accessibility-symbol {
        display: none;
    }

    .bb-menu-label {
        display: inline;
    }

    .bb-menu-panel {
        top: 84px;
        right: 10px;
        bottom: 10px;
        left: 10px;
        display: block;
        border-radius: 16px;
        overflow: auto;
    }

    .bb-menu-sidebar {
        border-right: 0;
        border-bottom: 1px solid var(--bb-border);
        padding: 12px;
    }

    .bb-menu-close {
        margin-bottom: 8px;
    }

    .bb-menu-nav {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 6px;
    }

    .bb-menu-nav-item {
        min-height: 62px;
        font-size: 13px;
    }

    .bb-menu-sidebar-link {
        display: none;
    }

    .bb-menu-content {
        padding: 28px 20px 30px;
    }

    .bb-menu-heading-row,
    .bb-schedule-title {
        display: block;
    }

    .bb-menu-heading-row .bb-menu-cta {
        margin-top: 18px;
    }

    .bb-menu-content h2 {
        font-size: 32px;
    }

    .bb-program-list,
    .bb-menu-feature-grid,
    .bb-menu-feature-grid--three,
    .bb-slot-grid {
        grid-template-columns: 1fr;
    }

    .bb-slot-grid {
        gap: 10px;
    }

    .bb-slot {
        min-height: 110px;
    }

    .bb-online-note {
        display: inline-block;
        margin-top: 14px;
    }

    .bb-accessibility-panel,
    .bb-search-panel {
        top: 84px;
        right: 10px;
        width: calc(100vw - 20px);
        max-height: calc(100vh - 94px);
        overflow: auto;
    }
}

@media (max-width: 420px) {
    .bb-header__bar {
        grid-template-columns: 1fr auto 1fr;
    }

    .bb-header__menu-label {
        display: none;
    }

    .bb-header__logo img {
        width: 130px;
    }

    .bb-menu-nav-item {
        min-height: 58px;
    }
}


/* =========================
   SECTION 02 — WHY BRISTLEBACK
   ========================= */
.bb-why {
    position: relative;
    padding: 104px 0 112px;
    background: #f7f5f2;
}

.bb-section__inner { width: min(1280px, calc(100% - 48px)); margin: 0 auto; }
.bb-section__intro { max-width: 760px; margin-bottom: 48px; }
.bb-section__eyebrow { margin: 0 0 18px; color: #F97316; font-size: 12px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.bb-section__intro h2, .bb-programs h2 { margin: 0; color: var(--bb-navy); font-family: var(--bb-heading); font-size: clamp(38px, 5vw, 64px); line-height: 1.02; letter-spacing: -.04em; font-weight: 600; }
.bb-section__lead { max-width: 690px; margin: 20px 0 0; color: var(--bb-slate); font-size: 16px; line-height: 1.65; }

.bb-why__grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 16px; }
.bb-feature-card { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 360px; padding: 28px 24px 26px; overflow: hidden; border-radius: 18px; background: rgba(255,255,255,.92); border: 1px solid rgba(15,23,42,.06); box-shadow: 0 12px 36px rgba(15,23,42,.06); }
.bb-feature-card__icon { width: 58px; height: 58px; margin-bottom: 22px; }
.bb-feature-card__icon svg { width: 100%; height: 100%; stroke: #F97316; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.bb-feature-card__number { margin: 0 0 10px; color: #94a3b8; font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.bb-feature-card h3 { margin: 0 0 12px; color: var(--bb-navy); font-family: var(--bb-heading); font-size: 21px; line-height: 1.15; letter-spacing: -.02em; }
.bb-feature-card p:not(.bb-feature-card__number) { margin: 0; color: var(--bb-slate); font-size: 13px; line-height: 1.55; }
.bb-feature-card__line { display: none; }

/* =========================
   SECTION 03 — PROGRAMS
   ========================= */
.bb-programs { padding: 104px 0 120px; background: #F97316; }
.bb-programs__heading { display: flex; align-items: end; justify-content: space-between; gap: 40px; margin-bottom: 46px; }
.bb-programs__heading .bb-section__lead { margin-bottom: 0; }
.bb-programs .bb-section__eyebrow { color: rgba(255,255,255,.86); }
.bb-programs h2 { color: #fff; }
.bb-programs .bb-section__lead { color: rgba(255,255,255,.88); }
.bb-section__link { flex: 0 0 auto; display: inline-flex; align-items: center; gap: 16px; padding: 14px 18px; border: 1px solid rgba(255,255,255,.72); border-radius: 10px; color: #fff; font-size: 14px; font-weight: 600; text-decoration: none; background: rgba(255,255,255,.08); }
.bb-section__link span { font-size: 22px; line-height: 1; }
.bb-programs__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.bb-program-card { position: relative; display: grid; grid-template-columns: 74px 1fr; gap: 18px; min-height: 220px; padding: 26px 24px 24px; overflow: hidden; border-radius: 18px; background: #fff; border: 1px solid rgba(15,23,42,.08); box-shadow: 0 16px 38px rgba(15,23,42,.13); }
.bb-program-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: #0F172A; }
.bb-program-card--blue::before { background: #3B82F6; }
.bb-program-card--violet::before { background: #8B5CF6; }
.bb-program-card--teal::before { background: #14B8A6; }
.bb-program-card--gold::before { background: #F59E0B; }
.bb-program-card__icon { width: 68px; height: 68px; display: grid; place-items: center; border-radius: 16px; background: #fff3eb; color: #F97316; font-family: var(--bb-heading); font-size: 14px; font-weight: 700; letter-spacing: -.02em; }
.bb-program-card--blue .bb-program-card__icon { background:#eff6ff; color:#3B82F6; }
.bb-program-card--violet .bb-program-card__icon { background:#f5f3ff; color:#8B5CF6; }
.bb-program-card--teal .bb-program-card__icon { background:#ecfdf5; color:#14B8A6; }
.bb-program-card--gold .bb-program-card__icon { background:#fffbeb; color:#F59E0B; }
.bb-program-card__type { margin: 0 0 7px; color: #64748b; font-size: 10px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.bb-program-card h3 { margin: 0 0 10px; color: var(--bb-navy); font-family: var(--bb-heading); font-size: 20px; line-height: 1.12; letter-spacing: -.02em; }
.bb-program-card h3 span { font-size: .82em; color: #64748b; }
.bb-program-card p:not(.bb-program-card__type) { margin: 0 0 18px; color: var(--bb-slate); font-size: 13px; line-height: 1.5; }
.bb-program-card a { color: var(--bb-navy); font-size: 13px; font-weight: 700; text-decoration: none; }
.bb-program-card a span { margin-left: 8px; font-size: 18px; }

@media (max-width: 1050px) {
    .bb-why__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .bb-programs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 1050px) {
    .bb-program-list {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {
    .bb-section__inner { width: calc(100% - 28px); }
    .bb-why, .bb-programs { padding: 72px 0 78px; }
    .bb-section__intro h2, .bb-programs h2 { font-size: 40px; }
    .bb-why__grid { grid-template-columns: 1fr; gap: 12px; }
    .bb-feature-card { min-height: 0; padding: 24px 20px 28px; }
    .bb-feature-card__icon { width: 50px; height: 50px; margin-bottom: 16px; }
    .bb-programs__heading { display: block; margin-bottom: 32px; }
    .bb-section__link { margin-top: 24px; }
    .bb-programs__grid { grid-template-columns: 1fr; gap: 12px; }
    .bb-program-card { grid-template-columns: 62px 1fr; gap: 14px; min-height: 0; padding: 20px 18px 22px; }
    .bb-program-card__icon { width: 58px; height: 58px; }
}

/* =========================================================
   SECTIONS 04–08 + FOOTER
   ========================================================= */
:root { --bb-border: rgba(15,23,42,.12); }

.bb-batches { padding: 112px 0 120px; background: #f7f5f2; }
.bb-batches__top { display:flex; align-items:flex-end; justify-content:space-between; gap:50px; margin-bottom:48px; }
.bb-batches h2, .bb-method h2, .bb-career h2, .bb-about h2, .bb-contact h2 { margin:0; color:var(--bb-navy); font-family:var(--bb-heading); font-size:clamp(40px,5vw,66px); line-height:1.02; letter-spacing:-.045em; font-weight:600; }
.bb-batches__note { display:flex; gap:12px; align-items:flex-start; min-width:250px; padding:18px 20px; border:1px solid var(--bb-border); border-radius:14px; background:#fff; }
.bb-batches__dot { width:10px; height:10px; margin-top:5px; border-radius:50%; background:#14B8A6; box-shadow:0 0 0 5px rgba(20,184,166,.12); }
.bb-batches__note strong, .bb-batches__note span { display:block; }
.bb-batches__note strong { font-family:var(--bb-heading); font-size:15px; }
.bb-batches__note span { margin-top:4px; color:var(--bb-slate); font-size:12px; line-height:1.4; }
.bb-slot-grid--home { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.bb-home-slot { position:relative; min-height:300px; padding:28px; border-radius:18px; background:#fff; border:1px solid var(--bb-border); overflow:hidden; box-shadow:0 12px 34px rgba(15,23,42,.06); }
.bb-home-slot::after { content:""; position:absolute; left:0; right:0; bottom:0; height:5px; background:#F97316; }
.bb-home-slot--blue::after { background:#3B82F6; }
.bb-home-slot--violet::after { background:#8B5CF6; }
.bb-home-slot__head { display:flex; justify-content:space-between; align-items:center; }
.bb-home-slot__head span { font-family:var(--bb-heading); font-size:14px; font-weight:700; }
.bb-home-slot__head em { font-style:normal; color:#64748B; font-size:10px; font-weight:700; letter-spacing:.12em; }
.bb-home-slot__days { margin:58px 0 8px; color:#64748B; font-size:12px; font-weight:700; letter-spacing:.13em; }
.bb-home-slot h3 { margin:0; font-family:var(--bb-heading); font-size:27px; line-height:1.1; letter-spacing:-.03em; }
.bb-home-slot__program { margin-top:38px; padding-top:18px; border-top:1px solid var(--bb-border); }
.bb-home-slot__program span { display:block; margin-bottom:6px; color:#64748B; font-size:11px; }
.bb-home-slot__program strong { display:block; font-family:var(--bb-heading); font-size:17px; }
.bb-batches__offline { display:flex; justify-content:space-between; align-items:center; gap:30px; margin-top:18px; padding:20px 22px; border-radius:14px; background:#0F172A; color:#fff; }
.bb-batches__offline strong, .bb-batches__offline span { display:block; }
.bb-batches__offline strong { font-family:var(--bb-heading); font-size:16px; }
.bb-batches__offline span { margin-top:5px; color:#CBD5E1; font-size:13px; }
.bb-batches__offline a { flex:0 0 auto; padding:11px 15px; border-radius:8px; background:#F97316; color:#fff; font-size:13px; font-weight:700; }
.bb-batches__offline a span { display:inline; margin-left:8px; color:inherit; }

.bb-career { padding:110px 0; background:#0F172A; }
.bb-career__card { display:grid; grid-template-columns:1.05fr .95fr; gap:70px; padding:64px; border-radius:24px; background:#fff; }
.bb-career .bb-section__eyebrow { color:#F97316; }
.bb-career h2 { font-size:clamp(38px,4.5vw,60px); }
.bb-career__copy > p:not(.bb-section__eyebrow) { max-width:650px; margin:25px 0 0; color:var(--bb-slate); font-size:16px; line-height:1.65; }
.bb-career__honesty { padding-left:18px; border-left:3px solid #F97316; }
.bb-career__list { border-top:1px solid var(--bb-border); }
.bb-career__list > div { padding:22px 0; border-bottom:1px solid var(--bb-border); }
.bb-career__list span { display:block; margin-bottom:7px; color:#F97316; font-family:var(--bb-heading); font-size:12px; font-weight:700; }
.bb-career__list strong { display:block; font-family:var(--bb-heading); font-size:20px; }
.bb-career__list p { margin:7px 0 0; color:var(--bb-slate); font-size:13px; line-height:1.5; }

.bb-about { padding:120px 0; background:#f7f5f2; }
.bb-about__grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:100px; }
.bb-about__copy > p { margin:0 0 20px; color:var(--bb-slate); font-size:17px; line-height:1.7; }
.bb-about__copy > p strong { color:var(--bb-navy); }
.bb-about__facts { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:36px; }
.bb-about__facts div { padding:18px; border-radius:12px; background:#fff; border:1px solid var(--bb-border); }
.bb-about__facts strong, .bb-about__facts span { display:block; }
.bb-about__facts strong { font-family:var(--bb-heading); font-size:16px; }
.bb-about__facts span { margin-top:5px; color:#64748B; font-size:11px; }

.bb-contact { padding:112px 0 120px; background:#fff; }
.bb-contact__card { display:grid; grid-template-columns:.8fr 1.2fr; gap:70px; padding:58px; border-radius:24px; background:#f7f5f2; }
.bb-contact__intro p:not(.bb-section__eyebrow) { max-width:470px; margin:24px 0 0; color:var(--bb-slate); font-size:15px; line-height:1.65; }
.bb-contact__direct { margin-top:32px; padding-top:20px; border-top:1px solid var(--bb-border); }
.bb-contact__direct span { display:block; color:#64748B; font-size:11px; }
.bb-contact__direct a { display:inline-block; margin-top:5px; font-family:var(--bb-heading); font-size:15px; font-weight:600; }
.bb-contact__form { min-width:0; }
.bb-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.bb-form-grid label { display:block; }
.bb-form-grid label > span { display:block; margin:0 0 7px; color:#334155; font-size:11px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.bb-form-grid input, .bb-form-grid select, .bb-form-grid textarea { width:100%; border:1px solid #CBD5E1; border-radius:8px; background:#fff; color:var(--bb-navy); font:inherit; padding:13px 14px; outline:0; }
.bb-form-grid textarea { resize:vertical; min-height:130px; }
.bb-form-grid input:focus, .bb-form-grid select:focus, .bb-form-grid textarea:focus { border-color:#F97316; box-shadow:0 0 0 3px rgba(249,115,22,.12); }
.bb-form-full { grid-column:1/-1; }
.bb-form-submit { margin-top:20px; display:inline-flex; align-items:center; gap:14px; padding:13px 18px; border:0; border-radius:8px; background:#0F172A; color:#fff; font-family:var(--bb-heading); font-size:14px; font-weight:600; cursor:pointer; }
.bb-form-submit span { font-size:19px; }
.bb-form-status { margin:16px 0 0; font-size:13px; }
.bb-form-status--success { color:#047857; }
.bb-form-status--error { color:#B91C1C; }
.bb-honeypot { position:absolute!important; left:-9999px!important; opacity:0!important; pointer-events:none!important; }

.bb-footer {
    position: relative;
    z-index: 1;
    padding: 24px 0 24px;
    background: transparent;
}

.bb-footer__shell {
    width: min(1280px, calc(100% - 48px));
    margin: 0 auto;
    padding: 52px 48px 24px;
    border-radius: 28px;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 8px 35px rgba(15, 23, 42, .06);
}

.bb-footer__top {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: 80px;
    padding-bottom: 48px;
}

.bb-footer__brand {
    max-width: 360px;
}

.bb-footer__logo {
    display: block;
    width: 290px;
    max-width: 100%;
}

.bb-footer__logo img {
    display: block;
    width: 100%;
    height: auto;
}

.bb-footer__brand p {
    margin: 22px 0 0;
    color: #64748B;
    font-size: 13px;
    line-height: 1.6;
}

.bb-footer__social {
    display: flex;
    gap: 16px;
    margin-top: 22px;
    color: #475569;
    font-size: 11px;
    font-weight: 700;
}

.bb-footer__links {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.bb-footer__links h3 {
    margin: 0 0 16px;
    font-family: var(--bb-heading);
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--bb-navy);
}

.bb-footer__links a {
    display: block;
    margin: 0 0 11px;
    color: #475569;
    font-size: 13px;
}

.bb-footer__links a:hover {
    color: var(--bb-orange);
}

.bb-footer__bottom {
    display: flex;
    justify-content: space-between;
    gap: 20px;
    padding-top: 20px;
    border-top: 1px solid rgba(15, 23, 42, .12);
    color: #64748B;
    font-size: 11px;
}

@media (max-width:900px) {
    .bb-batches__top, .bb-method__layout, .bb-career__card, .bb-about__grid, .bb-contact__card, .bb-footer__top { grid-template-columns:1fr; }
    .bb-batches__top { align-items:flex-start; }
    .bb-slot-grid--home { grid-template-columns:1fr; }
    .bb-career__card, .bb-about__grid, .bb-contact__card { gap:45px; }
    .bb-footer__top { gap:45px; }
}

@media (max-width:700px) {
    .bb-batches, .bb-method, .bb-about, .bb-contact { padding:78px 0 84px; }
    .bb-career { padding:72px 0; }
    .bb-batches h2, .bb-method h2, .bb-career h2, .bb-about h2, .bb-contact h2 { font-size:40px; }
    .bb-batches__note { min-width:0; width:100%; }
    .bb-batches__offline { align-items:flex-start; flex-direction:column; }
    .bb-career__card, .bb-contact__card { padding:28px 20px; border-radius:18px; }
    .bb-about__facts { grid-template-columns:1fr; }
    .bb-form-grid { grid-template-columns:1fr; }
    .bb-form-full { grid-column:auto; }
    .bb-footer { padding:0 14px 14px; }
    .bb-footer__shell { padding:36px 22px 20px; border-radius:22px 22px 0 0; }
    .bb-footer__logo { width:250px; }
    .bb-footer__links { grid-template-columns:1fr 1fr; }
    .bb-footer__bottom { flex-direction:column; }
}


/* v0.6.2 footer behaviour */
.bb-footer {
    isolation: isolate;
}

.bb-footer__shell {
    position: relative;
    z-index: 1;
}

@media (max-width: 700px) {
    .bb-footer__logo {
        width: 250px;
    }
}


/* v0.6.3 refinements */
.bb-program-card,
.bb-program-card:hover {
    border-left: none !important;
    border-inline-start: none !important;
}

.bb-program-card::before,
.bb-program-card::after {
    /* Preserve any existing decorative content only where explicitly needed. */
}

@media (max-width: 700px) {
    .bb-footer {
        padding: 0 14px 14px;
    }

    .bb-footer__shell {
        width: 100%;
    }
}


/* v0.6.4 — Section 03 program cards */
.bb-program-card::before {
    display: none !important;
    content: none !important;
}

.bb-program-card--blue::before,
.bb-program-card--violet::before,
.bb-program-card--teal::before,
.bb-program-card--gold::before {
    display: none !important;
    content: none !important;
}

@media (max-width: 700px) {
    .bb-footer {
        padding: 14px 0;
    }

    .bb-footer__shell {
        width: calc(100% - 20px);
        padding: 36px 22px 20px;
        border-radius: 22px;
    }
}


/* v0.6.5 — Section 03 program icon labels and clean cards */
.bb-programs .bb-program-card::before,
.bb-programs .bb-program-card::after {
    display: none !important;
    content: none !important;
}
.bb-programs .bb-program-card {
    border-left: 1px solid rgba(15,23,42,.08) !important;
    border-inline-start: 1px solid rgba(15,23,42,.08) !important;
}
.bb-programs .bb-program-card__icon {
    white-space: nowrap;
    font-size: 12px;
}


/* v0.6.7 — mobile mascot emphasis */
@media (max-width: 600px) {
    .bb-hero__background {
        background-position: right center;
    }
}
@media (max-width: 380px) {
    .bb-hero__background {
        bottom: 164px;
    }
}

/* =========================================================
   BBPT COURSE PAGE
   ========================================================= */
.bbpt-page{--bbpt-navy:#0d172d;--bbpt-orange:#ff6a00;--bbpt-blue:#2f80ed;--bbpt-cream:#f5f2ec;--bbpt-line:rgba(13,23,45,.13);background:var(--bbpt-cream);color:var(--bbpt-navy);overflow:hidden}
.bbpt-shell{width:min(1280px,calc(100% - 64px));margin-inline:auto}.bbpt-section{padding:110px 0}.bbpt-kicker{font-family:"Space Grotesk",sans-serif;font-size:12px;line-height:1.2;letter-spacing:.16em;font-weight:700;text-transform:uppercase;margin:0 0 22px;color:var(--bbpt-orange)}.bbpt-kicker span{color:inherit;opacity:.72;margin-left:12px}.bbpt-section-head{max-width:820px;margin-bottom:54px}.bbpt-section-head h2{font-family:"Space Grotesk",sans-serif;font-size:clamp(42px,5.2vw,76px);line-height:.98;letter-spacing:-.045em;margin:0 0 24px}.bbpt-section-head p:not(.bbpt-kicker){font-size:18px;line-height:1.6;max-width:760px;color:#526078;margin:0}
.bbpt-hero{position:relative;min-height:calc(100svh - 0px);display:flex;align-items:flex-end;background:#05080d;color:#fff}.bbpt-hero__media,.bbpt-hero__shade{position:absolute;inset:0}.bbpt-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center center;display:block}.bbpt-hero__shade{background:linear-gradient(90deg,rgba(3,7,12,.88) 0%,rgba(3,7,12,.64) 36%,rgba(3,7,12,.08) 70%,rgba(3,7,12,.35) 100%),linear-gradient(0deg,rgba(3,7,12,.88) 0%,rgba(3,7,12,.02) 48%)}.bbpt-hero__content{position:relative;z-index:2;padding-top:160px;padding-bottom:46px}.bbpt-hero .bbpt-kicker{color:#ff7b21}.bbpt-hero h1{font-family:"Space Grotesk",sans-serif;font-size:clamp(52px,7vw,112px);line-height:.91;letter-spacing:-.06em;max-width:900px;margin:0 0 30px}.bbpt-hero h1 em{font-style:normal;color:#fff}.bbpt-hero__lead{font-size:clamp(17px,1.5vw,21px);line-height:1.55;max-width:650px;color:rgba(255,255,255,.84);margin:0 0 30px}.bbpt-actions{display:flex;gap:12px;flex-wrap:wrap}.bbpt-btn{display:inline-flex;align-items:center;gap:20px;border-radius:8px;padding:15px 20px;font-family:"Space Grotesk",sans-serif;font-weight:700;text-decoration:none;transition:transform .2s ease,background .2s ease,border-color .2s ease}.bbpt-btn:hover{transform:translateY(-2px)}.bbpt-btn--primary{background:var(--bbpt-orange);color:#fff}.bbpt-btn--ghost{border:1px solid rgba(255,255,255,.42);color:#fff;background:rgba(0,0,0,.18)}.bbpt-btn--dark{background:var(--bbpt-navy);color:#fff}.bbpt-hero__stats{display:flex;gap:0;margin-top:54px;border-top:1px solid rgba(255,255,255,.24);max-width:820px}.bbpt-hero__stats div{min-width:150px;padding:18px 28px 0 0;margin-right:28px;border-right:1px solid rgba(255,255,255,.16)}.bbpt-hero__stats div:last-child{border-right:0}.bbpt-hero__stats strong,.bbpt-hero__stats span{display:block}.bbpt-hero__stats strong{font-family:"Space Grotesk",sans-serif;font-size:25px}.bbpt-hero__stats span{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:rgba(255,255,255,.58);margin-top:4px}
.bbpt-overview{background:var(--bbpt-cream)}.bbpt-three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.bbpt-three-grid article{position:relative;background:#fff;border-radius:18px;padding:34px;min-height:360px;border:1px solid rgba(13,23,45,.08);box-shadow:0 12px 35px rgba(13,23,45,.05)}.bbpt-card-no{font:700 12px "Space Grotesk",sans-serif;letter-spacing:.12em;color:#7c879a}.bbpt-outline-icon{font-size:40px;line-height:1;color:var(--bbpt-orange);margin:50px 0 26px}.bbpt-three-grid h3,.bbpt-practical-grid h3,.bbpt-price-grid h3,.bbpt-mode-grid h3,.bbpt-foundation-grid h3,.bbpt-register-card h3{font-family:"Space Grotesk",sans-serif;font-size:25px;letter-spacing:-.025em;margin:0 0 12px}.bbpt-three-grid p,.bbpt-practical-grid p,.bbpt-price-grid p,.bbpt-mode-grid p,.bbpt-foundation-grid p,.bbpt-register-card p{color:#56647b;line-height:1.6;margin:0}.bbpt-three-grid a,.bbpt-foundation-grid a{display:inline-block;margin-top:22px;color:var(--bbpt-navy);font-weight:700;text-decoration:none}
.bbpt-syllabus{background:var(--bbpt-navy);color:#fff}.bbpt-section-head--light p:not(.bbpt-kicker){color:rgba(255,255,255,.66)}.bbpt-level{margin-top:72px}.bbpt-level__head{display:flex;align-items:baseline;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.18)}.bbpt-level__head span{font:700 11px "Space Grotesk",sans-serif;letter-spacing:.15em;color:#ff7b21}.bbpt-level__head h3{font:600 clamp(26px,3vw,40px) "Space Grotesk",sans-serif;letter-spacing:-.035em;margin:0}.bbpt-module{border-bottom:1px solid rgba(255,255,255,.14)}.bbpt-module summary{display:grid;grid-template-columns:64px 1fr auto 36px;align-items:center;gap:16px;padding:24px 4px;cursor:pointer;list-style:none}.bbpt-module summary::-webkit-details-marker{display:none}.bbpt-module__no{font:600 14px "Space Grotesk",sans-serif;color:#ff7b21}.bbpt-module__title{font:600 20px "Space Grotesk",sans-serif}.bbpt-module__count{font-size:12px;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.08em}.bbpt-module__plus{font-size:28px;font-weight:300;text-align:right;transition:transform .2s}.bbpt-module[open] .bbpt-module__plus{transform:rotate(45deg)}.bbpt-module__body{padding:0 4px 28px 80px}.bbpt-module__body ul{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 26px;margin:0;padding:0;list-style:none}.bbpt-module__body li{font-size:14px;line-height:1.45;color:rgba(255,255,255,.68);position:relative;padding-left:14px}.bbpt-module__body li:before{content:"";position:absolute;left:0;top:.65em;width:5px;height:5px;border-radius:50%;background:#ff7b21}
.bbpt-practical{background:#111b31;color:#fff}.bbpt-practical .bbpt-section-head h2{max-width:900px}.bbpt-practical .bbpt-section-head p:not(.bbpt-kicker){color:rgba(255,255,255,.65)}.bbpt-practical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.15)}.bbpt-practical-grid article{background:#111b31;padding:34px;min-height:230px}.bbpt-terminal-mark{display:inline-flex;border:1px solid rgba(255,123,33,.55);border-radius:6px;padding:5px 8px;color:#ff7b21;font:600 12px monospace;margin-bottom:52px}
.bbpt-pricing{background:#fff}.bbpt-price-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.bbpt-price-grid article{border:1px solid var(--bbpt-line);border-radius:14px;padding:26px;min-height:210px}.bbpt-price-grid article>span{font:700 10px "Space Grotesk",sans-serif;letter-spacing:.13em;color:#7c879a}.bbpt-price-grid strong{display:block;margin-top:30px;font:600 14px "Space Grotesk",sans-serif;color:var(--bbpt-orange)}.bbpt-price-note{margin-top:18px;padding:25px 28px;background:var(--bbpt-cream);border-radius:14px;display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:28px}.bbpt-price-note strong{font:600 22px "Space Grotesk",sans-serif}.bbpt-price-note span{color:#657187}.bbpt-price-note b{color:var(--bbpt-orange)}
.bbpt-mode{background:var(--bbpt-orange);color:#fff}.bbpt-mode .bbpt-kicker{color:#fff}.bbpt-mode .bbpt-section-head p:not(.bbpt-kicker){color:rgba(255,255,255,.82)}.bbpt-mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.bbpt-mode-grid article{background:#fff;color:var(--bbpt-navy);border-radius:16px;padding:32px;min-height:250px}.bbpt-mode-grid span{font:700 12px "Space Grotesk",sans-serif;color:var(--bbpt-orange)}.bbpt-mode-grid h3{margin-top:48px}
.bbpt-batches{background:var(--bbpt-cream)}.bbpt-slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.bbpt-slot-grid article{background:#fff;border-radius:16px;padding:34px;min-height:250px;border:1px solid rgba(13,23,45,.08);display:flex;flex-direction:column}.bbpt-slot-grid span{font:700 11px "Space Grotesk",sans-serif;letter-spacing:.14em;color:var(--bbpt-orange)}.bbpt-slot-grid strong{font:600 23px "Space Grotesk",sans-serif;margin-top:auto}.bbpt-slot-grid b{font-size:15px;margin-top:12px}.bbpt-slot-grid time{color:#69758a;margin-top:4px}
.bbpt-foundations{background:#fff}.bbpt-foundation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.bbpt-foundation-grid article{border:1px solid var(--bbpt-line);border-radius:16px;padding:32px;min-height:300px}.bbpt-foundation-icon{width:48px;height:48px;border:1px solid var(--bbpt-orange);border-radius:50%;display:grid;place-items:center;color:var(--bbpt-orange);font:700 12px "Space Grotesk",sans-serif;margin-bottom:70px}
.bbpt-register{background:#ffcc24}.bbpt-register__inner{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:stretch}.bbpt-register h2{font-family:"Space Grotesk",sans-serif;font-size:clamp(52px,7vw,100px);line-height:.9;letter-spacing:-.06em;margin:0 0 28px}.bbpt-register> .bbpt-shell>div>p:not(.bbpt-kicker){max-width:700px;font-size:18px;line-height:1.6}.bbpt-register-card{background:#fff;border-radius:18px;padding:34px;display:flex;flex-direction:column;justify-content:flex-end}.bbpt-register-card .bbpt-btn{align-self:flex-start;margin-top:30px}
@media (max-width: 1000px){.bbpt-shell{width:min(100% - 36px,760px)}.bbpt-three-grid,.bbpt-practical-grid,.bbpt-mode-grid,.bbpt-slot-grid,.bbpt-foundation-grid{grid-template-columns:1fr 1fr}.bbpt-price-grid{grid-template-columns:1fr 1fr}.bbpt-module__body ul{grid-template-columns:1fr 1fr}.bbpt-register__inner{grid-template-columns:1fr;gap:30px}.bbpt-hero__content{padding-top:140px}.bbpt-hero{min-height:850px}}
@media (max-width: 680px){.bbpt-shell{width:calc(100% - 28px)}.bbpt-section{padding:76px 0}.bbpt-section-head{margin-bottom:34px}.bbpt-section-head h2{font-size:42px}.bbpt-hero{min-height:780px;align-items:flex-end}.bbpt-hero__media img{object-position:60% center}.bbpt-hero__shade{background:linear-gradient(0deg,rgba(3,7,12,.94) 0%,rgba(3,7,12,.35) 55%,rgba(3,7,12,.12) 100%)}.bbpt-hero__content{padding-top:120px;padding-bottom:26px}.bbpt-hero h1{font-size:47px;line-height:.94}.bbpt-hero__lead{font-size:16px}.bbpt-hero__stats{margin-top:30px;display:grid;grid-template-columns:1fr 1fr}.bbpt-hero__stats div{min-width:0;margin:0;padding:12px 10px 0 0;border-right:0}.bbpt-hero__stats strong{font-size:20px}.bbpt-three-grid,.bbpt-practical-grid,.bbpt-mode-grid,.bbpt-slot-grid,.bbpt-foundation-grid,.bbpt-price-grid{grid-template-columns:1fr}.bbpt-three-grid article{min-height:300px}.bbpt-outline-icon{margin:30px 0 20px}.bbpt-level{margin-top:50px}.bbpt-level__head{display:block}.bbpt-level__head h3{margin-top:8px}.bbpt-module summary{grid-template-columns:40px 1fr 28px;gap:10px;padding:20px 0}.bbpt-module__count{display:none}.bbpt-module__title{font-size:17px;line-height:1.25}.bbpt-module__body{padding:0 0 24px 50px}.bbpt-module__body ul{grid-template-columns:1fr;gap:8px}.bbpt-price-note{grid-template-columns:1fr;gap:8px}.bbpt-register h2{font-size:58px}.bbpt-register-card{min-height:300px}.bbpt-actions{flex-direction:column;align-items:stretch}.bbpt-btn{justify-content:space-between}}
@media (prefers-reduced-motion: reduce){.bbpt-btn{transition:none}.bbpt-module__plus{transition:none}}
.bbpt-price-level{margin-bottom:44px}.bbpt-price-level__head{display:flex;align-items:baseline;gap:16px;margin-bottom:18px}.bbpt-price-level__head span{font:700 10px "Space Grotesk",sans-serif;letter-spacing:.13em;color:var(--bbpt-orange)}.bbpt-price-level__head h3{font:600 26px "Space Grotesk",sans-serif;margin:0;letter-spacing:-.025em}.bbpt-price-level .bbpt-price-grid{grid-template-columns:repeat(3,1fr)}
@media(max-width:1000px){.bbpt-price-level .bbpt-price-grid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){.bbpt-price-level__head{display:block}.bbpt-price-level__head h3{margin-top:7px}.bbpt-price-level .bbpt-price-grid{grid-template-columns:1fr}}


/* =========================================================
   BBPT v0.7.2 — reference-style course hero + typography scale
   ========================================================= */
.bbpt-hero{
    min-height:760px;
    display:block;
    position:relative;
    overflow:hidden;
    background:var(--bbpt-cream);
    color:var(--bbpt-navy);
}
.bbpt-hero__media{
    position:absolute;
    z-index:1;
    top:138px;
    right:28px;
    bottom:58px;
    left:53%;
    overflow:hidden;
    border-radius:32px 0 0 32px;
}
.bbpt-hero__media img{
    width:100%;
    height:100%;
    display:block;
    object-fit:cover;
    object-position:center center;
}
.bbpt-hero__shade{display:none}
.bbpt-hero__content{
    position:relative;
    z-index:2;
    width:min(1280px,calc(100% - 64px));
    min-height:760px;
    margin-inline:auto;
    padding:150px 0 76px;
    display:flex;
    align-items:center;
}
.bbpt-hero__content > *{max-width:650px}
.bbpt-hero .bbpt-kicker{color:var(--bbpt-orange)}
.bbpt-hero h1{
    color:var(--bbpt-navy);
    font-size:clamp(42px,5vw,78px);
    line-height:.96;
    letter-spacing:-.055em;
    max-width:650px;
    margin:0 0 24px;
}
.bbpt-hero h1 em{color:var(--bbpt-navy)}
.bbpt-hero__lead{
    color:#526078;
    font-size:clamp(15px,1.25vw,18px);
    line-height:1.58;
    max-width:610px;
    margin:0 0 26px;
}
.bbpt-btn{font-size:14px;padding:13px 18px;gap:16px}
.bbpt-btn--primary{background:var(--bbpt-orange);color:#fff}
.bbpt-btn--ghost{border:1px solid rgba(13,23,45,.28);color:var(--bbpt-navy);background:rgba(255,255,255,.35)}
.bbpt-hero__stats{
    margin-top:42px;
    border-top:1px solid rgba(13,23,45,.16);
    max-width:650px;
}
.bbpt-hero__stats div{min-width:125px;padding:15px 22px 0 0;margin-right:22px;border-right:1px solid rgba(13,23,45,.12)}
.bbpt-hero__stats strong{color:var(--bbpt-navy);font-size:20px}
.bbpt-hero__stats span{color:#69758a;font-size:10px}

/* Global BBPT typography reduction: approximately 20% */
.bbpt-page .bbpt-section{padding-top:88px;padding-bottom:88px}
.bbpt-page .bbpt-section-head{margin-bottom:44px}
.bbpt-page .bbpt-section-head h2{font-size:clamp(34px,4.15vw,61px);margin-bottom:19px}
.bbpt-page .bbpt-section-head p:not(.bbpt-kicker){font-size:14.5px}
.bbpt-page .bbpt-kicker{font-size:10px;margin-bottom:18px}
.bbpt-page .bbpt-three-grid{gap:16px}
.bbpt-page .bbpt-three-grid article{padding:27px;min-height:288px}
.bbpt-page .bbpt-card-no{font-size:10px}
.bbpt-page .bbpt-outline-icon{font-size:32px;margin:40px 0 21px}
.bbpt-page .bbpt-three-grid h3,
.bbpt-page .bbpt-practical-grid h3,
.bbpt-page .bbpt-price-grid h3,
.bbpt-page .bbpt-mode-grid h3,
.bbpt-page .bbpt-foundation-grid h3,
.bbpt-page .bbpt-register-card h3{font-size:20px}
.bbpt-page .bbpt-three-grid p,
.bbpt-page .bbpt-practical-grid p,
.bbpt-page .bbpt-price-grid p,
.bbpt-page .bbpt-mode-grid p,
.bbpt-page .bbpt-foundation-grid p,
.bbpt-page .bbpt-register-card p{font-size:13px}
.bbpt-page .bbpt-level{margin-top:58px}
.bbpt-page .bbpt-level__head h3{font-size:clamp(21px,2.4vw,32px)}
.bbpt-page .bbpt-level__head span{font-size:9px}
.bbpt-page .bbpt-module summary{grid-template-columns:52px 1fr auto 30px;padding:19px 4px;gap:13px}
.bbpt-page .bbpt-module__no{font-size:11px}
.bbpt-page .bbpt-module__title{font-size:16px}
.bbpt-page .bbpt-module__count{font-size:10px}
.bbpt-page .bbpt-module__plus{font-size:23px}
.bbpt-page .bbpt-module__body{padding:0 4px 22px 65px}
.bbpt-page .bbpt-module__body li{font-size:11px}
.bbpt-page .bbpt-practical-grid article{padding:27px;min-height:184px}
.bbpt-page .bbpt-terminal-mark{font-size:10px;margin-bottom:42px}
.bbpt-page .bbpt-price-grid{gap:11px}
.bbpt-page .bbpt-price-grid article{padding:21px;min-height:168px}
.bbpt-page .bbpt-price-grid article>span{font-size:8px}
.bbpt-page .bbpt-price-grid strong{margin-top:24px;font-size:11px}
.bbpt-page .bbpt-price-note{padding:20px 22px;gap:22px}
.bbpt-page .bbpt-price-note strong{font-size:18px}
.bbpt-page .bbpt-mode-grid{gap:14px}
.bbpt-page .bbpt-mode-grid article{padding:26px;min-height:200px}
.bbpt-page .bbpt-mode-grid span{font-size:10px}
.bbpt-page .bbpt-mode-grid h3{margin-top:38px}
.bbpt-page .bbpt-slot-grid{gap:14px}
.bbpt-page .bbpt-slot-grid article{padding:27px;min-height:200px}
.bbpt-page .bbpt-slot-grid span{font-size:9px}
.bbpt-page .bbpt-slot-grid strong{font-size:18px}
.bbpt-page .bbpt-slot-grid b{font-size:12px}
.bbpt-page .bbpt-slot-grid time{font-size:12px}
.bbpt-page .bbpt-foundation-grid{gap:14px}
.bbpt-page .bbpt-foundation-grid article{padding:26px;min-height:240px}
.bbpt-page .bbpt-foundation-icon{width:40px;height:40px;font-size:10px;margin-bottom:56px}
.bbpt-page .bbpt-register__inner{gap:56px}
.bbpt-page .bbpt-register h2{font-size:clamp(42px,5.6vw,80px)}
.bbpt-page .bbpt-register> .bbpt-shell>div>p:not(.bbpt-kicker){font-size:14.5px}
.bbpt-page .bbpt-register-card{padding:27px}
.bbpt-page .bbpt-price-level__head h3{font-size:21px}
.bbpt-page .bbpt-price-level__head span{font-size:8px}

@media (max-width:1000px){
    .bbpt-hero{min-height:720px}
    .bbpt-hero__content{min-height:720px;padding-top:130px}
    .bbpt-hero__media{top:118px;right:20px;bottom:44px;left:52%}
}

@media (max-width:680px){
    .bbpt-page .bbpt-section{padding:62px 0}
    .bbpt-page .bbpt-section-head{margin-bottom:28px}
    .bbpt-page .bbpt-section-head h2{font-size:34px}
    .bbpt-page .bbpt-kicker{font-size:9px}
    .bbpt-hero{
        min-height:0;
        display:flex;
        flex-direction:column;
        padding-top:88px;
        background:var(--bbpt-cream);
    }
    .bbpt-hero__media{
        position:relative;
        inset:auto;
        order:1;
        width:100%;
        height:430px;
        border-radius:0 0 24px 24px;
    }
    .bbpt-hero__media img{object-position:center center}
    .bbpt-hero__content{
        order:2;
        min-height:0;
        width:calc(100% - 28px);
        padding:42px 0 44px;
        display:block;
    }
    .bbpt-hero h1{font-size:38px;line-height:.98;margin-bottom:18px}
    .bbpt-hero__lead{font-size:14px;line-height:1.55;margin-bottom:22px}
    .bbpt-actions{flex-direction:column;align-items:stretch}
    .bbpt-btn{justify-content:space-between;font-size:13px;padding:12px 16px}
    .bbpt-hero__stats{margin-top:30px;display:grid;grid-template-columns:1fr 1fr}
    .bbpt-hero__stats div{min-width:0;margin:0;padding:11px 10px 0 0;border-right:0}
    .bbpt-hero__stats strong{font-size:17px}
    .bbpt-hero__stats span{font-size:9px}
    .bbpt-page .bbpt-three-grid article{min-height:240px}
    .bbpt-page .bbpt-outline-icon{margin:24px 0 17px}
    .bbpt-page .bbpt-module summary{grid-template-columns:34px 1fr 25px;padding:16px 0}
    .bbpt-page .bbpt-module__title{font-size:14px}
    .bbpt-page .bbpt-module__body{padding:0 0 20px 43px}
    .bbpt-page .bbpt-module__body li{font-size:11px}
    .bbpt-page .bbpt-register h2{font-size:46px}
}

/* =========================================================
   BBPT v0.7.4 — final hero position correction
   Preserve all v0.7.3 styling; only adjust hero media placement.
   ========================================================= */
.bbpt-hero__media{
    top:158px;
    right:0;
    left:53%;
}
@media (max-width:1000px){
    .bbpt-hero__media{
        top:138px;
        right:0;
        left:52%;
    }
}

/* =========================================================
   BBPT v0.7.5 — hero breathing space + horizontal desktop copy
   Only the requested hero layout is changed.
   ========================================================= */
@media (min-width:1001px){
    .bbpt-hero{
        min-height:886px;
    }
    .bbpt-hero__media{
        top:284px;
        bottom:58px;
    }
    .bbpt-hero__content{
        min-height:886px;
        padding-top:284px;
        padding-bottom:76px;
        display:grid;
        grid-template-columns:minmax(0,1.45fr) minmax(145px,.55fr) auto;
        grid-template-rows:auto auto 1fr;
        column-gap:28px;
        align-content:start;
        align-items:start;
    }
    .bbpt-hero__content > .bbpt-kicker{
        grid-column:1 / -1;
        max-width:none;
    }
    .bbpt-hero__content > h1{
        grid-column:1;
        max-width:100%;
        margin-bottom:0;
    }
    .bbpt-hero__content > .bbpt-hero__lead{
        grid-column:2;
        max-width:none;
        margin:8px 0 0;
    }
    .bbpt-hero__content > .bbpt-actions{
        grid-column:3;
        margin-top:8px;
        max-width:none;
        flex-direction:column;
        align-items:stretch;
    }
    .bbpt-hero__content > .bbpt-hero__stats{
        grid-column:1 / -1;
        align-self:end;
        margin-top:0;
        max-width:820px;
    }
}


/* =========================================================
   BBPT v0.7.6 — hero copy alignment correction
   Keep the v0.7.5 hero image position and breathing space.
   Only restore the hero copy to a clean left-column layout
   and slightly reduce the headline size.
   ========================================================= */
@media (min-width:1001px){
    .bbpt-hero__content{
        display:block;
        padding-top:284px;
        padding-bottom:76px;
        min-height:886px;
    }
    .bbpt-hero__content > *{
        max-width:650px;
    }
    .bbpt-hero__content > .bbpt-kicker{
        max-width:650px;
        margin-bottom:18px;
    }
    .bbpt-hero__content > h1{
        max-width:650px;
        font-size:clamp(40px,4.5vw,68px);
        line-height:.96;
        margin:0 0 24px;
    }
    .bbpt-hero__content > .bbpt-hero__lead{
        max-width:610px;
        margin:0 0 26px;
    }
    .bbpt-hero__content > .bbpt-actions{
        display:flex;
        flex-direction:row;
        align-items:center;
        max-width:650px;
        margin-top:0;
    }
    .bbpt-hero__content > .bbpt-hero__stats{
        display:flex;
        max-width:650px;
        margin-top:42px;
    }
}

.bbpt-price-grid--offers{grid-template-columns:repeat(3,1fr)}
.bbpt-price-grid--offers article h3{font-size:32px;margin:.35rem 0}
@media(max-width:900px){.bbpt-price-grid--offers{grid-template-columns:1fr}}

/* =========================================================
   BBSOC — Security Operations & Cyber Defense
   ========================================================= */
:root{--bbsoc-orange:#ff6f1a;--bbsoc-navy:#0d172d;--bbsoc-cream:#f4f1ea;--bbsoc-line:rgba(13,23,45,.12)}
.bbsoc-page{background:var(--bbsoc-cream);color:var(--bbsoc-navy);font-family:"Inter",sans-serif}.bbsoc-shell{width:min(1180px,calc(100% - 56px));margin:0 auto}.bbsoc-section{padding:92px 0}.bbsoc-kicker{font:700 11px "Space Grotesk",sans-serif;letter-spacing:.14em;color:var(--bbsoc-orange);text-transform:uppercase;margin:0 0 20px}.bbsoc-kicker span{margin-left:22px}.bbsoc-section-head{max-width:940px;margin-bottom:48px}.bbsoc-section-head h2{font:600 clamp(38px,4.5vw,64px)/.98 "Space Grotesk",sans-serif;letter-spacing:-.05em;margin:0 0 20px}.bbsoc-section-head>p:not(.bbsoc-kicker){color:#56647b;line-height:1.65;max-width:800px;margin:0}.bbsoc-section-head--light h2{color:#fff}.bbsoc-section-head--light>p:not(.bbsoc-kicker){color:rgba(255,255,255,.66)}
.bbsoc-hero{position:relative;min-height:720px;padding-top:96px;background:var(--bbsoc-cream);overflow:hidden}.bbsoc-hero__media{position:absolute;right:0;top:122px;width:51%;height:535px;overflow:hidden;border-radius:30px 0 0 30px}.bbsoc-hero__media img{width:100%;height:100%;object-fit:cover;object-position:center}.bbsoc-hero__content{position:relative;z-index:2;padding-top:42px}.bbsoc-hero__copy{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(230px,.55fr);gap:54px;align-items:end;width:58%;min-height:380px}.bbsoc-hero h1{font:600 clamp(54px,6.2vw,86px)/.92 "Space Grotesk",sans-serif;letter-spacing:-.065em;margin:0;max-width:690px}.bbsoc-hero h1 em{font-style:normal;color:var(--bbsoc-navy)}.bbsoc-hero__copy>div:nth-child(2){padding-bottom:28px}.bbsoc-hero__copy>div:nth-child(2)>p{color:#56647b;line-height:1.65;margin:0 0 28px}.bbsoc-actions{display:flex;gap:10px;flex-wrap:wrap}.bbsoc-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:22px;text-decoration:none;font:600 14px "Space Grotesk",sans-serif;padding:14px 18px;border-radius:6px;transition:.2s ease}.bbsoc-btn--primary{background:var(--bbsoc-orange);color:#fff}.bbsoc-btn--ghost{border:1px solid rgba(13,23,45,.28);color:var(--bbsoc-navy);background:rgba(255,255,255,.3)}.bbsoc-btn--dark{background:var(--bbsoc-navy);color:#fff}.bbsoc-btn:hover{transform:translateY(-1px)}.bbsoc-hero__stats{width:58%;margin-top:36px;display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid rgba(13,23,45,.14)}.bbsoc-hero__stats div{padding:16px 18px 0 0;margin-right:18px;border-right:1px solid rgba(13,23,45,.12)}.bbsoc-hero__stats div:last-child{border-right:0}.bbsoc-hero__stats strong{display:block;font:600 22px "Space Grotesk",sans-serif}.bbsoc-hero__stats span{display:block;color:#69758a;font-size:10px;text-transform:uppercase;letter-spacing:.08em;margin-top:4px}
.bbsoc-overview{background:var(--bbsoc-cream)}.bbsoc-three-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.bbsoc-three-grid article{background:#fff;border-radius:18px;padding:34px;min-height:340px;border:1px solid rgba(13,23,45,.08);box-shadow:0 12px 35px rgba(13,23,45,.05)}.bbsoc-card-no{font:700 12px "Space Grotesk",sans-serif;letter-spacing:.12em;color:#7c879a}.bbsoc-icon{font-size:40px;line-height:1;color:var(--bbsoc-orange);margin:48px 0 26px}.bbsoc-three-grid h3,.bbsoc-practical-grid h3,.bbsoc-price-grid h3,.bbsoc-mode-grid h3,.bbsoc-foundation-grid h3,.bbsoc-register-card h3{font:600 25px "Space Grotesk",sans-serif;letter-spacing:-.025em;margin:0 0 12px}.bbsoc-three-grid p,.bbsoc-practical-grid p,.bbsoc-price-grid p,.bbsoc-mode-grid p,.bbsoc-foundation-grid p,.bbsoc-register-card p{color:#56647b;line-height:1.6;margin:0}.bbsoc-three-grid a,.bbsoc-foundation-grid a{display:inline-block;margin-top:22px;color:var(--bbsoc-navy);font-weight:700;text-decoration:none}
.bbsoc-syllabus{background:var(--bbsoc-navy);color:#fff}.bbsoc-level{margin-top:68px}.bbsoc-level__head{display:flex;align-items:baseline;gap:20px;padding-bottom:18px;border-bottom:1px solid rgba(255,255,255,.18)}.bbsoc-level__head span{font:700 11px "Space Grotesk",sans-serif;letter-spacing:.15em;color:var(--bbsoc-orange)}.bbsoc-level__head h3{font:600 clamp(26px,3vw,40px) "Space Grotesk",sans-serif;letter-spacing:-.035em;margin:0}.bbsoc-module{border-bottom:1px solid rgba(255,255,255,.14)}.bbsoc-module summary{display:grid;grid-template-columns:64px 1fr auto 36px;align-items:center;gap:16px;padding:24px 4px;cursor:pointer;list-style:none}.bbsoc-module summary::-webkit-details-marker{display:none}.bbsoc-module__no{font:600 14px "Space Grotesk",sans-serif;color:var(--bbsoc-orange)}.bbsoc-module__title{font:600 20px "Space Grotesk",sans-serif}.bbsoc-module__count{font-size:12px;color:rgba(255,255,255,.45);text-transform:uppercase;letter-spacing:.08em}.bbsoc-module__plus{font-size:28px;font-weight:300;text-align:right;transition:transform .2s}.bbsoc-module[open] .bbsoc-module__plus{transform:rotate(45deg)}.bbsoc-module__body{padding:0 4px 28px 80px}.bbsoc-module__body ul{display:grid;grid-template-columns:repeat(3,1fr);gap:9px 26px;margin:0;padding:0;list-style:none}.bbsoc-module__body li{font-size:14px;line-height:1.45;color:rgba(255,255,255,.68);position:relative;padding-left:14px}.bbsoc-module__body li:before{content:"";position:absolute;left:0;top:.65em;width:5px;height:5px;border-radius:50%;background:var(--bbsoc-orange)}
.bbsoc-practical{background:#111b31;color:#fff}.bbsoc-practical .bbsoc-section-head>p:not(.bbsoc-kicker){color:rgba(255,255,255,.65)}.bbsoc-practical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:rgba(255,255,255,.15)}.bbsoc-practical-grid article{background:#111b31;padding:34px;min-height:230px}.bbsoc-terminal-mark{display:inline-flex;border:1px solid rgba(255,111,26,.55);border-radius:6px;padding:5px 8px;color:var(--bbsoc-orange);font:600 12px monospace;margin-bottom:52px}
.bbsoc-pricing{background:#fff}.bbsoc-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.bbsoc-price-grid article{border:1px solid var(--bbsoc-line);border-radius:14px;padding:28px;min-height:205px}.bbsoc-price-grid article>span{font:700 10px "Space Grotesk",sans-serif;letter-spacing:.13em;color:#7c879a}.bbsoc-price-grid strong{display:block;margin-top:28px;font:600 14px "Space Grotesk",sans-serif;color:var(--bbsoc-orange)}
.bbsoc-mode{background:var(--bbsoc-orange);color:#fff}.bbsoc-mode .bbsoc-kicker{color:#fff}.bbsoc-mode .bbsoc-section-head>p:not(.bbsoc-kicker){color:rgba(255,255,255,.82)}.bbsoc-mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.bbsoc-mode-grid article{background:#fff;color:var(--bbsoc-navy);border-radius:16px;padding:32px;min-height:240px}.bbsoc-mode-grid span{font:700 12px "Space Grotesk",sans-serif;color:var(--bbsoc-orange)}.bbsoc-mode-grid h3{margin-top:48px}
.bbsoc-batches{background:var(--bbsoc-cream)}.bbsoc-slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.bbsoc-slot-grid article{background:#fff;border-radius:16px;padding:34px;min-height:235px;border:1px solid rgba(13,23,45,.08);display:flex;flex-direction:column}.bbsoc-slot-grid span{font:700 11px "Space Grotesk",sans-serif;letter-spacing:.14em;color:var(--bbsoc-orange)}.bbsoc-slot-grid strong{font:600 23px "Space Grotesk",sans-serif;margin-top:auto}.bbsoc-slot-grid b{font-size:15px;margin-top:12px}.bbsoc-slot-grid time{color:#69758a;margin-top:4px}
.bbsoc-foundations{background:#fff}.bbsoc-foundation-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.bbsoc-foundation-grid article{border:1px solid var(--bbsoc-line);border-radius:16px;padding:32px;min-height:285px}.bbsoc-foundation-icon{width:48px;height:48px;border:1px solid var(--bbsoc-orange);border-radius:50%;display:grid;place-items:center;color:var(--bbsoc-orange);font:700 12px "Space Grotesk",sans-serif;margin-bottom:58px}
.bbsoc-register{background:#ffcc24}.bbsoc-register__inner{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:stretch}.bbsoc-register h2{font:600 clamp(52px,7vw,100px)/.9 "Space Grotesk",sans-serif;letter-spacing:-.06em;margin:0 0 28px}.bbsoc-register>.bbsoc-shell>div>p:not(.bbsoc-kicker){max-width:700px;font-size:18px;line-height:1.6}.bbsoc-register-card{background:#fff;border-radius:18px;padding:34px;display:flex;flex-direction:column;justify-content:flex-end}.bbsoc-register-card .bbsoc-btn{align-self:flex-start;margin-top:30px}
@media(max-width:1000px){.bbsoc-shell{width:min(100% - 36px,760px)}.bbsoc-hero{min-height:900px}.bbsoc-hero__media{width:58%;height:500px}.bbsoc-hero__copy,.bbsoc-hero__stats{width:62%}.bbsoc-hero__copy{grid-template-columns:1fr}.bbsoc-hero__copy>div:nth-child(2){max-width:520px}.bbsoc-three-grid,.bbsoc-practical-grid,.bbsoc-mode-grid,.bbsoc-slot-grid,.bbsoc-foundation-grid{grid-template-columns:1fr 1fr}.bbsoc-price-grid{grid-template-columns:1fr 1fr}.bbsoc-module__body ul{grid-template-columns:1fr 1fr}.bbsoc-register__inner{grid-template-columns:1fr;gap:30px}}
@media(max-width:680px){.bbsoc-shell{width:calc(100% - 28px)}.bbsoc-section{padding:76px 0}.bbsoc-section-head{margin-bottom:34px}.bbsoc-section-head h2{font-size:42px}.bbsoc-hero{min-height:850px;padding-top:72px}.bbsoc-hero__media{position:relative;top:auto;right:auto;width:calc(100% + 28px);margin-left:-14px;height:390px;border-radius:0;order:0}.bbsoc-hero__content{padding-top:20px}.bbsoc-hero__copy{width:100%;min-height:0;display:flex;flex-direction:column;gap:20px}.bbsoc-hero h1{font-size:47px;line-height:.94}.bbsoc-hero__copy>div:nth-child(2){padding-bottom:0}.bbsoc-hero__stats{width:100%;grid-template-columns:1fr 1fr;margin-top:26px}.bbsoc-three-grid,.bbsoc-practical-grid,.bbsoc-mode-grid,.bbsoc-slot-grid,.bbsoc-foundation-grid,.bbsoc-price-grid{grid-template-columns:1fr}.bbsoc-three-grid article{min-height:300px}.bbsoc-icon{margin:30px 0 20px}.bbsoc-level{margin-top:50px}.bbsoc-level__head{display:block}.bbsoc-level__head h3{margin-top:8px}.bbsoc-module summary{grid-template-columns:40px 1fr 28px;gap:10px;padding:20px 0}.bbsoc-module__count{display:none}.bbsoc-module__title{font-size:17px;line-height:1.25}.bbsoc-module__body{padding:0 0 24px 50px}.bbsoc-module__body ul{grid-template-columns:1fr;gap:8px}.bbsoc-actions{flex-direction:column;align-items:stretch}.bbsoc-btn{justify-content:space-between}.bbsoc-register h2{font-size:58px}.bbsoc-register-card{min-height:300px}}


/* =========================================================
   BBSOC v0.8.1 — hero overlap + Section 02 final card
   Keep the existing visual design; only correct the requested
   layout and card treatment.
   ========================================================= */
@media (min-width: 1001px){
    .bbsoc-hero__media{
        right:0;
        left:53%;
        width:auto;
        top:122px;
        height:535px;
    }
    .bbsoc-hero__content{
        width:min(1280px,calc(100% - 64px));
        padding-top:42px;
    }
    .bbsoc-hero__copy{
        width:52%;
        max-width:780px;
        grid-template-columns:minmax(0,1.35fr) minmax(190px,.65fr);
        gap:34px;
        align-items:start;
    }
    .bbsoc-hero h1{
        max-width:620px;
    }
    .bbsoc-hero__copy>div:nth-child(2){
        padding-bottom:0;
        padding-top:6px;
    }
    .bbsoc-hero__copy>div:nth-child(2)>p{
        margin-bottom:26px;
    }
    .bbsoc-actions{
        flex-direction:column;
        align-items:stretch;
    }
    .bbsoc-hero__stats{
        width:52%;
        max-width:780px;
    }
}

/* Section 02: final info box uses the course primary colour. */
.bbsoc-overview .bbsoc-three-grid article:last-child{
    background:var(--bbsoc-orange);
    border-color:var(--bbsoc-orange);
    color:#fff;
}
.bbsoc-overview .bbsoc-three-grid article:last-child .bbsoc-card-no,
.bbsoc-overview .bbsoc-three-grid article:last-child .bbsoc-icon,
.bbsoc-overview .bbsoc-three-grid article:last-child h3,
.bbsoc-overview .bbsoc-three-grid article:last-child p,
.bbsoc-overview .bbsoc-three-grid article:last-child a{
    color:#fff;
}

/* Apply the same Section 02 treatment across course themes. */
.bbpt-page .bbpt-overview .bbpt-three-grid article:last-child{
    background:var(--bbpt-orange);
    border-color:var(--bbpt-orange);
    color:#fff;
}
.bbpt-page .bbpt-overview .bbpt-three-grid article:last-child .bbpt-card-no,
.bbpt-page .bbpt-overview .bbpt-three-grid article:last-child .bbpt-outline-icon,
.bbpt-page .bbpt-overview .bbpt-three-grid article:last-child h3,
.bbpt-page .bbpt-overview .bbpt-three-grid article:last-child p,
.bbpt-page .bbpt-overview .bbpt-three-grid article:last-child a{
    color:#fff;
}

@media (max-width:1000px){
    .bbsoc-hero__media{
        left:auto;
        right:0;
        width:58%;
    }
    .bbsoc-hero__copy,
    .bbsoc-hero__stats{
        width:62%;
    }
}

@media (max-width:680px){
    .bbsoc-hero__media{
        left:auto;
        right:auto;
        width:calc(100% + 28px);
    }
    .bbsoc-hero__copy,
    .bbsoc-hero__stats{
        width:100%;
    }
}


/* =========================================================
   BBSOC v0.8.2 — unified course hero composition
   Keep the global course-page visual hierarchy consistent:
   generous top breathing room, horizontal copy composition,
   and the hero image anchored to the right viewport edge.
   ========================================================= */
@media (min-width:1001px){
    .bbsoc-hero{
        min-height:790px;
        padding-top:0;
    }
    .bbsoc-hero__media{
        top:150px;
        right:0;
        left:53%;
        width:auto;
        height:535px;
        border-radius:30px 0 0 30px;
    }
    .bbsoc-hero__content{
        width:min(1280px,calc(100% - 64px));
        padding-top:205px;
    }
    .bbsoc-hero__copy{
        width:52%;
        max-width:780px;
        display:grid;
        grid-template-columns:minmax(0,1.35fr) minmax(210px,.65fr);
        gap:34px;
        align-items:start;
        min-height:380px;
    }
    .bbsoc-hero h1{
        max-width:620px;
    }
    .bbsoc-hero__copy>div:nth-child(2){
        padding:6px 0 0;
    }
    .bbsoc-hero__copy>div:nth-child(2)>p{
        margin:0 0 26px;
    }
    .bbsoc-actions{
        flex-direction:column;
        align-items:stretch;
    }
    .bbsoc-hero__stats{
        width:52%;
        max-width:780px;
        margin-top:36px;
    }
}

@media (max-width:1000px){
    .bbsoc-hero{padding-top:110px;}
}


/* =========================================================
   BBSOC v0.8.3 — match the approved BBPT hero composition
   Preserve the v0.8.2 hero image position and breathing space.
   Only change the BBSOC desktop copy layout: headline first,
   description below, then horizontal CTAs, followed by stats.
   ========================================================= */
@media (min-width:1001px){
    .bbsoc-hero__media{top:150px;right:0;left:53%;width:auto;height:535px;border-radius:30px 0 0 30px;}
    .bbsoc-hero__content{width:min(1280px,calc(100% - 64px));padding-top:205px;}
    .bbsoc-hero__copy{width:52%;max-width:780px;display:block;min-height:0;}
    .bbsoc-hero__copy > div:first-child{width:100%;}
    .bbsoc-hero h1{max-width:650px;margin:0 0 24px;font-size:clamp(40px,4.5vw,68px);line-height:.96;letter-spacing:-.055em;}
    .bbsoc-hero__copy > div:nth-child(2){max-width:610px;padding:0;}
    .bbsoc-hero__copy > div:nth-child(2) > p{max-width:610px;margin:0 0 26px;}
    .bbsoc-actions{display:flex;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap;}
    .bbsoc-hero__stats{width:52%;max-width:780px;margin-top:36px;}
}


/* =========================================================
   BBSOC v0.8.4 — match BBPT hero breathing space
   Desktop only: use the same top breathing gap as the approved BBPT hero.
   No other BBSOC hero dimensions/layout are changed.
   ========================================================= */
@media (min-width:1001px){
    .bbsoc-hero{
        min-height:886px;
    }
    .bbsoc-hero__media{
        top:284px;
    }
    .bbsoc-hero__content{
        padding-top:284px;
    }
}

/* BBISG v0.8.6 — final pricing */
.bbisg-page .bbpt-price-grid--offers article:nth-child(2){border-color:rgba(255,106,0,.28);box-shadow:0 10px 30px rgba(13,23,45,.05)}
.bbisg-page .bbpt-price-grid--offers article h3{font-size:32px}
.bbisg-page .bbpt-price-note{margin-top:18px}

/* v0.10.22 — refund policy hero/layout fix */
.bb-refund-page{--bb-refund-navy:#0F172A;--bb-refund-cream:#F8F7F2;--bb-refund-line:rgba(15,23,42,.13)}
.bb-refund-wrap{width:min(1180px,calc(100% - 48px));margin:0 auto}
.bb-refund-hero{background:var(--bb-refund-navy);color:#fff;padding:130px 0 92px;position:relative;overflow:hidden}
.bb-refund-hero:after{content:"";position:absolute;width:430px;height:430px;border:1px solid rgba(249,115,22,.35);border-radius:50%;right:-140px;bottom:-245px;box-shadow:0 0 0 55px rgba(249,115,22,.06),0 0 0 110px rgba(249,115,22,.035);pointer-events:none}
.bb-refund-hero .bbpt-kicker{color:#F97316}
.bb-refund-hero h1{position:relative;z-index:1;font:600 clamp(48px,6vw,88px)/.95 "Space Grotesk",sans-serif;letter-spacing:-.055em;margin:0 0 22px;max-width:900px}
.bb-refund-hero>div>p:last-child{position:relative;z-index:1;font-size:18px;line-height:1.65;color:rgba(255,255,255,.72);margin:0;max-width:700px}
.bb-refund-page .bb-refund-policy{padding-top:96px}
@media(max-width:680px){.bb-refund-wrap{width:min(100% - 32px,1180px)}.bb-refund-hero{padding:105px 0 70px}.bb-refund-hero h1{font-size:48px}}

/* v0.8.7 — shared refund & cancellation policy */
.bb-refund-policy{background:#fff}
.bb-refund-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bb-refund-grid article{border:1px solid var(--bbpt-line);border-radius:14px;padding:26px;min-height:205px;background:#fff}
.bb-refund-grid article>span{font:700 10px "Space Grotesk",sans-serif;letter-spacing:.13em;color:#7c879a}
.bb-refund-grid article h3{font:600 25px "Space Grotesk",sans-serif;letter-spacing:-.025em;margin:30px 0 12px;color:var(--bbpt-navy)}
.bb-refund-grid article p{color:#56647b;line-height:1.6;margin:0;font-size:14px}
.bb-refund-note{margin-top:18px;padding:22px 26px;background:var(--bbpt-cream);border-radius:14px;display:grid;grid-template-columns:1fr 1.5fr;gap:24px;align-items:center}
.bb-refund-note strong{font:600 18px "Space Grotesk",sans-serif;color:var(--bbpt-navy)}
.bb-refund-note span{color:#657187;font-size:14px;line-height:1.55}
.bb-refund-details{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px}
.bb-refund-details>div{border-top:1px solid var(--bbpt-line);padding-top:20px}
.bb-refund-details h3{font:600 19px "Space Grotesk",sans-serif;margin:0 0 10px;color:var(--bbpt-navy)}
.bb-refund-details p{color:#56647b;line-height:1.6;margin:0;font-size:14px}
.bbsoc-page .bb-refund-grid article{border-color:var(--bbsoc-line)}
.bbsoc-page .bb-refund-grid article h3{color:var(--bbsoc-navy)}
.bbsoc-page .bb-refund-note{background:var(--bbsoc-cream)}
@media(max-width:900px){.bb-refund-grid,.bb-refund-details{grid-template-columns:1fr 1fr}.bb-refund-note{grid-template-columns:1fr}}
@media(max-width:680px){.bb-refund-grid,.bb-refund-details{grid-template-columns:1fr}.bb-refund-policy.bbpt-section,.bb-refund-policy.bbsoc-section{padding:76px 0}.bb-refund-hero{padding:120px 0 80px}.bb-refund-hero h1{font-size:48px}}

/* v0.8.8 — Learning Satisfaction Checkpoint refund policy */
.bb-refund-table-wrap{overflow-x:auto;margin-top:32px}
.bb-refund-table{width:100%;border-collapse:collapse;border:1px solid rgba(15,29,55,.14);font-size:15px}
.bb-refund-table th,.bb-refund-table td{padding:15px 16px;text-align:left;border-bottom:1px solid rgba(15,29,55,.12);vertical-align:top}
.bb-refund-table th{background:#0f1d37;color:#fff;font-weight:600}
.bb-refund-table tr:last-child td{border-bottom:0}
.bb-refund-table td:nth-child(1){font-weight:700;white-space:nowrap}
.bb-refund-table td:nth-child(3){font-weight:700}
.bb-refund-table td:nth-child(4){color:#334d73}
.bb-refund-page .bb-refund-details{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:28px}
.bb-refund-page .bb-refund-details>div{padding:22px;border:1px solid rgba(15,29,55,.12);border-radius:16px;background:#fff}
.bb-refund-page .bb-refund-details h3{margin:0 0 8px}
.bb-refund-page .bb-refund-details p{margin:0;color:#334d73}
@media(max-width:900px){.bb-refund-page .bb-refund-details{grid-template-columns:1fr}.bb-refund-table{min-width:720px}}

/* v0.9.0 — BBLIN course page, using the global BBPT course system */
.bblin-page .bb-course-hero-placeholder{height:100%;min-height:520px;border-radius:28px 0 0 28px;background:linear-gradient(135deg,#0f1d37,#263d61);color:#fff;display:flex;align-items:center;justify-content:center;text-align:center;font:800 56px/1.05 "Space Grotesk",sans-serif;letter-spacing:-2px}
.bblin-page .bb-course-hero-placeholder small{display:block;font:500 18px/1.4 "Inter",sans-serif;letter-spacing:0}
.bblin-page .bb-course-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(420px,48%);gap:48px;align-items:stretch;padding-top:284px}
.bblin-page .bb-info-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.bblin-page .bb-info-card{padding:28px;border-radius:20px;background:#fff;border:1px solid rgba(15,29,55,.1)}
.bblin-page .bb-info-card-primary{background:var(--bb-primary,#f58220);color:#fff;border-color:transparent}
.bblin-page .bb-info-card-primary p{color:#fff}
.bblin-page .bb-level-block{margin-top:28px}
.bblin-page .bb-level-head{display:flex;align-items:center;gap:16px;padding:22px 24px;background:#fff;border-radius:16px;margin-bottom:10px}
.bblin-page .bb-level-head>span{font-weight:800;color:var(--bb-primary,#f58220)}
.bblin-page .bb-level-head h3{margin:0;flex:1}
.bblin-page .bb-level-head em{font-style:normal;color:#60708a}
.bblin-page .bb-course-module{background:#fff;border-radius:14px;margin:8px 0;border:1px solid rgba(15,29,55,.1);overflow:hidden}
.bblin-page .bb-course-module summary{cursor:pointer;list-style:none;padding:20px 22px;display:flex;justify-content:space-between;gap:20px;font-weight:700}
.bblin-page .bb-course-module summary::-webkit-details-marker{display:none}
.bblin-page .bb-module-toggle{color:var(--bb-primary,#f58220);font-size:24px}
.bblin-page .bb-module-content{padding:0 22px 22px}
.bblin-page .bb-module-chips{display:flex;flex-wrap:wrap;gap:7px}
.bblin-page .bb-module-chips span{padding:7px 10px;border-radius:999px;background:#f3f5f8;color:#304563;font-size:13px}
.bblin-page .bb-practical-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;margin-top:36px}
.bblin-page .bb-practical-grid>div{padding-top:20px;border-top:1px solid rgba(255,255,255,.2)}
.bblin-page .bb-price-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.bblin-page .bb-price{padding:30px;border:1px solid rgba(15,29,55,.12);border-radius:20px;background:#fff}
.bblin-page .bb-price-featured{border:2px solid var(--bb-primary,#f58220)}
.bblin-page .bb-price span{font-size:12px;font-weight:800;letter-spacing:.08em}
.bblin-page .bb-price strong{display:block;font:800 42px/1 "Space Grotesk",sans-serif;margin:14px 0}
.bblin-page .bb-slot-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.bblin-page .bb-slot-grid>div{padding:26px;border:1px solid rgba(15,29,55,.12);border-radius:18px;background:#fff}
.bblin-page .bb-slot-grid strong{display:block;margin:8px 0}.bblin-page .bb-slot-grid small{color:#66758d}
@media(max-width:900px){.bblin-page .bb-course-hero{grid-template-columns:1fr;padding-top:180px}.bblin-page .bb-info-grid,.bblin-page .bb-price-grid,.bblin-page .bb-practical-grid,.bblin-page .bb-slot-grid{grid-template-columns:1fr}.bblin-page .bb-course-hero-placeholder{min-height:360px;border-radius:24px}}

/* v0.9.1 — BBLIN hero image + unified Learning Satisfaction Checkpoint language */
.bblin-page .bb-course-hero-image{display:block;width:100%;height:100%;min-height:520px;object-fit:cover;border-radius:28px 0 0 28px}
.bblin-page .bb-course-hero-media{overflow:hidden;border-radius:28px 0 0 28px}
.bblin-page .bb-refund-policy{background:#fff}
.bblin-page .bb-refund-policy .bb-refund-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}
.bblin-page .bb-refund-policy .bb-refund-grid article{padding:24px;border:1px solid rgba(15,29,55,.1);border-radius:18px;background:#fff}
.bblin-page .bb-refund-policy .bb-refund-grid span{font-size:11px;font-weight:800;letter-spacing:.08em;color:var(--bb-primary,#f58220)}
.bblin-page .bb-refund-policy .bb-refund-grid h3{margin:10px 0 6px}
.bblin-page .bb-refund-policy .bb-refund-note{margin-top:18px}
@media(max-width:900px){.bblin-page .bb-course-hero-image{min-height:360px;border-radius:24px}.bblin-page .bb-course-hero-media{border-radius:24px}.bblin-page .bb-refund-policy .bb-refund-grid{grid-template-columns:1fr}}

/* =========================================================
   BBLIN v0.9.2 — inherits the approved BBPT course-page design
   ========================================================= */
.bblin-page .bbpt-hero__media img{
    object-position:center center;
}
.bblin-page .bbpt-overview .bbpt-three-grid article:last-child{
    background:var(--bbpt-orange);
    border-color:var(--bbpt-orange);
    color:#fff;
}
.bblin-page .bbpt-overview .bbpt-three-grid article:last-child .bbpt-card-no,
.bblin-page .bbpt-overview .bbpt-three-grid article:last-child .bbpt-outline-icon,
.bblin-page .bbpt-overview .bbpt-three-grid article:last-child h3,
.bblin-page .bbpt-overview .bbpt-three-grid article:last-child p{
    color:#fff;
}

/* =========================================================
   BBLEA — future programme / disabled homepage treatment
   ========================================================= */
.bb-program-card--disabled{filter:grayscale(.82);opacity:.58;cursor:not-allowed;background:#f3f3f0!important;box-shadow:none!important;text-decoration:none!important}
.bb-program-card--disabled::before{background:#94a3b8!important}
.bb-program-card--disabled .bb-program-card__icon{background:#eef0f2!important;color:#64748b!important}
.bb-program-card--disabled h3,.bb-program-card--disabled p,.bb-program-card--disabled .bb-program-card__type{color:#64748b!important}
.bb-program-card--disabled:hover{opacity:.72;transform:translateY(-1px)}
.bb-program-card__disabled-label{display:inline-flex;align-items:center;gap:8px;color:#64748b;font-size:13px;font-weight:700}
.bb-program-card__disabled-label span{color:#94a3b8}
.bblea-disabled-button{opacity:.78;cursor:not-allowed;pointer-events:none}
.bblea-page .bbpt-price-grid--offers article:nth-child(2){border-color:rgba(255,106,0,.28);box-shadow:0 10px 30px rgba(13,23,45,.05)}
.bblea-page .bbpt-price-grid--offers article h3{font-size:32px}
.bblea-page .bbpt-price-note{margin-top:18px}
.bblea-page .bbpt-register-card .bblea-disabled-button{display:inline-flex}

/* BBDCE — future programme treatment uses the global BBLEA/BBPT design system. */
.bbdce-page .bbpt-price-grid--offers article:nth-child(2){border-color:rgba(255,106,0,.28);box-shadow:0 10px 30px rgba(13,23,45,.05)}
.bbdce-page .bbpt-price-grid--offers article h3{font-size:32px}
.bbdce-page .bbpt-price-note{margin-top:18px}


/* =========================================================
   BBCP v0.9.8 — Bristleback Cybersecurity Professional
   Uses the approved BBSOC course-page visual system so BBCP
   remains part of the same Bristleback course family.
   ========================================================= */
.bbcp-page .bbsoc-hero__media img{
    object-position:center center;
}
.bbcp-page .bbsoc-hero{
    /* Keep the same generous top breathing space used by the
       approved course hero composition. */
    padding-top:96px;
}
.bbcp-page .bbsoc-three-grid article:last-child{
    background:var(--bbsoc-orange);
    border-color:var(--bbsoc-orange);
    color:#fff;
}
.bbcp-page .bbsoc-three-grid article:last-child .bbsoc-card-no,
.bbcp-page .bbsoc-three-grid article:last-child .bbsoc-icon,
.bbcp-page .bbsoc-three-grid article:last-child h3,
.bbcp-page .bbsoc-three-grid article:last-child p,
.bbcp-page .bbsoc-three-grid article:last-child a{
    color:#fff;
}
.bbcp-page .bbcp-capstone{
    background:#111b31;
    color:#fff;
}
.bbcp-page .bbcp-capstone .bbsoc-section-head>p:not(.bbsoc-kicker){
    color:rgba(255,255,255,.68);
}
.bbcp-page .bbcp-flow{
    display:grid;
    grid-template-columns:repeat(5,1fr);
    gap:1px;
    background:rgba(255,255,255,.15);
}
.bbcp-page .bbcp-flow article{
    background:#111b31;
    padding:28px;
    min-height:210px;
}
.bbcp-page .bbcp-flow span{
    color:var(--bbsoc-orange);
    font:700 11px "Space Grotesk",sans-serif;
    letter-spacing:.12em;
}
.bbcp-page .bbcp-flow h3{
    margin:54px 0 10px;
    color:#fff;
    font:600 23px "Space Grotesk",sans-serif;
}
.bbcp-page .bbcp-flow p{
    margin:0;
    color:rgba(255,255,255,.64);
    line-height:1.55;
    font-size:14px;
}
@media(max-width:1000px){
    .bbcp-page .bbcp-flow{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:680px){
    .bbcp-page .bbsoc-hero{padding-top:72px}
    .bbcp-page .bbcp-flow{grid-template-columns:1fr}
}

/* v0.9.9 — management-plugin driven pricing and registration state */
.bb-register-disabled{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 20px;border-radius:8px;background:#e8eaed;color:#687083;font:700 14px "Space Grotesk",sans-serif;text-decoration:none;cursor:not-allowed}
.bb-dynamic-pricing .bb-dynamic-price-grid h3{margin-top:10px}
.bb-dynamic-pricing .bbpt-price-note{margin-top:18px}


/* Dynamic Academy batch slots */
.bb-dynamic-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem}
.bb-dynamic-slot-grid article{padding:1.35rem;border:1px solid rgba(20,30,50,.14);border-radius:16px;background:rgba(255,255,255,.94)}
.bb-dynamic-slot-grid article span{display:block;font-size:.75rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;opacity:.7}
.bb-dynamic-slot-grid article strong{display:block;margin:.55rem 0;font-size:1.05rem}
.bb-dynamic-slot-grid article b{display:block;font-size:.95rem}
.bb-dynamic-slot-grid article time{display:block;margin-top:.55rem;font-size:.85rem;line-height:1.5;opacity:.72}
@media(max-width:800px){.bb-dynamic-slot-grid{grid-template-columns:1fr}}


/* v0.10.7 — course-page dynamic slot layout fix
   bb_render_public_slots() returns its own grid wrapper while the
   course templates already provide the course-specific slot grid.
   Treat the inner wrapper as transparent so the actual slot cards
   participate in the course grid instead of becoming one nested grid item. */
.bbpt-slot-grid > .bb-dynamic-slot-grid,
.bbsoc-slot-grid > .bb-dynamic-slot-grid {
    display: contents;
}

.bbpt-slot-grid > .bb-dynamic-slot-grid > article,
.bbsoc-slot-grid > .bb-dynamic-slot-grid > article {
    min-width: 0;
    width: auto;
}


/* =========================================================
   ACCESSIBILITY — COMPLETE FUNCTIONAL MODES
   ========================================================= */

/* High contrast: replace decorative colour/imagery with a clear black/white
   presentation and strong focus/edge contrast throughout the public site. */
html.bb-high-contrast,
html.bb-high-contrast body {
    background: #fff !important;
    color: #000 !important;
}

html.bb-high-contrast .bb-header__bar,
html.bb-high-contrast .bb-menu-panel,
html.bb-high-contrast .bb-accessibility-panel,
html.bb-high-contrast .bb-search-panel,
html.bb-high-contrast .bb-menu-sidebar,
html.bb-high-contrast .bb-menu-content {
    background: #fff !important;
    color: #000 !important;
    border-color: #000 !important;
    box-shadow: none !important;
}

html.bb-high-contrast .bb-header__bar {
    border: 2px solid #000 !important;
}

html.bb-high-contrast .bb-hero {
    background: #fff !important;
    color: #000 !important;
}

html.bb-high-contrast .bb-hero__backgrounds,
html.bb-high-contrast .bb-hero__overlay {
    display: none !important;
}

html.bb-high-contrast .bb-hero__copy,
html.bb-high-contrast .bb-hero__title,
html.bb-high-contrast .bb-hero__description,
html.bb-high-contrast .bb-hero__eyebrow,
html.bb-high-contrast .bb-hero__panel,
html.bb-high-contrast .bb-hero__panel strong,
html.bb-high-contrast .bb-hero__panel small {
    color: #000 !important;
}

html.bb-high-contrast .bb-hero__panel,
html.bb-high-contrast .bb-program-card,
html.bb-high-contrast .bb-menu-feature-grid > a,
html.bb-high-contrast .bb-slot,
html.bb-high-contrast .bb-feature-card,
html.bb-high-contrast article,
html.bb-high-contrast input,
html.bb-high-contrast textarea,
html.bb-high-contrast select,
html.bb-high-contrast table,
html.bb-high-contrast th,
html.bb-high-contrast td {
    background: #fff !important;
    color: #000 !important;
    border-color: #000 !important;
    box-shadow: none !important;
}

html.bb-high-contrast a,
html.bb-high-contrast button,
html.bb-high-contrast .bb-menu-kicker,
html.bb-high-contrast .bb-section__eyebrow,
html.bb-high-contrast [class*="__kicker"] {
    color: #000 !important;
}

html.bb-high-contrast a {
    text-decoration: underline !important;
    text-decoration-thickness: 2px;
    text-underline-offset: 3px;
}

html.bb-high-contrast button,
html.bb-high-contrast .bb-form-submit,
html.bb-high-contrast .bbpt-btn,
html.bb-high-contrast .bbsoc-btn,
html.bb-high-contrast .bb-menu-cta,
html.bb-high-contrast .bb-section__link {
    background: #000 !important;
    color: #fff !important;
    border-color: #000 !important;
    box-shadow: none !important;
}

html.bb-high-contrast .bb-icon,
html.bb-high-contrast .bb-icon--register svg,
html.bb-high-contrast .bb-accessibility-symbol,
html.bb-high-contrast .bb-program-arrow,
html.bb-high-contrast .bb-menu-arrow {
    color: currentColor !important;
}

html.bb-high-contrast .bb-footer,
html.bb-high-contrast .bb-footer * {
    background: #fff !important;
    color: #000 !important;
    border-color: #000 !important;
}

html.bb-high-contrast :focus-visible {
    outline: 3px solid #000 !important;
    outline-offset: 3px !important;
}

/* Reduce Motion: no decorative animation, no transitions, no smooth scrolling,
   and the hero JavaScript stops automatic slide rotation. */
html.bb-reduce-motion,
html.bb-reduce-motion body {
    scroll-behavior: auto !important;
}

html.bb-reduce-motion *,
html.bb-reduce-motion *::before,
html.bb-reduce-motion *::after {
    animation-duration: 0.01ms !important;
    animation-delay: 0ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
    transition-delay: 0ms !important;
    scroll-behavior: auto !important;
}

html.bb-reduce-motion .bb-hero__background {
    transform: none !important;
}

html.bb-reduce-motion .bbpt-btn:hover,
html.bb-reduce-motion .bbsoc-btn:hover,
html.bb-reduce-motion *:hover {
    transform: none !important;
}

/* =========================
   FOOTER DESTINATION PAGES
   ========================= */
.bb-footer-page{background:var(--bb-bg);color:var(--bb-navy)}
.bb-page-shell{width:min(1180px,calc(100% - 48px));margin:0 auto}
.bb-page-hero{padding:150px 0 110px;background:var(--bb-navy);color:#fff;position:relative;overflow:hidden}
.bb-page-hero:after{content:"";position:absolute;width:420px;height:420px;border:1px solid rgba(249,115,22,.35);border-radius:50%;right:-130px;bottom:-230px;box-shadow:0 0 0 55px rgba(249,115,22,.06),0 0 0 110px rgba(249,115,22,.035);pointer-events:none}
.bb-page-kicker{margin:0 0 18px;font:700 11px/1.2 var(--bb-heading);letter-spacing:.16em;text-transform:uppercase;color:var(--bb-orange)}
.bb-page-hero h1{max-width:900px;margin:0;font:600 clamp(48px,7vw,88px)/.96 var(--bb-heading);letter-spacing:-.055em}
.bb-page-hero h1 em{font-style:normal;color:#fff;opacity:.58}
.bb-page-hero>div>p:last-child{max-width:760px;margin:28px 0 0;color:rgba(255,255,255,.72);font-size:18px;line-height:1.65}
.bb-page-section{padding:100px 0}
.bb-page-section--soft{background:#eeece7}
.bb-page-section--navy{background:var(--bb-navy);color:#fff}
.bb-page-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px;align-items:start}
.bb-page-grid h2,.bb-page-section-head h2{margin:0;color:var(--bb-navy);font:600 clamp(34px,4.2vw,56px)/1 var(--bb-heading);letter-spacing:-.045em}
.bb-page-grid--light h2{color:#fff}
.bb-page-grid p,.bb-page-section-head p,.bb-page-grid li{color:#5b677b;font-size:16px;line-height:1.75}
.bb-page-grid--light p{color:rgba(255,255,255,.68)}
.bb-page-section-head{max-width:780px;margin-bottom:46px}
.bb-page-section-head .bb-page-kicker{margin-bottom:14px}
.bb-page-cards{display:grid;gap:18px}
.bb-page-cards--3{grid-template-columns:repeat(3,minmax(0,1fr))}
.bb-page-cards--4{grid-template-columns:repeat(4,minmax(0,1fr))}
.bb-page-cards article{background:#fff;border:1px solid #dfe3e8;border-radius:18px;padding:28px;min-height:220px}
.bb-page-cards article>span{display:block;font:700 11px/1 var(--bb-heading);letter-spacing:.14em;color:#8a94a5;margin-bottom:55px}
.bb-page-cards article h3{margin:0 0 10px;font:600 24px/1.05 var(--bb-heading);letter-spacing:-.025em}
.bb-page-cards article p{margin:0;color:#647084;font-size:14px;line-height:1.65}
.bb-page-note{display:grid;grid-template-columns:auto 1fr;gap:22px;align-items:center;padding:22px 26px;background:#fff;border:1px solid #dfe3e8;border-radius:16px}
.bb-page-note strong{font:600 17px var(--bb-heading)}
.bb-page-note span{color:#647084;font-size:14px;line-height:1.55}
.bb-page-list{margin:0;padding:0;list-style:none}
.bb-page-list li{position:relative;padding:0 0 20px 28px;border-bottom:1px solid #dfe3e8;margin-bottom:20px}
.bb-page-list li:before{content:"→";position:absolute;left:0;top:0;color:var(--bb-orange);font-weight:700}
.bb-page-button{display:inline-flex;align-items:center;gap:16px;margin-top:24px;padding:14px 20px;border-radius:999px;font:600 13px var(--bb-heading);text-decoration:none}
.bb-page-button--dark{background:var(--bb-navy);color:#fff}
.bb-page-button--light{background:#fff;color:var(--bb-navy)}
.bb-page-button span{color:var(--bb-orange)}
.bb-page-cta{padding:90px 0;background:var(--bb-orange);color:var(--bb-navy)}
.bb-page-cta h2{margin:0;font:600 clamp(36px,5vw,64px)/1 var(--bb-heading);letter-spacing:-.045em}
.bb-page-cta p{max-width:620px;margin:18px 0 0;font-size:16px;line-height:1.65}
.bb-program-directory{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}
.bb-program-directory article{background:#fff;border:1px solid #dfe3e8;border-radius:18px;padding:26px;display:flex;flex-direction:column;min-height:270px}
.bb-program-directory__top{display:flex;justify-content:space-between;gap:15px;align-items:center}
.bb-program-directory__top span{font:700 12px var(--bb-heading);letter-spacing:.12em;color:var(--bb-orange)}
.bb-program-directory__top strong{font:700 9px var(--bb-heading);letter-spacing:.12em;color:#7a8597}
.bb-program-directory h3{margin:36px 0 10px;font:600 26px/1.08 var(--bb-heading);letter-spacing:-.03em}
.bb-program-directory p{margin:0;color:#647084;font-size:14px;line-height:1.65}
.bb-program-directory__actions{display:flex;gap:22px;margin-top:auto;padding-top:24px}
.bb-program-directory__actions a{font:600 12px var(--bb-heading);color:var(--bb-navy)}
.bb-program-directory__actions a:last-child{color:var(--bb-orange)}
.bb-page-dynamic-slots .bb-dynamic-slot-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.bb-page-dynamic-slots .bb-dynamic-slot-grid article{padding:24px;border:1px solid #dfe3e8;border-radius:16px;background:#fff}
.bb-page-dynamic-slots .bb-dynamic-slot-grid article span{display:block;font:700 10px var(--bb-heading);letter-spacing:.13em;color:#8a94a5}
.bb-page-dynamic-slots .bb-dynamic-slot-grid article strong{display:block;margin-top:30px;color:var(--bb-orange);font:600 18px var(--bb-heading)}
.bb-page-dynamic-slots .bb-dynamic-slot-grid article b{display:block;margin-top:6px;font:600 22px var(--bb-heading);color:var(--bb-navy)}
.bb-page-dynamic-slots .bb-dynamic-slot-grid article time{display:block;margin-top:12px;color:#647084;font-size:13px;line-height:1.5}
.bb-footer-contact-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:70px;align-items:start}
.bb-footer-contact-copy h2{margin:0;font:600 clamp(36px,4.5vw,60px)/1 var(--bb-heading);letter-spacing:-.045em}
.bb-footer-contact-copy>p:not(.bb-page-kicker):not(.bb-page-email){max-width:520px;color:#647084;line-height:1.7}
.bb-page-email{margin-top:36px;display:flex;flex-direction:column;gap:5px}.bb-page-email span{font:700 10px var(--bb-heading);letter-spacing:.13em;color:#8a94a5}.bb-page-email a{font:600 18px var(--bb-heading);color:var(--bb-navy)}
.bb-footer-form{padding:28px;border:1px solid #dfe3e8;background:#fff;border-radius:20px}
.bb-footer-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.bb-footer-form label{display:flex;flex-direction:column;gap:8px}.bb-footer-form label span{font:600 11px var(--bb-heading);letter-spacing:.05em}.bb-footer-form input,.bb-footer-form select,.bb-footer-form textarea{width:100%;border:1px solid #cfd5dd;border-radius:10px;padding:13px 14px;background:#fff;color:var(--bb-navy);font:400 14px var(--bb-body);outline:none}.bb-footer-form input:focus,.bb-footer-form select:focus,.bb-footer-form textarea:focus{border-color:var(--bb-orange);box-shadow:0 0 0 3px rgba(249,115,22,.12)}
.bb-footer-form-full{grid-column:1/-1}
.bb-policy h2{margin:44px 0 12px;font:600 30px/1.1 var(--bb-heading);letter-spacing:-.03em}.bb-policy h2:first-child{margin-top:0}.bb-policy p{max-width:850px;color:#5d687b;font-size:15px;line-height:1.8}.bb-policy a{color:#d85f0d;text-decoration:underline}.bb-policy-contact{margin-top:45px;padding-top:24px;border-top:1px solid #dfe3e8}
@media (max-width:900px){.bb-page-hero{padding:120px 0 85px}.bb-page-section{padding:75px 0}.bb-page-grid,.bb-footer-contact-grid{grid-template-columns:1fr;gap:35px}.bb-page-cards--3,.bb-page-cards--4,.bb-page-dynamic-slots .bb-dynamic-slot-grid{grid-template-columns:1fr 1fr}.bb-program-directory{grid-template-columns:1fr}}
@media (max-width:640px){.bb-page-shell{width:min(100% - 32px,1180px)}.bb-page-hero{padding:105px 0 70px}.bb-page-hero h1{font-size:clamp(42px,12vw,60px)}.bb-page-hero>div>p:last-child{font-size:16px}.bb-page-section{padding:58px 0}.bb-page-grid h2,.bb-page-section-head h2{font-size:38px}.bb-page-cards--3,.bb-page-cards--4,.bb-page-dynamic-slots .bb-dynamic-slot-grid{grid-template-columns:1fr}.bb-page-cards article{min-height:0}.bb-page-cards article>span{margin-bottom:35px}.bb-page-note{grid-template-columns:1fr;gap:8px}.bb-footer-form-grid{grid-template-columns:1fr}.bb-footer-form-full{grid-column:auto}.bb-page-cta{padding:65px 0}}


/* v0.10.22: exact main-menu structure */
.bb-menu-feature-grid--four { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (max-width: 900px) {
  .bb-menu-feature-grid--four { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 600px) {
  .bb-menu-feature-grid--four { grid-template-columns: 1fr; }
}

/* v0.10.22 — About / Learning expanded sections */
.bb-page-section-head{max-width:860px;margin-bottom:48px}
.bb-page-section-head>p:not(.bb-page-kicker){max-width:760px}
.bb-page-section-head--light h2,.bb-page-section-head--light p{color:#fff}
.bb-page-section-head--light p:not(.bb-page-kicker){color:rgba(255,255,255,.72)}
.bb-page-path-details{margin-top:28px;gap:18px}
.bb-page-path-details>div{padding:26px 28px;background:#f7f5f2;border:1px solid #e2e5e9;border-radius:16px}
.bb-page-path-details h3{margin:0 0 8px;font:600 22px/1.1 var(--bb-heading);color:var(--bb-navy)}
.bb-page-path-details p{margin:0;color:#647084;font-size:14px;line-height:1.65}
.bb-page-cards--dark article{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.16)}
.bb-page-cards--dark article h3{color:#fff}
.bb-page-cards--dark article p{color:rgba(255,255,255,.70)}
.bb-page-cards--dark article>span{color:rgba(255,255,255,.52)}
#why-bristleback,#learning-path,#practical-labs{scroll-margin-top:110px}
@media (max-width:900px){.bb-page-path-details{grid-template-columns:1fr 1fr}}
@media (max-width:640px){.bb-page-path-details{grid-template-columns:1fr}.bb-page-section-head{margin-bottom:34px}}


/* v0.10.22 — standardized recommended-programs sections; no visual redesign */

/* v0.10.23 — teaching language visibility */
.bbpt-language-note{margin:14px 0 18px;padding:12px 14px;border-left:3px solid var(--bb-orange);background:rgba(249,115,22,.06);color:var(--bb-slate);font-size:14px}.bbpt-language-note strong{color:var(--bb-navy)}
.bb-page-language-note{margin:22px 0 0;padding:12px 15px;border-left:3px solid var(--bb-orange);background:rgba(249,115,22,.08);font-size:15px}.bb-page-language-note strong{color:var(--bb-orange)}
@media(max-width:700px){.bbpt-language-note,.bb-page-language-note{font-size:13px}}


/* v0.10.24 — mobile batch layout + stronger teaching-language callout */
@media (max-width: 900px){
    .bb-batches__top{flex-direction:column;align-items:stretch;gap:28px}
    .bb-batches__top>div:first-child{width:100%}
    .bb-batches__note{width:100%;min-width:0}
}
@media (max-width: 700px){
    .bb-batches__note{flex-direction:column;gap:14px;padding:16px 18px}
    .bb-batches__note>div{width:100%;padding:0}
    .bb-batches__note>div+div{padding-top:14px;border-top:1px solid #E2E8F0}
    .bb-batches__note strong{font-size:16px}
    .bb-batches__note span{font-size:13px}
}

/* Make the language information a deliberate learning-mode callout rather than a footnote. */
.bbpt-language-note{
    display:flex;align-items:center;gap:16px;
    margin:20px 0 28px;padding:15px 18px;
    border:1px solid rgba(255,255,255,.55);
    border-left:4px solid #fff;border-radius:12px;
    background:rgba(255,255,255,.96);color:var(--bb-navy);
    font-size:16px;line-height:1.35;font-weight:500;
    box-shadow:0 8px 22px rgba(15,23,42,.08)
}
.bbpt-language-note strong{display:inline-block;color:var(--bb-orange);font-family:var(--bb-heading);font-size:12px;letter-spacing:.12em;text-transform:uppercase;white-space:nowrap}
.bbpt-language-note strong:after{content:""}
.bbpt-language-note{max-width:520px}
.bb-page-language-note{font-size:16px;line-height:1.5}
@media(max-width:700px){
    .bbpt-language-note{align-items:flex-start;flex-direction:column;gap:5px;margin:18px 0 24px;padding:14px 16px;font-size:17px}
    .bbpt-language-note strong{font-size:11px}
    .bb-page-language-note{font-size:16px}
}

/* =========================================================
   v0.10.40 — unify mobile hero responsiveness across program pages
   Apply the already-approved BBSOC mobile hero behavior to the
   other program pages that use the shared BBPT hero system.
   Scoped to .bbpt-page only; BBSOC/BBCP are unchanged.
   ========================================================= */
@media (max-width:1000px){
    .bbpt-page .bbpt-hero{
        min-height:900px;
    }
    .bbpt-page .bbpt-hero__media{
        top:122px;
        left:auto;
        right:0;
        width:58%;
        height:500px;
    }
    .bbpt-page .bbpt-hero__content,
    .bbpt-page .bbpt-hero__stats{
        width:62%;
    }
}

@media (max-width:680px){
    .bbpt-page .bbpt-hero{
        min-height:850px;
        padding-top:72px;
        display:flex;
        flex-direction:column;
        align-items:stretch;
    }
    .bbpt-page .bbpt-hero__media{
        position:relative;
        inset:auto;
        top:auto;
        right:auto;
        bottom:auto;
        left:auto;
        width:calc(100% + 28px);
        height:390px;
        margin-left:-14px;
        order:0;
        border-radius:0;
    }
    .bbpt-page .bbpt-hero__media img{
        object-position:center center;
    }
    .bbpt-page .bbpt-hero__content{
        order:1;
        width:calc(100% - 28px);
        min-height:0;
        padding-top:20px;
        padding-bottom:44px;
        display:block;
    }
    .bbpt-page .bbpt-hero__content > *{
        max-width:none;
    }
    .bbpt-page .bbpt-hero h1{
        font-size:47px;
        line-height:.94;
    }
    .bbpt-page .bbpt-hero__lead{
        font-size:16px;
        line-height:1.55;
    }
    .bbpt-page .bbpt-hero__stats{
        width:100%;
        margin-top:26px;
        display:grid;
        grid-template-columns:1fr 1fr;
    }
    .bbpt-page .bbpt-hero__stats div{
        min-width:0;
        margin:0;
        padding:12px 10px 0 0;
        border-right:0;
    }
    .bbpt-page .bbpt-hero__stats strong{
        font-size:20px;
    }
    .bbpt-page .bbpt-actions{
        flex-direction:column;
        align-items:stretch;
    }
    .bbpt-page .bbpt-btn{
        justify-content:space-between;
    }
}
