/* Snoozer Product Page (TWG) — only loads when the new layout is active. */
body.snzpdp {
	--snz-ink: #211913;
	--snz-body: #4a3d33;
	--snz-muted: #6b5d51;
	--snz-line: #e2d7c6;
	--snz-line-2: #d9cdbd;
	--snz-cream: #fbf8f3;
	--snz-sand: #efe8dd;
	--snz-gold: #b07d43;
	--snz-blue: #2d5877;
	--snz-serif: 'Bitter', Georgia, serif;
	--snz-sans: Arial, Helvetica, sans-serif;
}
html:has(body.snzpdp-ready) { overflow-x: clip; }

/* Hide what was emptied (the gallery, sidebar callouts); everything useful was moved out */
body.snzpdp-ready .product-info { display: none !important; }

/* ---------- Full-width hero ---------- */
.snzpdp-hero {
	position: relative;
	left: 50%;
	width: 100vw;
	margin-left: -50vw;
	background: var(--snz-cream);
	color: var(--snz-ink);
	font-family: var(--snz-sans);
	margin-bottom: 32px;
	box-sizing: border-box;
}
.snzpdp-hero--outside { left: auto; width: auto; margin-left: 0; margin-bottom: 0; border-bottom: 1px solid var(--snz-line); }
.snzpdp-hero *, .snzpdp-hero *::before, .snzpdp-hero *::after { box-sizing: border-box; }
.snzpdp-inner {
	max-width: 1600px;
	margin: 0 auto;
	padding: 20px clamp(16px, 3vw, 44px) 40px;
	display: flex;
	flex-wrap: wrap;
	gap: clamp(24px, 3.4vw, 56px);
	align-items: flex-start;
}
.snzpdp-flag {
	background: #2d5877; color: #fff; font-size: 13px; text-align: center; padding: 8px 16px;
}
.snzpdp-flag a { color: #fff; text-decoration: underline; }

/* ---------- Gallery ---------- */
.snzpdp-gallery { flex: 999 1 560px; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
@media (min-width: 900px) { .snzpdp-gallery { position: sticky; top: 90px; } }
.snzpdp-stage { position: relative; width: 100%; aspect-ratio: 5 / 4; border-radius: 6px; overflow: hidden; background: var(--snz-sand); }
.snzpdp-main { width: 100%; height: 100%; object-fit: cover; display: block; max-width: none !important; }
.snzpdp-badge {
	position: absolute; left: 16px; top: 16px; background: rgba(251,248,243,.94); color: var(--snz-ink);
	font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; padding: 8px 12px; border-radius: 3px;
}
.snzpdp-count {
	position: absolute; right: 16px; bottom: 16px; background: rgba(33,25,19,.78); color: #fbf8f3;
	font-size: 12px; padding: 7px 12px; border-radius: 20px;
}
.snzpdp-thumbs { display: flex; gap: 10px; overflow-x: auto; scrollbar-width: none; }
.snzpdp-thumbs::-webkit-scrollbar { display: none; }
.snzpdp-thumb {
	flex: 0 0 auto; width: 84px; height: 84px; padding: 0; border-radius: 4px; overflow: hidden; cursor: pointer;
	background: var(--snz-sand); border: 2px solid transparent; opacity: .82;
}
.snzpdp-thumb[aria-current="true"] { border-color: var(--snz-ink); opacity: 1; }
.snzpdp-thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- Buy box ---------- */
.snzpdp-box { flex: 1 1 380px; max-width: 540px; min-width: 0; display: flex; flex-direction: column; gap: 22px; }
.snzpdp-head { display: flex; flex-direction: column; gap: 10px; }
.snzpdp-eyebrow { margin: 0; font-size: 11px; letter-spacing: .2em; text-transform: uppercase; font-weight: 700; color: var(--snz-gold); }
.snzpdp-head .product_title {
	margin: 0 !important; padding: 0 !important; font-family: var(--snz-serif) !important; font-weight: 600 !important;
	font-size: clamp(30px, 2.8vw, 42px) !important; line-height: 1.08 !important; letter-spacing: -.01em; color: var(--snz-ink) !important;
	text-transform: none !important; text-align: left !important;
}
.snzpdp-price .price, .snzpdp-price .price * { font-family: var(--snz-serif) !important; font-size: 26px !important; font-weight: 600 !important; color: var(--snz-ink) !important; margin: 0 !important; }
.snzpdp-head p[data-page-type="product"] { margin: 0; font-size: 13px; color: var(--snz-body); }
.snzpdp-intro p { margin: 0; font-size: 15px; line-height: 1.55; color: var(--snz-body); }
.snzpdp-head .snoozer-sale-banner { margin: 0; }

/* Section labels (Filling, Fabric Collection, Choose Size, Choose Color) */
.snzpdp-box .iconic-wlv-variations__label strong,
.snzpdp-box .variations .option-wrap > label {
	display: block; font-family: var(--snz-sans) !important; font-size: 13px !important; letter-spacing: .06em; text-transform: uppercase;
	font-weight: 700 !important; color: var(--snz-ink) !important; margin: 0 0 10px !important;
}
.snzpdp-picked { text-transform: none; letter-spacing: 0; font-weight: 400; color: var(--snz-body); }

/* ---------- Linked products: Filling / Fabric Collection cards ---------- */
.snzpdp-linked table, .snzpdp-linked tbody, .snzpdp-linked tr, .snzpdp-linked td { display: block; width: 100%; border: 0 !important; padding: 0 !important; background: none !important; }
.snzpdp-linked tr + tr { margin-top: 18px; }
.snzpdp-linked .iconic-wlv-variations__label { display: flex; gap: 6px; align-items: baseline; margin-bottom: 10px; font-size: 13px; }
.snzpdp-linked .iconic-wlv-variations__label strong { margin: 0 !important; }
.snzpdp-linked .iconic-wlv-variations__colon { display: none; }
.snzpdp-linked .iconic-wlv-variations__selection { color: var(--snz-body); }
.snzpdp-linked .iconic-wlv-variations__selection::before { content: ': '; }
.snzpdp-linked ul.iconic-wlv-terms { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px; margin: 0 !important; padding: 0 !important; list-style: none !important; }
.snzpdp-linked .iconic-wlv-terms__term { margin: 0 !important; padding: 0 !important; border: 0 !important; background: none !important; width: auto !important; }
.snzpdp-linked .iconic-wlv-terms__term-content {
	white-space: normal !important; height: auto !important; width: auto !important; overflow: visible !important;
	display: flex !important; flex-direction: column; gap: 3px; height: 100%; padding: 12px 14px !important; border-radius: 6px !important;
	background: var(--snz-cream) !important; border: 1px solid var(--snz-line-2) !important; color: var(--snz-ink) !important;
	text-align: left !important; text-transform: none !important; text-decoration: none !important; line-height: 1.3; min-height: 0 !important;
}
.snzpdp-linked .iconic-wlv-terms__term--current .iconic-wlv-terms__term-content { background: #fff !important; border: 1.5px solid var(--snz-ink) !important; }
.snzpdp-linked a.iconic-wlv-terms__term-content:hover { border-color: var(--snz-ink) !important; }
.snzpdp-term-name { font-weight: 700; font-size: 14px; display: flex; justify-content: space-between; gap: 6px; }
.snzpdp-linked a .snzpdp-term-name::after { content: '\2192'; font-weight: 400; color: var(--snz-muted); }
.snzpdp-term-desc { font-size: 12px; line-height: 1.4; color: var(--snz-body); }
.snzpdp-linked .iconic-wlv-terms__term--outofstock .iconic-wlv-terms__term-content { opacity: .55; }

/* ---------- Variations form ---------- */
.snzpdp-box form.cart { margin: 0 !important; padding: 0 !important; border: 0 !important; }
.snzpdp-box .variations { display: flex; flex-direction: column-reverse; gap: 22px; margin: 0 0 18px !important; } /* color first, then size */
.snzpdp-box .variations .option-wrap { display: block !important; margin: 0 !important; padding: 0 !important; float: none !important; width: auto !important; }
.snzpdp-box .variations .option-wrap > .value { display: block !important; float: none !important; width: auto !important; padding: 0 !important; }
.snzpdp-box .swatch-label { display: none !important; }
.snzpdp-box .swatch-control { display: flex !important; flex-wrap: wrap; gap: 10px; }
.snzpdp-box .swatch-control select { display: none !important; }
.snzpdp-box .swatch-wrapper { margin: 0 !important; padding: 0 !important; border: 0 !important; float: none !important; background: none !important; }

/* Color: clean circles, name shown next to the label instead */
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"] { font-size: 0 !important; line-height: 0; width: auto !important; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"] .swatch-anchor {
	display: block; width: 46px !important; height: 46px !important; padding: 3px; border-radius: 50% !important; background: #fff;
	border: 1.5px solid var(--snz-line) !important; overflow: hidden;
}
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"] .swatch-anchor img { width: 100% !important; height: 100% !important; border-radius: 50%; object-fit: cover; display: block; margin: 0 !important; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"].selected .swatch-anchor { border-color: var(--snz-ink) !important; box-shadow: 0 0 0 1px var(--snz-ink); }
.snzpdp-box .swatch-wrapper.disabled { opacity: .35; }

/* Size (and any other non-color picker): text cards */
.snzpdp-box .swatch-wrapper:not([data-attribute="pa_color"]) { flex: 1 1 0; min-width: 90px; font-size: 0 !important; }
.snzpdp-box .swatch-wrapper:not([data-attribute="pa_color"]) .swatch-anchor {
	display: flex !important; align-items: center; justify-content: center; width: 100% !important; height: 52px !important; padding: 0 10px;
	border-radius: 6px; background: var(--snz-cream); border: 1px solid var(--snz-line-2) !important; text-decoration: none !important;
}
.snzpdp-box .swatch-wrapper:not([data-attribute="pa_color"]) .swatch-anchor img { display: none !important; }
.snzpdp-box .swatch-wrapper:not([data-attribute="pa_color"]) .swatch-anchor::after {
	content: attr(title); font: 700 14px/1.2 var(--snz-sans); color: var(--snz-ink); text-align: center;
}
.snzpdp-box .swatch-wrapper:not([data-attribute="pa_color"]).selected .swatch-anchor { background: #fff; border: 1.5px solid var(--snz-ink) !important; }
.snzpdp-box .reset_variations { font-size: 12px; color: var(--snz-blue); margin-top: 6px; display: inline-block; }

.snzpdp-box .single_variation_wrap { display: flex; flex-direction: column; gap: 16px; }
.snzpdp-box .woocommerce-variation-price .price { font-family: var(--snz-serif); font-size: 22px; font-weight: 600; color: var(--snz-ink); }

/* ---------- Monogram (Product Add-Ons, unchanged fields) ---------- */
.snzpdp-box .wc-pao-addons-container { border: 1px solid var(--snz-line); border-radius: 6px; background: #fff; padding: 0; overflow: hidden; }
.snzpdp-box #monogram-visibility { position: absolute !important; opacity: 0 !important; width: 1px !important; height: 1px !important; margin: 0 !important; }
.snzpdp-box label[for="monogram-visibility"] {
	display: flex !important; align-items: center; gap: 14px; padding: 14px 16px; margin: 0 !important; cursor: pointer;
	font: inherit !important; text-transform: none !important; letter-spacing: 0 !important; color: var(--snz-ink) !important;
}
.snzpdp-mono-text { display: flex; flex-direction: column; gap: 2px; flex: 1 1 auto; }
.snzpdp-mono-title { font-weight: 700; font-size: 14px; }
.snzpdp-mono-sub { font-size: 13px; color: var(--snz-body); }
.snzpdp-switch { flex: 0 0 auto; position: relative; width: 44px; height: 26px; border-radius: 13px; background: var(--snz-line-2); transition: background .15s; }
.snzpdp-switch::after { content: ''; position: absolute; top: 3px; left: 3px; width: 20px; height: 20px; border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(0,0,0,.25); transition: left .15s; }
.snzpdp-box #monogram-visibility:checked + label .snzpdp-switch { background: var(--snz-blue); }
.snzpdp-box #monogram-visibility:checked + label .snzpdp-switch::after { left: 21px; }
.snzpdp-box #monogram-visibility:focus-visible + label { outline: 2px solid var(--snz-blue); outline-offset: -2px; }
.snzpdp-box #monogram_content { margin: 0 !important; padding: 0 16px; }
.snzpdp-box #monogram-visibility:checked ~ #monogram_content { padding: 4px 16px 16px; border-top: 1px solid var(--snz-sand); }
.snzpdp-box #monogram_content .wc-pao-addon-heading { display: none; }
.snzpdp-box #monogram_content input[type="text"] { width: 100%; padding: 10px 12px; border: 1px solid var(--snz-line-2); border-radius: 4px; background: var(--snz-cream); font: 600 15px var(--snz-sans); letter-spacing: .08em; text-transform: uppercase; }
.snzpdp-box .wc-pao-addon-image-swatch img { border-radius: 4px; }

/* ---------- Add to cart ---------- */
.snzpdp-box .variations_button, .snzpdp-box .cart .quantity-box + button, .snzpdp-box form.cart > .single_add_to_cart_button { }
.snzpdp-box .woocommerce-variation-add-to-cart { display: flex; gap: 10px; align-items: stretch; flex-wrap: nowrap; }
.snzpdp-box .quantity-box { display: flex; align-items: center; margin: 0 !important; }
.snzpdp-box .quantity-box > label { display: none; }
.snzpdp-box .quantity input.qty { width: 64px !important; height: 54px !important; border: 1px solid var(--snz-line-2) !important; border-radius: 4px; text-align: center; font-weight: 700; background: #fff; }
.snzpdp-box .single_add_to_cart_button {
	flex: 1 1 auto; min-height: 54px; margin: 0 !important; border: 0 !important; border-radius: 4px !important;
	background: var(--snz-ink) !important; color: #fbf8f3 !important; font: 700 14px var(--snz-sans) !important;
	letter-spacing: .14em; text-transform: uppercase; cursor: pointer; float: none !important; width: auto !important;
}
.snzpdp-box .single_add_to_cart_button:hover { background: #3a2e26 !important; }
.snzpdp-box .single_add_to_cart_button.disabled { opacity: .55; }

/* ---------- Trust points ---------- */
.snzpdp-trust {
	list-style: none; margin: 0; padding: 16px 0 0; border-top: 1px solid var(--snz-line);
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 18px; font-size: 13px; color: var(--snz-body);
}
.snzpdp-trust li { margin: 0; padding-left: 20px; position: relative; }
.snzpdp-trust li::before { content: ''; position: absolute; left: 0; top: 4px; width: 9px; height: 9px; border-radius: 50%; background: var(--snz-gold); }

/* ---------- Phone ---------- */
@media (max-width: 600px) {
	.snzpdp-inner { padding-top: 12px; }
	.snzpdp-stage { aspect-ratio: 1 / 1; border-radius: 0; margin: 0 calc(-1 * clamp(16px, 3vw, 44px)); width: auto; }
	.snzpdp-thumb { width: 64px; height: 64px; }
	.snzpdp-trust { grid-template-columns: 1fr; }
}

/* ---------- Theme overrides found in testing ---------- */
.snzpdp-box .variations .option-wrap > label { float: none !important; width: auto !important; }
.snzpdp-thumb, .snzpdp-thumb:hover, .snzpdp-thumb:focus { border: 2px solid transparent !important; box-shadow: none !important; background: var(--snz-sand) !important; }
.snzpdp-thumb[aria-current="true"] { border-color: var(--snz-ink) !important; }
.snzpdp-term-desc { font-weight: 400 !important; }
.snzpdp-term-name { font-weight: 700 !important; }
.snzpdp-box .woocommerce-variation-add-to-cart { width: 100%; }
.snzpdp-box .quantity-box { flex: 0 0 auto; }
.snzpdp-box .single_add_to_cart_button { flex: 1 1 0 !important; white-space: nowrap; padding: 0 16px !important; }
.snzpdp-trust li { padding-left: 20px !important; list-style: none !important; background: none !important; }
.snzpdp-box .swatch-wrapper .swatch-anchor:focus { outline: 2px solid var(--snz-blue); outline-offset: 2px; }
.snzpdp-box .quantity-box, .snzpdp-box .quantity-box .quantity { width: auto !important; float: none !important; margin: 0 !important; }
.snzpdp-box .woocommerce-variation-add-to-cart { display: flex !important; }

/* ---------- 1.1.0: fabric textures, size notes, theme background fix ---------- */
.snzpdp-linked .iconic-wlv-terms__term,
.snzpdp-linked .iconic-wlv-terms__term[data-iconic-wlv-term-label] {
	display: block !important; float: none !important; width: 100% !important; margin: 0 !important;
	background: transparent none !important; box-shadow: none !important; opacity: 1;
}
.snzpdp-linked .iconic-wlv-terms__term::before, .snzpdp-linked .iconic-wlv-terms__term::after { display: none !important; }
.snzpdp-linked .iconic-wlv-terms__term-content { width: 100% !important; box-sizing: border-box !important; font-weight: 400 !important; }
.snzpdp-linked .iconic-wlv-terms__term-content.snzpdp-has-swatch { flex-direction: row !important; align-items: center; gap: 12px; }
.snzpdp-term-text { display: flex; flex-direction: column; gap: 3px; flex: 1 1 auto; min-width: 0; }
.snzpdp-term-swatch { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; background-size: cover; background-position: center; box-shadow: inset 0 0 0 1px rgba(0,0,0,.12); }
.snzpdp-linked .iconic-wlv-terms__term--partial-match:not(.iconic-wlv-terms__term--current) .iconic-wlv-terms__term-content,
.snzpdp-linked .iconic-wlv-terms__term--unavailable .iconic-wlv-terms__term-content { opacity: .5; }

.snzpdp-box .swatch-wrapper[data-attribute="pa_size"] .swatch-anchor.snzpdp-size::after { content: none !important; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_size"] .swatch-anchor.snzpdp-size {
	flex-direction: column; align-items: flex-start !important; justify-content: center; gap: 2px; text-align: left;
	height: auto !important; min-height: 52px; padding: 11px 12px !important;
}
.snzpdp-box .swatch-wrapper[data-attribute="pa_size"] .swatch-anchor.snzpdp-size:not(.snzpdp-size--notes) { align-items: center !important; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_size"] { min-width: 120px; }
.snzpdp-size-name { font: 700 14px/1.2 var(--snz-sans); color: var(--snz-ink); }
.snzpdp-size-fit { font: 12px/1.35 var(--snz-sans); color: var(--snz-body); }
.snzpdp-size-dim { font: 12px/1.35 var(--snz-sans); color: var(--snz-muted); }
.snzpdp-linked .snzpdp-term-text { display: flex !important; flex-direction: column !important; gap: 3px; }
.snzpdp-linked .snzpdp-term-name { display: flex !important; }
.snzpdp-linked .snzpdp-term-desc { display: block !important; font-weight: 400 !important; font-size: 12px !important; line-height: 1.4 !important; }
.snzpdp-linked .iconic-wlv-terms__term .snzpdp-term-desc, .snzpdp-linked .iconic-wlv-terms__term--current .snzpdp-term-desc { font-weight: 400 !important; }
.snzpdp-box #picker_pa_size { display: grid !important; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; }
.snzpdp-box #picker_pa_size:has(> div.swatch-wrapper:nth-of-type(4)) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.snzpdp-box #picker_pa_size .swatch-wrapper { min-width: 0 !important; }

/* 1.1.1: breadcrumb at the top */
.snzpdp-crumbs { max-width: 1600px; margin: 0 auto; padding: 16px clamp(16px, 3vw, 44px) 0; }
.snzpdp-crumbs .breadcrumbs, .snzpdp-crumbs .woocommerce-breadcrumb { margin: 0 !important; padding: 0 !important; font-size: 12px; letter-spacing: .04em; color: var(--snz-muted); text-align: left !important; }
.snzpdp-crumbs a { color: var(--snz-muted) !important; text-decoration: none; }
.snzpdp-crumbs a:hover { color: var(--snz-ink) !important; text-decoration: underline; }
.snzpdp-hero .snzpdp-crumbs + .snzpdp-inner { padding-top: 12px; }
body.snzpdp .snzpdp-linked .iconic-wlv-terms__term-content, body.snzpdp .snzpdp-linked .iconic-wlv-terms__term-content * { font-weight: 400 !important; }
body.snzpdp .snzpdp-linked .iconic-wlv-terms__term-content .snzpdp-term-name { font-weight: 700 !important; }

/* ---------- 1.1.3: tighter buy box (image size unchanged), Coming Soon tags, quantity stepper ---------- */
.snzpdp-box { gap: 16px; }
.snzpdp-head { gap: 8px; }
.snzpdp-linked tr + tr { margin-top: 14px; }
.snzpdp-linked .iconic-wlv-variations__label { margin-bottom: 8px; }
.snzpdp-box .variations .option-wrap > label { margin-bottom: 8px !important; }
.snzpdp-linked .iconic-wlv-terms__term-content { padding: 9px 12px !important; }
.snzpdp-linked .snzpdp-term-desc { line-height: 1.35 !important; }
.snzpdp-term-swatch { width: 30px; height: 30px; }
.snzpdp-linked .iconic-wlv-terms__term-content.snzpdp-has-swatch { gap: 10px; }
.snzpdp-box .variations { gap: 16px; margin-bottom: 14px !important; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_size"] .swatch-anchor.snzpdp-size { padding: 9px 11px !important; }

/* "Clear" link sat on its own line under the colors; tuck it into the label row */
.snzpdp-box .variations .option-wrap { position: relative; }
.snzpdp-box .variations .reset_variations { position: absolute; top: 0; right: 0; margin: 0 !important; line-height: 20px; }

/* Color circles: slightly smaller. Coming Soon colors get a short "Soon" pill on the bottom edge (the theme's label was clipped by the circle) */
.snzpdp-box .swatch-control:has(> .swatch-wrapper[data-attribute="pa_color"]) { gap: 12px 9px; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"] { overflow: visible !important; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"] .swatch-anchor { width: 42px !important; height: 42px !important; position: relative; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"] .swatch-anchor:not(.snzpdp-soon)::after { display: none !important; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"] .swatch-anchor.snzpdp-soon { overflow: visible !important; }
.snzpdp-box .swatch-wrapper[data-attribute="pa_color"] .swatch-anchor.snzpdp-soon::after {
	content: 'Soon' !important; display: block !important; position: absolute !important;
	top: auto !important; right: auto !important; left: 50% !important; bottom: -6px !important; transform: translateX(-50%) !important;
	width: max-content !important; height: auto !important; padding: 2px 6px !important; border-radius: 8px !important;
	white-space: nowrap !important; font: 700 9px/1.2 var(--snz-sans) !important; letter-spacing: .06em !important; text-transform: uppercase !important;
	background: var(--snz-blue) !important; color: #fff !important; z-index: 3; box-shadow: 0 0 0 2px #fbf8f3;
}

/* The theme's body overflow setting stopped the photo from staying in view while you scroll the options */
body.snzpdp-ready { overflow: visible !important; }

/* Quantity: theme arrow images replaced with a clean - 1 + stepper */
.snzpdp-box .quantity.buttons_added {
	display: flex !important; align-items: stretch; height: 54px; border: 1px solid var(--snz-line-2); border-radius: 4px; background: #fff; overflow: hidden;
}
.snzpdp-box .quantity.buttons_added input.minus,
.snzpdp-box .quantity.buttons_added input.plus {
	position: static !important; display: block !important; width: 30px !important; height: 100% !important; margin: 0 !important; padding: 0 !important;
	background: none !important; border: 0 !important; box-shadow: none !important; text-indent: 0 !important; color: var(--snz-ink) !important;
	font: 400 18px/1 var(--snz-sans) !important; cursor: pointer; -webkit-appearance: none; appearance: none;
}
.snzpdp-box .quantity.buttons_added input.minus:hover, .snzpdp-box .quantity.buttons_added input.plus:hover { background: var(--snz-cream) !important; }
.snzpdp-box .quantity.buttons_added input.qty {
	width: 36px !important; height: 100% !important; border: 0 !important; border-radius: 0; padding: 0 !important; margin: 0 !important;
	-moz-appearance: textfield; appearance: textfield;
}
.snzpdp-box .quantity.buttons_added input.qty::-webkit-outer-spin-button,
.snzpdp-box .quantity.buttons_added input.qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

/* Cards in the same row were different heights and floated mid-row; make every card fill its row, content top-aligned */
.snzpdp-linked ul.iconic-wlv-terms { align-items: stretch !important; }
.snzpdp-linked .iconic-wlv-terms__term { height: 100% !important; }
.snzpdp-linked .iconic-wlv-terms__term-content { height: 100% !important; justify-content: flex-start !important; }
.snzpdp-linked .iconic-wlv-terms__term-content.snzpdp-has-swatch { align-items: flex-start !important; }
.snzpdp-linked .snzpdp-has-swatch .snzpdp-term-swatch { margin-top: 2px; }

/* ---------- 1.1.4: fabric strip across the top of each Fabric Collection card; swatch ring and Clear link fixes ---------- */
.snzpdp-linked .iconic-wlv-terms__term-content.snzpdp-has-swatch { flex-direction: column !important; align-items: stretch !important; gap: 8px !important; overflow: hidden !important; }
.snzpdp-linked .snzpdp-has-swatch .snzpdp-term-swatch {
	width: calc(100% + 24px) !important; height: 46px !important; margin: -9px -12px 0 !important; border-radius: 5px 5px 0 0 !important;
	background-size: cover !important; background-position: center !important; box-shadow: inset 0 -1px 0 rgba(0,0,0,.08) !important;
}
/* The selected color's ring was clipped by the swatch row */
.snzpdp-box .swatch-control { overflow: visible !important; padding: 2px !important; margin: -2px !important; }
/* Clear link sat on top of the Choose Color label; pin it to the right */
.snzpdp-box .variations .reset_variations { left: auto !important; right: 0 !important; top: 0 !important; float: none !important; width: auto !important; font-size: 12px !important; }

/* ---------- 1.1.5: no flash of the old buy box. It stays invisible until the new layout is built; if the script never runs, it shows after 3s. ---------- */
body.snzpdp:not(.snzpdp-ready) .product-info { opacity: 0; animation: snzpdp-reveal 0s linear 3s forwards; }
@keyframes snzpdp-reveal { to { opacity: 1; } }

/* ---------- 1.1.6: turning "Add their name" on/off jumped the page to the top. The hidden checkbox was positioned at the top of the hero, and the browser scrolled to it on focus; keep it inside the add-on box. ---------- */
.snzpdp-box .wc-pao-addons-container, .snzpdp-box .wc-pao-addon-container { position: relative !important; }
.snzpdp-box #monogram-visibility { top: 20px !important; left: 20px !important; }

/* ---------- 1.1.7: remove the thin white strip between the product area and a full-width description block below it ---------- */
body.snzpdp-ready .page-content:has(.snz-nf, #snoozer-overstuffed-desc) { padding-top: 0 !important; }
body.snzpdp-ready .page-content:has(.snz-nf, #snoozer-overstuffed-desc) .tabs .tab-content { margin-top: 0 !important; }

/* ---------- 1.1.8: cart notices sit at the top of the product area in the page's own style (no more green bar under it) ---------- */
.snzpdp-notices { max-width: 1600px; margin: 0 auto; padding: 14px clamp(16px, 3vw, 44px) 0; display: flex; flex-direction: column; gap: 8px; }
.snzpdp-notices .woocommerce-notices-wrapper { display: flex; flex-direction: column; gap: 8px; margin: 0 !important; padding: 0 !important; }
.snzpdp-notices .woocommerce-message,
.snzpdp-notices .woocommerce-info,
.snzpdp-notices .woocommerce-error {
	display: flex !important; align-items: center; gap: 14px; flex-wrap: wrap; margin: 0 !important; padding: 14px 16px 14px 18px !important;
	background: #fff !important; border: 1px solid var(--snz-line) !important; border-left: 3px solid var(--snz-ink) !important; border-radius: 6px !important;
	box-shadow: 0 1px 2px rgba(33,25,19,.06) !important; color: var(--snz-ink) !important; outline: 0 !important;
	font: 400 15px/1.4 var(--snz-sans) !important; text-transform: none !important; letter-spacing: 0 !important; list-style: none !important; min-height: 0 !important;
}
.snzpdp-notices .woocommerce-message::before,
.snzpdp-notices .woocommerce-info::before,
.snzpdp-notices .woocommerce-error::before {
	content: '\2713' !important; position: static !important; flex: 0 0 auto; display: flex !important; align-items: center; justify-content: center;
	width: 24px !important; height: 24px !important; margin: 0 !important; border-radius: 50%; background: #3f6b4f !important; color: #fff !important;
	font: 700 13px/1 var(--snz-sans) !important; text-indent: 0 !important; top: auto !important; left: auto !important;
}
.snzpdp-notices .woocommerce-error { border-left-color: #a33b2b !important; }
.snzpdp-notices .woocommerce-error::before { content: '!' !important; background: #a33b2b !important; }
.snzpdp-notices .woocommerce-info::before { content: 'i' !important; background: var(--snz-blue) !important; font-family: Georgia, serif !important; }
.snzpdp-notices .woocommerce-message::after, .snzpdp-notices .woocommerce-error::after, .snzpdp-notices .woocommerce-info::after { display: none !important; }
.snzpdp-notices .woocommerce-error li { margin: 0 !important; padding: 0 !important; list-style: none !important; }
.snzpdp-notices .button, .snzpdp-notices a.wc-forward {
	order: 2; margin: 0 0 0 auto !important; float: none !important; padding: 10px 16px !important; border: 0 !important; border-radius: 4px !important;
	background: var(--snz-ink) !important; color: #fbf8f3 !important; font: 700 12px/1 var(--snz-sans) !important; letter-spacing: .12em !important;
	text-transform: uppercase !important; text-decoration: none !important; box-shadow: none !important; height: auto !important; line-height: 1 !important;
}
.snzpdp-notices .button:hover, .snzpdp-notices a.wc-forward:hover { background: #3a2e26 !important; }
@media (max-width: 600px) {
	.snzpdp-notices .button, .snzpdp-notices a.wc-forward { margin-left: 38px !important; }
}

/* ---------- 1.1.9: hero frame printed by the server (body.snzpdp-ssr) ---------- */
/* The old product area takes no space while the buy box is moved, so nothing below it jumps. If the script never runs, it comes back after 6s and the frame steps aside. */
body.snzpdp-ssr:not(.snzpdp-ready) .product-info { opacity: 0; max-height: 0; overflow: hidden; animation: snzpdp-reveal-ssr 0s linear 6s forwards; }
@keyframes snzpdp-reveal-ssr { to { opacity: 1; max-height: none; overflow: visible; } }
body.snzpdp-ssr:not(.snzpdp-ready) .snzpdp-hero[data-ssr] { animation: snzpdp-hide-ssr 0s linear 6s forwards; }
@keyframes snzpdp-hide-ssr { to { visibility: hidden; max-height: 0; overflow: hidden; } }
/* Hold the buy box's space until it is filled, so the description below stays put */
body.snzpdp-ssr:not(.snzpdp-ready) .snzpdp-hero[data-ssr] .snzpdp-box { min-height: 900px; }
.snzpdp-hero[data-ssr] .snzpdp-crumbs { min-height: 34px; }
.snzpdp-main { height: 100% !important; }

/* ---------- 1.1.10: standard crop for the main photo. When a photo doesn't fit the frame, the crop comes off the TOP (and sides, evenly), never the bottom, so the bed and the dog stay whole. ---------- */
.snzpdp-main { object-position: 50% 100% !important; }
