/* ==========================================================================
   Sala theme
   1. Tokens and base        6. Product cards        11. Cart, checkout, account
   2. Buttons, chips, forms  7. Shop pages           12. Content pages
   3. Header and navigation  8. Product page         13. Footer
   4. Drawers and tab bar    9. WooCommerce basics   14. Snippet output
   5. Home page             10. Mini cart            15. Responsive
   ========================================================================== */

/* 1. Tokens and base ------------------------------------------------------- */
:root {
	--brand: #105ca8;
	--brand-600: #0d4d8f;
	--brand-ink: #0c2c4b;
	--brand-tint: #eaf2fb;
	--sale: #d92d20;
	--sale-tint: #fef1ee;
	--ink: #0f172a;
	--text: #334155;
	--muted: #5b6b82;
	--line: #e2e8f0;
	--line-2: #cbd5e1;
	--surface: #f4f6f9;
	--card: #ffffff;
	--ok: #15803d;
	--ok-tint: #ecfdf3;
	--warn: #b45309;
	--warn-tint: #fffbeb;
	--star: #f59e0b;
	--r-sm: 8px;
	--r: 12px;
	--r-lg: 16px;
	--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
	--shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 6px 20px rgba(15, 23, 42, .07);
	--shadow-lg: 0 24px 48px rgba(15, 23, 42, .18);
	--wrap: 1240px;
	--gutter: 16px;
	--font: -apple-system, BlinkMacSystemFont, "Segoe UI Variable", "Segoe UI", Roboto, "Noto Sans", "Noto Sans Sinhala", "Helvetica Neue", Arial, sans-serif;
	--ease: cubic-bezier(.3, .7, .2, 1);
}

*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-padding-top: 96px; }
html.is-locked { overflow: hidden; }
body {
	margin: 0;
	font: 15px/1.55 var(--font);
	color: var(--text);
	background: var(--surface);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}
img, svg, video { max-width: 100%; height: auto; }
img { display: block; }
a { color: var(--brand); text-decoration: none; }
a:hover { color: var(--brand-ink); }
h1, h2, h3, h4, h5, h6 { color: var(--ink); line-height: 1.25; margin: 0 0 .5em; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
:focus-visible { outline: 3px solid #7aa7e8; outline-offset: 2px; border-radius: 6px; }
::selection { background: #cfe2f8; }

.wrap { width: 100%; max-width: calc(var(--wrap) + var(--gutter) * 2); margin: 0 auto; padding: 0 var(--gutter); }
.wrap.narrow { max-width: calc(720px + var(--gutter) * 2); }
.sr, .screen-reader-text {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
.skip-link { position: absolute; left: 8px; top: -60px; z-index: 200; background: var(--ink); color: #fff; padding: 10px 14px; border-radius: 8px; }
.skip-link:focus { top: 8px; color: #fff; }
.icon { width: 20px; height: 20px; flex: none; }
.muted { color: var(--muted); }
.center { text-align: center; }
.kicker { display: inline-flex; align-items: center; gap: 6px; margin: 0 0 6px; font-size: 13px; font-weight: 600; color: var(--brand); }
.kicker .icon { width: 16px; height: 16px; }
.pill { display: inline-block; vertical-align: middle; background: var(--sale); color: #fff; font-size: 12px; font-weight: 700; border-radius: 99px; padding: 3px 10px; margin-left: 8px; letter-spacing: 0; }

/* 2. Buttons, chips, forms ------------------------------------------------- */
.btn, .button, button.button, a.button, input.button, .wp-element-button, .wp-block-button__link,
.woocommerce #respond input#submit {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	min-height: 44px; padding: 10px 18px; border-radius: 10px;
	border: 1.5px solid var(--brand); background: var(--brand); color: #fff;
	font-weight: 600; font-size: 15px; line-height: 1.2; text-decoration: none; text-align: center;
	transition: background .15s, border-color .15s, color .15s, box-shadow .15s;
	cursor: pointer;
}
.btn:hover, .button:hover, .wp-element-button:hover, .wp-block-button__link:hover { background: var(--brand-ink); border-color: var(--brand-ink); color: #fff; }
.btn .icon, .button .icon { width: 18px; height: 18px; }
.btn-ghost { background: #fff; color: var(--brand); }
.btn-ghost:hover { background: var(--brand-tint); color: var(--brand-ink); border-color: var(--brand); }
.btn-light { background: #fff; border-color: #fff; color: var(--brand-ink); }
.btn-light:hover { background: var(--brand-tint); border-color: var(--brand-tint); color: var(--brand-ink); }
.btn-block { width: 100%; }
.button.alt, .single_add_to_cart_button, .checkout-button, #place_order { background: var(--brand); border-color: var(--brand); }
.button:disabled, .button.disabled, .button[disabled] { opacity: .5; cursor: not-allowed; }
.button.loading { position: relative; color: transparent !important; pointer-events: none; }
.button.loading::after {
	content: ""; position: absolute; width: 18px; height: 18px; border-radius: 50%;
	border: 2px solid rgba(255, 255, 255, .45); border-top-color: #fff; animation: sala-spin .7s linear infinite;
}
.btn-ghost.loading::after, .card-atc.loading::after { border-color: rgba(16, 92, 168, .3); border-top-color: var(--brand); }
@keyframes sala-spin { to { transform: rotate(360deg); } }

.icon-btn {
	display: inline-grid; place-items: center; width: 42px; height: 42px; border-radius: 10px;
	border: 0; background: transparent; color: var(--ink);
}
.icon-btn:hover { background: var(--surface); }
.icon-btn .icon { width: 22px; height: 22px; }

.chip {
	display: inline-flex; align-items: center; gap: 6px; padding: 7px 12px; border-radius: 99px;
	border: 1px solid var(--line); background: #fff; color: var(--ink); font-size: 14px; font-weight: 500; white-space: nowrap;
}
.chip span { color: var(--muted); font-size: 12px; }
.chip:hover { border-color: var(--brand); color: var(--brand); }
.chip.is-on { background: var(--ink); border-color: var(--ink); color: #fff; }
.chip.is-on .icon { width: 14px; height: 14px; }
.chips { display: flex; flex-wrap: wrap; gap: 8px; align-items: center; margin: 0 0 16px; }
.chip-clear { font-size: 14px; font-weight: 600; margin-left: 4px; }

.badge { display: inline-block; font-size: 12px; font-weight: 700; line-height: 1.3; padding: 3px 8px; border-radius: 6px; color: #fff; }
.badge-off { background: var(--sale); }
.badge-new { background: var(--brand); }
.badge-out { background: #475569; }

input[type="text"], input[type="email"], input[type="tel"], input[type="password"], input[type="number"],
input[type="search"], input[type="url"], input[type="date"], input[type="file"], select, textarea,
.select2-container .select2-selection--single {
	width: 100%; min-height: 46px; padding: 10px 12px; border: 1px solid var(--line-2); border-radius: 10px;
	background: #fff; color: var(--ink); font-size: 16px; line-height: 1.3;
	transition: border-color .15s, box-shadow .15s;
}
textarea { min-height: 120px; resize: vertical; }
input:focus, select:focus, textarea:focus { outline: none; border-color: var(--brand); box-shadow: 0 0 0 4px rgba(16, 92, 168, .15); }
select {
	appearance: none; -webkit-appearance: none; padding-right: 36px;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%235b6b82' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center / 16px;
}
input[type="checkbox"], input[type="radio"] { width: 18px; height: 18px; accent-color: var(--brand); vertical-align: middle; }
label { font-weight: 500; color: var(--ink); }
fieldset { border: 0; padding: 0; margin: 0 0 16px; }
legend { font-weight: 700; color: var(--ink); margin-bottom: 8px; }
.form-row { margin: 0 0 14px; }
.form-row label { display: block; margin-bottom: 6px; font-size: 14px; }
.form-row .required { color: var(--sale); text-decoration: none; }
.form-row .optional { color: var(--muted); font-weight: 400; }
.form-row.woocommerce-invalid input, .form-row.woocommerce-invalid select { border-color: var(--sale); }
.form-row.woocommerce-validated input { border-color: var(--line-2); }
.woocommerce-input-wrapper { display: block; }
.form-row-first, .form-row-last { width: 100%; }
@media (min-width: 640px) {
	.form-row-first, .form-row-last { display: inline-block; width: calc(50% - 7px); vertical-align: top; }
	.form-row-first { margin-right: 10px; }
}
.select2-container { width: 100% !important; }
.select2-container .select2-selection--single { display: flex; align-items: center; height: auto; }
.select2-container .select2-selection--single .select2-selection__rendered { padding: 0; line-height: 1.3; color: var(--ink); }
.select2-container .select2-selection--single .select2-selection__arrow { top: 50%; transform: translateY(-50%); right: 8px; }
.select2-dropdown { border-color: var(--line-2); border-radius: 10px; overflow: hidden; }
.select2-results__option--highlighted[aria-selected], .select2-results__option--highlighted[data-selected] { background: var(--brand) !important; }

/* 3. Header and navigation ------------------------------------------------- */
.topbar { background: var(--brand-ink); color: #c9d8ee; font-size: 13px; }
.topbar-row { display: flex; justify-content: space-between; gap: 16px; align-items: center; min-height: 36px; }
.topbar-msg { margin: 0; display: flex; gap: 20px; }
.topbar b, .topbar strong { color: #fff; font-weight: 600; }
.topbar-links { list-style: none; margin: 0; padding: 0; display: flex; gap: 20px; }
.topbar a { color: #c9d8ee; }
.topbar a:hover { color: #fff; text-decoration: underline; }

.masthead { background: #fff; position: sticky; top: 0; z-index: 60; border-bottom: 1px solid var(--line); transition: box-shadow .2s; }
.admin-bar .masthead { top: 32px; }
.masthead.is-scrolled { box-shadow: 0 6px 20px rgba(15, 23, 42, .08); }
.masthead-row { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; gap: 24px; align-items: center; min-height: 72px; }
.menu-btn { display: none; }
.brand .custom-logo-link { display: block; }
.brand img, .brand .custom-logo { width: auto; height: 40px; max-width: 170px; object-fit: contain; }
.site-name { font-weight: 800; font-size: 22px; color: var(--brand); letter-spacing: -.02em; }

.search { position: relative; }
.search-form { display: flex; border: 2px solid var(--brand); border-radius: 12px; background: #fff; overflow: hidden; }
.search-form:focus-within { box-shadow: 0 0 0 4px rgba(16, 92, 168, .16); }
.search-cat {
	width: auto; max-width: 170px; min-height: 0; border: 0; border-right: 1px solid var(--line); border-radius: 0;
	background-color: var(--brand-tint); font-size: 13px; font-weight: 500; padding: 0 30px 0 12px; background-position: right 8px center;
}
.search-cat:focus { box-shadow: none; }
.search-input { flex: 1; min-width: 0; min-height: 44px; border: 0; border-radius: 0; padding: 10px 14px; font-size: 15px; }
.search-input:focus { box-shadow: none; }
.search-input::-webkit-search-cancel-button { display: none; }
.search-go { display: inline-flex; align-items: center; gap: 8px; border: 0; background: var(--brand); color: #fff; padding: 0 20px; font-weight: 600; }
.search-go:hover { background: var(--brand-ink); }
.search-go .icon { width: 18px; height: 18px; }
.suggest {
	position: absolute; left: 0; right: 0; top: calc(100% + 6px); z-index: 80; background: #fff; border: 1px solid var(--line);
	border-radius: 14px; box-shadow: var(--shadow-lg); overflow: hidden; max-height: min(70vh, 560px); overflow-y: auto;
}
.suggest-label { margin: 0; padding: 10px 14px 4px; font-size: 12px; font-weight: 600; color: var(--muted); }
.suggest-item { display: grid; grid-template-columns: 48px 1fr auto; gap: 12px; align-items: center; padding: 8px 14px; color: var(--ink); }
.suggest-item img { width: 48px; height: 48px; object-fit: contain; border-radius: 8px; border: 1px solid var(--line); background: #fff; }
.suggest-name { font-size: 14px; font-weight: 500; line-height: 1.3; }
.suggest-price { font-weight: 700; font-size: 14px; white-space: nowrap; }
.suggest-cat { display: flex; justify-content: space-between; padding: 8px 14px; color: var(--ink); font-weight: 500; font-size: 14px; }
.suggest-cat small { color: var(--muted); }
.suggest [aria-selected="true"], .suggest a:hover { background: var(--brand-tint); color: var(--ink); }
.suggest-all { display: block; padding: 12px 14px; border-top: 1px solid var(--line); font-weight: 600; font-size: 14px; }
.suggest-empty { margin: 0; padding: 14px; color: var(--muted); font-size: 14px; }

.hdr-actions { display: flex; align-items: center; gap: 4px; }
.act { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border-radius: 10px; color: var(--ink); }
.act:hover { background: var(--surface); color: var(--ink); }
.act .icon { width: 24px; height: 24px; }
.act-text small { display: block; color: var(--muted); font-size: 12px; line-height: 1.2; }
.act-text strong { display: block; font-size: 14px; line-height: 1.25; font-weight: 600; }
.act-icon { position: relative; display: inline-flex; }
.badge-count {
	position: absolute; top: -6px; right: -8px; min-width: 18px; height: 18px; padding: 0 5px; border-radius: 99px;
	background: var(--sale); color: #fff; font-size: 11px; font-weight: 700; display: grid; place-items: center; line-height: 1;
}
.badge-count[data-count="0"] { background: #94a3b8; }

.navbar { background: #fff; border-bottom: 1px solid var(--line); position: relative; z-index: 50; }
.navbar-row { display: flex; align-items: center; gap: 4px; min-height: 50px; }
.allcat {
	display: inline-flex; align-items: center; gap: 10px; border: 0; border-radius: 10px; padding: 9px 14px;
	background: var(--brand); color: #fff; font-weight: 600; white-space: nowrap; margin-right: 10px;
}
.allcat:hover, .allcat[aria-expanded="true"] { background: var(--brand-ink); }
.allcat .icon { width: 18px; height: 18px; }
.allcat .caret { width: 14px; height: 14px; transition: transform .2s; }
.allcat[aria-expanded="true"] .caret { transform: rotate(180deg); }
.nav-list { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 2px; flex-wrap: nowrap; overflow: visible; }
.nav-list > li { position: relative; }
.nav-list > li > a { display: inline-flex; align-items: center; gap: 4px; padding: 10px 12px; border-radius: 8px; color: var(--ink); font-weight: 500; white-space: nowrap; }
.nav-list > li > a:hover, .nav-list > li > a[aria-current] { background: var(--surface); color: var(--brand); }
.nav-list > li.is-hot > a { color: var(--sale); font-weight: 700; }
.nav-caret { width: 14px; height: 14px; }
.nav-list .sub-menu {
	position: absolute; top: 100%; left: 0; min-width: 220px; list-style: none; margin: 0; padding: 8px;
	background: #fff; border: 1px solid var(--line); border-radius: 12px; box-shadow: var(--shadow-lg);
	opacity: 0; visibility: hidden; transform: translateY(6px); transition: .15s; z-index: 70;
}
.nav-list li:hover > .sub-menu, .nav-list li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.nav-list .sub-menu a { display: block; padding: 8px 12px; border-radius: 8px; color: var(--text); font-size: 14px; }
.nav-list .sub-menu a:hover { background: var(--brand-tint); color: var(--brand); }
.nav-list > li.menu-item-has-children:last-child .sub-menu { left: auto; right: 0; }

.mega { position: absolute; left: 0; right: 0; top: 100%; background: #fff; border-bottom: 1px solid var(--line); box-shadow: 0 24px 40px rgba(15, 23, 42, .14); z-index: 55; max-height: calc(100vh - 170px); overflow: auto; }
.mega[hidden] { display: none; }
.mega-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 28px 32px; padding: 26px 0 30px; align-items: start; }
.mega-col h3 { font-size: 15px; margin: 0 0 8px; }
.mega-col h3 a { color: var(--ink); }
.mega-col h3 a:hover { color: var(--brand); }
.mega-col ul { list-style: none; margin: 0; padding: 0; }
.mega-col li a { display: flex; justify-content: space-between; gap: 8px; padding: 4px 0; font-size: 14px; color: var(--text); }
.mega-col li a:hover { color: var(--brand); }
.mega-col li span { color: var(--muted); font-size: 12px; align-self: center; }

/* Calm checkout header */
.masthead-focus { position: static; }
.masthead-focus .masthead-row { grid-template-columns: auto 1fr auto; }
.focus-secure { margin: 0; display: inline-flex; gap: 8px; align-items: center; color: var(--ok); font-weight: 600; justify-self: center; }
.focus-help { display: inline-flex; gap: 8px; align-items: center; color: var(--ink); font-weight: 600; }

/* 4. Drawers, tab bar, toast ----------------------------------------------- */
.drawer { position: fixed; inset: 0; z-index: 120; }
.drawer[hidden] { display: none; }
.drawer-scrim { position: absolute; inset: 0; background: rgba(15, 23, 42, .45); opacity: 0; transition: opacity .25s; }
.drawer-panel {
	position: absolute; top: 0; bottom: 0; width: min(420px, 92vw); background: #fff; display: flex; flex-direction: column;
	box-shadow: var(--shadow-lg); transition: transform .25s var(--ease);
}
.drawer-left .drawer-panel { left: 0; transform: translateX(-100%); }
.drawer-right .drawer-panel { right: 0; transform: translateX(100%); }
.drawer.is-open .drawer-scrim { opacity: 1; }
.drawer.is-open .drawer-panel { transform: none; }
.drawer-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 12px 12px 18px; border-bottom: 1px solid var(--line); }
.drawer-head h2 { font-size: 18px; margin: 0; }
.drawer-head .brand img { height: 32px; }
.drawer-body { flex: 1; overflow-y: auto; padding: 8px 18px 24px; -webkit-overflow-scrolling: touch; }
.drawer-heading { font-size: 13px; color: var(--muted); font-weight: 600; margin: 18px 0 6px; }
.drawer-cats { list-style: none; margin: 0; padding: 0; }
.drawer-cats > li { border-bottom: 1px solid var(--line); }
.drawer-cats summary, .drawer-link { display: flex; justify-content: space-between; align-items: center; padding: 13px 0; font-weight: 500; color: var(--ink); cursor: pointer; list-style: none; }
.drawer-cats summary::-webkit-details-marker { display: none; }
.drawer-cats summary .icon { width: 18px; height: 18px; transition: transform .2s; color: var(--muted); }
.drawer-cats details[open] summary .icon { transform: rotate(180deg); }
.drawer-cats details ul { list-style: none; margin: 0 0 10px; padding: 0 0 0 12px; border-left: 2px solid var(--brand-tint); }
.drawer-cats details a { display: block; padding: 8px 0; color: var(--text); }
.drawer-nav .nav-list { display: block; }
.drawer-nav .nav-list > li > a { display: flex; padding: 12px 0; border-radius: 0; border-bottom: 1px solid var(--line); }
.drawer-nav .nav-list > li > a:hover { background: none; }
.drawer-nav .nav-caret { display: none; }
.drawer-nav .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; box-shadow: none; border: 0; padding: 0 0 0 12px; min-width: 0; }
.drawer-contact { margin-top: 20px; }

.tabbar { display: none; }
.toast {
	position: fixed; left: 50%; bottom: 24px; z-index: 150; transform: translate(-50%, 20px); opacity: 0; pointer-events: none;
	background: var(--ink); color: #fff; padding: 11px 16px; border-radius: 10px; font-size: 14px; transition: .25s;
}
.toast.is-on { opacity: 1; transform: translate(-50%, 0); }

/* 5. Home page ------------------------------------------------------------- */
.hero { padding-top: 16px; }
.hero-grid { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 16px; align-items: start; }
.cat-rail { background: #fff; border-radius: var(--r); box-shadow: var(--shadow-sm); position: relative; border: 1px solid var(--line); }
.cat-rail ul { list-style: none; margin: 0; padding: 6px; }
.cat-rail li > a { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 12px; border-radius: 8px; font-size: 14px; font-weight: 500; color: var(--ink); }
.cat-rail li > a .icon { width: 14px; height: 14px; color: #94a3b8; }
.cat-rail li:hover > a, .cat-rail li:focus-within > a { background: var(--brand-tint); color: var(--brand); }
.cat-fly {
	display: none; position: absolute; left: calc(100% - 4px); top: 0; min-height: 100%; width: min(540px, 56vw); z-index: 30;
	background: #fff; border-radius: var(--r); box-shadow: var(--shadow-lg); padding: 20px 24px;
	grid-template-columns: 1fr 1fr; gap: 2px 24px; align-content: start; border: 1px solid var(--line);
}
.cat-rail li:hover > .cat-fly, .cat-rail li:focus-within > .cat-fly { display: grid; }
.cat-fly-title { grid-column: 1 / -1; margin: 0 0 8px; font-size: 16px; font-weight: 700; }
.cat-fly-title a { color: var(--ink); }
.cat-fly a { padding: 6px 0; font-size: 14px; color: var(--text); }
.cat-fly a:hover { color: var(--brand); }
.cat-rail-all { display: flex; align-items: center; gap: 6px; padding: 11px 18px; border-top: 1px solid var(--line); font-weight: 600; font-size: 14px; }
.cat-rail-all .icon { width: 16px; height: 16px; }
.hero-main { min-width: 0; display: grid; gap: 16px; }
.slider { position: relative; border-radius: var(--r); overflow: hidden; background: #e8edf3; box-shadow: var(--shadow-sm); aspect-ratio: var(--ratio); }
.slider-track { display: flex; height: 100%; transition: transform .55s var(--ease); touch-action: pan-y; }
.slide { flex: 0 0 100%; display: block; height: 100%; }
.slide picture, .slide img { width: 100%; height: 100%; }
.slide img { object-fit: cover; }
.slider-btn {
	position: absolute; top: 50%; transform: translateY(-50%); width: 40px; height: 40px; border-radius: 50%; border: 0;
	background: rgba(255, 255, 255, .94); box-shadow: 0 2px 10px rgba(15, 23, 42, .25); display: grid; place-items: center;
	color: var(--ink); opacity: 0; transition: opacity .2s;
}
.slider:hover .slider-btn, .slider:focus-within .slider-btn { opacity: 1; }
.slider-btn .icon { width: 18px; height: 18px; }
.slider-btn.prev { left: 12px; }
.slider-btn.next { right: 12px; }
.slider-dots { position: absolute; left: 0; right: 0; bottom: 10px; display: flex; justify-content: center; gap: 6px; }
.slider-dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 99px; background: rgba(255, 255, 255, .65); box-shadow: 0 0 0 1px rgba(15, 23, 42, .2); transition: width .2s; }
.slider-dots button[aria-current="true"] { width: 24px; background: #fff; }
.quick { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; }
.quick-card {
	display: grid; grid-template-columns: auto 1fr auto; gap: 14px; align-items: center; padding: 16px 18px; border-radius: var(--r);
	background: #fff; border: 1px solid var(--line); color: var(--ink); transition: transform .15s, box-shadow .15s;
}
.quick-card:hover { transform: translateY(-2px); box-shadow: var(--shadow); color: var(--ink); }
.quick-icon { width: 42px; height: 42px; border-radius: 12px; display: grid; place-items: center; background: var(--brand-tint); color: var(--brand); }
.quick-text b { display: block; font-size: 16px; line-height: 1.25; }
.quick-text span { display: block; font-size: 13px; color: var(--muted); margin-top: 2px; }
.quick-arrow { color: var(--muted); width: 18px; height: 18px; }
.quick-card.is-sale { background: var(--sale); border-color: var(--sale); color: #fff; }
.quick-card.is-sale .quick-icon { background: rgba(255, 255, 255, .18); color: #fff; }
.quick-card.is-sale .quick-text span, .quick-card.is-sale .quick-arrow { color: #ffe1dc; }
.quick-card.is-tint { background: var(--brand-tint); border-color: #d6e5f6; }
.quick-card.is-tint .quick-icon { background: #fff; }
.hero-intro { margin-top: 20px; }
.hero-intro h1 { font-size: 15px; font-weight: 700; margin: 0 0 2px; color: var(--ink); letter-spacing: 0; }
.hero-intro p { margin: 0; font-size: 14px; color: var(--muted); max-width: 80ch; }

.trust { margin-top: 16px; }
.trust ul { list-style: none; margin: 0; padding: 16px 8px; display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border-radius: var(--r); border: 1px solid var(--line); }
.trust li { display: flex; gap: 12px; align-items: center; padding: 0 16px; border-left: 1px solid var(--line); }
.trust li:first-child { border-left: 0; }
.trust .icon { width: 30px; height: 30px; color: var(--brand); }
.trust b { display: block; color: var(--ink); font-size: 14px; line-height: 1.3; }
.trust span { display: block; font-size: 13px; color: var(--muted); line-height: 1.35; }
.trust-spaced { margin: 40px 0 8px; }
.trust-compact { margin: 32px 0 0; }

.sec { margin-top: 40px; }
.sec-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.sec-head h2 { font-size: 24px; margin: 0; }
.sec-head p { margin: 4px 0 0; color: var(--muted); font-size: 14px; }
.link-more { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 14px; white-space: nowrap; }
.link-more .icon { width: 16px; height: 16px; }
.link-more:hover { text-decoration: underline; }

.rail { position: relative; }
.rail-track { display: grid; grid-auto-flow: column; overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: none; list-style: none; margin: 0; padding: 4px 2px 10px; }
.rail-track::-webkit-scrollbar { display: none; }
.rail-track > li { scroll-snap-align: start; }
.tiles { grid-template-rows: repeat(2, auto); grid-auto-columns: calc((100% - 6 * 12px) / 7); gap: 12px; padding-bottom: 16px; }
.tile { display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; color: var(--ink); transition: border-color .15s, box-shadow .15s, transform .15s; }
.tile:hover { border-color: var(--brand); box-shadow: var(--shadow); transform: translateY(-2px); color: var(--brand); }
/* Category tile picture. Old tiles carry their own icon and name below 63% of their height (measured on all 20),
   so the picture is drawn 1/0.62 times the box height from the top: the whole photo shows, the printed icon never does.
   New "Tile image" uploads (clean photos) are shown whole. */
.tile-img { position: relative; display: block; aspect-ratio: 236 / 173; overflow: hidden; background: #fff; }
.tile-img img.is-legacy-tile { position: absolute; top: 0; left: 50%; transform: translateX(-50%); height: calc(100% / 0.62); width: auto; max-width: none; object-fit: unset; }
.tile-img img.is-clean-tile { width: 100%; height: 100%; object-fit: contain; }
.tile-img img { width: 100%; height: 100%; object-fit: cover; object-position: top center; }
.rail-track, .product-rail { overscroll-behavior-x: contain; }
.tile-img .icon { width: 40px; height: 40px; color: var(--line-2); }
.tile-name { padding: 8px 10px 12px; font-size: 13px; font-weight: 600; line-height: 1.3; text-align: center; }
.rail-btn {
	position: absolute; top: 50%; transform: translateY(-50%); z-index: 2; width: 40px; height: 40px; border-radius: 50%;
	border: 1px solid var(--line); background: #fff; box-shadow: var(--shadow); display: grid; place-items: center; color: var(--ink);
}
.rail-btn:hover { background: var(--brand-tint); }
.rail-btn[disabled] { opacity: 0; pointer-events: none; }
.rail-btn.prev { left: -14px; }
.rail-btn.next { right: -14px; }
.rail-btn .icon { width: 18px; height: 18px; }

.duo { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.duo-item { position: relative; display: block; border-radius: var(--r); overflow: hidden; background: #e8edf3; box-shadow: var(--shadow-sm); transition: transform .15s, box-shadow .15s; }
.duo-item:hover { transform: translateY(-2px); box-shadow: var(--shadow); }
.duo-item img { width: 100%; height: 100%; object-fit: cover; }
.duo-caption { position: absolute; left: 16px; bottom: 16px; background: rgba(255, 255, 255, .95); border-radius: 10px; padding: 10px 14px; color: var(--ink); }
.duo-caption span { display: block; font-size: 13px; color: var(--muted); }

/* No outer box: the heading and cards sit straight on the page */
.savings-panel, .deals-panel { background: none; border: 0; border-radius: 0; padding: 0; }
.savings-panel .sec-head h2, .deals-panel .sec-head h2 { color: var(--sale); }

.tabs { display: flex; gap: 8px; overflow-x: auto; scrollbar-width: none; margin: 0 0 16px; padding-bottom: 2px; }
.tabs::-webkit-scrollbar { display: none; }
.tabs [role="tab"] { border: 1px solid var(--line); background: #fff; border-radius: 99px; padding: 8px 16px; font-weight: 500; white-space: nowrap; color: var(--ink); }
.tabs [role="tab"]:hover { border-color: var(--brand); }
.tabs [role="tab"][aria-selected="true"] { background: var(--ink); border-color: var(--ink); color: #fff; }

.biz { display: grid; grid-template-columns: 1.05fr 1fr; background: var(--brand-ink); border-radius: var(--r-lg); overflow: hidden; color: #c9d8ee; }
.biz-text { padding: 40px 44px; display: flex; flex-direction: column; gap: 14px; justify-content: center; align-items: flex-start; }
.biz-text .kicker { color: #9cc0ec; margin: 0; }
.biz h2 { color: #fff; font-size: 28px; margin: 0; }
.biz p { margin: 0; max-width: 48ch; }
.biz-links { list-style: none; margin: 4px 0 6px; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }
.biz-links a { display: block; border: 1px solid rgba(255, 255, 255, .28); border-radius: 99px; padding: 6px 14px; font-size: 14px; color: #fff; }
.biz-links a:hover { background: rgba(255, 255, 255, .12); color: #fff; }
.biz-img { background: #e9f0fb; min-height: 240px; }
.biz-img img { width: 100%; height: 100%; object-fit: cover; object-position: 85% center; }

.brands { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(6, 1fr); gap: 12px; }
.brand-card { position: relative; display: block; overflow: hidden; height: 100px; padding: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--r); transition: border-color .15s, box-shadow .15s; }
.brand-card:hover { border-color: var(--brand); box-shadow: var(--shadow); }
/* The logo files are squares with the name in the middle 64–78% of the width; drawn at 76% width and centred, so the name takes about half the box */
.brand-card img { position: absolute; left: 50%; top: 50%; width: 76%; max-width: none; height: auto; transform: translate(-50%, -50%); }

.why { display: grid; grid-template-columns: 1fr 1fr; gap: 40px; align-items: center; background: #fff; border-radius: var(--r-lg); padding: 40px 44px; border: 1px solid var(--line); }
.why h2 { font-size: 28px; }
.why p { max-width: 54ch; }
.stats { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.stats li { background: var(--surface); border-radius: var(--r); padding: 18px; }
.stats b { display: block; font-size: 30px; font-weight: 800; color: var(--brand); letter-spacing: -.02em; line-height: 1.1; }
.stats span { font-size: 14px; color: var(--muted); }
.home .site-main, .site-main.home { padding-bottom: 8px; }

/* 6. Product cards --------------------------------------------------------- */
ul.products { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; }
ul.products.cols-5 { grid-template-columns: repeat(5, minmax(0, 1fr)); }
ul.products.cols-6 { grid-template-columns: repeat(6, minmax(0, 1fr)); }
ul.products.columns-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
ul.products::before, ul.products::after { display: none; }
.card { position: relative; display: flex; flex-direction: column; background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; transition: box-shadow .15s, border-color .15s; min-width: 0; }
.card:hover { box-shadow: var(--shadow); border-color: var(--line-2); }
.card-media { position: relative; display: block; padding: 12px; background: #fff; }
.card-media img { width: 100%; aspect-ratio: 1; object-fit: contain; transition: transform .3s var(--ease); }
.card:hover .card-media img { transform: scale(1.03); }
.card-badges { position: absolute; top: 10px; left: 10px; right: 10px; display: flex; justify-content: space-between; gap: 6px; pointer-events: none; }
.card-badges .badge-new { margin-left: auto; }
.card-body { display: flex; flex-direction: column; gap: 4px; flex: 1; padding: 2px 14px 14px; }
.card-cat { margin: 0; font-size: 12px; color: var(--muted); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.card-title { margin: 0; font-size: 14px; font-weight: 600; line-height: 1.35; letter-spacing: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; min-height: 2.7em; }
.card-title a { color: var(--ink); }
.card-title a:hover { color: var(--brand); }
.card-rating { margin: 0; display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); }
.card-price { margin-top: 4px; }
.card-actions { margin-top: auto; padding-top: 10px; display: flex; flex-wrap: wrap; gap: 6px; align-items: center; }
.card-actions .button { flex: 1; min-height: 40px; padding: 8px 12px; font-size: 14px; background: #fff; color: var(--brand); }
.card-actions .button:hover { background: var(--brand); color: #fff; }
.card-actions .button.added { background: var(--ok); border-color: var(--ok); color: #fff; }
.card-actions .added_to_cart { flex-basis: 100%; text-align: center; font-size: 13px; font-weight: 600; }
.card.outofstock .card-media img { opacity: .55; }

ul.products.product-rail { grid-template-columns: none; grid-auto-flow: column; grid-auto-columns: calc((100% - 14px * 5) / 6); overflow-x: auto; scroll-snap-type: x proximity; scrollbar-width: thin; padding-bottom: 6px; }
.product-rail > li { scroll-snap-align: start; }
ul.products.product-rail.cols-6 { grid-template-columns: none; }

/* Prices (WooCommerce markup) and the Koko line the Koko plugin adds */
.price { display: flex; flex-wrap: wrap; align-items: baseline; gap: 2px 8px; color: var(--ink); font-weight: 800; font-size: 18px; letter-spacing: -.01em; line-height: 1.3; }
.price > br { display: none; }
.price ins { order: 1; text-decoration: none; color: var(--ink); }
.price del { order: 2; font-size: 13px; font-weight: 500; color: var(--muted); letter-spacing: 0; }
.price del .amount { text-decoration: line-through; }
.price .screen-reader-text { order: 9; }
.price .woocommerce-Price-currencySymbol { margin-right: 2px; }
.price [class*="price-installments"] {
	order: 3; flex-basis: 100%; display: flex; flex-wrap: wrap; align-items: center; gap: 4px; margin-top: 6px;
	font-size: 12px !important; font-weight: 500 !important; color: var(--text) !important; line-height: 1.5 !important; letter-spacing: 0;
	background: var(--brand-tint); border-radius: 6px; padding: 3px 8px;
}
.price [class*="price-installments"] img.koko-logo { height: 17px !important; width: auto !important; margin-left: 2px; }
.price [class*="price-installments"] img.koko-info { display: none !important; }
.price [class*="price-installments"] > span { display: inline-flex; align-items: center; gap: 2px; }

.star-rating { position: relative; display: inline-block; width: 5.4em; height: 1.1em; line-height: 1; font-size: 13px; overflow: hidden; letter-spacing: .08em; }
.star-rating::before { content: "★★★★★"; position: absolute; inset: 0; color: #d4dae3; }
.star-rating span { position: absolute; top: 0; left: 0; height: 100%; overflow: hidden; padding-top: 1.5em; }
.star-rating span::before { content: "★★★★★"; position: absolute; top: 0; left: 0; color: var(--star); }

/* 7. Shop pages ------------------------------------------------------------ */
.crumbs { font-size: 13px; color: var(--muted); margin: 0 0 10px; display: flex; flex-wrap: wrap; gap: 4px 8px; align-items: center; }
.crumbs a { color: var(--muted); }
.crumbs a:hover { color: var(--brand); text-decoration: underline; }
.crumbs .sep { color: #b6c2d1; }
.crumbs .breadcrumb_last, .crumbs > span:last-child { color: var(--ink); }

.shop-hero { background: #fff; border-bottom: 1px solid var(--line); padding: 20px 0 18px; margin-bottom: 20px; }
.shop-hero .page-title, .page-hero .page-title { font-size: 30px; margin: 0; }
.shop-desc { color: var(--muted); max-width: 80ch; margin-top: 6px; }
.shop-desc p { margin: 0 0 .5em; }
.shop-banner { margin-top: 16px; border-radius: var(--r); overflow: hidden; background: var(--surface); }
.shop-banner img { width: 100%; max-height: 300px; object-fit: cover; }
.subcats { list-style: none; margin: 16px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px; }

.shop-layout { display: grid; grid-template-columns: 250px minmax(0, 1fr); gap: 24px; align-items: start; padding-bottom: 40px; }
.shop-main { min-width: 0; }
.filters { position: sticky; top: 92px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 6px 16px 16px; max-height: calc(100vh - 110px); overflow-y: auto; }
.admin-bar .filters { top: 124px; }
.filters-head { display: none; }
.filter-group { padding: 14px 0; border-bottom: 1px solid var(--line); }
.filter-group:last-of-type { border-bottom: 0; }
.filter-title { font-size: 14px; margin: 0 0 10px; }
.filter-cats { list-style: none; margin: 0; padding: 0; }
.filter-cats a { display: flex; justify-content: space-between; gap: 8px; padding: 6px 8px; margin: 0 -8px; border-radius: 8px; font-size: 14px; color: var(--text); }
.filter-cats a span { color: var(--muted); font-size: 12px; }
.filter-cats a:hover { background: var(--surface); color: var(--brand); }
.filter-cats a[aria-current] { background: var(--brand-tint); color: var(--brand); font-weight: 600; }
.filter-up { justify-content: flex-start !important; align-items: center; font-weight: 600; color: var(--brand) !important; }
.filter-up .icon { width: 16px; height: 16px; }
.price-bands { display: flex; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
.price-bands .chip { font-size: 13px; padding: 6px 10px; }
.price-inputs { display: flex; align-items: center; gap: 8px; }
.price-inputs label { flex: 1; }
.price-inputs input { min-height: 40px; font-size: 14px; padding: 8px 10px; }
.switch { display: flex; align-items: center; gap: 10px; padding: 6px 0; font-weight: 400; color: var(--text); cursor: pointer; }
.filter-form .btn { margin-top: 14px; }

.toolbar { display: flex; align-items: center; gap: 12px; margin-bottom: 14px; flex-wrap: wrap; }
.result-count { margin: 0 auto 0 0; color: var(--muted); font-size: 14px; }
.filters-toggle { display: none; }
.sort .woocommerce-ordering { margin: 0; }
.sort select { min-height: 40px; padding: 8px 36px 8px 12px; font-size: 14px; width: auto; }

.pager { margin: 28px 0 0; display: flex; justify-content: center; }
.pager ul, .woocommerce-pagination ul.page-numbers { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px; flex-wrap: wrap; justify-content: center; }
.page-numbers li > *, .woocommerce-pagination .page-numbers li > * {
	display: grid; place-items: center; min-width: 42px; height: 42px; padding: 0 10px; border-radius: 10px;
	background: #fff; border: 1px solid var(--line); color: var(--ink); font-weight: 600;
}
.page-numbers li > a:hover { border-color: var(--brand); color: var(--brand); }
.page-numbers .current { background: var(--ink) !important; border-color: var(--ink) !important; color: #fff !important; }
.page-numbers .icon { width: 18px; height: 18px; }
.woocommerce-pagination { margin-top: 28px; }

.empty-state { background: #fff; border: 1px dashed var(--line-2); border-radius: var(--r-lg); padding: 48px 24px; text-align: center; }
.empty-state > .icon { width: 44px; height: 44px; color: var(--line-2); margin: 0 auto 10px; }
.empty-state h2 { font-size: 20px; }
.empty-state p { color: var(--muted); }
.empty-actions { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 16px 0 0; }

.flash-hero { background: linear-gradient(120deg, #7a1209, var(--sale) 55%, #f97316); color: #ffe6e1; padding: 26px 0 30px; margin-bottom: 24px; }
.flash-hero .crumbs, .flash-hero .crumbs a, .flash-hero .crumbs .sep, .flash-hero .crumbs span { color: #ffd5cd; }
.flash-hero .kicker { color: #fff; }
.flash-hero .page-title { color: #fff; font-size: 34px; margin: 0; }
.flash-hero .page-intro { margin: 6px 0 0; }

.cat-cards { list-style: none; margin: 24px 0 40px; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 16px; }
.cat-card { display: grid; grid-template-columns: 112px 1fr; gap: 16px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 14px; transition: box-shadow .15s, border-color .15s; }
.cat-card:hover { box-shadow: var(--shadow); border-color: var(--line-2); }
.cat-card-media { display: grid; place-items: center; border-radius: 10px; overflow: hidden; background: var(--surface); aspect-ratio: 236 / 279; }
.cat-card-media img { width: 100%; height: 100%; object-fit: cover; }
.cat-card-media .icon { width: 36px; height: 36px; color: var(--line-2); }
.cat-card h2 { font-size: 17px; margin: 2px 0 2px; }
.cat-card h2 a { color: var(--ink); }
.cat-card h2 a:hover { color: var(--brand); }
.cat-card .muted { font-size: 13px; margin: 0 0 8px; }
.cat-card-kids { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 12px; font-size: 13px; }

/* 8. Product page ---------------------------------------------------------- */
.site-main.pdp { background: #fff; padding: 18px 0 48px; }
.pdp div.product { display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, 1fr); gap: 20px 48px; align-items: start; position: relative; }
.pdp div.product > .woocommerce-product-gallery, .pdp div.product > .images { grid-column: 1; grid-row: 1 / span 2; }
.pdp div.product > .summary { grid-column: 2; grid-row: 1; }
.pdp div.product > *:not(.summary):not(.woocommerce-product-gallery):not(.images):not(.onsale) { grid-column: 1 / -1; }
.pdp div.product > .onsale { position: absolute; top: 14px; left: 14px; z-index: 5; font-size: 13px; padding: 5px 10px; }

.woocommerce-product-gallery { position: relative; margin: 0; }
.woocommerce-product-gallery .flex-viewport, .woocommerce-product-gallery__wrapper > .woocommerce-product-gallery__image:first-child { border: 1px solid var(--line); border-radius: var(--r-lg); overflow: hidden; background: #fff; }
.woocommerce-product-gallery__wrapper { margin: 0; }
.woocommerce-product-gallery__image a { display: block; }
.woocommerce-product-gallery__image img { width: 100%; height: auto; aspect-ratio: 1; object-fit: contain; background: #fff; }
.woocommerce-product-gallery .zoomImg { background: #fff; }
.woocommerce-product-gallery__trigger {
	position: absolute; top: 14px; right: 14px; z-index: 9; width: 40px; height: 40px; border-radius: 50%;
	background: #fff; box-shadow: var(--shadow); display: grid; place-items: center; text-indent: -9999px; overflow: hidden;
}
.woocommerce-product-gallery__trigger::before {
	content: ""; position: absolute; inset: 0; text-indent: 0;
	background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%230f172a' stroke-width='2' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m20 20-3.5-3.5M11 8v6M8 11h6'/%3E%3C/svg%3E") no-repeat center;
}
.woocommerce-product-gallery__trigger img { display: none !important; }
.flex-control-thumbs { list-style: none; margin: 12px 0 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; }
.flex-control-thumbs img { border: 1px solid var(--line); border-radius: 10px; aspect-ratio: 1; object-fit: contain; background: #fff; opacity: .65; cursor: pointer; transition: opacity .15s, border-color .15s; }
.flex-control-thumbs img:hover, .flex-control-thumbs img.flex-active { opacity: 1; border-color: var(--brand); }
.woocommerce-product-gallery .flex-direction-nav { display: none; }

.summary .pdp-kicker { display: flex; flex-wrap: wrap; gap: 8px; margin: 0 0 8px; font-size: 13px; color: var(--muted); }
.summary .pdp-kicker a { font-weight: 600; }
.summary .product_title { font-size: 28px; line-height: 1.2; margin: 0 0 10px; }
.woocommerce-product-rating { display: flex; align-items: center; gap: 8px; margin: 0 0 12px; font-size: 14px; }
.woocommerce-product-rating .woocommerce-review-link { color: var(--muted); }
.summary > .price { font-size: 30px; margin: 8px 0 14px; padding-bottom: 16px; border-bottom: 1px solid var(--line); }
.summary > .price del { font-size: 17px; }
.summary > .price [class*="price-installments"] { font-size: 14px !important; padding: 6px 10px; flex-basis: auto; margin-top: 10px; width: auto; }
.summary > .price [class*="price-installments"] img.koko-logo { height: 21px !important; }
.woocommerce-product-details__short-description { color: var(--text); margin: 0 0 16px; }
.woocommerce-product-details__short-description ul { padding-left: 1.2em; margin: 0; }
.woocommerce-product-details__short-description li { margin: 4px 0; }
.stock { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; margin: 0 0 12px; }
.stock::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.stock.in-stock { color: var(--ok); }
.stock.out-of-stock { color: var(--sale); }
.stock.available-on-backorder { color: var(--warn); }
form.cart { display: flex; flex-wrap: wrap; gap: 10px; align-items: stretch; margin: 0 0 16px; }
form.cart.variations_form { display: block; }
form.cart .single_add_to_cart_button, form.cart .buy-now-button { flex: 1 1 180px; min-height: 50px; font-size: 16px; border-radius: 12px; }
form.cart .buy-now-button { background: var(--ink); border-color: var(--ink); color: #fff; }
form.cart .buy-now-button:hover { background: #1e293b; border-color: #1e293b; }
.woocommerce-variation-add-to-cart { display: flex; flex-wrap: wrap; gap: 10px; }
table.variations { width: 100%; border-collapse: collapse; margin: 0 0 12px; }
table.variations th, table.variations td { display: block; padding: 0; text-align: left; }
table.variations th label { font-size: 14px; margin: 8px 0 6px; display: block; }
.reset_variations { display: inline-block; margin-top: 6px; font-size: 13px; }
.woocommerce-variation-price { margin: 8px 0; }
.woocommerce-variation-price .price { font-size: 24px; }

div.quantity { display: inline-flex; align-items: stretch; }
.qty-stepper { border: 1px solid var(--line-2); border-radius: 12px; overflow: hidden; background: #fff; }
.qty-stepper input.qty { width: 52px; min-height: 48px; border: 0; border-radius: 0; text-align: center; padding: 0; font-weight: 600; -moz-appearance: textfield; }
.qty-stepper input.qty::-webkit-outer-spin-button, .qty-stepper input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.qty-stepper input.qty:focus { box-shadow: none; }
.qty-btn { width: 42px; border: 0; background: var(--surface); color: var(--ink); font-size: 20px; line-height: 1; }
.qty-btn:hover { background: var(--brand-tint); color: var(--brand); }
.quantity:not(.qty-stepper) input.qty { width: 70px; text-align: center; }

.pdp-deal { margin: 0 0 14px; }
.pdp-assure { list-style: none; margin: 4px 0 0; padding: 14px 16px; background: var(--surface); border-radius: var(--r); display: grid; gap: 10px; }
.pdp-assure li { display: flex; gap: 10px; align-items: center; font-size: 14px; color: var(--text); }
.pdp-assure .icon { color: var(--brand); width: 20px; height: 20px; }
.product_meta { font-size: 13px; color: var(--muted); }

.pdp-sections { margin-top: 32px; }
.pdp-jump { position: sticky; top: 72px; z-index: 20; background: rgba(255, 255, 255, .96); backdrop-filter: saturate(1.4) blur(8px); border-bottom: 1px solid var(--line); margin-bottom: 8px; }
.admin-bar .pdp-jump { top: 104px; }
.pdp-jump ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 4px; overflow-x: auto; scrollbar-width: none; }
.pdp-jump a { display: block; padding: 14px 14px 12px; font-weight: 600; color: var(--muted); border-bottom: 2px solid transparent; white-space: nowrap; }
.pdp-jump a:hover, .pdp-jump a.is-on { color: var(--ink); border-bottom-color: var(--brand); }
.pdp-section { padding: 28px 0; border-bottom: 1px solid var(--line); max-width: 920px; }
.pdp-section > h2:first-child { font-size: 22px; margin-bottom: 14px; }
.pdp-section-description img { border-radius: var(--r); height: auto; }
.pdp-section-description iframe { max-width: 100%; }
.pdp-section table, .shop_attributes { width: 100%; border-collapse: collapse; font-size: 14px; }
.shop_attributes th, .shop_attributes td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.shop_attributes th { width: 34%; color: var(--muted); font-weight: 500; background: var(--surface); }
.shop_attributes td p { margin: 0; }

#reviews .woocommerce-Reviews-title { font-size: 22px; }
#reviews .commentlist { list-style: none; margin: 0 0 24px; padding: 0; display: grid; gap: 16px; }
#reviews .comment_container { display: grid; grid-template-columns: 44px 1fr; gap: 12px; }
#reviews .avatar { border-radius: 50%; width: 44px; height: 44px; }
#reviews .comment-text { background: var(--surface); border-radius: var(--r); padding: 14px 16px; }
#reviews .comment-text .star-rating { float: right; }
#reviews .meta { font-size: 13px; color: var(--muted); }
#review_form_wrapper { background: var(--surface); border-radius: var(--r); padding: 20px; max-width: 680px; }
.comment-reply-title { display: block; font-size: 18px; font-weight: 700; color: var(--ink); margin-bottom: 10px; }
p.stars { margin: 4px 0 12px; }
p.stars span { display: inline-flex; gap: 2px; }
p.stars a { position: relative; display: inline-block; width: 28px; height: 28px; overflow: hidden; text-indent: -999em; }
p.stars a::before { content: "★"; position: absolute; inset: 0; text-indent: 0; font-size: 26px; line-height: 28px; color: #cbd5e1; }
p.stars:hover a::before, p.stars.selected a::before { color: var(--star); }
p.stars a:hover ~ a::before, p.stars.selected a.active ~ a::before { color: #cbd5e1; }

.related, .upsells, .cross-sells { margin-top: 36px; }
.related > h2, .upsells > h2, .cross-sells > h2 { font-size: 22px; margin-bottom: 14px; }
.related ul.products, .upsells ul.products { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.sticky-atc { display: none; }

/* 9. WooCommerce basics: notices, tables, buttons ------------------------- */
.woocommerce-notices-wrapper:empty { display: none; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .wc-block-components-notice-banner {
	list-style: none; display: flex; flex-wrap: wrap; align-items: center; gap: 10px 16px; margin: 0 0 18px; padding: 14px 16px;
	border-radius: var(--r); border: 1px solid; font-size: 14px; background: #fff;
}
.woocommerce-message { border-color: #bbe5c8; background: var(--ok-tint); color: #14532d; }
.woocommerce-info { border-color: #cfe0f5; background: var(--brand-tint); color: var(--brand-ink); }
.woocommerce-error { border-color: #f8c9c3; background: var(--sale-tint); color: #7f1d1d; display: block; }
.woocommerce-error li { margin: 2px 0; }
.woocommerce-message .button, .woocommerce-info .button { order: 2; margin-left: auto; min-height: 36px; padding: 6px 14px; font-size: 14px; background: #fff; color: var(--brand); }
.woocommerce-message a:not(.button), .woocommerce-info a:not(.button) { font-weight: 600; }
.demo_store { margin: 0; padding: 10px var(--gutter); background: var(--ink); color: #fff; text-align: center; font-size: 14px; }
.demo_store a { color: #fff; text-decoration: underline; margin-left: 8px; }

.shop_table { width: 100%; border-collapse: separate; border-spacing: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; font-size: 14px; }
.shop_table th, .shop_table td { padding: 12px 14px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: middle; }
.shop_table thead th { background: var(--surface); color: var(--muted); font-weight: 600; font-size: 13px; }
.shop_table tr:last-child > * { border-bottom: 0; }
.shop_table tfoot th { color: var(--muted); font-weight: 500; }
.shop_table .order-total td, .shop_table .order-total th { font-size: 16px; font-weight: 800; color: var(--ink); }

/* 10. Mini cart ------------------------------------------------------------ */
.woocommerce-mini-cart { list-style: none; margin: 0; padding: 0; }
.woocommerce-mini-cart-item { position: relative; display: grid; grid-template-columns: 64px 1fr; gap: 4px 12px; padding: 14px 28px 14px 0; border-bottom: 1px solid var(--line); font-size: 14px; }
.woocommerce-mini-cart-item > a:not(.remove) { display: contents; color: var(--ink); font-weight: 600; }
.woocommerce-mini-cart-item img { grid-row: span 2; width: 64px; height: 64px; object-fit: contain; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.woocommerce-mini-cart-item .quantity { color: var(--muted); grid-column: 2; }
.woocommerce-mini-cart-item .remove { position: absolute; top: 12px; right: 0; width: 24px; height: 24px; border-radius: 50%; display: grid; place-items: center; color: var(--muted); font-size: 18px; line-height: 1; }
.woocommerce-mini-cart-item .remove:hover { background: var(--sale-tint); color: var(--sale); }
.woocommerce-mini-cart-item .variation { grid-column: 2; margin: 0; font-size: 12px; color: var(--muted); }
.woocommerce-mini-cart__total { display: flex; justify-content: space-between; margin: 16px 0; font-size: 16px; color: var(--ink); }
.woocommerce-mini-cart__buttons { display: grid; gap: 10px; margin: 0; }
.woocommerce-mini-cart__buttons .button:not(.checkout) { background: #fff; color: var(--brand); }
.woocommerce-mini-cart__empty-message { padding: 40px 0; text-align: center; color: var(--muted); }

/* 11. Cart, checkout, account --------------------------------------------- */
.page-cart, .page-checkout, .page-account { padding: 18px 0 48px; }
.page-cart .page-title, .page-checkout .page-title, .auth-intro .page-title { font-size: 28px; margin: 4px 0 18px; }
.cart-content > .woocommerce { display: grid; grid-template-columns: minmax(0, 1fr) 380px; gap: 24px; align-items: start; }
.cart-content > .woocommerce > .woocommerce-notices-wrapper, .cart-content > .woocommerce > .cart-empty, .cart-content > .woocommerce > .return-to-shop, .cart-content > .woocommerce > .wc-empty-cart-message { grid-column: 1 / -1; }
.woocommerce-cart-form { min-width: 0; }
.woocommerce-cart-form th.product-remove { width: 48px; }
.woocommerce-cart-form th.product-thumbnail { width: 100px; }
.woocommerce-cart-form th.product-price, .woocommerce-cart-form th.product-subtotal { width: 110px; }
.woocommerce-cart-form th.product-quantity { width: 150px; }
.woocommerce-cart-form td.actions { text-align: right; }
.woocommerce-cart-form td.actions .coupon { float: left; flex-wrap: nowrap; }
.woocommerce-cart-form td.actions::after { content: ""; display: table; clear: both; }
.entry-content .woocommerce a:not(.button) { text-decoration: none; }
.cart_totals h2, .cart-collaterals h2 { margin-top: 0; }
.woocommerce-notices-wrapper:focus, [tabindex="-1"]:focus { outline: none; }
.entry-content .woocommerce h2:first-child, .account-content #customer_login h2, .woocommerce-MyAccount-content h2:first-child { margin-top: 0; }
.password-input { position: relative; display: block; }
.password-input input { padding-right: 46px; }
.show-password-input {
	position: absolute; right: 6px; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border: 0; border-radius: 8px; padding: 0;
	background: transparent url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%235b6b82' stroke-width='1.8' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E") no-repeat center;
}
.show-password-input.display-password { background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' fill='none' stroke='%23105ca8' stroke-width='1.8' stroke-linecap='round' viewBox='0 0 24 24'%3E%3Cpath d='M2 12s3.6-7 10-7 10 7 10 7-3.6 7-10 7S2 12 2 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M3 3l18 18'/%3E%3C/svg%3E"); }
.show-password-input:hover { background-color: var(--surface); }
.woocommerce-cart-form .shop_table { border-radius: var(--r); }
.woocommerce-cart-form .product-thumbnail img { width: 72px; height: 72px; object-fit: contain; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.woocommerce-cart-form .product-name a { color: var(--ink); font-weight: 600; }
.woocommerce-cart-form .product-remove a { display: grid; place-items: center; width: 28px; height: 28px; border-radius: 50%; color: var(--muted); font-size: 20px; }
.woocommerce-cart-form .product-remove a:hover { background: var(--sale-tint); color: var(--sale); }
.woocommerce-cart-form .product-subtotal { font-weight: 700; color: var(--ink); }
.woocommerce-cart-form td.actions { background: var(--surface); }
.woocommerce-cart-form .coupon { display: inline-flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.woocommerce-cart-form .coupon label { display: none; }
.woocommerce-cart-form .coupon input { width: 180px; min-height: 42px; }
.woocommerce-cart-form .coupon .button, .woocommerce-cart-form button[name="update_cart"] { min-height: 42px; background: #fff; color: var(--brand); }
.woocommerce-cart-form button[name="update_cart"] { float: right; }
.cart-collaterals { display: grid; gap: 20px; }
.cart_totals { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; position: sticky; top: 92px; }
.cart_totals h2 { font-size: 18px; }
.cart_totals .shop_table { border: 0; }
.cart_totals .shop_table th, .cart_totals .shop_table td { padding: 10px 0; }
.cart_totals .shop_table td { text-align: right; }
.cart_totals .woocommerce-shipping-methods { list-style: none; margin: 0; padding: 0; text-align: left; }
.cart_totals .woocommerce-shipping-methods li { display: flex; gap: 8px; align-items: center; margin: 4px 0; }
.wc-proceed-to-checkout .checkout-button { width: 100%; min-height: 52px; font-size: 16px; }
.cart-collaterals .cross-sells { grid-row: 2; margin-top: 0; }
.cart-collaterals .cross-sells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.cart-empty.woocommerce-info { justify-content: center; padding: 28px; font-size: 16px; }
.return-to-shop { text-align: center; }

.checkout-back { margin: 0 0 4px; font-size: 14px; }
.checkout-back a { display: inline-flex; align-items: center; gap: 4px; font-weight: 600; }
.checkout-back .icon { width: 16px; height: 16px; }
body:not(.wc3s) .checkout-content form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; gap: 24px; align-items: start; }
body:not(.wc3s) .checkout-content #customer_details, body:not(.wc3s) .checkout-content .col2-set { min-width: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; }
.checkout-content #customer_details .col-1, .checkout-content #customer_details .col-2 { width: 100%; }
.checkout-content #order_review_heading { display: none; }
body:not(.wc3s) .checkout-content #order_review { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 20px; position: sticky; top: 20px; }
.checkout-content .woocommerce-checkout-review-order-table { border: 0; }
body:not(.wc3s) .checkout-content .woocommerce-checkout-review-order-table th, body:not(.wc3s) .checkout-content .woocommerce-checkout-review-order-table td { padding: 10px 0; }
body:not(.wc3s) .checkout-content .woocommerce-checkout-review-order-table td:last-child { text-align: right; }
#payment .payment_methods { list-style: none; margin: 16px 0; padding: 0; display: grid; gap: 8px; }
#payment .payment_methods > li { border: 1px solid var(--line); border-radius: var(--r); padding: 12px 14px; }
#payment .payment_methods > li > label { display: inline-flex; align-items: center; gap: 8px; font-weight: 600; }
#payment .payment_methods > li img { display: inline-block; max-height: 24px; width: auto; vertical-align: middle; }
#payment .payment_box { margin-top: 10px; padding: 10px 12px; background: var(--surface); border-radius: 8px; font-size: 14px; }
#payment .payment_box p:last-child { margin: 0; }
#place_order { width: 100%; min-height: 54px; font-size: 17px; margin-top: 8px; }
.woocommerce-terms-and-conditions-wrapper { font-size: 13px; color: var(--muted); }
.woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 12px; }
form.checkout_coupon { background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 16px; margin-bottom: 18px; }

.woocommerce-order { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 28px; max-width: 900px; margin: 24px auto 48px; }
.woocommerce-thankyou-order-received { font-size: 22px; font-weight: 700; color: var(--ok); }
.woocommerce-order-overview { list-style: none; margin: 16px 0 24px; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: 12px; }
.woocommerce-order-overview li { background: var(--surface); border-radius: var(--r); padding: 12px 14px; font-size: 13px; color: var(--muted); }
.woocommerce-order-overview li strong { display: block; font-size: 15px; color: var(--ink); margin-top: 2px; }
.woocommerce-customer-details address { font-style: normal; background: var(--surface); border-radius: var(--r); padding: 14px 16px; line-height: 1.7; }

.auth-intro { margin-bottom: 16px; }
.auth-intro p { color: var(--muted); }
.account-content .wp-block-woocommerce-customer-account { display: none; }
.account-content #customer_login, .account-content .u-columns { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.account-content #customer_login > div, .account-content form.login:only-child, .account-content form.lost_reset_password { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; }
.account-content #customer_login h2 { font-size: 20px; }
.account-content #customer_login form { margin: 0; }
.woocommerce-form-login__rememberme { display: inline-flex; align-items: center; gap: 8px; font-weight: 400; margin-right: 12px; }
.woocommerce-form-login__submit, .woocommerce-form-register__submit { min-width: 160px; }
.lost_password { font-size: 14px; margin-top: 10px; }
.page-account .entry-content > .woocommerce { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 24px; align-items: start; }
.page-account .entry-content > .woocommerce:has(#customer_login), .page-account .entry-content > .woocommerce:has(.lost_reset_password) { display: block; }
.account-nav { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 10px; position: sticky; top: 92px; }
.account-who { display: flex; gap: 12px; align-items: center; padding: 10px 10px 14px; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
.account-who small { display: block; color: var(--muted); font-size: 12px; }
.account-who b { color: var(--ink); }
.avatar { width: 40px; height: 40px; border-radius: 50%; background: var(--brand); color: #fff; display: grid; place-items: center; font-weight: 700; flex: none; }
.account-nav ul { list-style: none; margin: 0; padding: 0; }
.account-nav a { display: flex; align-items: center; gap: 10px; padding: 10px 12px; border-radius: 10px; color: var(--text); font-weight: 500; }
.account-nav a:hover { background: var(--surface); color: var(--ink); }
.account-nav a[aria-current] { background: var(--brand-tint); color: var(--brand); font-weight: 600; }
.account-nav .icon { width: 18px; height: 18px; }
.woocommerce-MyAccount-content { min-width: 0; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; }
.account-hello { font-size: 24px; margin: 0; }
.last-order { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; align-items: center; margin: 18px 0; padding: 16px 18px; border-radius: var(--r); background: var(--surface); }
.last-order small { display: block; color: var(--muted); font-size: 12px; }
.last-order b { display: block; color: var(--ink); }
.last-order-actions { display: flex; gap: 12px; align-items: center; }
.last-order-total { font-weight: 800; color: var(--ink); }
.status { display: inline-block; margin-top: 4px; font-size: 12px; font-weight: 600; padding: 2px 8px; border-radius: 99px; background: var(--brand-tint); color: var(--brand); }
.status-completed { background: var(--ok-tint); color: var(--ok); }
.status-cancelled, .status-failed { background: var(--sale-tint); color: var(--sale); }
.status-on-hold, .status-pending { background: var(--warn-tint); color: var(--warn); }
.account-cards { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; }
.account-cards a { display: grid; grid-template-columns: auto 1fr; gap: 2px 14px; align-items: center; padding: 16px; border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); }
.account-cards a:hover { border-color: var(--brand); box-shadow: var(--shadow); }
.account-cards .icon { grid-row: span 2; width: 26px; height: 26px; color: var(--brand); }
.account-cards span { font-size: 13px; color: var(--muted); }
.woocommerce-orders-table .button, .woocommerce-MyAccount-content .shop_table .button { min-height: 34px; padding: 4px 12px; font-size: 13px; margin: 2px; }
.woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.woocommerce-Address { background: var(--surface); border-radius: var(--r); padding: 16px; }
.woocommerce-Address-title { display: flex; justify-content: space-between; align-items: baseline; }
.woocommerce-Address-title h2 { font-size: 17px; }
.woocommerce-Address address { font-style: normal; line-height: 1.7; }

/* 12. Content pages -------------------------------------------------------- */
.page-hero { background: #fff; border-bottom: 1px solid var(--line); padding: 22px 0 22px; }
.page-hero .page-intro { margin: 6px 0 0; color: var(--muted); max-width: 70ch; }
.page-body { background: #fff; padding: 28px 0 56px; }
.page-default .page-hero { border-bottom: 0; padding-bottom: 6px; }
.entry-content { color: var(--text); font-size: 16px; line-height: 1.7; }
.entry-content > * { max-width: 780px; margin-left: auto; margin-right: auto; }
.entry-content > .alignwide { max-width: var(--wrap); }
.entry-content > .alignfull { max-width: none; margin-left: calc(50% - 50vw); margin-right: calc(50% - 50vw); width: 100vw; }
.page-body .entry-content > .alignfull { margin-left: calc(-1 * var(--gutter)); margin-right: calc(-1 * var(--gutter)); width: auto; }
.entry-content > .wp-block-html, .entry-content > .wp-block-group, .entry-content > .wp-block-columns, .entry-content > .wp-block-image, .entry-content > figure, .entry-content > div, .entry-content > .woocommerce { max-width: none; }
.entry-content h1, .entry-content h2, .entry-content h3 { margin-top: 1.6em; }
.entry-content > :first-child { margin-top: 0; }
.entry-content h2 { font-size: 24px; }
.entry-content h3 { font-size: 19px; }
:where(.entry-content) :where(ul, ol) { padding-left: 1.3em; }
:where(.entry-content) :where(li) { margin: .3em 0; }
.entry-content :where(p, li, blockquote, figcaption, td, dd) a:where(:not(.button, .btn, .wp-block-button__link)) { text-decoration: underline; text-underline-offset: 2px; text-decoration-thickness: 1px; }
.entry-content img { border-radius: var(--r); height: auto; }
.entry-content table:not(.shop_table) { width: 100%; border-collapse: collapse; font-size: 15px; }
.entry-content table:not(.shop_table) th, .entry-content table:not(.shop_table) td { border: 1px solid var(--line); padding: 10px 12px; text-align: left; }
.entry-content blockquote { margin: 1.5em 0; padding: 4px 0 4px 18px; border-left: 3px solid var(--brand); color: var(--ink); font-size: 18px; }
.entry-content hr { border: 0; border-top: 1px solid var(--line); margin: 2em 0; }
.entry-content .wp-block-columns { gap: 24px; }
.landing .landing-full > * { max-width: none; }
.landing { background: #fff; padding-bottom: 40px; }
.landing .wrap.entry-content { padding-top: 16px; }

.legal { display: grid; grid-template-columns: minmax(0, 820px); justify-content: center; gap: 40px; padding: 28px var(--gutter) 64px; background: transparent; }
.legal.has-toc { grid-template-columns: 250px minmax(0, 820px); }
.legal-page { background: #fff; }
.legal-body > * { max-width: none; }
.legal-body h2 { font-size: 21px; }
.legal-body h2, .legal-body h3, .legal-body h4 { scroll-margin-top: 100px; }
.toc { position: sticky; top: 100px; align-self: start; font-size: 14px; }
.toc-title { font-weight: 700; color: var(--ink); margin: 0 0 8px; }
.toc ol { list-style: none; margin: 0; padding: 0; border-left: 2px solid var(--line); }
.toc a { display: block; padding: 6px 0 6px 14px; margin-left: -2px; border-left: 2px solid transparent; color: var(--muted); }
.toc a:hover { color: var(--brand); border-left-color: var(--brand); }

.contact-cards { list-style: none; margin: 24px 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.contact-cards a, .contact-cards li > div { display: grid; gap: 2px; height: 100%; padding: 18px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); }
.contact-cards a:hover { border-color: var(--brand); box-shadow: var(--shadow); }
.contact-cards .icon { width: 26px; height: 26px; color: var(--brand); margin-bottom: 8px; }
.contact-cards span { color: var(--muted); font-size: 14px; }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 24px; align-items: start; }
.contact-offices { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; }
.contact-offices > * { max-width: none; }
.contact-offices h1, .contact-offices h2 { font-size: 20px; text-align: left !important; }
.contact-offices h3, .contact-offices h4 { font-size: 16px; }
/* The contact page's own content (map + office list) fitted into the right column */
.contact-offices > h2:first-child, .contact-offices > .wp-block-heading:first-child { display: none; }
.contact-offices .wp-block-columns { display: block !important; padding: 0 !important; margin: 0 !important; }
.contact-offices .wp-block-column { padding: 0 !important; flex-basis: auto !important; }
.contact-offices .wp-block-column:not(:has(*)) { display: none; }
.contact-offices iframe { display: block; height: 300px !important; border: 0 !important; border-radius: 12px !important; }
.contact-offices .contact-section { max-width: none !important; margin: 16px 0 0 !important; padding: 0 !important; background: none !important; text-align: left !important; font-family: inherit !important; display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 12px; }
.contact-offices .location { margin: 0 !important; padding: 16px; background: var(--surface); border-radius: 12px; }
.contact-offices .location h3 { font-size: 16px !important; font-weight: 700 !important; margin: 0 0 2px !important; color: var(--ink); }
.contact-offices .company-name { margin: 0 0 8px !important; font-size: 13px; color: var(--muted) !important; }
.contact-offices .info-line { margin: 0 0 2px !important; font-size: 14px !important; color: var(--text) !important; line-height: 1.6; }
.form-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 24px; box-shadow: var(--shadow-sm); }
.form-card > h2 { font-size: 20px; margin: 0 0 4px; }
.help-links { list-style: none; margin: 24px 0 48px; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.help-links a { display: flex; align-items: center; gap: 10px; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); font-weight: 600; font-size: 14px; }
.help-links a:hover { border-color: var(--brand); color: var(--brand); }
.help-links .icon { color: var(--brand); }
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.15fr); gap: 32px; align-items: start; padding-top: 28px; padding-bottom: 56px; }
.split-aside h2 { font-size: 20px; }
.steps { list-style: none; counter-reset: step; margin: 0 0 20px; padding: 0; display: grid; gap: 14px; }
.steps li { counter-increment: step; display: grid; grid-template-columns: 34px 1fr; gap: 2px 12px; }
.steps li::before { content: counter(step); grid-row: span 2; width: 30px; height: 30px; border-radius: 50%; background: var(--brand-tint); color: var(--brand); font-weight: 700; display: grid; place-items: center; font-size: 14px; }
.steps b { color: var(--ink); }
.steps span { color: var(--muted); font-size: 14px; }
.split-call { display: flex; gap: 10px; align-items: center; padding: 14px 16px; background: #fff; border: 1px solid var(--line); border-radius: var(--r); }
.split-call .icon { color: var(--brand); }
.tracking .wrap.narrow { padding-top: 28px; padding-bottom: 56px; }
.tracking .center { margin-top: 18px; }

.post-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 20px; padding: 28px 0 0; }
.post-card { background: #fff; border: 1px solid var(--line); border-radius: var(--r); overflow: hidden; display: flex; flex-direction: column; }
.post-card-media { display: grid; place-items: center; aspect-ratio: 16 / 9; background: var(--surface); overflow: hidden; }
.post-card-media img { width: 100%; height: 100%; object-fit: cover; }
.post-card-media .icon { width: 40px; height: 40px; color: var(--line-2); }
.post-card-body { padding: 16px 18px 20px; }
.post-card-title { font-size: 18px; margin: 4px 0 8px; }
.post-card-title a { color: var(--ink); }
.post-meta { font-size: 13px; color: var(--muted); margin: 0 0 6px; }
.blog .site-main, .site-main.blog { padding-bottom: 48px; }
.single-post .post-hero { padding-bottom: 10px; }
.single-post .post-hero .page-title { max-width: 780px; }
.post-cover { margin: 24px auto; max-width: 980px; }
.post-cover img { border-radius: var(--r-lg); width: 100%; }
.single-post .site-main { background: #fff; padding-bottom: 56px; }
.post-navigation .nav-links { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; max-width: 780px; margin: 40px auto 0; }
.post-navigation a { display: block; padding: 14px 16px; border: 1px solid var(--line); border-radius: var(--r); color: var(--ink); }
.post-navigation small { display: block; color: var(--muted); }
.post-navigation .nav-next { text-align: right; }
.comments { max-width: 780px; margin: 40px auto 0; }
.comment-list { list-style: none; padding: 0; }
.search-switch { display: flex; gap: 8px; align-items: center; margin: 20px 0 0; padding: 12px 16px; background: var(--brand-tint); border-radius: var(--r); font-weight: 600; }
.inline-search { display: flex; gap: 8px; max-width: 480px; margin: 16px auto 0; }

.not-found { padding: 48px 0 64px; }
.nf { max-width: 720px; margin: 0 auto; text-align: center; background: #fff; border: 1px solid var(--line); border-radius: var(--r-lg); padding: 40px 28px; }
.nf-code { font-size: 72px; font-weight: 800; letter-spacing: -.04em; line-height: 1; color: var(--brand-tint); -webkit-text-stroke: 2px var(--brand); margin: 0 0 8px; }
.nf h1 { font-size: 26px; }
.nf > p { color: var(--muted); }
.nf .search { margin: 20px 0; text-align: left; }
.nf-cats { justify-content: center; }
.nf-help { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 24px 0 0; }

/* 13. Footer --------------------------------------------------------------- */
.site-footer { margin-top: 48px; background: #0b1b33; color: #a9bad6; font-size: 14px; }
.footer-top { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 32px; padding-top: 48px; padding-bottom: 36px; }
.footer-logo .custom-logo-link, .footer-logo .site-name { display: inline-block; background: #fff; border-radius: 10px; padding: 8px 12px; margin-bottom: 14px; }
.footer-logo img { height: 34px; width: auto; }
.footer-about > p { max-width: 36ch; }
.footer-contact { list-style: none; margin: 0; padding: 0; display: grid; gap: 10px; }
.footer-contact li { display: flex; gap: 10px; align-items: flex-start; line-height: 1.55; }
.footer-contact .icon { width: 18px; height: 18px; color: #6f8bb8; margin-top: 2px; }
.site-footer a { color: #d3def0; }
.site-footer a:hover { color: #fff; text-decoration: underline; }
.footer-col h2 { color: #fff; font-size: 15px; margin: 0 0 14px; }
.footer-links { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.social { list-style: none; margin: 18px 0 0; padding: 0; display: flex; gap: 8px; }
.social a { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 10px; background: rgba(255, 255, 255, .08); }
.social a:hover { background: rgba(255, 255, 255, .16); }
.social .icon { width: 18px; height: 18px; }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.footer-bottom .wrap { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; padding-top: 16px; padding-bottom: 20px; font-size: 13px; color: #7f93b5; }
.footer-bottom p { margin: 0; }
.footer-focus { margin-top: 0; background: transparent; color: var(--muted); text-align: center; padding: 24px 0 40px; }
.footer-focus a { color: var(--muted); }

/* 14. Snippet output (shortcodes from WPCode) ----------------------------- */
.snip-form input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]):not([type="button"]), .snip-form select, .snip-form textarea { width: 100% !important; max-width: none !important; border: 1px solid var(--line-2) !important; border-radius: 10px !important; padding: 10px 12px !important; font-size: 16px !important; background: #fff !important; box-shadow: none !important; }
.snip-form input:focus, .snip-form select:focus, .snip-form textarea:focus { border-color: var(--brand) !important; box-shadow: 0 0 0 4px rgba(16, 92, 168, .15) !important; }
.snip-form button, .snip-form input[type="submit"] { display: inline-flex !important; align-items: center; justify-content: center; min-height: 46px !important; padding: 10px 22px !important; border-radius: 10px !important; border: 0 !important; background: var(--brand) !important; color: #fff !important; font-weight: 600 !important; font-size: 15px !important; cursor: pointer; width: auto !important; }
.snip-form button:hover, .snip-form input[type="submit"]:hover { background: var(--brand-ink) !important; }
.snip-form label { font-size: 14px !important; color: var(--ink) !important; font-weight: 500 !important; }
.snip-form form { max-width: none !important; margin: 0 !important; padding: 0 !important; box-shadow: none !important; border: 0 !important; background: transparent !important; }
.form-card .snip-form h1, .form-card .snip-form h2 { display: none; }
.form-card .snip > div:first-child, .form-card .snip > form { background: transparent !important; border: 0 !important; padding: 0 !important; box-shadow: none !important; max-width: none !important; margin: 0 !important; }
.snip-tracking table { width: 100%; border-collapse: collapse; margin-top: 16px; }
.snip-tracking th, .snip-tracking td { border-bottom: 1px solid var(--line); padding: 10px 0; text-align: left; }
.snip-deals { font-family: var(--font) !important; }
.snip-emark img { border-radius: var(--r); }

/* Old-theme helper classes that still appear in page content */
.gtmt-shadow, .is-style-gtmt-shadow { box-shadow: var(--shadow); }
.has-custom-color-1-color { color: var(--brand) !important; }
.has-custom-color-2-color { color: var(--brand-ink) !important; }
.wp-block-gutenmate-sale-badge { display: none; }

/* 15. Responsive ----------------------------------------------------------- */
@media (max-width: 1180px) {
	.act-call .act-text { display: none; }
	ul.products, ul.products.cols-5, ul.products.cols-6 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	ul.products.product-rail, ul.products.product-rail.cols-6 { grid-template-columns: none; grid-auto-columns: calc((100% - 14px * 3) / 4); }
	.mega-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.hero-grid { grid-template-columns: 228px minmax(0, 1fr); }
	.brands { grid-template-columns: repeat(3, 1fr); }
	.shop-layout { grid-template-columns: 220px minmax(0, 1fr); }
	.shop-layout ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.nav-list > li > a { padding: 10px 9px; }
}

@media (max-width: 1024px) {
	.hero-grid { grid-template-columns: 1fr; }
	.cat-rail { display: none; }
	.navbar .nav-list > li:nth-child(n+6) { display: none; }
	.trust ul { grid-template-columns: 1fr 1fr; gap: 16px 0; }
	.trust li:nth-child(3) { border-left: 0; }
	.pdp div.product { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 20px 28px; }
	.cart-content > .woocommerce { grid-template-columns: 1fr; }
	.cart_totals { position: static; }
	body:not(.wc3s) .checkout-content form.checkout { grid-template-columns: 1fr; }
	.checkout-content #order_review { position: static; }
	.post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.help-links { grid-template-columns: 1fr 1fr; }
	.legal.has-toc { grid-template-columns: minmax(0, 1fr); }
	.toc { position: static; background: #fff; border: 1px solid var(--line); border-radius: var(--r); padding: 14px 16px; }
}

@media (max-width: 900px) {
	.masthead-row { grid-template-columns: auto auto minmax(0, 1fr) auto; gap: 8px 10px; }
	.menu-btn { display: inline-grid; margin-left: -8px; }
	.act-account, .act-call { display: none; }
	.act-cart .act-text { display: none; }
	.brand img, .brand .custom-logo { height: 34px; }
	.navbar { display: none; }
	.shop-layout { grid-template-columns: 1fr; }
	.filters {
		position: fixed; inset: 0 auto 0 0; z-index: 130; width: min(360px, 90vw); max-height: none; border-radius: 0; border: 0;
		padding: 0 18px 24px; transform: translateX(-102%); transition: transform .25s var(--ease); box-shadow: var(--shadow-lg);
	}
	.filters.is-open { transform: none; }
	.filters-head { display: flex; justify-content: space-between; align-items: center; position: sticky; top: 0; background: #fff; padding: 12px 0; border-bottom: 1px solid var(--line); z-index: 1; }
	.filters-head h2 { font-size: 18px; margin: 0; }
	.filters-toggle { display: inline-flex; min-height: 40px; padding: 8px 14px; }
	.result-count { order: 3; flex-basis: 100%; margin: 0; }
	.shop-layout ul.products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.contact-grid, .split { grid-template-columns: 1fr; }
	.biz, .why { grid-template-columns: 1fr; }
	.biz-img { min-height: 180px; order: -1; }
	.footer-top { grid-template-columns: 1fr 1fr; }
	.footer-about { grid-column: 1 / -1; }
	.page-account .entry-content > .woocommerce { grid-template-columns: 1fr; }
	.account-nav { position: static; }
	.account-nav ul { display: flex; overflow-x: auto; gap: 4px; scrollbar-width: none; }
	.account-nav a { white-space: nowrap; }
	.account-who { display: none; }
}

@media (max-width: 720px) {
	:root { --gutter: 14px; }
	body { padding-bottom: 64px; }
	body.sala-focus { padding-bottom: 0; }
	.topbar { display: none; }
	.masthead-row { grid-template-columns: auto 1fr auto; grid-template-areas: "menu brand actions" "search search search"; padding-top: 8px; padding-bottom: 10px; min-height: 0; }
	.menu-btn { grid-area: menu; }
	.brand { grid-area: brand; }
	.hdr-actions { grid-area: actions; }
	.search { grid-area: search; }
	.masthead-focus .masthead-row { grid-template-areas: none; grid-template-columns: auto 1fr; padding: 10px var(--gutter); }
	.masthead-focus .focus-help span { display: none; }
	.masthead-focus .focus-secure { justify-self: end; font-size: 14px; }
	.masthead-focus .focus-help { display: none; }
	.search-cat { display: none; }
	.search-go span { display: none; }
	.search-go { padding: 0 16px; }
	.search-input { min-height: 42px; font-size: 16px; }

	.tabbar {
		display: grid; grid-template-columns: repeat(5, 1fr); position: fixed; left: 0; right: 0; bottom: 0; z-index: 90;
		background: rgba(255, 255, 255, .97); backdrop-filter: saturate(1.4) blur(10px); border-top: 1px solid var(--line);
		padding-bottom: env(safe-area-inset-bottom);
	}
	.tabbar a, .tabbar button { display: flex; flex-direction: column; align-items: center; gap: 2px; padding: 8px 4px 7px; font-size: 11px; font-weight: 500; color: var(--muted); background: none; border: 0; }
	.tabbar .icon { width: 22px; height: 22px; }
	.tabbar [aria-current] { color: var(--brand); }
	.tabbar .badge-count { top: -4px; right: -10px; }
	.toast { bottom: 84px; }
	.wa__btn_popup { bottom: 84px !important; }

	.hero { padding-top: 10px; }
	/* Phone slider: a full square that fills the box (phone slide pictures are about square), with a narrower side margin so it is bigger */
	.hero .hero-grid { padding-left: 8px; padding-right: 8px; }
	.slider { aspect-ratio: 1 / 1; border-radius: 16px; }
	.slide img { object-fit: cover; object-position: center; background: #fff; }
	.quick { grid-template-columns: 1fr; gap: 8px; }
	.quick-card { padding: 12px 14px; }
	.quick-icon { width: 36px; height: 36px; }
	.trust ul { padding: 14px 4px; }
	.trust li { padding: 0 10px; gap: 8px; }
	.trust .icon { width: 24px; height: 24px; }
	.trust b { font-size: 13px; }
	.trust span { font-size: 12px; }
	.sec { margin-top: 28px; }
	.sec-head h2 { font-size: 20px; }
	.sec-head p { display: none; }
	.tiles { grid-auto-columns: 118px; gap: 10px; }
	.tile-name { font-size: 12px; padding: 6px 6px 10px; }
	.rail-btn { display: none; }
	.duo { grid-template-columns: 1fr; gap: 10px; }
	ul.products, ul.products.cols-5, ul.products.cols-6, .shop-layout ul.products, .related ul.products, .upsells ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	ul.products.product-rail, ul.products.product-rail.cols-6 { grid-template-columns: none; grid-auto-columns: 46%; }
	.card-media { padding: 8px; }
	.card-body { padding: 0 10px 12px; }
	.card-title { font-size: 13px; }
	.price { font-size: 16px; }
	.card-actions .button { font-size: 13px; min-height: 38px; padding: 6px 8px; }
	.biz-text, .why { padding: 24px 20px; }
	.biz h2, .why h2 { font-size: 22px; }
	.brands { grid-template-columns: repeat(2, 1fr); }
	.brand-card { height: 84px; }
	.stats b { font-size: 24px; }

	.shop-hero { padding: 14px 0; margin-bottom: 14px; }
	.shop-hero .page-title, .page-hero .page-title { font-size: 24px; }
	.subcats { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; margin-right: calc(-1 * var(--gutter)); padding-right: var(--gutter); }
	.subcats::-webkit-scrollbar { display: none; }
	.toolbar .sort { margin-left: auto; }
	.sort select { max-width: 52vw; }

	.site-main.pdp { padding-top: 10px; }
	.pdp div.product { grid-template-columns: minmax(0, 1fr); gap: 16px; }
	.pdp div.product > .woocommerce-product-gallery, .pdp div.product > .images, .pdp div.product > .summary { grid-column: 1; grid-row: auto; }
	.summary .product_title { font-size: 22px; }
	.summary > .price { font-size: 24px; }
	.flex-control-thumbs { grid-template-columns: repeat(5, 1fr); gap: 6px; }
	.pdp-jump { top: 0; }
	.related ul.products, .upsells ul.products { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 46%; overflow-x: auto; }
	.sticky-atc {
		display: flex; position: fixed; left: 0; right: 0; bottom: calc(57px + env(safe-area-inset-bottom)); z-index: 85; gap: 10px; align-items: center;
		justify-content: space-between; padding: 8px var(--gutter); background: #fff; border-top: 1px solid var(--line); box-shadow: 0 -6px 18px rgba(15, 23, 42, .08);
	}
	.sticky-atc[hidden] { display: none; }
	.sticky-atc-info { display: flex; gap: 10px; align-items: center; min-width: 0; }
	.sticky-atc-info img { width: 40px; height: 40px; object-fit: contain; border-radius: 8px; border: 1px solid var(--line); }
	.sticky-atc-name { margin: 0; font-size: 13px; font-weight: 600; color: var(--ink); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; max-width: 46vw; }
	.sticky-atc-price { margin: 0; font-size: 14px; font-weight: 800; color: var(--ink); }
	.sticky-atc .btn { min-height: 44px; padding: 8px 16px; flex: none; }

	.woocommerce-cart-form .shop_table thead { display: none; }
	.woocommerce-cart-form .shop_table tr.cart_item { display: grid; grid-template-columns: 72px 1fr auto; gap: 4px 12px; padding: 12px; border-bottom: 1px solid var(--line); }
	.woocommerce-cart-form .shop_table tr.cart_item td { border: 0; padding: 0; display: block; text-align: left; }
	.woocommerce-cart-form .shop_table tr.cart_item td::before { display: none; }
	.woocommerce-cart-form td.product-remove { grid-column: 3; grid-row: 1; }
	.woocommerce-cart-form td.product-thumbnail { grid-row: 1 / span 3; grid-column: 1; }
	.woocommerce-cart-form td.product-name { grid-column: 2; grid-row: 1; }
	.woocommerce-cart-form td.product-price { display: none !important; }
	.woocommerce-cart-form td.product-quantity { grid-column: 2; }
	.woocommerce-cart-form td.product-subtotal { grid-column: 2 / span 2; }
	.woocommerce-cart-form td.actions { display: block; padding: 12px; }
	.woocommerce-cart-form .coupon { display: flex; width: 100%; }
	.woocommerce-cart-form .coupon input { flex: 1; width: auto; }
	.woocommerce-cart-form button[name="update_cart"] { float: none; width: 100%; margin-top: 10px; }

	.account-content #customer_login, .account-content .u-columns { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-content { padding: 16px; }
	.account-cards { grid-template-columns: 1fr; }
	.woocommerce-Addresses { grid-template-columns: 1fr; }
	.woocommerce-orders-table thead { display: none; }
	.woocommerce-orders-table tr { display: grid; grid-template-columns: 1fr 1fr; padding: 10px 0; border-bottom: 1px solid var(--line); }
	.woocommerce-orders-table td { border: 0 !important; padding: 4px 12px !important; }
	.woocommerce-orders-table td::before { content: attr(data-title); display: block; font-size: 12px; color: var(--muted); }

	.post-grid { grid-template-columns: 1fr; }
	.post-navigation .nav-links { grid-template-columns: 1fr; }
	.help-links { grid-template-columns: 1fr; }
	.footer-top { grid-template-columns: 1fr; gap: 28px; padding-top: 36px; }
	.footer-bottom .wrap { flex-direction: column; gap: 6px; }
	.nf { padding: 28px 18px; }
	.nf-code { font-size: 56px; }
	.flash-hero .page-title { font-size: 26px; }
}

@media (min-width: 721px) {
	.has-sticky-atc .tabbar { display: none; }
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { transition-duration: 0s !important; animation-duration: 0s !important; scroll-behavior: auto !important; }
}

@media print {
	.topbar, .masthead, .navbar, .tabbar, .site-footer, .filters, .drawer, .sticky-atc { display: none !important; }
	body { background: #fff; padding: 0; }
}

.tab-more { margin: 14px 0 0; text-align: center; }

/* 16. Original Sala phone menu and footer (inc/legacy.php) ----------------- */
/* Old theme's show/hide helpers, with its breakpoints (phone < 768, tablet 768–1023, desktop ≥ 1024) */
@media (max-width: 767.98px) { .gtmt-hide-sm { display: none !important; } }
@media (min-width: 768px) and (max-width: 1023.98px) { .gtmt-hide-md { display: none !important; } }
@media (min-width: 1024px) { .gtmt-hide-lg { display: none !important; } }

/* The phone menu sits at the right of the header, like before, and only on phones and small tablets */
.phone-nav { display: none; }
@media (max-width: 900px) {
	.phone-nav { display: flex; align-items: center; justify-content: flex-end; }
	.phone-nav .wp-block-navigation__responsive-container-open { display: flex; width: 42px; height: 42px; align-items: center; justify-content: center; border-radius: 10px; color: var(--ink); }
	.phone-nav .wp-block-navigation__responsive-container-open svg { width: 28px; height: 28px; }
	.masthead-row:has(.phone-nav) { grid-template-columns: auto minmax(0, 1fr) auto auto; }
	.masthead-row:has(.phone-nav) .brand { order: -1; }
}
@media (max-width: 720px) {
	.masthead-row:has(.phone-nav) { grid-template-columns: auto 1fr auto auto; grid-template-areas: "brand . actions nav" "search search search search"; }
	.phone-nav { grid-area: nav; }
}
/* While the menu is open it must cover the sticky header and the tab bar */
html.has-modal-open .masthead { z-index: 1000; }
html.has-modal-open .tabbar, html.has-modal-open .sticky-atc { display: none; }

/* The original footer: full width, its own colours from the page builder */
.site-footer-legacy { margin-top: 48px; }
.site-footer-legacy img { display: inline-block; }
.site-footer-legacy a { text-decoration: none; }
.site-footer-legacy a:hover { text-decoration: underline; }
.site-footer-legacy > .wp-block-group.has-background { padding-left: var(--gutter); padding-right: var(--gutter); }
.site-footer-legacy .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) { max-width: var(--wrap); margin-left: auto !important; margin-right: auto !important; }
@media (max-width: 720px) {
	.site-footer-legacy { padding-bottom: 8px; }
}

/* Open phone menu: start below the WordPress admin bar (signed-in staff), dim the page behind it */
body.admin-bar .wp-block-navigation__responsive-container.is-menu-open {
	top: var(--sala-adminbar, 46px) !important;
	height: calc(100dvh - var(--sala-adminbar, 46px)) !important;
}
body.admin-bar .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-dialog { margin-top: 0 !important; }
.wp-block-navigation__responsive-container.is-menu-open { box-shadow: 0 0 0 100vmax rgba(15, 23, 42, .45) !important; }
@media (max-width: 720px) {
	.card .price [class*="price-installments"] { font-size: 11.5px !important; padding: 3px 6px; gap: 3px; }
	.card .price [class*="price-installments"] img.koko-logo { height: 15px !important; }
}

/* Product page: the Koko plugin's line lands right after the price (its <div> can't sit inside the price <p>) */
.summary > .price:has(+ [class*="price-installments"]) { border-bottom: 0; padding-bottom: 0; margin-bottom: 10px; }
.summary > [class*="price-installments"] {
	display: inline-flex; flex-wrap: wrap; align-items: center; gap: 6px; margin: 0 0 18px; padding: 8px 12px; border-radius: 10px;
	background: var(--brand-tint); color: var(--text) !important; font-size: 15px !important; font-weight: 500; line-height: 1.4 !important;
}
.summary > [class*="price-installments"] b { color: var(--ink); }
.summary > [class*="price-installments"] > span { display: inline-flex; align-items: center; gap: 4px; }
.summary > [class*="price-installments"] img.koko-logo { height: 20px !important; width: auto !important; }
.summary > [class*="price-installments"] img.koko-info { height: 14px !important; width: auto !important; }
.summary > [class*="price-installments"] + br { display: none; }
.summary > [class*="price-installments"] + p:empty, .summary > [class*="price-installments"] ~ p:empty { display: none; }

/* Compact Koko line on product cards (see sala_card_koko) */
.card-koko { display: flex; align-items: center; gap: 6px; margin: 2px 0 0; font-size: 12.5px; line-height: 1.35; color: var(--muted); font-variant-numeric: tabular-nums; white-space: nowrap; min-width: 0; }
.card-koko span { overflow: hidden; text-overflow: ellipsis; min-width: 0; }
.card-koko b { color: var(--ink); font-weight: 700; }
.card-koko img { height: 15px; width: auto; flex: none; }
@media (max-width: 720px) { .card-koko { font-size: 12px; } .card-koko img { height: 13px; } }

/* All categories panel: title row with a button to the Categories page */
.mega-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 18px 0 14px; border-bottom: 1px solid var(--line); }
.mega-head p { margin: 0; display: flex; flex-direction: column; }
.mega-head b { color: var(--ink); font-size: 16px; }
.mega-head span { color: var(--muted); font-size: 13px; }
.mega-all { min-height: 40px; padding: 8px 16px; font-size: 14px; }
.mega-head + .mega-grid { padding-top: 20px; }

/* Menu items with a dropdown show an arrow that flips when the dropdown opens */
.nav-list .nav-caret { transition: transform .2s; color: var(--muted); }
.nav-list li:hover > a .nav-caret, .nav-list li:focus-within > a .nav-caret { transform: rotate(180deg); color: currentColor; }

/* Deals snippet output: breadcrumbs strip above its banner, and its Koko line kept to one short line */
.flash-top { padding: 14px 0 6px; }
.flash-top .crumbs { margin: 0; }
.snip-deals [class*="price-installments"] {
	display: flex !important; flex-wrap: nowrap; align-items: center; gap: 4px; white-space: nowrap; overflow: hidden;
	font-size: 11.5px !important; line-height: 1.4 !important; padding: 3px 8px !important;
}
.snip-deals [class*="price-installments"] img.koko-logo { height: 13px !important; width: auto !important; }
.snip-deals [class*="price-installments"] img.koko-info { display: none !important; }
.snip-deals [class*="price-installments"] + br, .snip-deals .price > br { display: none; }

/* Home hero without the category list: slider and the three cards use the full width */
.hero-grid.hero-full { grid-template-columns: minmax(0, 1fr); }

/* Countdown inside a product card (Flash sales page and home "Deals ending soon").
   "Ends in" sits on its own line and the four numbers share the card width equally, so nothing is cut off on narrow cards. */
.card-timer { margin: 0 14px 8px; padding: 8px; border-radius: 12px; background: var(--sale-tint); color: var(--sale); min-width: 0; }
.card-timer-label { display: flex; align-items: center; gap: 5px; margin: 0 2px 6px; font-size: 12px; font-weight: 700; line-height: 1.2; white-space: nowrap; }
.card-timer-label .icon { width: 14px; height: 14px; flex: none; }
.card-timer-clock { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 4px; }
.card-timer-clock > span { display: flex; flex-direction: column; align-items: center; min-width: 0; padding: 4px 0 3px; border-radius: 8px; background: #fff; }
.card-timer-clock b { font-size: 15px; font-weight: 800; line-height: 1.1; color: var(--sale); font-variant-numeric: tabular-nums; }
.card-timer-clock small { font-size: 9.5px; font-weight: 600; line-height: 1.2; color: #b4483f; }
.card-timer.is-urgent { background: var(--sale); color: #fff; }
.card-timer.is-ended { background: var(--surface); color: var(--muted); }
.card-timer.is-ended .card-timer-clock { display: none; }
.card-timer.is-ended .card-timer-label { margin-bottom: 0; }
@media (max-width: 720px) {
	.card-timer { margin: 0 10px 6px; padding: 6px; }
	.card-timer-clock { gap: 3px; }
	.card-timer-clock b { font-size: 14px; }
}

/* Category tiles: whole tiles only (7, 6 or 5 across), and shadows small enough not to be cut off by the scroller */
@media (max-width: 1180px) { .tiles { grid-auto-columns: calc((100% - 5 * 12px) / 6); } }
@media (max-width: 1024px) { .tiles { grid-auto-columns: calc((100% - 4 * 12px) / 5); } }
@media (max-width: 720px) { .tiles { grid-auto-columns: 118px; padding-bottom: 10px; } }
.tile:hover { box-shadow: 0 8px 16px -10px rgba(15, 23, 42, .25); }

/* Product page countdown: the card timer, a little larger */
.pdp-deal .pdp-timer { margin: 0 0 14px; padding: 10px 12px; max-width: 360px; }
.pdp-deal .pdp-timer .card-timer-label { font-size: 13px; }
.pdp-deal .pdp-timer .card-timer-clock b { font-size: 20px; }
.pdp-deal .pdp-timer .card-timer-clock small { font-size: 11px; }

/* 3-step checkout snippet (body.wc3s): the snippet draws its own centred 720px card and steps.
   The theme only lines its own bits up with that card and gives it the Sala colours. */
body.wc3s { --wc3s-accent: var(--brand); --wc3s-ink: var(--ink); --wc3s-muted: var(--muted); --wc3s-line: var(--line); --wc3s-fill: var(--surface); }
body.wc3s .checkout-back, body.wc3s .checkout-title, body.wc3s .checkout-content > .woocommerce > .woocommerce-notices-wrapper,
body.wc3s .woocommerce-form-coupon-toggle, body.wc3s form.checkout_coupon { max-width: 720px; margin-left: auto; margin-right: auto; }
body.wc3s .checkout-title { font-size: 26px; margin-bottom: 14px; }
body.wc3s .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 14px; }
body.wc3s .woocommerce-checkout-review-order-table { background: transparent; box-shadow: none !important; border-radius: 0; }
body.wc3s .woocommerce-checkout-review-order-table .product-name img { width: 56px; height: 56px; object-fit: contain; border-radius: 8px; border: 1px solid var(--line); background: #fff; }
body.wc3s .koko-checkout-price-installment { display: flex; align-items: center; gap: 6px; padding: 10px 12px !important; margin: 4px 0 0; border-radius: 10px; background: var(--brand-tint); color: var(--text) !important; }
body.wc3s .koko-checkout-price-installment img { height: 18px !important; }
body.wc3s form.checkout { border-color: var(--line); }
@media (max-width: 720px) { body.wc3s .checkout-title { font-size: 22px; } }
body.wc3s .woocommerce-checkout-review-order-table th.product-total,
body.wc3s .woocommerce-checkout-review-order-table td.product-total,
body.wc3s .woocommerce-checkout-review-order-table tfoot td { text-align: right; }
body.wc3s .woocommerce-checkout-review-order-table thead th { background: transparent; }
/* Province and City side by side fill the card exactly (the theme's half-width rule left 14px empty on the right) */
@media (min-width: 640px) {
	body.wc3s form.checkout .form-row-first, body.wc3s form.checkout .form-row-last { width: calc(50% - 6px) !important; }
	body.wc3s form.checkout .form-row-first { margin-right: 12px !important; }
}
/* Calm checkout header on phones: logo left, "Secure checkout" right, one row */
@media (max-width: 720px) {
	.masthead-focus .masthead-row { display: flex; align-items: center; justify-content: space-between; gap: 12px; }
	.masthead-focus .brand { grid-area: auto; }
}
/* Order summary on wider screens: the same stacked rows the snippet uses on phones
   (a table cannot give a stacked "Shipment" row the full width; a plain list can). */
@media (min-width: 601px) {
	body.wc3s .woocommerce-checkout-review-order-table,
	body.wc3s .woocommerce-checkout-review-order-table tbody,
	body.wc3s .woocommerce-checkout-review-order-table tfoot,
	body.wc3s .woocommerce-checkout-review-order-table tr,
	body.wc3s .woocommerce-checkout-review-order-table th,
	body.wc3s .woocommerce-checkout-review-order-table td { display: block; width: 100% !important; max-width: 100% !important; box-sizing: border-box; margin: 0 !important; padding-left: 0 !important; padding-right: 0 !important; text-align: left !important; }
	body.wc3s .woocommerce-checkout-review-order-table thead { display: none; }
	body.wc3s .woocommerce-checkout-review-order-table tr.cart_item { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 8px 16px; align-items: start; padding: 12px 0; border-bottom: 1px solid var(--line); }
	body.wc3s .woocommerce-checkout-review-order-table tr.cart_item td { padding: 0 !important; border: 0 !important; width: auto !important; }
	body.wc3s .woocommerce-checkout-review-order-table td.product-total { text-align: right !important; white-space: nowrap; }
	body.wc3s .woocommerce-checkout-review-order-table tr.cart-subtotal,
	body.wc3s .woocommerce-checkout-review-order-table tr.order-total,
	body.wc3s .woocommerce-checkout-review-order-table tr.fee,
	body.wc3s .woocommerce-checkout-review-order-table tr.cart-discount { display: flex; justify-content: space-between; align-items: center; padding: 12px 0; border-top: 1px solid var(--line); }
	body.wc3s .woocommerce-checkout-review-order-table tr.cart-subtotal > *,
	body.wc3s .woocommerce-checkout-review-order-table tr.order-total > *,
	body.wc3s .woocommerce-checkout-review-order-table tr.fee > *,
	body.wc3s .woocommerce-checkout-review-order-table tr.cart-discount > * { width: auto !important; padding: 0 !important; border: 0 !important; }
	body.wc3s .woocommerce-checkout-review-order-table tr.order-total td { text-align: right !important; }
	body.wc3s .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals { padding: 12px 0; border-top: 1px solid var(--line); }
	body.wc3s .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > * { padding: 0 !important; border: 0 !important; }
	body.wc3s .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals > th { margin-bottom: 6px !important; color: var(--muted); font-weight: 500; }
	body.wc3s .woocommerce-checkout-review-order-table tr.woocommerce-shipping-totals ul { list-style: none; margin: 0; padding: 0; }
}
