/*
Theme Name: Snugibo Child
Theme URI:
Author: Snugibo
Author URI:
Description: Cottagecore child theme for Snugibo — handmade personalized felt quiet books. Cream + soft-pink + sage palette. Block theme child of Twenty Twenty-Five. TODO: rename to {{NEW_BRAND}}-child after rebrand lands.
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 5.7
Version: 2.1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: twentytwentyfive
Text Domain: snugibo
Tags: e-commerce, cottagecore, cream, full-site-editing, block-patterns, custom-colors, custom-typography
*/

:root {
    --qb-cream: #FAF6EF;
    --qb-ivory: #FFFCF7;
    --qb-beige: #EFE6D6;
    --qb-cream-deep: #EFE6D6;
    --qb-text: #3A332C;
    --qb-text-soft: #7A6F62;
    --qb-outline: #C9BBA8;
    --qb-pink: #E9C7C2;
    --qb-soft-pink: #E9C7C2;
    --qb-pink-deep: #C97A80;
    --qb-pink-soft: #F5D8DA;
    --qb-sage: #A8B89A;
    --qb-sage-soft: #D4DECE;
    --qb-rose: #D4A5A5;
    --qb-shadow-soft: 0 10px 30px rgba(201, 122, 128, 0.10);
    --qb-shadow-card: 0 4px 16px rgba(42, 38, 32, 0.06);
    --qb-shadow-button: 0 4px 12px rgba(232, 180, 184, 0.45);
}

body {
    background-color: var(--qb-cream);
    color: var(--qb-text);
    font-family: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

h1, h2,
.wp-block-heading.has-headline-xl-font-size,
.wp-block-heading.has-headline-lg-font-size {
    font-family: "Playfair Display", "Cormorant Garamond", Georgia, "Times New Roman", serif;
    color: var(--qb-text);
    letter-spacing: -0.01em;
}
h3, h4, h5, h6,
.wp-block-heading.has-headline-md-font-size,
.wp-block-heading.has-body-lg-font-size {
    font-family: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: var(--qb-text);
}

h1, .has-headline-xl-font-size { font-weight: 500; letter-spacing: -0.01em; line-height: 1.15; }
h2, .has-headline-lg-font-size { font-weight: 500; line-height: 1.15; }
h3, .has-headline-md-font-size { font-weight: 600; }

a { color: var(--qb-pink-deep); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--qb-text); }

.wp-block-button__link {
    background-color: var(--qb-pink);
    color: var(--qb-text);
    border-radius: 999px;
    padding: 14px 28px;
    font-family: "Be Vietnam Pro", sans-serif;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.01em;
    box-shadow: var(--qb-shadow-button);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.wp-block-button__link:hover { transform: translateY(-1px); filter: brightness(1.05); }
.wp-block-button__link:active { transform: translateY(0) scale(.98); }

.wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent;
    color: var(--qb-text);
    border: 2px solid var(--qb-outline);
    box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    border-color: var(--qb-pink-deep);
    color: var(--qb-pink-deep);
}

.qb-card {
    background: var(--qb-ivory);
    border: 1px solid var(--qb-cream-deep);
    border-radius: 24px;
    box-shadow: var(--qb-shadow-card);
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}
.qb-card:hover { transform: translateY(-4px); box-shadow: var(--qb-shadow-soft); }

.qb-badge {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    font-family: "Be Vietnam Pro", sans-serif;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
}
.qb-badge--pink   { background: var(--qb-pink-soft); color: var(--qb-pink-deep); }
.qb-badge--sage   { background: var(--qb-sage-soft); color: #3F5236; }
.qb-badge--rose   { background: #F0D9D9; color: #8C4A4A; }

/* Gingham ribbon — soft pink check, used as section dividers / accents */
.qb-gingham {
    height: 14px;
    background-color: var(--qb-pink-soft);
    background-image:
        linear-gradient(45deg, var(--qb-pink) 25%, transparent 25%, transparent 75%, var(--qb-pink) 75%),
        linear-gradient(45deg, var(--qb-pink) 25%, transparent 25%, transparent 75%, var(--qb-pink) 75%);
    background-size: 14px 14px;
    background-position: 0 0, 7px 7px;
    opacity: 0.7;
}

.qb-section { padding: 64px 32px; }
@media (max-width: 768px) { .qb-section { padding: 40px 20px; } }

/* ============================================================
   Image fitting — global safety net + targeted aspect ratios
   Scoped to .qb-main / theme containers so BC checkout iframes
   are never affected.
   ============================================================ */
.qb-main img,
.qb-hero img,
.qb-bestseller img,
.qb-collections img,
.qb-lifestyle img,
.qb-reviews img,
.qb-footer img {
	max-width: 100%;
	height: auto;
}

/* Hero photo: square in split layout, soft cover-fit so it never distorts */
.qb-hero-art-frame {
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.qb-hero-art-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Bestseller product hero: 1:1 cover-fit */
.qb-product-hero-art-frame {
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.qb-product-hero-art-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Lifestyle strip: 16:9 desktop, 4:5 mobile, never letterbox */
.qb-lifestyle-img {
	aspect-ratio: 16 / 9;
	min-height: 0;
	overflow: hidden;
}
.qb-lifestyle-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	min-height: 0;
}
@media (max-width: 900px) {
	.qb-lifestyle-img { aspect-ratio: 4 / 5; }
}

/* BigCommerce product images — single + archive — locked to 1:1 cover */
.bc-product-card__image,
.bc-product__image,
.bc-product-card__image-link,
.bc-product__image-link,
.bc-product__images,
.bc-product-single__images {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	display: block;
}
.bc-product-card__image img,
.bc-product__image img,
.bc-product__images img,
.bc-product-single__images img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ============================================================
   Header
   ============================================================ */
.qb-header { position: sticky; top: 0; z-index: 50; backdrop-filter: blur(8px); }
.qb-header .wp-block-site-title a { color: var(--qb-text); text-decoration: none; }
.qb-logo-link { display: inline-flex; align-items: center; text-decoration: none; }
.qb-logo {
	display: inline-block;
	width: 132px;
	height: 36px;
	-webkit-mask-image: url('assets/snugibo-logo.png');
	        mask-image: url('assets/snugibo-logo.png');
	-webkit-mask-size: contain;
	        mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	        mask-repeat: no-repeat;
	-webkit-mask-position: left center;
	        mask-position: left center;
	background-color: var(--qb-pink-deep);
	transition: background-color .15s ease;
}
.qb-logo-link:hover .qb-logo { background-color: var(--qb-text); }
@media (max-width: 480px) { .qb-logo { width: 108px; height: 30px; } }
.qb-nav { display: flex; align-items: center; gap: 28px; }
.qb-nav-link {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 15px; font-weight: 500;
	color: var(--qb-text-soft); text-decoration: none;
	transition: color .15s ease;
}
.qb-nav-link:hover { color: var(--qb-pink-deep); }

/* Mobile hamburger — CSS-only via <details> */
.qb-nav-mobile { display: none; position: relative; }
.qb-nav-mobile > summary {
	list-style: none;
	cursor: pointer;
	width: 44px; height: 44px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 999px;
	color: var(--qb-text);
	transition: background .15s ease;
}
.qb-nav-mobile > summary::-webkit-details-marker { display: none; }
.qb-nav-mobile > summary:hover,
.qb-nav-mobile[open] > summary { background: var(--qb-cream-deep); }
.qb-nav-mobile-panel {
	position: absolute; top: calc(100% + 12px); left: 0;
	min-width: 200px;
	background: var(--qb-ivory);
	border: 1px solid var(--qb-cream-deep);
	border-radius: 16px;
	box-shadow: var(--qb-shadow-soft);
	padding: 8px;
	display: flex; flex-direction: column; gap: 2px;
	z-index: 60;
}
.qb-nav-mobile-link {
	display: block;
	padding: 12px 16px;
	border-radius: 10px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 15px; font-weight: 500;
	color: var(--qb-text); text-decoration: none;
	min-height: 44px; line-height: 20px;
}
.qb-nav-mobile-link:hover { background: var(--qb-cream-deep); color: var(--qb-pink-deep); }

@media (max-width: 768px) {
	.qb-nav { display: none; }
	.qb-nav-mobile { display: inline-flex; }
}
.qb-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 999px;
	color: var(--qb-text); background: transparent; transition: background .15s ease, transform .15s ease;
	position: relative;
}
.qb-icon-btn:hover { background: var(--qb-cream-deep); }
.qb-icon-btn:active { transform: scale(.94); }
.qb-cart-count {
	position: absolute; top: 4px; right: 4px;
	min-width: 16px; height: 16px; padding: 0 4px;
	background: var(--qb-pink-deep); color: #fff;
	font-family: "Be Vietnam Pro", sans-serif; font-size: 10px; font-weight: 700;
	border-radius: 999px; display: inline-flex; align-items: center; justify-content: center;
}

/* ============================================================
   Hero — Brand
   ============================================================ */
.qb-hero-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 8px 16px; border-radius: 999px;
	background: var(--qb-pink-soft); color: var(--qb-pink-deep);
	font-family: "Be Vietnam Pro", sans-serif; font-size: 12px; font-weight: 700;
	letter-spacing: 0.12em; text-transform: uppercase;
}
.qb-dot { width: 6px; height: 6px; border-radius: 999px; background: var(--qb-pink-deep); }

.qb-hero-meta { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 28px; }
.qb-hero-meta-item {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--qb-text-soft); font-size: 14px;
}
.qb-hero-meta-item svg { color: var(--qb-sage); flex-shrink: 0; }

.qb-hero-art { position: relative; padding: 24px; }
.qb-hero-art-gingham {
	position: absolute; top: 0; right: 0; width: 70%; height: 70%;
	border-radius: 32px; opacity: 0.5; z-index: 0;
	background-image:
		repeating-linear-gradient(45deg, var(--qb-pink) 0 10px, transparent 10px 20px),
		repeating-linear-gradient(-45deg, var(--qb-pink) 0 10px, transparent 10px 20px);
	background-blend-mode: multiply;
	filter: opacity(0.18);
}
.qb-hero-art-frame {
	position: relative; z-index: 1;
	border-radius: 32px; overflow: hidden;
	background: linear-gradient(135deg, #FFFCF7 0%, #F5D8DA 100%);
	border: 8px solid #fff;
	box-shadow: var(--qb-shadow-soft);
}
.qb-hero-art-frame img { display: block; width: 100%; height: auto; }
.qb-hero-art-tag {
	position: absolute; bottom: -12px; left: -12px; z-index: 2;
	background: #fff; padding: 14px 18px; border-radius: 18px;
	box-shadow: var(--qb-shadow-card);
	border: 1px dashed rgba(107, 95, 82, 0.3);
}
.qb-hero-art-tag-label {
	display: block; font-family: "Be Vietnam Pro", sans-serif; font-size: 11px;
	font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--qb-sage); margin-bottom: 2px;
}
.qb-hero-art-tag strong {
	font-family: "Be Vietnam Pro", sans-serif; font-size: 16px; font-weight: 800; color: var(--qb-text);
}

/* ============================================================
   Trust Bar
   ============================================================ */
.qb-trust-list {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
	gap: 24px; list-style: none; margin: 0; padding: 0;
}
.qb-trust-list li {
	display: inline-flex; align-items: center; gap: 10px;
	color: var(--qb-text-soft); font-size: 14px;
	font-family: "Be Vietnam Pro", sans-serif; font-weight: 600;
}
.qb-trust-list li svg { color: var(--qb-pink-deep); flex-shrink: 0; }
@media (max-width: 768px) {
	.qb-trust-list { justify-content: flex-start; gap: 14px; }
	.qb-trust-list li { flex: 0 0 calc(50% - 14px); font-size: 13px; }
}

/* ============================================================
   Bestseller spotlight
   ============================================================ */
.qb-product-hero-art { padding: 12px; }
.qb-product-hero-art-frame {
	position: relative; border-radius: 32px; overflow: hidden;
	background: linear-gradient(135deg, #FAF6F0 0%, #F5D8DA 100%);
	border: 8px solid #fff; box-shadow: var(--qb-shadow-soft);
}
.qb-product-hero-art-frame img { display: block; width: 100%; height: auto; }
.qb-floating-badge {
	position: absolute; top: 16px; right: 16px;
	background: #fff; color: var(--qb-pink-deep);
	padding: 6px 14px; border-radius: 999px;
	font-family: "Be Vietnam Pro", sans-serif; font-size: 11px; font-weight: 700;
	letter-spacing: 0.1em; text-transform: uppercase;
	box-shadow: var(--qb-shadow-card);
}

/* ============================================================
   Collection cards (replaces bare product grid usage on home)
   ============================================================ */
.qb-section-header { gap: 16px; }
.qb-text-link {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--qb-text-soft); font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 600; font-size: 14px; text-decoration: none;
	transition: color .15s ease, transform .15s ease;
}
.qb-text-link:hover { color: var(--qb-pink-deep); }
.qb-text-link:hover span { transform: translateX(3px); }
.qb-text-link span { transition: transform .15s ease; display: inline-block; }

.qb-collection-grid {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
@media (max-width: 1024px) { .qb-collection-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .qb-collection-grid { grid-template-columns: 1fr; } }

.qb-collection-card {
	background: var(--qb-ivory); border-radius: 24px; overflow: hidden;
	border: 1px dashed rgba(107, 95, 82, 0.2);
	box-shadow: var(--qb-shadow-card);
	transition: transform .25s ease, box-shadow .25s ease;
	display: flex; flex-direction: column;
}
.qb-collection-card:hover { transform: translateY(-4px); box-shadow: var(--qb-shadow-soft); }
.qb-collection-card-art {
	position: relative; aspect-ratio: 1/1; overflow: hidden;
	background: linear-gradient(135deg, #FAF6F0 0%, #F5D8DA 100%);
}
.qb-collection-card-art img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .5s ease;
}
.qb-collection-card:hover .qb-collection-card-art img { transform: scale(1.04); }
.qb-collection-badge { position: absolute; top: 14px; left: 14px; }
.qb-collection-card-body { padding: 20px 22px 22px; flex: 1; display: flex; flex-direction: column; }
.qb-collection-card-title {
	margin: 0 0 6px; font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 20px; color: var(--qb-text);
}
.qb-collection-card-text {
	margin: 0 0 18px; font-size: 14px; line-height: 1.5;
	color: var(--qb-text-soft); flex: 1;
}
.qb-collection-card-foot {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.qb-collection-card-price {
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 18px; color: var(--qb-text);
}
.qb-pill-btn {
	background: var(--qb-pink); color: var(--qb-text);
	border-radius: 999px; padding: 10px 20px;
	font-family: "Be Vietnam Pro", sans-serif; font-weight: 700;
	font-size: 13px; text-decoration: none;
	box-shadow: var(--qb-shadow-button);
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.qb-pill-btn:hover { background: var(--qb-pink-deep); color: #fff; }

/* ============================================================
   Lifestyle strip
   ============================================================ */
.qb-lifestyle-card {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	background: var(--qb-ivory);
	border-radius: 32px;
	overflow: hidden;
	border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
	padding: 0;
}
.qb-lifestyle-img {
	overflow: hidden; height: 100%;
}
.qb-lifestyle-img img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	min-height: 360px;
}
.qb-lifestyle-copy {
	padding: 48px 48px 48px 0;
}
.qb-lifestyle-eyebrow {
	margin: 0 0 8px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 12px;
	letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--qb-pink-deep);
}
.qb-lifestyle-title {
	margin: 0 0 16px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 800; font-size: 32px; line-height: 1.2;
	letter-spacing: -0.01em; color: var(--qb-text);
}
.qb-lifestyle-text {
	margin: 0 0 24px; color: var(--qb-text-soft);
	font-size: 16px; line-height: 1.7;
}
@media (max-width: 900px) {
	.qb-lifestyle-card { grid-template-columns: 1fr; gap: 0; }
	.qb-lifestyle-copy { padding: 32px 28px 36px; }
	.qb-lifestyle-img img { min-height: 240px; }
	.qb-lifestyle-title { font-size: 24px; }
}

/* ============================================================
   Why gift-givers
   ============================================================ */
.qb-why-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
@media (max-width: 900px)  { .qb-why-grid { grid-template-columns: 1fr; } }

.qb-why-card {
	background: var(--qb-ivory); border-radius: 24px; padding: 32px 28px;
	box-shadow: var(--qb-shadow-card);
	border: 1px dashed rgba(107, 95, 82, 0.18);
}
.qb-why-card-icon {
	width: 56px; height: 56px; border-radius: 18px;
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 18px;
}
.qb-why-card-title {
	margin: 0 0 10px; font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 20px; color: var(--qb-text);
}
.qb-why-card-text { margin: 0; color: var(--qb-text-soft); line-height: 1.6; font-size: 15px; }

/* ============================================================
   Personalization steps
   ============================================================ */
.qb-steps-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
	list-style: none; padding: 0; margin: 0;
	counter-reset: step;
}
@media (max-width: 900px) { .qb-steps-grid { grid-template-columns: 1fr; } }

.qb-step {
	background: var(--qb-ivory); border-radius: 24px; padding: 32px 28px;
	border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
	position: relative;
}
.qb-step-num {
	display: inline-block;
	font-family: "Be Vietnam Pro", sans-serif; font-weight: 800; font-size: 36px;
	color: var(--qb-pink); letter-spacing: -0.02em;
	margin-bottom: 12px;
}
.qb-step-title {
	margin: 0 0 8px; font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 20px; color: var(--qb-text);
}
.qb-step-text { margin: 0; color: var(--qb-text-soft); line-height: 1.6; font-size: 15px; }

/* ============================================================
   Reviews grid
   ============================================================ */
.qb-reviews-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
@media (max-width: 900px) { .qb-reviews-grid { grid-template-columns: 1fr; } }

.qb-review-card {
	background: var(--qb-ivory); border-radius: 24px; padding: 28px;
	margin: 0; border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
}
.qb-stars { color: var(--qb-pink-deep); font-size: 16px; letter-spacing: 2px; margin-bottom: 14px; }
.qb-review-quote {
	margin: 0 0 18px; font-style: normal; color: var(--qb-text);
	line-height: 1.6; font-size: 16px;
	border-left: 3px solid var(--qb-pink); padding-left: 16px;
}
.qb-review-author { font-family: "Be Vietnam Pro", sans-serif; }
.qb-review-author strong { display: block; color: var(--qb-text); font-weight: 700; font-size: 15px; }
.qb-review-author span { color: var(--qb-text-soft); font-size: 13px; }

/* ============================================================
   Gift occasions
   ============================================================ */
.qb-occasions-grid {
	display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px;
}
@media (max-width: 1024px) { .qb-occasions-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px)  { .qb-occasions-grid { grid-template-columns: repeat(2, 1fr); } }

.qb-occasion-card {
	display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
	background: var(--qb-ivory); border-radius: 22px; padding: 22px 22px 24px;
	text-decoration: none; color: var(--qb-text);
	border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
	transition: transform .2s ease, box-shadow .2s ease;
}
.qb-occasion-card:hover { transform: translateY(-3px); box-shadow: var(--qb-shadow-soft); color: var(--qb-text); }
.qb-occasion-icon {
	width: 48px; height: 48px; border-radius: 14px;
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 10px;
}
.qb-occasion-card h3 {
	margin: 0; font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 16px; color: var(--qb-text);
}
.qb-occasion-card p { margin: 0; font-size: 13px; color: var(--qb-text-soft); line-height: 1.45; }

/* ============================================================
   FAQ — using core/details accordion
   ============================================================ */
.qb-faq-item {
	background: var(--qb-ivory); border-radius: 18px; padding: 18px 22px;
	border: 1px solid var(--qb-cream-deep);
	margin-bottom: 12px;
	box-shadow: var(--qb-shadow-card);
	transition: box-shadow .2s ease;
}
.qb-faq-item[open] { box-shadow: var(--qb-shadow-soft); }
.qb-faq-item summary {
	cursor: pointer; list-style: none;
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 16px; color: var(--qb-text);
	padding: 4px 0; position: relative; padding-right: 32px;
}
.qb-faq-item summary::-webkit-details-marker { display: none; }
.qb-faq-item summary::after {
	content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
	font-size: 22px; font-weight: 400; color: var(--qb-pink-deep);
	transition: transform .2s ease;
}
.qb-faq-item[open] summary::after { content: "−"; }
.qb-faq-item p { margin: 12px 0 4px; color: var(--qb-text-soft); line-height: 1.65; font-size: 15px; }

/* ============================================================
   Newsletter
   ============================================================ */
.qb-newsletter-card {
	max-width: 640px; margin: 0 auto;
	position: relative; overflow: hidden;
	background: var(--qb-ivory); border-radius: 32px;
	border: 1px dashed rgba(107, 95, 82, 0.25);
	padding: 48px 40px;
	box-shadow: var(--qb-shadow-soft);
	text-align: center;
}
.qb-newsletter-gingham {
	position: absolute; inset: 0; opacity: 0.06; z-index: 0; pointer-events: none;
	background-image:
		repeating-linear-gradient(45deg, var(--qb-pink-deep) 0 10px, transparent 10px 20px),
		repeating-linear-gradient(-45deg, var(--qb-pink-deep) 0 10px, transparent 10px 20px);
}
.qb-newsletter-inner { position: relative; z-index: 1; }
.qb-newsletter-eyebrow {
	margin: 0 0 8px; color: var(--qb-pink-deep);
	font-family: "Be Vietnam Pro", sans-serif; font-size: 12px; font-weight: 700;
	letter-spacing: 0.16em; text-transform: uppercase;
}
.qb-newsletter-title {
	margin: 0 0 12px; font-family: "Be Vietnam Pro", sans-serif;
	font-size: 28px; font-weight: 800; letter-spacing: -0.01em; color: var(--qb-text);
}
.qb-newsletter-text {
	margin: 0 0 24px; color: var(--qb-text-soft); font-size: 15px; line-height: 1.6;
}
.qb-newsletter-form {
	display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
	max-width: 460px; margin: 0 auto;
}
.qb-newsletter-form input[type="email"] {
	flex: 1 1 220px; min-width: 0;
	padding: 14px 22px; border-radius: 999px;
	background: var(--qb-cream); border: 1px solid var(--qb-cream-deep);
	font-family: "Be Vietnam Pro", sans-serif; font-size: 15px; color: var(--qb-text);
	outline: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.qb-newsletter-form input[type="email"]:focus {
	border-color: var(--qb-pink); box-shadow: 0 0 0 4px rgba(232, 180, 184, 0.25);
}
.qb-newsletter-form button {
	padding: 14px 28px; border-radius: 999px; border: 0; cursor: pointer;
	background: var(--qb-pink-deep); color: #fff;
	font-family: "Be Vietnam Pro", sans-serif; font-weight: 700; font-size: 14px;
	letter-spacing: 0.02em;
	box-shadow: var(--qb-shadow-button);
	transition: background .15s ease, transform .15s ease;
}
.qb-newsletter-form button:hover { background: #a85e64; }
.qb-newsletter-form button:active { transform: scale(.97); }
.qb-newsletter-fineprint { margin: 14px 0 0; font-size: 12px; color: var(--qb-text-soft); }
.qb-visually-hidden {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ============================================================
   Footer
   ============================================================ */
.qb-footer-min {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
}
.qb-logo--small { width: 96px; height: 26px; }
.qb-footer-tagline {
	margin: 0;
	font-family: "Playfair Display", Georgia, serif;
	font-style: italic;
	font-size: 16px;
	color: var(--qb-text-soft);
}
.qb-footer-copyright {
	margin: 0;
	font-size: 12px;
	color: var(--qb-text-soft);
	letter-spacing: 0.02em;
}
.qb-footer-copyright a {
	color: var(--qb-text-soft);
	text-decoration: none;
	border-bottom: 1px dashed rgba(107, 95, 82, 0.3);
	padding-bottom: 1px;
}
.qb-footer-copyright a:hover { color: var(--qb-pink-deep); border-bottom-color: var(--qb-pink-deep); }
.qb-footer .qb-footer-list { list-style: none; padding: 0; margin: 0; }
.qb-footer .qb-footer-list li { margin: 0 0 10px; }
.qb-footer .qb-footer-list a {
	color: var(--qb-text-soft); text-decoration: none;
	transition: color .15s ease;
}
.qb-footer .qb-footer-list a:hover { color: var(--qb-pink-deep); }
.qb-social { display: flex; gap: 12px; margin-top: 4px; }
.qb-social-link {
	width: 38px; height: 38px; border-radius: 999px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--qb-ivory); color: var(--qb-text-soft);
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.qb-social-link:hover { background: var(--qb-pink); color: var(--qb-text); transform: translateY(-2px); }
.qb-footer-bottom { gap: 16px; padding-top: 4px; }
.qb-pay-row { display: flex; flex-wrap: wrap; gap: 8px; }
.qb-pay-pill {
	padding: 6px 12px; border-radius: 8px;
	background: var(--qb-ivory); border: 1px solid var(--qb-cream-deep);
	font-family: "Be Vietnam Pro", sans-serif; font-size: 11px; font-weight: 700;
	letter-spacing: 0.04em; color: var(--qb-text-soft);
}

/* ============================================================
   BigCommerce — Shop archive & single product styling
   Targets the markup the BigCommerce-for-WordPress plugin renders
   ============================================================ */
.bc-product-grid,
.bc-product-cards {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	list-style: none;
	padding: 0;
	margin: 0;
}
@media (max-width: 1024px) { .bc-product-grid, .bc-product-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .bc-product-grid, .bc-product-cards { grid-template-columns: 1fr; } }

.bc-product-card,
.bc-product {
	background: var(--qb-ivory);
	border-radius: 24px;
	overflow: hidden;
	border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
	transition: transform .25s ease, box-shadow .25s ease;
	padding: 0;
	display: flex;
	flex-direction: column;
}
.bc-product-card:hover,
.bc-product:hover {
	transform: translateY(-4px);
	box-shadow: var(--qb-shadow-soft);
}

.bc-product-card__image-link,
.bc-product__image-link,
.bc-product-card__image,
.bc-product__image {
	display: block;
	background: linear-gradient(135deg, #FAF6F0 0%, #F5D8DA 100%);
}
.bc-product-card__image img,
.bc-product__image img {
	width: 100%;
	height: auto;
	aspect-ratio: 1/1;
	object-fit: cover;
	display: block;
}

.bc-product-card__title,
.bc-product__title {
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 18px !important;
	color: var(--qb-text) !important;
	margin: 18px 22px 6px !important;
	line-height: 1.3 !important;
}
.bc-product-card__title a,
.bc-product__title a {
	color: var(--qb-text) !important;
	text-decoration: none !important;
}
.bc-product-card__title a:hover,
.bc-product__title a:hover {
	color: var(--qb-pink-deep) !important;
}

.bc-product-card__brand,
.bc-product__brand {
	font-size: 12px !important;
	color: var(--qb-text-soft) !important;
	margin: 0 22px 4px !important;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.bc-product-card__price,
.bc-product__price,
.bc-product-card__product-price {
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 18px !important;
	color: var(--qb-text) !important;
	margin: 0 22px 16px !important;
}

.bc-product-card__buy,
.bc-product__buy,
.bc-btn--add_to_cart,
button.bc-btn--form_submit,
.bc-btn--buy_now {
	background: var(--qb-pink) !important;
	color: var(--qb-text) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 12px 22px !important;
	margin: 0 22px 22px !important;
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	letter-spacing: 0.02em !important;
	box-shadow: var(--qb-shadow-button) !important;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, transform .15s ease;
	width: auto !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}
.bc-product-card__buy:hover,
.bc-btn--add_to_cart:hover,
.bc-btn--buy_now:hover {
	background: var(--qb-pink-deep) !important;
	color: #fff !important;
}

.bc-pagination {
	margin-top: 48px !important;
	display: flex;
	justify-content: center;
	gap: 8px;
}
.bc-pagination a,
.bc-pagination span {
	padding: 8px 14px;
	border-radius: 999px;
	background: var(--qb-ivory);
	border: 1px solid var(--qb-cream-deep);
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 600;
	font-size: 14px;
	color: var(--qb-text-soft);
	text-decoration: none;
}
.bc-pagination .current,
.bc-pagination a:hover {
	background: var(--qb-pink);
	color: var(--qb-text);
	border-color: var(--qb-pink);
}

.bc-product-card__sale-flash,
.bc-product__sale-flash {
	background: var(--qb-pink-deep) !important;
	color: #fff !important;
	padding: 4px 12px !important;
	border-radius: 999px !important;
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 11px !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase;
}


/* Cart page */
.bc-cart {
	background: var(--qb-ivory);
	border-radius: 24px;
	border: 1px dashed rgba(107, 95, 82, 0.2);
	box-shadow: var(--qb-shadow-card);
	padding: 32px;
}

/* Cart page checkout button — berry-red CTA matching PDP add-to-cart */
.bc-cart-actions__checkout-button {
	display: flex;
	width: 100%;
	padding: 14px 28px;
	background: #D81B3D !important;
	color: #fff !important;
	text-align: center;
	text-decoration: none;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.3px;
	border-radius: 4px;
	border: none;
	cursor: pointer;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: background 0.15s ease;
	margin-bottom: 8px;
}
.bc-cart-actions__checkout-button:hover {
	background: #B5152F !important;
	color: #fff !important;
}

/* View Cart link is redundant on the full cart page — hide it there.
   .bc-cart:not(.bc-mini-cart) targets the full cart section only. */
.bc-cart:not(.bc-mini-cart) .bc-cart-actions__view-button {
	display: none;
}

/* ============================================================
   SNUGIBO v2 — Cuddle+Kind-aligned components (sn- prefix)
   ============================================================ */

/* --- Skip-to-content (accessibility) --- */
.sn-skip-link {
	position: absolute; left: -9999px; top: 0;
	background: var(--qb-text); color: #fff;
	padding: 12px 20px; z-index: 100;
	font-family: "Be Vietnam Pro", sans-serif; font-size: 14px;
	border-radius: 0 0 8px 0;
}
.sn-skip-link:focus { left: 0; }

/* --- Header (56px tall, hamburger left, logo center, cart right) --- */
.sn-header {
	position: sticky; top: 0; z-index: 50;
	backdrop-filter: blur(8px);
	background: rgba(255, 252, 247, 0.94);
}
.sn-header-row {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: 56px;
	padding: 6px 16px;
	gap: 12px;
	max-width: 1280px;
	margin: 0 auto;
}
.sn-menu { position: relative; justify-self: start; }
.sn-menu-trigger {
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 44px; min-width: 44px;
	padding: 8px 14px 8px 10px;
	border-radius: 999px;
	cursor: pointer; list-style: none;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 14px; font-weight: 600; color: var(--qb-text);
	background: transparent;
	transition: background .15s ease;
}
.sn-menu-trigger::-webkit-details-marker { display: none; }
.sn-menu-trigger:hover,
.sn-menu[open] .sn-menu-trigger { background: var(--qb-cream-deep); }
.sn-menu-label { font-size: 14px; }

.sn-menu-panel {
	position: absolute; top: calc(100% + 8px); left: 0;
	min-width: 220px;
	background: var(--qb-ivory);
	border: 1px solid var(--qb-cream-deep);
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(58, 51, 44, 0.10);
	padding: 8px;
	display: flex; flex-direction: column; gap: 2px;
	z-index: 60;
}
.sn-menu-link {
	display: block;
	padding: 14px 18px; border-radius: 10px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 16px; font-weight: 500;
	color: var(--qb-text); text-decoration: none;
	min-height: 44px; line-height: 20px;
}
.sn-menu-link:hover { background: var(--qb-cream-deep); color: var(--qb-pink-deep); }

.sn-logo-link {
	display: inline-flex; align-items: center;
	justify-self: center;
	text-decoration: none;
	min-height: 44px; padding: 4px 8px;
}
.sn-logo {
	display: inline-block;
	width: 124px; height: 32px;
	-webkit-mask-image: url('assets/snugibo-logo.png');
	        mask-image: url('assets/snugibo-logo.png');
	-webkit-mask-size: contain; mask-size: contain;
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-position: center; mask-position: center;
	background-color: var(--qb-pink-deep);
}
.sn-logo--small { width: 96px; height: 24px; }
@media (max-width: 480px) { .sn-logo { width: 100px; height: 26px; } }

.sn-cart {
	display: inline-flex; align-items: center; gap: 8px;
	justify-self: end;
	min-height: 44px; min-width: 44px;
	padding: 8px 14px 8px 10px;
	border-radius: 999px;
	color: var(--qb-text); text-decoration: none;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 14px; font-weight: 600;
	background: transparent;
	transition: background .15s ease;
	position: relative;
}
.sn-cart:hover { background: var(--qb-cream-deep); }
.sn-cart-label { font-size: 14px; }
.sn-cart-count {
	background: var(--qb-pink-deep); color: #fff;
	min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: 999px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 11px; font-weight: 700;
	display: inline-flex; align-items: center; justify-content: center;
}
@media (max-width: 480px) {
	.sn-menu-label, .sn-cart-label { display: none; }
}

/* --- Buttons (sn-) — pill, soft pink, ink text --- */
.sn-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px;
	padding: 14px 28px;
	border-radius: 999px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 16px; font-weight: 600;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, transform .15s ease;
	cursor: pointer; border: 0;
}
.sn-btn--primary {
	background: var(--qb-pink); color: var(--qb-text);
	box-shadow: 0 4px 12px rgba(233, 199, 194, 0.5);
}
.sn-btn--primary:hover { background: var(--qb-pink-deep); color: #fff; }
.sn-btn--primary:active { transform: scale(.98); }

.sn-link {
	display: inline-flex; align-items: center; gap: 4px;
	color: var(--qb-pink-deep);
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 15px; font-weight: 600;
	text-decoration: none;
	border-bottom: 1px dashed currentColor;
	padding-bottom: 1px;
	min-height: 44px;
}
.sn-link:hover { color: var(--qb-text); }

/* --- Hero (full-bleed lifestyle photo with overlay) --- */
.sn-hero {
	margin: 0; padding: 0;
	background: var(--qb-cream);
}
.sn-hero-inner {
	position: relative;
	width: 100%;
	overflow: hidden;
	max-width: 1440px;
	margin: 0 auto;
}
.sn-hero-photo {
	display: block; width: 100%;
	aspect-ratio: 4 / 5;
}
@media (min-width: 768px) { .sn-hero-photo { aspect-ratio: 16 / 9; } }
@media (min-width: 1280px) { .sn-hero-photo { aspect-ratio: 21 / 9; } }
.sn-hero-photo img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.sn-hero-overlay {
	position: absolute; inset: 0;
	display: flex; align-items: flex-end;
	background: linear-gradient(to top, rgba(58, 51, 44, 0.45) 0%, rgba(58, 51, 44, 0.0) 50%);
	padding: 32px 24px 40px;
}
.sn-hero-copy {
	max-width: 600px; color: #fff;
}
.sn-hero-title {
	font-family: "Playfair Display", "Cormorant Garamond", Georgia, serif;
	font-size: clamp(28px, 5.5vw, 48px);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: #fff;
	margin: 0 0 12px;
	text-shadow: 0 2px 12px rgba(0,0,0,0.25);
}
.sn-hero-sub {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: clamp(15px, 2.2vw, 18px);
	line-height: 1.5;
	color: #fff;
	margin: 0 0 24px;
	max-width: 480px;
	text-shadow: 0 1px 8px rgba(0,0,0,0.3);
}
@media (min-width: 768px) {
	.sn-hero-overlay { padding: 64px 56px; align-items: center; }
	.sn-hero-overlay::before {
		content: "";
		position: absolute; inset: 0;
		background: linear-gradient(90deg, rgba(58, 51, 44, 0.55) 0%, rgba(58, 51, 44, 0.0) 60%);
	}
	.sn-hero-copy { position: relative; }
}

/* --- Featured product (Berry Garden) --- */
.sn-featured {
	background: var(--qb-cream);
}
.sn-featured-card {
	display: flex; flex-direction: column;
	margin: 0;
	background: var(--qb-ivory);
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 4px 16px rgba(58, 51, 44, 0.06);
}
.sn-featured-photo { display: block; }
.sn-featured-photo img {
	width: 100%; height: auto; display: block;
	aspect-ratio: 1/1; object-fit: cover;
}
.sn-featured-body {
	padding: 28px 28px 32px; text-align: center;
}
.sn-featured-title {
	margin: 0 0 8px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 28px; font-weight: 500;
	color: var(--qb-text);
}
.sn-featured-line {
	margin: 0 0 24px;
	font-size: 17px; line-height: 1.5;
	color: var(--qb-text-soft);
}
.sn-featured-foot {
	display: flex; align-items: center; justify-content: center; gap: 18px;
	flex-wrap: wrap;
}
.sn-featured-price {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 20px; font-weight: 700;
	color: var(--qb-text);
}

/* --- Themes grid (4 collections, 2x2 mobile) --- */
.sn-themes { background: var(--qb-cream); }
.sn-themes-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
@media (min-width: 768px) { .sn-themes-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } }

.sn-theme-card {
	display: flex; flex-direction: column;
	background: var(--qb-ivory);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(58, 51, 44, 0.04);
	transition: transform .25s ease, box-shadow .25s ease;
}
.sn-theme-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(58, 51, 44, 0.08);
}
.sn-theme-photo { display: block; aspect-ratio: 1/1; overflow: hidden; }
.sn-theme-photo img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .5s ease;
}
.sn-theme-card:hover .sn-theme-photo img { transform: scale(1.04); }
.sn-theme-body {
	padding: 16px 18px 20px;
	display: flex; flex-direction: column; gap: 6px;
}
.sn-theme-name {
	margin: 0;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 18px; font-weight: 500;
	color: var(--qb-text);
}
.sn-theme-tagline {
	margin: 0;
	font-size: 14px; line-height: 1.45;
	color: var(--qb-text-soft);
}
.sn-theme-status {
	display: inline-block;
	padding: 4px 10px; border-radius: 999px;
	background: var(--qb-cream-deep);
	font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--qb-text-soft);
}

/* --- Themes Explorer (CSS-only tabbed switcher) --- */
.sn-explore { background: var(--qb-cream); }
.sn-exp-r {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important; height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
	overflow: hidden !important;
	clip: rect(0,0,0,0) !important;
}
.sn-explore-header { text-align: center; margin-bottom: 32px; }
.sn-explore-h2 {
	margin: 0 0 8px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(28px, 4vw, 36px); font-weight: 500;
	color: var(--qb-text);
}
.sn-explore-sub {
	margin: 0;
	color: var(--qb-text-soft);
	font-size: 16px;
}

/* Tab row — horizontal scroll on mobile, equal cols on desktop */
.sn-exp-tabs {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding: 8px 24px;
	margin: 0 -24px 32px;
	scroll-padding: 0 24px;
}
.sn-exp-tabs::-webkit-scrollbar { display: none; }
@media (min-width: 768px) {
	.sn-exp-tabs {
		justify-content: center;
		gap: 18px;
		padding: 0;
		margin: 0 0 40px;
		overflow: visible;
	}
}

.sn-exp-tab {
	flex: 0 0 130px !important;
	width: 130px;
	scroll-snap-align: center;
	display: flex !important;
	flex-direction: column !important;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	padding: 8px;
	margin: 0;
	border-radius: 16px;
	transition: background .2s ease, transform .15s ease;
	min-height: 44px;
	box-sizing: border-box;
}
.sn-exp-tab:hover { background: var(--qb-ivory); }
.sn-exp-tab:focus-visible { outline: 2px solid var(--qb-pink-deep); outline-offset: 2px; }

.sn-exp-tab-photo {
	display: block !important;
	width: 88px !important;
	height: 88px !important;
	max-width: 88px !important;
	min-width: 88px !important;
	flex: 0 0 88px !important;
	border-radius: 999px !important;
	overflow: hidden !important;
	border: 3px solid transparent;
	transition: border-color .2s ease, transform .2s ease;
	background: var(--qb-ivory);
	box-sizing: border-box;
}
.sn-exp-tab-photo picture { display: block; width: 100%; height: 100%; }
.sn-exp-tab-photo img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	object-fit: cover !important;
	display: block !important;
	aspect-ratio: 1/1;
}
.sn-exp-tab-name {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 14px; font-weight: 600;
	color: var(--qb-text-soft);
	text-align: center;
	transition: color .2s ease;
}

/* Active-tab visuals — set on the LABEL whose for= matches the :checked input */
#sn-exp-berry:checked  ~ .sn-exp-tabs label[for="sn-exp-berry"]  .sn-exp-tab-photo,
#sn-exp-fairy:checked  ~ .sn-exp-tabs label[for="sn-exp-fairy"]  .sn-exp-tab-photo,
#sn-exp-bear:checked   ~ .sn-exp-tabs label[for="sn-exp-bear"]   .sn-exp-tab-photo,
#sn-exp-safari:checked ~ .sn-exp-tabs label[for="sn-exp-safari"] .sn-exp-tab-photo {
	border-color: var(--qb-pink-deep);
	transform: scale(1.05);
}
#sn-exp-berry:checked  ~ .sn-exp-tabs label[for="sn-exp-berry"]  .sn-exp-tab-name,
#sn-exp-fairy:checked  ~ .sn-exp-tabs label[for="sn-exp-fairy"]  .sn-exp-tab-name,
#sn-exp-bear:checked   ~ .sn-exp-tabs label[for="sn-exp-bear"]   .sn-exp-tab-name,
#sn-exp-safari:checked ~ .sn-exp-tabs label[for="sn-exp-safari"] .sn-exp-tab-name {
	color: var(--qb-text);
	font-weight: 700;
}

/* Stage — only the matching panel is shown */
.sn-exp-stage { position: relative; }
.sn-exp-panel { display: none !important; }

#sn-exp-berry:checked  ~ .sn-exp-stage .sn-exp-panel[data-theme="berry"],
#sn-exp-fairy:checked  ~ .sn-exp-stage .sn-exp-panel[data-theme="fairy"],
#sn-exp-bear:checked   ~ .sn-exp-stage .sn-exp-panel[data-theme="bear"],
#sn-exp-safari:checked ~ .sn-exp-stage .sn-exp-panel[data-theme="safari"] {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: center;
	animation: snFadeIn .3s ease;
}
@media (min-width: 768px) {
	#sn-exp-berry:checked  ~ .sn-exp-stage .sn-exp-panel[data-theme="berry"],
	#sn-exp-fairy:checked  ~ .sn-exp-stage .sn-exp-panel[data-theme="fairy"],
	#sn-exp-bear:checked   ~ .sn-exp-stage .sn-exp-panel[data-theme="bear"],
	#sn-exp-safari:checked ~ .sn-exp-stage .sn-exp-panel[data-theme="safari"] {
		grid-template-columns: 1fr 1fr;
		gap: 56px;
	}
}

@keyframes snFadeIn {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.sn-exp-photo {
	display: block;
	border-radius: 24px;
	overflow: hidden;
	background: var(--qb-ivory);
	box-shadow: 0 4px 16px rgba(58, 51, 44, 0.08);
}
.sn-exp-photo img {
	width: 100%; height: auto; display: block;
	aspect-ratio: 1/1; object-fit: cover;
}

.sn-exp-body {
	display: flex; flex-direction: column;
	gap: 14px;
	text-align: center;
}
@media (min-width: 768px) { .sn-exp-body { text-align: left; } }

.sn-exp-status {
	display: inline-block;
	padding: 4px 12px; border-radius: 999px;
	background: var(--qb-cream-deep);
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--qb-text-soft);
	align-self: center;
}
@media (min-width: 768px) { .sn-exp-status { align-self: flex-start; } }

.sn-exp-name {
	margin: 0;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(26px, 4vw, 32px); font-weight: 500;
	color: var(--qb-text);
}
.sn-exp-desc {
	margin: 0;
	font-size: 17px; line-height: 1.6;
	color: var(--qb-text-soft);
}
.sn-exp-body .sn-btn { align-self: center; margin-top: 8px; }
@media (min-width: 768px) { .sn-exp-body .sn-btn { align-self: flex-start; } }

/* Secondary button (sold-out themes) */
.sn-btn--secondary {
	background: transparent; color: var(--qb-text);
	border: 1.5px solid var(--qb-outline);
	box-shadow: none;
}
.sn-btn--secondary:hover {
	background: var(--qb-cream-deep);
	border-color: var(--qb-text-soft);
	color: var(--qb-text);
}

/* --- Made to Explore (lifestyle band) --- */
.sn-mte-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: center;
}
@media (min-width: 900px) {
	.sn-mte-card { grid-template-columns: 1fr 1fr; gap: 56px; }
}
.sn-mte-img {
	display: block;
	border-radius: 32px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(58, 51, 44, 0.10);
}
.sn-mte-img img {
	width: 100%; height: auto; display: block;
	aspect-ratio: 1/1; object-fit: cover;
}
.sn-mte-copy {
	text-align: center;
}
@media (min-width: 900px) { .sn-mte-copy { text-align: left; } }
.sn-mte-title {
	margin: 12px 0 16px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(28px, 4.5vw, 40px); font-weight: 500;
	line-height: 1.15;
	color: var(--qb-text);
}
.sn-mte-title em {
	font-style: italic; color: var(--qb-pink-deep);
}
.sn-mte-text {
	margin: 0 0 24px;
	font-size: 17px; line-height: 1.6;
	color: var(--qb-text-soft);
}

/* --- Brand-story strip (one line) --- */
.sn-story-inner { text-align: center; }
.sn-story-accent {
	display: inline-block;
	width: 32px; height: 2px;
	background: var(--qb-sage);
	margin-bottom: 20px;
	border-radius: 2px;
}
.sn-story-title {
	margin: 0 0 12px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(24px, 4vw, 32px); font-weight: 500;
	line-height: 1.2;
	color: var(--qb-text);
}
.sn-story-line {
	margin: 0;
	font-size: 17px; line-height: 1.55;
	color: var(--qb-text-soft);
}

/* --- Reviews — CSS-only swipe slider on mobile, 3-up grid on tablet+ --- */
.sn-reviews-grid {
	display: flex;
	flex-direction: row;
	gap: 16px;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 24px 4px;
	margin: 0 -24px;
	scroll-padding: 0 24px;
}
.sn-reviews-grid::-webkit-scrollbar { display: none; }
.sn-reviews-grid > .sn-review {
	flex: 0 0 86%;
	scroll-snap-align: center;
	min-width: 0;
}
@media (min-width: 768px) {
	.sn-reviews-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
		overflow: visible;
		padding: 0;
		margin: 0;
	}
	.sn-reviews-grid > .sn-review { flex: initial; }
}

.sn-review {
	background: var(--qb-ivory);
	border-radius: 18px;
	padding: 24px;
	margin: 0;
	box-shadow: 0 2px 10px rgba(58, 51, 44, 0.04);
}
.sn-stars { color: var(--qb-pink-deep); font-size: 14px; letter-spacing: 2px; margin-bottom: 12px; }
.sn-review-quote {
	margin: 0 0 16px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 16px; line-height: 1.6;
	color: var(--qb-text);
	border-left: 2px solid var(--qb-pink);
	padding-left: 14px;
}
.sn-review-author {
	font-family: "Be Vietnam Pro", sans-serif;
}
.sn-review-author strong {
	display: block;
	font-size: 15px; font-weight: 700;
	color: var(--qb-text);
}
.sn-review-author span {
	font-size: 13px;
	color: var(--qb-text-soft);
}

/* --- Value pillars (3-up footer band) --- */
.sn-pillars-list {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: 1fr; gap: 18px;
	text-align: center;
}
@media (min-width: 600px) { .sn-pillars-list { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.sn-pillar {
	display: flex; flex-direction: column; align-items: center; gap: 8px;
	padding: 16px 12px;
}
.sn-pillar svg { color: var(--qb-pink-deep); }
.sn-pillar-label {
	margin: 0;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 16px; font-weight: 700;
	color: var(--qb-text);
}
.sn-pillar-desc {
	margin: 0;
	font-size: 14px; line-height: 1.5;
	color: var(--qb-text-soft);
}

/* --- Footer (compact) --- */
.sn-footer-min {
	display: flex; flex-direction: column; align-items: center; gap: 14px;
	text-align: center;
}
.sn-footer-tagline {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-style: normal;
	font-size: 14px;
	font-weight: 400;
	color: var(--body, #3A3A38);
}
.sn-footer-newsletter {
	color: var(--ink, #0F0F0F);
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	transition: color 0.15s ease;
}
.sn-footer-newsletter:hover { color: var(--berry, #D81B3D); }
.sn-social { display: flex; gap: 16px; }
.sn-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--ink, #0F0F0F);
	transition: color 0.15s ease;
}
.sn-social-link:hover { color: var(--berry, #D81B3D); }
.sn-footer-copyright {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: var(--muted, #5F5E5A);
	letter-spacing: 0.02em;
	text-align: center;
	border-top: 1px solid var(--line, #E8E2D5);
	padding-top: 16px;
	width: 100%;
}
.sn-footer-copyright a {
	color: var(--muted, #5F5E5A);
	text-decoration: none;
}
.sn-footer-copyright a:hover { color: var(--berry, #D81B3D); }

/* --- About + Contact pages --- */
.sn-about-inner,
.sn-contact-inner {
	text-align: center;
}
.sn-about-h1 {
	margin: 12px 0 24px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(32px, 5vw, 44px);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--qb-text);
}
.sn-about-lede {
	font-size: 19px;
	line-height: 1.55;
	color: var(--qb-text);
	margin: 0 0 24px;
}
.sn-about-inner p {
	font-size: 17px;
	line-height: 1.7;
	color: var(--qb-text-soft);
	margin: 0 0 20px;
	text-align: left;
}
.sn-about-inner > p:first-of-type,
.sn-about-close,
.sn-about-cta {
	text-align: center;
}
.sn-about-close {
	font-family: "Playfair Display", Georgia, serif;
	font-style: italic;
	font-size: 19px;
	color: var(--qb-text);
	margin: 32px 0;
}
.sn-about-cta { margin-top: 32px; }

.sn-contact-list {
	margin: 24px 0 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	text-align: left;
}
@media (min-width: 600px) {
	.sn-contact-list { grid-template-columns: max-content 1fr; column-gap: 24px; row-gap: 14px; }
}
.sn-contact-list dt {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 13px; font-weight: 700;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--qb-text-soft);
	margin: 0;
}
.sn-contact-list dd {
	margin: 0;
	font-size: 17px; line-height: 1.5;
	color: var(--qb-text);
}
.sn-contact-list dd a {
	color: var(--qb-pink-deep);
	text-decoration: none;
	border-bottom: 1px dashed currentColor;
	padding-bottom: 1px;
}
.sn-contact-list dd a:hover { color: var(--qb-text); }

/* --- /products/ intro band injected via the_content filter --- */
.qb-shop-intro {
	max-width: 720px;
	margin: 0 auto;
	padding: 48px 24px 24px;
	text-align: center;
}
.qb-shop-intro__h1 {
	margin: 0 0 12px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(28px, 4vw, 40px); font-weight: 500;
	color: var(--qb-text);
}
.qb-shop-intro__sub {
	margin: 0;
	font-size: 17px; line-height: 1.55;
	color: var(--qb-text-soft);
}

/* ============================================================
   Mobile polish
   ============================================================ */
@media (max-width: 768px) {
	.qb-newsletter-card { padding: 36px 24px; }
	.qb-newsletter-title { font-size: 22px; }
	.qb-hero-art { padding: 8px; }
	.qb-hero-art-tag { left: 0; bottom: -8px; }
	.qb-step-num { font-size: 28px; }
}

/* ==========================================================================
   SNUGIBO LANDING — full landing page styles (v5 — new source HTML)
   All selectors scoped under .snugibo-landing so they do not leak to
   BigCommerce checkout/cart, admin pages, or other WP templates.
   Section order: promo → header → hero → stripe → includes → picker → banner → stat.
   Breakpoints (375 / 768 / 1100) are non-negotiable.
   ========================================================================== */
.snugibo-landing {
	--berry: #D81B3D;
	--berry-dark: #B5152F;
	--berry-bright: #FF4458;
	--pink: #F4A8B8;
	--sage: #7FA862;
	--yellow: #F4C957;
	--yellow-tint: #FFF8E8;
	--peach: #FBE9D7;
	--peach-deep: #FCEFE0;
	--ink: #0F0F0F;
	--body: #3A3A38;
	--muted: #5F5E5A;
	--line: #E8E2D5;

	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: var(--ink);
	background: white;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.snugibo-landing *,
.snugibo-landing *::before,
.snugibo-landing *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
.snugibo-landing img { max-width: 100%; height: auto; display: block; }
.snugibo-landing a { color: inherit; }
.snugibo-landing button { font-family: inherit; cursor: pointer; }

.snugibo-landing h1,
.snugibo-landing h2,
.snugibo-landing h3 { color: var(--ink); }

/* ============ MOBILE FIRST (375px iPhone SE baseline) ============ */
.snugibo-landing .promo-bar {
	background: var(--berry); color: white;
	font-size: 12px; font-weight: 500;
	padding: 8px 16px; text-align: center; letter-spacing: 0.2px;
}
.snugibo-landing .promo-bar a { text-decoration: underline; }
.snugibo-landing .promo-bar .right { display: none; }

.snugibo-landing header.site-header {
	padding: 14px 16px;
	display: flex; align-items: center; justify-content: space-between;
	border-bottom: 1px solid var(--line); background: white;
	position: sticky; top: 0; z-index: 10;
}
.snugibo-landing .hamburger {
	width: 24px; background: none; border: none; padding: 0;
	display: flex; flex-direction: column; gap: 5px;
}
.snugibo-landing .hamburger span {
	display: block; width: 22px; height: 2px;
	background: var(--ink); border-radius: 2px;
}
.snugibo-landing .wordmark {
	font-size: 16px; font-weight: 700; letter-spacing: 1.5px;
	text-transform: uppercase; color: var(--ink);
}
.snugibo-landing nav.primary { display: none; }
.snugibo-landing .account-desktop { display: none; }
.snugibo-landing .cart-mobile {
	font-size: 14px; font-weight: 600; text-decoration: none; color: var(--ink);
}

.snugibo-landing .btn-primary {
	display: inline-block; background: var(--berry); color: white;
	border: none; padding: 13px 28px; border-radius: 4px;
	font-size: 14px; font-weight: 600; letter-spacing: 0.3px;
	text-decoration: none; min-height: 46px; line-height: 20px;
	transition: background 0.15s ease;
}
.snugibo-landing .btn-primary:hover,
.snugibo-landing .btn-primary:focus { background: var(--berry-dark); }
.snugibo-landing .btn-block { display: block; width: 100%; text-align: center; padding: 14px 28px; }

.snugibo-landing .pill {
	display: inline-block; padding: 5px 14px; border-radius: 99px;
	font-size: 11px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase;
}
.snugibo-landing .pill-yellow { background: var(--yellow); color: var(--ink); }
.snugibo-landing .pill-white { background: white; color: var(--berry); }

.snugibo-landing .rating { display: flex; align-items: center; gap: 8px; }
.snugibo-landing .rating .stars { color: var(--berry); font-size: 13px; letter-spacing: 1px; }
.snugibo-landing .rating .count { font-size: 12px; color: var(--muted); font-weight: 500; }
.snugibo-landing .rating .count.linked { text-decoration: underline; }

/* HERO --------------------------------------------------------------------- */
.snugibo-landing .hero { background: var(--peach); display: flex; flex-direction: column; }
.snugibo-landing .hero-image {
	background: #F5C8A8; aspect-ratio: 4/3;
	display: flex; align-items: center; justify-content: center;
	color: #6B4226; font-size: 12px; font-style: italic;
	overflow: hidden; position: relative;
}
.snugibo-landing .hero-image img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	position: absolute; inset: 0;
}
.snugibo-landing .hero-text { padding: 28px 24px 32px; text-align: center; }
.snugibo-landing .hero-text .rating { justify-content: center; margin-bottom: 14px; }
.snugibo-landing .hero-text h1 {
	font-size: 32px; font-weight: 600; line-height: 1.08; letter-spacing: -0.5px;
	margin-bottom: 16px;
}
.snugibo-landing .hero-text p {
	font-size: 16px; color: var(--body); max-width: 420px;
	margin: 0 auto 24px; line-height: 1.5;
}

/* STRIPE ------------------------------------------------------------------- */
.snugibo-landing .stripe { height: 8px; display: flex; }
.snugibo-landing .stripe div { flex: 1; }
.snugibo-landing .stripe .s1 { background: var(--berry); }
.snugibo-landing .stripe .s2 { background: var(--pink); }
.snugibo-landing .stripe .s3 { background: var(--sage); }
.snugibo-landing .stripe .s4 { background: var(--yellow); }

/* INCLUDES (yellow-tint) --------------------------------------------------- */
.snugibo-landing .section-includes {
	background: var(--yellow-tint); padding: 40px 24px;
	display: flex; flex-direction: column; gap: 24px;
}
.snugibo-landing .section-includes .pill { margin-bottom: 18px; }
.snugibo-landing .includes-media {
	display: flex; flex-direction: column; gap: 16px;
}
.snugibo-landing .includes-collage,
.snugibo-landing .includes-child {
	background: #E8DDC4; border-radius: 8px;
	overflow: hidden; position: relative;
	aspect-ratio: 1/1;
}
.snugibo-landing .includes-collage img,
.snugibo-landing .includes-child img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	position: absolute; inset: 0;
}
.snugibo-landing .section-includes h2 {
	font-size: 28px; font-weight: 600; line-height: 1.1; letter-spacing: -0.3px;
	margin-bottom: 20px;
}
.snugibo-landing .checklist { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.snugibo-landing .checklist li {
	display: flex; align-items: flex-start; gap: 12px;
	font-size: 16px; line-height: 1.5;
}
.snugibo-landing .checklist li .check {
	flex-shrink: 0; width: 24px; height: 24px; background: var(--sage);
	border-radius: 50%; margin-top: 1px;
	display: flex; align-items: center; justify-content: center;
}
.snugibo-landing .checklist li .check svg { width: 13px; height: 13px; }

/* THEME PICKER (white — 4 cards, all clickable to /products/books/) -------- */
.snugibo-landing .section-picker { background: white; padding: 40px 24px; }
.snugibo-landing .section-picker h2 {
	font-size: 28px; font-weight: 600; line-height: 1.1; letter-spacing: -0.3px;
	text-align: center; margin-bottom: 8px;
}
.snugibo-landing .picker-sub {
	font-size: 14px; color: var(--muted);
	text-align: center; margin-bottom: 28px;
}
.snugibo-landing .theme-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
	max-width: 1200px; margin: 0 auto;
}
.snugibo-landing .theme-card {
	display: flex; flex-direction: column;
	background: white;
	border: 1px solid var(--line); border-radius: 10px;
	overflow: hidden;
	text-decoration: none; color: inherit;
	transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.snugibo-landing .theme-card:hover,
.snugibo-landing .theme-card:focus-visible {
	border-color: var(--berry);
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(216,27,61,0.10);
	outline: none;
}
.snugibo-landing .theme-card-photo {
	position: relative;
	background: var(--peach);
	aspect-ratio: 1/1;
	overflow: hidden;
}
.snugibo-landing .theme-card-photo img {
	position: absolute; inset: 0;
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.snugibo-landing .theme-card-photo .pill {
	position: absolute; top: 10px; left: 10px; z-index: 2;
}
.snugibo-landing .theme-card-body {
	padding: 14px 16px 16px;
	display: flex; flex-direction: column; gap: 4px;
}
.snugibo-landing .theme-card-body h3 {
	font-size: 16px; font-weight: 600; line-height: 1.2;
	color: var(--ink); margin: 0;
}
.snugibo-landing .theme-card-cta {
	font-size: 13px; font-weight: 500; color: var(--berry);
}

/* LIFESTYLE BANNER (red headline #FF4458 — user-locked, do not change) ----- */
.snugibo-landing .section-banner {
	position: relative; background: #8B7B68;
	aspect-ratio: 5/4;
	display: flex; align-items: flex-end;
	padding: 28px 24px; overflow: hidden;
}
.snugibo-landing .section-banner img.bg {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; object-position: 50% 60%; z-index: 0;
}
.snugibo-landing .section-banner::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0;
	height: 70%;
	background: linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0));
	z-index: 1; pointer-events: none;
}
.snugibo-landing .section-banner h2 {
	position: relative; z-index: 2;
	font-size: 30px; font-weight: 600; line-height: 1.08; letter-spacing: -0.4px;
	max-width: 560px;
	color: var(--berry-bright);
}
.snugibo-landing .section-banner em { font-style: italic; font-weight: 600; }

/* STAT BLOCK --------------------------------------------------------------- */
.snugibo-landing .section-stat {
	background: var(--peach-deep); padding: 40px 24px;
	display: flex; flex-direction: column; gap: 20px;
}
.snugibo-landing .section-stat h2 {
	font-size: 28px; font-weight: 600; line-height: 1.1; letter-spacing: -0.3px;
}
.snugibo-landing .stat-row { display: flex; align-items: baseline; gap: 16px; }
.snugibo-landing .stat-number {
	font-size: 64px; font-weight: 600; line-height: 1; letter-spacing: -2px;
	color: var(--berry); flex-shrink: 0;
}
.snugibo-landing .stat-number .pct { font-size: 38px; letter-spacing: -1px; }
.snugibo-landing .stat-row p { font-size: 15px; color: var(--body); line-height: 1.5; }

/* ============ TABLET (≥768px) ============ */
@media (min-width: 768px) {
	.snugibo-landing .promo-bar { display: flex; justify-content: space-between; padding: 8px 24px; text-align: left; }
	.snugibo-landing .promo-bar .right { display: flex; gap: 20px; }
	.snugibo-landing header.site-header { padding: 16px 32px; }
	.snugibo-landing .hamburger { display: none; }
	.snugibo-landing .wordmark { font-size: 18px; }
	.snugibo-landing nav.primary { display: flex; gap: 28px; font-size: 14px; }
	.snugibo-landing nav.primary a { color: var(--ink); text-decoration: none; font-weight: 500; }
	.snugibo-landing nav.primary a:hover { color: var(--berry); }
	.snugibo-landing .account-desktop { display: none; }
	.snugibo-landing .cart-mobile { display: inline-flex; }

	.snugibo-landing .hero { flex-direction: row; min-height: 380px; align-items: stretch; }
	.snugibo-landing .hero-text { flex: 1; padding: 40px 48px; text-align: left; align-self: center; }
	.snugibo-landing .hero-text .rating { justify-content: flex-start; }
	.snugibo-landing .hero-text h1 { font-size: 40px; letter-spacing: -0.7px; }
	.snugibo-landing .hero-text p { font-size: 16px; margin-left: 0; margin-right: 0; }
	.snugibo-landing .hero-image { flex: 1; aspect-ratio: auto; align-self: stretch; min-height: 380px; }

	.snugibo-landing .section-includes {
		padding: 56px 48px; flex-direction: row; gap: 40px;
		align-items: center; max-width: 1280px; margin: 0 auto;
	}
	.snugibo-landing .section-includes .includes-copy { flex: 1; }
	.snugibo-landing .section-includes .includes-media { flex: 1; gap: 16px; }
	.snugibo-landing .section-includes h2 { font-size: 36px; letter-spacing: -0.5px; }
	.snugibo-landing .checklist li { font-size: 17px; }

	.snugibo-landing .section-picker { padding: 56px 48px; }
	.snugibo-landing .section-picker h2 { font-size: 32px; letter-spacing: -0.5px; margin-bottom: 6px; }
	.snugibo-landing .picker-sub { font-size: 15px; margin-bottom: 28px; }
	.snugibo-landing .theme-grid { gap: 24px; }
	.snugibo-landing .theme-card-body { padding: 24px 18px 28px; }
	.snugibo-landing .theme-card-body h3 { font-size: 17px; }
	.snugibo-landing .theme-card-cta { font-weight: 600; }
	.snugibo-landing .theme-card:hover .theme-card-cta { text-decoration: underline; }

	.snugibo-landing .section-banner { aspect-ratio: auto; height: 360px; padding: 64px; align-items: flex-end; }
	.snugibo-landing .section-banner::before {
		content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
		background: linear-gradient(to right, rgba(0,0,0,0.25), transparent 60%);
	}
	.snugibo-landing .section-banner img.bg { object-position: 50% 60%; }
	.snugibo-landing .section-banner h2 { font-size: 38px; letter-spacing: -0.6px; line-height: 1.05; }

	.snugibo-landing .section-stat {
		padding: 56px 48px; flex-direction: row; gap: 40px;
		align-items: center; max-width: 1280px; margin: 0 auto;
	}
	.snugibo-landing .section-stat > div:first-child { flex: 1; }
	.snugibo-landing .section-stat h2 { font-size: 36px; letter-spacing: -0.5px; }
	.snugibo-landing .stat-row { align-items: center; }
	.snugibo-landing .stat-number { font-size: 88px; letter-spacing: -2.5px; margin-top: 0; }
	.snugibo-landing .stat-number .pct { font-size: 50px; }
	.snugibo-landing .stat-row p { font-size: 16px; max-width: 280px; line-height: 1.6; padding-top: 16px; }
}

/* ============ DESKTOP (≥1100px) ============ */
@media (min-width: 1100px) {
	.snugibo-landing .hero { min-height: 440px; max-height: 540px; }
	.snugibo-landing .hero-text { padding: 56px 64px; }
	.snugibo-landing .hero-text h1 { font-size: 48px; letter-spacing: -1px; }
	.snugibo-landing .hero-text p { font-size: 17px; max-width: 440px; }
	.snugibo-landing .hero-image { min-height: 440px; max-height: 540px; }
	.snugibo-landing .hero-image img { object-position: center; }

	.snugibo-landing .section-includes { padding: 72px 64px; gap: 48px; }
	.snugibo-landing .section-includes h2 { font-size: 36px; letter-spacing: -0.6px; }
	.snugibo-landing .checklist li { font-size: 16px; }

	.snugibo-landing .section-picker { padding: 72px 64px; }
	.snugibo-landing .section-picker h2 { font-size: 36px; letter-spacing: -0.6px; }
	.snugibo-landing .theme-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; max-width: 1200px; }
	.snugibo-landing .theme-card-body { padding: 18px 20px 22px; }
	.snugibo-landing .theme-card-body h3 { font-size: 18px; }

	.snugibo-landing .section-banner { height: 420px; padding: 64px; }
	.snugibo-landing .section-banner h2 { font-size: 48px; letter-spacing: -1px; max-width: 640px; line-height: 1.05; }

	.snugibo-landing .section-stat { padding: 72px 64px; }
	.snugibo-landing .section-stat h2 { font-size: 36px; letter-spacing: -0.6px; }
	.snugibo-landing .stat-number { font-size: 80px; letter-spacing: -2.5px; }
	.snugibo-landing .stat-number .pct { font-size: 48px; }
}

/* Cart-count badge — circular notification pip in --berry red, white text,
   top-right of the cart link. Visibility driven entirely by the
   data-cart-count attribute: "0" hides, any other value shows.

   No PHP rendering, no localStorage, no REST hydration — the badge is
   static markup that always exists in the DOM. JS only updates the value
   on AJAX cart events; refresh/navigation resets to 0 (acceptable v1). */

/* Each cart link gets position: relative so the badge can absolute-position
   off its top-right corner. Three cart links in the header: desktop nav,
   mobile pill, and the hamburger drawer. */
.snugibo-landing .account-desktop a.cart,
.snugibo-landing .cart-mobile,
.snugibo-landing .mobile-drawer a[href="/cart/"] {
	position: relative;
}

/* Mobile cart link is icon-only (no "Cart" text) so the icon needs to be
   the visible anchor for the badge. SVG inherits color from --ink. */
.snugibo-landing .cart-mobile {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 8px;
	color: var(--ink, #0F0F0F);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}
.snugibo-landing .cart-mobile .cart-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
}
.snugibo-landing .cart-mobile .cart-icon svg {
	width: 22px;
	height: 22px;
	display: block;
}

/* The badge itself. */
.snugibo-landing .cart-badge {
	position: absolute;
	top: -8px;
	right: -8px;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	background: #D81B3D;            /* --berry */
	color: #FFFFFF;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 22px;
	text-align: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	margin: 0;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(216, 27, 61, 0.35);
	z-index: 2;
	transform-origin: center center;
	transition: transform 0.15s ease;
}

/* Hide entirely when cart is empty (the single source of truth for
   visibility — JS sets data-cart-count="0" to hide, any other value shows). */
.snugibo-landing .cart-badge[data-cart-count="0"] {
	display: none !important;
}

/* Pulse animation cue when the count changes — fires for 650ms after JS
   toggles the .cart-badge--pulse class. */
@keyframes snCartBadgePulse {
	0%   { transform: scale(1); }
	40%  { transform: scale(1.25); }
	100% { transform: scale(1); }
}
.snugibo-landing .cart-badge.cart-badge--pulse {
	animation: snCartBadgePulse 0.65s ease;
}

/* ============ MOBILE DRAWER (hamburger menu) ============ */
.snugibo-landing .mobile-drawer {
	display: none;
	flex-direction: column;
	position: fixed;
	top: 0; left: 0; right: 0;
	background: white;
	padding: 64px 24px 24px;
	z-index: 9;
	border-bottom: 1px solid var(--line);
	box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.snugibo-landing .mobile-drawer a {
	display: block;
	padding: 14px 0;
	font-size: 16px; font-weight: 500;
	color: var(--ink);
	text-decoration: none;
	border-bottom: 1px solid var(--line);
	min-height: 44px;
}
.snugibo-landing .mobile-drawer a:last-child { border-bottom: none; }
html.sn-menu-open .snugibo-landing .mobile-drawer { display: flex; }
html.sn-menu-open { overflow: hidden; }
@media (min-width: 768px) {
	.snugibo-landing .mobile-drawer { display: none !important; }
}

/* Hamburger active state */
.snugibo-landing .hamburger { min-height: 44px; min-width: 44px; padding: 10px 0; }

/* ============ MOBILE POLISH (≤767px) ============ */
@media (max-width: 767px) {
	.snugibo-landing { overflow-x: hidden; }
	.snugibo-landing .hero-text h1 { font-size: 28px; line-height: 1.1; }
	.snugibo-landing .hero-text p { font-size: 15px; }
	.snugibo-landing .section-includes h2,
	.snugibo-landing .section-picker h2,
	.snugibo-landing .section-stat h2 { font-size: 24px; }
	.snugibo-landing .section-banner h2 { font-size: 26px; }
	.snugibo-landing .stat-row { flex-direction: column; gap: 10px; align-items: flex-start; }
	.snugibo-landing .stat-number { font-size: 56px; }
	.snugibo-landing .stat-number .pct { font-size: 32px; }
	.snugibo-landing .btn-primary { width: 100%; text-align: center; }
	.snugibo-landing .hero-text .btn-primary { display: block; }
	.snugibo-landing .theme-card-body h3 { font-size: 15px; }
	.snugibo-landing .checklist li { font-size: 15px; }
}

/* ============ PRODUCTS ARCHIVE STYLING (BigCommerce) ============
   Brings /products/ and single product pages in line with the landing
   palette. Scoped to .qb-shop-page (existing wrapper from
   archive-bigcommerce_product.html) so it doesn't leak elsewhere.
*/
.qb-shop-page,
.bc-product-archive,
body.post-type-archive-bigcommerce_product .qb-main,
body[class*="bigcommerce_product_category"] .qb-main {
	background: white;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #0F0F0F;
	max-width: 1280px;
	margin: 0 auto;
	padding: 24px 16px 48px;
}
@media (min-width: 768px) {
	.qb-shop-page,
	.bc-product-archive,
	body.post-type-archive-bigcommerce_product .qb-main,
	body[class*="bigcommerce_product_category"] .qb-main { padding: 40px 32px 64px; }
}
@media (min-width: 1100px) {
	.qb-shop-page,
	.bc-product-archive,
	body.post-type-archive-bigcommerce_product .qb-main,
	body[class*="bigcommerce_product_category"] .qb-main { padding: 56px 64px 80px; }
}

.qb-shop-page .bc-product-archive__header {
	margin-bottom: 24px;
	border-bottom: 1px solid #E8E2D5;
	padding-bottom: 16px;
}
.qb-shop-page .bc-product-archive__refinery {
	display: flex; flex-wrap: wrap; gap: 12px;
	margin-bottom: 24px;
	align-items: center;
}
.qb-shop-page .bc-product-archive__search,
.qb-shop-page .bc-product-archive__refinery {
	font-family: inherit;
}
.qb-shop-page input[type="text"],
.qb-shop-page input[type="search"],
.qb-shop-page select {
	border: 1px solid #E8E2D5 !important;
	border-radius: 4px !important;
	padding: 10px 14px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	background: white !important;
	min-height: 44px;
}
.qb-shop-page input:focus,
.qb-shop-page select:focus {
	outline: none !important;
	border-color: #D81B3D !important;
}

/* Products grid — fix the desktop "image cut off" issue with strong constraints */
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-grid,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-cards,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) ul.products,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-archive__products {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 16px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
@media (min-width: 768px) {
	.qb-shop-page .bc-product-grid,
	.qb-shop-page .bc-product-cards,
	.qb-shop-page ul.products,
	.qb-shop-page .bc-product-archive__products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 24px !important;
	}
}
@media (min-width: 1100px) {
	.qb-shop-page .bc-product-grid,
	.qb-shop-page .bc-product-cards,
	.qb-shop-page ul.products,
	.qb-shop-page .bc-product-archive__products {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 28px !important;
	}
}

.bc-product,
.bc-product-card,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product {
	background: white !important;
	border: 1px solid #E8E2D5 !important;
	border-radius: 10px !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	display: flex !important;
	flex-direction: column !important;
	width: auto !important;
	max-width: 100% !important;
	float: none !important;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.bc-product:hover,
.bc-product-card:hover,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product:hover {
	border-color: #D81B3D !important;
	box-shadow: 0 8px 24px rgba(216,27,61,0.10) !important;
	transform: translateY(-2px);
}

.bc-product__image,
.bc-product__image-link,
.bc-product-card__image,
.bc-product-card__image-link {
	display: block !important;
	position: relative !important;
	width: 100% !important;
	aspect-ratio: 1/1 !important;
	background: #FBE9D7 !important;
	overflow: hidden !important;
	margin: 0 !important;
}
.bc-product__image img,
.bc-product__image-link img,
.bc-product-card__image img,
.bc-product-card__image-link img,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product img:first-of-type {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	max-width: 100% !important;
}

.bc-product__title,
.bc-product-card__title,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product h2,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product h3 {
	margin: 12px 16px 4px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: #0F0F0F !important;
	font-family: 'Inter', sans-serif !important;
	letter-spacing: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
}
.bc-product__title a,
.bc-product-card__title a {
	color: #0F0F0F !important;
	text-decoration: none !important;
}
.bc-product__price,
.bc-product-card__price,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product .price,
.bc-product-card__product-price {
	margin: 0 16px 12px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #D81B3D !important;
	font-family: 'Inter', sans-serif !important;
}
.bc-product-card__sale-flash,
.bc-product__sale-flash {
	background: #D81B3D !important;
	color: white !important;
	font-family: 'Inter', sans-serif !important;
	font-weight: 600 !important;
	font-size: 11px !important;
	padding: 4px 10px !important;
	border-radius: 99px !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Add to cart / buy buttons (scoped to product listing pages, not cart/checkout) */
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-card__buy,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-btn--add_to_cart,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-btn--buy_now,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-archive button.bc-btn--form_submit {
	background: #D81B3D !important;
	color: white !important;
	border: none !important;
	border-radius: 4px !important;
	padding: 10px 16px !important;
	margin: 0 16px 16px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.3px !important;
	min-height: 40px !important;
	display: inline-flex !important;
	align-items: center; justify-content: center;
	cursor: pointer;
	width: auto !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background 0.15s ease;
}
body:not(.bc-cart-page):not(.bc-checkout-page) .bc-product-card__buy:hover,
body:not(.bc-cart-page):not(.bc-checkout-page) .bc-btn--add_to_cart:hover,
body:not(.bc-cart-page):not(.bc-checkout-page) .bc-btn--buy_now:hover {
	background: #B5152F !important;
	color: white !important;
}

/* Pagination */
.bc-pagination {
	margin-top: 48px !important;
	display: flex; justify-content: center; gap: 8px;
}
.bc-pagination a,
.bc-pagination span {
	padding: 8px 14px;
	border: 1px solid #E8E2D5;
	border-radius: 4px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 14px;
	color: #5F5E5A;
	text-decoration: none;
	min-height: 40px;
	display: inline-flex; align-items: center;
}
.bc-pagination .current,
.bc-pagination a:hover {
	background: #D81B3D;
	color: white;
	border-color: #D81B3D;
}

/* ============================================================================
   BIGCOMMERCE SINGLE PRODUCT PAGE (/products/books/, /products/[slug]/)
   Body classes: body.single-bigcommerce_product
   These pages render BC's own .bc-product-single layout — gallery + form +
   description + reviews. We provide the page wrapper + cottagecore polish.
   ============================================================================ */
body.single-bigcommerce_product { background: #FAF6EF; }
body.single-bigcommerce_product .qb-main {
	max-width: 1280px;
	margin: 0 auto;
	padding: 24px 16px 48px;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #0F0F0F;
	background: transparent;
}
@media (min-width: 768px)  { body.single-bigcommerce_product .qb-main { padding: 40px 32px 64px; } }
@media (min-width: 1100px) { body.single-bigcommerce_product .qb-main { padding: 56px 64px 80px; } }

/* The main 2-col gallery + form layout */
body.single-bigcommerce_product .bc-product-single {
	width: 100%;
	max-width: 100%;
}
/* v3 LAYOUT (rolled back from v4) — header block (rating + title + tagline)
   spans BOTH columns at desktop and sits at the top of the single-column
   stack on mobile, above the gallery. Achieved with CSS grid-template-areas:
       desktop ≥768px     mobile <768px
       ────────────       ─────────────
       header header      header
       gallery meta       gallery
                          meta
   On mobile (1fr single column), grid-template-areas is not declared, so
   items auto-flow in source order (header → gallery → meta).
   `.bc-product__gallery` is a DIRECT child of __top here — that is what
   makes the `> .bc-product__gallery` override below match, which is what
   defuses BigCommerce plugin's flex-basis / margin-right / width rules. */
body.single-bigcommerce_product .bc-product-single__top {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 48px;
	align-items: start;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .bc-product-single__top {
		grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
		grid-template-areas:
			"header  header"
			"gallery meta";
		gap: 24px 40px;
	}
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .bc-product-single__top {
		grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
		grid-template-areas:
			"header  header"
			"gallery meta";
		gap: 32px 56px;
		align-items: start;
	}
}

/* Right-column children (everything that's NOT the gallery): cap width so
   long copy doesn't sprawl, separate visually with spacing. */
body.single-bigcommerce_product .bc-product-single__top > *:not(.bc-product__gallery) {
	min-width: 0;
	max-width: 100%;
}

/* HEADER BLOCK — rating + title + tagline, spans both columns on desktop,
   top of stack on mobile. Vertical spacing handled by grid-gap. */
body.single-bigcommerce_product .bc-product-single__top > .sn-pdp-header-block {
	grid-area: header;
	min-width: 0;
	max-width: 100%;
	order: 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .bc-product-single__top > .sn-pdp-header-block {
		max-width: 720px;
	}
}

/* GRID-AREA placement for gallery + meta. The !important width / flex /
   margin-right resets override BigCommerce plugin's master.min.css rules:
     .bc-product-single .bc-product__gallery    { flex: 1 1 auto; width: 100% }   — base/mobile
     .bc-product-single .bc-product__gallery    { flex: 0 0 370px; margin-right: 30px } — @768px+
     .bc-product-single .bc-product-single__meta { width: calc(50% - 60px); padding-left: ... } — @768px+
   Without these resets, the gallery would take a fixed 370px width and the
   meta would be calc(50% - 60px), breaking our 55fr/45fr grid track sizing.
   At mobile (<768px), the order:1/2 rules from BC don't matter for our grid
   (we use grid-template-areas), but we keep them as belt-and-suspenders. */
body.single-bigcommerce_product .bc-product-single__top > .bc-product__gallery {
	grid-area: gallery;
	order: 1 !important;
	width: auto !important;
	max-width: 100% !important;
	flex: initial !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
}
body.single-bigcommerce_product .bc-product-single__top > .bc-product-single__meta {
	grid-area: meta;
	order: 2 !important;
	width: auto !important;
	max-width: 100% !important;
	flex: initial !important;
	padding-left: 0 !important;
}

/* Gallery (left column) — square aspect, peach bg, clean radius. Restored
   in the rollback from v4: cream/peach lives back on the gallery itself, no
   intermediate wrapper. This lets the `> .bc-product__gallery` grid-item
   override above match (because gallery is a direct child of __top), which
   is what holds BigCommerce plugin's flex-basis/margin-right rules off. */
body.single-bigcommerce_product .bc-product__gallery {
	background: #FBE9D7;
	border-radius: 10px;
	overflow: hidden;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .bc-product__gallery {
		position: sticky;
		top: 24px;
		max-width: 100%;
	}
}
.bc-product-gallery__images,
.bc-product__gallery .swiper-container,
.bc-product__gallery .swiper-wrapper {
	width: 100% !important;
	max-width: 100% !important;
}
.bc-product-gallery__images img,
.bc-product__gallery img,
.bc-product__gallery .swiper-slide img {
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	display: block !important;
	aspect-ratio: 1/1;
	object-fit: cover;
}
.sn-gallery-swipe,
.sn-gallery-swipe .swiper-slide,
.sn-gallery-swipe .swiper-slide img {
	cursor: grab !important;
	-webkit-user-select: none;
	user-select: none;
}
.sn-gallery-swipe:active,
.sn-gallery-swipe:active .swiper-slide,
.sn-gallery-swipe:active .swiper-slide img {
	cursor: grabbing !important;
}

/* Title + price block — tightened, with a clear divider before form */
body.single-bigcommerce_product .bc-product__title,
body.single-bigcommerce_product .h1 {
	font-family: 'Inter', sans-serif !important;
	font-size: clamp(28px, 4vw, 36px) !important;
	font-weight: 600 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.4px !important;
	color: #0F0F0F !important;
	margin: 0 0 8px !important;
}
body.single-bigcommerce_product .bc-product__pricing,
body.single-bigcommerce_product .bc-product-price,
body.single-bigcommerce_product .bc-product__price {
	font-family: 'Inter', sans-serif !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	color: #D81B3D !important;
	margin: 0 0 16px !important;
	padding-bottom: 16px;
	border-bottom: 1px solid #E8E2D5;
}
.bc-product__retail-price,
.bc-product__original-price {
	color: #5F5E5A !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	text-decoration: line-through;
}

/* SKU + meta */
.bc-product-single__meta,
.bc-product__sku {
	font-size: 12px !important;
	color: #5F5E5A !important;
	margin-bottom: 16px !important;
}
.bc-product-single__meta-label,
.bc-product__spec-title {
	font-weight: 600 !important;
	color: #0F0F0F !important;
}

/* Variant / option form */
.bc-product-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 8px;
}
.bc-product-form__options { display: flex; flex-direction: column; gap: 16px; }
.bc-product-form__option-field { display: flex; flex-direction: column; gap: 8px; }
.bc-product-form__option-label,
.bc-form__label {
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #0F0F0F !important;
	letter-spacing: 0.2px !important;
	text-transform: uppercase;
}
.bc-product-form__control select,
.bc-product-form__control input[type="text"],
.bc-product-form__control input[type="email"],
.bc-product-form__control input[type="number"],
.bc-product-form__quantity-input,
.bc-product-variant__select,
.bc-form__control select,
.bc-form__control input {
	font-family: 'Inter', sans-serif !important;
	font-size: 15px !important;
	border: 1px solid #E8E2D5 !important;
	border-radius: 4px !important;
	padding: 12px 14px !important;
	min-height: 46px !important;
	background: white !important;
	color: #0F0F0F !important;
	width: 100% !important;
	max-width: 100%;
}
.bc-product-form__control select:focus,
.bc-product-form__control input:focus,
.bc-product-form__quantity-input:focus,
.bc-product-variant__select:focus,
.bc-form__control select:focus,
.bc-form__control input:focus {
	outline: none !important;
	border-color: #D81B3D !important;
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.12) !important;
}
.bc-product-form__option-description {
	font-size: 12px !important;
	line-height: 1.5 !important;
	color: #7A6F62 !important;
	margin-top: 4px !important;
	font-weight: 400 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	max-width: 100%;
}
/* Long Dutch demo description — clamp it so it doesn't blow out the column */
.bc-product-form__option-description {
	max-height: 4.5em;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}
.bc-product-form__option-description:hover,
.bc-product-form__option-description:focus { max-height: none; -webkit-line-clamp: unset; overflow: visible; }

/* Quantity */
.bc-product-form__quantity {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 140px;
}
.bc-product-form__quantity-label {
	font-size: 13px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: 0.2px;
}

/* Add to cart / form actions */
.bc-form__actions,
.bc-product-form__actions {
	margin-top: 8px;
	display: flex; flex-direction: column; gap: 10px;
}
body.single-bigcommerce_product .bc-btn,
body.single-bigcommerce_product button.bc-btn,
body.single-bigcommerce_product .bc-btn--add_to_cart,
body.single-bigcommerce_product .bc-btn--buy_now,
body.single-bigcommerce_product input.bc-btn[type="submit"] {
	background: #D81B3D !important;
	color: white !important;
	border: none !important;
	border-radius: 4px !important;
	padding: 14px 28px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.3px !important;
	min-height: 48px !important;
	cursor: pointer !important;
	transition: background 0.15s ease;
	text-transform: none !important;
	width: 100% !important;
	display: inline-flex !important;
	align-items: center; justify-content: center;
	box-shadow: none !important;
}
body.single-bigcommerce_product .bc-btn:hover,
body.single-bigcommerce_product .bc-btn--add_to_cart:hover,
body.single-bigcommerce_product .bc-btn--buy_now:hover {
	background: #B5152F !important;
	color: white !important;
}

/* Description — visually separated card BELOW the gallery+form 2-col,
   in case BC renders it inside __top. Force full-width grid span. */
body.single-bigcommerce_product .bc-product__description {
	grid-column: 1 / -1;
	margin-top: 32px;
	padding: 32px 0 0;
	border-top: 1px solid #E8E2D5;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #3A3A38;
	max-width: 800px;
}
.bc-product__description h2,
.bc-product__description h3 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	color: #0F0F0F;
	margin: 24px 0 12px;
}
.bc-product__description p { margin: 0 0 14px; }

/* Specs */
.bc-product__spec-list {
	list-style: none;
	padding: 0;
	margin: 16px 0;
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 8px 24px;
}
.bc-product__spec-title { font-size: 13px; font-weight: 600; color: #0F0F0F; }
.bc-product__spec-value { font-size: 14px; color: #3A3A38; }

/* Reviews section */
.bc-product-reviews__header,
.bc-product-review-form-wrapper {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid #E8E2D5;
}
.bc-product-reviews__header h2,
.bc-product-reviews__header h3,
body.single-bigcommerce_product .h2 {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 600 !important;
	color: #0F0F0F !important;
	margin: 0 0 16px !important;
}
.bc-single-product__rating {
	display: flex; align-items: center; gap: 8px;
	font-size: 14px; color: #5F5E5A;
	margin-bottom: 16px;
}
.bc-single-product__reviews-anchor,
.bc-product-review__write-btn,
.bc-product-review__cancel-write-btn {
	color: #D81B3D !important;
	text-decoration: underline !important;
	font-weight: 500 !important;
}

/* Swiper carousel polish */
.bc-product__gallery .swiper-button-prev,
.bc-product__gallery .swiper-button-next {
	color: #D81B3D !important;
}
.bc-product__gallery .swiper-pagination-bullet-active {
	background: #D81B3D !important;
}

/* Shop intro band injected by the_content filter */
.qb-shop-intro {
	max-width: 720px;
	margin: 0 auto 40px;
	padding: 0 16px;
	text-align: center;
}
.qb-shop-intro__h1 {
	margin: 0 0 12px;
	font-family: 'Inter', sans-serif;
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 600;
	letter-spacing: -0.4px;
	color: #0F0F0F;
}
.qb-shop-intro__sub {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #5F5E5A;
}

/* ============================================================================
   BC PDP — Reviews header (Override 1: product-rating-header.php)
   ============================================================================ */
body.single-bigcommerce_product .sn-reviews-header {
	margin: 48px auto 24px;
	padding-top: 32px;
	border-top: 1px solid #E8E2D5;
	text-align: center;
	max-width: 720px;
}
body.single-bigcommerce_product .sn-reviews-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #D81B3D;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 8px;
}
body.single-bigcommerce_product .sn-reviews-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: -0.3px !important;
	color: #0F0F0F !important;
	margin: 0 0 16px !important;
}
body.single-bigcommerce_product .sn-reviews-stars {
	display: inline-block;
	margin: 0 auto;
}
/* Tint the BC star sprite if it inherits color (no-op for fixed-color backgrounds) */
body.single-bigcommerce_product .sn-reviews-stars .bc-single-product__rating--top .bc-rating-star {
	color: #D81B3D;
}

/* ============================================================================
   BC PDP — Variant options section header (Override 2: product-options.php)
   ============================================================================ */
body.single-bigcommerce_product .sn-options-section {
	margin-top: 24px;
}
body.single-bigcommerce_product .sn-options-header {
	margin-bottom: 16px;
}
body.single-bigcommerce_product .sn-options-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #D81B3D;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 6px;
}
body.single-bigcommerce_product .sn-options-title {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	color: #0F0F0F;
	margin: 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-options-title { font-size: 20px; }
}

/* ============================================================================
   BC PDP — Personalization (modifiers) section header
   (Override 3: product-modifiers.php)
   ============================================================================ */
body.single-bigcommerce_product .sn-modifiers-section {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid #E8E2D5;
}
body.single-bigcommerce_product .sn-modifiers-header {
	margin-bottom: 16px;
}
body.single-bigcommerce_product .sn-modifiers-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #D81B3D;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 6px;
}
body.single-bigcommerce_product .sn-modifiers-title {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	color: #0F0F0F;
	margin: 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-modifiers-title { font-size: 20px; }
}

/* ============================================================================
   BC PDP — Breadcrumb above product (Override 4: single-bigcommerce_product.php)
   ============================================================================ */
body.single-bigcommerce_product .sn-breadcrumb {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #5F5E5A;
	margin-bottom: 16px;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
body.single-bigcommerce_product .sn-breadcrumb-link {
	color: #5F5E5A;
	text-decoration: none;
	transition: color 0.15s ease;
}
body.single-bigcommerce_product .sn-breadcrumb-link:hover,
body.single-bigcommerce_product .sn-breadcrumb-link:focus {
	color: #D81B3D;
}
body.single-bigcommerce_product .sn-breadcrumb-sep {
	color: #C9BBA8;
	user-select: none;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .sn-breadcrumb { margin-bottom: 24px; }
}

/* ============================================================================
   BC PDP — Layout reorder: meta column (Override 5: product-single.php)
   ============================================================================ */
/* Eyebrow above the product title */
body.single-bigcommerce_product .sn-pdp-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #D81B3D;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 8px;
}

/* Fine-print meta line (brand + SKU below the form) */
body.single-bigcommerce_product .sn-pdp-meta-fine {
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #E8E2D5;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: #7A6F62;
}
body.single-bigcommerce_product .sn-pdp-meta-fine .bc-product__brand,
body.single-bigcommerce_product .sn-pdp-meta-fine .bc-product__sku,
body.single-bigcommerce_product .sn-pdp-meta-fine .bc-product-single__meta-sku {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 12px !important;
	color: #7A6F62 !important;
	font-weight: 500 !important;
}

/* Description section — clean, full-width section below the gallery+meta */
body.single-bigcommerce_product .sn-pdp-description {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid #E8E2D5;
	max-width: 800px;
}
body.single-bigcommerce_product .sn-pdp-section-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 22px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: -0.3px !important;
	color: #0F0F0F !important;
	margin: 0 0 16px !important;
}
/* Description body copy — Inter / 16px / 1.6 / #3A3A38 to match homepage <p> body */
body.single-bigcommerce_product .sn-pdp-description .bc-product__description,
body.single-bigcommerce_product .sn-pdp-description .bc-single-product__description,
body.single-bigcommerce_product .sn-pdp-description p {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
	color: #3A3A38 !important;
	margin: 0 0 14px !important;
}
body.single-bigcommerce_product .sn-pdp-description ul,
body.single-bigcommerce_product .sn-pdp-description ol {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #3A3A38;
	margin: 0 0 14px;
	padding-left: 20px;
}
body.single-bigcommerce_product .sn-pdp-description li { margin-bottom: 6px; }
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-pdp-description { margin-top: 64px; }
	body.single-bigcommerce_product .sn-pdp-section-title { font-size: 24px !important; }
}

/* ============================================================================
   BC PDP — Personalization (Name) input (Override 6: option-text.php)
   Reused by Override 7 (option-dropdown.php) — .sn-pdp-label is shared.
   ============================================================================ */

/* Personalization wrapper — vertical rhythm only */
body.single-bigcommerce_product .sn-personalization-field {
	margin-bottom: 16px;
}

/* Shared form-control label (text input + dropdown both use this) */
body.single-bigcommerce_product .sn-pdp-label {
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #0F0F0F !important;
	letter-spacing: 0.2px !important;
	text-transform: uppercase !important;
	margin: 0 0 8px !important;
	display: block !important;
}

/* Required-field marker (BC adds .bc-form-control-required class via PHP if $required) */
body.single-bigcommerce_product .sn-pdp-label.bc-form-control-required::after {
	content: " *";
	color: #D81B3D;
}

/* Text input — borders, focus state, 48px tap target, iOS-no-zoom 16px font */
body.single-bigcommerce_product .sn-pdp-input,
body.single-bigcommerce_product input.bc-product-option__text {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: #0F0F0F !important;
	background: white !important;
	border: 1.5px solid #E8E2D5 !important;
	border-radius: 4px !important;
	padding: 12px 14px !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 48px !important;
	line-height: 1.5 !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	box-shadow: none !important;
}
body.single-bigcommerce_product .sn-pdp-input:focus,
body.single-bigcommerce_product input.bc-product-option__text:focus {
	outline: none !important;
	border-color: #D81B3D !important;
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.12) !important;
}
body.single-bigcommerce_product .sn-pdp-input::placeholder {
	color: #7A6F62;
}

/* Helper text under the input — restyle BC's min/max char count messages
   from systemy validation copy → elegant muted hint text */
body.single-bigcommerce_product .sn-personalization-field .bc-product-form__option-description {
	font-family: 'Inter', sans-serif !important;
	font-size: 12px !important;
	line-height: 1.5 !important;
	font-weight: 400 !important;
	color: #7A6F62 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	margin: 6px 0 0 !important;
	display: block !important;
	max-height: none !important;
	-webkit-line-clamp: unset !important;
	overflow: visible !important;
}
body.single-bigcommerce_product .sn-personalization-field .bc-product-form__option-description strong {
	font-weight: 600;
	color: #0F0F0F;
}

/* ============================================================================
   BC PDP — Theme dropdown (Override 7: option-dropdown.php)
   Pure CSS styling on the native <select>. No JS, no shim, no hidden field.
   Inherits .sn-personalization-field wrapper rhythm + .sn-pdp-label typography.
   ============================================================================ */

/* Native <select> — match the text-input treatment, plus a custom berry SVG arrow */
body.single-bigcommerce_product .sn-pdp-select,
body.single-bigcommerce_product select.bc-product-variant__select {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: #0F0F0F !important;
	background-color: white !important;
	border: 1.5px solid #E8E2D5 !important;
	border-radius: 4px !important;
	padding: 12px 40px 12px 14px !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 48px !important;
	line-height: 1.5 !important;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
	box-shadow: none !important;

	/* Strip native UA chevron */
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;

	/* Custom berry-red SVG chevron at right edge */
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23D81B3D' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	background-size: 12px 8px !important;
}
body.single-bigcommerce_product .sn-pdp-select:focus,
body.single-bigcommerce_product select.bc-product-variant__select:focus {
	outline: none !important;
	border-color: #D81B3D !important;
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.12) !important;
}
body.single-bigcommerce_product .sn-pdp-select:hover,
body.single-bigcommerce_product select.bc-product-variant__select:hover {
	border-color: #C9BBA8 !important;
}
/* Suppress IE/Edge legacy native arrow */
body.single-bigcommerce_product .sn-pdp-select::-ms-expand,
body.single-bigcommerce_product select.bc-product-variant__select::-ms-expand {
	display: none !important;
}

/* Don't let BC's option-variants wrapper add its own padding/borders */
body.single-bigcommerce_product .sn-personalization-field .bc-product-form__option-variants {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}

/* ============================================================================
   BC PDP — Add-to-Cart action zone (Override 8: product-form.php)
   Wraps quantity + message + submit in a clearly-separated bottom section.
   Submit button itself is styled by the existing .bc-btn / .bc-btn--add_to_cart
   rules earlier in this file — NOT redefined here.
   ============================================================================ */

/* Form shell — minimal, just keeps form children stacked with consistent gap */
body.single-bigcommerce_product .sn-pdp-form {
	display: flex;
	flex-direction: column;
}

/* Add-to-cart zone — clear divider above, vertical stack of qty + button */
body.single-bigcommerce_product .sn-pdp-actions {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid #E8E2D5;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Quantity — narrow column on its own row, full label + input above the button */
body.single-bigcommerce_product .sn-pdp-actions .sn-pdp-quantity {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 140px;
	margin: 0;
}
body.single-bigcommerce_product .sn-pdp-actions .sn-pdp-quantity .bc-product-form__quantity-label {
	margin: 0 !important;
	padding: 0 !important;
}
body.single-bigcommerce_product .sn-pdp-actions .sn-pdp-quantity .bc-product-single__meta-label {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #0F0F0F;
	letter-spacing: 0.2px;
	text-transform: uppercase;
}

/* Tighten the quantity input — smaller than full-width inputs but same border treatment */
body.single-bigcommerce_product .sn-pdp-actions input.bc-product-form__quantity-input {
	max-width: 140px !important;
	text-align: center !important;
}

/* Hide the BC product-message wrapper when empty (it injects content via JS) */
body.single-bigcommerce_product .bc-product-form__product-message:empty {
	display: none;
}

/* Purchase-restriction message (e.g. "minimum 2 to purchase") */
body.single-bigcommerce_product .sn-pdp-purchase-message {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #5F5E5A;
	display: block;
	margin: 4px 0;
}

/* AJAX add-to-cart status message — fades in on cart success */
body.single-bigcommerce_product .bc-ajax-add-to-cart__message-wrapper {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: #5F5E5A;
	margin-top: 12px;
}
body.single-bigcommerce_product .bc-ajax-add-to-cart__message-wrapper:empty {
	display: none;
}

/* Reinforce the Add-to-Cart submit button styling within the actions zone — broader
   selector coverage in case BC ships variants of the button class name (some
   versions use --form-submit, others --add_to_cart) */
body.single-bigcommerce_product .sn-pdp-actions .bc-btn,
body.single-bigcommerce_product .sn-pdp-actions button.bc-btn,
body.single-bigcommerce_product .sn-pdp-actions input.bc-btn,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--form-submit,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--form_submit,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--add_to_cart,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--buy_now {
	background: #D81B3D !important;
	color: white !important;
	border: none !important;
	border-radius: 4px !important;
	padding: 14px 28px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.3px !important;
	min-height: 48px !important;
	cursor: pointer !important;
	width: 100% !important;
	max-width: 100% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	box-shadow: none !important;
	transition: background 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
body.single-bigcommerce_product .sn-pdp-actions .bc-btn:hover,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn:focus,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--form-submit:hover,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--add_to_cart:hover,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--buy_now:hover {
	background: #B5152F !important;
	color: white !important;
	outline: none !important;
}
body.single-bigcommerce_product .sn-pdp-actions .bc-btn:focus-visible {
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.30) !important;
}

/* ============================================================================
   SNUGIBO PDP v2 — right-column structure (rating row, tagline, benefits,
   price block, dynamic dropdown labels, personalization input, dynamic CTA)
   plus mobile layout treatments. Replaces / extends earlier overrides.
   ============================================================================ */

/* 0. Header block — wraps rating + title + tagline, sits above the gallery
      on every viewport (full-width on desktop via grid-template-areas;
      first child of the single-column stack on mobile). ---------------- */
body.single-bigcommerce_product .sn-pdp-header-block {
	display: block;
	margin: 0;
}

/* 1. Rating row (Etsy bridge — 5 berry stars + count + Etsy attribution)
      Lives at the top of the header block, on white background, above the
      title. ------------------------------------------------------------- */
body.single-bigcommerce_product .sn-rating {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin: 0 0 6px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #5F5E5A;
	line-height: 1.3;
}
body.single-bigcommerce_product .sn-rating-stars {
	display: inline-block;
	flex-shrink: 0;
	color: #D81B3D;            /* --berry */
	font-size: 14px;
	letter-spacing: 1px;
	line-height: 1;
}
body.single-bigcommerce_product .sn-rating-meta {
	color: #5F5E5A;            /* --muted */
	text-decoration: none;
	font-size: 13px;
	font-weight: 500;
}
body.single-bigcommerce_product a.sn-rating-meta:hover {
	color: #D81B3D;
	text-decoration: underline;
}
body.single-bigcommerce_product .sn-rating-count strong {
	font-weight: 600;
	color: #2B2A26;             /* slightly darker for the number */
}
body.single-bigcommerce_product .sn-rating-divider { color: #C9BBA8; }

/* 1b. Attribution subtitle (smaller, even more muted) -------------------- */
body.single-bigcommerce_product .sn-rating-attribution {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 400;
	color: #8A8780;             /* lighter muted */
	margin: 0 0 12px;
	line-height: 1.4;
	letter-spacing: 0.1px;
}

/* 2. Tagline (italic, below title) ------------------------------------------ */
body.single-bigcommerce_product .sn-pdp-tagline {
	font-family: 'Inter', sans-serif;
	font-style: italic;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: #3A3A38;
	max-width: 90%;
	margin: 4px 0 20px;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-pdp-tagline { font-size: 17px; }
}

/* 3. Benefit bullets -------------------------------------------------------- */
body.single-bigcommerce_product .sn-pdp-benefits {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
body.single-bigcommerce_product .sn-pdp-benefit {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: #0F0F0F;
	line-height: 1.5;
}
body.single-bigcommerce_product .sn-pdp-benefit-icon {
	flex-shrink: 0;
	font-size: 18px;
	line-height: 1.3;
}
body.single-bigcommerce_product .sn-pdp-benefit-text { font-weight: 600; }
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-pdp-benefit { font-size: 16px; }
}

/* 4. Price block ------------------------------------------------------------ */
body.single-bigcommerce_product .sn-price-row {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid #E8E2D5;
}
/* The .bc-product__pricing--cached and --api wrappers BC ships are <p> tags;
   reset their margins so they sit cleanly on our price-row baseline. */
body.single-bigcommerce_product .sn-price-row > .bc-product__pricing--cached,
body.single-bigcommerce_product .sn-price-row > .bc-product__pricing--api {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
body.single-bigcommerce_product .sn-price-row .bc-product__price {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	color: #D81B3D !important;
	margin: 0 !important;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-price-row .bc-product__price { font-size: 28px !important; }
}
body.single-bigcommerce_product .sn-price-row .bc-product__retail-price,
body.single-bigcommerce_product .sn-price-row .bc-product__original-price {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: #7A6F62 !important;
	text-decoration: line-through;
	margin: 0 !important;
}
/* Sold-out label — hidden by default, revealed by body class */
body.single-bigcommerce_product .sn-sold-out-label {
	display: none;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #7A6F62;
	background: #EFE6D6;
	padding: 4px 10px;
	border-radius: 99px;
}
body.single-bigcommerce_product.bc-availability-unavailable .sn-sold-out-label {
	display: inline-block;
}

/* 5. Dynamic dropdown label ------------------------------------------------- */
body.single-bigcommerce_product .sn-pdp-label-dynamic {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px;
}
body.single-bigcommerce_product .sn-pdp-label-dynamic .sn-option-prefix {
	font-weight: 600;
	color: #0F0F0F;
}
body.single-bigcommerce_product .sn-pdp-label-dynamic .sn-option-divider {
	color: #7A6F62;
	text-transform: none;
	letter-spacing: 0;
}
body.single-bigcommerce_product .sn-pdp-label-dynamic .sn-option-value {
	font-weight: 500;
	color: #3A3A38;
	text-transform: none;
	letter-spacing: 0;
	max-width: 70%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* 6. Personalization input — replace verbose helper, custom hint ----------- */
body.single-bigcommerce_product .sn-personalization-text .sn-personalization-hint {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	line-height: 1.5;
	font-weight: 500;
	color: #7A6F62;
	margin: 6px 0 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-personalization-text .sn-personalization-hint { font-size: 13px; }
}
/* Suppress BC's verbose default helper (Min/Max char count) inside the
   personalization text field — we render our own concise hint instead.
   Other modifier types still show their helpers. */
body.single-bigcommerce_product .sn-personalization-text .bc-product-form__option-description {
	display: none !important;
}

/* 7. Dynamic Add-to-Cart state machine -------------------------------------- */
body.single-bigcommerce_product .sn-pdp-actions .bc-btn,
body.single-bigcommerce_product .bc-product-form .bc-btn--add_to_cart,
body.single-bigcommerce_product .bc-product-form .bc-btn--form-submit,
body.single-bigcommerce_product .bc-product-form button.bc-btn,
body.single-bigcommerce_product .bc-product-form input.bc-btn[type="submit"] {
	transition: background-color 0.25s ease, color 0.25s ease,
	            border-color 0.25s ease, opacity 0.25s ease !important;
}
/* Disabled state — applied by JS when personalization input is empty */
body.single-bigcommerce_product .bc-btn.sn-btn-disabled,
body.single-bigcommerce_product button.bc-btn.sn-btn-disabled,
body.single-bigcommerce_product input.bc-btn.sn-btn-disabled {
	background: #C9BBA8 !important;
	color: #5F5E5A !important;
	cursor: not-allowed !important;
	box-shadow: none !important;
	pointer-events: none !important;
}
body.single-bigcommerce_product .bc-btn.sn-btn-disabled:hover,
body.single-bigcommerce_product .bc-btn.sn-btn-disabled:focus {
	background: #C9BBA8 !important;
	color: #5F5E5A !important;
	transform: none !important;
}
body.single-bigcommerce_product .bc-btn.sn-btn-soldout {
	background: #7A6F62 !important;
	color: white !important;
	cursor: not-allowed !important;
}

/* Promo bar — visually softer "marketing banner" treatment, not red alert -- */
.snugibo-landing .promo-bar {
	background: #DCE6CC !important;     /* soft sage-cream blend */
	color: #3A332C !important;          /* warm ink, not white */
	font-size: 13px !important;
	font-weight: 500;
	letter-spacing: 0;
	padding: 13px 20px !important;
	text-align: center !important;
}
.snugibo-landing .promo-bar a {
	color: #3A332C !important;
	text-decoration: underline;
	font-weight: 600;
}
.snugibo-landing .promo-bar a:hover { color: #D81B3D !important; }
@media (min-width: 768px) {
	.snugibo-landing .promo-bar { font-size: 14px !important; padding: 14px 24px !important; }
	/* keep the .right block on desktop but match the new colors */
	.snugibo-landing .promo-bar .right { color: #3A332C; }
}

/* MOBILE LAYOUT (≤767px) ---------------------------------------------------- */
@media (max-width: 767px) {
	/* Edge-to-edge gallery — strip horizontal padding from .qb-main wrappers,
	   then re-apply 24px padding only to the right-column meta + description. */
	body.single-bigcommerce_product .qb-main {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	body.single-bigcommerce_product .sn-breadcrumb {
		padding: 0 24px;
	}
	body.single-bigcommerce_product .bc-product-single,
	body.single-bigcommerce_product .bc-product-single__top {
		padding: 0 !important;
	}
	body.single-bigcommerce_product .bc-product__gallery {
		border-radius: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	/* HEADER BLOCK on mobile — gets horizontal padding (24px each side, 24px
	   top) so rating + title + tagline don't bleed to the screen edge. The
	   gallery below it stays edge-to-edge for hero impact. */
	body.single-bigcommerce_product .sn-pdp-header-block {
		padding: 24px 24px 0;
	}
	/* META on mobile — bottom + sides only; the grid-gap (24px) above
	   provides separation from the gallery so we don't double up on
	   top-padding. */
	body.single-bigcommerce_product .bc-product-single__meta {
		padding: 0 24px 24px;
	}
	body.single-bigcommerce_product .sn-pdp-description {
		padding: 32px 24px 0 !important;
		margin-left: 0;
		margin-right: 0;
	}
	body.single-bigcommerce_product .bc-single-product__description {
		padding: 0 24px;
	}
	/* Tagline doesn't wrap awkwardly */
	body.single-bigcommerce_product .sn-pdp-tagline {
		font-size: 15px;
		line-height: 1.5;
		max-width: 100%;
	}
	/* Generous vertical spacing between blocks */
	body.single-bigcommerce_product .bc-product-single__meta > * { margin-bottom: 24px; }
	body.single-bigcommerce_product .bc-product-single__meta > *:last-child { margin-bottom: 0; }

	/* Title typography */
	body.single-bigcommerce_product .bc-product__title {
		font-size: 26px !important;
		line-height: 1.15 !important;
	}

	/* Benefit bullets fit ≥375px */
	body.single-bigcommerce_product .sn-pdp-benefit { font-size: 15px; }

	/* Add-to-Cart full-width */
	body.single-bigcommerce_product .sn-pdp-actions .bc-btn,
	body.single-bigcommerce_product .bc-product-form .bc-btn--add_to_cart,
	body.single-bigcommerce_product .bc-product-form .bc-btn--form-submit,
	body.single-bigcommerce_product .bc-product-form button.bc-btn {
		width: 100% !important;
		min-height: 52px !important;
	}

	/* MOBILE THUMBNAIL STRIP — horizontal scroll override
	   ----------------------------------------------------
	   BigCommerce plugin's master.min.css applies these rules WITHOUT a media
	   query, so they hit mobile too:
	     .bc-product-gallery__thumbs { flex-wrap: wrap; }
	     .bc-product-gallery__thumb-slide { width: calc(25% - 10px); margin: 0 10px 10px 0; }
	   Result on mobile: 4-col grid, multi-row stack, ~50% of viewport before
	   the form is visible. Buyers scroll past 14+ thumbnail rows.
	   Fix: override flex-wrap, width, margin to a single-row horizontal scroll
	   with native overflow + scroll-snap. Click-to-swap behavior is preserved
	   because thumbs have data-js="bc-gallery-thumb-trigger" + data-index, and
	   BC's JS binds via those data attributes (NOT class selectors), so our
	   CSS class overrides don't affect the JS.
	*/
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] {
		position: relative !important;
		overflow: hidden !important;
		width: 100% !important;
		margin-top: 12px;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumbs,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .swiper-wrapper {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 8px;
		padding: 4px 24px;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		/* override Swiper's transforms — use native scroll on mobile */
		transform: none !important;
		width: auto !important;
		max-width: 100vw;
		align-items: flex-start !important;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .swiper-wrapper::-webkit-scrollbar,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumbs::-webkit-scrollbar {
		display: none !important;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .swiper-slide {
		flex: 0 0 22% !important;
		width: 22% !important;
		max-width: 22% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		scroll-snap-align: start;
		aspect-ratio: 1/1;
		overflow: hidden;
		border-radius: 6px;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide img,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .swiper-slide img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		display: block !important;
		border-radius: 6px;
	}
	/* Active thumb visual indicator (Swiper.js applies this class on click) */
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide.swiper-slide-active,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide.swiper-slide-thumb-active {
		opacity: 1 !important;
		outline: 2px solid #D81B3D;
		outline-offset: -2px;
		border-radius: 6px;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide:not(.swiper-slide-active) {
		opacity: 0.7;
	}
	/* Right-edge fade gradient — hints "more thumbnails to the right" */
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"]::after {
		content: "";
		position: absolute;
		top: 4px; right: 0; bottom: 4px;
		width: 40px;
		background: linear-gradient(to left, rgba(250, 246, 239, 1) 0%, rgba(250, 246, 239, 0) 100%);
		pointer-events: none;
		z-index: 3;
	}

	/* Dynamic dropdown label — allow wrap to 2 lines if selected value is long */
	body.single-bigcommerce_product .sn-pdp-label-dynamic .sn-option-value {
		max-width: 100%;
		white-space: normal;
		text-overflow: clip;
	}

	/* Price row stacks if needed */
	body.single-bigcommerce_product .sn-price-row {
		gap: 8px;
	}
}

/* SMALL DEVICE GUARDS — iOS Safari zoom prevention --------------------------- */
@media (max-width: 767px) {
	body.single-bigcommerce_product .sn-pdp-input,
	body.single-bigcommerce_product .sn-pdp-select,
	body.single-bigcommerce_product input.bc-product-option__text,
	body.single-bigcommerce_product input.bc-product-form__quantity-input {
		font-size: 16px !important;
		min-height: 48px !important;
	}
}

/* ============================================================================
   LEGACY removed 2026-05-06 — keep for reference, delete after 30 days of stable
   production. These rules created an outer 1fr/1fr grid on .bc-product-single
   that pre-split the PDP into halves, squeezing the product form column to
   ~80px on desktop. Every property below is now covered by
   body.single-bigcommerce_product scoped rules earlier in this file.
   --------------------------------------------------------------------------
   ORIGINAL CONTENT (was at lines 902-1001 of pre-removal style.css):

--- Single product page ---
.bc-product-single,
.bc-single-product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: start;
}
@media (max-width: 900px) {
	.bc-product-single,
	.bc-single-product { grid-template-columns: 1fr; gap: 24px; }
}
.bc-product__images,
.bc-product-single__images {
	border-radius: 32px;
	overflow: hidden;
	box-shadow: var(--qb-shadow-soft);
	background: linear-gradient(135deg, #FFFCF7 0%, #F5D8DA 100%);
}
.bc-product__images img,
.bc-product-single__images img {
	width: 100%; height: auto; display: block;
}
.bc-product__title,
.bc-product-single__title {
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 800 !important;
	font-size: 36px !important;
	letter-spacing: -0.01em !important;
	margin: 0 0 16px !important;
	color: var(--qb-text) !important;
}
.bc-product__price,
.bc-product-single__price {
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 28px !important;
	color: var(--qb-text) !important;
	margin: 0 0 24px !important;
}
.bc-product__description,
.bc-product-single__description {
	color: var(--qb-text-soft) !important;
	line-height: 1.7 !important;
	margin-bottom: 28px;
}
.single-bigcommerce_product input[type="text"],
.single-bigcommerce_product input[type="number"],
.single-bigcommerce_product input[type="email"],
.single-bigcommerce_product select,
.single-bigcommerce_product textarea {
	background: var(--qb-cream);
	border: 1px solid var(--qb-cream-deep);
	border-radius: 14px;
	padding: 12px 16px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 15px;
	color: var(--qb-text);
	outline: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.single-bigcommerce_product input[type="text"]:focus,
.single-bigcommerce_product input[type="number"]:focus,
.single-bigcommerce_product input[type="email"]:focus,
.single-bigcommerce_product select:focus,
.single-bigcommerce_product textarea:focus {
	border-color: var(--qb-pink);
	box-shadow: 0 0 0 4px rgba(232, 180, 184, 0.25);
}
.single-bigcommerce_product label {
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.04em;
	color: var(--qb-text);
	display: block;
	margin-bottom: 6px;
}
.single-bigcommerce_product button,
.single-bigcommerce_product .bc-btn,
.bc-btn,
.bc-btn--buy_now {
	background: var(--qb-pink) !important;
	color: var(--qb-text) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 14px 28px !important;
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	letter-spacing: 0.02em !important;
	box-shadow: var(--qb-shadow-button) !important;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.single-bigcommerce_product button:hover,
.bc-btn:hover {
	background: var(--qb-pink-deep) !important;
	color: #fff !important;
}

   ============================================================================ */

/* ===========================================================================
   PRODUCT PAGE LAYOUT v2 — clean rebuild 2026-05-07
   (v2.1 refinement 2026-05-07 — Lovevery-style mobile architecture)
   ===========================================================================
   Refinement of the v2 clean rebuild: section ORDER changed so the cream
   gallery is the first thing the buyer sees after the header, the price + form
   are wrapped in a bordered conversion CARD, a thin trust line sits below the
   card, and benefit bullets + SKU are pushed below — matching Lovevery's
   mobile PDP architecture.

   DOM emitted by product-single.php v6 (inside <main class="qb-main">):
       <div class="snugibo-pdp" data-js="bc-product-data-wrapper">
         <div class="snugibo-pdp__gallery">                 ← cream panel — FIRST
           <?= $images ?>
         </div>
         <div class="snugibo-pdp__breadcrumb">…</div>
         <div class="snugibo-pdp__title-block">             ← rating + title + tagline
           <div class="sn-rating">…</div>
           <p class="sn-rating-attribution">…</p>
           <h1 class="bc-product__title">…</h1>
           <p class="sn-pdp-tagline">…</p>
         </div>
         <div class="snugibo-pdp__form-card" data-js="bc-product-meta">  ← bordered CARD
           <div class="sn-price-row">…</div>
           <?= $form ?>
         </div>
         <p class="snugibo-pdp__trust">…</p>                ← muted trust line below card
         <ul class="snugibo-pdp__benefits sn-pdp-benefits">…</ul>  ← benefits below trust
         <div class="snugibo-pdp__meta sn-pdp-meta-fine">…</div>
         <div class="snugibo-pdp__description">…</div>
       </div>
       <?= $specs ?> <?= $reviews ?> <?= $related ?>

   LAYOUT MODES:
       Mobile (<768px): single-column DOM-order stack — gallery (edge-to-edge)
       → breadcrumb → title-block → form-card → trust → benefits → meta →
       description.
       Desktop (≥768px): 2-col CSS grid via grid-template-areas. Left col 55%
       holds the gallery (sticky on ≥1100px). Right col 45% holds breadcrumb,
       title, form-card, trust, benefits, meta — stacked. Description spans
       BOTH columns full-width below.

   SPECIFICITY: every rule is prefixed with body.single-bigcommerce_product
   so it has the same specificity as legacy rules (0,0,2,N) and wins them
   by being later in the cascade.
   =========================================================================== */

/* CSS variables — local to .snugibo-pdp, doesn't leak elsewhere */
body.single-bigcommerce_product .snugibo-pdp {
	--berry: #D81B3D;
	--muted: #5F5E5A;
	--ink: #0F0F0F;
	--body: #3A3A38;
	--peach: #FBE9D7;
	--divider: #E8E2D5;
	--side-pad: 24px;
}

/* DEAD-SPACE FIX — zero out the top padding the legacy theme rule applies
   to .qb-main on product pages (style.css:2369 sets 24/40/56px top padding).
   The cream gallery should sit flush under the SNUGIBO header with NO empty
   strip in between. Bottom + horizontal padding from the legacy rule are
   preserved — only top is killed. */
body.single-bigcommerce_product .qb-main {
	padding-top: 0 !important;
}

/* GRID CONTAINER — mobile single col, desktop 2-col with named areas */
body.single-bigcommerce_product .snugibo-pdp {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
	background: #FFFFFF;
	box-sizing: border-box;
}
body.single-bigcommerce_product .snugibo-pdp,
body.single-bigcommerce_product .snugibo-pdp *,
body.single-bigcommerce_product .snugibo-pdp *::before,
body.single-bigcommerce_product .snugibo-pdp *::after {
	box-sizing: border-box;
}
body.single-bigcommerce_product .snugibo-pdp > * {
	min-width: 0;
	max-width: 100%;
}

@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp {
		grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
		grid-template-areas:
			"gallery breadcrumb"
			"gallery title"
			"gallery benefits"
			"gallery price"
			"gallery card"
			"gallery trust"
			"gallery preorder"
			"gallery meta"
			"gallery description"
			"gallery shipping";
		gap: 0 40px;
		padding: 24px var(--side-pad);
		max-width: 1200px;
		align-items: start;
	}
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp {
		gap: 0 56px;
		padding: 32px 40px;
	}
}

/* ============ 1. BREADCRUMB ============
   HIDDEN by request — most buyers arrive via Meta ads, not category browsing.
   Markup stays in the override so it can be re-enabled by removing this
   display:none, with all original styling rules below still in force. */
body.single-bigcommerce_product .snugibo-pdp__breadcrumb {
	display: none !important;
}
/* Original breadcrumb styles — kept in source order so re-enabling is just a
   matter of dropping the display:none !important above. Once dropped, the
   display:flex below takes over. */
body.single-bigcommerce_product .snugibo-pdp__breadcrumb {
	padding: 24px var(--side-pad) 8px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--muted);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	background: #FFFFFF;
}
body.single-bigcommerce_product .snugibo-pdp__breadcrumb a,
body.single-bigcommerce_product .snugibo-pdp__breadcrumb .sn-breadcrumb-link {
	color: var(--muted);
	text-decoration: none;
	transition: color 0.15s ease;
}
body.single-bigcommerce_product .snugibo-pdp__breadcrumb a:hover,
body.single-bigcommerce_product .snugibo-pdp__breadcrumb .sn-breadcrumb-link:hover {
	color: var(--berry);
}
body.single-bigcommerce_product .snugibo-pdp__breadcrumb .sn-breadcrumb-sep {
	color: #C9BBA8;
	user-select: none;
}
body.single-bigcommerce_product .snugibo-pdp__breadcrumb .sn-breadcrumb-current {
	color: var(--ink);
	font-weight: 500;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__breadcrumb {
		grid-area: breadcrumb;
		padding: 0 0 8px;
	}
}

/* ============ 2. TITLE BLOCK (rating + title-row[title|price] + tagline) ============
   Tight stack — 6px between elements, sits within the 4-6px (rating→title)
   and 6-8px (title→tagline) target ranges. With the breadcrumb hidden, the
   title-block now provides the breathing room from the gallery: 20px top
   padding on mobile, 0 on desktop (where the grid handles spacing). */
body.single-bigcommerce_product .snugibo-pdp__title-block {
	padding: 20px var(--side-pad) 0;
	background: #FFFFFF;
	display: flex;
	flex-direction: column;
	gap: 6px;                      /* rating → title-row → tagline */
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__title-block {
		grid-area: title;
		padding: 0;
	}
}

/* Rating row */
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--muted);
}
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating-stars {
	color: var(--berry);
	font-size: 14px;
	letter-spacing: 1px;
	line-height: 1;
}
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating-meta {
	color: var(--muted);
	text-decoration: none;
	font-size: 13px;
	font-weight: 500;
}
body.single-bigcommerce_product .snugibo-pdp__title-block a.sn-rating-meta:hover {
	color: var(--berry);
	text-decoration: underline;
}
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating-count strong {
	font-weight: 600;
	color: var(--ink);
}
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating-attribution {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 400;
	color: #8A8780;
	margin: -4px 0 0;              /* negative top to tighten under .sn-rating */
	line-height: 1.4;
	letter-spacing: 0.1px;
	/* HIDDEN by request — the rating row already says "from Etsy" inline so
	   this second line is redundant. Markup stays in the rating override
	   (product-rating.php) so dropping this display:none brings it back. */
	display: none !important;
}

/* Title-row — flex space-between, title left, price right.
   v2.1.4 fix: added max-width:100% + overflow-wrap on title to prevent the
   price from sliding off the right edge after BC's price-API hook re-renders
   the inline-flex pricing wrapper post-load. flex-wrap removed because it
   was masking the real problem (title not breaking). Now: title flex-shrinks
   AND wraps long words; price holds nowrap on a single line; container is
   pinned to 100% viewport width with no overflow. */
body.single-bigcommerce_product .snugibo-pdp__title-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	max-width: 100%;
	min-width: 0;                  /* allow shrinking inside parent flex/grid */
	box-sizing: border-box;
}
body.single-bigcommerce_product .snugibo-pdp__title-wrap {
	flex: 1 1 auto;
	min-width: 0;                  /* lets title shrink AND wrap inside flex */
	word-wrap: break-word;
	overflow-wrap: break-word;
}
/* Title H1 must be allowed to wrap on word boundaries (and break long
   single tokens if any). Without these the H1 keeps intrinsic width and
   pushes the price off-screen. */
body.single-bigcommerce_product .snugibo-pdp__title-wrap .bc-product__title,
body.single-bigcommerce_product .snugibo-pdp__title-wrap h1 {
	word-wrap: break-word;
	overflow-wrap: break-word;
	hyphens: auto;
	max-width: 100%;
}
/* Price typography — Inter 600, --berry, 26px standalone block. */
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__price {
	font-family: 'Inter', sans-serif !important;
	font-size: 26px !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	color: var(--berry) !important;
	margin: 0 !important;
	padding: 0 !important;
	letter-spacing: -0.2px !important;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__price {
		font-size: 30px !important;
	}
}
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__retail-price,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__original-price {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: #7A6F62 !important;
	text-decoration: line-through !important;
	margin: 0 !important;
}
/* BC's own price wrapper margins reset inside title-price */
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--api {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: nowrap;
}
/* Sold-out label — appears next to price when body.bc-availability-unavailable */
body.single-bigcommerce_product .snugibo-pdp__price-block .sn-sold-out-label {
	display: none;
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #7A6F62;
}
body.bc-availability-unavailable .snugibo-pdp__price-block .sn-sold-out-label {
	display: inline-flex;
}
/* Very narrow viewports (<360px): allow wrapping so price drops below title.
   At 375px+ the row stays single-line. */
@media (max-width: 359px) {
	body.single-bigcommerce_product .snugibo-pdp__title-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
}

/* Title — Inter 600, --ink, 28px, line-height 1.15 */
body.single-bigcommerce_product .snugibo-pdp__title-block .bc-product__title,
body.single-bigcommerce_product .snugibo-pdp__title-block .h1 {
	font-family: 'Inter', sans-serif !important;
	font-size: 28px !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.4px !important;
	color: var(--ink) !important;
	margin: 0 !important;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp__title-block .bc-product__title,
	body.single-bigcommerce_product .snugibo-pdp__title-block .h1 {
		font-size: 34px !important;
	}
}

/* Tagline — Inter 400 italic, --body, 16px */
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-pdp-tagline {
	font-family: 'Inter', sans-serif;
	font-style: italic;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: var(--body);
	margin: 0;
	max-width: 100%;
}

/* ============ 3. CREAM GALLERY (hero + thumbs) — MOBILE-FIRST, sits at TOP ============
   Edge-to-edge cream panel on mobile so the hero image dominates the viewport
   on initial load. On mobile, padding is 0 0 16px 0 — the hero touches the
   top edge of the cream panel directly (no internal cream strip above it),
   16px breathing below for the thumb strip.
   On desktop, the panel becomes a rounded card so 16px top/bottom padding is
   re-introduced for inset thumb spacing. */
body.single-bigcommerce_product .snugibo-pdp__gallery {
	background: var(--peach);
	padding: 0 0 16px;             /* ZERO top — hero hugs cream-block top edge */
	width: 100%;
	max-width: 100%;
	position: relative;
	overflow: hidden;
}
/* (Removed v2.0.8: the 60vh min-height was extending the cream panel below
   the natural content on taller viewports — leaving up to 72px of empty
   cream below the thumbnails on iPhone 14+ class viewports. The natural
   content size, 1:1 hero + 16px thumb-margin + 80px thumbs + 16px bottom
   padding, gives ~487px on a 375px-wide viewport which is 60% of an
   iPhone X 812px viewport. Letting the cream panel size naturally to the
   content keeps the bottom edge tight per the consolidation-round spec.) */
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__gallery {
		grid-area: gallery;
		border-radius: 10px;
		padding: 24px 0;
		align-self: start;
	}
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp__gallery {
		position: sticky;
		top: 24px;
	}
}

/* Defuse BC plugin's flex/width/margin/position rules on the inner gallery
   wrappers (.bc-product__gallery, .bc-product-gallery__images) — we need
   these to be transparent and fill 100% width within our cream panel. */
body.single-bigcommerce_product .snugibo-pdp__gallery .bc-product__gallery,
body.single-bigcommerce_product .snugibo-pdp__gallery .bc-product-gallery__images {
	background: transparent !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	position: static !important;
	flex: initial !important;
	overflow: visible !important;
}

/* Hero swiper container — full width, no horizontal padding */
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-container"] {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}
/* Hero image — full container width, square aspect */
body.single-bigcommerce_product .snugibo-pdp__gallery .swiper-slide.bc-product-gallery__image-slide img {
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	display: block !important;
	aspect-ratio: 1/1;
	object-fit: cover;
}

/* Thumbnail strip — 80px tall, 12px gap, horizontal scroll, 16px top margin
   from hero, 16px bottom padding inside cream */
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] {
	margin-top: 16px;
	margin-bottom: 0;
	position: relative;
	width: 100%;
	overflow: hidden;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-wrapper,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumbs {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 12px;
	padding: 0 16px;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	transform: none !important;
	width: auto !important;
	max-width: 100vw;
	align-items: flex-start;
	margin: 0 !important;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-wrapper::-webkit-scrollbar,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumbs::-webkit-scrollbar {
	display: none;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide {
	flex: 0 0 80px !important;
	width: 80px !important;
	height: 80px !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	border-radius: 6px;
	overflow: hidden;
	cursor: pointer;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide img,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide.swiper-slide-active,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide.swiper-slide-thumb-active,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide.swiper-slide-active,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide.swiper-slide-thumb-active {
	outline: 2px solid var(--berry);
	outline-offset: -2px;
	opacity: 1;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide:not(.swiper-slide-active),
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide:not(.swiper-slide-active) {
	opacity: 0.7;
}

/* ============ 4. FORM CARD (price + form) — bordered conversion card ============
   Lovevery-style mobile architecture: this is the high-priority conversion
   block, visually unified by a 1px border + 16px radius + subtle shadow + 24px
   internal padding. White bg keeps it bright against the surrounding white
   page. data-js="bc-product-meta" hook stays on this wrapper. */
body.single-bigcommerce_product .snugibo-pdp__form-card {
	margin: 20px var(--side-pad) 0;
	padding: 24px;
	background: #FFFFFF;
	/* No border — was 1px solid var(--divider). Combined with the offset shadow
	   below, that border read as "two thin lines stacked" along the card's top
	   edge. Switching to shadow-only definition (Lovevery soft-card pattern)
	   eliminates the duplicate. */
	border: 0;
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(15, 15, 15, 0.05), 0 8px 24px rgba(15, 15, 15, 0.08);
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__form-card {
		grid-area: card;
		margin: 16px 0 0;
		padding: 28px;
	}
}

/* (Old benefit-bullets-inside-card rules are intentionally removed; the
   benefits now live OUTSIDE the card — see "BENEFITS (outer)" below.) */

/* Price row — sits at the top of the card, no border-bottom (the card border
   contains it). 0 top margin so it hugs the card's top edge. */
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row {
	margin: 0;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--divider);
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row > .bc-product__pricing--cached,
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row > .bc-product__pricing--api {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row .bc-product__price {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	color: var(--berry) !important;
	margin: 0 !important;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row .bc-product__price {
		font-size: 28px !important;
	}
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row .bc-product__retail-price,
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row .bc-product__original-price {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: #7A6F62 !important;
	text-decoration: line-through !important;
	margin: 0 !important;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-sold-out-label {
	display: none;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #7A6F62;
}
body.bc-availability-unavailable .snugibo-pdp__form-card .sn-sold-out-label {
	display: inline-flex;
}

/* Form (BC's <form class="bc-product-form">) — 0 top margin: the form is now
   the only direct child of .snugibo-pdp__form-card (price moved to title row),
   so it should hug the card's top padding edge. */
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;                     /* between options + actions */
}
/* Option fields stack with 20px gap (theme dropdown / name input) */
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__options {
	display: flex !important;
	flex-direction: column !important;
	gap: 20px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__option-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__option-label,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__quantity-label {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink);
	margin: 0;
	letter-spacing: 0;
	text-transform: none;
}
body.single-bigcommerce_product .snugibo-pdp__form-card select,
body.single-bigcommerce_product .snugibo-pdp__form-card input[type="text"],
body.single-bigcommerce_product .snugibo-pdp__form-card input[type="email"],
body.single-bigcommerce_product .snugibo-pdp__form-card input[type="number"] {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--ink);
	background: #FFFFFF;
	border: 1px solid #C9BBA8;
	border-radius: 8px;
	padding: 12px 14px;
	width: 100%;
	min-height: 48px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
body.single-bigcommerce_product .snugibo-pdp__form-card select {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8"><path fill="%235F5E5A" d="M6 8L0 0h12z"/></svg>');
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px;
	padding-right: 40px;
}
body.single-bigcommerce_product .snugibo-pdp__form-card select:focus,
body.single-bigcommerce_product .snugibo-pdp__form-card input:focus {
	outline: 0;
	border-color: var(--berry);
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.12);
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-personalization-hint,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__option-description {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: #7A6F62;
	margin: 6px 0 0;
	line-height: 1.5;
}

/* Quantity stepper + CTA — 16px gap between qty and CTA */
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-pdp-actions {
	display: flex !important;
	flex-direction: column !important;
	gap: 16px !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-pdp-quantity,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__quantity {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
}
body.single-bigcommerce_product .snugibo-pdp__form-card input.bc-product-form__quantity-input {
	width: 100px;
	min-height: 48px;
	text-align: center;
	font-size: 16px;
	font-weight: 600;
	border: 1px solid #C9BBA8;
	border-radius: 8px;
	padding: 0 12px;
}

/* Add-to-Cart button — full-width on mobile (and desktop in this layout) */
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn--add_to_cart,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn--form-submit,
body.single-bigcommerce_product .snugibo-pdp__form-card button.bc-btn,
body.single-bigcommerce_product .snugibo-pdp__form-card input.bc-btn[type="submit"],
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-pdp-actions .bc-btn {
	width: 100% !important;
	min-height: 52px !important;
	background: var(--berry) !important;
	color: #FFFFFF !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease, opacity 0.15s ease !important;
	box-shadow: 0 4px 12px rgba(216, 27, 61, 0.18);
	margin: 0 !important;
	padding: 14px 28px !important;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn--add_to_cart:hover,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn--form-submit:hover,
body.single-bigcommerce_product .snugibo-pdp__form-card button.bc-btn:hover {
	background: #B81832 !important;
	color: #FFFFFF !important;
	transform: translateY(-1px);
}
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn.sn-btn-disabled {
	background: #C9BBA8 !important;
	color: var(--muted) !important;
	cursor: not-allowed !important;
	box-shadow: none !important;
	transform: none !important;
	pointer-events: none !important;
}

/* (Old SKU-inside-card rules removed; SKU is now a sibling — see "META (outer)" below.) */

/* ============ 5. TRUST SIGNAL LINE (outer, between card and benefits) ============
   Thin muted line — no border, no card. Visually understated. */
body.single-bigcommerce_product .snugibo-pdp__trust {
	margin: 12px var(--side-pad) 0;
	padding: 0;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
	color: #7A6F62;
	text-align: left;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 4px;
}
body.single-bigcommerce_product .snugibo-pdp__trust .snugibo-pdp__trust-sep {
	color: #C9BBA8;
	user-select: none;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__trust {
		grid-area: trust;
		margin: 12px 0 0;
	}
}

/* ============ 6. BENEFITS (between title-block and form-card now) ============
   3 rows, icon + bold short phrase. Sits right under the tagline as the
   at-a-glance trust signal cluster, before the form-card. 16px top margin
   feels tight without crowding. */
body.single-bigcommerce_product .snugibo-pdp__benefits,
body.single-bigcommerce_product ul.snugibo-pdp__benefits {
	list-style: none;
	padding: 0;
	margin: 16px var(--side-pad) 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
body.single-bigcommerce_product .snugibo-pdp__benefits .sn-pdp-benefit {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--ink);
}
body.single-bigcommerce_product .snugibo-pdp__benefits .sn-pdp-benefit-icon {
	flex-shrink: 0;
	font-size: 18px;
	line-height: 1.3;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__benefits,
	body.single-bigcommerce_product ul.snugibo-pdp__benefits {
		grid-area: benefits;
		margin: 24px 0 0;
	}
}

/* ============ 4b. PRICE BLOCK (below benefits) ============ */
body.single-bigcommerce_product .snugibo-pdp__price-block {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding: 0 var(--side-pad);
	margin: 8px 0 0;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__price-block {
		grid-area: price;
		padding: 0;
	}
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__preorder {
		grid-area: preorder;
	}
	body.single-bigcommerce_product .snugibo-pdp__shipping {
		grid-area: shipping;
	}
}

/* ============ 7. META (outer, below benefits — brand + SKU) ============
   Small, muted, top border (separates from benefits). */
body.single-bigcommerce_product .snugibo-pdp__meta {
	margin: 24px var(--side-pad) 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--divider);
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: #7A6F62;
}
body.single-bigcommerce_product .snugibo-pdp__meta .bc-product__brand,
body.single-bigcommerce_product .snugibo-pdp__meta .bc-product__sku,
body.single-bigcommerce_product .snugibo-pdp__meta .bc-product-single__meta-sku {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	color: #7A6F62 !important;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__meta {
		grid-area: meta;
		margin: 24px 0 0;
	}
}

/* ============ 8. WHAT'S INCLUDED — native <details>/<summary> ============
   Renamed from "Product Description" and converted to a tap-to-expand
   collapsible. Now uses HTML5 <details>/<summary> for native browser-driven
   open/close — zero JS dependency, zero failure modes related to script
   execution. Browser handles aria-expanded, keyboard activation, and the
   open/close toggle automatically.

   Wrapper sits full-width on mobile (block in DOM order) and spans both
   grid columns on desktop ("description description"). */
body.single-bigcommerce_product .snugibo-pdp__description {
	padding: 0;
	margin: 16px 0 0;
	background: transparent;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__description {
		grid-area: description;
		padding: 0;
		margin: 16px 0 0;
	}
}

/* The clickable summary row — full-width, 56px tall (above 48px tap-target
   floor), top + bottom 1px --divider borders, 16px vertical / 24px horizontal
   padding. Edge-to-edge on mobile so the borders stretch the viewport. */
body.single-bigcommerce_product .snugibo-pdp__accordion-summary {
	box-sizing: border-box;
	display: flex;
	width: 100%;
	min-height: 56px;
	padding: 16px var(--side-pad);
	border-top: 1px solid var(--divider);
	border-bottom: 1px solid var(--divider);
	background: transparent;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.3;
	color: var(--ink);
	text-align: left;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	transition: background-color 0.15s ease;
	/* Suppress the default disclosure-triangle marker — we use a custom chevron */
	list-style: none;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-summary::-webkit-details-marker { display: none; }
body.single-bigcommerce_product .snugibo-pdp__accordion-summary::marker { content: ''; }
body.single-bigcommerce_product .snugibo-pdp__accordion-summary:hover {
	background-color: rgba(15, 15, 15, 0.025);
}
body.single-bigcommerce_product .snugibo-pdp__accordion-summary:focus-visible {
	outline: 2px solid var(--berry);
	outline-offset: -2px;
}

body.single-bigcommerce_product .snugibo-pdp__accordion-label {
	flex: 1 1 auto;
	min-width: 0;
}

/* Chevron — rotates 180° when <details> is open. */
body.single-bigcommerce_product .snugibo-pdp__accordion-chevron {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	color: var(--muted);
	transition: transform 250ms cubic-bezier(.4, 0, .2, 1);
}
body.single-bigcommerce_product .snugibo-pdp__accordion[open] .snugibo-pdp__accordion-chevron {
	transform: rotate(180deg);
}

/* Content body — only rendered (per native <details> behavior) when the
   accordion is open. */
body.single-bigcommerce_product .snugibo-pdp__accordion-content {
	padding: 16px var(--side-pad) 24px;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-content p {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
	color: var(--body) !important;
	margin: 0 0 14px !important;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-content p:last-child { margin-bottom: 0 !important; }
body.single-bigcommerce_product .snugibo-pdp__accordion-content ul,
body.single-bigcommerce_product .snugibo-pdp__accordion-content ol {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: var(--body);
	padding-left: 22px;
	margin: 0 0 14px;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-content li { margin-bottom: 6px; }

@media (prefers-reduced-motion: reduce) {
	body.single-bigcommerce_product .snugibo-pdp__accordion-chevron {
		transition: none !important;
	}
}

/* ============ 9. SPECIFICATIONS BLOCK — HIDDEN ============
   BC's product-specs.php emits "Specifications / Weight: 1 kg" which is
   redundant on the product page (shipping + weight are calculated at
   checkout). The PHP override wraps the [$specs] echo in our own
   .snugibo-pdp__specs-wrapper which we hide here. Markup stays in the DOM
   for SEO / structured-data purposes. */
body.single-bigcommerce_product .snugibo-pdp__specs-wrapper {
	display: none !important;
}

/* ============ POLISH ROUND v2.0.9 ============
   Six tightening fixes targeting issues confirmed in the live HTML diff. */

/* (Fix 2) Hide the SKU/brand meta line. The user wants "SKU: 111-BE" gone;
   the .snugibo-pdp__meta wrapper holds both brand and SKU and is the cleanest
   single hide point. Markup stays for re-enable. */
body.single-bigcommerce_product .snugibo-pdp__meta,
body.single-bigcommerce_product .sn-pdp-meta-fine {
	display: none !important;
}

/* (Fix 3) Remove BOTH horizontal lines under the price. Live HTML reveals BC
   plugin renders TWO <p> elements inside .bc-product__pricing —
   .bc-product__pricing--cached (the visible $69.00) AND .bc-product__pricing--api
   (an empty MSRP/sale wrapper containing struck-through MSRP/retail/sale
   spans). The empty struck spans render as thin horizontal lines stacked
   under the price. Hide the entire --api wrapper and any empty retail/sale
   span as defense. */
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--api {
	display: none !important;
}
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__retail-price,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__price--sale,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__price--base,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__original-price {
	/* Empty by default for products without sale/MSRP — hide them so they don't
	   render as thin struck-through lines. */
	display: none !important;
}

/* REGRESSION FIX (v2.1.3): force the cached price paragraph + the visible
   .bc-product__price span to stay visible regardless of what BC's price-API
   verification JS does. BC's frontend toggles --visible between the cached
   and api paragraphs after the API call resolves; combined with our blanket
   --api hide above, the price would otherwise disappear after BC's resolve.
   These !important rules pin the cached + visible price element on screen.
   Scoped tightly to .snugibo-pdp__price-block so they don't bleed elsewhere. */
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached.bc-product__pricing--visible,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached:not(.bc-product__pricing--visible) {
	display: inline-flex !important;
	visibility: visible !important;
	opacity: 1 !important;
	width: auto !important;
	height: auto !important;
}
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached .bc-product__price,
body.single-bigcommerce_product .snugibo-pdp__price-block > .bc-product__pricing > .bc-product__pricing--cached .bc-product__price {
	display: inline !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* (Fix 4) Hide the TODO tagline placeholder. Markup retained so re-enable is
   trivial once the BC custom field 'product_tagline' is wired. */
body.single-bigcommerce_product .sn-pdp-tagline {
	display: none !important;
}

/* (Fix 5 + 6) Close the empty cream stripes — between accordion and reviews,
   and below "Write a Review". The cream tint comes from
   `body.single-bigcommerce_product { background: #FAF6EF }` (style.css:2365)
   showing through transparent gaps. Switching the body background to white
   on the product page makes ALL such gaps render as white instead of cream
   — fixes both stripes with one rule. The cream gallery panel itself keeps
   its --peach background via the rule on .snugibo-pdp__gallery (unaffected). */
body.single-bigcommerce_product {
	background: #FFFFFF !important;
}
/* Also tighten the reviews section's vertical breathing — the legacy 48px
   margin-top + 32px padding-top = 80px gap above reviews was a major
   contributor to the visible stripe. Cut to 24px + 24px. */
body.single-bigcommerce_product .bc-product-reviews__header,
body.single-bigcommerce_product .bc-product-review-form-wrapper {
	margin-top: 24px !important;
	padding-top: 24px !important;
}
/* And tighten the .qb-main bottom padding since the review-form wrapper
   already provides its own breathing — 48-80px below review form was
   creating the second cream stripe. */
body.single-bigcommerce_product .qb-main {
	padding-bottom: 24px !important;
}

.sn-logo-wordmark {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ink, #0F0F0F);
	line-height: 1;
}
@media (min-width: 768px) {
	.sn-logo-wordmark { font-size: 18px; }
}
.sn-logo-link.sn-logo-link--text {
	min-height: 0;
	padding: 0;
	text-decoration: none;
}
.sn-logo-link.sn-logo-link--text:hover .sn-logo-wordmark,
.sn-logo-link.sn-logo-link--text:focus-visible .sn-logo-wordmark {
	color: var(--berry, #D81B3D);
}

/* iOS Safari: prevent zoom-on-focus by keeping form input font-size ≥ 16px */
@media (max-width: 767px) {
	body.single-bigcommerce_product .snugibo-pdp__form-card input,
	body.single-bigcommerce_product .snugibo-pdp__form-card select,
	body.single-bigcommerce_product .snugibo-pdp__form-card textarea {
		font-size: 16px !important;
	}
}

/* ============ BC variant-change AJAX SINK ============
   Hidden bin where BC's frontend JS can write variant meta HTML on every
   variant change without disrupting our visible price/title/form layout.
   Uses both the hidden attribute and explicit display:none for defense. */
body.single-bigcommerce_product .snugibo-pdp__bc-meta-sink,
body.single-bigcommerce_product .snugibo-pdp [data-js="bc-product-meta"].snugibo-pdp__bc-meta-sink {
	display: none !important;
	visibility: hidden;
	width: 0;
	height: 0;
	overflow: hidden;
	pointer-events: none;
}

/* ========================= SLIDE-IN CART DRAWER ========================= */

.sn-cart-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 9998;
	opacity: 0;
	visibility: hidden;
	transition: opacity 200ms ease-in, visibility 0s linear 200ms;
	-webkit-tap-highlight-color: transparent;
}
.sn-cart-backdrop.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity 250ms ease-out, visibility 0s linear;
}

.sn-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
	transform: translateX(100%);
	transition: transform 200ms ease-in;
	overflow: hidden;
}
.sn-cart-drawer.is-open {
	transform: translateX(0);
	transition: transform 250ms ease-out;
}
@media (min-width: 768px) {
	.sn-cart-drawer { max-width: 420px; }
}

body.sn-cart-open { overflow: hidden; }

.sn-cart-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid var(--qb-outline, #C9BBA8);
	flex-shrink: 0;
}
.sn-cart-drawer__title {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 600;
	color: var(--qb-text, #3A332C);
	letter-spacing: -0.01em;
}
.sn-cart-drawer__close {
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	color: var(--qb-text-soft, #7A6F62);
	line-height: 1;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background 0.15s ease;
	flex-shrink: 0;
}
.sn-cart-drawer__close:hover { background: rgba(0, 0, 0, 0.05); }

.sn-cart-drawer__body {
	flex: 1;
	overflow-y: auto;
	padding: 0 24px;
	-webkit-overflow-scrolling: touch;
}

.sn-cart-drawer__empty {
	text-align: center;
	padding: 48px 24px;
	color: var(--qb-text-soft, #7A6F62);
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	line-height: 1.5;
}
.sn-cart-drawer__loading {
	padding: 32px 24px;
	text-align: center;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
}

.sn-cart-drawer__footer {
	flex-shrink: 0;
	padding: 16px 24px 24px;
	border-top: 1px solid var(--qb-outline, #C9BBA8);
	text-align: center;
}
.sn-cart-drawer__subtotal-row { margin-bottom: 16px; }

.sn-cart-drawer__checkout {
	display: flex;
	width: 100%;
	padding: 14px 24px;
	background: #D81B3D;
	color: #fff;
	text-align: center;
	text-decoration: none;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.3px;
	border-radius: 4px;
	border: none;
	cursor: pointer;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: background 0.15s ease;
}
.sn-cart-drawer__checkout:hover {
	background: #B5152F;
	color: #fff;
}

.sn-cart-drawer__continue {
	display: inline-block;
	margin-top: 12px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
	background: none;
	border: none;
	cursor: pointer;
	text-decoration: underline;
	padding: 4px;
}
.sn-cart-drawer__continue:hover { color: var(--qb-text, #3A332C); }

/* ---- BC mini cart content overrides inside drawer ---- */

.sn-cart-drawer__body .bc-cart,
.sn-cart-drawer__body .bc-mini-cart {
	background: none;
	border-radius: 0;
	border: none;
	box-shadow: none;
	padding: 0;
	margin: 0;
}

.sn-cart-drawer__body .bc-cart-header,
.sn-cart-drawer__body .bc-cart-actions {
	display: none;
}

.sn-cart-drawer__body .bc-cart-item {
	display: grid;
	grid-template-columns: 80px 1fr auto;
	gap: 0 12px;
	padding: 16px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	align-items: start;
}
.sn-cart-drawer__body .bc-cart-item:last-of-type { border-bottom: none; }

.sn-cart-drawer__body .bc-cart-item-image {
	grid-column: 1;
	grid-row: 1 / 3;
	width: 80px;
}
.sn-cart-drawer__body .bc-cart-item-image img {
	width: 100%;
	height: auto;
	border-radius: 6px;
	object-fit: cover;
	background: var(--qb-cream, #FAF6EF);
}
.sn-cart-drawer__body .bc-product__thumbnail-link { display: block; }

.sn-cart-drawer__body .bc-cart-item__remove-button {
	display: inline-block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--qb-text-soft, #7A6F62);
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
	font-family: 'Inter', sans-serif;
}
.sn-cart-drawer__body .bc-cart-item__remove-button:hover { color: #D81B3D; }

.sn-cart-drawer__body .bc-cart-item-meta {
	grid-column: 2 / 4;
	min-width: 0;
}
.sn-cart-drawer__body .bc-cart-item__product-title {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 4px;
	color: var(--qb-text, #3A332C);
}
.sn-cart-drawer__body .bc-product__title-link {
	color: var(--qb-text, #3A332C);
	text-decoration: none;
}
.sn-cart-drawer__body .bc-product__title-link:hover { color: var(--qb-pink-deep, #C97A80); }

.sn-cart-drawer__body .bc-cart-item__product-brand {
	display: block;
	font-size: 12px;
	color: var(--qb-text-soft, #7A6F62);
	margin-bottom: 4px;
	font-family: 'Inter', sans-serif;
}
.sn-cart-drawer__body .bc-cart-item__product-options { margin-bottom: 4px; }
.sn-cart-drawer__body .bc-cart-item__product-option {
	display: block;
	font-size: 12px;
	color: var(--qb-text-soft, #7A6F62);
	font-family: 'Inter', sans-serif;
	line-height: 1.4;
}
.sn-cart-drawer__body .bc-cart-item__product-option-label { font-weight: 500; }

.sn-cart-drawer__body .bc-cart-item-quantity {
	grid-column: 2;
	margin-top: 8px;
	align-self: center;
}
.sn-cart-drawer__body .bc-cart-item-total-price {
	grid-column: 3;
	margin-top: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--qb-text, #3A332C);
	white-space: nowrap;
	text-align: right;
	align-self: center;
}

/* Quantity stepper (−/+/input injected by JS) */
.sn-qty-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--qb-outline, #C9BBA8);
	border-radius: 4px;
	overflow: hidden;
}
.sn-qty-stepper__btn {
	width: 32px;
	height: 32px;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 16px;
	color: var(--qb-text, #3A332C);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: background 0.1s ease;
}
.sn-qty-stepper__btn:hover { background: rgba(0, 0, 0, 0.04); }

.sn-qty-stepper .bc-cart-item__quantity-input {
	width: 40px;
	height: 32px;
	border: none;
	border-left: 1px solid var(--qb-outline, #C9BBA8);
	border-right: 1px solid var(--qb-outline, #C9BBA8);
	text-align: center;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text, #3A332C);
	padding: 0;
	-moz-appearance: textfield;
	appearance: textfield;
}
.sn-qty-stepper .bc-cart-item__quantity-input::-webkit-inner-spin-button,
.sn-qty-stepper .bc-cart-item__quantity-input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Subtotal in drawer footer */
.sn-cart-drawer__footer .bc-cart-subtotal {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--qb-text, #3A332C);
	margin: 0;
	padding: 0;
}
.sn-cart-drawer__footer .bc-cart-subtotal__label { font-weight: 500; }
.sn-cart-drawer__footer .bc-cart-subtotal__amount { font-weight: 700; }

/* ========================= 8. PRE-ORDER INFO CARD ========================= */

body.single-bigcommerce_product .snugibo-pdp__preorder {
	border: 1.5px solid var(--qb-outline, #C9BBA8);
	border-radius: 12px;
	background: var(--qb-cream, #FAF6EF);
	padding: 20px;
	margin-top: 20px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-heading {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--qb-text, #3A332C);
	line-height: 1.45;
	margin: 0 0 14px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-shipping {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: var(--qb-text-soft, #7A6F62);
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--qb-outline, #C9BBA8);
}
body.single-bigcommerce_product .snugibo-pdp__preorder-icon {
	flex-shrink: 0;
	color: var(--qb-text-soft, #7A6F62);
}
body.single-bigcommerce_product .snugibo-pdp__preorder-batch {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-batch-name {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--qb-text, #3A332C);
}
body.single-bigcommerce_product .snugibo-pdp__preorder-badge {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: #D81B3D;
	color: #fff;
	padding: 3px 8px;
	border-radius: 4px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-status {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-status-open {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #2E7D32;
	letter-spacing: 0.04em;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-sellout {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: var(--qb-text-soft, #7A6F62);
}

/* ========================= 11. SHIPPING ACCORDION ========================= */

body.single-bigcommerce_product .snugibo-pdp__shipping {
	margin-top: 12px;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-icon {
	vertical-align: -3px;
	margin-right: 6px;
	flex-shrink: 0;
}

/* ========================= SHARED: PDP section headings ========================= */

body.single-bigcommerce_product .snugibo-pdp__section-heading {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 26px;
	font-weight: 700;
	color: var(--qb-text, #3A332C);
	text-align: center;
	margin: 0 0 24px;
	letter-spacing: -0.01em;
	line-height: 1.2;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__section-heading {
		font-size: 32px;
	}
}

/* ========================= 12. THEME NAVIGATOR ========================= */

body.single-bigcommerce_product .snugibo-pdp__theme-navigator {
	max-width: 800px;
	margin: 48px auto 0;
	padding: 0 16px;
}
body.single-bigcommerce_product .snugibo-pdp__theme-tabs {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 4px;
	margin-bottom: 24px;
	scrollbar-width: none;
}
body.single-bigcommerce_product .snugibo-pdp__theme-tabs::-webkit-scrollbar { display: none; }

body.single-bigcommerce_product .snugibo-pdp__theme-tab {
	flex: 1 0 auto;
	padding: 10px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--qb-text-soft, #7A6F62);
	background: none;
	border: 1.5px solid var(--qb-outline, #C9BBA8);
	border-radius: 8px;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
body.single-bigcommerce_product .snugibo-pdp__theme-tab:hover {
	border-color: var(--qb-text-soft, #7A6F62);
	color: var(--qb-text, #3A332C);
}
body.single-bigcommerce_product .snugibo-pdp__theme-tab.is-active {
	border-color: #D81B3D;
	color: #D81B3D;
	background: rgba(216, 27, 61, 0.04);
}

body.single-bigcommerce_product .snugibo-pdp__theme-panel {
	animation: snFadeIn 0.25s ease;
}
@keyframes snFadeIn {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}
body.single-bigcommerce_product .snugibo-pdp__theme-name {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: var(--qb-text, #3A332C);
	margin: 0 0 6px;
}
body.single-bigcommerce_product .snugibo-pdp__theme-desc {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
	line-height: 1.5;
	margin: 0 0 16px;
}
body.single-bigcommerce_product .snugibo-pdp__theme-media {
	position: relative;
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	background: var(--qb-cream, #FAF6EF);
	aspect-ratio: 16 / 10;
}
body.single-bigcommerce_product .snugibo-pdp__theme-poster,
body.single-bigcommerce_product .snugibo-pdp__theme-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ========================= 13. PAGE ADVENTURES ========================= */

body.single-bigcommerce_product .snugibo-pdp__page-adventures {
	max-width: 800px;
	margin: 48px auto 0;
	padding: 0 16px;
}
body.single-bigcommerce_product .snugibo-pdp__adventures-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__adventures-grid {
		grid-template-columns: 1fr 1fr;
		gap: 20px;
	}
}
body.single-bigcommerce_product .snugibo-pdp__adventure-card {
	background: #fff;
	border: 1px solid var(--qb-outline, #C9BBA8);
	border-radius: 16px;
	padding: 0;
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
body.single-bigcommerce_product .snugibo-pdp__adventure-card:hover {
	box-shadow: var(--qb-shadow-card, 0 4px 16px rgba(42, 38, 32, 0.06));
	transform: translateY(-2px);
}
body.single-bigcommerce_product .snugibo-pdp__adventure-img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}
body.single-bigcommerce_product .snugibo-pdp__adventure-title {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: var(--qb-text, #3A332C);
	margin: 16px 20px 4px;
}
body.single-bigcommerce_product .snugibo-pdp__adventure-desc {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
	line-height: 1.5;
	margin: 0 20px 20px;
}

/* ========================= 14. REVIEWS WALL ========================= */

body.single-bigcommerce_product .snugibo-pdp__reviews-wall {
	max-width: 900px;
	margin: 48px auto 0;
	padding: 0 16px;
	text-align: center;
}
body.single-bigcommerce_product .snugibo-pdp__reviews-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 8px;
}
body.single-bigcommerce_product .snugibo-pdp__reviews-stars {
	color: #D81B3D;
	font-size: 16px;
	letter-spacing: 2px;
}
body.single-bigcommerce_product .snugibo-pdp__reviews-eyebrow-text {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--qb-text-soft, #7A6F62);
	letter-spacing: 0.02em;
}
body.single-bigcommerce_product .snugibo-pdp__reviews-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-top: 24px;
	text-align: left;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__reviews-grid {
		grid-template-columns: 1fr 1fr 1fr;
		gap: 20px;
	}
}
body.single-bigcommerce_product .snugibo-pdp__review-card {
	background: var(--qb-cream, #FAF6EF);
	border-radius: 16px;
	padding: 24px;
}
body.single-bigcommerce_product .snugibo-pdp__review-stars {
	color: #D81B3D;
	font-size: 14px;
	letter-spacing: 2px;
	margin-bottom: 10px;
}
body.single-bigcommerce_product .snugibo-pdp__review-headline {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: var(--qb-text, #3A332C);
	margin: 0 0 8px;
}
body.single-bigcommerce_product .snugibo-pdp__review-body {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
	line-height: 1.55;
	margin: 0 0 12px;
}
body.single-bigcommerce_product .snugibo-pdp__review-name {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-style: italic;
	color: var(--qb-text-soft, #7A6F62);
}

/* ========================= 15. EXPANDED FOOTER ========================= */

.sn-footer {
	background: #fff !important;
	padding: 0 !important;
}
.sn-footer-accent {
	height: 14px;
	background: #DCE6CC;
}
.sn-footer-expanded {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	text-align: center;
	max-width: 1280px;
	margin: 0 auto;
	padding: 48px 16px 24px;
}
.sn-footer-top {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
	width: 100%;
}
@media (min-width: 768px) {
	.sn-footer-expanded { padding: 48px 32px 24px; }
	.sn-footer-top {
		flex-direction: row;
		align-items: start;
		justify-content: space-between;
		text-align: left;
	}
	.sn-footer-brand { align-items: flex-start; }
}
.sn-footer-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}
.sn-footer-care__heading {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ink, #0F0F0F);
	margin: 0 0 12px;
}
.sn-footer-care__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.sn-footer-care__list a {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--body, #3A3A38);
	text-decoration: none;
	line-height: 1.6;
	transition: color 0.15s ease;
}
.sn-footer-care__list a:hover {
	color: var(--berry, #D81B3D);
}
.sn-footer-payment {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	width: 100%;
}
.sn-footer-payment__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ========================= ROUND 1.5 FIXES ========================= */

/* (Issue 2) Hide the BC default "0 reviews" header — we have our own reviews wall. */
body.single-bigcommerce_product .bc-product-reviews__header {
	display: none !important;
}

/* (Issue 4) Theme tabs — 2×2 grid on mobile so all 4 fit without clipping. */
@media (max-width: 767px) {
	body.single-bigcommerce_product .snugibo-pdp__theme-tabs {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		overflow-x: visible;
	}
	body.single-bigcommerce_product .snugibo-pdp__theme-tab {
		white-space: normal;
		text-align: center;
	}
}
/*
Theme Name: Snugibo Child
Theme URI:
Author: Snugibo
Author URI:
Description: Cottagecore child theme for Snugibo — handmade personalized felt quiet books. Cream + soft-pink + sage palette. Block theme child of Twenty Twenty-Five. TODO: rename to {{NEW_BRAND}}-child after rebrand lands.
Requires at least: 6.9
Tested up to: 6.9
Requires PHP: 5.7
Version: 2.1.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Template: twentytwentyfive
Text Domain: snugibo
Tags: e-commerce, cottagecore, cream, full-site-editing, block-patterns, custom-colors, custom-typography
*/

:root {
    --qb-cream: #FAF6EF;
    --qb-ivory: #FFFCF7;
    --qb-beige: #EFE6D6;
    --qb-cream-deep: #EFE6D6;
    --qb-text: #3A332C;
    --qb-text-soft: #7A6F62;
    --qb-outline: #C9BBA8;
    --qb-pink: #E9C7C2;
    --qb-soft-pink: #E9C7C2;
    --qb-pink-deep: #C97A80;
    --qb-pink-soft: #F5D8DA;
    --qb-sage: #A8B89A;
    --qb-sage-soft: #D4DECE;
    --qb-rose: #D4A5A5;
    --qb-shadow-soft: 0 10px 30px rgba(201, 122, 128, 0.10);
    --qb-shadow-card: 0 4px 16px rgba(42, 38, 32, 0.06);
    --qb-shadow-button: 0 4px 12px rgba(232, 180, 184, 0.45);
}

body {
    background-color: var(--qb-cream);
    color: var(--qb-text);
    font-family: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    font-size: 16px;
    line-height: 1.6;
}

h1, h2,
.wp-block-heading.has-headline-xl-font-size,
.wp-block-heading.has-headline-lg-font-size {
    font-family: "Playfair Display", "Cormorant Garamond", Georgia, "Times New Roman", serif;
    color: var(--qb-text);
    letter-spacing: -0.01em;
}
h3, h4, h5, h6,
.wp-block-heading.has-headline-md-font-size,
.wp-block-heading.has-body-lg-font-size {
    font-family: "Be Vietnam Pro", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
    color: var(--qb-text);
}

h1, .has-headline-xl-font-size { font-weight: 500; letter-spacing: -0.01em; line-height: 1.15; }
h2, .has-headline-lg-font-size { font-weight: 500; line-height: 1.15; }
h3, .has-headline-md-font-size { font-weight: 600; }

a { color: var(--qb-pink-deep); text-decoration: none; transition: color .2s ease; }
a:hover { color: var(--qb-text); }

.wp-block-button__link {
    background-color: var(--qb-pink);
    color: var(--qb-text);
    border-radius: 999px;
    padding: 14px 28px;
    font-family: "Be Vietnam Pro", sans-serif;
    font-weight: 700;
    font-size: 15px;
    letter-spacing: 0.01em;
    box-shadow: var(--qb-shadow-button);
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
}
.wp-block-button__link:hover { transform: translateY(-1px); filter: brightness(1.05); }
.wp-block-button__link:active { transform: translateY(0) scale(.98); }

.wp-block-button.is-style-outline .wp-block-button__link {
    background: transparent;
    color: var(--qb-text);
    border: 2px solid var(--qb-outline);
    box-shadow: none;
}
.wp-block-button.is-style-outline .wp-block-button__link:hover {
    border-color: var(--qb-pink-deep);
    color: var(--qb-pink-deep);
}

.qb-card {
    background: var(--qb-ivory);
    border: 1px solid var(--qb-cream-deep);
    border-radius: 24px;
    box-shadow: var(--qb-shadow-card);
    overflow: hidden;
    transition: transform .25s ease, box-shadow .25s ease;
}
.qb-card:hover { transform: translateY(-4px); box-shadow: var(--qb-shadow-soft); }

.qb-badge {
    display: inline-block;
    padding: 6px 14px;
    border-radius: 999px;
    font-family: "Be Vietnam Pro", sans-serif;
    font-weight: 600;
    font-size: 12px;
    letter-spacing: 0.04em;
}
.qb-badge--pink   { background: var(--qb-pink-soft); color: var(--qb-pink-deep); }
.qb-badge--sage   { background: var(--qb-sage-soft); color: #3F5236; }
.qb-badge--rose   { background: #F0D9D9; color: #8C4A4A; }

/* Gingham ribbon — soft pink check, used as section dividers / accents */
.qb-gingham {
    height: 14px;
    background-color: var(--qb-pink-soft);
    background-image:
        linear-gradient(45deg, var(--qb-pink) 25%, transparent 25%, transparent 75%, var(--qb-pink) 75%),
        linear-gradient(45deg, var(--qb-pink) 25%, transparent 25%, transparent 75%, var(--qb-pink) 75%);
    background-size: 14px 14px;
    background-position: 0 0, 7px 7px;
    opacity: 0.7;
}

.qb-section { padding: 64px 32px; }
@media (max-width: 768px) { .qb-section { padding: 40px 20px; } }

/* ============================================================
   Image fitting — global safety net + targeted aspect ratios
   Scoped to .qb-main / theme containers so BC checkout iframes
   are never affected.
   ============================================================ */
.qb-main img,
.qb-hero img,
.qb-bestseller img,
.qb-collections img,
.qb-lifestyle img,
.qb-reviews img,
.qb-footer img {
	max-width: 100%;
	height: auto;
}

/* Hero photo: square in split layout, soft cover-fit so it never distorts */
.qb-hero-art-frame {
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.qb-hero-art-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Bestseller product hero: 1:1 cover-fit */
.qb-product-hero-art-frame {
	aspect-ratio: 1 / 1;
	overflow: hidden;
}
.qb-product-hero-art-frame img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* Lifestyle strip: 16:9 desktop, 4:5 mobile, never letterbox */
.qb-lifestyle-img {
	aspect-ratio: 16 / 9;
	min-height: 0;
	overflow: hidden;
}
.qb-lifestyle-img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	min-height: 0;
}
@media (max-width: 900px) {
	.qb-lifestyle-img { aspect-ratio: 4 / 5; }
}

/* BigCommerce product images — single + archive — locked to 1:1 cover */
.bc-product-card__image,
.bc-product__image,
.bc-product-card__image-link,
.bc-product__image-link,
.bc-product__images,
.bc-product-single__images {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	display: block;
}
.bc-product-card__image img,
.bc-product__image img,
.bc-product__images img,
.bc-product-single__images img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ============================================================
   Header
   ============================================================ */
.qb-header { position: sticky; top: 0; z-index: 50; backdrop-filter: blur(8px); }
.qb-header .wp-block-site-title a { color: var(--qb-text); text-decoration: none; }
.qb-logo-link { display: inline-flex; align-items: center; text-decoration: none; }
.qb-logo {
	display: inline-block;
	width: 132px;
	height: 36px;
	-webkit-mask-image: url('assets/snugibo-logo.png');
	        mask-image: url('assets/snugibo-logo.png');
	-webkit-mask-size: contain;
	        mask-size: contain;
	-webkit-mask-repeat: no-repeat;
	        mask-repeat: no-repeat;
	-webkit-mask-position: left center;
	        mask-position: left center;
	background-color: var(--qb-pink-deep);
	transition: background-color .15s ease;
}
.qb-logo-link:hover .qb-logo { background-color: var(--qb-text); }
@media (max-width: 480px) { .qb-logo { width: 108px; height: 30px; } }
.qb-nav { display: flex; align-items: center; gap: 28px; }
.qb-nav-link {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 15px; font-weight: 500;
	color: var(--qb-text-soft); text-decoration: none;
	transition: color .15s ease;
}
.qb-nav-link:hover { color: var(--qb-pink-deep); }

/* Mobile hamburger — CSS-only via <details> */
.qb-nav-mobile { display: none; position: relative; }
.qb-nav-mobile > summary {
	list-style: none;
	cursor: pointer;
	width: 44px; height: 44px;
	display: inline-flex; align-items: center; justify-content: center;
	border-radius: 999px;
	color: var(--qb-text);
	transition: background .15s ease;
}
.qb-nav-mobile > summary::-webkit-details-marker { display: none; }
.qb-nav-mobile > summary:hover,
.qb-nav-mobile[open] > summary { background: var(--qb-cream-deep); }
.qb-nav-mobile-panel {
	position: absolute; top: calc(100% + 12px); left: 0;
	min-width: 200px;
	background: var(--qb-ivory);
	border: 1px solid var(--qb-cream-deep);
	border-radius: 16px;
	box-shadow: var(--qb-shadow-soft);
	padding: 8px;
	display: flex; flex-direction: column; gap: 2px;
	z-index: 60;
}
.qb-nav-mobile-link {
	display: block;
	padding: 12px 16px;
	border-radius: 10px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 15px; font-weight: 500;
	color: var(--qb-text); text-decoration: none;
	min-height: 44px; line-height: 20px;
}
.qb-nav-mobile-link:hover { background: var(--qb-cream-deep); color: var(--qb-pink-deep); }

@media (max-width: 768px) {
	.qb-nav { display: none; }
	.qb-nav-mobile { display: inline-flex; }
}
.qb-icon-btn {
	display: inline-flex; align-items: center; justify-content: center;
	width: 40px; height: 40px; border-radius: 999px;
	color: var(--qb-text); background: transparent; transition: background .15s ease, transform .15s ease;
	position: relative;
}
.qb-icon-btn:hover { background: var(--qb-cream-deep); }
.qb-icon-btn:active { transform: scale(.94); }
.qb-cart-count {
	position: absolute; top: 4px; right: 4px;
	min-width: 16px; height: 16px; padding: 0 4px;
	background: var(--qb-pink-deep); color: #fff;
	font-family: "Be Vietnam Pro", sans-serif; font-size: 10px; font-weight: 700;
	border-radius: 999px; display: inline-flex; align-items: center; justify-content: center;
}

/* ============================================================
   Hero — Brand
   ============================================================ */
.qb-hero-eyebrow {
	display: inline-flex; align-items: center; gap: 10px;
	padding: 8px 16px; border-radius: 999px;
	background: var(--qb-pink-soft); color: var(--qb-pink-deep);
	font-family: "Be Vietnam Pro", sans-serif; font-size: 12px; font-weight: 700;
	letter-spacing: 0.12em; text-transform: uppercase;
}
.qb-dot { width: 6px; height: 6px; border-radius: 999px; background: var(--qb-pink-deep); }

.qb-hero-meta { display: flex; flex-wrap: wrap; gap: 18px; margin-top: 28px; }
.qb-hero-meta-item {
	display: inline-flex; align-items: center; gap: 8px;
	color: var(--qb-text-soft); font-size: 14px;
}
.qb-hero-meta-item svg { color: var(--qb-sage); flex-shrink: 0; }

.qb-hero-art { position: relative; padding: 24px; }
.qb-hero-art-gingham {
	position: absolute; top: 0; right: 0; width: 70%; height: 70%;
	border-radius: 32px; opacity: 0.5; z-index: 0;
	background-image:
		repeating-linear-gradient(45deg, var(--qb-pink) 0 10px, transparent 10px 20px),
		repeating-linear-gradient(-45deg, var(--qb-pink) 0 10px, transparent 10px 20px);
	background-blend-mode: multiply;
	filter: opacity(0.18);
}
.qb-hero-art-frame {
	position: relative; z-index: 1;
	border-radius: 32px; overflow: hidden;
	background: linear-gradient(135deg, #FFFCF7 0%, #F5D8DA 100%);
	border: 8px solid #fff;
	box-shadow: var(--qb-shadow-soft);
}
.qb-hero-art-frame img { display: block; width: 100%; height: auto; }
.qb-hero-art-tag {
	position: absolute; bottom: -12px; left: -12px; z-index: 2;
	background: #fff; padding: 14px 18px; border-radius: 18px;
	box-shadow: var(--qb-shadow-card);
	border: 1px dashed rgba(107, 95, 82, 0.3);
}
.qb-hero-art-tag-label {
	display: block; font-family: "Be Vietnam Pro", sans-serif; font-size: 11px;
	font-weight: 700; letter-spacing: 0.14em; text-transform: uppercase;
	color: var(--qb-sage); margin-bottom: 2px;
}
.qb-hero-art-tag strong {
	font-family: "Be Vietnam Pro", sans-serif; font-size: 16px; font-weight: 800; color: var(--qb-text);
}

/* ============================================================
   Trust Bar
   ============================================================ */
.qb-trust-list {
	display: flex; flex-wrap: wrap; justify-content: space-between; align-items: center;
	gap: 24px; list-style: none; margin: 0; padding: 0;
}
.qb-trust-list li {
	display: inline-flex; align-items: center; gap: 10px;
	color: var(--qb-text-soft); font-size: 14px;
	font-family: "Be Vietnam Pro", sans-serif; font-weight: 600;
}
.qb-trust-list li svg { color: var(--qb-pink-deep); flex-shrink: 0; }
@media (max-width: 768px) {
	.qb-trust-list { justify-content: flex-start; gap: 14px; }
	.qb-trust-list li { flex: 0 0 calc(50% - 14px); font-size: 13px; }
}

/* ============================================================
   Bestseller spotlight
   ============================================================ */
.qb-product-hero-art { padding: 12px; }
.qb-product-hero-art-frame {
	position: relative; border-radius: 32px; overflow: hidden;
	background: linear-gradient(135deg, #FAF6F0 0%, #F5D8DA 100%);
	border: 8px solid #fff; box-shadow: var(--qb-shadow-soft);
}
.qb-product-hero-art-frame img { display: block; width: 100%; height: auto; }
.qb-floating-badge {
	position: absolute; top: 16px; right: 16px;
	background: #fff; color: var(--qb-pink-deep);
	padding: 6px 14px; border-radius: 999px;
	font-family: "Be Vietnam Pro", sans-serif; font-size: 11px; font-weight: 700;
	letter-spacing: 0.1em; text-transform: uppercase;
	box-shadow: var(--qb-shadow-card);
}

/* ============================================================
   Collection cards (replaces bare product grid usage on home)
   ============================================================ */
.qb-section-header { gap: 16px; }
.qb-text-link {
	display: inline-flex; align-items: center; gap: 6px;
	color: var(--qb-text-soft); font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 600; font-size: 14px; text-decoration: none;
	transition: color .15s ease, transform .15s ease;
}
.qb-text-link:hover { color: var(--qb-pink-deep); }
.qb-text-link:hover span { transform: translateX(3px); }
.qb-text-link span { transition: transform .15s ease; display: inline-block; }

.qb-collection-grid {
	display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px;
}
@media (max-width: 1024px) { .qb-collection-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .qb-collection-grid { grid-template-columns: 1fr; } }

.qb-collection-card {
	background: var(--qb-ivory); border-radius: 24px; overflow: hidden;
	border: 1px dashed rgba(107, 95, 82, 0.2);
	box-shadow: var(--qb-shadow-card);
	transition: transform .25s ease, box-shadow .25s ease;
	display: flex; flex-direction: column;
}
.qb-collection-card:hover { transform: translateY(-4px); box-shadow: var(--qb-shadow-soft); }
.qb-collection-card-art {
	position: relative; aspect-ratio: 1/1; overflow: hidden;
	background: linear-gradient(135deg, #FAF6F0 0%, #F5D8DA 100%);
}
.qb-collection-card-art img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .5s ease;
}
.qb-collection-card:hover .qb-collection-card-art img { transform: scale(1.04); }
.qb-collection-badge { position: absolute; top: 14px; left: 14px; }
.qb-collection-card-body { padding: 20px 22px 22px; flex: 1; display: flex; flex-direction: column; }
.qb-collection-card-title {
	margin: 0 0 6px; font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 20px; color: var(--qb-text);
}
.qb-collection-card-text {
	margin: 0 0 18px; font-size: 14px; line-height: 1.5;
	color: var(--qb-text-soft); flex: 1;
}
.qb-collection-card-foot {
	display: flex; align-items: center; justify-content: space-between; gap: 12px;
}
.qb-collection-card-price {
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 18px; color: var(--qb-text);
}
.qb-pill-btn {
	background: var(--qb-pink); color: var(--qb-text);
	border-radius: 999px; padding: 10px 20px;
	font-family: "Be Vietnam Pro", sans-serif; font-weight: 700;
	font-size: 13px; text-decoration: none;
	box-shadow: var(--qb-shadow-button);
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.qb-pill-btn:hover { background: var(--qb-pink-deep); color: #fff; }

/* ============================================================
   Lifestyle strip
   ============================================================ */
.qb-lifestyle-card {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	background: var(--qb-ivory);
	border-radius: 32px;
	overflow: hidden;
	border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
	padding: 0;
}
.qb-lifestyle-img {
	overflow: hidden; height: 100%;
}
.qb-lifestyle-img img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	min-height: 360px;
}
.qb-lifestyle-copy {
	padding: 48px 48px 48px 0;
}
.qb-lifestyle-eyebrow {
	margin: 0 0 8px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 12px;
	letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--qb-pink-deep);
}
.qb-lifestyle-title {
	margin: 0 0 16px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 800; font-size: 32px; line-height: 1.2;
	letter-spacing: -0.01em; color: var(--qb-text);
}
.qb-lifestyle-text {
	margin: 0 0 24px; color: var(--qb-text-soft);
	font-size: 16px; line-height: 1.7;
}
@media (max-width: 900px) {
	.qb-lifestyle-card { grid-template-columns: 1fr; gap: 0; }
	.qb-lifestyle-copy { padding: 32px 28px 36px; }
	.qb-lifestyle-img img { min-height: 240px; }
	.qb-lifestyle-title { font-size: 24px; }
}

/* ============================================================
   Why gift-givers
   ============================================================ */
.qb-why-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
@media (max-width: 900px)  { .qb-why-grid { grid-template-columns: 1fr; } }

.qb-why-card {
	background: var(--qb-ivory); border-radius: 24px; padding: 32px 28px;
	box-shadow: var(--qb-shadow-card);
	border: 1px dashed rgba(107, 95, 82, 0.18);
}
.qb-why-card-icon {
	width: 56px; height: 56px; border-radius: 18px;
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 18px;
}
.qb-why-card-title {
	margin: 0 0 10px; font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 20px; color: var(--qb-text);
}
.qb-why-card-text { margin: 0; color: var(--qb-text-soft); line-height: 1.6; font-size: 15px; }

/* ============================================================
   Personalization steps
   ============================================================ */
.qb-steps-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
	list-style: none; padding: 0; margin: 0;
	counter-reset: step;
}
@media (max-width: 900px) { .qb-steps-grid { grid-template-columns: 1fr; } }

.qb-step {
	background: var(--qb-ivory); border-radius: 24px; padding: 32px 28px;
	border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
	position: relative;
}
.qb-step-num {
	display: inline-block;
	font-family: "Be Vietnam Pro", sans-serif; font-weight: 800; font-size: 36px;
	color: var(--qb-pink); letter-spacing: -0.02em;
	margin-bottom: 12px;
}
.qb-step-title {
	margin: 0 0 8px; font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 20px; color: var(--qb-text);
}
.qb-step-text { margin: 0; color: var(--qb-text-soft); line-height: 1.6; font-size: 15px; }

/* ============================================================
   Reviews grid
   ============================================================ */
.qb-reviews-grid {
	display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px;
}
@media (max-width: 900px) { .qb-reviews-grid { grid-template-columns: 1fr; } }

.qb-review-card {
	background: var(--qb-ivory); border-radius: 24px; padding: 28px;
	margin: 0; border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
}
.qb-stars { color: var(--qb-pink-deep); font-size: 16px; letter-spacing: 2px; margin-bottom: 14px; }
.qb-review-quote {
	margin: 0 0 18px; font-style: normal; color: var(--qb-text);
	line-height: 1.6; font-size: 16px;
	border-left: 3px solid var(--qb-pink); padding-left: 16px;
}
.qb-review-author { font-family: "Be Vietnam Pro", sans-serif; }
.qb-review-author strong { display: block; color: var(--qb-text); font-weight: 700; font-size: 15px; }
.qb-review-author span { color: var(--qb-text-soft); font-size: 13px; }

/* ============================================================
   Gift occasions
   ============================================================ */
.qb-occasions-grid {
	display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px;
}
@media (max-width: 1024px) { .qb-occasions-grid { grid-template-columns: repeat(3, 1fr); } }
@media (max-width: 560px)  { .qb-occasions-grid { grid-template-columns: repeat(2, 1fr); } }

.qb-occasion-card {
	display: flex; flex-direction: column; align-items: flex-start; gap: 6px;
	background: var(--qb-ivory); border-radius: 22px; padding: 22px 22px 24px;
	text-decoration: none; color: var(--qb-text);
	border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
	transition: transform .2s ease, box-shadow .2s ease;
}
.qb-occasion-card:hover { transform: translateY(-3px); box-shadow: var(--qb-shadow-soft); color: var(--qb-text); }
.qb-occasion-icon {
	width: 48px; height: 48px; border-radius: 14px;
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 10px;
}
.qb-occasion-card h3 {
	margin: 0; font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 16px; color: var(--qb-text);
}
.qb-occasion-card p { margin: 0; font-size: 13px; color: var(--qb-text-soft); line-height: 1.45; }

/* ============================================================
   FAQ — using core/details accordion
   ============================================================ */
.qb-faq-item {
	background: var(--qb-ivory); border-radius: 18px; padding: 18px 22px;
	border: 1px solid var(--qb-cream-deep);
	margin-bottom: 12px;
	box-shadow: var(--qb-shadow-card);
	transition: box-shadow .2s ease;
}
.qb-faq-item[open] { box-shadow: var(--qb-shadow-soft); }
.qb-faq-item summary {
	cursor: pointer; list-style: none;
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 700; font-size: 16px; color: var(--qb-text);
	padding: 4px 0; position: relative; padding-right: 32px;
}
.qb-faq-item summary::-webkit-details-marker { display: none; }
.qb-faq-item summary::after {
	content: "+"; position: absolute; right: 4px; top: 50%; transform: translateY(-50%);
	font-size: 22px; font-weight: 400; color: var(--qb-pink-deep);
	transition: transform .2s ease;
}
.qb-faq-item[open] summary::after { content: "−"; }
.qb-faq-item p { margin: 12px 0 4px; color: var(--qb-text-soft); line-height: 1.65; font-size: 15px; }

/* ============================================================
   Newsletter
   ============================================================ */
.qb-newsletter-card {
	max-width: 640px; margin: 0 auto;
	position: relative; overflow: hidden;
	background: var(--qb-ivory); border-radius: 32px;
	border: 1px dashed rgba(107, 95, 82, 0.25);
	padding: 48px 40px;
	box-shadow: var(--qb-shadow-soft);
	text-align: center;
}
.qb-newsletter-gingham {
	position: absolute; inset: 0; opacity: 0.06; z-index: 0; pointer-events: none;
	background-image:
		repeating-linear-gradient(45deg, var(--qb-pink-deep) 0 10px, transparent 10px 20px),
		repeating-linear-gradient(-45deg, var(--qb-pink-deep) 0 10px, transparent 10px 20px);
}
.qb-newsletter-inner { position: relative; z-index: 1; }
.qb-newsletter-eyebrow {
	margin: 0 0 8px; color: var(--qb-pink-deep);
	font-family: "Be Vietnam Pro", sans-serif; font-size: 12px; font-weight: 700;
	letter-spacing: 0.16em; text-transform: uppercase;
}
.qb-newsletter-title {
	margin: 0 0 12px; font-family: "Be Vietnam Pro", sans-serif;
	font-size: 28px; font-weight: 800; letter-spacing: -0.01em; color: var(--qb-text);
}
.qb-newsletter-text {
	margin: 0 0 24px; color: var(--qb-text-soft); font-size: 15px; line-height: 1.6;
}
.qb-newsletter-form {
	display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
	max-width: 460px; margin: 0 auto;
}
.qb-newsletter-form input[type="email"] {
	flex: 1 1 220px; min-width: 0;
	padding: 14px 22px; border-radius: 999px;
	background: var(--qb-cream); border: 1px solid var(--qb-cream-deep);
	font-family: "Be Vietnam Pro", sans-serif; font-size: 15px; color: var(--qb-text);
	outline: none; transition: border-color .15s ease, box-shadow .15s ease;
}
.qb-newsletter-form input[type="email"]:focus {
	border-color: var(--qb-pink); box-shadow: 0 0 0 4px rgba(232, 180, 184, 0.25);
}
.qb-newsletter-form button {
	padding: 14px 28px; border-radius: 999px; border: 0; cursor: pointer;
	background: var(--qb-pink-deep); color: #fff;
	font-family: "Be Vietnam Pro", sans-serif; font-weight: 700; font-size: 14px;
	letter-spacing: 0.02em;
	box-shadow: var(--qb-shadow-button);
	transition: background .15s ease, transform .15s ease;
}
.qb-newsletter-form button:hover { background: #a85e64; }
.qb-newsletter-form button:active { transform: scale(.97); }
.qb-newsletter-fineprint { margin: 14px 0 0; font-size: 12px; color: var(--qb-text-soft); }
.qb-visually-hidden {
	position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* ============================================================
   Footer
   ============================================================ */
.qb-footer-min {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 18px;
	text-align: center;
}
.qb-logo--small { width: 96px; height: 26px; }
.qb-footer-tagline {
	margin: 0;
	font-family: "Playfair Display", Georgia, serif;
	font-style: italic;
	font-size: 16px;
	color: var(--qb-text-soft);
}
.qb-footer-copyright {
	margin: 0;
	font-size: 12px;
	color: var(--qb-text-soft);
	letter-spacing: 0.02em;
}
.qb-footer-copyright a {
	color: var(--qb-text-soft);
	text-decoration: none;
	border-bottom: 1px dashed rgba(107, 95, 82, 0.3);
	padding-bottom: 1px;
}
.qb-footer-copyright a:hover { color: var(--qb-pink-deep); border-bottom-color: var(--qb-pink-deep); }
.qb-footer .qb-footer-list { list-style: none; padding: 0; margin: 0; }
.qb-footer .qb-footer-list li { margin: 0 0 10px; }
.qb-footer .qb-footer-list a {
	color: var(--qb-text-soft); text-decoration: none;
	transition: color .15s ease;
}
.qb-footer .qb-footer-list a:hover { color: var(--qb-pink-deep); }
.qb-social { display: flex; gap: 12px; margin-top: 4px; }
.qb-social-link {
	width: 38px; height: 38px; border-radius: 999px;
	display: inline-flex; align-items: center; justify-content: center;
	background: var(--qb-ivory); color: var(--qb-text-soft);
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.qb-social-link:hover { background: var(--qb-pink); color: var(--qb-text); transform: translateY(-2px); }
.qb-footer-bottom { gap: 16px; padding-top: 4px; }
.qb-pay-row { display: flex; flex-wrap: wrap; gap: 8px; }
.qb-pay-pill {
	padding: 6px 12px; border-radius: 8px;
	background: var(--qb-ivory); border: 1px solid var(--qb-cream-deep);
	font-family: "Be Vietnam Pro", sans-serif; font-size: 11px; font-weight: 700;
	letter-spacing: 0.04em; color: var(--qb-text-soft);
}

/* ============================================================
   BigCommerce — Shop archive & single product styling
   Targets the markup the BigCommerce-for-WordPress plugin renders
   ============================================================ */
.bc-product-grid,
.bc-product-cards {
	display: grid !important;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	list-style: none;
	padding: 0;
	margin: 0;
}
@media (max-width: 1024px) { .bc-product-grid, .bc-product-cards { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px)  { .bc-product-grid, .bc-product-cards { grid-template-columns: 1fr; } }

.bc-product-card,
.bc-product {
	background: var(--qb-ivory);
	border-radius: 24px;
	overflow: hidden;
	border: 1px dashed rgba(107, 95, 82, 0.18);
	box-shadow: var(--qb-shadow-card);
	transition: transform .25s ease, box-shadow .25s ease;
	padding: 0;
	display: flex;
	flex-direction: column;
}
.bc-product-card:hover,
.bc-product:hover {
	transform: translateY(-4px);
	box-shadow: var(--qb-shadow-soft);
}

.bc-product-card__image-link,
.bc-product__image-link,
.bc-product-card__image,
.bc-product__image {
	display: block;
	background: linear-gradient(135deg, #FAF6F0 0%, #F5D8DA 100%);
}
.bc-product-card__image img,
.bc-product__image img {
	width: 100%;
	height: auto;
	aspect-ratio: 1/1;
	object-fit: cover;
	display: block;
}

.bc-product-card__title,
.bc-product__title {
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 18px !important;
	color: var(--qb-text) !important;
	margin: 18px 22px 6px !important;
	line-height: 1.3 !important;
}
.bc-product-card__title a,
.bc-product__title a {
	color: var(--qb-text) !important;
	text-decoration: none !important;
}
.bc-product-card__title a:hover,
.bc-product__title a:hover {
	color: var(--qb-pink-deep) !important;
}

.bc-product-card__brand,
.bc-product__brand {
	font-size: 12px !important;
	color: var(--qb-text-soft) !important;
	margin: 0 22px 4px !important;
	text-transform: uppercase;
	letter-spacing: 0.08em;
}

.bc-product-card__price,
.bc-product__price,
.bc-product-card__product-price {
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 18px !important;
	color: var(--qb-text) !important;
	margin: 0 22px 16px !important;
}

.bc-product-card__buy,
.bc-product__buy,
.bc-btn--add_to_cart,
button.bc-btn--form_submit,
.bc-btn--buy_now {
	background: var(--qb-pink) !important;
	color: var(--qb-text) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 12px 22px !important;
	margin: 0 22px 22px !important;
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	letter-spacing: 0.02em !important;
	box-shadow: var(--qb-shadow-button) !important;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, transform .15s ease;
	width: auto !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}
.bc-product-card__buy:hover,
.bc-btn--add_to_cart:hover,
.bc-btn--buy_now:hover {
	background: var(--qb-pink-deep) !important;
	color: #fff !important;
}

.bc-pagination {
	margin-top: 48px !important;
	display: flex;
	justify-content: center;
	gap: 8px;
}
.bc-pagination a,
.bc-pagination span {
	padding: 8px 14px;
	border-radius: 999px;
	background: var(--qb-ivory);
	border: 1px solid var(--qb-cream-deep);
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 600;
	font-size: 14px;
	color: var(--qb-text-soft);
	text-decoration: none;
}
.bc-pagination .current,
.bc-pagination a:hover {
	background: var(--qb-pink);
	color: var(--qb-text);
	border-color: var(--qb-pink);
}

.bc-product-card__sale-flash,
.bc-product__sale-flash {
	background: var(--qb-pink-deep) !important;
	color: #fff !important;
	padding: 4px 12px !important;
	border-radius: 999px !important;
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 11px !important;
	letter-spacing: 0.08em !important;
	text-transform: uppercase;
}


/* Cart page */
.bc-cart {
	background: var(--qb-ivory);
	border-radius: 24px;
	border: 1px dashed rgba(107, 95, 82, 0.2);
	box-shadow: var(--qb-shadow-card);
	padding: 32px;
}

/* Cart page checkout button — berry-red CTA matching PDP add-to-cart */
.bc-cart-actions__checkout-button {
	display: flex;
	width: 100%;
	padding: 14px 28px;
	background: #D81B3D !important;
	color: #fff !important;
	text-align: center;
	text-decoration: none;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.3px;
	border-radius: 4px;
	border: none;
	cursor: pointer;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: background 0.15s ease;
	margin-bottom: 8px;
}
.bc-cart-actions__checkout-button:hover {
	background: #B5152F !important;
	color: #fff !important;
}

/* View Cart link is redundant on the full cart page — hide it there.
   .bc-cart:not(.bc-mini-cart) targets the full cart section only. */
.bc-cart:not(.bc-mini-cart) .bc-cart-actions__view-button {
	display: none;
}

/* ============================================================
   SNUGIBO v2 — Cuddle+Kind-aligned components (sn- prefix)
   ============================================================ */

/* --- Skip-to-content (accessibility) --- */
.sn-skip-link {
	position: absolute; left: -9999px; top: 0;
	background: var(--qb-text); color: #fff;
	padding: 12px 20px; z-index: 100;
	font-family: "Be Vietnam Pro", sans-serif; font-size: 14px;
	border-radius: 0 0 8px 0;
}
.sn-skip-link:focus { left: 0; }

/* --- Header (56px tall, hamburger left, logo center, cart right) --- */
.sn-header {
	position: sticky; top: 0; z-index: 50;
	backdrop-filter: blur(8px);
	background: rgba(255, 252, 247, 0.94);
}
.sn-header-row {
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	min-height: 56px;
	padding: 6px 16px;
	gap: 12px;
	max-width: 1280px;
	margin: 0 auto;
}
.sn-menu { position: relative; justify-self: start; }
.sn-menu-trigger {
	display: inline-flex; align-items: center; gap: 8px;
	min-height: 44px; min-width: 44px;
	padding: 8px 14px 8px 10px;
	border-radius: 999px;
	cursor: pointer; list-style: none;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 14px; font-weight: 600; color: var(--qb-text);
	background: transparent;
	transition: background .15s ease;
}
.sn-menu-trigger::-webkit-details-marker { display: none; }
.sn-menu-trigger:hover,
.sn-menu[open] .sn-menu-trigger { background: var(--qb-cream-deep); }
.sn-menu-label { font-size: 14px; }

.sn-menu-panel {
	position: absolute; top: calc(100% + 8px); left: 0;
	min-width: 220px;
	background: var(--qb-ivory);
	border: 1px solid var(--qb-cream-deep);
	border-radius: 16px;
	box-shadow: 0 10px 30px rgba(58, 51, 44, 0.10);
	padding: 8px;
	display: flex; flex-direction: column; gap: 2px;
	z-index: 60;
}
.sn-menu-link {
	display: block;
	padding: 14px 18px; border-radius: 10px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 16px; font-weight: 500;
	color: var(--qb-text); text-decoration: none;
	min-height: 44px; line-height: 20px;
}
.sn-menu-link:hover { background: var(--qb-cream-deep); color: var(--qb-pink-deep); }

.sn-logo-link {
	display: inline-flex; align-items: center;
	justify-self: center;
	text-decoration: none;
	min-height: 44px; padding: 4px 8px;
}
.sn-logo {
	display: inline-block;
	width: 124px; height: 32px;
	-webkit-mask-image: url('assets/snugibo-logo.png');
	        mask-image: url('assets/snugibo-logo.png');
	-webkit-mask-size: contain; mask-size: contain;
	-webkit-mask-repeat: no-repeat; mask-repeat: no-repeat;
	-webkit-mask-position: center; mask-position: center;
	background-color: var(--qb-pink-deep);
}
.sn-logo--small { width: 96px; height: 24px; }
@media (max-width: 480px) { .sn-logo { width: 100px; height: 26px; } }

.sn-cart {
	display: inline-flex; align-items: center; gap: 8px;
	justify-self: end;
	min-height: 44px; min-width: 44px;
	padding: 8px 14px 8px 10px;
	border-radius: 999px;
	color: var(--qb-text); text-decoration: none;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 14px; font-weight: 600;
	background: transparent;
	transition: background .15s ease;
	position: relative;
}
.sn-cart:hover { background: var(--qb-cream-deep); }
.sn-cart-label { font-size: 14px; }
.sn-cart-count {
	background: var(--qb-pink-deep); color: #fff;
	min-width: 18px; height: 18px; padding: 0 5px;
	border-radius: 999px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 11px; font-weight: 700;
	display: inline-flex; align-items: center; justify-content: center;
}
@media (max-width: 480px) {
	.sn-menu-label, .sn-cart-label { display: none; }
}

/* --- Buttons (sn-) — pill, soft pink, ink text --- */
.sn-btn {
	display: inline-flex; align-items: center; justify-content: center;
	min-height: 48px;
	padding: 14px 28px;
	border-radius: 999px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 16px; font-weight: 600;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, transform .15s ease;
	cursor: pointer; border: 0;
}
.sn-btn--primary {
	background: var(--qb-pink); color: var(--qb-text);
	box-shadow: 0 4px 12px rgba(233, 199, 194, 0.5);
}
.sn-btn--primary:hover { background: var(--qb-pink-deep); color: #fff; }
.sn-btn--primary:active { transform: scale(.98); }

.sn-link {
	display: inline-flex; align-items: center; gap: 4px;
	color: var(--qb-pink-deep);
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 15px; font-weight: 600;
	text-decoration: none;
	border-bottom: 1px dashed currentColor;
	padding-bottom: 1px;
	min-height: 44px;
}
.sn-link:hover { color: var(--qb-text); }

/* --- Hero (full-bleed lifestyle photo with overlay) --- */
.sn-hero {
	margin: 0; padding: 0;
	background: var(--qb-cream);
}
.sn-hero-inner {
	position: relative;
	width: 100%;
	overflow: hidden;
	max-width: 1440px;
	margin: 0 auto;
}
.sn-hero-photo {
	display: block; width: 100%;
	aspect-ratio: 4 / 5;
}
@media (min-width: 768px) { .sn-hero-photo { aspect-ratio: 16 / 9; } }
@media (min-width: 1280px) { .sn-hero-photo { aspect-ratio: 21 / 9; } }
.sn-hero-photo img {
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.sn-hero-overlay {
	position: absolute; inset: 0;
	display: flex; align-items: flex-end;
	background: linear-gradient(to top, rgba(58, 51, 44, 0.45) 0%, rgba(58, 51, 44, 0.0) 50%);
	padding: 32px 24px 40px;
}
.sn-hero-copy {
	max-width: 600px; color: #fff;
}
.sn-hero-title {
	font-family: "Playfair Display", "Cormorant Garamond", Georgia, serif;
	font-size: clamp(28px, 5.5vw, 48px);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: #fff;
	margin: 0 0 12px;
	text-shadow: 0 2px 12px rgba(0,0,0,0.25);
}
.sn-hero-sub {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: clamp(15px, 2.2vw, 18px);
	line-height: 1.5;
	color: #fff;
	margin: 0 0 24px;
	max-width: 480px;
	text-shadow: 0 1px 8px rgba(0,0,0,0.3);
}
@media (min-width: 768px) {
	.sn-hero-overlay { padding: 64px 56px; align-items: center; }
	.sn-hero-overlay::before {
		content: "";
		position: absolute; inset: 0;
		background: linear-gradient(90deg, rgba(58, 51, 44, 0.55) 0%, rgba(58, 51, 44, 0.0) 60%);
	}
	.sn-hero-copy { position: relative; }
}

/* --- Featured product (Berry Garden) --- */
.sn-featured {
	background: var(--qb-cream);
}
.sn-featured-card {
	display: flex; flex-direction: column;
	margin: 0;
	background: var(--qb-ivory);
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 4px 16px rgba(58, 51, 44, 0.06);
}
.sn-featured-photo { display: block; }
.sn-featured-photo img {
	width: 100%; height: auto; display: block;
	aspect-ratio: 1/1; object-fit: cover;
}
.sn-featured-body {
	padding: 28px 28px 32px; text-align: center;
}
.sn-featured-title {
	margin: 0 0 8px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 28px; font-weight: 500;
	color: var(--qb-text);
}
.sn-featured-line {
	margin: 0 0 24px;
	font-size: 17px; line-height: 1.5;
	color: var(--qb-text-soft);
}
.sn-featured-foot {
	display: flex; align-items: center; justify-content: center; gap: 18px;
	flex-wrap: wrap;
}
.sn-featured-price {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 20px; font-weight: 700;
	color: var(--qb-text);
}

/* --- Themes grid (4 collections, 2x2 mobile) --- */
.sn-themes { background: var(--qb-cream); }
.sn-themes-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 20px;
}
@media (min-width: 768px) { .sn-themes-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; } }

.sn-theme-card {
	display: flex; flex-direction: column;
	background: var(--qb-ivory);
	border-radius: 18px;
	overflow: hidden;
	box-shadow: 0 2px 10px rgba(58, 51, 44, 0.04);
	transition: transform .25s ease, box-shadow .25s ease;
}
.sn-theme-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 24px rgba(58, 51, 44, 0.08);
}
.sn-theme-photo { display: block; aspect-ratio: 1/1; overflow: hidden; }
.sn-theme-photo img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	transition: transform .5s ease;
}
.sn-theme-card:hover .sn-theme-photo img { transform: scale(1.04); }
.sn-theme-body {
	padding: 16px 18px 20px;
	display: flex; flex-direction: column; gap: 6px;
}
.sn-theme-name {
	margin: 0;
	font-family: "Playfair Display", Georgia, serif;
	font-size: 18px; font-weight: 500;
	color: var(--qb-text);
}
.sn-theme-tagline {
	margin: 0;
	font-size: 14px; line-height: 1.45;
	color: var(--qb-text-soft);
}
.sn-theme-status {
	display: inline-block;
	padding: 4px 10px; border-radius: 999px;
	background: var(--qb-cream-deep);
	font-size: 11px; font-weight: 600; letter-spacing: 0.06em; text-transform: uppercase;
	color: var(--qb-text-soft);
}

/* --- Themes Explorer (CSS-only tabbed switcher) --- */
.sn-explore { background: var(--qb-cream); }
.sn-exp-r {
	position: absolute !important;
	left: -9999px !important;
	top: auto !important;
	width: 1px !important; height: 1px !important;
	opacity: 0 !important;
	pointer-events: none !important;
	overflow: hidden !important;
	clip: rect(0,0,0,0) !important;
}
.sn-explore-header { text-align: center; margin-bottom: 32px; }
.sn-explore-h2 {
	margin: 0 0 8px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(28px, 4vw, 36px); font-weight: 500;
	color: var(--qb-text);
}
.sn-explore-sub {
	margin: 0;
	color: var(--qb-text-soft);
	font-size: 16px;
}

/* Tab row — horizontal scroll on mobile, equal cols on desktop */
.sn-exp-tabs {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 12px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	padding: 8px 24px;
	margin: 0 -24px 32px;
	scroll-padding: 0 24px;
}
.sn-exp-tabs::-webkit-scrollbar { display: none; }
@media (min-width: 768px) {
	.sn-exp-tabs {
		justify-content: center;
		gap: 18px;
		padding: 0;
		margin: 0 0 40px;
		overflow: visible;
	}
}

.sn-exp-tab {
	flex: 0 0 130px !important;
	width: 130px;
	scroll-snap-align: center;
	display: flex !important;
	flex-direction: column !important;
	align-items: center;
	gap: 8px;
	cursor: pointer;
	padding: 8px;
	margin: 0;
	border-radius: 16px;
	transition: background .2s ease, transform .15s ease;
	min-height: 44px;
	box-sizing: border-box;
}
.sn-exp-tab:hover { background: var(--qb-ivory); }
.sn-exp-tab:focus-visible { outline: 2px solid var(--qb-pink-deep); outline-offset: 2px; }

.sn-exp-tab-photo {
	display: block !important;
	width: 88px !important;
	height: 88px !important;
	max-width: 88px !important;
	min-width: 88px !important;
	flex: 0 0 88px !important;
	border-radius: 999px !important;
	overflow: hidden !important;
	border: 3px solid transparent;
	transition: border-color .2s ease, transform .2s ease;
	background: var(--qb-ivory);
	box-sizing: border-box;
}
.sn-exp-tab-photo picture { display: block; width: 100%; height: 100%; }
.sn-exp-tab-photo img {
	width: 100% !important;
	height: 100% !important;
	max-width: 100% !important;
	object-fit: cover !important;
	display: block !important;
	aspect-ratio: 1/1;
}
.sn-exp-tab-name {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 14px; font-weight: 600;
	color: var(--qb-text-soft);
	text-align: center;
	transition: color .2s ease;
}

/* Active-tab visuals — set on the LABEL whose for= matches the :checked input */
#sn-exp-berry:checked  ~ .sn-exp-tabs label[for="sn-exp-berry"]  .sn-exp-tab-photo,
#sn-exp-fairy:checked  ~ .sn-exp-tabs label[for="sn-exp-fairy"]  .sn-exp-tab-photo,
#sn-exp-bear:checked   ~ .sn-exp-tabs label[for="sn-exp-bear"]   .sn-exp-tab-photo,
#sn-exp-safari:checked ~ .sn-exp-tabs label[for="sn-exp-safari"] .sn-exp-tab-photo {
	border-color: var(--qb-pink-deep);
	transform: scale(1.05);
}
#sn-exp-berry:checked  ~ .sn-exp-tabs label[for="sn-exp-berry"]  .sn-exp-tab-name,
#sn-exp-fairy:checked  ~ .sn-exp-tabs label[for="sn-exp-fairy"]  .sn-exp-tab-name,
#sn-exp-bear:checked   ~ .sn-exp-tabs label[for="sn-exp-bear"]   .sn-exp-tab-name,
#sn-exp-safari:checked ~ .sn-exp-tabs label[for="sn-exp-safari"] .sn-exp-tab-name {
	color: var(--qb-text);
	font-weight: 700;
}

/* Stage — only the matching panel is shown */
.sn-exp-stage { position: relative; }
.sn-exp-panel { display: none !important; }

#sn-exp-berry:checked  ~ .sn-exp-stage .sn-exp-panel[data-theme="berry"],
#sn-exp-fairy:checked  ~ .sn-exp-stage .sn-exp-panel[data-theme="fairy"],
#sn-exp-bear:checked   ~ .sn-exp-stage .sn-exp-panel[data-theme="bear"],
#sn-exp-safari:checked ~ .sn-exp-stage .sn-exp-panel[data-theme="safari"] {
	display: grid !important;
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: center;
	animation: snFadeIn .3s ease;
}
@media (min-width: 768px) {
	#sn-exp-berry:checked  ~ .sn-exp-stage .sn-exp-panel[data-theme="berry"],
	#sn-exp-fairy:checked  ~ .sn-exp-stage .sn-exp-panel[data-theme="fairy"],
	#sn-exp-bear:checked   ~ .sn-exp-stage .sn-exp-panel[data-theme="bear"],
	#sn-exp-safari:checked ~ .sn-exp-stage .sn-exp-panel[data-theme="safari"] {
		grid-template-columns: 1fr 1fr;
		gap: 56px;
	}
}

@keyframes snFadeIn {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

.sn-exp-photo {
	display: block;
	border-radius: 24px;
	overflow: hidden;
	background: var(--qb-ivory);
	box-shadow: 0 4px 16px rgba(58, 51, 44, 0.08);
}
.sn-exp-photo img {
	width: 100%; height: auto; display: block;
	aspect-ratio: 1/1; object-fit: cover;
}

.sn-exp-body {
	display: flex; flex-direction: column;
	gap: 14px;
	text-align: center;
}
@media (min-width: 768px) { .sn-exp-body { text-align: left; } }

.sn-exp-status {
	display: inline-block;
	padding: 4px 12px; border-radius: 999px;
	background: var(--qb-cream-deep);
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 11px; font-weight: 700;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--qb-text-soft);
	align-self: center;
}
@media (min-width: 768px) { .sn-exp-status { align-self: flex-start; } }

.sn-exp-name {
	margin: 0;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(26px, 4vw, 32px); font-weight: 500;
	color: var(--qb-text);
}
.sn-exp-desc {
	margin: 0;
	font-size: 17px; line-height: 1.6;
	color: var(--qb-text-soft);
}
.sn-exp-body .sn-btn { align-self: center; margin-top: 8px; }
@media (min-width: 768px) { .sn-exp-body .sn-btn { align-self: flex-start; } }

/* Secondary button (sold-out themes) */
.sn-btn--secondary {
	background: transparent; color: var(--qb-text);
	border: 1.5px solid var(--qb-outline);
	box-shadow: none;
}
.sn-btn--secondary:hover {
	background: var(--qb-cream-deep);
	border-color: var(--qb-text-soft);
	color: var(--qb-text);
}

/* --- Made to Explore (lifestyle band) --- */
.sn-mte-card {
	display: grid;
	grid-template-columns: 1fr;
	gap: 32px;
	align-items: center;
}
@media (min-width: 900px) {
	.sn-mte-card { grid-template-columns: 1fr 1fr; gap: 56px; }
}
.sn-mte-img {
	display: block;
	border-radius: 32px;
	overflow: hidden;
	box-shadow: 0 8px 24px rgba(58, 51, 44, 0.10);
}
.sn-mte-img img {
	width: 100%; height: auto; display: block;
	aspect-ratio: 1/1; object-fit: cover;
}
.sn-mte-copy {
	text-align: center;
}
@media (min-width: 900px) { .sn-mte-copy { text-align: left; } }
.sn-mte-title {
	margin: 12px 0 16px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(28px, 4.5vw, 40px); font-weight: 500;
	line-height: 1.15;
	color: var(--qb-text);
}
.sn-mte-title em {
	font-style: italic; color: var(--qb-pink-deep);
}
.sn-mte-text {
	margin: 0 0 24px;
	font-size: 17px; line-height: 1.6;
	color: var(--qb-text-soft);
}

/* --- Brand-story strip (one line) --- */
.sn-story-inner { text-align: center; }
.sn-story-accent {
	display: inline-block;
	width: 32px; height: 2px;
	background: var(--qb-sage);
	margin-bottom: 20px;
	border-radius: 2px;
}
.sn-story-title {
	margin: 0 0 12px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(24px, 4vw, 32px); font-weight: 500;
	line-height: 1.2;
	color: var(--qb-text);
}
.sn-story-line {
	margin: 0;
	font-size: 17px; line-height: 1.55;
	color: var(--qb-text-soft);
}

/* --- Reviews — CSS-only swipe slider on mobile, 3-up grid on tablet+ --- */
.sn-reviews-grid {
	display: flex;
	flex-direction: row;
	gap: 16px;
	overflow-x: auto;
	overflow-y: hidden;
	scroll-snap-type: x mandatory;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 4px 24px 4px;
	margin: 0 -24px;
	scroll-padding: 0 24px;
}
.sn-reviews-grid::-webkit-scrollbar { display: none; }
.sn-reviews-grid > .sn-review {
	flex: 0 0 86%;
	scroll-snap-align: center;
	min-width: 0;
}
@media (min-width: 768px) {
	.sn-reviews-grid {
		display: grid;
		grid-template-columns: repeat(3, 1fr);
		gap: 24px;
		overflow: visible;
		padding: 0;
		margin: 0;
	}
	.sn-reviews-grid > .sn-review { flex: initial; }
}

.sn-review {
	background: var(--qb-ivory);
	border-radius: 18px;
	padding: 24px;
	margin: 0;
	box-shadow: 0 2px 10px rgba(58, 51, 44, 0.04);
}
.sn-stars { color: var(--qb-pink-deep); font-size: 14px; letter-spacing: 2px; margin-bottom: 12px; }
.sn-review-quote {
	margin: 0 0 16px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 16px; line-height: 1.6;
	color: var(--qb-text);
	border-left: 2px solid var(--qb-pink);
	padding-left: 14px;
}
.sn-review-author {
	font-family: "Be Vietnam Pro", sans-serif;
}
.sn-review-author strong {
	display: block;
	font-size: 15px; font-weight: 700;
	color: var(--qb-text);
}
.sn-review-author span {
	font-size: 13px;
	color: var(--qb-text-soft);
}

/* --- Value pillars (3-up footer band) --- */
.sn-pillars-list {
	list-style: none; padding: 0; margin: 0;
	display: grid; grid-template-columns: 1fr; gap: 18px;
	text-align: center;
}
@media (min-width: 600px) { .sn-pillars-list { grid-template-columns: repeat(3, 1fr); gap: 24px; } }
.sn-pillar {
	display: flex; flex-direction: column; align-items: center; gap: 8px;
	padding: 16px 12px;
}
.sn-pillar svg { color: var(--qb-pink-deep); }
.sn-pillar-label {
	margin: 0;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 16px; font-weight: 700;
	color: var(--qb-text);
}
.sn-pillar-desc {
	margin: 0;
	font-size: 14px; line-height: 1.5;
	color: var(--qb-text-soft);
}

/* --- Footer (compact) --- */
.sn-footer-min {
	display: flex; flex-direction: column; align-items: center; gap: 14px;
	text-align: center;
}
.sn-footer-tagline {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-style: normal;
	font-size: 14px;
	font-weight: 400;
	color: var(--body, #3A3A38);
}
.sn-footer-newsletter {
	color: var(--ink, #0F0F0F);
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	min-height: 44px;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	transition: color 0.15s ease;
}
.sn-footer-newsletter:hover { color: var(--berry, #D81B3D); }
.sn-social { display: flex; gap: 16px; }
.sn-social-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--ink, #0F0F0F);
	transition: color 0.15s ease;
}
.sn-social-link:hover { color: var(--berry, #D81B3D); }
.sn-footer-copyright {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: var(--muted, #5F5E5A);
	letter-spacing: 0.02em;
	text-align: center;
	border-top: 1px solid var(--line, #E8E2D5);
	padding-top: 16px;
	width: 100%;
}
.sn-footer-copyright a {
	color: var(--muted, #5F5E5A);
	text-decoration: none;
}
.sn-footer-copyright a:hover { color: var(--berry, #D81B3D); }

/* --- About + Contact pages --- */
.sn-about-inner,
.sn-contact-inner {
	text-align: center;
}
.sn-about-h1 {
	margin: 12px 0 24px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(32px, 5vw, 44px);
	font-weight: 500;
	line-height: 1.15;
	letter-spacing: -0.01em;
	color: var(--qb-text);
}
.sn-about-lede {
	font-size: 19px;
	line-height: 1.55;
	color: var(--qb-text);
	margin: 0 0 24px;
}
.sn-about-inner p {
	font-size: 17px;
	line-height: 1.7;
	color: var(--qb-text-soft);
	margin: 0 0 20px;
	text-align: left;
}
.sn-about-inner > p:first-of-type,
.sn-about-close,
.sn-about-cta {
	text-align: center;
}
.sn-about-close {
	font-family: "Playfair Display", Georgia, serif;
	font-style: italic;
	font-size: 19px;
	color: var(--qb-text);
	margin: 32px 0;
}
.sn-about-cta { margin-top: 32px; }

.sn-contact-list {
	margin: 24px 0 0;
	display: grid;
	grid-template-columns: 1fr;
	gap: 18px;
	text-align: left;
}
@media (min-width: 600px) {
	.sn-contact-list { grid-template-columns: max-content 1fr; column-gap: 24px; row-gap: 14px; }
}
.sn-contact-list dt {
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 13px; font-weight: 700;
	letter-spacing: 0.08em; text-transform: uppercase;
	color: var(--qb-text-soft);
	margin: 0;
}
.sn-contact-list dd {
	margin: 0;
	font-size: 17px; line-height: 1.5;
	color: var(--qb-text);
}
.sn-contact-list dd a {
	color: var(--qb-pink-deep);
	text-decoration: none;
	border-bottom: 1px dashed currentColor;
	padding-bottom: 1px;
}
.sn-contact-list dd a:hover { color: var(--qb-text); }

/* --- /products/ intro band injected via the_content filter --- */
.qb-shop-intro {
	max-width: 720px;
	margin: 0 auto;
	padding: 48px 24px 24px;
	text-align: center;
}
.qb-shop-intro__h1 {
	margin: 0 0 12px;
	font-family: "Playfair Display", Georgia, serif;
	font-size: clamp(28px, 4vw, 40px); font-weight: 500;
	color: var(--qb-text);
}
.qb-shop-intro__sub {
	margin: 0;
	font-size: 17px; line-height: 1.55;
	color: var(--qb-text-soft);
}

/* ============================================================
   Mobile polish
   ============================================================ */
@media (max-width: 768px) {
	.qb-newsletter-card { padding: 36px 24px; }
	.qb-newsletter-title { font-size: 22px; }
	.qb-hero-art { padding: 8px; }
	.qb-hero-art-tag { left: 0; bottom: -8px; }
	.qb-step-num { font-size: 28px; }
}

/* ==========================================================================
   SNUGIBO LANDING — full landing page styles (v5 — new source HTML)
   All selectors scoped under .snugibo-landing so they do not leak to
   BigCommerce checkout/cart, admin pages, or other WP templates.
   Section order: promo → header → hero → stripe → includes → picker → banner → stat.
   Breakpoints (375 / 768 / 1100) are non-negotiable.
   ========================================================================== */
.snugibo-landing {
	--berry: #D81B3D;
	--berry-dark: #B5152F;
	--berry-bright: #FF4458;
	--pink: #F4A8B8;
	--sage: #7FA862;
	--yellow: #F4C957;
	--yellow-tint: #FFF8E8;
	--peach: #FBE9D7;
	--peach-deep: #FCEFE0;
	--ink: #0F0F0F;
	--body: #3A3A38;
	--muted: #5F5E5A;
	--line: #E8E2D5;

	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: var(--ink);
	background: white;
	font-size: 16px;
	line-height: 1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}
.snugibo-landing *,
.snugibo-landing *::before,
.snugibo-landing *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
}
.snugibo-landing img { max-width: 100%; height: auto; display: block; }
.snugibo-landing a { color: inherit; }
.snugibo-landing button { font-family: inherit; cursor: pointer; }

.snugibo-landing h1,
.snugibo-landing h2,
.snugibo-landing h3 { color: var(--ink); }

/* ============ MOBILE FIRST (375px iPhone SE baseline) ============ */
.snugibo-landing .promo-bar {
	background: var(--berry); color: white;
	font-size: 12px; font-weight: 500;
	padding: 8px 16px; text-align: center; letter-spacing: 0.2px;
}
.snugibo-landing .promo-bar a { text-decoration: underline; }
.snugibo-landing .promo-bar .right { display: none; }

.snugibo-landing header.site-header {
	padding: 14px 16px;
	display: flex; align-items: center; justify-content: space-between;
	border-bottom: 1px solid var(--line); background: white;
	position: sticky; top: 0; z-index: 10;
}
.snugibo-landing .hamburger {
	width: 24px; background: none; border: none; padding: 0;
	display: flex; flex-direction: column; gap: 5px;
}
.snugibo-landing .hamburger span {
	display: block; width: 22px; height: 2px;
	background: var(--ink); border-radius: 2px;
}
.snugibo-landing .wordmark {
	font-size: 16px; font-weight: 700; letter-spacing: 1.5px;
	text-transform: uppercase; color: var(--ink);
}
.snugibo-landing nav.primary { display: none; }
.snugibo-landing .account-desktop { display: none; }
.snugibo-landing .cart-mobile {
	font-size: 14px; font-weight: 600; text-decoration: none; color: var(--ink);
}

.snugibo-landing .btn-primary {
	display: inline-block; background: var(--berry); color: white;
	border: none; padding: 13px 28px; border-radius: 4px;
	font-size: 14px; font-weight: 600; letter-spacing: 0.3px;
	text-decoration: none; min-height: 46px; line-height: 20px;
	transition: background 0.15s ease;
}
.snugibo-landing .btn-primary:hover,
.snugibo-landing .btn-primary:focus { background: var(--berry-dark); }
.snugibo-landing .btn-block { display: block; width: 100%; text-align: center; padding: 14px 28px; }

.snugibo-landing .pill {
	display: inline-block; padding: 5px 14px; border-radius: 99px;
	font-size: 11px; font-weight: 600; letter-spacing: 0.5px; text-transform: uppercase;
}
.snugibo-landing .pill-yellow { background: var(--yellow); color: var(--ink); }
.snugibo-landing .pill-white { background: white; color: var(--berry); }

.snugibo-landing .rating { display: flex; align-items: center; gap: 8px; }
.snugibo-landing .rating .stars { color: var(--berry); font-size: 13px; letter-spacing: 1px; }
.snugibo-landing .rating .count { font-size: 12px; color: var(--muted); font-weight: 500; }
.snugibo-landing .rating .count.linked { text-decoration: underline; }

/* HERO --------------------------------------------------------------------- */
.snugibo-landing .hero { background: var(--peach); display: flex; flex-direction: column; }
.snugibo-landing .hero-image {
	background: #F5C8A8; aspect-ratio: 4/3;
	display: flex; align-items: center; justify-content: center;
	color: #6B4226; font-size: 12px; font-style: italic;
	overflow: hidden; position: relative;
}
.snugibo-landing .hero-image img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	position: absolute; inset: 0;
}
.snugibo-landing .hero-text { padding: 28px 24px 32px; text-align: center; }
.snugibo-landing .hero-text .rating { justify-content: center; margin-bottom: 14px; }
.snugibo-landing .hero-text h1 {
	font-size: 32px; font-weight: 600; line-height: 1.08; letter-spacing: -0.5px;
	margin-bottom: 16px;
}
.snugibo-landing .hero-text p {
	font-size: 16px; color: var(--body); max-width: 420px;
	margin: 0 auto 24px; line-height: 1.5;
}

/* STRIPE ------------------------------------------------------------------- */
.snugibo-landing .stripe { height: 8px; display: flex; }
.snugibo-landing .stripe div { flex: 1; }
.snugibo-landing .stripe .s1 { background: var(--berry); }
.snugibo-landing .stripe .s2 { background: var(--pink); }
.snugibo-landing .stripe .s3 { background: var(--sage); }
.snugibo-landing .stripe .s4 { background: var(--yellow); }

/* INCLUDES (yellow-tint) --------------------------------------------------- */
.snugibo-landing .section-includes {
	background: var(--yellow-tint); padding: 40px 24px;
	display: flex; flex-direction: column; gap: 24px;
}
.snugibo-landing .section-includes .pill { margin-bottom: 18px; }
.snugibo-landing .includes-media {
	display: flex; flex-direction: column; gap: 16px;
}
.snugibo-landing .includes-collage,
.snugibo-landing .includes-child {
	background: #E8DDC4; border-radius: 8px;
	overflow: hidden; position: relative;
	aspect-ratio: 1/1;
}
.snugibo-landing .includes-collage img,
.snugibo-landing .includes-child img {
	width: 100%; height: 100%; object-fit: cover; display: block;
	position: absolute; inset: 0;
}
.snugibo-landing .section-includes h2 {
	font-size: 28px; font-weight: 600; line-height: 1.1; letter-spacing: -0.3px;
	margin-bottom: 20px;
}
.snugibo-landing .checklist { list-style: none; display: flex; flex-direction: column; gap: 14px; }
.snugibo-landing .checklist li {
	display: flex; align-items: flex-start; gap: 12px;
	font-size: 16px; line-height: 1.5;
}
.snugibo-landing .checklist li .check {
	flex-shrink: 0; width: 24px; height: 24px; background: var(--sage);
	border-radius: 50%; margin-top: 1px;
	display: flex; align-items: center; justify-content: center;
}
.snugibo-landing .checklist li .check svg { width: 13px; height: 13px; }

/* THEME PICKER (white — 4 cards, all clickable to /products/books/) -------- */
.snugibo-landing .section-picker { background: white; padding: 40px 24px; }
.snugibo-landing .section-picker h2 {
	font-size: 28px; font-weight: 600; line-height: 1.1; letter-spacing: -0.3px;
	text-align: center; margin-bottom: 8px;
}
.snugibo-landing .picker-sub {
	font-size: 14px; color: var(--muted);
	text-align: center; margin-bottom: 28px;
}
.snugibo-landing .theme-grid {
	display: grid; grid-template-columns: 1fr 1fr; gap: 16px;
	max-width: 1200px; margin: 0 auto;
}
.snugibo-landing .theme-card {
	display: flex; flex-direction: column;
	background: white;
	border: 1px solid var(--line); border-radius: 10px;
	overflow: hidden;
	text-decoration: none; color: inherit;
	transition: border-color 0.18s ease, transform 0.18s ease, box-shadow 0.18s ease;
}
.snugibo-landing .theme-card:hover,
.snugibo-landing .theme-card:focus-visible {
	border-color: var(--berry);
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(216,27,61,0.10);
	outline: none;
}
.snugibo-landing .theme-card-photo {
	position: relative;
	background: var(--peach);
	aspect-ratio: 1/1;
	overflow: hidden;
}
.snugibo-landing .theme-card-photo img {
	position: absolute; inset: 0;
	width: 100%; height: 100%; object-fit: cover; display: block;
}
.snugibo-landing .theme-card-photo .pill {
	position: absolute; top: 10px; left: 10px; z-index: 2;
}
.snugibo-landing .theme-card-body {
	padding: 14px 16px 16px;
	display: flex; flex-direction: column; gap: 4px;
}
.snugibo-landing .theme-card-body h3 {
	font-size: 16px; font-weight: 600; line-height: 1.2;
	color: var(--ink); margin: 0;
}
.snugibo-landing .theme-card-cta {
	font-size: 13px; font-weight: 500; color: var(--berry);
}

/* LIFESTYLE BANNER (red headline #FF4458 — user-locked, do not change) ----- */
.snugibo-landing .section-banner {
	position: relative; background: #8B7B68;
	aspect-ratio: 5/4;
	display: flex; align-items: flex-end;
	padding: 28px 24px; overflow: hidden;
}
.snugibo-landing .section-banner img.bg {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; object-position: 50% 60%; z-index: 0;
}
.snugibo-landing .section-banner::after {
	content: ""; position: absolute; left: 0; right: 0; bottom: 0;
	height: 70%;
	background: linear-gradient(to top, rgba(0,0,0,0.75), rgba(0,0,0,0));
	z-index: 1; pointer-events: none;
}
.snugibo-landing .section-banner h2 {
	position: relative; z-index: 2;
	font-size: 30px; font-weight: 600; line-height: 1.08; letter-spacing: -0.4px;
	max-width: 560px;
	color: var(--berry-bright);
}
.snugibo-landing .section-banner em { font-style: italic; font-weight: 600; }

/* STAT BLOCK --------------------------------------------------------------- */
.snugibo-landing .section-stat {
	background: var(--peach-deep); padding: 40px 24px;
	display: flex; flex-direction: column; gap: 20px;
}
.snugibo-landing .section-stat h2 {
	font-size: 28px; font-weight: 600; line-height: 1.1; letter-spacing: -0.3px;
}
.snugibo-landing .stat-row { display: flex; align-items: baseline; gap: 16px; }
.snugibo-landing .stat-number {
	font-size: 64px; font-weight: 600; line-height: 1; letter-spacing: -2px;
	color: var(--berry); flex-shrink: 0;
}
.snugibo-landing .stat-number .pct { font-size: 38px; letter-spacing: -1px; }
.snugibo-landing .stat-row p { font-size: 15px; color: var(--body); line-height: 1.5; }

/* ============ TABLET (≥768px) ============ */
@media (min-width: 768px) {
	.snugibo-landing .promo-bar { display: flex; justify-content: space-between; padding: 8px 24px; text-align: left; }
	.snugibo-landing .promo-bar .right { display: flex; gap: 20px; }
	.snugibo-landing header.site-header { padding: 16px 32px; }
	.snugibo-landing .hamburger { display: none; }
	.snugibo-landing .wordmark { font-size: 18px; }
	.snugibo-landing nav.primary { display: flex; gap: 28px; font-size: 14px; }
	.snugibo-landing nav.primary a { color: var(--ink); text-decoration: none; font-weight: 500; }
	.snugibo-landing nav.primary a:hover { color: var(--berry); }
	.snugibo-landing .account-desktop { display: none; }
	.snugibo-landing .cart-mobile { display: inline-flex; }

	.snugibo-landing .hero { flex-direction: row; min-height: 380px; align-items: stretch; }
	.snugibo-landing .hero-text { flex: 1; padding: 40px 48px; text-align: left; align-self: center; }
	.snugibo-landing .hero-text .rating { justify-content: flex-start; }
	.snugibo-landing .hero-text h1 { font-size: 40px; letter-spacing: -0.7px; }
	.snugibo-landing .hero-text p { font-size: 16px; margin-left: 0; margin-right: 0; }
	.snugibo-landing .hero-image { flex: 1; aspect-ratio: auto; align-self: stretch; min-height: 380px; }

	.snugibo-landing .section-includes {
		padding: 56px 48px; flex-direction: row; gap: 40px;
		align-items: center; max-width: 1280px; margin: 0 auto;
	}
	.snugibo-landing .section-includes .includes-copy { flex: 1; }
	.snugibo-landing .section-includes .includes-media { flex: 1; gap: 16px; }
	.snugibo-landing .section-includes h2 { font-size: 36px; letter-spacing: -0.5px; }
	.snugibo-landing .checklist li { font-size: 17px; }

	.snugibo-landing .section-picker { padding: 56px 48px; }
	.snugibo-landing .section-picker h2 { font-size: 32px; letter-spacing: -0.5px; margin-bottom: 6px; }
	.snugibo-landing .picker-sub { font-size: 15px; margin-bottom: 28px; }
	.snugibo-landing .theme-grid { gap: 24px; }
	.snugibo-landing .theme-card-body { padding: 24px 18px 28px; }
	.snugibo-landing .theme-card-body h3 { font-size: 17px; }
	.snugibo-landing .theme-card-cta { font-weight: 600; }
	.snugibo-landing .theme-card:hover .theme-card-cta { text-decoration: underline; }

	.snugibo-landing .section-banner { aspect-ratio: auto; height: 360px; padding: 64px; align-items: flex-end; }
	.snugibo-landing .section-banner::before {
		content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none;
		background: linear-gradient(to right, rgba(0,0,0,0.25), transparent 60%);
	}
	.snugibo-landing .section-banner img.bg { object-position: 50% 60%; }
	.snugibo-landing .section-banner h2 { font-size: 38px; letter-spacing: -0.6px; line-height: 1.05; }

	.snugibo-landing .section-stat {
		padding: 56px 48px; flex-direction: row; gap: 40px;
		align-items: center; max-width: 1280px; margin: 0 auto;
	}
	.snugibo-landing .section-stat > div:first-child { flex: 1; }
	.snugibo-landing .section-stat h2 { font-size: 36px; letter-spacing: -0.5px; }
	.snugibo-landing .stat-row { align-items: center; }
	.snugibo-landing .stat-number { font-size: 88px; letter-spacing: -2.5px; margin-top: 0; }
	.snugibo-landing .stat-number .pct { font-size: 50px; }
	.snugibo-landing .stat-row p { font-size: 16px; max-width: 280px; line-height: 1.6; padding-top: 16px; }
}

/* ============ DESKTOP (≥1100px) ============ */
@media (min-width: 1100px) {
	.snugibo-landing .hero { min-height: 440px; max-height: 540px; }
	.snugibo-landing .hero-text { padding: 56px 64px; }
	.snugibo-landing .hero-text h1 { font-size: 48px; letter-spacing: -1px; }
	.snugibo-landing .hero-text p { font-size: 17px; max-width: 440px; }
	.snugibo-landing .hero-image { min-height: 440px; max-height: 540px; }
	.snugibo-landing .hero-image img { object-position: center; }

	.snugibo-landing .section-includes { padding: 72px 64px; gap: 48px; }
	.snugibo-landing .section-includes h2 { font-size: 36px; letter-spacing: -0.6px; }
	.snugibo-landing .checklist li { font-size: 16px; }

	.snugibo-landing .section-picker { padding: 72px 64px; }
	.snugibo-landing .section-picker h2 { font-size: 36px; letter-spacing: -0.6px; }
	.snugibo-landing .theme-grid { grid-template-columns: repeat(4, 1fr); gap: 24px; max-width: 1200px; }
	.snugibo-landing .theme-card-body { padding: 18px 20px 22px; }
	.snugibo-landing .theme-card-body h3 { font-size: 18px; }

	.snugibo-landing .section-banner { height: 420px; padding: 64px; }
	.snugibo-landing .section-banner h2 { font-size: 48px; letter-spacing: -1px; max-width: 640px; line-height: 1.05; }

	.snugibo-landing .section-stat { padding: 72px 64px; }
	.snugibo-landing .section-stat h2 { font-size: 36px; letter-spacing: -0.6px; }
	.snugibo-landing .stat-number { font-size: 80px; letter-spacing: -2.5px; }
	.snugibo-landing .stat-number .pct { font-size: 48px; }
}

/* Cart-count badge — circular notification pip in --berry red, white text,
   top-right of the cart link. Visibility driven entirely by the
   data-cart-count attribute: "0" hides, any other value shows.

   No PHP rendering, no localStorage, no REST hydration — the badge is
   static markup that always exists in the DOM. JS only updates the value
   on AJAX cart events; refresh/navigation resets to 0 (acceptable v1). */

/* Each cart link gets position: relative so the badge can absolute-position
   off its top-right corner. Three cart links in the header: desktop nav,
   mobile pill, and the hamburger drawer. */
.snugibo-landing .account-desktop a.cart,
.snugibo-landing .cart-mobile,
.snugibo-landing .mobile-drawer a[href="/cart/"] {
	position: relative;
}

/* Mobile cart link is icon-only (no "Cart" text) so the icon needs to be
   the visible anchor for the badge. SVG inherits color from --ink. */
.snugibo-landing .cart-mobile {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 44px;
	min-height: 44px;
	padding: 8px;
	color: var(--ink, #0F0F0F);
	text-decoration: none;
	-webkit-tap-highlight-color: transparent;
}
.snugibo-landing .cart-mobile .cart-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 22px;
	height: 22px;
}
.snugibo-landing .cart-mobile .cart-icon svg {
	width: 22px;
	height: 22px;
	display: block;
}

/* The badge itself. */
.snugibo-landing .cart-badge {
	position: absolute;
	top: -8px;
	right: -8px;
	min-width: 22px;
	height: 22px;
	padding: 0 6px;
	border-radius: 11px;
	background: #D81B3D;            /* --berry */
	color: #FFFFFF;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 12px;
	font-weight: 600;
	line-height: 22px;
	text-align: center;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	white-space: nowrap;
	font-variant-numeric: tabular-nums;
	margin: 0;
	pointer-events: none;
	box-shadow: 0 1px 3px rgba(216, 27, 61, 0.35);
	z-index: 2;
	transform-origin: center center;
	transition: transform 0.15s ease;
}

/* Hide entirely when cart is empty (the single source of truth for
   visibility — JS sets data-cart-count="0" to hide, any other value shows). */
.snugibo-landing .cart-badge[data-cart-count="0"] {
	display: none !important;
}

/* Pulse animation cue when the count changes — fires for 650ms after JS
   toggles the .cart-badge--pulse class. */
@keyframes snCartBadgePulse {
	0%   { transform: scale(1); }
	40%  { transform: scale(1.25); }
	100% { transform: scale(1); }
}
.snugibo-landing .cart-badge.cart-badge--pulse {
	animation: snCartBadgePulse 0.65s ease;
}

/* ============ MOBILE DRAWER (hamburger menu) ============ */
.snugibo-landing .mobile-drawer {
	display: none;
	flex-direction: column;
	position: fixed;
	top: 0; left: 0; right: 0;
	background: white;
	padding: 64px 24px 24px;
	z-index: 9;
	border-bottom: 1px solid var(--line);
	box-shadow: 0 8px 24px rgba(0,0,0,0.08);
}
.snugibo-landing .mobile-drawer a {
	display: block;
	padding: 14px 0;
	font-size: 16px; font-weight: 500;
	color: var(--ink);
	text-decoration: none;
	border-bottom: 1px solid var(--line);
	min-height: 44px;
}
.snugibo-landing .mobile-drawer a:last-child { border-bottom: none; }
html.sn-menu-open .snugibo-landing .mobile-drawer { display: flex; }
html.sn-menu-open { overflow: hidden; }
@media (min-width: 768px) {
	.snugibo-landing .mobile-drawer { display: none !important; }
}

/* Hamburger active state */
.snugibo-landing .hamburger { min-height: 44px; min-width: 44px; padding: 10px 0; }

/* ============ MOBILE POLISH (≤767px) ============ */
@media (max-width: 767px) {
	.snugibo-landing { overflow-x: hidden; }
	.snugibo-landing .hero-text h1 { font-size: 28px; line-height: 1.1; }
	.snugibo-landing .hero-text p { font-size: 15px; }
	.snugibo-landing .section-includes h2,
	.snugibo-landing .section-picker h2,
	.snugibo-landing .section-stat h2 { font-size: 24px; }
	.snugibo-landing .section-banner h2 { font-size: 26px; }
	.snugibo-landing .stat-row { flex-direction: column; gap: 10px; align-items: flex-start; }
	.snugibo-landing .stat-number { font-size: 56px; }
	.snugibo-landing .stat-number .pct { font-size: 32px; }
	.snugibo-landing .btn-primary { width: 100%; text-align: center; }
	.snugibo-landing .hero-text .btn-primary { display: block; }
	.snugibo-landing .theme-card-body h3 { font-size: 15px; }
	.snugibo-landing .checklist li { font-size: 15px; }
}

/* ============ PRODUCTS ARCHIVE STYLING (BigCommerce) ============
   Brings /products/ and single product pages in line with the landing
   palette. Scoped to .qb-shop-page (existing wrapper from
   archive-bigcommerce_product.html) so it doesn't leak elsewhere.
*/
.qb-shop-page,
.bc-product-archive,
body.post-type-archive-bigcommerce_product .qb-main,
body[class*="bigcommerce_product_category"] .qb-main {
	background: white;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #0F0F0F;
	max-width: 1280px;
	margin: 0 auto;
	padding: 24px 16px 48px;
}
@media (min-width: 768px) {
	.qb-shop-page,
	.bc-product-archive,
	body.post-type-archive-bigcommerce_product .qb-main,
	body[class*="bigcommerce_product_category"] .qb-main { padding: 40px 32px 64px; }
}
@media (min-width: 1100px) {
	.qb-shop-page,
	.bc-product-archive,
	body.post-type-archive-bigcommerce_product .qb-main,
	body[class*="bigcommerce_product_category"] .qb-main { padding: 56px 64px 80px; }
}

.qb-shop-page .bc-product-archive__header {
	margin-bottom: 24px;
	border-bottom: 1px solid #E8E2D5;
	padding-bottom: 16px;
}
.qb-shop-page .bc-product-archive__refinery {
	display: flex; flex-wrap: wrap; gap: 12px;
	margin-bottom: 24px;
	align-items: center;
}
.qb-shop-page .bc-product-archive__search,
.qb-shop-page .bc-product-archive__refinery {
	font-family: inherit;
}
.qb-shop-page input[type="text"],
.qb-shop-page input[type="search"],
.qb-shop-page select {
	border: 1px solid #E8E2D5 !important;
	border-radius: 4px !important;
	padding: 10px 14px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	background: white !important;
	min-height: 44px;
}
.qb-shop-page input:focus,
.qb-shop-page select:focus {
	outline: none !important;
	border-color: #D81B3D !important;
}

/* Products grid — fix the desktop "image cut off" issue with strong constraints */
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-grid,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-cards,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) ul.products,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-archive__products {
	display: grid !important;
	grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
	gap: 16px !important;
	list-style: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
@media (min-width: 768px) {
	.qb-shop-page .bc-product-grid,
	.qb-shop-page .bc-product-cards,
	.qb-shop-page ul.products,
	.qb-shop-page .bc-product-archive__products {
		grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
		gap: 24px !important;
	}
}
@media (min-width: 1100px) {
	.qb-shop-page .bc-product-grid,
	.qb-shop-page .bc-product-cards,
	.qb-shop-page ul.products,
	.qb-shop-page .bc-product-archive__products {
		grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
		gap: 28px !important;
	}
}

.bc-product,
.bc-product-card,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product {
	background: white !important;
	border: 1px solid #E8E2D5 !important;
	border-radius: 10px !important;
	padding: 0 !important;
	margin: 0 !important;
	overflow: hidden !important;
	display: flex !important;
	flex-direction: column !important;
	width: auto !important;
	max-width: 100% !important;
	float: none !important;
	transition: border-color 0.18s ease, box-shadow 0.18s ease, transform 0.18s ease;
}
.bc-product:hover,
.bc-product-card:hover,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product:hover {
	border-color: #D81B3D !important;
	box-shadow: 0 8px 24px rgba(216,27,61,0.10) !important;
	transform: translateY(-2px);
}

.bc-product__image,
.bc-product__image-link,
.bc-product-card__image,
.bc-product-card__image-link {
	display: block !important;
	position: relative !important;
	width: 100% !important;
	aspect-ratio: 1/1 !important;
	background: #FBE9D7 !important;
	overflow: hidden !important;
	margin: 0 !important;
}
.bc-product__image img,
.bc-product__image-link img,
.bc-product-card__image img,
.bc-product-card__image-link img,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product img:first-of-type {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	position: absolute !important;
	inset: 0 !important;
	max-width: 100% !important;
}

.bc-product__title,
.bc-product-card__title,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product h2,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product h3 {
	margin: 12px 16px 4px !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	color: #0F0F0F !important;
	font-family: 'Inter', sans-serif !important;
	letter-spacing: 0 !important;
	padding: 0 !important;
	min-height: 0 !important;
}
.bc-product__title a,
.bc-product-card__title a {
	color: #0F0F0F !important;
	text-decoration: none !important;
}
.bc-product__price,
.bc-product-card__price,
body:not(.bc-cart-page):not(.bc-checkout-page) li.product .price,
.bc-product-card__product-price {
	margin: 0 16px 12px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #D81B3D !important;
	font-family: 'Inter', sans-serif !important;
}
.bc-product-card__sale-flash,
.bc-product__sale-flash {
	background: #D81B3D !important;
	color: white !important;
	font-family: 'Inter', sans-serif !important;
	font-weight: 600 !important;
	font-size: 11px !important;
	padding: 4px 10px !important;
	border-radius: 99px !important;
	text-transform: uppercase;
	letter-spacing: 0.5px;
}

/* Add to cart / buy buttons (scoped to product listing pages, not cart/checkout) */
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-card__buy,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-btn--add_to_cart,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-btn--buy_now,
body:not(.bc-cart-page):not(.bc-checkout-page):not(.bc-account-page) .bc-product-archive button.bc-btn--form_submit {
	background: #D81B3D !important;
	color: white !important;
	border: none !important;
	border-radius: 4px !important;
	padding: 10px 16px !important;
	margin: 0 16px 16px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	letter-spacing: 0.3px !important;
	min-height: 40px !important;
	display: inline-flex !important;
	align-items: center; justify-content: center;
	cursor: pointer;
	width: auto !important;
	text-decoration: none !important;
	box-shadow: none !important;
	transition: background 0.15s ease;
}
body:not(.bc-cart-page):not(.bc-checkout-page) .bc-product-card__buy:hover,
body:not(.bc-cart-page):not(.bc-checkout-page) .bc-btn--add_to_cart:hover,
body:not(.bc-cart-page):not(.bc-checkout-page) .bc-btn--buy_now:hover {
	background: #B5152F !important;
	color: white !important;
}

/* Pagination */
.bc-pagination {
	margin-top: 48px !important;
	display: flex; justify-content: center; gap: 8px;
}
.bc-pagination a,
.bc-pagination span {
	padding: 8px 14px;
	border: 1px solid #E8E2D5;
	border-radius: 4px;
	font-family: 'Inter', sans-serif;
	font-weight: 500;
	font-size: 14px;
	color: #5F5E5A;
	text-decoration: none;
	min-height: 40px;
	display: inline-flex; align-items: center;
}
.bc-pagination .current,
.bc-pagination a:hover {
	background: #D81B3D;
	color: white;
	border-color: #D81B3D;
}

/* ============================================================================
   BIGCOMMERCE SINGLE PRODUCT PAGE (/products/books/, /products/[slug]/)
   Body classes: body.single-bigcommerce_product
   These pages render BC's own .bc-product-single layout — gallery + form +
   description + reviews. We provide the page wrapper + cottagecore polish.
   ============================================================================ */
body.single-bigcommerce_product { background: #FAF6EF; }
body.single-bigcommerce_product .qb-main {
	max-width: 1280px;
	margin: 0 auto;
	padding: 24px 16px 48px;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	color: #0F0F0F;
	background: transparent;
}
@media (min-width: 768px)  { body.single-bigcommerce_product .qb-main { padding: 40px 32px 64px; } }
@media (min-width: 1100px) { body.single-bigcommerce_product .qb-main { padding: 56px 64px 80px; } }

/* The main 2-col gallery + form layout */
body.single-bigcommerce_product .bc-product-single {
	width: 100%;
	max-width: 100%;
}
/* v3 LAYOUT (rolled back from v4) — header block (rating + title + tagline)
   spans BOTH columns at desktop and sits at the top of the single-column
   stack on mobile, above the gallery. Achieved with CSS grid-template-areas:
       desktop ≥768px     mobile <768px
       ────────────       ─────────────
       header header      header
       gallery meta       gallery
                          meta
   On mobile (1fr single column), grid-template-areas is not declared, so
   items auto-flow in source order (header → gallery → meta).
   `.bc-product__gallery` is a DIRECT child of __top here — that is what
   makes the `> .bc-product__gallery` override below match, which is what
   defuses BigCommerce plugin's flex-basis / margin-right / width rules. */
body.single-bigcommerce_product .bc-product-single__top {
	display: grid;
	grid-template-columns: 1fr;
	gap: 24px;
	margin-bottom: 48px;
	align-items: start;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .bc-product-single__top {
		grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
		grid-template-areas:
			"header  header"
			"gallery meta";
		gap: 24px 40px;
	}
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .bc-product-single__top {
		grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
		grid-template-areas:
			"header  header"
			"gallery meta";
		gap: 32px 56px;
		align-items: start;
	}
}

/* Right-column children (everything that's NOT the gallery): cap width so
   long copy doesn't sprawl, separate visually with spacing. */
body.single-bigcommerce_product .bc-product-single__top > *:not(.bc-product__gallery) {
	min-width: 0;
	max-width: 100%;
}

/* HEADER BLOCK — rating + title + tagline, spans both columns on desktop,
   top of stack on mobile. Vertical spacing handled by grid-gap. */
body.single-bigcommerce_product .bc-product-single__top > .sn-pdp-header-block {
	grid-area: header;
	min-width: 0;
	max-width: 100%;
	order: 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .bc-product-single__top > .sn-pdp-header-block {
		max-width: 720px;
	}
}

/* GRID-AREA placement for gallery + meta. The !important width / flex /
   margin-right resets override BigCommerce plugin's master.min.css rules:
     .bc-product-single .bc-product__gallery    { flex: 1 1 auto; width: 100% }   — base/mobile
     .bc-product-single .bc-product__gallery    { flex: 0 0 370px; margin-right: 30px } — @768px+
     .bc-product-single .bc-product-single__meta { width: calc(50% - 60px); padding-left: ... } — @768px+
   Without these resets, the gallery would take a fixed 370px width and the
   meta would be calc(50% - 60px), breaking our 55fr/45fr grid track sizing.
   At mobile (<768px), the order:1/2 rules from BC don't matter for our grid
   (we use grid-template-areas), but we keep them as belt-and-suspenders. */
body.single-bigcommerce_product .bc-product-single__top > .bc-product__gallery {
	grid-area: gallery;
	order: 1 !important;
	width: auto !important;
	max-width: 100% !important;
	flex: initial !important;
	margin-right: 0 !important;
	padding-left: 0 !important;
}
body.single-bigcommerce_product .bc-product-single__top > .bc-product-single__meta {
	grid-area: meta;
	order: 2 !important;
	width: auto !important;
	max-width: 100% !important;
	flex: initial !important;
	padding-left: 0 !important;
}

/* Gallery (left column) — square aspect, peach bg, clean radius. Restored
   in the rollback from v4: cream/peach lives back on the gallery itself, no
   intermediate wrapper. This lets the `> .bc-product__gallery` grid-item
   override above match (because gallery is a direct child of __top), which
   is what holds BigCommerce plugin's flex-basis/margin-right rules off. */
body.single-bigcommerce_product .bc-product__gallery {
	background: #FBE9D7;
	border-radius: 10px;
	overflow: hidden;
	width: 100%;
	max-width: 100%;
	min-width: 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .bc-product__gallery {
		position: sticky;
		top: 24px;
		max-width: 100%;
	}
}
.bc-product-gallery__images,
.bc-product__gallery .swiper-container,
.bc-product__gallery .swiper-wrapper {
	width: 100% !important;
	max-width: 100% !important;
}
.bc-product-gallery__images img,
.bc-product__gallery img,
.bc-product__gallery .swiper-slide img {
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	display: block !important;
	aspect-ratio: 1/1;
	object-fit: cover;
}
.sn-gallery-swipe,
.sn-gallery-swipe .swiper-slide,
.sn-gallery-swipe .swiper-slide img {
	cursor: grab !important;
	-webkit-user-select: none;
	user-select: none;
}
.sn-gallery-swipe:active,
.sn-gallery-swipe:active .swiper-slide,
.sn-gallery-swipe:active .swiper-slide img {
	cursor: grabbing !important;
}

/* Title + price block — tightened, with a clear divider before form */
body.single-bigcommerce_product .bc-product__title,
body.single-bigcommerce_product .h1 {
	font-family: 'Inter', sans-serif !important;
	font-size: clamp(28px, 4vw, 36px) !important;
	font-weight: 600 !important;
	line-height: 1.1 !important;
	letter-spacing: -0.4px !important;
	color: #0F0F0F !important;
	margin: 0 0 8px !important;
}
body.single-bigcommerce_product .bc-product__pricing,
body.single-bigcommerce_product .bc-product-price,
body.single-bigcommerce_product .bc-product__price {
	font-family: 'Inter', sans-serif !important;
	font-size: 22px !important;
	font-weight: 700 !important;
	color: #D81B3D !important;
	margin: 0 0 16px !important;
	padding-bottom: 16px;
	border-bottom: 1px solid #E8E2D5;
}
.bc-product__retail-price,
.bc-product__original-price {
	color: #5F5E5A !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	text-decoration: line-through;
}

/* SKU + meta */
.bc-product-single__meta,
.bc-product__sku {
	font-size: 12px !important;
	color: #5F5E5A !important;
	margin-bottom: 16px !important;
}
.bc-product-single__meta-label,
.bc-product__spec-title {
	font-weight: 600 !important;
	color: #0F0F0F !important;
}

/* Variant / option form */
.bc-product-form {
	display: flex;
	flex-direction: column;
	gap: 18px;
	margin-top: 8px;
}
.bc-product-form__options { display: flex; flex-direction: column; gap: 16px; }
.bc-product-form__option-field { display: flex; flex-direction: column; gap: 8px; }
.bc-product-form__option-label,
.bc-form__label {
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #0F0F0F !important;
	letter-spacing: 0.2px !important;
	text-transform: uppercase;
}
.bc-product-form__control select,
.bc-product-form__control input[type="text"],
.bc-product-form__control input[type="email"],
.bc-product-form__control input[type="number"],
.bc-product-form__quantity-input,
.bc-product-variant__select,
.bc-form__control select,
.bc-form__control input {
	font-family: 'Inter', sans-serif !important;
	font-size: 15px !important;
	border: 1px solid #E8E2D5 !important;
	border-radius: 4px !important;
	padding: 12px 14px !important;
	min-height: 46px !important;
	background: white !important;
	color: #0F0F0F !important;
	width: 100% !important;
	max-width: 100%;
}
.bc-product-form__control select:focus,
.bc-product-form__control input:focus,
.bc-product-form__quantity-input:focus,
.bc-product-variant__select:focus,
.bc-form__control select:focus,
.bc-form__control input:focus {
	outline: none !important;
	border-color: #D81B3D !important;
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.12) !important;
}
.bc-product-form__option-description {
	font-size: 12px !important;
	line-height: 1.5 !important;
	color: #7A6F62 !important;
	margin-top: 4px !important;
	font-weight: 400 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	max-width: 100%;
}
/* Long Dutch demo description — clamp it so it doesn't blow out the column */
.bc-product-form__option-description {
	max-height: 4.5em;
	overflow: hidden;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
}
.bc-product-form__option-description:hover,
.bc-product-form__option-description:focus { max-height: none; -webkit-line-clamp: unset; overflow: visible; }

/* Quantity */
.bc-product-form__quantity {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 140px;
}
.bc-product-form__quantity-label {
	font-size: 13px !important;
	font-weight: 600 !important;
	text-transform: uppercase;
	letter-spacing: 0.2px;
}

/* Add to cart / form actions */
.bc-form__actions,
.bc-product-form__actions {
	margin-top: 8px;
	display: flex; flex-direction: column; gap: 10px;
}
body.single-bigcommerce_product .bc-btn,
body.single-bigcommerce_product button.bc-btn,
body.single-bigcommerce_product .bc-btn--add_to_cart,
body.single-bigcommerce_product .bc-btn--buy_now,
body.single-bigcommerce_product input.bc-btn[type="submit"] {
	background: #D81B3D !important;
	color: white !important;
	border: none !important;
	border-radius: 4px !important;
	padding: 14px 28px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.3px !important;
	min-height: 48px !important;
	cursor: pointer !important;
	transition: background 0.15s ease;
	text-transform: none !important;
	width: 100% !important;
	display: inline-flex !important;
	align-items: center; justify-content: center;
	box-shadow: none !important;
}
body.single-bigcommerce_product .bc-btn:hover,
body.single-bigcommerce_product .bc-btn--add_to_cart:hover,
body.single-bigcommerce_product .bc-btn--buy_now:hover {
	background: #B5152F !important;
	color: white !important;
}

/* Description — visually separated card BELOW the gallery+form 2-col,
   in case BC renders it inside __top. Force full-width grid span. */
body.single-bigcommerce_product .bc-product__description {
	grid-column: 1 / -1;
	margin-top: 32px;
	padding: 32px 0 0;
	border-top: 1px solid #E8E2D5;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #3A3A38;
	max-width: 800px;
}
.bc-product__description h2,
.bc-product__description h3 {
	font-family: 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 600;
	color: #0F0F0F;
	margin: 24px 0 12px;
}
.bc-product__description p { margin: 0 0 14px; }

/* Specs */
.bc-product__spec-list {
	list-style: none;
	padding: 0;
	margin: 16px 0;
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 8px 24px;
}
.bc-product__spec-title { font-size: 13px; font-weight: 600; color: #0F0F0F; }
.bc-product__spec-value { font-size: 14px; color: #3A3A38; }

/* Reviews section */
.bc-product-reviews__header,
.bc-product-review-form-wrapper {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid #E8E2D5;
}
.bc-product-reviews__header h2,
.bc-product-reviews__header h3,
body.single-bigcommerce_product .h2 {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 600 !important;
	color: #0F0F0F !important;
	margin: 0 0 16px !important;
}
.bc-single-product__rating {
	display: flex; align-items: center; gap: 8px;
	font-size: 14px; color: #5F5E5A;
	margin-bottom: 16px;
}
.bc-single-product__reviews-anchor,
.bc-product-review__write-btn,
.bc-product-review__cancel-write-btn {
	color: #D81B3D !important;
	text-decoration: underline !important;
	font-weight: 500 !important;
}

/* Swiper carousel polish */
.bc-product__gallery .swiper-button-prev,
.bc-product__gallery .swiper-button-next {
	color: #D81B3D !important;
}
.bc-product__gallery .swiper-pagination-bullet-active {
	background: #D81B3D !important;
}

/* Shop intro band injected by the_content filter */
.qb-shop-intro {
	max-width: 720px;
	margin: 0 auto 40px;
	padding: 0 16px;
	text-align: center;
}
.qb-shop-intro__h1 {
	margin: 0 0 12px;
	font-family: 'Inter', sans-serif;
	font-size: clamp(28px, 4vw, 40px);
	font-weight: 600;
	letter-spacing: -0.4px;
	color: #0F0F0F;
}
.qb-shop-intro__sub {
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.5;
	color: #5F5E5A;
}

/* ============================================================================
   BC PDP — Reviews header (Override 1: product-rating-header.php)
   ============================================================================ */
body.single-bigcommerce_product .sn-reviews-header {
	margin: 48px auto 24px;
	padding-top: 32px;
	border-top: 1px solid #E8E2D5;
	text-align: center;
	max-width: 720px;
}
body.single-bigcommerce_product .sn-reviews-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #D81B3D;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 8px;
}
body.single-bigcommerce_product .sn-reviews-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: -0.3px !important;
	color: #0F0F0F !important;
	margin: 0 0 16px !important;
}
body.single-bigcommerce_product .sn-reviews-stars {
	display: inline-block;
	margin: 0 auto;
}
/* Tint the BC star sprite if it inherits color (no-op for fixed-color backgrounds) */
body.single-bigcommerce_product .sn-reviews-stars .bc-single-product__rating--top .bc-rating-star {
	color: #D81B3D;
}

/* ============================================================================
   BC PDP — Variant options section header (Override 2: product-options.php)
   ============================================================================ */
body.single-bigcommerce_product .sn-options-section {
	margin-top: 24px;
}
body.single-bigcommerce_product .sn-options-header {
	margin-bottom: 16px;
}
body.single-bigcommerce_product .sn-options-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #D81B3D;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 6px;
}
body.single-bigcommerce_product .sn-options-title {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	color: #0F0F0F;
	margin: 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-options-title { font-size: 20px; }
}

/* ============================================================================
   BC PDP — Personalization (modifiers) section header
   (Override 3: product-modifiers.php)
   ============================================================================ */
body.single-bigcommerce_product .sn-modifiers-section {
	margin-top: 32px;
	padding-top: 24px;
	border-top: 1px solid #E8E2D5;
}
body.single-bigcommerce_product .sn-modifiers-header {
	margin-bottom: 16px;
}
body.single-bigcommerce_product .sn-modifiers-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #D81B3D;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 6px;
}
body.single-bigcommerce_product .sn-modifiers-title {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 600;
	line-height: 1.2;
	color: #0F0F0F;
	margin: 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-modifiers-title { font-size: 20px; }
}

/* ============================================================================
   BC PDP — Breadcrumb above product (Override 4: single-bigcommerce_product.php)
   ============================================================================ */
body.single-bigcommerce_product .sn-breadcrumb {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #5F5E5A;
	margin-bottom: 16px;
	display: flex;
	align-items: center;
	gap: 6px;
	flex-wrap: wrap;
}
body.single-bigcommerce_product .sn-breadcrumb-link {
	color: #5F5E5A;
	text-decoration: none;
	transition: color 0.15s ease;
}
body.single-bigcommerce_product .sn-breadcrumb-link:hover,
body.single-bigcommerce_product .sn-breadcrumb-link:focus {
	color: #D81B3D;
}
body.single-bigcommerce_product .sn-breadcrumb-sep {
	color: #C9BBA8;
	user-select: none;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .sn-breadcrumb { margin-bottom: 24px; }
}

/* ============================================================================
   BC PDP — Layout reorder: meta column (Override 5: product-single.php)
   ============================================================================ */
/* Eyebrow above the product title */
body.single-bigcommerce_product .sn-pdp-eyebrow {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 600;
	color: #D81B3D;
	letter-spacing: 1px;
	text-transform: uppercase;
	margin: 0 0 8px;
}

/* Fine-print meta line (brand + SKU below the form) */
body.single-bigcommerce_product .sn-pdp-meta-fine {
	margin-top: 24px;
	padding-top: 16px;
	border-top: 1px solid #E8E2D5;
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: #7A6F62;
}
body.single-bigcommerce_product .sn-pdp-meta-fine .bc-product__brand,
body.single-bigcommerce_product .sn-pdp-meta-fine .bc-product__sku,
body.single-bigcommerce_product .sn-pdp-meta-fine .bc-product-single__meta-sku {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 12px !important;
	color: #7A6F62 !important;
	font-weight: 500 !important;
}

/* Description section — clean, full-width section below the gallery+meta */
body.single-bigcommerce_product .sn-pdp-description {
	margin-top: 48px;
	padding-top: 32px;
	border-top: 1px solid #E8E2D5;
	max-width: 800px;
}
body.single-bigcommerce_product .sn-pdp-section-title {
	font-family: 'Inter', sans-serif !important;
	font-size: 22px !important;
	font-weight: 600 !important;
	line-height: 1.2 !important;
	letter-spacing: -0.3px !important;
	color: #0F0F0F !important;
	margin: 0 0 16px !important;
}
/* Description body copy — Inter / 16px / 1.6 / #3A3A38 to match homepage <p> body */
body.single-bigcommerce_product .sn-pdp-description .bc-product__description,
body.single-bigcommerce_product .sn-pdp-description .bc-single-product__description,
body.single-bigcommerce_product .sn-pdp-description p {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
	color: #3A3A38 !important;
	margin: 0 0 14px !important;
}
body.single-bigcommerce_product .sn-pdp-description ul,
body.single-bigcommerce_product .sn-pdp-description ol {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: #3A3A38;
	margin: 0 0 14px;
	padding-left: 20px;
}
body.single-bigcommerce_product .sn-pdp-description li { margin-bottom: 6px; }
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-pdp-description { margin-top: 64px; }
	body.single-bigcommerce_product .sn-pdp-section-title { font-size: 24px !important; }
}

/* ============================================================================
   BC PDP — Personalization (Name) input (Override 6: option-text.php)
   Reused by Override 7 (option-dropdown.php) — .sn-pdp-label is shared.
   ============================================================================ */

/* Personalization wrapper — vertical rhythm only */
body.single-bigcommerce_product .sn-personalization-field {
	margin-bottom: 16px;
}

/* Shared form-control label (text input + dropdown both use this) */
body.single-bigcommerce_product .sn-pdp-label {
	font-family: 'Inter', sans-serif !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #0F0F0F !important;
	letter-spacing: 0.2px !important;
	text-transform: uppercase !important;
	margin: 0 0 8px !important;
	display: block !important;
}

/* Required-field marker (BC adds .bc-form-control-required class via PHP if $required) */
body.single-bigcommerce_product .sn-pdp-label.bc-form-control-required::after {
	content: " *";
	color: #D81B3D;
}

/* Text input — borders, focus state, 48px tap target, iOS-no-zoom 16px font */
body.single-bigcommerce_product .sn-pdp-input,
body.single-bigcommerce_product input.bc-product-option__text {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	color: #0F0F0F !important;
	background: white !important;
	border: 1.5px solid #E8E2D5 !important;
	border-radius: 4px !important;
	padding: 12px 14px !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 48px !important;
	line-height: 1.5 !important;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
	box-shadow: none !important;
}
body.single-bigcommerce_product .sn-pdp-input:focus,
body.single-bigcommerce_product input.bc-product-option__text:focus {
	outline: none !important;
	border-color: #D81B3D !important;
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.12) !important;
}
body.single-bigcommerce_product .sn-pdp-input::placeholder {
	color: #7A6F62;
}

/* Helper text under the input — restyle BC's min/max char count messages
   from systemy validation copy → elegant muted hint text */
body.single-bigcommerce_product .sn-personalization-field .bc-product-form__option-description {
	font-family: 'Inter', sans-serif !important;
	font-size: 12px !important;
	line-height: 1.5 !important;
	font-weight: 400 !important;
	color: #7A6F62 !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	margin: 6px 0 0 !important;
	display: block !important;
	max-height: none !important;
	-webkit-line-clamp: unset !important;
	overflow: visible !important;
}
body.single-bigcommerce_product .sn-personalization-field .bc-product-form__option-description strong {
	font-weight: 600;
	color: #0F0F0F;
}

/* ============================================================================
   BC PDP — Theme dropdown (Override 7: option-dropdown.php)
   Pure CSS styling on the native <select>. No JS, no shim, no hidden field.
   Inherits .sn-personalization-field wrapper rhythm + .sn-pdp-label typography.
   ============================================================================ */

/* Native <select> — match the text-input treatment, plus a custom berry SVG arrow */
body.single-bigcommerce_product .sn-pdp-select,
body.single-bigcommerce_product select.bc-product-variant__select {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: #0F0F0F !important;
	background-color: white !important;
	border: 1.5px solid #E8E2D5 !important;
	border-radius: 4px !important;
	padding: 12px 40px 12px 14px !important;
	width: 100% !important;
	max-width: 100% !important;
	min-height: 48px !important;
	line-height: 1.5 !important;
	cursor: pointer;
	transition: border-color 0.15s ease, box-shadow 0.15s ease !important;
	box-shadow: none !important;

	/* Strip native UA chevron */
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;

	/* Custom berry-red SVG chevron at right edge */
	background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%23D81B3D' stroke-width='2' fill='none' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") !important;
	background-repeat: no-repeat !important;
	background-position: right 14px center !important;
	background-size: 12px 8px !important;
}
body.single-bigcommerce_product .sn-pdp-select:focus,
body.single-bigcommerce_product select.bc-product-variant__select:focus {
	outline: none !important;
	border-color: #D81B3D !important;
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.12) !important;
}
body.single-bigcommerce_product .sn-pdp-select:hover,
body.single-bigcommerce_product select.bc-product-variant__select:hover {
	border-color: #C9BBA8 !important;
}
/* Suppress IE/Edge legacy native arrow */
body.single-bigcommerce_product .sn-pdp-select::-ms-expand,
body.single-bigcommerce_product select.bc-product-variant__select::-ms-expand {
	display: none !important;
}

/* Don't let BC's option-variants wrapper add its own padding/borders */
body.single-bigcommerce_product .sn-personalization-field .bc-product-form__option-variants {
	margin: 0 !important;
	padding: 0 !important;
	border: none !important;
	background: transparent !important;
}

/* ============================================================================
   BC PDP — Add-to-Cart action zone (Override 8: product-form.php)
   Wraps quantity + message + submit in a clearly-separated bottom section.
   Submit button itself is styled by the existing .bc-btn / .bc-btn--add_to_cart
   rules earlier in this file — NOT redefined here.
   ============================================================================ */

/* Form shell — minimal, just keeps form children stacked with consistent gap */
body.single-bigcommerce_product .sn-pdp-form {
	display: flex;
	flex-direction: column;
}

/* Add-to-cart zone — clear divider above, vertical stack of qty + button */
body.single-bigcommerce_product .sn-pdp-actions {
	margin-top: 24px;
	padding-top: 24px;
	border-top: 1px solid #E8E2D5;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

/* Quantity — narrow column on its own row, full label + input above the button */
body.single-bigcommerce_product .sn-pdp-actions .sn-pdp-quantity {
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 140px;
	margin: 0;
}
body.single-bigcommerce_product .sn-pdp-actions .sn-pdp-quantity .bc-product-form__quantity-label {
	margin: 0 !important;
	padding: 0 !important;
}
body.single-bigcommerce_product .sn-pdp-actions .sn-pdp-quantity .bc-product-single__meta-label {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: #0F0F0F;
	letter-spacing: 0.2px;
	text-transform: uppercase;
}

/* Tighten the quantity input — smaller than full-width inputs but same border treatment */
body.single-bigcommerce_product .sn-pdp-actions input.bc-product-form__quantity-input {
	max-width: 140px !important;
	text-align: center !important;
}

/* Hide the BC product-message wrapper when empty (it injects content via JS) */
body.single-bigcommerce_product .bc-product-form__product-message:empty {
	display: none;
}

/* Purchase-restriction message (e.g. "minimum 2 to purchase") */
body.single-bigcommerce_product .sn-pdp-purchase-message {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	line-height: 1.5;
	color: #5F5E5A;
	display: block;
	margin: 4px 0;
}

/* AJAX add-to-cart status message — fades in on cart success */
body.single-bigcommerce_product .bc-ajax-add-to-cart__message-wrapper {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: #5F5E5A;
	margin-top: 12px;
}
body.single-bigcommerce_product .bc-ajax-add-to-cart__message-wrapper:empty {
	display: none;
}

/* Reinforce the Add-to-Cart submit button styling within the actions zone — broader
   selector coverage in case BC ships variants of the button class name (some
   versions use --form-submit, others --add_to_cart) */
body.single-bigcommerce_product .sn-pdp-actions .bc-btn,
body.single-bigcommerce_product .sn-pdp-actions button.bc-btn,
body.single-bigcommerce_product .sn-pdp-actions input.bc-btn,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--form-submit,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--form_submit,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--add_to_cart,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--buy_now {
	background: #D81B3D !important;
	color: white !important;
	border: none !important;
	border-radius: 4px !important;
	padding: 14px 28px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	letter-spacing: 0.3px !important;
	min-height: 48px !important;
	cursor: pointer !important;
	width: 100% !important;
	max-width: 100% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	text-decoration: none !important;
	text-transform: none !important;
	box-shadow: none !important;
	transition: background 0.15s ease !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
body.single-bigcommerce_product .sn-pdp-actions .bc-btn:hover,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn:focus,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--form-submit:hover,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--add_to_cart:hover,
body.single-bigcommerce_product .sn-pdp-actions .bc-btn--buy_now:hover {
	background: #B5152F !important;
	color: white !important;
	outline: none !important;
}
body.single-bigcommerce_product .sn-pdp-actions .bc-btn:focus-visible {
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.30) !important;
}

/* ============================================================================
   SNUGIBO PDP v2 — right-column structure (rating row, tagline, benefits,
   price block, dynamic dropdown labels, personalization input, dynamic CTA)
   plus mobile layout treatments. Replaces / extends earlier overrides.
   ============================================================================ */

/* 0. Header block — wraps rating + title + tagline, sits above the gallery
      on every viewport (full-width on desktop via grid-template-areas;
      first child of the single-column stack on mobile). ---------------- */
body.single-bigcommerce_product .sn-pdp-header-block {
	display: block;
	margin: 0;
}

/* 1. Rating row (Etsy bridge — 5 berry stars + count + Etsy attribution)
      Lives at the top of the header block, on white background, above the
      title. ------------------------------------------------------------- */
body.single-bigcommerce_product .sn-rating {
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
	margin: 0 0 6px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	color: #5F5E5A;
	line-height: 1.3;
}
body.single-bigcommerce_product .sn-rating-stars {
	display: inline-block;
	flex-shrink: 0;
	color: #D81B3D;            /* --berry */
	font-size: 14px;
	letter-spacing: 1px;
	line-height: 1;
}
body.single-bigcommerce_product .sn-rating-meta {
	color: #5F5E5A;            /* --muted */
	text-decoration: none;
	font-size: 13px;
	font-weight: 500;
}
body.single-bigcommerce_product a.sn-rating-meta:hover {
	color: #D81B3D;
	text-decoration: underline;
}
body.single-bigcommerce_product .sn-rating-count strong {
	font-weight: 600;
	color: #2B2A26;             /* slightly darker for the number */
}
body.single-bigcommerce_product .sn-rating-divider { color: #C9BBA8; }

/* 1b. Attribution subtitle (smaller, even more muted) -------------------- */
body.single-bigcommerce_product .sn-rating-attribution {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 400;
	color: #8A8780;             /* lighter muted */
	margin: 0 0 12px;
	line-height: 1.4;
	letter-spacing: 0.1px;
}

/* 2. Tagline (italic, below title) ------------------------------------------ */
body.single-bigcommerce_product .sn-pdp-tagline {
	font-family: 'Inter', sans-serif;
	font-style: italic;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: #3A3A38;
	max-width: 90%;
	margin: 4px 0 20px;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-pdp-tagline { font-size: 17px; }
}

/* 3. Benefit bullets -------------------------------------------------------- */
body.single-bigcommerce_product .sn-pdp-benefits {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
body.single-bigcommerce_product .sn-pdp-benefit {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 600;
	color: #0F0F0F;
	line-height: 1.5;
}
body.single-bigcommerce_product .sn-pdp-benefit-icon {
	flex-shrink: 0;
	font-size: 18px;
	line-height: 1.3;
}
body.single-bigcommerce_product .sn-pdp-benefit-text { font-weight: 600; }
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-pdp-benefit { font-size: 16px; }
}

/* 4. Price block ------------------------------------------------------------ */
body.single-bigcommerce_product .sn-price-row {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
	margin: 0 0 16px;
	padding-bottom: 16px;
	border-bottom: 1px solid #E8E2D5;
}
/* The .bc-product__pricing--cached and --api wrappers BC ships are <p> tags;
   reset their margins so they sit cleanly on our price-row baseline. */
body.single-bigcommerce_product .sn-price-row > .bc-product__pricing--cached,
body.single-bigcommerce_product .sn-price-row > .bc-product__pricing--api {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
body.single-bigcommerce_product .sn-price-row .bc-product__price {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	color: #D81B3D !important;
	margin: 0 !important;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-price-row .bc-product__price { font-size: 28px !important; }
}
body.single-bigcommerce_product .sn-price-row .bc-product__retail-price,
body.single-bigcommerce_product .sn-price-row .bc-product__original-price {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: #7A6F62 !important;
	text-decoration: line-through;
	margin: 0 !important;
}
/* Sold-out label — hidden by default, revealed by body class */
body.single-bigcommerce_product .sn-sold-out-label {
	display: none;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #7A6F62;
	background: #EFE6D6;
	padding: 4px 10px;
	border-radius: 99px;
}
body.single-bigcommerce_product.bc-availability-unavailable .sn-sold-out-label {
	display: inline-block;
}

/* 5. Dynamic dropdown label ------------------------------------------------- */
body.single-bigcommerce_product .sn-pdp-label-dynamic {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 4px;
}
body.single-bigcommerce_product .sn-pdp-label-dynamic .sn-option-prefix {
	font-weight: 600;
	color: #0F0F0F;
}
body.single-bigcommerce_product .sn-pdp-label-dynamic .sn-option-divider {
	color: #7A6F62;
	text-transform: none;
	letter-spacing: 0;
}
body.single-bigcommerce_product .sn-pdp-label-dynamic .sn-option-value {
	font-weight: 500;
	color: #3A3A38;
	text-transform: none;
	letter-spacing: 0;
	max-width: 70%;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}

/* 6. Personalization input — replace verbose helper, custom hint ----------- */
body.single-bigcommerce_product .sn-personalization-text .sn-personalization-hint {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	line-height: 1.5;
	font-weight: 500;
	color: #7A6F62;
	margin: 6px 0 0;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .sn-personalization-text .sn-personalization-hint { font-size: 13px; }
}
/* Suppress BC's verbose default helper (Min/Max char count) inside the
   personalization text field — we render our own concise hint instead.
   Other modifier types still show their helpers. */
body.single-bigcommerce_product .sn-personalization-text .bc-product-form__option-description {
	display: none !important;
}

/* 7. Dynamic Add-to-Cart state machine -------------------------------------- */
body.single-bigcommerce_product .sn-pdp-actions .bc-btn,
body.single-bigcommerce_product .bc-product-form .bc-btn--add_to_cart,
body.single-bigcommerce_product .bc-product-form .bc-btn--form-submit,
body.single-bigcommerce_product .bc-product-form button.bc-btn,
body.single-bigcommerce_product .bc-product-form input.bc-btn[type="submit"] {
	transition: background-color 0.25s ease, color 0.25s ease,
	            border-color 0.25s ease, opacity 0.25s ease !important;
}
/* Disabled state — applied by JS when personalization input is empty */
body.single-bigcommerce_product .bc-btn.sn-btn-disabled,
body.single-bigcommerce_product button.bc-btn.sn-btn-disabled,
body.single-bigcommerce_product input.bc-btn.sn-btn-disabled {
	background: #C9BBA8 !important;
	color: #5F5E5A !important;
	cursor: not-allowed !important;
	box-shadow: none !important;
	pointer-events: none !important;
}
body.single-bigcommerce_product .bc-btn.sn-btn-disabled:hover,
body.single-bigcommerce_product .bc-btn.sn-btn-disabled:focus {
	background: #C9BBA8 !important;
	color: #5F5E5A !important;
	transform: none !important;
}
body.single-bigcommerce_product .bc-btn.sn-btn-soldout {
	background: #7A6F62 !important;
	color: white !important;
	cursor: not-allowed !important;
}

/* Promo bar — visually softer "marketing banner" treatment, not red alert -- */
.snugibo-landing .promo-bar {
	background: #DCE6CC !important;     /* soft sage-cream blend */
	color: #3A332C !important;          /* warm ink, not white */
	font-size: 13px !important;
	font-weight: 500;
	letter-spacing: 0;
	padding: 13px 20px !important;
	text-align: center !important;
}
.snugibo-landing .promo-bar a {
	color: #3A332C !important;
	text-decoration: underline;
	font-weight: 600;
}
.snugibo-landing .promo-bar a:hover { color: #D81B3D !important; }
@media (min-width: 768px) {
	.snugibo-landing .promo-bar { font-size: 14px !important; padding: 14px 24px !important; }
	/* keep the .right block on desktop but match the new colors */
	.snugibo-landing .promo-bar .right { color: #3A332C; }
}

/* MOBILE LAYOUT (≤767px) ---------------------------------------------------- */
@media (max-width: 767px) {
	/* Edge-to-edge gallery — strip horizontal padding from .qb-main wrappers,
	   then re-apply 24px padding only to the right-column meta + description. */
	body.single-bigcommerce_product .qb-main {
		padding-left: 0 !important;
		padding-right: 0 !important;
	}
	body.single-bigcommerce_product .sn-breadcrumb {
		padding: 0 24px;
	}
	body.single-bigcommerce_product .bc-product-single,
	body.single-bigcommerce_product .bc-product-single__top {
		padding: 0 !important;
	}
	body.single-bigcommerce_product .bc-product__gallery {
		border-radius: 0 !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
	}
	/* HEADER BLOCK on mobile — gets horizontal padding (24px each side, 24px
	   top) so rating + title + tagline don't bleed to the screen edge. The
	   gallery below it stays edge-to-edge for hero impact. */
	body.single-bigcommerce_product .sn-pdp-header-block {
		padding: 24px 24px 0;
	}
	/* META on mobile — bottom + sides only; the grid-gap (24px) above
	   provides separation from the gallery so we don't double up on
	   top-padding. */
	body.single-bigcommerce_product .bc-product-single__meta {
		padding: 0 24px 24px;
	}
	body.single-bigcommerce_product .sn-pdp-description {
		padding: 32px 24px 0 !important;
		margin-left: 0;
		margin-right: 0;
	}
	body.single-bigcommerce_product .bc-single-product__description {
		padding: 0 24px;
	}
	/* Tagline doesn't wrap awkwardly */
	body.single-bigcommerce_product .sn-pdp-tagline {
		font-size: 15px;
		line-height: 1.5;
		max-width: 100%;
	}
	/* Generous vertical spacing between blocks */
	body.single-bigcommerce_product .bc-product-single__meta > * { margin-bottom: 24px; }
	body.single-bigcommerce_product .bc-product-single__meta > *:last-child { margin-bottom: 0; }

	/* Title typography */
	body.single-bigcommerce_product .bc-product__title {
		font-size: 26px !important;
		line-height: 1.15 !important;
	}

	/* Benefit bullets fit ≥375px */
	body.single-bigcommerce_product .sn-pdp-benefit { font-size: 15px; }

	/* Add-to-Cart full-width */
	body.single-bigcommerce_product .sn-pdp-actions .bc-btn,
	body.single-bigcommerce_product .bc-product-form .bc-btn--add_to_cart,
	body.single-bigcommerce_product .bc-product-form .bc-btn--form-submit,
	body.single-bigcommerce_product .bc-product-form button.bc-btn {
		width: 100% !important;
		min-height: 52px !important;
	}

	/* MOBILE THUMBNAIL STRIP — horizontal scroll override
	   ----------------------------------------------------
	   BigCommerce plugin's master.min.css applies these rules WITHOUT a media
	   query, so they hit mobile too:
	     .bc-product-gallery__thumbs { flex-wrap: wrap; }
	     .bc-product-gallery__thumb-slide { width: calc(25% - 10px); margin: 0 10px 10px 0; }
	   Result on mobile: 4-col grid, multi-row stack, ~50% of viewport before
	   the form is visible. Buyers scroll past 14+ thumbnail rows.
	   Fix: override flex-wrap, width, margin to a single-row horizontal scroll
	   with native overflow + scroll-snap. Click-to-swap behavior is preserved
	   because thumbs have data-js="bc-gallery-thumb-trigger" + data-index, and
	   BC's JS binds via those data attributes (NOT class selectors), so our
	   CSS class overrides don't affect the JS.
	*/
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] {
		position: relative !important;
		overflow: hidden !important;
		width: 100% !important;
		margin-top: 12px;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumbs,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .swiper-wrapper {
		display: flex !important;
		flex-direction: row !important;
		flex-wrap: nowrap !important;
		gap: 8px;
		padding: 4px 24px;
		overflow-x: auto !important;
		overflow-y: hidden !important;
		scroll-snap-type: x mandatory;
		-webkit-overflow-scrolling: touch;
		scrollbar-width: none;
		/* override Swiper's transforms — use native scroll on mobile */
		transform: none !important;
		width: auto !important;
		max-width: 100vw;
		align-items: flex-start !important;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .swiper-wrapper::-webkit-scrollbar,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumbs::-webkit-scrollbar {
		display: none !important;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .swiper-slide {
		flex: 0 0 22% !important;
		width: 22% !important;
		max-width: 22% !important;
		min-width: 0 !important;
		margin: 0 !important;
		padding: 0 !important;
		border: 0 !important;
		background: transparent !important;
		scroll-snap-align: start;
		aspect-ratio: 1/1;
		overflow: hidden;
		border-radius: 6px;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide img,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .swiper-slide img {
		width: 100% !important;
		height: 100% !important;
		object-fit: cover !important;
		display: block !important;
		border-radius: 6px;
	}
	/* Active thumb visual indicator (Swiper.js applies this class on click) */
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide.swiper-slide-active,
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide.swiper-slide-thumb-active {
		opacity: 1 !important;
		outline: 2px solid #D81B3D;
		outline-offset: -2px;
		border-radius: 6px;
	}
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide:not(.swiper-slide-active) {
		opacity: 0.7;
	}
	/* Right-edge fade gradient — hints "more thumbnails to the right" */
	body.single-bigcommerce_product [data-js="bc-gallery-thumbs"]::after {
		content: "";
		position: absolute;
		top: 4px; right: 0; bottom: 4px;
		width: 40px;
		background: linear-gradient(to left, rgba(250, 246, 239, 1) 0%, rgba(250, 246, 239, 0) 100%);
		pointer-events: none;
		z-index: 3;
	}

	/* Dynamic dropdown label — allow wrap to 2 lines if selected value is long */
	body.single-bigcommerce_product .sn-pdp-label-dynamic .sn-option-value {
		max-width: 100%;
		white-space: normal;
		text-overflow: clip;
	}

	/* Price row stacks if needed */
	body.single-bigcommerce_product .sn-price-row {
		gap: 8px;
	}
}

/* SMALL DEVICE GUARDS — iOS Safari zoom prevention --------------------------- */
@media (max-width: 767px) {
	body.single-bigcommerce_product .sn-pdp-input,
	body.single-bigcommerce_product .sn-pdp-select,
	body.single-bigcommerce_product input.bc-product-option__text,
	body.single-bigcommerce_product input.bc-product-form__quantity-input {
		font-size: 16px !important;
		min-height: 48px !important;
	}
}

/* ============================================================================
   LEGACY removed 2026-05-06 — keep for reference, delete after 30 days of stable
   production. These rules created an outer 1fr/1fr grid on .bc-product-single
   that pre-split the PDP into halves, squeezing the product form column to
   ~80px on desktop. Every property below is now covered by
   body.single-bigcommerce_product scoped rules earlier in this file.
   --------------------------------------------------------------------------
   ORIGINAL CONTENT (was at lines 902-1001 of pre-removal style.css):

--- Single product page ---
.bc-product-single,
.bc-single-product {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: start;
}
@media (max-width: 900px) {
	.bc-product-single,
	.bc-single-product { grid-template-columns: 1fr; gap: 24px; }
}
.bc-product__images,
.bc-product-single__images {
	border-radius: 32px;
	overflow: hidden;
	box-shadow: var(--qb-shadow-soft);
	background: linear-gradient(135deg, #FFFCF7 0%, #F5D8DA 100%);
}
.bc-product__images img,
.bc-product-single__images img {
	width: 100%; height: auto; display: block;
}
.bc-product__title,
.bc-product-single__title {
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 800 !important;
	font-size: 36px !important;
	letter-spacing: -0.01em !important;
	margin: 0 0 16px !important;
	color: var(--qb-text) !important;
}
.bc-product__price,
.bc-product-single__price {
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 28px !important;
	color: var(--qb-text) !important;
	margin: 0 0 24px !important;
}
.bc-product__description,
.bc-product-single__description {
	color: var(--qb-text-soft) !important;
	line-height: 1.7 !important;
	margin-bottom: 28px;
}
.single-bigcommerce_product input[type="text"],
.single-bigcommerce_product input[type="number"],
.single-bigcommerce_product input[type="email"],
.single-bigcommerce_product select,
.single-bigcommerce_product textarea {
	background: var(--qb-cream);
	border: 1px solid var(--qb-cream-deep);
	border-radius: 14px;
	padding: 12px 16px;
	font-family: "Be Vietnam Pro", sans-serif;
	font-size: 15px;
	color: var(--qb-text);
	outline: none;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.single-bigcommerce_product input[type="text"]:focus,
.single-bigcommerce_product input[type="number"]:focus,
.single-bigcommerce_product input[type="email"]:focus,
.single-bigcommerce_product select:focus,
.single-bigcommerce_product textarea:focus {
	border-color: var(--qb-pink);
	box-shadow: 0 0 0 4px rgba(232, 180, 184, 0.25);
}
.single-bigcommerce_product label {
	font-family: "Be Vietnam Pro", sans-serif;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: 0.04em;
	color: var(--qb-text);
	display: block;
	margin-bottom: 6px;
}
.single-bigcommerce_product button,
.single-bigcommerce_product .bc-btn,
.bc-btn,
.bc-btn--buy_now {
	background: var(--qb-pink) !important;
	color: var(--qb-text) !important;
	border: 0 !important;
	border-radius: 999px !important;
	padding: 14px 28px !important;
	font-family: "Be Vietnam Pro", sans-serif !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	letter-spacing: 0.02em !important;
	box-shadow: var(--qb-shadow-button) !important;
	cursor: pointer;
	transition: background .15s ease, color .15s ease, transform .15s ease;
}
.single-bigcommerce_product button:hover,
.bc-btn:hover {
	background: var(--qb-pink-deep) !important;
	color: #fff !important;
}

   ============================================================================ */

/* ===========================================================================
   PRODUCT PAGE LAYOUT v2 — clean rebuild 2026-05-07
   (v2.1 refinement 2026-05-07 — Lovevery-style mobile architecture)
   ===========================================================================
   Refinement of the v2 clean rebuild: section ORDER changed so the cream
   gallery is the first thing the buyer sees after the header, the price + form
   are wrapped in a bordered conversion CARD, a thin trust line sits below the
   card, and benefit bullets + SKU are pushed below — matching Lovevery's
   mobile PDP architecture.

   DOM emitted by product-single.php v6 (inside <main class="qb-main">):
       <div class="snugibo-pdp" data-js="bc-product-data-wrapper">
         <div class="snugibo-pdp__gallery">                 ← cream panel — FIRST
           <?= $images ?>
         </div>
         <div class="snugibo-pdp__breadcrumb">…</div>
         <div class="snugibo-pdp__title-block">             ← rating + title + tagline
           <div class="sn-rating">…</div>
           <p class="sn-rating-attribution">…</p>
           <h1 class="bc-product__title">…</h1>
           <p class="sn-pdp-tagline">…</p>
         </div>
         <div class="snugibo-pdp__form-card" data-js="bc-product-meta">  ← bordered CARD
           <div class="sn-price-row">…</div>
           <?= $form ?>
         </div>
         <p class="snugibo-pdp__trust">…</p>                ← muted trust line below card
         <ul class="snugibo-pdp__benefits sn-pdp-benefits">…</ul>  ← benefits below trust
         <div class="snugibo-pdp__meta sn-pdp-meta-fine">…</div>
         <div class="snugibo-pdp__description">…</div>
       </div>
       <?= $specs ?> <?= $reviews ?> <?= $related ?>

   LAYOUT MODES:
       Mobile (<768px): single-column DOM-order stack — gallery (edge-to-edge)
       → breadcrumb → title-block → form-card → trust → benefits → meta →
       description.
       Desktop (≥768px): 2-col CSS grid via grid-template-areas. Left col 55%
       holds the gallery (sticky on ≥1100px). Right col 45% holds breadcrumb,
       title, form-card, trust, benefits, meta — stacked. Description spans
       BOTH columns full-width below.

   SPECIFICITY: every rule is prefixed with body.single-bigcommerce_product
   so it has the same specificity as legacy rules (0,0,2,N) and wins them
   by being later in the cascade.
   =========================================================================== */

/* CSS variables — local to .snugibo-pdp, doesn't leak elsewhere */
body.single-bigcommerce_product .snugibo-pdp {
	--berry: #D81B3D;
	--muted: #5F5E5A;
	--ink: #0F0F0F;
	--body: #3A3A38;
	--peach: #FBE9D7;
	--divider: #E8E2D5;
	--side-pad: 24px;
}

/* DEAD-SPACE FIX — zero out the top padding the legacy theme rule applies
   to .qb-main on product pages (style.css:2369 sets 24/40/56px top padding).
   The cream gallery should sit flush under the SNUGIBO header with NO empty
   strip in between. Bottom + horizontal padding from the legacy rule are
   preserved — only top is killed. */
body.single-bigcommerce_product .qb-main {
	padding-top: 0 !important;
}

/* GRID CONTAINER — mobile single col, desktop 2-col with named areas */
body.single-bigcommerce_product .snugibo-pdp {
	display: grid;
	grid-template-columns: 1fr;
	gap: 0;
	width: 100%;
	max-width: 100%;
	margin: 0 auto;
	padding: 0;
	background: #FFFFFF;
	box-sizing: border-box;
}
body.single-bigcommerce_product .snugibo-pdp,
body.single-bigcommerce_product .snugibo-pdp *,
body.single-bigcommerce_product .snugibo-pdp *::before,
body.single-bigcommerce_product .snugibo-pdp *::after {
	box-sizing: border-box;
}
body.single-bigcommerce_product .snugibo-pdp > * {
	min-width: 0;
	max-width: 100%;
}

@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp {
		grid-template-columns: minmax(0, 55fr) minmax(0, 45fr);
		grid-template-areas:
			"gallery breadcrumb"
			"gallery title"
			"gallery benefits"
			"gallery price"
			"gallery card"
			"gallery trust"
			"gallery preorder"
			"gallery meta"
			"gallery description"
			"gallery shipping";
		gap: 0 40px;
		padding: 24px var(--side-pad);
		max-width: 1200px;
		align-items: start;
	}
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp {
		gap: 0 56px;
		padding: 32px 40px;
	}
}

/* ============ 1. BREADCRUMB ============
   HIDDEN by request — most buyers arrive via Meta ads, not category browsing.
   Markup stays in the override so it can be re-enabled by removing this
   display:none, with all original styling rules below still in force. */
body.single-bigcommerce_product .snugibo-pdp__breadcrumb {
	display: none !important;
}
/* Original breadcrumb styles — kept in source order so re-enabling is just a
   matter of dropping the display:none !important above. Once dropped, the
   display:flex below takes over. */
body.single-bigcommerce_product .snugibo-pdp__breadcrumb {
	padding: 24px var(--side-pad) 8px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--muted);
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 6px;
	background: #FFFFFF;
}
body.single-bigcommerce_product .snugibo-pdp__breadcrumb a,
body.single-bigcommerce_product .snugibo-pdp__breadcrumb .sn-breadcrumb-link {
	color: var(--muted);
	text-decoration: none;
	transition: color 0.15s ease;
}
body.single-bigcommerce_product .snugibo-pdp__breadcrumb a:hover,
body.single-bigcommerce_product .snugibo-pdp__breadcrumb .sn-breadcrumb-link:hover {
	color: var(--berry);
}
body.single-bigcommerce_product .snugibo-pdp__breadcrumb .sn-breadcrumb-sep {
	color: #C9BBA8;
	user-select: none;
}
body.single-bigcommerce_product .snugibo-pdp__breadcrumb .sn-breadcrumb-current {
	color: var(--ink);
	font-weight: 500;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__breadcrumb {
		grid-area: breadcrumb;
		padding: 0 0 8px;
	}
}

/* ============ 2. TITLE BLOCK (rating + title-row[title|price] + tagline) ============
   Tight stack — 6px between elements, sits within the 4-6px (rating→title)
   and 6-8px (title→tagline) target ranges. With the breadcrumb hidden, the
   title-block now provides the breathing room from the gallery: 20px top
   padding on mobile, 0 on desktop (where the grid handles spacing). */
body.single-bigcommerce_product .snugibo-pdp__title-block {
	padding: 20px var(--side-pad) 0;
	background: #FFFFFF;
	display: flex;
	flex-direction: column;
	gap: 6px;                      /* rating → title-row → tagline */
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__title-block {
		grid-area: title;
		padding: 0;
	}
}

/* Rating row */
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating {
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
	margin: 0;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 500;
	line-height: 1.3;
	color: var(--muted);
}
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating-stars {
	color: var(--berry);
	font-size: 14px;
	letter-spacing: 1px;
	line-height: 1;
}
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating-meta {
	color: var(--muted);
	text-decoration: none;
	font-size: 13px;
	font-weight: 500;
}
body.single-bigcommerce_product .snugibo-pdp__title-block a.sn-rating-meta:hover {
	color: var(--berry);
	text-decoration: underline;
}
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating-count strong {
	font-weight: 600;
	color: var(--ink);
}
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-rating-attribution {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 400;
	color: #8A8780;
	margin: -4px 0 0;              /* negative top to tighten under .sn-rating */
	line-height: 1.4;
	letter-spacing: 0.1px;
	/* HIDDEN by request — the rating row already says "from Etsy" inline so
	   this second line is redundant. Markup stays in the rating override
	   (product-rating.php) so dropping this display:none brings it back. */
	display: none !important;
}

/* Title-row — flex space-between, title left, price right.
   v2.1.4 fix: added max-width:100% + overflow-wrap on title to prevent the
   price from sliding off the right edge after BC's price-API hook re-renders
   the inline-flex pricing wrapper post-load. flex-wrap removed because it
   was masking the real problem (title not breaking). Now: title flex-shrinks
   AND wraps long words; price holds nowrap on a single line; container is
   pinned to 100% viewport width with no overflow. */
body.single-bigcommerce_product .snugibo-pdp__title-row {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	max-width: 100%;
	min-width: 0;                  /* allow shrinking inside parent flex/grid */
	box-sizing: border-box;
}
body.single-bigcommerce_product .snugibo-pdp__title-wrap {
	flex: 1 1 auto;
	min-width: 0;                  /* lets title shrink AND wrap inside flex */
	word-wrap: break-word;
	overflow-wrap: break-word;
}
/* Title H1 must be allowed to wrap on word boundaries (and break long
   single tokens if any). Without these the H1 keeps intrinsic width and
   pushes the price off-screen. */
body.single-bigcommerce_product .snugibo-pdp__title-wrap .bc-product__title,
body.single-bigcommerce_product .snugibo-pdp__title-wrap h1 {
	word-wrap: break-word;
	overflow-wrap: break-word;
	hyphens: auto;
	max-width: 100%;
}
/* Price typography — Inter 600, --berry, 26px standalone block. */
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__price {
	font-family: 'Inter', sans-serif !important;
	font-size: 26px !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	color: var(--berry) !important;
	margin: 0 !important;
	padding: 0 !important;
	letter-spacing: -0.2px !important;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__price {
		font-size: 30px !important;
	}
}
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__retail-price,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__original-price {
	font-family: 'Inter', sans-serif !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: #7A6F62 !important;
	text-decoration: line-through !important;
	margin: 0 !important;
}
/* BC's own price wrapper margins reset inside title-price */
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--api {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	flex-wrap: nowrap;
}
/* Sold-out label — appears next to price when body.bc-availability-unavailable */
body.single-bigcommerce_product .snugibo-pdp__price-block .sn-sold-out-label {
	display: none;
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #7A6F62;
}
body.bc-availability-unavailable .snugibo-pdp__price-block .sn-sold-out-label {
	display: inline-flex;
}
/* Very narrow viewports (<360px): allow wrapping so price drops below title.
   At 375px+ the row stays single-line. */
@media (max-width: 359px) {
	body.single-bigcommerce_product .snugibo-pdp__title-row {
		flex-direction: column;
		align-items: flex-start;
		gap: 4px;
	}
}

/* Title — Inter 600, --ink, 28px, line-height 1.15 */
body.single-bigcommerce_product .snugibo-pdp__title-block .bc-product__title,
body.single-bigcommerce_product .snugibo-pdp__title-block .h1 {
	font-family: 'Inter', sans-serif !important;
	font-size: 28px !important;
	font-weight: 600 !important;
	line-height: 1.15 !important;
	letter-spacing: -0.4px !important;
	color: var(--ink) !important;
	margin: 0 !important;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp__title-block .bc-product__title,
	body.single-bigcommerce_product .snugibo-pdp__title-block .h1 {
		font-size: 34px !important;
	}
}

/* Tagline — Inter 400 italic, --body, 16px */
body.single-bigcommerce_product .snugibo-pdp__title-block .sn-pdp-tagline {
	font-family: 'Inter', sans-serif;
	font-style: italic;
	font-weight: 400;
	font-size: 16px;
	line-height: 1.5;
	color: var(--body);
	margin: 0;
	max-width: 100%;
}

/* ============ 3. CREAM GALLERY (hero + thumbs) — MOBILE-FIRST, sits at TOP ============
   Edge-to-edge cream panel on mobile so the hero image dominates the viewport
   on initial load. On mobile, padding is 0 0 16px 0 — the hero touches the
   top edge of the cream panel directly (no internal cream strip above it),
   16px breathing below for the thumb strip.
   On desktop, the panel becomes a rounded card so 16px top/bottom padding is
   re-introduced for inset thumb spacing. */
body.single-bigcommerce_product .snugibo-pdp__gallery {
	background: var(--peach);
	padding: 0 0 16px;             /* ZERO top — hero hugs cream-block top edge */
	width: 100%;
	max-width: 100%;
	position: relative;
	overflow: hidden;
}
/* (Removed v2.0.8: the 60vh min-height was extending the cream panel below
   the natural content on taller viewports — leaving up to 72px of empty
   cream below the thumbnails on iPhone 14+ class viewports. The natural
   content size, 1:1 hero + 16px thumb-margin + 80px thumbs + 16px bottom
   padding, gives ~487px on a 375px-wide viewport which is 60% of an
   iPhone X 812px viewport. Letting the cream panel size naturally to the
   content keeps the bottom edge tight per the consolidation-round spec.) */
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__gallery {
		grid-area: gallery;
		border-radius: 10px;
		padding: 24px 0;
		align-self: start;
	}
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp__gallery {
		position: sticky;
		top: 24px;
	}
}

/* Defuse BC plugin's flex/width/margin/position rules on the inner gallery
   wrappers (.bc-product__gallery, .bc-product-gallery__images) — we need
   these to be transparent and fill 100% width within our cream panel. */
body.single-bigcommerce_product .snugibo-pdp__gallery .bc-product__gallery,
body.single-bigcommerce_product .snugibo-pdp__gallery .bc-product-gallery__images {
	background: transparent !important;
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	border-radius: 0 !important;
	position: static !important;
	flex: initial !important;
	overflow: visible !important;
}

/* Hero swiper container — full width, no horizontal padding */
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-container"] {
	width: 100% !important;
	max-width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
}
/* Hero image — full container width, square aspect */
body.single-bigcommerce_product .snugibo-pdp__gallery .swiper-slide.bc-product-gallery__image-slide img {
	width: 100% !important;
	height: auto !important;
	max-width: 100% !important;
	display: block !important;
	aspect-ratio: 1/1;
	object-fit: cover;
}

/* Thumbnail strip — 80px tall, 12px gap, horizontal scroll, 16px top margin
   from hero, 16px bottom padding inside cream */
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] {
	margin-top: 16px;
	margin-bottom: 0;
	position: relative;
	width: 100%;
	overflow: hidden;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-wrapper,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumbs {
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	gap: 12px;
	padding: 0 16px;
	overflow-x: auto;
	overflow-y: hidden;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	transform: none !important;
	width: auto !important;
	max-width: 100vw;
	align-items: flex-start;
	margin: 0 !important;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-wrapper::-webkit-scrollbar,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumbs::-webkit-scrollbar {
	display: none;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide {
	flex: 0 0 80px !important;
	width: 80px !important;
	height: 80px !important;
	min-width: 0 !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	border-radius: 6px;
	overflow: hidden;
	cursor: pointer;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide img,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide.swiper-slide-active,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide.swiper-slide-thumb-active,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide.swiper-slide-active,
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide.swiper-slide-thumb-active {
	outline: 2px solid var(--berry);
	outline-offset: -2px;
	opacity: 1;
}
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .swiper-slide:not(.swiper-slide-active),
body.single-bigcommerce_product .snugibo-pdp__gallery [data-js="bc-gallery-thumbs"] .bc-product-gallery__thumb-slide:not(.swiper-slide-active) {
	opacity: 0.7;
}

/* ============ 4. FORM CARD (price + form) — bordered conversion card ============
   Lovevery-style mobile architecture: this is the high-priority conversion
   block, visually unified by a 1px border + 16px radius + subtle shadow + 24px
   internal padding. White bg keeps it bright against the surrounding white
   page. data-js="bc-product-meta" hook stays on this wrapper. */
body.single-bigcommerce_product .snugibo-pdp__form-card {
	margin: 20px var(--side-pad) 0;
	padding: 24px;
	background: #FFFFFF;
	/* No border — was 1px solid var(--divider). Combined with the offset shadow
	   below, that border read as "two thin lines stacked" along the card's top
	   edge. Switching to shadow-only definition (Lovevery soft-card pattern)
	   eliminates the duplicate. */
	border: 0;
	border-radius: 16px;
	box-shadow: 0 1px 2px rgba(15, 15, 15, 0.05), 0 8px 24px rgba(15, 15, 15, 0.08);
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__form-card {
		grid-area: card;
		margin: 16px 0 0;
		padding: 28px;
	}
}

/* (Old benefit-bullets-inside-card rules are intentionally removed; the
   benefits now live OUTSIDE the card — see "BENEFITS (outer)" below.) */

/* Price row — sits at the top of the card, no border-bottom (the card border
   contains it). 0 top margin so it hugs the card's top edge. */
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row {
	margin: 0;
	padding: 0 0 16px;
	border-bottom: 1px solid var(--divider);
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 12px;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row > .bc-product__pricing--cached,
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row > .bc-product__pricing--api {
	margin: 0 !important;
	padding: 0 !important;
	display: inline-flex;
	align-items: baseline;
	gap: 10px;
	flex-wrap: wrap;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row .bc-product__price {
	font-family: 'Inter', sans-serif !important;
	font-size: 24px !important;
	font-weight: 700 !important;
	line-height: 1 !important;
	color: var(--berry) !important;
	margin: 0 !important;
}
@media (min-width: 1100px) {
	body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row .bc-product__price {
		font-size: 28px !important;
	}
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row .bc-product__retail-price,
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-price-row .bc-product__original-price {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	color: #7A6F62 !important;
	text-decoration: line-through !important;
	margin: 0 !important;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-sold-out-label {
	display: none;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.5px;
	text-transform: uppercase;
	color: #7A6F62;
}
body.bc-availability-unavailable .snugibo-pdp__form-card .sn-sold-out-label {
	display: inline-flex;
}

/* Form (BC's <form class="bc-product-form">) — 0 top margin: the form is now
   the only direct child of .snugibo-pdp__form-card (price moved to title row),
   so it should hug the card's top padding edge. */
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form {
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 20px;                     /* between options + actions */
}
/* Option fields stack with 20px gap (theme dropdown / name input) */
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__options {
	display: flex !important;
	flex-direction: column !important;
	gap: 20px !important;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__option-field {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__option-label,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__quantity-label {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--ink);
	margin: 0;
	letter-spacing: 0;
	text-transform: none;
}
body.single-bigcommerce_product .snugibo-pdp__form-card select,
body.single-bigcommerce_product .snugibo-pdp__form-card input[type="text"],
body.single-bigcommerce_product .snugibo-pdp__form-card input[type="email"],
body.single-bigcommerce_product .snugibo-pdp__form-card input[type="number"] {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 500;
	line-height: 1.5;
	color: var(--ink);
	background: #FFFFFF;
	border: 1px solid #C9BBA8;
	border-radius: 8px;
	padding: 12px 14px;
	width: 100%;
	min-height: 48px;
	transition: border-color 0.15s ease, box-shadow 0.15s ease;
	-webkit-appearance: none;
	-moz-appearance: none;
	appearance: none;
}
body.single-bigcommerce_product .snugibo-pdp__form-card select {
	background-image: url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 12 8"><path fill="%235F5E5A" d="M6 8L0 0h12z"/></svg>');
	background-repeat: no-repeat;
	background-position: right 14px center;
	background-size: 12px;
	padding-right: 40px;
}
body.single-bigcommerce_product .snugibo-pdp__form-card select:focus,
body.single-bigcommerce_product .snugibo-pdp__form-card input:focus {
	outline: 0;
	border-color: var(--berry);
	box-shadow: 0 0 0 3px rgba(216, 27, 61, 0.12);
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-personalization-hint,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__option-description {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: #7A6F62;
	margin: 6px 0 0;
	line-height: 1.5;
}

/* Quantity stepper + CTA — 16px gap between qty and CTA */
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-pdp-actions {
	display: flex !important;
	flex-direction: column !important;
	gap: 16px !important;
	margin: 0 !important;
	padding: 0 !important;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-pdp-quantity,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-product-form__quantity {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin: 0;
	padding: 0;
}
body.single-bigcommerce_product .snugibo-pdp__form-card input.bc-product-form__quantity-input {
	width: 100px;
	min-height: 48px;
	text-align: center;
	font-size: 16px;
	font-weight: 600;
	border: 1px solid #C9BBA8;
	border-radius: 8px;
	padding: 0 12px;
}

/* Add-to-Cart button — full-width on mobile (and desktop in this layout) */
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn--add_to_cart,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn--form-submit,
body.single-bigcommerce_product .snugibo-pdp__form-card button.bc-btn,
body.single-bigcommerce_product .snugibo-pdp__form-card input.bc-btn[type="submit"],
body.single-bigcommerce_product .snugibo-pdp__form-card .sn-pdp-actions .bc-btn {
	width: 100% !important;
	min-height: 52px !important;
	background: var(--berry) !important;
	color: #FFFFFF !important;
	border: 0 !important;
	border-radius: 999px !important;
	font-family: 'Inter', sans-serif !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	text-transform: none !important;
	cursor: pointer;
	transition: background 0.15s ease, color 0.15s ease, transform 0.15s ease, opacity 0.15s ease !important;
	box-shadow: 0 4px 12px rgba(216, 27, 61, 0.18);
	margin: 0 !important;
	padding: 14px 28px !important;
}
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn--add_to_cart:hover,
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn--form-submit:hover,
body.single-bigcommerce_product .snugibo-pdp__form-card button.bc-btn:hover {
	background: #B81832 !important;
	color: #FFFFFF !important;
	transform: translateY(-1px);
}
body.single-bigcommerce_product .snugibo-pdp__form-card .bc-btn.sn-btn-disabled {
	background: #C9BBA8 !important;
	color: var(--muted) !important;
	cursor: not-allowed !important;
	box-shadow: none !important;
	transform: none !important;
	pointer-events: none !important;
}

/* (Old SKU-inside-card rules removed; SKU is now a sibling — see "META (outer)" below.) */

/* ============ 5. TRUST SIGNAL LINE (outer, between card and benefits) ============
   Thin muted line — no border, no card. Visually understated. */
body.single-bigcommerce_product .snugibo-pdp__trust {
	margin: 12px var(--side-pad) 0;
	padding: 0;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	line-height: 1.5;
	color: #7A6F62;
	text-align: left;
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 4px;
}
body.single-bigcommerce_product .snugibo-pdp__trust .snugibo-pdp__trust-sep {
	color: #C9BBA8;
	user-select: none;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__trust {
		grid-area: trust;
		margin: 12px 0 0;
	}
}

/* ============ 6. BENEFITS (between title-block and form-card now) ============
   3 rows, icon + bold short phrase. Sits right under the tagline as the
   at-a-glance trust signal cluster, before the form-card. 16px top margin
   feels tight without crowding. */
body.single-bigcommerce_product .snugibo-pdp__benefits,
body.single-bigcommerce_product ul.snugibo-pdp__benefits {
	list-style: none;
	padding: 0;
	margin: 16px var(--side-pad) 0;
	display: flex;
	flex-direction: column;
	gap: 12px;
}
body.single-bigcommerce_product .snugibo-pdp__benefits .sn-pdp-benefit {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	font-weight: 600;
	line-height: 1.5;
	color: var(--ink);
}
body.single-bigcommerce_product .snugibo-pdp__benefits .sn-pdp-benefit-icon {
	flex-shrink: 0;
	font-size: 18px;
	line-height: 1.3;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__benefits,
	body.single-bigcommerce_product ul.snugibo-pdp__benefits {
		grid-area: benefits;
		margin: 24px 0 0;
	}
}

/* ============ 4b. PRICE BLOCK (below benefits) ============ */
body.single-bigcommerce_product .snugibo-pdp__price-block {
	display: inline-flex;
	align-items: baseline;
	gap: 8px;
	padding: 0 var(--side-pad);
	margin: 8px 0 0;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__price-block {
		grid-area: price;
		padding: 0;
	}
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__preorder {
		grid-area: preorder;
	}
	body.single-bigcommerce_product .snugibo-pdp__shipping {
		grid-area: shipping;
	}
}

/* ============ 7. META (outer, below benefits — brand + SKU) ============
   Small, muted, top border (separates from benefits). */
body.single-bigcommerce_product .snugibo-pdp__meta {
	margin: 24px var(--side-pad) 0;
	padding: 16px 0 0;
	border-top: 1px solid var(--divider);
	display: flex;
	flex-wrap: wrap;
	gap: 4px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 500;
	color: #7A6F62;
}
body.single-bigcommerce_product .snugibo-pdp__meta .bc-product__brand,
body.single-bigcommerce_product .snugibo-pdp__meta .bc-product__sku,
body.single-bigcommerce_product .snugibo-pdp__meta .bc-product-single__meta-sku {
	margin: 0 !important;
	padding: 0 !important;
	font-size: 12px !important;
	font-weight: 500 !important;
	color: #7A6F62 !important;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__meta {
		grid-area: meta;
		margin: 24px 0 0;
	}
}

/* ============ 8. WHAT'S INCLUDED — native <details>/<summary> ============
   Renamed from "Product Description" and converted to a tap-to-expand
   collapsible. Now uses HTML5 <details>/<summary> for native browser-driven
   open/close — zero JS dependency, zero failure modes related to script
   execution. Browser handles aria-expanded, keyboard activation, and the
   open/close toggle automatically.

   Wrapper sits full-width on mobile (block in DOM order) and spans both
   grid columns on desktop ("description description"). */
body.single-bigcommerce_product .snugibo-pdp__description {
	padding: 0;
	margin: 16px 0 0;
	background: transparent;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__description {
		grid-area: description;
		padding: 0;
		margin: 16px 0 0;
	}
}

/* The clickable summary row — full-width, 56px tall (above 48px tap-target
   floor), top + bottom 1px --divider borders, 16px vertical / 24px horizontal
   padding. Edge-to-edge on mobile so the borders stretch the viewport. */
body.single-bigcommerce_product .snugibo-pdp__accordion-summary {
	box-sizing: border-box;
	display: flex;
	width: 100%;
	min-height: 56px;
	padding: 16px var(--side-pad);
	border-top: 1px solid var(--divider);
	border-bottom: 1px solid var(--divider);
	background: transparent;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 16px;
	line-height: 1.3;
	color: var(--ink);
	text-align: left;
	cursor: pointer;
	-webkit-tap-highlight-color: transparent;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	transition: background-color 0.15s ease;
	/* Suppress the default disclosure-triangle marker — we use a custom chevron */
	list-style: none;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-summary::-webkit-details-marker { display: none; }
body.single-bigcommerce_product .snugibo-pdp__accordion-summary::marker { content: ''; }
body.single-bigcommerce_product .snugibo-pdp__accordion-summary:hover {
	background-color: rgba(15, 15, 15, 0.025);
}
body.single-bigcommerce_product .snugibo-pdp__accordion-summary:focus-visible {
	outline: 2px solid var(--berry);
	outline-offset: -2px;
}

body.single-bigcommerce_product .snugibo-pdp__accordion-label {
	flex: 1 1 auto;
	min-width: 0;
}

/* Chevron — rotates 180° when <details> is open. */
body.single-bigcommerce_product .snugibo-pdp__accordion-chevron {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 20px;
	height: 20px;
	color: var(--muted);
	transition: transform 250ms cubic-bezier(.4, 0, .2, 1);
}
body.single-bigcommerce_product .snugibo-pdp__accordion[open] .snugibo-pdp__accordion-chevron {
	transform: rotate(180deg);
}

/* Content body — only rendered (per native <details> behavior) when the
   accordion is open. */
body.single-bigcommerce_product .snugibo-pdp__accordion-content {
	padding: 16px var(--side-pad) 24px;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-content p {
	font-family: 'Inter', sans-serif !important;
	font-size: 16px !important;
	font-weight: 400 !important;
	line-height: 1.6 !important;
	color: var(--body) !important;
	margin: 0 0 14px !important;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-content p:last-child { margin-bottom: 0 !important; }
body.single-bigcommerce_product .snugibo-pdp__accordion-content ul,
body.single-bigcommerce_product .snugibo-pdp__accordion-content ol {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	line-height: 1.6;
	color: var(--body);
	padding-left: 22px;
	margin: 0 0 14px;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-content li { margin-bottom: 6px; }

@media (prefers-reduced-motion: reduce) {
	body.single-bigcommerce_product .snugibo-pdp__accordion-chevron {
		transition: none !important;
	}
}

/* ============ 9. SPECIFICATIONS BLOCK — HIDDEN ============
   BC's product-specs.php emits "Specifications / Weight: 1 kg" which is
   redundant on the product page (shipping + weight are calculated at
   checkout). The PHP override wraps the [$specs] echo in our own
   .snugibo-pdp__specs-wrapper which we hide here. Markup stays in the DOM
   for SEO / structured-data purposes. */
body.single-bigcommerce_product .snugibo-pdp__specs-wrapper {
	display: none !important;
}

/* ============ POLISH ROUND v2.0.9 ============
   Six tightening fixes targeting issues confirmed in the live HTML diff. */

/* (Fix 2) Hide the SKU/brand meta line. The user wants "SKU: 111-BE" gone;
   the .snugibo-pdp__meta wrapper holds both brand and SKU and is the cleanest
   single hide point. Markup stays for re-enable. */
body.single-bigcommerce_product .snugibo-pdp__meta,
body.single-bigcommerce_product .sn-pdp-meta-fine {
	display: none !important;
}

/* (Fix 3) Remove BOTH horizontal lines under the price. Live HTML reveals BC
   plugin renders TWO <p> elements inside .bc-product__pricing —
   .bc-product__pricing--cached (the visible $69.00) AND .bc-product__pricing--api
   (an empty MSRP/sale wrapper containing struck-through MSRP/retail/sale
   spans). The empty struck spans render as thin horizontal lines stacked
   under the price. Hide the entire --api wrapper and any empty retail/sale
   span as defense. */
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--api {
	display: none !important;
}
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__retail-price,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__price--sale,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__price--base,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__original-price {
	/* Empty by default for products without sale/MSRP — hide them so they don't
	   render as thin struck-through lines. */
	display: none !important;
}

/* REGRESSION FIX (v2.1.3): force the cached price paragraph + the visible
   .bc-product__price span to stay visible regardless of what BC's price-API
   verification JS does. BC's frontend toggles --visible between the cached
   and api paragraphs after the API call resolves; combined with our blanket
   --api hide above, the price would otherwise disappear after BC's resolve.
   These !important rules pin the cached + visible price element on screen.
   Scoped tightly to .snugibo-pdp__price-block so they don't bleed elsewhere. */
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached.bc-product__pricing--visible,
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached:not(.bc-product__pricing--visible) {
	display: inline-flex !important;
	visibility: visible !important;
	opacity: 1 !important;
	width: auto !important;
	height: auto !important;
}
body.single-bigcommerce_product .snugibo-pdp__price-block .bc-product__pricing--cached .bc-product__price,
body.single-bigcommerce_product .snugibo-pdp__price-block > .bc-product__pricing > .bc-product__pricing--cached .bc-product__price {
	display: inline !important;
	visibility: visible !important;
	opacity: 1 !important;
}

/* (Fix 4) Hide the TODO tagline placeholder. Markup retained so re-enable is
   trivial once the BC custom field 'product_tagline' is wired. */
body.single-bigcommerce_product .sn-pdp-tagline {
	display: none !important;
}

/* (Fix 5 + 6) Close the empty cream stripes — between accordion and reviews,
   and below "Write a Review". The cream tint comes from
   `body.single-bigcommerce_product { background: #FAF6EF }` (style.css:2365)
   showing through transparent gaps. Switching the body background to white
   on the product page makes ALL such gaps render as white instead of cream
   — fixes both stripes with one rule. The cream gallery panel itself keeps
   its --peach background via the rule on .snugibo-pdp__gallery (unaffected). */
body.single-bigcommerce_product {
	background: #FFFFFF !important;
}
/* Also tighten the reviews section's vertical breathing — the legacy 48px
   margin-top + 32px padding-top = 80px gap above reviews was a major
   contributor to the visible stripe. Cut to 24px + 24px. */
body.single-bigcommerce_product .bc-product-reviews__header,
body.single-bigcommerce_product .bc-product-review-form-wrapper {
	margin-top: 24px !important;
	padding-top: 24px !important;
}
/* And tighten the .qb-main bottom padding since the review-form wrapper
   already provides its own breathing — 48-80px below review form was
   creating the second cream stripe. */
body.single-bigcommerce_product .qb-main {
	padding-bottom: 24px !important;
}

.sn-logo-wordmark {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	letter-spacing: 1.5px;
	text-transform: uppercase;
	color: var(--ink, #0F0F0F);
	line-height: 1;
}
@media (min-width: 768px) {
	.sn-logo-wordmark { font-size: 18px; }
}
.sn-logo-link.sn-logo-link--text {
	min-height: 0;
	padding: 0;
	text-decoration: none;
}
.sn-logo-link.sn-logo-link--text:hover .sn-logo-wordmark,
.sn-logo-link.sn-logo-link--text:focus-visible .sn-logo-wordmark {
	color: var(--berry, #D81B3D);
}

/* iOS Safari: prevent zoom-on-focus by keeping form input font-size ≥ 16px */
@media (max-width: 767px) {
	body.single-bigcommerce_product .snugibo-pdp__form-card input,
	body.single-bigcommerce_product .snugibo-pdp__form-card select,
	body.single-bigcommerce_product .snugibo-pdp__form-card textarea {
		font-size: 16px !important;
	}
}

/* ============ BC variant-change AJAX SINK ============
   Hidden bin where BC's frontend JS can write variant meta HTML on every
   variant change without disrupting our visible price/title/form layout.
   Uses both the hidden attribute and explicit display:none for defense. */
body.single-bigcommerce_product .snugibo-pdp__bc-meta-sink,
body.single-bigcommerce_product .snugibo-pdp [data-js="bc-product-meta"].snugibo-pdp__bc-meta-sink {
	display: none !important;
	visibility: hidden;
	width: 0;
	height: 0;
	overflow: hidden;
	pointer-events: none;
}

/* ========================= SLIDE-IN CART DRAWER ========================= */

.sn-cart-backdrop {
	position: fixed;
	inset: 0;
	background: rgba(0, 0, 0, 0.45);
	z-index: 9998;
	opacity: 0;
	visibility: hidden;
	transition: opacity 200ms ease-in, visibility 0s linear 200ms;
	-webkit-tap-highlight-color: transparent;
}
.sn-cart-backdrop.is-open {
	opacity: 1;
	visibility: visible;
	transition: opacity 250ms ease-out, visibility 0s linear;
}

.sn-cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	bottom: 0;
	width: 100%;
	z-index: 9999;
	display: flex;
	flex-direction: column;
	background: #fff;
	box-shadow: -4px 0 24px rgba(0, 0, 0, 0.12);
	transform: translateX(100%);
	transition: transform 200ms ease-in;
	overflow: hidden;
}
.sn-cart-drawer.is-open {
	transform: translateX(0);
	transition: transform 250ms ease-out;
}
@media (min-width: 768px) {
	.sn-cart-drawer { max-width: 420px; }
}

body.sn-cart-open { overflow: hidden; }

.sn-cart-drawer__header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 20px 24px;
	border-bottom: 1px solid var(--qb-outline, #C9BBA8);
	flex-shrink: 0;
}
.sn-cart-drawer__title {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 600;
	color: var(--qb-text, #3A332C);
	letter-spacing: -0.01em;
}
.sn-cart-drawer__close {
	background: none;
	border: none;
	cursor: pointer;
	padding: 8px;
	color: var(--qb-text-soft, #7A6F62);
	line-height: 1;
	width: 40px;
	height: 40px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	transition: background 0.15s ease;
	flex-shrink: 0;
}
.sn-cart-drawer__close:hover { background: rgba(0, 0, 0, 0.05); }

.sn-cart-drawer__body {
	flex: 1;
	overflow-y: auto;
	padding: 0 24px;
	-webkit-overflow-scrolling: touch;
}

.sn-cart-drawer__empty {
	text-align: center;
	padding: 48px 24px;
	color: var(--qb-text-soft, #7A6F62);
	font-family: 'Inter', sans-serif;
	font-size: 15px;
	line-height: 1.5;
}
.sn-cart-drawer__loading {
	padding: 32px 24px;
	text-align: center;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
}

.sn-cart-drawer__footer {
	flex-shrink: 0;
	padding: 16px 24px 24px;
	border-top: 1px solid var(--qb-outline, #C9BBA8);
	text-align: center;
}
.sn-cart-drawer__subtotal-row { margin-bottom: 16px; }

.sn-cart-drawer__checkout {
	display: flex;
	width: 100%;
	padding: 14px 24px;
	background: #D81B3D;
	color: #fff;
	text-align: center;
	text-decoration: none;
	font-family: 'Inter', sans-serif;
	font-weight: 600;
	font-size: 14px;
	letter-spacing: 0.3px;
	border-radius: 4px;
	border: none;
	cursor: pointer;
	min-height: 48px;
	align-items: center;
	justify-content: center;
	box-sizing: border-box;
	transition: background 0.15s ease;
}
.sn-cart-drawer__checkout:hover {
	background: #B5152F;
	color: #fff;
}

.sn-cart-drawer__continue {
	display: inline-block;
	margin-top: 12px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
	background: none;
	border: none;
	cursor: pointer;
	text-decoration: underline;
	padding: 4px;
}
.sn-cart-drawer__continue:hover { color: var(--qb-text, #3A332C); }

/* ---- BC mini cart content overrides inside drawer ---- */

.sn-cart-drawer__body .bc-cart,
.sn-cart-drawer__body .bc-mini-cart {
	background: none;
	border-radius: 0;
	border: none;
	box-shadow: none;
	padding: 0;
	margin: 0;
}

.sn-cart-drawer__body .bc-cart-header,
.sn-cart-drawer__body .bc-cart-actions {
	display: none;
}

.sn-cart-drawer__body .bc-cart-item {
	display: grid;
	grid-template-columns: 80px 1fr auto;
	gap: 0 12px;
	padding: 16px 0;
	border-bottom: 1px solid rgba(0, 0, 0, 0.06);
	align-items: start;
}
.sn-cart-drawer__body .bc-cart-item:last-of-type { border-bottom: none; }

.sn-cart-drawer__body .bc-cart-item-image {
	grid-column: 1;
	grid-row: 1 / 3;
	width: 80px;
}
.sn-cart-drawer__body .bc-cart-item-image img {
	width: 100%;
	height: auto;
	border-radius: 6px;
	object-fit: cover;
	background: var(--qb-cream, #FAF6EF);
}
.sn-cart-drawer__body .bc-product__thumbnail-link { display: block; }

.sn-cart-drawer__body .bc-cart-item__remove-button {
	display: inline-block;
	margin-top: 6px;
	font-size: 12px;
	color: var(--qb-text-soft, #7A6F62);
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
	font-family: 'Inter', sans-serif;
}
.sn-cart-drawer__body .bc-cart-item__remove-button:hover { color: #D81B3D; }

.sn-cart-drawer__body .bc-cart-item-meta {
	grid-column: 2 / 4;
	min-width: 0;
}
.sn-cart-drawer__body .bc-cart-item__product-title {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	line-height: 1.3;
	margin: 0 0 4px;
	color: var(--qb-text, #3A332C);
}
.sn-cart-drawer__body .bc-product__title-link {
	color: var(--qb-text, #3A332C);
	text-decoration: none;
}
.sn-cart-drawer__body .bc-product__title-link:hover { color: var(--qb-pink-deep, #C97A80); }

.sn-cart-drawer__body .bc-cart-item__product-brand {
	display: block;
	font-size: 12px;
	color: var(--qb-text-soft, #7A6F62);
	margin-bottom: 4px;
	font-family: 'Inter', sans-serif;
}
.sn-cart-drawer__body .bc-cart-item__product-options { margin-bottom: 4px; }
.sn-cart-drawer__body .bc-cart-item__product-option {
	display: block;
	font-size: 12px;
	color: var(--qb-text-soft, #7A6F62);
	font-family: 'Inter', sans-serif;
	line-height: 1.4;
}
.sn-cart-drawer__body .bc-cart-item__product-option-label { font-weight: 500; }

.sn-cart-drawer__body .bc-cart-item-quantity {
	grid-column: 2;
	margin-top: 8px;
	align-self: center;
}
.sn-cart-drawer__body .bc-cart-item-total-price {
	grid-column: 3;
	margin-top: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--qb-text, #3A332C);
	white-space: nowrap;
	text-align: right;
	align-self: center;
}

/* Quantity stepper (−/+/input injected by JS) */
.sn-qty-stepper {
	display: inline-flex;
	align-items: center;
	border: 1px solid var(--qb-outline, #C9BBA8);
	border-radius: 4px;
	overflow: hidden;
}
.sn-qty-stepper__btn {
	width: 32px;
	height: 32px;
	background: none;
	border: none;
	cursor: pointer;
	font-size: 16px;
	color: var(--qb-text, #3A332C);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	transition: background 0.1s ease;
}
.sn-qty-stepper__btn:hover { background: rgba(0, 0, 0, 0.04); }

.sn-qty-stepper .bc-cart-item__quantity-input {
	width: 40px;
	height: 32px;
	border: none;
	border-left: 1px solid var(--qb-outline, #C9BBA8);
	border-right: 1px solid var(--qb-outline, #C9BBA8);
	text-align: center;
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text, #3A332C);
	padding: 0;
	-moz-appearance: textfield;
	appearance: textfield;
}
.sn-qty-stepper .bc-cart-item__quantity-input::-webkit-inner-spin-button,
.sn-qty-stepper .bc-cart-item__quantity-input::-webkit-outer-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* Subtotal in drawer footer */
.sn-cart-drawer__footer .bc-cart-subtotal {
	display: flex;
	justify-content: space-between;
	align-items: center;
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	color: var(--qb-text, #3A332C);
	margin: 0;
	padding: 0;
}
.sn-cart-drawer__footer .bc-cart-subtotal__label { font-weight: 500; }
.sn-cart-drawer__footer .bc-cart-subtotal__amount { font-weight: 700; }

/* ========================= 8. PRE-ORDER INFO CARD ========================= */

body.single-bigcommerce_product .snugibo-pdp__preorder {
	border: 1.5px solid var(--qb-outline, #C9BBA8);
	border-radius: 12px;
	background: var(--qb-cream, #FAF6EF);
	padding: 20px;
	margin-top: 20px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-heading {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--qb-text, #3A332C);
	line-height: 1.45;
	margin: 0 0 14px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-shipping {
	display: flex;
	align-items: center;
	gap: 8px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	color: var(--qb-text-soft, #7A6F62);
	margin-bottom: 14px;
	padding-bottom: 14px;
	border-bottom: 1px solid var(--qb-outline, #C9BBA8);
}
body.single-bigcommerce_product .snugibo-pdp__preorder-icon {
	flex-shrink: 0;
	color: var(--qb-text-soft, #7A6F62);
}
body.single-bigcommerce_product .snugibo-pdp__preorder-batch {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 10px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-batch-name {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	font-weight: 600;
	color: var(--qb-text, #3A332C);
}
body.single-bigcommerce_product .snugibo-pdp__preorder-badge {
	font-family: 'Inter', sans-serif;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.05em;
	text-transform: uppercase;
	background: #D81B3D;
	color: #fff;
	padding: 3px 8px;
	border-radius: 4px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-status {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 8px;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-status-open {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	font-weight: 700;
	color: #2E7D32;
	letter-spacing: 0.04em;
}
body.single-bigcommerce_product .snugibo-pdp__preorder-sellout {
	font-family: 'Inter', sans-serif;
	font-size: 12px;
	color: var(--qb-text-soft, #7A6F62);
}

/* ========================= 11. SHIPPING ACCORDION ========================= */

body.single-bigcommerce_product .snugibo-pdp__shipping {
	margin-top: 12px;
}
body.single-bigcommerce_product .snugibo-pdp__accordion-icon {
	vertical-align: -3px;
	margin-right: 6px;
	flex-shrink: 0;
}

/* ========================= SHARED: PDP section headings ========================= */

body.single-bigcommerce_product .snugibo-pdp__section-heading {
	font-family: 'Playfair Display', Georgia, serif;
	font-size: 26px;
	font-weight: 700;
	color: var(--qb-text, #3A332C);
	text-align: center;
	margin: 0 0 24px;
	letter-spacing: -0.01em;
	line-height: 1.2;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__section-heading {
		font-size: 32px;
	}
}

/* ========================= 12. THEME NAVIGATOR ========================= */

body.single-bigcommerce_product .snugibo-pdp__theme-navigator {
	max-width: 800px;
	margin: 48px auto 0;
	padding: 0 16px;
}
body.single-bigcommerce_product .snugibo-pdp__theme-tabs {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 4px;
	margin-bottom: 24px;
	scrollbar-width: none;
}
body.single-bigcommerce_product .snugibo-pdp__theme-tabs::-webkit-scrollbar { display: none; }

body.single-bigcommerce_product .snugibo-pdp__theme-tab {
	flex: 1 0 auto;
	padding: 10px 16px;
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--qb-text-soft, #7A6F62);
	background: none;
	border: 1.5px solid var(--qb-outline, #C9BBA8);
	border-radius: 8px;
	cursor: pointer;
	white-space: nowrap;
	transition: border-color 0.15s ease, color 0.15s ease, background 0.15s ease;
}
body.single-bigcommerce_product .snugibo-pdp__theme-tab:hover {
	border-color: var(--qb-text-soft, #7A6F62);
	color: var(--qb-text, #3A332C);
}
body.single-bigcommerce_product .snugibo-pdp__theme-tab.is-active {
	border-color: #D81B3D;
	color: #D81B3D;
	background: rgba(216, 27, 61, 0.04);
}

body.single-bigcommerce_product .snugibo-pdp__theme-panel {
	animation: snFadeIn 0.25s ease;
}
@keyframes snFadeIn {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}
body.single-bigcommerce_product .snugibo-pdp__theme-name {
	font-family: 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 700;
	color: var(--qb-text, #3A332C);
	margin: 0 0 6px;
}
body.single-bigcommerce_product .snugibo-pdp__theme-desc {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
	line-height: 1.5;
	margin: 0 0 16px;
}
body.single-bigcommerce_product .snugibo-pdp__theme-media {
	position: relative;
	width: 100%;
	border-radius: 12px;
	overflow: hidden;
	background: var(--qb-cream, #FAF6EF);
	aspect-ratio: 16 / 10;
}
body.single-bigcommerce_product .snugibo-pdp__theme-poster,
body.single-bigcommerce_product .snugibo-pdp__theme-video {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

/* ========================= 13. PAGE ADVENTURES ========================= */

body.single-bigcommerce_product .snugibo-pdp__page-adventures {
	max-width: 800px;
	margin: 48px auto 0;
	padding: 0 16px;
}
body.single-bigcommerce_product .snugibo-pdp__adventures-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__adventures-grid {
		grid-template-columns: 1fr 1fr;
		gap: 20px;
	}
}
body.single-bigcommerce_product .snugibo-pdp__adventure-card {
	background: #fff;
	border: 1px solid var(--qb-outline, #C9BBA8);
	border-radius: 16px;
	padding: 0;
	overflow: hidden;
	transition: box-shadow 0.2s ease, transform 0.2s ease;
}
body.single-bigcommerce_product .snugibo-pdp__adventure-card:hover {
	box-shadow: var(--qb-shadow-card, 0 4px 16px rgba(42, 38, 32, 0.06));
	transform: translateY(-2px);
}
body.single-bigcommerce_product .snugibo-pdp__adventure-img {
	width: 100%;
	height: auto;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	display: block;
}
body.single-bigcommerce_product .snugibo-pdp__adventure-title {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: var(--qb-text, #3A332C);
	margin: 16px 20px 4px;
}
body.single-bigcommerce_product .snugibo-pdp__adventure-desc {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
	line-height: 1.5;
	margin: 0 20px 20px;
}

/* ========================= 14. REVIEWS WALL ========================= */

body.single-bigcommerce_product .snugibo-pdp__reviews-wall {
	max-width: 900px;
	margin: 48px auto 0;
	padding: 0 16px;
	text-align: center;
}
body.single-bigcommerce_product .snugibo-pdp__reviews-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	margin-bottom: 8px;
}
body.single-bigcommerce_product .snugibo-pdp__reviews-stars {
	color: #D81B3D;
	font-size: 16px;
	letter-spacing: 2px;
}
body.single-bigcommerce_product .snugibo-pdp__reviews-eyebrow-text {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	color: var(--qb-text-soft, #7A6F62);
	letter-spacing: 0.02em;
}
body.single-bigcommerce_product .snugibo-pdp__reviews-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 16px;
	margin-top: 24px;
	text-align: left;
}
@media (min-width: 768px) {
	body.single-bigcommerce_product .snugibo-pdp__reviews-grid {
		grid-template-columns: 1fr 1fr 1fr;
		gap: 20px;
	}
}
body.single-bigcommerce_product .snugibo-pdp__review-card {
	background: var(--qb-cream, #FAF6EF);
	border-radius: 16px;
	padding: 24px;
}
body.single-bigcommerce_product .snugibo-pdp__review-stars {
	color: #D81B3D;
	font-size: 14px;
	letter-spacing: 2px;
	margin-bottom: 10px;
}
body.single-bigcommerce_product .snugibo-pdp__review-headline {
	font-family: 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: var(--qb-text, #3A332C);
	margin: 0 0 8px;
}
body.single-bigcommerce_product .snugibo-pdp__review-body {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--qb-text-soft, #7A6F62);
	line-height: 1.55;
	margin: 0 0 12px;
}
body.single-bigcommerce_product .snugibo-pdp__review-name {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-style: italic;
	color: var(--qb-text-soft, #7A6F62);
}

/* ========================= 15. EXPANDED FOOTER ========================= */

.sn-footer {
	background: #fff !important;
	padding: 0 !important;
}
.sn-footer-accent {
	height: 14px;
	background: #DCE6CC;
}
.sn-footer-expanded {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 24px;
	text-align: center;
	max-width: 1280px;
	margin: 0 auto;
	padding: 48px 16px 24px;
}
.sn-footer-top {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 32px;
	width: 100%;
}
@media (min-width: 768px) {
	.sn-footer-expanded { padding: 48px 32px 24px; }
	.sn-footer-top {
		flex-direction: row;
		align-items: start;
		justify-content: space-between;
		text-align: left;
	}
	.sn-footer-brand { align-items: flex-start; }
}
.sn-footer-brand {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 14px;
}
.sn-footer-care__heading {
	font-family: 'Inter', sans-serif;
	font-size: 13px;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	color: var(--ink, #0F0F0F);
	margin: 0 0 12px;
}
.sn-footer-care__list {
	list-style: none;
	margin: 0;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.sn-footer-care__list a {
	font-family: 'Inter', sans-serif;
	font-size: 14px;
	color: var(--body, #3A3A38);
	text-decoration: none;
	line-height: 1.6;
	transition: color 0.15s ease;
}
.sn-footer-care__list a:hover {
	color: var(--berry, #D81B3D);
}
.sn-footer-payment {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 8px;
	width: 100%;
}
.sn-footer-payment__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* ========================= ROUND 1.5 FIXES ========================= */

/* (Issue 2) Hide the BC default "0 reviews" header — we have our own reviews wall. */
body.single-bigcommerce_product .bc-product-reviews__header {
	display: none !important;
}

/* (Issue 4) Theme tabs — 2×2 grid on mobile so all 4 fit without clipping. */
@media (max-width: 767px) {
	body.single-bigcommerce_product .snugibo-pdp__theme-tabs {
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 8px;
		overflow-x: visible;
	}
	body.single-bigcommerce_product .snugibo-pdp__theme-tab {
		white-space: normal;
		text-align: center;
	}
}
/* ============ HOMEPAGE READABILITY + BRAND CONSISTENCY (v2) ============ */
.snugibo-landing .btn-primary {
	background: var(--berry) !important;
	color: white !important;
	border-radius: 999px !important;
	padding: 16px 32px !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	letter-spacing: 0.02em !important;
	min-height: 52px !important;
	box-shadow: 0 4px 12px rgba(216, 27, 61, 0.18) !important;
	transition: background 0.15s ease, transform 0.15s ease, box-shadow 0.15s ease !important;
	border: 0 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	gap: 6px;
	text-decoration: none !important;
}
.snugibo-landing .btn-primary:hover,
.snugibo-landing .btn-primary:focus-visible {
	background: var(--berry-dark) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 6px 16px rgba(216, 27, 61, 0.25) !important;
}
.snugibo-landing .promo-bar { font-size: 13px !important; padding: 10px 16px !important; }
@media (min-width: 768px) { .snugibo-landing .promo-bar { font-size: 14px !important; padding: 12px 24px !important; } }
.snugibo-landing .wordmark { font-size: 18px !important; }
@media (min-width: 768px) { .snugibo-landing .wordmark { font-size: 20px !important; } }
.snugibo-landing nav.primary a { font-size: 15px !important; font-weight: 500 !important; }
.snugibo-landing .cart-mobile { font-size: 15px !important; }
.snugibo-landing .rating .stars { font-size: 16px !important; }
.snugibo-landing .rating .count { font-size: 14px !important; font-weight: 500 !important; }
.snugibo-landing .hero-text h1 { font-size: clamp(30px, 6vw, 44px) !important; line-height: 1.12 !important; letter-spacing: -0.5px !important; }
.snugibo-landing .hero-text p { font-size: 17px !important; line-height: 1.5 !important; }
@media (min-width: 1100px) { .snugibo-landing .hero-text h1 { font-size: 52px !important; } .snugibo-landing .hero-text p { font-size: 18px !important; max-width: 460px; } }
.snugibo-landing .pill { font-size: 12px !important; padding: 6px 14px !important; letter-spacing: 0.4px !important; }
.snugibo-landing .section-includes h2 { font-size: 32px !important; line-height: 1.1 !important; letter-spacing: -0.4px !important; }
@media (min-width: 768px) { .snugibo-landing .section-includes h2 { font-size: 38px !important; } }
@media (min-width: 1100px) { .snugibo-landing .section-includes h2 { font-size: 42px !important; } }
.snugibo-landing .checklist { gap: 16px !important; }
.snugibo-landing .checklist li { font-size: 17px !important; line-height: 1.5 !important; gap: 14px !important; }
.snugibo-landing .checklist li .check { width: 28px !important; height: 28px !important; flex-shrink: 0 !important; margin-top: 0 !important; }
.snugibo-landing .checklist li .check svg { width: 14px !important; height: 14px !important; }
@media (min-width: 1100px) { .snugibo-landing .checklist li { font-size: 18px !important; } }
.snugibo-landing .section-picker h2 { font-size: 32px !important; line-height: 1.1 !important; letter-spacing: -0.4px !important; margin-bottom: 10px !important; }
@media (min-width: 768px) { .snugibo-landing .section-picker h2 { font-size: 38px !important; } }
@media (min-width: 1100px) { .snugibo-landing .section-picker h2 { font-size: 42px !important; } }
.snugibo-landing .picker-sub { font-size: 16px !important; line-height: 1.5 !important; }
@media (min-width: 768px) { .snugibo-landing .picker-sub { font-size: 17px !important; } }
.snugibo-landing .theme-card-body { padding: 18px 18px 22px !important; gap: 6px !important; }
@media (min-width: 768px) { .snugibo-landing .theme-card-body { padding: 22px 20px 26px !important; } }
.snugibo-landing .theme-card-body h3 { font-size: 18px !important; font-weight: 700 !important; line-height: 1.2 !important; }
@media (min-width: 768px) { .snugibo-landing .theme-card-body h3 { font-size: 20px !important; } }
@media (min-width: 1100px) { .snugibo-landing .theme-card-body h3 { font-size: 22px !important; } }
.snugibo-landing .theme-card-cta { font-size: 15px !important; font-weight: 600 !important; margin-top: 2px !important; }
.snugibo-landing .section-banner h2 { font-size: 32px !important; line-height: 1.06 !important; letter-spacing: -0.5px !important; }
@media (min-width: 768px) { .snugibo-landing .section-banner h2 { font-size: 42px !important; } }
@media (min-width: 1100px) { .snugibo-landing .section-banner h2 { font-size: 52px !important; } }
.snugibo-landing .section-stat h2 { font-size: 32px !important; line-height: 1.1 !important; letter-spacing: -0.4px !important; }
@media (min-width: 768px) { .snugibo-landing .section-stat h2 { font-size: 38px !important; } }
@media (min-width: 1100px) { .snugibo-landing .section-stat h2 { font-size: 44px !important; } }
.snugibo-landing .stat-number { font-size: 72px !important; letter-spacing: -2.5px !important; }
@media (min-width: 768px) { .snugibo-landing .stat-number { font-size: 96px !important; } }
@media (min-width: 1100px) { .snugibo-landing .stat-number { font-size: 104px !important; } }
.snugibo-landing .stat-number .pct { font-size: 42px !important; }
@media (min-width: 768px) { .snugibo-landing .stat-number .pct { font-size: 54px !important; } }
@media (min-width: 1100px) { .snugibo-landing .stat-number .pct { font-size: 60px !important; } }
.snugibo-landing .stat-row p { font-size: 17px !important; line-height: 1.6 !important; }
@media (min-width: 768px) { .snugibo-landing .stat-row p { font-size: 18px !important; max-width: 320px !important; padding-top: 20px !important; } }
@media (max-width: 767px) {
	.snugibo-landing .hero-text h1 { font-size: 32px !important; line-height: 1.1 !important; }
	.snugibo-landing .hero-text p { font-size: 16px !important; }
	.snugibo-landing .section-includes h2, .snugibo-landing .section-picker h2, .snugibo-landing .section-stat h2 { font-size: 28px !important; }
	.snugibo-landing .section-banner h2 { font-size: 30px !important; }
	.snugibo-landing .stat-row { flex-direction: column; gap: 10px; align-items: flex-start; }
	.snugibo-landing .stat-number { font-size: 64px !important; }
	.snugibo-landing .stat-number .pct { font-size: 38px !important; }
	.snugibo-landing .theme-card-body h3 { font-size: 17px !important; }
	.snugibo-landing .checklist li { font-size: 16px !important; }
	.snugibo-landing .btn-primary { width: 100% !important; min-height: 52px !important; }
	.snugibo-landing .hero-text .btn-primary { display: flex !important; }
}
@media (min-width: 768px) { .snugibo-landing .hero-text .btn-primary { display: inline-flex !important; width: auto !important; } }


/* ============ STICKY HEADER — MOBILE ONLY ============ */

/* MOBILE: header pinned to top. Switch overflow-x from "hidden" to "clip"
   on the ancestors so they still prevent horizontal scroll but DON'T
   break position:sticky on the header inside them. */
@media (max-width: 767px) {
	body,
	.snugibo-landing {
		overflow-x: clip !important;
	}
	header.site-header,
	.site-header {
		position: sticky !important;
		top: 0 !important;
		z-index: 100 !important;
		background: #fff !important;
	}
	/* WP admin bar offset for logged-in users only */
	body.admin-bar header.site-header,
	body.admin-bar .site-header {
		top: 46px !important;
	}
}

/* DESKTOP: header scrolls with the page (not sticky) */
@media (min-width: 768px) {
	header.site-header,
	.site-header,
	.snugibo-landing header.site-header {
		position: static !important;
		top: auto !important;
	}
}

/* ============ MOBILE DRAWER — proper hamburger pattern ============
   Header stays visible on top (logo, hamburger, cart accessible).
   Drawer slides below the header with items starting clear of it.
   Hamburger button toggles open/close — no separate close button. */
.snugibo-landing .mobile-drawer {
	padding-top: 130px !important;  /* clears promo bar (41px) + header (73px) + breathing room */
	z-index: 9 !important;           /* stays BELOW header (z-index 100) so logo remains visible */
}
/* When WP admin bar is showing (logged-in users only) */
body.admin-bar .snugibo-landing .mobile-drawer {
	padding-top: 180px !important;
}
/* ============ LITTLE ONE PRESS WORDMARK LOGO ============
   Two-line stacked wordmark: "Little One" in Playfair Display serif,
   thin horizontal rule, "PRESS" in widely-spaced Inter caps.
   Inspired by editorial publishing-house masthead style. */
.snugibo-landing .wordmark.wm-logo {
	display: inline-flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #D81B3D !important;
	text-decoration: none;
	flex-shrink: 0;
	font-size: initial !important;
	font-weight: initial !important;
	letter-spacing: initial !important;
	text-transform: none !important;
	line-height: 1 !important;
	padding: 0;
}
.snugibo-landing .wordmark.wm-logo:hover,
.snugibo-landing .wordmark.wm-logo:focus-visible {
	color: #B5152F !important;
	outline: none;
}
.snugibo-landing .wm-line1 {
	display: block;
	font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
	font-size: 32px;
	font-weight: 500;
	letter-spacing: -0.2px;
	line-height: 1;
	margin-bottom: 5px;
	color: inherit;
	text-transform: none;
}
.snugibo-landing .wm-rule {
	display: block;
	width: 68px;
	height: 1px;
	background: currentColor;
	margin: 0 0 6px;
	opacity: 0.85;
}
.snugibo-landing .wm-line2 {
	display: block;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 5px;
	line-height: 1;
	color: inherit;
	margin-left: 5px;  /* compensate trailing letter-spacing */
}

/* Tablet & up: scale up slightly */
@media (min-width: 768px) {
	.snugibo-landing .wm-line1  { font-size: 36px; }
	.snugibo-landing .wm-rule   { width: 80px; margin-bottom: 7px; }
	.snugibo-landing .wm-line2  { font-size: 12px; letter-spacing: 6px; }
}

/* Desktop: full editorial scale */
@media (min-width: 1100px) {
	.snugibo-landing .wm-line1  { font-size: 40px; letter-spacing: -0.4px; }
	.snugibo-landing .wm-rule   { width: 92px; }
	.snugibo-landing .wm-line2  { font-size: 13px; letter-spacing: 7px; }
}

/* Give the header room to breathe around the larger wordmark */
.snugibo-landing .site-header {
	padding-top: 18px !important;
	padding-bottom: 18px !important;
}

/* ============ LITTLE ONE PRESS WORDMARK LOGO ============
   Two-line stacked wordmark: "Little One" in Playfair Display serif,
   thin horizontal rule, "PRESS" in widely-spaced Inter caps.
   Inspired by editorial publishing-house masthead style. */
.snugibo-landing .wordmark.wm-logo {
	display: inline-flex !important;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	color: #D81B3D !important;
	text-decoration: none;
	flex-shrink: 0;
	font-size: initial !important;
	font-weight: initial !important;
	letter-spacing: initial !important;
	text-transform: none !important;
	line-height: 1 !important;
	padding: 0;
}
.snugibo-landing .wordmark.wm-logo:hover,
.snugibo-landing .wordmark.wm-logo:focus-visible {
	color: #B5152F !important;
	outline: none;
}
.snugibo-landing .wm-line1 {
	display: block;
	font-family: 'Playfair Display', Georgia, 'Times New Roman', serif;
	font-size: 32px;
	font-weight: 500;
	letter-spacing: -0.2px;
	line-height: 1;
	margin-bottom: 5px;
	color: inherit;
	text-transform: none;
}
.snugibo-landing .wm-rule {
	display: block;
	width: 68px;
	height: 1px;
	background: currentColor;
	margin: 0 0 6px;
	opacity: 0.85;
}
.snugibo-landing .wm-line2 {
	display: block;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 5px;
	line-height: 1;
	color: inherit;
	margin-left: 5px;  /* compensate trailing letter-spacing */
}

/* Tablet & up: scale up slightly */
@media (min-width: 768px) {
	.snugibo-landing .wm-line1  { font-size: 36px; }
	.snugibo-landing .wm-rule   { width: 80px; margin-bottom: 7px; }
	.snugibo-landing .wm-line2  { font-size: 12px; letter-spacing: 6px; }
}

/* Desktop: full editorial scale */
@media (min-width: 1100px) {
	.snugibo-landing .wm-line1  { font-size: 40px; letter-spacing: -0.4px; }
	.snugibo-landing .wm-rule   { width: 92px; }
	.snugibo-landing .wm-line2  { font-size: 13px; letter-spacing: 7px; }
}

/* Give the header room to breathe around the larger wordmark */
.snugibo-landing .site-header {
	padding-top: 18px !important;
	padding-bottom: 18px !important;
}

/* ============ STICKY HEADER START ============ */
@media (max-width: 767px) {
	.snugibo-landing .promo-bar {
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		z-index: 99 !important;
		transition: transform 0.22s ease;
	}
	body.admin-bar .snugibo-landing .promo-bar { top: 46px !important; }

	.snugibo-landing .site-header {
		position: fixed !important;
		top: 41px !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		z-index: 100 !important;
		background: #fff !important;
		padding: 12px 16px !important;
		transition: top 0.22s ease, padding 0.22s ease, box-shadow 0.22s ease;
		box-shadow: 0 1px 0 rgba(0,0,0,0.04);
	}
	body.admin-bar .snugibo-landing .site-header { top: 87px !important; }

	body { padding-top: 114px !important; }

	.snugibo-landing .wm-line1,
	.snugibo-landing .wm-rule,
	.snugibo-landing .wm-line2 {
		transition: font-size 0.22s ease, width 0.22s ease, margin 0.22s ease, letter-spacing 0.22s ease, opacity 0.22s ease;
	}

	body.has-scrolled .snugibo-landing .promo-bar {
		transform: translateY(calc(-100% - 50px));
	}
	body.has-scrolled .snugibo-landing .site-header {
		top: 0 !important;
		padding: 8px 16px !important;
		box-shadow: 0 2px 8px rgba(0,0,0,0.06);
	}
	body.has-scrolled .snugibo-landing .wm-line1 {
		font-size: 20px;
		margin-bottom: 3px;
	}
	body.has-scrolled .snugibo-landing .wm-rule {
		width: 42px;
		margin-bottom: 3px;
		opacity: 0.7;
	}
	body.has-scrolled .snugibo-landing .wm-line2 {
		font-size: 9px;
		letter-spacing: 3.5px;
	}
}
/* ============ STICKY HEADER END ============ */

/* ============ IN-HEADER CTA — Lovevery-style flat pill ============
   Berry-fill pill that slides in from the right when scrolled.
   No shadow, refined arrow at 1.5 stroke / 85% opacity, sentence-case label.
   Mobile only — desktop nav already has the "Shop Books" link. */
.snugibo-landing .header-cta {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 11px 18px;
	background: #D81B3D !important;
	color: #fff !important;
	font-family: 'Inter', -apple-system, BlinkMacSystemFont, sans-serif !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	font-style: normal !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	text-decoration: none !important;
	line-height: 1 !important;
	border-radius: 999px !important;
	white-space: nowrap;
	flex-shrink: 0;
	border: 0 !important;
	box-shadow: none !important;
	/* hidden default state */
	opacity: 0;
	transform: translateX(20px) scale(0.85);
	pointer-events: none;
	max-width: 0;
	padding-left: 0;
	padding-right: 0;
	overflow: hidden;
	transition: opacity 0.25s ease,
	            transform 0.3s cubic-bezier(0.2, 0.9, 0.3, 1.0),
	            max-width 0.3s ease,
	            padding 0.3s ease,
	            background 0.18s ease;
}
.snugibo-landing .header-cta:hover,
.snugibo-landing .header-cta:focus-visible {
	background: #B5152F !important;
	color: #fff !important;
	outline: none;
	text-decoration: none !important;
	box-shadow: none !important;
}
.snugibo-landing .header-cta svg {
	flex-shrink: 0;
	opacity: 0.85;
	display: inline-block;
	vertical-align: middle;
}

/* SHOW state when scrolled */
body.has-scrolled .snugibo-landing .header-cta {
	opacity: 1;
	transform: translateX(0) scale(1);
	pointer-events: auto;
	max-width: 220px;
	padding: 11px 18px;
}

/* Hide on product page (already there, no need) */
body.single-bigcommerce_product .snugibo-landing .header-cta {
	display: none !important;
}

/* Hide on cart/checkout */
body[class*="page-template-page-cart"] .snugibo-landing .header-cta,
body[class*="cart"] .snugibo-landing .header-cta,
body[class*="checkout"] .snugibo-landing .header-cta {
	display: none !important;
}

/* Desktop — hide (nav menu has "Shop Books" already) */
@media (min-width: 768px) {
	.snugibo-landing .header-cta { display: none !important; }
}