/*
  Berserker Apparel theme styles

  Contents
  0. Design tokens (brand colours, fonts, spacing) and base elements
  1. Block styles (opt-in)
  2. Header and desktop navigation
  3. Homepage hero
  4. Homepage intro and category panels
  5. Product cards and collections
  6. Single product page
  7. Basket and checkout: base
  8. Content pages and galleries
  9. Recently viewed
  10. Footer
  11. Responsive layout (header, mobile menu, hero, catalogue, commerce)
  12. Reduced motion
  13. Shop welcome tiles
  14. Page Without Title template
  15. Heading typography
  16. Mobile menu section labels
  17. Product card alignment and sale prices
  18. Shop pagination
  19. Footer back-to-top link
  20. Block style: soft grunge
  21. Basket layout and sticky totals
  22. Header basket count
  23. Basket and checkout: hierarchy and forms
  24. Basket, checkout and account: page shell
  25. Product name typography
  26. Notices (added to basket, errors, info)
  27. Checkout order review
  28. Block style previews in the editor
  29. Sale badge
  30. Accessibility helpers
  31. Contact form spam trap
  32. Contact page
  33. Cookie consent banner and settings
  34. Gallery captions and lightbox
  35. Homepage content wrapper
  36. Blog post: lead, range cards, call to action

  Order matters: later sections override earlier ones, and several components are
  styled in more than one place (see "Find by component" below). Rules have not been
  moved, so the cascade is exactly as before.

  Find by component
  Header and navigation ... 2, 11, 16, 22
  Homepage ............... 3, 4, 11, 35
  Product cards .......... 5, 11, 17, 25
  Shop pages ............. 11, 13, 18
  Single product ......... 6, 11, 29
  Basket and checkout .... 7, 11, 21, 23, 24, 27
  Notices ................ 26
  Content pages and posts  8, 14, 34, 36
  Contact page ........... 31, 32
  Footer ................. 10, 11, 19, 33
  Cookie consent ......... 33
  Block styles ........... 1, 20, 28
  Typography ............. 15, 25
  Mobile menu ............ 11, 16
*/

/* ===== 0. Design tokens and base elements ===== */
:root{--ba-dark:var(--wp--preset--color--dark,#101010);--ba-panel:var(--wp--preset--color--surface,#fff);--ba-paper:var(--wp--preset--color--base,#f6f5f2);--ba-ink:var(--wp--preset--color--text,#202020);--ba-muted:var(--wp--preset--color--muted,#525252);--ba-border:var(--wp--preset--color--border,#d9d6d1);--ba-orange:var(--wp--preset--color--orange,#f09f32);--ba-cyan:var(--wp--preset--color--cyan,#4cb1ca);--ba-link:var(--wp--preset--color--cyan-text,#12647b);--ba-display:var(--wp--preset--font-family--berserker-display,Wallpoet,"Arial Black",Impact,sans-serif);--ba-edge:clamp(18px,4vw,72px);--ba-content:1360px}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;overflow-x:hidden}
.wp-site-blocks{margin:0;max-width:100%}
:where(a,button,input,select,textarea):focus-visible{outline:3px solid var(--ba-cyan);outline-offset:3px}
a{overflow-wrap:anywhere}
:is(.ba-main,.ba-shop-page,.ba-product-page,.ba-content-page,.ba-commerce-shell){min-width:0}

/* ===== 1. Block styles (opt-in) ===== */
/* Native Site Editor opt-in block style, rather than fixed site-wide wallpaper. */
.wp-block-group.is-style-berserker-brick{background-color:var(--ba-paper);background-image:linear-gradient(90deg,rgba(0,0,0,.025) 1px,transparent 1px),linear-gradient(rgba(0,0,0,.025) 1px,transparent 1px);background-size:74px 32px,74px 32px;background-position:37px 16px,0 0}

/* ===== 2. Header and desktop navigation ===== */
/* Native header and accessible core navigation, including desktop multi-column Shop dropdown. */
.ba-site-header{position:relative;z-index:50;background:var(--ba-dark);color:#fff;min-height:90px;padding:10px var(--ba-edge);gap:clamp(14px,2vw,35px)}
.ba-site-header .ba-logo{width:166px;flex:0 0 166px;margin:0}
.ba-site-header .ba-logo img{display:block;width:100%;height:auto;max-height:67px;object-fit:contain}
.ba-site-header .ba-primary-nav{margin-left:auto}
.ba-site-header .ba-mobile-nav{display:none!important}
.ba-primary-nav .wp-block-navigation__container{gap:clamp(10px,1.2vw,22px)}
.ba-site-header .wp-block-navigation-item__content{font-size:12px;font-weight:750;letter-spacing:.075em;text-decoration:none;text-transform:uppercase;white-space:normal}
.ba-site-header .wp-block-navigation__container>.wp-block-navigation-item>.wp-block-navigation-item__content{color:#f7f7f7}
.ba-site-header .wp-block-navigation__container>.wp-block-navigation-item>.wp-block-navigation-item__content:hover,.ba-site-header .wp-block-navigation__container>.wp-block-navigation-item>.wp-block-navigation-item__content:focus-visible{color:var(--ba-orange);text-decoration:none}
.ba-site-header .wp-block-navigation-item.ba-basket-nav>a{border:1px solid #766650;padding:.5em .9em}
@media (min-width:782px){
 .ba-primary-nav .ba-shop-mega{position:static}
 .ba-primary-nav .ba-shop-mega>.wp-block-navigation__submenu-container{width:min(830px,calc(100vw - 2 * var(--ba-edge)));max-width:calc(100vw - 2 * var(--ba-edge));left:auto;right:var(--ba-edge);top:calc(100% - 3px);padding:23px 27px;background:#171717;color:#fff;border:1px solid #49423a;border-top:3px solid var(--ba-orange);box-shadow:0 15px 36px #0006;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:25px;row-gap:7px}
 .ba-primary-nav .ba-shop-mega:is(:hover,:focus-within)>.wp-block-navigation__submenu-container{width:min(830px,calc(100vw - 2 * var(--ba-edge)));min-width:min(830px,calc(100vw - 2 * var(--ba-edge)));height:auto;overflow:visible;opacity:1;visibility:visible}
 /* easier to reach. An invisible bridge covers the gap between the SHOP link and the panel, and
    the panel waits 350ms before closing so a diagonal or slightly slow pointer does not lose it.
    It stays hidden (and not focusable or clickable) while closed; keyboard focus-within is
    unchanged. */
 .ba-primary-nav .ba-shop-mega>.wp-block-navigation__submenu-container{height:auto;overflow:visible;transition:opacity .15s ease .2s,visibility 0s linear .35s}
 .ba-primary-nav .ba-shop-mega:is(:hover,:focus-within)>.wp-block-navigation__submenu-container{transition-delay:0s,0s}
 .ba-primary-nav .ba-shop-mega>.wp-block-navigation__submenu-container::before{content:"";position:absolute;left:0;right:0;bottom:100%;height:14px}
 .ba-primary-nav .ba-shop-mega>.wp-block-navigation__submenu-container>.wp-block-navigation-item{min-width:0;align-items:stretch}
 .ba-primary-nav .ba-shop-mega .wp-block-navigation__submenu-container a{font-size:13px;line-height:1.35;white-space:normal;padding:11px 8px;border-bottom:1px solid #ffffff1c;color:#f5f5f5}
 .ba-primary-nav .ba-shop-mega .wp-block-navigation__submenu-container a:hover,.ba-primary-nav .ba-shop-mega .wp-block-navigation__submenu-container a:focus-visible{background:#262626;color:var(--ba-orange)}
 .ba-primary-nav .ba-shop-mega .ba-mega-title>a{color:var(--ba-orange)!important;font-weight:800}
}

/* ===== 3. Homepage hero ===== */
/* Dark photographic hero: preserve branded left-side text baked into photo. */
.ba-main{margin:0!important}
.ba-main>.wp-block-group{margin-block-start:0}
/* photograph + two native Gutenberg Columns, layered by CSS grid. The column widths/blocks
   remain editable from the normal Home page editor. */
.ba-hero{position:relative;isolation:isolate;display:grid;grid-template-columns:minmax(0,1fr);align-items:stretch;min-height:0;aspect-ratio:1200/675;background:#060606;overflow:hidden}
.ba-hero::before{position:absolute;inset:0;content:"";z-index:1;pointer-events:none;background:linear-gradient(90deg,transparent 38%,#0001 53%,#0009 80%,#000d)}
.ba-hero>.ba-hero-image{grid-area:1/1;z-index:0;position:relative;width:100%;height:100%;max-width:none!important;margin:0!important;min-width:0}
.ba-hero .ba-hero-image img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.ba-hero>.ba-hero-overlay{grid-area:1/1;z-index:2;align-self:center;position:relative;display:flex;flex-wrap:nowrap;gap:0!important;width:100%;max-width:none!important;margin:0!important;padding:24px clamp(25px,5vw,95px);box-sizing:border-box;min-width:0}
.ba-hero-overlay>.ba-hero-spacer{min-width:0}
.ba-hero .ba-hero-overlay>.ba-hero-copy{position:relative;align-self:center;min-width:0;max-width:none!important;margin:0!important;padding:0;box-sizing:border-box;text-align:right;color:#fff;text-shadow:0 2px 5px #000a}
.ba-hero-copy h1{font-family:var(--ba-display);color:var(--ba-orange);font-size:clamp(44px,5.3vw,102px)!important;line-height:1.04;letter-spacing:.025em;margin:0 0 13px;text-transform:none}
.ba-hero-copy .ba-tagline{color:#fff;font-weight:800;font-size:clamp(16px,1.65vw,24px);letter-spacing:.11em;text-transform:uppercase;margin:0 0 10px}
.ba-hero .ba-hero-description{color:#e6f5f9;font-size:clamp(15px,1.4vw,19px);margin:0 0 23px}
.ba-hero-copy .wp-block-buttons{justify-content:flex-end}
.ba-button-primary .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;min-height:47px;padding:12px 27px;border:2px solid var(--ba-orange);border-radius:0;background:var(--ba-orange);color:#141414;font-size:13px;letter-spacing:.11em;text-decoration:none;text-transform:uppercase;font-weight:800;text-shadow:none}
.ba-button-primary .wp-block-button__link:hover{background:#fff;border-color:#fff;color:#141414}

/* ===== 4. Homepage intro and category panels ===== */
/* Light introduction and original editorial category photographs. */
.ba-intro{background:#f4f4f2;color:var(--ba-ink);padding:clamp(30px,4vw,62px) var(--ba-edge);gap:28px;border-bottom:1px solid var(--ba-border)}
.ba-intro .ba-intro-text{max-width:720px;flex:1 1 430px}
.ba-intro h2,.ba-section-title{font-family:var(--ba-display)}
.ba-intro h2{font-size:clamp(26px,3vw,42px);margin:0 0 10px;color:#1c1c1c}
.ba-intro p{font-size:16px;line-height:1.7;margin:0;color:#414141}
.ba-button-outline .wp-block-button__link{background:transparent;color:#191919;border:2px solid #191919;border-radius:0;font-weight:800;font-size:12px;text-transform:uppercase;padding:12px 22px;letter-spacing:.07em}
.ba-button-outline .wp-block-button__link:hover{background:#191919;color:#fff}
.ba-categories{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:0!important}
.ba-category{margin:0!important;min-width:0}
.ba-category .ba-category-copy{background:#171717;color:#fff;min-height:170px;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:25px}
.ba-category-copy h3{font-size:clamp(24px,2.9vw,37px);margin:0 0 9px;color:var(--ba-orange)}
.ba-category-copy p{color:#ddd;line-height:1.65;font-size:14px;margin:0}
.ba-category-photo{position:relative;aspect-ratio:1;overflow:hidden;margin:0!important}
.ba-category-photo figure{position:absolute;inset:0;width:100%;height:100%;max-width:none;margin:0}
.ba-category-photo img{display:block;width:100%;height:100%;object-fit:cover;filter:saturate(.85);transition:filter .28s ease,transform .35s ease}
.ba-category-photo::after{content:"";position:absolute;inset:48% 0 0;pointer-events:none;background:linear-gradient(transparent,#000c)}
.ba-category-photo p{position:absolute;z-index:1;bottom:18px;left:0;width:100%;text-align:center;margin:0!important;font-weight:800;text-transform:uppercase;letter-spacing:.14em;font-size:18px}
.ba-category-photo p a{color:#fff;text-decoration:none;padding:8px}
.ba-category-photo:is(:hover,:focus-within) img{transform:scale(1.025);filter:saturate(1)}

/* ===== 5. Product cards and collections ===== */
/* Shop, homepage collections and related products: one coherent light card system. */
.ba-product-sections{background:var(--ba-paper);padding:clamp(40px,5vw,76px) var(--ba-edge)}
.ba-product-section{margin:0 auto 58px!important;max-width:var(--ba-content)!important}
.ba-product-section:last-child{margin-bottom:0!important}
.ba-section-title{font-size:clamp(26px,2.8vw,41px);color:var(--ba-ink);padding-bottom:13px;border-bottom:2px solid var(--ba-orange);margin:0 0 22px}
.ba-shop-page,.ba-product-page,.ba-content-page{box-sizing:border-box;max-width:var(--ba-content)!important;margin:0 auto!important;padding:clamp(28px,4vw,60px) var(--ba-edge) clamp(50px,6vw,90px);color:var(--ba-ink)}
.ba-shop-page{max-width:none!important}
.ba-shop-page>*{max-width:var(--ba-content)!important;margin-inline:auto!important}
.ba-shop-tools{min-height:60px;margin:20px auto!important;border-block:1px solid var(--ba-border);gap:16px;color:var(--ba-muted);font-size:13px}
.ba-shop-tools select{color:var(--ba-ink);border:1px solid var(--ba-border);background:#fff;padding:10px;max-width:100%}
/* Give every WooCommerce Product Collection card the same height within its row. Keep the native
   collection column rules editable in the Site Editor. */
.ba-shop-page .wc-block-product-template,.ba-product-sections .wc-block-product-template,.ba-product-recommendations .wc-block-product-template{gap:clamp(14px,2vw,25px);align-items:stretch}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product-template > .wc-block-product{height:100%;align-self:stretch;display:flex;flex-direction:column;align-items:stretch}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product > :is(.wp-block-woocommerce-product-price,.wc-block-components-product-price){margin-top:auto!important;margin-bottom:11px}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product > :is(.wp-block-woocommerce-product-button,.wc-block-components-product-button,.wp-block-button){width:100%;margin-top:0!important;margin-bottom:0!important}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product .wp-block-button{width:100%;margin-top:0;margin-bottom:0}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product .wp-block-button__link{display:flex;width:100%;min-height:42px;align-items:center;justify-content:center;text-align:center;white-space:normal;overflow-wrap:normal;hyphens:auto}
.ba-shop-page .wc-block-product,.ba-product-sections .wc-block-product,.ba-product-recommendations .wc-block-product{min-width:0;background:var(--ba-panel);border:1px solid var(--ba-border);padding:14px;box-shadow:0 1px 5px #00000009;transition:transform .23s ease,box-shadow .23s ease,border-color .23s ease}
@media (hover:hover) and (pointer:fine){
 .ba-shop-page .wc-block-product:hover,.ba-product-sections .wc-block-product:hover,.ba-product-recommendations .wc-block-product:hover{transform:translateY(-4px);border-color:#c5b29c;box-shadow:0 12px 24px #00000018}
 .ba-shop-page .wc-block-product:focus-within,.ba-product-sections .wc-block-product:focus-within,.ba-product-recommendations .wc-block-product:focus-within{border-color:var(--ba-link);box-shadow:0 0 0 2px #12647b40}
}
.ba-shop-page .wc-block-product .wc-block-components-product-image,.ba-product-sections .wc-block-product .wc-block-components-product-image,.ba-product-recommendations .wc-block-product .wc-block-components-product-image{margin:0;position:relative;overflow:hidden;background:#f0efed}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product .wc-block-components-product-image img{display:block;width:100%;aspect-ratio:2/3;object-fit:contain;background:#f0efed;transition:transform .28s ease}
.wc-block-product:focus-within{border-color:var(--ba-link)!important;box-shadow:0 0 0 2px #12647b40}
.wc-block-product:focus-within .ba-card-second-image{opacity:1}
.ba-card-photo-shell{position:relative;isolation:isolate;overflow:hidden}
.ba-card-photo-shell .ba-card-second-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;pointer-events:none;z-index:2;background:#f0efed;transition:opacity .35s ease}
@media (hover:hover) and (pointer:fine){
 .wc-block-product:hover .ba-card-second-image{opacity:1}
 .wc-block-product:is(:hover,:focus-within) .wc-block-components-product-image img{transform:scale(1.018)}
}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product .wp-block-post-title{font-size:15px;line-height:1.38;font-weight:750;min-height:2.7em;margin:13px 0 7px}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product .wp-block-post-title a{color:var(--ba-ink);text-decoration:none}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product .wp-block-post-title a:is(:hover,:focus-visible){color:var(--ba-link);text-decoration:underline;text-underline-offset:3px}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-components-product-price{color:var(--ba-ink);font-weight:750}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wp-block-button__link{display:inline-flex;align-items:center;min-height:42px;background:#171717;color:#fff;border:1px solid #171717;padding:11px 16px;border-radius:1px;font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.03em;text-decoration:none}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wp-block-button__link:is(:hover,:focus-visible){background:var(--ba-orange);border-color:var(--ba-orange);color:#111}
:is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-components-product-sale-badge{background:var(--ba-orange);border:0;border-radius:0;color:#111;font-size:11px;text-transform:uppercase;font-weight:800}
:is(.ba-shop-page,.ba-product-sections,.ba-product-page,.ba-commerce-shell) del{color:#626262;opacity:1}
:is(.ba-shop-page,.ba-product-sections,.ba-product-page,.ba-commerce-shell) ins{color:#17586b;text-decoration:none}

/* ===== 6. Single product page ===== */
/* Single product page retains native WooCommerce gallery and variable product form. */
.ba-product-primary{gap:clamp(22px,4vw,55px)}
.ba-product-information-column .wp-block-post-title{font-family:var(--ba-display);font-size:clamp(36px,4vw,62px);line-height:1.1;margin-top:0}
.ba-product-information-column .wc-block-components-product-price{font-size:clamp(20px,2vw,27px)}
.ba-product-information-column .single_add_to_cart_button,.ba-commerce-shell .woocommerce .button,.ba-commerce-shell .woocommerce #place_order{background:var(--ba-orange);border:1px solid #d38728;color:#101010;border-radius:2px;font-weight:700;padding:12px 23px}
.ba-product-information-column :is(input,select){color:#222;background:#fff;border:1px solid #aaa;padding:9px}
.ba-product-details-container{max-width:var(--ba-content)!important;margin:45px auto 0!important}
.ba-product-details-container .woocommerce-tabs ul.tabs{display:flex;flex-wrap:wrap;gap:20px;border-bottom:1px solid var(--ba-border)}
.ba-product-details-container .woocommerce-tabs ul.tabs a{color:var(--ba-ink)}
.ba-product-recommendations{max-width:var(--ba-content)!important;margin:45px auto!important}
.ba-product-page .up-sells{display:none}

/* ===== 7. Basket and checkout: base ===== */
/* WooCommerce Basket/Checkout: retain shortcode-based commerce, no gateway changes. */
.ba-commerce-shell{width:100%;margin:0 auto!important;min-height:55vh;background:var(--ba-paper);color:var(--ba-ink)}
.ba-commerce-shell>.wp-block-post-content,.ba-commerce-shell>.wp-block-post-content.alignwide{max-width:1240px!important;width:100%;margin-inline:auto!important}
.ba-commerce-title{font-family:var(--ba-display);font-size:clamp(29px,3vw,45px);margin:0 0 22px!important;color:var(--ba-ink)}
.ba-commerce-shell .woocommerce,.ba-commerce-shell .woocommerce form.checkout,.ba-commerce-shell .woocommerce .woocommerce-cart-form,.ba-commerce-shell .woocommerce .cart-collaterals{max-width:100%;width:100%;min-width:0}
.ba-commerce-shell .woocommerce .shop_table{width:100%;border:1px solid var(--ba-border);background:#fff;color:#222}
.ba-commerce-shell .woocommerce .shop_table :is(th,td){border-color:var(--ba-border)}
.ba-commerce-shell :is(input.input-text,textarea,select),.ba-commerce-shell .woocommerce-checkout input.input-text{max-width:100%;min-height:41px;color:#202020;background:#fff;border:1px solid #aaa;padding:9px}
.ba-commerce-shell .woocommerce #payment{background:#e9e9e8;color:#222}
.ba-commerce-shell .woocommerce .woocommerce-info,.ba-commerce-shell .woocommerce .woocommerce-message{background:#e7f3f7;color:#184454;border-top-color:var(--ba-cyan)}
.ba-commerce-shell .woocommerce .woocommerce-info a,.ba-commerce-shell .woocommerce .woocommerce-message a{color:#125167;text-decoration:underline}
.ba-commerce-shell .woocommerce .woocommerce-error{background:#fff0ee;color:#6d211a}
.ba-commerce-shell .woocommerce .cart-collaterals .cross-sells,.ba-commerce-shell .woocommerce .cart-collaterals .cart_totals{float:none;width:100%;max-width:100%}
.ba-commerce-shell .woocommerce .cross-sells ul.products{list-style:none;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px;margin:20px 0 35px;padding:0}
/* WooCommerce's clearfix ::before/::after on ul.products become empty grid cells, pushing the
   first card into column 2 (the stagger). Remove them here only. */
.ba-commerce-shell .woocommerce .cross-sells ul.products::before,.ba-commerce-shell .woocommerce .cross-sells ul.products::after{content:none!important;display:none!important}
.ba-commerce-shell .woocommerce .cross-sells ul.products li.product{float:none!important;clear:none!important;box-sizing:border-box;min-width:0;width:100%!important;max-width:none!important;margin:0!important;padding:12px;background:#fff;border:1px solid var(--ba-border);display:flex;flex-direction:column;align-items:stretch;height:100%}
.ba-commerce-shell .woocommerce .cross-sells ul.products li.product img{aspect-ratio:1/1;object-fit:contain;width:100%;height:auto;margin:0 0 10px!important;background:#fff}
.ba-commerce-shell .woocommerce .cross-sells ul.products li.product :is(h2,h3,.woocommerce-loop-product__title){font-size:14px!important;line-height:1.35!important;padding:0!important;margin:0!important}
.ba-commerce-shell .woocommerce .cross-sells ul.products li.product .price{margin-top:auto;display:block;padding-top:12px}
/* WooCommerce wraps image, title and price in one link, so the price's auto margin had nothing
   to push against. Let that link fill the card so prices and buttons line up whatever the title
   length. */
.ba-commerce-shell .woocommerce .cross-sells ul.products li.product > a.woocommerce-LoopProduct-link{display:flex;flex-direction:column;flex:1 1 auto;min-height:0}
.ba-commerce-shell .woocommerce .cross-sells ul.products li.product .button{display:flex;align-items:center;justify-content:center;min-height:42px;width:100%;font-size:12px;margin-top:12px;text-align:center;white-space:normal}
.ba-commerce-shell .woocommerce-checkout-payment{max-width:100%}

/* ===== 8. Content pages and galleries ===== */
/* Ordinary content, article gallery, About legacy pattern. */
.ba-content-page{min-height:45vh}
.ba-content-page>.wp-block-post-title{font-size:clamp(29px,3vw,43px);margin:0 0 30px}
.ba-content-page :where(p,li){line-height:1.7}
.ba-content-page .wp-block-gallery{display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:23px!important;max-width:1100px!important;margin:24px auto!important}
.ba-content-page .wp-block-gallery>figure{float:none!important;width:100%!important;max-width:100%!important;min-width:0;margin:0!important}
.ba-blog-teaser{max-width:1040px!important;margin:0 auto 38px!important;padding:0 0 32px;border-bottom:1px solid var(--ba-border)}
.ba-blog-teaser h2 a{color:var(--ba-ink)}
.ba-blog-teaser .wp-block-post-featured-image img{display:block;width:100%;max-height:450px;object-fit:cover}
.ba-about-story{max-width:780px;margin:55px auto!important;text-align:center}
.ba-about-story p{color:var(--ba-muted)}
.ba-about-contact{max-width:1100px;background:#fff;padding:clamp(20px,4vw,50px);border:1px solid var(--ba-border);margin:45px auto!important}
.ba-about-contact a{color:var(--ba-link)}
.ba-about-promo{background:var(--ba-orange);color:#111}
.ba-about-promo h2{color:#111}
.ba-about-cover h1{color:#fff}

/* ===== 9. Recently viewed ===== */
/* Recently Viewed client-side per-visitor public-product cards, no shared cache leakage. */
.ba-recently-viewed{max-width:var(--ba-content);margin:0 auto}
.ba-recently-viewed-empty{color:var(--ba-muted);font-size:14px}
.ba-recently-viewed-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,2vw,25px);align-items:stretch}
.ba-recently-viewed-grid[hidden],.ba-recently-viewed-empty[hidden]{display:none!important}
/* Recently Viewed uses safe client-side DOM nodes, styled to match WooCommerce's native Product
   Collection grid cards, including equal-height CTA placement. */
.ba-recent-card{display:flex;flex-direction:column;align-items:stretch;height:100%;min-width:0;background:var(--ba-panel);border:1px solid var(--ba-border);padding:14px;box-shadow:0 1px 5px #00000009;transition:transform .23s ease,box-shadow .23s ease,border-color .23s ease}
.ba-recent-card:focus-within{border-color:var(--ba-link);box-shadow:0 0 0 2px #12647b40}
.ba-recent-card-image{display:block;aspect-ratio:2/3;overflow:hidden;background:#f0efed;position:relative;margin:0}
.ba-recent-card-image img{display:block;height:100%;width:100%;object-fit:contain;transition:transform .28s ease}
.ba-recent-card-sale{position:absolute;top:9px;right:9px;padding:5px 9px;color:#111;background:var(--ba-orange);font-size:11px;font-weight:800;text-transform:uppercase}
.ba-recent-card h3{font-size:15px;line-height:1.38;min-height:2.7em;margin:13px 0 7px}
.ba-recent-card h3 a{color:var(--ba-ink);text-decoration:none}
.ba-recent-card h3 a:is(:hover,:focus-visible){color:var(--ba-link);text-decoration:underline;text-underline-offset:3px}
.ba-recent-card-price{font-size:14px;color:var(--ba-ink);font-weight:750;margin-top:auto;margin-bottom:11px}
.ba-recent-card-price del{color:var(--ba-muted)}
.ba-recent-card-price ins{color:var(--ba-link);margin-left:.3em;font-weight:800}
.ba-recent-card-action{display:flex;align-items:center;justify-content:center;min-height:42px;width:100%;padding:10px 12px;background:#171717;color:#fff;border:1px solid #171717;border-radius:1px;text-align:center;white-space:normal;text-decoration:none;font-size:12px;letter-spacing:.03em;font-weight:700;text-transform:uppercase}
.ba-recent-card-action:is(:hover,:focus-visible){background:var(--ba-orange);border-color:var(--ba-orange);color:#111}
@media (hover:hover) and (pointer:fine){
 .ba-recent-card:hover{transform:translateY(-4px);box-shadow:0 12px 24px #00000018}
}

/* ===== 10. Footer ===== */
/* Restored substantial dark footer, now editable native Columns and Social Links blocks. */
.ba-footer{background:var(--ba-dark);color:#d3d3d3;padding:clamp(40px,5vw,75px) var(--ba-edge) 25px;border-top:3px solid var(--ba-orange)}
.ba-footer-columns{gap:clamp(25px,3vw,48px);max-width:var(--ba-content)!important}
.ba-footer h2,.ba-footer h3{line-height:1.2;color:#fff;margin:0 0 18px}
.ba-footer h2{font-family:var(--ba-display);font-size:clamp(27px,3vw,42px)}
.ba-footer h3{font-size:22px;color:var(--ba-orange)}
.ba-footer p,.ba-footer li{font-size:14px;line-height:1.7;color:#c9c9c9}
.ba-footer a{color:#e7e7e7;text-decoration:none}
.ba-footer a:hover,.ba-footer a:focus-visible{color:var(--ba-cyan);text-decoration:underline;text-underline-offset:3px}
.ba-footer ul:not(.wp-block-social-links){list-style:none;padding:0;margin:0}
.ba-footer ul:not(.wp-block-social-links)>li{padding:0 0 8px}
.ba-footer .wp-block-social-links{gap:16px;margin-top:24px}
.ba-footer-divider{border:0;border-top:1px solid #484848;max-width:var(--ba-content)!important;margin:42px auto 24px!important}
.ba-footer-bottom{max-width:var(--ba-content)!important;margin:auto;gap:20px}
.ba-footer-bottom p{font-size:12px;color:#aaa;margin:0}
@media (max-width:781px){
 /* Footer stacks into deliberately centred, evenly spaced sections on tablets and phones. */
 .ba-footer{padding:clamp(32px,7vw,52px) clamp(18px,5vw,32px) 27px;text-align:center}
 .ba-footer-columns{row-gap:32px;justify-content:center}
 .ba-footer-columns>.wp-block-column{align-self:stretch;text-align:center}
 .ba-footer :is(h2,h3){text-align:center;margin-bottom:12px}
 .ba-footer p,.ba-footer ul:not(.wp-block-social-links){text-align:center}
 .ba-footer .wp-block-social-links{justify-content:center;margin:20px auto 0}
 .ba-footer-divider{margin:30px auto 20px!important}
 .ba-footer-bottom{display:flex!important;flex-direction:column;flex-wrap:nowrap;justify-content:center!important;align-items:center!important;gap:9px;text-align:center}
 .ba-footer-bottom p{max-width:100%;text-align:center}
}

/* ===== 11. Responsive layout (header, mobile menu, hero, catalogue, commerce) ===== */
@media (max-width:960px){
 /* Responsive navigation, hero, catalogue, commerce. */
 .ba-site-header .ba-logo{width:130px;flex-basis:130px}
 .ba-primary-nav .wp-block-navigation__container{gap:10px}
 .ba-site-header .wp-block-navigation-item__content{font-size:11px}
}
@media (max-width:781px){
 .ba-site-header{min-height:72px;padding:8px 20px;justify-content:space-between}
 .ba-site-header .ba-logo{width:127px;flex-basis:127px}
 /* Keep desktop mega menu intact but show a separate, grouped editable core Navigation menu on
    phones, using native WP accessible disclosure. */
 .ba-site-header .ba-primary-nav{margin-left:auto;display:none!important}
 .ba-site-header .ba-mobile-nav{display:flex!important;margin-left:auto;align-items:center;min-width:0;flex:0 0 auto}
 .ba-mobile-nav .wp-block-navigation__responsive-container-open{display:flex!important;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:#fff!important;background:transparent;border:1px solid #ffffff55;padding:8px;border-radius:2px}
 .ba-mobile-nav .wp-block-navigation__responsive-container-open svg{fill:none;stroke:currentColor}
 /* Core's overlay is sometimes portalled or given WP palette/inline styles. Scope to the actual
    open responsive overlay as a reliable fallback. */
 body .wp-block-navigation__responsive-container.is-menu-open{position:fixed!important;inset:0!important;width:100vw!important;max-width:100vw!important;height:100vh!important;height:100dvh!important;box-sizing:border-box!important;overflow-x:hidden!important;overflow-y:auto!important;overscroll-behavior:contain;background:#1c2023!important;color:#fff!important;text-align:center!important}
 body .wp-block-navigation__responsive-container.is-menu-open :is(a,button,.wp-block-navigation-item__content){color:#f7f7f7!important}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{position:fixed!important;top:20px;right:clamp(18px,5vw,34px);z-index:100;display:flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;color:#fff!important;background:#262b2e!important;border:1px solid #ffffff55;border-radius:2px}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close svg{fill:none;stroke:currentColor}
 body.admin-bar .wp-block-navigation__responsive-container.is-menu-open{top:var(--wp-admin--admin-bar--height,46px)!important;height:calc(100dvh - var(--wp-admin--admin-bar--height,46px))!important}
 body.admin-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close{top:calc(var(--wp-admin--admin-bar--height,46px) + 14px)}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content{box-sizing:border-box!important;width:100%;max-width:none!important;padding:72px clamp(22px,6vw,48px) 38px!important;margin:0 auto!important;display:flex!important;flex-direction:column!important;align-items:center!important;justify-content:flex-start!important}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{display:flex!important;flex-direction:column!important;flex-wrap:nowrap!important;align-items:center!important;justify-content:flex-start!important;gap:0!important;margin:0!important;padding:0!important;width:min(100%,440px)!important;max-width:100%!important}
 body .wp-block-navigation__responsive-container.is-menu-open :is(.wp-block-navigation__container,.wp-block-navigation__submenu-container){list-style:none!important;padding-inline-start:0!important}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item::marker{content:""}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item{position:relative;box-sizing:border-box;min-width:0!important;max-width:100%!important;width:100%!important;text-align:center!important;margin:0!important;align-items:center!important;justify-content:center!important}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content{box-sizing:border-box;max-width:100%;width:auto!important;padding:11px 12px!important;line-height:1.5!important;font-size:15px!important;letter-spacing:.035em;text-align:center!important;white-space:normal!important;overflow-wrap:anywhere;text-transform:none}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:is(:hover,:focus-visible){color:var(--ba-orange)!important;text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}
 /* Home is a real editable Navigation Link, not a decorative pseudo-element. Place it in the
    close-control row without creating a second focus target. */
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,.ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container{position:static!important}
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-home{position:absolute!important;top:20px!important;left:50%!important;transform:translateX(-50%);height:44px!important;width:auto!important;max-width:calc(100vw - 145px)!important;z-index:101;display:flex!important;align-items:center!important;justify-content:center!important;margin:0!important;padding:0!important;white-space:nowrap!important}
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-home>.wp-block-navigation-item__content{font-size:clamp(21px,5.5vw,25px)!important;line-height:1.1!important;font-weight:850!important;letter-spacing:.08em!important;text-transform:uppercase!important;padding:8px 10px!important;white-space:nowrap!important}
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-home+.ba-mobile-section{margin-top:0!important}
 body.admin-bar .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-home{top:14px!important}
 /* Section labels are real WordPress submenu items. Their nested links display directly below
    after the user expands each heading. */
 body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section{border-top:1px solid #ffffff2a;margin-top:18px!important;padding-top:12px!important}
 body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section>.wp-block-navigation-item__content{font-size:17px!important;text-transform:uppercase;color:var(--ba-orange)!important}
 body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section>.wp-block-navigation-submenu__toggle{position:relative;min-width:40px;min-height:40px;margin:0!important;padding:8px!important;color:#f7f7f7!important;background:transparent!important;border:0!important;box-shadow:none!important}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container{box-sizing:border-box;position:static!important;max-width:100%!important;width:100%!important;min-width:0!important;background:transparent!important;border:0!important;box-shadow:none!important;margin:0!important;padding:0 0 12px!important;align-items:center!important;justify-content:center!important;text-align:center!important}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content{font-size:14px!important;color:#e4e8eb!important;padding:10px 14px!important;text-align:center!important}
 body .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:is(:hover,:focus-visible){color:var(--ba-orange)!important}
}
@media (max-width:781px){@media (max-width:781px){
 /* only the separate mobile navigation uses two-column child links. Retain native submenu
    disclosure, keyboard order and desktop mega menu. */
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section>.wp-block-navigation__submenu-container{grid-template-columns:repeat(2,minmax(0,1fr))!important;column-gap:clamp(6px,2vw,18px)!important;row-gap:2px!important;align-items:stretch!important;justify-items:stretch!important;width:min(100%,440px)!important;padding:5px 0 12px!important}
 /* Do not force the collapsed submenu visible: grid only when native WP reports its disclosure
    expanded, with the old core menu state intact. */
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section:has(> .wp-block-navigation-submenu__toggle[aria-expanded="true"])>.wp-block-navigation__submenu-container,.ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section.is-open>.wp-block-navigation__submenu-container{display:grid!important}
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section>.wp-block-navigation__submenu-container>.wp-block-navigation-item{display:flex!important;align-items:stretch!important;justify-content:center!important;width:100%!important;min-width:0!important;margin:0!important}
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section>.wp-block-navigation__submenu-container>.wp-block-navigation-item>.wp-block-navigation-item__content{display:flex!important;align-items:center!important;justify-content:center!important;min-height:44px!important;width:100%!important;max-width:100%!important;padding:10px 5px!important;line-height:1.35!important;overflow-wrap:break-word!important}
 /* section headings use the editable Berserker orange palette token. Override core Navigation
    link/label/button colours without changing child links. HOME, white child destinations, and
    the white X close control stay unchanged. */
 body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section > .wp-block-navigation-item__content,body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section > .wp-block-navigation-item__content .wp-block-navigation-item__label,body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section > .wp-block-navigation-submenu__toggle{color:var(--wp--preset--color--orange,#f09f32)!important}
 /* Decorative original logo, after the scrollable menu, never a fixed overlay or redundant
    homepage link. Keep the native Navigation block editable. */
 .ba-mobile-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content::after{content:"";display:block;flex:0 0 auto;width:138px;height:55px;margin:26px auto 4px;background:url("../images/logo.png") center / contain no-repeat;border-top:0;pointer-events:none}
}}
@media (max-width:781px){
 .ba-hero{display:flex;flex-direction:column;align-items:stretch;min-height:0;aspect-ratio:auto;overflow:visible}
 .ba-hero::before{display:none}
 .ba-hero>.ba-hero-image{position:relative;inset:auto;width:100%;height:auto;max-width:none!important}
 .ba-hero .ba-hero-image img{display:block;width:100%;height:auto;object-fit:contain;animation:none!important}
 .ba-hero>.ba-hero-overlay{display:block;position:relative;padding:0;margin:0!important;width:100%;max-width:none!important}
 .ba-hero .ba-hero-spacer{display:none}
 .ba-hero .ba-hero-copy{position:relative;justify-self:auto;align-self:auto;width:100%!important;max-width:none!important;margin:0!important;padding:30px 20px 35px;text-align:center;background:#171717}
 .ba-hero-copy h1{font-size:clamp(31px,7.5vw,49px)!important}
 .ba-hero-copy .has-text-align-right{text-align:center}
 .ba-hero-copy .wp-block-buttons{justify-content:center}
 .ba-intro{display:block!important;text-align:center}
 .ba-intro .wp-block-buttons{justify-content:center;margin-top:20px}
 .ba-categories{grid-template-columns:1fr}
 .ba-category .ba-category-copy{min-height:115px}
 .ba-category-photo{aspect-ratio:1.5}
 .ba-product-page,.ba-shop-page,.ba-content-page{padding:26px 18px 48px}
 .ba-product-primary{display:block!important}
 .ba-product-information-column{padding-top:25px}
 .ba-product-details-container{margin-top:30px!important}
 .ba-footer-columns{flex-wrap:wrap!important}
 .ba-footer-columns>.wp-block-column{flex-basis:calc(50% - 20px)!important;min-width:240px}
 .ba-content-page .wp-block-gallery{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (max-width:520px){
 .ba-commerce-shell .woocommerce .cross-sells ul.products{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 .ba-commerce-shell .woocommerce .cross-sells ul.products li.product{padding:9px}
 .ba-product-sections{padding:35px 15px 48px}
 .ba-recently-viewed-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
 .ba-recent-card{padding:10px}
 .ba-recent-card h3{font-size:13px}
 .ba-recent-card-action{min-height:41px;padding:9px 7px;font-size:10px}
 :is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product{padding:10px}
 :is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product .wp-block-button__link{padding:9px 6px;font-size:10px;line-height:1.35;letter-spacing:0;min-height:41px}
 :is(.ba-shop-page,.ba-product-sections,.ba-product-recommendations) .wc-block-product .wp-block-post-title{font-size:13px;line-height:1.37}
 .ba-content-page .wp-block-gallery{grid-template-columns:1fr!important}
 .ba-footer-columns>.wp-block-column{min-width:0;flex-basis:100%!important}
}

/* ===== 12. Reduced motion ===== */
@media (prefers-reduced-motion:reduce){
 /* No hover-only interaction requirement, no motion for reduced motion users. */
 html{scroll-behavior:auto}
 *,*::before,*::after{animation:none!important;transition:none!important}
 .ba-primary-nav .ba-shop-mega>.wp-block-navigation__submenu-container{transition:visibility 0s linear .35s!important}
 .ba-primary-nav .ba-shop-mega:is(:hover,:focus-within)>.wp-block-navigation__submenu-container{transition:visibility 0s linear 0s!important}
}

/* ===== 13. Shop welcome tiles ===== */
/* Shop welcome tiles resurrect the existing What's New, Best Sellers and Offers destinations. */
.ba-shop-promos{max-width:var(--ba-content)!important;gap:clamp(15px,2vw,24px);margin:0 auto 32px!important}
.ba-shop-promo{min-width:0;background:#fff;border:1px solid var(--ba-border);padding:15px;align-items:center;gap:16px;box-shadow:0 1px 5px #0000000a}
.ba-shop-promo figure{width:88px;flex:0 0 88px;margin:0;overflow:hidden;border-radius:50%}
.ba-shop-promo img{width:88px;height:88px;object-fit:cover}
.ba-shop-promo .wp-block-heading{font-family:var(--ba-display);font-size:clamp(18px,1.7vw,25px);margin:0 0 8px}
.ba-shop-promo .wp-block-heading a{color:var(--ba-ink);text-decoration:none}
.ba-shop-promo .wp-block-heading a:hover{color:var(--ba-link);text-decoration:underline}
.ba-shop-promo p{color:var(--ba-muted);font-size:13px;margin:0}
@media (max-width:1000px){
 .ba-shop-promos{flex-wrap:wrap!important}
 .ba-shop-promos>.wp-block-column{flex-basis:100%!important}
}

/* ===== 14. Page Without Title template ===== */
/* Page Without Title: when a product section is the first page block, do not stack template top
   padding with section padding. Keep ordinary pages intact. */
.ba-page-without-title:has(> .wp-block-post-content > .ba-product-sections:first-child){padding-top:0}
.ba-page-without-title > .wp-block-post-content > .ba-product-sections:first-child{padding-top:clamp(20px,3vw,36px)}

/* ===== 15. Heading typography ===== */
/* Wallpoet now defines all heading typography; body, controls and product prices stay Roboto. */
.ba-content-page>.wp-block-post-title{font-family:var(--ba-display)}
/* WordPress Site Editor global heading choice remains editable via theme.json. Specific
   WooCommerce Product Collection titles sometimes render as links/paragraphs rather than
   semantic headings, so inherit display face. */
:is(.wc-block-product-template,.ba-recently-viewed-grid) :is(.wp-block-post-title,.wc-block-components-product-title),.ba-site-header .ba-shop-mega>.wp-block-navigation-item__content{font-family:var(--ba-display)}

/* ===== 16. Mobile menu section labels ===== */
@media (max-width:781px){
 /* Mobile navigation section labels only, not HOME or the two-column links. */
 body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-nav .ba-mobile-section>.wp-block-navigation-item__content,body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section>.wp-block-navigation-item__content,body .wp-block-navigation__responsive-container.is-menu-open .ba-mobile-section>.wp-block-navigation-item__content .wp-block-navigation-item__label{font-family:var(--ba-display)!important;font-weight:400!important;letter-spacing:.035em!important}
}

/* ===== 17. Product card alignment and sale prices ===== */
/* Match native WooCommerce product card alignment and sale pricing. Explicit strike-through
   prevents inherited WooCommerce/theme del resets. */
.ba-recent-card h3,.ba-recent-card-price{text-align:center;width:100%}
.ba-recent-card-price del,.ba-recent-card-price del *{text-decoration-line:line-through!important;text-decoration-style:solid!important;text-decoration-color:currentColor!important}
.ba-recent-card-price ins{text-decoration:none}

/* ===== 18. Shop pagination ===== */
/* Catalogue pagination, styled like the existing light-surface shop. Scoped to the catalogue
   collection; native query pagination remains editable. */
.ba-catalogue-grid .wp-block-query-pagination{display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:center;gap:clamp(6px,1.25vw,12px);width:100%;margin:clamp(28px,4vw,50px) auto 12px;font-family:var(--ba-body, Arial, sans-serif)}
.ba-catalogue-grid .wp-block-query-pagination a,.ba-catalogue-grid .wp-block-query-pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:44px;min-height:44px;padding:8px 13px;border:1px solid #d3d2ce;border-radius:3px;background:#fff;color:#176b82;font-size:15px;font-weight:650;line-height:1.25;text-decoration:none}
.ba-catalogue-grid .wp-block-query-pagination .wp-block-query-pagination-numbers{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:8px}
.ba-catalogue-grid .wp-block-query-pagination .page-numbers.current{background:#1c2023;border-color:#1c2023;color:#fff}
.ba-catalogue-grid .wp-block-query-pagination a:hover{border-color:#f09f32;color:#1c2023;background:#fff6e9}
.ba-catalogue-grid .wp-block-query-pagination a:focus-visible{outline:3px solid #f09f32;outline-offset:3px}
.ba-catalogue-grid .wp-block-query-pagination .dots{border:0;background:transparent;min-width:20px}
@media (max-width:480px){
 .ba-catalogue-grid .wp-block-query-pagination{gap:6px}
 .ba-catalogue-grid .wp-block-query-pagination a,.ba-catalogue-grid .wp-block-query-pagination .page-numbers{padding:7px 10px}
}

/* ===== 19. Footer back-to-top link ===== */
/* visible, keyboard-accessible back-to-top link in the editable footer. */
.ba-page-top-anchor{position:absolute;top:0;width:0;height:0;overflow:hidden}
.ba-footer-back-top{max-width:var(--ba-content);margin:1.4rem auto 0!important;text-align:right}
.ba-footer-back-top a{display:inline-flex;align-items:center;gap:.45rem;min-height:44px;padding:.5rem .85rem;border:1px solid rgba(240,159,50,.6);color:var(--ba-orange)!important;text-decoration:none!important;border-radius:2px;font-family:var(--wp--preset--font-family--body-sans,Roboto,Arial,sans-serif);font-size:.94rem;font-weight:500}
.ba-footer-back-top a:hover{background:var(--ba-orange);color:var(--ba-dark)!important}
.ba-footer-back-top a:focus-visible{outline:3px solid var(--ba-cyan);outline-offset:3px}
@media (max-width:781px){
 .ba-footer-back-top{text-align:center!important}
}

/* ===== 20. Block style: soft grunge ===== */
/* Opt-in Group block style; no global page or product-card background changes. */
.wp-block-group.is-style-berserker-grunge{background-color:var(--ba-paper);background-image:url("../images/grunge-soft.svg");background-repeat:repeat;background-size:480px 480px}

/* ===== 21. Basket layout and sticky totals ===== */
/* classic Basket layout. inc/commerce.php wraps ONLY the basket form and totals in
   .ba-cart-main, so the sticky totals panel is bounded by that wrapper and can no longer travel
   over the cross-sells that WooCommerce prints after it . */
.ba-cart-shell .woocommerce{display:block}
.ba-cart-shell .ba-cart-main{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(330px,.9fr);gap:clamp(18px,2.5vw,35px);align-items:start}
.ba-cart-shell .ba-cart-main > :not(.woocommerce-cart-form):not(.cart-collaterals){grid-column:1/-1;min-width:0}
.ba-cart-shell .ba-cart-main > .woocommerce-cart-form{grid-column:1;min-width:0;margin:0!important}
.ba-cart-shell .ba-cart-main > .cart-collaterals{grid-column:2;min-width:0;margin:0!important;align-self:start}
.ba-cart-shell .woocommerce .cart-collaterals .cart_totals{float:none!important;width:100%!important;max-width:none!important;margin:0!important}
.ba-cart-shell .woocommerce .cart-collaterals .cart_totals > h2{font-size:clamp(22px,2.3vw,30px);margin-top:0}
.ba-cart-shell .woocommerce .cart-collaterals .wc-proceed-to-checkout{margin-top:16px}
.ba-cart-shell .woocommerce .wc-proceed-to-checkout .checkout-button{display:block!important;width:100%;box-sizing:border-box;text-align:center;background:var(--ba-orange)!important;border-color:var(--ba-orange)!important;color:#101010!important}
.ba-cart-shell .woocommerce > .cross-sells{float:none!important;width:100%!important;max-width:none!important;margin:clamp(28px,4vw,48px) 0 0!important}
.ba-cart-shell .woocommerce .cross-sells ul.products{grid-template-columns:repeat(4,minmax(0,1fr))}
.ba-cart-shell .woocommerce .woocommerce-cart-form .coupon button[name="apply_coupon"]{background:transparent!important;color:#242424!important;border:1px solid #747474!important;box-shadow:none!important}
.ba-cart-shell .woocommerce .woocommerce-cart-form .coupon button[name="apply_coupon"]:is(:hover,:focus-visible){background:#eceae6!important;border-color:#242424!important;color:#111!important}
.ba-cart-shell .woocommerce .woocommerce-cart-form button[name="update_cart"]{background:#f3f2f0;color:#242424;border:1px solid #777}
@media (min-width:901px) and (min-height:720px){
 /* Sticky only where the totals panel comfortably fits the viewport. */
 .ba-cart-shell .ba-cart-main > .cart-collaterals{position:sticky;top:calc(18px + var(--wp-admin--admin-bar--height,0px))}
}
@media (max-width:900px){
 .ba-cart-shell .ba-cart-main{grid-template-columns:minmax(0,1fr)}
 .ba-cart-shell .ba-cart-main > *{grid-column:1!important}
 .ba-cart-shell .woocommerce .cross-sells ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ===== 22. Header basket count ===== */
/* Visitor-specific basket count, updated by WooCommerce fragments. */
.ba-primary-nav .ba-basket-count:not([hidden]){display:inline-flex;align-items:center;justify-content:center;min-width:1.6em;height:1.6em;margin-left:.45em;padding:0 .3em;border-radius:999px;background:var(--ba-orange,#f09f32);color:#171717;font:700 12px/1 system-ui,sans-serif;vertical-align:middle}
.ba-basket-count[hidden]{display:none!important}

/* ===== 23. Basket and checkout: hierarchy and forms ===== */
/* Cart and Checkout: clearer hierarchy without modifying classic commerce form fields. */
.ba-commerce-intro{margin:0 0 2rem!important;color:#505050;font-size:1.05rem;line-height:1.6}
.ba-commerce-shell .woocommerce :is(.cart_totals,.woocommerce-checkout-review-order,.woocommerce-billing-fields,.woocommerce-shipping-fields,.woocommerce-additional-fields){min-width:0}
.ba-cart-shell .woocommerce .woocommerce-cart-form,.ba-cart-shell .woocommerce .cart_totals{background:#fff;border:1px solid var(--ba-border);box-shadow:0 5px 21px rgba(20,20,20,.045);padding:clamp(16px,2.2vw,28px)}
.ba-commerce-shell .woocommerce table.shop_table{border:0;background:transparent;border-collapse:collapse}
.ba-commerce-shell .woocommerce table.shop_table th{font-weight:700}
.ba-commerce-shell .woocommerce table.shop_table :is(th,td){padding:13px 10px;border-bottom:1px solid #e2dfda}
.ba-commerce-shell .woocommerce .product-name a{color:var(--ba-link);font-weight:650}
.ba-commerce-shell .woocommerce :is(label,legend){color:#222;font-weight:600}
.ba-commerce-shell .woocommerce :is(input.input-text,textarea,select):focus-visible{border-color:#12647b;outline:2px solid #12647b;outline-offset:1px}
.ba-commerce-shell .woocommerce .button:not(.checkout-button):not(#place_order){min-height:42px}
.ba-cart-shell .woocommerce .cross-sells{border-top:2px solid var(--ba-orange);padding-top:24px}
.ba-cart-shell .woocommerce .cross-sells h2,.ba-checkout-shell .woocommerce :is(.woocommerce-billing-fields h3,.woocommerce-shipping-fields h3,#order_review_heading){font-family:var(--ba-display);font-weight:400;line-height:1.25;color:#222}
.ba-checkout-shell .woocommerce form.checkout{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(320px,.85fr);gap:0 clamp(20px,3vw,42px);align-items:start}
.ba-checkout-shell .woocommerce form.checkout > #customer_details{grid-column:1;grid-row:1 / span 3;width:100%;margin:0}
.ba-checkout-shell .woocommerce form.checkout > #order_review_heading{grid-column:2;grid-row:1;margin:0!important;padding:20px 22px 6px;background:#fff;border:1px solid var(--ba-border);border-bottom:0}
.ba-checkout-shell .woocommerce form.checkout > #order_review{grid-column:2;grid-row:2;width:100%;min-width:0;margin:0;background:#fff;border:1px solid var(--ba-border);border-top:0;padding:12px clamp(14px,2vw,24px) 22px;box-shadow:0 5px 21px rgba(20,20,20,.045)}
.ba-checkout-shell .woocommerce form.checkout > #customer_details > :is(.col-1,.col-2){float:none;width:100%;max-width:none}
.ba-checkout-shell .woocommerce form.checkout > #customer_details .col-1{margin-bottom:20px}
.ba-checkout-shell .woocommerce form.checkout > #customer_details{padding:20px clamp(16px,2vw,28px);background:#fff;border:1px solid var(--ba-border);box-shadow:0 5px 21px rgba(20,20,20,.045)}
.ba-checkout-shell .woocommerce .form-row{max-width:100%;min-width:0}
.ba-checkout-shell .woocommerce #place_order{display:block;width:100%;min-height:48px;background:var(--ba-orange)!important;color:#101010!important}
.ba-checkout-shell .woocommerce #payment{background:#f5f4f1;color:#222;border-radius:2px}
@media (max-width:900px){
 .ba-checkout-shell .woocommerce form.checkout{display:block}
 .ba-checkout-shell .woocommerce form.checkout > #order_review_heading{margin-top:24px!important}
}
@media (max-width:600px){
 .ba-cart-shell .woocommerce .woocommerce-cart-form,.ba-cart-shell .woocommerce .cart_totals{padding:12px}
 .ba-commerce-shell .woocommerce table.shop_table :is(th,td){padding:10px 6px}
}

/* ===== 24. Basket, checkout and account: page shell ===== */
/* Commerce polish based on staging screenshots. Content, forms, and customer-specific
   functionality remain WooCommerce-owned. */
/* WP's constrained layout imposes the global contentSize on direct children. Override that
   constraint for these commerce templates only. */
.ba-commerce-shell.wp-block-group.is-layout-constrained > :is(.wp-block-post-content,.wp-block-post-title,.ba-commerce-title,.ba-commerce-intro,.wp-block-woocommerce-store-notices),.ba-commerce-shell.wp-block-group.is-layout-constrained > :not(.alignfull):not(.alignwide),.ba-commerce-shell > .wp-block-post-content,.ba-commerce-shell > .wp-block-post-content.alignwide{width:100%!important;max-width:1280px!important;margin-left:auto!important;margin-right:auto!important}
.ba-commerce-shell{max-width:1500px!important;padding:clamp(28px,3.3vw,54px) clamp(20px,4vw,65px) clamp(48px,6vw,85px)!important}
.ba-commerce-title{margin-bottom:12px!important}
.ba-commerce-intro{margin-bottom:clamp(20px,3vw,34px)!important;max-width:900px!important}
.ba-commerce-shell .woocommerce :is(.woocommerce-checkout-review-order,.woocommerce-cart-form,.cart_totals){box-sizing:border-box}

/* ===== 25. Product name typography ===== */
/* Info-first typography: Wallpoet remains for H1-H6 editorial/headline use. */
.ba-commerce-shell :is(.cart_totals>h2,.cross-sells>h2,.woocommerce-billing-fields>h3,.woocommerce-shipping-fields>h3,.woocommerce-additional-fields>h3,#order_review_heading),.ba-commerce-shell :is(.woocommerce-checkout-review-order h3,.woocommerce-checkout-payment h3){font-family:var(--wp--preset--font-family--body-sans,Roboto,Arial,sans-serif)!important;font-size:clamp(20px,1.65vw,25px)!important;font-weight:500!important;letter-spacing:0!important;line-height:1.3!important;text-transform:none!important}
/* Product names in Shop, homepage collections, Recently Viewed and cross-sells are information,
   not ornamental headlines. Preserve main product-page H1. */
:is(.wc-block-product-template,.ba-recently-viewed-grid,.woocommerce .cross-sells ul.products) :is(.wp-block-post-title,.wc-block-components-product-title,.woocommerce-loop-product__title),.ba-recent-card h3,.ba-commerce-shell .woocommerce .cross-sells ul.products li.product h2,.ba-commerce-shell .woocommerce .cross-sells ul.products li.product h3{font-family:var(--wp--preset--font-family--body-sans,Roboto,Arial,sans-serif)!important;font-weight:500!important;letter-spacing:0!important;text-transform:none!important}

/* ===== 26. Notices (added to basket, errors, info) ===== */
/* WooCommerce notices, one consolidated section. In a block theme WooCommerce 8.6+ prints
   notices as .wc-block-components-notice-banner (block-notices/*.php), not the classic
   .woocommerce-message markup the older notice rules targeted; that is why the add-to-basket
   notice stayed green . Both markups are styled alike. WooCommerce's own notice HTML, roles and
   live-region behaviour are kept. */
body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info,.woocommerce-error),body .wp-site-blocks .wc-block-components-notice-banner{position:relative;box-sizing:border-box;background:#fff9ed!important;color:#262626!important;border:1px solid #d9c7ac!important;border-left:4px solid var(--ba-orange)!important;border-radius:3px!important;box-shadow:0 3px 12px rgba(0,0,0,.035);margin:0 0 18px!important;font-size:1rem;line-height:1.5}
body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info,.woocommerce-error){display:flow-root!important;padding:18px 20px 18px 54px!important;min-height:64px}
body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info,.woocommerce-error)::before{color:#a45b00!important;left:19px!important;top:19px!important}
body .wp-site-blocks .wc-block-components-notice-banner{display:flex!important;align-items:center;gap:14px;padding:14px 18px!important}
body .wp-site-blocks .wc-block-components-notice-banner > svg{flex:0 0 auto;width:24px;height:24px;padding:2px;border-radius:50%;background-color:#a45b00!important;fill:#fff!important}
body .wp-site-blocks .wc-block-components-notice-banner > .wc-block-components-notice-banner__content{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem 1.2rem;flex:1 1 auto;min-width:0;color:inherit}
/* Errors and info keep their meaning through colour AND the WooCommerce icon. */
body .wp-site-blocks .woocommerce-error,body .wp-site-blocks .wc-block-components-notice-banner.is-error{border-left-color:#ae3429!important;background:#fff5f3!important}
body .wp-site-blocks .wc-block-components-notice-banner.is-error > svg{background-color:#ae3429!important}
body .wp-site-blocks .wc-block-components-notice-banner.is-info > svg{background-color:var(--ba-link)!important}
body .wp-site-blocks .wc-block-components-notice-banner.is-info{border-left-color:var(--ba-cyan)!important}
/* "View basket" and similar actions read as a button, not a faint link. */
body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info) a.button,body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info) a.wc-forward,body .wp-site-blocks .wc-block-components-notice-banner > .wc-block-components-notice-banner__content :is(a.button,a.wc-forward){float:none!important;order:2;display:inline-flex!important;align-items:center!important;justify-content:center!important;margin:0 0 0 auto!important;padding:11px 19px!important;min-height:44px;opacity:1!important;border:1px solid #1c2023!important;border-radius:2px!important;background:#1c2023!important;color:#fff!important;text-decoration:none!important;font:600 14px/1.35 var(--wp--preset--font-family--body-sans,Roboto,Arial,sans-serif)!important;text-transform:none}
body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info) a.button{float:right!important;margin:-7px 0 0 18px!important}
body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info) :is(a.button,a.wc-forward):is(:hover,:focus-visible),body .wp-site-blocks .wc-block-components-notice-banner > .wc-block-components-notice-banner__content :is(a.button,a.wc-forward):is(:hover,:focus-visible){background:var(--ba-orange)!important;color:#171717!important;border-color:#a96512!important}
body .wp-site-blocks .wc-block-components-notice-banner > .wc-block-components-notice-banner__content a:not(.button):not(.wc-forward){color:var(--ba-link);text-decoration:underline;text-underline-offset:3px}
@media (max-width:600px){
 body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info,.woocommerce-error){padding:15px 15px 15px 44px!important}
 body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info,.woocommerce-error)::before{left:14px!important;top:16px!important}
 body .wp-site-blocks .wc-block-components-notice-banner{align-items:flex-start}
 body .wp-site-blocks :is(.woocommerce-message,.woocommerce-info) a.button,body .wp-site-blocks .wc-block-components-notice-banner > .wc-block-components-notice-banner__content :is(a.button,a.wc-forward){float:none!important;display:flex!important;width:100%;margin:12px 0 0!important}
}
/* Coupon disclosure is a link action, not a blue alert or primary checkout CTA. */
.ba-checkout-shell .woocommerce-form-coupon-toggle .woocommerce-info,.ba-checkout-shell .woocommerce-form-coupon-toggle .woocommerce-info::before,body .wp-site-blocks .ba-checkout-shell .woocommerce-form-coupon-toggle .wc-block-components-notice-banner{background:#fff!important;color:#333!important;border-left-color:#c4b9a5!important}
.ba-checkout-shell .woocommerce-form-coupon-toggle :is(.woocommerce-info,.wc-block-components-notice-banner) a.showcoupon{color:var(--ba-link)!important;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.ba-checkout-shell .woocommerce-form-coupon{background:#fff;border:1px solid var(--ba-border);padding:18px 22px!important;margin-top:0!important}

/* ===== 27. Checkout order review ===== */
@media (min-width:901px){
 /* order review is no longer sticky or internally scrolled. A scrolling panel could hide Place
    order and the terms checkbox on short screens . */
 .ba-checkout-shell .woocommerce form.checkout{grid-template-columns:minmax(0,1.25fr) minmax(365px,.9fr);gap:0 clamp(22px,3vw,45px)}
}

/* ===== 28. Block style previews in the editor ===== */
/* Make the opt-in texture distinguishable from the standard light surface. Explicit editor
   selector permits previewing it without leaving Gutenberg. */
body .wp-block-group.is-style-berserker-grunge,.editor-styles-wrapper .wp-block-group.is-style-berserker-grunge{background-color:#efece6!important;background-image:url("../images/grunge-soft.svg"),repeating-linear-gradient(0deg,transparent 0,rgba(60,50,40,.014) 2px,transparent 4px)!important;background-size:320px 320px,100% 6px!important;background-repeat:repeat!important}

/* ===== 29. Sale badge ===== */
/* single-product and classic-loop sale badge . WooCommerce's default .onsale is an olive circle;
   match the approved orange rectangular catalogue badge. Contrast: #111 on #f09f32 is about 9:1. */
body .wp-site-blocks span.onsale{min-height:0!important;min-width:0!important;line-height:1.2!important;padding:6px 10px!important;margin:0!important;top:12px!important;left:12px!important;right:auto!important;border-radius:0!important;background:var(--ba-orange)!important;color:#111!important;font:800 11px/1.2 var(--wp--preset--font-family--body-sans,Roboto,Arial,sans-serif)!important;letter-spacing:.06em;text-transform:uppercase}

/* ===== 30. Accessibility helpers ===== */
/* visually hidden but announced (H1s on Shop and title-free pages). */
.ba-visually-hidden{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;clip-path:inset(50%)!important;white-space:nowrap!important;border:0!important}

/* ===== 31. Contact form spam trap ===== */
/* contact form honeypot stays hidden even if inline style is stripped. */
.wpcf7 .ba-hp{display:none!important}

/* ===== 32. Contact page ===== */
/* Contact page. Light form card beside a dark details panel, three quick-answer cards below.
   Contact Form 7 fields styled to match checkout. */
.ba-contact-page{margin-bottom:clamp(30px,5vw,60px)}
.ba-content-page .wp-block-post-content>.ba-contact-page{max-width:1180px!important;width:100%}
.ba-contact-page .ba-contact-lead{font-size:clamp(17px,1.4vw,20px);line-height:1.6;color:#3a3a3a;max-width:760px;margin:0 0 clamp(22px,3vw,36px)}
.ba-contact-columns{gap:clamp(18px,2.5vw,32px)!important;align-items:stretch!important;margin:0!important}
.ba-contact-form-card{background:#fff;border:1px solid var(--ba-border);box-shadow:0 5px 21px rgba(20,20,20,.045);padding:clamp(20px,3vw,38px)}
.ba-contact-form-card h2,.ba-contact-details h2,.ba-contact-faq-title{margin-top:0;font-size:clamp(22px,2.1vw,30px);line-height:1.25}
.ba-contact-form-card .ba-contact-note{color:var(--ba-muted);font-size:14px;margin:0 0 20px}
.ba-contact-details{background:var(--ba-dark,#101010);background:#1c2023;color:#f2f2f2;padding:clamp(20px,3vw,38px);border-top:4px solid var(--ba-orange)}
.ba-contact-details h2{color:#fff}
.ba-contact-details .ba-contact-item{margin:0 0 20px;line-height:1.55}
.ba-contact-details .ba-contact-item strong{display:block;color:var(--ba-orange);font-size:12px;letter-spacing:.12em;text-transform:uppercase;font-weight:700;margin-bottom:2px}
.ba-contact-details a{color:#fff;text-decoration:underline;text-decoration-color:var(--ba-orange);text-underline-offset:4px;overflow-wrap:anywhere}
.ba-contact-details a:is(:hover,:focus-visible){color:var(--ba-orange)}
.ba-contact-social{margin-top:6px!important;gap:12px!important}
.ba-contact-faq-title{margin:clamp(34px,5vw,56px) 0 18px!important}
.ba-contact-faq{gap:clamp(16px,2vw,24px)!important;margin:0!important}
.ba-contact-faq>.wp-block-column{background:#fff;border:1px solid var(--ba-border);border-top:3px solid var(--ba-orange);padding:20px 22px}
.ba-contact-faq h3{margin:0 0 8px;font-size:19px}
.ba-contact-faq p{margin:0;line-height:1.6}
.ba-contact-faq a,.ba-contact-form-card a{color:var(--ba-link)}
/* Contact Form 7 fields */
.wpcf7-form p{margin:0 0 18px}
.wpcf7-form label{display:block;font-weight:600;font-size:15px;color:#222}
.wpcf7-form .wpcf7-form-control-wrap{display:block;margin-top:6px}
.wpcf7-form :is(input[type=text],input[type=email],input[type=tel],textarea){box-sizing:border-box;width:100%;max-width:100%;padding:12px 14px;font:400 16px/1.45 var(--wp--preset--font-family--body-sans,Roboto,Arial,sans-serif);color:#1d1d1d;background:#fff;border:1px solid #7f7a72;border-radius:2px}
.wpcf7-form textarea{min-height:170px;resize:vertical}
.wpcf7-form :is(input,textarea):focus-visible{outline:3px solid var(--ba-cyan);outline-offset:1px;border-color:#12647b}
.wpcf7-form .wpcf7-acceptance .wpcf7-list-item{margin:0}
.wpcf7-form .wpcf7-acceptance label{display:flex;gap:10px;align-items:flex-start;font-weight:400;font-size:14px;line-height:1.5;color:#3a3a3a}
.wpcf7-form .wpcf7-acceptance input[type=checkbox]{flex:0 0 auto;width:20px;height:20px;margin:1px 0 0;accent-color:#1c2023}
.wpcf7-form .wpcf7-submit{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 30px;background:var(--ba-orange);color:#141414;border:2px solid var(--ba-orange);border-radius:0;cursor:pointer;font:800 13px/1.2 var(--wp--preset--font-family--body-sans,Roboto,Arial,sans-serif);letter-spacing:.11em;text-transform:uppercase}
.wpcf7-form .wpcf7-submit:is(:hover,:focus-visible){background:#1c2023;color:#fff;border-color:#1c2023}
.wpcf7-form .wpcf7-submit:disabled{opacity:.55;cursor:not-allowed}
.wpcf7-form .wpcf7-not-valid{border-color:#ae3429!important}
.wpcf7-form .wpcf7-not-valid-tip{color:#ae3429;font-size:14px;font-weight:500;margin-top:5px}
.wpcf7 form .wpcf7-response-output{margin:16px 0 0!important;padding:14px 18px!important;border:1px solid #d9c7ac!important;border-left:4px solid var(--ba-orange)!important;background:#fff9ed;color:#262626;border-radius:3px}
.wpcf7 form:is(.invalid,.unaccepted,.payment-required,.failed,.aborted,.spam) .wpcf7-response-output{border-left-color:#ae3429!important;background:#fff5f3}
.wpcf7 form.sent .wpcf7-response-output{border-left-color:#2f7d4a!important;background:#f1f8f3}
@media (max-width:781px){
 .ba-contact-details,.ba-contact-form-card{padding:20px}
 .ba-contact-faq>.wp-block-column{padding:18px}
}

/* ===== 33. Cookie consent banner and settings ===== */
.ba-consent{position:fixed;left:0;right:0;bottom:0;z-index:1000;background:var(--ba-dark);color:#e7e7e7;border-top:3px solid var(--ba-orange);box-shadow:0 -8px 30px rgba(0,0,0,.35);padding:20px var(--ba-edge);max-height:min(70vh,520px);overflow:auto}
.ba-consent[hidden]{display:none!important}
.ba-consent-inner{max-width:var(--ba-content,1180px);margin:0 auto;display:flex;flex-wrap:wrap;align-items:center;gap:16px 32px}
.ba-consent-text{flex:1 1 420px;min-width:0}
.ba-consent-title{font-family:var(--ba-display);color:var(--ba-orange);font-size:18px;line-height:1.3;margin:0 0 6px;letter-spacing:.02em}
.ba-consent-text p{margin:0;font-size:15px;line-height:1.6;color:#e7e7e7}
.ba-consent a,.ba-consent-dialog .ba-consent-links a{color:var(--ba-orange);text-decoration:underline;text-underline-offset:3px}
.ba-consent a:hover,.ba-consent a:focus-visible{color:#fff}
.ba-consent-links{white-space:nowrap}
.ba-consent-actions{display:flex;flex-wrap:wrap;gap:10px}
.ba-consent-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:10px 22px;border:2px solid var(--ba-orange);border-radius:0;background:var(--ba-orange);color:#141414;font:inherit;font-size:13px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;cursor:pointer;line-height:1.2}
.ba-consent-btn:hover{background:#fff;border-color:#fff;color:#141414}
.ba-consent-btn-outline{background:transparent;border-color:#e7e7e7;color:#fff}
.ba-consent-btn-outline:hover{background:#fff;border-color:#fff;color:#141414}
.ba-consent :focus-visible,.ba-consent-dialog :focus-visible{outline:3px solid var(--ba-cyan);outline-offset:3px}
.ba-consent-dialog{width:min(560px,calc(100% - 32px));max-height:calc(100vh - 32px);padding:0;border:0;border-top:4px solid var(--ba-orange);border-radius:0;background:#fff;color:#202020;box-shadow:0 20px 60px rgba(0,0,0,.45)}
.ba-consent-dialog::backdrop{background:rgba(0,0,0,.65)}
.ba-consent-dialog-inner{position:relative;padding:28px 28px 24px}
.ba-consent-dialog h2{font-family:var(--ba-display);font-size:24px;line-height:1.2;margin:0 48px 10px 0;color:#141414}
.ba-consent-dialog-inner>p{font-size:15px;line-height:1.6;margin:0 0 18px;color:#3a3a3a}
.ba-consent-dialog .ba-consent-links a{color:var(--wp--preset--color--orange-text,#915600)}
.ba-consent-close{position:absolute;top:10px;right:10px;width:44px;height:44px;border:0;background:transparent;color:#202020;font-size:30px;line-height:1;cursor:pointer}
.ba-consent-close:hover{color:var(--wp--preset--color--orange-text,#915600)}
.ba-consent-option{display:grid;grid-template-columns:24px 1fr;column-gap:12px;align-items:start;padding:14px 0;border-top:1px solid #d9d6d1}
.ba-consent-option input{width:22px;height:22px;margin:2px 0 0;accent-color:var(--wp--preset--color--orange-text,#915600);cursor:pointer}
.ba-consent-option input:disabled{cursor:not-allowed}
.ba-consent-option label{font-weight:800;font-size:16px;cursor:pointer}
.ba-consent-option p{grid-column:2;margin:4px 0 0;font-size:14px;line-height:1.55;color:#525252}
.ba-consent-tag{display:inline-block;margin-left:8px;padding:2px 8px;background:#f1efe9;color:#3a3a3a;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;vertical-align:middle}
.ba-consent-dialog .ba-consent-actions{padding-top:18px;border-top:1px solid #d9d6d1}
.ba-consent-dialog .ba-consent-btn-outline{border-color:#202020;color:#202020}
.ba-consent-dialog .ba-consent-btn-outline:hover{background:#202020;border-color:#202020;color:#fff}
.ba-consent-dialog .ba-consent-btn:not(.ba-consent-btn-outline):hover{background:#202020;border-color:#202020;color:#fff}
/* Footer legal row and inline "Cookie settings" buttons styled as links */
.ba-footer-legal{flex-basis:100%;margin:0 0 4px!important;font-size:12px;color:#aaa}
.ba-footer-legal span{color:#777}
.ba-cookie-settings-link,.ba-recently-viewed-consent{padding:0;border:0;background:none;font:inherit;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.ba-cookie-settings-link{color:#e7e7e7}
.ba-cookie-settings-link:hover,.ba-cookie-settings-link:focus-visible{color:var(--ba-cyan)}
.ba-recently-viewed-consent{color:var(--wp--preset--color--orange-text,#915600);font-weight:700}
/* Cookie Policy tables */
.ba-cookie-table table{border-collapse:collapse;width:100%;font-size:14px}
.ba-cookie-table th,.ba-cookie-table td{border:1px solid #d9d6d1;padding:10px 12px;text-align:left;vertical-align:top}
.ba-cookie-table th{background:#f1efe9}
.ba-cookie-table td:first-child{word-break:break-word;font-family:ui-monospace,Menlo,Consolas,monospace;font-size:13px}
@media (max-width:781px){
 .ba-consent{padding:16px}
 .ba-consent-text{flex-basis:100%}
 .ba-consent-actions{width:100%}
 .ba-consent-actions .ba-consent-btn{flex:1 1 calc(50% - 5px);padding:10px 12px}
 .ba-consent-actions .ba-consent-btn-outline{flex-basis:100%}
 .ba-consent-dialog-inner{padding:24px 18px 18px}
 .ba-consent-dialog .ba-consent-actions .ba-consent-btn{flex-basis:100%}
 .ba-footer-legal{text-align:center}
}
@media print{
 .ba-consent,.ba-consent-dialog{display:none!important}
}

/* ===== 34. Gallery captions and lightbox ===== */
/* Captions sit under each photo in readable text, instead of white text over a pale fade */
.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption){flex-direction:column;flex-wrap:nowrap;justify-content:flex-start}
.wp-block-gallery.has-nested-images figure.wp-block-image:has(figcaption)::before{display:none!important;content:none!important}
.wp-block-gallery.has-nested-images figure.wp-block-image figcaption{position:static!important;flex:0 0 auto;max-height:none!important;overflow:visible!important;margin:0!important;padding:9px 2px 0!important;background:none!important;color:var(--wp--preset--color--text,#202020)!important;text-shadow:none!important;font-size:13px;line-height:1.45;text-align:left;-webkit-mask-image:none!important;mask-image:none!important;backdrop-filter:none!important}
.wp-block-gallery.has-nested-images.is-cropped figure.wp-block-image img{aspect-ratio:1/1;width:100%;height:auto!important;flex:0 0 auto;object-fit:cover}
.wp-block-gallery.has-nested-images figure.wp-block-image .lightbox-trigger{background:rgba(16,16,16,.75);color:#fff}
/* Lightbox: dark brand backdrop so photos stand out; clear, large controls */
.wp-lightbox-overlay .scrim{background-color:var(--ba-dark,#101010)!important;opacity:.95!important}
.wp-lightbox-overlay :is(.wp-lightbox-close-button,.wp-lightbox-navigation-button){color:#fff!important;min-width:44px;min-height:44px}
.wp-lightbox-overlay :is(.wp-lightbox-close-button,.wp-lightbox-navigation-button) svg{fill:currentColor}
.wp-lightbox-overlay :is(.wp-lightbox-close-button,.wp-lightbox-navigation-button):hover{color:var(--ba-orange)!important}
.wp-lightbox-overlay :is(.wp-lightbox-close-button,.wp-lightbox-navigation-button):focus-visible{outline:3px solid var(--ba-cyan);outline-offset:3px}

/* ===== 35. Homepage content wrapper ===== */
.ba-main>.wp-block-post-content.ba-front-content{margin:0}
.ba-front-content>.wp-block-group{margin-block-start:0}

/* ===== 36. Blog post: lead, range cards, call to action ===== */
.ba-content-page .ba-post-lead{font-size:clamp(19px,2vw,23px);line-height:1.5;font-weight:500;color:#141414;border-left:4px solid var(--ba-orange);padding:2px 0 2px 18px;margin-bottom:22px}
.single-post .ba-content-page .wp-block-post-content>h2{font-family:var(--ba-display);font-size:clamp(22px,2.4vw,30px);line-height:1.25;margin:48px 0 14px;color:#141414}
.ba-range-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:16px;margin-top:18px!important}
.ba-range-grid>.ba-range-card{margin:0!important}
.ba-range-card{background:#fff;border:1px solid var(--wp--preset--color--border,#d9d6d1);border-top:3px solid var(--ba-orange);padding:18px 20px 20px}
.ba-range-card h3{font-size:18px;line-height:1.3;margin:0 0 6px}
.ba-range-card h3 a{color:#141414;text-decoration:none}
.ba-range-card h3 a:hover,.ba-range-card h3 a:focus-visible{color:var(--wp--preset--color--orange-text,#915600);text-decoration:underline;text-underline-offset:3px}
.ba-range-card p{margin:0;font-size:15px;line-height:1.55;color:#525252}
.ba-post-cta{background:var(--ba-dark);color:#e7e7e7;border-top:3px solid var(--ba-orange);padding:clamp(28px,4vw,48px) clamp(20px,4vw,48px);margin-top:48px!important;text-align:center}
.single-post .ba-content-page .ba-post-cta h2{font-family:var(--ba-display);color:var(--ba-orange);font-size:clamp(24px,2.6vw,32px);margin:0 0 10px}
.ba-post-cta p{color:#e7e7e7;max-width:620px;margin:0 auto 22px!important}
.ba-post-cta .wp-block-buttons{justify-content:center}
