/*
Theme Name: Tacatacas Talca
Theme URI: https://tacatacastalca.cl/
Author: Tacatacas Talca
Description: Tema deportivo para la tienda y comunidad de Tacatacas Talca.
Version: 1.1.0
Requires at least: 6.0
Requires PHP: 7.4
Text Domain: tacatacas-talca
*/

@font-face {
	font-family: Barlow;
	src: url('assets/barlow-400.woff2') format('woff2');
	font-weight: 400;
	font-display: swap;
}

@font-face {
	font-family: Barlow;
	src: url('assets/barlow-500.woff2') format('woff2');
	font-weight: 500;
	font-display: swap;
}

@font-face {
	font-family: Barlow;
	src: url('assets/barlow-600.woff2') format('woff2');
	font-weight: 600;
	font-display: swap;
}

@font-face {
	font-family: Barlow;
	src: url('assets/barlow-700.woff2') format('woff2');
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: "Barlow Condensed";
	src: url('assets/barlow-condensed-700.woff2') format('woff2');
	font-weight: 700;
	font-display: swap;
}

@font-face {
	font-family: "Barlow Condensed";
	src: url('assets/barlow-condensed-800.woff2') format('woff2');
	font-weight: 800;
	font-display: swap;
}

:root {
	--carbon: #17171b;
	--paper: #f5f1e8;
	--red: #d63225;
	--red-dark: #ac251c;
	--steel: #65616a;
	--line: rgba(23, 23, 27, .16);
	--display: "Barlow Condensed", Impact, "Arial Narrow", sans-serif;
	--body: Barlow, Arial, Helvetica, sans-serif;
	--content-width: 1280px;
}

* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--paper);
	color: var(--carbon);
	font-family: var(--body);
	font-size: 16px;
	line-height: 1.55;
}

body,
button,
input,
select,
textarea {
	font-family: var(--body);
}

img {
	max-width: 100%;
	height: auto;
}

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

a:hover {
	color: var(--red-dark);
}

button,
input,
select,
textarea {
	font-size: inherit;
}

button,
a,
input,
select,
textarea {
	-webkit-tap-highlight-color: transparent;
}

:focus-visible {
	outline: 3px solid var(--red);
	outline-offset: 3px;
}

.wrap {
	width: min(var(--content-width), calc(100% - 48px));
	margin-inline: auto;
}

.screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	padding: 0;
	margin: -1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
	border: 0;
}

.skip-link {
	position: absolute;
	top: -64px;
	left: 16px;
	z-index: 100;
	padding: 10px 14px;
	background: var(--paper);
	color: var(--carbon);
}

.skip-link:focus {
	top: 12px;
}

.eyebrow {
	margin: 0;
	color: var(--red-dark);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .16em;
	line-height: 1.4;
	text-transform: uppercase;
}

.section {
	padding-block: clamp(72px, 9vw, 124px);
}

.section-heading {
	margin: 12px 0 0;
	font-family: var(--display);
	font-size: clamp(44px, 6vw, 76px);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: .92;
	text-transform: uppercase;
}

.button,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.wp-block-button__link {
	display: inline-flex;
	min-height: 50px;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 0 22px;
	border: 1px solid var(--red);
	border-radius: 0;
	background: var(--red);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	line-height: 1.2;
	text-align: center;
	text-transform: uppercase;
	transition: background-color .18s ease, color .18s ease, transform .18s ease;
}

.button:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.wp-block-button__link:hover {
	transform: translateY(-2px);
	border-color: var(--red-dark);
	background: var(--red-dark);
	color: #fff;
}

.button-text,
.text-link {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.button-text::after,
.text-link::after {
	width: 24px;
	height: 1px;
	background: currentColor;
	content: "";
}

.button-text:hover,
.text-link:hover {
	color: var(--red);
}

.button-light {
	border-color: var(--paper);
	background: var(--paper);
	color: var(--carbon);
}

.button-light:hover {
	border-color: var(--carbon);
	background: var(--carbon);
	color: var(--paper);
}

/* Header */
.topline {
	min-height: 30px;
	padding: 6px 16px;
	background: var(--carbon);
	color: var(--paper);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .13em;
	text-align: center;
	text-transform: uppercase;
}

.site-header {
	position: relative;
	z-index: 20;
	border-bottom: 1px solid var(--line);
	background: var(--paper);
}

.header-main {
	display: flex;
	min-height: 82px;
	align-items: center;
	gap: clamp(14px, 2.2vw, 32px);
}

.brand-lockup {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 11px;
}

.brand-mark,
.brand-mark .custom-logo-link {
	display: block;
	width: 52px;
	height: 52px;
}

.custom-logo {
	display: block;
	width: 52px;
	height: 52px;
	object-fit: contain;
}

.brand-wordmark {
	display: grid;
	gap: 1px;
	color: var(--carbon);
}

.brand-wordmark strong {
	font-family: var(--display);
	font-size: 18px;
	font-weight: 800;
	letter-spacing: .015em;
	line-height: 1;
	text-transform: uppercase;
}

.brand-wordmark span {
	color: var(--steel);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.site-nav {
	margin-left: auto;
}

.site-nav ul {
	display: flex;
	gap: clamp(14px, 2vw, 28px);
	margin: 0;
	padding: 0;
	list-style: none;
}

.site-nav li {
	position: relative;
}

.site-nav a {
	display: block;
	padding-block: 14px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.site-nav a:hover,
.site-nav .current-menu-item > a,
.site-nav .current-menu-ancestor > a {
	color: var(--red-dark);
}

.site-nav .sub-menu {
	position: absolute;
	top: 100%;
	left: -14px;
	z-index: 30;
	display: none;
	min-width: 190px;
	padding: 8px 14px;
	border: 1px solid var(--line);
	background: var(--paper);
	box-shadow: 0 12px 28px rgba(23, 23, 27, .12);
}

.site-nav li:hover > .sub-menu,
.site-nav li:focus-within > .sub-menu {
	display: block;
}

.site-nav .sub-menu a {
	padding: 10px 0;
	white-space: nowrap;
}

.header-actions {
	display: flex;
	flex: 0 0 auto;
	align-items: center;
	gap: 20px;
}

.site-search {
	display: flex;
	align-items: center;
	border-bottom: 1px solid var(--carbon);
}

.site-search input[type="search"] {
	width: clamp(96px, 11vw, 148px);
	min-height: 36px;
	padding: 4px 2px;
	border: 0;
	border-radius: 0;
	background: transparent;
	color: var(--carbon);
	font-size: 12px;
}

.site-search input[type="search"]::placeholder {
	color: var(--steel);
	opacity: 1;
}

.search-submit {
	display: grid;
	width: 30px;
	height: 34px;
	place-items: center;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--carbon);
	cursor: pointer;
}

.search-submit svg {
	width: 17px;
	height: 17px;
	fill: none;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-width: 1.8;
}

.cart-link {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.cart-count {
	display: inline-grid;
	min-width: 20px;
	height: 20px;
	place-items: center;
	padding-inline: 5px;
	border-radius: 50%;
	background: var(--red);
	color: #fff;
	font-size: 10px;
	line-height: 1;
}

.mobile-menu {
	display: none;
}

/* Home hero */
.hero {
	display: grid;
	min-height: clamp(580px, 48vw, 700px);
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	background: var(--carbon);
	color: var(--paper);
}

.hero-copy {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	padding: 72px clamp(32px, 5vw, 84px) 64px max(24px, calc((100vw - var(--content-width)) / 2));
}

.hero-copy-inner {
	width: min(100%, 550px);
}

.hero .eyebrow {
	color: #fff;
}

.hero h1 {
	margin: 22px 0 22px;
	font-family: var(--display);
	font-size: clamp(68px, 7.4vw, 112px);
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: .95;
	text-transform: uppercase;
}

.hero h1 em {
	color: var(--red);
	font-style: normal;
}

.hero-intro {
	max-width: 390px;
	margin: 0;
	color: rgba(245, 241, 232, .76);
	font-size: 16px;
}

.hero-actions {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 26px;
	margin-top: 30px;
}

.hero .button-text {
	color: var(--paper);
}

.hero .button-text:hover {
	color: #fff;
}

.hero-signature {
	display: inline-flex;
	margin-top: clamp(42px, 6vw, 78px);
	color: rgba(245, 241, 232, .86);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	line-height: 1.4;
	text-transform: uppercase;
}

.hero-visual {
	position: relative;
	min-height: 100%;
	margin: 0;
	overflow: hidden;
	background: #252226;
}

.hero-visual img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}

.hero-visual figcaption {
	position: absolute;
	right: 24px;
	bottom: 24px;
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 9px 12px;
	background: rgba(23, 23, 27, .84);
	color: #fff;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.caption-mark {
	color: #ff8277;
	font-family: var(--display);
	font-size: 14px;
}

.intro-strip {
	border-bottom: 1px solid var(--line);
	background: var(--paper);
}

.intro-strip-inner {
	display: flex;
	min-height: 58px;
	align-items: center;
	justify-content: space-between;
	gap: 22px;
	color: var(--steel);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.intro-strip-inner > span:first-child {
	color: var(--red-dark);
}

.intro-strip-line {
	width: clamp(32px, 13vw, 190px);
	height: 1px;
	background: var(--line);
}

/* Product cards and category navigation */
.section-head {
	display: flex;
	align-items: end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 34px;
}

.section-head .text-link {
	margin-bottom: 7px;
}

.section-head--compact {
	margin-bottom: 30px;
}

.featured-section {
	padding-bottom: clamp(76px, 8vw, 112px);
}

.product-grid,
.woocommerce ul.products {
	display: grid !important;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 18px;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.product-grid::before,
.product-grid::after,
.woocommerce ul.products::before,
.woocommerce ul.products::after {
	display: none !important;
}

.product-grid li.product,
.woocommerce ul.products li.product {
	position: relative;
	width: auto !important;
	min-width: 0;
	float: none !important;
	margin: 0 !important;
	padding: 0 0 16px;
	border: 1px solid rgba(23, 23, 27, .1);
	background: #fff;
}

.product-grid li.product a.woocommerce-LoopProduct-link,
.woocommerce ul.products li.product a.woocommerce-LoopProduct-link {
	display: block;
	color: var(--carbon);
}

.product-grid li.product img,
.woocommerce ul.products li.product img {
	display: block;
	width: 100%;
	 aspect-ratio: 1 / 1;
	margin: 0 !important;
	padding: clamp(14px, 2vw, 26px);
	background: #fff;
	object-fit: contain;
}

.product-grid li.product .woocommerce-loop-product__title,
.woocommerce ul.products li.product .woocommerce-loop-product__title {
	min-height: 2.6em;
	margin: 0 16px 7px !important;
	font-family: var(--display);
	font-size: clamp(17px, 1.6vw, 21px);
	font-weight: 700;
	letter-spacing: .01em;
	line-height: 1.12;
	text-transform: uppercase;
}

.product-grid li.product .price,
.woocommerce ul.products li.product .price {
	display: block;
	margin: 0 16px;
	color: var(--carbon) !important;
	font-size: 14px;
	font-weight: 700;
}

.product-grid li.product .price del,
.woocommerce ul.products li.product .price del {
	color: var(--steel);
	font-size: 12px;
}

.product-grid li.product .price ins,
.woocommerce ul.products li.product .price ins {
	color: var(--red-dark);
	text-decoration: none;
}

.product-grid li.product .button,
.woocommerce ul.products li.product .button {
	width: calc(100% - 32px);
	min-height: 42px;
	margin: 14px 16px 0;
	padding-inline: 10px;
	border-color: var(--carbon);
	background: transparent;
	color: var(--carbon);
	font-size: 10px;
}

.product-grid li.product .button:hover,
.woocommerce ul.products li.product .button:hover {
	border-color: var(--red);
	background: var(--red);
	color: #fff;
}

.product-grid li.product .added_to_cart,
.woocommerce ul.products li.product .added_to_cart {
	display: block;
	margin: 10px 16px 0;
	color: var(--red-dark);
	font-size: 11px;
	font-weight: 700;
}

.product-grid li.product .onsale,
.woocommerce ul.products li.product .onsale {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	min-width: 0;
	min-height: 0;
	margin: 0;
	padding: 6px 9px;
	border-radius: 0;
	background: var(--red);
	color: #fff;
	font-size: 9px;
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
}

.categories-section {
	padding-top: 18px;
	background: #eee9df;
}

.category-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 16px;
}

.category-card {
	position: relative;
	display: flex;
	min-height: 360px;
	flex-direction: column;
	justify-content: space-between;
	overflow: hidden;
	padding: 22px;
	transition: transform .2s ease;
}

.category-card:hover {
	transform: translateY(-4px);
}

.category-card--tables {
	background: #fff;
}

.category-card--parts {
	background: var(--carbon);
	color: var(--paper);
}

.category-card--sport {
	background: var(--red);
	color: #fff;
}

.category-art {
	position: relative;
	display: grid;
	min-height: 225px;
	place-items: center;
	overflow: hidden;
}

.category-art--table img {
	width: 92%;
	height: 210px;
	object-fit: contain;
	object-position: center;
}

.category-art--parts::before {
	position: absolute;
	width: 80%;
	height: 1px;
	background: rgba(245, 241, 232, .6);
	content: "";
}

.part-token {
	position: absolute;
	width: 56px;
	height: 56px;
	border: 1px solid var(--red);
	border-radius: 50%;
}

.part-token::before,
.part-token::after {
	position: absolute;
	top: 50%;
	left: 50%;
	width: 28px;
	height: 1px;
	background: var(--red);
	content: "";
}

.part-token::before {
	transform: translate(-50%, -50%) rotate(45deg);
}

.part-token::after {
	transform: translate(-50%, -50%) rotate(-45deg);
}

.part-rod {
	position: absolute;
	width: 68%;
	height: 8px;
	border: 1px solid rgba(245, 241, 232, .8);
	border-radius: 8px;
	transform: rotate(-17deg);
}

.part-handle {
	position: absolute;
	width: 84px;
	height: 22px;
	border: 1px solid var(--red);
	border-radius: 16px;
	transform: translate(88px, -17px) rotate(-17deg);
}

.category-art--court::before {
	position: absolute;
	width: 72%;
	height: 62%;
	border: 1px solid rgba(255, 255, 255, .8);
	content: "";
}

.category-art--court::after {
	position: absolute;
	width: 36%;
	height: 62%;
	border: 1px solid rgba(255, 255, 255, .8);
	border-radius: 50%;
	content: "";
}

.category-art--court span:first-child,
.category-art--court span:last-child {
	position: absolute;
	z-index: 1;
	width: 10px;
	height: 10px;
	border: 1px solid #fff;
	border-radius: 50%;
}

.category-art--court span:first-child {
	transform: translateX(-72px);
}

.category-art--court span:last-child {
	transform: translateX(72px);
}

.category-card-foot {
	position: relative;
	z-index: 2;
	padding-top: 18px;
	border-top: 1px solid currentColor;
}

.category-count {
	color: var(--steel);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
}

.category-card--parts .category-count,
.category-card--sport .category-count {
	color: rgba(255, 255, 255, .72);
}

.category-card h3 {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 4px 0 0;
	font-family: var(--display);
	font-size: clamp(29px, 3vw, 42px);
	font-weight: 800;
	letter-spacing: -.01em;
	line-height: 1;
	text-transform: uppercase;
}

.category-card h3 span {
	font-family: var(--body);
	font-size: 20px;
}

/* Guidance and contact CTA */
.steps-section {
	padding-block: clamp(74px, 9vw, 120px);
	background: var(--carbon);
	color: var(--paper);
}

.steps-section .eyebrow {
	color: #ff8277;
}

.steps-section .wrap {
	display: grid;
	grid-template-columns: minmax(280px, .8fr) minmax(0, 1.2fr);
	gap: clamp(42px, 8vw, 120px);
}

.steps-heading .section-heading {
	font-size: clamp(56px, 7vw, 88px);
}

.steps-list {
	border-top: 1px solid rgba(245, 241, 232, .24);
}

.step {
	display: grid;
	grid-template-columns: 36px minmax(0, 1fr) 24px;
	align-items: start;
	gap: 18px;
	padding-block: 22px;
	border-bottom: 1px solid rgba(245, 241, 232, .24);
}

.step > span {
	padding-top: 3px;
	color: #ff8277;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
}

.step h3 {
	margin: 0;
	font-family: var(--display);
	font-size: 24px;
	font-weight: 700;
	line-height: 1.1;
	text-transform: uppercase;
}

.step p {
	max-width: 470px;
	margin: 7px 0 0;
	color: rgba(245, 241, 232, .68);
	font-size: 13px;
}

.step > a {
	padding-top: 2px;
	color: var(--paper);
	font-size: 18px;
}

.step > a:hover {
	color: #ff8277;
}

.contact-cta {
	padding-block: clamp(52px, 7vw, 84px);
	background: var(--red);
	color: #fff;
}

.contact-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 28px;
}

.contact-row .eyebrow {
	color: #fff;
}

.contact-row .section-heading {
	margin-top: 8px;
	font-size: clamp(40px, 5.2vw, 64px);
}

.contact-row > div > p:last-child {
	max-width: 470px;
	margin: 12px 0 0;
	color: rgba(255, 255, 255, .86);
	font-size: 14px;
}

/* Footer */
.site-footer {
	padding: 64px 0 24px;
	background: var(--carbon);
	color: var(--paper);
}

.footer-grid {
	display: grid;
	grid-template-columns: minmax(280px, 1.6fr) repeat(2, minmax(150px, .7fr));
	gap: clamp(28px, 6vw, 84px);
}

.footer-brand-lockup {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}

.footer-brand-lockup img {
	width: 64px;
	height: 64px;
}

.footer-brand-lockup span {
	display: grid;
	gap: 2px;
}

.footer-brand-lockup strong {
	font-family: var(--display);
	font-size: 21px;
	font-weight: 800;
	line-height: 1;
	text-transform: uppercase;
}

.footer-brand-lockup small {
	color: rgba(245, 241, 232, .65);
	font-size: 9px;
	font-weight: 600;
	letter-spacing: .13em;
	text-transform: uppercase;
}

.footer-brand p {
	max-width: 300px;
	margin: 18px 0 0;
	color: rgba(245, 241, 232, .66);
	font-size: 13px;
}

.footer-grid > div:not(:first-child) > strong {
	display: block;
	margin: 9px 0 16px;
	color: #ff8277;
	font-size: 10px;
	letter-spacing: .14em;
	text-transform: uppercase;
}

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

.footer-grid li + li {
	margin-top: 8px;
}

.footer-grid a {
	color: var(--paper);
	font-size: 13px;
}

.footer-grid a:hover {
	color: #ff8277;
}

.footer-bottom {
	display: flex;
	justify-content: space-between;
	gap: 16px;
	margin-top: 48px;
	padding-top: 18px;
	border-top: 1px solid rgba(245, 241, 232, .2);
	color: rgba(245, 241, 232, .58);
	font-size: 11px;
}

.footer-bottom a {
	margin-left: 14px;
	color: var(--paper);
}

/* WooCommerce archives and product detail */
.shop-main {
	min-height: 60vh;
	padding-bottom: 90px;
}

.shop-topline {
	padding: 30px 0 18px;
}

.shop-topline > .eyebrow {
	display: block;
	margin-bottom: 14px;
}

.shop-categories {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}

.shop-categories a {
	padding: 8px 12px;
	border: 1px solid var(--line);
	color: var(--carbon);
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
}

.shop-categories a:hover {
	border-color: var(--red);
	color: var(--red-dark);
}

.woocommerce .woocommerce-breadcrumb {
	margin: 18px 0 24px;
	padding: 0;
	color: var(--steel);
	font-size: 11px;
}

.woocommerce .woocommerce-breadcrumb a {
	color: var(--steel);
}

.woocommerce-products-header {
	margin: 0 0 28px;
}

.woocommerce-products-header__title,
.woocommerce .page-title {
	margin: 0;
	font-family: var(--display);
	font-size: clamp(48px, 7vw, 82px);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: .92;
	text-transform: uppercase;
}

.woocommerce .term-description {
	max-width: 650px;
	margin-top: 14px;
	color: var(--steel);
	font-size: 14px;
}

.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering {
	margin-bottom: 18px;
	color: var(--steel);
	font-size: 12px;
}

.woocommerce .woocommerce-ordering select {
	min-height: 40px;
	padding: 7px 30px 7px 10px;
	border: 1px solid var(--line);
	background: #fff;
	color: var(--carbon);
	font-size: 12px;
}

.woocommerce div.product {
	display: grid;
	grid-template-columns: minmax(0, 1.05fr) minmax(0, .95fr);
	align-items: start;
	gap: clamp(28px, 5vw, 76px);
	padding-top: 24px;
}

.woocommerce div.product div.images,
.woocommerce div.product div.summary {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
}

.woocommerce div.product div.images img {
	background: #fff;
	object-fit: contain;
}

.woocommerce div.product div.summary {
	padding-top: 20px;
}

.woocommerce div.product .product_title {
	margin: 0 0 16px;
	font-family: var(--display);
	font-size: clamp(44px, 5.7vw, 72px);
	font-weight: 800;
	letter-spacing: -.025em;
	line-height: .92;
	text-transform: uppercase;
}

.woocommerce div.product p.price,
.woocommerce div.product span.price {
	margin: 0 0 20px;
	color: var(--carbon);
	font-size: 23px;
	font-weight: 700;
}

.woocommerce div.product .woocommerce-product-details__short-description {
	max-width: 560px;
	margin-bottom: 24px;
	color: var(--steel);
	font-size: 14px;
}

.woocommerce div.product form.cart:not(.variations_form):not(.grouped_form) {
	display: flex;
	align-items: center;
	gap: 12px;
}

.woocommerce div.product form.cart .quantity .qty {
	width: 70px;
	min-height: 50px;
	padding: 8px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: #fff;
	color: var(--carbon);
}

.woocommerce div.product form.variations_form .variations {
	width: 100%;
	border: 0;
}

.woocommerce div.product form.variations_form .variations td,
.woocommerce div.product form.variations_form .variations th {
	padding: 8px 0;
	border: 0;
	background: transparent;
}

.woocommerce div.product form.variations_form .variations select {
	min-height: 42px;
	padding: 7px 10px;
	border: 1px solid var(--line);
	background: #fff;
}

.woocommerce div.product form.variations_form .single_variation_wrap,
.woocommerce div.product form.grouped_form table {
	margin-top: 18px;
}

.woocommerce-store-notice,
p.woocommerce-store-notice.demo_store {
	position: fixed !important;
	top: auto !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	z-index: 80 !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 8px 48px 8px 16px !important;
	transform: none !important;
	border-top: 2px solid var(--red);
	background: var(--carbon) !important;
	color: #fff !important;
	font-size: 11px !important;
	text-align: center;
	box-shadow: 0 -4px 24px rgba(23, 23, 27, .14);
}

body.demo-store-active {
	padding-bottom: 58px;
}

.woocommerce-store-notice__dismiss-link {
	position: absolute;
	top: 50% !important;
	right: 13px;
	transform: translateY(-50%) !important;
	color: #fff !important;
	font-size: 10px;
	font-weight: 700;
	text-decoration: underline;
	text-underline-offset: 3px;
}

.woocommerce .single_add_to_cart_button,
.woocommerce button.button.alt,
.woocommerce a.button.alt,
.woocommerce input.button.alt {
	border-color: var(--red);
	background: var(--red);
	color: #fff;
}

.woocommerce .single_add_to_cart_button:hover,
.woocommerce button.button.alt:hover,
.woocommerce a.button.alt:hover,
.woocommerce input.button.alt:hover {
	border-color: var(--red-dark);
	background: var(--red-dark);
	color: #fff;
}

.woocommerce .single_add_to_cart_button:disabled,
.woocommerce .single_add_to_cart_button:disabled:hover,
.woocommerce .single_add_to_cart_button.disabled,
.woocommerce .single_add_to_cart_button.disabled:hover {
	border-color: #aaa;
	background: #aaa;
	color: #fff;
}

.woocommerce div.product .product_meta {
	margin-top: 26px;
	padding-top: 16px;
	border-top: 1px solid var(--line);
	color: var(--steel);
	font-size: 11px;
}

.woocommerce div.product .woocommerce-tabs,
.woocommerce div.product .related,
.woocommerce div.product .up-sells {
	grid-column: 1 / -1;
}

.woocommerce div.product .woocommerce-tabs {
	margin-top: 28px;
}

.woocommerce div.product .woocommerce-tabs ul.tabs {
	padding: 0;
}

.woocommerce div.product .woocommerce-tabs ul.tabs::before {
	border-color: var(--line);
}

.woocommerce div.product .woocommerce-tabs ul.tabs li {
	border-color: var(--line);
	border-radius: 0;
	background: transparent;
}

.woocommerce div.product .woocommerce-tabs ul.tabs li.active {
	background: var(--paper);
}

.woocommerce span.onsale {
	min-width: 0;
	min-height: 0;
	padding: 7px 10px;
	border-radius: 0;
	background: var(--red);
	color: #fff;
	font-size: 10px;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Cart, checkout, account */
.woocommerce table.shop_table {
	border: 1px solid var(--line);
	border-collapse: collapse;
	border-radius: 0;
}

.woocommerce table.shop_table th,
.woocommerce table.shop_table td {
	padding: 14px 12px;
	border-color: var(--line);
}

.woocommerce table.shop_table th {
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
}

.woocommerce .quantity .qty {
	min-height: 42px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: #fff;
}

.woocommerce .woocommerce-info,
.woocommerce .woocommerce-message,
.woocommerce .woocommerce-error {
	border-top-color: var(--red);
	background: #fff;
}

.woocommerce .woocommerce-info::before,
.woocommerce .woocommerce-message::before {
	color: var(--red-dark);
}

.woocommerce form .form-row label {
	margin-bottom: 6px;
	font-size: 12px;
	font-weight: 600;
}

.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.select2-container--default .select2-selection--single {
	min-height: 44px;
	padding: 9px 11px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: #fff;
	color: var(--carbon);
}

.woocommerce form .form-row textarea {
	min-height: 110px;
}

.woocommerce-checkout #payment {
	border-radius: 0;
	background: #eee9df;
}

.woocommerce-checkout #payment div.payment_box {
	background: #fff;
}

.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: #fff;
}

.woocommerce form.checkout_coupon,
.woocommerce form.login,
.woocommerce form.register {
	border-color: var(--line);
	border-radius: 0;
}

/* Contact and about */
.page-main .entry-content {
	max-width: 800px;
}

.contact-layout {
	display: grid;
	grid-template-columns: minmax(0, 1.3fr) minmax(250px, .7fr);
	gap: clamp(28px, 5vw, 72px);
	margin-top: 32px;
}

.contact-lede {
	max-width: 620px;
	margin: 18px 0 0;
	color: var(--steel);
	font-size: 16px;
}

.wa-form label {
	display: block;
	margin-bottom: 17px;
	font-size: 12px;
	font-weight: 600;
}

.wa-form input,
.wa-form select,
.wa-form textarea {
	display: block;
	width: 100%;
	min-height: 46px;
	margin-top: 7px;
	padding: 10px 12px;
	border: 1px solid var(--line);
	border-radius: 0;
	background: #fff;
	color: var(--carbon);
}

.wa-form textarea {
	min-height: 120px;
	resize: vertical;
}

.form-note {
	color: var(--steel);
	font-size: 11px;
}

.contact-details {
	align-self: start;
	padding: clamp(24px, 3vw, 36px);
	background: var(--carbon);
	color: var(--paper);
}

.contact-details h2 {
	margin: 0 0 12px;
	font-family: var(--display);
	font-size: 34px;
	font-weight: 700;
	text-transform: uppercase;
}

.contact-details strong {
	color: #fff;
}

.contact-details a {
	color: var(--paper);
	text-decoration: underline;
	text-decoration-color: var(--red);
	text-underline-offset: 4px;
}

.about-hero {
	padding-block: clamp(80px, 11vw, 144px);
	background: var(--carbon);
	color: var(--paper);
}

.about-hero .section-heading {
	margin-top: 18px;
	font-size: clamp(72px, 11vw, 140px);
}

.about-hero p {
	max-width: 600px;
	color: rgba(245, 241, 232, .78);
	font-size: 20px;
}

.about-copy {
	display: grid;
	grid-template-columns: 1fr 1fr;
	align-items: start;
	gap: 64px;
}

.about-copy p {
	max-width: 580px;
}

@media (max-width: 1120px) {
	.header-main {
		gap: 16px;
	}

	.site-nav ul {
		gap: 14px;
	}

	.hero {
		grid-template-columns: minmax(390px, .92fr) minmax(0, 1.08fr);
	}

	.hero h1 {
		font-size: clamp(64px, 7.4vw, 88px);
	}
}

@media (max-width: 900px) {
	.wrap {
		width: min(var(--content-width), calc(100% - 40px));
	}

	.header-main {
		min-height: 74px;
	}

	.brand-mark,
	.brand-mark .custom-logo-link,
	.custom-logo {
		width: 46px;
		height: 46px;
	}

	.brand-wordmark strong {
		font-size: 16px;
	}

	.site-nav ul {
		gap: 12px;
	}

	.site-nav a {
		font-size: 10px;
	}

	.header-actions {
		gap: 12px;
	}

	.site-search input[type="search"] {
		width: 82px;
	}

	.hero {
		min-height: 560px;
		grid-template-columns: minmax(340px, .9fr) minmax(0, 1.1fr);
	}

	.hero-copy {
		padding-right: 30px;
	}

	.hero h1 {
		font-size: clamp(58px, 7vw, 78px);
	}

	.hero-visual {
		min-height: 560px;
	}

	.product-grid,
	.woocommerce ul.products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.category-card {
		min-height: 310px;
	}

	.category-art {
		min-height: 195px;
	}

	.steps-section .wrap {
		grid-template-columns: minmax(220px, .75fr) minmax(0, 1.25fr);
		gap: 40px;
	}

	.woocommerce div.product {
		gap: 30px;
	}
}

@media (max-width: 700px) {
	.wrap {
		width: calc(100% - 32px);
	}

	.topline {
		min-height: 27px;
		font-size: 9px;
	}

	.header-main {
		min-height: 68px;
		gap: 10px;
	}

	.brand-lockup {
		gap: 7px;
	}

	.brand-mark,
	.brand-mark .custom-logo-link,
	.custom-logo {
		width: 40px;
		height: 40px;
	}

	.brand-wordmark strong {
		font-size: 14px;
	}

	.brand-wordmark span {
		font-size: 8px;
	}

	.mobile-menu {
		display: inline-flex;
		flex: 0 0 auto;
		align-items: center;
		justify-content: center;
		min-height: 40px;
		padding: 0 7px;
		border: 0;
		background: transparent;
		color: var(--carbon);
		font-size: 10px;
		font-weight: 700;
		letter-spacing: .07em;
		text-transform: uppercase;
	}

	.site-nav {
		position: absolute;
		top: 100%;
		left: 0;
		right: 0;
		z-index: 40;
		display: none;
		margin: 0;
		padding: 10px 20px 18px;
		border-bottom: 1px solid var(--line);
		background: var(--paper);
	}

	.site-nav.is-open {
		display: block;
	}

	.site-nav ul {
		display: grid;
		gap: 0;
	}

	.site-nav a {
		padding: 12px 0;
		border-bottom: 1px solid var(--line);
		font-size: 11px;
	}

	.site-nav .sub-menu {
		position: static;
		display: block;
		min-width: 0;
		padding: 0 0 0 14px;
		border: 0;
		background: transparent;
		box-shadow: none;
	}

	.site-nav .sub-menu a {
		padding-block: 9px;
		border-bottom: 0;
		color: var(--steel);
		white-space: normal;
	}

	.header-actions {
		gap: 9px;
		margin-left: auto;
	}

	.site-search input[type="search"] {
		width: 64px;
		min-height: 32px;
		font-size: 10px;
	}

	.search-submit {
		width: 25px;
		height: 32px;
	}

	.cart-link {
		gap: 5px;
		font-size: 9px;
	}

	.cart-count {
		min-width: 18px;
		height: 18px;
		font-size: 9px;
	}

	.hero {
		min-height: 0;
		grid-template-columns: minmax(0, 1fr);
	}

	.hero-visual {
		grid-row: 1;
		min-height: 0;
		aspect-ratio: 1.18 / 1;
	}

	.hero-visual img {
		object-position: 57% center;
	}

	.hero-visual figcaption {
		right: 12px;
		bottom: 12px;
		gap: 7px;
		padding: 7px 9px;
		font-size: 8px;
	}

	.hero-copy {
		padding: 42px 20px 40px;
	}

	.hero-copy-inner {
		width: 100%;
	}

	.hero h1 {
		margin: 17px 0;
		font-size: clamp(54px, 13vw, 82px);
		line-height: .86;
	}

	.hero-intro {
		max-width: 390px;
		font-size: 14px;
	}

	.hero-actions {
		gap: 18px;
		margin-top: 22px;
	}

	.hero-signature {
		margin-top: 28px;
	}

	.intro-strip-inner {
		min-height: 48px;
		justify-content: flex-start;
		gap: 12px;
		font-size: 8px;
		letter-spacing: .06em;
	}

	.intro-strip-line {
		flex: 1 1 auto;
		width: auto;
	}

	.section {
		padding-block: 70px;
	}

	.section-head {
		align-items: flex-start;
		flex-direction: column;
		gap: 20px;
		margin-bottom: 25px;
	}

	.section-heading {
		font-size: clamp(42px, 11vw, 62px);
	}

	.product-grid,
	.woocommerce ul.products {
		gap: 10px;
	}

	.product-grid li.product,
	.woocommerce ul.products li.product {
		padding-bottom: 12px;
	}

	.product-grid li.product img,
	.woocommerce ul.products li.product img {
		padding: 12px;
	}

	.product-grid li.product .woocommerce-loop-product__title,
	.woocommerce ul.products li.product .woocommerce-loop-product__title {
		min-height: 2.6em;
		margin-inline: 11px !important;
		font-size: 16px;
	}

	.product-grid li.product .price,
	.woocommerce ul.products li.product .price {
		margin-inline: 11px;
		font-size: 12px;
	}

	.product-grid li.product .button,
	.woocommerce ul.products li.product .button {
		width: calc(100% - 22px);
		min-height: 40px;
		margin: 11px 11px 0;
		font-size: 9px;
	}

	.category-grid {
		grid-template-columns: minmax(0, 1fr);
		gap: 12px;
	}

	.category-card {
		min-height: 275px;
		padding: 17px;
	}

	.category-art {
		min-height: 185px;
	}

	.category-art--table img {
		height: 180px;
	}

	.category-card h3 {
		font-size: 34px;
	}

	.steps-section {
		padding-block: 70px;
	}

	.steps-section .wrap {
		grid-template-columns: minmax(0, 1fr);
		gap: 30px;
	}

	.steps-heading .section-heading {
		font-size: clamp(55px, 14vw, 76px);
	}

	.step {
		grid-template-columns: 28px minmax(0, 1fr) 22px;
		gap: 12px;
		padding-block: 18px;
	}

	.step h3 {
		font-size: 22px;
	}

	.contact-row {
		align-items: flex-start;
		flex-direction: column;
	}

	.footer-grid {
		grid-template-columns: 1fr 1fr;
		gap: 28px 18px;
	}

	.footer-brand {
		grid-column: 1 / -1;
	}

	.footer-bottom {
		align-items: flex-start;
		flex-direction: column;
		gap: 7px;
	}

	.woocommerce div.product {
		grid-template-columns: minmax(0, 1fr);
		gap: 20px;
	}

	.woocommerce div.product .product_title {
		font-size: clamp(42px, 11vw, 62px);
	}

	.woocommerce div.product .woocommerce-tabs,
	.woocommerce div.product .related,
	.woocommerce div.product .up-sells {
		grid-column: auto;
	}

	.contact-layout,
	.about-copy {
		grid-template-columns: minmax(0, 1fr);
		gap: 25px;
	}

	.about-hero {
		padding-block: 74px;
	}
}

@media (max-width: 360px) {
	.header-main {
		display: grid;
		min-height: 0;
		grid-template-columns: minmax(0, 1fr) auto auto;
		gap: 4px 6px;
		padding-block: 7px;
	}

	.brand-lockup {
		grid-column: 1;
		grid-row: 1;
	}

	.mobile-menu {
		grid-column: 2;
		grid-row: 1;
	}

	.header-actions {
		display: contents;
	}

	.site-search {
		grid-column: 1 / -1;
		grid-row: 2;
		width: 100%;
	}

	.site-search input[type="search"] {
		flex: 1 1 auto;
		width: auto;
	}

	.cart-link {
		grid-column: 3;
		grid-row: 1;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		transition-duration: .01ms !important;
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
	}
}
