/*
Theme Name: Bee Machines
Theme URI: https://thebeemachines.com
Author: Bee Machines
Description: Block child theme for the Bee Machines machinery catalog. Catalog mode only: no cart, no checkout, no prices. 47 machines across five production lines.
Template: twentytwentyfive
Version: 2.0.0
Requires at least: 6.5
Tested up to: 6.9
Requires PHP: 7.4
Text Domain: bee-machines
*/

:root{
  --bm-ink:#10141a;
  --bm-surface:#15181C;
  --bm-amber:#F5A623;
  --bm-amber-dk:#D18A12;
  --bm-paper:#F4F3F0;
  --bm-line:#DCDFE3;
  --bm-muted:#A0A6AE;
  --bm-text:#1B1F24;
  --bm-wrap:1280px;
  --bm-line-ck:#C77800;
  --bm-line-cs:#1F6F6B;
  --bm-line-ds:#2B4C8C;
  --bm-line-sn:#A32C2C;
  --bm-line-sp:#6A4C93;
}

/* ---------- base ---------- */
body{color:var(--bm-text);font-family:system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased}
h1,h2,h3,h4{letter-spacing:-.02em;line-height:1.08;font-weight:800}
a{color:inherit}
.bm-wrap{max-width:var(--bm-wrap);margin:0 auto;padding:0 24px}

/* ---------- header ---------- */
.bm-header{background:var(--bm-ink);color:#fff;position:relative;z-index:20}
.bm-header .bm-wrap{display:flex;align-items:center;gap:32px;min-height:96px}
.bm-brand{display:flex;align-items:center;gap:16px;text-decoration:none;flex:0 0 auto}
.bm-brand img{width:200px;height:auto;display:block}
.bm-brand-txt{display:flex;flex-direction:column;gap:2px}
.bm-brand-name{font-size:26px;font-weight:800;letter-spacing:.05em;color:#fff;line-height:1}
.bm-brand-sub{font-size:12.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--bm-amber);line-height:1}
.bm-nav{margin-left:auto;display:flex;align-items:center;gap:30px}
.bm-nav a{color:#fff;text-decoration:none;font-size:15px;font-weight:600;letter-spacing:.01em}
.bm-nav a:hover,.bm-nav a[aria-current="page"]{color:var(--bm-amber)}
.bm-btn{display:inline-flex;align-items:center;gap:8px;background:var(--bm-amber);color:#10141a;
  font-weight:700;font-size:15px;text-decoration:none;padding:13px 22px;border:0;cursor:pointer;transition:background .15s}
.bm-btn:hover{background:var(--bm-amber-dk);color:#10141a}
.bm-btn--ghost{background:transparent;color:#fff;border:1px solid rgba(255,255,255,.32)}
.bm-btn--ghost:hover{background:rgba(255,255,255,.08);color:#fff}
.bm-burger{display:none;margin-left:auto;background:none;border:0;color:#fff;font-size:26px;line-height:1;cursor:pointer}

@media(max-width:960px){
  .bm-brand img{width:120px}
  .bm-brand-name{font-size:20px}
  .bm-burger{display:block}
  .bm-nav{display:none;position:absolute;top:100%;left:0;right:0;background:var(--bm-ink);
    flex-direction:column;align-items:flex-start;gap:0;padding:8px 24px 20px;border-top:1px solid rgba(255,255,255,.1)}
  .bm-nav.is-open{display:flex}
  .bm-nav a{padding:12px 0;width:100%}
  .bm-nav .bm-btn{margin-top:8px}
}

/* ---------- hero ---------- */
.bm-hero{background:var(--bm-ink);color:#fff;padding:64px 0 56px}
.bm-hero h1{font-size:clamp(40px,6vw,78px);margin:0 0 14px;max-width:16ch}
.bm-hero .accent{color:var(--bm-amber)}
.bm-hero p{color:#C7CCD3;font-size:18px;line-height:1.55;max-width:58ch;margin:0 0 26px}
.bm-hero-actions{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- sections ---------- */
.bm-section{padding:64px 0}
.bm-section--paper{background:var(--bm-paper)}
.bm-section-head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:28px}
.bm-section-head h2{font-size:clamp(28px,3.4vw,44px);margin:0}
.bm-section-head a{font-size:14px;font-weight:700;color:var(--bm-amber);text-decoration:none}

/* ---------- category cards ---------- */
.bm-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--bm-line);border:1px solid var(--bm-line)}
.bm-card{position:relative;background:#fff;padding:26px 24px 30px;display:flex;flex-direction:column;gap:6px;
  text-decoration:none;color:inherit;transition:background .16s}
.bm-card:hover{background:#FBFAF8}
.bm-card::after{content:"";position:absolute;inset:0}
.bm-card .num{font-size:12px;letter-spacing:.16em;color:#9AA1A9;font-family:ui-monospace,SFMono-Regular,Menlo,monospace}
.bm-card h3{font-size:22px;margin:14px 0 2px}
.bm-card .count{font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:#6B727A}
.bm-card .go{margin-top:18px;font-size:14px;font-weight:700;color:var(--bm-amber)}
@media(max-width:900px){.bm-cards{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.bm-cards{grid-template-columns:1fr}}

/* ---------- steps ---------- */
.bm-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}
.bm-step .n{font-size:13px;font-weight:800;letter-spacing:.14em;color:var(--bm-amber)}
.bm-step h3{font-size:19px;margin:10px 0 6px}
.bm-step p{margin:0;color:#5A616A;font-size:15px;line-height:1.5}
@media(max-width:900px){.bm-steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.bm-steps{grid-template-columns:1fr}}

/* ---------- footer ---------- */
.bm-footer{background:var(--bm-ink);color:#C7CCD3;padding:40px 0 26px;font-size:15px}
.bm-footer a{color:#C7CCD3;text-decoration:none}
.bm-footer a:hover{color:var(--bm-amber)}
.bm-footer-grid{display:grid;grid-template-columns:1.6fr 1fr 1fr 1fr;gap:36px}
.bm-footer img{width:118px;height:auto;display:block;margin-bottom:14px}
.bm-footer h4{color:var(--bm-amber);font-size:12px;letter-spacing:.14em;text-transform:uppercase;margin:0 0 14px;font-weight:700}
.bm-footer ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
.bm-footer-base{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:18px;font-size:13px;color:#8B929B}
.bm-footer-base .mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;letter-spacing:.06em}
@media(max-width:860px){.bm-footer-grid{grid-template-columns:1fr 1fr}}

/* ---------- woocommerce ---------- */
.bm-main{min-height:50vh}
.woocommerce-breadcrumb{font-size:13px;color:#6B727A;padding:18px 0 0}
.woocommerce-breadcrumb a{color:#6B727A;text-decoration:none}
.bm-page-head{background:var(--bm-paper);padding:34px 0 30px;border-bottom:1px solid var(--bm-line)}
.bm-page-head h1{font-size:clamp(30px,4vw,48px);margin:0}
.bm-page-head .sub{color:#5A616A;margin-top:8px;font-size:15px}
ul.products{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--bm-line);border:1px solid var(--bm-line)}
ul.products li.product{background:#fff;padding:0 0 20px;position:relative}
ul.products li.product a{text-decoration:none;color:inherit}
ul.products li.product img{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover;background:#F4F3F0}
ul.products li.product .woocommerce-loop-product__title{font-size:16px;font-weight:700;line-height:1.3;padding:16px 18px 0;margin:0}
ul.products li.product .bm-loop-sku{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12px;color:#8B929B;padding:6px 18px 0;letter-spacing:.04em}
ul.products li.product .price,ul.products li.product .add_to_cart_button,ul.products li.product .button{display:none!important}
@media(max-width:1100px){ul.products{grid-template-columns:repeat(3,1fr)}}
@media(max-width:800px){ul.products{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){ul.products{grid-template-columns:1fr}}

.single-product .bm-product{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;padding:34px 0 64px}
.single-product .price,.single-product form.cart,.single-product .stock{display:none!important}
.bm-eyebrow{font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--bm-amber);font-weight:700}
.single-product h1.product_title{font-size:clamp(26px,3vw,40px);margin:10px 0 14px}
.bm-sku{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:14px;color:#5A616A;letter-spacing:.05em;margin-bottom:22px}
.bm-quote-card{border:1px solid var(--bm-line);background:var(--bm-paper);padding:22px;margin:24px 0}
.bm-quote-card p{margin:0 0 14px;font-size:14.5px;color:#5A616A}
.shop_attributes{width:100%;border-collapse:collapse;margin-top:8px}
.shop_attributes th,.shop_attributes td{text-align:left;padding:11px 0;border-bottom:1px solid var(--bm-line);font-size:15px;vertical-align:top}
.shop_attributes th{width:40%;font-weight:700;color:#3A4048}
.shop_attributes td p{margin:0}
.woocommerce-tabs ul.tabs{display:none}
.woocommerce-Tabs-panel h2{font-size:20px;margin:0 0 10px}
@media(max-width:900px){.single-product .bm-product{grid-template-columns:1fr;gap:28px}}

/* dealer notice */
.bm-locked{max-width:640px;margin:80px auto;text-align:center;padding:0 24px}
.bm-locked h1{font-size:34px;margin:0 0 12px}
.bm-locked p{color:#5A616A;line-height:1.6}


/* ---- v1.0.1 overrides ---- */
.bm-brand img{height:78px;width:auto}
.bm-header .bm-wrap{min-height:104px;gap:26px}
.bm-footer img{height:92px;width:auto}
@media(max-width:960px){.bm-brand img{height:52px;width:auto}}

/* woocommerce layout reset (we ship our own) */
.woocommerce .content-area,.woocommerce-page .content-area{max-width:none!important;width:auto!important;margin:0!important}
.woocommerce main.site-main,.woocommerce-page main.site-main{max-width:none!important;width:auto!important;padding:0!important}
.woocommerce ul.products,.woocommerce-page ul.products{margin:0!important;padding:0!important}
.woocommerce ul.products li.product,.woocommerce-page ul.products li.product{width:auto!important;float:none!important;margin:0!important;clear:none!important}
.woocommerce ul.products li.product a img{margin:0!important;box-shadow:none!important}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none!important}
.bm-toolbar{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:18px 0 20px;font-size:14px;color:#5A616A}
.bm-toolbar select{padding:9px 12px;border:1px solid var(--bm-line);background:#fff;font-size:14px}
.woocommerce nav.woocommerce-pagination{padding:30px 0 46px}
.woocommerce nav.woocommerce-pagination ul{border:0;display:flex;gap:6px;justify-content:center}
.woocommerce nav.woocommerce-pagination ul li{border:0}
.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{border:1px solid var(--bm-line);padding:9px 14px;font-size:14px}
.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--bm-ink);color:#fff;border-color:var(--bm-ink)}
.woocommerce div.product{display:grid;grid-template-columns:1.05fr 1fr;gap:56px;padding:26px 0 56px}
.woocommerce div.product .woocommerce-product-gallery,.woocommerce div.product .summary{width:auto!important;float:none!important;margin:0!important}
.woocommerce div.product .woocommerce-tabs,.woocommerce div.product .related,.woocommerce div.product .up-sells{grid-column:1/-1;width:100%}
.woocommerce div.product .related h2{font-size:26px;margin:0 0 18px}
@media(max-width:900px){.woocommerce div.product{grid-template-columns:1fr;gap:26px}}


/* ---- v1.0.2 block layout ---- */
.wp-site-blocks{padding-top:0!important;padding-left:0!important;padding-right:0!important}
.wp-site-blocks > *{margin-block-start:0!important}
main.bm-main{padding:0!important;margin:0!important;max-width:none!important}
.bm-hero > *, .bm-section > *{max-width:1280px;margin-left:auto!important;margin-right:auto!important;
  padding-left:24px;padding-right:24px;box-sizing:border-box;text-align:left}
.bm-hero > * + *{margin-top:0}
.bm-hero h1{max-width:calc(16ch + 48px)}
.bm-hero p{max-width:calc(58ch + 48px)}
.bm-hero .bm-hero-actions{display:flex;gap:14px;flex-wrap:wrap}
.bm-section .bm-cards, .bm-section .bm-steps{max-width:1280px;margin-left:auto;margin-right:auto}
.bm-section > .bm-section-head{margin-bottom:26px}
.entry-content > *,.wp-block-post-content > *{margin-block-start:0}


/* ---- v1.0.3 section gutters ---- */
.bm-hero,.bm-section{padding-left:max(24px,calc((100% - 1280px) / 2))!important;
  padding-right:max(24px,calc((100% - 1280px) / 2))!important}
.bm-hero > *,.bm-section > *{max-width:none!important;margin-left:0!important;margin-right:0!important;
  padding-left:0!important;padding-right:0!important;text-align:left}
.bm-hero h1{max-width:16ch;margin-top:0;margin-bottom:14px}
.bm-hero p{max-width:58ch;margin-bottom:24px}
.bm-hero h2{margin-top:0}
.bm-section .bm-cards,.bm-section .bm-steps{max-width:none}

/* ---- v1.0.4 ---- */
.bm-hero h1{max-width:16ch!important}
.bm-hero p{max-width:62ch!important}
.bm-hero h2{max-width:20ch!important}


/* ---- v1.0.5 product gallery ---- */
.woocommerce div.product .woocommerce-product-gallery{position:relative}
.woocommerce div.product .woocommerce-product-gallery .flex-viewport{margin-bottom:10px}
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__wrapper{margin:0}
.woocommerce div.product .woocommerce-product-gallery img{width:100%;height:auto;display:block}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs{display:grid;
  grid-template-columns:repeat(6,1fr);gap:8px;margin:10px 0 0;padding:0;list-style:none}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li{margin:0;list-style:none}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img{
  aspect-ratio:1/1;object-fit:cover;cursor:pointer;opacity:.62;transition:opacity .15s}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img.flex-active,
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img:hover{opacity:1}
.woocommerce div.product .woocommerce-product-gallery__trigger{position:absolute;top:14px;right:14px;z-index:9}
.woocommerce-Tabs-panel h2{font-size:22px;margin:0 0 12px}
.woocommerce div.product .woocommerce-tabs{padding-bottom:56px}

/* ---- v1.0.6 ---- */
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img{width:100%!important;height:auto}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li{width:auto!important;float:none!important;padding:0!important}
.shop_attributes td{font-style:normal}
.shop_attributes td p{font-style:normal}


/* ---- v1.1 content pages + quote form ---- */
.bm-prose{max-width:70ch}
.bm-prose h2{font-size:clamp(24px,2.8vw,34px);margin:44px 0 12px}
.bm-prose h2:first-child{margin-top:0}
.bm-prose h3{font-size:19px;margin:26px 0 6px}
.bm-prose p{margin:0 0 16px;line-height:1.65}
.bm-prose ul{margin:0 0 18px;padding-left:20px;line-height:1.65}
.bm-prose li{margin-bottom:7px}
.bm-lede{font-size:19px;line-height:1.6;color:#3A4048;max-width:64ch}
.bm-two{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:start}
@media(max-width:900px){.bm-two{grid-template-columns:1fr;gap:34px}}
.bm-facts{border-top:1px solid var(--bm-line)}
.bm-facts div{display:flex;justify-content:space-between;gap:20px;padding:13px 0;border-bottom:1px solid var(--bm-line);font-size:15px}
.bm-facts dt,.bm-facts b{color:#5A616A;font-weight:600}
.bm-faq details{border-bottom:1px solid var(--bm-line);padding:16px 0}
.bm-faq summary{cursor:pointer;font-weight:700;font-size:17px;list-style:none}
.bm-faq summary::-webkit-details-marker{display:none}
.bm-faq summary::after{content:"+";float:right;color:var(--bm-amber);font-size:22px;line-height:1}
.bm-faq details[open] summary::after{content:"\2212"}
.bm-faq details p{margin:12px 0 0;color:#3A4048;line-height:1.65;max-width:72ch}

.bm-form{max-width:720px}
.bm-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
@media(max-width:640px){.bm-form-grid{grid-template-columns:1fr}}
.bm-form label{display:block;font-size:13px;font-weight:700;letter-spacing:.02em;color:#3A4048}
.bm-form label span{color:var(--bm-amber);margin-left:3px}
.bm-form input,.bm-form textarea{display:block;width:100%;margin-top:6px;padding:12px 13px;
  border:1px solid var(--bm-line);background:#fff;font:inherit;font-size:15px;font-weight:400;box-sizing:border-box}
.bm-form input:focus,.bm-form textarea:focus{outline:2px solid var(--bm-amber);outline-offset:-1px;border-color:var(--bm-amber)}
.bm-form .bm-form-full{margin-top:16px}
.bm-form button{margin-top:20px}
.bm-form-note{font-size:13px;color:#6B727A;margin-top:12px}
.bm-hp{position:absolute!important;left:-9999px!important}
.bm-form-ok{border-left:3px solid var(--bm-amber);background:var(--bm-paper);padding:18px 20px;margin-bottom:28px}
.bm-form-ok h3{margin:0 0 6px;font-size:19px}
.bm-form-ok p{margin:0;color:#3A4048}
.bm-contact-card{border:1px solid var(--bm-line);padding:24px;background:var(--bm-paper)}
.bm-contact-card h3{margin:0 0 14px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#6B727A}
.bm-contact-card p{margin:0 0 14px;font-size:16px;line-height:1.5}
.bm-contact-card a{font-weight:600}


/* ---- v1.2 page content full width + form controls ---- */
.wp-block-post-content{max-width:none!important;padding-left:0!important;padding-right:0!important}
.wp-block-post-content > *{max-width:none!important;margin-left:0!important;margin-right:0!important}
.wp-block-post-content > .bm-page-head,.wp-block-post-content > .bm-section,.wp-block-post-content > .bm-hero{width:100%}
.bm-page-head{padding-top:36px;padding-bottom:32px;
  padding-left:max(24px,calc((100% - 1280px) / 2))!important;padding-right:max(24px,calc((100% - 1280px) / 2))!important}
.bm-page-head .bm-eyebrow{margin-bottom:8px}
.bm-page-head > *{max-width:none;margin-left:0;margin-right:0}

.bm-form input[type=text],.bm-form input[type=email],.bm-form textarea{
  background:#fff!important;border:1px solid var(--bm-line)!important;border-radius:0!important;
  color:#1B1F24!important;padding:12px 13px!important;font-size:15px!important;line-height:1.4!important;
  width:100%!important;box-sizing:border-box!important;min-height:auto!important}
.bm-form input[type=text]:focus,.bm-form input[type=email]:focus,.bm-form textarea:focus{
  border-color:var(--bm-amber)!important;outline:2px solid rgba(239,168,16,.35);outline-offset:0}
.bm-form textarea{min-height:150px!important;resize:vertical}
.bm-form button{background:var(--bm-amber);color:#10141a;border:0;padding:14px 24px;font-weight:700;
  font-size:15px;cursor:pointer;border-radius:0}
.bm-form button:hover{background:var(--bm-amber-dk)}
.bm-form label{margin-bottom:0}
.bm-form-grid > label{margin:0}

/* ---- v1.3 videos ---- */
.bm-videos{grid-column:1/-1;padding:8px 0 44px}
.bm-videos h2{font-size:22px;margin:0 0 14px}
.bm-video-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.bm-video-grid figure{margin:0;background:#000}
.bm-video-grid video{width:100%;height:auto;display:block;aspect-ratio:4/3;object-fit:cover;background:#000}
@media(max-width:900px){.bm-video-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.bm-video-grid{grid-template-columns:1fr}}

/* ---- v1.4 loop excerpt ---- */
ul.products li.product .bm-loop-excerpt{padding:8px 18px 0;margin:0;font-size:13.5px;line-height:1.45;color:#5A616A}
ul.products li.product .woocommerce-loop-product__title{font-size:16.5px}

/* ---- v2.0 gallery + header ---- */
.bm-brand img{height:110px!important;width:auto!important}
.bm-header .bm-wrap{min-height:132px!important}
.bm-brand-name{font-size:30px!important}
.bm-brand-sub{font-size:13.5px!important}
@media(max-width:960px){.bm-brand img{height:64px!important}.bm-header .bm-wrap{min-height:92px!important}.bm-brand-name{font-size:21px!important}}

/* gallery must never exceed its column */
.woocommerce div.product .woocommerce-product-gallery{max-width:100%;overflow:hidden}
.woocommerce div.product .woocommerce-product-gallery .flex-viewport{max-height:520px}
.woocommerce div.product .woocommerce-product-gallery .woocommerce-product-gallery__image{max-width:100%}
.woocommerce div.product .woocommerce-product-gallery img{max-width:100%!important;height:auto!important;
  max-height:520px!important;object-fit:contain;background:#F4F3F0}
.woocommerce div.product .woocommerce-product-gallery img.zoomImg{display:none!important}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs img{max-height:none!important;aspect-ratio:1/1;object-fit:cover}
.woocommerce div.product .woocommerce-product-gallery__trigger{background:#fff;border-radius:50%;width:40px;height:40px;
  display:flex;align-items:center;justify-content:center;box-shadow:0 1px 6px rgba(0,0,0,.18);text-decoration:none}
.bm-gallery-hint{font-size:12.5px;color:#6B727A;margin:8px 0 0}

/* ---- v2.1 thumbnail strip ---- */
.woocommerce div.product .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs{
  display:grid!important;grid-template-columns:repeat(6,1fr)!important;gap:8px!important;
  width:100%!important;float:none!important;overflow:visible!important}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li{
  width:100%!important;max-width:none!important;float:none!important;margin:0!important;display:block!important}
.woocommerce div.product .woocommerce-product-gallery .flex-control-thumbs li img{
  width:100%!important;height:auto!important;aspect-ratio:1/1;object-fit:cover;display:block}
@media(max-width:600px){.woocommerce div.product .woocommerce-product-gallery .flex-control-nav.flex-control-thumbs{grid-template-columns:repeat(4,1fr)!important}}


/* ============ v3.0  DENSITY PASS + FORM ACTIONS  ============ */

/* --- global vertical rhythm: less scrolling --- */
.bm-section{padding:44px 0!important}
.bm-section--tight{padding:30px 0!important}
.bm-hero{padding:52px 0 46px!important}
.bm-hero h1{margin:0 0 14px!important}
.bm-hero p{margin:0 0 22px!important}
.bm-main{padding-bottom:0!important}
.bm-main > *:last-child{margin-bottom:0!important}
.bm-wrap{padding-top:0!important}
.bm-section h2{margin:0 0 20px!important}
.bm-grid{gap:20px!important}
.bm-tile{padding:20px 20px 18px!important}

/* --- single product: close the gap under Specifications --- */
.woocommerce div.product{gap:44px!important;padding:20px 0 32px!important}
.woocommerce div.product .summary{margin-bottom:0!important}
.woocommerce div.product .summary > *{margin-top:0!important}
.woocommerce div.product .summary > * + *{margin-top:16px!important}
.bm-specs{margin:22px 0 0!important}
.bm-specs table{margin:0!important}
.bm-specs table th,.bm-specs table td{padding:8px 12px!important;line-height:1.4!important}
.woocommerce div.product .woocommerce-tabs{padding-bottom:0!important;margin-bottom:0!important}
.woocommerce div.product .woocommerce-tabs .panel{margin-bottom:0!important;padding-bottom:0!important}
.woocommerce-product-details__short-description{margin-bottom:0!important}

/* the offender: dead air before "More from this production line" */
.woocommerce div.product .related,
.woocommerce div.product .upsells{
  margin-top:0!important;
  padding-top:26px!important;
  border-top:1px solid var(--bm-line,#E3E1DC)!important;
  clear:both!important;
}
.woocommerce div.product .related > h2,
.woocommerce div.product .upsells > h2{margin:0 0 18px!important;font-size:20px!important}
.woocommerce div.product .related ul.products{margin:0!important}
.woocommerce ul.products{gap:20px!important;margin:0!important}
.woocommerce ul.products li.product{margin:0!important}
.woocommerce ul.products li.product h2,
.woocommerce ul.products li.product .woocommerce-loop-product__title{margin:10px 0 4px!important;font-size:15px!important;line-height:1.35!important}

/* --- archive / category pages --- */
.woocommerce-products-header{padding:26px 0 14px!important;margin:0!important}
.woocommerce-products-header__title{margin:0 0 8px!important}
.term-description{margin:0 0 18px!important}
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering{margin:0 0 16px!important}

/* --- footer --- */
.bm-footer{padding:32px 0 20px!important}
.bm-footer .bm-grid{gap:24px!important}
.bm-footer h3{margin:0 0 10px!important}
.bm-footer ul{margin:0!important}
.bm-footer li{margin:0 0 6px!important}
.bm-footer-bar{margin-top:22px!important;padding-top:16px!important}

/* --- generic block spacing WP loves to inflate --- */
.wp-block-group.is-layout-flow > *+*{margin-block-start:18px!important}
.entry-content > *+*{margin-block-start:18px!important}
h1,h2,h3{text-wrap:balance}
p{margin:0 0 14px}

/* ============ QUOTE FORM: make the submit unmissable ============ */
.bm-form-actions{
  display:flex;align-items:center;gap:18px;flex-wrap:wrap;
  margin-top:22px;padding-top:20px;border-top:1px solid var(--bm-line,#E3E1DC);
}
.bm-form button[type=submit],
button.bm-btn{
  display:inline-block;
  background:var(--bm-amber,#F5A623)!important;
  color:#10141a!important;
  border:0!important;
  border-radius:4px!important;
  font-size:16px!important;
  font-weight:700!important;
  letter-spacing:.01em!important;
  line-height:1!important;
  padding:16px 34px!important;
  cursor:pointer!important;
  box-shadow:0 2px 0 #B87F06!important;
  transition:transform .08s ease, box-shadow .08s ease, background .15s ease;
  -webkit-appearance:none;appearance:none;
}
.bm-form button[type=submit]:hover,
button.bm-btn:hover{background:#FFB81C!important;box-shadow:0 3px 0 #B87F06!important}
.bm-form button[type=submit]:active,
button.bm-btn:active{transform:translateY(2px);box-shadow:0 0 0 #B87F06!important}
.bm-form button[type=submit]:focus-visible,
button.bm-btn:focus-visible{outline:3px solid #10141a;outline-offset:3px}

/* "Request a phone call" opt-in */
.bm-callback{
  display:flex;align-items:flex-start;gap:10px;
  margin:0;font-size:14px;line-height:1.45;color:#3A3F45;max-width:340px;
}
.bm-callback input[type=checkbox]{
  width:20px;height:20px;margin:0;flex:0 0 20px;
  accent-color:var(--bm-amber,#F5A623);cursor:pointer;
}
.bm-callback label{cursor:pointer;margin:0;font-weight:500}
.bm-form .bm-note{margin:14px 0 0!important;font-size:13px}
.bm-form label{margin-bottom:5px!important}
.bm-form .bm-form-grid{gap:14px 18px!important}
.bm-form input,.bm-form textarea,.bm-form select{padding:10px 12px!important}
.bm-form textarea{min-height:120px!important}


/* ============ v3.3  raw-HTML wrappers escaping the 1280 container ============ */
.bm-two,.bm-cards,.bm-steps,.bm-faq,.bm-section-head,.bm-hero-actions,.bm-eyebrow{
  max-width:1280px!important;margin-left:auto!important;margin-right:auto!important;
}
.bm-two{gap:56px!important;align-items:start!important}
@media (max-width:900px){.bm-two{grid-template-columns:1fr!important;gap:32px!important}}

/* ============ v3.4  restore horizontal padding + constrain section children ============ */
/* v3.0 used 2-value padding which zeroed the left/right gutter. Restore it. */
.bm-section{padding:44px 24px!important}
.bm-section--tight{padding:30px 24px!important}
.bm-hero{padding:52px 24px 46px!important}
.bm-footer{padding:32px 24px 20px!important}

/* WordPress emits the constrained-layout cap for only one container class here,
   and GoDaddy Site Designer CSS outranks what is left. Pin it ourselves. */
.bm-hero > *,
.bm-section > *,
.bm-footer > *{
  max-width:1280px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
.bm-hero > .alignfull,
.bm-section > .alignfull{max-width:none!important}
.bm-prose{max-width:760px!important}

/* ============ v3.5  supersedes v3.4. Gutter via padding, not auto margins. ============ */
/* Auto margins centre narrow children. Instead make the section's own content box
   exactly 1280px wide and centred, then let children flow left as normal. */
.bm-hero,.bm-section,.bm-section--tight,.bm-footer{
  padding-left:max(24px, calc((100% - 1280px) / 2))!important;
  padding-right:max(24px, calc((100% - 1280px) / 2))!important;
}
.bm-hero > *,
.bm-section > *,
.bm-footer > *{
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}
.bm-two,.bm-cards,.bm-steps,.bm-faq,.bm-section-head,.bm-hero-actions,.bm-eyebrow{
  max-width:none!important;margin-left:0!important;margin-right:0!important;
}
.bm-prose{max-width:760px!important}
.bm-hero p{max-width:640px!important}

/* v3.6 machine video */
.bm-video{margin:0!important;padding-top:26px!important;border-top:1px solid var(--bm-line,#E3E1DC)}
.bm-video h2{margin:0 0 18px!important;font-size:20px!important}
.bm-video-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:18px}
.bm-video figure{margin:0}
.bm-video video{width:100%;height:auto;max-height:420px;background:#10141a;border-radius:4px;display:block}
.bm-video-note{margin:14px 0 0!important;font-size:13px;color:#6B7076}


/* ============ v4.0  SHIPPING & CONTAINER PLANNING ============ */
.bm-ship{margin:0 0 8px}
.bm-ship-lede{font-size:16px;line-height:1.6;color:#3A3F45;max-width:74ch;margin:0 0 22px}
.bm-table-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:0 0 26px}
.bm-ship-table{width:100%;min-width:760px;border-collapse:collapse;font-size:15px}
.bm-ship-table th,.bm-ship-table td{padding:10px 12px;border-bottom:1px solid var(--bm-line,#E3E1DC);text-align:left;vertical-align:middle}
.bm-ship-table thead th{font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:#6B7176;font-weight:700;border-bottom:2px solid #10141a}
.bm-ship-table td.num,.bm-ship-table th.num{text-align:right;font-variant-numeric:tabular-nums}
.bm-ship-table tbody tr:hover{background:#FBF9F5}
.bm-ship-table tfoot td{border-top:2px solid #10141a;border-bottom:0;padding-top:12px;background:#FBF9F5}
.bm-bar{display:block;width:130px;height:10px;border-radius:5px;background:#E3E1DC;overflow:hidden}
.bm-bar i{display:block;height:100%;background:var(--bm-amber,#F5A623);border-radius:5px}
.bm-note{border-left:3px solid var(--bm-amber,#F5A623);background:#FBF9F5;padding:16px 18px;margin:0 0 16px;font-size:15px;line-height:1.6;color:#3A3F45;border-radius:0 4px 4px 0}
.bm-note strong{display:block;font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:#10141a;margin:0 0 6px}
.bm-note-warn{border-left-color:#B3261E;background:#FDF4F3}
.bm-ship-foot{font-size:13px;line-height:1.6;color:#6B7176;margin:18px 0 0;max-width:78ch}
.bm-locked{border:1px solid var(--bm-line,#E3E1DC);border-radius:6px;padding:34px 30px;text-align:center;background:#FBF9F5}
.bm-locked h2{margin:0 0 10px!important;font-size:22px}
.bm-locked p{margin:0;font-size:15px;color:#3A3F45}
.bm-locked .bm-btn{display:inline-block;margin-left:8px;background:var(--bm-amber,#F5A623);color:#10141a;text-decoration:none;font-weight:700;padding:10px 22px;border-radius:4px;box-shadow:0 2px 0 #B87F06}
@media (max-width:640px){.bm-ship-table{font-size:14px}.bm-bar{width:90px}}


/* ---------- line accents (added v2.0.0) ---------- */
.bm-line-tags{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 0;padding:0;list-style:none}
.bm-line-tag{display:inline-flex;align-items:center;gap:7px;font-size:12.5px;font-weight:700;
  letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--bm-text);
  border:1px solid var(--bm-line);padding:6px 11px 6px 9px;background:#fff}
.bm-line-tag:hover{border-color:currentColor}
.bm-line-tag::before{content:"";width:9px;height:9px;background:var(--bm-line-color,var(--bm-muted));flex:0 0 auto}
.bm-line-tag[data-line="cake"]{--bm-line-color:var(--bm-line-ck)}
.bm-line-tag[data-line="canister-shell"]{--bm-line-color:var(--bm-line-cs)}
.bm-line-tag[data-line="display-shell"]{--bm-line-color:var(--bm-line-ds)}
.bm-line-tag[data-line="snap-pop"]{--bm-line-color:var(--bm-line-sn)}
.bm-line-tag[data-line="sparkler"]{--bm-line-color:var(--bm-line-sp)}

.bm-line-hero{background:var(--bm-ink);color:#fff;padding:56px 0 48px;border-bottom:5px solid var(--bm-line-color,var(--bm-amber))}
.bm-line-hero h1{font-size:clamp(34px,5vw,62px);margin:0 0 12px}
.bm-line-hero .bm-eyebrow{color:var(--bm-line-color,var(--bm-amber))}
.bm-line-hero p{color:#C7CCD3;max-width:62ch;font-size:18px;line-height:1.55;margin:0}
.bm-line-count{margin-top:22px;font-size:13px;letter-spacing:.1em;text-transform:uppercase;
  font-weight:700;color:var(--bm-muted)}

/* ---------- catalog mode: suppress every commerce affordance ---------- */
.price,.woocommerce-Price-amount,.wc-block-components-product-price,
.add_to_cart_button,.single_add_to_cart_button,.added_to_cart,
.woocommerce-cart-form,.cart_totals,.wc-block-cart,.wc-block-checkout,
.woocommerce-message,.woocommerce-mini-cart,.wc-block-mini-cart,
.woocommerce-tabs .reviews_tab,#reviews,.star-rating,.woocommerce-product-rating,
.woocommerce-ordering,.woocommerce-result-count{display:none !important}

/* ---------- enquiry call to action ---------- */
.bm-enquire{margin:26px 0 0}
.bm-enquire .bm-btn{font-size:16px;padding:15px 26px}
.bm-enquire-note{margin:12px 0 0;font-size:14px;color:#5A616A;max-width:52ch;line-height:1.55}

/* ---------- dealer gate ---------- */
.bm-locked{border:1px solid var(--bm-line);background:var(--bm-paper);padding:34px 30px;margin:32px 0}
.bm-locked h2{margin:0 0 10px;font-size:22px}
.bm-locked p{margin:0 0 18px;color:#5A616A;max-width:56ch;line-height:1.6}


/* ---------- v2.0.1 plain-content layout fallback ---------- */
/* The v1.2 rule above sends .wp-block-post-content full bleed with no gutters,
   which is correct only when the page is built from bm-hero / bm-section
   blocks that supply their own padding. Pages written as plain paragraphs get
   a reading width and gutters back here. */
.wp-block-post-content{padding-block:56px 80px!important}
.wp-block-post-content > *:not([class*="bm-"]):not(.alignfull):not(.alignwide){
  max-width:820px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:24px!important;
  padding-right:24px!important;
}
.wp-block-post-content > h1:not([class*="bm-"]){
  font-size:clamp(34px,5vw,58px);
  line-height:1.08;
  margin-bottom:22px;
}
.wp-block-post-content > *:not([class*="bm-"]) + *:not([class*="bm-"]){
  margin-block-start:1.15em!important;
}
.wp-block-post-content > p:not([class*="bm-"]):first-of-type{
  font-size:19px;
  line-height:1.55;
  color:#3A4048;
}


/* ---------- v2.0.2 line archive accent ---------- */
/* Block themes never fire woocommerce_before_main_content, so the line color
   is carried on the body class and applied to the archive header here. */
.bm-line-archive{--bm-line-color:var(--bm-amber)}
.bm-line-archive.bm-line-cake{--bm-line-color:var(--bm-line-ck)}
.bm-line-archive.bm-line-canister-shell{--bm-line-color:var(--bm-line-cs)}
.bm-line-archive.bm-line-display-shell{--bm-line-color:var(--bm-line-ds)}
.bm-line-archive.bm-line-snap-pop{--bm-line-color:var(--bm-line-sn)}
.bm-line-archive.bm-line-sparkler{--bm-line-color:var(--bm-line-sp)}

.bm-line-archive .wp-block-query-title,
.bm-line-archive h1{
  border-left:6px solid var(--bm-line-color);
  padding-left:18px!important;
  font-size:clamp(30px,4.4vw,50px);
  line-height:1.1;
  margin-bottom:18px;
}
.bm-line-archive .term-description,
.bm-line-archive .wp-block-term-description{
  max-width:70ch;
  font-size:18px;
  line-height:1.6;
  color:#3A4048;
}
.bm-line-archive .wp-block-term-description::after{
  content:"";
  display:block;
  width:64px;
  height:4px;
  background:var(--bm-line-color);
  margin-top:26px;
}


/* ---------- v2.0.3 suppress parent chrome ---------- */
/* The theme renders its own .bm-header and .bm-footer on wp_body_open and
   wp_footer. The parent block theme's header and footer template parts would
   otherwise duplicate the navigation directly underneath. */
.wp-site-blocks > header.wp-block-template-part,
.wp-site-blocks > footer.wp-block-template-part,
body > .wp-site-blocks > header:not(.bm-header),
.wp-site-blocks > .wp-block-template-part:has(> .wp-block-site-title){display:none!important}

/* Breadcrumb sits too close to the header once the parent bar is gone. */
.woocommerce-breadcrumb{padding-top:22px;font-size:13px;color:#5A616A}

/* Single machine layout: give the gallery and summary room. */
.single-product div.product{padding-top:8px}
/* Parent theme floats gallery and summary; inside a grid those floats collapse
   the summary to zero width and stack the title one letter per line. */

.single-product div.product > *{float:none !important;width:auto !important;min-width:0}
.single-product div.product .summary{min-width:0;grid-column:2}
.single-product div.product .woocommerce-product-gallery{grid-column:1;grid-row:1}

.single-product .bm-line-tags{margin-bottom:18px}


/* =========================================================================
   v2.1.0 catalog surface
   Cards, buttons and colour blocking for the machine archive and machine page.
   The logo ships as RGB with no alpha and a #232225 ground baked in, so the
   dark chrome is set to that exact value rather than #10141a. Keying the
   ground out is not an option: the crest's interior shapes are the same
   colour as its background.
   ========================================================================= */

.bm-header,.bm-footer{background:#232225 !important}
.bm-header .bm-brand img{display:block;border-radius:6px}

/* ---------- archive: machine cards ---------- */
.wc-block-product-template{
  display:grid !important;
  grid-template-columns:repeat(auto-fill,minmax(300px,1fr));
  gap:26px;
  max-width:var(--bm-wrap);
  margin:0 auto !important;
  padding:0 24px 72px;
  list-style:none;
}
.wc-block-product-template::before,.wc-block-product-template::after{display:none}

li.wc-block-product{
  background:#fff;
  border:1px solid var(--bm-line);
  border-top:4px solid var(--bm-amber);
  display:flex;
  flex-direction:column;
  padding:0 !important;
  margin:0 !important;
  width:auto !important;
  float:none !important;
  transition:box-shadow .18s ease, transform .18s ease;
  overflow:hidden;
}
li.wc-block-product:hover{box-shadow:0 14px 34px rgba(16,20,26,.13);transform:translateY(-3px)}
li.wc-block-product.bm_line-cake{border-top-color:var(--bm-line-ck)}
li.wc-block-product.bm_line-canister-shell{border-top-color:var(--bm-line-cs)}
li.wc-block-product.bm_line-display-shell{border-top-color:var(--bm-line-ds)}
li.wc-block-product.bm_line-snap-pop{border-top-color:var(--bm-line-sn)}
li.wc-block-product.bm_line-sparkler{border-top-color:var(--bm-line-sp)}

li.wc-block-product img{
  width:100%;height:230px;object-fit:contain;
  background:var(--bm-paper);padding:16px;margin:0;
}
li.wc-block-product .wc-block-components-product-name,
li.wc-block-product .woocommerce-loop-product__title{
  display:block;font-size:16px;line-height:1.32;font-weight:700;
  color:var(--bm-text) !important;text-decoration:none;
  padding:18px 20px 0;text-align:left;margin:0;
}
li.wc-block-product .bm-loop-sku{
  padding:8px 20px 0;margin:0;font-family:var(--bm-mono,monospace);
  font-size:12.5px;letter-spacing:.06em;color:#6B7280;
}
li.wc-block-product .bm-btn,
li.wc-block-product .bm-btn--ghost{
  margin:16px 20px 20px;align-self:flex-start;
}

/* ---------- buttons ---------- */
.bm-btn{
  display:inline-flex;align-items:center;gap:8px;
  background:var(--bm-amber);color:#10141a !important;
  font-weight:700;font-size:14px;letter-spacing:.02em;
  padding:12px 20px;border:2px solid var(--bm-amber);
  text-decoration:none;transition:background .15s ease,border-color .15s ease;
}
.bm-btn:hover{background:var(--bm-amber-dk);border-color:var(--bm-amber-dk)}
.bm-btn--ghost{
  background:transparent;border:2px solid var(--bm-line);
  color:var(--bm-text) !important;
}
.bm-btn--ghost:hover{background:var(--bm-ink);border-color:var(--bm-ink);color:#fff !important}
.bm-header .bm-btn--ghost{color:#fff !important;border-color:rgba(255,255,255,.35)}

/* ---------- single machine (block template) ---------- */
/* The single product page is the block template: a wp-block-columns flex row,
   not the classic gallery + .summary floats. Do not put display:grid on
   div.product; it collapses the second column to a few pixels wide. */
/* Content width. The parent theme's own constrained layout already centres
   inner blocks; only the outer wrapper needs capping. Overriding the block
   layout's own widths collapses the columns, so leave those alone. */
.single-product main.wp-block-group,
.post-type-archive-product main.wp-block-group,
.tax-bm_line main.wp-block-group{
  max-width:var(--bm-wrap) !important;
}

.single-product .wp-block-woocommerce-product-image-gallery{
  background:var(--bm-paper);border:1px solid var(--bm-line);padding:22px;
}
.single-product .wp-block-post-title{
  font-size:clamp(26px,3vw,40px);line-height:1.14;margin:0 0 14px;
}
.single-product .wp-block-post-excerpt{
  font-size:17px;line-height:1.6;color:#3A4048;margin:14px 0 0;
}
.single-product .wp-block-woocommerce-product-meta{
  border-top:1px solid var(--bm-line);margin-top:22px;padding-top:16px;
  font-size:13px;color:#6B7280;
}
.single-product .bm-enquire{margin:22px 0 0}

/* ---------- specification ---------- */
.bm-specs{margin:52px 0 0;padding:34px 0 0;border-top:3px solid var(--bm-ink)}
.bm-specs h2{font-size:22px;margin:0 0 20px;letter-spacing:-.01em}
.bm-spec-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));
  gap:0;margin:0;border:1px solid var(--bm-line);
}
.bm-spec-row{
  display:flex;flex-direction:column;gap:5px;
  padding:16px 20px;border-bottom:1px solid var(--bm-line);
  border-right:1px solid var(--bm-line);background:#fff;
}
.bm-spec-row:nth-child(even){background:var(--bm-paper)}
.bm-spec-row dt{
  font-size:11.5px;font-weight:700;letter-spacing:.11em;text-transform:uppercase;
  color:#6B7280;margin:0;
}
.bm-spec-row dd{margin:0;font-size:15.5px;line-height:1.45;color:var(--bm-text);font-weight:600}
.bm-spec-note{margin:16px 0 0;font-size:13.5px;color:#6B7280;max-width:70ch}

/* ---------- description block ---------- */
.single-product .woocommerce-tabs{margin:52px 0 0;padding:0}
.single-product .woocommerce-tabs ul.tabs{display:none}
.single-product .woocommerce-tabs .panel{
  background:var(--bm-paper);border:1px solid var(--bm-line);
  padding:34px 38px;margin:0;
}
.single-product .woocommerce-tabs .panel > h2:first-child{display:none}
.single-product .woocommerce-tabs h3{
  font-size:17px;margin:26px 0 8px;letter-spacing:.01em;
  padding-left:14px;border-left:4px solid var(--bm-amber);
}
.single-product .woocommerce-tabs h3:first-of-type{margin-top:0}
.single-product .woocommerce-tabs p{line-height:1.65;max-width:78ch;margin:0 0 10px}

/* ---------- related ---------- */
.single-product .related{margin:56px 0 0;padding:34px 0 72px;border-top:1px solid var(--bm-line)}
.single-product .related > h2{font-size:20px;margin:0 0 22px}

/* ---------- archive head ---------- */
.post-type-archive-product .woocommerce-products-header,
.tax-bm_line .woocommerce-products-header{
  max-width:var(--bm-wrap);margin:0 auto;padding:36px 24px 6px;
}
.woocommerce-breadcrumb{max-width:var(--bm-wrap);margin:0 auto;padding:18px 24px 0}

@media (max-width:860px){
  .single-product div.product{grid-template-columns:1fr;gap:28px}
  .wc-block-product-template{grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:18px}
}


/* =========================================================================
   v2.1.1 machine page
   ========================================================================= */

/* Two thirds image, one third detail. The photograph is the thing a buyer
   actually studies, so it gets the larger column. */
.single-product .wp-block-columns{gap:56px !important;align-items:flex-start}
.single-product .wp-block-columns > .wp-block-column:first-child{flex:1 1 58% !important}
.single-product .wp-block-columns > .wp-block-column:last-child{flex:1 1 42% !important}

.single-product .wp-block-woocommerce-product-image-gallery{
  background:#fff;
  border:1px solid var(--bm-line);
  padding:0;
  overflow:hidden;
}
.single-product .woocommerce-product-gallery__image img{
  width:100% !important;height:auto !important;
  display:block;background:var(--bm-paper);
  padding:34px;box-sizing:border-box;
}
.single-product .woocommerce-product-gallery{margin:0 !important}

/* Detail column sits on paper so it reads as a panel, not loose text. */
.single-product .wp-block-columns > .wp-block-column:last-child{
  background:var(--bm-paper);
  border:1px solid var(--bm-line);
  border-top:5px solid var(--bm-amber);
  padding:30px 30px 26px !important;
}
.single-product .wp-block-post-title{
  font-size:clamp(24px,2.5vw,34px) !important;
  line-height:1.15;margin:0 0 16px !important;letter-spacing:-.015em;
}
.single-product .bm-line-tags{margin:0 0 22px}
.single-product .bm-enquire{margin:0 0 20px}
.single-product .bm-enquire .bm-btn{width:100%;justify-content:center;font-size:15px;padding:15px 22px}
.single-product .bm-enquire-note{font-size:13px;line-height:1.5;color:#5A616A;margin:12px 0 0}
.single-product .wp-block-post-excerpt{
  font-size:16px;line-height:1.6;color:var(--bm-text);
  border-top:1px solid var(--bm-line);margin:22px 0 0 !important;padding-top:18px;
}
.single-product .wp-block-woocommerce-product-meta{font-size:12.5px;line-height:1.7}

/* ---------- specification, stronger blocking ---------- */
.bm-specs{margin:56px 0 0 !important;padding:0 !important;border:0 !important}
.bm-specs h2{
  font-size:13px !important;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:var(--bm-ink);display:inline-block;
  margin:0 !important;padding:11px 20px;
}
.bm-spec-grid{
  grid-template-columns:repeat(auto-fit,minmax(230px,1fr));
  border:1px solid var(--bm-ink) !important;border-top-width:3px !important;
}
.bm-spec-row{padding:18px 22px !important}
.bm-spec-row dt{color:#8A9099 !important;font-size:11px !important}
.bm-spec-row dd{font-size:16px !important;font-weight:700 !important}
.bm-spec-note{
  background:var(--bm-ink);color:#C7CCD3 !important;max-width:none !important;
  margin:0 !important;padding:16px 22px;font-size:13px;
}

/* ---------- related machines as cards ---------- */
.single-product .related{border-top:1px solid var(--bm-line);margin-top:60px;padding-top:36px}
.single-product .related > h2{
  font-size:13px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:#6B7280;
}
.single-product .related ul.products{
  display:grid !important;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));
  gap:20px;list-style:none;margin:0;padding:0;
}
.single-product .related li.product{
  background:#fff;border:1px solid var(--bm-line);border-top:4px solid var(--bm-amber);
  width:auto !important;float:none !important;margin:0 !important;padding:0 0 16px !important;
}
.single-product .related li.product img{
  width:100%;height:170px;object-fit:contain;background:var(--bm-paper);padding:14px;margin:0 0 12px;
}
.single-product .related li.product .woocommerce-loop-product__title{
  font-size:14px !important;padding:0 16px !important;line-height:1.35;
}
.single-product .related li.product .bm-loop-sku{padding:6px 16px 0 !important}
.single-product .related li.product .bm-btn{margin:12px 16px 0}


/* ---------- v2.1.2 content width on WooCommerce pages ---------- */
/* Overrides the v1.0.2 rules that unconstrain main so full-bleed bm-section
   blocks can run edge to edge. WooCommerce pages have no bm-section wrapper,
   so the wrapper itself is centred instead. Deliberately does not touch
   .wp-block-columns or main's own widths: doing so collapses the columns. */
.single-product .wp-site-blocks,
.post-type-archive-product .wp-site-blocks,
.tax-bm_line .wp-site-blocks,
.woocommerce-page:not(.home) .wp-site-blocks{
  padding-left:max(24px, calc((100% - 1280px) / 2)) !important;
  padding-right:max(24px, calc((100% - 1280px) / 2)) !important;
  box-sizing:border-box;
}


/* ---------- v2.1.3 content size on catalog pages ---------- */
/* theme.json constrains inner blocks to 760px, which is right for reading
   prose and too narrow for a machine page. Raise the layout variable the
   parent theme already uses rather than overriding block widths directly. */
.single-product .wp-site-blocks,
.post-type-archive-product .wp-site-blocks,
.tax-bm_line .wp-site-blocks,
.woocommerce-page:not(.home) .wp-site-blocks{
  --wp--style--global--content-size:1280px;
  --wp--style--global--wide-size:1280px;
}


/* ---------- v2.1.4 fill width ---------- */
/* main sits inside the product wrapper and does not fill it, leaving the two
   columns at roughly half the available width. */
.single-product main.wp-block-group,
.post-type-archive-product main.wp-block-group,
.tax-bm_line main.wp-block-group,
.woocommerce-page:not(.home) main.wp-block-group{
  width:100% !important;
  max-width:100% !important;
}
.single-product .wp-block-columns{width:100% !important;max-width:100% !important}


/* ---------- v2.1.5 unwrap product grid ---------- */
/* THE root cause of the narrow, off-centre machine page.
   Line 173 puts display:grid with two columns on .woocommerce div.product.
   That was correct on the old classic theme, where div.product held the
   gallery and the summary as siblings. On this block theme div.product holds
   a single <main>, so main was pinned into column one at ~633px and column
   two was empty space. The grid was assigning the width, which is why every
   width and max-width override was ignored. */
.single-product div.product{
  display:block !important;
  padding:0 !important;
}
.single-product div.product > main{
  width:100% !important;
  max-width:100% !important;
}


/* ---------- v2.1.6 archive columns ---------- */
/* The product template block sets its own column count inline, which beats the
   grid declared earlier. Four across at full width, stepping down on narrower
   screens so the photographs stay legible. */
.wc-block-product-template{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  padding-inline:0 !important;
}
@media (max-width:1100px){
  .wc-block-product-template{grid-template-columns:repeat(3,minmax(0,1fr)) !important}
}
@media (max-width:820px){
  .wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}
@media (max-width:520px){
  .wc-block-product-template{grid-template-columns:1fr !important}
}
li.wc-block-product img{height:200px}


/* =========================================================================
   v2.2.0 home page
   ========================================================================= */

/* Full-bleed bands were 390px wider than the viewport: width:100% plus a
   ~195px calc padding on content-box sizing. That was the horizontal
   scrollbar on every page with a bm-section. */
.bm-hero,.bm-section,.bm-page-head{
  box-sizing:border-box !important;
  width:100% !important;
  max-width:100% !important;
}

/* The front page is the hero; a duplicate "Home" heading above it is noise. */
.home .wp-block-post-title{display:none !important}
.home .woocommerce-breadcrumb{display:none !important}

/* ---------- hero ---------- */
.bm-hero{padding:84px 0 76px !important;border-bottom:5px solid var(--bm-amber)}
.bm-hero h1{letter-spacing:-.02em;line-height:1.04}
.bm-hero p{font-size:19px;max-width:62ch}
.bm-hero-actions{display:flex;flex-wrap:wrap;gap:14px;margin-top:32px}
.bm-hero .bm-btn--ghost{border-color:rgba(255,255,255,.4);color:#fff !important}
.bm-hero .bm-btn--ghost:hover{background:#fff;color:var(--bm-ink) !important;border-color:#fff}

/* ---------- section heads ---------- */
.bm-section{padding:74px 0 !important}
.bm-section--paper{background:var(--bm-paper)}
.bm-section-head{
  display:flex;align-items:baseline;justify-content:space-between;
  gap:24px;margin:0 0 34px;flex-wrap:wrap;
}
.bm-section-head h2{
  font-size:clamp(26px,3vw,38px);margin:0;letter-spacing:-.015em;
  padding-left:16px;border-left:5px solid var(--bm-amber);line-height:1.15;
}
.bm-section-head > a{
  font-size:13px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:var(--bm-text);text-decoration:none;border-bottom:2px solid var(--bm-amber);padding-bottom:3px;
}

/* ---------- production line cards ---------- */
.bm-cards{
  grid-template-columns:repeat(5,1fr) !important;
  gap:1px;background:var(--bm-line);border:1px solid var(--bm-line);
}
.bm-card{
  padding:0 !important;background:#fff;
  border-top:5px solid var(--bm-line);transition:background .16s, border-color .16s;
}
.bm-card > *{padding-left:22px;padding-right:22px}
.bm-card .num{padding-top:22px;display:block}
.bm-card h3{font-size:20px !important;margin:12px 0 4px !important;line-height:1.2}
.bm-card .count{display:block;color:#6B727A}
.bm-card .go{
  display:block;margin-top:auto;padding-top:20px;padding-bottom:24px;
  font-size:13px;font-weight:700;letter-spacing:.06em;color:var(--bm-text);
}
.bm-card:hover{background:#FBFAF8}
.bm-cards .bm-card:nth-child(1){border-top-color:var(--bm-line-sp)}
.bm-cards .bm-card:nth-child(2){border-top-color:var(--bm-line-ck)}
.bm-cards .bm-card:nth-child(3){border-top-color:var(--bm-line-cs)}
.bm-cards .bm-card:nth-child(4){border-top-color:var(--bm-line-ds)}
.bm-cards .bm-card:nth-child(5){border-top-color:var(--bm-line-sn)}
@media(max-width:1100px){.bm-cards{grid-template-columns:repeat(3,1fr) !important}}
@media(max-width:760px){.bm-cards{grid-template-columns:repeat(2,1fr) !important}}
@media(max-width:520px){.bm-cards{grid-template-columns:1fr !important}}

/* ---------- how it works ---------- */
.bm-steps{gap:1px !important;background:var(--bm-line);border:1px solid var(--bm-line)}
.bm-step{background:#fff;padding:26px 24px 30px}
.bm-step .num{
  font-size:12px;letter-spacing:.16em;color:var(--bm-amber-dk);font-weight:700;
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;
}
.bm-step h4{font-size:17px;margin:12px 0 8px;letter-spacing:-.01em}
.bm-step p{font-size:14.5px;line-height:1.55;color:#4A5058;margin:0}


/* ---------- v2.2.1 band inner wrap ---------- */
/* The bands run edge to edge; their inner wrapper is what holds the content
   to the grid. An earlier max-width:none was reaching .bm-wrap and letting
   hero text run to the window edge. */
.bm-hero > .bm-wrap,
.bm-section > .bm-wrap,
.bm-footer > .bm-wrap,
.bm-header > .bm-wrap{
  max-width:var(--bm-wrap) !important;
  margin-left:auto !important;
  margin-right:auto !important;
  padding-left:24px !important;
  padding-right:24px !important;
  box-sizing:border-box !important;
  width:100% !important;
}


/* ---------- v2.2.2 home flush ---------- */
/* The plain-content fallback adds 56px of top padding so text pages breathe.
   A page built from full-bleed bands should meet the header directly. */
.home .wp-block-post-content{padding-block:0 !important}
.home .wp-block-post-content > .bm-hero:first-child{margin-top:0 !important}


/* ---------- v2.2.3 home top gap ---------- */
/* The parent theme pads the page group 96px from the top and the content
   block adds a block-gap margin. Correct for an article, wrong for a page
   that opens on a full-bleed dark band. */
.home main.wp-block-group > .wp-block-group{padding-top:0 !important}
.home .wp-block-post-content{margin-top:0 !important}


/* =========================================================================
   v2.3.0 line pages
   ========================================================================= */

/* Header band in the production line's own colour, matching the treatment
   the line cards use on the home page. */
.tax-bm_line .wp-block-query-title,
.tax-bm_line h1.page-title{
  font-size:clamp(28px,3.4vw,44px) !important;
  line-height:1.12;
  margin:0 0 18px !important;
  padding:0 0 0 18px !important;
  border-left:6px solid var(--bm-line-color, var(--bm-amber));
  letter-spacing:-.015em;
}
.tax-bm_line .wp-block-term-description,
.tax-bm_line .term-description{
  max-width:74ch;
  font-size:17px;
  line-height:1.62;
  color:#3A4048;
  margin:0 0 10px !important;
  padding-left:24px;
  border-left:1px solid var(--bm-line);
}
.tax-bm_line .wp-block-term-description::after{
  width:70px;height:5px;margin-top:24px;
  background:var(--bm-line-color, var(--bm-amber));
}
.tax-bm_line .woocommerce-products-header{padding-bottom:0 !important}

/* Count strip above the grid */
.tax-bm_line .wc-block-product-template{margin-top:34px !important}

/* Machine cards inherit the archive treatment; give the top rule this
   line's colour so the page reads as one family. */
.tax-bm_line li.wc-block-product{border-top-color:var(--bm-line-color, var(--bm-amber))}

/* Line colour token per archive, set from the body class. */
.bm-line-archive.bm-line-cake{--bm-line-color:var(--bm-line-ck)}
.bm-line-archive.bm-line-canister-shell{--bm-line-color:var(--bm-line-cs)}
.bm-line-archive.bm-line-display-shell{--bm-line-color:var(--bm-line-ds)}
.bm-line-archive.bm-line-snap-pop{--bm-line-color:var(--bm-line-sn)}
.bm-line-archive.bm-line-sparkler{--bm-line-color:var(--bm-line-sp)}


/* ---------- v2.3.1 line archive grid ---------- */
/* The line archive renders through the generic query loop, not WooCommerce's
   product template, so it needs its own card treatment. Without this each
   machine rendered one per row at full width. */
.tax-bm_line .wp-block-post-template{
  display:grid !important;
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
  gap:26px !important;
  list-style:none;
  margin:34px 0 72px !important;
  padding:0 !important;
}
.tax-bm_line .wp-block-post-template > li.wp-block-post{
  background:#fff;
  border:1px solid var(--bm-line);
  border-top:4px solid var(--bm-line-color, var(--bm-amber));
  display:flex;
  flex-direction:column;
  margin:0 !important;
  padding:0 0 18px !important;
  width:auto !important;
  overflow:hidden;
  transition:box-shadow .18s ease, transform .18s ease;
}
.tax-bm_line .wp-block-post-template > li.wp-block-post:hover{
  box-shadow:0 14px 34px rgba(16,20,26,.13);transform:translateY(-3px);
}
.tax-bm_line li.wp-block-post img{
  width:100% !important;height:200px !important;object-fit:contain !important;
  background:var(--bm-paper);padding:16px;margin:0 !important;box-sizing:border-box;
}
.tax-bm_line li.wp-block-post .wp-block-post-title{
  font-size:15.5px !important;line-height:1.32;font-weight:700;
  margin:16px 0 0 !important;padding:0 18px !important;
}
.tax-bm_line li.wp-block-post .wp-block-post-title a{text-decoration:none;color:var(--bm-text)}
.tax-bm_line li.wp-block-post .wp-block-post-excerpt,
.tax-bm_line li.wp-block-post .wp-block-post-date{
  font-size:13px !important;line-height:1.5;color:#6B7280;
  padding:0 18px !important;margin:8px 0 0 !important;
}
@media (max-width:1100px){.tax-bm_line .wp-block-post-template{grid-template-columns:repeat(3,minmax(0,1fr)) !important}}
@media (max-width:820px){.tax-bm_line .wp-block-post-template{grid-template-columns:repeat(2,minmax(0,1fr)) !important}}
@media (max-width:520px){.tax-bm_line .wp-block-post-template{grid-template-columns:1fr !important}}


/* ---------- v2.3.2 line card content ---------- */
/* The query loop prints the whole machine description into every card, so a
   19 machine line became a wall of repeated "What it does" headings. A card
   needs the photograph, the name and the code, nothing more. */
.tax-bm_line li.wp-block-post .wp-block-post-content,
.tax-bm_line li.wp-block-post .entry-content,
.tax-bm_line li.wp-block-post .wp-block-post-date,
.tax-bm_line li.wp-block-post .bm-specs,
.tax-bm_line li.wp-block-post .bm-enquire{
  display:none !important;
}
/* The machine name is an h2 inside the card, so it must not be caught by the
   rule above. Publish dates are meaningless on a machine and are hidden. */
.tax-bm_line li.wp-block-post h2.wp-block-post-title{display:block !important}
.tax-bm_line li.wp-block-post .wp-block-post-excerpt{
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  overflow:hidden;font-size:13.5px !important;color:#6B7280;
  padding:0 18px !important;margin:8px 0 0 !important;line-height:1.5;
}
.tax-bm_line li.wp-block-post .wp-block-post-title{
  min-height:auto;margin:16px 0 0 !important;
}


/* ---------- v2.3.3 line card stack ---------- */
/* Each card's contents sit in an inner wp-block-group that was not a flex
   column, so the fixed height image overlapped the machine name. */
.tax-bm_line li.wp-block-post > .wp-block-group{
  display:flex !important;
  flex-direction:column !important;
  height:100%;
  padding:0 !important;
  margin:0 !important;
  gap:0 !important;
}
.tax-bm_line li.wp-block-post .wp-block-post-featured-image{
  margin:0 !important;
  order:1;
  flex:0 0 auto;
}
.tax-bm_line li.wp-block-post .wp-block-post-featured-image a,
.tax-bm_line li.wp-block-post .wp-block-post-featured-image img{
  display:block;margin:0 !important;
}
.tax-bm_line li.wp-block-post h2.wp-block-post-title{
  order:2;
  font-size:15px !important;
  line-height:1.34 !important;
  padding:16px 18px 18px !important;
  margin:0 !important;
  min-height:auto !important;
}
.tax-bm_line li.wp-block-post{padding-bottom:0 !important}


/* ---------- v2.4.0 machine video ---------- */
.bm-video{margin:56px 0 0;padding:0}
.bm-video h2{
  font-size:13px !important;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:var(--bm-ink);display:inline-block;margin:0 !important;padding:11px 20px;
}
.bm-video video{
  display:block;width:100%;max-height:620px;background:#0d1014;
  border:1px solid var(--bm-ink);border-top-width:3px;object-fit:contain;
}
.bm-video-note{
  background:var(--bm-paper);border:1px solid var(--bm-line);border-top:0;
  margin:0 !important;padding:14px 20px;font-size:13px;color:#5A616A;
}
@media (max-width:700px){ .bm-video video{max-height:70vh} }


/* =========================================================================
   v2.5.0 inquiry form
   ========================================================================= */

.page-id-17 .wp-block-post-title{
  font-size:clamp(28px,3.4vw,44px) !important;
  padding-left:18px;border-left:6px solid var(--bm-amber);
  margin:0 0 20px !important;letter-spacing:-.015em;
}
.page-id-17 .wp-block-post-content > p{max-width:70ch;font-size:16.5px;line-height:1.6;color:#3A4048}
.page-id-17 .wp-block-post-content > p:first-of-type{
  font-size:19px;line-height:1.55;color:var(--bm-text);font-weight:600;
}

/* form shell */
.page-id-17 .fluentform{
  background:var(--bm-paper);
  border:1px solid var(--bm-line);
  border-top:5px solid var(--bm-amber);
  padding:34px 36px 38px;
  margin:34px 0 72px;
  max-width:none;
}
.page-id-17 .fluentform form{max-width:none}

/* two column on wide screens */
@media (min-width:900px){
  .page-id-17 .fluentform .ff-el-group{
    display:inline-block;width:calc(50% - 13px);vertical-align:top;margin-right:24px;
  }
  .page-id-17 .fluentform .ff-el-group:nth-of-type(2n){margin-right:0}
  /* long answers and the notes field take the full width */
  .page-id-17 .fluentform .ff-el-group:has(textarea),
  .page-id-17 .fluentform .ff-el-group:has(.ff-el-form-check){
    display:block;width:100%;margin-right:0;
  }
}

.page-id-17 .ff-el-group{margin-bottom:22px}
.page-id-17 .ff-el-input--label label{
  font-size:13px !important;font-weight:700 !important;letter-spacing:.04em;
  text-transform:uppercase;color:#4A5058 !important;margin-bottom:8px !important;
}
.page-id-17 .ff-el-form-control{
  border:1px solid #C9CDD3 !important;border-radius:0 !important;
  padding:13px 14px !important;font-size:15px !important;background:#fff !important;
  box-shadow:none !important;transition:border-color .14s ease;
}
.page-id-17 .ff-el-form-control:focus{
  border-color:var(--bm-amber) !important;outline:2px solid rgba(245,166,35,.25) !important;outline-offset:0;
}
.page-id-17 textarea.ff-el-form-control{min-height:120px !important}

/* radio and checkbox groups read as choices, not a list of dots */
.page-id-17 .ff-el-form-check{
  background:#fff;border:1px solid #D8DBE0;padding:11px 14px;margin:0 0 8px;
  transition:border-color .14s, background .14s;
}
.page-id-17 .ff-el-form-check:hover{border-color:var(--bm-amber)}
.page-id-17 .ff-el-form-check label{font-size:15px !important;cursor:pointer;margin:0}
.page-id-17 .ff-el-form-check input{margin-right:9px}

/* helper text and required marks */
.page-id-17 .ff-el-help-message{font-size:12.5px !important;color:#6B7280 !important;margin-top:6px !important}
.page-id-17 .ff-el-is-error .ff-el-form-control{border-color:#A32C2C !important}
.page-id-17 .text-danger,.page-id-17 .ff-el-is-error .error{color:#A32C2C !important;font-size:12.5px}

/* submit */
.page-id-17 .ff-btn-submit{
  background:var(--bm-amber) !important;color:#10141a !important;
  border:2px solid var(--bm-amber) !important;border-radius:0 !important;
  font-weight:800 !important;font-size:15px !important;letter-spacing:.02em;
  padding:15px 34px !important;box-shadow:none !important;
  transition:background .15s, border-color .15s;
}
.page-id-17 .ff-btn-submit:hover{background:var(--bm-amber-dk) !important;border-color:var(--bm-amber-dk) !important}
.page-id-17 .ff_submit_btn_wrapper{margin-top:10px !important}

/* confirmation */
.page-id-17 .ff-message-success{
  background:#fff;border:1px solid var(--bm-line);border-top:5px solid var(--bm-line-cs);
  padding:30px 32px;font-size:16px;line-height:1.6;
}


/* ---------- v2.5.1 sizing pass ---------- */

/* Inquiry button was full bleed inside the detail card and dominated it. */
.single-product .bm-enquire .bm-btn{
  width:auto !important;
  display:inline-flex !important;
  font-size:14px !important;
  padding:13px 26px !important;
}

/* Specification: tighter cells so the grid is compact now that Item Type,
   Production Line and Access no longer take rows. */
.bm-spec-grid{grid-template-columns:repeat(auto-fit,minmax(190px,1fr)) !important}
.bm-spec-row{padding:13px 16px !important}
.bm-spec-row dt{font-size:10.5px !important;letter-spacing:.1em}
.bm-spec-row dd{font-size:14.5px !important;line-height:1.4 !important}
.bm-specs h2{font-size:12px !important;padding:9px 16px !important}
.bm-spec-note{padding:12px 16px !important;font-size:12.5px !important}

/* Related products: the heading and card titles were inheriting display sizes. */
.single-product .related > h2,
.single-product section.related > h2{
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  color:#6B7280 !important;
  margin:0 0 20px !important;
  border:0 !important;
  padding:0 !important;
}
.single-product .related li.product .woocommerce-loop-product__title,
.single-product .related li.product h2,
.single-product .related li.product h3,
.single-product .related li.wp-block-post .wp-block-post-title{
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.32 !important;
  letter-spacing:0 !important;
  padding:0 14px !important;
  margin:12px 0 0 !important;
}
.single-product .related li.product img,
.single-product .related li.wp-block-post img{height:150px !important;padding:12px !important}


/* ---------- v2.5.2 related products ---------- */
/* Related machines render through the Product Collection block, not the
   classic related-products markup, so the earlier .related rules never
   applied. The block inherits display heading sizes: 48px heading, 34px
   card titles. */
.single-product .wp-block-woocommerce-product-collection{
  margin-top:56px;padding-top:34px;border-top:1px solid var(--bm-line);
}
.single-product main > .wp-block-heading,
.single-product .wp-block-woocommerce-product-collection + .wp-block-heading,
.single-product h2.wp-block-heading{
  font-size:13px !important;
  font-weight:800 !important;
  letter-spacing:.14em !important;
  text-transform:uppercase !important;
  color:#6B7280 !important;
  margin:0 0 22px !important;
  line-height:1.3 !important;
}
.single-product .wc-block-product-template h3.wp-block-post-title,
.single-product .wc-block-product-template h3.wp-block-post-title a,
.single-product .wc-block-product-template .wp-block-post-title.has-medium-font-size{
  font-size:14px !important;
  font-weight:700 !important;
  line-height:1.34 !important;
  letter-spacing:0 !important;
  text-align:left !important;
  padding:0 16px !important;
  margin:14px 0 0 !important;
  text-decoration:none;
}
.single-product .wc-block-product-template h3.wp-block-post-title a{color:var(--bm-text) !important}
.single-product .wc-block-product-template li.wc-block-product img{
  height:150px !important;padding:12px !important;object-fit:contain;background:var(--bm-paper);
}
.single-product .wc-block-product-template{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;gap:20px !important;
}
@media (max-width:900px){
  .single-product .wc-block-product-template{grid-template-columns:repeat(2,minmax(0,1fr)) !important}
}


/* ---------- v2.6.0 archive filter ---------- */
.bm-filter{
  display:flex;flex-wrap:wrap;align-items:center;gap:14px;
  padding:0 0 26px;margin:0 0 8px;border-bottom:1px solid var(--bm-line);
}
.bm-filter-lines{display:flex;flex-wrap:wrap;gap:8px}
.bm-chip{
  appearance:none;cursor:pointer;background:#fff;
  border:1px solid var(--bm-line);border-left:4px solid var(--chip, var(--bm-muted));
  padding:9px 14px;font-size:13px;font-weight:700;letter-spacing:.02em;
  color:var(--bm-text);transition:background .14s,border-color .14s;
}
.bm-chip span{color:#8A9099;font-weight:600;margin-left:5px}
.bm-chip:hover{background:var(--bm-paper)}
.bm-chip.is-on{background:var(--bm-ink);color:#fff;border-color:var(--bm-ink)}
.bm-chip.is-on span{color:#9AA1AA}
.bm-filter-search{
  flex:1 1 280px;min-width:220px;
  border:1px solid #C9CDD3;padding:11px 14px;font-size:14px;background:#fff;
}
.bm-filter-search:focus{outline:2px solid rgba(245,166,35,.3);border-color:var(--bm-amber)}
.bm-filter-count{
  width:100%;margin:0;font-size:13px;color:#6B7280;
  font-weight:600;letter-spacing:.02em;
}

/* shipping page stat cards */
.bm-cards--ship{grid-template-columns:repeat(3,1fr) !important}
.bm-cards--ship .bm-card .num{
  font-size:44px !important;font-weight:800;color:var(--bm-amber-dk);
  letter-spacing:-.02em;line-height:1;padding-top:24px;display:block;
}
.bm-cards--ship .bm-card h3{margin-top:10px !important}
@media(max-width:700px){.bm-cards--ship{grid-template-columns:1fr !important}}


/* ---------- v2.7.0 not found ---------- */
.bm-404{background:var(--bm-ink);color:#fff;padding:78px 0 84px;border-bottom:5px solid var(--bm-amber)}
.bm-404 .bm-eyebrow{color:var(--bm-amber);margin:0 0 10px}
.bm-404 h1{font-size:clamp(30px,4.4vw,54px);line-height:1.06;margin:0 0 14px;letter-spacing:-.02em}
.bm-404 > .bm-wrap > p{color:#C7CCD3;font-size:18px;line-height:1.55;max-width:60ch;margin:0}
.bm-404 .bm-hero-actions{margin-top:30px}
.bm-404 .bm-btn--ghost{border-color:rgba(255,255,255,.4);color:#fff !important}
.bm-404 .bm-btn--ghost:hover{background:#fff;color:var(--bm-ink) !important;border-color:#fff}
.bm-404-lines{
  list-style:none;display:flex;flex-wrap:wrap;gap:10px;
  margin:34px 0 0;padding:26px 0 0;border-top:1px solid rgba(255,255,255,.16);
}
.bm-404-lines a{
  display:inline-flex;align-items:center;gap:8px;text-decoration:none;
  background:rgba(255,255,255,.06);border-left:4px solid var(--chip,var(--bm-amber));
  padding:10px 15px;color:#fff;font-size:13.5px;font-weight:700;transition:background .14s;
}
.bm-404-lines a:hover{background:rgba(255,255,255,.14)}
.bm-404-lines span{color:#9AA1AA;font-weight:600}

/* The 404 template's own empty content block adds nothing below the band. */
.error404 .wp-block-query-no-results,
.error404 .wp-block-post-content,
.error404 .wp-block-heading:not(.bm-404 *),
.error404 .wp-block-search{display:none !important}
.error404 main.wp-block-group{padding-block:0 !important;min-height:0}


/* ---------- v2.8.0 mobile overflow ---------- */
/* The burger sat 40px past the viewport at 390px wide, giving every phone a
   sideways scroll. Belt and braces: contain the header row and stop any child
   forcing the document wider than the screen. */
html,body{overflow-x:hidden;max-width:100%}

.bm-header > .bm-wrap{
  display:flex;align-items:center;justify-content:space-between;
  gap:12px;flex-wrap:nowrap;
}
.bm-burger{
  flex:0 0 auto;margin-left:auto;
  font-size:22px;line-height:1;background:none;border:0;color:#fff;
  padding:8px 4px;cursor:pointer;
}
.bm-header .bm-brand{min-width:0;flex:1 1 auto}
.bm-header .bm-brand img{flex:0 0 auto}

@media (max-width:860px){
  .bm-header > .bm-wrap{padding-left:16px !important;padding-right:16px !important}
  .bm-brand-name{font-size:17px}
  .bm-brand-sub{font-size:9.5px;letter-spacing:.08em}
  .bm-header .bm-brand img{width:44px;height:44px}
  .bm-nav{
    display:none;flex-direction:column;align-items:stretch;gap:0;
    position:absolute;left:0;right:0;top:100%;
    background:#232225;border-top:1px solid rgba(255,255,255,.14);
    padding:8px 16px 16px;z-index:60;
  }
  .bm-header{position:relative}
  .bm-nav a{padding:13px 4px;border-bottom:1px solid rgba(255,255,255,.1);color:#fff}
  .bm-nav .bm-btn{margin-top:12px;justify-content:center;border-bottom:0}
  .bm-hero{padding:56px 0 52px !important}
  .bm-section{padding:52px 0 !important}
}
@media (max-width:520px){
  .bm-hero h1{font-size:34px !important}
  .bm-hero p{font-size:16.5px}
  .bm-hero-actions{flex-direction:column;align-items:stretch}
  .bm-hero-actions .bm-btn{justify-content:center}
}


/* =========================================================================
   v2.9.0 legibility pass
   Inter replaces system-ui, which rendered as a different typeface on every
   machine (Segoe on Windows, Helvetica on Mac). Inter is free, on Google
   Fonts, and drawn for screen legibility at small sizes.
   ========================================================================= */
/* Inter is enqueued in functions.php; an @import here would be ignored. */

:root{ --bm-sans:'Inter', system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; }

body, .bm-header, .bm-footer, .bm-nav, .bm-btn,
input, select, textarea, button,
.wc-block-product-template, .wp-block-post-title,
.bm-spec-row, .bm-spec-note, .bm-enquire-note{
  font-family: var(--bm-sans) !important;
  -webkit-font-smoothing: antialiased;
}

/* ---------- logo, header and footer ---------- */
.bm-header .bm-brand img{
  width:150px !important;height:150px !important;
  object-fit:contain;
}
.bm-header{padding:14px 0}
.bm-brand-name{font-size:26px !important;letter-spacing:.01em}
.bm-brand-sub{font-size:12px !important;letter-spacing:.14em}
.bm-footer .bm-footer-grid img{width:150px !important;height:150px !important;object-fit:contain}

@media (max-width:860px){
  .bm-header .bm-brand img{width:70px !important;height:70px !important}
  .bm-footer .bm-footer-grid img{width:110px !important;height:110px !important}
}

/* ---------- specification: four across, never one orphan ---------- */
.bm-spec-grid{
  grid-template-columns:repeat(4,minmax(0,1fr)) !important;
}
@media (max-width:1000px){ .bm-spec-grid{grid-template-columns:repeat(3,minmax(0,1fr)) !important} }
@media (max-width:760px){  .bm-spec-grid{grid-template-columns:repeat(2,minmax(0,1fr)) !important} }
@media (max-width:460px){  .bm-spec-grid{grid-template-columns:1fr !important} }

.bm-spec-row{padding:16px 18px !important}
.bm-spec-row dt{font-size:11.5px !important;letter-spacing:.1em;color:#767C85 !important}
.bm-spec-row dd{font-size:16px !important;line-height:1.42 !important;font-weight:600 !important}

/* ---------- the dark note bar ---------- */
.bm-spec-note{
  font-size:15px !important;
  line-height:1.55 !important;
  color:#E4E7EB !important;
  padding:16px 20px !important;
  font-weight:400;
}

/* ---------- text under the inquiry button ---------- */
.bm-enquire-note{
  font-size:15px !important;
  line-height:1.55 !important;
  color:#3A4048 !important;
  max-width:none !important;
}

/* ---------- machine card titles ---------- */
li.wc-block-product .wp-block-post-title,
li.wc-block-product .woocommerce-loop-product__title,
.tax-bm_line li.wp-block-post h2.wp-block-post-title{
  font-size:17px !important;
  line-height:1.32 !important;
  font-weight:700 !important;
  color:var(--bm-text) !important;
}
li.wc-block-product .bm-loop-sku,
.tax-bm_line li.wp-block-post .bm-loop-sku{
  font-size:13.5px !important;
  color:#5A616A !important;
  letter-spacing:.05em;
}

/* related machines stay a step smaller than the main grid */
.single-product .wc-block-product-template h3.wp-block-post-title,
.single-product .wc-block-product-template h3.wp-block-post-title a{
  font-size:15px !important;
}

/* ---------- general body legibility ---------- */
.single-product .woocommerce-tabs p,
.wp-block-post-content > p{font-size:16.5px;line-height:1.62}
.bm-card .count{font-size:13.5px !important;color:#5A616A !important}


/* ---------- v2.9.1 spec value wrapping ---------- */
/* Multi part values (three dimension sets for a three unit machine, eleven
   mandrel sizes) were running together or clipping out of the cell. Each part
   now sits on its own line and nothing can overflow. */
.bm-spec-row{ min-width:0; overflow-wrap:anywhere; }
.bm-spec-row dd{ min-width:0; overflow-wrap:anywhere; word-break:normal; }

.bm-spec-list{
  display:block;
  line-height:1.45;
}
.bm-spec-list + .bm-spec-list{ margin-top:3px; }

/* A long list of mandrel sizes reads better a shade smaller. */
.bm-spec-row dd .bm-spec-list{ font-size:15px; }

/* Keep every cell aligned to the top so stacked values do not centre oddly. */
.bm-spec-grid{ align-items:stretch; }
.bm-spec-row{ align-content:start; }


/* ---------- v2.9.2 long list columns ---------- */
/* Eleven mandrel sizes stacked one per line made that cell 326px tall and
   dragged three neighbouring cells to match. Short repeated values flow into
   columns instead, which keeps the row compact and still readable. */
.bm-spec-row dd{
  columns:auto;
  column-gap:22px;
}
.bm-spec-row dd:has(.bm-spec-list:nth-child(6)){
  columns:2 88px;
}
.bm-spec-row dd:has(.bm-spec-list:nth-child(10)){
  columns:3 76px;
}
.bm-spec-list{ break-inside:avoid; }

@media (max-width:760px){
  .bm-spec-row dd:has(.bm-spec-list:nth-child(6)),
  .bm-spec-row dd:has(.bm-spec-list:nth-child(10)){ columns:2 80px; }
}


/* ---------- v2.9.3 detail column width ---------- */
/* The detail panel was 530px against 646px for the photograph, which wrapped
   the SKU onto two lines. Even the split gives the meta row room. */
.single-product .wp-block-columns > .wp-block-column:first-child{flex:1 1 52% !important}
.single-product .wp-block-columns > .wp-block-column:last-child{flex:1 1 48% !important}
.single-product .wp-block-columns{gap:40px !important}

/* Meta row: label and value on one line, never broken mid code. */
.single-product .wp-block-woocommerce-product-meta .wp-block-group{
  gap:26px !important;
  flex-wrap:wrap;
}
.single-product .wp-block-woocommerce-product-meta,
.single-product .product_meta{
  font-size:13.5px !important;
  line-height:1.6;
}
.single-product .wp-block-woocommerce-product-meta .wp-block-group > *{
  white-space:nowrap;
  min-width:0;
}
/* Tags can wrap, they are long; the SKU and category must not. */
.single-product .wp-block-woocommerce-product-meta .wp-block-group > *:last-child{
  white-space:normal;
}

@media (max-width:900px){
  .single-product .wp-block-columns > .wp-block-column:first-child,
  .single-product .wp-block-columns > .wp-block-column:last-child{flex:1 1 100% !important}
}


/* =========================================================================
   v3.0.0 production stages on line pages
   ========================================================================= */

.bm-line-stats{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;background:var(--bm-line);border:1px solid var(--bm-line);
  margin:32px 0 44px;
}
.bm-stat{background:#fff;padding:20px 22px}
.bm-stat .n{
  display:block;font-size:34px;font-weight:800;line-height:1;
  color:var(--bm-line-color,var(--bm-amber-dk));letter-spacing:-.02em;
}
.bm-stat .l{
  display:block;margin-top:8px;font-size:11.5px;font-weight:700;
  letter-spacing:.12em;text-transform:uppercase;color:#6B7280;
}

.bm-stages{margin:0 0 72px}
.bm-stage{margin:0 0 44px}
.bm-stage-head{
  display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;
  padding:0 0 14px;margin:0 0 22px;border-bottom:2px solid var(--bm-ink);
}
.bm-stage-num{
  font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:var(--bm-line-color,var(--bm-amber-dk));padding:6px 11px;
}
.bm-stage-head h2{
  font-size:23px !important;margin:0 !important;letter-spacing:-.015em;
  border:0 !important;padding:0 !important;line-height:1.2;
}
.bm-stage-count{
  margin-left:auto;font-size:12.5px;font-weight:600;color:#6B7280;
  letter-spacing:.04em;
}

.bm-stage-grid{
  display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;
}
.bm-machine-card{
  display:flex;flex-direction:column;text-decoration:none;
  background:#fff;border:1px solid var(--bm-line);
  border-top:4px solid var(--bm-line-color,var(--bm-amber));
  transition:box-shadow .18s ease, transform .18s ease;
}
.bm-machine-card:hover{box-shadow:0 14px 34px rgba(16,20,26,.13);transform:translateY(-3px)}
.bm-machine-card img{
  width:100%;height:170px;object-fit:contain;background:var(--bm-paper);
  padding:14px;box-sizing:border-box;display:block;
}
.bm-machine-name{
  font-size:15.5px;font-weight:700;line-height:1.32;color:var(--bm-text);
  padding:14px 16px 0;
}
.bm-machine-sku{
  font-size:13px;color:#5A616A;letter-spacing:.05em;padding:6px 16px 16px;
}

@media (max-width:1100px){ .bm-stage-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:820px){
  .bm-stage-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .bm-line-stats{grid-template-columns:1fr}
}
@media (max-width:520px){ .bm-stage-grid{grid-template-columns:1fr} }


/* ---------- v3.0.1 stage context on machine pages ---------- */
.bm-stage-context{margin:56px 0 0}
.bm-stage-context > h2{
  font-size:12px !important;font-weight:800;letter-spacing:.14em;text-transform:uppercase;
  color:#fff;background:var(--bm-ink);display:inline-block;margin:0 !important;padding:9px 16px;
}
.bm-ctx-line{
  border:1px solid var(--bm-ink);border-top-width:3px;
  padding:22px 22px 20px;background:#fff;
}
.bm-ctx-line + .bm-ctx-line{margin-top:14px;border-top-width:1px}
.bm-ctx-name{
  display:inline-block;font-size:15px;font-weight:800;letter-spacing:.02em;
  color:var(--bm-text);text-decoration:none;border-bottom:2px solid var(--bm-amber);
  padding-bottom:2px;margin-bottom:16px;
}
.bm-ctx-steps{
  display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0 0 16px;padding:0;
  counter-reset:none;
}
.bm-ctx-steps li{
  display:flex;align-items:center;gap:7px;
  font-size:13px;color:#5A616A;background:var(--bm-paper);
  border:1px solid var(--bm-line);padding:8px 12px;
}
.bm-ctx-steps li span{
  font-size:10.5px;font-weight:800;letter-spacing:.06em;color:#8A9099;
}
.bm-ctx-steps li.is-here{
  background:var(--bm-ink);color:#fff;border-color:var(--bm-ink);font-weight:700;
}
.bm-ctx-steps li.is-here span{color:var(--bm-amber)}
.bm-ctx-peers{
  margin:0 !important;padding-top:14px;border-top:1px solid var(--bm-line);
  font-size:14.5px;line-height:1.7;color:#3A4048;
}
.bm-ctx-peers a{color:var(--bm-text);text-decoration:none;border-bottom:1px solid var(--bm-line)}
.bm-ctx-peers a:hover{border-bottom-color:var(--bm-amber)}
.bm-ctx-peers a span{color:#7A828C;font-size:13px}
@media (max-width:600px){ .bm-ctx-steps{flex-direction:column;align-items:stretch} }


/* ---------- v3.0.2 glossary ---------- */
.bm-glossary{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:1px;background:var(--bm-line);border:1px solid var(--bm-line);margin:0;
}
.bm-term{background:#fff;padding:20px 22px}
.bm-term dt{
  font-size:16px;font-weight:800;letter-spacing:-.01em;color:var(--bm-text);
  margin:0 0 8px;
}
.bm-term dd{
  margin:0;font-size:14.5px;line-height:1.6;color:#4A5058;
}
.bm-section--paper .bm-term{background:#fff}
@media (max-width:1000px){ .bm-glossary{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .bm-glossary{grid-template-columns:1fr} }


/* ---------- v3.1.0 search field ---------- */
/* The field read as plain grey text with no border, so it did not look like a
   control until you clicked it. Give it a visible edge at rest and a search
   icon so its purpose is obvious without reading the placeholder. */
.bm-filter-search{
  border:1px solid #B9BEC5 !important;
  background-color:#fff;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%236B7280' stroke-width='2.2' stroke-linecap='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='M20 20l-3.6-3.6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:12px 50%;
  background-size:17px 17px;
  padding:11px 14px 11px 38px !important;
  color:var(--bm-text);
}
.bm-filter-search::placeholder{color:#7A828C;opacity:1}
.bm-filter-search:hover{border-color:#8A9099 !important}
.bm-filter-search:focus{
  border-color:var(--bm-amber) !important;
  outline:2px solid rgba(245,166,35,.30);
  outline-offset:0;
}

/* ---------- v3.1.1 jump to video ---------- */
/* On a phone the video sits well below the fold, under the description and the
   specification. Someone arriving from a QR code on the machine itself is
   usually there to watch it run, so give them a direct route. */
.bm-jump-video{
  display:none;
  align-items:center;
  gap:9px;
  width:100%;
  justify-content:center;
  margin:0 0 16px;
  background:var(--bm-ink);
  color:#fff !important;
  border:2px solid var(--bm-ink);
  font-weight:700;
  font-size:14.5px;
  padding:13px 20px;
  text-decoration:none;
}
.bm-jump-video svg{flex:0 0 auto}
.bm-jump-video:hover{background:#000;border-color:#000}

@media (max-width:900px){
  .bm-jump-video{display:inline-flex}
}
