/* ==========================================================================
   JOCOR Distro — base tokens
   ========================================================================== */
:root {
	--color-accent: #2c7df6;
	--color-black: #000;
	--color-white: #fff;
	--font-body: "Lato", sans-serif;
	--font-heading: "PT Sans", sans-serif;
	--page-width: 1500px;
}

* { box-sizing: border-box; }

html, body {
	margin: 0;
	padding: 0;
}

body {
	font-family: var(--font-body);
	font-size: 14px;
	line-height: 1.6;
	color: #000;
	background: #fff;
}

img { max-width: 100%; display: block; }

a { color: inherit; text-decoration: none; }

h1, h2, h3, h4 {
	font-family: var(--font-heading);
	font-weight: 700;
	letter-spacing: 0.03em;
	margin: 0 0 15px;
}

.page-width {
	max-width: var(--page-width);
	margin: 0 auto;
	padding: 0 40px;
}

.section-spacing { padding-top: 40px; padding-bottom: 40px; }

.btn {
	position: relative;
	display: inline-block;
	overflow: hidden;
	background: var(--color-accent);
	color: #fff;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 9px;
	letter-spacing: 1.8px;
	text-transform: uppercase;
	padding: 13px 30px;
	border: none;
	cursor: pointer;
	transition: background 0.2s ease;
}

/* diagonal "shine" sweep across CTA buttons on hover */
.btn:after {
	content: "";
	position: absolute;
	top: 0;
	left: 150%;
	width: 200%;
	height: 100%;
	transform: skew(-20deg);
	background-image: linear-gradient(to right, transparent, rgba(255,255,255,0.35), transparent);
	pointer-events: none;
}

.btn:hover:after {
	animation: btn-shine 0.75s cubic-bezier(0.01,0.56,1,1);
}

@keyframes btn-shine {
	to { left: -200%; }
}

/* underline that sweeps in left-to-right on hover, used by nav links */
.link-underline {
	position: relative;
}

.link-underline:after {
	content: "";
	display: block;
	position: absolute;
	bottom: 2px;
	left: 0;
	right: 100%;
	border-bottom: 2px solid currentColor;
	transition: right 0.5s;
}

.link-underline:hover:after {
	right: 0;
}

/* ==========================================================================
   Header
   ========================================================================== */
.site-header__top {
	background: #000;
	color: #fff;
	padding: 20px 0 30px;
}

.site-header__top-layout {
	display: flex;
	align-items: center;
}

.header-item--logo img {
	width: 240px;
	height: auto;
}

.site-header__search-wrap {
	position: relative;
	flex: 1 1 auto;
	margin: 3px 20px;
}

.site-header__search-input {
	width: 100%;
	height: 40px;
	background: rgba(255,255,255,0.9);
	border: none;
	border-radius: 2px;
	padding: 0 15px;
	font-size: 16px;
	font-family: var(--font-body);
	color: #555;
}

.site-header__search-input::placeholder { color: #777; }

/* live search suggestions dropdown */
.search-suggest {
	position: absolute;
	top: calc(100% + 6px);
	left: 0;
	right: 0;
	max-height: 70vh;
	overflow-y: auto;
	background: #fff;
	color: #000;
	box-shadow: 0 12px 30px rgba(0,0,0,0.2);
	z-index: 50;
	text-align: left;
}

.search-suggest__group-title {
	font-family: var(--font-body);
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: #888;
	padding: 12px 16px 6px;
}

.search-suggest__item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 16px;
	text-decoration: none;
	color: #000;
}

.search-suggest__item:hover,
.search-suggest__item.is-active {
	background: #f4f4f4;
}

.search-suggest__thumb {
	flex: 0 0 auto;
	width: 40px;
	height: 40px;
	background: #f4f4f4;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}

.search-suggest__thumb img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.search-suggest__text {
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap: 2px;
}

.search-suggest__title {
	font-size: 14px;
	font-weight: 700;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.search-suggest__info {
	font-size: 12px;
	color: var(--color-accent);
}

.search-suggest__empty,
.search-suggest__loading {
	padding: 16px;
	font-size: 14px;
	color: #777;
}

.site-header__nav {
	background: var(--color-accent);
	min-height: 70px;
}

.site-nav__list {
	list-style: none;
	display: flex;
	align-items: center;
	min-height: 70px;
	margin: 0;
	padding: 0;
	flex-wrap: wrap;
	justify-content: center;
}

.site-nav__item { position: relative; }

.site-nav__link {
	display: block;
	color: #fff;
	font-family: var(--font-heading);
	font-size: 18px;
	font-weight: 700;
	letter-spacing: 0.025em;
	line-height: 1.2;
	padding: 7.5px 15px;
}

.site-nav__link.link-underline:after {
	bottom: 4px;
	margin: 0 15px;
}

.site-nav__link--sale { font-weight: 700; }

.site-nav__dropdown {
	position: absolute;
	top: 100%;
	left: 0;
	background: #fff;
	color: #000;
	list-style: none;
	margin: 0;
	padding: 10px 0;
	min-width: 210px;
	box-shadow: 0 8px 24px rgba(0,0,0,0.15);
	z-index: 20;
	visibility: hidden;
	transform: translate3d(0, -12px, 0);
}

.site-nav__item--has-dropdown:hover .site-nav__dropdown {
	visibility: visible;
	transform: translate3d(0, 0, 0);
	transition: all 0.3s cubic-bezier(0.2,0.06,0.05,0.95);
}

.site-nav__dropdown li a {
	display: block;
	padding: 8px 20px;
	font-family: var(--font-body);
	font-size: 13px;
	white-space: nowrap;
}

/* dropdown links use the same underline sweep as top-level nav, just
   thinner and inset to the link's own padding, matching the live theme */
.footer-menu a.link-underline:after,
.footer-col--contact a.link-underline:after {
	bottom: -2px;
}

.site-nav__dropdown .link-underline:after {
	bottom: 4px;
	left: 20px;
	margin: 0 20px 0 0;
	border-bottom-width: 1px;
}

.header-item--icons {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 22px;
	width: 240px;
	flex-shrink: 0;
}

.header-icon {
	color: #fff;
	display: flex;
	align-items: center;
	position: relative;
}

.header-icon svg {
	width: 28px;
	height: 28px;
	fill: none;
}

.header-icon__count {
	position: absolute;
	top: -8px;
	right: -10px;
	background: var(--color-accent);
	color: #fff;
	font-size: 10px;
	border-radius: 50%;
	width: 16px;
	height: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
}

/* ==========================================================================
   Mobile nav (hamburger toggle, overlay, drawer)
   ========================================================================== */
.mobile-nav-toggle {
	display: none;
	flex-direction: column;
	justify-content: center;
	gap: 5px;
	width: 32px;
	height: 32px;
	padding: 0;
	background: none;
	border: none;
	cursor: pointer;
	flex-shrink: 0;
}

.mobile-nav-toggle__bar {
	display: block;
	width: 100%;
	height: 2px;
	background: #fff;
}

.mobile-nav-overlay {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.5);
	z-index: 90;
	opacity: 0;
	transition: opacity 0.3s;
}

.mobile-nav-overlay.is-open { opacity: 1; }

.mobile-nav {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 300px;
	max-width: 85vw;
	background: #000;
	color: #fff;
	z-index: 91;
	overflow-y: auto;
	transform: translate3d(100%, 0, 0);
	transition: transform 0.3s ease;
	display: flex;
	flex-direction: column;
}

.mobile-nav.is-open { transform: translate3d(0, 0, 0); }

.mobile-nav__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px;
	border-bottom: 1px solid rgba(255,255,255,0.15);
}

.mobile-nav__logo-link img { width: 160px; height: auto; }

.mobile-nav__close {
	background: none;
	border: none;
	color: #fff;
	width: 28px;
	height: 28px;
	padding: 0;
	cursor: pointer;
}

.mobile-nav__close svg { width: 100%; height: 100%; }

.mobile-nav__list {
	list-style: none;
	margin: 0;
	padding: 10px 0;
	flex: 1 1 auto;
}

.mobile-nav__item { border-bottom: 1px solid rgba(255,255,255,0.08); }

.mobile-nav__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
}

.mobile-nav__link {
	display: block;
	flex: 1 1 auto;
	color: #fff;
	font-family: var(--font-heading);
	font-size: 17px;
	font-weight: 700;
	padding: 14px 20px;
}

.mobile-nav__link--sale { color: var(--color-accent); }

.mobile-nav__expand {
	background: none;
	border: none;
	color: #fff;
	width: 44px;
	height: 44px;
	flex-shrink: 0;
	cursor: pointer;
	transition: transform 0.2s;
}

.mobile-nav__expand svg { width: 18px; height: 18px; }

.mobile-nav__item.is-expanded .mobile-nav__expand { transform: rotate(180deg); }

.mobile-nav__submenu {
	list-style: none;
	margin: 0;
	padding: 0 20px;
	max-height: 0;
	overflow: hidden;
	transition: max-height 0.3s ease;
}

.mobile-nav__item.is-expanded .mobile-nav__submenu {
	max-height: 400px;
	padding-bottom: 10px;
}

.mobile-nav__sublink {
	display: block;
	padding: 8px 0 8px 12px;
	color: rgba(255,255,255,0.75);
	font-family: var(--font-body);
	font-size: 14px;
}

.mobile-nav__footer {
	display: flex;
	gap: 20px;
	padding: 16px 20px;
	border-top: 1px solid rgba(255,255,255,0.15);
}

.mobile-nav__footer-link {
	color: #fff;
	font-family: var(--font-body);
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
}

body.mobile-nav-open { overflow: hidden; }

/* WordPress's admin bar is position:fixed at the true viewport top and
   pushes normal page flow down via a margin-top hack on <html> — but our
   own fixed-position drawer/overlay aren't part of that flow, so they'd
   render underneath/behind the admin bar unless explicitly offset. */
body.admin-bar .mobile-nav,
body.admin-bar .mobile-nav-overlay {
	top: 32px;
}

@media screen and (max-width: 782px) {
	body.admin-bar .mobile-nav,
	body.admin-bar .mobile-nav-overlay {
		top: 46px;
	}
}

/* ==========================================================================
   Hero + category tiles
   ========================================================================== */
.home-hero-grid {
	display: grid;
	grid-template-columns: 2fr 1fr;
	align-items: stretch;
	gap: 10px;
	margin-bottom: 40px;
}

.hero-slideshow {
	position: relative;
	overflow: hidden;
	aspect-ratio: 1.77 / 1;
	background: #eee;
}

.hero-slideshow__slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.6s ease;
}

.hero-slideshow__slide.is-active {
	opacity: 1;
	visibility: visible;
}

.hero-slideshow__image-link,
.hero-slideshow__slide img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* image slides in from the right when its slide becomes active */
.hero-slideshow__image-link {
	overflow: hidden;
	transform: translateX(150px);
	opacity: 0;
	transition: transform 0.7s ease, opacity 0.7s ease;
}

.hero-slideshow__slide.is-active .hero-slideshow__image-link {
	transform: translateX(0);
	opacity: 1;
}

.hero-slideshow__text {
	position: absolute;
	inset: 0;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 20px;
	color: #fff;
	text-shadow: 0 2px 10px rgba(0,0,0,0.5);
	pointer-events: none;
}

.hero-slideshow__text .btn { pointer-events: auto; }

.hero-slideshow__crop {
	overflow: hidden;
}

/* text rises up from a hidden line, staggered per-element via inline transition-delay */
.rise {
	display: block;
	transform: translateY(120%);
	transition: transform 1s cubic-bezier(0.26,0.54,0.32,1);
}

.hero-slideshow__slide.is-active .rise {
	transform: translateY(0);
}

.hero-slideshow__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 14.3px;
	margin-bottom: 10px;
}

.hero-slideshow__title {
	font-size: 55px;
	letter-spacing: 0.025em;
	line-height: 1.2;
	margin-bottom: 10px;
}

.hero-slideshow__subtitle {
	font-size: 16.9px;
	margin-bottom: 20px;
}

.hero-slideshow__dots {
	position: absolute;
	bottom: 16px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 8px;
	z-index: 5;
}

.hero-slideshow__dot {
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: rgba(255,255,255,0.5);
	border: none;
	cursor: pointer;
	padding: 0;
}

.hero-slideshow__dot.is-active { background: #fff; }

.home-hero-grid__tiles {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 10px;
	height: 100%;
}

.category-tile {
	position: relative;
	overflow: hidden;
	display: block;
}

.category-tile img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

/* ==========================================================================
   Promo grid
   ========================================================================== */
.promo-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 40px;
	margin-bottom: 75px;
}

.promo-banner {
	position: relative;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 2 / 1;
}

.promo-banner img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.promo-banner__scrim {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.35);
}

.promo-banner__content {
	position: relative;
	z-index: 2;
	text-align: center;
	color: #fff;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
}

.promo-banner__eyebrow {
	text-transform: uppercase;
	letter-spacing: 0.2em;
	font-size: 14.6px;
}

.promo-banner__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 33px;
	letter-spacing: 0.025em;
}

.promo-banner__subtitle { font-size: 15px; }

.promo-banner .btn { margin-top: 8px; }

/* ==========================================================================
   Product grid
   ========================================================================== */
.home-products { margin-bottom: 75px; }

.home-products .section-header__title {
	text-align: center;
	font-size: 24px;
	letter-spacing: 0.025em;
	margin-bottom: 50px;
}

.product-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 30px 20px;
}

.product-card__image-wrap {
	position: relative;
	aspect-ratio: 1 / 1;
	background: #f7f7f7;
	margin-bottom: 12px;
}

.product-card__image-wrap img {
	width: 100%;
	height: 100%;
	object-fit: contain;
}

.product-card__badge {
	position: absolute;
	top: 8px;
	right: 8px;
	border-radius: 50%;
	width: 46px;
	height: 46px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	text-align: center;
	line-height: 1.1;
}

.product-card__badge--sold-out {
	background: rgba(0,0,0,0.75);
	color: #fff;
}

.product-card__badge--sale {
	background: #d0201e;
	color: #fff;
}

.product-card__title {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 15px;
	letter-spacing: 0.025em;
	margin-bottom: 6px;
}

.product-card__price {
	color: var(--color-accent);
	font-weight: 700;
	font-size: 18px;
}

.product-card__price--was {
	color: #999;
	text-decoration: line-through;
	margin-right: 6px;
	font-size: 14px;
}

.product-card__price--sale { color: #d0201e; }

.product-card__save {
	color: #d0201e;
	font-size: 12px;
	margin-top: 2px;
}

/* ==========================================================================
   Bottom category blurbs
   ========================================================================== */
.category-blurbs {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	margin-bottom: 75px;
}

.category-blurb__image-link {
	display: block;
	aspect-ratio: 1.67 / 1;
	overflow: hidden;
	margin-bottom: 16px;
}

.category-blurb__image-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.category-blurb h3 { font-size: 19px; margin-bottom: 8px; }
.category-blurb p { color: #444; font-size: 14px; margin: 0; }

/* ==========================================================================
   Footer
   ========================================================================== */
.site-footer {
	background: #000;
	color: #fff;
	padding: 60px 0 30px;
	text-align: center;
}

.footer-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 40px;
	text-align: left;
	margin-bottom: 40px;
}

.footer-title {
	font-family: var(--font-body);
	font-size: 10.4px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.2em;
	border-bottom: 1px solid rgba(255,255,255,0.2);
	padding-bottom: 12px;
	margin-bottom: 20px;
}

.footer-logo {
	width: 180px;
	margin-bottom: 20px;
}

.footer-col p {
	font-size: 13px;
	color: rgba(255,255,255,0.85);
}

.footer-menu {
	list-style: none;
	margin: 0;
	padding: 0;
}

.footer-menu li { margin-bottom: 10px; }

.footer-menu a { font-size: 13px; color: rgba(255,255,255,0.85); }

.footer-col--disclaimer p {
	font-size: 11.5px;
	color: rgba(255,255,255,0.6);
	line-height: 1.6;
}

.payment-icons {
	list-style: none;
	display: flex;
	justify-content: center;
	gap: 10px;
	padding: 0;
	margin: 0 0 20px;
	flex-wrap: wrap;
}

.payment-icons li {
	display: flex;
}

.payment-icons svg {
	width: 38px;
	height: 24px;
}

.footer-small-text {
	font-size: 16px;
	color: rgba(255,255,255,0.8);
	margin: 0;
}

/* ==========================================================================
   Single product page
   ========================================================================== */
.product-page__layout {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	margin-bottom: 50px;
}

.product-page__gallery {
	display: grid;
	grid-template-columns: 90px 1fr;
	gap: 15px;
}

.product-page__thumbs {
	display: flex;
	flex-direction: column;
	gap: 10px;
	grid-column: 1; /* explicit, not left to DOM order — this element is omitted entirely for
	                   products with no gallery images, which would otherwise shift
	                   .product-page__main-image into this 90px column instead of its own */
}

.product-page__thumb {
	display: block;
	border: 1px solid transparent;
	cursor: pointer;
}

.product-page__thumb.is-active { border-color: var(--color-accent); }
.product-page__thumb img { width: 100%; height: auto; }

.product-page__main-image {
	grid-column: 2;
}

.product-page__gallery--no-thumbs {
	grid-template-columns: 1fr;
}

.product-page__gallery--no-thumbs .product-page__main-image {
	grid-column: 1;
}

.product-page__main-image img {
	width: 100%;
	height: auto;
}

.product-page__title {
	font-size: 26px;
	margin-bottom: 15px;
}

.product-page__price {
	font-size: 20px;
	font-weight: 700;
	color: var(--color-accent);
	margin-bottom: 20px;
}

.product-page__divider {
	border: none;
	border-top: 1px solid #eee;
	margin: 0 0 20px;
}

.product-page__notice {
	background: #fdecea;
	color: #c0392b;
	padding: 12px 15px;
	margin-bottom: 15px;
}

.product-page__variant-table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
}

.product-page__variant-table th {
	text-align: left;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 10px;
	background: #f7f7f7;
	border: 1px solid #eee;
}

.product-page__variant-table td {
	padding: 10px;
	border: 1px solid #eee;
	font-size: 14px;
}

.product-page__variant-table input[type="number"] {
	width: 70px;
	padding: 8px;
	border: 1px solid #ccc;
}

.product-page__stock {
	margin-left: 10px;
	font-size: 12px;
	color: #777;
}

.product-page__stock--out { color: #d0201e; }

.product-page__simple-qty {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 20px;
}

.product-page__simple-qty input {
	width: 80px;
	padding: 10px;
	border: 1px solid #ccc;
}

.product-page__add-to-cart {
	width: 100%;
	text-align: center;
}

.product-page__description {
	max-width: 800px;
}

.product-page__description ul { padding-left: 20px; }

/* ==========================================================================
   Search results page
   ========================================================================== */
.search-results__collections {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	justify-content: center;
	margin-bottom: 30px;
}

.search-results__section-title {
	font-size: 20px;
	margin: 30px 0 20px;
}

.search-results__list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-width: 600px;
}

.search-results__list li {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 12px 0;
	border-bottom: 1px solid #eee;
}

.search-results__date {
	font-size: 12px;
	color: #888;
}

/* ==========================================================================
   Collection / category archive
   ========================================================================== */
.collection-title {
	text-align: center;
	font-size: 28px;
	margin-bottom: 30px;
}

.collection-promo-banner {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 12px;
	flex-wrap: wrap;
	background: #dbe9fb;
	padding: 18px 20px;
	margin-bottom: 30px;
	text-align: center;
}

.collection-promo-banner__text {
	font-family: var(--font-heading);
	font-weight: 700;
	font-size: 18px;
}

.collection-promo-banner__sub {
	font-size: 14px;
	color: #444;
}

.collection-layout {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 40px;
	align-items: start;
}

.collection-sidebar__group {
	border-top: 1px solid #eee;
	padding-top: 12px;
	margin-top: 12px;
}

.collection-sidebar__group:first-child {
	border-top: none;
	margin-top: 0;
}

.collection-sidebar__title {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 12px;
}

.collection-sidebar__list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.collection-sidebar__list li { margin-bottom: 10px; }
.collection-sidebar__list label { font-size: 14px; display: flex; gap: 8px; align-items: center; color: #333; cursor: pointer; }
.collection-sidebar__list input[type="checkbox"] { cursor: pointer; }

.collection-sidebar__clear {
	display: inline-block;
	font-size: 13px;
	color: var(--color-accent);
	margin-bottom: 16px;
}

.collection-filter-bar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 20px;
}

.collection-filter-bar__count { font-size: 14px; color: #555; }

.collection-filter-bar__sort select {
	border: 1px solid #ccc;
	padding: 10px 15px;
	font-family: var(--font-body);
	font-size: 14px;
	min-width: 220px;
}

.collection-pagination {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 40px;
}

.collection-pagination a,
.collection-pagination span {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 36px;
	height: 36px;
	padding: 0 6px;
	border: 1px solid #ddd;
	font-size: 14px;
}

.collection-pagination .current { background: var(--color-accent); color: #fff; border-color: var(--color-accent); }

/* ==========================================================================
   Signup / create-an-account page
   ========================================================================== */
.signup-page {
	max-width: 560px;
}

.signup-page__login-link {
	text-align: center;
	margin-bottom: 20px;
}

.signup-page__title {
	text-align: center;
	font-size: 28px;
	margin-bottom: 30px;
}

.signup-page__intro p { margin: 0 0 15px; color: #333; }

.signup-page__intro ol {
	margin: 0 0 20px;
	padding-left: 22px;
	color: #333;
}

.signup-page__intro li { margin-bottom: 8px; }

.signup-page__note {
	background: #f5cb1c;
	color: #222;
	text-align: center;
	padding: 18px 24px;
	margin-bottom: 30px;
	line-height: 1.5;
}

.signup-page__success {
	background: #f5cb1c;
	color: #222;
	padding: 20px 24px;
	margin-bottom: 30px;
	text-align: center;
	line-height: 1.5;
}

.signup-page__success p { margin: 0 0 8px; }
.signup-page__success p:last-child { margin-bottom: 0; }

.signup-page__errors {
	background: #fdecea;
	color: #c0392b;
	padding: 15px 20px;
	margin-bottom: 20px;
}

.signup-page__errors p { margin: 0; }

.signup-form__field {
	margin-bottom: 24px;
}

.signup-form__field label {
	display: block;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.1em;
	margin-bottom: 8px;
}

.signup-form__required { color: #d0201e; }

.signup-form__field input,
.signup-form__field textarea {
	width: 100%;
	border: 1px solid #ccc;
	padding: 12px 15px;
	font-family: var(--font-body);
	font-size: 15px;
	color: #333;
}

.signup-form__field textarea { resize: vertical; }

.signup-form__submit {
	display: block;
	width: 100%;
	text-align: center;
}

/* ==========================================================================
   Generic content pages
   ========================================================================== */
.content-page {
	max-width: 800px;
}

.content-page__title {
	text-align: center;
	font-size: 28px;
	margin-bottom: 30px;
}

.content-page__body h2 {
	font-size: 22px;
	margin: 30px 0 15px;
}

.content-page__body h2:first-child { margin-top: 0; }

.content-page__body p { margin: 0 0 15px; color: #333; }

.content-page__body ul,
.content-page__body ol {
	margin: 0 0 15px;
	padding-left: 22px;
	color: #333;
}

.content-page__body li { margin-bottom: 6px; }

.content-page__body a { text-decoration: underline; }

.content-page__body img {
	max-width: 100%;
	height: auto;
	margin: 15px 0;
}

.content-page__body .content-page__center {
	text-align: center;
}

/* ==========================================================================
   Quick Order (Wholesale Order Form)
   ========================================================================== */
.quick-order__toolbar {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}

.quick-order__toolbar-btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 2px;
	padding: 10px 16px;
	font-family: var(--font-body);
	font-size: 14px;
	font-weight: 700;
	color: #000;
	cursor: pointer;
}

.quick-order__toolbar-btn svg { width: 16px; height: 16px; flex-shrink: 0; }

.quick-order__filters-toggle.is-active { background: #f4f4f4; border-color: #999; }

.quick-order__sort { position: relative; }

.quick-order__sort-menu {
	position: absolute;
	top: calc(100% + 4px);
	left: 0;
	background: #fff;
	border: 1px solid #ddd;
	box-shadow: 0 8px 24px rgba(0,0,0,0.12);
	padding: 12px 16px;
	z-index: 30;
	white-space: nowrap;
}

.quick-order__sort-menu label {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	padding: 7px 0;
	cursor: pointer;
}

.quick-order__search {
	position: relative;
	flex: 1 1 320px;
	min-width: 220px;
}

.quick-order__search input {
	width: 100%;
	height: 42px;
	border: 1px solid #ccc;
	border-radius: 2px;
	padding: 0 40px 0 15px;
	font-size: 14px;
	font-family: var(--font-body);
}

.quick-order__search svg {
	position: absolute;
	top: 50%;
	right: 14px;
	transform: translateY(-50%);
	width: 18px;
	height: 18px;
	color: #777;
	pointer-events: none;
}

.quick-order__cart {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	border: 1px solid #ccc;
	border-radius: 2px;
	padding: 10px 16px;
	color: #000;
	font-weight: 700;
	flex-shrink: 0;
}

.quick-order__cart svg { width: 20px; height: 20px; }

.quick-order__layout {
	display: grid;
	grid-template-columns: 220px 1fr;
	gap: 40px;
	align-items: start;
}

.quick-order__layout:has(#qo-sidebar[hidden]) { grid-template-columns: 1fr; }

.quick-order__sidebar-title {
	font-size: 13px;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	margin-bottom: 12px;
}

.quick-order__collection-list {
	list-style: none;
	margin: 0;
	padding: 0;
	max-height: 500px;
	overflow-y: auto;
}

.quick-order__collection-list li { margin-bottom: 4px; }

.quick-order__collection-list button {
	background: none;
	border: none;
	padding: 6px 0;
	font-family: var(--font-body);
	font-size: 14px;
	color: #555;
	cursor: pointer;
	text-align: left;
}

.quick-order__collection-list button.is-active {
	color: #000;
	font-weight: 700;
	text-decoration: underline;
}

.quick-order__table {
	width: 100%;
	border-collapse: collapse;
}

.quick-order__table th {
	text-align: left;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #777;
	font-weight: 700;
	padding: 0 10px 12px;
	border-bottom: 1px solid #e5e5e5;
}

.quick-order__table td {
	padding: 14px 10px;
	border-bottom: 1px solid #f0f0f0;
	font-family: var(--font-body);
	font-size: 14px;
	vertical-align: middle;
}

.quick-order__col-image { width: 70px; }
.quick-order__col-image img { width: 56px; height: 56px; object-fit: cover; display: block; }
.quick-order__col-qty { width: 110px; }
.quick-order__col-action { width: 150px; }

.quick-order__row--variant td:first-child,
.quick-order__row--variant .quick-order__variant-name {
	padding-left: 26px;
}

.quick-order__loading-row td,
.quick-order__empty {
	text-align: center;
	padding: 40px 10px;
	color: #777;
}

.quick-order__qty {
	display: inline-flex;
	align-items: center;
	border: 1px solid #ccc;
	border-radius: 2px;
	width: 100px;
}

.quick-order__qty-btn {
	background: none;
	border: none;
	width: 28px;
	height: 34px;
	font-size: 16px;
	cursor: pointer;
	color: #555;
}

.quick-order__qty-input {
	width: 44px;
	height: 34px;
	border: none;
	border-left: 1px solid #ccc;
	border-right: 1px solid #ccc;
	text-align: center;
	font-size: 14px;
	-moz-appearance: textfield;
}

.quick-order__qty-input::-webkit-outer-spin-button,
.quick-order__qty-input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

.quick-order__btn {
	display: inline-block;
	width: 100%;
	padding: 10px 12px;
	border: none;
	border-radius: 2px;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
	text-align: center;
}

.quick-order__btn--add {
	background: #000;
	color: #fff;
}

.quick-order__btn--add:hover { background: #222; }

.quick-order__btn--out {
	background: #ccc;
	color: #fff;
	cursor: not-allowed;
}

.quick-order__footer-note {
	text-align: center;
	color: #777;
	font-size: 14px;
	margin-top: 20px;
}

.quick-order__footer-note a { text-decoration: underline; color: #000; }

.quick-order__toast {
	position: fixed;
	left: 20px;
	bottom: 20px;
	background: #000;
	color: #fff;
	padding: 14px 20px;
	border-radius: 2px;
	font-size: 14px;
	display: flex;
	align-items: center;
	gap: 16px;
	z-index: 100;
	opacity: 0;
	transform: translateY(10px);
	transition: opacity 0.3s, transform 0.3s;
}

.quick-order__toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}

.quick-order__toast a {
	color: #fff;
	text-decoration: underline;
	font-weight: 700;
	white-space: nowrap;
}

@media only screen and (max-width: 989px) {
	.quick-order__layout { grid-template-columns: 1fr; }
	.quick-order__table thead { display: none; }
	.quick-order__table, .quick-order__table tbody, .quick-order__table tr, .quick-order__table td {
		display: block;
		width: auto;
	}
	.quick-order__row { border-bottom: 1px solid #e5e5e5; padding: 14px 0; }
	.quick-order__table td { border-bottom: none; padding: 4px 0; }
	.quick-order__col-image img { margin-bottom: 8px; }
}

/* ==========================================================================
   Cart & Checkout (classic WooCommerce templates via [woocommerce_cart] /
   [woocommerce_checkout] shortcodes — switched from the block-based Cart/
   Checkout WooCommerce assigns by default, to stay consistent with the rest
   of this hand-coded classic theme and because it's far more reliable to
   style directly)
   ========================================================================== */
.woocommerce-notices-wrapper { margin-bottom: 20px; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
	list-style: none;
	background: #f4f8ff;
	border-left: 3px solid var(--color-accent);
	/* left padding must clear WooCommerce's own absolutely-positioned
	   :before icon (WooCommerce icon font, sits ~21px from the left) —
	   without it the icon overlaps the notice text */
	padding: 14px 20px 14px 3.5em;
	position: relative;
	margin: 0 0 20px;
	font-family: var(--font-body);
	font-size: 14px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 20px;
}

.woocommerce-error { border-left-color: #c0392b; background: #fdf3f2; }

.woocommerce-message .button,
.woocommerce-error .button {
	background: #000;
	color: #fff;
	font-family: var(--font-body);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	padding: 9px 16px;
	border-radius: 2px;
	white-space: nowrap;
}

/* --- generic shop_table base (still used as-is by the checkout order-
   review table — the cart's own line-item table is overridden into cards
   below, scoped to .cart specifically) --- */
table.shop_table {
	width: 100%;
	border-collapse: collapse;
	margin-bottom: 20px;
}

table.shop_table th {
	text-align: left;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	color: #777;
	font-weight: 700;
	padding: 0 10px 12px;
	border-bottom: 1px solid #e5e5e5;
}

table.shop_table td {
	padding: 16px 10px;
	border-bottom: 1px solid #f0f0f0;
	font-family: var(--font-body);
	font-size: 14px;
	vertical-align: middle;
}

table.shop_table .product-thumbnail img {
	width: 64px;
	height: 64px;
	object-fit: cover;
	display: block;
}

table.shop_table .product-name a {
	color: #000;
	font-weight: 700;
}

table.shop_table .product-name .variation {
	font-size: 12px;
	color: #777;
	margin-top: 4px;
}

table.shop_table .product-remove a.remove {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	background: #f4f4f4;
	color: #c0392b !important;
	font-size: 18px;
	line-height: 1;
	text-decoration: none !important;
}

table.shop_table .product-remove a.remove:hover { background: #c0392b; color: #fff !important; }

table.shop_table .quantity .qty {
	width: 60px;
	height: 38px;
	border: 1px solid #ccc;
	border-radius: 2px;
	text-align: center;
	font-size: 14px;
	font-family: var(--font-body);
}

/* --- cart: card-style line items, not a table with column headers —
   one bordered/rounded card per product, laid out with CSS Grid so the
   same rule set can just swap grid-template-areas at the mobile
   breakpoint instead of needing a completely separate mobile design.
   No :before "table cell" borders/padding stacking up into the "too many
   lines" look this replaces. --- */
.woocommerce table.shop_table.cart,
.woocommerce table.shop_table.cart tbody {
	display: block;
	width: 100%;
	border: none; /* WooCommerce's own default .shop_table border, otherwise
	                 still wraps the whole table even with display:block,
	                 visually fusing the individual item cards into one block */
}

.woocommerce table.shop_table.cart thead { display: none; }

.woocommerce table.shop_table.cart tr.cart_item {
	display: grid;
	grid-template-columns: 72px 1fr auto auto auto;
	grid-template-areas: "thumb name price qty subtotal";
	align-items: center;
	column-gap: 24px;
	background: #fff;
	border: 1px solid #ececec;
	border-radius: 8px;
	/* a plain 1px border on a white card over a white page reads as one
	   continuous block no matter how big the margin between rows is — the
	   shadow is what actually makes each row look like its own floating
	   card instead of a table with wide row spacing */
	box-shadow: 0 1px 3px rgba(0,0,0,0.06);
	padding: 18px 52px 18px 18px; /* right padding clears the remove button */
	margin-bottom: 16px;
	position: relative;
}

.woocommerce table.shop_table.cart tr.cart_item td {
	display: block;
	border: none;
	padding: 0;
	font-family: var(--font-body);
	font-size: 14px;
}

.woocommerce table.shop_table.cart td::before { content: none; }

.woocommerce table.shop_table.cart td.product-thumbnail { grid-area: thumb; }
.woocommerce table.shop_table.cart td.product-thumbnail img {
	width: 72px;
	height: 72px;
	object-fit: cover;
	border-radius: 4px;
	display: block;
}

.woocommerce table.shop_table.cart td.product-name {
	grid-area: name;
	font-weight: 700;
	font-size: 15px;
}

.woocommerce table.shop_table.cart td.product-price,
.woocommerce table.shop_table.cart td.product-subtotal {
	color: #555;
}
.woocommerce table.shop_table.cart td.product-price { grid-area: price; }
.woocommerce table.shop_table.cart td.product-subtotal { grid-area: subtotal; font-weight: 700; color: #000; }

.woocommerce table.shop_table.cart td.product-price::before,
.woocommerce table.shop_table.cart td.product-subtotal::before {
	content: "Price";
	display: block;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: 0.05em;
	color: #999;
	margin-bottom: 3px;
}
.woocommerce table.shop_table.cart td.product-subtotal::before { content: "Subtotal"; }

.woocommerce table.shop_table.cart td.product-quantity { grid-area: qty; }

.woocommerce table.shop_table.cart td.product-remove {
	position: absolute;
	top: 16px;
	right: 16px;
}

@media only screen and (max-width: 700px) {
	.woocommerce table.shop_table.cart tr.cart_item {
		grid-template-columns: 64px 1fr;
		grid-template-areas:
			"thumb name"
			"thumb price"
			"thumb qty"
			"thumb subtotal";
		row-gap: 8px;
		padding: 16px 46px 16px 16px;
	}
	.woocommerce table.shop_table.cart td.product-thumbnail img { width: 64px; height: 64px; }
}

/* the coupon/update-cart row: not a .cart_item, so none of the card
   styling above touches it — it was still rendering as a real table
   row/cell (WooCommerce's own default border-top included, which the
   generic table.shop_table td rule below never overrides since that one
   only sets border-bottom), and .coupon + the Update Cart button had no
   layout relationship at all beyond sitting adjacent with zero gap.
   Note: the "actions" class is on the <td>, not the <tr> — a selector
   of "tr.actions" silently matches nothing. */
.woocommerce-cart-form__contents tbody > tr:has(td.actions) {
	display: block;
	background: none;
}

.woocommerce-cart-form__contents td.actions {
	display: flex;
	align-items: center;
	justify-content: space-between;
	flex-wrap: wrap;
	width: 100%;
	box-sizing: border-box;
	gap: 16px;
	border-top: none !important; /* WooCommerce's own default border-top on this cell has higher specificity than this selector */
	border-bottom: none !important;
	padding: 20px 0 0;
}

.coupon {
	display: flex;
	gap: 10px;
	align-items: center;
}

#coupon_code {
	height: 42px;
	border: 1px solid #ccc;
	border-radius: 2px;
	padding: 0 14px;
	font-size: 14px;
	font-family: var(--font-body);
	width: 180px;
}

.coupon button[name="apply_coupon"],
button[name="update_cart"] {
	background: #fff;
	border: 1px solid #ccc;
	border-radius: 2px;
	padding: 11px 18px;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 700;
	cursor: pointer;
}

.coupon button[name="apply_coupon"]:hover,
button[name="update_cart"]:hover { background: #f4f4f4; }

/* --- cart totals box (cart page) --- */
.cart-collaterals {
	max-width: 420px;
	margin-left: auto;
}

/* --- checkout: billing form + order review side by side, instead of
   WooCommerce's default of stacking #order_review below #customer_details
   with a big gap where the shorter column ends --- */
form.checkout {
	display: grid;
	grid-template-columns: 1fr 420px;
	gap: 0 60px;
	align-items: start;
}

#customer_details { grid-column: 1; grid-row: 1 / span 2; }
#order_review_heading { grid-column: 2; grid-row: 1; }
#order_review { grid-column: 2; grid-row: 2; }

/* stack billing details + additional information vertically in the left
   column instead of WooCommerce's default side-by-side floated
   .col-1/.col-2 (that's what made this read as 3 columns, not 2) */
#customer_details .col-1,
#customer_details .col-2 {
	float: none;
	width: 100%;
}

#customer_details .col-2 { margin-top: 30px; }

.cart_totals h2,
#order_review_heading {
	font-family: var(--font-heading);
	font-size: 20px;
	margin-bottom: 12px;
}

.cart_totals table.shop_table,
#order_review table.shop_table {
	background: #f9f9f9;
	padding: 4px 16px;
}

.cart_totals table.shop_table th,
.cart_totals table.shop_table td,
#order_review table.shop_table th,
#order_review table.shop_table td {
	padding: 12px 16px;
}

.cart_totals .order-total td,
.cart_totals .order-total th,
#order_review .order-total td,
#order_review .order-total th {
	font-weight: 700;
	font-size: 16px;
	border-top: 1px solid #ddd;
}

.wc-proceed-to-checkout { margin-top: 20px; }

/* higher specificity than WooCommerce's own .button.alt default (purple) */
.wc-proceed-to-checkout a.checkout-button.button.alt,
#payment #place_order.button.alt {
	display: block;
	width: 100%;
	text-align: center;
	background: var(--color-accent) !important;
	color: #fff !important;
	font-family: var(--font-body);
	font-weight: 700;
	font-size: 13px;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	padding: 15px 30px;
	border: none;
	border-radius: 2px;
	cursor: pointer;
	transition: background 0.2s ease;
}

.wc-proceed-to-checkout a.checkout-button.button.alt:hover,
#payment #place_order.button.alt:hover { background: #1e63c9 !important; }

/* --- checkout form --- */
form.checkout h3 {
	font-family: var(--font-heading);
	font-size: 18px;
	margin-bottom: 16px;
}

.woocommerce-billing-fields .form-row,
.woocommerce-additional-fields .form-row,
.woocommerce-shipping-fields .form-row {
	margin-bottom: 16px;
}

.woocommerce-checkout label {
	display: block;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 6px;
}

.woocommerce-checkout .required { color: #c0392b; text-decoration: none; }

.woocommerce-checkout input.input-text,
.woocommerce-checkout select,
.woocommerce-checkout textarea {
	width: 100%;
	height: 44px;
	border: 1px solid #ccc;
	border-radius: 2px;
	padding: 0 14px;
	font-size: 14px;
	font-family: var(--font-body);
}

.woocommerce-checkout textarea {
	height: auto;
	padding: 12px 14px;
	min-height: 90px;
}

.woocommerce-checkout .form-row-first,
.woocommerce-checkout .form-row-last {
	display: inline-block;
	width: calc(50% - 8px);
}

.woocommerce-checkout .form-row-first { margin-right: 16px; }

#order_review table.shop_table td.product-total,
#order_review table.shop_table th.product-total { text-align: right; }

#payment {
	background: #f9f9f9;
	padding: 20px;
	margin-top: 24px;
}

#payment ul.payment_methods { list-style: none; margin: 0 0 16px; padding: 0; }

.woocommerce-terms-and-conditions-wrapper {
	font-size: 13px;
	margin-bottom: 16px;
}

.woocommerce-terms-and-conditions-wrapper a { text-decoration: underline; }

@media only screen and (max-width: 900px) {
	.cart-collaterals { max-width: none; margin-left: 0; }

	form.checkout { grid-template-columns: 1fr; }
	/* the desktop rules above assign explicit grid-row values (1, 2, and
	   1/span 2) — all three need resetting to auto here, not just
	   customer_details, or the leftover row assignments fight the single-
	   column mobile layout and Place Order stops landing at the bottom */
	#customer_details,
	#order_review_heading,
	#order_review {
		grid-column: 1;
		grid-row: auto;
	}

	/* the cart's own card-style line items (table.shop_table.cart) have
	   their own dedicated mobile rules right where the rest of that
	   design lives, in the "cart: card-style line items" block above —
	   this block only covers the checkout grid and the coupon/update-cart
	   row, which the cart cards don't include. */

	/* coupon input + Apply button were flex/nowrap, which just shrinks both
	   to fit a narrow screen instead of wrapping — squeezed the Apply
	   coupon button down to ~38px wide, wrapping its own label text.
	   Stack everything full-width instead. */
	.woocommerce table.shop_table.cart td.actions {
		padding: 16px 0 0;
	}
	.woocommerce table.shop_table.cart .coupon {
		flex-direction: column;
		align-items: stretch;
		gap: 10px;
	}
	.woocommerce table.shop_table.cart #coupon_code,
	.woocommerce table.shop_table.cart .coupon button[name="apply_coupon"],
	.woocommerce table.shop_table.cart button[name="update_cart"] {
		width: 100%;
		box-sizing: border-box;
	}
	.woocommerce table.shop_table.cart button[name="update_cart"] {
		margin-top: 10px;
	}

	.woocommerce-checkout .form-row-first,
	.woocommerce-checkout .form-row-last {
		display: block;
		width: 100%;
	}
	.woocommerce-checkout .form-row-first { margin-right: 0; }
}

/* ==========================================================================
   Responsive
   ========================================================================== */
/* Nav switches to the hamburger/drawer at 1100px rather than the general
   989px layout breakpoint below — the horizontal nav bar (10 items) starts
   wrapping to a squished second row anywhere from 990px up to ~1092px, so
   the cutover has to happen above that whole range, not just below 989px. */
@media only screen and (max-width: 1100px) {
	.site-header__nav { display: none; }
	.mobile-nav-toggle { display: flex; }

	.site-header__top { padding: 16px 0 20px; }

	.site-header__top-layout { flex-wrap: wrap; gap: 12px 16px; }

	.header-item--logo { order: 1; }
	.header-item--logo img { width: 160px; }

	.header-item--icons { order: 2; width: auto; gap: 16px; margin-left: auto; }

	.mobile-nav-toggle { order: 3; }

	.site-header__search-wrap {
		order: 4;
		flex: 1 1 100%;
		margin: 0;
	}
}

@media only screen and (max-width: 989px) {
	.home-hero-grid { grid-template-columns: 1fr; }
	.promo-grid { grid-template-columns: 1fr; }
	.footer-grid { grid-template-columns: 1fr; text-align: center; }
	.footer-col--contact { display: flex; flex-direction: column; align-items: center; }
	.collection-layout { grid-template-columns: 1fr; }
}

@media only screen and (max-width: 768px) {
	.product-grid { grid-template-columns: repeat(2, 1fr); }
	.home-hero-grid__tiles { grid-template-columns: 1fr 1fr; }
	.category-blurbs { grid-template-columns: 1fr; }
	.hero-slideshow__title { font-size: 30px; }
	.product-page__layout { grid-template-columns: 1fr; gap: 30px; }
}
