/* ==========================================================================
   Skyline Modern — design tokens
   ========================================================================== */
:root {
	--c-navy-950: #07182b;
	--c-navy-900: #0b2238;
	--c-navy-800: #0f2e4a;
	--c-navy-700: #123a5c;
	--c-primary: #1572a6;
	--c-primary-dark: #0f5e8b;
	--c-sky-500: #2fa6d9;
	--c-sky-300: #8fd1ee;
	--c-sky-100: #dcf0fa;
	--c-sky-50: #eff8fd;
	--c-amber-500: #f59e0b;
	--c-amber-400: #fbbf24;
	--c-amber-100: #fef3c7;
	--c-red-600: #dc2626;
	--c-green-600: #16a34a;

	--c-ink: #0f172a;
	--c-text: #334155;
	--c-muted: #64748b;
	--c-line: #e2e8f0;
	--c-line-soft: #eef2f6;
	--c-bg: #f5f7fa;

	--font: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
	--radius-sm: 8px;
	--radius: 10px;
	--radius-lg: 16px;
	--shadow-sm: 0 1px 2px rgba(15, 23, 42, .06);
	--shadow: 0 8px 24px rgba(15, 23, 42, .08);
	--shadow-lg: 0 20px 50px rgba(15, 23, 42, .16);
	--container: 1320px;
	--gutter: 24px;
	--header-h: 140px;
}

@media (max-width: 640px) {
	:root { --gutter: 16px; }
}

/* ==========================================================================
   Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
	margin: 0;
	font-family: var(--font);
	font-size: 15px;
	line-height: 1.6;
	color: var(--c-text);
	background: #fff;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	text-rendering: optimizeLegibility;
}
img { max-width: 100%; height: auto; }
a { color: var(--c-primary); text-decoration: none; transition: color .15s ease; }
a:hover { color: var(--c-primary-dark); }
h1, h2, h3, h4, h5, h6 { color: var(--c-ink); font-family: var(--font); line-height: 1.2; font-weight: 700; margin: 0 0 .5em; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
button, input, select, textarea { font: inherit; color: inherit; }
input[type="search"] { -webkit-appearance: none; appearance: none; }
input[type="search"]::-webkit-search-decoration,
input[type="search"]::-webkit-search-cancel-button { -webkit-appearance: none; }
:focus-visible { outline: 2px solid var(--c-sky-500); outline-offset: 2px; }
.icon { flex-shrink: 0; display: block; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0;
	position: absolute !important; word-wrap: normal !important;
}
.skip-link {
	position: absolute; left: 12px; top: -80px; z-index: 2000;
	background: var(--c-ink); color: #fff; padding: 10px 16px; border-radius: var(--radius-sm); font-weight: 600;
}
.skip-link:focus { top: 12px; color: #fff; }

.container { width: 100%; max-width: var(--container); margin-inline: auto; padding-inline: var(--gutter); }

/* ==========================================================================
   Buttons & small elements
   ========================================================================== */
.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	height: 44px; padding: 0 20px; border: 1px solid transparent; border-radius: var(--radius-sm);
	font-size: 15px; font-weight: 600; line-height: 1; white-space: nowrap; text-decoration: none;
	cursor: pointer; transition: background-color .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
.btn--sm { height: 38px; padding: 0 14px; font-size: 14px; }
.btn--lg { height: 52px; padding: 0 26px; font-size: 16px; }
.btn--block { width: 100%; }
.btn--primary { background: var(--c-primary); color: #fff; }
.btn--primary:hover { background: var(--c-primary-dark); color: #fff; }
.btn--amber { background: var(--c-amber-500); color: var(--c-navy-950); }
.btn--amber:hover { background: var(--c-amber-400); color: var(--c-navy-950); }
.btn--dark { background: var(--c-navy-900); color: #fff; }
.btn--dark:hover { background: var(--c-navy-950); color: #fff; }
.btn--outline { background: #fff; border-color: var(--c-line); color: var(--c-ink); }
.btn--outline:hover { border-color: var(--c-primary); color: var(--c-primary); }
.btn--ghost-light { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .28); color: #fff; }
.btn--ghost-light:hover { background: rgba(255, 255, 255, .14); color: #fff; }

.icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--radius);
	background: transparent; color: var(--c-ink); cursor: pointer;
}
.icon-btn:hover { background: var(--c-bg); }

.eyebrow {
	display: inline-flex; align-items: center; gap: 8px;
	font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-primary);
}
.eyebrow--light { color: var(--c-sky-300); background: rgba(47, 166, 217, .14); padding: 6px 12px; border-radius: 999px; }

.link-arrow { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; font-size: 14px; white-space: nowrap; }
.link-arrow .icon { transition: transform .15s ease; }
.link-arrow:hover .icon { transform: translateX(3px); }

.badge {
	display: inline-flex; align-items: center; height: 22px; padding: 0 8px; border-radius: 999px;
	font-size: 11px; font-weight: 700; letter-spacing: .03em; text-transform: uppercase; line-height: 1;
}
.badge--deal { background: var(--c-amber-100); color: #92400e; }
.badge--sale { background: #fee2e2; color: #b91c1c; }
.badge--muted { background: var(--c-bg); color: var(--c-muted); }

.field {
	width: 100%; height: 42px; padding: 0 12px; background: #fff;
	border: 1.5px solid var(--c-line); border-radius: var(--radius-sm); transition: border-color .15s ease;
}
.field:focus { outline: none; border-color: var(--c-primary); }

/* ==========================================================================
   Top bar
   ========================================================================== */
.topbar { background: var(--c-navy-950); color: rgba(255, 255, 255, .75); font-size: 13px; }
.topbar__inner { display: flex; align-items: center; justify-content: space-between; gap: 16px; min-height: 38px; }
.topbar__msg { margin: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.topbar__links { display: flex; align-items: center; gap: 22px; list-style: none; margin: 0; padding: 0; flex-shrink: 0; }
.topbar__links a { display: inline-flex; align-items: center; gap: 6px; color: rgba(255, 255, 255, .85); }
.topbar__links a:hover { color: #fff; }

/* ==========================================================================
   Header
   ========================================================================== */
.site-header { position: sticky; top: 0; z-index: 900; background: #fff; transition: box-shadow .2s ease; }
.admin-bar .site-header { top: 32px; }
.site-header.is-stuck { box-shadow: 0 6px 24px rgba(15, 23, 42, .1); }

.header-main { display: flex; align-items: center; gap: 28px; min-height: 84px; }
.brand { display: flex; align-items: center; flex-shrink: 0; }
.brand__img { display: block; height: 52px; width: auto; }

.header-search { position: relative; display: flex; flex: 1; max-width: 760px; }
.header-search .search-icon { position: absolute; left: 15px; top: 50%; transform: translateY(-50%); color: var(--c-muted); pointer-events: none; }
.header-search input[type="search"] {
	flex: 1; min-width: 0; height: 48px; padding: 0 16px 0 44px;
	background: var(--c-bg); border: 1.5px solid var(--c-line); border-right: 0;
	border-radius: var(--radius) 0 0 var(--radius); font-size: 15px; transition: border-color .15s ease, background-color .15s ease;
}
.header-search input[type="search"]::placeholder { color: #8a97a8; }
.header-search input[type="search"]:focus { outline: none; background: #fff; border-color: var(--c-primary); }
.header-search button {
	height: 48px; padding: 0 22px; border: 0; border-radius: 0 var(--radius) var(--radius) 0;
	background: var(--c-primary); color: #fff; font-weight: 600; cursor: pointer; transition: background-color .15s ease;
}
.header-search button:hover { background: var(--c-primary-dark); }
.header-search--inline { max-width: 560px; margin: 24px 0; }

.header-actions { display: flex; align-items: center; gap: 4px; flex-shrink: 0; margin-left: auto; }
.header-action { display: flex; align-items: center; gap: 10px; padding: 8px 12px; border-radius: var(--radius); color: var(--c-ink); }
.header-action:hover { background: var(--c-bg); color: var(--c-ink); }
.header-action__text { display: flex; flex-direction: column; line-height: 1.25; }
.header-action__text small { font-size: 12px; color: var(--c-muted); max-width: 120px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.header-action__text strong { font-size: 14px; font-weight: 600; color: var(--c-ink); }
.header-action__text strong .amount, .header-action__text strong bdi { font-weight: 600; }
.cart-icon { position: relative; display: flex; }
.cart-count {
	position: absolute; top: -8px; right: -10px; display: flex; align-items: center; justify-content: center;
	min-width: 20px; height: 20px; padding: 0 5px; border: 2px solid #fff; border-radius: 999px;
	background: var(--c-amber-500); color: var(--c-navy-950); font-size: 11px; font-weight: 700; line-height: 1;
}
.cart-count.is-empty { display: none; }
.nav-toggle { display: none; }

/* Primary navigation ------------------------------------------------------ */
.primary-nav { background: var(--c-navy-900); }
.primary-nav .container { position: relative; }
.primary-nav .menu { display: flex; align-items: stretch; gap: 2px; min-height: 52px; margin: 0; padding: 0; list-style: none; }
.primary-nav .menu > li { position: relative; display: flex; align-items: stretch; transition: background-color .15s ease; }
.primary-nav .menu > li.menu-item-has-mega { position: static; }
.primary-nav .menu > li > a {
	display: flex; align-items: center; gap: 8px; padding: 0 14px;
	color: rgba(255, 255, 255, .92); font-size: 15px; font-weight: 500; white-space: nowrap;
}
.primary-nav .menu > li:hover,
.primary-nav .menu > li:focus-within,
.primary-nav .menu > li.is-open { background: rgba(255, 255, 255, .08); }
.primary-nav .menu > li > a:hover { color: #fff; }
.primary-nav .menu > li.menu-item-has-children > a,
.primary-nav .menu > li.menu-item-has-mega > a { padding-right: 2px; }
.primary-nav .submenu-toggle {
	display: flex; align-items: center; justify-content: center; padding: 0 12px 0 4px;
	background: none; border: 0; color: rgba(255, 255, 255, .7); cursor: pointer;
}
.primary-nav .submenu-toggle .icon { transition: transform .2s ease; }
.primary-nav .menu > li:hover > .submenu-toggle .icon,
.primary-nav .menu > li.is-open > .submenu-toggle .icon { transform: rotate(180deg); }

.primary-nav .menu > li.menu-item-has-mega { background: var(--c-primary); margin-right: 8px; }
.primary-nav .menu > li.menu-item-has-mega:hover,
.primary-nav .menu > li.menu-item-has-mega.is-open { background: var(--c-primary-dark); }
.primary-nav .menu > li.menu-item-has-mega > a { padding-left: 18px; font-weight: 600; color: #fff; }
.primary-nav .menu > li.menu-item-has-mega > .submenu-toggle { color: #fff; }
.primary-nav .menu > li.menu-item-deals { margin-left: auto; }
.primary-nav .menu > li.menu-item-deals > a { color: var(--c-amber-400); font-weight: 600; }
.primary-nav .menu > li.menu-item-deals > a:hover { color: var(--c-amber-100); }
.primary-nav .menu > li.current-menu-item:not(.menu-item-has-mega) > a,
.primary-nav .menu > li.current-menu-ancestor > a { color: #fff; box-shadow: inset 0 -3px 0 var(--c-sky-500); }

/* Dropdowns */
.primary-nav .sub-menu,
.mega-panel {
	position: absolute; top: 100%; z-index: 50;
	opacity: 0; visibility: hidden; transform: translateY(8px);
	transition: opacity .16s ease, transform .16s ease, visibility 0s linear .16s;
}
.primary-nav .menu > li:hover > .sub-menu,
.primary-nav .menu > li:focus-within > .sub-menu,
.primary-nav .menu > li.is-open > .sub-menu,
.primary-nav .menu > li:hover > .mega-panel,
.primary-nav .menu > li:focus-within > .mega-panel,
.primary-nav .menu > li.is-open > .mega-panel {
	opacity: 1; visibility: visible; transform: none; transition-delay: 0s;
}
.primary-nav .sub-menu {
	left: 0; min-width: 250px; margin: 0; padding: 8px; list-style: none;
	background: #fff; border-radius: 0 0 var(--radius) var(--radius); box-shadow: var(--shadow-lg);
}
.primary-nav .sub-menu a {
	display: block; padding: 10px 12px; border-radius: var(--radius-sm);
	color: var(--c-ink); font-size: 14.5px; font-weight: 500;
}
.primary-nav .sub-menu a:hover,
.primary-nav .sub-menu .current-menu-item > a { background: var(--c-sky-50); color: var(--c-primary); }

/* Mega panel */
.mega-panel {
	left: var(--gutter); right: var(--gutter);
	background: #fff; border-radius: 0 0 var(--radius-lg) var(--radius-lg); box-shadow: var(--shadow-lg);
}
.mega-panel__inner { display: grid; grid-template-columns: minmax(0, 1fr) 280px; gap: 28px; padding: 24px; }
.mega-panel__title { margin: 0 0 10px 10px; font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--c-muted); }
.mega-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 2px; }
.mega-cat { display: flex; align-items: center; gap: 12px; padding: 10px; border-radius: var(--radius); color: var(--c-ink); }
.mega-cat:hover { background: var(--c-bg); color: var(--c-ink); }
.mega-cat__icon {
	display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 40px; height: 40px;
	border-radius: 10px; background: var(--c-sky-50); color: var(--c-primary); transition: background-color .15s ease, color .15s ease;
}
.mega-cat:hover .mega-cat__icon { background: var(--c-primary); color: #fff; }
.mega-cat__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.mega-cat__text strong { font-size: 14px; font-weight: 600; }
.mega-cat__text small { font-size: 12px; color: var(--c-muted); }
.mega-promo {
	display: flex; flex-direction: column; align-items: flex-start; gap: 8px; padding: 24px;
	border-radius: var(--radius); color: #fff;
	background: radial-gradient(260px 160px at 100% 0%, rgba(47, 166, 217, .35), transparent 70%), linear-gradient(155deg, var(--c-navy-800), var(--c-navy-950));
}
.mega-promo__title { margin: 6px 0 0; font-size: 22px; font-weight: 800; letter-spacing: -.02em; color: #fff; }
.mega-promo p { margin: 0 0 10px; font-size: 14px; color: rgba(255, 255, 255, .75); }
.mega-promo__all { margin-top: auto; padding-top: 12px; font-size: 14px; font-weight: 600; color: #fff; text-decoration: underline; text-underline-offset: 3px; }
.mega-promo__all:hover { color: var(--c-sky-300); }

/* Mobile drawer --------------------------------------------------------- */
.mobile-nav {
	position: fixed; top: 0; bottom: 0; left: 0; z-index: 1001;
	display: flex; flex-direction: column; width: min(380px, 88vw); background: #fff;
	transform: translateX(-100%); visibility: hidden; transition: transform .25s ease, visibility 0s linear .25s;
}
body.nav-open .mobile-nav { transform: none; visibility: visible; transition-delay: 0s; }
.mobile-nav__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px 10px 16px; border-bottom: 1px solid var(--c-line); }
.mobile-nav__head .brand__img { height: 40px; }
.mobile-nav__body { flex: 1; overflow-y: auto; }
.mobile-nav__foot { display: grid; gap: 10px; padding: 16px; border-top: 1px solid var(--c-line); }
.mobile-menu { margin: 0; padding: 0; list-style: none; }
.mobile-menu > li { display: grid; grid-template-columns: minmax(0, 1fr) auto; border-bottom: 1px solid var(--c-line-soft); }
.mobile-menu a { display: flex; align-items: center; gap: 10px; padding: 15px 20px; color: var(--c-ink); font-weight: 600; }
.mobile-menu > li.menu-item-deals > a { color: #b45309; }
.mobile-menu .submenu-toggle { width: 56px; background: none; border: 0; border-left: 1px solid var(--c-line-soft); color: var(--c-muted); cursor: pointer; }
.mobile-menu .submenu-toggle .icon { margin: auto; transition: transform .2s ease; }
.mobile-menu li.is-open > .submenu-toggle .icon { transform: rotate(180deg); }
.mobile-menu .sub-menu { grid-column: 1 / -1; display: none; margin: 0; padding: 4px 0 10px; list-style: none; background: var(--c-bg); }
.mobile-menu li.is-open > .sub-menu { display: block; }
.mobile-menu .sub-menu a { padding: 11px 20px 11px 34px; font-size: 14.5px; font-weight: 500; }

.drawer-backdrop {
	position: fixed; inset: 0; z-index: 1000; background: rgba(7, 24, 43, .55);
	opacity: 0; visibility: hidden; transition: opacity .25s ease, visibility 0s linear .25s;
}
body.nav-open .drawer-backdrop,
body.filters-open .drawer-backdrop { opacity: 1; visibility: visible; transition-delay: 0s; }
body.nav-open, body.filters-open { overflow: hidden; }

@media (max-width: 1200px) {
	.mega-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.mega-panel__inner { grid-template-columns: minmax(0, 1fr) 240px; }
}

@media (max-width: 1023px) {
	.primary-nav { display: none; }
	.nav-toggle { display: inline-flex; margin-left: -10px; }
	.header-main { flex-wrap: wrap; gap: 8px 10px; min-height: 0; padding-block: 10px; }
	.brand__img { height: 40px; }
	.header-search { order: 10; flex-basis: 100%; max-width: none; }
	.header-search input[type="search"] { height: 44px; }
	.header-search button { height: 44px; padding: 0 16px; }
	.header-action { padding: 8px; }
	.header-action__text { display: none; }
}
@media (min-width: 1024px) {
	.mobile-nav { display: none; }
}
@media (max-width: 782px) {
	.admin-bar .site-header { top: 46px; }
}
@media (max-width: 760px) {
	.topbar__links { display: none; }
	.topbar__inner { justify-content: center; }
}
@media (max-width: 600px) {
	.admin-bar .site-header { top: 0; }
}

/* ==========================================================================
   Sections
   ========================================================================== */
.site-main--elementor .elementor-section .elementor-container { max-width: none; }
.site-main--elementor .elementor-column-gap-default > .elementor-column > .elementor-element-populated,
.site-main--elementor .elementor-column-gap-no > .elementor-column > .elementor-element-populated { padding: 0; }

.section { padding: 64px 0; }
.section--tight { padding: 32px 0; }
.section--alt { background: var(--c-bg); }
.section-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 28px; }
.section-title { margin: 0; font-size: clamp(24px, 2.4vw, 32px); font-weight: 800; letter-spacing: -.02em; }
.section-sub { margin: 6px 0 0; color: var(--c-muted); font-size: 15px; }
.section-head__actions { display: flex; align-items: center; gap: 18px; flex-shrink: 0; }

/* Hero */
.hero {
	position: relative; overflow: hidden; color: #fff;
	background:
		radial-gradient(900px 520px at 88% 8%, rgba(47, 166, 217, .30), transparent 60%),
		radial-gradient(700px 420px at 0% 100%, rgba(21, 114, 166, .28), transparent 60%),
		linear-gradient(160deg, var(--c-navy-800) 0%, var(--c-navy-950) 72%);
}
.hero::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background-image: linear-gradient(rgba(255, 255, 255, .045) 1px, transparent 1px), linear-gradient(90deg, rgba(255, 255, 255, .045) 1px, transparent 1px);
	background-size: 48px 48px;
	-webkit-mask-image: linear-gradient(to bottom, #000 0%, transparent 85%);
	mask-image: linear-gradient(to bottom, #000 0%, transparent 85%);
}
.hero__inner {
	position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	align-items: center; gap: 56px; padding-block: 76px 116px;
}
.hero__title { max-width: 16ch; margin: 20px 0 18px; color: #fff; font-size: clamp(34px, 4.6vw, 58px); font-weight: 800; line-height: 1.05; letter-spacing: -.035em; }
.hero__text { max-width: 54ch; margin: 0 0 32px; color: rgba(255, 255, 255, .76); font-size: 18px; }
.hero__actions { display: flex; flex-wrap: wrap; gap: 12px; }
.hero__stats { display: flex; gap: 40px; margin: 44px 0 0; padding: 26px 0 0; list-style: none; border-top: 1px solid rgba(255, 255, 255, .12); }
.hero__stats strong { display: block; color: #fff; font-size: 26px; font-weight: 800; letter-spacing: -.02em; line-height: 1.2; }
.hero__stats span { font-size: 13px; color: rgba(255, 255, 255, .62); }
.hero__showcase { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; }
.showcase-card {
	display: flex; flex-direction: column; padding: 14px; border-radius: var(--radius-lg); background: #fff; color: var(--c-ink);
	box-shadow: 0 24px 50px rgba(0, 0, 0, .28); transition: transform .25s ease, box-shadow .25s ease;
}
.showcase-card:nth-child(even) { transform: translateY(40px); }
.showcase-card:hover { color: var(--c-ink); transform: translateY(-4px); }
.showcase-card:nth-child(even):hover { transform: translateY(36px); }
.showcase-card__img { display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; margin-bottom: 12px; overflow: hidden; border-radius: var(--radius); background: #fff; }
.showcase-card__img img { width: 100%; height: 100%; object-fit: contain; padding: 10px; }
.showcase-card__name { display: -webkit-box; min-height: 2.7em; overflow: hidden; font-size: 14px; font-weight: 600; line-height: 1.35; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.showcase-card__price { margin-top: 6px; color: var(--c-primary); font-size: 15px; font-weight: 700; }

/* Features */
.features { position: relative; z-index: 2; margin-top: -54px; }
.features__grid {
	display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); margin: 0; padding: 0; list-style: none;
	background: #fff; border: 1px solid var(--c-line-soft); border-radius: var(--radius-lg); box-shadow: var(--shadow);
}
.feature { display: flex; align-items: flex-start; gap: 14px; padding: 22px 24px; }
.feature + .feature { border-left: 1px solid var(--c-line-soft); }
.feature__icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 44px; height: 44px; border-radius: 12px; background: var(--c-sky-50); color: var(--c-primary); }
.feature h3 { margin: 1px 0 2px; font-size: 15px; font-weight: 700; }
.feature p { margin: 0; color: var(--c-muted); font-size: 13.5px; line-height: 1.5; }
.features + .section, .elementor-section:has(.features) + .elementor-section .section { padding-top: 64px; }

/* Category cards */
.section--categories { margin-top: -64px; padding-top: 128px; }
.cat-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 14px; }
.cat-card {
	position: relative; display: flex; flex-direction: column; gap: 3px; padding: 20px;
	background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); color: var(--c-ink);
	transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
.cat-card:hover { border-color: transparent; box-shadow: var(--shadow); transform: translateY(-3px); color: var(--c-ink); }
.cat-card__icon {
	display: flex; align-items: center; justify-content: center; width: 52px; height: 52px; margin-bottom: 12px;
	border-radius: 14px; background: var(--c-sky-50); color: var(--c-primary); transition: background-color .18s ease, color .18s ease;
}
.cat-card:hover .cat-card__icon { background: var(--c-primary); color: #fff; }
.cat-card--deal .cat-card__icon { background: var(--c-amber-100); color: #b45309; }
.cat-card--deal:hover .cat-card__icon { background: var(--c-amber-500); color: var(--c-navy-950); }
.cat-card__name { font-size: 15.5px; font-weight: 700; line-height: 1.3; }
.cat-card__count { font-size: 13px; color: var(--c-muted); }
.cat-card__arrow { position: absolute; top: 20px; right: 18px; color: var(--c-primary); opacity: 0; transform: translateX(-4px); transition: opacity .18s ease, transform .18s ease; }
.cat-card:hover .cat-card__arrow { opacity: 1; transform: none; }

/* Product rails */
.rail-nav { display: flex; gap: 8px; }
.rail-btn {
	display: flex; align-items: center; justify-content: center; width: 40px; height: 40px; padding: 0;
	background: #fff; border: 1px solid var(--c-line); border-radius: 999px; color: var(--c-ink); cursor: pointer;
	transition: border-color .15s ease, color .15s ease, opacity .15s ease;
}
.rail-btn:hover:not(:disabled) { border-color: var(--c-primary); color: var(--c-primary); }
.rail-btn:disabled { opacity: .35; cursor: default; }
.rail__track {
	display: grid; grid-auto-flow: column; grid-auto-columns: calc((100% - 16px * 4) / 5); gap: 16px;
	margin: -6px -4px 0; padding: 6px 4px 20px; overflow-x: auto; overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory; scroll-behavior: smooth; scrollbar-width: none;
}
.rail__track::-webkit-scrollbar { display: none; }
.rail__item { min-width: 0; scroll-snap-align: start; }

/* Product card */
.product-card {
	position: relative; display: flex; flex-direction: column; height: 100%; overflow: hidden;
	background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg);
	transition: box-shadow .18s ease, border-color .18s ease, transform .18s ease;
}
.product-card:hover { border-color: transparent; box-shadow: var(--shadow); transform: translateY(-2px); }
.product-card__media { position: relative; display: block; aspect-ratio: 1 / 1; overflow: hidden; background: #fff; border-bottom: 1px solid var(--c-line-soft); }
.product-card__media img { display: block; width: 100%; height: 100%; object-fit: contain; padding: 18px; transition: transform .3s ease; }
.product-card:hover .product-card__media img { transform: scale(1.04); }
.product-card__badges { position: absolute; top: 12px; left: 12px; display: flex; flex-direction: column; align-items: flex-start; gap: 6px; }
.product-card__body { display: flex; flex: 1; flex-direction: column; padding: 14px 16px 16px; }
.product-card__cat { margin-bottom: 6px; color: var(--c-muted); font-size: 11.5px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; }
.product-card__cat:hover { color: var(--c-primary); }
.product-card__title { display: -webkit-box; min-height: 2.8em; margin: 0 0 6px; overflow: hidden; font-size: 14.5px; font-weight: 600; line-height: 1.4; letter-spacing: 0; -webkit-line-clamp: 2; -webkit-box-orient: vertical; }
.product-card__title a { color: var(--c-ink); }
.product-card__title a:hover { color: var(--c-primary); }
.product-card__sku { margin: 0 0 14px; color: var(--c-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.product-card__foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; }
.product-card__price { color: var(--c-ink); font-size: 17px; font-weight: 800; line-height: 1.2; letter-spacing: -.01em; }
.product-card__price del { display: block; color: var(--c-muted); font-size: 13px; font-weight: 500; }
.product-card__price ins { color: var(--c-red-600); text-decoration: none; }
.product-card a.product-card__add,
.woocommerce .product-card a.product-card__add {
	display: inline-flex; align-items: center; gap: 6px; height: 38px; margin: 0; padding: 0 14px;
	border: 0; border-radius: var(--radius-sm); background: var(--c-primary); color: #fff;
	font-size: 14px; font-weight: 600; line-height: 1; white-space: nowrap; transition: background-color .15s ease;
}
.product-card a.product-card__add:hover { background: var(--c-primary-dark); color: #fff; }
.product-card a.product-card__add.loading { opacity: .7; pointer-events: none; }
.product-card a.product-card__add.loading::after,
.product-card a.product-card__add.added::after { display: none; }
.product-card a.product-card__add.added { background: var(--c-green-600); }
.product-card a.product-card__add--view,
.woocommerce .product-card a.product-card__add--view { background: var(--c-bg); color: var(--c-ink); }
.product-card a.product-card__add--view:hover { background: var(--c-line); color: var(--c-ink); }
.product-card .added_to_cart { display: none !important; }

/* Promo banners */
.promos { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; }
.promo {
	position: relative; display: grid; grid-template-columns: minmax(0, 1.25fr) minmax(0, .75fr); align-items: center; gap: 20px;
	min-height: 270px; padding: 36px; overflow: hidden; border-radius: var(--radius-lg); color: #fff; transition: transform .2s ease, box-shadow .2s ease;
}
.promo:hover { transform: translateY(-3px); box-shadow: var(--shadow-lg); color: inherit; }
.promo--navy { background: radial-gradient(420px 260px at 100% 0%, rgba(47, 166, 217, .35), transparent 70%), linear-gradient(135deg, var(--c-navy-700), var(--c-navy-950)); }
.promo--navy:hover { color: #fff; }
.promo--navy .eyebrow { color: var(--c-sky-300); }
.promo--amber { background: linear-gradient(135deg, #fff8e8 0%, #fde6ad 100%); color: var(--c-ink); }
.promo--amber:hover { color: var(--c-ink); }
.promo--amber .eyebrow { color: #b45309; }
.promo h3 { margin: 10px 0 8px; color: inherit; font-size: clamp(22px, 2.2vw, 28px); font-weight: 800; letter-spacing: -.02em; }
.promo p { max-width: 36ch; margin: 0 0 22px; opacity: .82; }
.promo__img {
	display: flex; align-items: center; justify-content: center; aspect-ratio: 1 / 1; overflow: hidden;
	border-radius: var(--radius-lg); background: #fff; box-shadow: 0 18px 40px rgba(0, 0, 0, .18); transform: rotate(-3deg);
}
.promo__img img { width: 100%; height: 100%; object-fit: contain; padding: 16px; }

/* CTA band */
.cta-band {
	display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1.1fr); align-items: center; gap: 36px;
	padding: 48px; border-radius: var(--radius-lg); color: #fff;
	background: radial-gradient(600px 320px at 100% 0%, rgba(47, 166, 217, .32), transparent 60%), linear-gradient(135deg, var(--c-navy-800), var(--c-navy-950));
}
.cta-band h2 { margin: 0 0 8px; color: #fff; font-size: clamp(24px, 2.6vw, 34px); font-weight: 800; letter-spacing: -.02em; }
.cta-band p { margin: 0; color: rgba(255, 255, 255, .75); }
.cta-search { display: flex; gap: 10px; }
.cta-search input[type="search"] { flex: 1; min-width: 0; height: 52px; padding: 0 18px; border: 0; border-radius: var(--radius-sm); background: #fff; color: var(--c-ink); font-size: 16px; }
.cta-search input[type="search"]:focus { outline: 3px solid rgba(47, 166, 217, .6); outline-offset: 0; }
.cta-band__help { margin-top: 14px !important; font-size: 14px; }
.cta-band__help a { color: #fff; text-decoration: underline; text-underline-offset: 3px; }

/* Toast */
.toast {
	position: fixed; right: 20px; bottom: 20px; z-index: 1100; display: flex; align-items: center; gap: 14px;
	max-width: min(420px, calc(100vw - 40px)); padding: 14px 16px; border-radius: var(--radius); background: var(--c-navy-900);
	color: #fff; box-shadow: var(--shadow-lg); opacity: 0; transform: translateY(12px); pointer-events: none;
	transition: opacity .2s ease, transform .2s ease;
}
.toast.is-visible { opacity: 1; transform: none; pointer-events: auto; }
.toast__icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 32px; height: 32px; border-radius: 999px; background: var(--c-green-600); }
.toast__text { display: flex; flex-direction: column; min-width: 0; line-height: 1.35; }
.toast__text strong { font-size: 14px; }
.toast__text span { overflow: hidden; color: rgba(255, 255, 255, .7); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.toast a { margin-left: auto; color: var(--c-amber-400); font-size: 14px; font-weight: 600; white-space: nowrap; }

@media (max-width: 1200px) {
	.rail__track { grid-auto-columns: calc((100% - 16px * 3) / 4); }
}
@media (max-width: 1023px) {
	.hero__inner { grid-template-columns: minmax(0, 1fr); gap: 40px; padding-block: 48px 96px; }
	.hero__showcase { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
	.showcase-card:nth-child(even), .showcase-card:nth-child(even):hover { transform: none; }
	.features__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.feature:nth-child(3) { border-left: 0; }
	.feature:nth-child(n+3) { border-top: 1px solid var(--c-line-soft); }
	.rail__track { grid-auto-columns: calc((100% - 16px * 2) / 3); }
	.promos { grid-template-columns: minmax(0, 1fr); }
	.cta-band { grid-template-columns: minmax(0, 1fr); gap: 24px; padding: 36px 28px; }
}
@media (max-width: 640px) {
	.section { padding: 44px 0; }
	.section--categories { margin-top: -54px; padding-top: 96px; }
	.section-head { flex-direction: column; align-items: flex-start; gap: 10px; margin-bottom: 20px; }
	.section-head__actions { width: 100%; justify-content: space-between; }
	.rail-nav { display: none; }
	.rail__track { grid-auto-columns: 74%; gap: 12px; }
	.hero__text { font-size: 16px; }
	.hero__stats { gap: 24px; margin-top: 32px; }
	.hero__stats strong { font-size: 22px; }
	.hero__showcase { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.hero__showcase .showcase-card:nth-child(n+3) { display: none; }
	.features { margin-top: -44px; }
	.features__grid { grid-template-columns: minmax(0, 1fr); }
	.feature { padding: 16px 18px; }
	.feature + .feature { border-left: 0; border-top: 1px solid var(--c-line-soft); }
	.cat-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.cat-card { padding: 16px; }
	.cat-card__icon { width: 44px; height: 44px; margin-bottom: 10px; }
	.cat-card__name { font-size: 14.5px; }
	.promo { grid-template-columns: minmax(0, 1fr); min-height: 0; padding: 28px 24px; }
	.promo__img { display: none; }
	.cta-search { flex-direction: column; }
	.cta-search .btn { width: 100%; }
}

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer { background: var(--c-navy-950); color: rgba(255, 255, 255, .68); font-size: 14.5px; }
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 48px; padding-block: 64px 48px; }
.footer-brand .brand { margin-bottom: 18px; }
.footer-brand .brand__img { height: 48px; }
.footer-brand p { max-width: 36ch; margin: 0 0 18px; line-height: 1.65; }
.footer-contact { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.footer-contact a { display: inline-flex; align-items: center; gap: 10px; color: #fff; }
.footer-contact a:hover { color: var(--c-sky-300); }
.footer-social { display: flex; gap: 10px; margin-top: 22px; }
.footer-social a { display: flex; align-items: center; justify-content: center; width: 38px; height: 38px; border-radius: 999px; background: rgba(255, 255, 255, .08); color: #fff; transition: background-color .15s ease; }
.footer-social a:hover { background: var(--c-primary); color: #fff; }
.footer-col__title { margin: 0 0 16px; color: #fff; font-size: 13px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.footer-links { display: grid; gap: 10px; margin: 0; padding: 0; list-style: none; }
.footer-links a { color: rgba(255, 255, 255, .68); }
.footer-links a:hover { color: #fff; }
.footer-bottom { border-top: 1px solid rgba(255, 255, 255, .1); }
.footer-bottom__inner { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 8px 16px; padding-block: 22px; color: rgba(255, 255, 255, .5); font-size: 13px; }

@media (max-width: 1023px) {
	.footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 36px; }
	.footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 560px) {
	.footer-grid { grid-template-columns: minmax(0, 1fr); padding-block: 48px 32px; }
}

/* ==========================================================================
   Page chrome (pages, shop, search)
   ========================================================================== */
.page-hero { background: var(--c-bg); border-bottom: 1px solid var(--c-line); }
.page-hero__inner { padding-block: 26px 30px; }
.page-hero h1 { margin: 10px 0 0; font-size: clamp(26px, 3vw, 38px); font-weight: 800; letter-spacing: -.02em; }
.page-hero__desc { max-width: 72ch; margin-top: 8px; color: var(--c-muted); }
.page-hero__desc p:last-child { margin-bottom: 0; }
.breadcrumbs, .woocommerce .woocommerce-breadcrumb { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; margin: 0; color: var(--c-muted); font-size: 13px; }
.breadcrumbs a { color: var(--c-muted); }
.breadcrumbs a:hover { color: var(--c-primary); }
.crumb-sep { color: #c4cdd8; }

.page-body { padding-block: 40px 72px; }
.page-body--prose { max-width: 820px; margin-inline: 0; font-size: 16px; }
.page-body--prose h2 { margin: 1.6em 0 .5em; font-size: 24px; }
.page-body--prose h3 { margin: 1.4em 0 .4em; font-size: 19px; }
.page-body--prose ul, .page-body--prose ol { padding-left: 1.3em; }
.page-body--prose a { text-decoration: underline; text-underline-offset: 3px; }
.post-list { display: grid; gap: 28px; }
.post-item__title { margin-bottom: 6px; font-size: 22px; }
.post-item__title a { color: var(--c-ink); }

.not-found__inner { max-width: 680px; padding-block: 96px; text-align: center; }
.not-found h1 { margin: 12px 0; font-size: clamp(30px, 4vw, 44px); font-weight: 800; letter-spacing: -.02em; }
.not-found p { color: var(--c-muted); font-size: 17px; }
.not-found .header-search { margin: 28px auto; }
.not-found__actions { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; }

/* Shop layout */
.shop-layout { display: grid; grid-template-columns: 260px minmax(0, 1fr); gap: 40px; padding-block: 36px 80px; }
.shop-sidebar { position: sticky; top: calc(var(--header-h) + 20px); align-self: start; max-height: calc(100vh - var(--header-h) - 40px); overflow-y: auto; scrollbar-width: thin; }
.shop-sidebar__head { display: none; }
.filter-block { margin-bottom: 22px; padding-bottom: 22px; border-bottom: 1px solid var(--c-line); }
.filter-block:last-child { margin-bottom: 0; border-bottom: 0; }
.filter-title { margin: 0 0 12px; color: var(--c-ink); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.filter-cats { display: grid; gap: 2px; margin: 0; padding: 0; list-style: none; }
.filter-cats a { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; border-radius: var(--radius-sm); color: var(--c-text); font-size: 14.5px; }
.filter-cats a:hover { background: var(--c-bg); color: var(--c-ink); }
.filter-cats .is-active a { background: var(--c-sky-50); color: var(--c-primary); font-weight: 600; }
.filter-cats .count { padding: 1px 8px; border-radius: 999px; background: var(--c-bg); color: var(--c-muted); font-size: 12px; font-variant-numeric: tabular-nums; }
.filter-cats .is-active .count { background: #fff; }
.price-filter__row { display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: center; gap: 8px; margin-bottom: 12px; color: var(--c-muted); }
.price-filter__clear { display: inline-block; margin-top: 10px; font-size: 13px; }

.shop-toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 16px; margin-bottom: 20px; }
.woocommerce .shop-toolbar .woocommerce-result-count { float: none; margin: 0 auto 0 0; color: var(--c-muted); font-size: 14px; }
.woocommerce .shop-toolbar .woocommerce-ordering { float: none; margin: 0; }
.woocommerce .woocommerce-ordering select {
	height: 42px; padding: 0 38px 0 14px; border: 1.5px solid var(--c-line); border-radius: var(--radius-sm); cursor: pointer;
	background: #fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center;
	-webkit-appearance: none; appearance: none; font-size: 14px; color: var(--c-ink);
}
.filters-toggle { display: none; }

.woocommerce ul.products,
.woocommerce-page ul.products {
	display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 18px;
	margin: 0; padding: 0; list-style: none;
}
.woocommerce ul.products::before, .woocommerce ul.products::after,
.woocommerce-page ul.products::before, .woocommerce-page ul.products::after { display: none; }
.woocommerce ul.products[class] li.product,
.woocommerce-page ul.products[class] li.product { float: none; width: auto; margin: 0; padding: 0; text-align: left; }

/* woocommerce-general styles every loop <img>, <h3> and .button inside ul.products li.product;
   undo those so shop grids render the same card as the homepage rails. */
.woocommerce ul.products li.product .product-card__media img,
.woocommerce-page ul.products li.product .product-card__media img { width: 100%; height: 100%; margin: 0; box-shadow: none; }
.woocommerce ul.products li.product h3.product-card__title,
.woocommerce-page ul.products li.product h3.product-card__title { margin: 0 0 6px; padding: 0; font-size: 14.5px; }
.woocommerce ul.products li.product a.button.product-card__add,
.woocommerce-page ul.products li.product a.button.product-card__add { display: inline-flex; margin: 0; }

.woocommerce nav.woocommerce-pagination { margin-top: 40px; text-align: center; }
.woocommerce nav.woocommerce-pagination ul { display: inline-flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 0; border: 0; }
.woocommerce nav.woocommerce-pagination ul li { float: none; overflow: visible; border: 0; }
.woocommerce nav.woocommerce-pagination ul li a,
.woocommerce nav.woocommerce-pagination ul li span {
	display: flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px;
	border: 1px solid var(--c-line); border-radius: var(--radius-sm); background: #fff; color: var(--c-ink); font-size: 14px; font-weight: 600; line-height: 1;
}
.woocommerce nav.woocommerce-pagination ul li a:hover,
.woocommerce nav.woocommerce-pagination ul li a:focus { border-color: var(--c-primary); background: #fff; color: var(--c-primary); }
.woocommerce nav.woocommerce-pagination ul li span.current { border-color: var(--c-primary); background: var(--c-primary); color: #fff; }

.woocommerce .woocommerce-info.woocommerce-no-products-found,
.woocommerce-no-products-found .woocommerce-info { margin: 0; }

@media (max-width: 1023px) {
	.shop-layout { grid-template-columns: minmax(0, 1fr); gap: 0; padding-top: 20px; }
	.shop-sidebar {
		position: fixed; top: 0; right: 0; bottom: 0; z-index: 1001; width: min(360px, 88vw); max-height: none;
		padding: 0 20px 24px; background: #fff; transform: translateX(100%); visibility: hidden;
		transition: transform .25s ease, visibility 0s linear .25s;
	}
	body.filters-open .shop-sidebar { transform: none; visibility: visible; transition-delay: 0s; }
	.shop-sidebar__head { position: sticky; top: 0; z-index: 1; display: flex; align-items: center; justify-content: space-between; margin: 0 -20px 18px; padding: 10px 12px 10px 20px; background: #fff; border-bottom: 1px solid var(--c-line); font-size: 17px; }
	.filters-toggle { display: inline-flex; }
}
@media (max-width: 560px) {
	.woocommerce ul.products, .woocommerce-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; }
	.product-card__body { padding: 12px; }
	.product-card__media img { padding: 12px; }
	.product-card__title { font-size: 13.5px; }
	.product-card__foot { flex-direction: column; align-items: stretch; gap: 10px; }
	.product-card a.product-card__add { justify-content: center; }
	.woocommerce .shop-toolbar .woocommerce-result-count { order: 3; flex-basis: 100%; }
}

/* ==========================================================================
   WooCommerce: shared components
   ========================================================================== */
.wc-container { padding-block: 24px 80px; }
.woocommerce .wc-container > .woocommerce-breadcrumb { margin-bottom: 24px; }

.woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	padding: 12px 20px; border: 1px solid var(--c-line); border-radius: var(--radius-sm); background: #fff;
	color: var(--c-ink); font-size: 15px; font-weight: 600; line-height: 1.2;
}
.woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { border-color: var(--c-primary); background: #fff; color: var(--c-primary); }
.woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt,
.woocommerce button.button[name="login"], .woocommerce button.button[name="register"], .woocommerce button.button[name="save_account_details"], .woocommerce button.button[name="save_address"] {
	border-color: var(--c-primary); background: var(--c-primary); color: #fff;
}
.woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover, .woocommerce input.button.alt:hover,
.woocommerce button.button[name="login"]:hover, .woocommerce button.button[name="register"]:hover { border-color: var(--c-primary-dark); background: var(--c-primary-dark); color: #fff; }

.woocommerce-message, .woocommerce-info, .woocommerce-error,
.woocommerce .woocommerce-message, .woocommerce .woocommerce-info, .woocommerce .woocommerce-error {
	margin: 0 0 24px; padding: 16px 20px 16px 52px; border: 0; border-left: 4px solid var(--c-primary);
	border-radius: var(--radius); background: var(--c-sky-50); color: var(--c-ink); font-size: 15px;
}
.woocommerce-message::before, .woocommerce-info::before { top: 16px; left: 20px; color: var(--c-primary); }
.woocommerce-error { border-left-color: var(--c-red-600); background: #fef2f2; }
.woocommerce-error::before { top: 16px; left: 20px; color: var(--c-red-600); }
.woocommerce-message .button, .woocommerce-info .button { float: right; margin-left: 16px; padding: 8px 14px; font-size: 14px; }

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .quantity .qty {
	min-height: 44px; padding: 10px 12px; border: 1.5px solid var(--c-line); border-radius: var(--radius-sm); background: #fff; line-height: 1.4;
}
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce .quantity .qty:focus { outline: none; border-color: var(--c-primary); }
.woocommerce form .form-row label { margin-bottom: 6px; color: var(--c-ink); font-size: 14px; font-weight: 600; }
.woocommerce form.login, .woocommerce form.register {
	margin: 0; padding: 28px; border: 1px solid var(--c-line); border-radius: var(--radius-lg);
}
.woocommerce .col2-set, .woocommerce-page .col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; }
.woocommerce .col2-set::before, .woocommerce .col2-set::after { display: none; }
.woocommerce .col2-set .col-1, .woocommerce .col2-set .col-2 { float: none; width: auto; max-width: none; }
.woocommerce form .form-row-first, .woocommerce form .form-row-last { float: left; width: 48%; }
.woocommerce form .form-row-last { float: right; }
.woocommerce form .form-row-wide { clear: both; }

/* Account */
.woocommerce-account.logged-in .page-body .woocommerce { display: grid; grid-template-columns: 240px minmax(0, 1fr); align-items: start; gap: 0 40px; }
.woocommerce-account.logged-in .page-body .woocommerce > * { grid-column: 1 / -1; }
.woocommerce-account.logged-in .page-body .woocommerce > :empty { display: none; }
.woocommerce-account .woocommerce-MyAccount-navigation { float: none; width: auto; }
.woocommerce-account .woocommerce-MyAccount-content { float: none; width: auto; }
.woocommerce-account.logged-in .page-body .woocommerce > .woocommerce-MyAccount-navigation { grid-column: 1; }
.woocommerce-account.logged-in .page-body .woocommerce > .woocommerce-MyAccount-content { grid-column: 2; }
.woocommerce-MyAccount-content > p:first-child { margin-top: 0; }

@media (max-width: 767px) {
	.woocommerce-account.logged-in .page-body .woocommerce > .woocommerce-MyAccount-content { grid-column: 1; margin-top: 24px; }
}

/* Logged-in admins: the fixed WP toolbar would cover the drawer headers. */
@media (max-width: 1023px) {
	.admin-bar .shop-sidebar { top: 32px; }
}
@media (max-width: 782px) {
	.admin-bar .mobile-nav,
	.admin-bar .shop-sidebar { top: 46px; }
}
.woocommerce-MyAccount-navigation ul { display: grid; gap: 2px; margin: 0; padding: 8px; list-style: none; border: 1px solid var(--c-line); border-radius: var(--radius-lg); }
.woocommerce-MyAccount-navigation a { display: block; padding: 10px 12px; border-radius: var(--radius-sm); color: var(--c-text); font-weight: 500; }
.woocommerce-MyAccount-navigation a:hover { background: var(--c-bg); color: var(--c-ink); }
.woocommerce-MyAccount-navigation .is-active a { background: var(--c-sky-50); color: var(--c-primary); font-weight: 600; }
.woocommerce table.shop_table { border: 1px solid var(--c-line); border-radius: var(--radius); border-collapse: separate; }
.woocommerce table.shop_table th { color: var(--c-ink); font-weight: 600; }

/* Classic (shortcode) checkout: used because some payment plugins don't support the block checkout */
.woocommerce-checkout form.checkout { display: grid; grid-template-columns: minmax(0, 1fr) 420px; align-items: start; gap: 0 48px; }
.woocommerce-checkout form.checkout > * { grid-column: 1; }
.woocommerce-checkout form.checkout > #customer_details { grid-column: 1; grid-row: 1 / span 3; grid-template-columns: minmax(0, 1fr); gap: 28px; }
.woocommerce-checkout form.checkout > #order_review_heading { grid-column: 2; grid-row: 1; margin: 0 0 14px; font-size: 20px; font-weight: 800; }
.woocommerce-checkout form.checkout > #order_review {
	grid-column: 2; grid-row: 2; position: sticky; top: calc(var(--header-h) + 20px);
	padding: 24px; border: 1px solid var(--c-line); border-radius: var(--radius-lg); background: #fff;
}
.woocommerce-checkout h3 { margin: 0 0 16px; font-size: 20px; font-weight: 800; letter-spacing: -.01em; }
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper { display: flow-root; }
.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info { margin-bottom: 20px; }

.woocommerce table.shop_table.woocommerce-checkout-review-order-table { width: 100%; margin: 0 0 20px; border: 0; border-radius: 0; }
.woocommerce-checkout-review-order-table th,
.woocommerce-checkout-review-order-table td { padding: 12px 0 !important; border: 0 !important; border-top: 1px solid var(--c-line-soft) !important; text-align: left; vertical-align: top; font-size: 14.5px; }
.woocommerce-checkout-review-order-table thead th { border-top: 0 !important; color: var(--c-muted); font-size: 12px; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; }
.woocommerce-checkout-review-order-table .product-total,
.woocommerce-checkout-review-order-table td:last-child { text-align: right; white-space: nowrap; padding-left: 12px !important; }
.woocommerce-checkout-review-order-table .product-name { color: var(--c-ink); }
.woocommerce-checkout-review-order-table .order-total th,
.woocommerce-checkout-review-order-table .order-total td { color: var(--c-ink); font-size: 18px; font-weight: 800; }

.woocommerce-checkout #payment { border-radius: 0; background: transparent; }
.woocommerce-checkout #payment ul.payment_methods { display: grid; gap: 10px; margin: 0 0 18px; padding: 0; border: 0; list-style: none; }
.woocommerce-checkout #payment ul.payment_methods::before,
.woocommerce-checkout #payment ul.payment_methods::after { display: none; }
.woocommerce-checkout #payment ul.payment_methods li {
	margin: 0; padding: 14px 16px; border: 1.5px solid var(--c-line); border-radius: var(--radius);
	background: #fff; line-height: 1.4; transition: border-color .15s ease, background-color .15s ease;
}
.woocommerce-checkout #payment ul.payment_methods li:has(input:checked) { border-color: var(--c-primary); background: var(--c-sky-50); }
.woocommerce-checkout #payment ul.payment_methods li input { margin: 0 10px 0 0; vertical-align: middle; accent-color: var(--c-primary); }
.woocommerce-checkout #payment ul.payment_methods li label { color: var(--c-ink); font-weight: 600; cursor: pointer; }
.woocommerce-checkout #payment div.payment_box { margin: 10px 0 0; padding: 12px 14px; border-radius: var(--radius-sm); background: #fff; color: var(--c-text); font-size: 14px; }
.woocommerce-checkout #payment div.payment_box::before { display: none; }
.woocommerce-checkout #payment div.payment_box p:last-child { margin-bottom: 0; }
.woocommerce-checkout #payment div.form-row { margin: 0; padding: 0; }
.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper { margin-bottom: 14px; color: var(--c-muted); font-size: 13.5px; }
.woocommerce-checkout #payment #place_order {
	float: none; width: 100%; height: 52px; border: 0; border-radius: var(--radius-sm);
	background: var(--c-primary); color: #fff; font-size: 16px; font-weight: 700;
}
.woocommerce-checkout #payment #place_order:hover { background: var(--c-primary-dark); }

.woocommerce-checkout .select2-container .select2-selection--single { height: 44px; border: 1.5px solid var(--c-line); border-radius: var(--radius-sm); }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__rendered { padding-left: 12px; line-height: 41px; color: var(--c-ink); }
.woocommerce-checkout .select2-container .select2-selection--single .select2-selection__arrow { height: 42px; }

@media (max-width: 1023px) {
	.woocommerce-checkout form.checkout { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-checkout form.checkout > #customer_details,
	.woocommerce-checkout form.checkout > #order_review_heading,
	.woocommerce-checkout form.checkout > #order_review { grid-column: 1; grid-row: auto; }
	.woocommerce-checkout form.checkout > #order_review_heading { margin-top: 32px; }
	.woocommerce-checkout form.checkout > #order_review { position: static; padding: 18px; }
}

/* Block cart & checkout */
.wc-block-components-button:not(.is-link) { border-radius: var(--radius-sm); background: var(--c-primary); color: #fff; font-weight: 600; }
.wc-block-components-button:not(.is-link):hover { background: var(--c-primary-dark); color: #fff; }
.wc-block-components-text-input input, .wc-block-components-combobox .wc-block-components-combobox-control input { border-radius: var(--radius-sm) !important; }

@media (max-width: 767px) {
	.woocommerce .col2-set, .woocommerce-page .col2-set { grid-template-columns: minmax(0, 1fr); }
	.woocommerce-account.logged-in .page-body .woocommerce { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.woocommerce form .form-row-first, .woocommerce form .form-row-last { float: none; width: 100%; }
}

/* ==========================================================================
   WooCommerce: single product
   ========================================================================== */
.woocommerce div.product { position: relative; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); align-items: start; gap: 12px 56px; }
.woocommerce div.product > .woocommerce-product-gallery,
.woocommerce div.product div.images { float: none; width: auto; margin: 0; }
.woocommerce div.product div.summary { float: none; width: auto; margin: 0; }
.woocommerce div.product > .woocommerce-tabs,
.woocommerce div.product > .related,
.woocommerce div.product > .upsells,
.woocommerce div.product > .clear { grid-column: 1 / -1; }
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper { border: 1px solid var(--c-line); border-radius: var(--radius-lg); overflow: hidden; background: #fff; }
.woocommerce div.product div.images img { max-height: 540px; margin-inline: auto; padding: 24px; object-fit: contain; }
.woocommerce div.product div.images .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 10px; margin-top: 10px; }
.woocommerce div.product div.images .flex-control-thumbs li { width: auto; float: none; }
.woocommerce div.product div.images .flex-control-thumbs li img { padding: 6px; border: 1px solid var(--c-line); border-radius: var(--radius-sm); }
.woocommerce span.onsale { top: 16px; left: 16px; min-width: 0; min-height: 0; padding: 4px 10px; border-radius: 999px; background: var(--c-red-600); font-size: 12px; font-weight: 700; line-height: 1.4; }

.woocommerce div.product .product_title { margin-bottom: 14px; font-size: clamp(24px, 2.6vw, 34px); font-weight: 800; line-height: 1.2; letter-spacing: -.02em; }
.woocommerce div.product p.price, .woocommerce div.product span.price { margin: 0 0 16px; color: var(--c-ink); font-size: 30px; font-weight: 800; letter-spacing: -.02em; }
.woocommerce div.product p.price del { color: var(--c-muted); font-size: 18px; font-weight: 500; }
.woocommerce div.product p.price ins { color: var(--c-red-600); text-decoration: none; }
.woocommerce div.product .woocommerce-product-details__short-description { color: var(--c-text); }
.woocommerce div.product .stock { font-weight: 600; }
.woocommerce div.product .stock.in-stock { color: var(--c-green-600); }
.woocommerce div.product .stock.out-of-stock { color: var(--c-red-600); }
.woocommerce div.product form.cart { display: flex; flex-wrap: wrap; gap: 12px; margin: 24px 0; padding: 20px; border-radius: var(--radius-lg); background: var(--c-bg); }
.woocommerce div.product form.cart::before, .woocommerce div.product form.cart::after { display: none; }
.woocommerce div.product form.cart div.quantity { float: none; margin: 0; }
.woocommerce div.product form.cart .quantity .qty { width: 88px; height: 52px; text-align: center; font-size: 16px; font-weight: 600; }
.woocommerce div.product form.cart .button {
	flex: 1; float: none; height: 52px; min-width: 200px; border: 0; border-radius: var(--radius-sm);
	background: var(--c-primary); color: #fff; font-size: 16px; font-weight: 700;
}
.woocommerce div.product form.cart .button:hover { background: var(--c-primary-dark); color: #fff; }
.woocommerce div.product .product_meta { display: grid; gap: 6px; padding-top: 18px; border-top: 1px solid var(--c-line); color: var(--c-muted); font-size: 14px; }
.woocommerce div.product .product_meta > span > span, .woocommerce div.product .product_meta a { color: var(--c-ink); font-weight: 600; }

.woocommerce div.product .woocommerce-tabs { margin-top: 48px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; gap: 28px; margin: 0 0 28px; padding: 0; overflow-x: auto; border-bottom: 1px solid var(--c-line); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li { margin: 0; padding: 0; border: 0; border-radius: 0; background: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li::before, .woocommerce div.product .woocommerce-tabs ul.tabs li::after { display: none; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { display: block; padding: 14px 0; border-bottom: 2px solid transparent; color: var(--c-muted); font-weight: 600; white-space: nowrap; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active a { border-bottom-color: var(--c-primary); color: var(--c-ink); }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 82ch; margin: 0; font-size: 15.5px; }
.woocommerce div.product .woocommerce-tabs .panel > h2:first-child { font-size: 20px; }
.woocommerce div.product .related > h2, .woocommerce div.product .upsells > h2 { margin: 56px 0 22px; font-size: clamp(22px, 2.2vw, 28px); font-weight: 800; letter-spacing: -.02em; }

@media (max-width: 900px) {
	.woocommerce div.product { grid-template-columns: minmax(0, 1fr); gap: 28px; }
}

/* ==========================================================================
   Customer reviews
   ========================================================================== */
.stars { display: inline-flex; align-items: center; gap: 2px; color: var(--c-amber-500); line-height: 1; }
.stars .star { display: block; }
.stars .is-empty { color: #d5dde6; }

.review-card {
	display: flex; flex-direction: column; gap: 12px; height: 100%; padding: 24px;
	background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg);
	transition: box-shadow .18s ease, border-color .18s ease;
}
.review-card:hover { border-color: transparent; box-shadow: var(--shadow); }
.review-card[hidden] { display: none; }
.review-card__top { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 22px; }
.review-card__headline { margin: 2px 0 0; color: var(--c-ink); font-size: 16.5px; font-weight: 700; line-height: 1.35; letter-spacing: -.005em; }
.review-card__text { margin: 0; color: var(--c-text); font-size: 15px; line-height: 1.65; }
.review-card__author { display: flex; align-items: center; gap: 12px; margin-top: auto; padding-top: 16px; border-top: 1px solid var(--c-line-soft); }
.avatar {
	display: flex; align-items: center; justify-content: center; flex-shrink: 0; width: 40px; height: 40px;
	border-radius: 999px; background: var(--c-sky-100); color: var(--c-primary); font-size: 14px; font-weight: 700;
}
.review-card__who { display: flex; flex-direction: column; min-width: 0; line-height: 1.3; }
.review-card__who strong { color: var(--c-ink); font-size: 14.5px; }
.review-card__who small { overflow: hidden; color: var(--c-muted); font-size: 13px; text-overflow: ellipsis; white-space: nowrap; }
.review-card__date { flex-shrink: 0; margin-left: auto; color: var(--c-muted); font-size: 12.5px; white-space: nowrap; }

.staff-notice {
	display: flex; align-items: center; gap: 10px; margin-bottom: 22px; padding: 12px 16px;
	border: 1px dashed #f0b44c; border-radius: var(--radius); background: #fffbeb; color: #78350f; font-size: 14px;
}
.staff-notice a { color: #92400e; font-weight: 600; text-decoration: underline; }

/* Homepage section */
.rating-inline { display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px; margin-top: 8px; color: var(--c-muted); font-size: 14.5px; }
.rating-inline strong { color: var(--c-ink); font-size: 16px; }
.rating-inline__sep { color: #c4cdd8; }
.reviews-rail { grid-auto-columns: calc((100% - 16px * 2) / 3); }

/* Reviews page */
.reviews-hero { position: relative; overflow: hidden; background: linear-gradient(180deg, var(--c-sky-50) 0%, #fff 100%); border-bottom: 1px solid var(--c-line); }
.reviews-hero__inner { display: grid; grid-template-columns: minmax(0, 1fr) 400px; align-items: center; gap: 48px; padding-block: 36px 48px; }
.reviews-hero h1 { margin: 16px 0 12px; font-size: clamp(30px, 3.8vw, 48px); font-weight: 800; line-height: 1.1; letter-spacing: -.03em; }
.reviews-hero p { max-width: 56ch; margin: 0; color: var(--c-muted); font-size: 17px; }

.rating-card { padding: 26px; background: #fff; border: 1px solid var(--c-line); border-radius: var(--radius-lg); box-shadow: var(--shadow); }
.rating-card__score { display: flex; align-items: center; gap: 16px; margin-bottom: 20px; padding-bottom: 20px; border-bottom: 1px solid var(--c-line-soft); }
.rating-card__value { color: var(--c-ink); font-size: 56px; font-weight: 800; line-height: 1; letter-spacing: -.04em; }
.rating-card__meta small { display: block; margin-top: 6px; color: var(--c-muted); font-size: 13.5px; }
.rating-bars { display: grid; gap: 9px; margin: 0; padding: 0; list-style: none; }
.rating-bar { display: grid; grid-template-columns: 48px minmax(0, 1fr) 28px; align-items: center; gap: 12px; color: var(--c-muted); font-size: 13.5px; }
.rating-bar__track { height: 8px; overflow: hidden; border-radius: 999px; background: var(--c-line-soft); }
.rating-bar__fill { display: block; height: 100%; border-radius: inherit; background: var(--c-amber-500); }
.rating-bar__count { text-align: right; font-variant-numeric: tabular-nums; }

.reviews-toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 20px; margin-bottom: 24px; }
.reviews-count { margin: 0; color: var(--c-muted); font-size: 14.5px; }
.chip-group { display: flex; flex-wrap: wrap; gap: 8px; }
.chip {
	height: 38px; padding: 0 16px; border: 1.5px solid var(--c-line); border-radius: 999px; background: #fff;
	color: var(--c-text); font-size: 14px; font-weight: 600; cursor: pointer; transition: border-color .15s ease, background-color .15s ease, color .15s ease;
}
.chip:hover { border-color: var(--c-primary); color: var(--c-primary); }
.chip[aria-pressed="true"] { border-color: var(--c-primary); background: var(--c-primary); color: #fff; }
.reviews-grid { columns: 3 300px; column-gap: 18px; }
.reviews-grid .review-card { display: flex; height: auto; margin-bottom: 18px; break-inside: avoid; }
.reviews-grid .review-card[hidden] { display: none; }
.reviews-empty { max-width: 560px; margin: 24px auto; text-align: center; }
.reviews-empty .feature__icon { margin: 0 auto 14px; }
.reviews-empty p { color: var(--c-muted); }
.section--flush-top { padding-top: 0; }
.cta-band__form--actions { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 12px; }

@media (max-width: 1023px) {
	.reviews-rail { grid-auto-columns: calc((100% - 16px) / 2); }
	.reviews-hero__inner { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.cta-band__form--actions { justify-content: flex-start; }
}
@media (max-width: 640px) {
	.reviews-rail { grid-auto-columns: 86%; }
	.review-card { padding: 20px; }
	.rating-card__value { font-size: 46px; }
	.cta-band__form--actions .btn { width: 100%; }
}
