/* Brimenad corporate: stone-white page, slate ink, deep teal accent.
   Libre Caslon Text (display) + Public Sans (body). Hand-written, no framework. */

:root {
    --page: #f6f4ef;
    --paper: #fcfbf8;
    --band: #ece8e0;
    --line: #dcd6cb;
    --line-2: #c4bcae;
    --ink: #26313a;
    --text: #3a4550;
    --muted: #56606a;
    --teal: #1d5c5a;
    --teal-2: #144543;
    --teal-soft: #dde9e6;
    --focus: rgba(29, 92, 90, .28);
    --bad: #9b2f22;
    --serif: "Libre Caslon Text", Georgia, "Times New Roman", serif;
    --sans: "Public Sans", "Helvetica Neue", Arial, sans-serif;
    --wrap: 1180px;
    --wide: 1380px;
    --gutter: clamp(16px, 4vw, 40px);
    --space: clamp(72px, 9vw, 120px);
}

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

html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }

body.bm-body {
    margin: 0;
    background: var(--page);
    color: var(--text);
    font-family: var(--sans);
    font-size: 17px;
    line-height: 1.65;
    -webkit-font-smoothing: antialiased;
}

body.bm-body img { max-width: 100%; height: auto; display: block; }
body.bm-body a { color: var(--teal); text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.bm-body a:hover { color: var(--teal-2); }
body.bm-body :focus-visible { outline: 2px solid var(--teal); outline-offset: 3px; }
:where(body.bm-body) :where(h1, h2, h3, h4) { color: var(--ink); margin: 0; font-weight: 400; }
:where(body.bm-body) p { margin: 0; }
:where(body.bm-body) :where(ul, ol) { margin: 0; padding: 0; list-style: none; }

.bm-main { overflow-x: clip; }
.bm-wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.bm-wrap--wide { max-width: calc(var(--wide) + var(--gutter) * 2); }
.bm-wrap--read { max-width: calc(760px + var(--gutter) * 2); padding-bottom: var(--space); }

.bm-skip { position: absolute; left: -9999px; top: 8px; z-index: 100; padding: 10px 16px; background: var(--ink); color: #fff !important; }
.bm-skip:focus { left: 16px; }

/* --- Type ------------------------------------------------------------- */
.bm-eyebrow {
    display: flex; align-items: center; gap: 12px;
    margin: 0 0 18px;
    color: var(--teal);
    font-size: 13px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase;
}
.bm-eyebrow::before { content: ""; width: 28px; height: 1px; background: currentColor; }
.bm-h2 { font-family: var(--serif); font-size: clamp(30px, 3.4vw, 44px); line-height: 1.16; letter-spacing: -.005em; }
.bm-text { margin-top: 18px; max-width: 62ch; }
.bm-text--first { margin-top: 26px; font-size: 19px; color: var(--ink); }

.bm-link {
    display: inline-flex; align-items: center; gap: 10px;
    color: var(--ink) !important; font-weight: 600; text-decoration: none;
    border-bottom: 1px solid var(--line-2); padding-bottom: 3px;
}
.bm-link::after { content: "\2192"; color: var(--teal); transition: transform .25s ease; }
.bm-link:hover { border-color: var(--teal); }
.bm-link:hover::after { transform: translateX(4px); }

.bm-btn {
    display: inline-flex; align-items: center; justify-content: center;
    min-height: 46px; padding: 10px 22px;
    background: var(--teal); color: #fff !important;
    border: 1px solid var(--teal); border-radius: 3px;
    font: 600 15px/1.2 var(--sans); letter-spacing: .02em; text-decoration: none; cursor: pointer;
}
.bm-btn:hover { background: var(--teal-2); border-color: var(--teal-2); }
.bm-btn--quiet { background: transparent; color: var(--ink) !important; border-color: var(--line-2); }
.bm-btn--quiet:hover { background: var(--band); border-color: var(--line-2); }

/* --- Top contact bar -------------------------------------------------- */
.bm-topbar { background: var(--band); border-bottom: 1px solid var(--line); font-size: 13.5px; color: var(--muted); }
.bm-topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 8px 24px; min-height: 40px; flex-wrap: wrap; padding-top: 6px; padding-bottom: 6px; }
.bm-topbar__name { display: flex; align-items: center; gap: 12px; color: var(--ink); font-weight: 600; }
.bm-topbar__tag { padding-left: 12px; border-left: 1px solid var(--line-2); color: var(--muted); font-weight: 400; }
.bm-topbar__list { display: flex; align-items: center; flex-wrap: wrap; gap: 4px 24px; }
.bm-topbar__item { display: flex; align-items: center; gap: 8px; }
.bm-topbar__label { font-size: 11.5px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); }
body.bm-body .bm-topbar a { color: var(--ink); text-decoration: none; font-weight: 500; }
body.bm-body .bm-topbar a:hover { color: var(--teal); text-decoration: underline; }
.bm-topbar__langs { gap: 10px; }
body.bm-body .bm-topbar__langs a[aria-current] { color: var(--teal); text-decoration: underline; }

/* --- Masthead: centred logo, nav on its own ruled line --------------- */
.bm-masthead { background: var(--page); position: relative; z-index: 20; }
.bm-masthead__logo-row { position: relative; display: flex; justify-content: center; padding-top: 30px; padding-bottom: 24px; }
.bm-masthead__logo { display: inline-block; line-height: 0; }
.bm-masthead .bm-logo { width: auto; height: 54px; }
.bm-menu-btn { display: none; }

.bm-nav { border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); background: var(--page); }
.bm-nav .bm-wrap { position: relative; }
.bm-nav .bm-wrap::before, .bm-nav .bm-wrap::after { content: ""; position: absolute; top: 50%; width: 5px; height: 5px; background: var(--teal); transform: translateY(-50%) rotate(45deg); }
.bm-nav .bm-wrap::before { left: var(--gutter); }
.bm-nav .bm-wrap::after { right: var(--gutter); }
.bm-nav__list, .bm-nav ul.menu { display: flex; justify-content: center; flex-wrap: wrap; gap: 0 clamp(20px, 3.4vw, 46px); }
.bm-nav li { margin: 0; }
body.bm-body .bm-nav a {
    position: relative; display: block; padding: 15px 0;
    color: var(--ink); text-decoration: none;
    font-size: 13.5px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase;
}
.bm-nav a::after { content: ""; position: absolute; left: 0; right: 0; bottom: -1px; height: 2px; background: var(--teal); transform: scaleX(0); transition: transform .25s ease; }
.bm-nav a:hover::after, .bm-nav .current-menu-item > a::after { transform: scaleX(1); }

/* --- Page head (legal, plain pages) ---------------------------------- */
.bm-pagehead { padding: clamp(48px, 7vw, 84px) 0 clamp(32px, 4vw, 44px); border-bottom: 1px solid var(--line); margin-bottom: clamp(40px, 5vw, 64px); background: var(--band); }
.bm-pagehead__title { font-family: var(--serif); font-size: clamp(34px, 4.4vw, 56px); line-height: 1.1; }
.bm-pagehead__meta { margin-top: 14px; color: var(--muted); font-size: 15px; }

/* --- Prose (CRM policies) -------------------------------------------- */
.bm-prose { color: var(--text); font-size: 17px; line-height: 1.75; min-width: 0; overflow-wrap: anywhere; }
.bm-prose > * + * { margin-top: 1em; }
.bm-prose h1, .bm-prose h2, .bm-prose h3, .bm-prose h4 { font-family: var(--serif); color: var(--ink) !important; line-height: 1.25; margin-top: 1.8em; }
.bm-prose h1 { font-size: 30px; } .bm-prose h2 { font-size: 26px; } .bm-prose h3 { font-size: 21px; } .bm-prose h4 { font-size: 18px; }
.bm-prose > :first-child, .bm-prose > div > :first-child { margin-top: 0; }
.bm-prose ul { list-style: disc; padding-left: 1.3em; }
.bm-prose ol { list-style: decimal; padding-left: 1.4em; }
.bm-prose li + li { margin-top: .35em; }
.bm-prose table { width: 100%; border-collapse: collapse; font-size: 15px; display: block; overflow-x: auto; }
.bm-prose th, .bm-prose td { border: 1px solid var(--line); padding: 8px 10px; text-align: left; }
/* CRM policy HTML carries inline colours authored elsewhere: make it inherit. */
.bm-prose [style*="color"], .bm-prose font, .bm-prose span, .bm-prose p, .bm-prose li, .bm-prose td { color: inherit !important; }
.bm-prose [style*="background"] { background: transparent !important; }
.bm-prose [style*="font-family"] { font-family: inherit !important; }
.bm-prose a { color: var(--teal) !important; }

/* --- Reveals (IntersectionObserver adds .is-in once) ------------------ */
.bm-js [data-reveal] { opacity: 0; transform: translateY(22px); transition: opacity .8s ease, transform .8s cubic-bezier(.2, .7, .2, 1); }
.bm-js [data-reveal="unveil"] { transform: none; }
.bm-js [data-reveal="unveil"] img { transform: scale(1.045); transition: transform 1.4s cubic-bezier(.2, .7, .2, 1); }
.bm-js [data-reveal="stagger"] { opacity: 1; transform: none; }
.bm-js [data-reveal="stagger"] > * { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s cubic-bezier(.2, .7, .2, 1); }
.bm-js [data-reveal].is-in, .bm-js [data-reveal="stagger"].is-in > * { opacity: 1; transform: none; }
.bm-js [data-reveal="unveil"].is-in img { transform: none; }
.bm-js [data-reveal="stagger"].is-in > :nth-child(2) { transition-delay: .09s; }
.bm-js [data-reveal="stagger"].is-in > :nth-child(3) { transition-delay: .18s; }
.bm-js [data-reveal="stagger"].is-in > :nth-child(4) { transition-delay: .27s; }
.bm-js [data-reveal="stagger"].is-in > :nth-child(5) { transition-delay: .36s; }

@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    .bm-js [data-reveal], .bm-js [data-reveal] img, .bm-js [data-reveal="stagger"] > * { opacity: 1 !important; transform: none !important; transition: none !important; }
    .bm-link::after, .bm-nav a::after { transition: none; }
}

/* --- Phones / tablets -------------------------------------------------- */
@media (max-width: 900px) {
    .bm-topbar__tag { display: none; }
    .bm-masthead__logo-row { padding-top: 18px; padding-bottom: 16px; justify-content: flex-start; }
    .bm-masthead .bm-logo { height: 40px; }
    .bm-menu-btn {
        display: inline-flex; align-items: center; gap: 10px;
        position: absolute; right: var(--gutter); top: 50%; transform: translateY(-50%);
        min-height: 44px; padding: 8px 14px;
        background: transparent; border: 1px solid var(--line-2); border-radius: 3px;
        color: var(--ink); font: 600 13px/1 var(--sans); letter-spacing: .14em; text-transform: uppercase; cursor: pointer;
    }
    .bm-menu-btn__bars { display: grid; gap: 5px; width: 18px; }
    .bm-menu-btn__bars span { height: 1.5px; background: var(--ink); transition: transform .25s ease; }
    .bm-menu-btn[aria-expanded="true"] .bm-menu-btn__bars span:first-child { transform: translateY(3.25px) rotate(45deg); }
    .bm-menu-btn[aria-expanded="true"] .bm-menu-btn__bars span:last-child { transform: translateY(-3.25px) rotate(-45deg); }
    .bm-js .bm-nav { display: none; }
    .bm-js .bm-nav.is-open { display: block; }
    .bm-nav .bm-wrap::before, .bm-nav .bm-wrap::after { display: none; }
    .bm-nav__list, .bm-nav ul.menu { flex-direction: column; gap: 0; padding: 6px 0 10px; }
    .bm-nav li + li { border-top: 1px solid var(--line); }
    body.bm-body .bm-nav a { padding: 14px 0; }
}
@media (max-width: 520px) {
    body.bm-body { font-size: 16px; }
    .bm-topbar { font-size: 13px; }
    .bm-topbar__inner { justify-content: flex-start; }
    .bm-topbar__name { display: none; }
    .bm-topbar__label { display: none; }
}
/* --- Hero: wide photograph, light text band across its foot ---------- */
.bm-hero { padding-top: clamp(20px, 3vw, 36px); }
.bm-hero__photo { margin: 0; overflow: hidden; background: var(--band); }
body.bm-body .bm-hero__photo img { width: 100%; height: clamp(300px, 46vw, 620px); object-fit: cover; object-position: center 55%; }
.bm-hero__band {
    position: relative;
    width: min(100%, 980px);
    margin-top: clamp(-150px, -10vw, -90px);
    padding: clamp(30px, 4.4vw, 56px) clamp(24px, 4.6vw, 60px) clamp(30px, 4vw, 48px);
    background: var(--paper);
    border-top: 4px solid var(--teal);
    box-shadow: 0 1px 0 var(--line), 0 24px 48px -36px rgba(38, 49, 58, .45);
}
.bm-hero__title { font-family: var(--serif); font-size: clamp(30px, 4vw, 52px); line-height: 1.13; letter-spacing: -.01em; max-width: 24ch; }
.bm-hero__foot { display: grid; grid-template-columns: minmax(0, 1.5fr) minmax(0, 1fr); gap: 20px 48px; align-items: end; margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--line); }
.bm-hero__lead { font-size: 18px; color: var(--text); max-width: 54ch; }
.bm-hero__links { display: flex; flex-direction: column; align-items: flex-start; gap: 14px; }

/* --- Section rhythm --------------------------------------------------- */
.bm-section { padding: var(--space) 0; }
.bm-head { margin-bottom: clamp(36px, 5vw, 60px); }
.bm-head--centre { text-align: center; max-width: 760px; margin-left: auto; margin-right: auto; }
.bm-head--centre .bm-eyebrow { justify-content: center; }
.bm-head--centre .bm-eyebrow::after { content: ""; width: 28px; height: 1px; background: currentColor; }
.bm-head--split { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 20px 64px; align-items: end; }
.bm-head__lead { color: var(--muted); font-size: 17.5px; }
.bm-head--centre .bm-head__lead { margin-top: 18px; }

/* --- About ------------------------------------------------------------ */
.bm-about__grid { display: grid; grid-template-columns: minmax(0, 7fr) minmax(0, 5fr); gap: clamp(36px, 6vw, 88px); align-items: start; }
.bm-about__photo { position: relative; margin: 14px 14px 0 0; }
.bm-about__photo::before { content: ""; position: absolute; inset: -14px -14px 14px 14px; border: 1px solid var(--line-2); }
body.bm-body .bm-about__photo img { position: relative; width: 100%; aspect-ratio: 4 / 5; object-fit: cover; }
.bm-about__photo { overflow: visible; }
.bm-brief { margin-top: 40px; padding-top: 26px; border-top: 3px double var(--line-2); }
.bm-brief__title { font-family: var(--serif); font-size: 21px; font-style: italic; }
.bm-brief__list { margin: 14px 0 0; }
.bm-brief__list > div { display: grid; grid-template-columns: 180px minmax(0, 1fr); gap: 6px 24px; padding: 13px 0; border-bottom: 1px solid var(--line); }
.bm-brief__list dt { color: var(--muted); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; padding-top: 3px; }
.bm-brief__list dd { margin: 0; color: var(--ink); font-weight: 500; }

/* --- What we provide -------------------------------------------------- */
.bm-provide { background: var(--paper); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.bm-concepts { display: grid; gap: clamp(28px, 4vw, 48px); counter-reset: concept; }
.bm-concept { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); border: 1px solid var(--line); background: var(--page); }
.bm-concept:nth-child(even) .bm-concept__photo { order: 2; }
.bm-concept--plain { grid-template-columns: 1fr; }
.bm-concept__photo { position: relative; margin: 0; min-height: 340px; }
body.bm-body .bm-concept__photo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.bm-concept__body { padding: clamp(28px, 4vw, 54px); }
.bm-concept__label { display: flex; align-items: center; gap: 10px; color: var(--muted); font-size: 12.5px; letter-spacing: .16em; text-transform: uppercase; }
.bm-concept__label span { color: var(--teal); font-family: var(--serif); font-size: 15px; letter-spacing: .04em; }
.bm-concept__name { margin-top: 10px !important; font-family: var(--serif); font-size: clamp(32px, 3.6vw, 46px); line-height: 1.1; }
.bm-concept__summary { margin-top: 18px; font-size: 17.5px; max-width: 52ch; }
.bm-concept__points-title { margin-top: 30px !important; padding-bottom: 10px; border-bottom: 1px solid var(--line); color: var(--ink); font-family: var(--sans); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.bm-concept__points { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; }
.bm-concept__points li { position: relative; padding: 12px 0 12px 22px; border-bottom: 1px solid var(--line); font-size: 15.5px; line-height: 1.5; color: var(--ink); }
.bm-concept__points li::before { content: ""; position: absolute; left: 2px; top: 19px; width: 7px; height: 7px; background: var(--teal); transform: rotate(45deg); }

/* --- How we work ------------------------------------------------------ */
.bm-habits { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); border-top: 1px solid var(--line-2); border-bottom: 1px solid var(--line-2); }
.bm-habit { padding: 34px 28px 38px; }
.bm-habit + .bm-habit { border-left: 1px solid var(--line); }
.bm-habit__num { display: block; color: var(--teal); font-family: var(--serif); font-size: 30px; font-style: italic; line-height: 1; }
.bm-habit__title { margin-top: 22px !important; font-family: var(--serif); font-size: 22px; line-height: 1.25; }
.bm-habit__text { margin-top: 12px; font-size: 16px; color: var(--text); }

/* --- Company details -------------------------------------------------- */
.bm-company { background: var(--band); }
.bm-company__grid { display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(36px, 6vw, 88px); align-items: start; }
.bm-company__sub { margin-top: 34px !important; color: var(--ink); font-family: var(--sans); font-size: 13px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.bm-company .bm-policies { margin-top: 10px; }
.bm-policies li { border-bottom: 1px solid var(--line-2); }
body.bm-body .bm-company .bm-policies a { display: flex; justify-content: space-between; gap: 12px; padding: 10px 0; color: var(--ink); text-decoration: none; }
.bm-company .bm-policies a::after { content: "\2192"; color: var(--teal); }
body.bm-body .bm-company .bm-policies a:hover { color: var(--teal); }
.bm-register { margin: 0; background: var(--paper); border: 1px solid var(--line-2); border-top: 4px double var(--ink); padding: 8px clamp(20px, 3vw, 36px); }
.bm-register__row { display: grid; grid-template-columns: minmax(150px, 34%) minmax(0, 1fr); gap: 4px 24px; padding: 20px 0; }
.bm-register__row + .bm-register__row { border-top: 1px solid var(--line); }
.bm-register dt { color: var(--muted); font-size: 13px; letter-spacing: .13em; text-transform: uppercase; padding-top: 4px; }
.bm-register dd { margin: 0; color: var(--ink); font-family: var(--serif); font-size: 20px; line-height: 1.4; overflow-wrap: anywhere; }

/* --- Contact ---------------------------------------------------------- */
.bm-contact__grid { display: grid; grid-template-columns: minmax(0, 6fr) minmax(0, 5fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.bm-contact__grid--solo { grid-template-columns: minmax(0, 720px); justify-content: center; }
.bm-map { position: relative; border: 1px solid var(--line-2); background: var(--band); padding: 8px; }
.bm-map iframe { display: block; width: 100%; height: clamp(300px, 34vw, 420px); border: 0; filter: grayscale(.35); }
.bm-contact__card { margin-top: 0; padding: 24px 28px; background: var(--paper); border: 1px solid var(--line-2); border-top: 0; }
.bm-contact__label { color: var(--teal); font-size: 12.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.bm-contact__address { margin-top: 8px; color: var(--ink); line-height: 1.6; }
.bm-contact__address strong { font-family: var(--serif); font-weight: 400; font-size: 19px; }
.bm-contact__channels { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--line); display: grid; gap: 6px; }
.bm-contact__channels li { display: flex; flex-wrap: wrap; gap: 4px 14px; }
.bm-contact__channels span { min-width: 64px; color: var(--muted); font-size: 13px; letter-spacing: .12em; text-transform: uppercase; padding-top: 2px; }
.bm-contact__channels a { overflow-wrap: anywhere; }
.bm-contact__form { padding: clamp(24px, 3.4vw, 40px); background: var(--paper); border: 1px solid var(--line-2); border-top: 4px solid var(--teal); }
.bm-contact__form-title { font-family: var(--serif); font-size: 24px; margin-bottom: 18px !important; }
.bm-main--contact .bm-contact { padding-top: clamp(48px, 6vw, 80px); }

/* --- Footer: postcard ------------------------------------------------- */
.bm-footer { padding: var(--space) 0 28px; }
.bm-postcard {
    display: grid; grid-template-columns: minmax(0, 1.2fr) minmax(0, 1fr);
    background: var(--paper);
    border: 1px solid var(--line-2);
    box-shadow: 0 1px 0 var(--line), 0 26px 50px -40px rgba(38, 49, 58, .5);
}
.bm-postcard__message { padding: clamp(28px, 4vw, 52px); }
.bm-postcard__logo { display: inline-block; line-height: 0; }
.bm-postcard__logo .bm-logo { height: 44px; width: auto; }
.bm-postcard__line { margin-top: 18px; max-width: 40ch; color: var(--text); font-family: var(--serif); font-size: 19px; font-style: italic; line-height: 1.5; }
.bm-postcard__head { margin-top: 32px !important; color: var(--ink); font-family: var(--sans); font-size: 12.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.bm-postcard .bm-policies, .bm-postcard__policies ul { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 28px; margin-top: 8px; }
.bm-postcard .bm-policies li, .bm-postcard__policies li { border-bottom: 1px solid var(--line); }
body.bm-body .bm-postcard__policies a { display: block; padding: 10px 0; color: var(--ink); text-decoration: none; font-size: 15px; }
body.bm-body .bm-postcard__policies a:hover { color: var(--teal); text-decoration: underline; }

.bm-postcard__address { position: relative; padding: clamp(28px, 4vw, 52px); border-left: 2px dashed var(--line-2); }
.bm-stamp { position: absolute; top: clamp(22px, 3vw, 34px); right: clamp(22px, 3vw, 34px); padding: 7px; background: var(--paper); border: 2px dotted var(--line-2); transform: rotate(3deg); }
.bm-stamp img { width: 64px; height: 64px; }
.bm-postcard__to { color: var(--muted); font-size: 12.5px; font-weight: 600; letter-spacing: .16em; text-transform: uppercase; }
.bm-postcard__lines { display: grid; margin-top: 18px; max-width: calc(100% - 96px); font-style: normal; }
.bm-postcard__lines span { padding: 9px 0 5px; border-bottom: 1px solid var(--line-2); color: var(--ink); font-family: var(--serif); font-size: 18px; line-height: 1.35; }
.bm-postcard__lines span:first-child { font-size: 20px; }
.bm-postcard__channels { margin-top: 24px; display: grid; gap: 6px; font-size: 15px; }
.bm-postcard__channels span { display: inline-block; min-width: 60px; color: var(--muted); font-size: 12.5px; letter-spacing: .13em; text-transform: uppercase; }
.bm-postcard__channels a { overflow-wrap: anywhere; }
.bm-footer__base { margin-top: 24px; color: var(--muted); font-size: 14px; text-align: center; }

/* --- Cookie notice ---------------------------------------------------- */
.bm-cookie { position: fixed; left: 16px; bottom: 16px; z-index: 60; max-width: 440px; padding: 20px 22px; background: var(--paper); border: 1px solid var(--line-2); border-top: 3px solid var(--teal); box-shadow: 0 18px 40px -24px rgba(38, 49, 58, .45); font-size: 15px; color: var(--text); }
.bm-cookie[hidden] { display: none; }
.bm-cookie__actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 14px; }

/* --- Legal pages ------------------------------------------------------ */
.bm-legal__grid { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: clamp(32px, 5vw, 72px); align-items: start; padding-bottom: var(--space); }
.bm-legal__aside { position: sticky; top: 24px; padding: 24px; background: var(--paper); border: 1px solid var(--line); border-top: 3px solid var(--teal); }
.bm-legal__aside-title { font-family: var(--sans) !important; font-size: 12.5px; font-weight: 600 !important; letter-spacing: .16em; text-transform: uppercase; }
.bm-legal__aside .bm-policies { margin-top: 10px; }
.bm-legal__aside .bm-policies li { border-bottom: 1px solid var(--line); }
body.bm-body .bm-legal__aside a { display: block; padding: 10px 0; color: var(--ink); text-decoration: none; font-size: 15px; }
body.bm-body .bm-legal__aside a:hover { color: var(--teal); text-decoration: underline; }

/* --- 404 -------------------------------------------------------------- */
.bm-notfound { padding: clamp(56px, 9vw, 120px) 0 0; }
.bm-notfound__card { max-width: 720px; margin: 0 auto; padding: clamp(32px, 5vw, 60px); background: var(--paper); border: 1px solid var(--line-2); border-top: 4px double var(--ink); text-align: center; }
.bm-notfound__mark { width: 72px; height: 72px; margin: 0 auto 24px; }
.bm-notfound .bm-eyebrow { justify-content: center; }
.bm-notfound__title { font-family: var(--serif); font-size: clamp(30px, 4vw, 46px); line-height: 1.15; }
.bm-notfound .bm-text { margin-left: auto; margin-right: auto; }
.bm-notfound__links { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 16px 28px; margin-top: 30px; }

/* --- Responsive ------------------------------------------------------- */
@media (max-width: 1080px) {
    .bm-habits { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .bm-habit:nth-child(3) { border-left: 0; }
    .bm-habit:nth-child(n + 3) { border-top: 1px solid var(--line); }
}
@media (max-width: 900px) {
    .bm-hero__foot, .bm-head--split, .bm-about__grid, .bm-company__grid, .bm-contact__grid, .bm-legal__grid, .bm-postcard { grid-template-columns: minmax(0, 1fr); }
    .bm-hero__band { margin-top: -56px; width: calc(100% - 20px); }
    .bm-about__photo { max-width: 460px; }
    .bm-concept { grid-template-columns: minmax(0, 1fr); }
    .bm-concept:nth-child(even) .bm-concept__photo { order: 0; }
    .bm-concept__photo { min-height: 0; aspect-ratio: 16 / 10; }
    .bm-legal__aside { position: static; }
    .bm-postcard__address { border-left: 0; border-top: 2px dashed var(--line-2); }
}
@media (max-width: 600px) {
    .bm-habits { grid-template-columns: minmax(0, 1fr); }
    .bm-habit + .bm-habit { border-left: 0; border-top: 1px solid var(--line); }
    .bm-habit { padding: 28px 4px; }
    .bm-concept__points, .bm-postcard .bm-policies, .bm-postcard__policies ul { grid-template-columns: minmax(0, 1fr); }
    .bm-brief__list > div, .bm-register__row { grid-template-columns: minmax(0, 1fr); }
    .bm-register dd { font-size: 18px; }
    .bm-hero__band { width: 100%; margin-top: -40px; }
    .bm-stamp img { width: 48px; height: 48px; }
    .bm-postcard__lines { max-width: calc(100% - 70px); }
    .bm-cookie { left: 10px; right: 10px; bottom: 10px; max-width: none; }
}
/* --- Contact form ([webshop_contact_form], CF7-style markup) ---------- */
.bm-form .wpcf7,
.bm-form .contact-form-container { max-width: none; margin: 0; padding: 0 !important; background: none !important; border: 0 !important; box-shadow: none !important; }
.bm-form .wpcf7 form.contact-form,
.bm-form .wpcf7 form.unsubscribe-form { max-width: none; margin: 0; padding: 0 !important; border: 0 !important; background: none !important; box-shadow: none !important; font-family: inherit; }
.bm-form .hidden-fields-container { display: none; border: 0; margin: 0; padding: 0; }
.bm-form form p { margin: 0 0 16px; }
.bm-form br { display: none; }
.bm-form .cf7-row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 16px; }
.bm-form .cf7-col { min-width: 0; }

.bm-form .wpcf7 form.contact-form label,
.bm-form .wpcf7 form.unsubscribe-form label {
    display: block;
    color: var(--ink) !important;
    font-size: 12.5px; font-weight: 600; letter-spacing: .13em; text-transform: uppercase;
}
.bm-form .wpcf7-form-control-wrap { display: block; margin-top: 7px; }

.bm-form .wpcf7 form.contact-form input[type="text"],
.bm-form .wpcf7 form.contact-form input[type="email"],
.bm-form .wpcf7 form.contact-form input[type="tel"],
.bm-form .wpcf7 form.contact-form input[type="number"],
.bm-form .wpcf7 form.contact-form input[type="url"],
.bm-form .wpcf7 form.contact-form textarea,
.bm-form .wpcf7 form.contact-form select,
.bm-form .wpcf7 form.unsubscribe-form input[type="text"],
.bm-form .wpcf7 form.unsubscribe-form input[type="email"],
.bm-form .wpcf7 form.unsubscribe-form textarea,
.bm-form .wpcf7 form.unsubscribe-form select {
    width: 100%;
    min-height: 48px;
    margin: 0 !important;
    padding: 11px 14px;
    background: #fff !important;
    border: 1px solid var(--line-2) !important;
    border-radius: 2px !important;
    box-shadow: none !important;
    color: var(--ink) !important;
    font: 400 16px/1.45 var(--sans);
    letter-spacing: 0; text-transform: none;
}
.bm-form .wpcf7 form.contact-form textarea { min-height: 140px; height: 150px; resize: vertical; }
.bm-form .wpcf7 form.contact-form input::placeholder,
.bm-form .wpcf7 form.contact-form textarea::placeholder { color: var(--muted) !important; opacity: 1; }
.bm-form .wpcf7 form.contact-form input:focus,
.bm-form .wpcf7 form.contact-form textarea:focus,
.bm-form .wpcf7 form.contact-form select:focus { border-color: var(--teal) !important; box-shadow: 0 0 0 3px var(--focus) !important; outline: none; }
.bm-form .wpcf7 form.contact-form input:disabled,
.bm-form .wpcf7 form.contact-form textarea:disabled { background: var(--band) !important; color: var(--muted) !important; }

/* Autofill stays legible on the white field. */
.bm-form input:-webkit-autofill,
.bm-form input:-webkit-autofill:hover,
.bm-form input:-webkit-autofill:focus,
.bm-form input:-webkit-autofill:active,
.bm-form textarea:-webkit-autofill,
.bm-form textarea:-webkit-autofill:hover,
.bm-form textarea:-webkit-autofill:focus,
.bm-form select:-webkit-autofill,
.bm-form select:-webkit-autofill:hover,
.bm-form select:-webkit-autofill:focus {
    -webkit-text-fill-color: var(--ink) !important;
    -webkit-box-shadow: 0 0 0 1000px #fff inset !important;
    box-shadow: 0 0 0 1000px #fff inset !important;
    caret-color: var(--ink);
    transition: background-color 9999s ease-out 0s;
}

/* Captcha row. */
.bm-form .captcha-cf7-wrap { display: flex; flex-wrap: wrap; align-items: center; gap: 8px 12px; margin: 0 0 18px; }
.bm-form .captcha-cf7-wrap > p { flex: 0 0 100%; margin: 0; }
.bm-form .captcha-cf7-wrap > p:empty { display: none; }
.bm-form .captcha-cf7-wrap .main-cf7-captcha { flex: 1 1 160px; }
.bm-form .captcha-cf7-wrap .main-cf7-captcha .wpcf7-form-control-wrap { margin-top: 0; }
.bm-form .captcha-image-container { display: flex !important; flex-direction: row !important; flex-wrap: nowrap; align-items: center; flex: 0 0 auto; gap: 8px; margin: 0; }
.bm-form .captcha-image-container img#captcha-image { width: auto; height: 48px; border: 1px solid var(--line-2) !important; border-radius: 2px; background: #fff; }
.bm-form a#reload_captcha {
    display: inline-flex !important; align-items: center; justify-content: center;
    width: 48px !important; height: 48px !important;
    background: var(--page) !important; border: 1px solid var(--line-2) !important; border-radius: 2px !important;
    color: var(--ink) !important; text-decoration: none;
}
.bm-form a#reload_captcha:hover { background: var(--teal-soft) !important; }
.bm-form a#reload_captcha img.emoji { width: 18px; height: 18px; }

/* Submit. */
.bm-form .wpcf7 form.contact-form input[type="submit"],
.bm-form .wpcf7 form.unsubscribe-form input[type="submit"] {
    display: block; width: 100%; min-height: 52px; margin: 4px 0 0;
    padding: 12px 24px;
    background: var(--teal) !important; border: 1px solid var(--teal) !important; border-radius: 3px !important;
    color: #fff !important;
    font: 600 15px/1.2 var(--sans); letter-spacing: .1em; text-transform: uppercase;
    cursor: pointer;
}
.bm-form .wpcf7 form.contact-form input[type="submit"]:hover { background: var(--teal-2) !important; border-color: var(--teal-2) !important; }
.bm-form .wpcf7-spinner { display: none; }

/* Messages. */
.bm-form .wpcf7 form.contact-form .wpcf7-not-valid-tip { color: var(--bad) !important; font-size: 13.5px; text-transform: none; letter-spacing: 0; }
.bm-form .wpcf7 form.contact-form .wpcf7-response-output { margin: 14px 0 0 !important; padding: 12px 14px !important; border: 1px solid var(--line-2) !important; border-radius: 2px; background: var(--page) !important; color: var(--ink) !important; font-size: 15px; }
.bm-form .wpcf7 form.contact-form .wpcf7-response-output:empty { display: none; }
.bm-form .wpcf7 form.contact-form.sent .wpcf7-response-output { border-color: var(--teal) !important; background: var(--teal-soft) !important; }
.bm-form .wpcf7 form.contact-form.invalid .wpcf7-response-output,
.bm-form .wpcf7 form.contact-form.failed .wpcf7-response-output { border-color: var(--bad) !important; color: var(--bad) !important; }

@media (max-width: 600px) {
    .bm-form .cf7-row { grid-template-columns: minmax(0, 1fr); }
}
