/*
Theme Name: Élan Store
Theme URI: https://example.com/elan-store
Author: Studio Élan
Author URI: https://example.com
Description: A refined, responsive WooCommerce theme designed for stores across every product category.
Version: 1.2.0
Requires at least: 6.4
Tested up to: 7.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: elan-atelier
Tags: e-commerce, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready, wide-blocks
*/

:root {
	--ink: #211b1a;
	--ink-soft: #4f4542;
	--wine: #7d2838;
	--wine-dark: #5d1827;
	--berry: #a54858;
	--blush: #ead1cc;
	--rose-mist: #f2dfda;
	--cream: #f8f2e9;
	--cream-deep: #eee4d7;
	--paper: #fffdf9;
	--white: #fff;
	--sage: #687260;
	--border: rgba(33, 27, 26, .16);
	--border-light: rgba(33, 27, 26, .09);
	--serif: "Iowan Old Style", "Palatino Linotype", Baskerville, "Times New Roman", serif;
	--sans: Inter, "Avenir Next", "Helvetica Neue", Arial, sans-serif;
	--container: 1280px;
	--shadow: 0 24px 70px rgba(64, 31, 33, .12);
	--ease: cubic-bezier(.22, 1, .36, 1);
}

*,
*::before,
*::after { box-sizing: border-box; }

html { scroll-behavior: smooth; }

body {
	margin: 0;
	background: var(--paper);
	color: var(--ink);
	font-family: var(--sans);
	font-size: 16px;
	line-height: 1.65;
	-webkit-font-smoothing: antialiased;
}

body.panel-open { overflow: hidden; }

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

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

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

button { color: inherit; }

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 0 0 .7em;
	font-family: var(--serif);
	font-weight: 400;
	line-height: 1.08;
	letter-spacing: -.025em;
}

p { margin: 0 0 1.4em; }

ul,
ol { margin-top: 0; }

::selection { background: var(--blush); color: var(--ink); }

.site-shell { min-height: 100vh; display: flex; flex-direction: column; overflow: clip; }
.site-main { flex: 1 0 auto; }
.site-container { width: min(calc(100% - 48px), var(--container)); margin-inline: auto; }

.screen-reader-text {
	clip: rect(1px, 1px, 1px, 1px);
	clip-path: inset(50%);
	height: 1px;
	margin: -1px;
	overflow: hidden;
	padding: 0;
	position: absolute !important;
	width: 1px;
	word-wrap: normal !important;
}

.screen-reader-text:focus,
.skip-link:focus {
	clip: auto !important;
	clip-path: none;
	display: block;
	height: auto;
	left: 16px;
	padding: 12px 18px;
	top: 16px;
	width: auto;
	z-index: 100000;
	background: var(--paper);
	box-shadow: var(--shadow);
}

.icon { display: block; width: 22px; height: 22px; }

.icon-button {
	display: inline-grid;
	place-items: center;
	width: 42px;
	height: 42px;
	padding: 0;
	border: 0;
	background: transparent;
	cursor: pointer;
	transition: color .2s ease, background-color .2s ease;
}

.icon-button:hover,
.icon-button:focus-visible { color: var(--wine); background: rgba(125, 40, 56, .06); }

.button,
button.button,
input[type="submit"],
.woocommerce a.button,
.woocommerce button.button,
.woocommerce input.button,
.woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 18px;
	min-height: 52px;
	padding: 13px 26px;
	border: 1px solid var(--wine);
	border-radius: 0;
	background: var(--wine);
	color: var(--white);
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 600;
	line-height: 1.2;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: transform .3s var(--ease), background .3s ease, border-color .3s ease;
}

.button:hover,
.button:focus-visible,
.woocommerce a.button:hover,
.woocommerce button.button:hover,
.woocommerce input.button:hover,
.woocommerce #respond input#submit:hover {
	background: var(--wine-dark);
	border-color: var(--wine-dark);
	color: var(--white);
	transform: translateY(-2px);
}

.button .icon { width: 17px; height: 17px; }
.button--small { min-height: 44px; padding: 10px 20px; }
.button--outline { color: var(--wine); background: transparent; }
.button--outline:hover { color: var(--white); }

.text-link {
	display: inline-flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 4px;
	border-bottom: 1px solid currentColor;
	color: var(--wine);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .11em;
	line-height: 1.4;
	text-transform: uppercase;
}

.text-link .icon { width: 17px; height: 17px; transition: transform .25s ease; }
.text-link:hover .icon { transform: translateX(4px); }
.text-link--light { color: var(--rose-mist); }

.eyebrow {
	display: block;
	margin-bottom: 16px;
	color: var(--wine);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .19em;
	line-height: 1.2;
	text-transform: uppercase;
}

/* Header */
.announcement-bar { background: var(--wine); color: var(--white); }
.announcement-bar__inner { min-height: 36px; display: flex; align-items: center; justify-content: center; gap: 28px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.announcement-bar__inner a { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; }
.announcement-bar__inner .icon { width: 14px; height: 14px; }

.site-header {
	position: sticky;
	top: 0;
	z-index: 990;
	background: rgba(255, 253, 249, .96);
	border-bottom: 1px solid transparent;
	backdrop-filter: blur(14px);
	transition: box-shadow .3s ease, border-color .3s ease;
}

.site-header.is-scrolled { border-color: var(--border-light); box-shadow: 0 10px 30px rgba(33, 27, 26, .04); }
.header-main { display: grid; grid-template-columns: minmax(180px, 1fr) auto minmax(180px, 1fr); align-items: center; min-height: 86px; }
.site-branding { justify-self: start; }
.custom-logo-link { display: flex; align-items: center; }
.custom-logo { width: auto; max-height: 54px; }

.wordmark { display: inline-flex; flex-direction: column; align-items: center; color: var(--ink); line-height: 1; }
.wordmark > span { font-family: var(--serif); font-size: clamp(25px, 2.4vw, 34px); letter-spacing: .06em; text-transform: uppercase; }
.wordmark small { margin-top: 7px; font-size: 8px; font-weight: 700; letter-spacing: .35em; text-transform: uppercase; }

.desktop-navigation { justify-self: center; }
.primary-menu { display: flex; align-items: center; gap: clamp(24px, 3vw, 46px); margin: 0; padding: 0; list-style: none; }
.primary-menu > li { position: relative; }
.primary-menu > li > a { position: relative; display: block; padding: 30px 0; font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.primary-menu > li > a::after { position: absolute; right: 0; bottom: 25px; left: 0; height: 1px; background: var(--wine); content: ""; transform: scaleX(0); transition: transform .3s var(--ease); }
.primary-menu > li:hover > a::after,
.primary-menu > .current-menu-item > a::after { transform: scaleX(1); }

.primary-menu .sub-menu {
	position: absolute;
	top: calc(100% - 8px);
	left: -22px;
	min-width: 210px;
	margin: 0;
	padding: 14px 0;
	background: var(--paper);
	border: 1px solid var(--border-light);
	box-shadow: var(--shadow);
	list-style: none;
	opacity: 0;
	pointer-events: none;
	transform: translateY(10px);
	transition: opacity .2s ease, transform .25s var(--ease);
}

.primary-menu li:hover > .sub-menu,
.primary-menu li:focus-within > .sub-menu { opacity: 1; pointer-events: auto; transform: translateY(0); }
.primary-menu .sub-menu a { display: block; padding: 9px 22px; font-family: var(--serif); font-size: 17px; }
.primary-menu .sub-menu a:hover { color: var(--wine); background: var(--cream); }

.header-actions { justify-self: end; display: flex; align-items: center; gap: 3px; }
.menu-toggle { display: none; justify-self: start; }
.cart-toggle { position: relative; }
.site-cart-count {
	position: absolute;
	top: 2px;
	right: 0;
	display: grid;
	place-items: center;
	min-width: 18px;
	height: 18px;
	padding: 0 4px;
	border-radius: 99px;
	background: var(--wine);
	color: var(--white);
	font-size: 9px;
	font-weight: 700;
	transition: transform .25s var(--ease), background-color .25s ease;
}
.site-cart-count.is-bumped { animation: cart-count-bump .45s var(--ease); }
@keyframes cart-count-bump {
	0%, 100% { transform: scale(1); }
	45% { transform: scale(1.35); }
}

.search-panel { position: absolute; top: 100%; right: 0; left: 0; background: var(--paper); border-top: 1px solid var(--border-light); border-bottom: 1px solid var(--border); box-shadow: 0 18px 40px rgba(33, 27, 26, .08); opacity: 0; transform: translateY(-10px); transition: opacity .2s ease, transform .25s var(--ease); }
.search-panel.is-open { opacity: 1; transform: translateY(0); }
.search-panel__inner { display: flex; align-items: center; gap: 12px; padding-block: 22px; }
.search-form { display: flex; flex: 1; align-items: center; gap: 15px; }
.search-form > .icon { flex: 0 0 auto; color: var(--wine); }
.search-field { flex: 1; min-width: 0; height: 50px; padding: 0; border: 0; border-bottom: 1px solid var(--border); outline: 0; background: transparent; color: var(--ink); font-family: var(--serif); font-size: 24px; }
.search-field::placeholder { color: #958b87; }

.mobile-panel,
.cart-drawer {
	position: fixed;
	top: 0;
	bottom: 0;
	z-index: 1200;
	width: min(420px, 92vw);
	background: var(--paper);
	box-shadow: var(--shadow);
	transition: transform .45s var(--ease);
}

.mobile-panel { left: 0; display: flex; flex-direction: column; width: min(420px, calc(100vw - 18px)); padding: 0; overflow: hidden; transform: translateX(-105%); }
.cart-drawer { right: 0; display: flex; flex-direction: column; padding: 0 30px 30px; transform: translateX(105%); }
.mobile-panel.is-open,
.cart-drawer.is-open { transform: translateX(0); }
.mobile-panel__head,
.cart-drawer__head { display: flex; align-items: center; justify-content: space-between; min-height: 84px; border-bottom: 1px solid var(--border); }
.mobile-panel__head { flex: 0 0 auto; min-height: 96px; padding: 22px 24px 18px; align-items: flex-end; }
.mobile-panel__heading { display: flex; flex-direction: column; gap: 5px; }
.mobile-panel__heading .eyebrow { margin: 0; font-size: 9px; }
.mobile-panel__title { font-family: var(--serif); font-size: 34px; line-height: 1; }
.mobile-panel .menu-close { width: 42px; height: 42px; border: 1px solid var(--border); border-radius: 50%; color: var(--wine); }
.mobile-panel .menu-close:focus-visible { outline: 2px solid var(--wine); outline-offset: 2px; }
.mobile-menu,
.mobile-menu ul { margin: 0; padding: 0; list-style: none; }
.mobile-panel__body { flex: 1; min-height: 0; overflow-y: auto; overscroll-behavior: contain; padding: 25px 24px 20px; scrollbar-width: thin; scrollbar-color: rgba(125,40,56,.35) transparent; }
.mobile-panel__nav-meta { display: flex; align-items: center; justify-content: space-between; margin-bottom: 12px; color: var(--ink-soft); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.mobile-panel__nav-meta span:last-child { color: var(--wine); font-family: var(--serif); font-size: 16px; font-weight: 400; letter-spacing: 0; }
.mobile-panel__nav { display: block; }
.mobile-menu { padding: 0; }
.mobile-menu > li { position: relative; border-top: 1px solid var(--border-light); }
.mobile-menu > li:last-child { border-bottom: 1px solid var(--border-light); }
.mobile-menu > li > a { display: block; padding: 18px 52px 18px 0; font-family: var(--serif); font-size: clamp(25px, 7vw, 30px); line-height: 1.15; }
.mobile-menu .menu-item-has-children > a { padding-right: 52px; }
.mobile-menu .sub-menu { max-height: 0; margin: 0 0 0 3px; padding: 0 0 0 17px; overflow: hidden; border-left: 1px solid transparent; opacity: 0; pointer-events: none; transition: max-height .35s var(--ease), margin .35s var(--ease), opacity .25s ease, border-color .25s ease; }
.mobile-menu .menu-item-has-children.is-expanded > .sub-menu { max-height: 420px; margin-bottom: 14px; border-color: var(--border); opacity: 1; pointer-events: auto; }
.mobile-menu .sub-menu a { display: block; padding: 8px 0; color: var(--ink-soft); font-family: var(--serif); font-size: 17px; line-height: 1.35; letter-spacing: .01em; }
.mobile-submenu-toggle { position: absolute; top: 13px; right: 0; display: grid; width: 36px; height: 36px; place-items: center; padding: 0; border: 1px solid var(--border); border-radius: 50%; background: transparent; color: var(--wine); cursor: pointer; }
.mobile-submenu-toggle:hover,
.mobile-submenu-toggle:focus-visible { border-color: var(--wine); background: rgba(125, 40, 56, .06); }
.mobile-submenu-toggle__icon { position: relative; display: block; width: 13px; height: 13px; }
.mobile-submenu-toggle__icon::before,
.mobile-submenu-toggle__icon::after { position: absolute; top: 50%; left: 50%; width: 13px; height: 1px; background: currentColor; content: ""; transform: translate(-50%, -50%); transition: transform .25s ease; }
.mobile-submenu-toggle__icon::after { transform: translate(-50%, -50%) rotate(90deg); }
.mobile-menu-item--accordion.is-expanded > .mobile-submenu-toggle .mobile-submenu-toggle__icon::after { transform: translate(-50%, -50%) rotate(0deg); }
.mobile-menu a:hover,
.mobile-menu a:focus-visible { color: var(--wine); }
.mobile-panel__footer { flex: 0 0 auto; display: grid; grid-template-columns: 1fr 1fr; gap: 10px; padding: 15px 24px 22px; border-top: 1px solid var(--border); background: var(--paper); }
.mobile-panel__quick-link { display: grid; grid-template-columns: 30px minmax(0, 1fr) 14px; align-items: center; gap: 8px; min-height: 68px; padding: 10px 11px; border: 1px solid var(--border); color: var(--ink); transition: border-color .2s ease, background-color .2s ease, color .2s ease; }
.mobile-panel__quick-link:hover,
.mobile-panel__quick-link:focus-visible { border-color: var(--wine); background: var(--cream); color: var(--wine); }
.mobile-panel__quick-icon { position: relative; display: grid; width: 28px; height: 28px; place-items: center; color: var(--wine); }
.mobile-panel__quick-icon .icon { width: 20px; height: 20px; }
.mobile-panel__quick-icon--bag b { position: absolute; top: -5px; right: -5px; display: grid; min-width: 15px; height: 15px; padding: 0 3px; place-items: center; border-radius: 50%; background: var(--wine); color: var(--white); font-size: 8px; line-height: 1; }
.mobile-panel__quick-copy { display: flex; min-width: 0; flex-direction: column; gap: 4px; }
.mobile-panel__quick-copy small { overflow: hidden; color: var(--ink-soft); font-size: 8px; font-weight: 700; letter-spacing: .08em; line-height: 1.1; text-overflow: ellipsis; text-transform: uppercase; white-space: nowrap; }
.mobile-panel__quick-copy strong { font-family: var(--serif); font-size: 15px; font-weight: 400; line-height: 1.1; white-space: nowrap; }
.mobile-panel__quick-link > .icon { width: 14px; height: 14px; }
.cart-drawer__head h2 { margin: 0; font-size: 32px; }
.cart-drawer__head .eyebrow { margin-bottom: 7px; }
.cart-drawer__content--v2 { flex: 1; min-height: 0; overflow-y: auto; padding: 0 2px 4px; }
.site-overlay { position: fixed; inset: 0; z-index: 1100; background: rgba(24, 16, 17, .52); opacity: 0; transition: opacity .25s ease; }
.site-overlay.is-visible { opacity: 1; }

/* Homepage */
.hero-section { display: grid; grid-template-columns: 48% 52%; min-height: min(720px, calc(100vh - 122px)); background: var(--cream); }
.hero-copy { display: flex; align-items: center; padding: 80px max(40px, calc((100vw - var(--container)) / 2)); padding-right: clamp(40px, 7vw, 130px); }
.hero-copy__inner { max-width: 620px; }
.hero-copy h1 { max-width: 590px; margin-bottom: 26px; font-size: clamp(58px, 6vw, 96px); letter-spacing: -.055em; }
.hero-copy p { max-width: 540px; color: var(--ink-soft); font-size: 17px; line-height: 1.8; }
.button-row { display: flex; align-items: center; gap: 30px; margin-top: 36px; }
.hero-note { display: flex; align-items: center; gap: 11px; margin-top: 48px; color: var(--ink-soft); font-family: var(--serif); font-size: 14px; font-style: italic; }
.hero-note .icon { width: 18px; height: 18px; color: var(--wine); }
.hero-visual { position: relative; overflow: hidden; min-height: 620px; background: linear-gradient(145deg, #d6a59f, #b86571 52%, #79303f); }
.hero-visual::after { position: absolute; inset: 0; border: 1px solid rgba(255,255,255,.22); content: ""; pointer-events: none; }
.hero-visual__image { width: 100%; height: 100%; object-fit: cover; }
.hero-art { position: absolute; inset: 0; overflow: hidden; }
.hero-art::before { position: absolute; inset: 0; background: linear-gradient(135deg, rgba(255,255,255,.22), transparent 40%), radial-gradient(circle at 70% 22%, rgba(255,230,217,.28), transparent 32%); content: ""; }
.hero-art__sun { position: absolute; top: 10%; right: 8%; width: min(32vw, 430px); aspect-ratio: 1; border: 1px solid rgba(255,255,255,.36); border-radius: 50%; }
.hero-art__sun::before,
.hero-art__sun::after { position: absolute; inset: 10%; border: 1px solid rgba(255,255,255,.23); border-radius: inherit; content: ""; }
.hero-art__sun::after { inset: 23%; }
.hero-art__parcel { position: absolute; z-index: 2; bottom: 11%; left: 24%; display: flex; align-items: center; justify-content: center; width: 185px; height: 335px; border-radius: 10px; background: linear-gradient(90deg, #ddbfa8, #fff0dc 48%, #cda68c); box-shadow: -35px 40px 55px rgba(75, 27, 37, .26); color: var(--wine); transform: rotate(-3deg); }
.hero-art__parcel::before { position: absolute; top: 0; bottom: 0; left: 50%; width: 36px; background: rgba(153, 91, 74, .18); content: ""; transform: translateX(-50%); }
.hero-art__parcel::after { position: absolute; top: 56px; right: 28px; width: 70px; height: 52px; border: 1px solid rgba(125,40,56,.22); background: rgba(255,255,255,.45); content: ""; }
.hero-art__parcel span { position: relative; z-index: 1; margin-top: 145px; font-family: var(--sans); font-size: 14px; font-weight: 700; letter-spacing: .22em; }
.hero-art__bag { position: absolute; z-index: 3; right: 14%; bottom: 9%; display: grid; place-items: center; width: 245px; height: 205px; border-radius: 8px 8px 20px 20px; background: linear-gradient(120deg, #471c26, #8f3a4b 48%, #37141d); box-shadow: -25px 34px 50px rgba(55,18,27,.34); color: #ecd6ca; }
.hero-art__bag::before { position: absolute; top: -76px; left: 25%; width: 50%; height: 88px; border: 12px solid #35171e; border-bottom: 0; border-radius: 70px 70px 0 0; content: ""; }
.hero-art__bag span { font-family: var(--sans); font-size: 18px; font-weight: 700; letter-spacing: .22em; }
.hero-art__leaf { position: absolute; z-index: 1; width: 160px; height: 400px; border-radius: 100% 0 100% 0; background: rgba(71, 84, 64, .75); transform-origin: bottom center; }
.hero-art__leaf--one { right: -30px; bottom: -70px; transform: rotate(-28deg); }
.hero-art__leaf--two { left: 3%; bottom: -150px; background: rgba(93, 105, 82, .55); transform: rotate(35deg); }
.hero-art > p { position: absolute; top: 13%; left: 8%; margin: 0; color: rgba(255,255,255,.75); font-size: 11px; font-weight: 700; letter-spacing: .35em; line-height: 1.8; }

.marquee-strip { overflow: hidden; background: var(--ink); color: var(--cream); }
.marquee-strip__inner { width: min(calc(100% - 48px), var(--container)); min-height: 62px; margin-inline: auto; display: flex; align-items: center; justify-content: space-between; gap: 28px; white-space: nowrap; }
.marquee-strip span { font-family: var(--serif); font-size: 14px; font-style: italic; letter-spacing: .04em; }
.marquee-strip i { width: 4px; height: 4px; border-radius: 50%; background: var(--blush); }

.home-section { padding: clamp(90px, 10vw, 150px) 0; }
.section-heading { margin-bottom: 54px; }
.section-heading h2 { margin: 0; font-size: clamp(42px, 5vw, 66px); }
.section-heading p { max-width: 590px; margin: 20px auto 0; color: var(--ink-soft); }
.section-heading--split { display: flex; align-items: end; justify-content: space-between; gap: 30px; }
.section-heading--center { max-width: 760px; margin-right: auto; margin-left: auto; text-align: center; }

.home-categories { background: var(--paper); }
.category-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.category-card { display: block; }
.category-card__visual { position: relative; min-height: 390px; overflow: hidden; background-position: center; background-size: cover; }
.category-card--1 .category-card__visual { background-color: #e5c5bc; }
.category-card--1 .category-card__visual::before { right: 10%; bottom: 10%; width: 72%; height: 65%; border-radius: 12px; background: linear-gradient(145deg, #f5e2d5 0 48%, #bd6571 49% 100%); box-shadow: -34px 30px 0 rgba(125,40,56,.22); transform: rotate(-7deg); }
.category-card--2 .category-card__visual { background-color: #c4b8a2; }
.category-card--2 .category-card__visual::before { top: 22%; left: 13%; width: 74%; height: 51%; border: 14px solid #56574d; border-radius: 26px; background: linear-gradient(145deg, #dedbc9, #8e927d); box-shadow: 20px 30px 50px rgba(56,53,45,.27); }
.category-card--3 .category-card__visual { background-color: #c88993; }
.category-card--3 .category-card__visual::before { top: 31%; left: 18%; width: 64%; height: 46%; border-radius: 6px 6px 34px 34px; background: linear-gradient(135deg, #f1cec0, #9a3c4c); box-shadow: 22px 30px 45px rgba(78,28,38,.25), inset 0 18px 0 rgba(255,255,255,.14); }
.category-card--4 .category-card__visual { background-color: #9da28e; }
.category-card--4 .category-card__visual::before { right: -10%; bottom: -5%; width: 95%; height: 95%; border-radius: 100% 0 100% 0; background: linear-gradient(145deg, #dfe2ce, #6d765f); transform: rotate(20deg); }
.category-card:hover .category-card__visual::before { transform: scale(1.04); }
.category-card--1:hover .category-card__visual::before { transform: rotate(-7deg) scale(1.04); }
.category-card--4:hover .category-card__visual::before { transform: rotate(20deg) scale(1.04); }
.category-card__meta { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 20px; }
.category-card__meta span { display: block; margin-bottom: 6px; color: var(--ink-soft); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.category-card__meta h3 { margin: 0; font-size: 27px; }
.category-card__meta > .icon { flex: 0 0 auto; width: 20px; height: 20px; color: var(--wine); }

.product-edit { background: var(--cream); }
.store-product-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 54px 20px; }
.store-product-card__image { position: relative; display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--rose-mist); }
.store-product-card__image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .55s var(--ease); }
.store-product-card:hover .store-product-card__image img { transform: scale(1.025); }
.store-product-card__badge,
.store-product-card__stock { position: absolute; top: 14px; left: 14px; padding: 8px 11px; background: var(--wine); color: var(--white); font-size: 9px; font-weight: 700; line-height: 1; letter-spacing: .12em; text-transform: uppercase; }
.store-product-card__stock { top: auto; bottom: 14px; background: var(--ink); }
.store-product-card__body { padding-top: 18px; }
.store-product-card__title { margin: 0; font-family: var(--serif); font-size: 23px; font-weight: 400; line-height: 1.2; }
.store-product-card__title a { color: var(--ink); }
.store-product-card__price { margin-top: 10px; color: var(--wine); font-family: var(--serif); font-size: 16px; }
.section-cta { margin-top: 60px; text-align: center; }
.empty-edit { grid-column: 1 / -1; max-width: 680px; margin: 30px auto; padding: 70px 35px; border: 1px solid var(--border); text-align: center; }
.empty-edit > span { display: inline-grid; place-items: center; width: 54px; height: 54px; margin-bottom: 22px; border: 1px solid var(--blush); border-radius: 50%; color: var(--wine); }
.empty-edit h2,
.empty-edit h3 { font-size: 34px; }
.empty-edit p { color: var(--ink-soft); }

/* Product detail */
.product-page { padding: 30px 0 110px; background: var(--paper); }
.product-breadcrumb { margin-bottom: 42px; }
.product-breadcrumb .breadcrumb { display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0; list-style: none; color: var(--ink-soft); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.product-breadcrumb .breadcrumb-item + .breadcrumb-item::before { margin: 0 12px; color: var(--blush); content: '/'; }
.product-breadcrumb .breadcrumb-item a { color: var(--wine); }
.product-layout { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(360px, .92fr); gap: clamp(48px, 8vw, 125px); align-items: start; }
.product-gallery .woocommerce-product-gallery { position: relative; width: 100% !important; margin: 0 !important; float: none !important; opacity: 1 !important; }
.product-gallery .woocommerce-product-gallery__wrapper { margin: 0; }
.product-gallery .woocommerce-product-gallery__image { overflow: hidden; background: var(--rose-mist); }
.product-gallery .woocommerce-product-gallery__image img { display: block; width: 100%; aspect-ratio: 1 / 1; object-fit: cover; }
.product-gallery .woocommerce-product-gallery__trigger { position: absolute; top: 16px; right: 16px; left: auto; z-index: 3; display: grid; width: 42px; height: 42px; margin: 0; place-items: center; border: 1px solid rgba(125, 40, 56, .22); border-radius: 50%; background: rgba(255, 253, 249, .92) !important; background-image: none !important; box-shadow: 0 8px 24px rgba(33, 27, 26, .1); color: var(--wine); font-size: 0; transition: background .2s ease, color .2s ease, transform .2s ease; }
.product-gallery .woocommerce-product-gallery__trigger::before { width: 19px; height: 19px; border: 0; border-radius: 0; background-color: currentColor; content: ''; -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m16.5 16.5 4 4'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.7' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cpath d='m16.5 16.5 4 4'/%3E%3C/svg%3E") center / contain no-repeat; }
.product-gallery .woocommerce-product-gallery__trigger::after { display: none; }
.product-gallery .woocommerce-product-gallery__trigger:hover { background: var(--wine) !important; color: var(--white); transform: translateY(-2px); }
.product-gallery .flex-control-thumbs { display: grid; grid-template-columns: repeat(5, 1fr); gap: 12px; margin: 12px 0 0 !important; padding: 0; list-style: none; }
.product-gallery .flex-control-thumbs li { width: auto !important; margin: 0 !important; }
.product-gallery .flex-control-thumbs img { display: block; width: 100%; aspect-ratio: 1; object-fit: cover; opacity: .62; transition: opacity .2s ease; }
.product-gallery .flex-control-thumbs .flex-active,
.product-gallery .flex-control-thumbs img:hover { opacity: 1; }
.product-summary { padding-top: 22px; }
.product-summary .product_title { margin: 0 0 20px; font-size: clamp(45px, 5vw, 76px); line-height: .98; }
.product-summary .woocommerce-product-rating { display: flex; align-items: center; gap: 12px; margin: 0 0 22px; }
.product-summary .star-rating { color: var(--wine); }
.product-summary .woocommerce-review-link { color: var(--ink-soft); font-size: 12px; }
.single-product-price { display: flex; align-items: baseline; gap: 16px; margin: 0 0 25px; padding-bottom: 24px; border-bottom: 1px solid var(--border); }
.single-product-price__label { color: var(--ink-soft); font-size: 10px; letter-spacing: .14em; text-transform: uppercase; }
.single-product-price__value { color: var(--wine); font-family: var(--serif); font-size: 28px; }
.single-product-price__value del { margin-right: 8px; color: var(--ink-soft); font-size: 18px; }
.product-short-description { margin: 0 0 28px; color: var(--ink-soft); font-family: var(--serif); font-size: 18px; line-height: 1.65; }
.product-summary p.stock { margin: 0 0 18px; color: var(--wine); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.product-summary .product-cart-form { margin: 0 0 30px; }
.product-cart-form__row { display: flex; align-items: end; gap: 12px; }
.product-quantity { display: flex; flex-direction: column; gap: 8px; }
.product-quantity > label { color: var(--ink-soft); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.product-quantity .quantity { display: flex; align-items: center; margin: 0; }
.product-quantity .qty { width: 76px; height: 50px; border: 1px solid var(--border); border-radius: 0; background: transparent; color: var(--ink); text-align: center; }
.product-cart-form .single_add_to_cart_button { display: inline-flex; min-height: 56px; flex: 1; flex-direction: column; align-items: center; justify-content: center; gap: 3px; margin: 0; padding: 10px 24px; border: 1px solid var(--wine); border-radius: 0; background: var(--wine); color: var(--white); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; transition: background .2s ease, color .2s ease, transform .2s ease; }
.product-cart-form .single_add_to_cart_button:hover { background: transparent; color: var(--wine); }
.product-cart-form__button-label { font-weight: 700; }
.product-cart-form__button-total { min-height: 13px; color: rgba(255,255,255,.78); font-size: 10px; letter-spacing: .04em; text-transform: none; }
.product-cart-form .single_add_to_cart_button:hover .product-cart-form__button-total { color: var(--wine); }
.product-cart-form .single_add_to_cart_button.has-quantity { background: var(--wine-dark); box-shadow: 0 10px 24px rgba(125,40,56,.18); transform: translateY(-1px); }
.product-cart-form .single_add_to_cart_button.is-loading { cursor: wait; opacity: .72; }
.product-cart-form .single_add_to_cart_button.is-added { border-color: #55715c; background: #55715c; }
.product-cart-form .single_add_to_cart_button.is-added .product-cart-form__button-total { color: rgba(255,255,255,.86); }
.product-meta { display: grid; gap: 9px; margin: 0 0 32px; padding-top: 22px; border-top: 1px solid var(--border); color: var(--ink-soft); font-size: 12px; }
.product-meta div { display: flex; gap: 12px; }
.product-meta span { min-width: 72px; color: var(--ink); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.product-meta a { color: var(--wine); }
.purchase-trust { display: grid; gap: 0; border-top: 1px solid var(--border); }
.purchase-trust > div { display: grid; grid-template-columns: 26px 1fr; column-gap: 10px; padding: 15px 0; border-bottom: 1px solid var(--border); }
.purchase-trust i { grid-row: span 2; color: var(--wine); }
.purchase-trust strong { font-size: 12px; font-weight: 600; }
.purchase-trust span,
.purchase-trust a { color: var(--ink-soft); font-size: 12px; }
.product-content-panels { padding: 0 0 110px; background: var(--paper); }
.product-content-panels__shell { border-top: 1px solid var(--border); }
.product-tabs { display: flex; gap: 30px; border-bottom: 1px solid var(--border); }
.product-tabs__button { position: relative; padding: 22px 0; border: 0; background: transparent; color: var(--ink-soft); font-size: 11px; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.product-tabs__button::after { position: absolute; right: 0; bottom: -1px; left: 0; height: 2px; background: transparent; content: ''; }
.product-tabs__button.is-active { color: var(--wine); }
.product-tabs__button.is-active::after { background: var(--wine); }
.product-tab-content { padding: 34px 0 0; }
.product-tab-panel { display: none; max-width: 760px; color: var(--ink-soft); font-family: var(--serif); font-size: 17px; line-height: 1.75; }
.product-tab-panel.is-active { display: block; }
.product-tab-panel h2,
.product-tab-panel h3 { color: var(--ink); font-family: var(--sans); font-size: 14px; }
.product-accordion-toggle { display: none; }
.single-products-section { padding: 100px 0; background: var(--cream); }
.single-products-section .section-heading { margin-bottom: 44px; }
.single-products-section .section-heading h2 { font-size: clamp(36px, 4vw, 54px); }

.story-section { display: grid; grid-template-columns: 1.08fr .92fr; min-height: 720px; background: var(--rose-mist); }
.story-section__visual { position: relative; overflow: hidden; background: #d7a8a5; }
.story-section__copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: clamp(60px, 8vw, 130px); }
.story-section__copy h2 { max-width: 620px; font-size: clamp(48px, 5vw, 74px); }
.story-section__copy p { max-width: 560px; margin-bottom: 36px; color: var(--ink-soft); font-size: 17px; line-height: 1.8; }
.story-still-life { position: absolute; inset: 0; background: linear-gradient(150deg, #bf7f83, #e4b9b1 56%, #a65b68); }
.story-still-life::before { position: absolute; inset: auto 0 0; height: 26%; background: rgba(74,28,37,.14); content: ""; }
.story-still-life__orb { position: absolute; top: 11%; left: 11%; width: 52%; aspect-ratio: 1; border-radius: 50%; background: linear-gradient(135deg, #f3d9cd, #b86572); box-shadow: 30px 50px 80px rgba(77,31,40,.18); }
.story-still-life__box { position: absolute; z-index: 2; right: 18%; bottom: 12%; display: flex; align-items: center; justify-content: center; width: 245px; height: 355px; border-radius: 10px; background: linear-gradient(90deg, #531c2a, #8a3447, #4a1724); box-shadow: -35px 32px 55px rgba(64,20,30,.3); color: #f2d5cb; font-family: var(--sans); font-size: 14px; font-weight: 700; letter-spacing: .22em; transform: rotate(4deg); }
.story-still-life__box::before { position: absolute; top: 0; bottom: 0; left: 50%; width: 42px; background: rgba(255,255,255,.09); content: ""; transform: translateX(-50%); }
.story-still-life__object { position: absolute; z-index: 3; bottom: 8%; left: 16%; width: 245px; height: 180px; border-radius: 16px 16px 70px 70px; background: linear-gradient(145deg, #eee1d3, #bca99a); box-shadow: 20px 26px 45px rgba(82,48,46,.22); transform: rotate(-8deg); }
.story-still-life__object::before { position: absolute; top: -72px; left: 25%; width: 50%; height: 88px; border: 14px solid #c7b5a6; border-bottom: 0; border-radius: 70px 70px 0 0; content: ""; }

.service-section { padding: 80px 0; background: var(--paper); }
.service-grid { display: grid; grid-template-columns: repeat(3, 1fr); }
.service-grid article { position: relative; padding: 6px 54px; border-right: 1px solid var(--border); }
.service-grid article:first-child { padding-left: 0; }
.service-grid article:last-child { padding-right: 0; border-right: 0; }
.service-grid article > span { display: block; margin-bottom: 28px; color: var(--wine); font-family: var(--serif); font-size: 13px; font-style: italic; }
.service-grid h2 { margin-bottom: 14px; font-size: 29px; }
.service-grid p { margin: 0; color: var(--ink-soft); font-size: 14px; }

/* Blog and pages */
.content-layout,
.page-layout,
.single-layout,
.commerce-layout { padding-top: clamp(70px, 8vw, 120px); padding-bottom: clamp(80px, 10vw, 150px); }
.archive-hero,
.page-hero,
.single-hero { max-width: 880px; margin: 0 auto 70px; text-align: center; }
.archive-hero h1,
.page-hero h1,
.single-hero h1 { font-size: clamp(52px, 7vw, 90px); }
.archive-description,
.single-hero p { max-width: 650px; margin-inline: auto; color: var(--ink-soft); font-size: 18px; }
.post-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 54px 24px; }
.post-card__image { display: block; aspect-ratio: 4 / 5; overflow: hidden; background: var(--rose-mist); }
.post-card__image img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s var(--ease); }
.post-card:hover .post-card__image img { transform: scale(1.035); }
.post-card__placeholder { display: grid; place-items: center; width: 100%; height: 100%; color: var(--wine); }
.post-card__placeholder .icon { width: 46px; height: 46px; }
.post-card__content { padding-top: 25px; }
.post-card__content .eyebrow { margin-bottom: 12px; }
.post-card__content h2 { font-size: 32px; }
.post-card__content p { color: var(--ink-soft); }
.page-article,
.single-article { max-width: 1000px; margin-inline: auto; }
.page-featured-image,
.single-featured-image { margin: 0 0 70px; }
.page-featured-image img,
.single-featured-image img { display: block; width: 100%; max-height: 700px; object-fit: cover; }
.prose { max-width: 760px; margin-inline: auto; color: var(--ink-soft); font-family: var(--serif); font-size: 19px; }
.prose h2,
.prose h3,
.prose h4 { margin-top: 1.8em; color: var(--ink); }
.prose h2 { font-size: 42px; }
.prose h3 { font-size: 32px; }
.prose a { color: var(--wine); text-decoration: underline; text-underline-offset: 3px; }
.prose blockquote { margin: 2.5em 0; padding: 20px 0 20px 34px; border-left: 2px solid var(--wine); color: var(--ink); font-size: 28px; font-style: italic; }
.post-navigation { display: flex; justify-content: space-between; gap: 30px; max-width: 760px; margin: 70px auto 0; padding-top: 30px; border-top: 1px solid var(--border); font-family: var(--serif); }
.navigation.pagination { grid-column: 1 / -1; margin-top: 60px; }
.nav-links { display: flex; justify-content: center; gap: 8px; }
.page-numbers { display: grid; place-items: center; min-width: 42px; height: 42px; border: 1px solid var(--border); }
.page-numbers.current,
.page-numbers:hover { background: var(--wine); border-color: var(--wine); color: var(--white); }
.comments-area { max-width: 760px; margin: 80px auto 0; padding-top: 50px; border-top: 1px solid var(--border); }
.comment-list { padding: 0; list-style: none; }
.comment-body { margin-bottom: 25px; padding: 25px; background: var(--cream); }
.comment-form input:not([type="submit"]),
.comment-form textarea { width: 100%; padding: 13px 15px; border: 1px solid var(--border); background: var(--white); }
.error-page { display: flex; min-height: 72vh; flex-direction: column; align-items: center; justify-content: center; padding-block: 90px; text-align: center; }
.error-page__number { color: var(--blush); font-family: var(--serif); font-size: clamp(130px, 22vw, 300px); line-height: .65; }
.error-page h1 { font-size: clamp(48px, 6vw, 78px); }
.error-page p { max-width: 590px; color: var(--ink-soft); }

/* Dedicated page templates */
.page-template-shell { padding-bottom: clamp(80px, 10vw, 150px); }
.site-breadcrumb { padding-top: clamp(35px, 5vw, 64px); }
.site-breadcrumb h1 { margin: 0 0 26px; font-size: clamp(44px, 6vw, 82px); line-height: .95; letter-spacing: -.055em; }
.site-breadcrumb__nav { margin-bottom: 48px; color: var(--ink-soft); font-size: 12px; letter-spacing: .12em; text-transform: uppercase; }
.site-breadcrumb__nav ol { display: flex; flex-wrap: wrap; align-items: center; gap: 0; margin: 0; padding: 0; list-style: none; }
.site-breadcrumb__nav li { display: inline-flex; align-items: center; }
.site-breadcrumb__nav li + li::before { margin: 0 15px; color: var(--blush); content: '/'; }
.site-breadcrumb__nav a { color: var(--wine); transition: color .2s ease; }
.site-breadcrumb__nav a:hover { color: var(--wine-dark); }
.site-breadcrumb__nav [aria-current="page"] { color: var(--ink-soft); }
.commerce-page__hero { max-width: 760px; margin: 0 auto 68px; text-align: center; }
.commerce-page__hero h1 { margin: 0 0 18px; font-size: clamp(52px, 7vw, 92px); line-height: .95; }
.commerce-page__hero p { max-width: 460px; margin: 0 auto; color: var(--ink-soft); font-family: var(--serif); font-size: 18px; line-height: 1.6; }
.page-template-heading { padding-top: clamp(55px, 7vw, 90px); }
.page-template-heading .site-breadcrumb__nav { margin-bottom: 54px; }

.cart-page,
.checkout-page,
.contact-page { padding-top: clamp(55px, 7vw, 90px); }
.checkout-page .site-breadcrumb__nav { margin-bottom: 36px; }
.checkout-page .commerce-page__hero { margin-bottom: 48px; }
.cart-page-content { display: grid; grid-template-columns: minmax(0, 1.45fr) minmax(300px, .7fr); gap: clamp(45px, 7vw, 100px); align-items: start; }
.cart-page-form__head { display: flex; align-items: center; justify-content: space-between; padding-bottom: 17px; border-bottom: 1px solid var(--border); color: var(--ink-soft); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cart-line-items { border-bottom: 1px solid var(--border); }
.cart-line-item { display: grid; grid-template-columns: 112px minmax(0, 1fr) 84px 100px 28px; gap: 20px; align-items: center; padding: 24px 0; border-bottom: 1px solid var(--border-light); }
.cart-line-item:last-child { border-bottom: 0; }
.cart-line-item__media { width: 112px; aspect-ratio: .82; overflow: hidden; background: var(--rose-mist); }
.cart-line-item__media a,
.cart-line-item__media img { display: block; width: 100%; height: 100%; }
.cart-line-item__media img { object-fit: cover; }
.cart-line-item__details { min-width: 0; }
.cart-line-item__name { display: block; margin-bottom: 9px; color: var(--ink); font-family: var(--serif); font-size: 22px; line-height: 1.15; }
.cart-line-item__name:hover { color: var(--wine); }
.cart-line-item__price { color: var(--wine); font-family: var(--serif); font-size: 17px; }
.cart-line-item__details .variation { display: flex; flex-wrap: wrap; gap: 4px 9px; margin: 10px 0 0; color: var(--ink-soft); font-size: 11px; }
.cart-line-item__details .variation dt,
.cart-line-item__details .variation dd { margin: 0; }
.cart-line-item__label { display: block; margin-bottom: 7px; color: var(--ink-soft); font-size: 9px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.cart-line-item__quantity .quantity { margin: 0; }
.cart-line-item__quantity .qty { width: 70px; min-height: 42px; padding: 8px; border: 1px solid var(--border); background: var(--paper); text-align: center; }
.cart-line-item__total strong { color: var(--ink); font-family: var(--serif); font-size: 17px; font-weight: 400; }
.cart-line-item__remove { align-self: start; }
.cart-line-item__remove .remove { display: grid; width: 25px; height: 25px; place-items: center; border: 1px solid var(--border); border-radius: 50%; color: var(--ink-soft); font-size: 18px; line-height: 1; }
.cart-line-item__remove .remove:hover { border-color: var(--wine); background: var(--wine); color: var(--white); }
.cart-page-form__actions { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 24px; }
.cart-page-form__actions .button { min-height: 44px; padding: 10px 17px; font-size: 10px; }
.cart-page-form__actions .button.is-needed { background: var(--wine); color: var(--white); box-shadow: 0 8px 18px rgba(125,40,56,.15); }
.cart-summary { padding: 29px; background: var(--cream); }
.cart-summary__head { padding-bottom: 22px; border-bottom: 1px solid var(--border); }
.cart-summary__head .eyebrow { margin-bottom: 8px; }
.cart-summary__head h2 { margin: 0; font-size: 34px; }
.cart-summary .cart_totals { padding: 22px 0 0; }
.cart-summary .cart-total-table,
.cart-summary .table-responsive { overflow: visible; }
.cart-summary table { width: 100%; margin: 0; border: 0; background: transparent; }
.cart-summary table th,
.cart-summary table td { padding: 12px 0; border: 0; background: transparent; color: var(--ink-soft); font-size: 12px; font-weight: 400; }
.cart-summary table td { color: var(--ink); text-align: right; }
.cart-summary table .order-total th,
.cart-summary table .order-total td { padding-top: 20px; border-top: 1px solid var(--border); color: var(--ink); font-family: var(--serif); font-size: 21px; }
.cart-summary__checkout { margin-top: 22px; }
.cart-summary__checkout .checkout-button { width: 100%; margin: 0; }
.cart-summary__checkout .checkout-button { gap: 14px; box-shadow: 0 10px 22px rgba(125,40,56,.16); }
.cart-empty-state { display: flex; min-height: 480px; flex-direction: column; align-items: center; justify-content: center; text-align: center; }
.cart-empty-state__icon { display: grid; width: 76px; height: 76px; margin-bottom: 24px; place-items: center; border: 1px solid rgba(125,40,56,.22); border-radius: 50%; color: var(--wine); }
.cart-empty-state__icon .icon { width: 30px; height: 30px; }
.cart-empty-state h2 { margin: 10px 0; font-size: 45px; }
.cart-empty-state p { margin: 0 0 28px; color: var(--ink-soft); font-family: var(--serif); font-size: 17px; }

.checkout-layout { display: grid; grid-template-columns: minmax(0, 1.18fr) minmax(340px, .82fr); gap: clamp(28px, 4vw, 56px); align-items: start; }
.checkout-panel { padding: clamp(24px, 3vw, 38px); border: 1px solid var(--border); background: var(--paper); }
.checkout-panel--details,
.checkout-panel--review { min-width: 0; align-self: start; }
.checkout-panel--review { background: var(--cream); }
.checkout-panel__head { margin-bottom: 30px; }
.checkout-panel__head .eyebrow { margin-bottom: 8px; }
.checkout-panel__head h2 { margin: 0 0 8px; font-size: 34px; }
.checkout-panel__head p { margin: 0; color: var(--ink-soft); font-family: var(--serif); font-size: 16px; }
.checkout-fields { display: block; }
.checkout-fields > .checkout-billing-fields,
.checkout-fields > .woocommerce-shipping-fields,
.checkout-fields > .additional-info-wrap { width: 100%; }
.checkout-fields > .checkout-billing-fields > wc-order-attribution-inputs { display: none; }
.checkout-fields > .checkout-billing-fields > h3,
.checkout-fields > .woocommerce-shipping-fields h3 { margin: 0 0 22px; }
.checkout-fields > .woocommerce-shipping-fields { margin-top: 28px; padding-top: 28px; border-top: 1px solid var(--border); }
.checkout-fields > .additional-info-wrap { margin-top: 24px; padding-top: 24px; border-top: 1px solid var(--border); }
.checkout-fields > .woocommerce-billing-fields,
.checkout-fields > .woocommerce-shipping-fields { grid-column: 1 / -1; }
.checkout-fields .woocommerce-billing-fields__field-wrapper,
.checkout-fields .woocommerce-shipping-fields__field-wrapper,
.checkout-fields .checkout-form-list { display: grid; grid-template-columns: 1fr 1fr; column-gap: 16px; }
.checkout-fields .woocommerce-billing-fields__field-wrapper,
.checkout-fields .woocommerce-shipping-fields__field-wrapper { width: 100%; }
.checkout-fields > .woocommerce-billing-fields > h3 { margin-bottom: 22px; }
.checkout-fields #billing_first_name_field,
.checkout-fields #billing_last_name_field,
.checkout-fields #billing_country_field,
.checkout-fields #billing_address_1_field,
.checkout-fields #billing_address_2_field,
.checkout-fields #billing_city_field,
.checkout-fields #billing_state_field,
.checkout-fields #billing_postcode_field,
.checkout-fields #billing_phone_field,
.checkout-fields #billing_email_field,
.checkout-fields #shipping_first_name_field,
.checkout-fields #shipping_last_name_field,
.checkout-fields #shipping_country_field,
.checkout-fields #shipping_address_1_field,
.checkout-fields #shipping_address_2_field,
.checkout-fields #shipping_city_field,
.checkout-fields #shipping_state_field,
.checkout-fields #shipping_postcode_field { grid-column: span 1; width: 100%; }
.checkout-fields .form-row-wide { grid-column: 1 / -1; width: 100%; }
.checkout-fields .woocommerce-billing-fields__field-wrapper .form-row-wide,
.checkout-fields .woocommerce-shipping-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
.checkout-fields .form-row { margin-bottom: 18px; }
.checkout-fields .form-row { float: none !important; width: 100% !important; margin-right: 0 !important; }
.checkout-fields #billing_country_field,
.checkout-fields #billing_address_1_field,
.checkout-fields #billing_address_2_field,
.checkout-fields #billing_email_field,
.checkout-fields #shipping_country_field,
.checkout-fields #shipping_address_1_field,
.checkout-fields #shipping_address_2_field,
.checkout-fields #shipping_email_field { grid-column: 1 / -1; }
.checkout-fields #ship-to-different-address { grid-column: 1 / -1; margin: 10px 0 15px; }
.checkout-fields .form-row label { display: block; margin-bottom: 7px; }
.checkout-panel--review #order_review { width: 100% !important; margin: 0; padding: 0 !important; float: none !important; background: transparent; }
.checkout-panel--review .your-order-table { width: 100%; }
.checkout-panel--review .your-order-table .table { width: 100% !important; margin: 0 0 20px; border: 0; border-collapse: collapse; background: transparent; }
.checkout-panel--review .your-order-table .table th,
.checkout-panel--review .your-order-table .table td { padding: 12px 0; border: 0; background: transparent; color: var(--ink); font-size: 13px; vertical-align: top; }
.checkout-panel--review .your-order-table .table .cart-product-name { width: 70%; text-align: left; }
.checkout-panel--review .your-order-table .table .cart-product-total { width: 30%; text-align: right; }
.checkout-panel--review .your-order-table .table .amount { float: none !important; }
.checkout-panel--review .your-order-table .table tfoot tr:first-child th,
.checkout-panel--review .your-order-table .table tfoot tr:first-child td { padding-top: 20px; border-top: 1px solid var(--border); }
.checkout-panel--review .your-order-info-wrap { border-top: 1px solid var(--border); }
.checkout-panel--review .your-order-info { padding: 14px 0; }
.checkout-panel--review .your-order-info ul { margin: 0; padding: 0; list-style: none; }
.checkout-panel--review .your-order-info li { display: flex; justify-content: space-between; gap: 20px; color: var(--ink-soft); font-size: 13px; }
.checkout-panel--review .your-order-info li strong { color: var(--ink); }
.checkout-panel--review .shop_table { margin: 0 0 20px; border: 0; background: transparent; }
.checkout-panel--review .shop_table th,
.checkout-panel--review .shop_table td { padding: 12px 0; border: 0; background: transparent; }
.checkout-panel--review .shop_table tfoot tr:first-child th,
.checkout-panel--review .shop_table tfoot tr:first-child td { padding-top: 20px; border-top: 1px solid var(--border); }
.checkout-panel--review #payment { margin-top: 25px; padding: 0; border-top: 1px solid var(--border); background: transparent; }
.checkout-panel--review .wc_payment_methods { margin: 0; padding: 0; list-style: none; }
.checkout-panel--review .wc_payment_method { padding: 16px 0; border-bottom: 1px solid var(--border); }
.checkout-panel--review .wc_payment_method > label { display: block; color: var(--ink); font-size: 13px; font-weight: 700; }
.checkout-panel--review .payment_box { margin: 12px 0 0 !important; padding: 15px !important; background: var(--rose-mist) !important; color: var(--ink-soft); font-size: 13px; line-height: 1.6; }
.checkout-panel--review .woocommerce-terms-and-conditions-wrapper { margin-top: 18px; color: var(--ink-soft); font-size: 12px; line-height: 1.6; }
.checkout-panel--review .woocommerce-terms-and-conditions-wrapper a { color: var(--wine); text-decoration: underline; }
.checkout-panel--review .place-order { margin: 0; padding: 0; }
.checkout-panel--review #place_order { width: 100%; margin-top: 18px; }

.contact-page__hero { margin-bottom: 70px; }
.contact-page__content { padding: 0 0 20px; }
.contact-page__grid { display: grid; grid-template-columns: minmax(250px, .75fr) minmax(0, 1.25fr); gap: clamp(40px, 7vw, 100px); align-items: start; }
.contact-page__details { padding-top: 12px; }
.contact-page__details-heading h2,
.contact-page__form-heading h2 { margin: 0 0 14px; font-size: 38px; }
.contact-page__details-heading > p:last-child { max-width: 350px; color: var(--ink-soft); font-family: var(--serif); font-size: 17px; line-height: 1.6; }
.contact-page__detail { display: flex; gap: 15px; margin-top: 29px; padding-top: 20px; border-top: 1px solid var(--border); }
.contact-page__detail-icon { display: grid; flex: 0 0 36px; width: 36px; height: 36px; place-items: center; border: 1px solid var(--border); border-radius: 50%; color: var(--wine); }
.contact-page__detail-icon svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 1.5; stroke-linecap: round; stroke-linejoin: round; }
.contact-page__detail strong { display: block; margin-bottom: 5px; font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.contact-page__detail address,
.contact-page__detail a { color: var(--ink-soft); font-family: var(--serif); font-size: 16px; font-style: normal; }
.contact-page__form-card { padding: clamp(25px, 4vw, 48px); background: var(--cream); }
.contact-page__form-heading { margin-bottom: 28px; }
.speda-contact-form__fields { display: grid; grid-template-columns: 1fr 1fr; gap: 18px 16px; }
.speda-contact-form__field--wide { grid-column: 1 / -1; }
.speda-contact-form__field label { display: block; margin-bottom: 8px; color: var(--ink); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.speda-contact-form__field label span { color: var(--wine); }
.speda-contact-form__field input,
.speda-contact-form__field textarea { width: 100%; padding: 12px 13px; border: 1px solid var(--border); border-radius: 0; background: var(--paper); color: var(--ink); }
.speda-contact-form__field textarea { resize: vertical; }
.speda-contact-form__submit { min-height: 50px; margin-top: 25px; padding: 12px 28px; border: 1px solid var(--wine); background: var(--wine); color: var(--white); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; cursor: pointer; }
.speda-contact-form__submit:hover { background: var(--wine-dark); }

.page-template-shell--refund-returns-policy .container,
.page-template-shell--privacy-policy .container,
.page-template-shell--shipping-policy .container,
.page-template-shell--terms-conditions .container { width: min(calc(100% - 32px), 920px); margin-inline: auto; padding: 0 0 25px !important; color: var(--ink-soft) !important; line-height: 1.8 !important; }
.page-template-shell--refund-returns-policy .policy-section,
.page-template-shell--privacy-policy .privacy-section,
.page-template-shell--shipping-policy .shipping-card,
.page-template-shell--terms-conditions .tc-card { margin: 0 0 18px !important; padding: 28px 0 !important; border: 0 !important; border-bottom: 1px solid var(--border) !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important; transform: none !important; }
.page-template-shell--refund-returns-policy .policy-section h2,
.page-template-shell--privacy-policy .privacy-section h2,
.page-template-shell--shipping-policy .shipping-card h2,
.page-template-shell--terms-conditions .tc-card h2 { margin: 0 0 15px !important; color: var(--ink) !important; font-family: var(--serif); font-size: 30px !important; font-weight: 400 !important; }
.page-template-shell--refund-returns-policy .policy-section p,
.page-template-shell--privacy-policy .privacy-section p,
.page-template-shell--shipping-policy .shipping-card p,
.page-template-shell--terms-conditions .tc-card p,
.page-template-shell--refund-returns-policy li,
.page-template-shell--privacy-policy li,
.page-template-shell--shipping-policy li,
.page-template-shell--terms-conditions li { color: var(--ink-soft) !important; font-family: var(--serif); font-size: 17px; }
.page-template-shell--refund-returns-policy .policy-section h2::before,
.page-template-shell--privacy-policy .privacy-section h2::before,
.page-template-shell--shipping-policy .shipping-card h2::before,
.page-template-shell--terms-conditions .tc-card h2::before { display: inline-block; width: 30px; margin-right: 12px; border-top: 1px solid var(--wine); vertical-align: middle; content: ''; }
.page-template-shell--refund-returns-policy .contact-bar,
.page-template-shell--privacy-policy .security-notice,
.page-template-shell--shipping-policy .contact-footer,
.page-template-shell--terms-conditions .tc-footer-box { padding: 22px !important; border: 1px solid var(--border) !important; border-radius: 0 !important; background: var(--cream) !important; color: var(--ink-soft) !important; }

/* WooCommerce */
.woocommerce .woocommerce-breadcrumb { margin: 0 0 40px; color: var(--ink-soft); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; }
.woocommerce .woocommerce-breadcrumb a { color: var(--wine); }
.shop-page { background: var(--paper); }
.shop-hero { padding: clamp(30px, 4vw, 52px) 0 clamp(42px, 6vw, 80px); border-bottom: 1px solid var(--border); }
.shop-hero__top { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: clamp(48px, 8vw, 96px); }
.shop-breadcrumb { margin: 0; }
.shop-breadcrumb .breadcrumb { display: flex; flex-wrap: wrap; gap: 0; margin: 0; padding: 0; list-style: none; color: var(--ink-soft); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.shop-breadcrumb .breadcrumb-item + .breadcrumb-item::before { margin: 0 12px; color: var(--blush); content: '/'; }
.shop-breadcrumb .breadcrumb-item a { color: var(--wine); }
.shop-hero__edition { color: var(--ink-soft); font-size: 10px; letter-spacing: .12em; text-transform: uppercase; }
.shop-hero__content { display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(280px, .62fr); align-items: end; gap: clamp(34px, 7vw, 100px); padding-bottom: clamp(40px, 6vw, 72px); border-bottom: 1px solid var(--border); }
.shop-hero__title-block .eyebrow { margin-bottom: 14px; }
.shop-hero h1 { max-width: 760px; margin: 0; font-size: clamp(56px, 8vw, 108px); line-height: .92; letter-spacing: -.055em; }
.shop-hero__aside { max-width: 430px; padding-left: clamp(22px, 3vw, 42px); border-left: 1px solid var(--border); }
.shop-hero__aside-kicker { display: block; margin-bottom: 14px; color: var(--wine); font-size: 10px; font-weight: 700; letter-spacing: .14em; text-transform: uppercase; }
.shop-hero__description { max-width: 440px; margin: 0; color: var(--ink-soft); font-family: var(--serif); font-size: 19px; line-height: 1.6; }
.shop-hero__meta { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 16px; padding-top: 18px; color: var(--ink-soft); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.shop-hero__meta i { display: block; height: 1px; background: var(--border); }
.shop-main { padding: 64px 0 120px; }
.shop-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-bottom: 34px; padding-bottom: 18px; border-bottom: 1px solid var(--border); }
.shop-result-count { color: var(--ink-soft); font-size: 11px; letter-spacing: .1em; text-transform: uppercase; }
.shop-result-count span { display: block; }
.shop-ordering .woocommerce-ordering { margin: 0; }
.shop-ordering select { min-width: 180px; padding: 11px 34px 11px 13px; border: 1px solid var(--border); border-radius: 0; background: var(--paper); color: var(--ink); font: inherit; font-size: 11px; letter-spacing: .06em; }
.shop-page ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 54px 20px; margin: 0; padding: 0; list-style: none; }
.shop-page ul.products::before,
.shop-page ul.products::after { display: none; }
.shop-page ul.products li.product { float: none; width: 100% !important; margin: 0; }
.shop-page .woocommerce-pagination { margin-top: 70px; }
.shop-page .woocommerce-pagination ul { display: flex; justify-content: center; gap: 8px; margin: 0; padding: 0; border: 0; list-style: none; }
.shop-page .woocommerce-pagination ul li { border: 0; }
.shop-page .woocommerce-pagination a,
.shop-page .woocommerce-pagination span { display: grid; min-width: 42px; height: 42px; place-items: center; border: 1px solid var(--border); color: var(--ink); font-size: 11px; }
.shop-page .woocommerce-pagination .current,
.shop-page .woocommerce-pagination a:hover { border-color: var(--wine); background: var(--wine); color: var(--white); }
.shop-pagination { margin-top: 70px; }
.shop-pagination .pagination { display: flex; justify-content: center; gap: 8px; margin: 0; padding: 0; list-style: none; }
.shop-pagination .pagination__item { display: block; }
.shop-pagination .pagination__link { display: grid; min-width: 42px; height: 42px; place-items: center; border: 1px solid var(--border); color: var(--ink); font-size: 11px; text-decoration: none; }
.shop-pagination .is-current .pagination__link,
.shop-pagination .pagination__link:hover { border-color: var(--wine); background: var(--wine); color: var(--white); }
.shop-pagination .pagination__item--dots .pagination__link { border-color: transparent; background: transparent; color: var(--ink-soft); }
.woocommerce-products-header { margin-bottom: 50px; text-align: center; }
.woocommerce-products-header__title { font-size: clamp(52px, 7vw, 86px); }
.woocommerce .woocommerce-result-count,
.woocommerce .woocommerce-ordering { margin-bottom: 42px; color: var(--ink-soft); font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
.woocommerce .woocommerce-ordering select { padding: 11px 36px 11px 14px; border: 1px solid var(--border); background: var(--paper); color: var(--ink); }

.woocommerce ul.products,
.woocommerce-page ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 54px 20px; margin: 0; }
.woocommerce ul.products::before,
.woocommerce ul.products::after { display: none; }
.woocommerce ul.products li.product,
.woocommerce-page ul.products li.product { float: none; width: auto; margin: 0; }
.woocommerce ul.products li.product a img { aspect-ratio: 4 / 5; margin: 0 0 20px; background: #eee6db; object-fit: cover; transition: transform .55s var(--ease); }
.woocommerce ul.products li.product > a:first-child { display: block; overflow: hidden; }
.woocommerce ul.products li.product:hover a img { transform: scale(1.025); }
.woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0; font-family: var(--serif); font-size: 23px; font-weight: 400; letter-spacing: -.01em; line-height: 1.2; }
.product-card__category { display: block; margin-bottom: 7px; color: var(--ink-soft); font-size: 9px; font-weight: 600; letter-spacing: .14em; text-transform: uppercase; }
.woocommerce ul.products li.product .price { margin-top: 10px; color: var(--wine); font-family: var(--serif); font-size: 16px; }
.woocommerce ul.products li.product .price del { color: #958b87; opacity: 1; }
.woocommerce ul.products li.product .price ins { font-weight: 400; }
.woocommerce span.onsale { top: 14px; right: auto; left: 14px; z-index: 2; min-width: 0; min-height: 0; margin: 0; padding: 8px 11px; border-radius: 0; background: var(--wine); font-size: 9px; line-height: 1; letter-spacing: .12em; text-transform: uppercase; }
.woocommerce ul.products li.product .button { width: 100%; min-height: 44px; margin-top: 17px; padding: 10px 14px; background: transparent; color: var(--wine); opacity: 0; transform: translateY(8px); }
.woocommerce ul.products li.product:hover .button,
.woocommerce ul.products li.product .button:focus-visible { opacity: 1; transform: translateY(0); }
.woocommerce ul.products li.product .button:hover { background: var(--wine); color: var(--white); }
.woocommerce a.added_to_cart { display: block; padding-top: 10px; color: var(--wine); font-size: 11px; font-weight: 700; letter-spacing: .09em; text-align: center; text-transform: uppercase; }

/* Product loops can also appear on the front page, where WooCommerce does not
   add its usual body class. Keep those loops visually identical to the shop. */
body.has-woocommerce ul.products { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 54px 20px; margin: 0; padding: 0; list-style: none; }
body.has-woocommerce ul.products::before,
body.has-woocommerce ul.products::after { display: none; }
body.has-woocommerce ul.products li.product { position: relative; float: none; width: auto; margin: 0; list-style: none; }
body.has-woocommerce ul.products li.product a img { aspect-ratio: 4 / 5; margin: 0 0 20px; background: #eee6db; object-fit: cover; transition: transform .55s var(--ease); }
body.has-woocommerce ul.products li.product > a:first-child { display: block; overflow: hidden; }
body.has-woocommerce ul.products li.product:hover a img { transform: scale(1.025); }
body.has-woocommerce ul.products li.product .woocommerce-loop-product__title { padding: 0; font-family: var(--serif); font-size: 23px; font-weight: 400; letter-spacing: -.01em; line-height: 1.2; }
body.has-woocommerce ul.products li.product .price { margin-top: 10px; color: var(--wine); font-family: var(--serif); font-size: 16px; }
body.has-woocommerce ul.products li.product .button { width: 100%; min-height: 44px; margin-top: 17px; padding: 10px 14px; background: transparent; color: var(--wine); opacity: 0; transform: translateY(8px); }
body.has-woocommerce ul.products li.product:hover .button,
body.has-woocommerce ul.products li.product .button:focus-visible { opacity: 1; transform: translateY(0); }
body.has-woocommerce ul.products li.product .button:hover { background: var(--wine); color: var(--white); }
body.has-woocommerce span.onsale { position: absolute; top: 14px; right: auto; left: 14px; z-index: 2; min-width: 0; min-height: 0; margin: 0; padding: 8px 11px; border-radius: 0; background: var(--wine); color: var(--white); font-size: 9px; font-weight: 700; line-height: 1; letter-spacing: .12em; text-transform: uppercase; }

.woocommerce div.product { display: flow-root; }
.woocommerce div.product div.images,
.woocommerce div.product div.summary { margin-bottom: 80px; }
.woocommerce div.product div.images { width: 54%; }
.woocommerce div.product div.summary { width: 40%; padding-top: 25px; }
.woocommerce div.product .product_title { font-size: clamp(48px, 5vw, 72px); }
.woocommerce div.product p.price,
.woocommerce div.product span.price { color: var(--wine); font-family: var(--serif); font-size: 25px; }
.woocommerce-product-details__short-description { margin: 28px 0; color: var(--ink-soft); font-family: var(--serif); font-size: 17px; }
.woocommerce div.product form.cart { display: flex; gap: 10px; margin-top: 34px; }
.woocommerce div.product form.cart .button,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-checkout #place_order { border-color: var(--wine); background: var(--wine); color: var(--white); }
.woocommerce div.product form.cart .button:hover,
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover,
.woocommerce-checkout #place_order:hover { border-color: var(--wine-dark); background: var(--wine-dark); color: var(--white); }
.woocommerce .product-summary .product-cart-form .single_add_to_cart_button { border: 1px solid var(--wine); border-radius: 0; background: var(--wine); color: var(--white); }
.woocommerce .product-summary .product-cart-form .single_add_to_cart_button:hover { border-color: var(--wine-dark); background: var(--wine-dark); color: var(--white); }
.woocommerce .quantity .qty { width: 78px; min-height: 52px; border: 1px solid var(--border); background: var(--paper); }
.woocommerce div.product .woocommerce-tabs { clear: both; padding-top: 40px; }
.woocommerce div.product .woocommerce-tabs ul.tabs { display: flex; justify-content: center; gap: 35px; margin: 0 0 40px; padding: 0; border-bottom: 1px solid var(--border); }
.woocommerce div.product .woocommerce-tabs ul.tabs::before,
.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 { margin: 0; padding: 0; border: 0; border-radius: 0; background: transparent; }
.woocommerce div.product .woocommerce-tabs ul.tabs li a { padding: 14px 0; font-size: 11px; letter-spacing: .12em; text-transform: uppercase; }
.woocommerce div.product .woocommerce-tabs ul.tabs li.active { border-bottom: 2px solid var(--wine); background: transparent; }
.woocommerce div.product .woocommerce-tabs .panel { max-width: 800px; margin-inline: auto; color: var(--ink-soft); font-family: var(--serif); font-size: 18px; }
.woocommerce section.related.products,
.woocommerce section.up-sells { clear: both; padding-top: 90px; }
.woocommerce section.related.products > h2,
.woocommerce section.up-sells > h2 { margin-bottom: 45px; font-size: 45px; text-align: center; }

.woocommerce-message,
.woocommerce-info,
.woocommerce-error { padding: 18px 22px 18px 52px; border-top: 2px solid var(--wine); background: var(--cream); color: var(--ink); }
.woocommerce-message::before,
.woocommerce-info::before { color: var(--wine); }
.woocommerce-error { border-color: #a13535; }
.woocommerce-error::before { color: #a13535; }
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.select2-container--default .select2-selection--single { min-height: 48px; padding: 10px 13px; border: 1px solid var(--border); border-radius: 0; background: var(--paper); }
.select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 27px; }
.woocommerce form .form-row label { font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.woocommerce table.shop_table { border-color: var(--border); border-radius: 0; }
.woocommerce table.shop_table th,
.woocommerce table.shop_table td { padding: 16px; border-color: var(--border-light); }
.woocommerce-cart table.cart img { width: 90px; }
.woocommerce .cart-collaterals .cart_totals,
.woocommerce-page .cart-collaterals .cart_totals { padding: 30px; background: var(--cream); }
.woocommerce .cart-collaterals .cart_totals h2 { font-size: 36px; }
.woocommerce-checkout #customer_details { float: left; width: 57%; }
.woocommerce-checkout #order_review_heading,
.woocommerce-checkout #order_review { float: right; width: 38%; }
.woocommerce-checkout #order_review { padding: 26px; background: var(--cream); }
.woocommerce-account .page-article { max-width: 1180px; }
.woocommerce-account .entry-content { max-width: none; margin: 0; color: var(--ink); font-family: var(--sans); font-size: 16px; }
.woocommerce-account .entry-content > p:empty { display: none; }
.account-shell { margin: 0 auto; padding: 12px 0 30px; }
.account-shell__layout { display: grid; grid-template-columns: minmax(220px, .34fr) minmax(0, 1fr); gap: clamp(38px, 7vw, 100px); padding-top: 36px; border-top: 1px solid var(--border); }
.account-shell__sidebar { align-self: start; }
.account-shell__sidebar-heading { margin-bottom: 28px; }
.account-shell__sidebar-heading .eyebrow { margin-bottom: 9px; }
.account-shell__sidebar-heading h2 { margin: 0; font-size: 34px; }
.woocommerce-account .woocommerce-MyAccount-navigation { width: auto; float: none; }
.woocommerce-MyAccount-navigation ul { margin: 0; padding: 0; border-top: 1px solid var(--border); list-style: none; }
.woocommerce-MyAccount-navigation li { margin: 0; border-bottom: 1px solid var(--border-light); }
.woocommerce-MyAccount-navigation li a { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 15px 2px; color: var(--ink-soft); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; transition: color .2s ease, padding .25s var(--ease); }
.woocommerce-MyAccount-navigation li a:hover,
.woocommerce-MyAccount-navigation li.is-active a { padding-left: 10px; color: var(--wine); }
.woocommerce-MyAccount-navigation li.is-active a { font-weight: 700; }
.account-nav__arrow { color: var(--wine); font-size: 16px; font-weight: 400; line-height: 1; }
.woocommerce-account .woocommerce-MyAccount-content { width: auto; float: none; min-width: 0; }
.account-content-heading { margin-bottom: 34px; }
.account-content-heading .eyebrow { margin-bottom: 10px; }
.account-content-heading h2 { margin-bottom: 13px; font-size: clamp(38px, 5vw, 62px); }
.account-content-heading p { max-width: 520px; margin: 0; color: var(--ink-soft); font-family: var(--serif); font-size: 18px; line-height: 1.55; }
.account-endpoint-heading { margin-bottom: 30px; }
.account-order-details__status { margin: 0 0 34px; padding: 16px 18px; border-left: 2px solid var(--wine); background: var(--cream); color: var(--ink-soft); font-family: var(--serif); font-size: 17px; }
.account-order-details__status mark { background: transparent; color: var(--wine); font-weight: 400; }
.account-order-summary { margin-top: 42px; }
.account-order-summary__head { display: flex; align-items: flex-end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.account-order-summary__head .eyebrow { margin-bottom: 9px; }
.account-order-summary__head h3 { margin: 0; font-size: 34px; }
.account-order-summary__number { color: var(--wine); font-size: 11px; font-weight: 700; letter-spacing: .12em; }
.account-order-summary__table-wrap { overflow: hidden; border: 1px solid var(--border); background: var(--paper); }
.account-order-summary table { width: 100%; margin: 0; border-collapse: collapse; }
.account-order-summary thead { background: var(--cream); }
.account-order-summary thead th { color: var(--ink-soft); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-align: left; text-transform: uppercase; }
.account-order-summary thead th:last-child { text-align: right; }
.account-order-summary th,
.account-order-summary td { padding: 18px 20px; border-bottom: 1px solid var(--border-light); }
.account-order-summary tbody tr:last-child td { border-bottom-color: var(--border); }
.account-order-summary tfoot th { color: var(--ink-soft); font-size: 11px; font-weight: 700; letter-spacing: .08em; text-align: left; text-transform: uppercase; }
.account-order-summary tfoot td { color: var(--ink); font-family: var(--serif); font-size: 18px; text-align: right; }
.account-order-summary__total--order_total th,
.account-order-summary__total--order_total td { border-top: 1px solid var(--border); color: var(--ink); font-size: 14px; }
.account-order-summary__total--order_total td { color: var(--wine); font-size: 24px; }
.account-order-summary__note th,
.account-order-summary__note td { background: var(--cream); }
.account-order-item__name { font-family: var(--serif); font-size: 20px; line-height: 1.2; }
.account-order-item__name a { color: var(--ink); }
.account-order-item__name a:hover { color: var(--wine); }
.account-order-item__quantity { margin-top: 7px; color: var(--ink-soft); font-size: 12px; }
.account-order-item__quantity del { color: var(--ink-soft); }
.account-order-item__quantity ins { color: var(--wine); text-decoration: none; }
.account-order-item__meta { margin-top: 7px; color: var(--ink-soft); font-size: 11px; }
.account-order-item__meta p { margin: 3px 0 0; }
.account-order-item__meta span { color: var(--ink); font-weight: 700; }
.account-order-item__note { margin-top: 12px; color: var(--ink-soft); font-family: var(--serif); font-size: 14px; font-style: italic; }
.account-order-item__total { color: var(--ink); font-family: var(--serif); font-size: 18px; text-align: right; white-space: nowrap; }
.account-order-item__total small { display: block; margin-top: 5px; color: #a13535; font-family: var(--sans); font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.account-customer-details { margin-top: 54px; }
.account-customer-details__heading { margin-bottom: 22px; }
.account-customer-details__heading .eyebrow { margin-bottom: 9px; }
.account-customer-details__heading h3 { margin: 0; font-size: 34px; }
.account-customer-details__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
.account-address-card { padding: 22px; border: 1px solid var(--border); background: var(--cream); }
.account-address-card__head { display: flex; align-items: center; justify-content: space-between; gap: 15px; padding-bottom: 15px; border-bottom: 1px solid var(--border); color: var(--ink); font-size: 11px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.account-address-card__head i { color: var(--wine); font-size: 10px; font-style: normal; }
.account-address-card address { padding-top: 17px; color: var(--ink-soft); font-family: var(--serif); font-size: 16px; font-style: normal; line-height: 1.65; }
.account-address-card address span { display: block; margin-top: 6px; color: var(--ink); font-family: var(--sans); font-size: 12px; }
.woocommerce-account .account-payment-methods-table { width: 100%; margin: 0 0 20px; border-collapse: collapse; }
.woocommerce-account .account-payment-methods-table th { color: var(--ink-soft); font-size: 10px; letter-spacing: .1em; text-align: left; text-transform: uppercase; }
.woocommerce-account .account-payment-methods-table td,
.woocommerce-account .account-payment-methods-table th { padding: 16px 12px; border-bottom: 1px solid var(--border-light); }
.woocommerce-account .account-payment-methods-table td:first-child,
.woocommerce-account .account-payment-methods-table th:first-child { padding-left: 0; }
.woocommerce-account .account-payment-methods-table td:last-child,
.woocommerce-account .account-payment-methods-table th:last-child { padding-right: 0; text-align: right; }
.woocommerce-account .account-payment-methods-table .button { min-height: 36px; padding: 8px 11px; font-size: 9px; }
.woocommerce-account .woocommerce-MyAccount-content > .button { margin-top: 8px; }
.woocommerce-account .woocommerce-MyAccount-downloads,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-table--order-downloads { width: 100%; border-collapse: collapse; }
.woocommerce-account .woocommerce-MyAccount-downloads th,
.woocommerce-account .woocommerce-MyAccount-downloads td,
.woocommerce-account .woocommerce-table--order-downloads th,
.woocommerce-account .woocommerce-table--order-downloads td { padding: 16px 12px; border-bottom: 1px solid var(--border-light); text-align: left; }
.woocommerce-account .woocommerce-MyAccount-downloads a,
.woocommerce-account .woocommerce-table--order-downloads a { color: var(--wine); }
.woocommerce-account .woocommerce-order-details,
.woocommerce-account .woocommerce-customer-details { margin-top: 42px; }
.woocommerce-account .woocommerce-order-details__title,
.woocommerce-account .woocommerce-column__title,
.woocommerce-account .woocommerce-order-downloads__title { margin-bottom: 18px; font-size: 30px; }
.woocommerce-account .woocommerce-order-details table { width: 100%; border-collapse: collapse; }
.woocommerce-account .woocommerce-order-details table th,
.woocommerce-account .woocommerce-order-details table td { padding: 14px 0; border-bottom: 1px solid var(--border-light); text-align: left; }
.woocommerce-account .woocommerce-order-details table td:last-child,
.woocommerce-account .woocommerce-order-details table th:last-child { text-align: right; }
.woocommerce-account .woocommerce-OrderUpdates { margin: 0; padding: 0; list-style: none; }
.woocommerce-account .woocommerce-OrderUpdate { margin-bottom: 12px; padding: 18px; border: 1px solid var(--border-light); background: var(--cream); }
.woocommerce-account .woocommerce-OrderUpdate-meta { margin-bottom: 8px; color: var(--ink-soft); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.account-quick-links { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-bottom: 30px; }
.account-quick-link { display: flex; min-height: 166px; flex-direction: column; justify-content: space-between; padding: 18px; border: 1px solid var(--border); background: var(--cream); transition: border-color .25s ease, background .25s ease, transform .25s var(--ease); }
.account-quick-link:hover { border-color: var(--wine); background: var(--rose-mist); transform: translateY(-3px); }
.account-quick-link__number { color: var(--wine); font-size: 10px; font-weight: 700; letter-spacing: .12em; }
.account-quick-link__copy { display: flex; flex-direction: column; gap: 5px; }
.account-quick-link__copy strong { font-family: var(--serif); font-size: 23px; font-weight: 400; }
.account-quick-link__copy small { color: var(--ink-soft); font-size: 11px; line-height: 1.45; }
.account-quick-link .account-nav__arrow { align-self: flex-end; }
.account-dashboard__logout { margin: 0; padding-top: 20px; border-top: 1px solid var(--border); color: var(--ink-soft); font-size: 12px; }
.account-dashboard__logout a { color: var(--wine); text-decoration: underline; text-underline-offset: 3px; }
.account-form-panel { max-width: 720px; }
.account-form,
.woocommerce-account .account-form { max-width: none; margin: 0; padding: 0; border: 0; }
.woocommerce-account .account-auth .account-form { margin: 0 !important; padding: 0 !important; }
.account-form .form-row { float: none; width: 100%; margin-right: 0; }
.account-form__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; }
.account-form__field { margin: 0 0 22px; }
.account-form__field label { display: block; margin-bottom: 8px; color: var(--ink-soft); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.account-form__field .required { color: var(--wine); }
.woocommerce-account .account-form__field input.input-text,
.woocommerce-account .account-form__field textarea,
.woocommerce-account .account-form__field select,
.woocommerce-account .account-form input.input-text,
.woocommerce-account .account-form textarea,
.woocommerce-account .account-form select { width: 100%; min-height: 50px; padding: 12px 14px; border: 1px solid var(--border); border-radius: 0; outline: 0; background: var(--paper); color: var(--ink); }
.woocommerce-account .account-form__field input:focus,
.woocommerce-account .account-form__field textarea:focus,
.woocommerce-account .account-form__field select:focus { border-color: var(--wine); box-shadow: 0 0 0 3px rgba(125,40,56,.09); }
.account-form__field small { display: block; margin-top: 7px; color: var(--ink-soft); font-size: 11px; line-height: 1.5; }
.account-form__fieldset { margin: 14px 0 25px; padding: 25px 0 0; border: 0; border-top: 1px solid var(--border); }
.account-form__fieldset legend { padding: 0 14px 0 0; font-family: var(--serif); font-size: 28px; }
.account-form__hint { margin: -5px 0 22px; color: var(--ink-soft); font-size: 13px; }
.account-form__actions { display: flex; align-items: center; gap: 14px; margin: 5px 0 0; }
.account-form__actions .button { min-width: 170px; }
.account-auth { display: grid; grid-template-columns: minmax(220px, .72fr) minmax(0, 1fr); gap: clamp(40px, 8vw, 120px); margin: 0 auto; padding: 24px 0 50px; border-top: 1px solid var(--border); }
.account-auth__intro { padding-top: 25px; }
.account-auth__intro .eyebrow { margin-bottom: 14px; }
.account-auth__intro h2 { max-width: 360px; margin-bottom: 20px; font-size: clamp(42px, 5vw, 68px); }
.account-auth__intro p { max-width: 360px; color: var(--ink-soft); font-family: var(--serif); font-size: 18px; line-height: 1.6; }
.account-auth__note { display: flex; align-items: center; gap: 10px; margin-top: 55px; color: var(--wine); font-size: 10px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.account-auth__note-mark { display: grid; width: 27px; height: 27px; place-items: center; border: 1px solid var(--blush); border-radius: 50%; font-size: 13px; }
.account-auth__card { padding: clamp(25px, 4vw, 48px); border: 1px solid var(--border); background: var(--cream); }
.account-auth__heading { margin-bottom: 30px; }
.account-auth__heading h2 { font-size: clamp(34px, 4vw, 48px); }
.account-auth .woocommerce-notices-wrapper { margin-bottom: 22px; }
.account-auth .woocommerce-message,
.account-auth .woocommerce-info,
.account-auth .woocommerce-error { margin: 0 0 20px; }
.account-form__options { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin: -2px 0 24px; color: var(--ink-soft); font-size: 12px; }
.account-form__options label { display: inline-flex; align-items: center; gap: 8px; margin: 0; }
.account-form__options input { accent-color: var(--wine); }
.account-form__options a,
.account-auth__switch a { color: var(--wine); text-decoration: underline; text-underline-offset: 3px; }
.account-form__actions .button,
.account-auth .woocommerce-form-login__submit { width: 100%; }
.account-auth__switch { display: flex; align-items: center; justify-content: space-between; gap: 15px; margin-top: 25px; padding-top: 20px; border-top: 1px solid var(--border); color: var(--ink-soft); font-size: 12px; }
.woocommerce-account .lost_reset_password { max-width: 650px; padding: clamp(24px, 4vw, 44px); border: 1px solid var(--border); background: var(--cream); }
.woocommerce-account .lost_reset_password > p:first-child { margin-bottom: 28px; color: var(--ink-soft); font-family: var(--serif); font-size: 18px; }
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 16px; }
.woocommerce-account .woocommerce-Address { width: auto; margin: 0; padding: 24px; border: 1px solid var(--border); background: var(--cream); }
.woocommerce-account .woocommerce-Address::before,
.woocommerce-account .woocommerce-Address::after { display: none; }
.woocommerce-account .woocommerce-Address-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 12px; padding-bottom: 16px; border-bottom: 1px solid var(--border); }
.woocommerce-account .woocommerce-Address-title h2 { margin: 0; font-size: 26px; }
.woocommerce-account .woocommerce-Address-title .edit { color: var(--wine); font-size: 10px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; }
.woocommerce-account .woocommerce-Address address { padding-top: 18px; color: var(--ink-soft); font-family: var(--serif); font-size: 16px; font-style: normal; line-height: 1.65; }
.woocommerce-account .woocommerce-orders-table { width: 100%; margin: 0; border-collapse: collapse; }
.woocommerce-account .woocommerce-orders-table th { color: var(--ink-soft); font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }
.woocommerce-account .woocommerce-orders-table td,
.woocommerce-account .woocommerce-orders-table th { padding: 16px 12px; border-bottom: 1px solid var(--border-light); text-align: left; }
.woocommerce-account .woocommerce-orders-table td:first-child,
.woocommerce-account .woocommerce-orders-table th:first-child { padding-left: 0; }
.woocommerce-account .woocommerce-orders-table td:last-child,
.woocommerce-account .woocommerce-orders-table th:last-child { padding-right: 0; text-align: right; }
.woocommerce-account .woocommerce-orders-table a { color: var(--wine); }
.woocommerce-account .woocommerce-orders-table .woocommerce-button { min-height: 36px; padding: 8px 11px; font-size: 9px; }

.mini-cart { display: flex; min-height: 100%; flex-direction: column; }
.mini-cart__intro { padding: 25px 0 18px; border-bottom: 1px solid var(--border); }
.mini-cart__count { margin: 0 0 5px; color: var(--wine); font-size: 11px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.mini-cart__shipping-note { margin: 0; color: var(--ink-soft); font-family: var(--serif); font-size: 15px; }
.woocommerce-mini-cart { margin: 0; padding: 0; list-style: none; }
.mini-cart-item::before,
.mini-cart-item::after { display: none !important; content: none !important; }
.mini-cart-item { position: relative; display: grid; grid-template-columns: 72px minmax(0, 1fr) 24px; gap: 14px; margin: 0; padding: 18px 0 !important; border-bottom: 1px solid var(--border-light); }
.mini-cart-item__media { width: 72px; aspect-ratio: .82; overflow: hidden; background: var(--rose-mist); }
.mini-cart-item__media a,
.mini-cart-item__media img { display: block; width: 100% !important; height: 100% !important; }
.mini-cart-item__media img { object-fit: cover; }
.mini-cart-item__content { min-width: 0; padding-top: 2px; }
.mini-cart-item__name { display: block; margin: 0 22px 8px 0; color: var(--ink); font-family: var(--serif); font-size: 18px; line-height: 1.15; }
.mini-cart-item__name:hover { color: var(--wine); }
.mini-cart-item__content .variation { display: flex; flex-wrap: wrap; gap: 3px 8px; margin: 0 0 9px; color: var(--ink-soft); font-size: 11px; }
.mini-cart-item__content .variation dt,
.mini-cart-item__content .variation dd { margin: 0; }
.mini-cart-item__details { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: var(--ink-soft); font-size: 12px; }
.mini-cart-item__details .woocommerce-Price-amount { color: var(--ink); font-weight: 700; }
.mini-cart-item__remove { display: inline-grid !important; position: static !important; width: 24px; height: 24px; place-items: center; align-self: start; border: 1px solid var(--border); border-radius: 50%; color: var(--ink-soft) !important; font-size: 18px; line-height: 1; text-decoration: none; transition: color .2s ease, border-color .2s ease, background .2s ease; }
.mini-cart-item__remove:hover,
.mini-cart-item__remove:focus-visible { border-color: var(--wine); background: var(--wine); color: var(--white) !important; }
.mini-cart__footer { margin-top: auto; padding: 23px 0 0; }
.mini-cart__subtotal { display: flex; align-items: baseline; justify-content: space-between; gap: 15px; padding-top: 19px; border-top: 1px solid var(--border); color: var(--ink-soft); font-size: 12px; letter-spacing: .08em; text-transform: uppercase; }
.mini-cart__subtotal strong { color: var(--ink); font-family: var(--serif); font-size: 22px; font-weight: 400; letter-spacing: 0; text-transform: none; }
.mini-cart__tax-note { margin: 8px 0 18px; color: var(--ink-soft); font-size: 11px; }
.mini-cart__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.mini-cart__actions .mini-cart__button:not(.mini-cart__button--secondary) { box-shadow: 0 8px 18px rgba(125,40,56,.16); }
.mini-cart__button { width: 100%; min-height: 48px; padding: 10px 8px; font-size: 10px; letter-spacing: .1em; }
.mini-cart__button--secondary { background: transparent; color: var(--wine); }
.mini-cart__button--secondary:hover,
.mini-cart__button--secondary:focus-visible { background: var(--wine); color: var(--white); }
.mini-cart__empty { display: flex; min-height: 100%; flex-direction: column; align-items: center; justify-content: center; padding: 70px 20px 35px; text-align: center; }
.mini-cart__empty-icon { display: grid; width: 68px; height: 68px; margin-bottom: 24px; place-items: center; border: 1px solid rgba(125, 40, 56, .22); border-radius: 50%; color: var(--wine); }
.mini-cart__empty-icon .icon { width: 27px; height: 27px; }
.mini-cart__empty .eyebrow { margin-bottom: 9px; }
.mini-cart__empty h3 { margin: 0 0 10px; font-size: 30px; }
.mini-cart__empty p { max-width: 250px; margin: 0 0 28px; color: var(--ink-soft); font-family: var(--serif); font-size: 16px; line-height: 1.55; }
.mini-cart__empty .mini-cart__button { max-width: 230px; }

/* WooCommerce Cart and Checkout blocks */
.wc-block-components-button:not(.is-link),
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	min-height: 52px;
	border: 1px solid var(--wine) !important;
	border-radius: 0 !important;
	background: var(--wine) !important;
	color: var(--white) !important;
	font-family: var(--sans);
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .1em;
	text-decoration: none !important;
	text-transform: uppercase;
}
.wc-block-components-button:not(.is-link):hover,
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover { border-color: var(--wine-dark) !important; background: var(--wine-dark) !important; color: var(--white) !important; }
.wc-block-components-button__text { color: inherit; }
.wc-block-components-text-input input,
.wc-block-components-combobox .wc-block-components-combobox-control input.components-combobox-control__input { border-radius: 0 !important; }
.wc-block-components-product-name { color: var(--ink); font-family: var(--serif); font-size: 18px !important; line-height: 1.15; }
.wc-block-components-product-metadata { color: var(--ink-soft); font-size: 12px; line-height: 1.35; overflow-wrap: anywhere; }
.wc-block-components-totals-wrapper { border-color: var(--border-light); }

/* Footer */
.site-footer { flex-shrink: 0; padding: 90px 0 28px; background: var(--ink); color: var(--cream); }
.footer-grid { display: grid; grid-template-columns: 1.35fr .65fr .85fr 1.25fr; gap: clamp(35px, 6vw, 85px); padding-bottom: 70px; }
.wordmark--footer { align-items: flex-start; color: var(--cream); }
.footer-brand p { max-width: 330px; margin-top: 27px; color: #c8bbb4; font-family: var(--serif); font-size: 16px; }
.footer-column h2 { margin-bottom: 24px; color: var(--blush); font-family: var(--sans); font-size: 10px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.footer-menu { margin: 0; padding: 0; list-style: none; }
.footer-menu li { margin-bottom: 11px; }
.footer-menu a { color: #dfd3ca; font-family: var(--serif); font-size: 16px; transition: color .2s ease; }
.footer-menu a:hover { color: var(--white); }
.footer-newsletter .eyebrow { color: var(--blush); }
.footer-newsletter h2 { margin-bottom: 18px; font-size: 35px; }
.footer-newsletter p { color: #c8bbb4; font-size: 13px; }
.footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding-top: 25px; border-top: 1px solid rgba(255,255,255,.13); color: #a99d96; font-size: 10px; letter-spacing: .08em; text-transform: uppercase; }
.footer-bottom p { margin: 0; }
.footer-legal { display: flex; gap: 24px; }

@media (max-width: 1100px) {
	.header-main { grid-template-columns: auto 1fr auto; }
	.menu-toggle { display: inline-grid; }
	.desktop-navigation { display: none; }
	.site-branding { justify-self: center; }
	.hero-section { grid-template-columns: 52% 48%; }
	.hero-art__parcel { left: 17%; width: 155px; height: 300px; }
	.hero-art__bag { right: 8%; width: 205px; height: 175px; }
	.category-grid { grid-template-columns: repeat(2, 1fr); row-gap: 44px; }
	.category-card__visual { min-height: 480px; }
	.store-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 16px; }
	.shop-page ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 16px; }
	.shop-page ul.products li.product { width: 100% !important; }
	.product-layout { grid-template-columns: minmax(0, 1fr) minmax(320px, .8fr); gap: 45px; }
	.footer-grid { grid-template-columns: 1.2fr .8fr .8fr; }
	.footer-newsletter { grid-column: 1 / -1; max-width: 600px; padding-top: 25px; }
}

@media (max-width: 960px) {
	.checkout-layout { grid-template-columns: 1fr; gap: 30px; }
	.checkout-panel--review { position: static; }
}

@media (max-width: 782px) {
	.site-container { width: min(calc(100% - 32px), var(--container)); }
	.cart-page-content,
	.checkout-layout,
	.contact-page__grid { grid-template-columns: 1fr; gap: 38px; }
	.checkout-panel--review { position: static; }
	.cart-line-item { grid-template-columns: 90px minmax(0, 1fr) 28px; gap: 15px; }
	.cart-line-item__media { width: 90px; }
	.cart-line-item__quantity,
	.cart-line-item__total { grid-column: 2; }
	.cart-line-item__total { margin-top: -5px; }
	.cart-line-item__remove { grid-column: 3; grid-row: 1; }
	.cart-summary { padding: 25px; }
	.checkout-fields,
	.speda-contact-form__fields { grid-template-columns: 1fr; }
	.checkout-fields .woocommerce-billing-fields__field-wrapper,
	.checkout-fields .woocommerce-shipping-fields__field-wrapper,
	.checkout-fields .checkout-form-list { grid-template-columns: 1fr; column-gap: 0; }
	.checkout-fields .form-row-wide,
	.speda-contact-form__field--wide { grid-column: auto; }
	.commerce-page__hero { margin-bottom: 48px; }
	.announcement-bar__inner { justify-content: center; min-height: 32px; }
	.announcement-bar__inner a { display: none; }
	.header-main { min-height: 72px; }
	.wordmark > span { font-size: 24px; }
	.wordmark small { font-size: 7px; }
	.account-link { display: none; }
	.hero-section { grid-template-columns: 1fr; min-height: 0; }
	.hero-copy { order: 2; padding: 68px 24px 72px; }
	.hero-copy h1 { font-size: clamp(52px, 15vw, 76px); }
	.hero-visual { min-height: 520px; }
	.hero-art__parcel { bottom: 10%; left: 23%; }
	.hero-art__bag { right: 12%; }
	.marquee-strip__inner { justify-content: center; min-width: 680px; transform: translateX(-80px); }
	.home-section { padding: 84px 0; }
	.section-heading--split { align-items: flex-start; }
	.shop-hero__top { align-items: flex-start; flex-direction: column; gap: 14px; margin-bottom: 44px; }
	.shop-hero__content { display: block; padding-bottom: 38px; }
	.shop-hero__aside { max-width: none; margin-top: 30px; padding: 22px 0 0; border-top: 1px solid var(--border); border-left: 0; }
	.shop-hero__meta { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 10px; }
	.shop-hero__meta i { order: 3; flex-basis: 100%; }
	.product-layout { grid-template-columns: 1fr; gap: 55px; }
	.product-summary { padding-top: 0; }
	.product-summary .product_title { font-size: clamp(44px, 9vw, 68px); }
	.product-content-panels { padding-bottom: 80px; }
	.product-tabs { display: none; }
	.product-accordion-toggle { display: flex; width: 100%; align-items: center; justify-content: space-between; padding: 20px 0; border: 0; border-bottom: 1px solid var(--border); background: transparent; color: var(--ink); font-size: 11px; letter-spacing: .12em; text-align: left; text-transform: uppercase; }
	.product-accordion-toggle span { color: var(--wine); font-size: 20px; font-weight: 300; }
	.product-tab-content { padding-top: 0; }
	.product-tab-panel { max-width: none; padding: 20px 0 28px; }
	.category-card__visual { min-height: 360px; }
	.story-section { grid-template-columns: 1fr; min-height: 0; }
	.story-section__visual { min-height: 590px; }
	.story-section__copy { padding: 78px 24px; }
	.service-grid { grid-template-columns: 1fr; }
	.service-grid article,
	.service-grid article:first-child,
	.service-grid article:last-child { padding: 34px 0; border-right: 0; border-bottom: 1px solid var(--border); }
	.service-grid article:last-child { border-bottom: 0; }
	.service-grid article > span { margin-bottom: 15px; }
	.post-grid { grid-template-columns: repeat(2, 1fr); }
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	body.has-woocommerce ul.products { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 16px; }
	.woocommerce ul.products li.product .button { opacity: 1; transform: none; }
	body.has-woocommerce ul.products li.product .button { opacity: 1; transform: none; }
	.store-product-card__title { font-size: 19px; }
	.woocommerce div.product div.images,
	.woocommerce div.product div.summary { float: none; width: 100%; }
	.woocommerce-checkout #customer_details,
	.woocommerce-checkout #order_review_heading,
	.woocommerce-checkout #order_review { float: none; width: 100%; }
	.woocommerce-checkout #order_review_heading { margin-top: 50px; }
	.footer-grid { grid-template-columns: 1.3fr .7fr; }
	.footer-newsletter { grid-column: 1 / -1; }
}

@media (max-width: 520px) {
	.site-container { width: calc(100% - 28px); }
	.site-breadcrumb { padding-top: 35px; }
	.site-breadcrumb h1 { margin-bottom: 20px; font-size: 46px; }
	.page-template-heading { padding-top: 0; }
	.site-breadcrumb__nav { margin-bottom: 32px; }
	.commerce-page__hero h1 { font-size: 54px; }
	.cart-page,
	.checkout-page,
	.contact-page { padding-top: 35px; }
	.checkout-page .commerce-page__hero { margin-bottom: 38px; }
	.cart-page-form__actions { align-items: flex-start; flex-direction: column; }
	.cart-page-form__actions .button { width: 100%; }
	.cart-line-item { grid-template-columns: 76px minmax(0, 1fr) 25px; gap: 12px; }
	.cart-line-item__media { width: 76px; }
	.cart-line-item__name { font-size: 19px; }
	.cart-summary { padding: 20px; }
	.cart-empty-state h2 { font-size: 38px; }
	.checkout-panel { padding: 22px 18px; }
	.checkout-panel__head h2 { font-size: 30px; }
	.contact-page__details-heading h2,
	.contact-page__form-heading h2 { font-size: 32px; }
	.cart-drawer { width: 100%; padding-inline: 20px; }
	.cart-drawer__head { min-height: 74px; }
	.cart-drawer__head h2 { font-size: 28px; }
	.header-main { grid-template-columns: 42px 1fr auto; }
	.header-actions { gap: 0; }
	.icon-button { width: 38px; height: 38px; }
	.wordmark > span { font-size: 21px; }
	.wordmark small { display: none; }
	.hero-visual { min-height: 420px; }
	.hero-art__parcel { bottom: 8%; left: 17%; width: 125px; height: 245px; }
	.hero-art__parcel::after { top: 36px; right: 18px; width: 52px; height: 38px; }
	.hero-art__bag { right: 7%; bottom: 8%; width: 165px; height: 135px; }
	.hero-art__bag::before { top: -55px; height: 65px; border-width: 9px; border-bottom: 0; }
	.hero-copy { padding-inline: 18px; }
	.hero-copy h1 { font-size: 52px; }
	.hero-copy p { font-size: 15px; }
	.button-row { align-items: flex-start; flex-direction: column; gap: 22px; }
	.hero-note { align-items: flex-start; margin-top: 36px; }
	.section-heading h2 { font-size: 43px; }
	.section-heading--split { flex-direction: column; }
	.category-grid { grid-template-columns: 1fr; }
	.category-card__visual { min-height: 430px; }
	.shop-hero { padding-top: 30px; }
	.shop-breadcrumb { margin-bottom: 0; }
	.shop-hero h1 { font-size: 54px; }
	.shop-toolbar { align-items: flex-start; flex-direction: column; }
	.shop-page ul.products { gap: 38px 10px; }
	.shop-page ul.products li.product { width: 100% !important; }
	.product-page { padding-top: 22px; }
	.product-breadcrumb { margin-bottom: 30px; }
	.product-gallery .flex-control-thumbs { gap: 8px; }
	.product-summary .product_title { font-size: 52px; }
	.product-cart-form__row { align-items: stretch; flex-direction: column; }
	.product-cart-form .single_add_to_cart_button { width: 100%; }
	.single-products-section { padding: 75px 0; }
	.story-section__visual { min-height: 460px; }
	.story-still-life__box { right: 11%; width: 180px; height: 290px; }
	.story-still-life__object { left: 7%; width: 190px; height: 125px; }
	.story-section__copy h2 { font-size: 46px; }
	.post-grid { grid-template-columns: 1fr; }
	.archive-hero h1,
	.page-hero h1,
	.single-hero h1 { font-size: 50px; }
	.commerce-layout { padding-top: 55px; }
	.woocommerce ul.products,
	.woocommerce-page ul.products,
	body.has-woocommerce ul.products { gap: 38px 10px; }
	.store-product-grid { gap: 38px 10px; }
	.woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 19px; }
	body.has-woocommerce ul.products li.product .woocommerce-loop-product__title { font-size: 19px; }
	.woocommerce ul.products li.product .button { min-height: 40px; padding-inline: 5px; font-size: 9px; }
	body.has-woocommerce ul.products li.product .button { min-height: 40px; padding-inline: 5px; font-size: 9px; }
	.woocommerce div.product form.cart { align-items: stretch; }
.woocommerce div.product form.cart .button { flex: 1; padding-inline: 10px; }

	.woocommerce div.product .woocommerce-tabs ul.tabs { justify-content: flex-start; gap: 20px; overflow-x: auto; }
	.woocommerce-account .page-article { max-width: none; }
	.woocommerce-account .page-layout { padding-bottom: 80px; }
	.account-shell { padding-top: 0; }
	.account-shell__layout { grid-template-columns: 1fr; gap: 42px; padding-top: 28px; }
	.account-shell__sidebar-heading { margin-bottom: 22px; }
	.woocommerce-account .woocommerce-MyAccount-navigation,
	.woocommerce-account .woocommerce-MyAccount-content { float: none; width: 100%; }
	.woocommerce-account .woocommerce-MyAccount-navigation { margin-bottom: 0; }
	.account-quick-links { grid-template-columns: 1fr; }
	.account-quick-link { min-height: 128px; }
	.account-auth { grid-template-columns: 1fr; gap: 26px; padding-top: 0; }
	.account-auth__intro { padding-top: 0; }
	.account-auth__intro h2 { max-width: 470px; }
	.account-auth__note { margin-top: 30px; }
	.account-auth__card { padding: 25px 20px; }
	.account-form__grid { grid-template-columns: 1fr; gap: 0; }
	.account-form__actions { align-items: stretch; flex-direction: column; }
	.account-form__actions .button { width: 100%; }
	.account-form__options,
	.account-auth__switch { align-items: flex-start; flex-direction: column; }
	.woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce-orders-table { display: block; overflow-x: auto; white-space: nowrap; }
	.woocommerce-account .account-payment-methods-table,
	.woocommerce-account .woocommerce-MyAccount-downloads,
	.woocommerce-account .woocommerce-table--order-downloads { display: block; overflow-x: auto; white-space: nowrap; }
	.woocommerce-account .account-order-details__status { font-size: 16px; }
	.account-order-summary__head { align-items: flex-start; flex-direction: column; gap: 8px; }
	.account-order-summary__table-wrap { overflow-x: auto; }
	.account-order-summary table { min-width: 540px; }
	.account-order-summary th,
	.account-order-summary td { padding: 15px 14px; }
	.account-customer-details__grid { grid-template-columns: 1fr; }
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 45px 25px; }
	.footer-brand,
	.footer-newsletter { grid-column: 1 / -1; }
	.footer-bottom { align-items: flex-start; flex-direction: column; }
}

@media (max-width: 360px) {
	.mobile-panel__body { padding-inline: 18px; }
	.mobile-panel__head { padding-inline: 18px; }
	.mobile-panel__footer { grid-template-columns: 1fr; padding-inline: 18px; }
}

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