/* ============================================================
   BOUCHERIE — Vitrine
   Direction: "Heritage Maison" — editorial + earthy + elegant
   ============================================================ */

.bch {
    --bch-cream:     #F5F2EC;
    --bch-cream-deep:#EDE6D8;
    --bch-sand:      #D8CBB0;
    --bch-forest:    #0B2620;
    --bch-forest-deep:#061712;
    --bch-ink:       #0F0F0F;
    --bch-ink-soft:  #2B2B2B;
    --bch-gold:      #C5AB72;
    --bch-gold-bright:#E6C776;
    --bch-gold-deep: #8B6F3F;
    --bch-muted:     #7A6F5E;

    --bch-font-serif: 'Playfair Display', 'Georgia', serif;
    --bch-font-sans:  'Montserrat', -apple-system, sans-serif;

    font-family: var(--bch-font-sans);
    color: var(--bch-ink);
    background: var(--bch-cream);
    margin: 0;
    overflow-x: hidden;
}

/* ----- Shared primitives ----- */
.bch-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    font-family: var(--bch-font-sans);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 4px;
    text-transform: uppercase;
    color: var(--bch-gold-deep);
    margin: 0 0 18px;
    width: fit-content;
}
.bch-eyebrow--center { justify-content: center; margin: 0 auto 18px; display: flex; }
.bch-eyebrow--gold { color: var(--bch-gold-bright); }
.bch-eyebrow--hero { color: var(--bch-gold-bright); opacity: .92; }
.bch-eyebrow-dash {
    display: inline-block;
    width: 32px;
    height: 1px;
    background: currentColor;
    opacity: .8;
}

.bch-h2 {
    font-family: var(--bch-font-serif);
    font-weight: 500;
    font-style: normal;
    font-size: clamp(34px, 4.8vw, 64px);
    line-height: 1.04;
    letter-spacing: -.015em;
    color: var(--bch-ink);
    margin: 0 0 20px;
}
.bch-h2 em {
    font-style: italic;
    font-weight: 700;
    color: var(--bch-gold-deep);
}
.bch-h2--center { text-align: center; }
.bch-h2--cream { color: var(--bch-cream); }
.bch-h2--cream em { color: var(--bch-gold-bright); }

.bch-section-header {
    padding: clamp(70px, 10vw, 120px) 24px clamp(30px, 4vw, 50px);
    max-width: 860px;
    margin: 0 auto;
    text-align: left;
}
.bch-section-header--dark { text-align: center; }
.bch-section-header:has(.bch-h2--center) { text-align: center; }
.bch-section-sub {
    margin: 10px auto 0;
    max-width: 600px;
    font-size: 15px;
    line-height: 1.65;
    color: var(--bch-muted);
}

/* Buttons */
.bch-btn {
    display: inline-flex;
    align-items: center;
    gap: 12px;
    padding: 14px 26px;
    font-family: var(--bch-font-sans);
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    text-decoration: none;
    border-radius: 999px;
    transition:
        transform .4s cubic-bezier(.2,.8,.2,1),
        background .3s ease,
        color .3s ease,
        gap .3s cubic-bezier(.2,.8,.2,1),
        box-shadow .3s ease;
    cursor: pointer;
    border: 0;
    font-family: inherit;
}
.bch-btn:hover { transform: translateY(-2px); gap: 16px; }

.bch-btn--primary {
    background: var(--bch-ink);
    color: var(--bch-cream);
    box-shadow: 0 8px 24px rgba(15,15,15,.18);
}
.bch-btn--primary:hover {
    background: var(--bch-forest);
    color: var(--bch-gold-bright);
    box-shadow: 0 12px 32px rgba(11,38,32,.32);
}

.bch-btn--ghost {
    background: transparent;
    color: var(--bch-ink);
    border: 1px solid rgba(15,15,15,.22);
}
.bch-btn--ghost:hover {
    background: var(--bch-ink);
    color: var(--bch-cream);
    border-color: var(--bch-ink);
}

.bch-btn--big {
    padding: 18px 40px;
    font-size: 13px;
    background: linear-gradient(135deg, var(--bch-gold-bright) 0%, var(--bch-gold) 50%, var(--bch-gold-deep) 100%);
    color: var(--bch-forest-deep);
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.5),
        0 14px 40px rgba(230,199,118,.35);
}
.bch-btn--big:hover {
    box-shadow:
        inset 0 1px 0 rgba(255,255,255,.65),
        0 18px 50px rgba(230,199,118,.5);
}

/* ========================================================
   BHERO — Editorial split-screen intro (NEW v3)
   Compact, magazine-style, with polaroid images
   ======================================================== */
.bhero {
    background: var(--bch-cream);
    padding: clamp(24px, 3vw, 40px) clamp(20px, 5vw, 80px) clamp(50px, 7vw, 90px);
    position: relative;
    overflow: hidden;
}
.bhero::before {
    content: "";
    position: absolute;
    top: -20%;
    right: -15%;
    width: 60%;
    height: 140%;
    background: radial-gradient(ellipse, rgba(230,199,118,.14) 0%, transparent 65%);
    pointer-events: none;
    z-index: 0;
}

/* Top strip: issue + section */
.bhero-top {
    position: relative;
    z-index: 2;
    display: flex;
    align-items: center;
    gap: 14px;
    padding: 14px 0 24px;
    border-bottom: 1px solid rgba(15, 15, 15, .1);
    margin-bottom: clamp(28px, 4vw, 48px);
    font-family: var(--bch-font-sans);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--bch-muted);
}
.bhero-issue { color: var(--bch-gold-deep); }
.bhero-dash {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, var(--bch-gold), transparent);
}
.bhero-section { color: var(--bch-ink); }

/* Grid: content left, visual right */
.bhero-grid {
    position: relative;
    z-index: 2;
    display: grid;
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr);
    gap: clamp(40px, 6vw, 90px);
    align-items: center;
    max-width: 1400px;
    margin: 0 auto;
}

.bhero-content { min-width: 0; }
.bhero-eyebrow {
    font-family: var(--bch-font-sans);
    font-size: 10.5px;
    font-weight: 600;
    letter-spacing: 3.5px;
    text-transform: uppercase;
    color: var(--bch-gold-deep);
    margin: 0 0 18px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
}
.bhero-eyebrow::before {
    content: "";
    display: inline-block;
    width: 28px;
    height: 1px;
    background: var(--bch-gold);
}

.bhero-title {
    font-family: var(--bch-font-serif);
    font-weight: 400;
    font-size: clamp(44px, 7vw, 104px);
    line-height: .95;
    letter-spacing: -.025em;
    color: var(--bch-ink);
    margin: 0 0 20px;
}
.bhero-title em {
    font-style: italic;
    font-weight: 700;
    background: linear-gradient(180deg, var(--bch-gold-bright) 0%, var(--bch-gold) 55%, var(--bch-gold-deep) 100%);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
}

.bhero-lede {
    font-family: var(--bch-font-sans);
    font-size: clamp(15px, 1.1vw, 18px);
    line-height: 1.65;
    color: var(--bch-ink-soft);
    max-width: 540px;
    margin: 0 0 30px;
}

.bhero-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
    margin-bottom: 28px;
}
.bhero-actions .bch-btn svg { transition: transform .3s ease; }

.bhero-meta {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    padding: 18px 0 0;
    margin: 0;
    border-top: 1px solid rgba(15, 15, 15, .08);
}
.bhero-meta li {
    font-size: 12px;
    letter-spacing: .2px;
    color: var(--bch-muted);
}
.bhero-meta strong {
    color: var(--bch-ink);
    font-weight: 700;
    letter-spacing: .5px;
}

/* Visual column: stacked polaroids */
.bhero-visual {
    position: relative;
    aspect-ratio: 5 / 6;
    max-height: 540px;
    min-width: 0;
}

.bhero-polaroid {
    position: absolute;
    background: var(--bch-cream);
    padding: 10px 10px 28px;
    box-shadow:
        0 20px 50px -16px rgba(15,15,15,.25),
        0 4px 12px rgba(15,15,15,.08),
        0 0 0 1px rgba(197, 171, 114, .12);
    margin: 0;
    transition: transform .6s cubic-bezier(.2, .8, .2, 1);
}
.bhero-polaroid img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4 / 5;
}
.bhero-polaroid figcaption {
    position: absolute;
    bottom: 6px;
    left: 10px;
    right: 10px;
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-size: 11.5px;
    color: var(--bch-muted);
    text-align: center;
}

.bhero-polaroid--1 {
    top: 0;
    left: 0;
    width: 72%;
    transform: rotate(-4deg);
    z-index: 2;
}
.bhero-polaroid--2 {
    bottom: 0;
    right: 0;
    width: 58%;
    transform: rotate(5deg);
    z-index: 1;
}
.bhero-polaroid:hover {
    transform: rotate(0deg) scale(1.02);
    z-index: 3;
}

/* Wax-seal style stamp */
.bhero-stamp {
    position: absolute;
    top: 44%;
    right: 28%;
    width: 80px;
    height: 80px;
    z-index: 4;
    color: var(--bch-gold-deep);
    animation: bhero-stamp-spin 30s linear infinite;
    filter: drop-shadow(0 4px 10px rgba(15,15,15,.2));
}
.bhero-stamp svg { width: 100%; height: 100%; }

@keyframes bhero-stamp-spin {
    to { transform: rotate(360deg); }
}

/* Entry animations */
.bhero-eyebrow,
.bhero-title,
.bhero-lede,
.bhero-actions,
.bhero-meta,
.bhero-polaroid--1,
.bhero-polaroid--2,
.bhero-stamp {
    opacity: 0;
    animation: bhero-fade-up 1s cubic-bezier(.2, .8, .2, 1) forwards;
}
.bhero-eyebrow  { animation-delay: .1s; }
.bhero-title    { animation-delay: .25s; }
.bhero-lede     { animation-delay: .4s; }
.bhero-actions  { animation-delay: .55s; }
.bhero-meta     { animation-delay: .7s; }
.bhero-polaroid--1 { animation-delay: .3s; }
.bhero-polaroid--2 { animation-delay: .5s; }
.bhero-stamp    { animation-delay: .8s; }

@keyframes bhero-fade-up {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; }
}
.bhero-polaroid--1 { animation-name: bhero-fade-rotate-1; }
.bhero-polaroid--2 { animation-name: bhero-fade-rotate-2; }
.bhero-stamp { animation-name: bhero-fade-in; }

@keyframes bhero-fade-rotate-1 {
    from { opacity: 0; transform: translateY(30px) rotate(-4deg); }
    to   { opacity: 1; transform: translateY(0) rotate(-4deg); }
}
@keyframes bhero-fade-rotate-2 {
    from { opacity: 0; transform: translateY(40px) rotate(5deg); }
    to   { opacity: 1; transform: translateY(0) rotate(5deg); }
}
@keyframes bhero-fade-in {
    from { opacity: 0; }
    to   { opacity: 1; }
}

/* ========================================================
   BHERO VISUAL — TRIPLE (Agneau / Agnelle / Brebis)
   Used on /achat-libre/ to show the 3 animals as polaroids
   ======================================================== */
.bhero-visual--triple {
    aspect-ratio: 1 / 1;
    max-height: 560px;
}

/* Width commun aux 3 polaroids du layout triple */
.bhero-polaroid--a1,
.bhero-polaroid--a2,
.bhero-polaroid--a3 {
    width: 46%;
}

.bhero-polaroid--animal {
    /* Background gradient or/crème behind transparent PNG */
    padding: 8px 8px 26px;
}

/* Variante PHOTO (pour les vraies photos, pas PNG transparents) */
.bhero-polaroid--photo {
    padding: 8px 8px 26px;
}
.bhero-polaroid--photo img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
    background: var(--bch-ink);
}
.bhero-polaroid--photo figcaption {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 600;
    font-size: 12px;
    color: var(--bch-muted);
    letter-spacing: -.005em;
    bottom: 5px;
}
.bhero-polaroid--animal img {
    aspect-ratio: 1 / 1;
    object-fit: contain;
    background:
        radial-gradient(ellipse at 50% 110%, rgba(139, 111, 63, .18) 0%, transparent 55%),
        linear-gradient(160deg, #F5EEDB 0%, #EAD9B1 60%, #D9C492 100%);
}
.bhero-polaroid--animal figcaption {
    font-family: 'Playfair Display', serif;
    font-style: italic;
    font-weight: 700;
    font-size: 13px;
    color: var(--bch-forest);
    letter-spacing: -.005em;
    bottom: 4px;
}

/* Positions des 3 polaroids — composition fan élégante */
.bhero-polaroid--a1 {
    top: 2%;
    left: 4%;
    transform: rotate(-8deg);
    z-index: 2;
}
.bhero-polaroid--a2 {
    top: 18%;
    right: 2%;
    transform: rotate(6deg);
    z-index: 3;
}
.bhero-polaroid--a3 {
    bottom: 2%;
    left: 18%;
    transform: rotate(-3deg);
    z-index: 1;
}

/* Hover : chaque polaroid se redresse et passe devant */
.bhero-visual--triple .bhero-polaroid:hover {
    transform: rotate(0deg) scale(1.04);
    z-index: 10;
    box-shadow:
        0 28px 60px -16px rgba(15,15,15,.35),
        0 8px 20px rgba(15,15,15,.12),
        0 0 0 1px rgba(197, 171, 114, .4);
}

/* Animations d'entrée */
.bhero-polaroid--animal {
    opacity: 0;
    animation: 1s cubic-bezier(.2, .8, .2, 1) forwards;
}
.bhero-polaroid--a1 {
    animation-name: bhero-fade-rotate-a1;
    animation-delay: .3s;
}
.bhero-polaroid--a2 {
    animation-name: bhero-fade-rotate-a2;
    animation-delay: .45s;
}
.bhero-polaroid--a3 {
    animation-name: bhero-fade-rotate-a3;
    animation-delay: .6s;
}

@keyframes bhero-fade-rotate-a1 {
    from { opacity: 0; transform: translateY(30px) rotate(-8deg); }
    to   { opacity: 1; transform: translateY(0) rotate(-8deg); }
}
@keyframes bhero-fade-rotate-a2 {
    from { opacity: 0; transform: translateY(40px) rotate(6deg); }
    to   { opacity: 1; transform: translateY(0) rotate(6deg); }
}
@keyframes bhero-fade-rotate-a3 {
    from { opacity: 0; transform: translateY(30px) rotate(-3deg); }
    to   { opacity: 1; transform: translateY(0) rotate(-3deg); }
}

/* Stamp positionné au centre des 3 polaroids */
.bhero-visual--triple .bhero-stamp {
    top: 48%;
    left: 52%;
    transform: translate(-50%, -50%);
    animation: bhero-stamp-spin 35s linear infinite, bhero-fade-in 1s ease 1s forwards;
    opacity: 0;
}

/* Responsive triple */
@media (max-width: 960px) {
    .bhero-visual--triple {
        aspect-ratio: 5 / 4;
        max-height: 400px;
        max-width: 520px;
    }
}
@media (max-width: 560px) {
    .bhero-visual--triple {
        aspect-ratio: 4 / 3;
        max-height: 280px;
    }
    .bhero-polaroid--animal {
        padding: 6px 6px 20px;
        width: 48%;
    }
    .bhero-polaroid--animal figcaption { font-size: 11px; }
    .bhero-visual--triple .bhero-stamp { width: 50px; height: 50px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .bhero-polaroid--a1,
    .bhero-polaroid--a2,
    .bhero-polaroid--a3,
    .bhero-visual--triple .bhero-stamp {
        animation: none;
        opacity: 1;
    }
    .bhero-polaroid--a1 { transform: rotate(-8deg); }
    .bhero-polaroid--a2 { transform: rotate(6deg); }
    .bhero-polaroid--a3 { transform: rotate(-3deg); }
}

/* Responsive */
@media (max-width: 960px) {
    .bhero-grid {
        grid-template-columns: 1fr;
        gap: 40px;
    }
    .bhero-visual {
        aspect-ratio: 5 / 4;
        max-height: 420px;
        max-width: 520px;
        margin: 0 auto;
        width: 100%;
        order: -1;
    }
    .bhero-title { font-size: clamp(40px, 9vw, 72px); }
}

@media (max-width: 560px) {
    .bhero {
        padding: 16px 18px 36px;
    }
    .bhero-top {
        padding: 10px 0 16px;
        margin-bottom: 22px;
        font-size: 9px;
        letter-spacing: 2px;
        gap: 8px;
    }
    .bhero-visual {
        aspect-ratio: 5 / 3.6;
        max-height: 300px;
    }
    .bhero-polaroid--1 { width: 65%; padding: 7px 7px 22px; }
    .bhero-polaroid--2 { width: 55%; padding: 7px 7px 22px; }
    .bhero-polaroid figcaption { font-size: 10px; bottom: 5px; }
    .bhero-stamp { width: 54px; height: 54px; top: 40%; right: 30%; }
    .bhero-title { font-size: clamp(32px, 11vw, 52px); margin-bottom: 14px; }
    .bhero-eyebrow { font-size: 9.5px; letter-spacing: 2.5px; margin-bottom: 12px; }
    .bhero-lede { font-size: 13.5px; line-height: 1.55; margin-bottom: 22px; }
    .bhero-actions { gap: 8px; margin-bottom: 20px; }
    .bhero-actions .bch-btn {
        width: 100%;
        justify-content: center;
        font-size: 11px;
        padding: 12px 18px;
        letter-spacing: 1.5px;
    }
    .bhero-meta { gap: 10px; padding-top: 14px; flex-direction: column; }
    .bhero-meta li { font-size: 11px; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .bhero-eyebrow, .bhero-title, .bhero-lede, .bhero-actions,
    .bhero-meta, .bhero-polaroid--1, .bhero-polaroid--2, .bhero-stamp {
        animation: none;
        opacity: 1;
    }
    .bhero-polaroid--1 { transform: rotate(-4deg); }
    .bhero-polaroid--2 { transform: rotate(5deg); }
    .bhero-stamp { animation: none; }
}

/* ========================================================
   OLD HERO (kept for fallback / other pages if needed)
   1) HERO — compact cinematic, not full-viewport
   ======================================================== */
.bch-hero {
    position: relative;
    min-height: 440px;
    height: 62vh;
    max-height: 580px;
    overflow: hidden;
    isolation: isolate;
    color: var(--bch-cream);
}

.bch-hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.05);
    will-change: transform;
    animation: bch-kenburns 14s ease-out forwards;
}
@keyframes bch-kenburns {
    0%   { transform: scale(1.05) translate3d(0,0,0); }
    100% { transform: scale(1.16) translate3d(-2%, -1%, 0); }
}

.bch-hero-overlay {
    position: absolute;
    inset: 0;
    background:
        linear-gradient(125deg, rgba(11,38,32,.88) 0%, rgba(11,38,32,.55) 45%, rgba(11,38,32,.15) 100%),
        linear-gradient(180deg, rgba(15,15,15,.25) 0%, transparent 30%, transparent 60%, rgba(15,15,15,.6) 100%);
    pointer-events: none;
    z-index: 1;
}

.bch-hero-grain {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='200' height='200'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 0 .35 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");
    opacity: .12;
    mix-blend-mode: overlay;
    z-index: 2;
    pointer-events: none;
}

.bch-hero::before,
.bch-hero::after {
    content: "";
    position: absolute;
    pointer-events: none;
    z-index: 3;
}
.bch-hero::before {
    top: 28px; bottom: 28px; left: 28px;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(230,199,118,.45) 30%, rgba(230,199,118,.45) 70%, transparent);
}
.bch-hero::after {
    top: 28px; bottom: 28px; right: 28px;
    width: 1px;
    background: linear-gradient(180deg, transparent, rgba(230,199,118,.22) 30%, rgba(230,199,118,.22) 70%, transparent);
}

.bch-monogram {
    position: absolute;
    top: clamp(20px, 3vw, 40px);
    right: clamp(20px, 3vw, 50px);
    z-index: 10;
    color: var(--bch-gold-bright);
    opacity: .88;
    width: clamp(58px, 6vw, 80px);
    height: clamp(58px, 6vw, 80px);
    animation: bch-spin 45s linear infinite;
}
.bch-monogram svg {
    width: 100%;
    height: 100%;
}
@keyframes bch-spin {
    to { transform: rotate(360deg); }
}

.bch-hero-inner {
    position: absolute;
    z-index: 10;
    bottom: clamp(46px, 7vh, 80px);
    left: clamp(24px, 5vw, 72px);
    right: clamp(24px, 5vw, 72px);
    max-width: 720px;
}

.bch-hero-title {
    font-family: var(--bch-font-serif);
    font-weight: 400;
    font-size: clamp(44px, 6.8vw, 92px);
    line-height: .95;
    letter-spacing: -.025em;
    margin: 0 0 18px;
    color: var(--bch-cream);
    opacity: 0;
    animation: bch-fade-up 1s cubic-bezier(.2,.8,.2,1) .3s forwards;
}
.bch-hero-title em {
    font-style: italic;
    font-weight: 700;
    display: inline-block;
    background: linear-gradient(180deg, var(--bch-gold-bright) 0%, var(--bch-gold) 60%, var(--bch-gold-deep) 100%);
    -webkit-background-clip: text;
            background-clip: text;
    -webkit-text-fill-color: transparent;
}

.bch-hero-lede {
    font-family: var(--bch-font-sans);
    font-size: clamp(14px, 1vw, 17px);
    line-height: 1.6;
    color: rgba(245,242,236,.88);
    max-width: 520px;
    margin: 0 0 22px;
    opacity: 0;
    animation: bch-fade-up 1s cubic-bezier(.2,.8,.2,1) .5s forwards;
}

.bch-hero-meta {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 10px 20px;
    background: rgba(11,38,32,.4);
    border: 1px solid rgba(230,199,118,.25);
    border-radius: 999px;
    backdrop-filter: blur(6px);
    font-size: 11.5px;
    letter-spacing: .3px;
    color: rgba(245,242,236,.9);
    opacity: 0;
    animation: bch-fade-up 1s cubic-bezier(.2,.8,.2,1) .7s forwards;
}
.bch-hero-metaitem {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}
.bch-hero-metaitem svg { color: var(--bch-gold-bright); }
.bch-hero-metasep { color: var(--bch-gold); opacity: .55; }

.bch-scroll {
    position: absolute;
    bottom: 18px;
    left: 50%;
    transform: translateX(-50%);
    z-index: 10;
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    gap: 8px;
    text-decoration: none;
    color: rgba(245,242,236,.75);
    font-size: 9.5px;
    letter-spacing: 2.5px;
    text-transform: uppercase;
    font-weight: 600;
    transition: color .3s ease;
}
.bch-scroll:hover { color: var(--bch-gold-bright); }
.bch-scroll-line {
    width: 1px;
    height: 28px;
    background: rgba(245,242,236,.3);
    position: relative;
    overflow: hidden;
}
.bch-scroll-line::after {
    content: "";
    position: absolute;
    top: -100%;
    left: 0;
    width: 100%;
    height: 100%;
    background: var(--bch-gold-bright);
    animation: bch-scroll-pulse 2.2s cubic-bezier(.45,.1,.3,1) infinite;
}
@keyframes bch-scroll-pulse {
    0%   { top: -100%; }
    100% { top: 100%; }
}

@keyframes bch-fade-up {
    from { opacity: 0; transform: translateY(30px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ========================================================
   2) INTRODUCTION
   ======================================================== */
.bch-intro {
    padding: clamp(80px, 12vh, 140px) 24px clamp(60px, 10vh, 120px);
    background: var(--bch-cream);
    position: relative;
}
.bch-intro::before {
    content: "";
    position: absolute;
    top: 0; left: 50%;
    transform: translateX(-50%);
    width: 1px;
    height: 50px;
    background: linear-gradient(180deg, transparent, var(--bch-gold));
}

.bch-intro-grid {
    max-width: 1240px;
    margin: 0 auto;
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr);
    gap: clamp(40px, 6vw, 90px);
    align-items: center;
}

.bch-intro-figure {
    margin: 0;
    position: relative;
}
.bch-intro-figure img {
    width: 100%;
    aspect-ratio: 3 / 4;
    object-fit: cover;
    border-radius: 2px;
    box-shadow:
        0 30px 60px -20px rgba(15,15,15,.3),
        0 0 0 1px rgba(197,171,114,.15);
}
.bch-intro-figure::before {
    content: "";
    position: absolute;
    top: -14px; left: -14px;
    right: 14px; bottom: 14px;
    border: 1px solid var(--bch-gold);
    opacity: .45;
    pointer-events: none;
    z-index: -1;
}
.bch-intro-caption {
    position: absolute;
    bottom: -28px;
    right: -20px;
    background: var(--bch-forest-deep);
    color: var(--bch-cream);
    padding: 14px 20px;
    display: flex;
    align-items: center;
    gap: 12px;
    font-size: 11px;
    letter-spacing: 2px;
    text-transform: uppercase;
    box-shadow: 0 20px 50px -10px rgba(11,38,32,.5);
    max-width: calc(100% - 40px);
}
.bch-intro-caption-num {
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-size: 22px;
    color: var(--bch-gold-bright);
    letter-spacing: 0;
}

.bch-dropcap {
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-weight: 900;
    font-size: 74px;
    line-height: .75;
    color: var(--bch-gold-deep);
    float: left;
    margin: 8px 12px -4px 0;
}

.bch-intro-lead {
    font-size: 17px;
    line-height: 1.7;
    color: var(--bch-ink);
    margin: 0 0 18px;
    font-weight: 400;
}
.bch-intro-body {
    font-size: 15px;
    line-height: 1.75;
    color: var(--bch-ink-soft);
    margin: 0 0 28px;
}

.bch-divider {
    display: flex;
    align-items: center;
    gap: 18px;
    margin: 36px 0 24px;
}
.bch-divider-line {
    flex: 1;
    height: 1px;
    background: linear-gradient(90deg, transparent, var(--bch-gold), transparent);
}
.bch-divider-mark {
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-weight: 700;
    font-size: 16px;
    color: var(--bch-gold-deep);
    letter-spacing: 2px;
}

.bch-intro-signature {
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-size: 19px;
    line-height: 1.5;
    color: var(--bch-gold-deep);
    margin: 0;
    padding-left: 24px;
    border-left: 2px solid var(--bch-gold);
}

/* ========================================================
   3) NOS VIANDES — Meats grid
   ======================================================== */
.bch-meats {
    padding: 0 0 clamp(80px, 12vh, 140px);
    background: var(--bch-cream-deep);
}

.bch-meats-grid {
    list-style: none;
    padding: 0;
    margin: 0 auto;
    max-width: 1400px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(16px, 1.6vw, 24px);
    padding-inline: clamp(20px, 3vw, 40px);
}

.bch-meat-card {
    list-style: none;
}
.bch-meat-link {
    display: block;
    text-decoration: none;
    color: inherit;
    height: 100%;
}
.bch-meat-figure {
    position: relative;
    margin: 0;
    overflow: hidden;
    aspect-ratio: 3 / 4;
    background: var(--bch-ink);
    border-radius: 2px;
    isolation: isolate;
}
.bch-meat-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s ease;
}
.bch-meat-figure::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(180deg, rgba(15,15,15,.1) 0%, rgba(15,15,15,.3) 40%, rgba(15,15,15,.85) 100%);
    transition: opacity .5s ease;
    z-index: 1;
}

.bch-meat-caption {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    flex-direction: column;
    justify-content: flex-end;
    padding: 22px 20px;
    color: var(--bch-cream);
}
.bch-meat-num {
    position: absolute;
    top: 18px;
    left: 20px;
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-weight: 700;
    font-size: 26px;
    color: var(--bch-gold-bright);
    letter-spacing: 2px;
}
.bch-meat-name {
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-weight: 700;
    font-size: clamp(26px, 2.4vw, 34px);
    line-height: 1;
    margin-bottom: 4px;
    color: var(--bch-cream);
}
.bch-meat-desc {
    font-size: 12px;
    letter-spacing: .3px;
    color: rgba(245,242,236,.8);
    max-width: 90%;
    opacity: 0;
    max-height: 0;
    transform: translateY(10px);
    transition: all .5s cubic-bezier(.2,.8,.2,1);
}
.bch-meat-cta {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-top: 12px;
    font-family: var(--bch-font-sans);
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 2px;
    text-transform: uppercase;
    color: var(--bch-gold-bright);
    opacity: 0;
    max-height: 0;
    transform: translateY(10px);
    transition: all .5s cubic-bezier(.2,.8,.2,1) .1s;
}
.bch-meat-link:hover .bch-meat-figure img {
    transform: scale(1.08);
    filter: brightness(.92);
}
.bch-meat-link:hover .bch-meat-desc,
.bch-meat-link:hover .bch-meat-cta {
    opacity: 1;
    max-height: 60px;
    transform: translateY(0);
}
.bch-meat-link:hover .bch-meat-figure::after {
    background: linear-gradient(180deg, rgba(11,38,32,.15) 0%, rgba(11,38,32,.5) 40%, rgba(11,38,32,.92) 100%);
}

/* ========================================================
   4) SAVOIR-FAIRE — Dark forest
   ======================================================== */
.bch-craft {
    position: relative;
    overflow: hidden;
    padding: clamp(80px, 12vh, 140px) 0;
    isolation: isolate;
}
.bch-craft-bg {
    position: absolute;
    inset: 0;
    background:
        radial-gradient(ellipse at 30% 20%, rgba(230,199,118,.1) 0%, transparent 45%),
        linear-gradient(140deg, var(--bch-forest-deep) 0%, var(--bch-forest) 50%, #123729 100%);
    z-index: -2;
}
.bch-craft-grain {
    position: absolute;
    inset: 0;
    background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'><g fill='none' stroke='%23c5ab72' stroke-width='.4' opacity='.3'><path d='M40 10L50 25L65 30L50 35L40 50L30 35L15 30L30 25Z'/></g></svg>");
    background-size: 80px 80px;
    opacity: .15;
    mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%);
    -webkit-mask-image: radial-gradient(ellipse at center, black 30%, transparent 80%);
    z-index: -1;
}

.bch-craft-grid {
    list-style: none;
    padding: 0 clamp(20px, 3vw, 40px);
    margin: 0 auto;
    max-width: 1280px;
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: clamp(30px, 3vw, 50px);
}
.bch-craft-item {
    position: relative;
    color: var(--bch-cream);
    text-align: center;
    padding: 30px 20px 20px;
    border: 1px solid rgba(230,199,118,.18);
    border-radius: 3px;
    background: rgba(6,23,18,.35);
    backdrop-filter: blur(2px);
    transition: transform .4s cubic-bezier(.2,.8,.2,1), border-color .4s ease, background .4s ease;
}
.bch-craft-item:hover {
    transform: translateY(-6px);
    border-color: rgba(230,199,118,.45);
    background: rgba(6,23,18,.6);
}
.bch-craft-num {
    position: absolute;
    top: -18px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--bch-forest-deep);
    color: var(--bch-gold-bright);
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-weight: 700;
    font-size: 14px;
    padding: 4px 12px;
    border: 1px solid rgba(230,199,118,.4);
    border-radius: 999px;
    letter-spacing: 2px;
}
.bch-craft-icon {
    color: var(--bch-gold-bright);
    margin: 8px auto 18px;
    display: block;
    opacity: .9;
}
.bch-craft-title {
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-weight: 600;
    font-size: 20px;
    margin: 0 0 10px;
    color: var(--bch-gold-bright);
}
.bch-craft-text {
    font-size: 13px;
    line-height: 1.6;
    color: rgba(245,242,236,.75);
    margin: 0;
}

/* ========================================================
   5) GALERIE — Asymmetric grid
   ======================================================== */
.bch-gallery {
    padding: 0 0 clamp(80px, 12vh, 140px);
    background: var(--bch-cream);
}
.bch-gallery-grid {
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 clamp(20px, 3vw, 40px);
    display: grid;
    grid-template-columns: repeat(6, 1fr);
    grid-template-rows: repeat(2, clamp(200px, 26vw, 320px));
    gap: clamp(10px, 1.2vw, 16px);
}
.bch-gal {
    position: relative;
    margin: 0;
    overflow: hidden;
    border-radius: 2px;
    background: var(--bch-ink);
}
.bch-gal img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition: transform .8s cubic-bezier(.2,.8,.2,1), filter .5s ease;
}
.bch-gal figcaption {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    padding: 14px 18px;
    background: linear-gradient(180deg, transparent, rgba(15,15,15,.85));
    color: var(--bch-cream);
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-size: 16px;
    opacity: 0;
    transform: translateY(8px);
    transition: opacity .5s ease, transform .5s cubic-bezier(.2,.8,.2,1);
}
.bch-gal:hover img { transform: scale(1.06); filter: brightness(.88); }
.bch-gal:hover figcaption { opacity: 1; transform: translateY(0); }

/* Asymmetric composition: 6 items, 2 rows of 6 cols */
.bch-gal--1 { grid-column: span 3; grid-row: span 2; }
.bch-gal--2 { grid-column: span 3; grid-row: span 1; }
.bch-gal--3 { grid-column: span 1; grid-row: span 1; }
.bch-gal--4 { grid-column: span 2; grid-row: span 1; }
.bch-gal--5 { grid-column: span 2; grid-row: span 1; }
.bch-gal--6 { grid-column: span 1; grid-row: span 1; }

/* ========================================================
   6) VISITE — Contact block
   ======================================================== */
.bch-visit {
    background: var(--bch-cream-deep);
    padding: clamp(80px, 12vh, 140px) 0;
}
.bch-visit-grid {
    max-width: 1240px;
    margin: 0 auto;
    padding: 0 clamp(20px, 3vw, 40px);
    display: grid;
    grid-template-columns: 1.1fr 1fr;
    gap: clamp(40px, 6vw, 90px);
    align-items: center;
}
.bch-visit-figure {
    margin: 0;
    position: relative;
    overflow: hidden;
    aspect-ratio: 4 / 5;
}
.bch-visit-figure img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    border-radius: 2px;
}
.bch-visit-badge {
    position: absolute;
    top: 24px;
    left: 24px;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 8px 16px;
    background: var(--bch-forest-deep);
    color: var(--bch-gold-bright);
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
}
.bch-visit-badge-line {
    width: 18px;
    height: 1px;
    background: currentColor;
}
.bch-visit-details {
    margin: 24px 0 34px;
    padding: 0;
}
.bch-visit-row {
    display: grid;
    grid-template-columns: 120px 1fr;
    gap: 24px;
    padding: 18px 0;
    border-top: 1px solid rgba(15,15,15,.1);
}
.bch-visit-row:last-child { border-bottom: 1px solid rgba(15,15,15,.1); }
.bch-visit-label {
    font-size: 10.5px;
    font-weight: 700;
    letter-spacing: 3px;
    text-transform: uppercase;
    color: var(--bch-gold-deep);
    margin: 4px 0 0;
}
.bch-visit-value {
    font-size: 15px;
    line-height: 1.6;
    color: var(--bch-ink);
    margin: 0;
}
.bch-visit-value strong { font-weight: 700; color: var(--bch-forest); }
.bch-visit-muted { color: var(--bch-muted); font-size: 13px; }

/* Horaires par jour — liste propre */
.bch-hours-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr;
    gap: 0;
}
.bch-hours-list li {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    padding: 7px 0;
    border-bottom: 1px dashed rgba(11, 38, 32, 0.10);
    font-size: 14px;
    gap: 16px;
}
.bch-hours-list li:last-child { border-bottom: 0; }
.bch-hours-day {
    font-weight: 600;
    color: var(--bch-forest);
    letter-spacing: 0.01em;
    flex: 0 0 auto;
}
.bch-hours-time {
    color: var(--bch-ink);
    text-align: right;
    font-variant-numeric: tabular-nums;
    flex: 1 1 auto;
}
.bch-hours-time.bch-hours-closed {
    color: var(--bch-muted);
    font-style: italic;
    text-transform: uppercase;
    font-size: 12px;
    letter-spacing: 0.12em;
}
.bch-visit-tel {
    font-family: var(--bch-font-serif);
    font-style: italic;
    font-size: 24px;
    font-weight: 700;
    color: var(--bch-forest);
    text-decoration: none;
    letter-spacing: -.01em;
    transition: color .3s ease;
}
.bch-visit-tel:hover { color: var(--bch-gold-deep); }

.bch-visit-ctas {
    display: flex;
    gap: 12px;
    flex-wrap: wrap;
}

/* ========================================================
   7) FINAL CTA
   ======================================================== */
.bch-final {
    position: relative;
    overflow: hidden;
    isolation: isolate;
    padding: clamp(90px, 14vh, 160px) 24px;
    text-align: center;
    color: var(--bch-cream);
}
.bch-final-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    transform: scale(1.05);
    z-index: -2;
}
.bch-final-overlay {
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(6,23,18,.92) 0%, rgba(11,38,32,.78) 50%, rgba(15,15,15,.85) 100%);
    z-index: -1;
}
.bch-final-inner {
    max-width: 860px;
    margin: 0 auto;
}
.bch-final-title {
    font-family: var(--bch-font-serif);
    font-weight: 400;
    font-size: clamp(34px, 5vw, 68px);
    line-height: 1.05;
    letter-spacing: -.015em;
    color: var(--bch-cream);
    margin: 0 0 36px;
}
.bch-final-title em {
    font-style: italic;
    font-weight: 700;
    color: var(--bch-gold-bright);
}

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

/* Tablet ≤ 1024px */
@media (max-width: 1024px) {
    .bch-hero { min-height: 400px; height: 56vh; max-height: 520px; }
    .bch-hero-inner { bottom: clamp(36px, 6vh, 60px); }
    .bch-hero-title { font-size: clamp(40px, 7.5vw, 72px); }

    .bch-intro-grid { grid-template-columns: 1fr; gap: 50px; }
    .bch-intro-figure { max-width: 520px; margin: 0 auto; }
    .bch-visit-grid { grid-template-columns: 1fr; gap: 40px; }
    .bch-meats-grid { grid-template-columns: repeat(2, 1fr); }
    .bch-craft-grid { grid-template-columns: repeat(2, 1fr); gap: 30px; }
    .bch-gallery-grid {
        grid-template-columns: repeat(4, 1fr);
        grid-template-rows: repeat(3, clamp(180px, 30vw, 260px));
    }
    .bch-gal--1 { grid-column: span 2; grid-row: span 2; }
    .bch-gal--2 { grid-column: span 2; }
    .bch-gal--3 { grid-column: span 1; }
    .bch-gal--4 { grid-column: span 2; }
    .bch-gal--5 { grid-column: span 2; }
    .bch-gal--6 { grid-column: span 1; }
}

/* Mobile ≤ 720px */
@media (max-width: 720px) {
    .bch-hero {
        min-height: 340px;
        height: 52vh;
        max-height: 460px;
    }
    .bch-hero::before, .bch-hero::after { display: none; }
    .bch-hero-inner {
        left: 18px;
        right: 18px;
        bottom: 28px;
        max-width: 100%;
    }
    .bch-hero-title {
        font-size: clamp(34px, 10vw, 56px);
        margin-bottom: 12px;
        line-height: .98;
    }
    .bch-hero-lede {
        font-size: 13px;
        line-height: 1.5;
        margin-bottom: 16px;
    }
    .bch-hero-lede br { display: none; }
    .bch-hero-meta {
        flex-wrap: wrap;
        padding: 8px 14px;
        font-size: 10.5px;
        gap: 8px;
    }
    .bch-hero-metasep { display: none; }
    .bch-monogram {
        width: 50px;
        height: 50px;
        top: 14px;
        right: 14px;
    }
    .bch-eyebrow--hero { font-size: 9.5px; letter-spacing: 2.5px; gap: 8px; margin-bottom: 12px; }
    .bch-eyebrow-dash { width: 22px; }
    .bch-scroll { display: none; } /* hidden on mobile, user knows to scroll */

    .bch-section-header { padding: 56px 18px 20px; }
    .bch-section-sub { font-size: 13.5px; }

    .bch-intro { padding: 50px 18px 60px; }
    .bch-intro-grid { gap: 36px; }
    .bch-intro-figure img { aspect-ratio: 4 / 5; }
    .bch-intro-caption { position: static; margin: 14px 0 0; right: 0; font-size: 10.5px; }
    .bch-intro-caption-num { font-size: 19px; }
    .bch-intro-figure::before { display: none; }

    .bch-dropcap { font-size: 52px; margin: 2px 8px -2px 0; line-height: .8; }
    .bch-intro-lead { font-size: 14.5px; line-height: 1.7; }
    .bch-intro-body { font-size: 13.5px; line-height: 1.7; margin-bottom: 22px; }
    .bch-intro-signature { font-size: 15px; padding-left: 14px; line-height: 1.5; }
    .bch-divider { margin: 28px 0 18px; gap: 12px; }
    .bch-divider-mark { font-size: 14px; }

    .bch-h2 { font-size: clamp(28px, 7vw, 42px); }

    .bch-meats-grid { grid-template-columns: 1fr; gap: 12px; padding-inline: 16px; }
    .bch-meat-figure { aspect-ratio: 4 / 3; }
    .bch-meat-num { font-size: 18px; top: 10px; left: 12px; }
    .bch-meat-name { font-size: 22px; }
    .bch-meat-caption { padding: 18px 16px; }
    /* Show description + CTA by default on mobile (no hover on touch) */
    .bch-meat-desc, .bch-meat-cta { opacity: 1; max-height: none; transform: none; }
    .bch-meat-desc { font-size: 11.5px; }
    .bch-meat-cta { font-size: 10px; letter-spacing: 1.5px; margin-top: 10px; }

    .bch-craft { padding: 50px 0 60px; }
    .bch-craft-grid {
        grid-template-columns: 1fr;
        padding: 0 16px;
        gap: 16px;
    }
    .bch-craft-item { padding: 22px 18px 18px; }
    .bch-craft-num { font-size: 12px; padding: 3px 10px; }
    .bch-craft-icon { width: 32px; height: 32px; margin-bottom: 12px; }
    .bch-craft-title { font-size: 18px; margin-bottom: 8px; }
    .bch-craft-text { font-size: 12.5px; line-height: 1.55; }

    .bch-gallery { padding-bottom: 50px; }
    .bch-gallery-grid {
        grid-template-columns: repeat(2, 1fr);
        grid-template-rows: auto;
        gap: 6px;
        padding: 0 12px;
    }
    .bch-gal { aspect-ratio: 1 / 1; }
    .bch-gal--1 { grid-column: span 2; grid-row: auto; aspect-ratio: 4 / 3; }
    .bch-gal--2, .bch-gal--3, .bch-gal--4, .bch-gal--5, .bch-gal--6 {
        grid-column: span 1;
        grid-row: auto;
    }
    .bch-gal figcaption {
        opacity: 1;
        transform: none;
        padding: 10px 14px;
        font-size: 13px;
    }

    .bch-visit { padding: 50px 0 60px; }
    .bch-visit-grid { gap: 30px; padding: 0 18px; }
    .bch-visit-figure { aspect-ratio: 4 / 3; }
    .bch-visit-badge { font-size: 9.5px; padding: 6px 12px; gap: 8px; top: 16px; left: 16px; }
    .bch-visit-badge-line { width: 12px; }
    .bch-visit-details { margin: 20px 0 24px; }
    .bch-visit-row { grid-template-columns: 1fr; gap: 4px; padding: 14px 0; }
    .bch-visit-label { margin-bottom: 2px; font-size: 9.5px; letter-spacing: 2.5px; }
    .bch-visit-value { font-size: 14px; }
    .bch-visit-muted { font-size: 12px; }
    .bch-visit-tel { font-size: 22px; }
    .bch-visit-ctas { flex-direction: column; gap: 10px; }
    .bch-btn { width: 100%; justify-content: center; }

    .bch-final { padding: 60px 20px; }
    .bch-final-title { font-size: clamp(26px, 7.5vw, 40px); margin-bottom: 28px; }
    .bch-final-title br { display: none; }
    .bch-btn--big { padding: 15px 26px; font-size: 12px; letter-spacing: 2px; }
}

/* Very small mobile ≤ 380px */
@media (max-width: 380px) {
    .bch-hero { min-height: 300px; height: 52vh; }
    .bch-hero-inner { left: 14px; right: 14px; bottom: 22px; }
    .bch-hero-title { font-size: clamp(28px, 10vw, 40px); }
    .bch-hero-lede { font-size: 12px; }
    .bch-hero-meta {
        font-size: 9.5px;
        padding: 7px 12px;
        gap: 6px;
    }
    .bch-monogram { width: 42px; height: 42px; top: 10px; right: 10px; }
    .bch-btn { font-size: 11px; padding: 12px 18px; letter-spacing: 1.5px; }
    .bch-btn--big { font-size: 11px; padding: 14px 22px; }
    .bch-section-header { padding: 44px 14px 18px; }
    .bch-intro { padding: 40px 14px 50px; }
    .bch-dropcap { font-size: 44px; }
    .bch-h2 { font-size: clamp(24px, 7vw, 36px); }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
    .bch-hero-bg,
    .bch-monogram,
    .bch-scroll-line::after,
    .bch-meat-link:hover .bch-meat-figure img,
    .bch-gal:hover img {
        animation: none !important;
        transform: none !important;
    }
    .bch-hero-title,
    .bch-hero-lede,
    .bch-hero-meta {
        opacity: 1 !important;
        transform: none !important;
        animation: none !important;
    }
}
