:root {
	--cream: #f6f1e7;
	--paper: #fffdf9;
	--ink: #17223b;
	--navy: #1f2e4d;
	--orange: #e8712b;
	--orange-dark: #d5641f;
	--line: #e7decf;
	--muted: #8a8168;
	--soft: #efe7d8;
	--green: #2f7d5b;
	--shadow: 0 22px 40px -22px rgba(31, 46, 77, .38);
	--font-display: "Bricolage Grotesque", system-ui, sans-serif;
	--font-body: "Instrument Sans", system-ui, sans-serif;
	--font-mono: "IBM Plex Mono", ui-monospace, monospace;
	--selected-shirt-color: #111111;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
	margin: 0;
	overflow-x: hidden;
	background: var(--cream);
	color: var(--navy);
	font-family: var(--font-body);
	-webkit-font-smoothing: antialiased;
}
body.is-locked { overflow: hidden; }
a { color: inherit; }
img, svg { max-width: 100%; height: auto; }
svg { width: 1.25rem; height: 1.25rem; }
button, input, select, textarea { font: inherit; }
::selection { background: var(--orange); color: #fff; }
/* No overflow-x here: setting it on this wrapper (rather than body) makes
   overflow-y auto-compute to "auto" (CSS overflow-propagation quirk),
   which turns it into its own scroll container and silently breaks
   position: sticky on .site-header below - it needs the real viewport
   scroll, not a nested one. */
.site-shell { width: 100%; }
.announcement {
	min-height: 40px;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 8px 16px;
	background: var(--ink);
	color: var(--cream);
	text-align: center;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .03em;
	line-height: 1.35;
	overflow: hidden;
}
.announcement strong { color: #f5c542; }
.announcement b { color: #f5a15c; letter-spacing: .05em; }
.announcement span { min-width: 0; }
.site-header {
	position: sticky;
	top: 0;
	z-index: 60;
	background: var(--cream);
	border-bottom: 1px solid transparent;
	backdrop-filter: blur(10px);
	transition: box-shadow .28s ease, background .28s ease;
}
.site-header.is-scrolled {
	background: rgba(248, 243, 234, .94);
	box-shadow: 0 6px 22px -14px rgba(31, 46, 77, .45);
}
.header-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 14px 20px;
	display: flex;
	align-items: center;
	gap: 20px;
}
.brand {
	display: flex;
	align-items: center;
	gap: 9px;
	text-decoration: none;
	flex-shrink: 0;
}
.brand-mark {
	width: 34px;
	height: 34px;
	border-radius: 9px;
	background: var(--orange);
	color: var(--paper);
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.brand-text {
	font-family: var(--font-display);
	font-weight: 800;
	font-size: 21px;
	line-height: 1;
	letter-spacing: 0;
	color: var(--ink);
}
.brand-text span { color: var(--orange); }
.brand-custom-logo { display: flex; align-items: center; }
.brand-custom-logo .custom-logo-link { display: flex; align-items: center; }
.brand-custom-logo .custom-logo { max-height: 48px; width: auto; display: block; }
.header-search, .mobile-search {
	display: flex;
	align-items: center;
	gap: 10px;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 999px;
	padding: 11px 18px;
	color: var(--muted);
}
.header-search {
	flex: 1;
	max-width: 560px;
	margin: 0 auto;
}
.header-search input, .mobile-search input {
	border: 0;
	outline: 0;
	background: transparent;
	color: var(--navy);
	width: 100%;
	min-width: 0;
}
.header-actions {
	margin-left: auto;
	display: flex;
	align-items: center;
	gap: 10px;
	flex-shrink: 0;
}
.icon-button {
	width: 42px;
	height: 42px;
	border: 1px solid var(--line);
	background: var(--paper);
	color: var(--navy);
	border-radius: 11px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	text-decoration: none;
	position: relative;
	transition: background .2s ease, transform .2s ease;
}
.icon-button:hover { background: var(--soft); }
.menu-trigger {
	display: none;
	border: 0;
	background: transparent;
	flex-direction: column;
	gap: 5px;
	padding: 0;
}
.menu-trigger span {
	width: 24px;
	height: 2px;
	background: var(--ink);
	border-radius: 2px;
}
.menu-trigger span:last-child { width: 16px; }
.cart-trigger {
	display: flex;
	align-items: center;
	gap: 9px;
	border: 0;
	background: var(--orange);
	color: #fff;
	border-radius: 11px;
	padding: 0 16px;
	height: 42px;
	cursor: pointer;
	font-weight: 700;
	font-size: 14px;
	letter-spacing: .03em;
	text-transform: uppercase;
	transition: background .2s ease;
}
.cart-trigger:hover { background: var(--orange-dark); }
.cart-count {
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--ink);
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.desktop-nav {
	border-top: 1px solid #ebe2d2;
}
.desktop-nav > ul {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 30px;
	min-height: 46px;
	list-style: none;
}
.desktop-nav li { position: relative; }
.desktop-nav a {
	text-decoration: none;
	color: var(--ink);
	font-size: 13.5px;
	line-height: 35px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	white-space: nowrap;
}
.desktop-nav a:hover { color: var(--orange); }
.desktop-nav li.menu-item-has-children > a {
	display: inline-flex;
	align-items: center;
	gap: 5px;
}
.desktop-nav li.menu-item-has-children > a::after {
	content: '';
	width: 6px;
	height: 6px;
	border-right: 1.5px solid currentColor;
	border-bottom: 1.5px solid currentColor;
	transform: rotate(45deg);
	transition: transform .2s ease;
}
.desktop-nav li.menu-item-has-children:hover > a::after,
.desktop-nav li.menu-item-has-children:focus-within > a::after {
	transform: rotate(225deg);
}
.desktop-nav .sub-menu {
	position: absolute;
	top: calc(100% + 0);
	left: 50%;
	transform: translateX(-50%);
	list-style: none;
	margin: 0;
	padding: 10px;
	min-width: 220px;
	max-width: 260px;
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 14px;
	box-shadow: var(--shadow);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transition: opacity .15s ease, visibility .15s;
	z-index: 70;
}
.desktop-nav li.menu-item-has-children:hover > .sub-menu,
.desktop-nav li.menu-item-has-children:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.desktop-nav .sub-menu li { border: 0; }
.desktop-nav .sub-menu a {
	position: relative;
	display: block;
	padding: 6px 12px 6px 17px;
	border-radius: 8px;
	font-size: 13.5px;
	font-weight: 500;
	line-height: 30px;
	letter-spacing: 0;
	text-transform: none;
	white-space: normal;
	color: var(--ink);
	transition: color .15s ease;
}
.desktop-nav .sub-menu a::before {
	content: '';
	position: absolute;
	left: 4px;
	top: 50%;
	width: 3px;
	height: 0;
	border-radius: 2px;
	background: var(--orange);
	transform: translateY(-50%);
	transition: height .15s ease;
}
.desktop-nav .sub-menu a:hover { color: var(--orange-dark); }
.desktop-nav .sub-menu a:hover::before { height: 60%; }
/* Chevrons only make sense as a "this opens a dropdown" cue on the top-level
   nav items; the mega menu's own nested items (see below) have children too
   (their column of links) but aren't themselves another hover trigger. */
.desktop-nav .sub-menu li.menu-item-has-children > a::after { display: none; }

/* "Birthday Gifts" mega menu: a wide 3-column panel (Month/Milestone/Zodiac)
   instead of the single-column dropdown every other nav item gets. The
   3 column-heading items are tagged "mega-menu-heading" (see the nav menu
   config) so they can render as static, non-clickable labels with their own
   link list always expanded underneath - not another hover flyout. */
.desktop-nav li.has-mega-menu > .sub-menu {
	left: auto;
	right: -24px;
	transform: none;
	display: flex;
	align-items: flex-start;
	min-width: 720px;
	max-width: min(820px, 92vw);
	max-height: none;
	overflow: visible;
	padding: 22px 24px;
}
.desktop-nav li.mega-menu-heading {
	flex: 1 1 0;
	min-width: 190px;
	padding-right: 20px;
}
.desktop-nav li.mega-menu-heading + li.mega-menu-heading {
	border-left: 1px solid var(--line);
	padding-left: 20px;
}
.desktop-nav li.mega-menu-heading > a {
	display: block;
	padding: 0 0 10px;
	margin-bottom: 6px;
	border-bottom: 1px solid var(--line);
	border-radius: 0;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--muted);
	cursor: default;
	pointer-events: none;
}
.desktop-nav li.mega-menu-heading > a::before { display: none; }
.desktop-nav li.mega-menu-heading > .sub-menu {
	position: static;
	display: block;
	transform: none;
	background: transparent;
	border: 0;
	box-shadow: none;
	padding: 0;
	margin: 0;
	min-width: 0;
	max-width: none;
	max-height: none;
	overflow: visible;
	/* opacity/visibility/pointer-events intentionally left at the closed
	   defaults from the base .sub-menu rule until the mega menu is actually
	   open (see below) - opacity:0 on the *ancestor* mega menu doesn't stop
	   a descendant that sets pointer-events: auto from still being
	   hoverable/clickable at its exact screen position, which was silently
	   opening this menu whenever the cursor crossed that (invisible) area,
	   even nowhere near the "Birthday Gifts" trigger itself. */
}
.desktop-nav li.has-mega-menu:hover > .sub-menu li.mega-menu-heading > .sub-menu,
.desktop-nav li.has-mega-menu:focus-within > .sub-menu li.mega-menu-heading > .sub-menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
}
.desktop-nav li.mega-menu-heading > .sub-menu a { padding: 3px 8px; font-size: 13px; }
.mobile-panel, .cart-panel {
	position: fixed;
	inset: 0;
	z-index: 120;
	visibility: hidden;
	pointer-events: none;
	/* The sliding drawer inside (.panel-card/.cart-card) sits off-screen via
	   translateX(100%) while closed - a transform, so it doesn't affect this
	   wrapper's own layout size, but browsers still count that transformed
	   position toward the page's scrollable area unless something clips it.
	   Without this, that off-screen drawer is exactly what let the page be
	   dragged/scrolled sideways on mobile. */
	overflow: hidden;
}
.mobile-panel.is-open, .cart-panel.is-open { pointer-events: auto; }
.panel-overlay {
	position: absolute;
	inset: 0;
	background: rgba(23, 34, 59, .5);
	opacity: 0;
	transition: opacity .35s ease;
}
.is-open > .panel-overlay, .is-open .panel-overlay { opacity: 1; }
.panel-card, .cart-card {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: min(88vw, 390px);
	background: #f8f3ea;
	box-shadow: -20px 0 50px -20px rgba(23, 34, 59, .45);
	transform: translateX(100%);
	transition: transform .38s cubic-bezier(.22, .61, .36, 1);
	display: flex;
	flex-direction: column;
}
.cart-card {
	width: min(92vw, 430px);
	background: var(--paper);
}
.is-open .panel-card, .is-open .cart-card { transform: translateX(0); }
.panel-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	padding: 18px 20px;
	border-bottom: 1px solid var(--line);
}
.panel-head .icon-button { font-size: 24px; line-height: 1; }
.mobile-search { margin: 16px 20px; border-radius: 12px; }
.mobile-nav { flex: 1; overflow-y: auto; padding: 8px 12px 20px; }
.mobile-nav ul { list-style: none; padding: 0; margin: 0; }
.mobile-nav li { border-bottom: 1px solid #ede4d5; }
.mobile-nav a {
	display: flex;
	text-decoration: none;
	padding: 15px 10px;
	font-weight: 600;
	color: var(--navy);
}
.mobile-nav ul ul { padding: 0 0 10px 12px; }
.mobile-nav ul ul a { color: #5a6577; font-size: 14px; padding: 9px 10px; }
.mobile-nav ul ul li { border-bottom: 0; }
.mobile-nav .mega-menu-heading > a {
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--muted);
	padding: 10px 10px 4px;
	pointer-events: none;
}
.mobile-nav ul ul ul { padding-left: 10px; }
.mobile-nav ul ul ul a { font-size: 13.5px; padding: 7px 10px; }
/* Accordion: a submenu only ever had one state before - fully expanded -
   which made "Shop the Holiday" alone push 12 extra rows into the panel
   before a shopper even reached "Gift for Dad". Every <li> WordPress marks
   "menu-item-has-children" (any level, including the Birthday Gifts mega
   menu's Month/Milestone/Zodiac headers) gets a dedicated chevron button
   injected next to it in main.js; tapping *that* toggles ".is-expanded" on
   the <li>, while tapping the label itself still navigates normally.
   Collapsed is the default so the panel opens short and scannable. */
.mobile-nav li.menu-item-has-children {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
}
.mobile-nav li.menu-item-has-children > a { flex: 1 1 auto; min-width: 0; }
.mobile-nav-toggle {
	flex: 0 0 44px;
	height: 44px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: transparent;
	border: 0;
	padding: 0;
	color: var(--muted);
	cursor: pointer;
}
.mobile-nav-toggle svg { transition: transform .2s ease; }
.mobile-nav li.is-expanded > .mobile-nav-toggle svg { transform: rotate(180deg); }
.mobile-nav li.menu-item-has-children > ul {
	flex-basis: 100%;
	width: 100%;
	display: none;
}
.mobile-nav li.is-expanded > ul { display: block; }
.mobile-quick {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	border-top: 1px solid var(--line);
}
.mobile-quick a, .mobile-quick button {
	border: 0;
	border-left: 1px solid var(--line);
	background: transparent;
	color: var(--navy);
	text-decoration: none;
	padding: 14px 6px;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 5px;
	font-size: 12px;
	font-weight: 600;
	cursor: pointer;
}
.button, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button, .woocommerce #respond input#submit {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	min-height: 46px;
	border-radius: 12px;
	padding: 12px 24px;
	border: 0;
	text-decoration: none;
	cursor: pointer;
	font-weight: 700;
	line-height: 1.2;
	transition: transform .2s ease, background .2s ease, color .2s ease, border-color .2s ease;
}
/* The plain ".button-primary" selector (1 class) loses a specificity tie
   against ".woocommerce a.button" below (.woocommerce + a + .button = 2
   classes + 1 element) whenever a primary button like the cart drawer's
   "Checkout" link happens to render inside a ".woocommerce"-classed
   ancestor - true on single-product and shop/category pages, but not the
   homepage or cart/checkout pages, which is why the bug only showed up on
   some pages and not others. ".woocommerce a.button.button-primary" (3
   classes + 1 element) outranks it regardless of source order. */
.button-primary, .woocommerce a.button.button-primary, .woocommerce a.button.alt, .woocommerce button.button.alt, .woocommerce input.button.alt {
	background: var(--orange);
	border: var(--orange);
	color: #fff;
}
.button-primary:hover, .woocommerce a.button.button-primary:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--orange-dark); color: #fff; transform: translateY(-1px); }
.button-secondary, .woocommerce a.button {
	background: var(--paper);
	color: var(--ink);
	border: 1.5px solid var(--ink);
}
.pill { border-radius: 999px; }
.home-main, .content-main {
	max-width: 1200px;
	margin: 0 auto;
	padding: 0 20px;
}
.hero { padding: 26px 0 25px; }
.hero-banner {
	position: relative;
	min-height: 420px;
	border-radius: 24px;
	overflow: hidden;
	background: linear-gradient(120deg, #ede3d0 0%, #e4d8c0 100%);
	display: flex;
	align-items: flex-end;
}
.hero-banner::before, .promo-card::before, .newsletter > div::before {
	content: "";
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(135deg, rgba(31, 46, 77, .04) 0 20px, transparent 20px 40px);
}
.hero-art {
	position: absolute;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	background-image: repeating-linear-gradient(135deg, #e7dcc6 0 18px, #efe6d5 18px 36px);
	display: flex;
	align-items: center;
	justify-content: center;
}
.hero-art span, .mockup-label, .category-tiles span {
	font-family: var(--font-mono);
	font-size: 12px;
	letter-spacing: .14em;
	color: #b7a98e;
	text-transform: uppercase;
	text-align: center;
	line-height: 1.7;
}
.hero-card {
	position: relative;
	margin: 40px;
	background: var(--ink);
	color: var(--cream);
	border-radius: 18px;
	padding: 26px 30px;
	max-width: 340px;
	box-shadow: 0 24px 48px -22px rgba(23, 34, 59, .6);
}
.hero-card > span, .newsletter span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #f5a15c;
}
h1, h2, h3 { font-family: var(--font-display); letter-spacing: 0; }
.hero-card h1 {
	margin: 10px 0 6px;
	font-weight: 800;
	font-size: 32px;
	line-height: 1.05;
}
.hero-card p { margin: 0 0 16px; color: #b9c1d2; }
.hero-card strong { color: #f5c542; }
.promo-grid {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 18px;
	padding: 25px 0;
}
.promo-card {
	position: relative;
	min-height: 200px;
	border-radius: 20px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 26px;
	text-decoration: none;
	transition: transform .3s ease;
}
.promo-card:hover { transform: translateY(-4px); }
.promo-dark { background: #1f2e4d; color: var(--cream); }
.promo-orange { background: var(--orange); color: #fff; }
/* Text sits at the bottom (justify-content: flex-end above) - this scrim
   darkens just that lower portion so white text stays readable over a
   bright background photo, fading out toward the top so the image still
   shows through there. Painted after ::before (the subtle stripe texture)
   but still needs to sit below the real text, which gets its own z-index. */
.promo-card::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(15, 23, 42, .8) 0%, rgba(15, 23, 42, .38) 48%, transparent 78%);
	pointer-events: none;
}
.promo-card > * { position: relative; z-index: 1; }
.promo-card span {
	font-family: var(--font-display);
	font-style: italic;
	font-size: 20px;
	opacity: .85;
}
.promo-card h2 {
	margin: 6px 0 12px;
	font-weight: 800;
	font-size: 26px;
	line-height: 1.05;
	text-transform: uppercase;
	overflow-wrap: anywhere;
}
.promo-card strong { color: #fff3e9; font-size: 13.5px; letter-spacing: .04em; }
.product-section, .best-section, .press, .story, .newsletter { padding: 25px 0; }
.section-heading {
	text-align: center;
	margin-bottom: 26px;
}
.section-heading h2 {
	margin: 0;
	font-weight: 800;
	font-size: 30px;
	letter-spacing: .02em;
	text-transform: uppercase;
	color: var(--ink);
}
.section-heading span {
	display: block;
	width: 56px;
	height: 3px;
	background: var(--orange);
	border-radius: 2px;
	margin: 12px auto 0;
}
.woocommerce ul.products, ul.products.minteraprint-products {
	display: grid;
	grid-template-columns: repeat(5, minmax(0, 1fr));
	gap: 20px;
	margin: 26px 0 0;
	padding: 0;
	list-style: none;
}
.woocommerce ul.products li.product, ul.products.minteraprint-products li.product {
	margin: 0;
	width: auto;
	float: none;
}
.product-card {
	height: 100%;
	display: flex;
	flex-direction: column;
	background: var(--paper);
	border: 1px solid #ebe2d2;
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 6px 18px -12px rgba(31, 46, 77, .18);
	transition: transform .35s cubic-bezier(.22, .61, .36, 1), box-shadow .35s ease;
}
.product-card:hover {
	transform: translateY(-6px);
	box-shadow: var(--shadow);
}
.product-card-media {
	position: relative;
	aspect-ratio: 4 / 5;
	background: #f1eadd;
	overflow: hidden;
}
.product-image-link {
	position: absolute;
	inset: 0;
	display: flex;
	align-items: center;
	justify-content: center;
	background-image: repeating-linear-gradient(135deg, #efe7d8 0 14px, #f4eee1 14px 28px);
	text-decoration: none;
	transition: transform .5s cubic-bezier(.22, .61, .36, 1);
}
.product-card:hover .product-image-link { transform: scale(1.06); }
.product-image-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.product-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	min-height: 26px;
	padding: 0 11px;
	border-radius: 999px;
	background: var(--orange);
	color: var(--paper);
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
}
.badge-best-seller { background: var(--navy); }
.badge-new { background: var(--green); }
.badge-sale { background: #c6402e; }
.quick-add {
	position: absolute;
	left: 12px;
	right: 12px;
	bottom: 12px;
	z-index: 2;
	transform: translateY(14px);
	opacity: 0;
	transition: transform .35s cubic-bezier(.22, .61, .36, 1), opacity .35s ease;
}
.product-card:hover .quick-add, .product-card:focus-within .quick-add {
	transform: translateY(0);
	opacity: 1;
}
.quick-add .button, .quick-add a.button {
	width: 100%;
	min-height: 46px;
	border: 0;
	border-radius: 12px;
	background: var(--navy);
	color: var(--paper);
	font-size: 14px;
}
.quick-add .button:hover { background: var(--orange); color: #fff; }
.product-card-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 7px;
	padding: 16px 16px 18px;
}
.product-category {
	font-size: 11px;
	font-weight: 600;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #a99b7e;
}
.woocommerce-loop-product__title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 600;
	line-height: 1.35;
	min-height: 43px;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.woocommerce-loop-product__title a { text-decoration: none; }
.product-rating span { letter-spacing: 1px; color: #e8a23b; font-size: 13px; }
.product-rating small { color: #9b927f; }
.product-price {
	margin-top: auto;
	font-size: 18px;
	font-weight: 700;
	color: var(--navy);
}
.product-price del { color: #b4ab98; font-size: 14px; margin-right: 7px; }
.product-price ins { text-decoration: none; }
.center { display: flex; justify-content: center; margin-top: 34px; }
.tab-buttons {
	display: flex;
	gap: 10px;
	/* "safe" falls back to start-alignment once the row overflows and needs
	   to scroll - plain "center" here centers the *overflowing* content
	   itself, which pushes part of the first button behind the left edge
	   of the scrollport with no way to scroll back far enough to reach it. */
	justify-content: safe center;
	overflow-x: auto;
	padding: 8px 0 6px;
	margin: 22px 0 8px;
}
.tab-buttons button {
	white-space: nowrap;
	border: 1px solid var(--line);
	background: var(--paper);
	color: var(--ink);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .05em;
	text-transform: uppercase;
	padding: 10px 20px;
	border-radius: 999px;
	cursor: pointer;
}
.tab-buttons button.is-active { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.tab-panel { display: none; }
.tab-panel.is-active { display: block; }
.category-tiles {
	display: grid;
	grid-template-columns: repeat(6, minmax(0, 1fr));
	gap: 16px;
}
.category-tiles a {
	display: flex;
	flex-direction: column;
	gap: 12px;
	text-decoration: none;
	text-align: center;
}
.category-tiles span {
	aspect-ratio: 1;
	border-radius: 16px;
	background: var(--soft);
	display: flex;
	align-items: center;
	justify-content: center;
	transition: transform .3s ease, box-shadow .3s ease;
}
.category-tiles a:hover span {
	transform: translateY(-5px);
	box-shadow: 0 18px 34px -20px rgba(31, 46, 77, .4);
}
.category-tiles strong {
	font-size: 12.5px;
	letter-spacing: .08em;
	text-transform: uppercase;
}
.press { text-align: center; }
.press > span, .press small {
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: #a99b7e;
}
.press div {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: center;
	gap: 38px;
	margin: 22px 0 16px;
	opacity: .72;
}
.press strong {
	font-family: var(--font-display);
	font-size: 20px;
	color: #5a6577;
	white-space: nowrap;
}
.story h2, .newsletter h2 {
	margin: 0 0 18px;
	font-size: 28px;
	font-weight: 800;
}
.story { text-align: center; }
.story > a:not(.button) { color: var(--orange); font-weight: 600; text-underline-offset: 3px; }
.story-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px;
	margin-top: 36px;
	text-align: left;
}
.story-grid article span {
	width: 52px;
	height: 52px;
	border-radius: 14px;
	background: var(--soft);
	color: var(--orange);
	display: flex;
	align-items: center;
	justify-content: center;
}
.story-grid h3 { margin: 14px 0 8px; font-size: 19px; }
.story-grid p { color: #6b6459; line-height: 1.6; }
.newsletter > div {
	position: relative;
	overflow: hidden;
	border-radius: 26px;
	background: var(--ink);
	color: var(--cream);
	padding: 48px;
	text-align: center;
}
.newsletter > div > * { position: relative; }
.newsletter p { color: #b9c1d2; }
.newsletter form {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	width: 100%;
	max-width: 460px;
	margin: 0 auto;
	justify-content: center;
}
.newsletter input {
	flex: 1;
	min-width: 220px;
	border: 0;
	border-radius: 12px;
	padding: 15px 18px;
	color: var(--navy);
	outline: 0;
}
.pending-reveal {
	opacity: 0;
	transform: translateY(28px);
	transition: opacity .7s cubic-bezier(.22, .61, .36, 1), transform .7s cubic-bezier(.22, .61, .36, 1);
}
.site-footer {
	background: var(--ink);
	color: #c4cbda;
	margin-top: 30px;
}
.footer-inner {
	max-width: 1200px;
	margin: 0 auto;
	padding: 56px 20px 28px;
}
.footer-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 36px;
}
.footer-col { display: flex; flex-direction: column; gap: 12px; }
.footer-title {
	margin: 0;
	font-family: var(--font-body);
	font-size: 13px;
	font-weight: 700;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--cream);
}
.footer-col a {
	text-decoration: none;
	color: #9aa3b7;
	font-size: 14px;
}
.footer-col a:hover { color: var(--orange); }
.contact-col p { margin: 0; font-size: 13.5px; line-height: 1.6; color: #9aa3b7; }
.contact-col strong { color: var(--cream); }
.printed {
	display: flex;
	align-items: baseline;
	gap: 6px;
	font-family: var(--font-display);
	font-weight: 800;
}
.printed span { color: var(--cream); }
.printed strong { color: var(--orange); font-size: 22px; }
.socials { display: flex; gap: 10px; }
.socials a {
	width: 36px;
	height: 36px;
	border-radius: 10px;
	background: rgba(246, 241, 231, .08);
	display: flex;
	align-items: center;
	justify-content: center;
}
.copyright {
	text-align: center;
	margin-top: 44px;
	padding-top: 24px;
	border-top: 1px solid rgba(246, 241, 231, .12);
	font-size: 13px;
	color: #7c859b;
}
.content-main { padding-top: 40px; padding-bottom: 50px; }
.content-card, .archive-head {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 28px;
}
.content-card h1, .archive-head h1 { margin-top: 0; font-size: 36px; }
.entry-content { line-height: 1.7; color: #4b5565; }
.entry-content h2 { font-size: 22px; margin: 32px 0 12px; color: var(--ink); }
.entry-content h2:first-child { margin-top: 0; }
.entry-content h3 { font-size: 18px; margin: 24px 0 10px; color: var(--ink); }
.entry-content p { margin: 0 0 16px; }
.entry-content ul, .entry-content ol { margin: 0 0 16px; padding-left: 22px; }
.entry-content a { color: var(--orange-dark); }
.post-grid {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 20px;
	margin-top: 24px;
}
.post-card {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 16px;
	padding: 18px;
}
.post-card h2 { font-size: 22px; }
.post-card a { text-decoration: none; }

/* Blog */
.blog-hero { text-align: center; max-width: 660px; margin: 0 auto 30px; }
.blog-hero .eyebrow { display: inline-block; font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--orange-dark); margin-bottom: 10px; }
.blog-hero h1 { font-size: 44px; margin: 0 0 12px; color: var(--ink); }
.blog-hero p { color: var(--muted); font-size: 16px; line-height: 1.6; margin: 0; }
.blog-filters { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 0 0 34px; }
.blog-filter { padding: 8px 18px; border-radius: 999px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); font-size: 14px; text-decoration: none; transition: background .2s, border-color .2s, color .2s; }
.blog-filter:hover, .blog-filter.is-active { background: var(--navy); border-color: var(--navy); color: var(--cream); }
.blog-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 26px; margin-top: 10px; }
.blog-card { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; overflow: hidden; display: flex; flex-direction: column; transition: transform .25s ease, box-shadow .25s ease; }
.blog-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.blog-card-media { position: relative; display: block; aspect-ratio: 16 / 10; overflow: hidden; background: var(--soft); }
.blog-card-media img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.blog-card:hover .blog-card-media img { transform: scale(1.05); }
.blog-card-fallback { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; color: var(--muted); }
.blog-card-fallback svg { width: 46px; height: 46px; }
.blog-card-cat { position: absolute; left: 14px; bottom: 14px; background: var(--ink); color: var(--cream); font-size: 11px; text-transform: uppercase; letter-spacing: .08em; padding: 6px 12px; border-radius: 999px; text-decoration: none; }
.blog-card-body { padding: 20px 22px 24px; display: flex; flex-direction: column; gap: 10px; flex: 1; }
.blog-card-meta { display: flex; gap: 16px; font-size: 12px; color: var(--muted); }
.blog-card-meta span { display: inline-flex; align-items: center; gap: 5px; }
.blog-card-meta svg { width: 14px; height: 14px; }
.blog-card-title { margin: 0; font-size: 19px; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.blog-card-title a { color: var(--ink); text-decoration: none; }
.blog-card-title a:hover { color: var(--orange-dark); }
.blog-card-excerpt { margin: 0; color: #5b6478; font-size: 14px; line-height: 1.6; display: -webkit-box; -webkit-line-clamp: 2; line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; flex: 1; }
.blog-card-more { margin-top: auto; display: inline-flex; align-items: center; gap: 6px; font-size: 13px; font-weight: 700; color: var(--orange-dark); text-decoration: none; }
.blog-card-more svg { width: 14px; height: 14px; transition: transform .2s; }
.blog-card-more:hover svg { transform: translateX(3px); }

.pagination { margin-top: 44px; display: flex; justify-content: center; }
.pagination .nav-links { display: flex; gap: 8px; flex-wrap: wrap; justify-content: center; }
.pagination .page-numbers { display: inline-flex; align-items: center; justify-content: center; min-width: 40px; height: 40px; padding: 0 10px; border-radius: 10px; border: 1px solid var(--line); background: var(--paper); color: var(--ink); text-decoration: none; font-size: 14px; }
.pagination .page-numbers.current { background: var(--navy); border-color: var(--navy); color: var(--cream); }
.pagination .page-numbers:hover:not(.current) { border-color: var(--orange); color: var(--orange-dark); }
.pagination .page-numbers.dots { border: none; background: none; }

.blog-single .blog-post { max-width: 760px; margin: 0 auto 60px; }
.blog-post-head { text-align: center; margin-bottom: 26px; }
.blog-post-cat { position: static; display: inline-block; margin-bottom: 14px; }
.blog-post-head h1 { font-size: 38px; margin: 0 0 14px; color: var(--ink); line-height: 1.25; }
.blog-post-meta { display: flex; justify-content: center; gap: 20px; font-size: 13px; color: var(--muted); }
.blog-post-meta span { display: inline-flex; align-items: center; gap: 6px; }
.blog-post-meta svg { width: 15px; height: 15px; }
.blog-post-cover { margin: 30px 0; border-radius: 20px; overflow: hidden; }
.blog-post-cover img { width: 100%; display: block; }
.blog-content { font-size: 16px; line-height: 1.6; color: #3d4658; }
.blog-content h2 { font-size: 24px; margin: 12px 0 6px; color: var(--ink); }
.blog-content p { margin: 0 0 16px; }
.blog-content ul, .blog-content ol { margin: 0 0 18px; padding-left: 22px; }
.blog-content a { color: var(--orange-dark); }
.blog-post-tags { display: flex; flex-wrap: wrap; gap: 10px; margin: 30px 0 20px; }
.blog-post-tags a { background: var(--soft); color: var(--ink); font-size: 13px; padding: 6px 14px; border-radius: 999px; text-decoration: none; }
.blog-post-tags a:hover { background: var(--orange); color: #fff; }
.blog-back-link { display: inline-flex; align-items: center; gap: 6px; color: var(--navy); font-weight: 700; text-decoration: none; font-size: 14px; }
.blog-back-link:hover { color: var(--orange-dark); }
.blog-related { max-width: 1100px; margin: 0 auto; padding-top: 40px; border-top: 1px solid var(--line); }
.blog-related h2 { text-align: center; font-size: 18px; margin: 0 0 10px; color: var(--ink); }

/* Account */
.account-page-head { margin-bottom: 28px; }
.account-page-head .eyebrow { display: block; font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--orange-dark); margin-bottom: 8px; }
.account-page-head h1 { margin: 0; font-size: 34px; color: var(--ink); }

.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 250px minmax(0, 1fr);
	gap: 28px;
	align-items: start;
}
.woocommerce-account .woocommerce-notices-wrapper:not(:empty) { grid-column: 1 / -1; }
.woocommerce-account .woocommerce > .woocommerce-message,
.woocommerce-account .woocommerce > .woocommerce-info,
.woocommerce-account .woocommerce > .woocommerce-error { grid-column: 1 / -1; }

/* Sidebar navigation */
.woocommerce-MyAccount-navigation {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 14px;
	position: sticky;
	top: 100px;
}
.woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-MyAccount-navigation li + li { margin-top: 2px; }
.woocommerce-MyAccount-navigation-link a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 14px;
	border-radius: 12px;
	color: var(--ink);
	text-decoration: none;
	font-weight: 600;
	font-size: 14px;
	transition: background .2s, color .2s;
}
.woocommerce-MyAccount-navigation-link a svg { width: 18px; height: 18px; flex-shrink: 0; color: var(--muted); transition: color .2s; }
.woocommerce-MyAccount-navigation-link a:hover { background: var(--soft); }
.woocommerce-MyAccount-navigation-link.is-active a { background: var(--navy); color: var(--cream); }
.woocommerce-MyAccount-navigation-link.is-active a svg { color: var(--cream); }
.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line); }
.woocommerce-MyAccount-navigation-link--customer-logout a { color: #b23b3b; }
.woocommerce-MyAccount-navigation-link--customer-logout a svg { color: #b23b3b; }
.woocommerce-MyAccount-navigation-link--customer-logout a:hover { background: #fbe9e9; }

/* Content pane */
.woocommerce-MyAccount-content {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 32px;
}
.woocommerce-MyAccount-content > p:first-child { font-size: 17px; color: var(--ink); }
.woocommerce-MyAccount-content p a { color: var(--orange-dark); font-weight: 600; }
.woocommerce-MyAccount-content fieldset { border: 1px solid var(--line); border-radius: 14px; padding: 20px 22px 22px; margin: 24px 0; }
.woocommerce-MyAccount-content fieldset legend { padding: 0 8px; font-weight: 700; color: var(--ink); font-size: 14px; }
.woocommerce-MyAccount-content .form-row { margin-bottom: 18px; }
.woocommerce-MyAccount-content .form-row label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; color: var(--ink); }
.woocommerce-MyAccount-content .form-row input.input-text,
.woocommerce-MyAccount-content .form-row textarea,
.woocommerce-MyAccount-content .form-row select { width: 100%; }
.woocommerce-account .woocommerce button.button,
.woocommerce-account .woocommerce a.button {
	background: var(--orange);
	color: #fff;
	width: 100%;
}
.woocommerce-account .woocommerce button.button:hover,
.woocommerce-account .woocommerce a.button:hover { background: var(--orange-dark); color: #fff; }
.woocommerce-account .woocommerce .woocommerce-Pagination { display: flex; gap: 10px; margin-top: 20px; }
.woocommerce-account .woocommerce .woocommerce-Pagination a.button { width: auto; }

/* Login / register */
.woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)) {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 40px;
}
.woocommerce-account .woocommerce-form-login,
.woocommerce-account .woocommerce-form-register {
	max-width: 420px;
	margin: 0 auto;
}
#customer_login.u-columns.col2-set { display: grid; grid-template-columns: 1fr 1fr; gap: 36px; max-width: 900px; margin: 0 auto; align-items: start; }
#customer_login.u-columns.col2-set .woocommerce-form-login,
#customer_login.u-columns.col2-set .woocommerce-form-register { max-width: none; margin: 0; }
#customer_login.u-columns.col2-set .u-column1 { padding-right: 36px; border-right: 1px solid var(--line); }
.woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)) > h2 { max-width: 420px; margin: 0 auto 20px; text-align: center; font-size: 22px; color: var(--ink); }
.woocommerce-form-login h2, .woocommerce-form-register h2 { font-size: 22px; margin: 0 0 20px; color: var(--ink); }
.woocommerce-form-login .form-row, .woocommerce-form-register .form-row { margin-bottom: 18px; }
.woocommerce-form-login .form-row label, .woocommerce-form-register .form-row label { display: block; margin-bottom: 6px; font-weight: 600; font-size: 14px; color: var(--ink); }
.woocommerce-form-login input.input-text, .woocommerce-form-register input.input-text { width: 100%; }
.woocommerce-form-login__rememberme { display: flex; align-items: center; gap: 8px; font-weight: 500; font-size: 14px; margin: 0; }
.woocommerce-form-login p.form-row:has(.woocommerce-form-login__rememberme) { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.woocommerce-form-login .woocommerce-form-login__submit,
.woocommerce-form-register .woocommerce-form-register__submit { width: 100%; margin-top: 4px; }
.woocommerce-LostPassword { margin: 14px 0 0; text-align: center; font-size: 14px; }
.woocommerce-LostPassword a { color: var(--orange-dark); font-weight: 600; }

/* Password show/hide toggle injected by WooCommerce's own JS */
.password-input { position: relative; display: block; }
.password-input input[type="password"], .password-input input[type="text"] { padding-right: 42px; }
.show-password-input { position: absolute; right: 10px; top: 50%; transform: translateY(-50%); background: transparent; border: 0; padding: 0; margin: 0; cursor: pointer; width: 20px; height: 20px; }
.show-password-input::before {
	content: '';
	display: block;
	width: 20px;
	height: 20px;
	background-repeat: no-repeat;
	background-size: contain;
	background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.3 3.3C16.9 2.9 16.2 2.9 15.7 3.3L13.3 5.7C12.2437 5.3079 11.1267 5.1048 10 5.1C6.2 5.2 2.8 7.2 1 10.5C1.2 10.9 1.5 11.3 1.8 11.7C2.6 12.8 3.6 13.7 4.7 14.4L3 16.1C2.6 16.5 2.5 17.2 3 17.7C3.4 18.1 4.1 18.2 4.6 17.7L17.3 4.9C17.7 4.4 17.7 3.7 17.3 3.3ZM6.7 12.3L5.4 13.6C4.2 12.9 3.1 11.9 2.3 10.7C3.5 9 5.1 7.8 7 7.2C5.7 8.6 5.6 10.8 6.7 12.3ZM10.1 9C9.6 8.5 9.7 7.7 10.2 7.2C10.7 6.8 11.4 6.8 11.9 7.2L10.1 9ZM18.3 9.5C17.8 8.8 17.2 8.1 16.5 7.6L15.5 8.6C16.3 9.2 17 9.9 17.6 10.8C15.9 13.4 13 15 9.9 15H9.1L8.1 16C8.8 15.9 9.4 16 10 16C13.3 16 16.4 14.4 18.3 11.7C18.6 11.3 18.8 10.9 19.1 10.5C18.8 10.2 18.6 9.8 18.3 9.5ZM14 10L10 14C12.2 14 14 12.2 14 10Z" fill="%238a8168"/></svg>');
}
.show-password-input.display-password::before {
	background-image: url('data:image/svg+xml,<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M18.3 9.49999C15 4.89999 8.50002 3.79999 3.90002 7.19999C2.70002 8.09999 1.70002 9.29999 0.900024 10.6C1.10002 11 1.40002 11.4 1.70002 11.8C5.00002 16.4 11.3 17.4 15.9 14.2C16.8 13.5 17.6 12.8 18.3 11.8C18.6 11.4 18.8 11 19.1 10.6C18.8 10.2 18.6 9.79999 18.3 9.49999ZM10.1 7.19999C10.6 6.69999 11.4 6.69999 11.9 7.19999C12.4 7.69999 12.4 8.49999 11.9 8.99999C11.4 9.49999 10.6 9.49999 10.1 8.99999C9.60003 8.49999 9.60003 7.69999 10.1 7.19999ZM10 14.9C6.90002 14.9 4.00002 13.3 2.30002 10.7C3.50002 8.99999 5.10002 7.79999 7.00002 7.19999C6.30002 7.99999 6.00002 8.89999 6.00002 9.89999C6.00002 12.1 7.70002 14 10 14C12.2 14 14.1 12.3 14.1 9.99999V9.89999C14.1 8.89999 13.7 7.89999 13 7.19999C14.9 7.79999 16.5 8.99999 17.7 10.7C16 13.3 13.1 14.9 10 14.9Z" fill="%238a8168"/></svg>');
}

/* Addresses */
.woocommerce-Addresses.col2-set { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; list-style: none; padding: 0; margin: 20px 0 0; }
.woocommerce-Address { background: var(--soft); border: 1px solid var(--line); border-radius: 14px; padding: 20px 22px; }
.woocommerce-Address-title { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 12px; }
.woocommerce-Address-title h2 { margin: 0; font-size: 16px; color: var(--ink); }
.woocommerce-Address-title a.edit { font-size: 12px; font-weight: 700; color: var(--orange-dark); text-decoration: none; background: var(--paper); border: 1px solid var(--line); padding: 6px 12px; border-radius: 999px; white-space: nowrap; }
.woocommerce-Address-title a.edit:hover { background: var(--orange); color: #fff; border-color: var(--orange); }
.woocommerce-Address address { font-style: normal; line-height: 1.7; color: #4b5565; }

/* Orders table */
.woocommerce-orders-table { width: 100%; border-collapse: collapse; margin-top: 6px; }
.woocommerce-orders-table__header { text-align: left; font-size: 12px; text-transform: uppercase; letter-spacing: .04em; color: var(--muted); padding: 0 14px 12px; border-bottom: 1px solid var(--line); }
.woocommerce-orders-table__cell { padding: 16px 14px; border-bottom: 1px solid var(--line); font-size: 14px; color: var(--ink); }
.woocommerce-orders-table__row:last-child .woocommerce-orders-table__cell { border-bottom: 0; }
.woocommerce-orders-table__cell-order-number a { color: var(--navy); font-weight: 700; text-decoration: none; }
.woocommerce-orders-table__cell-order-actions { display: flex; gap: 8px; }
.woocommerce-orders-table__cell-order-actions a.button { width: auto; min-height: 36px; padding: 8px 16px; font-size: 13px; }
.woocommerce-orders-table__cell-order-status { font-weight: 600; }
.woocommerce-orders-table__row--status-completed .woocommerce-orders-table__cell-order-status { color: var(--green); }
.woocommerce-orders-table__row--status-processing .woocommerce-orders-table__cell-order-status { color: var(--orange-dark); }
.woocommerce-orders-table__row--status-on-hold .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-pending .woocommerce-orders-table__cell-order-status { color: var(--muted); }
.woocommerce-orders-table__row--status-cancelled .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-failed .woocommerce-orders-table__cell-order-status,
.woocommerce-orders-table__row--status-refunded .woocommerce-orders-table__cell-order-status { color: #b23b3b; }

/* Notices */
.woocommerce-message, .woocommerce-info, .woocommerce-error {
	list-style: none;
	background: var(--soft);
	border-left: 3px solid var(--navy);
	border-radius: 10px;
	padding: 14px 18px;
	margin: 0 0 22px;
	font-size: 14px;
	color: var(--ink);
}
.woocommerce-message { border-left-color: var(--green); }
.woocommerce-error { border-left-color: #b23b3b; }
.woocommerce-error li { list-style: none; }
.woocommerce-message a.button, .woocommerce-error a.button { width: auto; margin-left: 10px; }

/* Contact page */
.contact-hero { text-align: center; max-width: 640px; margin: 0 auto 34px; }
.contact-hero .eyebrow { display: block; font-family: var(--font-mono); font-size: 12px; letter-spacing: .14em; text-transform: uppercase; color: var(--orange-dark); margin-bottom: 8px; }
.contact-hero h1 { font-size: 38px; margin: 0 0 10px; color: var(--ink); }
.contact-hero p { color: var(--muted); font-size: 16px; line-height: 1.6; margin: 0; }
.contact-grid { display: grid; grid-template-columns: 320px minmax(0, 1fr); gap: 26px; align-items: start; }
.contact-info-card { background: var(--paper); border: 1px solid var(--line); color: var(--ink); border-radius: 18px; padding: 32px; }
.contact-info-row { display: flex; gap: 14px; margin-bottom: 22px; }
.contact-info-icon { width: 40px; height: 40px; border-radius: 10px; background: var(--soft); display: flex; align-items: center; justify-content: center; flex-shrink: 0; }
.contact-info-icon svg { width: 19px; height: 19px; color: var(--orange-dark); }
.contact-info-row strong { display: block; font-size: 11px; text-transform: uppercase; letter-spacing: .06em; color: var(--muted); margin-bottom: 4px; }
.contact-info-row a, .contact-info-row span { color: var(--ink); font-size: 14px; line-height: 1.5; text-decoration: none; }
.contact-info-row a:hover { color: var(--orange-dark); }
.contact-tips { margin-top: 6px; padding-top: 24px; border-top: 1px solid var(--line); }
.contact-tips h2 { font-size: 15px; margin: 0 0 12px; color: var(--ink); text-transform: uppercase; letter-spacing: .04em; }
.contact-tips ul { margin: 0; padding-left: 18px; color: #5b6478; font-size: 13px; line-height: 1.7; }
.contact-tips li { margin-bottom: 8px; }
.contact-form-card { background: var(--paper); border: 1px solid var(--line); border-radius: 18px; padding: 36px; }
.contact-form-card .wpcf7-form p { margin: 0 0 18px; }
.contact-form-card .wpcf7-form label { display: block; font-weight: 600; font-size: 14px; color: var(--ink); margin-bottom: 10px; }
.contact-form-card .wpcf7-form-control-wrap { display: block; margin-top: 5px;}
.contact-form-card .wpcf7-form-control.wpcf7-text,
.contact-form-card .wpcf7-form-control.wpcf7-textarea {
	width: 100%;
	border: 1px solid var(--line);
	background: var(--paper);
	border-radius: 10px;
	padding: 12px 14px;
	font-family: inherit;
	font-size: 14px;
	color: var(--navy);
}
.contact-form-card .wpcf7-form-control.wpcf7-textarea { resize: vertical; min-height: 140px; }
.contact-form-card .wpcf7-form-control.wpcf7-text:focus,
.contact-form-card .wpcf7-form-control.wpcf7-textarea:focus { outline: none; border-color: var(--orange); }
.contact-form-card .wpcf7-form-control.wpcf7-submit {
	width: 100%;
	min-height: 48px;
	border: 0;
	border-radius: 12px;
	background: var(--orange);
	color: #fff;
	font-weight: 700;
	cursor: pointer;
	margin-top: 4px;
	transition: background .2s;
}
.contact-form-card .wpcf7-form-control.wpcf7-submit:hover { background: var(--orange-dark); }
.contact-form-card .wpcf7-response-output { margin-top: 16px; border-radius: 10px; padding: 12px 16px; font-size: 14px; border: 1px solid var(--line); }
.contact-form-card .wpcf7-not-valid-tip { color: #b23b3b; font-size: 12px; margin-top: 4px; display: block; }

.shop-main .woocommerce-products-header__title, .woocommerce div.product .product_title {
	font-size: 36px;
	margin-top: 0;
}
.woocommerce-result-count { color: var(--muted); }
.woocommerce-pagination { margin-top: 44px; }
.woocommerce-pagination ul.page-numbers {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	list-style: none;
	margin: 0;
	padding: 0;
}
/* WooCommerce gives both the <ul> wrapper and each individual link/span the
   same "page-numbers" class - target only the actual <a>/<span> children
   (never the <li> or the <ul> itself), or the pill styling below ends up
   wrapping the whole bar instead of each button. */
.woocommerce-pagination li > .page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 40px;
	height: 40px;
	padding: 0 10px;
	border-radius: 10px;
	border: 1px solid var(--line);
	background: var(--paper);
	color: var(--ink);
	text-decoration: none;
	font-size: 14px;
	font-weight: 600;
	transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.woocommerce-pagination li > span.page-numbers.current { background: var(--navy); border-color: var(--navy); color: var(--cream); }
.woocommerce-pagination li > a.page-numbers:hover { border-color: var(--orange); color: var(--orange-dark); }
.woocommerce-pagination li > .page-numbers.dots { border: none; background: none; }
.woocommerce-ordering select, .woocommerce .quantity .qty, .woocommerce div.product form.cart .variations select, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select {
	border: 1px solid var(--line);
	background: var(--paper);
	border-radius: 10px;
	padding: 11px 12px;
	color: var(--navy);
}
.woocommerce div.product {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 24px;
}
.woocommerce div.product div.images .woocommerce-product-gallery__wrapper {
	background-image: repeating-linear-gradient(135deg, #efe7d8 0 14px, #f4eee1 14px 28px);
	border-radius: 18px;
	overflow: hidden;
}
.woocommerce div.product p.price, .woocommerce div.product span.price {
	color: var(--orange);
	font-size: 26px;
	font-weight: 800;
}
.woocommerce div.product form.cart .variations th {
	text-align: left;
	padding-right: 16px;
	color: var(--muted);
	text-transform: uppercase;
	font-size: 12px;
	letter-spacing: .08em;
}
.woocommerce-tabs:not(body),
.related.products:not(body),
.woocommerce-cart-form:not(body),
.cart-collaterals:not(body),
.woocommerce-checkout:not(body),
.woocommerce-order:not(body) {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 18px;
	padding: 24px;
	margin-top: 24px;
}
.woocommerce table.shop_table {
	border: 1px solid var(--line);
	border-radius: 14px;
	overflow: hidden;
}
.woocommerce table.shop_table th { color: var(--ink); }

/* ==========================================================================
   Order received / "Thank you" page - the classic (non-block) WooCommerce
   templates render plain, unstyled markup here (default browser bullets,
   a bare table, no card treatment) since nothing in the theme targeted
   these specific classes before. .woocommerce-order itself already gets
   the card treatment above; everything below dresses up its contents. */
.woocommerce-thankyou-order-received {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 24px;
	padding: 16px 18px;
	background: #eef6f0;
	border: 1px solid #cfe8d6;
	border-radius: 14px;
	color: var(--ink);
	font-size: 15px;
	font-weight: 600;
}
.woocommerce-thankyou-order-received::before {
	content: '✓';
	flex: 0 0 30px;
	width: 30px;
	height: 30px;
	border-radius: 999px;
	background: var(--green);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
	font-weight: 800;
}
.woocommerce-order-overview {
	display: flex;
	flex-wrap: wrap;
	gap: 14px;
	list-style: none;
	margin: 0 0 28px;
	padding: 18px 20px;
	background: var(--soft);
	border-radius: 14px;
}
.woocommerce-order-overview li {
	flex: 1 1 140px;
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: 13px;
	color: var(--muted);
	text-transform: uppercase;
	letter-spacing: .04em;
}
.woocommerce-order-overview li strong {
	font-family: var(--font-display);
	font-size: 16px;
	font-weight: 800;
	color: var(--ink);
	text-transform: none;
	letter-spacing: 0;
}
.woocommerce-order-details__title,
.woocommerce-column__title {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 800;
	color: var(--ink);
	margin: 0 0 14px;
}
table.woocommerce-table--order-details.shop_table thead th {
	text-align: left;
	padding: 12px 16px;
	background: var(--soft);
	color: var(--muted);
	font-size: 12px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .05em;
}
table.woocommerce-table--order-details.shop_table thead th.product-total { text-align: right; }
table.woocommerce-table--order-details.shop_table td,
table.woocommerce-table--order-details.shop_table tfoot th {
	padding: 14px 16px;
	border-bottom: 1px solid var(--line);
	vertical-align: top;
}
table.woocommerce-table--order-details.shop_table .product-name a {
	color: var(--ink);
	font-weight: 700;
	text-decoration: none;
}
table.woocommerce-table--order-details.shop_table .product-name a:hover { color: var(--orange-dark); }
table.woocommerce-table--order-details.shop_table .product-quantity {
	display: inline-block;
	margin-left: 6px;
	padding: 1px 8px;
	border-radius: 999px;
	background: var(--ink);
	color: #fff;
	font-size: 12px;
	font-weight: 700;
}
table.woocommerce-table--order-details.shop_table .product-total {
	text-align: right;
	font-weight: 700;
	color: var(--ink);
	white-space: nowrap;
}
/* Each <li> here is "<strong>Label:</strong> <p>Value</p>" - the variation
   selector plugin saves these order-item meta values pre-wrapped in a <p>,
   which forces the value onto its own line (block-level) no matter how the
   <li>/<ul> around it is styled. Neutralizing that <p> is what actually
   keeps "Fit Type: Unisex" etc. on one line; everything above it (the <ul>
   itself) is just the simple stacked list this needed anyway. */
table.woocommerce-table--order-details.shop_table ul.wc-item-meta {
	list-style: none;
	margin: 8px 0 0;
	padding: 0;
}
table.woocommerce-table--order-details.shop_table ul.wc-item-meta li {
	font-size: 13px;
	color: var(--muted);
	line-height: 1.6;
}
table.woocommerce-table--order-details.shop_table ul.wc-item-meta li p {
	display: inline;
	margin: 0;
}
table.woocommerce-table--order-details.shop_table .wc-item-meta-label { color: var(--muted); font-weight: 600; }
table.woocommerce-table--order-details.shop_table tfoot th { text-align: left; font-weight: 600; color: var(--ink); }
table.woocommerce-table--order-details.shop_table tfoot td { text-align: right; color: var(--ink); }
/* Highlighting the grand total by "last row in tfoot" broke the moment a
   payment-method row rendered after it (get_order_item_totals() appends
   that one last) - the wrong row lit up orange. minteraprint_order_grand_total_markup()
   (functions.php) tags the real order_total row's own value with
   .order-grand-total-value instead, so this targets correctly regardless of
   what else WooCommerce adds after it; the label reaches the same styling
   via :has() on their shared row since the template escapes the label text
   itself (no span to hang a class on there). */
table.woocommerce-table--order-details.shop_table tfoot tr:has(.order-grand-total-value) th,
table.woocommerce-table--order-details.shop_table tfoot tr:has(.order-grand-total-value) .order-grand-total-value {
	font-family: var(--font-display);
	font-size: 19px;
	font-weight: 800;
	color: var(--orange);
}
table.woocommerce-table--order-details.shop_table tfoot tr:has(.order-grand-total-value) th,
table.woocommerce-table--order-details.shop_table tfoot tr:has(.order-grand-total-value) td {
	border-bottom: 0;
	padding-top: 16px;
}
.woocommerce-customer-details { margin-top: 32px; }
.woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	list-style: none;
	padding: 0;
	margin: 0;
}
/* Each address (billing and, when shown, shipping - see
   woocommerce/order/order-details-customer.php) renders as an explicit
   label/value list via minteraprint_order_address_rows() (inc/checkout.php)
   instead of a single unlabeled blob of address lines, so it's clear which
   line is the name, city, postcode, etc. One card per address; used both
   when there's a single address (ship-to-billing-only stores) and in the
   two-column billing+shipping layout. */
.mp-order-address-card {
	display: flex;
	flex-direction: column;
	gap: 14px;
	background: var(--soft);
	border-radius: 14px;
	padding: 20px 22px;
}
.mp-order-address-row { display: flex; flex-direction: column; gap: 3px; }
.mp-order-address-label {
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .06em;
	color: var(--muted);
}
.mp-order-address-value {
	font-size: 14px;
	color: var(--navy);
	line-height: 1.5;
}
@media (max-width: 640px) {
	.woocommerce-columns--addresses { grid-template-columns: 1fr; }
	/* flex-direction: column turns each li's 140px *width* basis (set for
	   the row layout above) into a 140px *height* basis instead, forcing a
	   tall, awkward gap under every stat - reset it back to content height. */
	.woocommerce-order-overview { flex-direction: column; }
	.woocommerce-order-overview li { flex: 0 0 auto; }
}

.cart-drawer-body { flex: 1; overflow-y: auto; }
.cart-empty-state {
	min-height: 60vh;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 14px;
	padding: 40px;
	text-align: center;
}
.cart-empty-icon {
	width: 64px;
	height: 64px;
	border-radius: 18px;
	background: var(--soft);
	color: var(--orange);
	display: flex;
	align-items: center;
	justify-content: center;
}
.cart-drawer-summary {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	padding: 16px 18px 12px;
}
.cart-drawer-summary em { color: #b4ab98; font-style: normal; }
.cart-drawer-summary strong { font-family: var(--font-display); font-size: 22px; color: var(--ink); }
.cart-drawer-actions {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	padding: 0 18px 16px;
	border-bottom: 1px solid var(--line);
}
.cart-drawer-items {
	padding: 16px 18px 8px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.drawer-item {
	display: flex;
	gap: 14px;
	padding: 12px;
	border-radius: 14px;
	background: var(--paper);
	box-shadow: inset 0 0 0 1px #efe7d8;
}
.drawer-item-thumb {
	flex: 0 0 72px;
	height: 88px;
	border-radius: 10px;
	overflow: hidden;
	background-image: repeating-linear-gradient(135deg, #efe7d8 0 10px, #f4eee1 10px 20px);
}
.drawer-item-thumb img { width: 100%; height: 100%; object-fit: cover; }
.drawer-item-content { flex: 1; min-width: 0; }
.drawer-item-top {
	display: flex;
	align-items: flex-start;
	justify-content: space-between;
	gap: 10px;
}
.drawer-item-top a:first-child {
	text-decoration: none;
	font-size: 14.5px;
	font-weight: 600;
	line-height: 1.3;
	color: var(--ink);
}
.drawer-remove {
	flex: 0 0 24px;
	width: 24px;
	height: 24px;
	border: 1px solid #e0d6c4;
	border-radius: 999px;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	text-decoration: none;
	color: var(--muted);
}
.variation { font-size: 11px; color: #5a6577; }
.drawer-item-variation {
	margin: 4px 0 0;
	font-size: 12px;
	line-height: 1.55;
	color: var(--muted);
	white-space: pre-line;
}
.drawer-item-price { margin-top: 9px; font-size: 13.5px; color: var(--ink); font-weight: 700; }
.buy-more-save-more {
	margin-top: 22px;
	padding: 18px 18px 20px;
	border: 1px solid var(--line);
	border-radius: 16px;
	background: var(--paper);
}
.bmsm-title {
	margin: 0 0 12px;
	font-size: 14px;
	font-weight: 800;
	letter-spacing: .01em;
	color: var(--ink);
	text-transform: uppercase;
}
.bmsm-tiers {
	display: flex;
	flex-direction: column;
	border: 1px solid var(--line);
	border-radius: 12px;
	overflow: hidden;
	background: #fff;
}
.bmsm-tier {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	justify-content: space-between;
	gap: 8px 12px;
	padding: 13px 16px;
	background: #fff;
	transition: background-color .15s ease;
}
.bmsm-tier + .bmsm-tier {
	border-top: 1px solid var(--line);
}
.bmsm-tier.is-active {
	background: #fff7ee;
}
.bmsm-left {
	display: inline-flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px 8px;
	min-width: 0;
}
.bmsm-label {
	font-size: 14px;
	font-weight: 700;
	color: var(--ink);
	white-space: nowrap;
}
.bmsm-off {
	flex: 0 0 auto;
	margin-left: auto;
	min-width: 76px;
	text-align: center;
	padding: 6px 12px;
	border-radius: 999px;
	border: 1px solid var(--line);
	background: var(--soft);
	color: var(--muted);
	font-size: 12.5px;
	font-weight: 800;
}
.bmsm-tier.is-active .bmsm-off {
	border-color: transparent;
	background: var(--orange);
	color: #fff;
}
.bmsm-badge {
	flex: 0 0 auto;
	padding: 3px 9px;
	border-radius: 999px;
	background: var(--navy);
	color: #fff;
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .03em;
	text-transform: uppercase;
	white-space: nowrap;
}

.product-detail-main { padding-top: 28px; }
.mp-product-detail {
	background: transparent;
	border: 0;
	padding: 0;
}
.mp-product-grid {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
	gap: 44px;
	align-items: start;
}
/* Swiper sets an explicit pixel width on .swiper-slide via JS once it
   measures its container; without min-width: 0 a grid/flex item won't
   shrink below that content size and can blow out its track at narrow
   viewports (the item's default min-width is "auto", not 0). */
.mp-gallery { min-width: 0; }
.mp-gallery-stage {
	position: relative;
	aspect-ratio: 1;
	border-radius: 22px;
	overflow: hidden;
	max-width: 100%;
	/* Swiper lays every slide out full-width side by side (see the note on
	   .mp-gallery above) and relies on this element's overflow: hidden to
	   visually clip everything but the active one. That clipping alone
	   doesn't stop some mobile browsers from still sizing their initial
	   layout viewport off the *unclipped* total width of those slides,
	   intermittently locking the whole page at a wider-than-the-screen
	   viewport (only shows up as broken once something else - like the
	   cart drawer - gets cut off by the real screen edge). "contain: layout"
	   tells the browser this subtree's layout can never affect anything
	   outside it, which is exactly what's needed here. */
	contain: layout;
	background:
		radial-gradient(circle at 50% 42%, rgba(255, 255, 255, .86) 0 29%, transparent 30%),
		repeating-linear-gradient(135deg, #efe7d8 0 16px, #f4eee1 16px 32px);
	border: 1px solid #ebe2d2;
	display: flex;
	align-items: center;
	justify-content: center;
}
.product-art {
	width: min(70%, 360px);
	aspect-ratio: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	filter: drop-shadow(0 22px 28px rgba(23, 34, 59, .18));
	transition: transform .3s ease;
}
.product-art svg {
	width: 100%;
	height: 100%;
	overflow: visible;
}
/* A real product photo isn't a small stylised mockup icon like the
   placeholder SVG - it should fill the entire stage, no gap around the
   edges. Overrides the 70%/360px cap above via a two-class selector so it
   always wins regardless of source order. */
.product-art.product-art-real {
	width: 100%;
	height: 100%;
	aspect-ratio: auto;
}
.product-art-real img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.shirt-body {
	fill: var(--selected-shirt-color);
	stroke: #121212;
	stroke-width: 5;
	stroke-linejoin: round;
	transition: fill .25s ease;
}
.shirt-shadow {
	fill: rgba(23, 34, 59, .12);
	transform: translate(7px, 9px);
}
.shirt-neck,
.shirt-line {
	fill: none;
	stroke: rgba(255, 255, 255, .82);
	stroke-width: 4;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.product-art text {
	fill: rgba(255, 255, 255, .9);
	font-family: var(--font-mono);
	font-size: 15px;
	font-weight: 700;
	letter-spacing: .12em;
}
.mp-gallery-stage.swiper { display: block; }
.mp-swiper .swiper-slide {
	display: flex;
	align-items: center;
	justify-content: center;
	height: 100%;
}
.rush-badge {
	position: absolute;
	top: 16px;
	right: 16px;
	width: 74px;
	height: 74px;
	border-radius: 999px;
	background: var(--paper);
	border: 1px dashed #d8cdb8;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 8px;
	font-weight: 800;
	letter-spacing: .08em;
	color: var(--orange);
	line-height: 1.2;
	text-transform: uppercase;
	z-index: 5;
}
.gallery-nav {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 253, 249, .95);
	box-shadow: 0 4px 14px rgba(31, 46, 77, .16);
	color: var(--ink);
	font-size: 32px;
	line-height: 1;
	cursor: pointer;
	z-index: 5;
}
.gallery-nav.prev { left: 14px; }
.gallery-nav.next { right: 14px; }
.gallery-nav.swiper-button-disabled { opacity: .35; cursor: default; pointer-events: none; }
.gallery-dots {
	z-index: 5;
	position: absolute;
	left: 0;
	right: 0;
	bottom: 16px;
	display: flex;
	justify-content: center;
	align-items: center;
	gap: 7px;
}
.gallery-dots .gallery-dot {
	width: 8px;
	height: 8px;
	border: 0;
	border-radius: 999px;
	background: #d8cdb8;
	padding: 0;
	margin: 0;
	display: block;
	cursor: pointer;
}
.gallery-dots .gallery-dot.is-active { background: var(--orange); }
.mp-gallery-thumbs {
	display: flex;
	gap: 12px;
	margin-top: 14px;
	overflow-x: auto;
	scrollbar-width: none;
}
.mp-gallery-thumbs::-webkit-scrollbar { display: none; }
.mp-gallery-thumb {
	/* Sized so exactly 5 thumbnails fill the row width - any extra images
	   scroll instead of shrinking every thumbnail to fit. */
	flex: 0 0 calc((100% - 4 * 12px) / 5);
	aspect-ratio: 1;
	padding: 0;
	border-radius: 14px;
	border: 2px solid var(--line);
	background: var(--paper);
	overflow: hidden;
	cursor: pointer;
	transition: border-color .2s ease;
}
.mp-gallery-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.mp-gallery-thumb:hover { border-color: var(--muted); }
.mp-gallery-thumb.is-active { border-color: var(--orange); }
.similar-strip {
	display: flex;
	gap: 12px;
	overflow-x: auto;
	scrollbar-width: none;
	contain: layout;
}
.similar-strip::-webkit-scrollbar { display: none; }
.similar-strip a {
	flex: 0 0 auto;
	border-radius: 12px;
	border: 2px solid #ebe2d2;
	background:
		radial-gradient(circle at center, var(--selected-shirt-color) 0 22%, transparent 23%),
		repeating-linear-gradient(135deg, #efe7d8 0 10px, #f4eee1 10px 20px);
	cursor: pointer;
}
.similar-strip .is-active { border-color: var(--orange); }
.mp-summary { display: flex; flex-direction: column; min-width: 0; }
.similar-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 12px;
	font-size: 13.5px;
	color: #5a6577;
}
.similar-head strong { color: var(--ink); }
.similar-head a {
	color: var(--orange);
	font-weight: 700;
	text-decoration: none;
}
.similar-strip { margin-bottom: 22px; padding-bottom: 4px; }
.similar-strip a { width: 88px; height: 100px; }
.breadcrumbs-lite {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 12.5px;
	color: #9b927f;
	margin-bottom: 8px;
}
.mp-summary .product_title {
	margin: 0 0 20px;
	font-size: 25px;
	line-height: 1.2;
	color: var(--ink);
}
.mp-price {
	font-family: var(--font-display);
	font-size: 32px;
	font-weight: 800;
	color: var(--orange);
	margin-bottom: 14px;
}
.mp-price .price { color: inherit; }
.mp-summary .woocommerce-product-details__short-description {
	color: #5a6577;
	line-height: 1.65;
	margin-bottom: 18px;
}
.mp-summary form.cart { margin: 0; }
.mp-summary table.variations {
	width: 100%;
	margin: 0 0 18px;
	border: 0;
}
.mp-summary table.variations tr {
	display: block;
	margin-bottom: 20px;
}
.mp-summary table.variations th,
.mp-summary table.variations td {
	display: block;
	padding: 0;
	text-align: left;
}
.mp-summary table.variations label {
	display: flex;
	align-items: baseline;
	gap: 8px;
	font-size: 22px;
	font-weight: 800;
	color: var(--ink);
	margin-bottom: 14px;
	font-family: var(--font-display);
	line-height: 1.15;
}
.mp-summary table.variations label .selected-value {
	font-family: var(--font-body);
	font-size: 20px;
	font-weight: 500;
	color: #333;
}
.mp-summary table.variations select.is-enhanced {
	position: absolute;
	left: -9999px;
	width: 1px;
	height: 1px;
	opacity: 0;
}
.mp-choice-list {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
}
.mp-choice {
	position: relative;
	min-height: 54px;
	border: 1.5px solid #dfd5c2;
	background: var(--paper);
	color: var(--ink);
	border-radius: 7px;
	padding: 12px 16px;
	font-size: 16px;
	font-weight: 800;
	cursor: pointer;
	transition: border-color .2s ease, background .2s ease, transform .2s ease;
}
.mp-choice:hover { transform: translateY(-1px); }
.mp-choice.is-active {
	border-color: var(--orange);
	background: #fff4ea;
	box-shadow: inset 0 0 0 1px var(--orange);
}
.mp-choice-list[data-attribute*="color"] .mp-choice {
	min-height: 46px;
	border-radius: 6px;
	border-color: rgba(0, 0, 0, .08);
	background: var(--swatch-color);
	color: var(--swatch-text);
	box-shadow: 0 9px 16px -11px rgba(0, 0, 0, .45);
	font-size: 16px;
	padding: 10px 16px;
}
.mp-choice-list[data-attribute*="color"] .mp-choice.is-active {
	border-color: #ef3333;
	box-shadow: inset 0 0 0 1px #ef3333, 0 9px 16px -11px rgba(0, 0, 0, .45);
}
.choice-check {
	display: none;
	position: absolute;
	top: -9px;
	right: -8px;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	background: #fff;
	color: #111;
	align-items: center;
	justify-content: center;
	font-size: 17px;
	font-weight: 900;
	box-shadow: 0 2px 8px rgba(0, 0, 0, .24);
}
.mp-choice.is-active .choice-check { display: flex; }
.mp-choice-list[data-attribute*="style"] {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}
.mp-choice-list[data-attribute*="style"] .mp-choice {
	min-height: 126px;
	padding: 10px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 8px;
	text-align: center;
	font-size: 14px;
	line-height: 1.2;
}
.choice-icon {
	width: 74px;
	height: 74px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.choice-icon svg {
	width: 74px;
	height: 74px;
	fill: #fff;
	stroke: #111;
	stroke-width: 3;
	stroke-linecap: round;
	stroke-linejoin: round;
}
.choice-icon img {
	width: 100%;
	height: 100%;
	object-fit: contain;
	display: block;
}
.mp-choice-list[data-attribute*="style"] .mp-choice.is-active,
.mp-choice-list[data-attribute*="size"] .mp-choice.is-active,
.mp-choice-list[data-attribute*="fit-type"] .mp-choice.is-active {
	border-color: #ef3333;
	background: #fff;
	box-shadow: inset 0 0 0 1px #ef3333;
}
.mp-choice-list[data-attribute*="size"] .mp-choice {
	min-width: 66px;
	height: 66px;
	padding: 0 18px;
	background: #fff;
}
.reset_variations {
	display: inline-block;
	margin-top: 9px;
	color: var(--muted);
	font-size: 13px;
}
.mp-summary .pewc-group-wrap {
	margin: 8px 0 22px;
	padding: 0;
	border: 0;
	background: transparent;
}
.mp-summary .pewc-group-heading-wrapper,
.mp-summary .pewc-total-field-wrapper {
	display: none;
}
.mp-summary .pewc-item {
	margin: 0;
	padding: 0;
	border: 0;
}
.mp-summary .pewc-field-label {
	display: block;
	margin: 0 0 10px;
	font-family: var(--font-body);
	font-size: 16px;
	font-weight: 800;
	color: var(--ink);
}
.mp-summary .pewc-checkbox-group-wrapper {
	margin: 0;
	padding: 0;
	list-style: none;
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 9px;
}
.mp-summary .pewc-checkbox-group-wrapper li {
	margin: 0;
	padding: 0;
}
.mp-summary .pewc-radio-form-label {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	min-height: 24px;
	cursor: pointer;
	font-size: 14px;
	font-weight: 700;
	color: var(--ink);
}
.mp-summary .pewc-radio-form-field {
	accent-color: #74be87;
	margin: 0;
}
.mp-summary .pewc-radio-option-text {
	display: inline-flex;
	align-items: center;
}
.mp-summary .single_variation_wrap {
	border-top: 1px solid #ebe2d2;
	padding-top: 18px;
}
.mp-summary .woocommerce-variation-add-to-cart .single_variation {
	display: block;
	margin-bottom: 16px;
}
.mp-summary .woocommerce-variation-price {
	font-family: var(--font-display);
	font-size: 28px;
	font-weight: 800;
	color: var(--orange);
	margin-bottom: 6px;
}
.mp-summary .woocommerce-variation-availability {
	font-size: 15px;
	color: var(--muted);
}
.mp-summary .quantity {
	display: inline-flex;
	align-items: stretch;
	vertical-align: top;
	margin-right: 12px;
	height: 56px;
	border: 1px solid var(--line);
	border-radius: 13px;
	background: var(--paper);
	overflow: hidden;
}
.mp-summary .quantity .qty {
	width: 52px;
	height: 100%;
	border: 0;
	border-left: 1px solid var(--line);
	border-right: 1px solid var(--line);
	border-radius: 0;
	background: transparent;
	text-align: center;
	font-size: 16px;
	font-weight: 700;
	color: var(--navy);
	/* Hide native number-input spin arrows; the qty-btn pair replaces them. */
	-moz-appearance: textfield;
	appearance: textfield;
}
.mp-summary .quantity .qty::-webkit-inner-spin-button,
.mp-summary .quantity .qty::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}
.quantity .qty-btn {
	width: 40px;
	flex: 0 0 auto;
	border: 0;
	background: transparent;
	color: var(--navy);
	font-size: 18px;
	font-weight: 700;
	line-height: 1;
	cursor: pointer;
	transition: background-color .15s ease;
}
.quantity .qty-btn:hover { background: #f4eee1; }
.quantity .qty-btn:active { background: #ebe2d2; }
.mp-summary .single_add_to_cart_button {
	position: relative;
	min-width: min(100%, 260px);
	height: 56px;
	border-radius: 13px;
	background: var(--orange);
	color: #fff;
	text-transform: uppercase;
	letter-spacing: .04em;
	transition: opacity .15s ease;
}
.single_add_to_cart_button.is-adding {
	color: transparent !important;
	pointer-events: none;
}
.single_add_to_cart_button.is-adding::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	width: 18px;
	height: 18px;
	margin: -9px 0 0 -9px;
	border: 2px solid rgba(255, 255, 255, .45);
	border-top-color: #fff;
	border-radius: 50%;
	animation: whvs-qty-spin .6s linear infinite;
}
@keyframes whvs-qty-spin {
	to { transform: rotate(360deg); }
}
.mp-description {
	margin-top: 52px;
	padding-top: 38px;
	border-top: 1px solid #ebe2d2;
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 36px;
	align-items: start;
}
.mp-description h2 {
	margin: 0 0 16px;
	font-size: 28px;
	font-weight: 800;
	color: var(--ink);
}
.mp-description p {
	margin: 0 0 14px;
	font-size: 15px;
	line-height: 1.7;
	color: #5a6577;
}
.mp-description aside {
	background: var(--paper);
	border: 1px solid #ebe2d2;
	border-radius: 18px;
	padding: 24px;
}
.mp-description h3 {
	margin: 0 0 16px;
	font-family: var(--font-body);
	font-size: 16px;
	color: var(--ink);
}
.mp-description aside p {
	display: flex;
	align-items: center;
	gap: 11px;
	margin: 0 0 12px;
	color: #3d4657;
}
.mp-description aside span {
	flex: 0 0 22px;
	width: 22px;
	height: 22px;
	border-radius: 999px;
	background: #efe7d8;
	color: var(--orange);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: 800;
}
.mp-product-detail .related.products {
	background: transparent;
	border: 0;
	padding: 0;
	margin-top: 52px;
}

@media (max-width: 1100px) {
	.woocommerce ul.products, ul.products.minteraprint-products { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.category-tiles { grid-template-columns: repeat(4, minmax(0, 1fr)); }
	.mp-choice-list[data-attribute*="style"] { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 900px) {
	.menu-trigger { display: inline-flex; }
	.desktop-nav { display: none; }
	.header-search, .optional-action { display: none; }
	.mp-product-grid { grid-template-columns: minmax(0, 1fr); gap: 28px; }
	.mp-gallery { max-width: 620px; width: 100%; min-width: 0; margin: 0 auto; }
	.mp-description { grid-template-columns: 1fr; }
	.woocommerce ul.products, ul.products.minteraprint-products { grid-template-columns: repeat(3, minmax(0, 1fr)); }
	.footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.post-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.blog-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.contact-grid { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) { grid-template-columns: 1fr; }
	.woocommerce-MyAccount-navigation { position: static; }
	.woocommerce-MyAccount-navigation ul { display: flex; flex-wrap: wrap; gap: 4px; }
	.woocommerce-MyAccount-navigation li { flex: 1 1 auto; }
	.woocommerce-MyAccount-navigation-link a { justify-content: center; }
	.woocommerce-MyAccount-navigation-link a span { display: none; }
	.woocommerce-MyAccount-navigation-link--customer-logout { margin-top: 0; padding-top: 0; border-top: 0; }
	#customer_login.u-columns.col2-set { grid-template-columns: 1fr; }
	#customer_login.u-columns.col2-set .u-column1 { padding-right: 0; border-right: 0; padding-bottom: 28px; border-bottom: 1px solid var(--line); margin-bottom: 28px; }
	.woocommerce-Addresses.col2-set { grid-template-columns: 1fr; }
}

@media (max-width: 640px) {
	.announcement { font-size: 10px; letter-spacing: 0; padding: 7px 6px; }
	.announcement span { display: block; max-width: 340px; white-space: normal; font-size: 0; }
	.announcement span::after { content: "10% OFF first order: WELCOME10"; font-size: 11px; }
	.header-inner { gap: 10px; padding: 10px 14px; }
	.brand-text { font-size: 19px; }
	.brand-custom-logo .custom-logo { max-height: 38px; }
	.cart-trigger { padding: 0 11px; }
	.cart-trigger > span:not(.cart-count) { display: none; }
	.home-main, .content-main { padding-left: 20px; padding-right: 20px; }
	.product-detail-main { padding-top: 20px; }
	.account-page-head h1 { font-size: 26px; }
	.woocommerce-MyAccount-content { padding: 22px 18px; }
	.contact-hero h1 { font-size: 28px; }
	.contact-info-card, .contact-form-card { padding: 22px 20px; }
	.quick-view-card { padding: 24px 18px; width: 96vw; max-height: 92vh; }
	.quick-view-close { top: 10px; right: 10px; }
	.woocommerce-account .woocommerce:not(:has(.woocommerce-MyAccount-navigation)) { padding: 26px 20px; }
	.woocommerce-orders-table thead { display: none; }
	.woocommerce-orders-table, .woocommerce-orders-table tbody, .woocommerce-orders-table tr, .woocommerce-orders-table__cell { display: block; width: 100%; }
	.woocommerce-orders-table__row { border: 1px solid var(--line); border-radius: 12px; padding: 14px 16px; margin-bottom: 14px; }
	.woocommerce-orders-table__cell { border-bottom: 0; padding: 6px 0; display: flex; justify-content: space-between; gap: 12px; text-align: right; }
	.woocommerce-orders-table__cell::before { content: attr(data-title); font-weight: 700; color: var(--muted); text-align: left; }
	.woocommerce-orders-table__cell-order-actions { justify-content: flex-end; }
	.woocommerce-orders-table__cell-order-actions::before { display: none; }
	.mp-summary .product_title { font-size: 22px; }
	.mp-price { font-size: 30px; }
	.mp-gallery-stage { border-radius: 16px; }
	.product-art { width: 72%; }
	.rush-badge { width: 58px; height: 58px; top: 12px; right: 12px; font-size: 7px; }
	.gallery-nav { width: 38px; height: 38px; font-size: 28px; }
	.mp-gallery-thumbs { gap: 8px; }
	.mp-gallery-thumb { flex-basis: calc((100% - 4 * 8px) / 5); border-radius: 10px; }
	.mp-summary table.variations tr { margin-bottom: 24px; }
	.mp-summary table.variations label { font-size: 21px; flex-wrap: wrap; }
	.mp-summary table.variations label .selected-value { font-size: 18px; }
	.mp-choice-list { gap: 9px; }
	.mp-choice { padding-left: 13px; padding-right: 13px; }
	.mp-choice-list[data-attribute*="style"] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}
	.mp-choice-list[data-attribute*="style"] .mp-choice {
		min-height: 112px;
		font-size: 13px;
	}
	.choice-icon, .choice-icon svg { width: 62px; height: 62px; }
	.mp-choice-list[data-attribute*="color"] .mp-choice {
		min-height: 44px;
		font-size: 14px;
		padding-left: 13px;
		padding-right: 13px;
	}
	.mp-choice-list[data-attribute*="size"] .mp-choice {
		min-width: 58px;
		height: 58px;
	}
	.mp-summary .quantity { margin-right: 8px; }
	.mp-summary .single_add_to_cart_button { min-width: calc(100% - 148px); }
	.mp-description { margin-top: 42px; padding-top: 30px; gap: 24px; }
	.mp-description h2 { font-size: 24px; }
	.similar-head { align-items: flex-start; }
	.hero { padding: 18px 0 15px; }
	.hero-banner { min-height: 360px; }
	.hero-art:not(.has-hero-photo) { display: none; }
	.hero-card { margin: 24px 20px; padding: 24px; }
	.hero-card h1 { font-size: 28px; }
	.promo-grid { grid-template-columns: 1fr; padding: 15px 0; }
	.promo-card { min-height: 200px; padding: 26px 26px; }
	.promo-card h2 { font-size: 24px; line-height: 1.15; }
	.product-section, .best-section, .press, .story, .newsletter { padding: 15px 0; }
	.section-heading h2 { font-size: 24px; }
	.woocommerce ul.products, ul.products.minteraprint-products {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 12px;
		padding: 4px 0 18px;
		margin: 0;
	}
	.woocommerce ul.products li.product, ul.products.minteraprint-products li.product {
		width: auto;
		max-width: none;
		min-width: 0;
	}
	.quick-add { transform: none; opacity: 1; }
	.category-tiles {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 14px 12px;
		padding: 0 0 12px;
	}
	.category-tiles a { max-width: none; min-width: 0; }
	.press div { gap: 20px; }
	.story-grid, .footer-grid, .post-grid, .blog-grid { grid-template-columns: 1fr; }
	.blog-hero h1 { font-size: 30px; }
	.blog-post-head h1 { font-size: 26px; }
	.blog-post-meta { flex-wrap: wrap; gap: 10px 16px; }
	.newsletter > div { padding: 34px 24px; }
	.newsletter input { min-width: 100%; }
	.newsletter button { width: 100%; }

	.content-card:not(body),
.archive-head:not(body),
.woocommerce div.product:not(body),
.woocommerce-tabs:not(body),
.related.products:not(body),
.woocommerce-cart-form:not(body),
.cart-collaterals:not(body),
.woocommerce-checkout:not(body),
.woocommerce-order:not(body) {
	padding: 18px;
}
}
.wp-block-woocommerce-checkout-order-summary-block {
	border: 0!important;
}
@media (max-width: 430px) {
	.home-main, .content-main { padding-left: 14px; padding-right: 14px; }
	.mp-product-grid { gap: 22px; }
	.mp-choice-list[data-attribute*="style"] {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 10px;
	}
	.mp-choice-list[data-attribute*="style"] .mp-choice {
		min-height: 104px;
		padding: 9px 7px;
		font-size: 12px;
	}
	.choice-icon, .choice-icon svg { width: 54px; height: 54px; }
	.mp-choice-list[data-attribute*="fit-type"] .mp-choice {
		min-height: 48px;
		padding-left: 12px;
		padding-right: 12px;
	}
	.mp-choice-list[data-attribute*="color"] {
		display: grid;
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}
	.mp-choice-list[data-attribute*="color"] .mp-choice { width: 100%; }
	.mp-choice-list[data-attribute*="size"] {
		display: grid;
		grid-template-columns: repeat(4, minmax(0, 1fr));
	}
	.mp-choice-list[data-attribute*="size"] .mp-choice {
		min-width: 0;
		width: 100%;
		height: 54px;
		padding: 0 8px;
	}
	.mp-summary .quantity {
		margin-right: 0;
		margin-bottom: 10px;
	}
	.mp-summary .quantity .qty { width: 100%; flex: 1 1 auto; }
	.mp-summary .single_add_to_cart_button {
		width: 100%;
		min-width: 100%;
		margin-right: 0;
		margin-bottom: 10px;
	}
}

@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		animation-duration: .01ms !important;
		animation-iteration-count: 1 !important;
		scroll-behavior: auto !important;
		transition-duration: .01ms !important;
	}
}
.mobile-panel.is-open, .cart-panel.is-open {
	visibility: visible;
}
.similar-head, .similar-strip{
	display: none !important;
}

/* Quick View modal */
.quick-view-modal {
	position: fixed;
	inset: 0;
	z-index: 140;
	visibility: hidden;
	pointer-events: none;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
}
.quick-view-modal.is-open { pointer-events: auto; visibility: visible; }
.quick-view-card {
	position: relative;
	background: var(--paper);
	border-radius: 22px;
	width: min(94vw, 980px);
	max-height: 88vh;
	overflow-y: auto;
	padding: 20px;
	opacity: 0;
	transform: scale(.97) translateY(10px);
	transition: opacity .3s ease, transform .3s ease;
	box-shadow: 0 40px 80px -30px rgba(23, 34, 59, .5);
}
.quick-view-modal.is-open .quick-view-card { opacity: 1; transform: scale(1) translateY(0); }
.quick-view-close {
	position: absolute;
	top: 18px;
	right: 18px;
	z-index: 2;
	background: var(--navy);
	color: #fff;
	font-size: 30px;
	&:hover { background: var(--orange); }
}
.quick-view-body { min-height: 220px; }
.quick-view-grid { gap: 36px; }
.quick-view-loading {
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 320px;
	color: var(--muted);
	font-size: 14px;
	text-align: center;
	padding: 0 20px;
}
.quick-view-spinner {
	width: 30px;
	height: 30px;
	border-radius: 50%;
	border: 3px solid var(--line);
	border-top-color: var(--orange);
	animation: mp-quick-view-spin .8s linear infinite;
}
@keyframes mp-quick-view-spin { to { transform: rotate(360deg); } }
.quick-view-full-link {
	display: inline-block;
	margin-top: 14px;
	font-size: 13px;
	font-weight: 600;
	color: var(--navy);
	text-decoration: underline;
	text-underline-offset: 3px;
}
.quick-view-full-link:hover { color: var(--orange-dark); }

/* Toast notifications (add/remove-from-cart feedback) - replaces
   WooCommerce's own printed "<product> has been added to your cart."
   banner, see wc_add_to_cart_message_html filter in functions.php. */
.mp-toast-container {
	position: fixed;
	left: 20px;
	bottom: 20px;
	z-index: 200;
	display: flex;
	flex-direction: column-reverse;
	gap: 10px;
	max-width: min(380px, calc(100vw - 40px));
	pointer-events: none;
}
.mp-toast {
	position: relative;
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 14px 40px 16px 16px;
	background: var(--ink);
	color: var(--cream);
	border-radius: 14px;
	box-shadow: 0 18px 40px -14px rgba(23, 34, 59, .5);
	overflow: hidden;
	pointer-events: auto;
	opacity: 0;
	transform: translateY(12px) scale(.98);
	transition: opacity .25s ease, transform .25s cubic-bezier(.22, .61, .36, 1);
}
.mp-toast.is-visible { opacity: 1; transform: translateY(0) scale(1); }
.mp-toast.is-leaving { opacity: 0; transform: translateY(8px) scale(.98); }
.mp-toast__icon {
	flex: 0 0 26px;
	width: 26px;
	height: 26px;
	margin-top: 1px;
	border-radius: 999px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--green);
	color: #fff;
}
.mp-toast--error .mp-toast__icon { background: #c6402e; }
.mp-toast__body { flex: 1; min-width: 0; }
.mp-toast__message {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.4;
	color: var(--cream);
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 3;
	line-clamp: 3;
	overflow: hidden;
}
.mp-toast__action {
	display: inline-block;
	margin-top: 6px;
	font-size: 13px;
	font-weight: 700;
	color: #f5a15c;
	text-decoration: none;
	border-bottom: 1px solid rgba(245, 161, 92, .5);
}
.mp-toast__action:hover { color: #ffb877; }
.mp-toast__close {
	position: absolute;
	top: 10px;
	right: 10px;
	width: 22px;
	height: 22px;
	border: 0;
	border-radius: 999px;
	background: rgba(255, 255, 255, .08);
	color: var(--cream);
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
}
.mp-toast__close:hover { background: rgba(255, 255, 255, .16); }
.mp-toast__bar {
	position: absolute;
	left: 0;
	bottom: 0;
	height: 3px;
	width: 100%;
	background: var(--orange);
	transform-origin: left;
	animation: mp-toast-shrink 4s linear forwards;
}
@keyframes mp-toast-shrink {
	from { transform: scaleX(1); }
	to { transform: scaleX(0); }
}
@media (max-width: 430px) {
	.mp-toast-container { left: 12px; right: 12px; bottom: 12px; max-width: none; }
}

/* ==========================================================================
   WooCommerce Blocks - Cart & Checkout.
   These two pages render through WooCommerce's React Cart/Checkout blocks
   (wp:woocommerce/cart, wp:woocommerce/checkout), not the classic PHP
   templates the rest of this file targets - a completely different markup
   system with its own "wc-block-*" class vocabulary and its own default
   (unbranded, near-black-button) styling. Everything below reskins that
   vocabulary onto this site's cream/orange/navy palette; nothing here
   touches the classic woocommerce.css selectors used elsewhere.
   ========================================================================== */
.wp-block-woocommerce-cart,
.wp-block-woocommerce-checkout {
	background: var(--paper);
	border: 1px solid var(--line);
	border-radius: 20px;
	padding: 32px;
}
.wc-block-cart, .wc-block-checkout { font-family: var(--font-body); color: var(--navy); }
.wc-block-cart h1, .wc-block-checkout h1 {
	font-family: var(--font-display);
	color: var(--ink);
}

/* Section headings. */
.wc-block-cart__totals-title,
.wc-block-components-checkout-step__title,
.wc-block-components-checkout-order-summary__title-text {
	font-family: var(--font-display);
	color: var(--ink);
	font-weight: 800;
}
.wc-block-components-checkout-step__title { font-size: 19px; }
.wc-block-cart__totals-title { font-size: 18px; }

/* Cart line items. */
.wc-block-cart-items__header { border-bottom: 1px solid var(--line); padding-bottom: 10px; }
.wc-block-cart-items__header-image, .wc-block-cart-items__header-product, .wc-block-cart-items__header-total {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: var(--muted);
}
.wc-block-cart-items__row { border-bottom: 1px solid var(--line); padding: 18px 0; }
.wc-block-cart-item__image img { border-radius: 12px; }
.wc-block-components-product-name { color: var(--ink); font-weight: 700; text-decoration: none; }
.wc-block-components-product-metadata,
.wc-block-components-product-details { font-size: 12.5px; color: var(--muted); line-height: 1.7; }
.wc-block-components-product-details__value { color: var(--muted); }
.wc-block-components-product-price .wc-block-components-product-price__value,
.wc-block-components-order-summary-item__total-price .wc-block-formatted-money-amount {
	color: var(--orange);
	font-weight: 700;
}

/* Quantity stepper - a component native to WC Blocks, separate from the
   quantity_input hooks used on the product page and classic cart/checkout,
   so it needs its own matching treatment. */
.wc-block-components-quantity-selector {
	border: 1px solid var(--line);
	border-radius: 12px;
	background: var(--paper);
	overflow: hidden;
}
.wc-block-components-quantity-selector__button:hover { background: var(--soft); }
.wc-block-components-quantity-selector__input { color: var(--navy); font-weight: 700; }

/* Remove-item link. */
.wc-block-cart-item__remove-link { color: var(--muted) !important; text-decoration: none; font-weight: 600; }
.wc-block-cart-item__remove-link:hover { color: #c6402e !important; }

/* Totals rows (subtotal / shipping / discount / tax / total). */
.wc-block-components-totals-item__label { color: var(--navy); }
.wc-block-components-totals-item__value, .wc-block-formatted-money-amount { color: var(--ink); font-weight: 600; }
.wc-block-components-totals-item.wc-block-components-totals-footer-item {
	border-top: 1px solid var(--line);
	padding-top: 14px;
	margin-top: 6px;
}
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-formatted-money-amount {
	font-family: var(--font-display);
	font-size: 20px;
	font-weight: 800;
	color: var(--orange);
}
.wc-block-components-totals-shipping__via { color: var(--muted); }
.wc-block-components-panel__button { color: var(--navy); font-weight: 700; }

/* Text/select inputs shared across the coupon field, address form, etc. */
.wc-block-components-text-input input,
.wc-blocks-components-select__select,
input.wc-block-components-totals-coupon__input {
	border: 1.5px solid var(--line) !important;
	border-radius: 10px !important;
	background: var(--paper) !important;
	color: var(--navy) !important;
	font-family: var(--font-body);
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select__select:focus {
	border-color: var(--orange) !important;
	box-shadow: 0 0 0 1px var(--orange) !important;
}
.wc-block-components-text-input label { color: var(--muted); }

/* Radio "cards" (shipping & payment method options). Payment methods use a
   slightly different "accordion" variant of the same component (its own
   -accordion-option- class) when a method has extra content to expand, e.g.
   "Pay when your order is delivered." under Cash on delivery - both variants
   need the same treatment for the selected state to look consistent. */
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option {
	border: 1.5px solid var(--line);
	border-radius: 12px;
	background: var(--paper);
	margin-bottom: 10px;
}
.wc-block-components-radio-control__option--checked-option-highlighted,
.wc-block-components-radio-control-accordion-option--checked-option-highlighted {
	border-color: var(--orange);
	border-radius: 12px;
	background: #fff4ea;
	/* WC's own checked-state rule draws a second, differently-rounded border via
	   an inset box-shadow (border-radius: 4px; box-shadow: inset 0 0 0 1.5px
	   currentColor) on top of our real border, which is what produced the
	   double-border/mismatched-corner artifact - replace it with one that
	   matches our radius and brand color instead of clearing it, so the ring
	   still reads as a deliberate highlight, not just a plain border. */
	box-shadow: inset 0 0 0 1.5px var(--orange);
}
.wc-block-components-radio-control__input,
.wc-block-components-checkbox__input {
	accent-color: var(--orange);
}
.wc-block-components-radio-control__label { color: var(--navy); font-weight: 600; }

/* Primary action buttons: this site's orange CTA everywhere, instead of WC
   Blocks' own near-black default - keeps "Proceed to Checkout"/"Place
   Order" visually consistent with "Add to Cart" elsewhere on the site. */
.wc-block-components-button { border-radius: 10px; font-weight: 700; }
.wc-block-cart__submit-button,
.wc-block-components-checkout-place-order-button {
	background: var(--orange) !important;
	border-color: var(--orange) !important;
	color: #fff !important;
	border-radius: 13px !important;
}
.wc-block-cart__submit-button:hover,
.wc-block-components-checkout-place-order-button:hover {
	background: var(--orange-dark) !important;
}

/* Order summary (checkout sidebar) product rows. */
.wc-block-components-order-summary-item__image img { border-radius: 10px; }
.wc-block-components-order-summary-item__description { color: var(--navy); }
/* WooCommerce's own block CSS sets this badge to "background: currentColor"
   at higher specificity (.wc-block-components-order-summary <this>) than a
   single-class selector can beat, so it was inheriting a near-white
   currentColor here and rendering as a blank white-on-white circle - the
   quantity number was in the markup the whole time, just invisible.
   Matching WC's own selector prefix is what actually wins the cascade. */
.wc-block-components-order-summary .wc-block-components-order-summary-item__quantity {
	background: var(--ink);
	color: #fff;
}
.wc-block-components-order-summary-item__quantity span { color: #fff; }

/* Checkout steps: a visible divider between "Contact information",
   "Shipping address", "Shipping options" etc. */
.wc-block-components-checkout-step { border-bottom: 1px solid var(--line); padding-bottom: 24px; margin-bottom: 24px; }
.wc-block-components-checkout-step:last-child { border-bottom: 0; margin-bottom: 0; }

.wc-block-checkout__terms { color: var(--muted); font-size: 13px; }
.wc-block-checkout__terms a { color: var(--orange); }

@media (max-width: 640px) {
	.wp-block-woocommerce-cart, .wp-block-woocommerce-checkout { padding: 20px; }
}

.wc-block-components-radio-control--highlight-checked .wc-block-components-radio-control-accordion-option--checked-option-highlighted, .wc-block-components-radio-control--highlight-checked label.wc-block-components-radio-control__option--checked-option-highlighted, .wc-block-components-quantity-selector .wc-block-components-quantity-selector__button:focus {
	box-shadow: none !important;
}
.wc-block-components-radio-control .wc-block-components-radio-control__option:not(.wc-block-components-radio-control__option-checked) {
	border: 0 !important;
}