/* ==========================================================================
   Qiyun 2026 — Pet Plush Memorial • US Market
   Palette: cream, latte, warm grey, mocha. Healing & quiet luxury.
   ========================================================================== */

:root {
	--c-cream:    #FBF7F1;
	--c-ivory:    #F5EFE6;
	--c-latte:    #E8DFD2;
	--c-sand:     #D8C9B5;
	--c-mocha:    #8C6F58;
	--c-cocoa:    #5A4632;
	--c-ink:      #2C2620;
	--c-text:     #4A3F35;
	--c-mute:     #8A7E72;
	--c-line:     #E8DFD2;
	--c-accent:   #B89272;
	--c-accent-d: #946F4F;
	--c-white:    #ffffff;

	--f-serif:    "Cormorant Garamond", Georgia, "Times New Roman", serif;
	--f-sans:     "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif;

	--radius-s:   6px;
	--radius:     12px;
	--radius-l:   24px;
	--shadow-sm:  0 2px 12px rgba(72, 56, 40, 0.06);
	--shadow:     0 12px 32px rgba(72, 56, 40, 0.10);

	--container:  1440px;
	--container-narrow: 1040px;
	--container-text:   780px;
	--gap:        32px;

	--header-h:   92px;
}

/* Reset & base ---------------------------------------------------------- */
*,*::before,*::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body {
	margin: 0;
	font-family: var(--f-sans);
	color: var(--c-text);
	background: var(--c-cream);
	font-size: 16px;
	line-height: 1.7;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
img, svg, video { max-width: 100%; height: auto; display: block; }
a { color: var(--c-cocoa); text-decoration: none; transition: color .2s ease, opacity .2s ease; }
a:hover { color: var(--c-accent-d); }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--f-serif);
	color: var(--c-ink);
	font-weight: 500;
	letter-spacing: .01em;
	line-height: 1.2;
	margin: 0 0 .5em;
}
h1 { font-size: clamp(2.4rem, 5vw, 4rem); }
h2 { font-size: clamp(1.8rem, 3.6vw, 2.8rem); }
h3 { font-size: clamp(1.3rem, 2.4vw, 1.7rem); }
h4 { font-size: 1.15rem; }
p { margin: 0 0 1em; }

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

.section { padding: 80px 0; }
.section--sm { padding: 80px 0; }
.section--alt { background: var(--c-ivory); }
.section--latte { background: var(--c-latte); }
.section__head { text-align: center; max-width: 760px; margin: 0 auto 80px; }
.section__eyebrow {
	display: inline-block; text-transform: uppercase; letter-spacing: .22em;
	font-size: .78rem; color: var(--c-accent-d); margin-bottom: 14px; font-weight: 500;
}
.section__title { margin-bottom: 18px; }
.section__sub { color: var(--c-mute); font-size: 1.05rem; }

/* Buttons --------------------------------------------------------------- */
.btn, button.btn, a.btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 8px;
	padding: 14px 30px; min-height: 50px;
	background: var(--c-cocoa); color: #fff !important;
	border: 1px solid var(--c-cocoa); border-radius: 999px;
	font-family: var(--f-sans); font-size: .95rem; font-weight: 500; letter-spacing: .04em;
	cursor: pointer; transition: all .25s ease; text-transform: uppercase;
}
.btn:hover { background: var(--c-ink); border-color: var(--c-ink); color: #fff !important; transform: translateY(-1px); }
.btn--ghost { background: transparent; color: var(--c-cocoa) !important; }
.btn--ghost:hover { background: var(--c-cocoa); color: #fff !important; }
.btn--light { background: #fff; color: var(--c-cocoa) !important; border-color: #fff; }
.btn--light:hover { background: var(--c-cream); color: var(--c-cocoa) !important; border-color: var(--c-cream); }
.btn--lg { padding: 18px 40px; min-height: 60px; font-size: 1rem; }

/* Header ---------------------------------------------------------------- */
.site-header {
	position: sticky; top: 0; z-index: 100;
	background: rgba(251, 247, 241, 0.94);
	backdrop-filter: saturate(160%) blur(12px);
	-webkit-backdrop-filter: saturate(160%) blur(12px);
	border-bottom: 1px solid var(--c-line);
	transition: box-shadow .25s ease, background .25s ease;
}
/* Thin ornamental hairline at the very top — quiet luxury detail */
.site-header::before {
	content: "";
	position: absolute;
	top: 0; left: 0; right: 0;
	height: 2px;
	background: linear-gradient(90deg,
		transparent 0%,
		rgba(184, 146, 114, 0) 8%,
		rgba(184, 146, 114, 0.55) 50%,
		rgba(184, 146, 114, 0) 92%,
		transparent 100%);
}
.site-header.is-scrolled {
	background: rgba(251, 247, 241, 0.98);
	box-shadow: 0 6px 20px rgba(72, 56, 40, 0.06);
}
.site-header__inner {
	display: flex; align-items: center; justify-content: space-between;
	min-height: var(--header-h); gap: 28px;
}

.site-brand__logo img {mix-blend-mode:multiply;}



/* Brand block ------------------------------------------------------------ */
.site-brand { display: inline-flex; align-items: center; gap: 14px; flex-shrink: 0; position: relative; }
.site-brand a { display: inline-flex; align-items: center; line-height: 1; }
.site-brand img,
.site-brand .custom-logo { max-height: 56px; width: auto; display: block; }
.site-brand .custom-logo-link { display: inline-flex; align-items: center; }
.site-brand__inline {
	display: inline-flex; align-items: center; gap: 12px;
	position: relative;
}
.site-brand__svg    { height: 48px; width: auto; display: block; }
.site-brand__svg text { font-family: var(--f-serif); }
.site-brand__wordmark { font-family: var(--f-serif); font-size: 1.7rem; font-weight: 600; color: var(--c-ink); letter-spacing: .01em; }
/* Tiny italic tagline shown next to wordmark — adds typographic depth */
.site-brand__tagline {
	display: inline-block;
	font-family: var(--f-serif);
	font-style: italic;
	font-size: .82rem;
	color: var(--c-mocha);
	letter-spacing: .02em;
	padding-left: 14px;
	margin-left: 2px;
	border-left: 1px solid var(--c-sand);
	opacity: .9;
	white-space: nowrap;
}

/* Primary navigation ---------------------------------------------------- */
.primary-nav { position: static; }
.primary-nav > div > ul,
.primary-nav > ul {
	display: flex;
	gap: 2px;
	margin: 0; padding: 0;
	list-style: none;
	align-items: center;
}
.primary-nav ul li.menu-item { position: relative; }
.primary-nav ul li.menu-item > a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	color: var(--c-cocoa);
	font-size: .78rem;
	font-weight: 500;
	letter-spacing: .22em;
	text-transform: uppercase;
	padding: 14px 16px 18px;
	transition: color .25s ease, transform .25s ease;
	position: relative;
}
/* Center-growing hairline beneath each item */
.primary-nav ul li.menu-item > a::after {
	content: "";
	position: absolute;
	left: 50%;
	right: 50%;
	bottom: 10px;
	height: 1px;
	background: var(--c-accent);
	transition: left .35s ease, right .35s ease, opacity .25s ease;
	opacity: 0;
}
.primary-nav ul li.menu-item > a:hover,
.primary-nav ul li.menu-item.current-menu-item > a,
.primary-nav ul li.menu-item.current_page_item > a,
.primary-nav ul li.menu-item.current-menu-parent > a,
.primary-nav ul li.menu-item.current-page-ancestor > a { color: var(--c-ink); transform: translateY(-1px); }
.primary-nav ul li.menu-item > a:hover::after,
.primary-nav ul li.menu-item.current-menu-item > a::after,
.primary-nav ul li.menu-item.current_page_item > a::after {
	left: 16px;
	right: 16px;
	opacity: 1;
}
/* Tiny serif ornament dot under the active item for editorial polish */
.primary-nav ul li.menu-item.current-menu-item > a::before,
.primary-nav ul li.menu-item.current_page_item > a::before {
	content: "•";
	position: absolute;
	left: 50%;
	transform: translateX(-50%);
	bottom: 1px;
	color: var(--c-accent);
	font-size: 8px;
	line-height: 1;
}

/* Mega-menu caret on Shop */
.primary-nav ul li.has-mega > a {
	padding-right: 22px;
}
.primary-nav ul li.has-mega > a > .caret,
.primary-nav ul li.has-mega > a::after { /* keep underline */ }
.primary-nav ul li.has-mega > a {
	position: relative;
}
.primary-nav ul li.has-mega > a::before {
	content: '';
	position: absolute;
	right: 6px;
	top: 50%;
	transform: translateY(-65%) rotate(45deg);
	width: 5px; height: 5px;
	border-right: 1.2px solid currentColor;
	border-bottom: 1.2px solid currentColor;
	opacity: .55;
	transition: transform .25s ease, opacity .25s ease;
	color: var(--c-cocoa);
}
.primary-nav ul li.has-mega:hover > a::before,
.primary-nav ul li.has-mega:focus-within > a::before {
	transform: translateY(-30%) rotate(225deg);
	opacity: 1;
}
/* Active state dot positioning still works on has-mega items */

/* Subtle hairline separator between the nav and the right-side tools */
.primary-nav { position: relative; }
.primary-nav::after {
	content: "";
	display: none;
}

/* SCF-driven uploaded logo */
.site-brand__logo { display: inline-flex; align-items: center; line-height: 1; }
.site-brand__logo img { max-height: 64px; width: auto; display: block; }

/* Header tools (cart + account + CTA) ----------------------------------- */
.header-tools { display: flex; align-items: center; gap: 14px; flex-shrink: 0; }
.header-tools a.cart-toggle {
	color: var(--c-cocoa);
	display: inline-flex; align-items: center; gap: 6px;
	padding: 10px 12px;
	border-radius: 999px;
	transition: background .2s ease;
	position: relative;
}
.header-tools a.cart-toggle:hover { background: rgba(184, 146, 114, 0.10); }
.header-tools .cart-count {
	background: var(--c-cocoa); color: #fff;
	border-radius: 999px;
	min-width: 22px; height: 22px; padding: 0 7px;
	display: inline-flex; align-items: center; justify-content: center;
	font-size: .72rem; font-weight: 600;
	letter-spacing: 0;
}
/* Account toggle (icon + optional label) */
.header-tools .account-toggle {
	background: none;
	border: 0;
	cursor: pointer;
	color: var(--c-cocoa);
	display: inline-flex; align-items: center; gap: 8px;
	padding: 10px 12px;
	border-radius: 999px;
	font: inherit;
	font-size: .78rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	font-weight: 500;
	transition: background .2s ease, color .2s ease;
}
.header-tools .account-toggle:hover { background: rgba(184, 146, 114, 0.10); color: var(--c-ink); }
.header-tools .account-toggle__label { display: inline; }

/* Header CTA pill (Begin Order) */
.header-tools .cta-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 10px 20px;
	min-height: 40px;
	background: var(--c-cocoa);
	color: #fff !important;
	border-radius: 999px;
	font-size: .72rem;
	font-weight: 500;
	letter-spacing: .14em;
	text-transform: uppercase;
	transition: background .2s ease, transform .2s ease, box-shadow .2s ease;
	white-space: nowrap;
}
.header-tools .cta-pill:hover {
	background: var(--c-ink);
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(72, 56, 40, 0.14);
}
.header-tools .cta-pill svg { width: 12px; height: 12px; opacity: .85; }

.menu-toggle { display: none; background: none; border: 0; width: 40px; height: 40px; cursor: pointer; }
.menu-toggle span { display: block; width: 22px; height: 1.5px; background: var(--c-ink); margin: 5px auto; transition: .3s; }

/* ============================================================
   Mega menu — pure CSS dropdown panel
   Centered to the viewport so it isn't pinned under the Shop nav item.
   ============================================================ */
.mega-menu {
	position: fixed;
	top: var(--header-h);
	left: 50%;
	transform: translateX(-50%);
	width: min(1080px, calc(100vw - 64px));
	background: var(--c-cream);
	border: 1px solid var(--c-line);
	border-radius: 18px;
	box-shadow: 0 24px 64px rgba(72, 56, 40, 0.14);
	padding: 32px;
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	/* Closing: keep visible / interactive a beat longer so a slow cursor
	   crossing the gap between the link and the panel doesn't lose hover. */
	transition: opacity .22s ease .12s, visibility 0s linear .35s;
	z-index: 999;
}
/* Open on hover / focus-within of trigger or hover of panel itself */
li.has-mega:hover > .mega-menu,
li.has-mega:focus-within > .mega-menu,
li.has-mega > .mega-menu:hover {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transition: opacity .22s ease, visibility 0s linear 0s;
}
/* Hover bridge between Shop link and the centered panel.
   Always interactive (16px sliver right under the sticky header) so a slow
   cursor doesn't fall through "nothing" and lose the hover state. */
li.has-mega::after {
	content: '';
	position: fixed;
	left: 0; right: 0;
	top: var(--header-h);
	height: 16px;
	pointer-events: auto;
	z-index: 998;
}

.mega-menu__inner {
	display: grid;
	grid-template-columns: 1.2fr 0.8fr 1fr;
	gap: 40px;
}
.mega-menu__col { min-width: 0; }
.mega-menu__heading {
	font-family: var(--f-sans);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--c-mute);
	margin: 0 0 18px;
}

/* Product cards inside mega menu */
.mega-menu__product {
	display: grid;
	grid-template-columns: 64px 1fr auto;
	gap: 16px;
	align-items: center;
	padding: 12px 14px;
	margin: 0 -14px 6px;
	border-radius: 12px;
	color: var(--c-ink) !important;
	text-decoration: none;
	transition: background .2s ease, transform .2s ease;
	letter-spacing: 0 !important;
	text-transform: none !important;
}
.mega-menu__product:hover {
	background: #fff;
	transform: translateX(2px);
}
.mega-menu__product:hover .mega-menu__arrow { transform: translateX(4px); color: var(--c-accent-d); }
.mega-menu__thumb {
	display: block;
	width: 64px; height: 64px;
	border-radius: 10px;
	overflow: hidden;
	background: var(--c-ivory);
	flex-shrink: 0;
}
.mega-menu__thumb img { width: 100%; height: 100%; object-fit: cover; }
.mega-menu__product-body { display: flex; flex-direction: column; gap: 4px; min-width: 0; }
.mega-menu__product-title {
	font-family: var(--f-serif);
	font-size: 1.05rem;
	color: var(--c-ink);
	line-height: 1.2;
}
.mega-menu__product-meta {
	font-size: .82rem;
	color: var(--c-mute);
}
.mega-menu__product-meta strong { color: var(--c-accent-d); font-weight: 600; }
.mega-menu__arrow {
	font-size: 1rem;
	color: var(--c-sand);
	transition: transform .2s ease, color .2s ease;
}

/* Link list */
.mega-menu__list { list-style: none; margin: 0; padding: 0; }
.mega-menu__list li { margin: 0; }
.mega-menu__list li a {
	display: block;
	padding: 10px 12px;
	margin: 0 -12px;
	border-radius: 8px;
	color: var(--c-cocoa) !important;
	font-size: .95rem;
	letter-spacing: 0 !important;
	text-transform: none !important;
	font-weight: 400 !important;
	transition: background .15s ease, color .15s ease, padding .15s ease;
}
.mega-menu__list li a:hover {
	background: #fff;
	color: var(--c-ink) !important;
	padding-left: 16px;
}

/* Feature column */
.mega-menu__feature {
	background: #fff;
	border-radius: 14px;
	padding: 26px 26px 28px;
	border: 1px solid var(--c-line);
	height: 100%;
	display: flex;
	flex-direction: column;
}
.mega-menu__feature-eyebrow {
	display: inline-block;
	font-size: .68rem;
	letter-spacing: .22em;
	text-transform: uppercase;
	color: var(--c-accent-d);
	font-weight: 600;
	margin-bottom: 10px;
}
.mega-menu__feature-quote {
	font-family: var(--f-serif);
	font-size: 1.1rem;
	font-style: italic;
	color: var(--c-ink);
	line-height: 1.45;
	margin: 0 0 12px;
}
.mega-menu__feature-body {
	font-size: .85rem;
	color: var(--c-mute);
	line-height: 1.6;
	margin: 0 0 18px;
	flex: 1;
}
.mega-menu__feature-btn {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	align-self: flex-start;
	color: var(--c-accent-d) !important;
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 8px 0;
	border-bottom: 1px solid var(--c-accent);
	transition: gap .2s ease;
}
.mega-menu__feature-btn:hover { gap: 12px; color: var(--c-ink) !important; }

/* Mini-cart drawer -----------------------------------------------------*/
.mini-cart { position: fixed; inset: 0; z-index: 1000; pointer-events: none; visibility: hidden; }
.mini-cart.is-open { pointer-events: auto; visibility: visible; }
.mini-cart__backdrop { position: absolute; inset: 0; background: rgba(28, 22, 16, 0); transition: background .35s ease; cursor: pointer; }
.mini-cart.is-open .mini-cart__backdrop { background: rgba(28, 22, 16, 0.42); }
.mini-cart__panel {
	position: absolute; top: 0; right: 0; bottom: 0;
	width: 440px; max-width: 92vw;
	background: var(--c-cream);
	box-shadow: -16px 0 48px rgba(28, 22, 16, 0.12);
	transform: translateX(100%);
	transition: transform .35s cubic-bezier(.4,.2,.2,1);
	display: flex; flex-direction: column;
}
.mini-cart.is-open .mini-cart__panel { transform: translateX(0); }

.mini-cart__head { display: flex; align-items: center; justify-content: space-between; padding: 22px 28px; border-bottom: 1px solid var(--c-line); }
.mini-cart__head h3 { font-family: var(--f-serif); font-size: 1.4rem; margin: 0; color: var(--c-ink); }
.mini-cart__count { color: var(--c-mute); font-weight: 400; font-size: 1.1rem; margin-left: 4px; }
.mini-cart__close { background: none; border: 0; cursor: pointer; padding: 4px; color: var(--c-cocoa); border-radius: 50%; width: 36px; height: 36px; display: inline-flex; align-items: center; justify-content: center; transition: background .2s ease; }
.mini-cart__close:hover { background: var(--c-ivory); }

.mini-cart__body { flex: 1; overflow-y: auto; }
.mini-cart__inner { padding: 24px 28px; display: flex; flex-direction: column; min-height: 100%; }

.mini-cart__empty { text-align: center; padding: 56px 16px; flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; }
.mini-cart__empty svg { color: var(--c-sand); margin-bottom: 8px; }
.mini-cart__empty p { margin: 0; }
.mini-cart__empty p:first-of-type { font-family: var(--f-serif); font-size: 1.2rem; color: var(--c-ink); }
.mini-cart__empty .btn { margin-top: 16px; }

.mini-cart__items { list-style: none; margin: 0 0 24px; padding: 0; }
.mini-cart__item { display: grid; grid-template-columns: 72px 1fr 24px; gap: 16px; padding: 18px 0; border-bottom: 1px solid var(--c-line); position: relative; }
.mini-cart__item-media { width: 72px; height: 72px; border-radius: 8px; overflow: hidden; background: var(--c-ivory); }
.mini-cart__item-media img { width: 100%; height: 100%; object-fit: cover; }
.mini-cart__item-body { min-width: 0; }
.mini-cart__item-title { font-family: var(--f-serif); font-size: 1.05rem; color: var(--c-ink); margin-bottom: 6px; line-height: 1.3; }
.mini-cart__item-meta { color: var(--c-mute); font-size: .82rem; line-height: 1.5; margin-bottom: 6px; }
.mini-cart__item-meta div { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.mini-cart__item-meta strong { color: var(--c-cocoa); font-weight: 600; }
.mini-cart__item-price { color: var(--c-accent-d); font-family: var(--f-serif); font-size: 1.1rem; font-weight: 500; }
.mini-cart__remove { background: none; border: 0; color: var(--c-mute); cursor: pointer; font-size: 22px; line-height: 1; padding: 0; align-self: flex-start; transition: color .2s ease; }
.mini-cart__remove:hover { color: var(--c-cocoa); }

.mini-cart__totals { padding: 20px 0 16px; border-top: 1px solid var(--c-line); margin-top: auto; }
.mini-cart__total-row { display: flex; justify-content: space-between; align-items: baseline; font-family: var(--f-serif); font-size: 1.3rem; color: var(--c-ink); }
.mini-cart__subtotal { color: var(--c-accent-d); font-weight: 500; }
.mini-cart__note { font-size: .82rem; margin: 8px 0 0; }

.mini-cart__actions { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding-top: 16px; }
.mini-cart__actions .btn { width: 100%; padding: 14px 18px; font-size: .85rem; }

/* Loading state during AJAX */
.mini-cart__body.is-loading { opacity: .5; pointer-events: none; }

/* Body scroll lock when drawer open */
body.mini-cart-open { overflow: hidden; }
/* (Mini-cart mobile rules are consolidated in the main responsive block below.) */

/* ============================================================
   Auth modal — Sign in / Register tabbed dialog
   ============================================================ */
.auth-modal { position: fixed; inset: 0; z-index: 1100; pointer-events: none; visibility: hidden; }
.auth-modal.is-open { pointer-events: auto; visibility: visible; }
.auth-modal__backdrop {
	position: absolute; inset: 0;
	background: rgba(28, 22, 16, 0);
	transition: background .35s ease;
	cursor: pointer;
}
.auth-modal.is-open .auth-modal__backdrop { background: rgba(28, 22, 16, 0.5); }
.auth-modal__panel {
	position: absolute;
	left: 50%; top: 50%;
	transform: translate(-50%, -45%) scale(0.97);
	width: 440px; max-width: calc(100vw - 32px);
	max-height: calc(100vh - 32px);
	background: var(--c-cream);
	border-radius: 18px;
	box-shadow: 0 24px 64px rgba(28, 22, 16, 0.22);
	padding: 40px 36px 36px;
	overflow-y: auto;
	opacity: 0;
	transition: transform .35s cubic-bezier(.4,.2,.2,1), opacity .25s ease;
}
.auth-modal.is-open .auth-modal__panel { transform: translate(-50%, -50%) scale(1); opacity: 1; }

.auth-modal__close {
	position: absolute;
	top: 14px; right: 14px;
	background: none; border: 0; cursor: pointer;
	width: 36px; height: 36px;
	border-radius: 50%;
	color: var(--c-cocoa);
	display: inline-flex; align-items: center; justify-content: center;
	transition: background .15s ease;
}
.auth-modal__close:hover { background: var(--c-ivory); }

.auth-modal__head { text-align: center; margin-bottom: 24px; }
.auth-modal__title {
	font-family: var(--f-serif);
	font-size: 1.8rem;
	font-weight: 500;
	color: var(--c-ink);
	margin: 0 0 8px;
}
.auth-modal__sub {
	color: var(--c-mute);
	font-size: .92rem;
	line-height: 1.5;
	margin: 0;
}

.auth-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: var(--c-ivory);
	border-radius: 999px;
	padding: 4px;
	margin-bottom: 24px;
	position: relative;
}
.auth-tab {
	background: transparent;
	border: 0;
	cursor: pointer;
	padding: 10px 16px;
	font-family: var(--f-sans);
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c-mute);
	border-radius: 999px;
	transition: color .25s ease, background .25s ease;
}
.auth-tab.is-active {
	background: #fff;
	color: var(--c-ink);
	box-shadow: 0 1px 4px rgba(28, 22, 16, 0.08);
}

.auth-form { display: none; flex-direction: column; gap: 16px; }
.auth-form.is-active { display: flex; }

.auth-field { display: flex; flex-direction: column; gap: 6px; }
.auth-field label {
	font-size: .78rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c-cocoa);
	font-weight: 500;
}
.auth-field label small.muted { letter-spacing: 0; text-transform: none; font-weight: 400; color: var(--c-mute); margin-left: 4px; }
.auth-field input {
	width: 100%;
	padding: 14px 16px;
	min-height: 50px;
	border: 1px solid var(--c-line);
	border-radius: 10px;
	background: #fff;
	color: var(--c-ink);
	font-family: var(--f-sans);
	font-size: 1rem;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.auth-field input:focus {
	outline: none;
	border-color: var(--c-accent);
	box-shadow: 0 0 0 3px rgba(184, 146, 114, 0.14);
}

.auth-remember {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: .9rem;
	color: var(--c-cocoa);
	cursor: pointer;
	margin: -4px 0 4px;
}
.auth-remember input { width: 16px; height: 16px; accent-color: var(--c-cocoa); }

.auth-submit {
	margin-top: 8px;
	padding: 14px 24px;
	min-height: 52px;
	background: var(--c-cocoa);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font-family: var(--f-sans);
	font-size: .85rem;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .25s ease, transform .15s ease;
}
.auth-submit:hover:not(:disabled) { background: var(--c-ink); transform: translateY(-1px); }
.auth-submit:disabled { opacity: .55; cursor: not-allowed; }

.auth-form__feedback {
	min-height: 0;
	font-size: .88rem;
	color: #b34a4a;
	margin-top: -4px;
}
.auth-form__feedback.is-success { color: #4a7a3f; }
.auth-form__foot { text-align: center; margin-top: 4px; }

.auth-link {
	color: var(--c-accent-d);
	font-size: .85rem;
	border-bottom: 1px dashed var(--c-accent);
}
.auth-link:hover { color: var(--c-cocoa); border-color: var(--c-cocoa); }

.auth-policy { font-size: .78rem; line-height: 1.5; color: var(--c-mute); margin: 0; }
.auth-policy a { color: var(--c-accent-d); border-bottom: 1px dashed var(--c-accent); }

/* Style the native wp_login_form() output so it matches our modal design */
.auth-form > #qiyun-signin-form { display: flex; flex-direction: column; gap: 16px; margin: 0; }
.auth-form > #qiyun-signin-form p { margin: 0; display: flex; flex-direction: column; gap: 6px; }
.auth-form > #qiyun-signin-form label[for="qiyun-user_login"],
.auth-form > #qiyun-signin-form label[for="qiyun-user_pass"] {
	font-size: .78rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c-cocoa);
	font-weight: 500;
}
.auth-form > #qiyun-signin-form input[type="text"],
.auth-form > #qiyun-signin-form input[type="password"] {
	width: 100%;
	padding: 14px 16px;
	min-height: 50px;
	border: 1px solid var(--c-line);
	border-radius: 10px;
	background: #fff;
	color: var(--c-ink);
	font-family: var(--f-sans);
	font-size: 1rem;
	box-shadow: none;
}
.auth-form > #qiyun-signin-form input[type="text"]:focus,
.auth-form > #qiyun-signin-form input[type="password"]:focus {
	outline: none;
	border-color: var(--c-accent);
	box-shadow: 0 0 0 3px rgba(184, 146, 114, 0.14);
}
.auth-form > #qiyun-signin-form .login-remember { flex-direction: row; align-items: center; gap: 8px; }
.auth-form > #qiyun-signin-form .login-remember label {
	display: inline-flex; align-items: center; gap: 8px;
	text-transform: none; letter-spacing: 0; font-size: .9rem; font-weight: 400;
	color: var(--c-cocoa); cursor: pointer;
	margin: 0;
}
.auth-form > #qiyun-signin-form .login-remember input[type="checkbox"] {
	width: 16px; height: 16px; accent-color: var(--c-cocoa); margin: 0;
}
.auth-form > #qiyun-signin-form .login-submit { margin-top: 4px; }
.auth-form > #qiyun-signin-form input#qiyun-wp-submit,
.auth-form > #qiyun-signin-form .button {
	width: 100%;
	padding: 14px 24px;
	min-height: 52px;
	background: var(--c-cocoa);
	color: #fff;
	border: 0;
	border-radius: 999px;
	font-family: var(--f-sans);
	font-size: .85rem;
	font-weight: 500;
	letter-spacing: .12em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .25s ease, transform .15s ease;
}
.auth-form > #qiyun-signin-form input#qiyun-wp-submit:hover { background: var(--c-ink); transform: translateY(-1px); }

body.auth-modal-open { overflow: hidden; }

@media (max-width: 540px) {
	.auth-modal__panel { padding: 32px 24px 28px; }
	.auth-modal__title { font-size: 1.5rem; }
	.auth-field input { font-size: .95rem; padding: 12px 14px; min-height: 46px; }
}

/* Hero / Banner -------------------------------------------------------- */
.hero {
	position: relative; min-height: 92vh; display: flex; align-items: center;
	color: var(--c-ink);
	background: linear-gradient(135deg, #F5EFE6 0%, #EDE2D2 50%, #E8DFD2 100%);
	overflow: hidden;
}
.hero__bg { position: absolute; inset: 0; z-index: 0; }
.hero__bg img { width: 100%; height: 100%; object-fit: cover; opacity: .85; }
.hero__bg::after { content: ""; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(245,239,230,.92) 0%, rgba(245,239,230,.55) 55%, rgba(245,239,230,0) 100%); }
.hero__inner { position: relative; z-index: 2; padding: 120px 0; }
.hero__eyebrow { display: inline-block; text-transform: uppercase; letter-spacing: .3em; font-size: .8rem; color: var(--c-accent-d); margin-bottom: 28px; font-weight: 500; }
.hero h1 { max-width: 820px; margin-bottom: 28px; line-height: 1.08; }
.hero h1 em { font-style: italic; color: var(--c-accent-d); }
.hero__lead { max-width: 620px; font-size: 1.18rem; color: var(--c-cocoa); margin-bottom: 44px; line-height: 1.65; }
.hero__cta { display: flex; gap: 18px; flex-wrap: wrap; }
.hero__meta { margin-top: 60px; display: flex; gap: 40px; flex-wrap: wrap; color: var(--c-mocha); font-size: .92rem; }
.hero__meta div { display: flex; align-items: center; gap: 8px; }

/* Value props ---------------------------------------------------------- */
.values { display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; }
.value-card { text-align: center; padding: 16px 8px; }
.value-card__icon { width: 64px; height: 64px; border-radius: 50%; background: var(--c-ivory); display: inline-flex; align-items: center; justify-content: center; margin-bottom: 22px; color: var(--c-accent-d); font-size: 24px; }
.value-card h4 { font-family: var(--f-serif); margin-bottom: 12px; font-size: 1.2rem; }
.value-card p { color: var(--c-mute); font-size: .95rem; line-height: 1.65; }

/* Category cards ------------------------------------------------------- */
.cat-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 40px; }
.cat-card { position: relative; border-radius: var(--radius-l); overflow: hidden; background: var(--c-ivory); aspect-ratio: 4 / 3; box-shadow: var(--shadow-sm); transition: transform .4s ease, box-shadow .4s ease; display: block; }
.cat-card:hover { transform: translateY(-4px); box-shadow: var(--shadow); }
.cat-card img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.cat-card:hover img { transform: scale(1.04); }
.cat-card__overlay { position: absolute; inset: 0; background: linear-gradient(0deg, rgba(44,38,32,.72) 0%, rgba(44,38,32,.05) 55%, rgba(44,38,32,0) 100%); display: flex; flex-direction: column; justify-content: flex-end; padding: 44px; color: #fff; }
.cat-card__overlay h3 { color: #fff; margin-bottom: 8px; font-size: 1.7rem; }
.cat-card__overlay p { color: rgba(255,255,255,.88); margin-bottom: 20px; font-size: 1rem; }
.cat-card__price { display: inline-block; font-family: var(--f-serif); font-size: 1.5rem; color: var(--c-accent); margin-bottom: 16px; }
.cat-card__btn { display: inline-flex; align-items: center; gap: 8px; color: #fff; font-size: .85rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 500; padding: 10px 0; border-bottom: 1px solid rgba(255,255,255,.5); align-self: flex-start; }

/* Process -------------------------------------------------------------- */
.process { display: grid; grid-template-columns: repeat(4, 1fr); gap: 48px; counter-reset: step; }
.process-step { text-align: center; position: relative; }
.process-step__num { width: 64px; height: 64px; border-radius: 50%; background: #fff; border: 1px solid var(--c-latte); display: inline-flex; align-items: center; justify-content: center; font-family: var(--f-serif); font-size: 1.5rem; color: var(--c-accent-d); margin-bottom: 24px; }
.process-step h4 { margin-bottom: 10px; font-size: 1.2rem; }
.process-step p { color: var(--c-mute); font-size: .95rem; line-height: 1.65; }

/* Craft / About strip -------------------------------------------------- */
.craft { display: grid; grid-template-columns: 1fr 1fr; gap: 80px; align-items: center; }
.craft__media { border-radius: var(--radius-l); overflow: hidden; aspect-ratio: 4/5; background: var(--c-latte); }
.craft__media img { width:100%; height:100%; object-fit: cover; }
.craft ul { list-style: none; padding: 0; margin: 28px 0 36px; }
.craft ul li { padding: 14px 0; border-bottom: 1px solid var(--c-line); display: flex; gap: 14px; align-items: center; color: var(--c-cocoa); font-size: 1.02rem; }
.craft ul li::before { content: "✦"; color: var(--c-accent); }
.craft h2 { margin-bottom: 20px; }
.craft p { font-size: 1.05rem; line-height: 1.8; }

/* Gallery / case --------------------------------------------------------*/
.gallery-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.gallery-item { border-radius: var(--radius); overflow: hidden; background: var(--c-ivory); aspect-ratio: 1/1; position: relative; }
.gallery-item img { width:100%; height:100%; object-fit: cover; transition: transform .6s ease; }
.gallery-item:hover img { transform: scale(1.05); }
.gallery-item__caption { position: absolute; left: 0; right: 0; bottom: 0; padding: 20px 24px; color: #fff; background: linear-gradient(0deg, rgba(44,38,32,.75), transparent); font-size: .9rem; }

/* Compare slider -------------------------------------------------------- */
.compare-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 4px; border-radius: var(--radius); overflow: hidden; background: var(--c-latte); }
.compare-pair figure { margin: 0; position: relative; aspect-ratio: 1/1; background: var(--c-ivory); }
.compare-pair figure img { width:100%; height:100%; object-fit: cover; }
.compare-pair figcaption { position: absolute; left: 14px; bottom: 14px; padding: 6px 14px; background: rgba(251,247,241,.92); border-radius: 999px; font-size: .8rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-cocoa); }

/* Free-form WYSIWYG content in the "Photo ↔ Plush" tab */
.compare-content { line-height: 1.7; color: var(--c-text); }
.compare-content > *:first-child { margin-top: 0; }
.compare-content > *:last-child { margin-bottom: 0; }
.compare-content p { margin: 0 0 1em; }
.compare-content img { max-width: 100%; height: auto; border-radius: var(--radius); display: block; margin: 18px 0; }
.compare-content img.alignleft  { float: left;  margin: 8px 22px 16px 0; max-width: 50%; }
.compare-content img.alignright { float: right; margin: 8px 0 16px 22px; max-width: 50%; }
.compare-content img.aligncenter { margin-left: auto; margin-right: auto; }
.compare-content .wp-caption { max-width: 100%; }
.compare-content .wp-caption-text { font-size: .85rem; color: var(--c-mute); text-align: center; margin-top: 6px; }
.compare-content h2, .compare-content h3, .compare-content h4 { font-family: var(--f-serif); color: var(--c-ink); margin: 28px 0 12px; }
.compare-content ul, .compare-content ol { padding-left: 1.4em; margin: 0 0 1em; }
.compare-content li { margin-bottom: .4em; }
.compare-content a { color: var(--c-accent-d); border-bottom: 1px dashed var(--c-accent); }
.compare-content a:hover { color: var(--c-cocoa); border-color: var(--c-cocoa); }
.compare-content::after { content: ''; display: table; clear: both; }
@media (max-width: 720px) {
	.compare-content img.alignleft, .compare-content img.alignright { float: none; max-width: 100%; margin: 14px 0; }
}

/* Testimonials --------------------------------------------------------- */
.testimonial-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; }
.testimonial { background: #fff; border-radius: var(--radius-l); padding: 44px 40px; border: 1px solid var(--c-line); }
.testimonial__quote { font-family: var(--f-serif); font-size: 1.25rem; line-height: 1.55; color: var(--c-cocoa); margin-bottom: 28px; font-style: italic; }
.testimonial__author { display: flex; align-items: center; gap: 14px; }
.testimonial__avatar { width: 52px; height: 52px; border-radius: 50%; background: var(--c-latte); overflow: hidden; flex: 0 0 52px; }
.testimonial__avatar img { width: 100%; height: 100%; object-fit: cover; }
.testimonial__name { font-weight: 600; color: var(--c-ink); font-size: .98rem; }
.testimonial__location { color: var(--c-mute); font-size: .85rem; }

/* Trust strip / CTA band ----------------------------------------------- */
.cta-band { background: var(--c-cocoa); color: #fff; padding: 110px 0; text-align: center; }
.cta-band h2 { color: #fff; max-width: 720px; margin-left: auto; margin-right: auto; margin-bottom: 24px; }
.cta-band p { color: rgba(255,255,255,.82); max-width: 680px; margin: 0 auto 36px; font-size: 1.1rem; line-height: 1.65; }

/* Footer --------------------------------------------------------------- */
.site-footer { background: var(--c-ink); color: rgba(255,255,255,.7); padding: 96px 0 32px; }
.site-footer h4 { color: #fff; font-family: var(--f-serif); font-size: 1.2rem; margin-bottom: 22px; }
.site-footer a { color: rgba(255,255,255,.7); }
.site-footer a:hover { color: #fff; }
.footer-grid { display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 64px; padding-bottom: 64px; border-bottom: 1px solid rgba(255,255,255,.1); }
.footer-brand p { max-width: 380px; line-height: 1.8; font-size: .96rem; }
.footer-widget ul { list-style: none; margin: 0; padding: 0; }
.footer-widget li { margin-bottom: 12px; font-size: .94rem; }
.footer-bottom { display: flex; justify-content: space-between; align-items: center; padding-top: 28px; font-size: .85rem; color: rgba(255,255,255,.5); flex-wrap: wrap; gap: 12px; }
.footer-bottom a { color: rgba(255,255,255,.6); }
.social-row { display: flex; gap: 14px; margin-top: 20px; }
.social-row a { width: 38px; height: 38px; border-radius: 50%; background: rgba(255,255,255,.08); display: inline-flex; align-items: center; justify-content: center; }
.social-row a:hover { background: var(--c-accent); }

/* Page header (inner pages) — compact, focused */
.page-banner { padding: 52px 0 40px; background: var(--c-ivory); text-align: center; }
.page-banner h1 { margin-bottom: 0; max-width: 880px; margin-left: auto; margin-right: auto; font-size: clamp(1.9rem, 3.4vw, 2.6rem); line-height: 1.18; }
.page-banner p { color: var(--c-mute); max-width: 640px; margin: 12px auto 0; font-size: 1rem; line-height: 1.55; }
.page-banner .section__eyebrow { margin-bottom: 10px; font-size: .72rem; }
.breadcrumb { font-size: .78rem; color: var(--c-mute); margin-bottom: 14px; letter-spacing: .12em; text-transform: uppercase; }
.breadcrumb a { color: var(--c-mute); }
.breadcrumb a:hover { color: var(--c-cocoa); }
.breadcrumb .sep { margin: 0 4px; opacity: .5; }
/* (Mobile page-banner sizing handled in main responsive block below.) */

/* Product / Shop ------------------------------------------------------- */
/* Desktop: always 4 columns regardless of total product count. */
.shop-grid,
ul.products,
.woocommerce ul.products {
	list-style: none; padding: 0; margin: 0 !important;
	max-width: none !important;
	display: grid !important;
	grid-template-columns: repeat(4, 1fr) !important;
	gap: 32px !important;
}
ul.products li.product,
ul.products li.product-card,
.woocommerce ul.products li.product { width: auto !important; max-width: none !important; min-width: 0 !important; margin: 0 !important; padding: 0 !important; float: none !important; clear: none !important; list-style: none; }
ul.products li::before, ul.products li::after,
ul.products::before, ul.products::after { content: none; display: none; }

/* Legacy column classes neutralised — desktop is always 4 columns */
ul.products.columns-1,
ul.products.columns-2,
ul.products.columns-3,
ul.products.columns-4,
ul.products.products--one,
ul.products.products--two,
ul.products.products--few,
ul.products.products--many { grid-template-columns: repeat(4, 1fr) !important; max-width: none !important; }

.product-card { background: #fff; border-radius: var(--radius-l); overflow: hidden; border: 1px solid var(--c-line); transition: all .3s ease; display: flex; flex-direction: column; }
.product-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.product-card__media { aspect-ratio: 1/1; overflow: hidden; background: var(--c-ivory); display: block; }
.product-card__media img { width:100%; height:100%; object-fit: cover; transition: transform .5s ease; }
.product-card:hover .product-card__media img { transform: scale(1.04); }
.product-card__body { padding: 22px 22px 26px; text-align: center; display: flex; flex-direction: column; gap: 6px; flex: 1; }
.product-card__title { font-family: var(--f-serif); font-size: 1.2rem; margin: 0; line-height: 1.3; }
.product-card__title a { color: var(--c-ink); }
.product-card__price { color: var(--c-accent-d); font-size: 1.05rem; font-weight: 500; font-family: var(--f-serif); margin: 4px 0 10px; }
.product-card__body .btn { align-self: center; margin-top: auto; padding: 10px 20px; min-height: 40px; font-size: .8rem; }
.product-card__body .muted { font-size: .82rem; line-height: 1.4; }

/* Single product ------------------------------------------------------- */
.single-product .product-layout { display: grid; grid-template-columns: 1.1fr 1fr; gap: 80px; align-items: flex-start; padding: 72px 0 96px; }
.product-gallery__main { border-radius: var(--radius-l); overflow: hidden; background: var(--c-ivory); aspect-ratio: 1/1; margin-bottom: 16px; }
.product-gallery__main img { width:100%; height:100%; object-fit: cover; }
.product-gallery__thumbs { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; }
.product-gallery__thumbs img { aspect-ratio: 1/1; object-fit: cover; border-radius: 8px; cursor: pointer; opacity: .65; transition: opacity .2s ease; }
.product-gallery__thumbs img:hover, .product-gallery__thumbs img.active { opacity: 1; }

.product-summary h1 { font-size: clamp(2.2rem, 3.6vw, 2.8rem); margin-bottom: 10px; }
.product-summary .price { color: var(--c-accent-d); font-family: var(--f-serif); font-size: 2.4rem; font-weight: 500; margin: 12px 0 22px; }
.product-summary .price del { color: var(--c-mute); font-size: 1.3rem; margin-right: 10px; }
.product-summary .short-description { font-size: 1.05rem; line-height: 1.75; color: var(--c-text); }

.product-meta-list { list-style: none; padding: 0; margin: 28px 0 32px; }
.product-meta-list li { padding: 14px 0; border-top: 1px solid var(--c-line); display: flex; gap: 16px; }
.product-meta-list li:last-child { border-bottom: 1px solid var(--c-line); }
.product-meta-list dt { font-weight: 600; color: var(--c-ink); flex: 0 0 150px; font-size: .9rem; letter-spacing: .04em; }
.product-meta-list dd { margin: 0; color: var(--c-cocoa); font-size: .98rem; }

.warn-box { background: #FBF1E6; border-left: 3px solid var(--c-accent); padding: 16px 22px; border-radius: 6px; color: var(--c-cocoa); margin: 24px 0; font-size: .95rem; line-height: 1.6; }
.warn-box strong { color: var(--c-accent-d); }
.muted-strong { color: var(--c-accent-d); font-weight: 500; }

/* ============================================================
   Order Rules — prominent timing + final-sale block on product page
   ============================================================ */
.order-rules {
	margin: 28px 0 32px;
	padding: 24px 26px 28px;
	background: var(--c-ivory);
	border-radius: 16px;
	border: 1px solid var(--c-line);
	position: relative;
}
.order-rules__head {
	display: flex;
	align-items: center;
	gap: 14px;
	margin-bottom: 18px;
}
.order-rules__head::after {
	content: '';
	flex: 1;
	height: 1px;
	background: linear-gradient(90deg, var(--c-sand), transparent);
}
.order-rules__eyebrow {
	display: inline-block;
	font-size: .7rem;
	letter-spacing: .26em;
	text-transform: uppercase;
	color: var(--c-accent-d);
	font-weight: 600;
}

.order-rules__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.order-rules__card {
	display: flex;
	gap: 12px;
	padding: 16px;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	align-items: flex-start;
	transition: transform .2s ease, box-shadow .2s ease;
}
.order-rules__card:hover { transform: translateY(-2px); box-shadow: 0 4px 16px rgba(72,56,40,0.06); }
.order-rules__card--accent { border-color: var(--c-sand); background: linear-gradient(180deg, #fff 0%, #FCF8F1 100%); }
.order-rules__card--warn {
	border-color: var(--c-sand);
	background: linear-gradient(180deg, #fff 0%, #FBF1E6 100%);
}

.order-rules__icon {
	flex: 0 0 36px;
	width: 36px; height: 36px;
	border-radius: 50%;
	background: var(--c-cream);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--c-mocha);
}
.order-rules__card--accent .order-rules__icon { background: rgba(184,146,114,0.14); color: var(--c-accent-d); }
.order-rules__card--warn .order-rules__icon { background: rgba(184,146,114,0.18); color: var(--c-accent-d); }
.order-rules__icon svg { width: 18px; height: 18px; }

.order-rules__body { min-width: 0; flex: 1; }
.order-rules__title {
	font-family: var(--f-sans);
	font-size: .68rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	color: var(--c-mute);
	margin: 0 0 6px;
	font-weight: 600;
}
.order-rules__lead {
	margin: 0 0 4px;
	font-family: var(--f-serif);
	font-size: 1.05rem;
	color: var(--c-ink);
	line-height: 1.3;
}
.order-rules__lead strong { color: var(--c-accent-d); font-weight: 600; }
.order-rules__note {
	margin: 0;
	font-size: .8rem;
	line-height: 1.5;
	color: var(--c-mute);
}

/* Tablet — 3 columns → 1 column stacked (3 rows side-by-side icons) */
@media (max-width: 980px) {
	.order-rules__grid { grid-template-columns: 1fr; gap: 10px; }
	.order-rules__card { padding: 14px 16px; }
	.order-rules__lead { font-size: 1rem; }
}

/* ============================================================
   Best-for recommendation badge (top of product summary)
   ============================================================ */
.best-for-badge {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 6px 14px 6px 10px;
	background: rgba(184, 146, 114, 0.12);
	border-radius: 999px;
	color: var(--c-accent-d);
	font-size: .78rem;
	letter-spacing: .04em;
	margin-bottom: 14px;
}
.best-for-badge svg { width: 14px; height: 14px; flex-shrink: 0; color: var(--c-accent-d); }
.best-for-badge strong { font-weight: 600; color: var(--c-cocoa); }

/* ============================================================
   Customization option blocks (Posture / Tail / Ear / Mouth / Slots)
   ============================================================ */
.opt-block { }
.opt-block__head {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 12px;
	margin-bottom: 10px;
	flex-wrap: wrap;
}
.opt-block__title {
	display: inline-block;
	font-size: .85rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c-cocoa);
	font-weight: 500;
}
.opt-block__hint {
	font-size: .75rem;
	color: var(--c-mute);
	font-style: italic;
}

.opt-grid {
	display: grid;
	gap: 10px;
}
.opt-grid--2 { grid-template-columns: repeat(2, 1fr); }
.opt-grid--3 { grid-template-columns: repeat(3, 1fr); }
.opt-grid--4 { grid-template-columns: repeat(4, 1fr); }

.opt-card {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 14px 8px 12px;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	cursor: pointer;
	text-align: center;
	transition: border-color .2s ease, background .2s ease, transform .15s ease, box-shadow .2s ease;
	min-height: 0;
}
.opt-card input { position: absolute; opacity: 0; pointer-events: none; width: 0; height: 0; }
.opt-card:hover { border-color: var(--c-sand); transform: translateY(-1px); }
.opt-card.is-selected {
	border-color: var(--c-accent);
	background: linear-gradient(180deg, #fff 0%, #FCF7EE 100%);
	box-shadow: 0 0 0 3px rgba(184, 146, 114, 0.10);
}

.opt-card__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 80%;
	height: auto;
	color: var(--c-cocoa);
	margin-top: 2px;
}
.opt-card__icon svg { width: 100%; height: 100%; }
.opt-card__icon--lg { width: 80%; height: auto; }

.opt-card.is-selected .opt-card__icon { color: var(--c-accent-d); }

.opt-card__name {
	font-family: var(--f-serif);
	font-size: .95rem;
	line-height: 1.25;
	color: var(--c-ink);
	letter-spacing: 0;
}
.opt-card__name small {
	display: block;
	font-family: var(--f-sans);
	font-size: .72rem;
	font-style: italic;
	color: var(--c-mute);
	font-weight: 400;
	letter-spacing: 0;
	text-transform: none;
	margin-top: 2px;
}
.opt-card__sub {
	font-size: .7rem;
	font-style: italic;
	color: var(--c-mute);
	letter-spacing: 0;
	text-transform: none;
}
.opt-card__check {
	position: absolute;
	top: 8px;
	right: 8px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: var(--c-accent);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 600;
	opacity: 0;
	transform: scale(.6);
	transition: opacity .15s ease, transform .15s ease;
}
.opt-card.is-selected .opt-card__check { opacity: 1; transform: scale(1); }

/* Disabled state (e.g., cats can't pick "Standing") */
.opt-card.is-disabled {
	opacity: .45;
	cursor: not-allowed;
	background: var(--c-cream);
}
.opt-card.is-disabled:hover { transform: none; border-color: var(--c-line); }

/* Image-style cards (Ears) — larger icon, taller card */
.opt-card--image { padding: 18px 12px 14px; min-height: 130px; }
.opt-card--image .opt-card__name { margin-top: 4px; }

/* Ear pair — two independent fieldsets side-by-side */
.ear-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.ear-states {width:66%;}
.ear-side { margin: 0; padding: 14px 14px 10px; border: 1px solid var(--c-line); border-radius: 12px; background: rgba(245,239,230,0.4); }
.ear-side__label {
	display: block;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--c-mute);
	font-weight: 600;
	margin: 0 0 10px;
	padding: 0;
}
.ear-side .opt-grid--2 { gap: 8px; }
.ear-side .opt-card--image { min-height: 110px; padding: 14px 8px 10px; }
@media (max-width: 720px) {
	.ear-states { width:100%; }
}

/* ============================================================
   Reference Picture upload slots (9 slots)
   ============================================================ */
.slot-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}
.slot {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 14px 8px;
	background: var(--c-cream);
	border: 1px dashed var(--c-sand);
	border-radius: 12px;
	cursor: pointer;
	text-align: center;
	transition: border-color .2s ease, background .2s ease;
}
.slot:hover { border-color: var(--c-accent); background: #fff; }
.slot.is-uploaded { border-style: solid; border-color: var(--c-accent); background: #fff; }

.slot__preview {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	background: #fff;
	border-radius: 10px;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	border: 1px solid var(--c-line);
}
.slot__icon {
	color: var(--c-sand);
	width: 80%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.slot__icon svg { width: 100%; height: 100%; }
.slot__cloud {
	position: absolute;
	bottom: 8px;
	right: 8px;
	width: 28px; height: 28px;
	border-radius: 50%;
	background: var(--c-cocoa);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-shadow: 0 2px 8px rgba(28,22,16,0.18);
	transition: transform .15s ease, background .15s ease;
}
.slot__cloud svg { width: 16px; height: 16px; }
.slot:hover .slot__cloud { transform: scale(1.08); background: var(--c-ink); }

/* Uploaded image fills the preview, hiding icon + cloud overlay */
.slot.is-uploaded .slot__icon { display: none; }
.slot.is-uploaded .slot__cloud { background: var(--c-accent); }
.slot__preview img.slot__img {
	position: absolute;
	inset: 0;
	width: 100%; height: 100%;
	object-fit: cover;
	border-radius: 10px;
	z-index: 1;
}
.slot.is-uploaded .slot__cloud { z-index: 2; }

.slot__label {
	font-size: .78rem;
	color: var(--c-cocoa);
	letter-spacing: .02em;
}
.slot.is-uploaded .slot__label { color: var(--c-accent-d); font-weight: 600; }

.slot__remove {
	position: absolute;
	top: 6px; right: 6px;
	width: 22px; height: 22px;
	border-radius: 50%;
	background: rgba(255,255,255,0.95);
	border: 1px solid var(--c-line);
	color: var(--c-cocoa);
	cursor: pointer;
	font-size: 14px;
	line-height: 1;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	z-index: 3;
	padding: 0;
}
.slot__remove:hover { background: #fff; color: #b34a4a; }

/* Mobile adjustments for option cards / slots */
@media (max-width: 720px) {
	.opt-grid--3, .opt-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.opt-card { padding: 12px 6px 10px; }
	.opt-card__name { font-size: .88rem; }
	.opt-card__name small { font-size: .68rem; }
	.slot-grid { grid-template-columns: repeat(3, 1fr); gap: 8px; }
	.slot { padding: 10px 6px; }
	.slot__cloud { width: 24px; height: 24px; bottom: 6px; right: 6px; }
	.slot__cloud svg { width: 14px; height: 14px; }
	.slot__label { font-size: .72rem; }
}
@media (max-width: 480px) {
	.opt-grid--3, .opt-grid--4 { grid-template-columns: repeat(2, 1fr); }
	.slot-grid { grid-template-columns: repeat(3, 1fr); gap: 6px; }
}

/* ============================================================
   Thank You — heartfelt blessing block on order-received page
   ============================================================ */
.thanks-block {
	margin: 32px 0 56px;
	padding: 56px 48px;
	background: linear-gradient(180deg, var(--c-ivory) 0%, #fff 100%);
	border: 1px solid var(--c-line);
	border-radius: 20px;
	position: relative;
	overflow: hidden;
}
.thanks-block__inner {
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
	position: relative;
	z-index: 1;
}
.thanks-block__sparkle {
	color: var(--c-accent);
	margin-bottom: 16px;
	display: inline-block;
}
.thanks-block__sparkle svg { width: 36px; height: 36px; }
.thanks-block__eyebrow {
	display: inline-block;
	font-size: .72rem;
	letter-spacing: .28em;
	text-transform: uppercase;
	color: var(--c-accent-d);
	font-weight: 600;
	margin-bottom: 12px;
}
.thanks-block__title {
	font-family: var(--f-serif);
	font-size: clamp(2.2rem, 4.5vw, 3rem);
	color: var(--c-ink);
	font-weight: 500;
	line-height: 1.15;
	margin: 0 0 14px;
}
.thanks-block__lead {
	font-family: var(--f-serif);
	font-style: italic;
	font-size: 1.25rem;
	color: var(--c-cocoa);
	margin: 0 0 28px;
	line-height: 1.45;
}
.thanks-block__lead em { color: var(--c-accent-d); font-style: italic; }
.thanks-block__body { max-width: 560px; margin: 0 auto 32px; line-height: 1.75; color: var(--c-cocoa); }
.thanks-block__body p { margin: 0 0 14px; font-size: 1.02rem; }
.thanks-block__body strong { color: var(--c-accent-d); font-weight: 600; }

.thanks-block__steps {
	list-style: none;
	padding: 0;
	margin: 0 0 32px;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 16px;
	text-align: left;
}
.thanks-block__steps li {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 18px;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 14px;
}
.thanks-block__step-num {
	flex: 0 0 32px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: var(--c-cocoa);
	color: #fff;
	font-family: var(--f-serif);
	font-size: 1rem;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.thanks-block__steps span { display: flex; flex-direction: column; gap: 4px; }
.thanks-block__steps strong { font-family: var(--f-serif); font-size: 1.05rem; color: var(--c-ink); font-weight: 500; }
.thanks-block__steps small { font-size: .82rem; color: var(--c-mute); line-height: 1.5; }

.thanks-block__sign {
	font-family: var(--f-serif);
	font-size: 1.1rem;
	color: var(--c-cocoa);
	margin: 8px 0 0;
}
.thanks-block__sign em { color: var(--c-mute); }
.thanks-block__sign span { letter-spacing: .04em; color: var(--c-ink); }

@media (max-width: 768px) {
	.thanks-block { padding: 40px 24px; }
	.thanks-block__title { font-size: 1.9rem; }
	.thanks-block__lead { font-size: 1.1rem; }
	.thanks-block__steps { grid-template-columns: 1fr; }
}

/* ============================================================
   Order-received page — standard WC blocks below the thanks block
   ============================================================ */
.woocommerce-order-received .page-content { padding: 32px 0 96px; }
.woocommerce-order-received .woocommerce { display: block; }

/* Hide WC's default "Thank you. Your order has been received." text since
   our thanks-block already greets the customer at the top. */
.woocommerce-order-received .woocommerce-notice--success,
.woocommerce-order-received .woocommerce-thankyou-order-received { display: none; }

/* Order overview — 5 status chips (Order #, Date, Email, Total, Payment) */
.woocommerce-order-overview {
	list-style: none;
	margin: 0 0 48px;
	padding: 24px 28px;
	background: var(--c-ivory);
	border: 1px solid var(--c-line);
	border-radius: 14px;
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
	gap: 20px 32px;
}
.woocommerce-order-overview li {
	display: flex;
	flex-direction: column;
	gap: 4px;
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--c-mute);
	font-weight: 600;
	margin: 0;
	border: 0 !important;
	padding: 0 !important;
}
.woocommerce-order-overview li strong {
	font-family: var(--f-serif);
	font-size: 1.1rem;
	color: var(--c-ink);
	font-weight: 500;
	letter-spacing: 0;
	text-transform: none;
}
.woocommerce-order-overview .total strong { color: var(--c-accent-d); font-size: 1.25rem; }
.woocommerce-order-overview .email strong { word-break: break-all; }

/* Order details section ----------------------------------------------- */
.woocommerce-order-details {
	margin: 0 0 40px;
}
.woocommerce-order-details__title,
.woocommerce-column__title {
	font-family: var(--f-serif);
	font-size: 1.5rem;
	color: var(--c-ink);
	font-weight: 500;
	margin: 0 0 18px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--c-line);
}
.woocommerce-order-details .woocommerce-table--order-details,
.woocommerce-order-details table.order_details,
.woocommerce-order-details table.shop_table {
	background: #fff !important;
	border: 1px solid var(--c-line) !important;
	border-radius: 14px !important;
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
	margin: 0;
}
.woocommerce-order-details table thead {
	background: var(--c-ivory);
}
.woocommerce-order-details table thead th {
	font-family: var(--f-sans) !important;
	font-size: .75rem !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--c-cocoa);
	font-weight: 600;
	padding: 14px 18px !important;
	text-align: left;
	border-bottom: 1px solid var(--c-line);
	background: var(--c-ivory) !important;
}
.woocommerce-order-details table tbody tr,
.woocommerce-order-details table tfoot tr {
	border-bottom: 1px solid var(--c-line);
}
.woocommerce-order-details table tbody tr:last-of-type,
.woocommerce-order-details table tfoot tr:last-of-type { border-bottom: 0; }
.woocommerce-order-details table td,
.woocommerce-order-details table tfoot th {
	padding: 16px 18px !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--c-cocoa);
	font-size: .95rem;
	vertical-align: top;
}
.woocommerce-order-details table .product-name {
	font-family: var(--f-serif);
	font-size: 1.05rem;
	color: var(--c-ink);
	line-height: 1.4;
}
.woocommerce-order-details table .product-name a { color: var(--c-ink); }
.woocommerce-order-details table .product-quantity {
	color: var(--c-mute);
	font-family: var(--f-sans);
	font-size: .85rem;
	font-weight: 400;
	margin-left: 4px;
}
.woocommerce-order-details table .product-total,
.woocommerce-order-details table td.product-total { text-align: right; white-space: nowrap; }
.woocommerce-order-details table tfoot th {
	font-family: var(--f-sans);
	font-weight: 500;
	color: var(--c-cocoa);
	text-align: left;
}
.woocommerce-order-details table tfoot td {
	text-align: right;
	font-weight: 500;
	color: var(--c-cocoa);
	white-space: nowrap;
}
.woocommerce-order-details table tfoot tr:last-of-type th {
	font-family: var(--f-serif);
	font-size: 1.15rem;
	color: var(--c-ink);
}
.woocommerce-order-details table tfoot tr:last-of-type td {
	font-family: var(--f-serif);
	font-size: 1.35rem;
	color: var(--c-accent-d);
	font-weight: 600;
}
/* Order line item meta (variations / wc-item-meta) inside the table */
.woocommerce-order-details .wc-item-meta,
.woocommerce-order-details .variation {
	list-style: none;
	margin: 8px 0 0 !important;
	padding: 0;
	font-size: .82rem;
	color: var(--c-mute);
	line-height: 1.55;
}
.woocommerce-order-details .wc-item-meta li,
.woocommerce-order-details .variation li {
	margin: 0;
	padding: 0;
	border: 0 !important;
}
.woocommerce-order-details .wc-item-meta li strong,
.woocommerce-order-details .variation li strong {
	font-family: var(--f-sans);
	font-weight: 600;
	color: var(--c-cocoa);
	font-size: .8rem;
	letter-spacing: 0;
	text-transform: none;
}
.woocommerce-order-details .wc-item-meta li p,
.woocommerce-order-details .variation li p { display: inline; margin: 0; }

/* Customer details (billing + shipping addresses) ---------------------- */
.woocommerce-customer-details {
	margin: 0 0 40px;
}
.woocommerce-customer-details .woocommerce-columns--addresses {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	margin-top: 18px;
}
.woocommerce-customer-details .woocommerce-column {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 14px;
	padding: 24px 28px;
}
.woocommerce-customer-details .woocommerce-column .woocommerce-column__title {
	font-family: var(--f-serif);
	font-size: 1.15rem;
	margin: 0 0 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--c-line);
}
.woocommerce-customer-details address {
	font-style: normal;
	line-height: 1.7;
	color: var(--c-cocoa);
	font-size: .95rem;
}
.woocommerce-customer-details .woocommerce-customer-details--phone,
.woocommerce-customer-details .woocommerce-customer-details--email {
	display: block;
	margin-top: 10px;
	font-size: .88rem;
	color: var(--c-mute);
}
.woocommerce-customer-details .woocommerce-customer-details--email a { color: var(--c-accent-d); }

/* Failed-order block (rare) */
.woocommerce-order .woocommerce-info {
	background: var(--c-ivory);
	border-left: 3px solid var(--c-accent);
	border-radius: 10px;
	padding: 16px 22px;
	color: var(--c-cocoa);
	margin: 0 0 24px;
}

@media (max-width: 768px) {
	.woocommerce-order-overview { padding: 20px 22px; gap: 14px 24px; }
	.woocommerce-customer-details .woocommerce-columns--addresses { grid-template-columns: 1fr; }
	.woocommerce-order-details table thead { display: none; }
	.woocommerce-order-details table tbody tr,
	.woocommerce-order-details table tfoot tr {
		display: block;
		padding: 14px 18px;
		border-bottom: 1px solid var(--c-line);
	}
	.woocommerce-order-details table td,
	.woocommerce-order-details table tfoot th {
		display: flex;
		justify-content: space-between;
		padding: 4px 0 !important;
		font-size: .9rem;
	}
	.woocommerce-order-details table td::before,
	.woocommerce-order-details table tfoot th + td::before {
		font-weight: 600;
		color: var(--c-cocoa);
		margin-right: 12px;
	}
	.woocommerce-order-details table .product-name { display: block; font-size: 1rem; margin-bottom: 6px; }
	.woocommerce-order-details table tfoot th {
		display: block;
		padding: 4px 0 !important;
		font-weight: 600;
		color: var(--c-cocoa);
	}
	.woocommerce-order-details table tfoot td { text-align: right; }
}

.tabs { margin-top: 72px; padding-bottom: 24px; }
.tab-nav { display: flex; gap: 40px; border-bottom: 1px solid var(--c-line); margin-bottom: 36px; flex-wrap: wrap; }
.tab-nav button { background: none; border: 0; padding: 16px 0; font-family: var(--f-serif); font-size: 1.25rem; color: var(--c-mute); cursor: pointer; border-bottom: 2px solid transparent; margin-bottom: -1px; }
.tab-nav button.active { color: var(--c-ink); border-color: var(--c-accent); }
.tab-panel { display: none; line-height: 1.85; max-width: 980px; }
.tab-panel.active { display: block; }

/* Custom Order Form ---------------------------------------------------- */
.order-form-wrap { padding: 64px 0 96px; }
.order-form { background: #fff; border-radius: var(--radius-l); padding: 56px; box-shadow: var(--shadow-sm); border: 1px solid var(--c-line); }
.form-step { margin-bottom: 36px; padding-bottom: 36px; border-bottom: 1px solid var(--c-line); }
.form-step:last-of-type { border-bottom: 0; }
.form-step__num { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; border-radius: 50%; background: var(--c-cocoa); color: #fff; font-family: var(--f-serif); margin-right: 12px; font-size: .9rem; }
.form-step h3 { display: flex; align-items: center; margin-bottom: 18px; }
.form-step p.lead { color: var(--c-mute); margin-bottom: 24px; }

.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin-bottom: 18px; }
.form-row--single { grid-template-columns: 1fr; }
.form-group label { display: block; font-size: .85rem; letter-spacing: .08em; text-transform: uppercase; color: var(--c-cocoa); margin-bottom: 8px; font-weight: 500; }
.form-group input[type="text"], .form-group input[type="email"], .form-group input[type="tel"], .form-group textarea, .form-group select {
	width: 100%; padding: 14px 16px; border: 1px solid var(--c-line); border-radius: 8px; background: var(--c-cream); color: var(--c-ink); font-family: var(--f-sans); font-size: 1rem; transition: border-color .2s ease, background .2s ease;
}
.form-group textarea { min-height: 110px; resize: vertical; }
.form-group input:focus, .form-group textarea:focus, .form-group select:focus { outline: 0; border-color: var(--c-accent); background: #fff; }

.option-cards { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; }
.option-card { position: relative; border: 1px solid var(--c-line); border-radius: var(--radius); padding: 24px; cursor: pointer; transition: all .2s ease; background: var(--c-cream); }
.option-card input { position: absolute; opacity: 0; pointer-events: none; }
.option-card h4 { margin-bottom: 6px; }
.option-card p { color: var(--c-mute); font-size: .9rem; margin-bottom: 8px; }
.option-card .price { color: var(--c-accent-d); font-family: var(--f-serif); font-size: 1.3rem; }
.option-card:hover { border-color: var(--c-sand); }
.option-card.is-selected { border-color: var(--c-accent); background: #fff; box-shadow: 0 0 0 3px rgba(184,146,114,.12); }
.option-card .check { position: absolute; top: 16px; right: 16px; width: 22px; height: 22px; border: 1.5px solid var(--c-sand); border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; color: transparent; font-size: 12px; }
.option-card.is-selected .check { background: var(--c-accent); border-color: var(--c-accent); color: #fff; }

.upload-area { border: 2px dashed var(--c-sand); border-radius: var(--radius); padding: 36px; text-align: center; background: var(--c-cream); cursor: pointer; transition: all .2s ease; }
.upload-area:hover, .upload-area.dragover { border-color: var(--c-accent); background: var(--c-ivory); }
.upload-area svg { width: 40px; height: 40px; color: var(--c-mocha); margin: 0 auto 12px; }
.upload-area p { margin: 0; color: var(--c-cocoa); }
.upload-area input[type="file"] { display: none; }
.upload-preview { display: grid; grid-template-columns: repeat(4, 1fr); gap: 10px; margin-top: 14px; }
.upload-preview img { aspect-ratio: 1/1; object-fit: cover; border-radius: 8px; }

.summary-box { background: var(--c-ivory); border-radius: var(--radius); padding: 28px; margin-top: 16px; }
.summary-row { display: flex; justify-content: space-between; padding: 10px 0; color: var(--c-cocoa); font-size: .98rem; }
.summary-row--total { border-top: 1px solid var(--c-sand); margin-top: 8px; padding-top: 18px; font-family: var(--f-serif); font-size: 1.4rem; color: var(--c-ink); font-weight: 600; }

.policy-note { background: #FBF1E6; border-left: 3px solid var(--c-accent); padding: 14px 18px; border-radius: 6px; color: var(--c-cocoa); margin: 24px 0; font-size: .92rem; }

/* Form error shown on AJAX submit failure */
.qiyun-form-error { background: #FDECEC; border-left: 3px solid #b34a4a; padding: 14px 18px; border-radius: 6px; color: #7a2424; margin: 18px 0; font-size: .95rem; }

/* Per-field inline error (validation) */
.qiyun-field-error {
	display: block;
	margin-top: 8px;
	color: #b34a4a;
	font-size: .82rem;
	font-weight: 500;
	letter-spacing: .01em;
}
.qiyun-field-error::before { content: '⚠ '; }

/* Invalid upload-area state */
.upload-area.is-invalid {
	border-color: #b34a4a;
	background: #FDECEC;
}
.upload-area.is-invalid svg { color: #b34a4a; }

/* Blog ----------------------------------------------------------------- */
.post-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px, 1fr)); gap: 36px; }
.post-card { background: #fff; border-radius: var(--radius-l); overflow: hidden; border: 1px solid var(--c-line); display: flex; flex-direction: column; transition: all .3s ease; }
.post-card:hover { box-shadow: var(--shadow); transform: translateY(-3px); }
.post-card__media { aspect-ratio: 16/10; overflow: hidden; background: var(--c-ivory); display: block; }
.post-card__media img { width:100%; height:100%; object-fit: cover; transition: transform .5s ease; }
.post-card:hover .post-card__media img { transform: scale(1.04); }
.post-card__body { padding: 28px 30px 32px; flex: 1; display: flex; flex-direction: column; }
.post-card__meta { font-size: .78rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-mute); margin-bottom: 12px; }
.post-card__title { font-family: var(--f-serif); font-size: 1.4rem; margin-bottom: 12px; line-height: 1.25; }
.post-card__title a { color: var(--c-ink); }
.post-card__excerpt { color: var(--c-mute); font-size: .97rem; line-height: 1.65; flex: 1; margin-bottom: 18px; }
.post-card__more { font-size: .82rem; letter-spacing: .14em; text-transform: uppercase; color: var(--c-accent-d); font-weight: 500; }

article.post-single { padding: 72px 0 96px; max-width: 820px; margin: 0 auto; }
article.post-single .post-meta { color: var(--c-mute); font-size: .85rem; letter-spacing: .12em; text-transform: uppercase; margin-bottom: 18px; }
article.post-single .post-thumb { border-radius: var(--radius-l); overflow: hidden; margin: 36px 0; }
article.post-single .entry-content { font-size: 1.08rem; line-height: 1.9; }
article.post-single .entry-content h2 { margin-top: 44px; margin-bottom: 18px; }
article.post-single .entry-content h3 { margin-top: 32px; margin-bottom: 14px; }
article.post-single .entry-content p { margin-bottom: 1.4em; }

/* Pagination ----------------------------------------------------------- */
.pagination { display: flex; justify-content: center; gap: 8px; margin-top: 48px; }
.pagination a, .pagination span { padding: 10px 14px; border: 1px solid var(--c-line); border-radius: 6px; color: var(--c-cocoa); font-size: .9rem; }
.pagination .current { background: var(--c-cocoa); color: #fff; border-color: var(--c-cocoa); }

/* Static pages --------------------------------------------------------- */
.page-content { padding: 80px 0 120px; }
.page-content .entry-content { max-width: 820px; margin: 0 auto; font-size: 1.05rem; line-height: 1.9; }
.page-content .entry-content > * { margin-left: auto; margin-right: auto; }
.page-content .entry-content h2 { margin-top: 48px; margin-bottom: 18px; font-size: 1.7rem; }
.page-content .entry-content h3 { margin-top: 36px; margin-bottom: 14px; font-size: 1.3rem; }
.page-content .entry-content p { margin-bottom: 1.5em; }
.page-content .entry-content ul,
.page-content .entry-content ol { padding-left: 1.5em; margin-bottom: 1.5em; }
.page-content .entry-content li { margin-bottom: .55em; }

/* Responsive --------------------------------------------------------- */
/* Small desktop / large tablet landscape (1024–1200px) */
@media (max-width: 1200px) {
	.container, .container--narrow, .container--text { padding: 0 32px; }
	.section { padding: 70px 0; }
	.craft { gap: 56px; }
	.hero h1 { max-width: 700px; }
	.hero__meta { gap: 28px; }
	/* Tablet landscape: shop drops to 3 columns */
	ul.products, .woocommerce ul.products,
	ul.products.columns-1, ul.products.columns-2, ul.products.columns-3, ul.products.columns-4,
	ul.products.products--one, ul.products.products--two, ul.products.products--few, ul.products.products--many {
		grid-template-columns: repeat(3, 1fr) !important;
		gap: 28px !important;
	}
}

/* Tablet portrait (768–1024px) */
@media (max-width: 1024px) {
	:root { --header-h: 70px; }
	.section { padding: 60px 0; }
	.section__head { margin-bottom: 56px; max-width: 640px; }
	.hero { min-height: 72vh; }
	.hero__inner { padding: 64px 0; }
	.hero__cta .btn--lg { padding: 16px 28px; min-height: 54px; font-size: .92rem; }
	.hero__meta { gap: 20px; margin-top: 36px; font-size: .85rem; }
	.values { grid-template-columns: repeat(2, 1fr); gap: 40px 32px; }
	.process { grid-template-columns: repeat(2, 1fr); gap: 40px 32px; }
	.craft { grid-template-columns: 1fr; gap: 40px; }
	.craft__media { aspect-ratio: 16/9; max-height: 480px; }
	.gallery-grid { grid-template-columns: repeat(2, 1fr); }
	.testimonial-grid { grid-template-columns: 1fr; max-width: 680px; margin-left: auto; margin-right: auto; }
	.shop-grid, .post-grid { grid-template-columns: repeat(2, 1fr); }
	/* Tablet portrait: shop drops to 2 columns */
	ul.products, .woocommerce ul.products,
	ul.products.columns-1, ul.products.columns-2, ul.products.columns-3, ul.products.columns-4,
	ul.products.products--one, ul.products.products--two, ul.products.products--few, ul.products.products--many {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 24px !important;
	}
	.single-product .product-layout { grid-template-columns: 1fr; gap: 48px; padding: 48px 0 72px; }
	.product-summary h1 { font-size: clamp(1.8rem, 4vw, 2.2rem); }
	.product-summary .price { font-size: 2rem; }
	.footer-grid { grid-template-columns: 1fr 1fr; gap: 40px; }
	.product-card__body { padding: 22px 20px 26px; }
	.product-card__title { font-size: 1.15rem; }
	/* Cat cards stack content tighter */
	.cat-card__overlay { padding: 32px; }
	.cat-card__overlay h3 { font-size: 1.5rem; }
	/* Form steps tighter */
	.order-form { padding: 36px; }
	/* CTA band */
	.cta-band { padding: 80px 0; }
	.cta-band h2 { font-size: 1.9rem; }
	/* Product tabs */
	.tab-nav { gap: 28px; }
	.tab-nav button { font-size: 1.1rem; padding: 12px 0; }
}

/* Mobile landscape / large phones (480–768px) — most "mobile" rules live here */
@media (max-width: 768px) {
	:root { --header-h: 72px; }
	.section { padding: 60px 0; }
	.section__head { margin-bottom: 48px; }
	.section__title { font-size: clamp(1.5rem, 5.6vw, 2rem); }
	.section__eyebrow { font-size: .72rem; letter-spacing: .18em; }
	.section__sub { font-size: .95rem; }
	.container, .container--narrow, .container--text { padding: 0 20px; }

	/* Header / nav */
	.site-header__inner { gap: 8px; }
	.site-brand img, .site-brand .custom-logo { max-height: 40px; }
	.site-brand__logo img { max-height: 44px; }
	.site-brand__svg { height: 34px; }
	.site-brand__tagline { display: none; }
	.header-tools .cta-pill { display: none; }
	.header-tools .account-toggle__label { display: none; }
	.header-tools .account-toggle { padding: 8px; }
	.header-tools .cta-pill--mobile { display: inline-flex; padding: 8px 14px; font-size: .65rem; }
	.primary-nav {
		position: fixed; top: var(--header-h); left: 0; right: 0;
		background: var(--c-cream);
		padding: 20px 24px 32px;
		border-bottom: 1px solid var(--c-line);
		transform: translateY(-120%);
		transition: transform .3s ease;
		max-height: calc(100vh - var(--header-h));
		overflow-y: auto;
		box-shadow: 0 12px 32px rgba(72,56,40,0.08);
	}
	.primary-nav.is-open { transform: translateY(0); }
	.primary-nav ul,
	.primary-nav > div > ul,
	.primary-nav > ul { flex-direction: column; gap: 0; align-items: stretch; }
	.primary-nav ul li.menu-item > a {
		padding: 16px 0;
		border-bottom: 1px solid var(--c-line);
		display: block;
		letter-spacing: .14em;
		font-size: .92rem;
		border-radius: 0;
		background: transparent !important;
	}
	.primary-nav ul li.menu-item.current-menu-item > a::after,
	.primary-nav ul li.menu-item.current_page_item > a::after { display: none; }
	.primary-nav ul li.menu-item:last-child > a { border-bottom: 0; }
	.menu-toggle { display: inline-block; }
	.header-tools { gap: 8px; }

	/* Mobile mega menu — flattened into inline list under the trigger */
	.primary-nav li.has-mega > a::before { display: none; }
	.primary-nav .mega-menu {
		position: static !important;
		transform: none !important;
		opacity: 1 !important;
		visibility: visible !important;
		pointer-events: auto !important;
		width: auto !important;
		max-width: none;
		background: transparent !important;
		border: 0 !important;
		box-shadow: none !important;
		padding: 8px 0 16px;
		margin: 0 0 0 14px;
		border-left: 1px solid var(--c-line);
		padding-left: 18px;
		transition: none !important;
	}
	.mega-menu__inner { grid-template-columns: 1fr !important; gap: 24px !important; }
	.mega-menu__col { margin: 0; }
	.mega-menu__heading { margin-bottom: 12px; font-size: .68rem; }
	.mega-menu__product {
		grid-template-columns: 56px 1fr auto;
		gap: 12px;
		padding: 10px 0 !important;
		margin: 0 0 6px !important;
		border-bottom: 1px solid var(--c-line);
	}
	.mega-menu__product:hover { background: transparent !important; transform: none !important; }
	.mega-menu__thumb { width: 56px; height: 56px; }
	.mega-menu__product-title { font-size: .98rem; }
	.mega-menu__list li a { padding: 10px 0 !important; margin: 0 !important; border-bottom: 1px solid var(--c-line); }
	.mega-menu__list li a:hover { padding-left: 0 !important; background: transparent !important; }
	.mega-menu__feature { padding: 18px 16px; }
	.mega-menu__feature-quote { font-size: 1rem; }
	.mega-menu__feature-body { font-size: .85rem; }

	/* Hero */
	.hero { min-height: auto; padding: 24px 0; }
	.hero__inner { padding: 56px 0; }
	.hero h1 { font-size: clamp(2.1rem, 8vw, 2.8rem); margin-bottom: 18px; }
	.hero__eyebrow { letter-spacing: .22em; font-size: .72rem; margin-bottom: 18px; }
	.hero__lead { font-size: 1.02rem; margin-bottom: 32px; }
	.hero__cta { flex-direction: column; align-items: stretch; gap: 12px; }
	.hero__cta .btn { width: 100%; }
	.hero__meta { gap: 14px 22px; margin-top: 32px; font-size: .82rem; }
	.hero__bg::after { background: linear-gradient(180deg, rgba(245,239,230,.65) 0%, rgba(245,239,230,.85) 100%); }

	/* Buttons globally smaller */
	.btn, button.btn, a.btn { padding: 13px 24px; min-height: 46px; font-size: .85rem; letter-spacing: .06em; }
	.btn--lg { padding: 15px 28px; min-height: 52px; font-size: .9rem; }

	/* Single-column grids */
	.cat-grid, .gallery-grid, .form-row, .option-cards, .post-grid { grid-template-columns: 1fr; gap: 16px; }
	.cat-card { aspect-ratio: 3/2; }
	.cat-card__overlay { padding: 28px; }
	.cat-card__overlay h3 { font-size: 1.4rem; }
	.cat-card__overlay p { font-size: .9rem; margin-bottom: 14px; }

	/* Phone: shop stays 2 columns (visual rhythm) */
	ul.products, .woocommerce ul.products,
	ul.products.columns-1, ul.products.columns-2, ul.products.columns-3, ul.products.columns-4,
	ul.products.products--one, ul.products.products--two, ul.products.products--few, ul.products.products--many {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 16px !important;
	}
	.product-card { border-radius: 14px; }
	.product-card__body { padding: 14px 12px 18px; gap: 4px; }
	.product-card__title { font-size: .98rem; line-height: 1.25; }
	.product-card__price { font-size: .92rem; margin: 2px 0 8px; }
	.product-card__body .muted { font-size: .74rem; }
	.product-card__body .btn { padding: 8px 14px; min-height: 36px; font-size: .72rem; }

	/* Values + process: drop to 2 columns with tighter spacing */
	.values { grid-template-columns: repeat(2, 1fr); gap: 32px 20px; }
	.value-card__icon { width: 52px; height: 52px; font-size: 20px; margin-bottom: 14px; }
	.value-card h4 { font-size: 1.05rem; }
	.value-card p { font-size: .88rem; }
	.process { grid-template-columns: repeat(2, 1fr); gap: 32px 20px; }
	.process-step__num { width: 52px; height: 52px; font-size: 1.2rem; margin-bottom: 16px; }
	.process-step h4 { font-size: 1.05rem; }
	.process-step p { font-size: .88rem; }

	/* Gallery */
	.gallery-grid { grid-template-columns: repeat(2, 1fr); gap: 12px; }
	.gallery-item__caption { padding: 12px 14px; font-size: .8rem; }

	/* Testimonials */
	.testimonial { padding: 28px 24px; }
	.testimonial__quote { font-size: 1.05rem; margin-bottom: 20px; }

	/* Craft section */
	.craft { gap: 28px; }
	.craft__media { aspect-ratio: 4/3; }
	.craft p { font-size: .98rem; }
	.craft ul { margin: 20px 0 28px; }

	/* CTA band */
	.cta-band { padding: 64px 0; }
	.cta-band h2 { font-size: 1.7rem; margin-bottom: 16px; }
	.cta-band p { font-size: .98rem; margin-bottom: 28px; }

	/* Page banner */
	.page-banner { padding: 36px 0 28px; }
	.page-banner h1 { font-size: 1.6rem; }
	.page-banner p { font-size: .9rem; margin-top: 8px; }
	.breadcrumb { font-size: .7rem; margin-bottom: 12px; letter-spacing: .14em; }

	/* Single product */
	.single-product .product-layout { gap: 28px; padding: 32px 0 56px; }
	.product-summary h1 { font-size: 1.6rem; }
	.product-summary .price { font-size: 1.7rem; margin: 8px 0 18px; }
	.product-summary .short-description { font-size: .95rem; }
	.product-meta-list { margin: 20px 0 24px; }
	.product-meta-list li { padding: 12px 0; gap: 12px; flex-wrap: wrap; }
	.product-meta-list dt { flex: 0 0 100%; font-size: .76rem; letter-spacing: .1em; text-transform: uppercase; color: var(--c-mute); }
	.product-meta-list dd { font-size: .95rem; }
	.tabs { margin-top: 48px; }
	.tab-nav { gap: 18px; overflow-x: auto; -webkit-overflow-scrolling: touch; flex-wrap: nowrap; padding-bottom: 4px; }
	.tab-nav::-webkit-scrollbar { display: none; }
	.tab-nav button { font-size: .98rem; padding: 12px 0; white-space: nowrap; flex-shrink: 0; }
	.tab-panel { font-size: .95rem; }

	/* Order form (custom) */
	.order-form { padding: 28px 20px; box-shadow: none; }
	.form-step { margin-bottom: 24px; padding-bottom: 24px; }
	.form-step h3 { font-size: 1.05rem; }
	.option-cards { gap: 12px; }
	.option-card { padding: 18px; }
	.upload-area { padding: 24px 18px; }
	.upload-area svg { width: 32px; height: 32px; margin-bottom: 8px; }
	.upload-area p { font-size: .92rem; }
	.upload-preview { grid-template-columns: repeat(3, 1fr); gap: 6px; }
	.summary-box { padding: 22px 20px; }
	.summary-row { font-size: .92rem; }
	.summary-row--total { font-size: 1.15rem; padding-top: 14px; }

	/* Form fields */
	.form-group input[type="text"], .form-group input[type="email"], .form-group input[type="tel"], .form-group textarea, .form-group select { padding: 12px 14px; font-size: .95rem; }
	.form-group label { font-size: .78rem; }

	/* Compare pair / craft (on product page) */
	.compare-pair { grid-template-columns: 1fr; }

	/* Footer */
	.footer-grid { grid-template-columns: 1fr; gap: 36px; padding-bottom: 36px; }
	.site-footer { padding: 64px 0 24px; }
	.footer-bottom { flex-direction: column; gap: 8px; text-align: center; }

	/* Mini-cart drawer */
	.mini-cart__panel { width: 100vw; max-width: 100vw; }
	.mini-cart__head { padding: 16px 20px; }
	.mini-cart__head h3 { font-size: 1.2rem; }
	.mini-cart__inner { padding: 18px 20px; }
	.mini-cart__item { grid-template-columns: 60px 1fr 20px; gap: 12px; padding: 14px 0; }
	.mini-cart__item-media { width: 60px; height: 60px; }
	.mini-cart__item-title { font-size: .98rem; }
	.mini-cart__item-meta { font-size: .78rem; }
	.mini-cart__item-price { font-size: 1rem; }
	.mini-cart__total-row { font-size: 1.15rem; }
	.mini-cart__actions { grid-template-columns: 1fr; gap: 10px; }
	.mini-cart__actions .btn { padding: 13px 18px; }

	/* Shop toolbar */
	.shop-toolbar { margin-bottom: 28px; padding-bottom: 16px; flex-direction: column; align-items: flex-start; gap: 10px; }
	.woocommerce .woocommerce-result-count { font-size: .82rem; }

	/* Cart toolbar buttons */
	.woocommerce-cart table.cart td.actions { padding: 16px !important; }

	/* Headings */
	h1 { font-size: clamp(1.9rem, 7vw, 2.6rem); }
	h2 { font-size: clamp(1.5rem, 5.5vw, 2rem); }
	h3 { font-size: clamp(1.15rem, 4vw, 1.4rem); }
	body { font-size: 15px; }
}

/* Small phones (<480px) — extra tight, hides non-essential pieces */
@media (max-width: 480px) {
	.container, .container--narrow, .container--text { padding: 0 16px; }
	.section { padding: 48px 0; }
	.section__head { margin-bottom: 36px; }
	.hero__inner { padding: 44px 0; }
	.hero h1 { font-size: clamp(1.9rem, 9vw, 2.4rem); }
	.hero__meta { font-size: .76rem; gap: 10px 18px; }
	ul.products, .woocommerce ul.products { gap: 10px !important; }
	.product-card { border-radius: 12px; }
	.product-card__body { padding: 12px 10px 16px; }
	.product-card__title { font-size: .9rem; }
	.product-card__price { font-size: .85rem; }
	.product-card__body .btn { display: none; }
	.values, .process { grid-template-columns: 1fr; }
	.gallery-grid { grid-template-columns: 1fr; }
	.cat-card { aspect-ratio: 4/3; }
	.cat-card__overlay { padding: 22px; }
	.cat-card__overlay h3 { font-size: 1.2rem; }
	.craft__media { aspect-ratio: 1/1; }
	.testimonial { padding: 24px 20px; }
	.testimonial__quote { font-size: 1rem; }
	.page-banner { padding: 28px 0 22px; }
	.page-banner h1 { font-size: 1.45rem; }
	.cta-band { padding: 52px 0; }
	.cta-band h2 { font-size: 1.45rem; }
	.cta-band p { font-size: .92rem; }
	.tabs { margin-top: 36px; }
	.product-summary h1 { font-size: 1.4rem; }
	.product-summary .price { font-size: 1.5rem; }
	.warn-box { padding: 12px 16px; font-size: .88rem; }
	.upload-preview { grid-template-columns: repeat(2, 1fr); }
	.site-footer { padding: 48px 0 20px; }
	.footer-grid { padding-bottom: 28px; gap: 28px; }
}

/* Utilities ------------------------------------------------------------ */
.text-center { text-align: center; }
.muted { color: var(--c-mute); }
.mt-0 { margin-top: 0; } .mt-1 { margin-top: 12px; } .mt-2 { margin-top: 24px; } .mt-3 { margin-top: 36px; } .mt-4 { margin-top: 48px; }
.flex-center { display: flex; align-items: center; justify-content: center; }
.is-hidden { display: none !important; }

/* WooCommerce overrides ------------------------------------------------ */
.woocommerce-notices-wrapper { max-width: var(--container-narrow); margin: 24px auto; padding: 0 40px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error { background: var(--c-ivory); border-left: 3px solid var(--c-accent); padding: 16px 24px; border-radius: 6px; color: var(--c-cocoa); margin-bottom: 18px; }
.woocommerce-error { border-color: #b34a4a; }

/* Shop result count + sort toolbar — sits above the products grid */
.woocommerce .woocommerce-result-count,
.woocommerce-page .woocommerce-result-count { float: none; margin: 0; color: var(--c-mute); font-size: .9rem; letter-spacing: .04em; }
.woocommerce .woocommerce-ordering,
.woocommerce-page .woocommerce-ordering { float: none; margin: 0; }
.woocommerce .woocommerce-ordering select { padding: 10px 14px; border: 1px solid var(--c-line); border-radius: 8px; background: #fff; font-size: .9rem; color: var(--c-cocoa); cursor: pointer; }

/* Wrap result count + sort in a flex row using ::before/::after on container */
.woocommerce .container > .woocommerce-result-count { margin-bottom: 0; }

/* Use a flex layout for the toolbar via grouping */
.woocommerce-page .woocommerce-result-count,
.woocommerce .woocommerce-result-count { display: inline-block; }
.shop-toolbar { display: flex; align-items: center; justify-content: space-between; margin-bottom: 48px; padding-bottom: 24px; border-bottom: 1px solid var(--c-line); flex-wrap: wrap; gap: 16px; }
.woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea, .woocommerce form .form-row select { padding: 14px 18px; border-radius: 8px; border: 1px solid var(--c-line); background: var(--c-cream); font-size: 1rem; }
.woocommerce form .form-row label { font-size: .85rem; letter-spacing: .06em; text-transform: uppercase; color: var(--c-cocoa); font-weight: 500; margin-bottom: 6px; display: block; }
.woocommerce-cart table.cart, .woocommerce table.shop_table { border: 1px solid var(--c-line); border-radius: var(--radius); background: #fff; border-collapse: separate; border-spacing: 0; overflow: hidden; }
.woocommerce table.shop_table th, .woocommerce table.shop_table td { border-color: var(--c-line); padding: 22px 24px; }
.woocommerce table.shop_table th { background: var(--c-ivory); font-family: var(--f-serif); font-size: 1.05rem; }
.woocommerce ul.products li.product .price, .woocommerce div.product p.price, .woocommerce-Price-amount { color: var(--c-accent-d); }
.woocommerce #respond input#submit, .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { background: var(--c-cocoa); color: #fff; border-radius: 999px; padding: 14px 32px; font-weight: 500; letter-spacing: .06em; text-transform: uppercase; font-size: .9rem; border: 0; transition: background .25s ease; }
.woocommerce #respond input#submit:hover, .woocommerce a.button:hover, .woocommerce button.button:hover, .woocommerce input.button:hover { background: var(--c-ink); }
.woocommerce-message a.button, .woocommerce a.button.alt, .woocommerce button.button.alt { background: var(--c-accent-d); }
.woocommerce-message a.button:hover, .woocommerce a.button.alt:hover, .woocommerce button.button.alt:hover { background: var(--c-accent); }

/* ==========================================================================
   Cart page (WooCommerce default shortcode markup)
   ========================================================================== */
.woocommerce-cart .page-content { padding: 40px 0 96px; }
.woocommerce-cart .entry-content { max-width: none; margin: 0; }

/* The cart shortcode renders inside <div class="woocommerce">.
   Flip that into a 2-column grid: items table | totals card */
.woocommerce-cart .woocommerce {
	display: grid;
	grid-template-columns: minmax(0, 1.55fr) minmax(340px, 1fr);
	column-gap: 56px;
	row-gap: 0;
	align-items: start;
}
.woocommerce-cart .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; grid-row: 1; margin-bottom: 24px; }
.woocommerce-cart .woocommerce > form.woocommerce-cart-form    { grid-column: 1; grid-row: 2; min-width: 0; }
.woocommerce-cart .woocommerce > .cart-collaterals             { grid-column: 2; grid-row: 2; min-width: 0; }
.woocommerce-cart .woocommerce > .cross-sells                  { grid-column: 1 / -1; grid-row: 3; margin-top: 48px; }
.woocommerce-cart .woocommerce > .cross-sells h2 { font-family: var(--f-serif); font-size: 1.5rem; margin-bottom: 22px; }

/* Cart items table */
.woocommerce-cart form.woocommerce-cart-form { margin: 0; }
.woocommerce-cart table.cart {
	background: #fff !important;
	border: 1px solid var(--c-line) !important;
	border-radius: 14px !important;
	overflow: hidden;
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
}
.woocommerce-cart table.cart thead { background: var(--c-ivory); }
.woocommerce-cart table.cart thead th {
	font-family: var(--f-sans) !important;
	font-size: .75rem !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--c-cocoa);
	font-weight: 600;
	padding: 18px 16px !important;
	text-align: left;
	border-bottom: 1px solid var(--c-line);
	background: var(--c-ivory) !important;
}
.woocommerce-cart table.cart thead th.product-price,
.woocommerce-cart table.cart thead th.product-subtotal { text-align: right; }
.woocommerce-cart table.cart thead th.product-quantity { text-align: center; }
.woocommerce-cart table.cart thead th.product-remove,
.woocommerce-cart table.cart thead th.product-thumbnail { width: 1%; }

.woocommerce-cart table.cart tbody tr.cart_item { border-bottom: 1px solid var(--c-line); }
.woocommerce-cart table.cart tbody tr.cart_item:last-of-type { border-bottom: 0; }
.woocommerce-cart table.cart td {
	padding: 20px 16px !important;
	vertical-align: middle;
	border: 0 !important;
	background: transparent !important;
	font-size: .98rem;
	color: var(--c-cocoa);
}
.woocommerce-cart table.cart td.product-remove { width: 40px; }
.woocommerce-cart table.cart td.product-remove a.remove {
	display: inline-flex; align-items: center; justify-content: center;
	width: 32px; height: 32px;
	border-radius: 50%;
	background: transparent !important;
	color: var(--c-mute) !important;
	font-size: 22px;
	line-height: 1;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.woocommerce-cart table.cart td.product-remove a.remove:hover {
	background: var(--c-ivory) !important;
	color: var(--c-cocoa) !important;
}
.woocommerce-cart table.cart td.product-thumbnail { width: 100px; padding: 16px !important; }
.woocommerce-cart table.cart td.product-thumbnail a,
.woocommerce-cart table.cart td.product-thumbnail > a {
	display: inline-block;
	width: 80px;
	height: 80px;
	line-height: 0;
}
.woocommerce-cart table.cart td.product-thumbnail img,
.woocommerce-cart table.cart td.product-thumbnail .qiyun-cart-thumb {
	width: 80px !important;
	height: 80px !important;
	min-width: 80px;
	max-width: none !important;
	object-fit: cover !important;
	border-radius: 10px !important;
	display: block !important;
	background: var(--c-ivory);
	visibility: visible !important;
	opacity: 1 !important;
}
.woocommerce-cart table.cart td.product-name {
	font-family: var(--f-serif);
	font-size: 1.15rem;
	color: var(--c-ink);
	line-height: 1.35;
}
.woocommerce-cart table.cart td.product-name a {
	color: var(--c-ink);
	font-weight: 500;
}
.woocommerce-cart table.cart td.product-name dl.variation,
.woocommerce-cart table.cart td.product-name dl.wc-item-meta {
	margin: 8px 0 0;
	font-family: var(--f-sans);
	font-size: .82rem;
	color: var(--c-mute);
	line-height: 1.55;
}
.woocommerce-cart table.cart td.product-name dl dt {
	float: none; display: inline;
	font-weight: 600; color: var(--c-cocoa); margin: 0 4px 0 0; padding: 0;
	background: transparent !important;
}
.woocommerce-cart table.cart td.product-name dl dt::after { content: ''; }
.woocommerce-cart table.cart td.product-name dl dd {
	display: inline; margin: 0 0 4px; padding: 0;
	background: transparent !important;
}
.woocommerce-cart table.cart td.product-name dl dd p { margin: 0; display: inline; }
.woocommerce-cart table.cart td.product-price,
.woocommerce-cart table.cart td.product-subtotal {
	text-align: right;
	font-family: var(--f-serif);
	font-size: 1.1rem;
	color: var(--c-accent-d);
	white-space: nowrap;
}
.woocommerce-cart table.cart td.product-quantity { text-align: center; }
.woocommerce-cart table.cart td.product-quantity .quantity { display: inline-flex; align-items: center; }
.woocommerce-cart table.cart td.product-quantity input.qty {
	width: 64px;
	min-height: 40px;
	padding: 8px 8px;
	text-align: center;
	border: 1px solid var(--c-line);
	border-radius: 8px;
	background: var(--c-cream);
	font-size: .95rem;
}

/* Coupon + Update Cart action row */
.woocommerce-cart table.cart td.actions {
	background: var(--c-ivory) !important;
	padding: 18px 16px !important;
	border-top: 1px solid var(--c-line);
}
.woocommerce-cart table.cart td.actions .coupon { display: inline-flex; align-items: center; gap: 10px; flex-wrap: wrap; }
.woocommerce-cart table.cart td.actions .coupon label.screen-reader-text { position: absolute; left: -9999px; }
.woocommerce-cart table.cart td.actions .coupon input.input-text {
	min-height: 44px;
	min-width: 200px;
	padding: 10px 16px;
	border: 1px solid var(--c-line);
	border-radius: 999px;
	background: #fff;
	font-size: .92rem;
}
.woocommerce-cart table.cart td.actions .coupon button {
	min-height: 44px !important;
	padding: 10px 22px !important;
	background: var(--c-mocha) !important;
	border-radius: 999px !important;
	font-size: .78rem !important;
}
.woocommerce-cart table.cart td.actions button[name="update_cart"] {
	float: right;
	min-height: 44px !important;
	padding: 10px 22px !important;
	background: transparent !important;
	color: var(--c-cocoa) !important;
	border: 1px solid var(--c-line) !important;
	border-radius: 999px !important;
	font-size: .78rem !important;
}
.woocommerce-cart table.cart td.actions button[name="update_cart"]:hover {
	background: var(--c-cream) !important;
	border-color: var(--c-cocoa) !important;
}
.woocommerce-cart table.cart td.actions button[name="update_cart"][disabled] { opacity: .4; cursor: not-allowed; }

/* Cart totals — right column card */
.woocommerce-cart .cart-collaterals { padding: 0 !important; }
.woocommerce-cart .cart-collaterals .cart_totals {
	width: 100% !important;
	float: none !important;
	background: var(--c-ivory) !important;
	border: 1px solid var(--c-line) !important;
	border-radius: 14px !important;
	padding: 28px 32px 32px !important;
	position: sticky;
	top: calc(var(--header-h) + 24px);
}
.woocommerce-cart .cart-collaterals .cart_totals h2 {
	font-family: var(--f-serif);
	font-size: 1.5rem;
	margin: 0 0 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--c-line);
	color: var(--c-ink);
}
.woocommerce-cart .cart-collaterals .cart_totals table {
	background: transparent !important;
	border: 0 !important;
	width: 100%;
	margin: 0;
	border-radius: 0 !important;
}
.woocommerce-cart .cart-collaterals .cart_totals table tr { border-bottom: 1px solid var(--c-line); }
.woocommerce-cart .cart-collaterals .cart_totals table tr:last-of-type { border-bottom: 0; }
.woocommerce-cart .cart-collaterals .cart_totals table th,
.woocommerce-cart .cart-collaterals .cart_totals table td {
	padding: 14px 0 !important;
	border: 0 !important;
	background: transparent !important;
	font-size: .95rem;
}
.woocommerce-cart .cart-collaterals .cart_totals table th { text-align: left; font-weight: 500; color: var(--c-cocoa); font-family: var(--f-sans); }
.woocommerce-cart .cart-collaterals .cart_totals table td { text-align: right; color: var(--c-cocoa); }
.woocommerce-cart .cart-collaterals .cart_totals .order-total th {
	font-family: var(--f-serif);
	font-size: 1.15rem;
	color: var(--c-ink);
	padding-top: 18px !important;
	border-top: 1px solid var(--c-sand);
}
.woocommerce-cart .cart-collaterals .cart_totals .order-total td {
	font-family: var(--f-serif);
	font-size: 1.45rem;
	color: var(--c-accent-d);
	font-weight: 500;
	padding-top: 18px !important;
	border-top: 1px solid var(--c-sand);
}

/* Shipping calculator inside totals */
.woocommerce-cart .shipping-calculator-button {
	color: var(--c-accent-d);
	font-size: .9rem;
	border-bottom: 1px dashed var(--c-accent);
}
.woocommerce-cart .shipping-calculator-form { margin-top: 12px; }
.woocommerce-cart .shipping-calculator-form .form-row { margin-bottom: 12px; }
.woocommerce-cart .shipping-calculator-form input,
.woocommerce-cart .shipping-calculator-form select {
	width: 100%;
	padding: 10px 14px;
	border: 1px solid var(--c-line);
	border-radius: 8px;
	background: #fff;
	font-size: .92rem;
}

/* Proceed-to-checkout button */
.woocommerce-cart .wc-proceed-to-checkout { margin-top: 22px; padding: 22px 0 0; border-top: 1px solid var(--c-line); }
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button,
.woocommerce-cart a.checkout-button.button.alt {
	display: block !important;
	width: 100% !important;
	background: var(--c-cocoa) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 18px 32px !important;
	font-size: .9rem !important;
	font-weight: 500 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	text-align: center;
	min-height: 60px;
	line-height: 1.4;
	transition: background .25s ease, transform .15s ease;
}
.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover { background: var(--c-ink) !important; transform: translateY(-1px); }

/* Empty cart */
.woocommerce-cart .cart-empty {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 14px;
	padding: 64px 28px;
	text-align: center;
	font-family: var(--f-serif);
	font-size: 1.3rem;
	color: var(--c-cocoa);
	grid-column: 1 / -1 !important;
	margin: 0;
}
.woocommerce-cart .return-to-shop { text-align: center; margin-top: 22px; grid-column: 1 / -1 !important; }
.woocommerce-cart .return-to-shop a.button {
	display: inline-block;
	background: var(--c-cocoa) !important;
	color: #fff !important;
	border-radius: 999px !important;
	padding: 14px 32px !important;
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* Mobile cart */
@media (max-width: 980px) {
	.woocommerce-cart .woocommerce { grid-template-columns: 1fr; column-gap: 0; }
	.woocommerce-cart .woocommerce > form.woocommerce-cart-form,
	.woocommerce-cart .woocommerce > .cart-collaterals {
		grid-column: 1 !important;
		grid-row: auto !important;
		min-width: 0;
	}
	.woocommerce-cart .woocommerce > form.woocommerce-cart-form { order: 1; }
	.woocommerce-cart .woocommerce > .cart-collaterals { order: 2; margin-top: 28px; }
	.woocommerce-cart .woocommerce > .cross-sells { order: 3; }
	.woocommerce-cart .cart-collaterals .cart_totals { position: static !important; top: auto !important; }
}
@media (max-width: 768px) {
	/* ============================================================
	   Mobile cart — single-column card layout.
	   WC's cart <table> has 6 columns (remove/thumb/name/price/qty/subtotal)
	   which can't fit on a phone. We strip all table behavior and rebuild
	   each <tr> as a vertical card with a header row + meta + footer row.
	   ============================================================ */
	.woocommerce-cart table.cart,
	.woocommerce-cart table.cart > tbody,
	.woocommerce-cart table.cart > tbody > tr,
	.woocommerce-cart table.cart > tbody > tr > td {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}
	.woocommerce-cart table.cart {
		background: transparent !important;
		border: 0 !important;
		border-radius: 0 !important;
		overflow: visible !important;
		border-collapse: separate;
	}
	.woocommerce-cart table.cart > thead { display: none !important; }

	/* Each cart_item row → vertical flex card */
	.woocommerce-cart table.cart tbody tr.cart_item {
		display: flex !important;
		flex-direction: column !important;
		gap: 14px;
		padding: 18px !important;
		background: #fff !important;
		border: 1px solid var(--c-line) !important;
		border-radius: 14px !important;
		margin-bottom: 14px;
		position: relative;
	}

	/* All td's stack as block by default; we then reorder + style them.
	   Kill any inherited `td::before { content: attr(data-title) }` from WC
	   small-screen CSS — we re-add labels we want via their own rules. */
	.woocommerce-cart table.cart tbody tr.cart_item > td {
		padding: 0 !important;
		background: transparent !important;
		border: 0 !important;
		text-align: left !important;
		display: block !important;
		width: 100% !important;
	}
	/* Reset ::before only on td's where we DON'T want a label */
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-remove::before,
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-thumbnail::before,
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-name::before,
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-price::before {
		content: none !important;
		display: none !important;
	}

	/* Order: thumb(1) → name(2) → quantity+price footer(3) → remove(absolute) */
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-thumbnail { order: 1; width: 96px !important; }
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-name      { order: 2; }
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-quantity  { order: 3; }
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-subtotal  { order: 4; }
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-price     { display: none !important; }
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-remove {
		position: absolute !important;
		top: 14px;
		right: 14px;
		width: 32px !important;
		height: 32px;
		padding: 0 !important;
		z-index: 1;
	}

	/* Thumbnail */
	.woocommerce-cart table.cart td.product-thumbnail a {
		display: block;
		width: 96px;
		height: 96px;
	}
	.woocommerce-cart table.cart td.product-thumbnail img,
	.woocommerce-cart table.cart td.product-thumbnail .qiyun-cart-thumb {
		width: 96px !important;
		height: 96px !important;
		border-radius: 12px !important;
		object-fit: cover !important;
		display: block !important;
		background: var(--c-ivory);
	}

	/* Product name + inline meta */
	.woocommerce-cart table.cart td.product-name {
		padding-right: 40px !important;   /* space for the absolute remove btn */
	}
	.woocommerce-cart table.cart td.product-name > a {
		display: block;
		font-family: var(--f-serif);
		font-size: 1.05rem;
		line-height: 1.3;
		color: var(--c-ink);
		font-weight: 500;
		margin-bottom: 8px;
	}
	.woocommerce-cart table.cart td.product-name dl.variation,
	.woocommerce-cart table.cart td.product-name dl.wc-item-meta {
		margin: 0;
		padding: 10px 12px;
		background: var(--c-cream);
		border-radius: 8px;
		font-size: .8rem;
		line-height: 1.6;
		color: var(--c-cocoa);
		display: block;
	}
	.woocommerce-cart table.cart td.product-name dl dt {
		display: inline;
		float: none;
		font-weight: 600;
		color: var(--c-cocoa);
		margin: 0 4px 0 0;
		padding: 0;
		background: transparent !important;
	}
	.woocommerce-cart table.cart td.product-name dl dd {
		display: inline;
		margin: 0;
		padding: 0;
		background: transparent !important;
		color: var(--c-mute);
	}
	.woocommerce-cart table.cart td.product-name dl dd p { display: inline; margin: 0; }
	.woocommerce-cart table.cart td.product-name dl dd::after {
		content: '';
		display: block;
		height: 0;
		margin-bottom: 4px;
	}
	.woocommerce-cart table.cart td.product-name dl dd:last-of-type::after { display: none; }

	/* Remove button — absolutely positioned in top-right corner */
	.woocommerce-cart table.cart td.product-remove a.remove {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 32px !important;
		height: 32px;
		border-radius: 50%;
		background: var(--c-cream) !important;
		color: var(--c-cocoa) !important;
		font-size: 18px;
		line-height: 1;
		text-decoration: none;
	}
	.woocommerce-cart table.cart td.product-remove a.remove:hover {
		background: var(--c-ivory) !important;
	}

	/* Quantity */
	.woocommerce-cart table.cart td.product-quantity {
		padding-top: 6px !important;
		border-top: 1px solid var(--c-line);
		margin-top: 4px;
	}
	.woocommerce-cart table.cart td.product-quantity::before {
		content: 'Quantity' !important;
		display: block !important;
		font-size: .7rem;
		letter-spacing: .12em;
		text-transform: uppercase;
		color: var(--c-mute);
		font-weight: 600;
		margin-bottom: 8px;
		float: none !important;
	}
	.woocommerce-cart table.cart td.product-quantity .quantity {
		display: inline-flex;
		align-items: center;
	}
	.woocommerce-cart table.cart td.product-quantity input.qty {
		width: 72px !important;
		min-height: 42px;
		padding: 8px;
		text-align: center;
		border: 1px solid var(--c-line);
		border-radius: 8px;
		background: var(--c-cream);
		font-size: 1rem;
	}

	/* Subtotal */
	.woocommerce-cart table.cart td.product-subtotal {
		display: flex !important;
		justify-content: space-between;
		align-items: baseline;
		padding-top: 12px !important;
		border-top: 1px solid var(--c-line);
		margin-top: 4px;
	}
	.woocommerce-cart table.cart td.product-subtotal::before {
		content: 'Subtotal' !important;
		display: inline-block !important;
		font-size: .85rem;
		letter-spacing: .04em;
		color: var(--c-cocoa);
		font-weight: 500;
		font-family: var(--f-sans);
		float: none !important;
	}
	.woocommerce-cart table.cart td.product-subtotal .woocommerce-Price-amount,
	.woocommerce-cart table.cart td.product-subtotal > bdi,
	.woocommerce-cart table.cart td.product-subtotal > span {
		font-family: var(--f-serif);
		font-size: 1.3rem;
		color: var(--c-accent-d);
		font-weight: 500;
		text-align: right;
		white-space: nowrap;
	}

	/* Action row (coupon + update cart) — separate ivory card */
	.woocommerce-cart table.cart td.actions {
		display: block !important;
		padding: 18px !important;
		background: var(--c-ivory) !important;
		border: 1px solid var(--c-line) !important;
		border-radius: 14px !important;
		margin-top: 6px;
		width: 100% !important;
		box-sizing: border-box;
	}
	.woocommerce-cart table.cart td.actions .coupon {
		display: flex !important;
		gap: 8px;
		width: 100%;
		margin: 0 0 12px;
		flex-wrap: nowrap;
	}
	.woocommerce-cart table.cart td.actions .coupon input.input-text {
		flex: 1 1 auto;
		min-width: 0 !important;
		margin: 0 !important;
		display: block !important;
		padding: 10px 14px;
		min-height: 42px;
		border: 1px solid var(--c-line);
		border-radius: 999px;
		background: #fff;
		font-size: .88rem;
	}
	.woocommerce-cart table.cart td.actions .coupon button {
		flex: 0 0 auto !important;
		min-height: 42px !important;
		padding: 10px 18px !important;
		font-size: .72rem !important;
		white-space: nowrap;
	}
	.woocommerce-cart table.cart td.actions button[name="update_cart"] {
		float: none !important;
		display: block !important;
		width: 100% !important;
		min-height: 44px !important;
		font-size: .72rem !important;
		padding: 10px 18px !important;
	}

	/* Totals card padding tightening */
	.woocommerce-cart .cart-collaterals .cart_totals { padding: 24px 22px 28px !important; }
}

@media (max-width: 480px) {
	.woocommerce-cart table.cart tbody tr.cart_item {
		padding: 14px !important;
		gap: 12px;
	}
	.woocommerce-cart table.cart tbody tr.cart_item > td.product-thumbnail { width: 80px !important; }
	.woocommerce-cart table.cart td.product-thumbnail a,
	.woocommerce-cart table.cart td.product-thumbnail img,
	.woocommerce-cart table.cart td.product-thumbnail .qiyun-cart-thumb {
		width: 80px !important; height: 80px !important;
	}
	.woocommerce-cart table.cart td.product-name > a { font-size: 1rem; }
	.woocommerce-cart table.cart td.product-name dl.variation,
	.woocommerce-cart table.cart td.product-name dl.wc-item-meta { font-size: .76rem; padding: 8px 10px; }
	.woocommerce-cart table.cart td.product-subtotal .woocommerce-Price-amount,
	.woocommerce-cart table.cart td.product-subtotal > bdi,
	.woocommerce-cart table.cart td.product-subtotal > span { font-size: 1.15rem; }
	.woocommerce-cart table.cart td.actions .coupon { flex-wrap: wrap; }
	.woocommerce-cart table.cart td.actions .coupon button { width: 100%; }
}

/* ==========================================================================
   Checkout page (WooCommerce default shortcode markup)
   ========================================================================== */
.woocommerce-checkout .page-content,
.woocommerce-page.woocommerce-checkout .page-content { padding: 56px 0 96px; }
.woocommerce-checkout .entry-content { max-width: none; margin: 0; }
.woocommerce-checkout .page-banner h1 { letter-spacing: -.01em; }

/* Coupon strip */
.woocommerce-checkout .woocommerce-form-coupon-toggle { margin: 0 0 28px; }
.woocommerce-checkout .woocommerce-info {
	background: var(--c-ivory);
	border: 1px solid var(--c-line);
	border-left: 3px solid var(--c-accent);
	border-radius: 10px;
	padding: 16px 22px;
	color: var(--c-cocoa);
	font-size: .95rem;
}
.woocommerce-checkout .woocommerce-info a {
	color: var(--c-accent-d);
	font-weight: 500;
	border-bottom: 1px dashed var(--c-accent);
}
.woocommerce-checkout .checkout_coupon { background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 24px; margin-bottom: 32px; }
.woocommerce-checkout .checkout_coupon .form-row { margin: 0; }
.woocommerce-checkout .checkout_coupon .form-row-first { display: flex; gap: 12px; flex-wrap: wrap; }
.woocommerce-checkout .checkout_coupon input[name="coupon_code"] { flex: 1 1 200px; min-width: 200px; }

/* Login prompt (returning customer) */
.woocommerce-checkout .login { background: #fff; border: 1px solid var(--c-line); border-radius: 12px; padding: 28px; margin-bottom: 32px; }

/* The main checkout form — 2-column grid: customer details | order summary
   column-gap is 56px; row-gap is 0 so the right-side heading + review panel
   read as one continuous card. */
form.checkout.woocommerce-checkout {
	display: grid;
	grid-template-columns: minmax(0, 1.5fr) minmax(360px, 1fr);
	grid-template-rows: auto 1fr;
	column-gap: 56px;
	row-gap: 0;
	align-items: start;
}

/* LEFT column: customer details spans both rows so the right card can stack
   heading + review tightly. */
form.checkout #customer_details {
	grid-column: 1;
	grid-row: 1 / span 2;
	min-width: 0;
}
form.checkout #customer_details .col-1,
form.checkout #customer_details .col-2 {
	width: 100%; float: none;
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 14px;
	padding: 32px;
	margin-bottom: 24px;
}
form.checkout #customer_details .col-2:empty { display: none; }

/* RIGHT column: heading + review = one continuous panel, no gap between them */
form.checkout #order_review_heading {
	grid-column: 2; grid-row: 1;
	margin: 0;
	font-family: var(--f-serif);
	font-size: 1.5rem;
	padding: 28px 32px 18px;
	background: var(--c-ivory);
	border: 1px solid var(--c-line);
	border-bottom: 0;
	border-radius: 14px 14px 0 0;
	color: var(--c-ink);
}
form.checkout #order_review {
	grid-column: 2; grid-row: 2;
	background: var(--c-ivory);
	border: 1px solid var(--c-line);
	border-top: 0;
	border-radius: 0 0 14px 14px;
	padding: 0 32px 32px;
	position: sticky;
	top: calc(var(--header-h) + 24px);
	align-self: start;
}

/* Section headings */
.woocommerce-checkout form.checkout h3 {
	font-family: var(--f-serif);
	font-size: 1.35rem;
	margin: 0 0 22px;
	color: var(--c-ink);
	padding-bottom: 14px;
	border-bottom: 1px solid var(--c-line);
}
.woocommerce-checkout .woocommerce-additional-fields h3 { margin-top: 0; }

/* Form-row layout: grid pairs (first/last) + wide row */
.woocommerce-billing-fields__field-wrapper,
.woocommerce-shipping-fields__field-wrapper,
.woocommerce-additional-fields__field-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px 18px;
}
.woocommerce form .form-row {
	margin: 0; padding: 0;
	display: flex; flex-direction: column;
	min-width: 0;
}
.woocommerce form .form-row.form-row-wide,
.woocommerce form .form-row.notes { grid-column: 1 / -1; }
.woocommerce form .form-row.form-row-first,
.woocommerce form .form-row.form-row-last { grid-column: span 1; width: auto !important; }

/* Labels */
.woocommerce form .form-row label,
.woocommerce-page form .form-row label {
	display: block;
	font-size: .8rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c-cocoa);
	font-weight: 500;
	margin-bottom: 8px;
}
.woocommerce form .form-row label .required {
	color: var(--c-accent-d);
	border: 0;
	text-decoration: none;
	margin-left: 2px;
}
.woocommerce form .form-row label.required_field::after {
	content: ' *';
	color: var(--c-accent-d);
}
.woocommerce form .form-row .screen-reader-text { position: absolute; left: -9999px; }

/* Inputs / selects / textarea — uniform pill-rounded style */
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select,
.woocommerce .select2-container--default .select2-selection--single {
	width: 100% !important;
	padding: 0px 16px !important;
	min-height: 48px;
	border: 1px solid var(--c-line) !important;
	border-radius: 10px !important;
	background: var(--c-cream) !important;
	color: var(--c-ink) !important;
	font-family: var(--f-sans);
	font-size: 1rem;
	line-height: 1.4;
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
	box-shadow: none !important;
}
.woocommerce form .form-row textarea { min-height: 110px; resize: vertical; padding-top: 14px !important; }
.woocommerce form .form-row input.input-text:focus,
.woocommerce form .form-row textarea:focus,
.woocommerce form .form-row select:focus,
.woocommerce .select2-container--default.select2-container--open .select2-selection--single {
	outline: none;
	border-color: var(--c-accent) !important;
	background: #fff !important;
	box-shadow: 0 0 0 3px rgba(184, 146, 114, 0.14) !important;
}

/* Select2 dropdown (used for country/state) */
.woocommerce .select2-container .select2-selection--single { height: 48px; }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__rendered { line-height: 48px; padding: 0 16px; color: var(--c-ink); }
.woocommerce .select2-container--default .select2-selection--single .select2-selection__arrow { height: 46px; right: 8px; }
.select2-dropdown { border: 1px solid var(--c-line); border-radius: 10px; overflow: hidden; box-shadow: 0 8px 24px rgba(72, 56, 40, 0.12); }
.select2-results__option { padding: 10px 16px; }
.select2-container--default .select2-results__option--highlighted[aria-selected] {
	background: var(--c-cocoa);
	color: #fff;
}

/* Inline validation state */
.woocommerce form .form-row.woocommerce-invalid input.input-text,
.woocommerce form .form-row.woocommerce-invalid select { border-color: #c25a5a !important; }
.woocommerce form .form-row.woocommerce-validated input.input-text { border-color: #7eaa66 !important; }

/* Create-account checkbox row */
.woocommerce-account-fields .create-account label,
.woocommerce form .woocommerce-form__label-for-checkbox {
	display: flex; align-items: center; gap: 10px;
	text-transform: none; letter-spacing: 0; font-weight: 400; font-size: .95rem; color: var(--c-text);
	cursor: pointer; margin: 4px 0;
}
.woocommerce form .woocommerce-form__input-checkbox {
	width: 18px; height: 18px;
	accent-color: var(--c-cocoa);
}

/* Order summary table */
#order_review .shop_table {
	background: transparent;
	border: 0;
	border-radius: 0;
	width: 100%;
	margin: 0 0 20px;
}
#order_review .shop_table thead { display: none; }
#order_review .shop_table tr { border-bottom: 1px solid var(--c-line); }
#order_review .shop_table tbody tr:last-child { border-bottom: 1px solid var(--c-sand); }
#order_review .shop_table th,
#order_review .shop_table td {
	padding: 16px 0;
	border: 0;
	background: transparent;
	font-size: .95rem;
	vertical-align: top;
}
#order_review .shop_table td.product-name {
	color: var(--c-ink);
	font-family: var(--f-serif);
	font-size: 1.05rem;
	line-height: 1.4;
}
#order_review .shop_table td.product-name .product-quantity {
	color: var(--c-mute);
	font-family: var(--f-sans);
	font-size: .85rem;
	margin-left: 4px;
}
#order_review .shop_table td.product-total {
	text-align: right;
	color: var(--c-cocoa);
	font-weight: 500;
	white-space: nowrap;
}
#order_review .shop_table .product-name dl.variation,
#order_review .shop_table .product-name dl.wc-item-meta {
	margin: 8px 0 0;
	font-family: var(--f-sans);
	font-size: .82rem;
	color: var(--c-mute);
	line-height: 1.55;
}
#order_review .shop_table .product-name dl dt { float: none; font-weight: 600; color: var(--c-cocoa); margin: 0 4px 0 0; display: inline; padding: 0; }
#order_review .shop_table .product-name dl dt::after { content: ''; }
#order_review .shop_table .product-name dl dd { margin: 0 0 4px; display: inline; padding: 0; }
#order_review .shop_table .product-name dl dd p { margin: 0; }
#order_review .shop_table .product-name dl dt,
#order_review .shop_table .product-name dl dd { background: transparent !important; }

#order_review .shop_table tfoot tr th { font-weight: 500; color: var(--c-cocoa); text-align: left; padding: 12px 0; }
#order_review .shop_table tfoot tr td { text-align: right; padding: 12px 0; color: var(--c-cocoa); }
#order_review .shop_table tfoot .order-total th { font-family: var(--f-serif); font-size: 1.2rem; color: var(--c-ink); border-top: 1px solid var(--c-sand); padding-top: 18px; }
#order_review .shop_table tfoot .order-total td { font-family: var(--f-serif); font-size: 1.45rem; color: var(--c-accent-d); border-top: 1px solid var(--c-sand); padding-top: 18px; font-weight: 500; }

/* Payment methods list */
#payment {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: 20px 22px;
	margin-top: 4px;
}
#payment ul.payment_methods { list-style: none; margin: 0; padding: 0; border: 0; }
#payment ul.payment_methods li { margin: 0; padding: 14px 0; border-bottom: 1px solid var(--c-line); }
#payment ul.payment_methods li:last-of-type { border-bottom: 0; }
#payment ul.payment_methods li > input[type="radio"] { width: 18px; height: 18px; accent-color: var(--c-cocoa); margin-right: 10px; vertical-align: middle; }
#payment ul.payment_methods li label {
	display: inline-flex; align-items: center; gap: 10px;
	font-family: var(--f-serif); font-size: 1.05rem; color: var(--c-ink);
	text-transform: none; letter-spacing: 0; font-weight: 500;
	cursor: pointer; margin: 0;
}
#payment ul.payment_methods li label img { max-height: 26px; width: auto; }
#payment ul.payment_methods li .payment_box {
	background: var(--c-cream);
	border: 1px solid var(--c-line);
	border-radius: 10px;
	margin-top: 14px;
	padding: 16px 18px;
	color: var(--c-cocoa);
	font-size: .9rem;
	line-height: 1.6;
	position: relative;
}
#payment ul.payment_methods li .payment_box::before {
	content: '';
	position: absolute;
	top: -7px; left: 24px;
	width: 12px; height: 12px;
	background: var(--c-cream);
	border-left: 1px solid var(--c-line);
	border-top: 1px solid var(--c-line);
	transform: rotate(45deg);
}
#payment ul.payment_methods li .payment_box p:last-child { margin-bottom: 0; }
#payment ul.payment_methods li .payment_box fieldset { border: 0; padding: 0; margin: 0; }

/* Terms checkbox row */
#payment .woocommerce-terms-and-conditions-wrapper { margin: 18px 0 8px; padding: 16px 18px; background: var(--c-cream); border-radius: 8px; }
#payment .woocommerce-terms-and-conditions { display: none; }
#payment .form-row.validate-required label { font-size: .92rem; text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--c-text); }

/* Place-order button */
#payment .place-order { margin-top: 22px; padding-top: 22px; border-top: 1px solid var(--c-line); }
#payment #place_order,
.woocommerce-checkout button#place_order {
	width: 100%;
	background: var(--c-cocoa) !important;
	color: #fff !important;
	border: 0;
	border-radius: 999px;
	padding: 18px 32px;
	font-family: var(--f-sans);
	font-size: .95rem;
	font-weight: 500;
	letter-spacing: .08em;
	text-transform: uppercase;
	cursor: pointer;
	transition: background .25s ease, transform .15s ease;
	min-height: 60px;
}
#payment #place_order:hover { background: var(--c-ink) !important; transform: translateY(-1px); }

/* Empty checkout */
.woocommerce-checkout .cart-empty {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: 56px 28px;
	text-align: center;
	font-family: var(--f-serif);
	font-size: 1.3rem;
	color: var(--c-cocoa);
}
.woocommerce-checkout .return-to-shop { text-align: center; margin-top: 22px; }

/* Validation error pane */
.woocommerce-NoticeGroup-checkout,
.woocommerce-error,
.woocommerce-checkout .woocommerce-error {
	background: #FDECEC !important;
	border: 1px solid #f0c8c8 !important;
	border-left: 3px solid #b34a4a !important;
	border-radius: 10px;
	padding: 18px 22px !important;
	margin: 0 0 28px !important;
	color: #7a2424 !important;
	list-style: none;
}
.woocommerce-checkout .woocommerce-error li { padding: 4px 0; }
.woocommerce-checkout .woocommerce-error li::before { content: '⚠ '; color: #b34a4a; }

/* Loading state during AJAX checkout updates */
.woocommerce-checkout .blockUI.blockOverlay { background: rgba(251, 247, 241, 0.7) !important; }
.processing #order_review { opacity: .75; pointer-events: none; }

/* Mobile checkout */
@media (max-width: 980px) {
	form.checkout.woocommerce-checkout {
		grid-template-columns: 1fr;
		grid-template-rows: none;
		column-gap: 0;
		row-gap: 0;
	}
	form.checkout #customer_details,
	form.checkout #order_review_heading,
	form.checkout #order_review {
		grid-column: 1 !important;
		grid-row: auto !important;
		position: static !important;
		top: auto !important;
		min-width: 0;
	}
	form.checkout #customer_details { order: 1; }
	form.checkout #order_review_heading { order: 2; border-radius: 14px 14px 0 0; margin-top: 24px; }
	form.checkout #order_review { order: 3; border-radius: 0 0 14px 14px; }
}
@media (max-width: 768px) {
	/* Keep first/last name pair on the SAME row even on mobile.
	   Only form-row-wide collapses (which is the default from earlier rule). */
	.woocommerce-billing-fields__field-wrapper,
	.woocommerce-shipping-fields__field-wrapper,
	.woocommerce-additional-fields__field-wrapper { gap: 12px 14px; }
	form.checkout #customer_details .col-1,
	form.checkout #customer_details .col-2 { padding: 22px; }
	form.checkout #order_review_heading,
	form.checkout #order_review { padding-left: 22px; padding-right: 22px; }
}

/* ==========================================================================
   My Account page (WooCommerce shortcode)
   ========================================================================== */
.woocommerce-account .page-content { padding: 32px 0 96px; }
.woocommerce-account .entry-content { max-width: none; margin: 0; }

/* Root wrapper layout: sidebar + content (only when logged in — page has MyAccount nav)
   When logged out, the wrapper contains #customer_login and we use a different layout. */
.woocommerce-account .woocommerce {
	display: block;
}
.woocommerce-account .woocommerce:has(.woocommerce-MyAccount-navigation) {
	display: grid;
	grid-template-columns: 260px minmax(0, 1fr);
	gap: 32px;
	align-items: start;
}
.woocommerce-account .woocommerce > .woocommerce-notices-wrapper { grid-column: 1 / -1; margin-bottom: 8px; }

/* Sidebar navigation */
.woocommerce-account .woocommerce-MyAccount-navigation {
	background: var(--c-ivory);
	border-radius: 14px;
	padding: 10px;
	position: sticky;
	top: calc(var(--header-h) + 24px);
}
.woocommerce-account .woocommerce-MyAccount-navigation ul { list-style: none; margin: 0; padding: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li { margin: 0; }
.woocommerce-account .woocommerce-MyAccount-navigation li a {
	display: block;
	padding: 12px 16px;
	border-radius: 10px;
	color: var(--c-cocoa);
	font-size: .9rem;
	letter-spacing: .04em;
	font-weight: 500;
	text-decoration: none;
	transition: background .15s ease, color .15s ease;
}
.woocommerce-account .woocommerce-MyAccount-navigation li a:hover {
	background: rgba(255, 255, 255, 0.6);
	color: var(--c-ink);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
	background: #fff;
	color: var(--c-ink);
	box-shadow: 0 1px 4px rgba(28, 22, 16, 0.06);
}
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
	color: var(--c-mute);
	margin-top: 8px;
	border-top: 1px solid var(--c-line);
	padding-top: 16px;
	border-radius: 0 0 10px 10px;
}

/* Main content card */
.woocommerce-account .woocommerce-MyAccount-content {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 14px;
	padding: 36px;
	min-width: 0;
}
.woocommerce-account .woocommerce-MyAccount-content > p:first-of-type { font-size: 1.05rem; line-height: 1.7; color: var(--c-cocoa); margin: 0 0 18px; }
.woocommerce-account .woocommerce-MyAccount-content > p { line-height: 1.7; color: var(--c-text); }
.woocommerce-account .woocommerce-MyAccount-content > p strong { color: var(--c-ink); }
.woocommerce-account .woocommerce-MyAccount-content > p a { color: var(--c-accent-d); font-weight: 500; }
.woocommerce-account .woocommerce-MyAccount-content > p a:hover { color: var(--c-cocoa); }
.woocommerce-account .woocommerce-MyAccount-content h2,
.woocommerce-account .woocommerce-MyAccount-content h3 {
	font-family: var(--f-serif);
	color: var(--c-ink);
	margin: 0 0 16px;
}
.woocommerce-account .woocommerce-MyAccount-content h2 { font-size: 1.45rem; }
.woocommerce-account .woocommerce-MyAccount-content h3 { font-size: 1.2rem; margin-top: 28px; }

/* Dashboard quick links */
.woocommerce-account .woocommerce-MyAccount-content mark { background: transparent; color: var(--c-ink); font-weight: 500; }

/* Orders / Downloads tables */
.woocommerce-account table.woocommerce-orders-table,
.woocommerce-account table.shop_table {
	background: #fff !important;
	border: 1px solid var(--c-line) !important;
	border-radius: 12px !important;
	width: 100%;
	border-collapse: separate;
	border-spacing: 0;
	overflow: hidden;
}
.woocommerce-account table.shop_table th,
.woocommerce-account table.woocommerce-orders-table th {
	background: var(--c-ivory) !important;
	padding: 14px 18px !important;
	font-family: var(--f-sans);
	font-size: .75rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: var(--c-cocoa);
	text-align: left;
	border-bottom: 1px solid var(--c-line);
}
.woocommerce-account table.shop_table td,
.woocommerce-account table.woocommerce-orders-table td {
	padding: 16px 18px !important;
	border-bottom: 1px solid var(--c-line);
	font-size: .92rem;
	color: var(--c-cocoa);
	background: transparent !important;
}
.woocommerce-account table tr:last-child td { border-bottom: 0; }
.woocommerce-account table.woocommerce-orders-table .order-number a,
.woocommerce-account table .woocommerce-button {
	color: var(--c-cocoa) !important;
	font-weight: 500;
}
.woocommerce-account table .woocommerce-button {
	display: inline-block;
	padding: 8px 18px !important;
	background: var(--c-cream) !important;
	border: 1px solid var(--c-line) !important;
	border-radius: 999px !important;
	font-size: .78rem !important;
	letter-spacing: .06em;
	text-transform: uppercase;
	text-decoration: none;
	transition: background .2s ease, color .2s ease;
}
.woocommerce-account table .woocommerce-button:hover {
	background: var(--c-cocoa) !important;
	color: #fff !important;
	border-color: var(--c-cocoa) !important;
}

/* Addresses page — two address cards (only inside My Account content) */
.woocommerce-account .woocommerce-MyAccount-content .u-columns.col2-set,
.woocommerce-account .woocommerce-Addresses { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }

/* ============================================================
   Logged-out my-account page — Login + Register two-card layout
   This is rendered when WC's "Allow customers to create an account"
   setting is enabled. Shows side-by-side cards on desktop.
   ============================================================ */
.woocommerce-account #customer_login.u-columns,
.woocommerce-account #customer_login {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
	max-width: 980px;
	margin: 0 auto;
}
.woocommerce-account #customer_login .u-column1,
.woocommerce-account #customer_login .u-column2,
.woocommerce-account #customer_login > div {
	background: #fff;
	border: 1px solid var(--c-line);
	border-radius: 16px;
	padding: 36px;
	width: auto !important;
	float: none !important;
	min-width: 0;
}
.woocommerce-account #customer_login h2 {
	font-family: var(--f-serif);
	font-size: 1.6rem;
	font-weight: 500;
	color: var(--c-ink);
	margin: 0 0 24px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--c-line);
}
.woocommerce-account #customer_login .woocommerce-form {
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
}
.woocommerce-account #customer_login .woocommerce-form .form-row {
	display: flex;
	flex-direction: column;
	margin: 0 0 16px;
	padding: 0;
	width: 100% !important;
	float: none !important;
}
.woocommerce-account #customer_login .woocommerce-form .form-row label:not(.woocommerce-form__label-for-checkbox) {
	display: block;
	font-size: .78rem;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: var(--c-cocoa);
	font-weight: 500;
	margin: 0 0 8px;
}
.woocommerce-account #customer_login .woocommerce-form input.input-text {
	width: 100% !important;
	padding: 14px 16px !important;
	min-height: 50px;
	border: 1px solid var(--c-line) !important;
	border-radius: 10px !important;
	background: var(--c-cream) !important;
	color: var(--c-ink);
	font-family: var(--f-sans);
	font-size: 1rem;
	box-shadow: none !important;
	transition: border-color .15s ease, background .15s ease, box-shadow .15s ease;
}
.woocommerce-account #customer_login .woocommerce-form input.input-text:focus {
	outline: none;
	border-color: var(--c-accent) !important;
	background: #fff !important;
	box-shadow: 0 0 0 3px rgba(184, 146, 114, 0.14) !important;
}

/* Remember-me checkbox row */
.woocommerce-account #customer_login .woocommerce-form-login__rememberme,
.woocommerce-account #customer_login .form-row .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 18px;
	font-size: .92rem;
	color: var(--c-cocoa);
	letter-spacing: 0;
	text-transform: none;
	font-weight: 400;
	cursor: pointer;
}
.woocommerce-account #customer_login .woocommerce-form-login__rememberme input,
.woocommerce-account #customer_login .form-row .woocommerce-form__input-checkbox {
	width: 16px; height: 16px;
	accent-color: var(--c-cocoa);
	margin: 0;
}

/* Submit button */
.woocommerce-account #customer_login .woocommerce-form button[type="submit"],
.woocommerce-account #customer_login .woocommerce-form .button {
	width: 100% !important;
	padding: 16px 28px !important;
	min-height: 54px;
	background: var(--c-cocoa) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: var(--f-sans) !important;
	font-size: .9rem !important;
	font-weight: 500 !important;
	letter-spacing: .12em !important;
	text-transform: uppercase !important;
	cursor: pointer;
	transition: background .25s ease, transform .15s ease;
	margin-top: 4px;
}
.woocommerce-account #customer_login .woocommerce-form button[type="submit"]:hover { background: var(--c-ink) !important; transform: translateY(-1px); }

/* Forgot password link */
.woocommerce-account #customer_login .lost_password {
	margin: 18px 0 0;
	text-align: center;
}
.woocommerce-account #customer_login .lost_password a {
	color: var(--c-accent-d);
	font-size: .88rem;
	border-bottom: 1px dashed var(--c-accent);
}
.woocommerce-account #customer_login .lost_password a:hover { color: var(--c-cocoa); border-color: var(--c-cocoa); }

/* Privacy notice on register form */
.woocommerce-account #customer_login .woocommerce-privacy-policy-text,
.woocommerce-account #customer_login .woocommerce-privacy-policy-text p {
	font-size: .82rem;
	line-height: 1.55;
	color: var(--c-mute);
	margin: 12px 0 18px;
}
.woocommerce-account #customer_login .woocommerce-privacy-policy-text a {
	color: var(--c-accent-d);
	border-bottom: 1px dashed var(--c-accent);
}
.woocommerce-account #customer_login .password-input { position: relative; display: block; }
.woocommerce-account #customer_login .show-password-input {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	color: var(--c-mute);
	cursor: pointer;
}
.woocommerce-account #customer_login .show-password-input.display-password { color: var(--c-cocoa); }

/* Mobile / tablet — stack cards */
@media (max-width: 860px) {
	.woocommerce-account #customer_login.u-columns,
	.woocommerce-account #customer_login {
		grid-template-columns: 1fr;
		gap: 18px;
		max-width: 520px;
	}
	.woocommerce-account #customer_login .u-column1,
	.woocommerce-account #customer_login .u-column2,
	.woocommerce-account #customer_login > div { padding: 28px 24px; }
	.woocommerce-account #customer_login h2 { font-size: 1.4rem; margin-bottom: 18px; padding-bottom: 12px; }
}
@media (max-width: 480px) {
	.woocommerce-account #customer_login .u-column1,
	.woocommerce-account #customer_login .u-column2,
	.woocommerce-account #customer_login > div { padding: 22px 18px; border-radius: 14px; }
	.woocommerce-account #customer_login .woocommerce-form input.input-text { font-size: .95rem; min-height: 46px; padding: 12px 14px !important; }
	.woocommerce-account #customer_login .woocommerce-form button[type="submit"] { font-size: .82rem !important; min-height: 50px; }
}
.woocommerce-account .woocommerce-Address {
	background: var(--c-cream);
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: 24px;
}
.woocommerce-account .woocommerce-Address-title {
	display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
	margin-bottom: 14px;
	padding-bottom: 12px;
	border-bottom: 1px solid var(--c-line);
}
.woocommerce-account .woocommerce-Address-title h3 { margin: 0; font-size: 1.1rem; }
.woocommerce-account .woocommerce-Address-title .edit {
	font-size: .78rem;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: var(--c-accent-d);
	font-weight: 500;
}
.woocommerce-account address { font-style: normal; line-height: 1.7; color: var(--c-cocoa); font-size: .95rem; }

/* Edit-account + address forms */
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm,
.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-address-fields,
.woocommerce-account .woocommerce-MyAccount-content form.edit-account {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px 18px;
}
.woocommerce-account .woocommerce-MyAccount-content form fieldset {
	grid-column: 1 / -1;
	border: 1px solid var(--c-line);
	border-radius: 12px;
	padding: 22px 24px 8px;
	margin: 12px 0;
}
.woocommerce-account .woocommerce-MyAccount-content form fieldset legend {
	font-family: var(--f-serif);
	font-size: 1.15rem;
	color: var(--c-ink);
	padding: 0 8px;
}
.woocommerce-account .woocommerce-MyAccount-content form .form-row {
	display: flex; flex-direction: column;
	margin: 0;
}
.woocommerce-account .woocommerce-MyAccount-content form .form-row-wide,
.woocommerce-account .woocommerce-MyAccount-content form fieldset .form-row { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-content form .form-row-first,
.woocommerce-account .woocommerce-MyAccount-content form .form-row-last { grid-column: span 1; width: auto !important; }
.woocommerce-account .woocommerce-MyAccount-content form p:not(.form-row) { grid-column: 1 / -1; }
.woocommerce-account .woocommerce-MyAccount-content form .button {
	grid-column: 1 / -1;
	justify-self: start;
	padding: 14px 32px !important;
	background: var(--c-cocoa) !important;
	color: #fff !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-size: .85rem !important;
	letter-spacing: .12em;
	text-transform: uppercase;
	font-weight: 500;
	cursor: pointer;
	transition: background .25s ease;
}
.woocommerce-account .woocommerce-MyAccount-content form .button:hover { background: var(--c-ink) !important; }

/* No-orders / empty states */
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info {
	background: var(--c-ivory);
	border: 1px solid var(--c-line);
	border-left: 3px solid var(--c-accent);
	border-radius: 10px;
	padding: 18px 22px;
	color: var(--c-cocoa);
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	flex-wrap: wrap;
}
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-Message .button,
.woocommerce-account .woocommerce-MyAccount-content .woocommerce-info .button {
	margin-left: auto;
}

/* Pagination */
.woocommerce-account .woocommerce-pagination ul.page-numbers {
	display: flex; gap: 8px; list-style: none; margin: 24px 0 0; padding: 0;
}
.woocommerce-account .woocommerce-pagination .page-numbers {
	padding: 8px 14px;
	border: 1px solid var(--c-line);
	border-radius: 8px;
	color: var(--c-cocoa);
	font-size: .9rem;
}
.woocommerce-account .woocommerce-pagination .page-numbers.current {
	background: var(--c-cocoa);
	color: #fff;
	border-color: var(--c-cocoa);
}

/* Mobile my-account */
@media (max-width: 980px) {
	.woocommerce-account .woocommerce {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation { position: static; padding: 8px; }
	.woocommerce-account .woocommerce-MyAccount-navigation ul {
		display: flex; flex-wrap: wrap; gap: 4px;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation li { flex: 1 1 auto; }
	.woocommerce-account .woocommerce-MyAccount-navigation li a {
		padding: 10px 14px;
		font-size: .82rem;
		text-align: center;
	}
	.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--customer-logout a {
		margin-top: 0;
		border-top: 0;
		padding-top: 10px;
	}
	.woocommerce-account .woocommerce-MyAccount-content .u-columns.col2-set,
	.woocommerce-account .woocommerce-Addresses { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-EditAccountForm,
	.woocommerce-account .woocommerce-MyAccount-content form.woocommerce-address-fields,
	.woocommerce-account .woocommerce-MyAccount-content form.edit-account { grid-template-columns: 1fr; }
	.woocommerce-account .woocommerce-MyAccount-content form .form-row-first,
	.woocommerce-account .woocommerce-MyAccount-content form .form-row-last { grid-column: 1; }
}
@media (max-width: 768px) {
	.woocommerce-account .woocommerce-MyAccount-content { padding: 24px 20px; }
	.woocommerce-account table.shop_table th,
	.woocommerce-account table.woocommerce-orders-table th { display: none; }
	.woocommerce-account table.shop_table tr,
	.woocommerce-account table.woocommerce-orders-table tr { display: block; padding: 16px; border-bottom: 1px solid var(--c-line); }
	.woocommerce-account table.shop_table td,
	.woocommerce-account table.woocommerce-orders-table td {
		display: flex; justify-content: space-between;
		padding: 4px 0 !important; border: 0;
		font-size: .92rem;
	}
	.woocommerce-account table.shop_table td::before,
	.woocommerce-account table.woocommerce-orders-table td::before {
		content: attr(data-title);
		font-weight: 600;
		color: var(--c-cocoa);
		margin-right: 12px;
	}
}

/* WooCommerce block fallbacks (cart/checkout block uses these classes) */
.wc-block-components-button { background: var(--c-cocoa) !important; color: #fff !important; border-radius: 999px !important; }
.wc-block-components-button:hover { background: var(--c-ink) !important; }
