/* =========================================================
   3DBull Shop — Design System
   ========================================================= */
:root {
  --bull-primary: #e23a2e;
  --bull-secondary: #b9281f;
  --bull-dark: #111111;
  --bull-accent: #e23a2e;
  --bull-bg: #f5f5f5;
  --bull-text: #202124;
  --bull-surface: #fff;
  --bull-muted: #65717c;
  --bull-border: #dfe5ea;
  --bull-success: #087b37;
  --bull-warning: #9a6200;
  --bull-danger: #b32d2e;
  --bull-radius: 16px;
  --bull-button-radius: 8px;
  --bull-shadow-sm: 0 4px 16px rgba(3, 31, 51, .07);
  --bull-shadow-md: 0 12px 34px rgba(3, 31, 51, .12);
  --bull-container: 1320px;
  --bull-font-body: -apple-system, BlinkMacSystemFont, "Segoe UI", Arial, sans-serif;
  --bull-font-heading: "Arial Narrow", Arial, sans-serif;
  --bull-font-nav: "Arial Narrow", Arial, sans-serif;
  --bull-font-button: "Arial Narrow", Arial, sans-serif;
  --bull-font-price: "Arial Narrow", Arial, sans-serif;
  --bull-font-ticker: "Arial Narrow", Arial, sans-serif;
  --bull-body-size: 17px;
  --bull-heading-weight: 700;
  --bull-button-weight: 700;
  --bull-ticker-bg: #111111;
  --bull-ticker-fg: #ffffff;
  --bull-ticker-border: #e23a2e;
  --bull-ticker-font-size: 15px;
  --bull-ticker-padding: 8px;
  --bull-content-border-color: #e23a2e;
  --bull-content-border-width: 1px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--bull-text); background: var(--bull-bg); font-family: var(--bull-font-body); font-size: var(--bull-body-size); line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: var(--bull-primary); text-decoration-thickness: 1px; text-underline-offset: .16em; }
a:hover { color: var(--bull-dark); }
button, input, select, textarea { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
:focus-visible { outline: 3px solid color-mix(in srgb, var(--bull-secondary) 55%, white); outline-offset: 2px; }
::selection { background: var(--bull-secondary); color: #fff; }

h1, h2, h3, h4, h5, h6 { margin: 0 0 .55em; color: var(--bull-dark); font-family: var(--bull-font-heading); font-weight: var(--bull-heading-weight); line-height: 1.08; letter-spacing: .01em; }
h1 { font-size: clamp(2.2rem, 5vw, 4.8rem); }
h2 { font-size: clamp(1.8rem, 3.3vw, 3rem); }
h3 { font-size: clamp(1.25rem, 2vw, 1.65rem); }
p { margin: 0 0 1.15em; }

.screen-reader-text { position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.screen-reader-text:focus { position: fixed !important; top: 8px; left: 8px; z-index: 999999; width: auto; height: auto; clip: auto; padding: 10px 14px; background: #fff; color: #000; }
.bull-container { width: min(calc(100% - 40px), var(--bull-container)); margin-inline: auto; }
.bull-content-shell { padding-block: 56px 76px; }
.bull-content-shell--narrow { max-width: 900px; }
.bull-site-main { min-height: 55vh; }
.entry-content > *:first-child { margin-top: 0; }
.entry-content > *:last-child { margin-bottom: 0; }

/* Shared buttons */
.bull-button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit,
.wc-block-components-button,
.wp-element-button,
.wpcf7 input[type="submit"],
button.single_add_to_cart_button {
  display: inline-flex !important; align-items: center; justify-content: center; gap: 9px;
  min-height: 46px; padding: 11px 20px !important; border: 1px solid var(--bull-primary) !important; border-radius: var(--bull-button-radius) !important;
  background: var(--bull-primary) !important; color: #fff !important; font-family: var(--bull-font-button) !important; font-weight: var(--bull-button-weight) !important;
  line-height: 1.15 !important; letter-spacing: .025em; text-decoration: none !important; text-transform: none; cursor: pointer; box-shadow: none !important;
  transition: transform .16s ease, background .16s ease, border-color .16s ease, box-shadow .16s ease;
}
.bull-button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wc-block-components-button:hover,
.wp-element-button:hover,
.wpcf7 input[type="submit"]:hover,
button.single_add_to_cart_button:hover { background: var(--bull-dark) !important; border-color: var(--bull-dark) !important; color: #fff !important; transform: translateY(-1px); box-shadow: var(--bull-shadow-sm) !important; }
.bull-button svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; }
.bull-button--large { min-height: 54px; padding-inline: 26px !important; font-size: 1.08rem; }
.bull-button--light { background: #fff !important; color: var(--bull-dark) !important; border-color: #fff !important; }
.bull-button--light:hover { background: rgba(255,255,255,.92) !important; color: var(--bull-dark) !important; }

/* Shared fields */
input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="search"], input[type="number"], input[type="url"], select, textarea,
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea,
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input {
  width: 100%; min-height: 48px; padding: 11px 13px; border: 1px solid var(--bull-border); border-radius: 8px; background: #fff; color: var(--bull-text); box-shadow: inset 0 1px 1px rgba(5,32,49,.025); transition: border-color .15s ease, box-shadow .15s ease;
}
textarea { min-height: 120px; resize: vertical; }
input:focus, select:focus, textarea:focus { border-color: var(--bull-primary); outline: 0; box-shadow: 0 0 0 3px color-mix(in srgb, var(--bull-primary) 18%, transparent); }

/* Header */
.bull-site-header { position: relative; z-index: 90; background: #fff; box-shadow: 0 2px 12px rgba(6,58,91,.06); }
.bull-has-sticky-header .bull-site-header { position: sticky; top: 0; }
.admin-bar.bull-has-sticky-header .bull-site-header { top: 32px; }
.bull-brandbar { background: linear-gradient(90deg, #e8f6fd 0%, #fff 46%, #edf8fd 100%); border-top: 4px solid var(--bull-secondary); }
.bull-brandbar__inner { min-height: 104px; display: grid; grid-template-columns: minmax(130px, 240px) 1fr auto; align-items: center; gap: 26px; }
.bull-brandbar__logo { display: flex; align-items: center; }
.bull-brandbar__logo .custom-logo { display: block; width: min(var(--bull-logo-width), 100%); max-height: 88px; object-fit: contain; object-position: left center; }
.bull-text-logo { font-family: var(--bull-font-heading); font-weight: 800; font-size: 1.7rem; text-decoration: none; color: var(--bull-dark); }
.bull-brandbar__titles { text-align: center; min-width: 0; }
.bull-brand-title { font-family: var(--bull-font-heading); font-weight: 800; font-size: clamp(1.7rem, 3vw, 2.75rem); line-height: 1; color: var(--bull-dark); }
.bull-brand-subtitle { margin-top: 7px; font-family: var(--bull-font-heading); font-size: 1.05rem; letter-spacing: .07em; color: var(--bull-primary); }
.bull-brandbar__actions { display: flex; align-items: center; gap: 8px; }
.bull-header-action { position: relative; display: inline-flex; align-items: center; gap: 7px; min-height: 44px; padding: 8px 10px; color: var(--bull-dark); text-decoration: none; border-radius: 8px; }
.bull-header-action:hover { background: rgba(0,162,223,.08); color: var(--bull-primary); }
.bull-icon { width: 24px; height: 24px; display: inline-flex; }
.bull-icon svg { width: 100%; height: 100%; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.bull-cart-count { min-width: 22px; height: 22px; padding: 0 6px; display: inline-grid; place-items: center; border-radius: 999px; background: var(--bull-accent); color: #fff; font-size: 12px; font-weight: 800; line-height: 1; }
.bull-mobile-toggle { display: none; border: 0; background: transparent; color: var(--bull-dark); padding: 8px; }
.bull-mobile-toggle .bull-icon--close { display: none; }
.bull-mobile-toggle[aria-expanded="true"] .bull-icon--menu { display: none; }
.bull-mobile-toggle[aria-expanded="true"] .bull-icon--close { display: inline-flex; }

.bull-navrow { background: var(--bull-dark); }
.bull-navrow__inner { min-height: 58px; display: flex; align-items: stretch; justify-content: space-between; gap: 24px; }
.bull-primary-nav { display: flex; align-items: stretch; min-width: 0; }
.bull-menu { display: flex; align-items: stretch; gap: 2px; margin: 0; padding: 0; list-style: none; }
.bull-menu li { position: relative; display: flex; align-items: stretch; }
.bull-menu > li > a { display: flex; align-items: center; padding: 0 16px; color: #fff; font-family: var(--bull-font-nav); font-weight: 700; letter-spacing: .035em; text-decoration: none; }
.bull-menu > li > a:hover, .bull-menu > li.current-menu-item > a, .bull-menu > li.current-menu-ancestor > a { background: var(--bull-primary); color: #fff; }
.bull-menu .sub-menu { position: absolute; top: 100%; left: 0; min-width: 240px; margin: 0; padding: 8px; list-style: none; border-radius: 0 0 var(--bull-radius) var(--bull-radius); background: #fff; box-shadow: var(--bull-shadow-md); opacity: 0; visibility: hidden; transform: translateY(8px); transition: .15s ease; }
.bull-menu li:hover > .sub-menu, .bull-menu li.is-focus > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.bull-menu .sub-menu a { display: block; padding: 10px 12px; border-radius: 7px; color: var(--bull-text); text-decoration: none; }
.bull-menu .sub-menu a:hover { background: var(--bull-bg); color: var(--bull-primary); }

/* Live search */
.bull-live-search { position: relative; align-self: center; width: min(390px, 35vw); flex: 0 0 auto; }
.bull-search-form { position: relative; display: flex; }
.bull-search-input { height: 42px !important; min-height: 42px !important; padding: 8px 46px 8px 14px !important; border: 1px solid rgba(255,255,255,.2) !important; background: rgba(255,255,255,.98) !important; }
.bull-search-submit { position: absolute; right: 0; top: 0; width: 44px; height: 42px; padding: 10px; border: 0; border-radius: 0 8px 8px 0; background: transparent; color: var(--bull-primary); cursor: pointer; }
.bull-search-submit svg { width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 2; }
.bull-search-results { position: absolute; top: calc(100% + 8px); right: 0; width: min(480px, 90vw); max-height: min(620px, 70vh); overflow: auto; padding: 8px; border: 1px solid var(--bull-border); border-radius: var(--bull-radius); background: #fff; box-shadow: var(--bull-shadow-md); }
.bull-search-result { display: grid; grid-template-columns: 72px 1fr; gap: 12px; padding: 9px; border-radius: 9px; color: var(--bull-text); text-decoration: none; }
.bull-search-result + .bull-search-result { border-top: 1px solid #edf0f2; border-top-left-radius: 0; border-top-right-radius: 0; }
.bull-search-result:hover { background: var(--bull-bg); }
.bull-search-result img { width: 72px; height: 72px; border-radius: 7px; object-fit: cover; background: #f2f2f2; }
.bull-search-result__body { min-width: 0; display: flex; flex-direction: column; justify-content: center; }
.bull-search-result__body small { color: var(--bull-muted); font-size: .76rem; }
.bull-search-result__body strong { overflow: hidden; white-space: nowrap; text-overflow: ellipsis; color: var(--bull-dark); }
.bull-search-result__meta { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; font-family: var(--bull-font-price); color: var(--bull-primary); font-weight: 700; }
.bull-search-result__meta em { padding: 2px 6px; border-radius: 4px; background: #e9f7fd; color: var(--bull-primary); font-family: var(--bull-font-button); font-size: .69rem; font-style: normal; }
.bull-search-all { display: block; margin-top: 6px; padding: 11px 12px; border-radius: 8px; background: var(--bull-dark); color: #fff; text-align: center; text-decoration: none; font-weight: 700; }
.bull-search-all:hover { background: var(--bull-primary); color: #fff; }
.bull-search-empty { padding: 18px; text-align: center; color: var(--bull-muted); }
.bull-live-search.is-loading .bull-search-submit { animation: bull-pulse 1s infinite alternate; }
@keyframes bull-pulse { to { opacity: .35; } }

/* Ticker */
.bull-ticker { overflow: hidden; border-top: 2px solid var(--bull-ticker-border); border-bottom: 2px solid var(--bull-ticker-border); background: var(--bull-ticker-bg); color: var(--bull-ticker-fg); }
.bull-ticker__viewport { overflow: hidden; }
.bull-ticker__track { display: flex; width: max-content; will-change: transform; animation: bull-ticker-scroll 26s linear infinite; }
.bull-ticker--slow .bull-ticker__track { animation-duration: 40s; }
.bull-ticker--fast .bull-ticker__track { animation-duration: 17s; }
.bull-ticker--ltr .bull-ticker__track { animation-direction: reverse; }
.bull-ticker:hover .bull-ticker__track { animation-play-state: paused; }
.bull-ticker__item { display: block; flex: none; padding: var(--bull-ticker-padding) 36px; font-family: var(--bull-font-ticker); font-size: var(--bull-ticker-font-size); font-weight: 700; letter-spacing: .055em; white-space: nowrap; }
.bull-ticker__item a { color: inherit; text-decoration: none; }
@keyframes bull-ticker-scroll { from { transform: translateX(0); } to { transform: translateX(-50%); } }

/* Hero / front page */
.bull-hero { position: relative; overflow: hidden; color: #fff; background: linear-gradient(118deg, var(--bull-dark) 0%, var(--bull-primary) 66%, var(--bull-secondary) 100%); }
.bull-hero::after { content: ""; position: absolute; right: -120px; bottom: -190px; width: 520px; height: 520px; border-radius: 50%; border: 70px solid rgba(255,255,255,.08); }
.bull-hero__inner { position: relative; z-index: 1; min-height: 410px; display: grid; grid-template-columns: minmax(0, 1fr) .7fr; align-items: center; gap: 50px; padding-block: 68px; }
.bull-hero h1 { color: #fff; max-width: 760px; }
.bull-hero p { max-width: 700px; font-size: clamp(1.05rem, 1.6vw, 1.3rem); color: rgba(255,255,255,.88); }
.bull-kicker { display: inline-block; margin-bottom: 12px; color: var(--bull-accent); font-family: var(--bull-font-heading); font-size: .82rem; font-weight: 800; letter-spacing: .14em; }
.bull-hero .bull-kicker { color: #fff; opacity: .84; }
.bull-hero__mark { display: grid; place-items: center; aspect-ratio: 1; border: 2px solid rgba(255,255,255,.18); border-radius: 50%; color: rgba(255,255,255,.13); font-family: var(--bull-font-heading); font-size: clamp(4rem, 8vw, 8rem); font-weight: 900; transform: rotate(-7deg); }
.bull-home-content { padding-block: 58px 80px; }
.bull-home-page-content { margin-bottom: 56px; }
.bull-home-section { margin-top: 68px; }
.bull-section-heading { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 24px; }
.bull-section-heading h2 { margin-bottom: 0; }
.bull-section-heading > a { font-family: var(--bull-font-button); font-weight: 700; text-decoration: none; }
.bull-category-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 22px; }
.bull-category-card { position: relative; min-height: 270px; overflow: hidden; display: flex; align-items: end; padding: 28px; border-radius: var(--bull-radius); background: linear-gradient(135deg, var(--bull-dark), var(--bull-primary)); background-image: linear-gradient(135deg, rgba(6,58,91,.8), rgba(0,162,223,.42)), var(--bull-cat-image); background-size: cover; background-position: center; box-shadow: var(--bull-shadow-sm); color: #fff; text-decoration: none; transition: transform .18s ease, box-shadow .18s ease; }
.bull-category-card:hover { color: #fff; transform: translateY(-3px); box-shadow: var(--bull-shadow-md); }
.bull-category-card__content { position: relative; z-index: 1; display: flex; flex-direction: column; }
.bull-category-card strong { font-family: var(--bull-font-heading); font-size: clamp(1.7rem, 3vw, 2.7rem); line-height: 1; }
.bull-category-card small { margin-top: 8px; color: rgba(255,255,255,.82); }
.bull-designer-promo { margin: 68px 0; display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: clamp(28px, 5vw, 52px); border-radius: var(--bull-radius); background: linear-gradient(115deg, var(--bull-primary), var(--bull-dark)); box-shadow: var(--bull-shadow-md); color: #fff; }
.bull-designer-promo .bull-kicker, .bull-designer-promo h2 { color: #fff; }
.bull-designer-promo p { max-width: 780px; margin-bottom: 0; color: rgba(255,255,255,.86); }

/* Content cards */
.bull-post-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 22px; }
.bull-content-card, .bull-page, .bull-empty-state { padding: 28px; border: 1px solid var(--bull-border); border-radius: var(--bull-radius); background: #fff; box-shadow: var(--bull-shadow-sm); }
.bull-empty-state { text-align: center; padding-block: 70px; }
.bull-empty-state__code { color: var(--bull-secondary); font-family: var(--bull-font-heading); font-size: clamp(5rem, 14vw, 10rem); font-weight: 900; line-height: .9; }
.bull-archive-header { margin-bottom: 26px; }

/* WooCommerce global */
.woocommerce .woocommerce-breadcrumb { margin: 0 0 24px; color: var(--bull-muted); font-size: .9rem; }
.woocommerce .woocommerce-breadcrumb a { color: var(--bull-primary); text-decoration: none; }
.woocommerce .woocommerce-result-count, .woocommerce .woocommerce-ordering { margin-bottom: 24px; }
.woocommerce .woocommerce-ordering select { min-width: 230px; }

.woocommerce ul.products { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 24px !important; margin: 0 !important; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display: none !important; }
.woocommerce ul.products li.product { position: relative; float: none !important; width: auto !important; margin: 0 !important; display: flex; flex-direction: column; padding: 14px 14px 16px !important; border: 1px solid var(--bull-border); border-radius: var(--bull-radius); background: #fff; box-shadow: var(--bull-shadow-sm); transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.woocommerce ul.products li.product:hover { transform: translateY(-3px); box-shadow: var(--bull-shadow-md); border-color: color-mix(in srgb, var(--bull-primary) 28%, var(--bull-border)); }
.woocommerce ul.products li.product a img { margin: 0 0 14px !important; border-radius: calc(var(--bull-radius) - 4px); aspect-ratio: 1/1; object-fit: cover; background: #f4f4f4; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0 !important; margin: 2px 0 7px !important; color: var(--bull-dark); font-family: var(--bull-font-heading); font-size: 1.24rem !important; font-weight: 700; line-height: 1.12; }
.woocommerce ul.products li.product .price { margin: auto 0 13px !important; color: var(--bull-primary) !important; font-family: var(--bull-font-price); font-size: 1.12rem !important; font-weight: 800 !important; }
.woocommerce ul.products li.product .button { width: 100%; margin-top: 0 !important; }
.woocommerce span.onsale { min-width: 0; min-height: 0; top: 10px !important; left: 10px !important; right: auto !important; margin: 0 !important; padding: 6px 9px !important; border-radius: 6px !important; background: var(--bull-accent) !important; color: #fff !important; font-family: var(--bull-font-button); font-size: .75rem !important; line-height: 1 !important; }
.bull-product-badge { position: absolute; z-index: 4; top: 10px; right: 10px; padding: 5px 8px; border-radius: 6px; background: var(--bull-primary); color: #fff; font-family: var(--bull-font-button); font-size: .7rem; font-weight: 800; letter-spacing: .04em; }

/* Product */
.woocommerce div.product { padding-block: 46px 70px; }
.woocommerce div.product div.images, .woocommerce div.product div.summary { margin-bottom: 36px; }
.woocommerce div.product div.images img { border-radius: var(--bull-radius); background: #fff; }
.woocommerce div.product .summary { padding: clamp(20px, 3vw, 34px); border: 1px solid var(--bull-border); border-radius: var(--bull-radius); background: #fff; box-shadow: var(--bull-shadow-sm); }
.woocommerce div.product .product_title { font-size: clamp(2rem, 4vw, 3.4rem); }
.woocommerce div.product p.price, .woocommerce div.product span.price { color: var(--bull-primary); font-family: var(--bull-font-price); font-size: 1.6rem; font-weight: 800; }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; margin-top: 22px; }
.woocommerce .quantity .qty { min-height: 46px; border: 1px solid var(--bull-border); border-radius: 8px; }
.woocommerce div.product .woocommerce-tabs { clear: both; padding-top: 26px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; flex-wrap: wrap; gap: 8px; padding: 0 !important; margin: 0 0 16px !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0 !important; padding: 0 !important; border: 0 !important; border-radius: 8px !important; background: transparent !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none !important; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 10px 14px !important; border: 1px solid var(--bull-border); border-radius: 8px; background: #fff; color: var(--bull-dark); text-decoration: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { border-color: var(--bull-primary); background: var(--bull-primary); color: #fff; }
.woocommerce div.product .woocommerce-tabs .panel { padding: 28px; border: 1px solid var(--bull-border); border-radius: var(--bull-radius); background: #fff; }
.product_meta { color: var(--bull-muted); font-size: .9rem; }

/* Product description — consistent 3DBull content system */
.woocommerce div.product .woocommerce-product-details__short-description {
  margin: 20px 0 4px;
  padding: 16px 18px;
  border: 1px solid color-mix(in srgb, var(--bull-primary) 20%, var(--bull-border));
  border-left: 4px solid var(--bull-primary);
  border-radius: 9px;
  background: color-mix(in srgb, var(--bull-primary) 5%, #fff);
  color: color-mix(in srgb, var(--bull-text) 88%, #fff);
  line-height: 1.65;
}
.woocommerce div.product .woocommerce-product-details__short-description > *:first-child { margin-top: 0; }
.woocommerce div.product .woocommerce-product-details__short-description > *:last-child { margin-bottom: 0; }
.woocommerce div.product .woocommerce-product-details__short-description ul,
.woocommerce div.product .woocommerce-product-details__short-description ol { margin: .8em 0 .2em 1.2em; padding: 0; }
.woocommerce div.product .woocommerce-product-details__short-description li { margin: .35em 0; }

.woocommerce div.product .woocommerce-Tabs-panel--description {
  position: relative;
  padding: clamp(24px, 3.5vw, 42px) !important;
  overflow: hidden;
}
.woocommerce div.product .woocommerce-Tabs-panel--description::before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--bull-primary), var(--bull-secondary));
}
.woocommerce div.product .woocommerce-Tabs-panel--description > h2:first-child {
  margin: 0 0 24px;
  padding: 0 0 15px;
  border-bottom: 1px solid var(--bull-border);
  color: var(--bull-dark);
  font-size: clamp(1.65rem, 2.5vw, 2.15rem);
}
.woocommerce div.product .woocommerce-Tabs-panel--description h2:not(:first-child),
.woocommerce div.product .woocommerce-Tabs-panel--description h3,
.woocommerce div.product .woocommerce-Tabs-panel--description h4 {
  margin-top: 1.55em;
  margin-bottom: .65em;
  color: var(--bull-dark);
}
.woocommerce div.product .woocommerce-Tabs-panel--description h3 {
  position: relative;
  padding-left: 14px;
}
.woocommerce div.product .woocommerce-Tabs-panel--description h3::before {
  content: "";
  position: absolute;
  left: 0;
  top: .08em;
  bottom: .08em;
  width: 4px;
  border-radius: 4px;
  background: var(--bull-primary);
}
.woocommerce div.product .woocommerce-Tabs-panel--description p {
  max-width: 980px;
  margin: 0 0 1.05em;
  line-height: 1.72;
}
.woocommerce div.product .woocommerce-Tabs-panel--description ul,
.woocommerce div.product .woocommerce-Tabs-panel--description ol {
  max-width: 980px;
  margin: 1em 0 1.35em;
  padding-left: 1.35em;
}
.woocommerce div.product .woocommerce-Tabs-panel--description li {
  margin: .42em 0;
  padding-left: .15em;
  line-height: 1.6;
}
.woocommerce div.product .woocommerce-Tabs-panel--description li::marker { color: var(--bull-primary); font-weight: 800; }
.woocommerce div.product .woocommerce-Tabs-panel--description a { font-weight: 650; }
.woocommerce div.product .woocommerce-Tabs-panel--description strong { color: var(--bull-dark); }
.woocommerce div.product .woocommerce-Tabs-panel--description hr {
  height: 1px;
  margin: 28px 0;
  border: 0;
  background: var(--bull-border);
}
.woocommerce div.product .woocommerce-Tabs-panel--description blockquote {
  margin: 24px 0;
  padding: 18px 20px;
  border-left: 4px solid var(--bull-primary);
  border-radius: 0 9px 9px 0;
  background: #f6fbfe;
}
.woocommerce div.product .woocommerce-Tabs-panel--description img {
  border-radius: calc(var(--bull-radius) - 3px);
}
.woocommerce div.product .woocommerce-Tabs-panel--description table {
  width: 100%;
  margin: 22px 0;
  border-collapse: separate;
  border-spacing: 0;
  overflow: hidden;
  border: 1px solid var(--bull-border);
  border-radius: 9px;
}
.woocommerce div.product .woocommerce-Tabs-panel--description th,
.woocommerce div.product .woocommerce-Tabs-panel--description td {
  padding: 12px 14px;
  border-bottom: 1px solid var(--bull-border);
  text-align: left;
}
.woocommerce div.product .woocommerce-Tabs-panel--description th { background: #f4f9fc; color: var(--bull-dark); }
.woocommerce div.product .woocommerce-Tabs-panel--description tr:last-child th,
.woocommerce div.product .woocommerce-Tabs-panel--description tr:last-child td { border-bottom: 0; }

/* Existing product descriptions using <div class="produktbeschreibung"> get a richer layout without requiring editor changes. */
.produktbeschreibung {
  display: grid;
  gap: 18px;
  max-width: 1040px;
}
.produktbeschreibung > * { min-width: 0; }
.produktbeschreibung > p { margin: 0; }
.produktbeschreibung > h2,
.produktbeschreibung > h3,
.produktbeschreibung > h4 { margin-bottom: 0 !important; }
.produktbeschreibung .produktbox,
.produktbeschreibung .produkt-box,
.produktbeschreibung .info-box,
.produktbeschreibung .infobox {
  padding: 20px 22px;
  border: 1px solid var(--bull-border);
  border-radius: 10px;
  background: #f8fbfd;
}
.produktbeschreibung .highlight,
.produktbeschreibung .hinweis {
  padding: 18px 20px;
  border-left: 4px solid var(--bull-primary);
  border-radius: 0 9px 9px 0;
  background: color-mix(in srgb, var(--bull-primary) 6%, #fff);
}

/* Configurator host area */
.bull-configurator-product .bull-container { --bull-container: 1480px; }
.bull-configurator-area { clear: both; width: 100%; margin: 34px 0; padding: clamp(18px, 3vw, 30px); border: 1px solid color-mix(in srgb, var(--bull-primary) 24%, var(--bull-border)); border-top: 4px solid var(--bull-primary); border-radius: var(--bull-radius); background: #fff; box-shadow: var(--bull-shadow-md); }
.bull-configurator-area__inner { min-width: 0; }
.bull-configurator-area__eyebrow { display: inline-block; margin-bottom: 14px; padding: 4px 8px; border-radius: 5px; background: #e9f7fd; color: var(--bull-primary); font-family: var(--bull-font-button); font-size: .72rem; font-weight: 800; letter-spacing: .08em; }
/* Generic guardrails for third-party/custom designer UIs. */
.bull-configurator-area canvas, .bull-configurator-area svg, .bull-configurator-area img { max-width: 100%; }
.bull-configurator-area button, .bull-configurator-area .button { font-family: var(--bull-font-button); }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.wc-block-components-notice-banner { margin: 0 0 22px !important; padding: 14px 18px !important; border: 1px solid var(--bull-border) !important; border-left: 4px solid var(--bull-primary) !important; border-radius: var(--bull-radius) !important; background: #fff !important; color: var(--bull-text) !important; box-shadow: var(--bull-shadow-sm); }
.woocommerce-error { border-left-color: var(--bull-danger) !important; }
.woocommerce-message { border-left-color: var(--bull-success) !important; }
.woocommerce-info { border-left-color: var(--bull-secondary) !important; }
.woocommerce-message::before, .woocommerce-info::before, .woocommerce-error::before { position: static !important; margin-right: 8px; color: inherit !important; }

/* Cart / Checkout — compact 3DBull commerce layout */
.woocommerce-cart .bull-site-main,
.woocommerce-checkout .bull-site-main { background: #f4f6f8; }

/* Woo pages already sit in the theme container. Do not nest another large white page card. */
.woocommerce-cart .bull-content-shell,
.woocommerce-checkout .bull-content-shell {
  width: min(calc(100% - 40px), var(--bull-container));
  max-width: none;
  padding-block: 34px 70px;
}
.woocommerce-cart .bull-page,
.woocommerce-checkout .bull-page {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.woocommerce-cart .entry-title,
.woocommerce-checkout .entry-title {
  margin: 0 0 26px;
  font-size: clamp(2.35rem, 4.2vw, 3.65rem);
  line-height: .98;
}
.woocommerce-cart .entry-content,
.woocommerce-checkout .entry-content { min-width: 0; }
.woocommerce-cart .entry-content > .woocommerce,
.woocommerce-checkout .entry-content > .woocommerce {
  width: 100%;
  margin: 0;
  padding: 0;
}

/* Classic cart */
.woocommerce-cart .entry-content > .woocommerce {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(350px, 390px);
  gap: 26px;
  align-items: start;
}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper,
.woocommerce-cart .woocommerce > .woocommerce-message,
.woocommerce-cart .woocommerce > .woocommerce-info,
.woocommerce-cart .woocommerce > .woocommerce-error { grid-column: 1 / -1; width: 100%; }
.woocommerce-cart .woocommerce > .woocommerce-cart-form { grid-column: 1; min-width: 0; }
.woocommerce-cart .woocommerce > .cart-collaterals { grid-column: 2; min-width: 0; }

.woocommerce-cart-form,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.wc-block-cart__main,
.wc-block-cart__sidebar,
.wc-block-checkout__main,
.wc-block-checkout__sidebar {
  border: 1px solid var(--bull-border);
  border-radius: var(--bull-radius);
  background: #fff;
  box-shadow: var(--bull-shadow-sm);
}

.woocommerce-cart-form { width: 100% !important; overflow: hidden; padding: 0; }
.woocommerce-cart table.shop_table { margin: 0; border: 0 !important; border-radius: 0; }
.woocommerce-cart table.shop_table thead th {
  padding: 15px 12px;
  border: 0;
  border-bottom: 1px solid var(--bull-border);
  background: #f4f9fc;
  color: var(--bull-dark);
  font-family: var(--bull-font-heading);
  font-weight: 800;
}
.woocommerce-cart table.shop_table tbody td {
  padding: 16px 12px;
  border-top: 1px solid #edf1f4;
  vertical-align: middle;
}
.woocommerce-cart table.shop_table tbody tr:first-child td { border-top: 0; }
.woocommerce-cart table.cart img {
  width: 68px;
  min-width: 68px;
  border: 1px solid var(--bull-border);
  border-radius: 9px;
  background: #fff;
}
.woocommerce-cart table.cart .product-name a {
  color: var(--bull-dark);
  font-family: var(--bull-font-heading);
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
}
.woocommerce-cart table.cart .product-name a:hover { color: var(--bull-primary); }
.woocommerce-cart table.cart .product-price,
.woocommerce-cart table.cart .product-subtotal {
  white-space: nowrap;
  font-family: var(--bull-font-price);
  font-weight: 700;
}
.woocommerce-cart table.cart .quantity .qty { width: 70px; text-align: center; }
.woocommerce-cart a.remove {
  width: 30px;
  height: 30px;
  display: inline-grid;
  place-items: center;
  border: 1px solid color-mix(in srgb, var(--bull-danger) 25%, var(--bull-border));
  border-radius: 50%;
  background: #fff;
  color: var(--bull-danger) !important;
  font-size: 1.25rem;
  line-height: 1;
  text-decoration: none;
}
.woocommerce-cart a.remove:hover {
  border-color: var(--bull-danger);
  background: var(--bull-danger);
  color: #fff !important;
}
.woocommerce-cart table.cart td.actions {
  padding: 16px 12px;
  border-top: 1px solid var(--bull-border);
  background: #fafcfd;
}
.woocommerce-cart table.cart td.actions .coupon {
  display: inline-flex;
  align-items: stretch;
  gap: 8px;
}
.woocommerce-cart table.cart td.actions .coupon .input-text {
  float: none;
  width: 180px !important;
  min-height: 46px;
  margin: 0 !important;
}
.woocommerce-cart table.cart td.actions > .button { float: right; }
.woocommerce-cart table.cart td.actions > .button:disabled,
.woocommerce-cart table.cart td.actions > .button[disabled] { opacity: .5; }

/* Cart totals card */
.woocommerce .cart-collaterals { float: none; width: 100%; margin: 0; }
.woocommerce .cart-collaterals .cart_totals {
  width: 100% !important;
  padding: 22px;
  position: sticky;
  top: 212px;
}
.woocommerce .cart-collaterals .cart_totals h2 {
  margin: 0 0 16px;
  padding-bottom: 14px;
  border-bottom: 1px solid var(--bull-border);
  font-size: clamp(1.65rem, 2.2vw, 2rem);
  line-height: 1.05;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table { margin: 0; }
.woocommerce .cart-collaterals .cart_totals table.shop_table tbody { display: block; }
.woocommerce .cart-collaterals .cart_totals table.shop_table tr {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 18px;
  padding: 14px 0;
  border-bottom: 1px solid #e8edf1;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table tr:last-child { border-bottom: 0; }
.woocommerce .cart-collaterals .cart_totals table.shop_table th,
.woocommerce .cart-collaterals .cart_totals table.shop_table td {
  display: block;
  width: auto;
  padding: 0;
  border: 0;
  background: transparent;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table th {
  flex: 0 0 auto;
  color: var(--bull-dark);
  font-weight: 800;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table td {
  min-width: 0;
  margin-left: auto;
  text-align: right;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table tr.shipping {
  display: block;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table tr.shipping th {
  margin-bottom: 10px;
  text-align: left;
}
.woocommerce .cart-collaterals .cart_totals table.shop_table tr.shipping td {
  width: 100%;
  margin: 0;
  text-align: left;
}

/* Shipping methods: intentionally not table-like, so long German labels never collide. */
.woocommerce ul#shipping_method,
.woocommerce .woocommerce-shipping-methods {
  width: 100%;
  margin: 0;
  padding: 0;
  list-style: none;
}
.woocommerce ul#shipping_method li,
.woocommerce .woocommerce-shipping-methods li {
  display: grid;
  grid-template-columns: 20px minmax(0, 1fr);
  align-items: start;
  column-gap: 9px;
  width: 100%;
  margin: 0 0 8px;
  padding: 0;
  line-height: 1.35;
  text-indent: 0;
}
.woocommerce ul#shipping_method li:last-child,
.woocommerce .woocommerce-shipping-methods li:last-child { margin-bottom: 0; }
.woocommerce ul#shipping_method input,
.woocommerce .woocommerce-shipping-methods input {
  grid-column: 1;
  width: 18px;
  height: 18px;
  margin: 2px 0 0;
}
.woocommerce ul#shipping_method label,
.woocommerce .woocommerce-shipping-methods label {
  grid-column: 2;
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
  word-break: normal;
  white-space: normal;
  cursor: pointer;
}
.woocommerce ul#shipping_method .amount,
.woocommerce .woocommerce-shipping-methods .amount { font-weight: 800; white-space: nowrap; }
.woocommerce-shipping-destination { margin: 12px 0 4px; color: var(--bull-muted); font-size: .9rem; line-height: 1.4; }
.woocommerce-shipping-calculator { margin: 8px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout { padding: 16px 0 0; }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button { width: 100%; min-height: 54px; margin: 0; }

/* Classic checkout */
.woocommerce-checkout form.checkout {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(390px, 430px);
  gap: 26px;
  align-items: start;
}
.woocommerce-checkout #customer_details { grid-column: 1; padding: 24px; min-width: 0; }
.woocommerce-checkout #customer_details .col-1,
.woocommerce-checkout #customer_details .col-2 { float: none; width: 100%; }
.woocommerce-checkout #customer_details .col-2 { margin-top: 28px; }
.woocommerce-checkout #order_review_heading {
  grid-column: 2;
  margin: 0 0 -12px;
  padding: 0 4px;
  font-size: clamp(1.55rem, 2vw, 1.9rem);
}
.woocommerce-checkout #order_review {
  grid-column: 2;
  padding: 20px;
  position: sticky;
  top: 212px;
  min-width: 0;
  overflow: hidden;
}
.woocommerce-checkout #order_review table.shop_table { table-layout: fixed; width: 100%; }
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td { min-width: 0; overflow-wrap: anywhere; }
.woocommerce-checkout #order_review table.shop_table tfoot tr.shipping th,
.woocommerce-checkout #order_review table.shop_table tfoot tr.shipping td {
  display: block;
  width: 100%;
  padding-left: 0;
  padding-right: 0;
  text-align: left;
}
.woocommerce-checkout #order_review table.shop_table tfoot tr.shipping th { padding-bottom: 7px; }
.woocommerce-checkout #order_review table.shop_table tfoot tr.shipping td { padding-top: 0; }
.woocommerce-checkout #payment { background: #f7f9fa !important; border-radius: 10px !important; }
.woocommerce-checkout #payment ul.payment_methods { padding: 16px !important; border-bottom: 1px solid var(--bull-border) !important; }
.woocommerce-checkout #payment div.form-row { padding: 16px !important; }
.woocommerce-checkout .place-order .button { width: 100%; min-height: 54px; }

/* Blocks cart/checkout */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
  width: min(calc(100% - 40px), var(--bull-container));
  margin-inline: auto;
  padding-block: 34px 70px;
}
.wc-block-cart__main, .wc-block-checkout__main { padding: clamp(16px, 2vw, 24px); }
.wc-block-cart__sidebar, .wc-block-checkout__sidebar { padding: clamp(16px, 2vw, 24px); }
.wc-block-components-sidebar-layout .wc-block-components-main { padding-right: 2%; }
.wc-block-components-sidebar-layout .wc-block-components-sidebar { top: 212px; }
.wc-block-components-product-name { color: var(--bull-dark); font-family: var(--bull-font-heading); font-weight: 700; }
.wc-block-components-product-price { color: var(--bull-primary); font-family: var(--bull-font-price); font-weight: 800; }
.wc-block-components-totals-shipping .wc-block-components-radio-control__option-layout { min-width: 0; }
.wc-block-components-totals-shipping label { overflow-wrap: anywhere; }

/* Germanized */
.wc-gzd-additional-info, .product-tax, .shipping-costs-info, .delivery-time-info { color: var(--bull-muted); font-size: .84rem; }
.woocommerce-checkout .wc-gzd-checkbox-placeholder, .woocommerce-checkout .legal { padding: 10px 0; }
.woocommerce-checkout .legal label { line-height: 1.45; }

/* Footer */
.bull-site-footer {
  color: rgba(255,255,255,.84);
  background: var(--bull-dark);
}
.bull-footer-main {
  padding: 46px 0 38px;
  border-top: 4px solid var(--bull-primary);
}
.bull-footer-grid {
  display: grid;
  grid-template-columns: repeat(var(--bull-footer-cols, 1), minmax(0, 1fr));
  gap: clamp(28px, 4vw, 54px);
  align-items: start;
}
.bull-footer-col { min-width: 0; }
.bull-footer-col .custom-logo {
  display: block;
  max-width: 180px;
  max-height: 90px;
  object-fit: contain;
  object-position: left center;
  filter: brightness(0) invert(1);
  opacity: .96;
}
.bull-footer-widget { min-width: 0; margin: 0 0 24px; }
.bull-footer-widget:last-child { margin-bottom: 0; }
.bull-footer-widget .widget-title,
.bull-footer-widget .wp-block-heading,
.bull-footer-widget h2,
.bull-footer-widget h3,
.bull-footer-widget h4,
.bull-footer-col > h2,
.bull-footer-col > h3,
.bull-footer-col > h4 {
  position: relative;
  margin: 0 0 16px;
  padding-bottom: 10px;
  color: #fff;
  font-size: 1.2rem;
  line-height: 1.15;
}
.bull-footer-widget .widget-title::after,
.bull-footer-widget .wp-block-heading::after,
.bull-footer-widget h2::after,
.bull-footer-widget h3::after,
.bull-footer-widget h4::after,
.bull-footer-col > h2::after,
.bull-footer-col > h3::after,
.bull-footer-col > h4::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 42px;
  height: 2px;
  background: var(--bull-accent);
}
.bull-footer-col p { margin: 0 0 .85em; }
.bull-footer-col address {
  margin: 0;
  color: rgba(255,255,255,.84);
  font-style: normal;
  line-height: 1.65;
}
.bull-footer-col address strong { color: #fff; }
.bull-footer-col a { color: rgba(255,255,255,.88); text-decoration: none; }
.bull-footer-col a:hover { color: #fff; text-decoration: none; }

/* Footer menus / list widgets */
.bull-footer-menu,
.bull-legal-menu,
.bull-footer-col ul.menu,
.bull-footer-col .wp-block-navigation__container {
  margin: 0;
  padding: 0;
  list-style: none;
}
.bull-footer-menu li,
.bull-footer-col ul.menu li { margin: 0 0 7px; padding: 0; list-style: none; }
.bull-footer-col ul.menu li::marker { content: ""; }
.bull-footer-col ul.menu a,
.bull-footer-menu a {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  line-height: 1.35;
}
.bull-footer-col ul.menu a::before,
.bull-footer-menu a::before {
  content: "›";
  color: var(--bull-secondary);
  font-weight: 900;
}

/* WooCommerce product list widget inside footer: image left, content right. */
.bull-site-footer .woocommerce ul.product_list_widget,
.bull-site-footer ul.product_list_widget {
  margin: 0;
  padding: 0;
  list-style: none;
}
.bull-site-footer ul.product_list_widget li {
  clear: both;
  min-width: 0;
  margin: 0;
  padding: 12px 0;
  border-bottom: 1px solid rgba(255,255,255,.12);
}
.bull-site-footer ul.product_list_widget li:first-child { padding-top: 0; }
.bull-site-footer ul.product_list_widget li:last-child { padding-bottom: 0; border-bottom: 0; }
.bull-site-footer ul.product_list_widget li > a {
  display: grid;
  grid-template-columns: 58px minmax(0, 1fr);
  column-gap: 12px;
  align-items: start;
  min-width: 0;
  color: #fff;
  font-family: var(--bull-font-heading);
  font-weight: 700;
  line-height: 1.28;
}
.bull-site-footer ul.product_list_widget li img {
  float: none !important;
  grid-column: 1;
  grid-row: 1 / span 5;
  width: 58px !important;
  height: 58px !important;
  margin: 0 !important;
  border-radius: 7px;
  object-fit: cover;
  background: #fff;
}
.bull-site-footer ul.product_list_widget .product-title { grid-column: 2; min-width: 0; overflow-wrap: anywhere; }
.bull-site-footer ul.product_list_widget li > .amount,
.bull-site-footer ul.product_list_widget li > del,
.bull-site-footer ul.product_list_widget li > ins,
.bull-site-footer ul.product_list_widget li > .star-rating,
.bull-site-footer ul.product_list_widget li > .wc-gzd-additional-info,
.bull-site-footer ul.product_list_widget li > .product-tax,
.bull-site-footer ul.product_list_widget li > .shipping-costs-info,
.bull-site-footer ul.product_list_widget li > .delivery-time-info {
  display: block;
  margin: 4px 0 0 70px;
}
.bull-site-footer ul.product_list_widget .amount { color: #fff; font-family: var(--bull-font-price); font-weight: 700; }
.bull-site-footer ul.product_list_widget .wc-gzd-additional-info,
.bull-site-footer ul.product_list_widget .product-tax,
.bull-site-footer ul.product_list_widget .shipping-costs-info,
.bull-site-footer ul.product_list_widget .delivery-time-info {
  color: rgba(255,255,255,.62);
  font-size: .76rem;
  line-height: 1.35;
}
.bull-footer-bottom {
  background: rgba(0,0,0,.18);
  border-top: 1px solid rgba(255,255,255,.12);
}
.bull-footer-bottom__inner {
  min-height: 68px;
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr);
  align-items: center;
  gap: clamp(16px, 2.5vw, 34px);
  font-size: .86rem;
}
.bull-footer-bottom__text {
  min-width: 0;
  color: rgba(255,255,255,.76);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.bull-footer-bottom__menu {
  min-width: 0;
  justify-self: center;
}
.bull-footer-nav { min-width: 0; }
.bull-legal-menu {
  display: flex;
  flex-wrap: nowrap;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  white-space: nowrap;
}
.bull-legal-menu li {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
  list-style: none;
}
.bull-legal-menu li + li::before {
  content: "";
  display: block;
  width: 1px;
  height: 15px;
  margin: 0 12px;
  background: rgba(255,255,255,.28);
}
.bull-legal-menu a {
  color: rgba(255,255,255,.82);
  text-decoration: none;
  transition: color .18s ease;
}
.bull-legal-menu a:hover,
.bull-legal-menu a:focus-visible {
  color: #fff;
}
.bull-back-to-top {
  justify-self: end;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  margin: 0;
  padding: 8px 14px;
  border: 1px solid rgba(255,255,255,.25);
  border-radius: var(--bull-button-radius);
  background: rgba(255,255,255,.07);
  color: #fff;
  font-family: var(--bull-font-button);
  font-weight: 700;
  line-height: 1;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}
.bull-back-to-top .bull-icon {
  width: 18px;
  height: 18px;
}
.bull-back-to-top:hover,
.bull-back-to-top:focus-visible {
  border-color: var(--bull-secondary);
  background: var(--bull-primary);
  color: #fff;
  transform: translateY(-1px);
}
.bull-footer-text > *:last-child { margin-bottom: 0; }

/* Germanized / EU withdrawal link is injected after the theme footer via wp_footer. */
.eu-owb-order-withdraw-from-contract-button {
  margin: 0 !important;
  padding: 0 20px 22px;
  background: var(--bull-dark);
  text-align: center;
}
.eu-owb-order-withdraw-from-contract-button a,
.eu-owb-order-withdraw-from-contract-button a.button {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 42px;
  padding: 9px 18px !important;
  border: 1px solid rgba(255,255,255,.28) !important;
  border-radius: var(--bull-button-radius) !important;
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
  font-family: var(--bull-font-button) !important;
  font-weight: 700 !important;
  text-decoration: none !important;
}
.eu-owb-order-withdraw-from-contract-button a:hover,
.eu-owb-order-withdraw-from-contract-button a.button:hover {
  border-color: var(--bull-secondary) !important;
  background: var(--bull-primary) !important;
  color: #fff !important;
}

/* Responsive */
@media (max-width: 1024px) {
  .bull-brandbar__inner { grid-template-columns: auto 1fr auto; min-height: 86px; gap: 14px; }
  .bull-brandbar__titles { text-align: left; }
  .bull-brand-title { font-size: 1.8rem; }
  .bull-brand-subtitle { display: none; }
  .bull-mobile-toggle { display: inline-flex; }
  .bull-primary-nav { display: none; position: absolute; top: 100%; left: 0; right: 0; background: var(--bull-dark); box-shadow: var(--bull-shadow-md); }
  .bull-primary-nav.is-open { display: block; }
  .bull-menu { display: block; padding: 10px 20px 18px; }
  .bull-menu li { display: block; }
  .bull-menu > li > a { min-height: 46px; padding: 10px 12px; border-radius: 7px; }
  .bull-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; min-width: 0; padding: 0 0 6px 16px; background: transparent; box-shadow: none; }
  .bull-menu .sub-menu a { color: rgba(255,255,255,.82); }
  .bull-menu .sub-menu a:hover { background: rgba(255,255,255,.08); color: #fff; }
  .bull-navrow__inner { justify-content: flex-end; min-height: 52px; }
  .bull-live-search { width: 100%; }
  .bull-search-results { left: 0; right: 0; width: 100%; }
  .bull-hero__inner { grid-template-columns: 1fr; min-height: 350px; }
  .bull-hero__mark { display: none; }
  .woocommerce-cart .entry-content > .woocommerce { grid-template-columns: 1fr; }
  .woocommerce-cart .woocommerce > .woocommerce-cart-form, .woocommerce-cart .woocommerce > .cart-collaterals { grid-column: 1; }
  .woocommerce .cart-collaterals .cart_totals { position: static; }
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
  .woocommerce-checkout #customer_details, .woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review { grid-column: 1; }
  .woocommerce-checkout #order_review { position: static; }
  .bull-footer-grid--3, .bull-footer-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bull-footer-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .bull-footer-grid--1 { grid-template-columns: 1fr; }
}

@media (max-width: 1180px) {
  .bull-footer-bottom__inner {
    grid-template-columns: minmax(150px, .8fr) minmax(0, 1.6fr) auto;
  }
  .bull-footer-bottom__menu {
    max-width: 100%;
    overflow-x: auto;
    scrollbar-width: thin;
  }
  .bull-footer-nav { min-width: max-content; }
}

@media (max-width: 782px) {
  .admin-bar.bull-has-sticky-header .bull-site-header { top: 46px; }
}

@media (max-width: 760px) {
  .bull-ticker--hide-mobile { display: none; }
  .bull-container { width: min(calc(100% - 24px), var(--bull-container)); }
  .bull-brandbar__inner { grid-template-columns: auto minmax(90px,1fr) auto; }
  .bull-brandbar__titles { display: none; }
  .bull-brandbar__logo { justify-content: center; }
  .bull-brandbar__logo .custom-logo { max-height: 66px; object-position: center; }
  .bull-action-label { display: none; }
  .bull-header-action { padding: 7px; }
  .bull-cart-count { position: absolute; right: -2px; top: 1px; min-width: 18px; height: 18px; font-size: 10px; }
  .bull-navrow__inner { width: 100%; padding: 6px 12px; }
  .bull-ticker__item { padding-inline: 24px; }
  .bull-hero__inner { padding-block: 48px; }
  .bull-category-grid { grid-template-columns: 1fr; }
  .bull-category-card { min-height: 210px; }
  .bull-designer-promo { display: block; }
  .bull-designer-promo .bull-button { margin-top: 18px; }
  .bull-section-heading { align-items: start; flex-direction: column; }
  .bull-post-grid, .woocommerce ul.products { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 12px !important; }
  .woocommerce ul.products li.product { padding: 9px 9px 12px !important; }
  .woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 1.05rem !important; }
  .woocommerce ul.products li.product .button { font-size: .87rem; padding-inline: 8px !important; }
  .woocommerce-cart .bull-content-shell, .woocommerce-checkout .bull-content-shell, .wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { width: min(calc(100% - 24px), var(--bull-container)); padding-block: 26px 48px; }
  .woocommerce-cart-form { overflow-x: auto; }
  .woocommerce-cart table.cart td.actions .coupon { display: grid; grid-template-columns: minmax(0,1fr) auto; width: 100%; float: none; margin-bottom: 10px; }
  .woocommerce-cart table.cart td.actions .coupon .input-text { width: 100% !important; }
  .woocommerce-cart table.cart td.actions > .button { float: none; width: 100%; }
  .woocommerce table.shop_table_responsive tr td::before { font-weight: 700; color: var(--bull-dark); }
  .bull-footer-grid { grid-template-columns: 1fr; }
  .bull-footer-bottom__inner {
    grid-template-columns: 1fr auto;
    grid-template-areas:
      "menu menu"
      "text top";
    padding-block: 16px;
    row-gap: 14px;
  }
  .bull-footer-bottom__text { grid-area: text; }
  .bull-footer-bottom__menu {
    grid-area: menu;
    justify-self: stretch;
    overflow-x: auto;
    padding-bottom: 3px;
    scrollbar-width: thin;
  }
  .bull-footer-nav { min-width: max-content; }
  .bull-legal-menu { justify-content: flex-start; }
  .bull-back-to-top { grid-area: top; }
}

@media (max-width: 420px) {
  .bull-back-to-top__label { display: none; }
  .bull-back-to-top { width: 42px; padding-inline: 0; }
  .woocommerce ul.products { grid-template-columns: 1fr 1fr; }
  .bull-search-result { grid-template-columns: 58px 1fr; }
  .bull-search-result img { width: 58px; height: 58px; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .001ms !important; animation-duration: .001ms !important; animation-iteration-count: 1 !important; }
  .bull-ticker__track { animation: none !important; }
}

/* =========================================================
   Beta 3 — Shop shell, designer hero, larger branding,
   checkout product readability
   ========================================================= */

/* Branding: the 3DBull logo is a real brand mark, not a small icon. */
.bull-brandbar__inner {
  min-height: 118px;
  grid-template-columns: minmax(190px, 320px) minmax(0, 1fr) auto;
}
.bull-brandbar__logo .custom-logo {
  width: min(var(--bull-logo-width), 100%);
  max-height: 104px;
}

/* WooCommerce owns commerce logic; 3DBull owns the page frame. */
.bull-woo-shell {
  padding-block: 42px 76px;
}
.woocommerce-shop .bull-woo-shell,
.post-type-archive-product .bull-woo-shell {
  padding-top: 28px;
}

/* The generic Shop H1 is intentionally replaced by the designer hero. */
.bull-shop-designer-hero {
  position: relative;
  overflow: hidden;
  display: grid;
  grid-template-columns: minmax(0, 1.35fr) minmax(320px, .65fr);
  align-items: center;
  gap: clamp(26px, 5vw, 68px);
  margin: 0 0 30px;
  padding: clamp(30px, 5vw, 58px);
  border-radius: var(--bull-radius);
  background: linear-gradient(120deg, var(--bull-dark) 0%, var(--bull-primary) 68%, var(--bull-secondary) 100%);
  box-shadow: var(--bull-shadow-md);
  color: #fff;
}
.bull-shop-designer-hero::before {
  content: "";
  position: absolute;
  width: 420px;
  height: 420px;
  right: -170px;
  bottom: -270px;
  border: 62px solid rgba(255,255,255,.075);
  border-radius: 50%;
  pointer-events: none;
}
.bull-shop-designer-hero__content,
.bull-shop-designer-hero__visual { position: relative; z-index: 1; min-width: 0; }
.bull-shop-designer-hero .bull-kicker { color: rgba(255,255,255,.82); margin-bottom: 10px; }
.bull-shop-designer-hero h1 {
  max-width: 760px;
  margin: 0 0 14px;
  color: #fff;
  font-size: clamp(2.55rem, 5vw, 4.7rem);
  line-height: .94;
}
.bull-shop-designer-hero p {
  max-width: 760px;
  margin: 0;
  color: rgba(255,255,255,.88);
  font-size: clamp(1rem, 1.4vw, 1.2rem);
  line-height: 1.55;
}
.bull-shop-designer-hero__actions { margin-top: 24px; }
.bull-designer-preview-card {
  padding: 18px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: calc(var(--bull-radius) + 2px);
  background: rgba(255,255,255,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.12), 0 18px 44px rgba(1,28,46,.18);
  backdrop-filter: blur(5px);
}
.bull-designer-preview-card__label {
  display: block;
  margin-bottom: 6px;
  color: rgba(255,255,255,.72);
  font-family: var(--bull-font-button);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .12em;
}
.bull-designer-preview-card > strong {
  display: block;
  color: #fff;
  font-family: var(--bull-font-heading);
  font-size: 1.35rem;
}
.bull-designer-preview-card__canvas {
  min-height: 126px;
  margin: 14px 0;
  display: grid;
  grid-template-columns: 1fr auto 1fr;
  place-items: center;
  gap: 10px;
  padding: 18px;
  border-radius: 10px;
  background: #fff;
  color: var(--bull-dark);
  font-family: var(--bull-font-heading);
  font-size: 1.15rem;
  font-weight: 800;
}
.bull-designer-preview-card__canvas span:nth-child(2) { color: var(--bull-accent); font-size: 1.8rem; }
.bull-designer-preview-card__steps {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 7px;
  color: rgba(255,255,255,.86);
  font-size: .78rem;
  text-align: center;
}
.bull-designer-preview-card__steps span {
  padding: 6px 5px;
  border: 1px solid rgba(255,255,255,.2);
  border-radius: 6px;
}

/* Shop controls are one coherent toolbar instead of two floating fragments. */
.bull-shop-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 18px;
  margin: 0 0 22px;
  padding: 12px 14px;
  border: 1px solid var(--bull-border);
  border-radius: var(--bull-radius);
  background: #fff;
  box-shadow: var(--bull-shadow-sm);
}
.woocommerce .bull-shop-toolbar .woocommerce-result-count,
.woocommerce .bull-shop-toolbar .woocommerce-ordering { float: none; margin: 0; }
.woocommerce .bull-shop-toolbar .woocommerce-ordering select { min-width: 230px; min-height: 42px; }

/* Checkout review: long German product names must wrap by words, never character by character. */
.woocommerce-checkout form.checkout {
  grid-template-columns: minmax(0, 1fr) minmax(470px, 520px);
}
.woocommerce-checkout #order_review {
  padding: 18px;
  overflow: visible;
}
.woocommerce-checkout #order_review table.shop_table {
  table-layout: fixed;
  width: 100%;
  margin: 0 0 18px;
  border-color: var(--bull-border) !important;
  border-radius: 10px;
  overflow: hidden;
}
.woocommerce-checkout #order_review table.shop_table th,
.woocommerce-checkout #order_review table.shop_table td {
  min-width: 0;
  word-break: normal !important;
  overflow-wrap: break-word !important;
  hyphens: none;
}
.woocommerce-checkout #order_review table.shop_table thead th {
  padding: 12px 13px;
  background: #f3f7fa;
  color: var(--bull-dark);
  font-family: var(--bull-font-heading);
  font-weight: 800;
}
.woocommerce-checkout #order_review table.shop_table th.product-name,
.woocommerce-checkout #order_review table.shop_table td.product-name { width: 72%; }
.woocommerce-checkout #order_review table.shop_table th.product-total,
.woocommerce-checkout #order_review table.shop_table td.product-total {
  width: 28%;
  text-align: right;
  white-space: nowrap;
}
.woocommerce-checkout #order_review table.shop_table tr.cart_item td {
  padding: 14px 12px;
  vertical-align: middle;
  border-top-color: #e8edf1;
}
.woocommerce-checkout #order_review table.shop_table tr.cart_item td.product-name {
  color: var(--bull-dark);
  font-size: .94rem;
  font-weight: 650;
  line-height: 1.35;
}
.woocommerce-checkout #order_review table.shop_table tr.cart_item td.product-name img {
  float: left !important;
  width: 60px !important;
  height: 60px !important;
  margin: 0 12px 6px 0 !important;
  border: 1px solid var(--bull-border);
  border-radius: 8px;
  object-fit: cover;
  background: #fff;
}
.woocommerce-checkout #order_review .product-quantity {
  display: inline-block;
  margin-left: 4px;
  color: var(--bull-muted);
  font-weight: 800;
  white-space: nowrap;
}
.woocommerce-checkout #order_review table.shop_table td.product-total {
  color: var(--bull-dark);
  font-family: var(--bull-font-price);
  font-weight: 800;
}
.woocommerce-checkout #order_review table.shop_table tfoot th,
.woocommerce-checkout #order_review table.shop_table tfoot td { padding: 12px; }

@media (max-width: 1100px) {
  .bull-shop-designer-hero { grid-template-columns: minmax(0, 1fr) minmax(260px, .55fr); }
  .woocommerce-checkout form.checkout { grid-template-columns: 1fr; }
  .woocommerce-checkout #customer_details,
  .woocommerce-checkout #order_review_heading,
  .woocommerce-checkout #order_review { grid-column: 1; }
  .woocommerce-checkout #order_review { position: static; }
}

@media (max-width: 760px) {
  .bull-brandbar__logo .custom-logo {
    width: min(var(--bull-logo-width-mobile), 100%);
    max-height: 76px;
  }
  .bull-shop-designer-hero {
    grid-template-columns: 1fr;
    padding: 28px 22px;
  }
  .bull-shop-designer-hero__visual { display: none; }
  .bull-shop-toolbar { align-items: stretch; flex-direction: column; }
  .woocommerce .bull-shop-toolbar .woocommerce-ordering,
  .woocommerce .bull-shop-toolbar .woocommerce-ordering select { width: 100%; }
  .woocommerce-checkout #order_review table.shop_table th.product-name,
  .woocommerce-checkout #order_review table.shop_table td.product-name { width: 68%; }
  .woocommerce-checkout #order_review table.shop_table th.product-total,
  .woocommerce-checkout #order_review table.shop_table td.product-total { width: 32%; }
}

/* =========================================================
   Beta 6 — Footer architecture cleanup
   ========================================================= */
@media (min-width: 761px) {
  .bull-footer-bottom__text { grid-column: 1; }
  .bull-footer-bottom__menu { grid-column: 2; }
  .bull-back-to-top { grid-column: 3; }
}


/* =========================================================
   Beta 8 — Product details directly below gallery (desktop)
   Robust CSS Grid; no JavaScript DOM relocation.
   ========================================================= */
@media (min-width: 1101px) {
  body.single-product.bull-product-tabs-under-gallery div.product.type-product {
    display: grid !important;
    grid-template-columns: minmax(0, 48%) minmax(0, 48%);
    grid-template-rows: auto auto;
    column-gap: 4%;
    row-gap: 0;
    align-items: start;
  }

  /* WooCommerce clearfix pseudo elements are unnecessary inside the grid and
     otherwise become anonymous grid items in some browser/theme combinations. */
  body.single-product.bull-product-tabs-under-gallery div.product.type-product::before,
  body.single-product.bull-product-tabs-under-gallery div.product.type-product::after {
    display: none !important;
    content: none !important;
  }

  body.single-product.bull-product-tabs-under-gallery div.product.type-product > .woocommerce-product-gallery,
  body.single-product.bull-product-tabs-under-gallery div.product.type-product > .images {
    grid-column: 1;
    grid-row: 1;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 22px !important;
  }

  body.single-product.bull-product-tabs-under-gallery div.product.type-product > .summary {
    grid-column: 2;
    grid-row: 1 / span 2;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 36px !important;
    align-self: start;
  }

  body.single-product.bull-product-tabs-under-gallery div.product.type-product > .woocommerce-tabs {
    grid-column: 1;
    grid-row: 2;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 36px !important;
    padding-top: 0 !important;
    align-self: start;
  }

  body.single-product.bull-product-tabs-under-gallery div.product.type-product > .woocommerce-tabs .panel {
    margin-bottom: 0;
  }

  /* Everything following the two-column product core returns to full width. */
  body.single-product.bull-product-tabs-under-gallery div.product.type-product > .up-sells,
  body.single-product.bull-product-tabs-under-gallery div.product.type-product > .upsells,
  body.single-product.bull-product-tabs-under-gallery div.product.type-product > .related {
    grid-column: 1 / -1;
    float: none !important;
    clear: both !important;
    width: 100% !important;
  }

  /* Direct children added by WooCommerce/Germanized after the tabs should not
     accidentally occupy only one half of the grid. Known full-width sections
     are expanded; summary-internal legal information is unaffected. */
  body.single-product.bull-product-tabs-under-gallery div.product.type-product > section:not(.related):not(.up-sells):not(.upsells) {
    grid-column: 1 / -1;
  }
}

/* =========================================================
   Payment information page / payment shortcode
   ========================================================= */
.bull-payment-page {
  display: grid;
  gap: 24px;
}

.bull-payment-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(28px, 5vw, 52px);
  border: 1px solid color-mix(in srgb, var(--bull-primary) 34%, var(--bull-border));
  border-radius: var(--bull-radius);
  background: linear-gradient(125deg, var(--bull-dark) 0%, color-mix(in srgb, var(--bull-dark) 72%, var(--bull-primary)) 55%, var(--bull-primary) 100%);
  box-shadow: var(--bull-shadow-md);
  color: #fff;
}
.bull-payment-hero::after {
  content: "€";
  position: absolute;
  right: clamp(18px, 5vw, 58px);
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,.08);
  font-family: var(--bull-font-heading);
  font-size: clamp(8rem, 18vw, 16rem);
  font-weight: 900;
  line-height: .8;
  pointer-events: none;
}
.bull-payment-hero > * { position: relative; z-index: 1; }
.bull-payment-hero h2,
.bull-payment-hero h3 { color: #fff; }
.bull-payment-hero h2 { max-width: 950px; margin-bottom: 18px; }
.bull-payment-hero p { max-width: 980px; margin-bottom: 0; color: rgba(255,255,255,.9); font-size: 1.04rem; }
.bull-payment-hero strong { color: #fff; }
.bull-payment-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: var(--bull-primary);
  font-family: var(--bull-font-heading);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}
.bull-payment-hero .bull-payment-kicker { color: #fff; }

.bull-payment-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.bull-payment-card {
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid var(--bull-border);
  border-radius: var(--bull-radius);
  background: var(--bull-surface);
  box-shadow: var(--bull-shadow-sm);
}
.bull-payment-card--wide { grid-column: 1 / -1; }
.bull-payment-card h3 {
  margin-bottom: 14px;
  padding-bottom: 11px;
  border-bottom: 2px solid color-mix(in srgb, var(--bull-primary) 28%, var(--bull-border));
}
.bull-payment-card p:last-child { margin-bottom: 0; }
.bull-payment-list {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 10px 18px;
  margin: 18px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.bull-payment-list li {
  position: relative;
  margin: 0 !important;
  padding: 13px 14px 13px 42px;
  border: 1px solid var(--bull-border);
  border-radius: 9px;
  background: color-mix(in srgb, var(--bull-primary) 3%, #fff);
}
.bull-payment-list li::before {
  content: "✓";
  position: absolute;
  left: 14px;
  top: 13px;
  width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  background: var(--bull-primary);
  color: #fff;
  font-size: .75rem;
  font-weight: 900;
}

.bull-payment-methods-card {
  margin-top: 24px;
  overflow: hidden;
  border: 1px solid var(--bull-border);
  border-top: 4px solid var(--bull-primary);
  border-radius: var(--bull-radius);
  background: #fff;
  box-shadow: var(--bull-shadow-sm);
}
.bull-payment-methods-head {
  padding: clamp(24px, 3vw, 34px) clamp(24px, 4vw, 42px) 22px;
  border-bottom: 1px solid var(--bull-border);
  background: linear-gradient(135deg, color-mix(in srgb, var(--bull-primary) 7%, #fff), #fff 62%);
}
.bull-payment-methods-head h2 {
  margin-bottom: 8px;
  font-size: clamp(1.65rem, 2.6vw, 2.35rem);
}
.bull-payment-methods-head p { margin-bottom: 14px; color: var(--bull-muted); }
.bull-payment-shops { display: flex; flex-wrap: wrap; gap: 8px; }
.bull-payment-shop {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid color-mix(in srgb, var(--bull-primary) 25%, var(--bull-border));
  border-radius: 999px;
  background: #fff;
  color: var(--bull-dark);
  font-family: var(--bull-font-heading);
  font-size: .82rem;
  font-weight: 700;
}
.bull-payment-methods-output {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 14px;
  padding: clamp(24px, 3vw, 38px) clamp(24px, 4vw, 42px);
}

/*
 * Der Shortcode liefert derzeit mehrere getrennte Listen. Mit display:contents
 * werden diese Listen semantisch beibehalten, ihre <li>-Elemente erscheinen
 * aber in EINEM gemeinsamen Zahlungsarten-Raster.
 */
.bull-payment-methods-output > *:first-child { margin-top: 0 !important; }
.bull-payment-methods-output > *:last-child { margin-bottom: 0 !important; }
.bull-payment-methods-output ul,
.bull-payment-methods-output ol {
  display: contents;
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
/* Leerzeilen/Wrapper aus manchen Payment-Plugins dürfen keine Rasterzellen erzeugen. */
.bull-payment-methods-output > br,
.bull-payment-methods-output > p:empty { display: none !important; }
.bull-payment-methods-output > div:has(> ul),
.bull-payment-methods-output > div:has(> ol) { display: contents; }
.bull-payment-methods-output li {
  min-width: 0;
  min-height: 92px;
  margin: 0 !important;
  padding: 16px 14px !important;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 1px solid var(--bull-border);
  border-radius: 10px;
  background: color-mix(in srgb, var(--bull-primary) 3%, #fff);
  color: var(--bull-dark);
  font-family: var(--bull-font-heading);
  font-size: .98rem;
  font-weight: 700;
  line-height: 1.25;
  text-align: center;
  box-shadow: 0 6px 18px rgba(8, 42, 67, .05);
  transition: border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}
.bull-payment-methods-output li::marker { content: ''; }
.bull-payment-methods-output li:hover {
  border-color: color-mix(in srgb, var(--bull-primary) 58%, var(--bull-border));
  transform: translateY(-2px);
  box-shadow: 0 10px 24px rgba(8, 42, 67, .09);
}
.bull-payment-methods-output li img {
  order: -1;
  display: block;
  width: auto;
  max-width: 86px;
  height: 34px;
  max-height: 34px;
  margin: 0 auto !important;
  object-fit: contain;
}

/* Falls der Shortcode statt Listen eine Tabelle liefert, bleibt diese sauber. */
.bull-payment-methods-output table {
  grid-column: 1 / -1;
  width: 100%;
  border-collapse: collapse;
}
.bull-payment-methods-output th,
.bull-payment-methods-output td {
  padding: 12px 10px;
  border-bottom: 1px solid var(--bull-border);
  text-align: left;
  vertical-align: middle;
}
.bull-payment-methods-output button,
.bull-payment-methods-output .button,
.bull-payment-methods-output input[type="button"],
.bull-payment-methods-output input[type="submit"] {
  min-height: 42px;
  padding: 9px 16px !important;
  border: 1px solid var(--bull-primary) !important;
  border-radius: var(--bull-button-radius) !important;
  background: var(--bull-primary) !important;
  color: #fff !important;
  font-family: var(--bull-font-button) !important;
  font-weight: var(--bull-button-weight) !important;
}

@media (max-width: 1100px) {
  .bull-payment-methods-output { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 780px) {
  .bull-payment-methods-output { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
  .bull-payment-methods-output li { min-height: 82px; padding: 13px 10px !important; font-size: .92rem; }
}

@media (max-width: 460px) {
  .bull-payment-methods-output { grid-template-columns: 1fr; }
  .bull-payment-methods-output li {
    min-height: 68px;
    flex-direction: row;
    justify-content: flex-start;
    text-align: left;
  }
  .bull-payment-methods-output li img {
    order: 0;
    flex: 0 0 auto;
    margin: 0 !important;
  }
}

@media (max-width: 780px) {
  .bull-payment-grid,
  .bull-payment-list { grid-template-columns: 1fr; }
  .bull-payment-hero::after { right: -10px; font-size: 9rem; }
}

/* =========================================================
   Impressum / Anbieterkennzeichnung
   ========================================================= */
.bull-imprint-page {
  display: grid;
  gap: 24px;
}

.bull-imprint-hero {
  position: relative;
  overflow: hidden;
  padding: clamp(28px, 5vw, 52px);
  border: 1px solid color-mix(in srgb, var(--bull-primary) 34%, var(--bull-border));
  border-radius: var(--bull-radius);
  background: linear-gradient(125deg, var(--bull-dark) 0%, color-mix(in srgb, var(--bull-dark) 72%, var(--bull-primary)) 55%, var(--bull-primary) 100%);
  box-shadow: var(--bull-shadow-md);
  color: #fff;
}
.bull-imprint-hero::after {
  content: "§";
  position: absolute;
  right: clamp(18px, 5vw, 58px);
  top: 50%;
  transform: translateY(-50%);
  color: rgba(255,255,255,.08);
  font-family: var(--bull-font-heading);
  font-size: clamp(8rem, 18vw, 16rem);
  font-weight: 900;
  line-height: .8;
  pointer-events: none;
}
.bull-imprint-hero > * { position: relative; z-index: 1; }
.bull-imprint-hero h2,
.bull-imprint-hero h3 { color: #fff; }
.bull-imprint-hero h2 { max-width: 920px; margin-bottom: 16px; }
.bull-imprint-hero p { max-width: 900px; margin-bottom: 0; color: rgba(255,255,255,.9); }
.bull-imprint-kicker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 12px;
  color: #fff;
  font-family: var(--bull-font-heading);
  font-size: .8rem;
  font-weight: 800;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.bull-imprint-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 24px;
}
.bull-imprint-card {
  min-width: 0;
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid var(--bull-border);
  border-radius: var(--bull-radius);
  background: var(--bull-surface);
  box-shadow: var(--bull-shadow-sm);
}
.bull-imprint-card--wide { grid-column: 1 / -1; }
.bull-imprint-card h3 {
  margin-bottom: 16px;
  padding-bottom: 11px;
  border-bottom: 2px solid color-mix(in srgb, var(--bull-primary) 28%, var(--bull-border));
}
.bull-imprint-card p:last-child { margin-bottom: 0; }
.bull-imprint-card address {
  margin: 0;
  font-style: normal;
}
.bull-imprint-card strong { color: var(--bull-dark); }

.bull-imprint-facts {
  display: grid;
  grid-template-columns: minmax(130px, .65fr) minmax(0, 1.35fr);
  gap: 10px 18px;
  margin: 0;
}
.bull-imprint-facts dt {
  margin: 0;
  color: var(--bull-muted);
  font-family: var(--bull-font-heading);
  font-weight: 700;
}
.bull-imprint-facts dd {
  min-width: 0;
  margin: 0;
  overflow-wrap: anywhere;
}

.bull-imprint-contact {
  display: grid;
  gap: 10px;
}
.bull-imprint-contact a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  min-height: 48px;
  padding: 11px 14px;
  border: 1px solid var(--bull-border);
  border-radius: 9px;
  background: color-mix(in srgb, var(--bull-primary) 3%, #fff);
  color: var(--bull-dark);
  font-weight: 700;
  text-decoration: none;
}
.bull-imprint-contact a:hover {
  border-color: color-mix(in srgb, var(--bull-primary) 55%, var(--bull-border));
  background: color-mix(in srgb, var(--bull-primary) 7%, #fff);
  color: var(--bull-primary);
}
.bull-imprint-contact-label {
  color: var(--bull-muted);
  font-family: var(--bull-font-heading);
  font-size: .83rem;
  font-weight: 700;
  letter-spacing: .035em;
  text-transform: uppercase;
}

.bull-imprint-domains {
  display: flex;
  flex-wrap: wrap;
  gap: 9px;
  margin: 4px 0 0;
  padding: 0;
  list-style: none;
}
.bull-imprint-domains li {
  margin: 0 !important;
  padding: 6px 11px;
  border: 1px solid color-mix(in srgb, var(--bull-primary) 24%, var(--bull-border));
  border-radius: 999px;
  background: color-mix(in srgb, var(--bull-primary) 4%, #fff);
  color: var(--bull-dark);
  font-family: var(--bull-font-heading);
  font-size: .9rem;
  font-weight: 700;
}

.bull-imprint-note {
  margin-top: 16px;
  padding: 14px 16px;
  border-left: 4px solid var(--bull-primary);
  border-radius: 0 8px 8px 0;
  background: color-mix(in srgb, var(--bull-primary) 6%, #fff);
  color: var(--bull-text);
}
.bull-imprint-note p:last-child { margin-bottom: 0; }

@media (max-width: 780px) {
  .bull-imprint-grid { grid-template-columns: 1fr; }
  .bull-imprint-card--wide { grid-column: auto; }
  .bull-imprint-facts { grid-template-columns: 1fr; gap: 3px; }
  .bull-imprint-facts dd { margin-bottom: 10px; }
  .bull-imprint-hero::after { right: -10px; font-size: 9rem; }
  .bull-imprint-contact a { align-items: flex-start; flex-direction: column; gap: 2px; }
}

/* =========================================================
   Contact Form 7 – globales 3DBull-Formularsystem
   ========================================================= */
.wp-block-contact-form-7-contact-form-selector,
.bull-contact-form {
  width: 100%;
  max-width: 980px;
  margin-inline: auto;
  padding: clamp(22px, 3vw, 34px);
  border: 1px solid var(--bull-border);
  border-radius: var(--bull-radius);
  background: var(--bull-surface);
  box-shadow: var(--bull-shadow-sm);
}

.wp-block-contact-form-7-contact-form-selector .wpcf7,
.bull-contact-form .wpcf7 { margin: 0; }

.wp-block-contact-form-7-contact-form-selector .wpcf7-form,
.bull-contact-form .wpcf7-form { margin: 0; }

.wp-block-contact-form-7-contact-form-selector .wpcf7-form > p,
.bull-contact-form .wpcf7-form > p { margin: 0 0 18px; }

.wp-block-contact-form-7-contact-form-selector .wpcf7-form > p:last-of-type,
.bull-contact-form .wpcf7-form > p:last-of-type { margin-bottom: 0; }

.wpcf7 label {
  display: block;
  color: var(--bull-dark);
  font-family: var(--bull-font-body);
  font-weight: 700;
  line-height: 1.4;
}

.wpcf7 .wpcf7-form-control-wrap {
  display: block;
  margin-top: 7px;
}

.wpcf7 input[type="text"],
.wpcf7 input[type="email"],
.wpcf7 input[type="tel"],
.wpcf7 input[type="url"],
.wpcf7 input[type="number"],
.wpcf7 select,
.wpcf7 textarea {
  width: 100%;
  margin: 0;
  background: #fff;
}

.wpcf7 textarea {
  min-height: 190px;
  line-height: 1.55;
}

.wpcf7 input[type="checkbox"],
.wpcf7 input[type="radio"] {
  accent-color: var(--bull-primary);
}

.wpcf7 .wpcf7-list-item { margin: 0 16px 7px 0; }
.wpcf7 .wpcf7-acceptance .wpcf7-list-item { display: block; margin-right: 0; }
.wpcf7 .wpcf7-acceptance label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-weight: 400;
}
.wpcf7 .wpcf7-acceptance input { flex: 0 0 auto; margin-top: .25em; }

.wpcf7 input[type="submit"] {
  min-width: 180px;
  margin: 0;
}

.wpcf7 .wpcf7-not-valid {
  border-color: var(--bull-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--bull-accent) 12%, transparent) !important;
}
.wpcf7 .wpcf7-not-valid-tip {
  display: block;
  margin-top: 6px;
  color: #9f1d20;
  font-size: .88rem;
  font-weight: 700;
}
.wpcf7 form .wpcf7-response-output {
  grid-column: 1 / -1;
  margin: 18px 0 0 !important;
  padding: 13px 15px !important;
  border: 1px solid color-mix(in srgb, var(--bull-primary) 38%, var(--bull-border)) !important;
  border-left: 4px solid var(--bull-primary) !important;
  border-radius: 8px;
  background: color-mix(in srgb, var(--bull-primary) 5%, #fff);
  color: var(--bull-text);
}
.wpcf7 form.invalid .wpcf7-response-output,
.wpcf7 form.unaccepted .wpcf7-response-output,
.wpcf7 form.payment-required .wpcf7-response-output,
.wpcf7 form.failed .wpcf7-response-output,
.wpcf7 form.aborted .wpcf7-response-output,
.wpcf7 form.spam .wpcf7-response-output {
  border-color: color-mix(in srgb, var(--bull-accent) 50%, var(--bull-border)) !important;
  border-left-color: var(--bull-accent) !important;
  background: color-mix(in srgb, var(--bull-accent) 5%, #fff);
}
.wpcf7 form.sent .wpcf7-response-output {
  border-color: color-mix(in srgb, #1d7a46 48%, var(--bull-border)) !important;
  border-left-color: #1d7a46 !important;
  background: color-mix(in srgb, #1d7a46 5%, #fff);
}
.wpcf7 .wpcf7-spinner { margin: 0 0 0 10px; vertical-align: middle; }

/* Standard-CF7-Formulare erhalten auf Desktop automatisch ein ruhiges 2-Spalten-Raster.
   Breite Felder bleiben über die volle Formularbreite. Ohne :has()-Support bleibt das Formular
   bewusst einspaltig statt fehlerhaft umsortiert zu werden. */
@supports selector(.wpcf7-form > p:has(textarea)) {
  .wp-block-contact-form-7-contact-form-selector .wpcf7-form,
  .bull-contact-form .wpcf7-form {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px 20px;
  }
  .wp-block-contact-form-7-contact-form-selector .wpcf7-form > p,
  .bull-contact-form .wpcf7-form > p { margin: 0; min-width: 0; }

  .wp-block-contact-form-7-contact-form-selector .wpcf7-form > p:has(textarea),
  .wp-block-contact-form-7-contact-form-selector .wpcf7-form > p:has(.wpcf7-acceptance),
  .wp-block-contact-form-7-contact-form-selector .wpcf7-form > p:has(input[type="submit"]),
  .wp-block-contact-form-7-contact-form-selector .wpcf7-form > p:has(.wpcf7-submit),
  .bull-contact-form .wpcf7-form > p:has(textarea),
  .bull-contact-form .wpcf7-form > p:has(.wpcf7-acceptance),
  .bull-contact-form .wpcf7-form > p:has(input[type="submit"]),
  .bull-contact-form .wpcf7-form > p:has(.wpcf7-submit) {
    grid-column: 1 / -1;
  }
}

@media (max-width: 720px) {
  .wp-block-contact-form-7-contact-form-selector,
  .bull-contact-form { padding: 20px; }

  .wp-block-contact-form-7-contact-form-selector .wpcf7-form,
  .bull-contact-form .wpcf7-form { display: block; }

  .wp-block-contact-form-7-contact-form-selector .wpcf7-form > p,
  .bull-contact-form .wpcf7-form > p { margin-bottom: 16px; }

  .wpcf7 input[type="submit"] { width: 100%; }
}



/* =========================================================
   Beta 14 — media-library hero slider for the shop archive
   ========================================================= */
.bull-shop-hero-slider {
  position: relative;
  overflow: hidden;
  width: 100%;
  aspect-ratio: 3 / 1;
  margin: 0 0 30px;
  border-radius: var(--bull-radius);
  background: var(--bull-dark);
  box-shadow: var(--bull-shadow-md);
  isolation: isolate;
}
.bull-shop-hero-slider__track,
.bull-shop-hero-slider__slide,
.bull-shop-hero-slider__link {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
}
.bull-shop-hero-slider__slide {
  z-index: 1;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .5s ease, visibility .5s ease;
}
.bull-shop-hero-slider__slide.is-active {
  z-index: 2;
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}
.bull-shop-hero-slider__image {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center;
}
.bull-shop-hero-slider__arrow {
  position: absolute;
  z-index: 4;
  top: 50%;
  display: grid;
  place-items: center;
  width: 44px;
  height: 44px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 50%;
  background: rgba(6,58,91,.72);
  color: #fff;
  box-shadow: 0 8px 24px rgba(0,0,0,.18);
  font-family: Arial, sans-serif;
  font-size: 2rem;
  line-height: 1;
  transform: translateY(-50%);
  cursor: pointer;
  backdrop-filter: blur(4px);
  transition: background .2s ease, transform .2s ease;
}
.bull-shop-hero-slider__arrow:hover,
.bull-shop-hero-slider__arrow:focus-visible {
  background: var(--bull-primary);
  transform: translateY(-50%) scale(1.06);
}
.bull-shop-hero-slider__arrow--prev { left: 14px; }
.bull-shop-hero-slider__arrow--next { right: 14px; }
.bull-shop-hero-slider__dots {
  position: absolute;
  z-index: 4;
  left: 50%;
  bottom: 13px;
  display: flex;
  gap: 8px;
  padding: 6px 9px;
  border-radius: 999px;
  background: rgba(6,58,91,.48);
  transform: translateX(-50%);
  backdrop-filter: blur(4px);
}
.bull-shop-hero-slider__dot {
  width: 10px;
  height: 10px;
  min-width: 10px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 50%;
  background: rgba(255,255,255,.4);
  cursor: pointer;
}
.bull-shop-hero-slider__dot.is-active {
  background: #fff;
  box-shadow: 0 0 0 2px rgba(0,162,223,.55);
}
.bull-shop-hero-slider__link:focus-visible {
  outline: 3px solid #fff;
  outline-offset: -5px;
}
@media (max-width: 760px) {
  .bull-shop-hero-slider { margin-bottom: 22px; border-radius: max(6px, calc(var(--bull-radius) - 3px)); }
  .bull-shop-hero-slider__arrow { width: 34px; height: 34px; font-size: 1.55rem; }
  .bull-shop-hero-slider__arrow--prev { left: 7px; }
  .bull-shop-hero-slider__arrow--next { right: 7px; }
  .bull-shop-hero-slider__dots { bottom: 6px; gap: 6px; padding: 4px 6px; }
  .bull-shop-hero-slider__dot { width: 8px; height: 8px; min-width: 8px; }
}
@media (prefers-reduced-motion: reduce) {
  .bull-shop-hero-slider__slide { transition: none; }
}


/* -------------------------------------------------------------------------
 * Configurator overview / [gkpc_configurators]
 * The plugin owns content and links; 3DBull only supplies the presentation.
 * ---------------------------------------------------------------------- */
.bull-configurator-hub-page .bull-content-shell--configurator-hub {
  padding-block: clamp(28px, 4vw, 52px) 72px;
}
.bull-configurator-hub-page .bull-page--configurator-hub {
  padding: 0;
  border: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.bull-configurator-hub-page .bull-page--configurator-hub > .entry-content {
  width: 100%;
}
.bull-configurators-hub { width: 100%; }
.bull-configurator-hub-intro {
  min-height: 0;
  margin: 0 0 22px;
  padding: clamp(22px, 3.2vw, 38px);
  border-radius: var(--bull-radius);
  box-shadow: var(--bull-shadow-md);
}
.bull-configurator-hub-intro::after {
  content: "!";
  right: clamp(22px, 6vw, 72px);
  top: 50%;
  bottom: auto;
  width: auto;
  height: auto;
  border: 0;
  border-radius: 0;
  transform: translateY(-50%) rotate(-7deg);
  color: rgba(255,255,255,.07);
  font-family: var(--bull-font-heading);
  font-size: clamp(8rem, 18vw, 15rem);
  font-weight: 900;
  line-height: .7;
}
.bull-configurator-hub-intro h2 {
  max-width: 840px;
  margin: 0 0 12px;
  font-size: clamp(1.85rem, 3.7vw, 3.15rem);
  line-height: .98;
}
.bull-configurator-hub-intro p {
  max-width: 820px;
  font-size: clamp(1rem, 1.5vw, 1.18rem);
  line-height: 1.55;
}
.bull-configurator-hub-intro__chips {
  position: relative;
  z-index: 1;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.bull-configurator-hub-intro__chips span {
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 5px 10px;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: 999px;
  background: rgba(255,255,255,.1);
  color: #fff;
  font-family: var(--bull-font-button);
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .08em;
}
.bull-configurators-output {
  --bull-gkpc-card-width: 292px;
  width: 100%;
  min-width: 0;
}
.bull-configurators-hub--comfortable .bull-configurators-output {
  --bull-gkpc-card-width: 340px;
}
.bull-configurators-output .bull-gkpc-grid {
  display: grid !important;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 248px), var(--bull-gkpc-card-width))) !important;
  justify-content: center !important;
  align-items: stretch !important;
  gap: 20px !important;
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.bull-configurators-output .bull-gkpc-grid::before,
.bull-configurators-output .bull-gkpc-grid::after { display: none !important; }
.bull-configurators-output .bull-gkpc-card {
  float: none !important;
  width: 100% !important;
  max-width: var(--bull-gkpc-card-width) !important;
  min-width: 0 !important;
  min-height: 0 !important;
  margin: 0 !important;
  padding: 12px 12px 15px !important;
  overflow: hidden;
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  border: 1px solid var(--bull-border) !important;
  border-radius: var(--bull-radius) !important;
  background: #fff !important;
  box-shadow: var(--bull-shadow-sm) !important;
  color: var(--bull-text) !important;
  text-align: left !important;
  transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease !important;
}
.bull-configurators-output .bull-gkpc-card:hover {
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--bull-primary) 42%, var(--bull-border)) !important;
  box-shadow: var(--bull-shadow-md) !important;
}
.bull-configurators-output .bull-gkpc-card a:not(.bull-gkpc-card__button) {
  color: var(--bull-dark);
  text-decoration: none;
}
.bull-configurators-output .bull-gkpc-card .bull-gkpc-card__image,
.bull-configurators-output .bull-gkpc-card img {
  display: block !important;
  width: 100% !important;
  height: auto !important;
  max-height: 182px !important;
  margin: 0 0 13px !important;
  aspect-ratio: 16 / 10;
  object-fit: cover !important;
  object-position: center !important;
  border-radius: calc(var(--bull-radius) - 4px) !important;
  background: var(--bull-bg) !important;
}
.bull-configurators-hub--comfortable .bull-gkpc-card img {
  max-height: 210px !important;
}
.bull-configurators-output .bull-gkpc-card .bull-gkpc-card__title,
.bull-configurators-output .bull-gkpc-card h2,
.bull-configurators-output .bull-gkpc-card h3,
.bull-configurators-output .bull-gkpc-card h4 {
  margin: 1px 3px 7px !important;
  color: var(--bull-dark) !important;
  font-family: var(--bull-font-heading) !important;
  font-size: 1.18rem !important;
  font-weight: 800 !important;
  line-height: 1.12 !important;
  text-align: left !important;
}
.bull-configurators-output .bull-gkpc-card p {
  margin: 0 3px 14px !important;
  color: var(--bull-muted) !important;
  font-size: .9rem !important;
  line-height: 1.45 !important;
  text-align: left !important;
}
.bull-configurators-output .bull-gkpc-card .bull-gkpc-card__button {
  align-self: flex-start !important;
  width: auto !important;
  min-height: var(--bull-button-height) !important;
  margin: auto 3px 1px !important;
  padding: 10px 16px !important;
  border: 0 !important;
  border-radius: var(--bull-button-radius) !important;
  background: var(--bull-primary) !important;
  box-shadow: none !important;
  color: #fff !important;
  font-family: var(--bull-font-button) !important;
  font-size: .9rem !important;
  font-weight: var(--bull-button-weight) !important;
  line-height: 1.1 !important;
  text-decoration: none !important;
  text-align: center !important;
}
.bull-configurators-output .bull-gkpc-card .bull-gkpc-card__button:hover,
.bull-configurators-output .bull-gkpc-card .bull-gkpc-card__button:focus-visible {
  background: var(--bull-dark) !important;
  color: #fff !important;
}

@media (max-width: 720px) {
  .bull-configurator-hub-page .bull-content-shell--configurator-hub { padding-block: 22px 48px; }
  .bull-configurator-hub-intro { margin-bottom: 20px; padding: 24px 20px; }
  .bull-configurator-hub-intro::after { display: none; }
  .bull-configurator-hub-intro__chips { gap: 6px; }
  .bull-configurators-output { --bull-gkpc-card-width: 100%; }
  .bull-configurators-output .bull-gkpc-grid { grid-template-columns: minmax(0, 1fr) !important; }
  .bull-configurators-output .bull-gkpc-card { max-width: 420px !important; justify-self: center !important; }
  .bull-configurators-output .bull-gkpc-card img { max-height: 220px !important; }
}

/* =========================================================
   Beta 16 — unified content shells, forms, configurator,
   product details, shop hero placement and footer utilities
   ========================================================= */
:root {
  --bull-content-border-color: #e23a2e;
  --bull-content-border-width: 1px;
}

/* The large white page shell is a reusable theme component. */
.bull-page {
  border-width: var(--bull-content-border-width);
  border-style: solid;
  border-color: var(--bull-content-border-color);
}

/* The configurator hub deliberately uses the same outer content shell as
   normal pages instead of floating directly on the site background. */
.bull-configurator-hub-page .bull-page--configurator-hub {
  padding: clamp(18px, 2.5vw, 30px);
  border-width: var(--bull-content-border-width);
  border-style: solid;
  border-color: var(--bull-content-border-color);
  border-radius: var(--bull-radius);
  background: #fff;
  box-shadow: var(--bull-shadow-sm);
}

/* Plugin-independent 3DBull form skin. Contact Form 7 currently receives the
   same design; a future form plugin only needs the .bull-form wrapper. */
.bull-form input[type="text"],
.bull-form input[type="email"],
.bull-form input[type="tel"],
.bull-form input[type="url"],
.bull-form input[type="number"],
.bull-form input[type="password"],
.bull-form select,
.bull-form textarea,
.wp-block-contact-form-7-contact-form-selector .wpcf7 input[type="text"],
.wp-block-contact-form-7-contact-form-selector .wpcf7 input[type="email"],
.wp-block-contact-form-7-contact-form-selector .wpcf7 input[type="tel"],
.wp-block-contact-form-7-contact-form-selector .wpcf7 input[type="url"],
.wp-block-contact-form-7-contact-form-selector .wpcf7 input[type="number"],
.wp-block-contact-form-7-contact-form-selector .wpcf7 input[type="password"],
.wp-block-contact-form-7-contact-form-selector .wpcf7 select,
.wp-block-contact-form-7-contact-form-selector .wpcf7 textarea {
  border-color: color-mix(in srgb, var(--bull-primary) 46%, var(--bull-dark));
  background: color-mix(in srgb, var(--bull-primary) 65%, var(--bull-dark));
  color: #fff;
  caret-color: #fff;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
.bull-form input::placeholder,
.bull-form textarea::placeholder,
.wp-block-contact-form-7-contact-form-selector .wpcf7 input::placeholder,
.wp-block-contact-form-7-contact-form-selector .wpcf7 textarea::placeholder {
  color: rgba(255,255,255,.72);
  opacity: 1;
}
.bull-form select option,
.wp-block-contact-form-7-contact-form-selector .wpcf7 select option {
  background: var(--bull-dark);
  color: #fff;
}
.bull-form input:focus,
.bull-form select:focus,
.bull-form textarea:focus,
.wp-block-contact-form-7-contact-form-selector .wpcf7 input:focus,
.wp-block-contact-form-7-contact-form-selector .wpcf7 select:focus,
.wp-block-contact-form-7-contact-form-selector .wpcf7 textarea:focus {
  border-color: #fff;
  background: color-mix(in srgb, var(--bull-primary) 58%, var(--bull-dark));
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--bull-secondary) 34%, transparent);
}

/* Radios: larger target, clear outline and unmistakable selected state. */
input[type="radio"],
.woocommerce input[type="radio"],
.wc-block-components-radio-control__input {
  width: 20px;
  height: 20px;
  min-width: 20px;
  margin-inline: 0 8px;
  accent-color: var(--bull-primary);
  vertical-align: middle;
  cursor: pointer;
}
@supports ((appearance: none) or (-webkit-appearance: none)) {
  input[type="radio"],
  .woocommerce input[type="radio"],
  .wc-block-components-radio-control__input {
    appearance: none;
    -webkit-appearance: none;
    border: 2px solid color-mix(in srgb, var(--bull-primary) 72%, var(--bull-dark));
    border-radius: 50%;
    background: #fff;
    box-shadow: 0 0 0 1px rgba(6,58,91,.05);
    transition: border-color .15s ease, box-shadow .15s ease, background .15s ease;
  }
  input[type="radio"]:checked,
  .woocommerce input[type="radio"]:checked,
  .wc-block-components-radio-control__input:checked {
    border-color: var(--bull-dark);
    background: radial-gradient(circle at center, var(--bull-primary) 0 39%, #fff 42% 100%);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--bull-primary) 20%, transparent);
  }
  input[type="radio"]:focus-visible,
  .woocommerce input[type="radio"]:focus-visible,
  .wc-block-components-radio-control__input:focus-visible {
    outline: 2px solid var(--bull-secondary);
    outline-offset: 2px;
  }
}
.woocommerce #payment input[type="radio"]:checked + label,
.woocommerce ul#shipping_method input[type="radio"]:checked + label,
.woocommerce .woocommerce-shipping-methods input[type="radio"]:checked + label {
  color: var(--bull-dark);
  font-weight: 800;
}
@supports selector(.x:has(input:checked)) {
  .woocommerce-checkout #payment ul.payment_methods li:has(input[type="radio"]:checked),
  .wc-block-components-radio-control__option:has(input[type="radio"]:checked) {
    border-radius: 8px;
    background: color-mix(in srgb, var(--bull-primary) 8%, #fff);
    box-shadow: inset 3px 0 0 var(--bull-primary);
  }
}

/* Shop promotion can live below the catalogue. This keeps the first screen
   focused on products while preserving the banner as a strong closing CTA. */
body.bull-shop-hero-position-bottom .bull-shop-hero-slider,
body.bull-shop-hero-position-bottom .bull-shop-designer-hero {
  margin-top: 38px;
  margin-bottom: 0;
}

/* Smart product detail layout. Normal products get a balanced full-width
   detail area; configurator products can still keep the details below the
   gallery while the taller designer continues on the right. */
@media (min-width: 1101px) {
  body.single-product.bull-product-tabs-full-width div.product.type-product {
    display: grid !important;
    grid-template-columns: minmax(0, 48%) minmax(0, 48%);
    grid-template-rows: auto auto;
    column-gap: 4%;
    row-gap: 8px;
    align-items: start;
  }
  body.single-product.bull-product-tabs-full-width div.product.type-product::before,
  body.single-product.bull-product-tabs-full-width div.product.type-product::after {
    display: none !important;
    content: none !important;
  }
  body.single-product.bull-product-tabs-full-width div.product.type-product > .woocommerce-product-gallery,
  body.single-product.bull-product-tabs-full-width div.product.type-product > .images {
    grid-column: 1;
    grid-row: 1;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 22px !important;
  }
  body.single-product.bull-product-tabs-full-width div.product.type-product > .summary {
    grid-column: 2;
    grid-row: 1;
    float: none !important;
    clear: none !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 22px !important;
    align-self: start;
  }
  body.single-product.bull-product-tabs-full-width div.product.type-product > .woocommerce-tabs {
    grid-column: 1 / -1;
    grid-row: 2;
    float: none !important;
    clear: both !important;
    width: 100% !important;
    max-width: none !important;
    margin: 8px 0 36px !important;
    padding-top: 0 !important;
  }
  body.single-product.bull-product-tabs-full-width div.product.type-product > .woocommerce-tabs .panel {
    box-shadow: var(--bull-shadow-sm);
  }
  body.single-product.bull-product-tabs-full-width div.product.type-product > .up-sells,
  body.single-product.bull-product-tabs-full-width div.product.type-product > .upsells,
  body.single-product.bull-product-tabs-full-width div.product.type-product > .related,
  body.single-product.bull-product-tabs-full-width div.product.type-product > section:not(.related):not(.up-sells):not(.upsells) {
    grid-column: 1 / -1;
    width: 100% !important;
  }
}

/* Optional wide single configurator: full content width without turning the
   picture into a huge poster. Desktop becomes a calm horizontal card. */
.bull-configurators-hub--single-wide .bull-configurators-output .gkpc-overview-grid.is-single,
.bull-configurators-hub--single-wide .bull-configurators-output.is-single-card .bull-gkpc-grid {
  width: 100% !important;
  max-width: none !important;
  grid-template-columns: minmax(0, 1fr) !important;
  justify-content: stretch !important;
}
.bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .bull-gkpc-card,
.bull-configurators-hub--single-wide .bull-configurators-output.is-single-card .bull-gkpc-card {
  width: 100% !important;
  max-width: none !important;
  justify-self: stretch !important;
}
@media (min-width: 821px) {
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .bull-gkpc-card,
  .bull-configurators-hub--single-wide .bull-configurators-output.is-single-card .bull-gkpc-card {
    display: grid !important;
    grid-template-columns: minmax(280px, 42%) minmax(0, 1fr) !important;
    align-items: stretch !important;
    padding: 12px !important;
  }
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .gkpc-overview-image,
  .bull-configurators-hub--single-wide .bull-configurators-output.is-single-card .bull-gkpc-card > a:has(img) {
    min-height: 260px !important;
    height: 100% !important;
    margin: 0 !important;
    overflow: hidden !important;
    border-radius: calc(var(--bull-radius) - 4px) !important;
  }
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .bull-gkpc-card img,
  .bull-configurators-hub--single-wide .bull-configurators-output.is-single-card .bull-gkpc-card img {
    width: 100% !important;
    height: 100% !important;
    max-height: 300px !important;
    margin: 0 !important;
    aspect-ratio: auto !important;
    object-fit: cover !important;
    border-radius: calc(var(--bull-radius) - 4px) !important;
  }
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .gkpc-overview-content {
    align-items: flex-start !important;
    justify-content: center !important;
    padding: clamp(24px, 4vw, 42px) !important;
    text-align: left !important;
  }
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .gkpc-overview-content h2,
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .gkpc-overview-content p {
    width: 100%;
    text-align: left !important;
  }
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .gkpc-overview-content .button {
    align-self: flex-start !important;
  }
}

/* Footer utility row: the theme now renders its own stable controls instead of
   trying to physically move plugin DOM nodes after page load. */
.bull-footer-tools {
  background: color-mix(in srgb, var(--bull-dark) 92%, #000);
  border-top: 1px solid rgba(255,255,255,.10);
}
.bull-footer-tools__inner {
  min-height: 62px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 10px;
  padding-block: 10px;
}
.bull-footer-tool-button {
  position: static !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  min-height: 42px !important;
  width: auto !important;
  margin: 0 !important;
  padding: 9px 18px !important;
  border: 1px solid rgba(255,255,255,.30) !important;
  border-radius: var(--bull-button-radius) !important;
  background: rgba(255,255,255,.08) !important;
  color: #fff !important;
  box-shadow: none !important;
  font-family: var(--bull-font-button) !important;
  font-size: .88rem !important;
  font-weight: 700 !important;
  line-height: 1.1 !important;
  text-decoration: none !important;
  cursor: pointer !important;
  transform: none !important;
  appearance: none;
  -webkit-appearance: none;
}
.bull-footer-tool-button:hover,
.bull-footer-tool-button:focus-visible {
  border-color: var(--bull-secondary) !important;
  background: var(--bull-primary) !important;
  color: #fff !important;
  outline: none;
}
.bull-plugin-footer-control--hidden { display: none !important; }

/* When the 3DBull toolbar is active, suppress only the duplicate launchers
   added by the plugins. Their forms/banners remain untouched and functional. */
body.bull-has-withdrawal-footer-tool .eu-owb-order-withdraw-from-contract-button,
body.bull-has-withdrawal-footer-tool .gzd-vertrag-widerrufen-button:not(.bull-footer-tool-button) {
  display: none !important;
}
body.bull-has-cookie-footer-tool .cmplz-manage-consent:not(.bull-footer-tool-button) {
  display: none !important;
}
.bull-footer-tools[hidden],
.bull-footer-tool-button[hidden] { display: none !important; }

@media (max-width: 720px) {
  .bull-configurator-hub-page .bull-page--configurator-hub { padding: 14px; }
  .bull-footer-tools__inner { align-items: stretch; flex-direction: column; }
  .bull-footer-tool-button { width: 100% !important; }
}

/* The current 3DBull overview markup has its own generous fixed heights and
   paddings. Neutralise those inside the 3DBull wrapper so the compact setting
   is actually compact. */
.bull-configurators-output .gkpc-overview {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 0 !important;
}
.bull-configurators-output .gkpc-overview-image {
  display: block !important;
  height: auto !important;
  margin: 0 0 13px !important;
  overflow: hidden !important;
  border-radius: calc(var(--bull-radius) - 4px) !important;
  background: var(--bull-bg) !important;
}
.bull-configurators-output .gkpc-overview-content {
  min-width: 0 !important;
  padding: 0 3px 2px !important;
  align-items: stretch !important;
  text-align: left !important;
}

@media (min-width: 821px) {
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .gkpc-overview-image {
    align-self: center !important;
    width: 100% !important;
    height: clamp(240px, 22vw, 300px) !important;
    min-height: 0 !important;
    max-height: 300px !important;
    margin: 0 !important;
  }
  .bull-configurators-hub--single-wide .gkpc-overview-grid.is-single .bull-gkpc-card img {
    height: 100% !important;
    max-height: none !important;
  }
}
.bull-form input:-webkit-autofill,
.wp-block-contact-form-7-contact-form-selector .wpcf7 input:-webkit-autofill {
  -webkit-text-fill-color: #fff !important;
  -webkit-box-shadow: 0 0 0 1000px color-mix(in srgb, var(--bull-primary) 65%, var(--bull-dark)) inset !important;
  caret-color: #fff;
}
.woocommerce ul#shipping_method input[type="radio"],
.woocommerce .woocommerce-shipping-methods input[type="radio"],
.woocommerce-checkout #payment input[type="radio"] {
  width: 20px !important;
  height: 20px !important;
  min-width: 20px !important;
}

/* =========================================================
   Beta 18 — one border system for all important white cards
   =========================================================
   The Customizer values "Boxen & Karten – Randfarbe/-stärke" now affect the
   full 3DBull component system instead of only a few page wrappers. */
.bull-page,
.bull-content-card,
.bull-empty-state,
.bull-imprint-card,
.bull-payment-card,
.wp-block-contact-form-7-contact-form-selector,
.bull-contact-form,
.bull-shop-toolbar,
.woocommerce ul.products li.product,
.woocommerce div.product .summary,
.woocommerce div.product .woocommerce-tabs .panel,
.woocommerce-cart-form,
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-checkout #customer_details,
.woocommerce-checkout #order_review,
.wc-block-cart__main,
.wc-block-cart__sidebar,
.wc-block-checkout__main,
.wc-block-checkout__sidebar,
.bull-configurators-output .bull-gkpc-card {
  border-color: var(--bull-content-border-color) !important;
  border-width: var(--bull-content-border-width) !important;
  border-style: solid !important;
}

/* Components with a deliberate stronger top accent retain that accent while
   using the same configurable light-blue frame on the other sides. */
.bull-payment-methods-card,
.bull-configurator-area {
  border-left-color: var(--bull-content-border-color) !important;
  border-right-color: var(--bull-content-border-color) !important;
  border-bottom-color: var(--bull-content-border-color) !important;
  border-left-width: var(--bull-content-border-width) !important;
  border-right-width: var(--bull-content-border-width) !important;
  border-bottom-width: var(--bull-content-border-width) !important;
}

/* Keep the configurator page outer shell on exactly the same border token. */
.bull-configurator-hub-page .bull-page--configurator-hub {
  border-color: var(--bull-content-border-color) !important;
  border-width: var(--bull-content-border-width) !important;
}



/* =========================================================
   Beta 20 — archive polish, single border hierarchy, hard footer tools
   ========================================================= */

/* Cart / checkout: the commerce cards themselves carry the configurable
   light-blue frame. The generic page article must not add a second frame. */
body.woocommerce-cart .bull-page,
body.woocommerce-checkout .bull-page {
  border: 0 !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

/* Product taxonomy archives get a proper 3DBull category head instead of
   loose breadcrumb/title/description elements floating on the page. */
.tax-product_cat .bull-woo-shell,
.tax-product_tag .bull-woo-shell,
.tax-product_attribute .bull-woo-shell {
  padding-top: 30px;
}
.bull-product-archive-head {
  margin: 0 0 18px;
  padding: clamp(20px, 2.6vw, 30px);
  border: var(--bull-content-border-width) solid var(--bull-content-border-color);
  border-radius: var(--bull-radius);
  background: #fff;
  box-shadow: var(--bull-shadow-sm);
}
.bull-product-archive-head .woocommerce-breadcrumb {
  margin: 0 0 11px !important;
  padding: 0 !important;
  color: var(--bull-muted);
  font-size: .86rem;
  line-height: 1.35;
}
.bull-product-archive-head .woocommerce-breadcrumb a {
  color: var(--bull-primary);
  text-decoration: none;
}
.bull-product-archive-head .woocommerce-products-header {
  margin: 0;
  padding: 0;
}
.bull-product-archive-head .woocommerce-products-header__title.page-title {
  margin: 0 0 10px;
  color: var(--bull-dark);
  font-size: clamp(2rem, 4vw, 3.25rem);
  line-height: 1;
}
.bull-product-archive-head .term-description {
  max-width: 900px;
  color: var(--bull-text);
}
.bull-product-archive-head .term-description > *:last-child { margin-bottom: 0; }
.tax-product_cat .bull-shop-toolbar,
.tax-product_tag .bull-shop-toolbar,
.tax-product_attribute .bull-shop-toolbar {
  margin-bottom: 20px;
  border-color: var(--bull-content-border-color) !important;
  border-width: var(--bull-content-border-width) !important;
}

/* Hard footer integration. The theme owns the visible launchers. Plugin
   launchers remain in the DOM where needed for their JavaScript, but are not
   allowed to create an extra row below the 3DBull footer. */
body.bull-has-withdrawal-footer-tool .eu-owb-order-withdraw-from-contract-button,
body.bull-has-withdrawal-footer-tool .gzd-vertrag-widerrufen-button:not(.bull-footer-tool-button),
body.bull-has-cookie-footer-tool #cmplz-manage-consent,
body.bull-has-cookie-footer-tool .cmplz-manage-consent:not(.bull-footer-tool-button),
.bull-plugin-footer-control--hidden {
  display: none !important;
}

/* Never let third-party button CSS re-position the theme-owned cookie tool. */
.bull-site-footer .bull-footer-tools .bull-footer-tool-button--cookies.cmplz-show-banner {
  display: inline-flex !important;
  position: static !important;
  inset: auto !important;
  transform: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

@media (max-width: 720px) {
  .bull-product-archive-head { padding: 18px 16px; }
  .bull-product-archive-head .woocommerce-products-header__title.page-title { font-size: clamp(1.9rem, 10vw, 2.7rem); }
}


/* =========================================================
   3DBull 1.0.0-beta.1 — red/black storefront + configurator-first home
   ========================================================= */

/* Strong, neutral brand shell. */
.bull-site-header { box-shadow: 0 2px 14px rgba(0,0,0,.08); }
.bull-brandbar {
  background: #fff;
  border-top: 4px solid var(--bull-primary);
}
.bull-brandbar__inner { min-height: 96px; grid-template-columns: minmax(110px, 190px) 1fr auto; gap: 24px; }
.bull-brandbar__logo .custom-logo { max-height: 78px; }
.bull-brand-title { color: #111; font-size: clamp(1.6rem, 2.5vw, 2.45rem); letter-spacing: -.015em; }
.bull-brand-subtitle { color: #444; letter-spacing: 0; font-family: var(--bull-font-body); }
.bull-header-action:hover { background: #f4f4f4; color: var(--bull-primary); }
.bull-header-action--support { color: #333; }

/* Main nav keeps the clean Michel structure; designer remains the primary CTA. */
.bull-navrow { background: #111; }
.bull-navrow__inner { align-items: center; }
.bull-primary-nav { flex: 1 1 auto; }
.bull-menu > li > a { min-height: 58px; }
.bull-menu > li > a:hover,
.bull-menu > li.current-menu-item > a,
.bull-menu > li.current-menu-ancestor > a { background: #242424; color: #fff; }
.bull-nav-designer-cta {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 9px;
  min-height: 42px;
  padding: 9px 16px;
  margin-block: 8px;
  border-radius: var(--bull-button-radius);
  background: var(--bull-primary);
  color: #fff;
  font-family: var(--bull-font-button);
  font-weight: 800;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 4px 14px rgba(226,58,46,.25);
}
.bull-nav-designer-cta:hover { background: #fff; color: #111; }
.bull-nav-designer-cta .bull-icon { width: 20px; height: 20px; }

/* Red shop/search bar with Woo categories. */
.bull-commercebar { position: relative; z-index: 92; background: var(--bull-primary); }
.bull-commercebar__inner { min-height: 68px; display: flex; align-items: center; gap: 18px; }
.bull-top-categories { position: relative; flex: 0 0 auto; }
.bull-top-categories__toggle {
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: 210px;
  min-height: 46px;
  padding: 10px 14px;
  border: 1px solid rgba(255,255,255,.28);
  border-radius: 9px;
  background: rgba(0,0,0,.12);
  color: #fff;
  font-family: var(--bull-font-nav);
  font-weight: 800;
  cursor: pointer;
}
.bull-top-categories__toggle:hover,
.bull-top-categories.is-open .bull-top-categories__toggle { background: #111; border-color: #111; }
.bull-top-categories__toggle .bull-icon { width: 21px; height: 21px; }
.bull-top-categories__chevron { margin-left: auto; transition: transform .16s ease; }
.bull-top-categories.is-open .bull-top-categories__chevron { transform: rotate(180deg); }
.bull-top-categories__menu {
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  z-index: 100;
  width: min(360px, 88vw);
  padding: 8px;
  border: 1px solid #dedede;
  border-radius: 12px;
  background: #fff;
  box-shadow: 0 18px 44px rgba(0,0,0,.18);
}
.bull-top-categories__menu[hidden] { display: none !important; }
.bull-top-categories__menu a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  min-height: 44px;
  padding: 9px 11px;
  border-radius: 8px;
  color: #222;
  text-decoration: none;
  font-weight: 650;
}
.bull-top-categories__menu a:hover { background: #f5f5f5; color: var(--bull-primary); }
.bull-top-categories__menu a small { color: #777; font-weight: 600; }
.bull-top-categories__menu .bull-top-categories__all { margin-top: 5px; border-top: 1px solid #eee; border-radius: 0 0 8px 8px; color: var(--bull-primary); }

.bull-commercebar .bull-live-search { width: auto; flex: 1 1 auto; max-width: none; }
.bull-commercebar .bull-search-form { width: 100%; }
.bull-commercebar .bull-search-input {
  height: 46px !important;
  min-height: 46px !important;
  border: 0 !important;
  border-radius: 10px !important;
  background: #fff !important;
  box-shadow: none !important;
}
.bull-commercebar .bull-search-submit {
  width: 48px;
  height: 46px;
  border: 0;
  border-radius: 0 10px 10px 0;
  background: #111;
  color: #fff;
}
.bull-commercebar .bull-search-submit:hover { background: #2b2b2b; }
.bull-commercebar .bull-search-results { top: calc(100% + 8px); width: 100%; }

/* Ticker is intentionally black/white with a restrained red edge. */
.bull-ticker { background: var(--bull-ticker-bg); color: var(--bull-ticker-fg); border-color: var(--bull-ticker-border); }
.bull-ticker a { color: inherit; }

/* Configurator-first hero. */
.bull-home-hero {
  background: linear-gradient(118deg, #111 0%, #1b1b1b 44%, var(--bull-primary) 100%);
}
.bull-home-hero::after {
  right: -150px;
  bottom: -210px;
  border-color: rgba(255,255,255,.07);
}
.bull-home-hero .bull-hero__inner { min-height: 430px; grid-template-columns: minmax(0, 1.15fr) minmax(320px, .72fr); gap: clamp(36px, 6vw, 80px); }
.bull-home-hero .bull-kicker { color: #fff; opacity: .82; }
.bull-home-hero h1 { max-width: 820px; font-size: clamp(2.5rem, 5.4vw, 5.25rem); }
.bull-home-hero p { max-width: 760px; }
.bull-hero__actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 26px; }
.bull-button--outline-light { background: transparent !important; border-color: rgba(255,255,255,.55) !important; color: #fff !important; }
.bull-button--outline-light:hover { background: #fff !important; border-color: #fff !important; color: #111 !important; }
.bull-hero__designer {
  position: relative;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 22px;
  padding: 18px;
  background: rgba(255,255,255,.09);
  box-shadow: 0 24px 64px rgba(0,0,0,.24);
  backdrop-filter: blur(5px);
}
.bull-hero__designer-head { display: flex; align-items: center; justify-content: space-between; gap: 14px; color: #fff; font-family: var(--bull-font-heading); font-size: .86rem; letter-spacing: .08em; }
.bull-hero__designer-head span { color: #fff; font-weight: 900; }
.bull-hero__designer-head strong { opacity: .76; }
.bull-hero__designer-canvas {
  min-height: 210px;
  margin: 15px 0;
  display: grid;
  place-items: center;
  border-radius: 14px;
  background: #fff;
  overflow: hidden;
}
.bull-hero__designer-mark {
  display: grid;
  place-items: center;
  width: 150px;
  aspect-ratio: 1;
  border: 10px solid var(--bull-primary);
  border-radius: 50%;
  color: #111;
  font-family: var(--bull-font-heading);
  font-size: 1.25rem;
  font-weight: 900;
  line-height: 1.05;
  text-align: center;
  transform: rotate(-6deg);
}
.bull-hero__steps { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 8px; margin: 0; padding: 0; list-style: none; }
.bull-hero__steps li { display: flex; align-items: center; gap: 8px; min-width: 0; color: #fff; font-size: .78rem; line-height: 1.2; }
.bull-hero__steps b { flex: 0 0 auto; width: 26px; height: 26px; display: grid; place-items: center; border-radius: 50%; background: var(--bull-primary); color: #fff; font-size: .75rem; }

/* Compact trust strip directly after the configurator hero. */
.bull-trust-strip { background: #fff; border-bottom: 1px solid #e6e6e6; }
.bull-trust-strip__inner { min-height: 68px; display: grid; grid-template-columns: repeat(4, minmax(0,1fr)); align-items: center; gap: 20px; }
.bull-trust-item { display: flex; align-items: center; justify-content: center; gap: 9px; color: #272727; font-weight: 700; text-align: center; }
.bull-trust-item__check { width: 25px; height: 25px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 50%; background: #111; color: #fff; font-size: .8rem; }

/* Home spacing. */
.bull-home-content { padding-block: 34px 72px; }
.bull-home-section { margin: 42px 0 64px; }
.bull-section-heading { margin-bottom: 24px; }
.bull-section-heading .bull-kicker { color: var(--bull-primary); }
.bull-section-heading h2 { color: #111; }
.bull-section-heading--stacked { align-items: flex-start; flex-direction: column; }
.bull-section-heading--stacked p { max-width: 820px; margin: 8px 0 0; color: #666; }

/* Category cards intentionally preserve the current 3DBull image-heavy look. */
.bull-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 28px 32px; }
.bull-category-card {
  min-height: 0;
  display: block;
  padding: 0;
  border: 1px solid #e5e5e5;
  border-radius: 22px;
  overflow: hidden;
  background: #fff;
  background-image: none;
  color: #111;
  box-shadow: 0 12px 34px rgba(0,0,0,.07);
  text-decoration: none;
  transform: none;
}
.bull-category-card:hover { color: #111; transform: translateY(-3px); border-color: var(--bull-primary); box-shadow: 0 18px 42px rgba(0,0,0,.12); }
.bull-category-card__overlay { display: none; }
.bull-category-card__media { display: block; aspect-ratio: 16 / 9; overflow: hidden; background: #171717; }
.bull-category-card__media img { width: 100%; height: 100%; display: block; object-fit: cover; transition: transform .28s ease; }
.bull-category-card:hover .bull-category-card__media img { transform: scale(1.018); }
.bull-category-card__placeholder { width: 100%; height: 100%; display: grid; place-items: center; color: rgba(255,255,255,.28); font-family: var(--bull-font-heading); font-size: clamp(2rem, 6vw, 5rem); font-weight: 900; }
.bull-category-card__content {
  min-height: 102px;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: center;
  gap: 3px;
  padding: 22px 26px;
  background: #fff;
  color: #111;
  text-align: center;
}
.bull-category-card strong { color: #111; font-size: clamp(1.35rem, 2.1vw, 2rem); line-height: 1.05; }
.bull-category-card small { margin: 0; color: var(--bull-primary); font-family: var(--bull-font-heading); font-size: 1rem; font-weight: 800; }

/* Product grids stay Woo-native but get the quieter 3DBull frame. */
.bull-home-products .woocommerce ul.products li.product { background: #fff; }
.bull-home-products .woocommerce ul.products li.product:hover { border-color: var(--bull-primary) !important; }

/* Optional inspiration / own examples; hidden by default in the Customizer. */
.bull-inspiration { padding: clamp(24px, 4vw, 44px); border-radius: 22px; background: #fff; box-shadow: var(--bull-shadow-sm); }
.bull-inspiration-grid { display: grid; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 18px; }
.bull-inspiration-card { display: block; overflow: hidden; border: 1px solid #e5e5e5; border-radius: 14px; background: #fff; color: #111; text-decoration: none; }
.bull-inspiration-card img { width: 100%; aspect-ratio: 4 / 3; display: block; object-fit: cover; }
.bull-inspiration-card span { display: block; padding: 13px 14px; font-weight: 800; }
.bull-inspiration-card:hover { border-color: var(--bull-primary); color: var(--bull-primary); box-shadow: var(--bull-shadow-sm); }

/* Configurator cards and product configurator should read as the core feature. */
.bull-configurator-area { border-top-color: var(--bull-primary) !important; box-shadow: 0 14px 40px rgba(0,0,0,.1); }
.bull-configurator-area__eyebrow { background: color-mix(in srgb, var(--bull-primary) 10%, white); color: var(--bull-primary); }
.bull-configurator-hub-intro { background: linear-gradient(125deg, #111, #242424 55%, var(--bull-primary)); }
.bull-configurators-output .bull-gkpc-card:hover { border-color: var(--bull-primary) !important; }

/* Footer remains deliberately close to Michel, only recoloured. */
.bull-site-footer { background: #111; }
.bull-footer-main { background: #111; }
.bull-footer-bottom { background: #080808; }
.bull-footer-tools { background: #080808; }

/* Mobile bottom navigation. */
.bull-mobile-bar { display: none; }

@media (max-width: 1024px) {
  body.bull-has-sticky-header .bull-site-header,
  .admin-bar.bull-has-sticky-header .bull-site-header { position: relative; top: auto; }
  .bull-navrow__inner { position: relative; justify-content: flex-end; }
  .bull-nav-designer-cta { margin-left: auto; }
  .bull-primary-nav { z-index: 120; }
  .bull-commercebar__inner { gap: 10px; }
  .bull-top-categories__toggle { min-width: 175px; }
  .bull-home-hero .bull-hero__inner { grid-template-columns: 1fr; }
  .bull-hero__designer { max-width: 620px; width: 100%; }
  .bull-trust-strip__inner { grid-template-columns: repeat(2, minmax(0,1fr)); padding-block: 14px; }
}

@media (max-width: 760px) {
  body { padding-bottom: 70px; }
  .bull-brandbar__inner { min-height: 78px; }
  .bull-brandbar__actions .bull-header-action--support { display: none; }
  .bull-navrow__inner { min-height: 50px; }
  .bull-nav-designer-cta { min-height: 38px; padding: 8px 11px; margin-block: 6px; font-size: .88rem; }
  .bull-commercebar__inner { min-height: auto; padding-block: 10px; flex-wrap: wrap; }
  .bull-top-categories { width: 100%; }
  .bull-top-categories__toggle { width: 100%; min-width: 0; }
  .bull-commercebar .bull-live-search { width: 100%; flex-basis: 100%; }
  .bull-home-hero .bull-hero__inner { padding-block: 38px; }
  .bull-home-hero h1 { font-size: clamp(2.25rem, 12vw, 3.7rem); }
  .bull-hero__designer { display: none; }
  .bull-hero__actions { display: grid; grid-template-columns: 1fr; }
  .bull-hero__actions .bull-button { width: 100%; }
  .bull-trust-strip__inner { grid-template-columns: 1fr 1fr; gap: 10px; }
  .bull-trust-item { justify-content: flex-start; text-align: left; font-size: .86rem; }
  .bull-category-grid { grid-template-columns: 1fr; gap: 20px; }
  .bull-category-card { border-radius: 16px; }
  .bull-category-card__content { min-height: 78px; padding: 17px 16px; }
  .bull-inspiration-grid { grid-template-columns: 1fr 1fr; gap: 12px; }

  .bull-mobile-bar {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 99990;
    height: 66px;
    display: grid;
    grid-template-columns: repeat(5, minmax(0,1fr));
    border-top: 1px solid #ddd;
    background: rgba(255,255,255,.98);
    box-shadow: 0 -6px 22px rgba(0,0,0,.09);
  }
  .bull-mobile-bar a,
  .bull-mobile-bar button {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 2px;
    min-width: 0;
    padding: 5px 2px;
    border: 0;
    background: transparent;
    color: #222;
    font-family: var(--bull-font-body);
    font-size: .68rem;
    font-weight: 700;
    line-height: 1.05;
    text-decoration: none;
  }
  .bull-mobile-bar .bull-icon { width: 22px; height: 22px; }
  .bull-mobile-bar__designer { color: var(--bull-primary) !important; }
  .bull-mobile-bar__designer .bull-icon { width: 26px; height: 26px; }
  .bull-mobile-bar em { position: absolute; top: 4px; right: calc(50% - 18px); min-width: 17px; height: 17px; display: grid; place-items: center; border-radius: 50%; background: var(--bull-primary); color: #fff; font-size: 10px; font-style: normal; }
}

@media (max-width: 460px) {
  .bull-inspiration-grid { grid-template-columns: 1fr; }
  .bull-trust-strip__inner { grid-template-columns: 1fr; }
  .bull-trust-item { justify-content: flex-start; }
}

/* =========================================================
   3DBull 1.0.0-beta.2 — modular homepage & shop refinements
   ========================================================= */

/* Header details. */
.bull-top-categories__chevron {
  width: 22px;
  height: 22px;
  margin-left: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: transform .18s ease;
}
.bull-top-categories__chevron svg { width: 20px; height: 20px; stroke-width: 2.4; }
.bull-top-categories.is-open .bull-top-categories__chevron { transform: rotate(180deg); }
.bull-icon--external { width: 13px !important; height: 13px !important; margin-left: -2px; opacity: .72; }

/* Modular homepage shell. Each module owns its container so it can be reordered safely. */
.bull-home-module { position: relative; }
.bull-home-section { margin: 0; padding: 40px 0 64px; }
.bull-home-categories { padding-top: 46px; }

/* Category artwork is authored artwork: never crop it. */
.bull-category-grid {
  display: grid;
  grid-template-columns: repeat(var(--bull-home-cat-cols-desktop, 2), minmax(0, 1fr));
  gap: 28px 32px;
}
.bull-category-card__media {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  overflow: hidden;
  background: #f3f3f3;
}
.bull-category-card__media img {
  width: 100%;
  height: auto;
  max-width: 100%;
  display: block;
  aspect-ratio: auto;
  object-fit: contain;
  object-position: center;
  transition: transform .28s ease;
}
.bull-category-card:hover .bull-category-card__media img { transform: scale(1.008); }

/* Homepage products: independent grid from archive/shop pages. */
.bull-home-products .woocommerce ul.products {
  grid-template-columns: repeat(var(--bull-home-prod-cols-desktop, 4), minmax(0, 1fr)) !important;
}

/* Clear visual separation between navigation-by-category and the actual product catalogue. */
.bull-home-products--break { margin-top: 28px; padding-top: 66px; }
.bull-home-products--break-panel {
  background: #f0f0f0;
  border-top: 1px solid #e2e2e2;
  border-bottom: 1px solid #e2e2e2;
  padding-bottom: 70px;
}
.bull-home-products--break-line::before {
  content: "";
  position: absolute;
  left: 50%;
  top: 18px;
  width: min(1180px, calc(100% - 40px));
  height: 2px;
  transform: translateX(-50%);
  background: var(--bull-primary);
}
.bull-home-products--break-space { padding-top: 84px; }

/* Flexible homepage blocks (B2B + two free areas). */
.bull-home-feature__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(320px, .95fr);
  align-items: center;
  gap: clamp(26px, 5vw, 72px);
  padding: clamp(28px, 5vw, 58px);
  border: 1px solid #e5e5e5;
  border-radius: var(--bull-radius);
  background: #fff;
  box-shadow: var(--bull-shadow-sm);
}
.bull-home-feature--image-left .bull-home-feature__content { order: 2; }
.bull-home-feature--image-left .bull-home-feature__media { order: 1; }
.bull-home-feature__content h2 { margin: 7px 0 14px; color: var(--bull-dark); font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1; }
.bull-home-feature__text { margin-bottom: 22px; color: #555; }
.bull-home-feature__text > *:last-child { margin-bottom: 0; }
.bull-home-feature__media { overflow: hidden; border-radius: calc(var(--bull-radius) - 4px); background: #f3f3f3; }
.bull-home-feature__media img { display: block; width: 100%; height: auto; max-height: 430px; object-fit: cover; }

/* Inspiration is its own complete module now; inner container carries the card. */
.bull-inspiration { padding: 48px 0 68px; background: #fff; box-shadow: none; border-radius: 0; }
.bull-inspiration > .bull-container { padding-top: clamp(24px, 4vw, 44px); padding-bottom: clamp(24px, 4vw, 44px); border-radius: 22px; background: #fff; box-shadow: var(--bull-shadow-sm); }

/* Recently viewed products. */
.bull-recently-viewed { margin-top: 46px; padding-top: 34px; border-top: 1px solid #e3e3e3; }
.bull-recently-viewed h2 { margin: 0 0 22px; color: var(--bull-dark); }

/* Hide the duplicate Complianz launcher even when the plugin uses a plain link wrapper. */
body.bull-has-cookie-footer-tool #cmplz-manage-consent,
body.bull-has-cookie-footer-tool #cmplz-manage-consent-container,
body.bull-has-cookie-footer-tool .cmplz-manage-consent:not(.bull-footer-tool-button),
body.bull-has-cookie-footer-tool a.cmplz-manage-consent,
body.bull-has-cookie-footer-tool button.cmplz-manage-consent,
body.bull-has-cookie-footer-tool .cmplz-manage-consent-container,
.bull-plugin-footer-control--hidden {
  display: none !important;
}
.bull-site-footer .bull-footer-tools .bull-footer-tool-button--cookies.cmplz-show-banner { display: inline-flex !important; }

@media (max-width: 1024px) {
  .bull-category-grid { grid-template-columns: repeat(var(--bull-home-cat-cols-tablet, 2), minmax(0, 1fr)); }
  .bull-home-products .woocommerce ul.products { grid-template-columns: repeat(var(--bull-home-prod-cols-tablet, 2), minmax(0, 1fr)) !important; }
  .bull-home-feature__inner { grid-template-columns: 1fr 1fr; }
}

@media (max-width: 760px) {
  .bull-category-grid { grid-template-columns: repeat(var(--bull-home-cat-cols-mobile, 1), minmax(0, 1fr)); }
  .bull-home-products .woocommerce ul.products { grid-template-columns: repeat(var(--bull-home-prod-cols-mobile, 2), minmax(0, 1fr)) !important; }
  .bull-home-products--break { margin-top: 12px; padding-top: 48px; }
  .bull-home-feature__inner { grid-template-columns: 1fr; padding: 20px; gap: 22px; }
  .bull-home-feature--image-left .bull-home-feature__content,
  .bull-home-feature--image-left .bull-home-feature__media { order: initial; }
  .bull-home-feature__media { order: -1 !important; }
  .bull-inspiration { padding-block: 32px 48px; }
}
.bull-home-feature--no-image .bull-home-feature__inner { grid-template-columns: 1fr; }
.bull-home-feature--no-image .bull-home-feature__content { max-width: 900px; }

/* Beta 2.1: Existing WooCommerce shortcodes/blocks inside the saved homepage content.
   3dbull.de already has a content-driven homepage; make the theme layout controls
   apply there as well instead of forcing the merchant to rebuild that page. */
.bull-home-page-content .woocommerce ul.products.bull-home-legacy-categories-grid {
  display: grid !important;
  grid-template-columns: repeat(var(--bull-home-cat-cols-desktop, 2), minmax(0, 1fr)) !important;
  gap: 28px 32px !important;
}
.bull-home-page-content .woocommerce ul.products.bull-home-legacy-products-grid {
  display: grid !important;
  grid-template-columns: repeat(var(--bull-home-prod-cols-desktop, 4), minmax(0, 1fr)) !important;
  gap: 24px !important;
}
.bull-home-page-content .bull-home-legacy-products-separator {
  position: relative;
  width: 100%;
  clear: both;
  margin: 56px 0 34px;
  padding-top: 46px;
  border-top: 2px solid var(--bull-primary);
}
.bull-home-page-content .bull-home-legacy-products-separator::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -5px;
  width: 74px;
  height: 8px;
  transform: translateX(-50%);
  border-radius: 999px;
  background: var(--bull-primary);
}
@media (max-width: 980px) {
  .bull-home-page-content .woocommerce ul.products.bull-home-legacy-categories-grid {
    grid-template-columns: repeat(var(--bull-home-cat-cols-tablet, 2), minmax(0, 1fr)) !important;
  }
  .bull-home-page-content .woocommerce ul.products.bull-home-legacy-products-grid {
    grid-template-columns: repeat(var(--bull-home-prod-cols-tablet, 2), minmax(0, 1fr)) !important;
  }
}
@media (max-width: 700px) {
  .bull-home-page-content .woocommerce ul.products.bull-home-legacy-categories-grid {
    grid-template-columns: repeat(var(--bull-home-cat-cols-mobile, 1), minmax(0, 1fr)) !important;
    gap: 20px !important;
  }
  .bull-home-page-content .woocommerce ul.products.bull-home-legacy-products-grid {
    grid-template-columns: repeat(var(--bull-home-prod-cols-mobile, 2), minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
  .bull-home-page-content .bull-home-legacy-products-separator {
    margin: 38px 0 26px;
    padding-top: 34px;
  }
}


/* =========================================================
   Beta 2.2 — real WooCommerce shop-as-home layout
   ========================================================= */

/* The public 3DBull start page is the WooCommerce shop archive. These rules
   intentionally use the same Customizer variables as the modular homepage. */
body.woocommerce-shop .woocommerce ul.products.bull-shop-home-categories-grid,
body.post-type-archive-product .woocommerce ul.products.bull-shop-home-categories-grid,
body.woocommerce-shop .woocommerce ul.products:has(> li.product-category),
body.post-type-archive-product .woocommerce ul.products:has(> li.product-category) {
  display: grid !important;
  grid-template-columns: repeat(var(--bull-home-cat-cols-desktop, 2), minmax(0, 1fr)) !important;
  gap: 28px 32px !important;
}

body.woocommerce-shop .woocommerce ul.products.bull-shop-home-products-grid,
body.post-type-archive-product .woocommerce ul.products.bull-shop-home-products-grid,
body.woocommerce-shop .woocommerce ul.products:not(:has(> li.product-category)),
body.post-type-archive-product .woocommerce ul.products:not(:has(> li.product-category)) {
  display: grid !important;
  grid-template-columns: repeat(var(--bull-home-prod-cols-desktop, 4), minmax(0, 1fr)) !important;
  gap: 22px !important;
}

/* Category graphics are finished artwork, not square product photos. */
body.woocommerce-shop .woocommerce ul.products li.product-category a img,
body.post-type-archive-product .woocommerce ul.products li.product-category a img {
  width: 100% !important;
  height: auto !important;
  aspect-ratio: auto !important;
  object-fit: contain !important;
  object-position: center !important;
  margin-bottom: 14px !important;
}
body.woocommerce-shop .woocommerce ul.products li.product-category mark.count,
body.post-type-archive-product .woocommerce ul.products li.product-category mark.count {
  padding: 0 !important;
  background: transparent !important;
  color: var(--bull-primary) !important;
  font-size: .82em !important;
  font-weight: 800 !important;
}

/* Visible separator between category navigation and the actual catalogue. */
.bull-shop-products-separator {
  position: relative;
  grid-column: 1 / -1;
  width: 100%;
  height: 24px;
  margin: 50px 0 34px;
  border-top: 2px solid var(--bull-primary);
}
.bull-shop-products-separator::before {
  content: "";
  position: absolute;
  left: 50%;
  top: -5px;
  width: 72px;
  height: 8px;
  transform: translateX(-50%);
  border-radius: 999px;
  background: var(--bull-primary);
}

/* Product-card rhythm: keep mandatory Germanized information readable but
   prevent the lower half of each card from becoming two giant red blocks. */
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category),
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) {
  padding: 12px 12px 14px !important;
  border-color: #e1e1e1;
}
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) .woocommerce-loop-product__title,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) .woocommerce-loop-product__title {
  margin: 2px 0 8px !important;
  font-size: 1.08rem !important;
  line-height: 1.2;
}
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) .price,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) .price {
  margin: 2px 0 10px !important;
  font-size: 1.05rem !important;
}
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) .wc-gzd-additional-info,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) .wc-gzd-additional-info,
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) .tax-info,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) .tax-info,
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) .shipping-costs-info,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) .shipping-costs-info,
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) .delivery-time-info,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) .delivery-time-info {
  margin: 3px 0 !important;
  color: #6f7781;
  font-size: .82rem !important;
  line-height: 1.32;
}

/* Keep the commerce action primary and make quick-view/secondary actions quiet. */
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) > .add_to_cart_button,
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) > a.product_type_simple,
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) > a.product_type_variable,
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) > a.product_type_grouped,
body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) > a.product_type_external,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) > .add_to_cart_button,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) > a.product_type_simple,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) > a.product_type_variable,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) > a.product_type_grouped,
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) > a.product_type_external {
  margin-top: auto !important;
}

body.woocommerce-shop .woocommerce ul.products li.product:not(.product-category) > a.button:not(.add_to_cart_button):not(.product_type_simple):not(.product_type_variable):not(.product_type_grouped):not(.product_type_external),
body.post-type-archive-product .woocommerce ul.products li.product:not(.product-category) > a.button:not(.add_to_cart_button):not(.product_type_simple):not(.product_type_variable):not(.product_type_grouped):not(.product_type_external),
body.woocommerce-shop .woocommerce ul.products li.product .yith-wcqv-button,
body.woocommerce-shop .woocommerce ul.products li.product .woosq-btn,
body.woocommerce-shop .woocommerce ul.products li.product .quick-view-button,
body.post-type-archive-product .woocommerce ul.products li.product .yith-wcqv-button,
body.post-type-archive-product .woocommerce ul.products li.product .woosq-btn,
body.post-type-archive-product .woocommerce ul.products li.product .quick-view-button {
  min-height: 40px !important;
  margin-top: 8px !important;
  padding: 8px 12px !important;
  border: 1px solid #d6d6d6 !important;
  background: #fff !important;
  color: var(--bull-dark) !important;
  box-shadow: none !important;
  font-size: .9rem !important;
}
body.woocommerce-shop .woocommerce ul.products li.product .yith-wcqv-button:hover,
body.woocommerce-shop .woocommerce ul.products li.product .woosq-btn:hover,
body.woocommerce-shop .woocommerce ul.products li.product .quick-view-button:hover,
body.post-type-archive-product .woocommerce ul.products li.product .yith-wcqv-button:hover,
body.post-type-archive-product .woocommerce ul.products li.product .woosq-btn:hover,
body.post-type-archive-product .woocommerce ul.products li.product .quick-view-button:hover {
  border-color: var(--bull-dark) !important;
  background: var(--bull-dark) !important;
  color: #fff !important;
}

@media (max-width: 1024px) {
  body.woocommerce-shop .woocommerce ul.products.bull-shop-home-categories-grid,
  body.post-type-archive-product .woocommerce ul.products.bull-shop-home-categories-grid,
  body.woocommerce-shop .woocommerce ul.products:has(> li.product-category),
  body.post-type-archive-product .woocommerce ul.products:has(> li.product-category) {
    grid-template-columns: repeat(var(--bull-home-cat-cols-tablet, 2), minmax(0, 1fr)) !important;
  }
  body.woocommerce-shop .woocommerce ul.products.bull-shop-home-products-grid,
  body.post-type-archive-product .woocommerce ul.products.bull-shop-home-products-grid,
  body.woocommerce-shop .woocommerce ul.products:not(:has(> li.product-category)),
  body.post-type-archive-product .woocommerce ul.products:not(:has(> li.product-category)) {
    grid-template-columns: repeat(var(--bull-home-prod-cols-tablet, 2), minmax(0, 1fr)) !important;
  }
}

@media (max-width: 700px) {
  body.woocommerce-shop .woocommerce ul.products.bull-shop-home-categories-grid,
  body.post-type-archive-product .woocommerce ul.products.bull-shop-home-categories-grid,
  body.woocommerce-shop .woocommerce ul.products:has(> li.product-category),
  body.post-type-archive-product .woocommerce ul.products:has(> li.product-category) {
    grid-template-columns: repeat(var(--bull-home-cat-cols-mobile, 1), minmax(0, 1fr)) !important;
    gap: 18px !important;
  }
  body.woocommerce-shop .woocommerce ul.products.bull-shop-home-products-grid,
  body.post-type-archive-product .woocommerce ul.products.bull-shop-home-products-grid,
  body.woocommerce-shop .woocommerce ul.products:not(:has(> li.product-category)),
  body.post-type-archive-product .woocommerce ul.products:not(:has(> li.product-category)) {
    grid-template-columns: repeat(var(--bull-home-prod-cols-mobile, 2), minmax(0, 1fr)) !important;
    gap: 12px !important;
  }
  .bull-shop-products-separator { margin: 36px 0 24px; }
}


/* =========================================================
   beta.2.6 – modular homepage color system + cleaner inspiration
   ========================================================= */
.bull-home-module {
  background: var(--bull-section-bg, transparent);
  color: var(--bull-section-text, inherit);
}
.bull-home-module .bull-section-heading h2,
.bull-home-module .bull-home-feature__content h2 {
  color: var(--bull-section-heading, var(--bull-dark));
}
.bull-home-module .bull-section-heading p,
.bull-home-module .bull-home-feature__text {
  color: var(--bull-section-text, #555);
}
.bull-home-module .bull-kicker,
.bull-home-module .bull-trust-item__check {
  color: var(--bull-section-accent, var(--bull-primary));
}
.bull-trust-strip { background: var(--bull-section-bg, #fff); }
.bull-trust-item { color: var(--bull-section-text, #202124); }

.bull-home-categories {
  background: var(--bull-section-bg, #f5f5f5);
  border-block: 1px solid color-mix(in srgb, var(--bull-section-accent, var(--bull-primary)) 18%, transparent);
}
.bull-home-categories mark.count { color: var(--bull-section-accent, var(--bull-primary)) !important; }

.bull-home-products,
.bull-home-products--break-panel {
  background: var(--bull-section-bg, #f0f0f0);
}
.bull-home-products--break-line::before { background: var(--bull-section-accent, var(--bull-primary)); }

.bull-inspiration {
  padding: 52px 0 64px;
  background: var(--bull-section-bg, #eceff1);
  border-top: 1px solid color-mix(in srgb, var(--bull-section-accent, var(--bull-primary)) 18%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--bull-section-accent, var(--bull-primary)) 18%, transparent);
}
.bull-inspiration > .bull-container {
  padding-top: 0;
  padding-bottom: 0;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
}
.bull-inspiration-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 360px));
  justify-content: start;
  gap: 18px;
}
.bull-inspiration-card {
  background: var(--bull-section-card-bg, #fff);
  border-color: color-mix(in srgb, var(--bull-section-accent, var(--bull-primary)) 22%, #dfe3e6);
  box-shadow: 0 8px 24px rgba(0,0,0,.05);
}
.bull-inspiration-card:hover {
  border-color: var(--bull-section-accent, var(--bull-primary));
  color: var(--bull-section-accent, var(--bull-primary));
}
.bull-inspiration-card img {
  width: 100%;
  height: auto;
  aspect-ratio: auto;
  max-height: 390px;
  object-fit: contain;
  background: var(--bull-section-card-bg, #fff);
}

.bull-home-feature { background: var(--bull-section-bg, #fff); }
.bull-home-feature__inner {
  background: color-mix(in srgb, var(--bull-section-bg, #fff) 92%, #fff);
  border-color: color-mix(in srgb, var(--bull-section-accent, var(--bull-primary)) 20%, #e5e5e5);
}
.bull-home-feature .bull-button { background: var(--bull-section-accent, var(--bull-primary)); }
