/* ── Ball Family Reserve launch pages (/bfr/{slug}) ──
 * Legacy's layout (public/assets/css bfr.less) on this site's tokens: the
 * launch image with its header beside it, centred instruments, dealer tiles,
 * a striped spec table, full-bleed hero and a dark factory-tour band.
 */

.bfr {
    --bfr-ink: #1a1a1a;
    --bfr-muted: #555;
    --bfr-line: #e5e5e5;
    --bfr-tint: #f6f6f6;
    color: var(--bfr-ink);
}

.bfr h1, .bfr h2, .bfr h3, .bfr h4 {
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.bfr-preview {
    margin: 0;
    padding: 0.75rem 1rem;
    background: #fff4d6;
    border-bottom: 1px solid #e8d49a;
    text-align: center;
    font-weight: 600;
}

/* ── Launch block ── */

.bfr-launch {
    position: relative;
    overflow: hidden;
    background: #000;
}

.bfr-launch__image img {
    display: block;
    width: 100%;
    height: auto;
}

.bfr-launch__text {
    padding: 1.5rem 1rem 2rem;
    background: #fff;
    text-align: center;
}

.bfr-launch__title {
    margin: 0 0 0.5rem;
    font-size: 2rem;
}

.bfr-launch__title strong { font-weight: 900; }

.bfr-launch__description {
    margin: 0 auto 1.25rem;
    max-width: 32rem;
    font-size: 1.0625rem;
}

.bfr-launch__logo {
    display: block;
    max-width: 18rem;
    width: 80%;
    height: auto;
    margin: 0 auto 1rem;
}

.bfr-launch__logo[data-mobile-hidden] { display: none; }

@media (min-width: 768px) {
    .bfr-launch__text {
        position: absolute;
        top: 50%;
        transform: translateY(-50%);
        width: 38%;
        padding: 2rem;
        background: transparent;
        text-align: left;
    }

    .bfr-launch--right .bfr-launch__text { right: 5%; }
    .bfr-launch--left .bfr-launch__text { left: 5%; }

    /* Legacy's style names the photo: "dark" (the default) puts white text
       and a white button on it, "light" keeps the text dark. */
    .bfr-launch--dark .bfr-launch__text { color: #fff; text-shadow: 0 1px 12px rgba(0, 0, 0, 0.45); }
    .bfr-launch--dark .bfr-launch__more { color: #fff; border-color: #fff; }
    .bfr-launch--light .bfr-launch__text { color: var(--bfr-ink); }
    .bfr-launch--light .bfr-launch__more { color: var(--bfr-ink); border-color: var(--bfr-ink); background: rgba(255, 255, 255, 0.7); }

    .bfr-launch__title { font-size: clamp(1.75rem, 3.2vw, 3rem); }
    .bfr-launch__description { margin-left: 0; }
    .bfr-launch__logo { margin-left: 0; }
    .bfr-launch__logo[data-mobile-hidden] { display: block; }
    .bfr-launch__logo--mobile { display: none; }
}

/* ── Intro ── */

.bfr-intro {
    padding: 3rem 1rem 1rem;
    max-width: 56rem;
    text-align: center;
}

.bfr-intro__heading { font-size: 1.5rem; }

.bfr-intro__text {
    color: var(--bfr-muted);
    font-size: 1.0625rem;
}

/* ── Instruments ── */

.bfr-instruments {
    padding-top: 2rem;
    padding-bottom: 2rem;
}

.bfr-instrument {
    padding: 3rem 0;
    border-bottom: 1px solid var(--bfr-line);
    text-align: center;
    scroll-margin-top: 6rem;
}

.bfr-instrument:last-child { border-bottom: 0; }

.bfr-instrument__name {
    margin: 0;
    font-size: 1.75rem;
}

.bfr-instrument__color {
    margin: 0.25rem 0 1rem;
    color: var(--bfr-muted);
    font-size: 1.125rem;
}

.bfr-instrument__description {
    max-width: 52rem;
    margin: 0 auto 1.5rem;
    line-height: 1.6;
}

.bfr-instrument__image {
    display: block;
    width: 100%;
    max-width: 1200px;
    height: auto;
    margin: 0 auto 2rem;
}

.bfr-instrument__actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 1.5rem;
}

@media (min-width: 992px) {
    .bfr-instrument__actions--buy {
        flex-direction: row-reverse;
        justify-content: center;
        align-items: flex-start;
        gap: 4rem;
    }

    .bfr-instrument__actions--buy > * { flex: 0 1 26rem; }
}

.bfr-buy__note,
.bfr-dealer-actions__run {
    margin: 0 0 0.75rem;
    font-weight: 700;
}

.bfr-buy__row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: center;
    gap: 1rem;
}

.bfr-buy__price {
    margin: 0;
    font-size: 1.5rem;
    font-weight: 700;
}

.bfr-buy__affirm {
    margin: 0.75rem 0 0;
    font-size: 0.875rem;
}

.bfr-buy__disclosure {
    margin: 0.25rem 0 0;
    color: var(--bfr-muted);
    font-size: 0.8125rem;
}

/* Buy Now's "Adding…" / "Added" / refusal line, ink on white. */
.bfr-buy__status {
    margin: 0.5rem 0 0;
    font-size: 1rem;
}

.bfr-buy__status:empty {
    display: none;
}

.bfr-buy__button[aria-disabled="true"] {
    cursor: progress;
}

.bfr-dealer-actions__buttons {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 0.75rem;
}

.bfr-dealer-actions__specs,
.bfr-link-button {
    margin-top: 0.75rem;
    padding: 0.25rem 0;
    border: 0;
    background: none;
    color: var(--brand-link);
    font-weight: 700;
    text-decoration: underline;
    cursor: pointer;
}

.bfr-dealer-actions__specs:hover,
.bfr-link-button:hover { color: var(--brand-link-hover); }

/* Panels (dealers, photos, specs, international) */

.bfr-panel { margin-top: 2rem; }

.bfr-panel[hidden] { display: none; }

.bfr-dealers {
    padding: 1.5rem;
    background: var(--bfr-tint);
    text-align: left;
}

.bfr-dealers__header {
    display: flex;
    flex-wrap: wrap;
    gap: 1rem 3rem;
    margin-bottom: 1.5rem;
}

.bfr-dealers__header p { margin: 0; }

.bfr-dealers__heading {
    margin: 0 0 0.25rem;
    font-size: 1rem;
}

.bfr-dealers__instrument,
.bfr-dealers__code-value { font-weight: 700; }

.bfr-dealers__list {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
    gap: 1rem;
    margin: 0;
    padding: 0;
    list-style: none;
}

.bfr-dealer {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 1rem;
    background: #fff;
    text-align: center;
}

.bfr-dealer__logo {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 4rem;
    margin-bottom: 0.5rem;
}

.bfr-dealer__logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.bfr-dealer__name {
    margin: 0 0 0.25rem;
    font-size: 0.875rem;
}

.bfr-dealer__phone {
    margin: 0 0 0.75rem;
    font-size: 0.875rem;
}

.bfr-dealer__cta { margin-top: auto; }

.bfr-photos {
    position: relative;
    background: #000;
}

.bfr-panel__close {
    position: absolute;
    top: 0.5rem;
    right: 0.5rem;
    z-index: 5;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.6);
    color: #fff;
    cursor: pointer;
}

.bfr-photos__slide img,
.bfr-highlight img {
    display: block;
    width: 100%;
    height: auto;
}

/* Before Swiper (or without it) the slides are a scrollable row. */
[data-bfr-swiper]:not(.is-enhanced) .swiper-wrapper {
    display: flex;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
}

[data-bfr-swiper]:not(.is-enhanced) .swiper-slide {
    flex: 0 0 100%;
    scroll-snap-align: start;
}

[data-bfr-swiper] { position: relative; }

.bfr-swiper-nav {
    position: absolute;
    top: 50%;
    z-index: 4;
    transform: translateY(-50%);
    width: 44px;
    height: 44px;
    border: 0;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.55);
    color: #fff;
    font-size: 1.75rem;
    line-height: 1;
    cursor: pointer;
}

.bfr-swiper-nav--prev { left: 0.75rem; }
.bfr-swiper-nav--next { right: 0.75rem; }
.bfr-swiper-nav.swiper-button-disabled { opacity: 0.35; cursor: default; }

.bfr-specs { overflow-x: auto; }

.bfr-specs__table {
    width: 100%;
    max-width: 60rem;
    margin: 0 auto;
    border-collapse: collapse;
    text-align: left;
}

.bfr-specs__table tr:nth-child(odd) { background: var(--bfr-tint); }

.bfr-specs__table th,
.bfr-specs__table td {
    padding: 0.6rem 0.9rem;
    vertical-align: top;
}

.bfr-specs__table th {
    width: 35%;
    font-weight: 700;
    text-align: right;
}

/* Image tiles */

.bfr-tiles {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(16rem, 1fr));
    gap: 2rem;
    margin: 2.5rem 0 0;
    padding: 0;
    list-style: none;
}

.bfr-tile img {
    display: block;
    width: 100%;
    height: auto;
    margin-bottom: 0.75rem;
}

.bfr-tile__header {
    margin: 0 0 0.25rem;
    font-size: 1rem;
}

.bfr-tile__description {
    margin: 0;
    color: var(--bfr-muted);
}

/* Highlight carousel */

.bfr-highlights { margin-top: 2.5rem; }

.bfr-highlight { position: relative; }

.bfr-highlight__info {
    padding: 1rem;
    text-align: left;
}

.bfr-highlight__header {
    margin: 0 0 0.25rem;
    font-size: 1.125rem;
}

.bfr-highlight__description { margin: 0; }

@media (min-width: 992px) {
    .bfr-highlight__info {
        position: absolute;
        left: 3rem;
        bottom: 3rem;
        max-width: 26rem;
        padding: 1.25rem 1.5rem;
        background: rgba(0, 0, 0, 0.7);
        color: #fff;
    }
}

/* ── Video ── */

.bfr-video {
    padding: 2rem 1rem 3rem;
    text-align: center;
}

.bfr-video__heading { font-size: 1.5rem; }

.bfr-player__frame {
    position: relative;
    aspect-ratio: 16 / 9;
    max-width: 1100px;
    margin: 0 auto;
    background: #000;
}

.bfr-player__frame[hidden] { display: none; }

.bfr-player__frame iframe {
    position: absolute;
    inset: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.bfr-player__facade {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    border: 0;
    background: #000 center / cover no-repeat;
    cursor: pointer;
}

.bfr-player__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 5rem;
    height: 5rem;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.7);
    color: #fff;
    font-size: 2rem;
}

.bfr-player__facade:hover .bfr-player__icon,
.bfr-player__facade:focus-visible .bfr-player__icon { background: var(--brand-primary-fill); color: var(--brand-on-primary); }

.bfr-player--button .bfr-player__frame { margin-top: 1.5rem; }

/* ── Hero ── */

.bfr-hero {
    position: relative;
    background: #000;
    color: #fff;
}

.bfr-hero__image img {
    display: block;
    width: 100%;
    height: auto;
}

.bfr-hero__text {
    padding: 2rem 1rem;
    text-align: center;
}

.bfr-hero__logo {
    display: block;
    width: min(22rem, 70%);
    height: auto;
    margin: 0 auto 1.25rem;
}

.bfr-hero__description {
    max-width: 44rem;
    margin: 0 auto;
    line-height: 1.6;
}

@media (min-width: 768px) {
    .bfr-hero__text {
        position: absolute;
        inset: 0;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        background: rgba(0, 0, 0, 0.25);
    }
}

/* ── Family Matters ── */

.bfr-family {
    display: grid;
    gap: 2rem;
    padding-top: 4rem;
    padding-bottom: 4rem;
}

@media (min-width: 768px) {
    .bfr-family { grid-template-columns: 5fr 6fr; align-items: start; }
}

.bfr-family__heading { font-size: 1.75rem; }

.bfr-family__description { line-height: 1.6; }

.bfr-family__logo {
    display: block;
    max-width: 18rem;
    height: auto;
    margin-bottom: 1.5rem;
}

.bfr-family__photo {
    display: block;
    width: 100%;
    height: auto;
    margin-top: 1.5rem;
}

.bfr-family__photo--3 { width: 70%; }

/* ── Past collections ── */

.bfr-past {
    padding-top: 3rem;
    padding-bottom: 3rem;
    text-align: center;
}

.bfr-past__heading { font-size: 1.5rem; }

.bfr-past__intro { color: var(--bfr-muted); }

.bfr-past__list {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 1rem;
    margin: 1.5rem 0 0;
    padding: 0;
    list-style: none;
}

@media (min-width: 768px) {
    .bfr-past__list { grid-template-columns: repeat(4, 1fr); }
}

.bfr-past__link {
    position: relative;
    display: block;
    color: #fff;
    text-decoration: none;
}

.bfr-past__link img {
    display: block;
    width: 100%;
    height: auto;
}

.bfr-past__label {
    position: absolute;
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0, 0, 0, 0.35);
    font-size: 1.25rem;
    font-weight: 900;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.bfr-past__link:hover .bfr-past__label,
.bfr-past__link:focus-visible .bfr-past__label { background: rgba(0, 0, 0, 0.55); }

/* ── International dealers ── */

.bfr-international {
    padding: 2rem 1rem;
    background: var(--bfr-tint);
    scroll-margin-top: 6rem;
}

.bfr-international__heading { font-size: 1.25rem; }

.bfr-international__offerings { font-weight: 700; }

.bfr-international__continent {
    margin-top: 1.5rem;
    font-size: 1.125rem;
}

.bfr-international__country {
    margin: 1rem 0 0.25rem;
    font-size: 0.9375rem;
}

.bfr-international__list {
    margin: 0;
    padding: 0;
    list-style: none;
}

.bfr-international__list li { margin-bottom: 0.25rem; }

.bfr-international__name { font-weight: 600; }

.bfr-international__phone { color: var(--bfr-muted); }

/* ── Factory tour ── */

.bfr-tour {
    background: #111;
    color: #fff;
    text-align: center;
}

.bfr-tour__inner {
    padding-top: 4rem;
    padding-bottom: 4rem;
    max-width: 60rem;
}

.bfr-tour__heading { font-size: 1.75rem; }

.bfr-tour__description {
    max-width: 40rem;
    margin: 0 auto 1.5rem;
    line-height: 1.6;
}

.bfr-tour .btn-outline {
    color: #fff;
    border-color: #fff;
}
