/* ==========================================================================
   Chrome: top strap, header, navigation, mobile sheet, dock, footer.
   ========================================================================== */

/* 1. TOP STRAP ------------------------------------------------------------- */
.bhf-strap { display: none; background: var(--bhf-ink); color: rgba(238, 243, 239, .86); font-size: .8rem; font-weight: 600; }
.bhf-strap__inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 38px; }
.bhf-strap__text { margin: 0; }
.bhf-strap__contact { display: flex; gap: 1.4rem; list-style: none; }
.bhf-strap__contact a { color: inherit; display: inline-flex; align-items: center; gap: .4rem; transition: color .2s; }
.bhf-strap__contact a:hover { color: var(--bhf-gold-l); }
.bhf-strap__contact .ti { color: var(--bhf-gold-l); font-size: 1.05rem; }
@media (min-width: 900px) { .bhf-strap { display: block; } }

/* 2. HEADER ---------------------------------------------------------------- */
.bhf-header {
    position: sticky; top: var(--bhf-adminbar); z-index: 60;
    background: rgba(247, 243, 234, .96);
    backdrop-filter: saturate(1.4) blur(10px);
    -webkit-backdrop-filter: saturate(1.4) blur(10px);
    border-bottom: 1px solid transparent;
    transition: border-color .25s, box-shadow .25s;
}
.bhf-header.is-scrolled { border-bottom-color: var(--bhf-line); box-shadow: 0 8px 24px -18px rgba(11, 42, 37, .45); }
.bhf-header__bar { display: flex; align-items: center; justify-content: space-between; gap: 1.25rem; min-height: var(--bhf-header-h); }

.bhf-brand { display: inline-flex; align-items: center; flex: none; }
.bhf-brand__logo { display: block; height: var(--bhf-logo-h); width: auto; }
/* Footer sits on dark pine: the logo's green wordmark needs a light plate to stay readable. */
.bhf-brand--plate { padding: .6rem .8rem; background: var(--bhf-cream); border-radius: var(--bhf-r); }
.bhf-brand--plate .bhf-brand__logo { height: 76px; }

.bhf-header__actions { display: flex; align-items: center; gap: .6rem; }
.bhf-header__actions .bhf-btn { display: none; }
.bhf-menu-btn {
    display: inline-flex; align-items: center; gap: .6rem; min-height: 44px; padding: 0 1rem;
    border-radius: 999px; border: 1.5px solid var(--bhf-line-2); font-size: .88rem; font-weight: 800;
    transition: background .2s, color .2s, border-color .2s;
}
.bhf-menu-btn:hover { background: var(--bhf-ink); color: #fff; border-color: var(--bhf-ink); }
.bhf-menu-btn__bars { display: grid; gap: 5px; width: 18px; }
.bhf-menu-btn__bars span { display: block; height: 2px; background: currentColor; border-radius: 2px; }
.bhf-menu-btn__bars span:last-child { width: 68%; }
@media (min-width: 640px) { .bhf-header__actions .bhf-btn { display: inline-flex; } }

/* 3. NAVIGATION (desktop) ---------------------------------------------------- */
.bhf-nav--desktop { display: none; }
@media (min-width: 1280px) {
    .bhf-nav--desktop { display: block; flex: 1; }
    .bhf-menu-btn { display: none; }
    .bhf-nav__list--desktop { display: flex; flex-wrap: nowrap; align-items: center; justify-content: center; gap: .15rem; list-style: none; }
    .bhf-nav--desktop .bhf-nav__item { position: relative; }
    .bhf-nav--desktop .bhf-nav__link, .bhf-nav--desktop .bhf-nav__toggle {
        display: inline-flex; align-items: center; gap: .35rem; min-height: 44px; padding: 0 .9rem;
        border-radius: 999px; font-size: .92rem; font-weight: 700; color: var(--bhf-ink);
        white-space: nowrap; max-width: 14rem; overflow: hidden; text-overflow: ellipsis;
        transition: background .2s, color .2s;
    }
    .bhf-nav--desktop { min-width: 0; }
    .bhf-nav--desktop .bhf-nav__toggle span { overflow: hidden; text-overflow: ellipsis; }
    .bhf-nav--desktop .bhf-nav__sublink { white-space: normal; }
    .bhf-nav--desktop .bhf-nav__link:hover, .bhf-nav--desktop .bhf-nav__toggle:hover,
    .bhf-nav--desktop .is-open > .bhf-nav__toggle { background: var(--bhf-emerald-soft); color: var(--bhf-emerald-d); }
    .bhf-nav--desktop .is-current > .bhf-nav__toggle, .bhf-nav--desktop .bhf-nav__link[aria-current="page"] { color: var(--bhf-emerald); box-shadow: inset 0 -2px 0 var(--bhf-gold); border-radius: 0; }
    .bhf-nav__chev { transition: transform .2s var(--bhf-ease); }
    .bhf-nav--desktop .is-open .bhf-nav__chev { transform: rotate(180deg); }

    .bhf-nav--desktop .bhf-nav__panel {
        position: absolute; left: 50%; top: calc(100% + 6px); z-index: 70; min-width: 300px;
        padding: .5rem; background: #fff; border: 1px solid var(--bhf-line); border-radius: var(--bhf-r);
        box-shadow: var(--bhf-shadow-m);
        opacity: 0; visibility: hidden; transform: translate(-50%, 8px);
        transition: opacity .18s var(--bhf-ease), transform .18s var(--bhf-ease), visibility .18s;
    }
    .bhf-nav--desktop .is-open > .bhf-nav__panel { opacity: 1; visibility: visible; transform: translate(-50%, 0); }
    .bhf-nav--desktop .bhf-nav__sub { list-style: none; }
    .bhf-nav--desktop .bhf-nav__sublink { display: block; padding: .6rem .85rem; border-radius: var(--bhf-r-sm); font-size: .92rem; font-weight: 600; color: var(--bhf-text); transition: background .15s, color .15s; }
    .bhf-nav--desktop .bhf-nav__sublink:hover, .bhf-nav--desktop .bhf-nav__sublink.is-current { background: var(--bhf-emerald-soft); color: var(--bhf-emerald-d); }
}

@media (min-width: 1280px) and (max-width: 1399px) {
    .bhf-nav--desktop .bhf-nav__link, .bhf-nav--desktop .bhf-nav__toggle { padding: 0 .7rem; font-size: .9rem; }
}

/* 4. MOBILE SHEET -------------------------------------------------------------- */
.bhf-sheet {
    position: fixed; inset: 0; z-index: 200; display: flex; flex-direction: column;
    background: var(--bhf-cream); overflow-y: auto; overscroll-behavior: contain;
    transform: translateX(100%); visibility: hidden; transition: transform .3s var(--bhf-ease), visibility .3s;
}
.bhf-sheet[hidden] { display: none; }
.bhf-sheet.is-open { transform: none; visibility: visible; }
.bhf-sheet__head { display: flex; align-items: center; justify-content: space-between; padding: .75rem var(--bhf-gutter); min-height: var(--bhf-header-h); border-bottom: 1px solid var(--bhf-line); }
.bhf-sheet__close { width: 44px; height: 44px; border-radius: 50%; display: grid; place-items: center; border: 1.5px solid var(--bhf-line-2); }
.bhf-nav--mobile { flex: 1; padding: 1rem var(--bhf-gutter); }
.bhf-nav__list--mobile { list-style: none; }
.bhf-nav--mobile .bhf-nav__item { border-bottom: 1px solid var(--bhf-line); }
.bhf-nav--mobile .bhf-nav__link, .bhf-nav--mobile .bhf-nav__toggle {
    display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 56px;
    font-family: var(--bhf-serif); font-size: 1.4rem; font-weight: 500; letter-spacing: -.01em; text-align: left; color: var(--bhf-ink);
}
.bhf-nav--mobile .bhf-nav__chev { width: 16px; height: 16px; transition: transform .2s var(--bhf-ease); }
.bhf-nav--mobile .is-open > .bhf-nav__toggle .bhf-nav__chev { transform: rotate(180deg); }
.bhf-nav--mobile .bhf-nav__panel { display: none; padding: 0 0 1rem; }
.bhf-nav--mobile .is-open > .bhf-nav__panel { display: block; }
.bhf-nav--mobile .bhf-nav__sub { list-style: none; display: grid; gap: .1rem; border-left: 2px solid var(--bhf-gold); margin-left: .25rem; }
.bhf-nav--mobile .bhf-nav__sublink { display: block; padding: .65rem 1rem; font-size: 1rem; font-weight: 600; color: var(--bhf-text-soft); }
.bhf-nav--mobile .bhf-nav__sublink:hover, .bhf-nav--mobile .bhf-nav__sublink.is-current { color: var(--bhf-emerald); }
.bhf-sheet__foot { padding: 1rem var(--bhf-gutter) calc(1.5rem + env(safe-area-inset-bottom)); display: grid; gap: 1rem; }
.bhf-sheet__strap { margin: 0; font-size: .85rem; color: var(--bhf-muted); text-align: center; }

/* 5. MOBILE DOCK + FLOATING WHATSAPP -------------------------------------------- */
.bhf-dock {
    position: fixed; inset: auto 0 0 0; z-index: 90; display: grid; grid-template-columns: repeat(4, 1fr);
    padding: .35rem .5rem calc(.35rem + env(safe-area-inset-bottom));
    background: rgba(255, 255, 255, .97); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    border-top: 1px solid var(--bhf-line); box-shadow: 0 -10px 28px -20px rgba(11, 42, 37, .5);
}
.bhf-dock__item { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: .15rem; min-height: 52px; font-size: .68rem; font-weight: 800; color: var(--bhf-text-soft); border-radius: var(--bhf-r-sm); }
.bhf-dock__item .ti { font-size: 1.4rem; color: var(--bhf-emerald); }
.bhf-dock__item:first-child .ti { color: #1f9d55; }
@media (min-width: 900px) { .bhf-dock { display: none; } }
body.bhf { padding-bottom: 62px; }
@media (min-width: 900px) { body.bhf { padding-bottom: 0; } }

.bhf-float-wa {
    position: fixed; right: 1.25rem; bottom: 1.25rem; z-index: 80; display: none; align-items: center; gap: .55rem;
    min-height: 52px; padding: 0 1.3rem 0 1.1rem; border-radius: 999px; background: #1f9d55; color: #fff;
    font-size: .9rem; font-weight: 800; box-shadow: 0 14px 30px -12px rgba(31, 157, 85, .7);
    opacity: 0; transform: translateY(12px); pointer-events: none; transition: opacity .25s, transform .25s, background .2s;
}
.bhf-float-wa .ti { font-size: 1.4rem; }
.bhf-float-wa:hover { background: #18844a; }
.bhf-float-wa.is-visible { opacity: 1; transform: none; pointer-events: auto; }
@media (min-width: 900px) { .bhf-float-wa { display: inline-flex; } }

/* 6. FOOTER ------------------------------------------------------------------- */
.bhf-footer { background: var(--bhf-ink); color: rgba(238, 243, 239, .82); font-size: .95rem; }
.bhf-footer a { color: inherit; transition: color .2s; }
.bhf-footer a:hover { color: var(--bhf-gold-l); }

.bhf-footer__band { background: var(--bhf-emerald); color: #fff; }
.bhf-footer__band-inner { display: grid; gap: 1.5rem; padding-block: clamp(2rem, 5vw, 3rem); align-items: center; }
.bhf-footer__band-title { font-size: clamp(1.5rem, 1.2rem + 1.4vw, 2.2rem); }
.bhf-footer__band-text { margin: .6rem 0 0; max-width: 34rem; color: rgba(255, 255, 255, .85); }
.bhf-footer__band-actions { display: flex; flex-wrap: wrap; gap: .75rem; }
@media (min-width: 900px) { .bhf-footer__band-inner { grid-template-columns: 1fr auto; } }

.bhf-footer__main { display: grid; gap: 2.5rem; padding-block: clamp(2.75rem, 6vw, 4.25rem) 2rem; }
.bhf-footer__tagline { margin: 1rem 0 1.2rem; max-width: 22rem; color: rgba(238, 243, 239, .72); }
.bhf-footer__contact { list-style: none; display: grid; gap: .55rem; }
.bhf-footer__contact a { display: inline-flex; align-items: center; gap: .5rem; font-weight: 700; color: #fff; }
.bhf-footer__contact .ti { color: var(--bhf-gold-l); font-size: 1.2rem; }
.bhf-footer__cols { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2rem 1.5rem; }
.bhf .bhf-footer__col-title { font-family: var(--bhf-sans); font-size: .74rem; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; color: var(--bhf-gold-l); margin-bottom: 1rem; }
.bhf-footer__col ul { list-style: none; display: grid; gap: .55rem; }
.bhf-footer__col a { font-weight: 600; line-height: 1.4; display: inline-block; }
@media (min-width: 900px) {
    .bhf-footer__main { grid-template-columns: minmax(0, 1fr) minmax(0, 2.4fr); gap: 3rem; }
    .bhf-footer__cols { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.bhf-footer__desk { padding-block: 0 2.25rem; }
.bhf-footer__desk-list { list-style: none; display: grid; gap: .5rem 2rem; }
.bhf-footer__desk-list a { font-weight: 600; }
@media (min-width: 720px) { .bhf-footer__desk-list { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .bhf-footer__desk-list { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.bhf-footer__bottom { padding-block: 1.4rem 2rem; border-top: 1px solid var(--bhf-line-inv); font-size: .85rem; color: rgba(238, 243, 239, .6); }
.bhf-footer__bottom p { margin: 0; }
