@import url("../../default/stylesheet/stylesheet.css");
@import url("./tokens.css");

/* Foundation */
html { min-width: 320px; background: var(--tb-color-surface-subtle); font-size: 16px; scroll-behavior: smooth; }
body.tb-storefront { min-width: 320px; margin: 0; overflow-x: clip; background: var(--tb-color-surface); color: var(--tb-color-text); font-family: var(--tb-font-family-sans); font-size: var(--tb-font-size-md); line-height: var(--tb-line-height-normal); text-rendering: optimizeLegibility; -webkit-font-smoothing: antialiased; }
body.tb-storefront .container { width: auto; max-width: var(--tb-container-max); margin-right: auto; margin-left: auto; padding-right: var(--tb-container-gutter); padding-left: var(--tb-container-gutter); }
body.tb-storefront img { max-width: 100%; }
body.tb-storefront a { color: var(--tb-color-primary); text-decoration: none; transition: color var(--tb-duration-fast) var(--tb-easing-standard); }
body.tb-storefront a:hover, body.tb-storefront a:active { color: var(--tb-color-primary-hover); text-decoration: none; }
body.tb-storefront h1, body.tb-storefront h2, body.tb-storefront h3, body.tb-storefront h4, body.tb-storefront h5, body.tb-storefront h6 { margin-top: 0; color: var(--tb-color-text); font-family: inherit; font-weight: var(--tb-font-weight-semibold); letter-spacing: -0.025em; line-height: var(--tb-line-height-heading); overflow-wrap: anywhere; text-wrap: balance; }
body.tb-storefront h1 { margin-bottom: var(--tb-space-8); font-size: clamp(2rem, 4vw, 3.5rem); }
body.tb-storefront h2 { font-size: clamp(1.75rem, 3vw, 2.75rem); }
body.tb-storefront h3 { font-size: clamp(1.375rem, 2vw, 1.75rem); }
body.tb-storefront p { color: var(--tb-color-text-muted); line-height: var(--tb-line-height-relaxed); }
body.tb-storefront :where(a, button, input, select, textarea, [tabindex]):focus-visible { outline: 3px solid var(--tb-color-focus-ring); outline-offset: 3px; }
.tb-skip-link { position: fixed; top: var(--tb-space-3); left: var(--tb-space-3); z-index: 1100; padding: var(--tb-space-3) var(--tb-space-5); border-radius: var(--tb-radius-md); background: var(--tb-color-text); color: var(--tb-color-text-inverse) !important; transform: translateY(-180%); transition: transform var(--tb-duration-fast) var(--tb-easing-standard); }
.tb-skip-link:focus { transform: translateY(0); }
.tb-icon-label { position: absolute !important; width: 1px !important; height: 1px !important; padding: 0 !important; overflow: hidden !important; clip: rect(0, 0, 0, 0) !important; white-space: nowrap !important; border: 0 !important; }

/* Controls */
body.tb-storefront .btn { display: inline-flex; min-height: var(--tb-control-height); align-items: center; justify-content: center; padding: .75rem 1.25rem; gap: var(--tb-space-2); border-radius: var(--tb-radius-md); font-weight: var(--tb-font-weight-semibold); line-height: 1.35; transition: background-color var(--tb-duration-fast) var(--tb-easing-standard), border-color var(--tb-duration-fast) var(--tb-easing-standard), color var(--tb-duration-fast) var(--tb-easing-standard), transform var(--tb-duration-fast) var(--tb-easing-standard), box-shadow var(--tb-duration-fast) var(--tb-easing-standard); }
body.tb-storefront .btn:hover { transform: translateY(-1px); }
body.tb-storefront .btn-primary, body.tb-storefront .btn-inverse { border-color: var(--tb-color-primary); background: var(--tb-color-primary); color: var(--tb-color-text-inverse); box-shadow: none; text-shadow: none; }
body.tb-storefront .btn-primary:hover, body.tb-storefront .btn-primary:focus, body.tb-storefront .btn-primary:active, body.tb-storefront .btn-inverse:hover, body.tb-storefront .btn-inverse:focus, body.tb-storefront .btn-inverse:active { border-color: var(--tb-color-primary-hover); background: var(--tb-color-primary-hover); color: var(--tb-color-text-inverse); }
body.tb-storefront .btn-default { border-color: var(--tb-color-border); background: var(--tb-color-surface); color: var(--tb-color-text); box-shadow: none; text-shadow: none; }
body.tb-storefront .btn-default:hover, body.tb-storefront .btn-default:focus { border-color: var(--tb-color-border-strong); background: var(--tb-color-surface-subtle); color: var(--tb-color-text); }
body.tb-storefront .form-control { min-height: var(--tb-control-height); padding: var(--tb-space-3) var(--tb-space-4); border-color: var(--tb-color-border); border-radius: var(--tb-radius-md); background: var(--tb-color-surface); color: var(--tb-color-text); box-shadow: var(--tb-shadow-control); font-size: var(--tb-font-size-md); line-height: 1.35; transition: border-color var(--tb-duration-fast) var(--tb-easing-standard), box-shadow var(--tb-duration-fast) var(--tb-easing-standard), background-color var(--tb-duration-fast) var(--tb-easing-standard); }
body.tb-storefront .form-control::placeholder { color: var(--tb-color-text-subtle); opacity: 1; }
body.tb-storefront .form-control:hover:not(:disabled) { border-color: var(--tb-color-border-strong); }
body.tb-storefront .form-control:focus { border-color: var(--tb-color-border-interactive); box-shadow: var(--tb-shadow-focus); }
body.tb-storefront :where(button, input, select, textarea, .btn)[disabled], body.tb-storefront :where(button, input, select, textarea, .btn).disabled { background-color: var(--tb-color-disabled-bg); color: var(--tb-color-disabled-text); cursor: not-allowed; opacity: var(--tb-opacity-disabled); }

/* Header */
.tb-utility-bar { min-height: 2.25rem; border-bottom: 1px solid var(--tb-color-border); background: var(--tb-color-surface-subtle); color: var(--tb-color-text-muted); font-size: var(--tb-font-size-xs); }
.tb-utility-inner { display: flex; align-items: center; justify-content: space-between; min-height: 2.25rem; gap: var(--tb-space-4); }
.tb-utility-meta, .tb-utility-tools { display: flex; align-items: center; gap: var(--tb-space-5); }
.tb-utility-meta a { color: var(--tb-color-text-muted) !important; }
.tb-utility-meta i { margin-right: var(--tb-space-2); color: var(--tb-color-primary); }
.tb-utility-tools .btn-link, .tb-utility-tools button, .tb-utility-tools a { min-height: 0; padding: 0; color: var(--tb-color-text-muted); font-size: var(--tb-font-size-xs); }
.tb-site-header { position: sticky; top: 0; z-index: 1000; border-bottom: 1px solid var(--tb-color-border); background: rgba(255,255,255,.97); box-shadow: 0 4px 18px rgba(15,23,42,.035); }
.tb-header-grid { display: grid; grid-template-columns: auto auto minmax(16rem, 1fr) auto; align-items: center; min-height: var(--tb-header-height); gap: var(--tb-space-5); }
.tb-brand { display: inline-flex; align-items: center; gap: var(--tb-space-3); min-width: max-content; color: var(--tb-color-text) !important; font-size: 1.25rem; font-weight: var(--tb-font-weight-bold); letter-spacing: .12em; }
.tb-brand-mark { display: inline-grid; width: 2.25rem; height: 2.25rem; place-items: center; border-radius: var(--tb-radius-md); background: var(--tb-color-primary); color: var(--tb-color-text-inverse); font-size: 1.65rem; font-weight: var(--tb-font-weight-bold); letter-spacing: -.08em; line-height: 1; box-shadow: inset 0 1px 0 rgba(255,255,255,.25); }
.tb-catalog-trigger, .tb-menu-toggle { display: inline-flex; align-items: center; justify-content: center; min-height: var(--tb-control-height); gap: var(--tb-space-3); border: 1px solid var(--tb-color-text); border-radius: var(--tb-radius-md); background: var(--tb-color-text); color: var(--tb-color-text-inverse); font-weight: var(--tb-font-weight-semibold); }
.tb-catalog-trigger { padding: .75rem 1.125rem; }
.tb-menu-toggle { display: none; width: var(--tb-control-height); padding: 0; }
.tb-catalog-trigger:hover, .tb-catalog-trigger:focus, .tb-menu-toggle:hover, .tb-menu-toggle:focus { border-color: var(--tb-color-primary); background: var(--tb-color-primary); }
.tb-header-search { min-width: 0; }
.tb-header-search #search { display: flex; width: 100%; }
.tb-header-search #search .form-control { height: var(--tb-control-height); border-right: 0; border-radius: var(--tb-radius-pill) 0 0 var(--tb-radius-pill); background: var(--tb-color-surface-subtle); padding-left: var(--tb-space-5); }
.tb-header-search #search .input-group-btn { width: auto; }
.tb-header-search #search button { width: var(--tb-control-height); height: var(--tb-control-height); min-height: var(--tb-control-height); padding: 0; border-color: var(--tb-color-border); border-left: 0; border-radius: 0 var(--tb-radius-pill) var(--tb-radius-pill) 0; background: var(--tb-color-surface-subtle); color: var(--tb-color-text); }
.tb-header-actions { display: flex; align-items: center; justify-content: flex-end; gap: var(--tb-space-2); }
.tb-header-action, .tb-account-toggle, .tb-header-cart #cart > button { position: relative; display: inline-flex; flex-direction: column; align-items: center; justify-content: center; width: 4.25rem; min-height: 3.5rem; padding: var(--tb-space-2); gap: .2rem; border: 0; border-radius: var(--tb-radius-md); background: transparent; color: var(--tb-color-text) !important; font-size: var(--tb-font-size-xs); font-weight: var(--tb-font-weight-medium); line-height: 1.15; box-shadow: none; text-shadow: none; }
.tb-header-action:hover, .tb-header-action:focus, .tb-account-toggle:hover, .tb-account-toggle:focus, .tb-header-cart #cart > button:hover, .tb-header-cart #cart > button:focus { background: var(--tb-color-primary-50); color: var(--tb-color-primary) !important; transform: none; }
.tb-header-action > i, .tb-account-toggle > i, .tb-header-cart #cart > button > i { font-size: 1.25rem; }
.tb-header-account, .tb-header-cart { position: relative; }
.tb-header-account .dropdown-menu, .tb-header-cart .dropdown-menu { min-width: 18rem; margin-top: var(--tb-space-3); padding: var(--tb-space-3); border-color: var(--tb-color-border); border-radius: var(--tb-radius-lg); box-shadow: var(--tb-shadow-md); }
.tb-header-account .dropdown-menu > li > a { padding: var(--tb-space-3) var(--tb-space-4); border-radius: var(--tb-radius-sm); color: var(--tb-color-text); }
.tb-header-account .dropdown-menu > li > a:hover { background: var(--tb-color-surface-subtle); }
.tb-header-cart #cart { margin: 0; }
.tb-header-cart #cart > button { width: 4.75rem; }
.tb-header-cart .tb-cart-summary { display: block; max-width: 4.2rem; overflow: hidden; color: var(--tb-color-text-subtle); font-size: .625rem; text-overflow: ellipsis; white-space: nowrap; }
.tb-header-cart .dropdown-menu { right: 0; left: auto; width: min(25rem, calc(100vw - 2rem)); }
.tb-header-cart .dropdown-menu .table { margin-bottom: var(--tb-space-3); }

/* Catalog navigation */
.tb-catalog-nav { min-height: 0; margin: 0; border: 0; border-radius: 0; background: var(--tb-color-surface); }
.tb-catalog-nav .navbar-collapse { padding: var(--tb-space-3) 0 var(--tb-space-4); border-top: 1px solid var(--tb-color-border); box-shadow: none; }
.tb-catalog-nav .navbar-nav { display: flex; flex-wrap: wrap; float: none; margin: 0; gap: var(--tb-space-2); }
.tb-catalog-nav .navbar-nav > li { float: none; }
.tb-catalog-nav .navbar-nav > li > a { padding: var(--tb-space-3) var(--tb-space-4); border-radius: var(--tb-radius-pill); color: var(--tb-color-text); font-weight: var(--tb-font-weight-medium); line-height: 1.25; }
.tb-catalog-nav .navbar-nav > li > a:hover, .tb-catalog-nav .navbar-nav > li.open > a { background: var(--tb-color-surface-muted); color: var(--tb-color-text); }
.tb-catalog-nav .dropdown-menu { min-width: 20rem; padding: var(--tb-space-4); border-color: var(--tb-color-border); border-radius: var(--tb-radius-lg); box-shadow: var(--tb-shadow-md); }
.tb-catalog-nav .dropdown-inner { display: flex; gap: var(--tb-space-8); }
.tb-catalog-nav .dropdown-inner a, .tb-catalog-nav .see-all { display: block; padding: var(--tb-space-2) var(--tb-space-3); border-radius: var(--tb-radius-sm); color: var(--tb-color-text-muted); }
.tb-catalog-nav .dropdown-inner a:hover, .tb-catalog-nav .see-all:hover { background: var(--tb-color-surface-subtle); color: var(--tb-color-primary); }

/* Home */
.tb-home { background: var(--tb-color-surface); }
.tb-section { padding: var(--tb-section-space) 0; }
.tb-section--muted { background: var(--tb-color-surface-subtle); }
.tb-section-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: var(--tb-space-8); gap: var(--tb-space-5); }
.tb-section-heading h2, .tb-section-heading h3 { margin-bottom: 0; }
.tb-section-heading p { max-width: 36rem; margin: var(--tb-space-2) 0 0; }
.tb-section-link { flex: 0 0 auto; font-weight: var(--tb-font-weight-semibold); }
.tb-hero { padding: clamp(1.5rem, 4vw, 3.5rem) 0 var(--tb-section-space); }
.tb-hero-card { position: relative; display: grid; grid-template-columns: minmax(0,.92fr) minmax(22rem,1.08fr); align-items: center; min-height: clamp(34rem,52vw,42rem); overflow: hidden; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-2xl); background: var(--tb-color-surface-subtle); }
.tb-hero-card::after { position: absolute; right: -10%; bottom: -45%; width: 55%; padding-top: 55%; border-radius: 50%; background: var(--tb-color-primary-100); content: ""; opacity: .7; }
.tb-hero-copy { position: relative; z-index: 2; padding: clamp(2rem,5vw,5rem); }
.tb-eyebrow { display: inline-flex; align-items: center; margin-bottom: var(--tb-space-5); color: var(--tb-color-primary); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-bold); letter-spacing: .11em; text-transform: uppercase; }
.tb-eyebrow::before { width: 1.75rem; height: 2px; margin-right: var(--tb-space-3); background: currentColor; content: ""; }
.tb-hero-title { max-width: 10ch; margin-bottom: var(--tb-space-5) !important; font-size: var(--tb-font-size-4xl) !important; letter-spacing: -.055em !important; }
.tb-hero-lead { max-width: 34rem; margin-bottom: var(--tb-space-8); font-size: var(--tb-font-size-lg); }
.tb-hero-price { display: block; margin-bottom: var(--tb-space-5); color: var(--tb-color-text); font-size: var(--tb-font-size-2xl); font-weight: var(--tb-font-weight-semibold); }
.tb-hero-visual { position: relative; z-index: 2; display: grid; align-self: stretch; min-height: 30rem; padding: clamp(2rem,5vw,4.5rem); place-items: center; }
.tb-hero-visual img { width: 100%; height: 100%; max-height: 34rem; object-fit: contain; filter: drop-shadow(0 28px 35px rgba(15,23,42,.13)); }
.tb-trust { padding: 0 0 var(--tb-section-space); }
.tb-trust-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); border-top: 1px solid var(--tb-color-border); border-bottom: 1px solid var(--tb-color-border); }
.tb-trust-item { display: grid; grid-template-columns: 2.5rem 1fr; align-items: center; padding: var(--tb-space-6); gap: var(--tb-space-4); }
.tb-trust-item + .tb-trust-item { border-left: 1px solid var(--tb-color-border); }
.tb-trust-icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: var(--tb-radius-pill); background: var(--tb-color-primary-50); color: var(--tb-color-primary); }
.tb-trust-title, .tb-trust-text { display: block; }
.tb-trust-title { margin-bottom: .125rem; color: var(--tb-color-text); font-weight: var(--tb-font-weight-semibold); }
.tb-trust-text { color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); }
.tb-category-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--tb-space-5); }
.tb-category-card { position: relative; display: grid; grid-template-columns: minmax(0,1fr) minmax(8rem,42%); align-items: center; min-height: 13rem; overflow: hidden; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-subtle); color: var(--tb-color-text) !important; transition: border-color var(--tb-duration-normal) var(--tb-easing-standard), transform var(--tb-duration-normal) var(--tb-easing-standard), box-shadow var(--tb-duration-normal) var(--tb-easing-standard); }
.tb-category-card:hover { border-color: var(--tb-color-border-strong); box-shadow: var(--tb-shadow-md); transform: translateY(-3px); }
.tb-category-card-copy { position: relative; z-index: 2; padding: var(--tb-space-6); }
.tb-category-card-title { display: block; margin-bottom: var(--tb-space-3); font-size: var(--tb-font-size-xl); font-weight: var(--tb-font-weight-semibold); letter-spacing: -.025em; }
.tb-category-card-action { color: var(--tb-color-primary); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-semibold); }
.tb-category-card-media { align-self: stretch; min-width: 0; padding: var(--tb-space-4); }
.tb-category-card-media img { width: 100%; height: 100%; min-height: 11rem; object-fit: contain; mix-blend-mode: multiply; }
.tb-category-placeholder { display: grid; width: 100%; height: 100%; min-height: 11rem; place-items: center; border: 1px solid var(--tb-color-primary-100); border-radius: var(--tb-radius-lg); background: var(--tb-color-primary-50); color: var(--tb-color-primary); font-size: clamp(2.25rem,5vw,4rem); }

/* Product cards */
.tb-product-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: var(--tb-space-5); }
.tb-product-grid > .product-layout { float: none; width: auto; padding: 0; }
body.tb-storefront .product-thumb, .tb-product-card { position: relative; display: flex; height: 100%; min-height: 100%; flex-direction: column; overflow: hidden; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-raised); box-shadow: var(--tb-shadow-sm); transition: border-color var(--tb-duration-normal) var(--tb-easing-standard), box-shadow var(--tb-duration-normal) var(--tb-easing-standard), transform var(--tb-duration-normal) var(--tb-easing-standard); }
body.tb-storefront .product-thumb:hover, .tb-product-card:hover { border-color: var(--tb-color-border-strong); box-shadow: var(--tb-shadow-md); transform: translateY(-3px); }
body.tb-storefront .product-thumb .image, .tb-product-card .image { position: relative; display: grid; min-height: 17rem; padding: var(--tb-space-6); overflow: hidden; background: var(--tb-color-surface-subtle); place-items: center; }
body.tb-storefront .product-thumb .image a, .tb-product-card .image a { display: grid; width: 100%; height: 100%; place-items: center; }
body.tb-storefront .product-thumb .image img, .tb-product-card .image img { width: 100%; height: 15rem; object-fit: contain; mix-blend-mode: multiply; transition: transform var(--tb-duration-normal) var(--tb-easing-standard); }
body.tb-storefront .product-thumb:hover .image img, .tb-product-card:hover .image img { transform: scale(1.025); }
.tb-product-wishlist { position: absolute; top: var(--tb-space-4); right: var(--tb-space-4); z-index: 2; display: grid; width: 2.5rem; height: 2.5rem; padding: 0; place-items: center; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-pill); background: rgba(255,255,255,.9); color: var(--tb-color-text-muted); }
.tb-product-wishlist:hover, .tb-product-wishlist:focus { border-color: var(--tb-color-primary); color: var(--tb-color-primary); }
body.tb-storefront .product-thumb .caption, .tb-product-card .caption { display: flex; min-height: 0; flex: 1 1 auto; flex-direction: column; padding: var(--tb-space-5) var(--tb-space-5) var(--tb-space-4); }
body.tb-storefront .product-thumb .caption h4, .tb-product-card .caption h4 { min-height: 2.8em; margin-bottom: var(--tb-space-3); font-size: var(--tb-font-size-md); line-height: 1.4; }
body.tb-storefront .product-thumb .caption h4 a, .tb-product-card .caption h4 a { color: var(--tb-color-text); }
body.tb-storefront .product-thumb .caption > p:not(.price) { display: none; }
body.tb-storefront .product-thumb .price, .tb-product-card .price { margin: auto 0 0; color: var(--tb-color-text); font-size: var(--tb-font-size-xl); font-weight: var(--tb-font-weight-bold); letter-spacing: -.025em; }
body.tb-storefront .product-thumb .price-new, .tb-product-card .price-new { color: var(--tb-color-primary); font-weight: var(--tb-font-weight-bold); }
body.tb-storefront .product-thumb .price-old, .tb-product-card .price-old { margin-left: var(--tb-space-2); color: var(--tb-color-text-subtle); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-regular); }
body.tb-storefront .product-thumb .price-tax, .tb-product-card .price-tax { display: block; margin-top: var(--tb-space-1); color: var(--tb-color-text-subtle); font-size: var(--tb-font-size-xs); font-weight: var(--tb-font-weight-regular); }
body.tb-storefront .rating { margin-bottom: var(--tb-space-3); color: #d49b22; }
body.tb-storefront .rating .fa-stack { width: 1em; height: 1em; font-size: .8rem; line-height: 1em; }
body.tb-storefront .product-thumb .button-group, .tb-product-card .button-group { display: grid; grid-template-columns: minmax(0,1fr) repeat(2,3rem); padding: 0 var(--tb-space-5) var(--tb-space-5); gap: var(--tb-space-2); overflow: visible; border: 0; background: transparent; }
body.tb-storefront .tb-product-card .button-group { grid-template-columns: minmax(0,1fr) 3rem; }
body.tb-storefront .product-thumb .button-group button, .tb-product-card .button-group button { width: auto; min-height: var(--tb-control-height); padding: var(--tb-space-3); border: 1px solid var(--tb-color-primary); border-radius: var(--tb-radius-md); background: var(--tb-color-primary); color: var(--tb-color-text-inverse); font-weight: var(--tb-font-weight-semibold); line-height: 1.25; }
body.tb-storefront .product-thumb .button-group button:hover, .tb-product-card .button-group button:hover { border-color: var(--tb-color-primary-hover); background: var(--tb-color-primary-hover); color: var(--tb-color-text-inverse); }
body.tb-storefront .product-thumb .button-group button + button, .tb-product-card .button-group button + button { border-color: var(--tb-color-border); background: var(--tb-color-surface); color: var(--tb-color-text-muted); }
body.tb-storefront .product-thumb .button-group button + button:hover, .tb-product-card .button-group button + button:hover { border-color: var(--tb-color-primary); color: var(--tb-color-primary); }
body.tb-storefront .product-thumb .button-group button:nth-child(3) { display: block; }

/* Editorial and brands */
.tb-editorial-card { position: relative; display: grid; grid-template-columns: minmax(18rem,.7fr) minmax(0,1.3fr); align-items: stretch; min-height: 27rem; overflow: hidden; border-radius: var(--tb-radius-2xl); background: var(--tb-color-surface-inverse); }
.tb-editorial-copy { position: relative; z-index: 2; align-self: center; padding: clamp(2rem,5vw,4.5rem); }
.tb-editorial-card .tb-editorial-copy .tb-eyebrow, .tb-editorial-card .tb-editorial-copy h2, .tb-editorial-card .tb-editorial-copy p { color: var(--tb-color-text-inverse); }
.tb-editorial-copy p { opacity: .72; }
.tb-editorial-copy .btn { margin-top: var(--tb-space-4); border-color: var(--tb-color-surface); background: var(--tb-color-surface); color: var(--tb-color-text); }
.tb-editorial-media { position: relative; min-height: 24rem; overflow: hidden; }
.tb-editorial-media img { width: 100%; height: 100%; object-fit: cover; }
.tb-editorial-media::after { position: absolute; inset: 0; background: linear-gradient(90deg,var(--tb-color-surface-inverse),transparent 30%); content: ""; }
.tb-brand-strip { display: grid; grid-template-columns: repeat(6,minmax(0,1fr)); align-items: center; border-top: 1px solid var(--tb-color-border); border-bottom: 1px solid var(--tb-color-border); }
.tb-brand-item { display: grid; min-height: 8rem; padding: var(--tb-space-5); place-items: center; }
.tb-brand-item + .tb-brand-item { border-left: 1px solid var(--tb-color-border); }
.tb-brand-item img { width: auto; max-width: 8rem; height: 4rem; object-fit: contain; filter: grayscale(1); opacity: .62; transition: filter var(--tb-duration-normal) var(--tb-easing-standard), opacity var(--tb-duration-normal) var(--tb-easing-standard); }
.tb-brand-item:hover img { filter: grayscale(0); opacity: 1; }
.tb-service-card { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: center; padding: clamp(2rem,5vw,4rem); gap: var(--tb-space-8); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-subtle); }
.tb-service-card h2 { margin-bottom: var(--tb-space-3); }
.tb-service-card p { max-width: 48rem; margin-bottom: 0; }

/* Public page foundation */
#product-category, #product-search, #product-product, #product-special, #product-manufacturer, #information-information, #information-contact, #error-not-found, #checkout-cart, #account-login, #account-register, #account-account, #information-sitemap { padding-top: var(--tb-space-8); padding-bottom: var(--tb-section-space); }
body.tb-storefront .breadcrumb { display: flex; flex-wrap: wrap; align-items: center; margin: 0 0 var(--tb-space-8); padding: 0; gap: var(--tb-space-2); border: 0; background: transparent; font-size: var(--tb-font-size-sm); }
body.tb-storefront .breadcrumb > li { display: inline-flex; align-items: center; }
body.tb-storefront .breadcrumb > li + li::before { padding: 0 var(--tb-space-2) 0 0; color: var(--tb-color-text-subtle); content: "\f105"; font-family: FontAwesome; }
body.tb-storefront .breadcrumb > li::after { display: none; }
body.tb-storefront .breadcrumb a { color: var(--tb-color-text-muted); }
body.tb-storefront .panel, body.tb-storefront .well { padding: var(--tb-space-6); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: var(--tb-color-surface); box-shadow: var(--tb-shadow-sm); }
body.tb-storefront .panel-heading { margin: calc(var(--tb-space-6) * -1) calc(var(--tb-space-6) * -1) var(--tb-space-5); padding: var(--tb-space-4) var(--tb-space-6); border-color: var(--tb-color-border); border-radius: var(--tb-radius-lg) var(--tb-radius-lg) 0 0; background: var(--tb-color-surface-subtle); color: var(--tb-color-text); }
body.tb-storefront .list-group a { padding: var(--tb-space-3) var(--tb-space-4); border-color: var(--tb-color-border); color: var(--tb-color-text-muted); }
body.tb-storefront .list-group a.active, body.tb-storefront .list-group a.active:hover { border-color: var(--tb-color-primary); background: var(--tb-color-primary); color: var(--tb-color-text-inverse); }
body.tb-storefront .table { color: var(--tb-color-text); }
body.tb-storefront .table > thead > tr > td, body.tb-storefront .table > tbody > tr > td, body.tb-storefront .table > tfoot > tr > td, body.tb-storefront .table > thead > tr > th, body.tb-storefront .table > tbody > tr > th, body.tb-storefront .table > tfoot > tr > th { padding: var(--tb-space-4); border-color: var(--tb-color-border); vertical-align: middle; }
body.tb-storefront .alert { border-radius: var(--tb-radius-md); }
body.tb-storefront .pagination > li > a, body.tb-storefront .pagination > li > span { margin: 0 var(--tb-space-1); border-color: var(--tb-color-border); border-radius: var(--tb-radius-sm); color: var(--tb-color-text); }
body.tb-storefront .pagination > .active > a, body.tb-storefront .pagination > .active > span { border-color: var(--tb-color-primary); background: var(--tb-color-primary); color: var(--tb-color-text-inverse); }
#product-category #content > h2, #product-search #content > h1, #product-special #content > h2, #product-manufacturer #content > h2 { margin-bottom: var(--tb-space-8); }
#product-category #content > .row:first-of-type img.img-thumbnail { border: 0; border-radius: var(--tb-radius-lg); background: var(--tb-color-surface-subtle); }
#product-category #compare-total, #product-search #compare-total, #product-special #compare-total, #product-manufacturer #compare-total { color: var(--tb-color-text-muted); }
#product-category .input-group-addon, #product-search .input-group-addon, #product-special .input-group-addon, #product-manufacturer .input-group-addon { border-color: var(--tb-color-border); background: var(--tb-color-surface-subtle); color: var(--tb-color-text-muted); }

/* Catalog V1 */
.tb-catalog-page { min-height: 60vh; }
.tb-catalog-layout { display: grid; grid-template-columns: minmax(0,1fr); align-items: start; gap: var(--tb-space-8); }
.tb-catalog-layout.has-left { grid-template-columns: minmax(15rem,18rem) minmax(0,1fr); }
.tb-catalog-layout.has-right { grid-template-columns: minmax(0,1fr) minmax(15rem,18rem); }
.tb-catalog-layout.has-left.has-right { grid-template-columns: minmax(14rem,16rem) minmax(0,1fr) minmax(14rem,16rem); }
.tb-catalog-main { min-width: 0; }
.tb-catalog-sidebar { min-width: 0; }
.tb-catalog-sidebar > #column-left, .tb-catalog-sidebar > #column-right { float: none; width: 100%; padding: 0; }
.tb-catalog-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: var(--tb-space-8); gap: var(--tb-space-5); }
.tb-catalog-heading h1 { margin-bottom: 0; }
.tb-category-intro { display: grid; grid-template-columns: minmax(11rem,18rem) minmax(0,1fr); align-items: center; margin-bottom: var(--tb-space-10); overflow: hidden; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-subtle); }
.tb-category-intro__media { display: grid; min-height: 14rem; padding: var(--tb-space-6); place-items: center; background: var(--tb-color-surface-muted); }
.tb-category-intro__media img { width: 100%; height: 13rem; object-fit: contain; mix-blend-mode: multiply; }
.tb-category-intro__copy { max-height: 16rem; padding: clamp(1.5rem,4vw,3rem); overflow: auto; color: var(--tb-color-text-muted); }
.tb-category-intro__copy > :last-child { margin-bottom: 0; }
.tb-subcategories { margin-bottom: var(--tb-space-12); }
.tb-section-heading--compact { margin-bottom: var(--tb-space-5); }
.tb-section-heading--compact h2 { font-size: var(--tb-font-size-2xl); }
.tb-subcategory-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--tb-space-3); }
.tb-subcategory-card { display: grid; grid-template-columns: 2.5rem minmax(0,1fr) auto; align-items: center; min-height: 4.75rem; padding: var(--tb-space-3) var(--tb-space-4); gap: var(--tb-space-3); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: var(--tb-color-surface); color: var(--tb-color-text) !important; font-weight: var(--tb-font-weight-semibold); transition: border-color var(--tb-duration-fast) var(--tb-easing-standard), box-shadow var(--tb-duration-fast) var(--tb-easing-standard), transform var(--tb-duration-fast) var(--tb-easing-standard); }
.tb-subcategory-card:hover { border-color: var(--tb-color-border-strong); box-shadow: var(--tb-shadow-sm); transform: translateY(-2px); }
.tb-subcategory-card__icon { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: var(--tb-radius-md); background: var(--tb-color-primary-50); color: var(--tb-color-primary); }
.tb-subcategory-card > .fa-arrow-right { color: var(--tb-color-text-subtle); }
.tb-listing-heading { display: flex; align-items: baseline; justify-content: space-between; margin-bottom: var(--tb-space-5); gap: var(--tb-space-5); }
.tb-listing-heading h2 { margin-bottom: 0; font-size: var(--tb-font-size-2xl); }
.tb-listing-results, .tb-pagination-results { color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); }
.tb-listing-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--tb-space-6); padding: var(--tb-space-3); gap: var(--tb-space-4); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: var(--tb-color-surface-subtle); }
.tb-listing-primary-controls, .tb-listing-selects { display: flex; align-items: center; gap: var(--tb-space-3); }
.tb-listing-primary-controls #compare-total { margin: 0; padding-right: var(--tb-space-2); padding-left: var(--tb-space-2); }
.tb-view-toggle .btn { min-width: var(--tb-control-height); padding-right: var(--tb-space-3); padding-left: var(--tb-space-3); }
.tb-view-toggle .btn.active { border-color: var(--tb-color-primary); background: var(--tb-color-primary); color: var(--tb-color-text-inverse); }
.tb-field-inline { display: flex; align-items: center; margin: 0; gap: var(--tb-space-2); color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-medium); }
.tb-field-inline .form-control { width: auto; min-width: 9rem; }
.tb-filter-toggle { display: none; align-items: center; gap: var(--tb-space-2); }
.tb-filter-toggle[hidden] { display: none !important; }
.tb-catalog-grid { margin: 0; }
.tb-catalog-grid::before, .tb-catalog-grid::after { display: none; content: none; }
.tb-catalog-grid > .product-layout { float: none; width: auto; padding: 0; }
.tb-catalog-grid > .product-layout.product-list { grid-column: 1 / -1; }
.tb-catalog-grid > .product-layout.product-list .tb-product-card { display: grid; grid-template-columns: minmax(14rem,18rem) minmax(0,1fr); height: auto; }
.tb-catalog-grid > .product-layout.product-list .image { grid-column: 1; grid-row: 1 / span 2; }
.tb-catalog-grid > .product-layout.product-list .caption { grid-column: 2; padding-bottom: var(--tb-space-3); }
.tb-catalog-grid > .product-layout.product-list .button-group { grid-column: 2; width: min(23rem,100%); }
body.tb-storefront .tb-product-card .caption h3 { min-height: 2.8em; margin-bottom: var(--tb-space-3); font-size: var(--tb-font-size-lg); line-height: 1.4; }
body.tb-storefront .tb-product-card .caption h3 a { color: var(--tb-color-text); }
.tb-product-description { display: -webkit-box; margin-bottom: var(--tb-space-4); overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; }
.tb-product-actions button:first-child { display: inline-flex; align-items: center; justify-content: center; gap: var(--tb-space-2); }
.tb-pagination-row { display: flex; align-items: center; justify-content: space-between; margin-top: var(--tb-space-8); gap: var(--tb-space-5); }
.tb-pagination-row .pagination { margin: 0; }
.tb-empty-state { display: grid; min-height: 18rem; padding: var(--tb-space-10); place-items: center; align-content: center; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-subtle); text-align: center; }
.tb-empty-state > .fa { margin-bottom: var(--tb-space-4); color: var(--tb-color-primary); font-size: 2rem; }
.tb-empty-state h2 { margin-bottom: var(--tb-space-3); font-size: var(--tb-font-size-xl); }
.tb-empty-state p { margin-bottom: var(--tb-space-5); }
.tb-search-panel { margin-bottom: var(--tb-space-10); padding: clamp(1.25rem,3vw,2rem); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-subtle); }
.tb-search-panel h2 { margin-bottom: var(--tb-space-5); font-size: var(--tb-font-size-xl); }
.tb-search-fields { display: grid; grid-template-columns: minmax(14rem,1.5fr) minmax(13rem,1fr) minmax(13rem,auto) auto; align-items: end; gap: var(--tb-space-4); }
.tb-search-fields label { margin: 0; color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); }
.tb-search-fields label > span { display: block; margin-bottom: var(--tb-space-2); font-weight: var(--tb-font-weight-semibold); }
.tb-search-checks { display: grid; align-self: center; gap: var(--tb-space-2); }
.tb-search-checks .tb-check { display: flex; align-items: center; gap: var(--tb-space-2); }
.tb-search-checks .tb-check > span { display: inline; margin: 0; font-weight: var(--tb-font-weight-regular); }
.tb-search-checks input, .tb-filter-option input { width: 1.125rem; height: 1.125rem; margin: 0; accent-color: var(--tb-color-primary); }
.tb-filter-panel { overflow: hidden; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface); box-shadow: var(--tb-shadow-sm); }
.tb-filter-header { display: flex; align-items: center; justify-content: space-between; padding: var(--tb-space-5); border-bottom: 1px solid var(--tb-color-border); background: var(--tb-color-surface-subtle); }
.tb-filter-header h2 { margin: 0; font-size: var(--tb-font-size-lg); }
.tb-filter-close { display: none; width: 2.5rem; height: 2.5rem; padding: 0; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-pill); background: var(--tb-color-surface); color: var(--tb-color-text); }
.tb-filter-group { min-width: 0; margin: 0; padding: var(--tb-space-5); border: 0; }
.tb-filter-group + .tb-filter-group { border-top: 1px solid var(--tb-color-border); }
.tb-filter-group legend { width: 100%; margin: 0 0 var(--tb-space-3); padding: 0; border: 0; color: var(--tb-color-text); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-semibold); }
.tb-filter-option { display: flex; align-items: flex-start; margin: 0; padding: var(--tb-space-2) 0; gap: var(--tb-space-3); color: var(--tb-color-text-muted); font-weight: var(--tb-font-weight-regular); cursor: pointer; }
.tb-filter-option span { min-width: 0; overflow-wrap: anywhere; }
.tb-filter-footer { padding: var(--tb-space-5); border-top: 1px solid var(--tb-color-border); }
.tb-filter-footer .btn { width: 100%; }
.tb-filter-backdrop { display: none; }
.tb-brand-index { display: flex; align-items: center; margin-bottom: var(--tb-space-8); padding: var(--tb-space-4) var(--tb-space-5); gap: var(--tb-space-5); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: var(--tb-color-surface-subtle); }
.tb-brand-index > div { display: flex; flex-wrap: wrap; gap: var(--tb-space-2); }
.tb-brand-index a { display: grid; min-width: 2.5rem; min-height: 2.5rem; padding: var(--tb-space-2); place-items: center; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-sm); background: var(--tb-color-surface); color: var(--tb-color-text); font-weight: var(--tb-font-weight-semibold); }
.tb-brand-index a:hover { border-color: var(--tb-color-primary); color: var(--tb-color-primary); }
.tb-brand-directory { display: grid; gap: var(--tb-space-6); }
.tb-brand-group { display: grid; grid-template-columns: 5rem minmax(0,1fr); padding-bottom: var(--tb-space-6); gap: var(--tb-space-6); border-bottom: 1px solid var(--tb-color-border); scroll-margin-top: calc(var(--tb-header-height) + var(--tb-space-4)); }
.tb-brand-group h2 { margin: 0; color: var(--tb-color-primary); font-size: var(--tb-font-size-3xl); }
.tb-brand-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: var(--tb-space-3); }
.tb-brand-links a { display: flex; align-items: center; justify-content: space-between; min-height: 3.5rem; padding: var(--tb-space-3) var(--tb-space-4); gap: var(--tb-space-3); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-md); color: var(--tb-color-text); font-weight: var(--tb-font-weight-medium); }
.tb-brand-links a:hover { border-color: var(--tb-color-primary); color: var(--tb-color-primary); }
.tb-brand-links .fa { color: var(--tb-color-text-subtle); }

/* Product Page V1 */
#product-product .tb-product-layout { margin-right: 0; margin-left: 0; }
#product-product .tb-product-layout > #content { min-width: 0; padding-right: 0; padding-left: 0; }
.tb-product-hero { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(23rem,.72fr); align-items: start; gap: clamp(1.5rem,4vw,4rem); }
.tb-product-gallery { min-width: 0; }
.tb-product-gallery__stage { position: relative; display: grid; width: 100%; aspect-ratio: 1 / 1; padding: clamp(1.5rem,4vw,3.5rem); overflow: hidden; place-items: center; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-subtle); color: var(--tb-color-text-muted); }
.tb-product-gallery__stage:hover, .tb-product-gallery__stage:focus { border-color: var(--tb-color-border-interactive); color: var(--tb-color-primary); }
.tb-product-gallery__stage img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.tb-product-gallery__zoom { position: absolute; right: var(--tb-space-5); bottom: var(--tb-space-5); display: grid; width: 3rem; height: 3rem; place-items: center; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-pill); background: rgba(255,255,255,.94); box-shadow: var(--tb-shadow-sm); }
.tb-product-gallery__fallback { gap: var(--tb-space-3); color: var(--tb-color-text-subtle); font-weight: var(--tb-font-weight-medium); }
.tb-product-gallery__fallback i { font-size: clamp(3rem,8vw,6rem); }
.tb-product-gallery__thumbs { display: flex; flex-wrap: wrap; margin: var(--tb-space-4) 0 0; padding: 0; gap: var(--tb-space-3); list-style: none; }
.tb-product-gallery__thumb { display: grid; width: 5.5rem; height: 5.5rem; padding: var(--tb-space-2); place-items: center; overflow: hidden; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-md); background: var(--tb-color-surface); transition: border-color var(--tb-duration-fast) var(--tb-easing-standard), box-shadow var(--tb-duration-fast) var(--tb-easing-standard); }
.tb-product-gallery__thumb:hover, .tb-product-gallery__thumb:focus, .tb-product-gallery__thumb.is-active { border-color: var(--tb-color-primary); box-shadow: 0 0 0 2px var(--tb-color-primary-100); }
.tb-product-gallery__thumb img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.tb-product-summary { min-width: 0; padding: clamp(1.5rem,3vw,2.5rem); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface); box-shadow: var(--tb-shadow-sm); }
.tb-product-summary__topline { display: flex; align-items: flex-start; justify-content: space-between; margin-bottom: var(--tb-space-4); gap: var(--tb-space-4); }
.tb-product-brand { display: inline-flex; align-items: center; min-height: 2.5rem; padding: var(--tb-space-2) var(--tb-space-4); border-radius: var(--tb-radius-pill); background: var(--tb-color-primary-50); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-semibold); }
.tb-product-quick-actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: var(--tb-space-2); }
.tb-product-quick-actions .btn { display: inline-flex; align-items: center; min-height: 2.75rem; padding: var(--tb-space-2) var(--tb-space-3); gap: var(--tb-space-2); font-size: var(--tb-font-size-sm); }
.tb-product-summary h1 { margin-bottom: var(--tb-space-5); font-size: clamp(2rem,4vw,3.25rem); overflow-wrap: anywhere; }
.tb-product-meta { display: flex; flex-wrap: wrap; margin: 0 0 var(--tb-space-4); gap: var(--tb-space-2) var(--tb-space-5); color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); }
.tb-product-meta > div { display: inline-flex; gap: var(--tb-space-2); }
.tb-product-meta dt { font-weight: var(--tb-font-weight-regular); }
.tb-product-meta dd { margin: 0; color: var(--tb-color-text); font-weight: var(--tb-font-weight-semibold); }
.tb-product-meta dd.is-available { color: var(--tb-color-success); }
.tb-product-meta dd.is-unavailable { color: var(--tb-color-danger); }
.tb-product-rating { display: flex; flex-wrap: wrap; align-items: center; margin-bottom: var(--tb-space-5); gap: var(--tb-space-2); font-size: var(--tb-font-size-sm); }
.tb-product-rating .rating { display: inline-flex; margin: 0; }
.tb-product-offer { padding-top: var(--tb-space-5); border-top: 1px solid var(--tb-color-border); }
.tb-product-price { display: flex; flex-wrap: wrap; align-items: baseline; margin-bottom: var(--tb-space-5); gap: var(--tb-space-2) var(--tb-space-4); }
.tb-product-price__current { color: var(--tb-color-text); font-size: clamp(2rem,4vw,3rem); font-weight: var(--tb-font-weight-bold); letter-spacing: -.04em; line-height: 1; }
.tb-product-price__current--special { color: var(--tb-color-primary); }
.tb-product-price__old { color: var(--tb-color-text-subtle); font-size: var(--tb-font-size-lg); text-decoration: line-through; }
.tb-product-price__tax, .tb-product-price__points { flex-basis: 100%; color: var(--tb-color-text-subtle); font-size: var(--tb-font-size-sm); }
.tb-product-discounts { margin: 0 0 var(--tb-space-5); padding: var(--tb-space-4); border-radius: var(--tb-radius-md); background: var(--tb-color-surface-subtle); color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); list-style: none; }
.tb-product-discounts li + li { margin-top: var(--tb-space-2); }
.tb-purchase-panel__title { margin: 0 0 var(--tb-space-4); font-size: var(--tb-font-size-xl); }
.tb-product-options { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--tb-space-4); }
.tb-product-options .form-group { min-width: 0; margin: 0; }
.tb-product-options .form-group:has(textarea), .tb-product-options fieldset, .tb-product-options .form-group:has(.btn-block) { grid-column: 1 / -1; }
.tb-product-options fieldset { padding: 0; border: 0; }
.tb-product-options .control-label, .tb-product-recurring .control-label { display: block; margin-bottom: var(--tb-space-2); color: var(--tb-color-text); font-size: var(--tb-font-size-sm); }
.tb-product-options legend.control-label { width: auto; border: 0; line-height: inherit; }
.tb-option-choices { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--tb-space-2); }
.tb-option-choice { display: flex; align-items: center; min-height: 3rem; margin: 0; padding: var(--tb-space-2) var(--tb-space-3); gap: var(--tb-space-3); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-md); color: var(--tb-color-text); cursor: pointer; font-weight: var(--tb-font-weight-medium); }
.tb-option-choice:hover { border-color: var(--tb-color-border-interactive); background: var(--tb-color-primary-50); }
.tb-option-choice input { flex: 0 0 auto; margin: 0; }
.tb-option-choice img { width: 2.5rem; height: 2.5rem; object-fit: contain; }
.tb-option-choice small { color: var(--tb-color-text-muted); font-weight: var(--tb-font-weight-regular); }
.tb-product-recurring { margin-top: var(--tb-space-5); }
.tb-purchase-actions { display: grid; grid-template-columns: minmax(9.5rem,.6fr) minmax(10rem,1.4fr); align-items: end; margin-top: var(--tb-space-6); gap: var(--tb-space-3); }
.tb-quantity-field .control-label { display: block; margin-bottom: var(--tb-space-2); color: var(--tb-color-text); font-size: var(--tb-font-size-sm); }
.tb-quantity-control { display: grid; grid-template-columns: 3rem minmax(3.5rem,1fr) 3rem; }
.tb-quantity-control .form-control { height: 3.25rem; padding-right: var(--tb-space-2); padding-left: var(--tb-space-2); border-right: 0; border-left: 0; border-radius: 0; text-align: center; }
.tb-quantity-button { min-height: 3.25rem; padding: 0; border: 1px solid var(--tb-color-border); background: var(--tb-color-surface); color: var(--tb-color-text); }
.tb-quantity-button:first-child { border-radius: var(--tb-radius-md) 0 0 var(--tb-radius-md); }
.tb-quantity-button:last-child { border-radius: 0 var(--tb-radius-md) var(--tb-radius-md) 0; }
.tb-quantity-button:hover, .tb-quantity-button:focus { border-color: var(--tb-color-primary); color: var(--tb-color-primary); }
#product-product #button-cart { min-height: 3.25rem; font-size: var(--tb-font-size-lg); }
.tb-product-minimum { margin: var(--tb-space-3) 0 0; color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); }
.tb-product-minimum i { margin-right: var(--tb-space-2); color: var(--tb-color-primary); }
.tb-product-services { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); margin-top: clamp(2rem,5vw,4rem); border-top: 1px solid var(--tb-color-border); border-bottom: 1px solid var(--tb-color-border); }
.tb-product-service { display: grid; grid-template-columns: 2.5rem minmax(0,1fr); align-items: center; padding: var(--tb-space-5); gap: var(--tb-space-3); }
.tb-product-service + .tb-product-service { border-left: 1px solid var(--tb-color-border); }
.tb-product-service > i { display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: var(--tb-radius-pill); background: var(--tb-color-primary-50); color: var(--tb-color-primary); }
.tb-product-service strong, .tb-product-service small { display: block; }
.tb-product-service strong { margin-bottom: var(--tb-space-1); color: var(--tb-color-text); font-size: var(--tb-font-size-sm); }
.tb-product-service small { color: var(--tb-color-text-muted); line-height: 1.4; }
.tb-product-details-nav { display: flex; flex-wrap: wrap; margin: var(--tb-section-space) 0 var(--tb-space-8); padding-bottom: var(--tb-space-4); gap: var(--tb-space-2); border-bottom: 1px solid var(--tb-color-border); }
.tb-product-details-nav a { display: inline-flex; align-items: center; min-height: 2.75rem; padding: var(--tb-space-2) var(--tb-space-5); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-pill); color: var(--tb-color-text-muted); font-weight: var(--tb-font-weight-semibold); }
.tb-product-details-nav a:hover, .tb-product-details-nav a:focus { border-color: var(--tb-color-primary); background: var(--tb-color-primary-50); color: var(--tb-color-primary); }
.tb-product-details { display: grid; gap: var(--tb-space-12); }
.tb-product-detail-section { min-width: 0; scroll-margin-top: calc(var(--tb-header-height) + var(--tb-space-8)); }
.tb-product-detail-section > h2 { margin-bottom: var(--tb-space-6); }
.tb-product-description { max-width: 72rem; color: var(--tb-color-text-muted); line-height: var(--tb-line-height-relaxed); overflow-wrap: anywhere; }
.tb-product-description :where(img,video,iframe,table) { max-width: 100%; }
.tb-product-description img { height: auto; }
.tb-product-description table { display: block; width: 100%; overflow-x: auto; }
.tb-product-description :where(h1,h2,h3,h4,h5,h6) { margin-top: var(--tb-space-8); }
.tb-product-description :where(ul,ol) { padding-left: var(--tb-space-6); }
.tb-attribute-groups { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--tb-space-5); }
.tb-attribute-group { min-width: 0; padding: var(--tb-space-6); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: var(--tb-color-surface); }
.tb-attribute-group h3 { margin-bottom: var(--tb-space-4); font-size: var(--tb-font-size-lg); }
.tb-attribute-group dl { margin: 0; }
.tb-attribute-group dl > div { display: grid; grid-template-columns: minmax(8rem,.8fr) minmax(0,1.2fr); padding: var(--tb-space-3) 0; gap: var(--tb-space-4); border-top: 1px solid var(--tb-color-border); }
.tb-attribute-group dt { color: var(--tb-color-text-muted); font-weight: var(--tb-font-weight-medium); }
.tb-attribute-group dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.tb-review-list { margin-bottom: var(--tb-space-8); }
.tb-review-list .table { overflow: hidden; border-color: var(--tb-color-border); border-radius: var(--tb-radius-md); }
.tb-review-form { max-width: 48rem; padding: var(--tb-space-6); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: var(--tb-color-surface-subtle); }
.tb-review-form h3 { margin-bottom: var(--tb-space-5); }
.tb-review-form fieldset { padding: 0; border: 0; }
.tb-review-form legend { width: auto; border: 0; font-size: var(--tb-font-size-sm); }
.tb-review-rating { display: flex; flex-wrap: wrap; align-items: center; gap: var(--tb-space-2); }
.tb-review-rating label { position: relative; display: grid; width: 2.75rem; height: 2.75rem; margin: 0; place-items: center; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-pill); background: var(--tb-color-surface); cursor: pointer; }
.tb-review-rating label:has(input:checked) { border-color: var(--tb-color-primary); background: var(--tb-color-primary); color: var(--tb-color-text-inverse); }
.tb-review-rating input { position: absolute; inset: 0; margin: 0; opacity: 0; cursor: pointer; }
.tb-review-rating input:focus-visible + span { outline: 3px solid var(--tb-color-focus-ring); outline-offset: 4px; }
.tb-review-rating__edge { color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); }
.tb-related-products { margin-top: var(--tb-section-space); }
.tb-related-products .tb-section-heading { margin-bottom: var(--tb-space-8); }
.tb-product-tags { display: flex; flex-wrap: wrap; align-items: center; margin-top: var(--tb-space-8); gap: var(--tb-space-2); }
.tb-product-tags a { padding: var(--tb-space-2) var(--tb-space-3); border-radius: var(--tb-radius-pill); background: var(--tb-color-surface-subtle); font-size: var(--tb-font-size-sm); }
.tb-product-sticky { display: none; }

/* Cart and account */
#checkout-cart .table-responsive { border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); }
#checkout-cart .table-responsive .table { margin-bottom: 0; }
#account-login .well { min-height: 100%; }
#account-login #content > .row { display: flex; flex-wrap: wrap; }
#account-login #content > .row > div { display: flex; }
#account-login #content > .row .well { width: 100%; }

/* Footer */
.tb-site-footer { padding: var(--tb-section-space) 0 var(--tb-space-8); border-top: 1px solid rgba(255,255,255,.08); background: var(--tb-color-surface-inverse); color: rgba(255,255,255,.72); }
.tb-footer-grid { display: grid; grid-template-columns: minmax(16rem,1.4fr) repeat(3,minmax(10rem,1fr)); gap: clamp(2rem,5vw,5rem); }
.tb-footer-brand .tb-brand { margin-bottom: var(--tb-space-5); color: var(--tb-color-text-inverse) !important; }
.tb-footer-brand p { max-width: 25rem; margin: 0; color: rgba(255,255,255,.58); }
.tb-footer-column h5 { margin-bottom: var(--tb-space-5); color: var(--tb-color-text-inverse); font-size: var(--tb-font-size-sm); letter-spacing: .08em; text-transform: uppercase; }
.tb-footer-column ul { margin: 0; }
.tb-footer-column li + li { margin-top: var(--tb-space-3); }
.tb-site-footer .tb-footer-column a { color: rgba(255,255,255,.66); }
.tb-site-footer .tb-footer-column a:hover { color: var(--tb-color-text-inverse); }
.tb-footer-bottom { display: flex; align-items: center; justify-content: space-between; margin-top: var(--tb-space-12); padding-top: var(--tb-space-6); gap: var(--tb-space-5); border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.46); font-size: var(--tb-font-size-sm); }
.tb-footer-bottom a { color: rgba(255,255,255,.66); }

/* Laptop */
@media (max-width: 1199px) {
  .tb-header-grid { grid-template-columns: auto auto minmax(12rem,1fr) auto; gap: var(--tb-space-3); }
  .tb-header-action, .tb-account-toggle, .tb-header-cart #cart > button { width: 3.25rem; }
  .tb-header-action span, .tb-account-toggle span, .tb-header-cart .tb-cart-label, .tb-header-cart .tb-cart-summary { display: none; }
  .tb-header-cart #cart > button { width: 3.25rem; }
  .tb-product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .tb-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-brand-strip { grid-template-columns: repeat(4,minmax(0,1fr)); }
  .tb-brand-item:nth-child(5) { border-left: 0; }
  .tb-footer-grid { grid-template-columns: 1.4fr repeat(3,1fr); gap: var(--tb-space-8); }
  .tb-subcategory-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-search-fields { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-search-fields #button-search { justify-self: start; }
  .tb-brand-links { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-product-hero { grid-template-columns: minmax(0,1fr) minmax(21rem,.82fr); gap: var(--tb-space-6); }
  .tb-product-summary { padding: var(--tb-space-6); }
  .tb-product-quick-actions .btn span { display: none; }
}

/* Tablet */
@media (max-width: 991px) {
  .tb-utility-meta .tb-utility-note { display: none; }
  .tb-header-grid { grid-template-columns: auto minmax(9rem,auto) minmax(12rem,1fr) auto; }
  .tb-catalog-trigger span { display: none; }
  .tb-catalog-trigger { width: var(--tb-control-height); padding: 0; }
  .tb-header-action--wishlist, .tb-header-action--compare { display: none; }
  .tb-hero-card { grid-template-columns: minmax(0,1fr) minmax(18rem,.85fr); min-height: 34rem; }
  .tb-hero-visual { min-height: 25rem; padding-left: 0; }
  .tb-trust-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-trust-item:nth-child(3) { border-left: 0; border-top: 1px solid var(--tb-color-border); }
  .tb-trust-item:nth-child(4) { border-top: 1px solid var(--tb-color-border); }
  .tb-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-editorial-card { grid-template-columns: 1fr 1fr; }
  .tb-product-hero { grid-template-columns: minmax(0,1fr) minmax(19rem,.9fr); }
  .tb-product-options, .tb-option-choices { grid-template-columns: 1fr; }
  .tb-product-services { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-product-service:nth-child(3) { border-top: 1px solid var(--tb-color-border); border-left: 0; }
  .tb-product-service:nth-child(4) { border-top: 1px solid var(--tb-color-border); }
  .tb-footer-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .tb-footer-brand { grid-column: 1 / -1; }
  .tb-catalog-layout, .tb-catalog-layout.has-left, .tb-catalog-layout.has-right, .tb-catalog-layout.has-left.has-right { display: block; }
  .tb-catalog-sidebar { margin-bottom: var(--tb-space-5); }
  .tb-catalog-sidebar > #column-left { display: contents !important; }
  .tb-catalog-sidebar > #column-left > :not(.tb-filter-panel):not(.tb-filter-backdrop) { display: none !important; }
  .tb-filter-toggle { display: inline-flex; }
  .tb-listing-toolbar { align-items: stretch; flex-direction: column; }
  .tb-listing-primary-controls { flex-wrap: wrap; }
  .tb-listing-selects { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-field-inline { align-items: stretch; flex-direction: column; }
  .tb-field-inline .form-control { width: 100%; min-width: 0; }
  .tb-filter-panel { position: fixed; top: 0; bottom: 0; left: 0; z-index: 1200; width: min(23rem,calc(100vw - 2.5rem)); overflow-y: auto; border: 0; border-radius: 0 var(--tb-radius-xl) var(--tb-radius-xl) 0; box-shadow: var(--tb-shadow-lg); transform: translateX(-105%); transition: transform var(--tb-duration-normal) var(--tb-easing-standard); }
  .tb-filter-panel.is-open { transform: translateX(0); }
  .tb-filter-close { display: grid; place-items: center; }
  .tb-filter-backdrop:not([hidden]) { position: fixed; inset: 0; z-index: 1190; display: block; border: 0; background: rgba(13,21,37,.48); }
  body.tb-filter-open { overflow: hidden; }
}

/* Mobile */
@media (max-width: 767px) {
  :root { --tb-container-gutter: 1rem; --tb-section-space: 3.75rem; }
  .tb-utility-bar { display: none; }
  .tb-site-header { position: relative; }
  .tb-header-grid { grid-template-columns: auto minmax(0,1fr) auto; min-height: auto; padding: var(--tb-space-3) 0; gap: var(--tb-space-3); }
  .tb-menu-toggle { display: inline-flex; grid-column: 1; grid-row: 1; }
  .tb-catalog-trigger { display: none; }
  .tb-brand { grid-column: 2; grid-row: 1; justify-self: center; font-size: 1rem; letter-spacing: .09em; }
  .tb-brand-mark { width: 2rem; height: 2rem; font-size: 1.4rem; }
  .tb-header-search { grid-column: 1 / -1; grid-row: 2; }
  .tb-header-actions { grid-column: 3; grid-row: 1; gap: 0; }
  .tb-account-toggle, .tb-header-cart #cart > button { width: 2.75rem; min-height: 2.75rem; padding: var(--tb-space-2); }
  .tb-header-cart #cart > button { width: 2.75rem; }
  .tb-header-account .dropdown-menu { right: -3rem; }
  .tb-header-cart .dropdown-menu { position: fixed; top: 4rem; right: 1rem; left: 1rem; width: auto; }
  .tb-catalog-nav .container { padding: 0; }
  .tb-catalog-nav .navbar-collapse { max-height: calc(100vh - 8rem); padding: var(--tb-space-3) var(--tb-container-gutter) var(--tb-space-5); overflow-y: auto; }
  .tb-catalog-nav .navbar-nav { display: block; }
  .tb-catalog-nav .navbar-nav > li > a { padding: var(--tb-space-4); border-radius: var(--tb-radius-md); }
  .tb-catalog-nav .navbar-nav .open .dropdown-menu { position: static; width: 100%; min-width: 0; padding: 0 var(--tb-space-4) var(--tb-space-3); border: 0; box-shadow: none; }
  .tb-catalog-nav .dropdown-inner { display: block; }
  .tb-hero { padding-top: var(--tb-space-4); }
  .tb-hero-card { grid-template-columns: 1fr; min-height: 0; }
  .tb-hero-copy { padding: var(--tb-space-8) var(--tb-space-6) 0; }
  .tb-hero-title { max-width: 12ch; font-size: clamp(2.25rem,12vw,3.5rem) !important; }
  .tb-hero-lead { font-size: var(--tb-font-size-md); }
  .tb-hero-visual { min-height: 18rem; padding: var(--tb-space-5) var(--tb-space-6) var(--tb-space-8); }
  .tb-hero-visual img { max-height: 20rem; }
  .tb-trust-grid { grid-template-columns: 1fr; }
  .tb-trust-item { padding: var(--tb-space-4) var(--tb-space-2); }
  .tb-trust-item + .tb-trust-item { border-top: 1px solid var(--tb-color-border); border-left: 0; }
  .tb-section-heading { align-items: flex-start; flex-direction: column; margin-bottom: var(--tb-space-6); }
  .tb-category-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--tb-space-3); }
  .tb-category-card { grid-template-columns: 1fr; min-height: 15rem; }
  .tb-category-card-copy { padding: var(--tb-space-4) var(--tb-space-4) 0; }
  .tb-category-card-title { font-size: var(--tb-font-size-md); }
  .tb-category-card-media { min-height: 8rem; padding: var(--tb-space-2) var(--tb-space-4) var(--tb-space-4); }
  .tb-category-card-media img { min-height: 7rem; }
  .tb-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--tb-space-3); }
  body.tb-storefront .product-thumb .image, .tb-product-card .image { min-height: 11rem; padding: var(--tb-space-4); }
  body.tb-storefront .product-thumb .image img, .tb-product-card .image img { height: 10rem; }
  body.tb-storefront .product-thumb .caption, .tb-product-card .caption { padding: var(--tb-space-4) var(--tb-space-4) var(--tb-space-3); }
  body.tb-storefront .product-thumb .caption h4, .tb-product-card .caption h4 { min-height: 0; font-size: var(--tb-font-size-sm); }
  body.tb-storefront .product-thumb .caption > p:not(.price), body.tb-storefront .product-thumb .rating { display: none; }
  body.tb-storefront .product-thumb .price, .tb-product-card .price { font-size: var(--tb-font-size-md); }
  body.tb-storefront .product-thumb .button-group, .tb-product-card .button-group { grid-template-columns: minmax(0,1fr) 2.75rem; padding: 0 var(--tb-space-4) var(--tb-space-4); }
  body.tb-storefront .product-thumb:not(.tb-product-card) .button-group { grid-template-columns: minmax(0,1fr) repeat(2,2.75rem); }
  body.tb-storefront .product-thumb .button-group button span:not(.tb-icon-label), .tb-product-card .button-group button span:not(.tb-icon-label) { display: inline; }
  .tb-product-wishlist { top: var(--tb-space-3); right: var(--tb-space-3); width: 2.25rem; height: 2.25rem; }
  .tb-editorial-card { grid-template-columns: 1fr; }
  .tb-editorial-copy { padding: var(--tb-space-8) var(--tb-space-6); }
  .tb-editorial-media { min-height: 15rem; }
  .tb-editorial-media::after { background: linear-gradient(180deg,var(--tb-color-surface-inverse),transparent 35%); }
  .tb-brand-strip { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-brand-item:nth-child(odd) { border-left: 0; }
  .tb-brand-item:nth-child(n+3) { border-top: 1px solid var(--tb-color-border); }
  .tb-service-card { grid-template-columns: 1fr; padding: var(--tb-space-8) var(--tb-space-6); }
  body.tb-storefront .breadcrumb { margin-bottom: var(--tb-space-6); overflow: hidden; white-space: nowrap; }
  body.tb-storefront .breadcrumb > li:last-child { min-width: 0; overflow: hidden; text-overflow: ellipsis; }
  #product-category .col-xs-6, #product-search .col-xs-6, #product-special .col-xs-6, #product-manufacturer .col-xs-6 { width: 100%; }
  #product-product > .row { margin-right: 0; margin-left: 0; }
  #product-product > .row > #content { float: none; width: 100%; padding-right: 0; padding-left: 0; }
  .tb-product-hero { grid-template-columns: 1fr; }
  .tb-product-gallery__stage { max-height: calc(100vh - 9rem); min-height: 18rem; }
  .tb-product-gallery__thumb { width: 4.75rem; height: 4.75rem; }
  .tb-product-summary { padding: var(--tb-space-5); }
  .tb-product-summary h1 { font-size: clamp(2rem,10vw,3rem); }
  body.tb-storefront .tb-product-quick-actions .btn { width: 44px; min-height: 44px; padding: 0; justify-content: center; }
  body.tb-storefront .tb-product-options .form-control, body.tb-storefront .tb-product-recurring .form-control { min-height: 44px; }
  .tb-option-choice { min-height: 44px; }
  .tb-quantity-control { grid-template-columns: 44px minmax(3.5rem,1fr) 44px; }
  .tb-quantity-control .form-control, .tb-quantity-button { height: 44px; min-height: 44px; }
  #product-product #button-cart { min-height: 44px; }
  .tb-product-services { margin-top: var(--tb-space-8); }
  .tb-product-details-nav { margin-top: var(--tb-space-12); }
  .tb-product-details-nav a { min-height: 44px; }
  .tb-attribute-groups { grid-template-columns: 1fr; }
  .tb-review-rating label { width: 44px; height: 44px; }
  .tb-product-sticky:not([hidden]) { position: fixed; right: var(--tb-space-3); bottom: calc(var(--tb-space-3) + env(safe-area-inset-bottom)); left: var(--tb-space-3); z-index: 1050; display: flex; align-items: center; justify-content: space-between; min-height: 4.25rem; padding: var(--tb-space-3); gap: var(--tb-space-3); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: rgba(255,255,255,.97); box-shadow: var(--tb-shadow-lg); }
  .tb-product-sticky__price { min-width: 0; overflow: hidden; color: var(--tb-color-text); font-size: var(--tb-font-size-lg); font-weight: var(--tb-font-weight-bold); text-overflow: ellipsis; white-space: nowrap; }
  body.tb-storefront .tb-product-sticky .btn { flex: 0 0 auto; min-height: 44px; }
  #account-login #content > .row { display: block; }
  #account-login #content > .row > div { display: block; margin-bottom: var(--tb-space-5); }
  .tb-footer-grid { grid-template-columns: repeat(2,minmax(0,1fr)); gap: var(--tb-space-8) var(--tb-space-5); }
  .tb-footer-brand { grid-column: 1 / -1; }
  .tb-footer-bottom { align-items: flex-start; flex-direction: column; }
  .tb-catalog-heading { align-items: flex-start; flex-direction: column; margin-bottom: var(--tb-space-6); }
  .tb-catalog-heading h1 { font-size: clamp(2rem,10vw,3rem); }
  .tb-category-intro { grid-template-columns: 1fr; }
  .tb-category-intro__media { min-height: 11rem; }
  .tb-category-intro__media img { height: 10rem; }
  .tb-subcategory-grid { grid-template-columns: 1fr; }
  .tb-listing-heading { align-items: flex-start; flex-direction: column; gap: var(--tb-space-2); }
  .tb-catalog-grid > .product-layout.product-list .tb-product-card { grid-template-columns: minmax(8rem,35%) minmax(0,1fr); }
  .tb-catalog-grid > .product-layout.product-list .image { min-height: 100%; padding: var(--tb-space-3); }
  .tb-catalog-grid > .product-layout.product-list .image img { height: 9rem; }
  .tb-catalog-grid > .product-layout.product-list .caption { padding: var(--tb-space-4); }
  .tb-catalog-grid > .product-layout.product-list .caption h3 { font-size: var(--tb-font-size-sm); }
  .tb-catalog-grid > .product-layout.product-list .button-group { padding: 0 var(--tb-space-4) var(--tb-space-4); }
  .tb-search-fields { grid-template-columns: 1fr; }
  .tb-search-fields #button-search { width: 100%; }
  .tb-pagination-row { align-items: flex-start; flex-direction: column; }
  .tb-brand-index { align-items: flex-start; flex-direction: column; }
  .tb-brand-group { grid-template-columns: 3rem minmax(0,1fr); gap: var(--tb-space-4); }
  .tb-brand-links { grid-template-columns: 1fr; }
}

@media (max-width: 359px) {
  .tb-brand-text { display: none; }
  .tb-category-grid, .tb-product-grid { grid-template-columns: 1fr; }
  .tb-category-card { grid-template-columns: minmax(0,1fr) 42%; min-height: 10rem; }
  .tb-category-card-media img { min-height: 8rem; }
  .tb-footer-grid { grid-template-columns: 1fr; }
  .tb-footer-brand { grid-column: auto; }
  .tb-listing-selects { grid-template-columns: 1fr; }
  .tb-catalog-grid > .product-layout.product-list .tb-product-card { grid-template-columns: 1fr; }
  .tb-catalog-grid > .product-layout.product-list .image, .tb-catalog-grid > .product-layout.product-list .caption, .tb-catalog-grid > .product-layout.product-list .button-group { grid-column: 1; grid-row: auto; }
  .tb-brand-group { grid-template-columns: 1fr; }
  .tb-product-summary__topline { align-items: flex-start; flex-direction: column; }
  .tb-product-quick-actions { justify-content: flex-start; }
  .tb-product-options, .tb-option-choices, .tb-purchase-actions { grid-template-columns: 1fr; }
  .tb-product-services { grid-template-columns: 1fr; }
  .tb-product-service + .tb-product-service { border-top: 1px solid var(--tb-color-border); border-left: 0; }
  .tb-attribute-group { padding: var(--tb-space-4); }
  .tb-attribute-group dl > div { grid-template-columns: 1fr; gap: var(--tb-space-1); }
  .tb-review-form { padding: var(--tb-space-4); }
  .tb-review-rating__edge { flex-basis: 100%; }
}

/* Cart + Checkout V1 */
.tb-cart-page, .tb-checkout-page, .tb-state-page { padding-bottom: var(--tb-space-20); }
.tb-cart-content, .tb-checkout-content { min-width: 0; }
.tb-cart-heading, .tb-checkout-heading { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: var(--tb-space-8); gap: var(--tb-space-4); }
.tb-cart-heading h1, .tb-checkout-heading h1 { margin: 0; }
.tb-cart-weight { flex: 0 0 auto; padding: var(--tb-space-2) var(--tb-space-4); border-radius: var(--tb-radius-pill); background: var(--tb-color-surface-muted); color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-semibold); }
.tb-cart-layout { display: grid; grid-template-columns: minmax(0,1fr) minmax(19rem,22rem); align-items: start; gap: var(--tb-space-6); }
.tb-cart-items, .tb-cart-order-summary { min-width: 0; }
.tb-cart-form { display: grid; gap: var(--tb-space-4); }
.tb-cart-item { display: grid; grid-template-columns: 7.5rem minmax(10rem,1fr) minmax(6.5rem,.6fr) minmax(9rem,.7fr) minmax(7rem,.65fr); align-items: center; min-width: 0; padding: var(--tb-space-5); gap: var(--tb-space-5); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface); box-shadow: var(--tb-shadow-sm); }
.tb-cart-item__media { display: grid; width: 7.5rem; height: 7.5rem; place-items: center; overflow: hidden; border-radius: var(--tb-radius-lg); background: var(--tb-color-surface-subtle); color: var(--tb-color-primary); font-size: var(--tb-font-size-3xl); }
.tb-cart-item__media a { display: grid; width: 100%; height: 100%; padding: var(--tb-space-3); place-items: center; }
.tb-cart-item__media img { width: 100%; height: 100%; object-fit: contain; mix-blend-mode: multiply; }
.tb-cart-item__details { min-width: 0; }
.tb-cart-item__details h2 { margin: 0 0 var(--tb-space-2); font-size: var(--tb-font-size-lg); overflow-wrap: anywhere; }
.tb-cart-item__details h2 a { color: var(--tb-color-text); }
.tb-cart-model, .tb-cart-note { margin: var(--tb-space-1) 0 0; color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); }
.tb-cart-model span { color: var(--tb-color-text-subtle); }
.tb-cart-options { display: grid; margin: var(--tb-space-2) 0 0; gap: var(--tb-space-1); color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); }
.tb-cart-options > div { display: flex; min-width: 0; gap: var(--tb-space-1); }
.tb-cart-options dt { flex: 0 0 auto; font-weight: var(--tb-font-weight-medium); }
.tb-cart-options dd { min-width: 0; margin: 0; overflow-wrap: anywhere; }
.tb-cart-stock { display: inline-block; font-weight: var(--tb-font-weight-bold); }
.tb-cart-item__price, .tb-cart-item__total, .tb-cart-item__quantity { min-width: 0; }
.tb-cart-item__price > span, .tb-cart-item__total > span, .tb-cart-item__quantity > label, .tb-cart-item__quantity > span { display: block; margin-bottom: var(--tb-space-2); color: var(--tb-color-text-subtle); font-size: var(--tb-font-size-xs); font-weight: var(--tb-font-weight-semibold); }
.tb-cart-item__price strong, .tb-cart-item__total strong { display: block; color: var(--tb-color-text); font-size: var(--tb-font-size-lg); overflow-wrap: anywhere; }
.tb-cart-item__total { text-align: right; }
.tb-cart-quantity { display: grid; grid-template-columns: minmax(3.5rem,1fr) 44px 44px; }
body.tb-storefront .tb-cart-quantity .form-control, body.tb-storefront .tb-cart-quantity .btn { width: 100%; min-width: 0; height: 44px; min-height: 44px; border-radius: 0; }
.tb-cart-quantity .form-control { position: relative; z-index: 1; text-align: center; }
.tb-cart-quantity > :first-child { border-radius: var(--tb-radius-md) 0 0 var(--tb-radius-md); }
.tb-cart-quantity > :last-child { border-radius: 0 var(--tb-radius-md) var(--tb-radius-md) 0; }
.tb-cart-quantity > * + * { margin-left: -1px; }
body.tb-storefront .tb-cart-remove { color: var(--tb-color-danger); }
.tb-cart-item--voucher { grid-template-columns: 7.5rem minmax(10rem,1fr) minmax(9rem,.7fr) minmax(7rem,.65fr); }
.tb-cart-order-summary { position: sticky; top: calc(var(--tb-header-height) + var(--tb-space-5)); padding: var(--tb-space-6); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-subtle); box-shadow: var(--tb-shadow-sm); }
.tb-cart-order-summary > h2 { margin-bottom: var(--tb-space-5); font-size: var(--tb-font-size-xl); }
.tb-cart-totals { display: grid; margin: 0; padding: var(--tb-space-4) 0; gap: var(--tb-space-3); border-top: 1px solid var(--tb-color-border); border-bottom: 1px solid var(--tb-color-border); }
.tb-cart-totals > div { display: grid; grid-template-columns: minmax(0,1fr) auto; align-items: baseline; gap: var(--tb-space-4); }
.tb-cart-totals dt { color: var(--tb-color-text-muted); font-weight: var(--tb-font-weight-medium); overflow-wrap: anywhere; }
.tb-cart-totals dd { margin: 0; color: var(--tb-color-text); font-weight: var(--tb-font-weight-semibold); text-align: right; white-space: nowrap; }
.tb-cart-totals > div:last-child dt, .tb-cart-totals > div:last-child dd { color: var(--tb-color-text); font-size: var(--tb-font-size-lg); font-weight: var(--tb-font-weight-bold); }
.tb-cart-actions { display: grid; margin-top: var(--tb-space-5); gap: var(--tb-space-2); }
.tb-cart-actions .btn + .btn { margin: 0; }
.tb-cart-promotions { margin-bottom: var(--tb-space-4); }
.tb-cart-promotions .tb-promotion-panel { margin: 0; border: 0; border-top: 1px solid var(--tb-color-border); border-radius: 0; background: transparent; box-shadow: none; }
.tb-cart-promotions .panel-heading { padding: 0; border: 0; background: transparent; }
.tb-cart-promotions .panel-title { font-size: var(--tb-font-size-sm); }
.tb-cart-promotions .panel-title > a { display: flex; align-items: center; justify-content: space-between; min-height: 44px; padding: var(--tb-space-3) 0; gap: var(--tb-space-3); color: var(--tb-color-text); }
.tb-cart-promotions .panel-title .fa { margin-left: auto; }
.tb-cart-promotions .panel-body { padding: 0 0 var(--tb-space-4); border: 0 !important; }
.tb-cart-promotions .control-label { width: auto; margin-bottom: var(--tb-space-2); padding: 0; text-align: left; }
.tb-cart-promotions .form-horizontal .form-group { margin-right: 0; margin-left: 0; }
.tb-cart-promotions .form-horizontal [class*="col-sm-"] { float: none; width: 100%; padding-right: 0; padding-left: 0; }
.tb-cart-promotions .input-group { width: 100%; }

.tb-checkout-content { float: none; max-width: 62rem; margin-right: auto; margin-left: auto; }
.tb-checkout-steps { counter-reset: tb-checkout-step; }
.tb-checkout-step { counter-increment: tb-checkout-step; overflow: hidden; margin-bottom: var(--tb-space-4) !important; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface); box-shadow: var(--tb-shadow-sm); }
.tb-checkout-step > .panel-heading { position: relative; min-height: 4.75rem; padding: 0; border: 0; background: var(--tb-color-surface); }
.tb-checkout-step > .panel-heading::before { position: absolute; top: 50%; left: var(--tb-space-5); z-index: 2; display: grid; width: 2.5rem; height: 2.5rem; place-items: center; border-radius: var(--tb-radius-pill); background: var(--tb-color-surface-muted); color: var(--tb-color-text-muted); content: counter(tb-checkout-step); font-weight: var(--tb-font-weight-bold); transform: translateY(-50%); pointer-events: none; }
.tb-checkout-step.is-active > .panel-heading::before, .tb-checkout-step.is-complete > .panel-heading::before { background: var(--tb-color-primary); color: var(--tb-color-text-inverse); }
.tb-checkout-step .panel-title { min-height: 4.75rem; margin: 0; font-size: var(--tb-font-size-lg); line-height: 1.35; }
.tb-checkout-step .panel-title > a, .tb-checkout-step .panel-title:not(:has(a)) { display: flex; align-items: center; min-height: 4.75rem; padding: var(--tb-space-4) 4rem var(--tb-space-4) 4.75rem; color: var(--tb-color-text); }
.tb-checkout-step .panel-title > a::after { position: absolute; top: 50%; right: var(--tb-space-5); color: var(--tb-color-text-subtle); content: "\f107"; font-family: FontAwesome; font-size: var(--tb-font-size-lg); transform: translateY(-50%) rotate(180deg); transition: transform var(--tb-duration-fast) var(--tb-easing-standard); }
.tb-checkout-step .panel-title > a.collapsed::after { transform: translateY(-50%) rotate(0); }
.tb-checkout-step .panel-title .fa { display: none; }
.tb-checkout-step > .panel-collapse > .panel-body { padding: var(--tb-space-6); border-top: 1px solid var(--tb-color-border); }
.tb-checkout-step fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.tb-checkout-step fieldset + fieldset { margin-top: var(--tb-space-6); padding-top: var(--tb-space-6); border-top: 1px solid var(--tb-color-border); }
.tb-checkout-step legend { width: 100%; margin: 0 0 var(--tb-space-5); padding: 0; border: 0; color: var(--tb-color-text); font-size: var(--tb-font-size-lg); font-weight: var(--tb-font-weight-semibold); }
.tb-checkout-step .form-group { margin-bottom: var(--tb-space-5); }
.tb-checkout-step .control-label { margin-bottom: var(--tb-space-2); color: var(--tb-color-text); font-weight: var(--tb-font-weight-semibold); }
.tb-checkout-step .required .control-label::before { margin-right: var(--tb-space-1); color: var(--tb-color-danger); content: "*"; }
.tb-checkout-step .text-danger { margin-top: var(--tb-space-2); color: var(--tb-color-danger); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-medium); }
.tb-checkout-step .has-error .form-control { border-color: var(--tb-color-danger); box-shadow: 0 0 0 3px rgba(197,59,59,.12); }
.tb-checkout-step .buttons { margin-top: var(--tb-space-6); }
.tb-checkout-step .buttons::before, .tb-checkout-step .buttons::after { display: table; content: ""; }
.tb-checkout-step .buttons::after { clear: both; }
.tb-checkout-form-grid, .tb-checkout-choice { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; gap: var(--tb-space-6); }
.tb-checkout-form-grid > [class*="col-sm-"] { float: none; width: auto; padding: 0; }
.tb-checkout-choice__card { padding: var(--tb-space-6) !important; border: 1px solid var(--tb-color-border) !important; border-radius: var(--tb-radius-lg); background: var(--tb-color-surface-subtle); }
.tb-checkout-choice__card legend { margin-bottom: var(--tb-space-3); }
.tb-choice-options { display: grid; margin: var(--tb-space-5) 0; gap: var(--tb-space-3); }
.tb-choice-card, .tb-method-card { position: relative; display: grid; min-width: 0; min-height: 48px; align-items: center; margin: 0; padding: var(--tb-space-4); gap: var(--tb-space-3); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: var(--tb-color-surface); color: var(--tb-color-text); font-weight: var(--tb-font-weight-medium); cursor: pointer; transition: border-color var(--tb-duration-fast) var(--tb-easing-standard), box-shadow var(--tb-duration-fast) var(--tb-easing-standard), background-color var(--tb-duration-fast) var(--tb-easing-standard); }
.tb-choice-card { grid-template-columns: 1.25rem minmax(0,1fr); }
.tb-choice-card:hover, .tb-method-card:hover { border-color: var(--tb-color-border-interactive); }
.tb-choice-card.is-selected, .tb-method-card.is-selected { border-color: var(--tb-color-primary); background: var(--tb-color-primary-50); box-shadow: 0 0 0 2px var(--tb-color-primary-100); }
.tb-choice-card input, .tb-method-card input, .tb-agree-check input { width: 1.25rem; height: 1.25rem; margin: 0; accent-color: var(--tb-color-primary); }
.tb-field-help { display: inline-block; margin-top: var(--tb-space-2); font-size: var(--tb-font-size-sm); }
.tb-checkout-address .form-group { margin-right: 0; margin-left: 0; }
.tb-checkout-address .form-group > [class*="col-sm-"] { float: none; width: 100%; padding-right: 0; padding-left: 0; }
.tb-checkout-address .control-label { padding-top: 0; text-align: left; }
body.tb-storefront .tb-checkout-step .form-control, body.tb-storefront .tb-checkout-step .btn { min-height: 44px; }
.tb-checkout-address > .radio, .tb-checkout-address > p > .radio { margin-bottom: var(--tb-space-4); }
.tb-checkout-address > .radio label, .tb-checkout-address > p > .radio label { min-height: 44px; padding: var(--tb-space-3) var(--tb-space-4) var(--tb-space-3) 2.75rem; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-md); background: var(--tb-color-surface-subtle); }
.tb-method-group > legend { margin-bottom: var(--tb-space-4); }
.tb-method-section + .tb-method-section { margin-top: var(--tb-space-6); }
.tb-method-section h3 { margin-bottom: var(--tb-space-3); font-size: var(--tb-font-size-md); }
.tb-method-options { display: grid; gap: var(--tb-space-3); }
.tb-method-card { grid-template-columns: 1.25rem minmax(0,1fr) auto; }
.tb-method-card__title { min-width: 0; overflow-wrap: anywhere; }
.tb-method-card__title small { color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-regular); }
.tb-method-card__price { color: var(--tb-color-text); white-space: nowrap; }
.tb-checkout-comment { margin-top: var(--tb-space-6); }
.tb-checkout-comment textarea { min-height: 7.5rem; resize: vertical; }
.tb-checkout-agree > .pull-right { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: var(--tb-space-4); }
.tb-agree-check { display: flex; align-items: center; min-height: 44px; margin: 0; gap: var(--tb-space-3); color: var(--tb-color-text-muted); font-weight: var(--tb-font-weight-regular); }
.tb-agree-check input { flex: 0 0 auto; order: -1; }
.tb-confirm-table { margin: 0; border: 0; }
.tb-confirm-table .table { margin: 0; border-collapse: separate; border-spacing: 0; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); overflow: hidden; }
.tb-confirm-table .table > thead > tr > th { padding: var(--tb-space-3) var(--tb-space-4); border: 0; border-bottom: 1px solid var(--tb-color-border); background: var(--tb-color-surface-subtle); color: var(--tb-color-text-muted); font-size: var(--tb-font-size-xs); text-transform: uppercase; }
.tb-confirm-table .table > tbody > tr > td, .tb-confirm-table .table > tfoot > tr > th, .tb-confirm-table .table > tfoot > tr > td { padding: var(--tb-space-4); border: 0; border-bottom: 1px solid var(--tb-color-border); vertical-align: middle; }
.tb-confirm-table .table > tfoot > tr:last-child > th, .tb-confirm-table .table > tfoot > tr:last-child > td { border-bottom: 0; color: var(--tb-color-text); font-size: var(--tb-font-size-lg); }
.tb-payment-confirm { margin-top: var(--tb-space-6); }
.tb-payment-confirm:empty { display: none; }
.tb-payment-confirm .buttons { margin-top: 0; }
.tb-state-card { max-width: 48rem; margin: var(--tb-space-10) auto 0; padding: clamp(2rem,6vw,5rem); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-2xl); background: var(--tb-color-surface-subtle); text-align: center; }
.tb-state-card__icon { display: grid; width: 4rem; height: 4rem; margin: 0 auto var(--tb-space-6); place-items: center; border-radius: var(--tb-radius-pill); background: var(--tb-color-primary-100); color: var(--tb-color-primary); font-size: var(--tb-font-size-2xl); }
.tb-success-page .tb-state-card__icon { background: rgba(17,132,91,.12); color: var(--tb-color-success); }
.tb-state-card h1 { margin-bottom: var(--tb-space-4); font-size: clamp(2rem,5vw,3rem); }
.tb-state-card p, .tb-state-card__message { margin-bottom: var(--tb-space-6); }
.tb-state-card__message > :last-child { margin-bottom: 0; }
.tb-state-card .btn { margin-top: var(--tb-space-2); }

@media (max-width: 1199px) {
  .tb-cart-layout { grid-template-columns: 1fr; }
  .tb-cart-order-summary { position: static; }
}

@media (max-width: 991px) {
  .tb-cart-item { grid-template-columns: 7rem minmax(10rem,1fr) minmax(8rem,.65fr); }
  .tb-cart-item__media { grid-row: 1 / span 2; width: 7rem; height: 7rem; }
  .tb-cart-item__price { grid-column: 2; }
  .tb-cart-item__quantity { grid-column: 3; grid-row: 1 / span 2; }
  .tb-cart-item__total { grid-column: 3; grid-row: 3; }
  .tb-cart-item--voucher { grid-template-columns: 7rem minmax(10rem,1fr) minmax(8rem,.65fr); }
}

@media (max-width: 767px) {
  .tb-cart-page, .tb-checkout-page, .tb-state-page { padding-bottom: var(--tb-space-12); }
  .tb-cart-heading, .tb-checkout-heading { align-items: flex-start; flex-direction: column; margin-bottom: var(--tb-space-6); }
  .tb-cart-heading h1, .tb-checkout-heading h1 { font-size: clamp(2rem,10vw,3rem); }
  .tb-cart-item, .tb-cart-item--voucher { grid-template-columns: 6.5rem minmax(0,1fr); padding: var(--tb-space-4); gap: var(--tb-space-4); }
  .tb-cart-item__media { grid-column: 1; grid-row: 1; width: 6.5rem; height: 6.5rem; }
  .tb-cart-item__details { grid-column: 2; grid-row: 1; }
  .tb-cart-item__price, .tb-cart-item__quantity, .tb-cart-item__total { grid-row: auto; }
  .tb-cart-item__price { grid-column: 1; }
  .tb-cart-item__quantity { grid-column: 1 / -1; }
  .tb-cart-item__total { grid-column: 2; text-align: right; }
  .tb-cart-quantity { max-width: 15rem; }
  .tb-cart-order-summary { padding: var(--tb-space-5); }
  .tb-checkout-step > .panel-heading, .tb-checkout-step .panel-title, .tb-checkout-step .panel-title > a, .tb-checkout-step .panel-title:not(:has(a)) { min-height: 4.25rem; }
  .tb-checkout-step > .panel-heading::before { left: var(--tb-space-4); width: 2.25rem; height: 2.25rem; }
  .tb-checkout-step .panel-title > a, .tb-checkout-step .panel-title:not(:has(a)) { padding: var(--tb-space-3) 3.5rem var(--tb-space-3) 4.25rem; font-size: var(--tb-font-size-md); }
  .tb-checkout-step .panel-title > a::after { right: var(--tb-space-4); }
  .tb-checkout-step > .panel-collapse > .panel-body { padding: var(--tb-space-4); }
  .tb-checkout-form-grid, .tb-checkout-choice { grid-template-columns: 1fr; gap: var(--tb-space-5); }
  .tb-checkout-choice__card { padding: var(--tb-space-5) !important; }
  .tb-method-card { grid-template-columns: 1.25rem minmax(0,1fr); }
  .tb-method-card__price { grid-column: 2; white-space: normal; }
  .tb-checkout-agree > .pull-right { align-items: stretch; flex-direction: column; float: none !important; }
  .tb-checkout-agree .btn { width: 100%; }
  .tb-agree-check { align-items: flex-start; }
  .tb-confirm-table { overflow: visible; }
  .tb-confirm-table .table, .tb-confirm-table .table > thead, .tb-confirm-table .table > tbody, .tb-confirm-table .table > tfoot, .tb-confirm-table .table > tbody > tr, .tb-confirm-table .table > tfoot > tr, .tb-confirm-table .table > tbody > tr > td, .tb-confirm-table .table > tfoot > tr > th, .tb-confirm-table .table > tfoot > tr > td { display: block; width: 100%; }
  .tb-confirm-table .table { border: 0; overflow: visible; }
  .tb-confirm-table .table > thead { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); }
  .tb-confirm-table .table > tbody > tr, .tb-confirm-table .table > tfoot { display: grid; margin-bottom: var(--tb-space-3); overflow: hidden; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); }
  .tb-confirm-table .table > tbody > tr > td { display: flex; justify-content: space-between; padding: var(--tb-space-3) var(--tb-space-4); gap: var(--tb-space-4); border-bottom: 1px solid var(--tb-color-border); text-align: right; overflow-wrap: anywhere; }
  .tb-confirm-table .table > tbody > tr > td:first-child { display: block; text-align: left; }
  .tb-confirm-table .table > tbody > tr > td:last-child { border-bottom: 0; }
  .tb-confirm-table .table > tbody > tr > td::before, .tb-confirm-table .table > tfoot > tr > td::before { flex: 0 0 42%; color: var(--tb-color-text-muted); content: attr(data-label); font-size: var(--tb-font-size-xs); font-weight: var(--tb-font-weight-semibold); text-align: left; }
  .tb-confirm-table .table > tbody > tr > td:first-child::before { display: block; margin-bottom: var(--tb-space-2); }
  .tb-confirm-table .table > tfoot > tr { display: grid; grid-template-columns: minmax(0,1fr) auto; }
  .tb-confirm-table .table > tfoot > tr > th, .tb-confirm-table .table > tfoot > tr > td { padding: var(--tb-space-3) var(--tb-space-4); border-bottom: 1px solid var(--tb-color-border); text-align: right; }
  .tb-confirm-table .table > tfoot > tr > th { grid-column: 1; }
  .tb-confirm-table .table > tfoot > tr > td { grid-column: 2; }
  .tb-confirm-table .table > tfoot > tr > td::before { display: none; }
  .tb-state-card { margin-top: var(--tb-space-6); }
}

@media (max-width: 359px) {
  .tb-cart-item, .tb-cart-item--voucher { grid-template-columns: 5rem minmax(0,1fr); padding: var(--tb-space-3); gap: var(--tb-space-3); }
  .tb-cart-item__media { width: 5rem; height: 5rem; }
  .tb-cart-item__details h2, .tb-cart-item__price strong, .tb-cart-item__total strong { font-size: var(--tb-font-size-md); }
  .tb-cart-order-summary { padding: var(--tb-space-4); }
  .tb-cart-totals > div { gap: var(--tb-space-2); }
  .tb-cart-totals dd { white-space: normal; }
  .tb-checkout-step > .panel-collapse > .panel-body { padding: var(--tb-space-3); }
  .tb-checkout-choice__card { padding: var(--tb-space-4) !important; }
}

/* Premium UI/UX System V1 */
body.tb-storefront .btn:active, body.tb-storefront .btn.active { transform: translateY(0); box-shadow: inset 0 2px 4px rgba(15,23,42,.12); }
body.tb-storefront .btn-link { border-color: transparent; background: transparent; color: var(--tb-color-primary); box-shadow: none; }
body.tb-storefront .btn-link:hover, body.tb-storefront .btn-link:focus { border-color: transparent; background: var(--tb-color-primary-50); color: var(--tb-color-primary-hover); }
body.tb-storefront .btn-info { border-color: var(--tb-color-primary); background: var(--tb-color-primary-50); color: var(--tb-color-primary); text-shadow: none; }
body.tb-storefront .btn-info:hover, body.tb-storefront .btn-info:focus { border-color: var(--tb-color-primary); background: var(--tb-color-primary-100); color: var(--tb-color-primary-hover); }
body.tb-storefront .btn-danger { border-color: var(--tb-color-danger); background: var(--tb-color-danger); color: var(--tb-color-text-inverse); text-shadow: none; }
body.tb-storefront .btn-danger:hover, body.tb-storefront .btn-danger:focus { border-color: #a92e2e; background: #a92e2e; color: var(--tb-color-text-inverse); }
body.tb-storefront .btn-sm, body.tb-storefront .btn-xs { min-height: var(--tb-touch-target); padding: var(--tb-space-2) var(--tb-space-3); }
body.tb-storefront .btn-block { display: flex; width: 100%; }
body.tb-storefront .btn .fa { line-height: 1; }
body.tb-storefront .btn.is-loading, body.tb-storefront .btn[data-loading-text][disabled] { position: relative; cursor: wait; }
body.tb-storefront .btn.is-loading::after, body.tb-storefront .btn[data-loading-text][disabled]::after { width: 1rem; height: 1rem; margin-left: var(--tb-space-2); border: 2px solid currentColor; border-right-color: transparent; border-radius: 50%; content: ""; animation: tb-spin .7s linear infinite; }

body.tb-storefront textarea.form-control { min-height: 8rem; resize: vertical; }
body.tb-storefront select.form-control { padding-right: 2.75rem; background-image: linear-gradient(45deg,transparent 50%,var(--tb-color-text-muted) 50%),linear-gradient(135deg,var(--tb-color-text-muted) 50%,transparent 50%); background-position: calc(100% - 1.1rem) calc(50% - 2px),calc(100% - .8rem) calc(50% - 2px); background-repeat: no-repeat; background-size: .35rem .35rem,.35rem .35rem; appearance: none; }
body.tb-storefront input[type="file"].form-control { height: auto; padding: var(--tb-space-2); }
body.tb-storefront input[type="file"]::file-selector-button { min-height: 2.25rem; margin-right: var(--tb-space-3); padding: var(--tb-space-2) var(--tb-space-3); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-sm); background: var(--tb-color-surface-subtle); color: var(--tb-color-text); font-weight: var(--tb-font-weight-semibold); }
body.tb-storefront .control-label, body.tb-storefront label { color: var(--tb-color-text-secondary); font-size: var(--tb-font-size-sm); font-weight: var(--tb-font-weight-semibold); }
body.tb-storefront .help-block { color: var(--tb-color-text-muted); font-size: var(--tb-font-size-sm); line-height: var(--tb-line-height-normal); }
body.tb-storefront .required .control-label::before, body.tb-storefront .form-group.required > label::before { margin-right: var(--tb-space-1); color: var(--tb-color-danger); content: "*"; }
body.tb-storefront .has-error .form-control, body.tb-storefront [aria-invalid="true"] { border-color: var(--tb-color-danger); }
body.tb-storefront .has-error .form-control:focus, body.tb-storefront [aria-invalid="true"]:focus { box-shadow: 0 0 0 3px rgba(197,59,59,.16); }
body.tb-storefront .text-danger { color: var(--tb-color-danger); font-size: var(--tb-font-size-sm); }

body.tb-storefront input[type="checkbox"], body.tb-storefront input[type="radio"] { position: relative; display: inline-grid; width: 1.25rem; min-width: 1.25rem; height: 1.25rem; margin: 0; padding: 0; place-content: center; border: 1.5px solid var(--tb-color-border-strong); background: var(--tb-color-surface); color: var(--tb-color-text-inverse); vertical-align: middle; appearance: none; transition: border-color var(--tb-duration-fast) var(--tb-easing-standard), background-color var(--tb-duration-fast) var(--tb-easing-standard), box-shadow var(--tb-duration-fast) var(--tb-easing-standard); }
body.tb-storefront input[type="checkbox"] { border-radius: .35rem; }
body.tb-storefront input[type="radio"] { border-radius: 50%; }
body.tb-storefront input[type="checkbox"]::before { width: .65rem; height: .38rem; border-bottom: 2px solid currentColor; border-left: 2px solid currentColor; content: ""; transform: translateY(-.08rem) rotate(-45deg) scale(0); transition: transform var(--tb-duration-fast) var(--tb-easing-standard); }
body.tb-storefront input[type="radio"]::before { width: .55rem; height: .55rem; border-radius: 50%; background: currentColor; content: ""; transform: scale(0); transition: transform var(--tb-duration-fast) var(--tb-easing-standard); }
body.tb-storefront input[type="checkbox"]:checked, body.tb-storefront input[type="radio"]:checked, body.tb-storefront input[type="checkbox"]:indeterminate { border-color: var(--tb-color-primary); background: var(--tb-color-primary); }
body.tb-storefront input[type="checkbox"]:checked::before, body.tb-storefront input[type="radio"]:checked::before { transform: translateY(-.08rem) rotate(-45deg) scale(1); }
body.tb-storefront input[type="radio"]:checked::before { transform: scale(1); }
body.tb-storefront input[type="checkbox"]:indeterminate::before { width: .65rem; height: 2px; border: 0; background: currentColor; transform: none; }
body.tb-storefront input[type="checkbox"]:hover:not(:disabled), body.tb-storefront input[type="radio"]:hover:not(:disabled) { border-color: var(--tb-color-primary); }
body.tb-storefront input[type="checkbox"]:focus-visible, body.tb-storefront input[type="radio"]:focus-visible { outline: 0; box-shadow: var(--tb-shadow-focus); }
body.tb-storefront input[type="checkbox"]:disabled, body.tb-storefront input[type="radio"]:disabled { border-color: var(--tb-color-border); background: var(--tb-color-disabled-bg); cursor: not-allowed; }
body.tb-storefront .checkbox label, body.tb-storefront .radio label { display: inline-flex; min-height: var(--tb-touch-target); align-items: center; padding-left: 0; gap: var(--tb-space-3); cursor: pointer; }
body.tb-storefront .checkbox input[type="checkbox"], body.tb-storefront .radio input[type="radio"] { position: relative; margin: 0; }
body.tb-storefront .has-error input[type="checkbox"], body.tb-storefront .has-error input[type="radio"] { border-color: var(--tb-color-danger); box-shadow: 0 0 0 3px rgba(197,59,59,.12); }

body.tb-storefront .alert { position: relative; display: flex; min-height: var(--tb-control-height); align-items: flex-start; margin-bottom: var(--tb-space-5); padding: var(--tb-space-4) 3.5rem var(--tb-space-4) var(--tb-space-5); gap: var(--tb-space-3); border-width: 1px; box-shadow: var(--tb-shadow-sm); line-height: var(--tb-line-height-normal); }
body.tb-storefront .alert-success { border-color: rgba(17,132,91,.25); background: var(--tb-color-success-subtle); color: #0c6646; }
body.tb-storefront .alert-info { border-color: rgba(7,87,255,.22); background: var(--tb-color-info-subtle); color: #063b9a; }
body.tb-storefront .alert-warning { border-color: rgba(161,92,0,.24); background: var(--tb-color-warning-subtle); color: #754400; }
body.tb-storefront .alert-danger { border-color: rgba(197,59,59,.24); background: var(--tb-color-danger-subtle); color: #972b2b; }
body.tb-storefront .alert .close { position: absolute; top: 50%; right: var(--tb-space-3); width: var(--tb-touch-target); height: var(--tb-touch-target); margin-top: calc(var(--tb-touch-target) / -2); opacity: .62; }

.tb-catalog-trigger, .tb-menu-toggle { border-color: var(--tb-color-primary); background: var(--tb-color-primary); box-shadow: 0 6px 16px rgba(7,87,255,.18); }
.tb-catalog-trigger:hover, .tb-catalog-trigger:focus, .tb-menu-toggle:hover, .tb-menu-toggle:focus { border-color: var(--tb-color-primary-hover); background: var(--tb-color-primary-hover); }
.tb-header-grid { column-gap: clamp(var(--tb-space-3),2vw,var(--tb-space-6)); }
.tb-header-search #search { position: relative; isolation: isolate; }
.tb-header-search #search .form-control { padding-right: var(--tb-space-4); box-shadow: none; }
.tb-header-search #search:focus-within { filter: drop-shadow(0 6px 18px rgba(15,23,42,.08)); }
.tb-header-search #search:focus-within .form-control, .tb-header-search #search:focus-within button { border-color: var(--tb-color-primary); background: var(--tb-color-surface); }
.tb-header-search input[type="search"]::-webkit-search-cancel-button { width: 1rem; height: 1rem; cursor: pointer; opacity: .7; }
.tb-search-suggestions { position: absolute; top: calc(100% + var(--tb-space-2)); right: 0; left: 0; z-index: 1160; max-height: min(32rem,calc(100vh - 10rem)); padding: var(--tb-space-2); overflow-y: auto; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-lg); background: var(--tb-color-surface); box-shadow: var(--tb-shadow-lg); }
.tb-search-suggestions[hidden] { display: none !important; }
.tb-search-suggestions [role="option"] { display: grid; grid-template-columns: 3.5rem minmax(0,1fr) auto; min-height: var(--tb-touch-target); align-items: center; padding: var(--tb-space-3); gap: var(--tb-space-3); border-radius: var(--tb-radius-md); color: var(--tb-color-text); cursor: pointer; }
.tb-search-suggestions [role="option"]:hover, .tb-search-suggestions [role="option"][aria-selected="true"] { background: var(--tb-color-primary-50); color: var(--tb-color-primary-hover); }
.tb-header-backdrop[hidden] { display: none !important; }
.tb-header-backdrop { position: fixed; inset: 0; z-index: 1120; width: 100%; height: 100%; padding: 0; border: 0; background: var(--tb-overlay-backdrop); animation: tb-fade-in var(--tb-duration-normal) var(--tb-easing-standard); }
body.tb-overlay-open { overflow: hidden; }
.tb-header-account .dropdown-menu, .tb-header-cart .dropdown-menu, .tb-catalog-nav .dropdown-menu { animation: tb-pop-in var(--tb-duration-normal) var(--tb-easing-standard); transform-origin: top right; }
.tb-header-account .dropdown-menu > li > a, .tb-header-cart .dropdown-menu a { min-height: var(--tb-touch-target); }
.tb-header-cart .dropdown-menu { max-height: calc(100vh - 8rem); overflow-x: hidden; overflow-y: auto; }
.tb-header-cart #cart .dropdown-menu { background: var(--tb-color-surface); }
.tb-header-cart #cart .dropdown-menu li > div { min-width: 0; }
.tb-header-cart #cart > button #cart-total { display: block; max-width: 100%; overflow: hidden; font-size: var(--tb-font-size-xs); text-overflow: ellipsis; white-space: nowrap; }
.tb-header-cart #cart > button #cart-total .fa { margin: 0; }
.tb-header-cart .dropdown-menu .table > tbody > tr > td { padding: var(--tb-space-2); }
.tb-header-cart .dropdown-menu .img-thumbnail { border: 0; border-radius: var(--tb-radius-sm); background: var(--tb-color-surface-subtle); }

body.tb-storefront .product-thumb:focus-within, .tb-product-card:focus-within { border-color: var(--tb-color-primary); box-shadow: 0 0 0 3px var(--tb-color-primary-100),var(--tb-shadow-md); }
body.tb-storefront .product-thumb .image, .tb-product-card .image { aspect-ratio: 1 / 1; min-height: 0; }
body.tb-storefront .product-thumb .image img, .tb-product-card .image img { height: 100%; max-height: 15rem; }
body.tb-storefront .product-thumb .caption h4, .tb-product-card .caption h4 { display: -webkit-box; min-height: 2.8em; overflow: hidden; overflow-wrap: anywhere; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.tb-product-wishlist, body.tb-storefront .product-thumb .button-group button + button, .tb-product-card .button-group button + button { min-width: var(--tb-touch-target); min-height: var(--tb-touch-target); }
.tb-product-wishlist:active { transform: scale(.96); }

#account-login, #account-register, #account-account, #account-wishlist, #product-compare, #information-contact, #information-sitemap, #common-success { padding-top: var(--tb-space-8); padding-bottom: var(--tb-section-space); }
#account-login #content > .row { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); margin: 0; gap: var(--tb-space-6); }
#account-login #content > .row > [class*="col-"] { float: none; width: auto; padding: 0; }
#account-login .well { margin: 0; background: var(--tb-color-surface-subtle); }
#account-login .well form { margin-top: var(--tb-space-5); }
#information-contact #content > .panel { margin-bottom: var(--tb-space-8); background: var(--tb-color-surface-subtle); }
#information-contact #content > form { max-width: 56rem; }
#information-contact #content > form > fieldset { padding: clamp(1.25rem,3vw,2rem); border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface); box-shadow: var(--tb-shadow-sm); }
#information-contact #content > form legend { margin-bottom: var(--tb-space-6); border: 0; font-size: var(--tb-font-size-xl); font-weight: var(--tb-font-weight-semibold); }
#account-wishlist #content > p, #product-compare #content > p { min-height: 14rem; padding: var(--tb-space-8); border: 1px dashed var(--tb-color-border-strong); border-radius: var(--tb-radius-xl); background: var(--tb-color-surface-subtle); text-align: center; }
body.tb-storefront .modal-content { overflow: hidden; border: 1px solid var(--tb-color-border); border-radius: var(--tb-radius-xl); box-shadow: var(--tb-shadow-lg); }
body.tb-storefront .modal-header, body.tb-storefront .modal-footer { padding: var(--tb-space-5) var(--tb-space-6); border-color: var(--tb-color-border); background: var(--tb-color-surface-subtle); }
body.tb-storefront .modal-body { padding: var(--tb-space-6); }
body.tb-storefront .modal-backdrop { background: var(--tb-color-surface-inverse); }

.tb-hero-card, .tb-category-card, .tb-service-card, .tb-product-summary, .tb-cart-item, .tb-checkout-step { border-color: #dde3eb; }
.tb-section-heading h2 { max-width: 20ch; }
.tb-category-card:focus-visible, .tb-subcategory-card:focus-visible { outline-offset: 4px; }
.tb-filter-backdrop:not([hidden]) { background: var(--tb-overlay-backdrop); animation: tb-fade-in var(--tb-duration-normal) var(--tb-easing-standard); }
.tb-filter-panel.is-open { animation: tb-drawer-in var(--tb-duration-slow) var(--tb-easing-standard); }
.tb-choice-card input, .tb-method-card input, .tb-agree-check input, .tb-search-checks input, .tb-filter-option input { align-self: center; }
.tb-choice-card:has(input:focus-visible), .tb-method-card:has(input:focus-visible), .tb-option-choice:has(input:focus-visible), .tb-filter-option:has(input:focus-visible) { outline: 3px solid var(--tb-color-focus-ring); outline-offset: 2px; }
.tb-choice-card:has(input:disabled), .tb-method-card:has(input:disabled), .tb-option-choice:has(input:disabled), .tb-filter-option:has(input:disabled) { cursor: not-allowed; opacity: var(--tb-opacity-disabled); }
.tb-product-gallery__stage, .tb-product-summary, .tb-cart-order-summary, .tb-state-card { box-shadow: 0 18px 48px rgba(15,23,42,.055); }
.tb-checkout-step.is-active { border-color: var(--tb-color-border-interactive); box-shadow: 0 18px 44px rgba(7,87,255,.08); }
.tb-state-card { background: linear-gradient(145deg,var(--tb-color-surface),var(--tb-color-surface-subtle)); }

@keyframes tb-spin { to { transform: rotate(360deg); } }
@keyframes tb-fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes tb-pop-in { from { opacity: 0; transform: translateY(-.4rem) scale(.985); } to { opacity: 1; transform: translateY(0) scale(1); } }
@keyframes tb-drawer-in { from { opacity: .7; } to { opacity: 1; } }

@media (max-width: 1199px) {
  .tb-listing-toolbar { align-items: stretch; flex-direction: column; }
  .tb-listing-primary-controls { flex-wrap: wrap; }
  .tb-listing-selects { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); }
  .tb-field-inline { align-items: stretch; flex-direction: column; }
  .tb-field-inline .form-control { width: 100%; min-width: 0; }
}

@media (max-width: 991px) {
  body.tb-storefront .btn, body.tb-storefront .form-control { min-height: var(--tb-touch-target); }
  .tb-header-cart .dropdown-menu { min-width: 0; }
}

@media (max-width: 767px) {
  body.tb-storefront .container { width: 100%; }
  .tb-site-header { position: sticky; }
  .tb-catalog-nav { position: static; }
  .tb-catalog-nav .container { width: auto; }
  .tb-catalog-nav #tb-catalog-menu.collapse, .tb-catalog-nav #tb-catalog-menu.collapsing { position: fixed; top: 0; bottom: 0; left: 0; z-index: 1140; display: block !important; visibility: hidden; width: min(24rem,calc(100vw - 2rem)); height: 100vh !important; max-height: none; padding: var(--tb-space-5); overflow-y: auto; border: 0; border-radius: 0 var(--tb-radius-xl) var(--tb-radius-xl) 0; background: var(--tb-color-surface); box-shadow: var(--tb-shadow-lg); transform: translateX(-104%); transition: transform var(--tb-duration-slow) var(--tb-easing-standard),visibility 0s linear var(--tb-duration-slow); }
  .tb-catalog-nav #tb-catalog-menu.collapse.in, .tb-catalog-nav #tb-catalog-menu.collapsing { visibility: visible; transform: translateX(0); transition-delay: 0s; }
  .tb-catalog-nav .navbar-nav { margin: 0; }
  .tb-catalog-nav .navbar-nav > li > a { min-height: var(--tb-touch-target); }
  .tb-header-account .dropdown-menu, .tb-header-cart #cart .dropdown-menu { position: fixed; top: var(--tb-space-3); right: var(--tb-space-3); bottom: auto; left: auto; z-index: 1140; box-sizing: border-box; width: calc(100vw - 1.5rem); max-width: 25rem; max-height: calc(100vh - 1.5rem); margin: 0; padding: var(--tb-space-4); overflow-y: auto; border: 0; border-radius: var(--tb-radius-xl); box-shadow: var(--tb-shadow-lg); }
  .tb-header-cart #cart .dropdown-menu { right: var(--tb-space-3) !important; left: var(--tb-space-3) !important; width: auto !important; min-width: 0; max-width: none; }
  .tb-header-account .dropdown-menu { min-width: min(20rem,calc(100vw - 1.5rem)); }
  .tb-header-cart .dropdown-menu .table { width: 100%; table-layout: fixed; }
  .tb-header-cart .dropdown-menu .table td { overflow-wrap: anywhere; }
  .tb-header-cart .dropdown-menu .table td:first-child { width: 3.5rem; }
  .tb-header-cart .dropdown-menu .table td:nth-last-child(3) { width: 2.25rem; }
  .tb-header-cart .dropdown-menu .table td:nth-last-child(2) { width: 4.75rem; }
  .tb-header-cart .dropdown-menu .table td:last-child { width: 3rem; }
  .tb-header-cart .dropdown-menu > li:last-child p { display: grid; gap: var(--tb-space-2); }
  .tb-header-cart .dropdown-menu > li:last-child p .btn { width: 100%; }
  .tb-search-suggestions { position: fixed; top: 8rem; right: var(--tb-space-3); left: var(--tb-space-3); max-height: calc(100vh - 9rem); }
  #account-login #content > .row { grid-template-columns: 1fr; }
  #information-contact #content > form > fieldset { padding: var(--tb-space-5); }
  body.tb-storefront .form-horizontal .form-group { margin-right: 0; margin-left: 0; }
  body.tb-storefront .form-horizontal .form-group > [class*="col-"] { padding-right: 0; padding-left: 0; }
  .tb-product-sticky:not([hidden]) { max-width: calc(100vw - 1.5rem); }
}

@media (max-width: 359px) {
  .tb-header-grid { gap: var(--tb-space-2); }
  .tb-header-account .dropdown-menu, .tb-header-cart #cart .dropdown-menu { top: var(--tb-space-2); right: var(--tb-space-2); width: calc(100vw - 1rem); max-height: calc(100vh - 1rem); }
  .tb-header-cart #cart .dropdown-menu { right: var(--tb-space-2) !important; left: var(--tb-space-2) !important; width: auto !important; }
  .tb-header-cart .dropdown-menu { padding: var(--tb-space-3); }
  .tb-header-cart .dropdown-menu .table td { padding: var(--tb-space-1); font-size: var(--tb-font-size-xs); }
  .tb-header-cart .dropdown-menu .table td:first-child { width: 3rem; }
  .tb-header-cart .dropdown-menu .table td:nth-last-child(2) { width: 4rem; }
  .tb-state-card { padding: var(--tb-space-6); }
}

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