/*
 * Cake Derby — single stylesheet for the whole site.
 *
 * One file, loaded once (see cd_enqueue_page_assets in functions.php).
 * Rules are grouped by page/feature; edit rules in place, delete what is no
 * longer used. Do not add overrides at the bottom.
 *
 *   1. Tokens (colour, type, spacing)
 *   2. Base typography
 *   3. Layout shell
 *   4. Header, navigation, search and account panel
 *   5. Home page sections
 *   6. Footer
 *   7. Shop, search results, filters
 *   8. Single product
 *   9. Custom cake, cart, checkout, my account
 *  10. Collections and gifting pages
 */

/* ======================================================================
   1. Tokens
   ====================================================================== */
:root {
	/* Brand — matched to the Derby's Club cup */
	--cd-burgundy: #963943;       /* accents, links, active chips */
	--cd-burgundy-dark: #833b3e;  /* buttons, logo */
	--cd-plum: #4A1A21;           /* deep wine: headings, footer, primary dark */
	--cd-plum-dark: #2E0F15;
	--cd-gold: #C8A45F;           /* small accents only */
	--cd-gold-deep: #A8843F;
	--cd-gold-soft: #EBDAB4;

	/* Surfaces and text */
	--cd-cream: #FBF5EC;
	--cd-blush: #F3E7D8;
	--cd-paper: #FFFDF9;
	--cd-ink: #2B1B1E;
	--cd-muted: #7C6B6A;
	--cd-line: rgba(131, 59, 62, 0.16);

	/* Functional */
	--cd-orange: #c46f22;
	--cd-green: #316958;
	--cd-star: #C8A45F;

	/* Type */
	--cd-font-head: "Lora", Georgia, serif;
	--cd-font-body: "DM Sans", system-ui, -apple-system, "Segoe UI", sans-serif;
	--cd-h1: clamp(30px, 3.6vw, 46px);
	--cd-h2: clamp(28px, 3.4vw, 44px);
	--cd-h3: clamp(20px, 2vw, 26px);
	--cd-text: 16px;
	--cd-small: 14px;

	/* Shape and layout */
	--cd-shadow: 0 18px 45px rgba(74, 26, 33, 0.14);
	--cd-radius-xl: 28px;
	--cd-radius-lg: 18px;
	--cd-container: min(1600px, calc(100vw - 128px));
	--cd-header-height: 120px;
	--cd-gutter: clamp(20px, 4vw, 56px);
}

/* Blocksy's default palette is blue (#2872fa). Re-point it at ours so
   no link, button, icon or form field can turn blue on hover/focus.
   Set on body as well as :root so it wins over Blocksy's inline style. */
:root,
body {
	--theme-palette-color-1: #833b3e;
	--theme-palette-color-2: #4A1A21;
	--theme-palette-color-3: #7C6B6A;
	--theme-palette-color-4: #2B1B1E;
	--theme-palette-color-5: #F3E7D8;
	--theme-palette-color-6: #FBF5EC;
	--theme-palette-color-7: #FFFDF9;
	--theme-palette-color-8: #ffffff;
	--theme-text-color: #2B1B1E;
	--theme-link-initial-color: #833b3e;
	--theme-link-hover-color: #4A1A21;
	--theme-selection-text-color: #ffffff;
	--theme-selection-background-color: #833b3e;
	--theme-border-color: rgba(131, 59, 62, 0.16);
	--theme-form-field-border-initial-color: rgba(131, 59, 62, 0.16);
	--theme-form-field-border-focus-color: #833b3e;
	--theme-button-text-initial-color: #ffffff;
	--theme-button-text-hover-color: #ffffff;
	--theme-button-background-initial-color: #833b3e;
	--theme-button-background-hover-color: #4A1A21;
}

/* ======================================================================
   2. Base typography
   Headings use Lora at regular weight; everything else DM Sans.
   (The :not() chain keeps this stronger than the global body font rule.)
   ====================================================================== */
html body :is(h1, h2, h3, h4):not(.cd-x1):not(.cd-x2),
body :is(h1, h2, h3, h4).cd-heading {
	font-family: var(--cd-font-head) !important;
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.12;
	font-variation-settings: "opsz" 96;
}
html body :is(h1, h2, h3, h4) em {
	font-style: italic;
	color: var(--cd-burgundy);
}
/* ==========================================================================
   FRONT PAGE REVAMP
   ========================================================================== */


/* ==========================================================================
   GLOBAL
   ========================================================================== */
.cd-hero-carousel,
.cd-hero-carousel *:not(svg):not(path),
.cd-best-sellers,
.cd-best-sellers *:not(svg):not(path),
.cd-section,
.cd-section *:not(svg):not(path),
.cd-products-grid,
.cd-products-grid *:not(svg):not(path) {
	font-family: var(--cd-font-body) !important;
}
.cd-main {
	overflow: hidden;
}

.cd-container {
	width: min(1840px, calc(100% - 75px));
	margin: 0 auto;
}

.cd-section-label {
	display: inline-block;
	margin-bottom: 8px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	opacity: 1;
	color: var(--cd-burgundy);
}


/* ==========================================================================
   HERO
   ========================================================================== */

.cd-hero-carousel {
	position: relative;
	width: 100%;
	overflow: hidden;
	background: #f5eee8;
}

.cd-hero-carousel__track {
	position: relative;
	width: 100%;
	aspect-ratio: 21 / 7;
}

.cd-hero-slide {
	position: absolute;
	inset: 0;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.55s ease, visibility 0.55s ease;
}

.cd-hero-slide.is-active {
	opacity: 1;
	visibility: visible;
	z-index: 2;
}

.cd-hero-slide__link {
	display: block;
	width: 100%;
	height: 100%;
}

.cd-hero-slide picture {
	display: block;
	width: 100%;
	height: 100%;
}

.cd-hero-slide__image {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
}


/* Hero arrows */

.cd-hero-carousel__arrow {
	position: absolute;
	top: 50%;
	z-index: 5;
	display: flex;
	align-items: center;
	justify-content: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--cd-plum);
	cursor: pointer;
	transform: translateY(-50%);
	box-shadow: 0 8px 25px rgba(49, 27, 38, 0.10);
	transition:
		background 0.2s ease,
		transform 0.2s ease;
}

.cd-hero-carousel__arrow:hover {
	background: #fff;
	transform: translateY(-50%) scale(1.05);
}

.cd-hero-carousel__arrow--prev {
	left: 24px;
}

.cd-hero-carousel__arrow--next {
	right: 24px;
}


/* Hero dots */

.cd-hero-carousel__dots {
	position: absolute;
	bottom: 28px;
	left: 50%;
	z-index: 6;
	display: flex;
	gap: 8px;
	transform: translateX(-50%);
}

.cd-hero-carousel__dot {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: rgba(0, 0, 0, 0.2);
	cursor: pointer;
	transition:
		width 0.25s ease,
		background 0.25s ease;
}

.cd-hero-carousel__dot.is-active {
	width: 26px;
	border-radius: 999px;
	background: var(--cd-plum);
}


/* ======================================================================
   Home: trust strip (under the hero)
   ====================================================================== */
.cd-trust {
	background: var(--cd-paper);
	border-bottom: 1px solid var(--cd-line);
}

.cd-trust__in {
	width: 95%;
	margin: 0 auto;
	padding: 22px 0;
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 20px;
}

.cd-trust__item {
	display: flex;
	align-items: center;
	gap: 14px;
	min-width: 0;
}

.cd-trust__item i {
	flex: none;
	width: 42px;
	height: 42px;
	display: grid;
	place-items: center;
	border: 1px solid var(--cd-gold);
	border-radius: 50%;
	color: var(--cd-gold-deep);
}

.cd-trust__item svg {
	width: 20px;
	height: 20px;
	fill: none;
	stroke: currentColor;
	stroke-width: 1.5;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cd-trust__item b {
	display: block;
	color: var(--cd-plum);
	font-size: 14px;
	font-weight: 600;
	line-height: 1.25;
}

.cd-trust__item span {
	display: block;
	color: var(--cd-muted);
	font-size: 13px;
}

@media (max-width: 992px) {
	.cd-trust__in { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
	.cd-trust__in { gap: 14px; padding: 18px 0; }
	.cd-trust__item i { width: 36px; height: 36px; }
	.cd-trust__item span { display: none; }
}

.cd-section-label::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	margin-right: 10px;
	background: var(--cd-gold);
	transform: rotate(45deg);
	vertical-align: 1px;
}

.cd-section-heading h2 {
	margin: 0;
	font-size: var(--cd-h2);
	line-height: 1.08;
	letter-spacing: 0;
}


/* ==========================================================================
   HOME — SECTION RHYTHM
   trust (white) > top picks (paper) > best sellers (cream) > styles (paper)
   > reviews (sand) > footer (wine)
   ========================================================================== */

.cd-top-picks,
.cd-section--styles,
.cd-cta { background: var(--cd-paper); }
.cd-best-sellers,
.cd-section--reviews { background: var(--cd-cream); }

.cd-top-picks,
.cd-best-sellers,
.cd-section,
.cd-cta { padding: clamp(36px, 4.5vw, 60px) 0; }

/* centred heading used by Top Picks, Styles and Reviews */
.cd-top-picks__heading,
.cd-section--styles .cd-section-heading,
.cd-section--reviews .cd-section-heading {
	display: block;
	margin-bottom: clamp(22px, 2.6vw, 34px);
	text-align: left;
}
/* centred "View all" button under a section */
.cd-section-more { display: flex; justify-content: center; margin-top: clamp(24px, 3vw, 36px); }
.cd-btn-outline {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 13px 30px;
	border: 1px solid var(--cd-burgundy-dark);
	border-radius: 999px;
	color: var(--cd-burgundy-dark);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	transition: background .25s, color .25s;
}
.cd-btn-outline:hover { background: var(--cd-burgundy-dark); color: #fff; }
html body section.cd-top-picks .cd-top-picks__heading h2,
html body section.cd-section--styles .cd-section-heading h2,
html body section.cd-section--reviews .cd-section-heading h2,
html body section.cd-best-sellers .cd-section-heading h2 {
	margin: 10px 0 0;
	color: var(--cd-plum) !important;
	font-family: var(--cd-font-head) !important;
	font-size: var(--cd-h2) !important;
	font-weight: 400 !important;
	line-height: 1.1 !important;
	letter-spacing: 0;
}
html body section.cd-top-picks .cd-top-picks__heading h2 em,
html body section.cd-section--styles .cd-section-heading h2 em,
html body section.cd-section--reviews .cd-section-heading h2 em,
html body section.cd-best-sellers .cd-section-heading h2 em { color: var(--cd-burgundy) !important; font-style: italic; }
.cd-section-label {
	display: inline-block;
	color: var(--cd-gold-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .18em;
	text-transform: uppercase;
}

/* ---- Top picks: photo + solid caption (always readable) ---------------- */
/* ---- Carousels (one rule set for every card row) -----------------------
   4 in view on large screens, 3 under 1200px, 2 under 768px, 1 (+ a peek of
   the next card) under 500px. assets/js/carousel.js adds the arrows / dots. */
.cd-top-picks__grid,
.cd-best-sellers .cd-products-grid,
.cd-section--styles .cd-style-grid,
.cd-product-suggestions__grid {
	--cd-cols: 4;
	--cd-gap: 24px;
	display: flex;
	gap: var(--cd-gap);
	padding: 8px 2px 22px;
	margin: -8px -2px -22px;
	overflow-x: auto;
	overscroll-behavior-x: contain;
	scroll-snap-type: x mandatory;
	scroll-padding-inline: 2px;
	scroll-behavior: smooth;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.cd-top-picks__grid::-webkit-scrollbar,
.cd-best-sellers .cd-products-grid::-webkit-scrollbar,
.cd-section--styles .cd-style-grid::-webkit-scrollbar,
.cd-product-suggestions__grid::-webkit-scrollbar { display: none; }
.cd-top-picks__grid > *,
.cd-best-sellers .cd-products-grid > *,
.cd-section--styles .cd-style-grid > *,
.cd-product-suggestions__grid > * {
	flex: 1 0 calc((100% - var(--cd-gap) * (var(--cd-cols) - 1)) / var(--cd-cols));
	min-width: 0;
	scroll-snap-align: start;
}
.cd-top-picks__grid > :only-child,
.cd-best-sellers .cd-products-grid > :only-child,
.cd-section--styles .cd-style-grid > :only-child,
.cd-product-suggestions__grid > :only-child { margin-inline: auto; }
@media (min-width: 769px) {
	/* two cards share the row; never stretch wider than half of it */
	.cd-top-picks__grid > *,
	.cd-best-sellers .cd-products-grid > *,
	.cd-section--styles .cd-style-grid > *,
	.cd-product-suggestions__grid > * { max-width: calc((100% - var(--cd-gap)) / 2); }
}
/* Best sellers: every product is in the carousel, so no "Load more" */
.cd-best-sellers .cd-products-grid > .cd-product-card--hidden { display: flex; }
.cd-best-sellers .cd-load-more-wrapper { display: none; }

@media (max-width: 1200px) {
	.cd-top-picks__grid,
	.cd-best-sellers .cd-products-grid,
	.cd-section--styles .cd-style-grid,
	.cd-product-suggestions__grid { --cd-cols: 3; }
}
@media (max-width: 768px) {
	.cd-top-picks__grid,
	.cd-best-sellers .cd-products-grid,
	.cd-section--styles .cd-style-grid,
	.cd-product-suggestions__grid { --cd-cols: 2; --cd-gap: 14px; }
}
@media (max-width: 500px) {
	.cd-top-picks__grid,
	.cd-best-sellers .cd-products-grid,
	.cd-section--styles .cd-style-grid,
	.cd-product-suggestions__grid { --cd-cols: 1.15; --cd-gap: 12px; }
}

.cd-carousel { position: relative; }
.cd-carousel__arrow {
	position: absolute;
	top: 42%;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--cd-line);
	border-radius: 50%;
	background: #fff;
	color: var(--cd-plum);
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(74, 26, 33, .14);
	transform: translateY(-50%);
	transition: background .2s, color .2s, opacity .2s;
}
.cd-carousel__arrow:hover:not(:disabled) { background: var(--cd-burgundy-dark); color: #fff; }
.cd-carousel__arrow:disabled { opacity: 0; pointer-events: none; }
.cd-carousel__arrow svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.cd-carousel__arrow--prev { left: -22px; }
.cd-carousel__arrow--next { right: -22px; }
.cd-carousel.is-static .cd-carousel__arrow { display: none; }
.cd-carousel__dots { display: none; justify-content: center; gap: 7px; margin-top: 22px; }
.cd-carousel__dots button { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: rgba(131, 59, 62, .25); cursor: pointer; transition: width .25s, background .25s; }
.cd-carousel__dots button.is-active { width: 24px; background: var(--cd-gold); }
@media (max-width: 1360px) {
	.cd-carousel__arrow--prev { left: -8px; }
	.cd-carousel__arrow--next { right: -8px; }
}
@media (max-width: 768px) {
	.cd-carousel__arrow { display: none; }
	.cd-carousel__dots.has-dots { display: flex; }
}
.cd-pick-card {
	display: block;
	overflow: hidden;
	border: 1px solid var(--cd-line);
	border-radius: 18px;
	background: #fff;
	color: var(--cd-plum);
	text-decoration: none;
	transition: transform .25s ease, box-shadow .25s ease;
}
.cd-pick-card:hover { transform: translateY(-4px); box-shadow: 0 16px 36px rgba(74, 26, 33, .1); }
.cd-pick-card__image { aspect-ratio: 1 / 1; overflow: hidden; background: var(--cd-blush); }
.cd-pick-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}
.cd-pick-card:hover .cd-pick-card__image img { transform: scale(1.05); }
.cd-pick-card__content { position: relative; padding: 18px 70px 20px 20px; }
html body .cd-pick-card .cd-pick-card__content span {
	display: block;
	margin-bottom: 6px;
	color: var(--cd-gold-deep) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	letter-spacing: .14em;
	text-transform: uppercase;
}
html body .cd-pick-card .cd-pick-card__content h3 {
	margin: 0;
	color: var(--cd-plum) !important;
	font-family: var(--cd-font-head) !important;
	font-size: clamp(19px, 1.7vw, 24px) !important;
	font-weight: 400 !important;
	line-height: 1.15;
}
.cd-pick-card__arrow {
	position: absolute;
	right: 18px;
	top: 50%;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--cd-line);
	border-radius: 50%;
	color: var(--cd-burgundy-dark);
	transform: translateY(-50%);
	transition: background .25s, color .25s;
}
.cd-pick-card:hover .cd-pick-card__arrow { background: var(--cd-burgundy-dark); color: #fff; }

/* ---- Carousels (styles + reviews) -------------------------------------- */
.cd-reviews-carousel { position: relative; }

.cd-review-row {
	display: flex;
	gap: 24px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scrollbar-width: none;
	-webkit-overflow-scrolling: touch;
}
.cd-style-grid::-webkit-scrollbar,
.cd-review-row::-webkit-scrollbar { display: none; }

.cd-reviews-carousel__arrow {
	position: absolute;
	top: 42%;
	z-index: 3;
	display: grid;
	place-items: center;
	width: 44px;
	height: 44px;
	padding: 0;
	border: 1px solid var(--cd-line);
	border-radius: 50%;
	background: #fff;
	color: var(--cd-plum);
	cursor: pointer;
	box-shadow: 0 6px 18px rgba(74, 26, 33, .12);
	transform: translateY(-50%);
	transition: background .2s, color .2s, opacity .2s;
}
.cd-reviews-carousel__arrow:hover:not(:disabled) { background: var(--cd-burgundy-dark); color: #fff; }
.cd-reviews-carousel__arrow:disabled { opacity: .35; cursor: default; }
.cd-reviews-carousel__arrow--prev { left: -22px; }
.cd-reviews-carousel__arrow--next { right: -22px; }

.cd-reviews-carousel__dots {
	display: flex;
	justify-content: center;
	gap: 8px;
	margin-top: 28px;
}
.cd-reviews-carousel__dots button {
	width: 8px;
	height: 8px;
	padding: 0;
	border: 0;
	border-radius: 999px;
	background: rgba(131, 59, 62, .25);
	cursor: pointer;
	transition: width .25s, background .25s;
}
.cd-reviews-carousel__dots button.is-active { width: 26px; background: var(--cd-gold); }

/* ---- Choose your style: tiles in the carousel -------------------------- */
.cd-section--styles .cd-style-carousel__arrow,
.cd-section--styles .cd-style-carousel__dots { display: none; }
.cd-style-card {
	position: relative;
	overflow: hidden;
	border-radius: 20px;
	background: var(--cd-blush);
	aspect-ratio: 4 / 5;
}
.cd-style-card__image { display: block; height: 100%; }
.cd-style-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .7s cubic-bezier(.2, .7, .2, 1);
}
.cd-style-card:hover .cd-style-card__image img { transform: scale(1.05); }
html body .cd-style-card h3 {
	position: absolute;
	left: 14px;
	right: 14px;
	bottom: 14px;
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin: 0;
	padding: 14px 18px;
	border-radius: 14px;
	background: rgba(255, 253, 249, .95);
	font-family: var(--cd-font-head) !important;
	font-size: clamp(17px, 1.5vw, 20px) !important;
	font-weight: 400 !important;
	line-height: 1.2;
}
.cd-style-card h3::after { content: "\2192"; color: var(--cd-burgundy-dark); font-family: var(--cd-font-body); font-size: 18px; }
html body .cd-style-card h3 a { color: var(--cd-plum) !important; text-decoration: none; }
.cd-style-card h3 a::after { content: ""; position: absolute; inset: 0; } /* whole tile clickable */
html body .cd-style-card:hover h3 a { color: var(--cd-burgundy) !important; }

/* ---- Reviews ----------------------------------------------------------- */
.cd-review {
	position: relative;
	flex: 0 0 calc((100% - 48px) / 3);
	scroll-snap-align: start;
	display: flex;
	flex-direction: column;
	padding: 34px 30px 28px;
	border: 1px solid var(--cd-line);
	border-radius: 16px;
	background: var(--cd-cream);
}
.cd-review::before {
	content: "\201C";
	position: absolute;
	top: 6px;
	right: 24px;
	color: var(--cd-gold-soft);
	font-family: var(--cd-font-head);
	font-size: 84px;
	line-height: 1;
}
.cd-review__stars { color: var(--cd-star); font-size: 15px; letter-spacing: 3px; }
.cd-review p {
	flex: 1;
	margin: 16px 0 24px;
	color: var(--cd-ink);
	font-size: 16px;
	line-height: 1.7;
}
.cd-review__author {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-top: 18px;
	border-top: 1px solid var(--cd-line);
}
.cd-review__avatar {
	display: grid;
	place-items: center;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--cd-burgundy-dark);
	color: #fff;
	font-weight: 600;
	font-size: 15px;
}
.cd-review__author h3 {
	margin: 0;
	color: var(--cd-plum);
	font-family: var(--cd-font-body) !important;
	font-size: 15px;
	font-weight: 600 !important;
}
.cd-review__author small { display: block; color: var(--cd-muted); font-size: 12px; }

/* ---- Home responsive --------------------------------------------------- */
@media (max-width: 1250px) {
	.cd-reviews-carousel__arrow--prev { left: -10px; }
	.cd-reviews-carousel__arrow--next { right: -10px; }
}
@media (max-width: 1100px) {
	.cd-review { flex-basis: calc((100% - 24px) / 2); }
}
@media (max-width: 700px) {
	html body .cd-style-card h3 { left: 10px; right: 10px; bottom: 10px; padding: 12px 14px; }
	.cd-reviews-carousel__arrow { display: none; }
	.cd-review-row { gap: 16px; }
}
@media (max-width: 600px) {
	.cd-review { flex-basis: 88%; padding: 28px 22px 22px; }
}

/* ---- Custom cake CTA ---------------------------------------------------- */
.cd-cta__card {
	position: relative;
	display: grid;
	grid-template-columns: 1.1fr .9fr;
	gap: clamp(32px, 5vw, 72px);
	align-items: center;
	overflow: hidden;
	padding: clamp(36px, 5.5vw, 76px);
	border-radius: 28px;
	background:
		radial-gradient(circle at 92% 8%, rgba(200, 164, 95, .28), transparent 42%),
		linear-gradient(135deg, var(--cd-plum), #5B2129);
	color: #fff;
}
.cd-cta__card::after {
	content: "";
	position: absolute;
	inset: 14px;
	border: 1px solid rgba(235, 218, 180, .28);
	border-radius: 18px;
	pointer-events: none;
}
.cd-cta .cd-section-label { color: var(--cd-gold-soft); }
html body section.cd-cta .cd-cta__text h2 {
	margin: 14px 0 16px;
	color: #fff !important;
	font-size: var(--cd-h2) !important;
	font-weight: 400 !important;
	line-height: 1.1 !important;
}
html body section.cd-cta .cd-cta__text h2 em { color: var(--cd-gold) !important; }
.cd-cta__text p { max-width: 44ch; margin: 0 0 28px; color: rgba(255, 255, 255, .78); }
.cd-cta__btn {
	display: inline-block;
	padding: 14px 32px;
	border-radius: 999px;
	background: var(--cd-gold);
	color: var(--cd-plum-dark);
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	transition: background .2s, transform .2s;
}
.cd-cta__btn:hover { background: var(--cd-gold-soft); color: var(--cd-plum-dark); transform: translateY(-1px); }
.cd-cta__steps { position: relative; z-index: 1; display: grid; gap: 0; margin: 0; padding: 0; list-style: none; }
.cd-cta__steps li {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 4px 16px;
	padding: 20px 0;
	border-top: 1px solid rgba(235, 218, 180, .22);
}
.cd-cta__steps li:first-child { border-top: 0; padding-top: 0; }
.cd-cta__steps li:last-child { padding-bottom: 0; }
.cd-cta__steps b { grid-row: span 2; color: var(--cd-gold); font-family: var(--cd-font-head); font-size: 34px; font-weight: 300; line-height: 1; }
.cd-cta__steps strong { color: #fff; font-size: 16px; font-weight: 600; }
.cd-cta__steps small { color: rgba(255, 255, 255, .68); font-size: 14px; line-height: 1.5; }
@media (max-width: 860px) {
	.cd-cta__card { grid-template-columns: 1fr; }
}

/* ---- Hero seal ---------------------------------------------------------- */
.cd-hero-seal-wrap { position: relative; z-index: 6; height: 0; }
.cd-hero-seal {
	position: absolute;
	right: var(--cd-gutter);
	top: -72px;
	width: 108px;
	height: 108px;
	border-radius: 50%;
	box-shadow: 0 14px 34px rgba(46, 15, 21, .35);
}
.cd-hero-seal svg { display: block; width: 100%; height: 100%; }
html body .cd-hero-seal text { font-family: var(--cd-font-body) !important; }
html body .cd-hero-seal .cd-seal-cd { font-family: var(--cd-font-head) !important; font-style: italic; }
@media (max-width: 700px) { .cd-hero-seal { width: 76px; height: 76px; top: -92px; } }


/* ==========================================================================
   BEST SELLERS
   ========================================================================== */

.cd-best-sellers {
	padding: 40px 0;
	background: var(--cd-cream);
}

.cd-best-sellers .cd-section-heading h2 {
	color: var(--cd-plum);
	font-size: var(--cd-h2);
}

.cd-section-heading {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: 30px;
	margin-bottom: 45px;
}

.cd-section-heading p {
	max-width: 390px;
	margin: 0;
	font-size: 15px;
	line-height: 1.7;
	opacity: 0.6;
}


/* Product grid */

.cd-products-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}


/* Product card */

.cd-product-card {
	position: relative;
	container-type: inline-size;
	display: flex;
	flex-direction: column;
	min-width: 0;
	overflow: hidden;
	border: 1px solid var(--cd-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: none;
	transition: transform 0.25s ease,
		box-shadow 0.25s ease;
}

.cd-product-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 18px 40px rgba(0, 0, 0, 0.08);
}


/* Product image */

.cd-product-card__image {
	position: relative;
	width: 100%;
	aspect-ratio: 1 / 1;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
	background: #f3eee9;
}

.cd-product-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	max-width: 100%;
	max-height: 100%;
	object-fit: cover;
	object-position: center;
}

.cd-product-card:hover .cd-product-card__image img {
	transform: scale(1.03);
}


.cd-product-card__tag {
	position: absolute;
	top: 14px;
	left: 14px;
	z-index: 2;
	padding: 7px 10px;
	border-radius: 999px;
	background: #fff;
	color: var(--cd-plum);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.07em;
	text-transform: uppercase;
	border: 1px solid var(--cd-gold);
}


/* Product content */

.cd-product-card__content {
	display: flex;
	flex-direction: column;
	flex: 1;
	gap: 2px;
	padding: 14px 16px 16px;
}

/* category chip sits on the photo (card width = photo height) */
.cd-product-card__category {
	position: absolute;
	top: calc(100cqw - 40px);
	left: 12px;
	z-index: 2;
	display: inline-flex;
	align-items: center;
	gap: 7px;
	padding: 5px 11px 5px 9px;
	border-radius: 999px;
	background: rgba(255, 253, 249, 0.94);
	color: var(--cd-burgundy-dark);
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	opacity: 1;
}

.cd-product-card__category::before {
	content: "";
	width: 5px;
	height: 5px;
	background: var(--cd-gold);
	transform: rotate(45deg);
}

.cd-product-card__category:empty { display: none; }

html body .cd-product-card h3.cd-product-card__title {
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
	min-height: 2.4em;
	margin: 0;
	color: var(--cd-plum) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	line-height: 1.2;
	letter-spacing: 0;
}

html body .cd-product-card h3.cd-product-card__title a,
html body .cd-product-card h3.cd-product-card__title a:visited { color: var(--cd-plum) !important; }


/* Rating */

.cd-product-card__rating {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	font-size: 13px;
	font-weight: 500;
	color: var(--cd-muted);
	white-space: nowrap;
}


.cd-product-card__bottom {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 12px;
	margin: 6px 0 12px;
}
/* Price */

.cd-product-card__price {
	font-size: 17px;
	font-weight: 600;
	line-height: 1.2;
	color: var(--cd-ink, #171717);
	transition: opacity 150ms ease;
}

.cd-product-card__price.is-updating {
	opacity: 0.45;
}


.cd-product-card__price,
.cd-product-card__price .price {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0 6px;
	margin: 0;
	padding: 0;
}

.cd-product-card__price .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
	white-space: nowrap;
}

.cd-product-card__price ins {
	display: inline;
	background: none;
	color: var(--cd-plum);
	text-decoration: none;
}

.cd-product-card__price del {
	display: inline;
	margin: 0;
	color: var(--cd-muted);
	opacity: 0.7;
	font-size: 0.8em;
	font-weight: 400;
}


/* Options (weight, flavour, or any future variation attribute —
   each renders as its own column here, side by side while there's
   room, wrapping to full width on narrow cards) */

.cd-product-card__options {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(96px, 1fr));
	gap: 10px;
	margin: auto 0 12px;
	padding-top: 10px;
	border-top: 1px solid rgba(23, 23, 23, 0.07);
}

.cd-product-card__option {
	min-width: 0;
}

.cd-product-card__option label {
	display: block;
	margin-bottom: 4px;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: 0.06em;
	text-transform: uppercase;
	opacity: 0.5;
}

.cd-variation-select,
.cd-weight-select {
	width: 100%;
	height: 38px;
	padding: 0 30px 0 12px;
	border: 1px solid rgba(23, 23, 23, 0.14);
	border-radius: 10px;
	background-color: #fff;
	background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%23311B26' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
	background-repeat: no-repeat;
	background-position: right 11px center;
	appearance: none;
	-webkit-appearance: none;
	font-size: 13px;
	font-weight: 600;
	color: var(--cd-ink, #171717);
	cursor: pointer;
	transition: border-color 160ms ease, box-shadow 160ms ease;
}

.cd-variation-select:hover,
.cd-weight-select:hover {
	border-color: var(--cd-plum, var(--cd-plum));
}

.cd-variation-select:focus,
.cd-weight-select:focus,
.cd-variation-select:focus-visible,
.cd-weight-select:focus-visible {
	outline: none;
	border-color: var(--cd-plum, var(--cd-plum));
	box-shadow: 0 0 0 3px rgba(49, 27, 38, 0.14);
}

/* Legacy single-weight wrapper kept working for the homepage's
   current static markup — same visual treatment as the new grid. */


/* Add cart */

.cd-add-cart {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 9px;
	width: 100%;
	min-height: 46px;
	margin-top: auto;
	border: 0;
	border-radius: 12px;
	background: var(--cd-plum);
	color: #fff;
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.2s ease,
		transform 0.2s ease;
}

.cd-add-cart:hover,
.cd-add-cart:focus-visible {
	background: var(--cd-plum-dark);
	transform: translateY(-1px);
	outline: none;
}

.cd-add-cart:disabled {
	opacity: 0.55;
	cursor: not-allowed;
	transform: none;
}

.cd-add-cart.is-added {
	background: #4d684c;
}


/* Hidden products */

.cd-product-card--hidden {
	display: none;
}

.cd-product-card--visible {
	display: flex;
	animation: cdProductReveal 0.4s ease both;
}

@keyframes cdProductReveal {
	from {
		opacity: 0;
		transform: translateY(15px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}


/* Load more */

.cd-load-more-wrapper {
	display: flex;
	justify-content: center;
	margin-top: 48px;
}

.cd-load-more {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 14px 23px;
	border: 1px solid rgba(49, 27, 38, 0.18);
	border-radius: 999px;
	background: #fff;
	color: var(--cd-plum);
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	transition:
		background 0.2s ease,
		color 0.2s ease;
}

.cd-load-more:hover {
	background: var(--cd-plum);
	color: #fff;
}


/* ======================================================================
   Home: section heading, arrows, product grid and cards
   ====================================================================== */


/* ==========================================================================
   TABLET
   ========================================================================== */

@media (max-width: 1100px) {

	.cd-container {
		width: min(100% - 40px, 960px);
	}


}


/* ==========================================================================
   MOBILE
   ========================================================================== */

@media (max-width: 700px) {

	.cd-container {
		width: calc(100% - 32px);
	}


	/* Hero — taller aspect ratio on mobile since the client's mobile
	   banner image is portrait-oriented, unlike the wide desktop one. */

	.cd-hero-carousel__track {
		aspect-ratio: 6 / 7;
	}

	.cd-hero-carousel__arrow {
		top: 50%;
		bottom: auto;
		width: 40px;
		height: 40px;
		transform: translateY(-50%);
	}

	.cd-hero-carousel__arrow:hover {
		transform: translateY(-50%) scale(1.05);
	}

	.cd-hero-carousel__arrow--prev {
		left: 14px;
	}

	.cd-hero-carousel__arrow--next {
		right: 14px;
	}

	.cd-hero-carousel__dots {
		bottom: 18px;
	}


	
	.cd-best-sellers,
.cd-section {
		padding: 65px 0;
	}

	.cd-section-heading {
		display: block;
		margin-bottom: 28px;
	}

	.cd-section-heading p {
		margin-top: 15px;
		font-size: 14px;
	}


	

	

	

	

	

	

	


	/* Products */

	.cd-products-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 12px;
	}

	.cd-product-card {
		border-radius: 15px;
	}

	/* .cd-product-card__image {
		height: 185px;
		padding: 10px;
	} */

	.cd-product-card__tag {
		top: 8px;
		left: 8px;
		padding: 5px 7px;
		font-size: 8px;
	}

	.cd-product-card__content {
		padding: 14px;
	}

	.cd-product-card__category {
		top: calc(100cqw - 32px);
		left: 8px;
		padding: 4px 9px 4px 8px;
		font-size: 8px;
	}

	.cd-product-card__title {
		font-size: 15px;
	}

	.cd-product-card__price {
		margin-top: 9px;
	}

	

	.cd-product-card__options {
		margin-top: 12px;
		padding-top: 10px;
	}

	.cd-product-card__options {
		grid-template-columns: repeat(auto-fit, minmax(80px, 1fr));
		gap: 8px;
	}

	.cd-product-card__option label {
		font-size: 9px;
	}

	.cd-weight-select,
	.cd-variation-select {
		height: 38px;
		padding-right: 26px;
		font-size: 11px;
	}

	.cd-add-cart {
		min-height: 40px;
		margin-top: 9px;
		font-size: 11px;
	}


}


/* ==========================================================================
   SMALL MOBILE
   ========================================================================== */

@media (max-width: 430px) {

	.cd-products-grid {
		gap: 9px;
	}

	/* .cd-product-card__image {
		height: 160px;
        padding:8px;
	} */

	.cd-product-card__content {
		padding: 11px;
	}

	.cd-product-card__title {
		font-size: 14px;
	}

	

	.cd-weight-select {
		padding-left: 8px;
		padding-right: 22px;
	}

	.cd-add-cart svg {
		display: none;
	}

}


/* ======================================================================
   RESPONSIVE GRID
   ====================================================================== */

/* Medium — 3 columns */
@media (max-width: 1200px) {

	.cd-products-grid {
		grid-template-columns: repeat(3, minmax(0, 1fr));
	}

}


/* Small — 2 columns */
@media (max-width: 900px) {

	.cd-products-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

}


/* Mobile — 2 columns (1 on very small phones) */
@media (max-width: 600px) {

	.cd-products-grid {
		grid-template-columns: 1fr;
		gap: 16px;
	}

}

/* only a few products / categories: they share the row instead of leaving gaps */
@media (min-width: 601px) {
	.cd-products-grid:has(> :nth-child(2):last-child),
	.cd-collection-grid:has(> :nth-child(2):last-child) { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cd-products-grid:has(> :only-child),
	.cd-collection-grid:has(> :only-child) { grid-template-columns: minmax(0, calc(50% - 12px)); justify-content: center; }
}
@media (min-width: 901px) {
	.cd-products-grid:has(> :nth-child(3):last-child),
	.cd-collection-grid:has(> :nth-child(3):last-child) { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}


/* ----------------------------------------------------------------------
   Style track
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Style card
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Image container
   ---------------------------------------------------------------------- */


/*
 * IMPORTANT:
 *
 * width + height are both limited to the container.
 * object-fit: contain means the COMPLETE uploaded image remains visible.
 */


/* ----------------------------------------------------------------------
   Card title
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Arrows
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Dots
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Medium
   3 cards
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Small
   2 cards
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Extra small / Mobile
   1 card
   ---------------------------------------------------------------------- */


.cd-filter-bar { display: flex; flex-wrap: wrap; gap: 10px; margin-bottom: 28px; }
.cd-filter-chip {
	padding: 10px 18px;
	border: 1px solid var(--cd-line);
	border-radius: 999px;
	background: #fff;
	color: var(--cd-plum);
	font-size: 14px;
	font-weight: 500;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}
.cd-filter-chip.is-active, .cd-filter-chip:hover { background: var(--cd-plum); color: #fff; }
.cd-product-card--filtered { display: none !important; }


* {
	box-sizing: border-box;
}

html {
	scroll-behavior: smooth;
}

body {
	margin: 0;
	background: var(--cd-cream);
	color: var(--cd-ink);
	font-family: var(--cd-font-body);
	font-size: 16px;
	line-height: 1.5;
}

body .cd-page,
body .cd-page *:not(svg):not(path) {
	font-family: var(--cd-font-body) !important;
}

body .cd-page {
	color: var(--cd-ink) !important;
}

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

img {
	display: block;
	max-width: 100%;
}

button {
	font: inherit;
}

/* Browsers draw their own default focus ring (usually blue) on
   top of any custom border/box-shadow a specific rule sets,
   since outline is a separate property those rules never touch.
   This is a global safety net so nothing on the site — inputs,
   selects, buttons, links, checkboxes, radios — ever shows that
   default blue, while keeping a clear, on-brand focus indicator
   for keyboard users. Rules elsewhere with their own more
   specific focus styling (search bar, checkout fields, the
   product card selects, etc.) still take priority for their own
   border/box-shadow — this only ever supplies the outline. */

select,
input,
textarea {
	outline: none;
}

select:focus-visible,
input:focus-visible,
textarea:focus-visible {
	outline: none;
	border-color: var(--cd-plum);
	box-shadow: 0 0 0 3px rgba(49, 27, 38, 0.16);
}

button:focus-visible,
a:focus-visible {
	outline: 2px solid var(--cd-plum);
	outline-offset: 2px;
}

input[type="checkbox"],
input[type="radio"] {
	accent-color: var(--cd-plum);
}


/* ======================================================================
   Layout shell
   ====================================================================== */
.cd-page {
	overflow: visible;
	padding-top: var(--cd-header-height);
}


/* ======================================================================
   Header, navigation, search and account panel
   ====================================================================== */
.cd-header {
	position: fixed;
	top: 0;
	left: 0;
	right: 0;
	z-index: 900;
	background: var(--cd-cream);
	width: 100%;
	padding: 0 0 14px;
	transition: transform 650ms cubic-bezier(0.22, 1, 0.36, 1), box-shadow 300ms ease;
	will-change: transform;
	border-bottom: 1px solid var(--cd-line);
}

body.cd-is-scrolling:not(.cd-menu-lock) .cd-header {
	transform: translateY(-110%);
	transition: transform 260ms ease;
}

body:not(.cd-is-scrolling) .cd-header {
	box-shadow: none;
}

body.cd-menu-lock {
	overflow: hidden;
}
html:has(body.cd-menu-lock) { overflow: hidden; }

.cd-header__inner {
	position: relative;
	width: 95%;
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr auto 1fr;
	align-items: center;
	gap: 24px;
}

.cd-header__nav-col {
	display: flex;
	align-items: center;
	gap: 20px;
	justify-self: start;
	min-width: 0;
}

.cd-header__logo-link {
	justify-self: center;
	display: inline-flex;
	flex-direction: column;
	align-items: center;
	gap: 3px;
	text-decoration: none;
}

.cd-login__icon { display: block; width: 21px; height: 21px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }

/* floating Search + Cart (small screens only, see the 600px block below) */
.cd-fab {
	position: fixed;
	right: 14px;
	bottom: calc(18px + env(safe-area-inset-bottom, 0px));
	z-index: 850;
	display: none;
	flex-direction: column;
	gap: 10px;
}
.cd-fab__btn {
	position: relative;
	display: grid;
	place-items: center;
	width: 48px;
	height: 48px;
	padding: 0;
	border: 0;
	border-radius: 50%;
	background: #fff;
	color: var(--cd-plum);
	box-shadow: 0 6px 18px rgba(46, 15, 21, .28);
	cursor: pointer;
	text-decoration: none;
}
.cd-fab__btn--cart { background: var(--cd-burgundy-dark); color: #fff; }
.cd-fab__btn svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.cd-fab .cd-cart-count { top: -4px; right: -4px; background: var(--cd-gold); color: var(--cd-ink) !important; }
body.cd-menu-lock .cd-fab { display: none !important; }
body.woocommerce-cart .cd-fab__btn--cart,
body.woocommerce-checkout .cd-fab__btn--cart { display: none; }

.cd-logo-tag {
	color: var(--cd-muted);
	font-size: 8.5px;
	font-weight: 500;
	letter-spacing: 0.34em;
	text-transform: uppercase;
}

/* thin announcement strip above the bar */
.cd-announce {
	margin: 0 0 14px;
	padding: 9px 12px;
	background: var(--cd-plum);
	color: var(--cd-gold-soft);
	font-size: 11px;
	font-weight: 500;
	letter-spacing: 0.22em;
	text-align: center;
	text-transform: uppercase;
}

.cd-announce span + span::before {
	content: "\25C6";
	margin: 0 14px;
	color: var(--cd-gold);
	font-size: 7px;
	vertical-align: 2px;
}

.cd-logo {
	width: clamp(88px, 6vw, 112px);
	height: auto;
	object-fit: contain;
}

.cd-nav {
	display: flex;
	align-items: center;
	gap: clamp(10px, 1.6vw, 26px);
	color: var(--cd-ink) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
}

.cd-nav a {
	padding: 8px 12px;
	border-radius: 999px;
	transition: background-color 180ms ease, color 180ms ease;
}

.cd-nav a:hover,
.cd-nav a:focus-visible {
	background: var(--cd-blush);
	color: var(--cd-plum) !important;
}

/* ------------------------------------------------------------
   Our Collections — single-column dropdown with subcategories
   expanding inline, directly under their parent. No separate
   flyout pane, no positioning tricks, no dependency on category
   images — just one predictable list that opens on hover
   (desktop) or tap (touch), the way people already expect a
   dropdown menu to work.
   ------------------------------------------------------------ */

.cd-collections {
	position: relative;
}

.cd-collections__trigger {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	border: 0;
	background: transparent;
	padding: 4px 0;
	color: var(--cd-ink);
	font-family: var(--cd-font-body);
	font-size: 15px !important;
	font-weight: 500 !important;
	cursor: pointer;
}

.cd-collections__chevron {
	width: 13px;
	height: 13px;
	stroke-width: 2;
	transition: transform 200ms ease;
}

.cd-collections.is-open .cd-collections__chevron {
	transform: rotate(180deg);
}

.cd-collections__panel {
	position: absolute;
	top: calc(100% + 12px);
	left: -12px;
	z-index: 950;
	width: 228px;
	padding: 6px;
	border: 1px solid var(--cd-line);
	border-radius: 14px;
	background: #fff;
	box-shadow: 0 18px 40px -12px rgba(74, 26, 33, 0.22);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-10px);
	transition: opacity 200ms ease, transform 200ms ease, visibility 200ms;
}

.cd-collections__panel::before {
	content: "";
	position: absolute;
	top: -14px;
	left: 0;
	width: 100%;
	height: 14px;
}

.cd-collections.is-open .cd-collections__panel {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.cd-collections__panel-intro {
	display: none;
	margin: 2px 10px 8px;
	color: var(--cd-muted) !important;
	font-size: 11px !important;
	font-weight: 600 !important;
}

.cd-collections__list {
	margin: 0;
	padding: 0;
	list-style: none;
	display: grid;
	gap: 1px;
}

.cd-collections__item {
	position: relative;
	border-radius: 10px;
}

.cd-collections__row {
	display: flex;
	align-items: center;
	gap: 4px;
	border-radius: 10px;
	transition: background-color 180ms ease;
}

.cd-collections__item:hover .cd-collections__row,
.cd-collections__item:has(:focus-visible) .cd-collections__row {
	background: rgba(131, 59, 62, 0.07);
}

.cd-collections__link {
	flex: 1;
	display: block;
	padding: 8px 12px;
	color: var(--cd-ink) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	transition: color 150ms ease;
}

.cd-collections__item:hover .cd-collections__link,
.cd-collections__item:has(:focus-visible) .cd-collections__link {
	color: var(--cd-burgundy-dark) !important;
}

.cd-collections__expand {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 28px;
	height: 28px;
	margin-right: 6px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: var(--cd-muted);
	cursor: pointer;
	transition: background-color 150ms ease, color 150ms ease;
}

.cd-collections__item:hover .cd-collections__expand,
.cd-collections__item:focus-within .cd-collections__expand,
.cd-collections__item.is-active .cd-collections__expand {
	background: rgba(255, 255, 255, 0.65);
	color: var(--cd-plum);
}

.cd-collections__expand svg {
	width: 12px;
	height: 12px;
	stroke-width: 2;
	transition: transform 200ms ease;
}

/* Desktop: no flyouts. A category's sub-categories are listed
   inline, indented under it, always visible. (Mobile turns them
   back into an accordion further down.) */
.cd-collections__expand { display: none; }

.cd-collections__children {
	margin: 0;
	padding: 0 0 6px 12px;
	list-style: none;
}

.cd-collections__children-list {
	margin: 0;
	padding: 0 0 0 10px;
	list-style: none;
	border-left: 1px solid var(--cd-line);
}

.cd-collections__item.has-children:hover .cd-collections__row { background: transparent; }

.cd-collections__child {
	margin: 1px 0;
}

.cd-collections__child-link {
	display: block;
	padding: 5px 10px;
	border-radius: 8px;
	color: var(--cd-muted) !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	transition: background-color 150ms ease, color 150ms ease;
}

.cd-collections__child-link:hover,
.cd-collections__child-link:focus-visible {
	background: var(--cd-blush);
	color: var(--cd-plum) !important;
}

.cd-collections__child:has(.cd-collections__child-link--all) { display: none; }

.cd-actions {
	justify-self: end;
	display: flex;
	align-items: center;
	gap: 20px;
}

.cd-icon-button {
	position: relative;
	width: 28px;
	height: 28px;
	border: 0;
	padding: 0;
	background: transparent;
	color: var(--cd-ink);
	cursor: pointer;
}

.cd-icon-button svg {
	width: 24px;
	height: 24px;
	stroke-width: 2;
}

.cd-cart-link {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.cd-cart-count {
	position: absolute;
	top: -8px;
	right: -9px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 18px;
	height: 18px;
	padding: 0 5px;
	border-radius: 999px;
	background: var(--cd-burgundy);
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 600 !important;
	line-height: 1;
}

.cd-cart-count:empty,
.cd-cart-count[data-count="0"] {
	display: none;
}

.cd-login {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	min-width: 0;
	height: 44px;
	padding: 0;
	border: 1.5px solid var(--cd-burgundy-dark);
	border-radius: 50%;
	background: transparent;
	color: var(--cd-burgundy-dark) !important;
	transition: background-color 180ms ease, color 180ms ease;
}
.cd-login:hover,
.cd-login:focus-visible { background: var(--cd-burgundy-dark); color: #fff !important; }
.cd-login__text { display: none; }

.cd-account {
	position: relative;
}

.cd-account__toggle {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border: 0;
	border-radius: 50%;
	background: var(--cd-plum);
	color: #fff;
	cursor: pointer;
	transition: background-color 180ms ease, transform 180ms ease;
}

.cd-account__toggle:hover,
.cd-account__toggle:focus-visible {
	background: var(--cd-plum-dark);
}

.cd-account__toggle {
	background: var(--cd-burgundy-dark);
	box-shadow: 0 0 0 2px var(--cd-cream), 0 0 0 3.5px var(--cd-gold);
}
.cd-account__initial {
	font-family: var(--cd-font-body);
	font-size: 17px;
	font-weight: 600;
	line-height: 1;
}

.cd-account__menu {
	position: absolute;
	top: calc(100% + 14px);
	right: 0;
	z-index: 1100;
	width: 270px;
	padding: 8px;
	border: 1px solid var(--cd-line);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 22px 50px rgba(46, 15, 21, 0.18);
	opacity: 0;
	visibility: hidden;
	pointer-events: none;
	transform: translateY(-8px);
	transition: opacity 180ms ease, transform 180ms ease, visibility 180ms;
}

.cd-account.is-open .cd-account__menu {
	opacity: 1;
	visibility: visible;
	pointer-events: auto;
	transform: translateY(0);
}

.cd-account__head {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 6px;
	padding: 12px 12px 14px;
	border-radius: 12px;
	background: var(--cd-cream);
}
.cd-account__avatar {
	display: grid;
	place-items: center;
	flex: 0 0 40px;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: var(--cd-burgundy-dark);
	color: #fff;
	font-size: 17px;
	font-weight: 600;
}
.cd-account__who { display: grid; min-width: 0; line-height: 1.25; }
.cd-account__who strong {
	overflow: hidden;
	color: var(--cd-plum);
	font-family: var(--cd-font-head);
	font-size: 17px;
	font-weight: 500;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.cd-account__who small {
	overflow: hidden;
	color: var(--cd-muted);
	font-size: 12px;
	text-overflow: ellipsis;
	white-space: nowrap;
}

.cd-account__menu a {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 11px 12px;
	border-radius: 10px;
	color: var(--cd-ink) !important;
	font-size: 14.5px !important;
	font-weight: 500 !important;
	transition: background-color 160ms ease, color 160ms ease;
}
.cd-account__menu a svg {
	flex: 0 0 18px;
	width: 18px;
	height: 18px;
	fill: none;
	stroke: var(--cd-gold-deep);
	stroke-width: 1.7;
	stroke-linecap: round;
	stroke-linejoin: round;
}

.cd-account__menu a:hover,
.cd-account__menu a:focus-visible {
	background: var(--cd-blush);
	color: var(--cd-plum) !important;
}

.cd-account__menu .cd-account__logout {
	margin-top: 6px;
	border-top: 1px solid var(--cd-line);
	border-radius: 0 0 10px 10px;
	color: var(--cd-burgundy-dark) !important;
}

.cd-search-panel {
	position: fixed;
	inset: 0;
	z-index: 1300;
	display: grid;
	place-items: start center;
	padding: calc(var(--cd-header-height) + 4px) 0px 24px;
	background: rgba(31, 27, 32, 0.38);
	backdrop-filter: blur(8px);
	opacity: 0;
	pointer-events: none;
	transition: opacity 180ms ease;
}

.cd-search-panel.is-open {
	opacity: 1;
	pointer-events: auto;
}

.cd-search-panel__box {
	width: min(760px, 100%);
	padding: 16px;
	border: 1px solid rgba(49, 27, 38, 0.12);
	border-radius: 18px;
	background: #fff;
	box-shadow: 0 24px 60px rgba(49, 27, 38, 0.20);
}

.cd-search-form {
	display: grid;
	grid-template-columns: 1fr auto auto;
	gap: 10px;
	align-items: center;
}

.cd-search-form input[type="search"] {
	width: 100%;
	min-height: 50px;
	border: 1px solid rgba(49, 27, 38, 0.18);
	border-radius: 12px;
	padding: 0 16px;
	color: var(--cd-ink);
	font-family: var(--cd-font-body);
	font-size: 16px;
	font-weight: 500;
	outline: 0;
}

.cd-search-form input[type="search"]:focus {
	border-color: var(--cd-plum);
	box-shadow: 0 0 0 3px rgba(49, 27, 38, 0.12);
}

.cd-search-form button {
	min-height: 50px;
	border: 0;
	border-radius: 12px;
	cursor: pointer;
	font-weight: 600;
}

.cd-search-submit {
	padding: 0 22px;
	background: var(--cd-plum);
	color: #fff;
}

.cd-search-close {
	width: 50px;
	background: var(--cd-blush);
	color: var(--cd-plum);
	font-size: 22px;
	line-height: 1;
}

.cd-menu-toggle {
	display: none;
	width: 34px;
	height: 34px;
	border: 0;
	padding: 5px;
	background: transparent;
	color: var(--cd-ink);
	cursor: pointer;
}

.cd-menu-toggle span {
	display: block;
	width: 24px;
	height: 2px;
	margin: 5px 0;
	border-radius: 999px;
	background: currentColor;
	transition: transform 180ms ease, opacity 180ms ease;
}

.cd-header.is-menu-open .cd-menu-toggle span:nth-child(1) {
	transform: translateY(7px) rotate(45deg);
}

.cd-header.is-menu-open .cd-menu-toggle span:nth-child(2) {
	opacity: 0;
}

.cd-header.is-menu-open .cd-menu-toggle span:nth-child(3) {
	transform: translateY(-7px) rotate(-45deg);
}

.cd-main {
	width: 100%;
	margin: 0 auto;

}


/* ======================================================================
   Home: hero, baker card, decision card, picks
   ====================================================================== */




/* ----------------------------------------------------------------------
   Carousel
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Review track
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Review card
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Stars
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Review text
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Author
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Arrows
   ---------------------------------------------------------------------- */


/* ----------------------------------------------------------------------
   Dots
   ---------------------------------------------------------------------- */


/* ======================================================================
   Footer
   ====================================================================== */
.cd-footer {
	margin-top: 0;
	border-top: 3px solid var(--cd-gold);
	background: var(--cd-plum);
	color: rgba(255, 255, 255, 0.72) !important;
	padding: 68px 0 74px;
	position: relative;
}

.cd-footer__inner {
	width: var(--cd-container);
	margin: 0 auto;
	display: grid;
	grid-template-columns: 1fr 1fr 1fr 1fr;
	gap: 52px;
}

.cd-footer h2 {
	margin: 0 0 18px;
	color: #fff !important;
	font-size: 21px !important;
	font-weight: 400 !important;
	text-transform: none;
}

html body footer.cd-footer h2,
html body footer.cd-footer .cd-footer__contact h2 {
	color: #fff !important;
	font-family: var(--cd-font-head) !important;
	font-weight: 400 !important;
	letter-spacing: 0;
}

.cd-footer ul {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cd-footer li,
.cd-footer p {
	margin: 0 0 12px;
	color: rgba(255, 255, 255, 0.72) !important;
	font-size: 16px !important;
}

.cd-footer strong {
	color: rgba(255, 255, 255, 0.82) !important;
	font-weight: 600 !important;
}

.cd-footer a {
	color: rgba(255, 255, 255, 0.72) !important;
	text-decoration: none;
	transition: color 160ms ease;
}

.cd-footer a:hover,
.cd-footer a:focus-visible {
	color: var(--cd-gold-soft) !important;
	text-decoration: underline;
	text-underline-offset: 4px;
}


/* ======================================================================
   Shop: category filter sidebar
   ====================================================================== */
.custom-filter-sidebar,
.wpc-filters-widget-wrapper,
.wpc-filters-main-wrap {
	border: 1px solid rgba(49, 27, 38, 0.12);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 14px 34px rgba(31, 27, 32, 0.06);
	padding: 18px;
}

.filter-title,
.wpc-filter-set-widget-title {
	margin: 0 0 14px;
	color: var(--cd-ink) !important;
	font-size: 20px !important;
	font-weight: 600 !important;
}

.cd-filter-list,
.custom-filter-sidebar ul,
.wpc-filters-ul-list {
	margin: 0;
	padding: 0;
	list-style: none;
}

.cd-category-list,
.cd-category-children {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
	list-style-type: none !important;
}

.cd-category-list li,
.cd-category-children li {
	display: block !important;
	list-style: none !important;
	list-style-type: none !important;
	background-image: none !important;
}

.cd-category-list li::marker,
.cd-category-children li::marker {
	content: "" !important;
	font-size: 0 !important;
}

.cd-category-list li::before,
.cd-category-children li::before {
	display: none !important;
	content: none !important;
}

.cd-category-item,
.custom-filter-sidebar li,
.wpc-term-item {
	position: relative;
	margin: 0 !important;
	padding-left: 0 !important;
	border-bottom: 1px solid rgba(31, 27, 32, 0.08);
	font-family: var(--cd-font-body) !important;
}

.cd-shop-filter .cd-category-list,
.cd-shop-filter .cd-category-children,
.cd-shop-filter .cd-category-item {
	list-style: none outside none !important;
}

.cd-category-item:last-child,
.custom-filter-sidebar li:last-child,
.wpc-term-item:last-child {
	border-bottom: 0;
}

.cd-category-row {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 8px;
	min-height: 48px;
}

.cd-category-link,
.custom-filter-sidebar a,
.wpc-term-item a,
.wpc-term-item label {
	display: flex;
	align-items: center;
	gap: 10px;
	width: 100%;
	min-height: 46px;
	color: var(--cd-ink) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	line-height: 1.35 !important;
}

.cd-category-link {
	min-height: 44px;
	padding: 6px 8px;
	border-radius: 10px;
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease;
}

.cd-category-link span {
	min-width: 0;
	overflow-wrap: anywhere;
}

.cd-category-link:hover {
	background: var(--cd-blush);
}

.cd-category-check {
	width: 17px;
	height: 17px;
	margin: 0;
	accent-color: var(--cd-plum);
	flex: 0 0 auto;
}

.cd-category-check[data-auto="true"] {
	opacity: 0.78;
}

.cd-category-item--depth-0 > .cd-category-row .cd-category-link {
	font-weight: 600 !important;
}

.cd-category-toggle,
.cd-filter-toggle {
	position: relative;
	width: 30px;
	height: 30px;
	border: 0;
	border-radius: 50%;
	background: var(--cd-blush);
	color: var(--cd-plum);
	cursor: pointer;
	flex: 0 0 auto;
}

.cd-category-toggle::before,
.cd-category-toggle::after,
.cd-filter-toggle::before,
.cd-filter-toggle::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	width: 12px;
	height: 2px;
	border-radius: 999px;
	background: currentColor;
	transform: translate(-50%, -50%);
}

.cd-category-toggle::after,
.cd-filter-toggle::after {
	transform: translate(-50%, -50%) rotate(90deg);
	transition: opacity 160ms ease;
}

.cd-category-item.is-open > .cd-category-row .cd-category-toggle::after,
.custom-filter-sidebar li.is-open > .cd-filter-toggle::after {
	opacity: 0;
}

.cd-category-children {
	display: none;
	margin: 0 0 8px 12px !important;
	padding-left: 12px;
	border-left: 2px solid rgba(49, 27, 38, 0.12);
}

.cd-category-item.is-open > .cd-category-children {
	display: block;
}

.cd-category-item--depth-1 .cd-category-link {
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #4f454a !important;
}

.cd-category-item--depth-2 .cd-category-link,
.cd-category-item--depth-3 .cd-category-link {
	font-size: 13px !important;
	font-weight: 500 !important;
	color: #6f656a !important;
}

.wpc-term-item input[type="checkbox"] {
	width: 16px;
	height: 16px;
	accent-color: var(--cd-plum);
	flex: 0 0 auto;
}

.wpc-term-item-depth-1,
.wpc-term-item.level-1 {
	padding-left: 14px;
}

.wpc-term-item-depth-2,
.wpc-term-item.level-2 {
	padding-left: 28px;
}

.wpc-term-item-depth-3,
.wpc-term-item.level-3 {
	padding-left: 42px;
}

.custom-filter-sidebar .children {
	display: none;
	margin: 0 0 10px 12px;
	padding-left: 12px;
	border-left: 2px solid rgba(49, 27, 38, 0.12);
}

.custom-filter-sidebar li.is-open > .children {
	display: block;
}

.cd-filter-toggle {
	position: absolute;
	top: 10px;
	right: 0;
}

.wpc-filter-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	min-height: 48px;
	cursor: pointer;
}

.wpc-filter-title {
	color: var(--cd-ink) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
}

.wpc-filters-section {
	border-bottom: 1px solid rgba(31, 27, 32, 0.08);
}

.wpc-filters-section .wpc-filter-content {
	display: none;
	padding: 0 0 12px;
}

.wpc-filters-section.is-open .wpc-filter-content {
	display: block;
}


/* ======================================================================
   Shop and search results
   ====================================================================== */
.cd-shop-page,
.cd-collection-page {
	width: var(--cd-container);
	margin: 0 auto;
	padding: clamp(28px, 4vw, 48px) 0 clamp(56px, 7vw, 88px);
	color: var(--cd-ink);
}

.cd-shop-hero,
.cd-collection-hero {
	margin-bottom: clamp(24px, 3vw, 38px);
	padding-bottom: clamp(18px, 2.2vw, 26px);
	border-bottom: 1px solid var(--cd-line);
}

.cd-collection-hero__crumb {
	margin: 0 0 12px;
	color: var(--cd-muted);
	font-size: 13px;
	font-weight: 500;
}

.cd-collection-hero__crumb a { color: var(--cd-burgundy-dark); }
.cd-collection-hero__crumb a:hover { text-decoration: underline; }

html body .cd-shop-hero h1,
html body .cd-collection-hero h1 {
	margin: 0;
	color: var(--cd-plum) !important;
	font-size: clamp(34px, 4.2vw, 56px) !important;
	font-weight: 400 !important;
	line-height: 1.08 !important;
	letter-spacing: 0;
}

.cd-collection-hero p:not(.cd-collection-hero__crumb) {
	max-width: 62ch;
	margin: 14px 0 0;
	color: var(--cd-muted);
	font-size: 16px;
	line-height: 1.65;
}

.cd-shop-filter-toggle,
.cd-shop-filter__close {
	display: none;
}

.cd-shop-layout {
	display: grid;
	grid-template-columns: minmax(260px, 320px) minmax(0, 1fr);
	gap: 34px;
	align-items: start;
}

.cd-shop-layout--search {
	grid-template-columns: 1fr;
}

.cd-shop-sidebar {
	position: sticky;
	top: 24px;
}

.cd-shop-filter {
	padding: 20px;
	border-radius: 18px;
}

.cd-shop-filter__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 16px;
	margin-bottom: 8px;
}

.cd-shop-filter__all {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 32px;
	padding: 0 13px;
	border: 0;
	border-radius: 999px;
	background: var(--cd-blush);
	color: var(--cd-plum) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer;
}

.cd-shop-filter__all.is-active,
.cd-category-item.is-active > .cd-category-row .cd-category-link {
	background: var(--cd-plum);
	color: #fff !important;
}

.cd-category-item.is-active > .cd-category-row .cd-category-link {
	border-radius: 10px;
}

.cd-category-item.has-children > .cd-category-row .cd-category-link::before {
	content: "";
	width: 7px;
	height: 7px;
	border-radius: 50%;
	background: currentColor;
	opacity: 0;
	display: none;
	flex: 0 0 auto;
}

.cd-shop-content {
	min-width: 0;
}

.cd-shop-toolbar {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 18px;
	margin-bottom: 24px;
	padding: 14px 16px;
	border: 1px solid rgba(31, 27, 32, 0.08);
	border-radius: 14px;
	background: #fff;
}

.cd-shop-toolbar .woocommerce-result-count {
	margin: 0;
	color: var(--cd-muted) !important;
	font-size: 14px !important;
}

.cd-shop-toolbar .woocommerce-ordering {
	margin: 0;
}

.cd-shop-toolbar select {
	min-height: 38px;
	border: 1px solid rgba(31, 27, 32, 0.12);
	border-radius: 10px;
	padding: 0 12px;
	background: #fff;
	color: var(--cd-ink);
	font-size: 14px;
}

.cd-shop-content ul.products,
.cd-shop-products {
	display: grid !important;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 30px !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cd-shop-content ul.products li.product,
.cd-shop-product {
	width: auto !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.cd-shop-product {
	display: grid;
	align-content: start;
}

.cd-shop-content ul.products li.product a img,
.cd-shop-product__image img {
	width: 100%;
	aspect-ratio: 1 / 1;
	object-fit: cover;
	border-radius: 14px;
	margin: 0 0 14px !important;
}

.cd-shop-content ul.products li.product .woocommerce-loop-product__title,
.cd-shop-product__title {
	color: var(--cd-ink) !important;
	font-size: 17px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	padding: 0 !important;
	margin: 0 0 8px !important;
}

.cd-shop-content ul.products li.product .price,
.cd-shop-product__price {
	color: var(--cd-plum) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	margin-bottom: 12px;
}

.cd-shop-content ul.products li.product .button,
.cd-shop-product__button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: fit-content;
	min-height: 38px;
	padding: 0 16px;
	margin-top: 12px !important;
	border-radius: 10px !important;
	background: var(--cd-plum) !important;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600 !important;
}

.cd-shop-product[hidden],
.cd-shop-empty[hidden] {
	display: none !important;
}

.cd-shop-empty {
	padding: 28px;
	border-radius: 16px;
	background: var(--cd-blush);
	color: var(--cd-plum) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
}

.cd-search-results-form {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 12px;
	margin-bottom: 24px;
	padding: 14px;
	border: 1px solid rgba(49, 27, 38, 0.12);
	border-radius: 16px;
	background: #fff;
	box-shadow: 0 14px 36px rgba(49, 27, 38, 0.08);
}

.cd-search-results-form input[type="search"] {
	width: 100%;
	min-height: 48px;
	border: 1px solid rgba(49, 27, 38, 0.18);
	border-radius: 11px;
	padding: 0 14px;
	color: var(--cd-ink);
	font-family: var(--cd-font-body);
	font-size: 15px;
	outline: 0;
}

.cd-search-results-form input[type="search"]:focus {
	border-color: var(--cd-plum);
	box-shadow: 0 0 0 3px rgba(49, 27, 38, 0.12);
}

.cd-search-results-form button {
	min-height: 48px;
	border: 0;
	border-radius: 11px;
	padding: 0 22px;
	background: var(--cd-plum);
	color: #fff;
	font-family: var(--cd-font-body);
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
}

/* ======================================================================
   Single product
   ====================================================================== */
.cd-single-product {
	width: min(var(--cd-container), 1240px);
	margin: 0 auto;
	padding: clamp(24px, 3.5vw, 44px) 0 clamp(48px, 6vw, 80px);
	color: var(--cd-ink);
}

.cd-single-product__native {
	display: grid;
	grid-template-columns: minmax(0, 520px) minmax(0, 1fr);
	gap: clamp(28px, 4vw, 56px);
	align-items: start;
}

/* gallery: thumbnails in a column beside the photo */
.cd-single-product__gallery {
	position: sticky;
	top: calc(var(--cd-header-height) + 20px);
	min-width: 0;
}

.cd-single-product__gallery .woocommerce-product-gallery {
	position: relative;
	display: grid;
	grid-template-columns: 68px minmax(0, 1fr);
	gap: 14px;
	width: 100% !important;
	margin: 0 !important;
	float: none !important;
}

.cd-single-product__gallery .woocommerce-product-gallery > *:not(.flex-control-thumbs):not(.woocommerce-product-gallery__trigger) {
	grid-column: 2;
	grid-row: 1;
	min-width: 0;
}

.cd-single-product__gallery .woocommerce-product-gallery__trigger { display: none !important; }

.cd-single-product__gallery .woocommerce-product-gallery__image {
	margin: 0 !important;
	overflow: hidden;
	border-radius: 20px;
	background: var(--cd-blush);
}

.cd-single-product__gallery .woocommerce-product-gallery__image img {
	display: block;
	width: 100% !important;
	aspect-ratio: 1 / 1;
	object-fit: cover !important;
}

.cd-single-product__gallery .flex-control-thumbs {
	grid-column: 1;
	grid-row: 1;
	display: flex;
	flex-direction: column;
	gap: 12px;
	align-self: start;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none;
}

.cd-single-product__gallery .flex-control-thumbs li {
	width: 68px !important;
	margin: 0 !important;
	list-style: none !important;
}

.cd-single-product__gallery .flex-control-thumbs img {
	display: block;
	width: 68px !important;
	height: 68px !important;
	border: 2px solid transparent;
	border-radius: 14px;
	object-fit: cover;
	opacity: 0.6;
	cursor: pointer;
	transition: border-color 160ms ease, opacity 160ms ease;
}

.cd-single-product__gallery .flex-control-thumbs img.flex-active,
.cd-single-product__gallery .flex-control-thumbs img:hover {
	border-color: var(--cd-burgundy-dark);
	opacity: 1;
}

/* summary */
.cd-single-product__summary {
	width: 100% !important;
	min-width: 0;
	margin: 0 !important;
	float: none !important;
}

.cd-single-product__summary .product_meta,
.cd-single-product .woocommerce-tabs,
body.single-product .woocommerce-tabs,
body.single-product .related.products,
body.single-product .upsells.products { display: none !important; }

html body .cd-single-product__summary h1.product_title {
	margin: 0 0 12px;
	color: var(--cd-plum) !important;
	font-size: clamp(30px, 3.6vw, 46px) !important;
	font-weight: 400 !important;
	line-height: 1.1 !important;
	letter-spacing: 0;
}

.cd-single-product__summary .woocommerce-product-rating {
	display: flex;
	align-items: center;
	gap: 10px;
	margin: 0 0 14px;
	font-size: 13px;
}

.cd-single-product__summary .woocommerce-review-link { color: var(--cd-muted); }

.cd-single-product__summary .star-rating { color: var(--cd-star); }

.cd-single-product__summary p.price,
.cd-single-product__summary .woocommerce-variation-price .price {
	display: flex;
	align-items: baseline;
	flex-wrap: wrap;
	gap: 0 10px;
	margin: 0 0 18px;
	color: var(--cd-plum);
	font-size: 26px;
	font-weight: 600;
	line-height: 1.2;
}

.cd-single-product__summary .price,
.cd-single-product__summary .price * {
	font-family: var(--cd-font-body) !important;
}

.cd-single-product__summary .price ins { background: none; color: var(--cd-plum); text-decoration: none; }

.cd-single-product__summary .price del {
	color: var(--cd-muted);
	font-size: 0.62em;
	font-weight: 400;
	opacity: 0.8;
}

.cd-single-product__summary .price .screen-reader-text {
	position: absolute !important;
	width: 1px;
	height: 1px;
	overflow: hidden;
	clip: rect(0, 0, 0, 0);
}

/* a chosen variation's price replaces the price range above it */
.cd-single-product__summary:has(.woocommerce-variation-price .price) > p.price { display: none; }

.cd-single-product__summary .woocommerce-product-details__short-description {
	margin: 0 0 22px;
	color: var(--cd-muted);
	font-size: 16px;
	line-height: 1.7;
}

.cd-single-product__summary .woocommerce-product-details__short-description p { margin: 0; }

.cd-single-product form.cart {
	display: grid;
	gap: 6px;
	max-width: 640px;
	margin: 0 !important;
}

.cd-single-product .variations { width: 100%; margin: 0 0 6px !important; border: 0; }

.cd-single-product .variations tr {
	display: grid;
	gap: 8px;
	margin-bottom: 16px;
}

.cd-single-product .variations th,
.cd-single-product .variations td {
	display: block;
	padding: 0 !important;
	border: 0;
	text-align: left;
}

.cd-single-product .variations label {
	margin: 0 !important;
	color: var(--cd-muted);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cd-single-product .variations select {
	width: 100%;
	min-height: 48px;
	padding: 0 44px 0 16px;
	border: 1px solid var(--cd-line);
	border-radius: 999px;
	background-color: #fff;
	background-image:
		linear-gradient(45deg, transparent 50%, var(--cd-burgundy-dark) 50%),
		linear-gradient(135deg, var(--cd-burgundy-dark) 50%, transparent 50%);
	background-position: calc(100% - 24px) 21px, calc(100% - 18px) 21px;
	background-size: 6px 6px;
	background-repeat: no-repeat;
	color: var(--cd-ink);
	font-size: 15px;
	font-weight: 500;
	appearance: none;
	-webkit-appearance: none;
}

.cd-single-product .variations select:focus {
	border-color: var(--cd-burgundy-dark);
	box-shadow: 0 0 0 3px rgba(131, 59, 62, 0.14);
	outline: 0;
}

.cd-single-product .reset_variations {
	display: inline-block;
	margin-top: 6px;
	color: var(--cd-burgundy-dark);
	font-size: 13px;
	font-weight: 500;
	text-decoration: underline;
}

/* quantity + add to cart on one row */
.cd-single-product .woocommerce-variation-add-to-cart,
.cd-single-product form.cart:not(.variations_form) {
	display: flex;
	flex-wrap: wrap;
	align-items: stretch;
	gap: 12px;
}

.cd-delivery-note {
	margin: 0 0 16px;
	padding: 16px 18px;
	border: 1px solid var(--cd-line);
	border-left: 3px solid var(--cd-gold);
	border-radius: 12px;
	background: var(--cd-cream);
}

.cd-delivery-note strong {
	display: block;
	margin-bottom: 6px;
	color: var(--cd-plum) !important;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cd-delivery-note p { margin: 0; color: var(--cd-ink); font-size: 14px; line-height: 1.65; }

.cd-item-note { flex: 0 0 100%; display: grid; gap: 8px; margin-bottom: 4px; }

.cd-item-note__opt { color: var(--cd-muted); font-weight: 400; letter-spacing: 0; text-transform: none; }

.cd-item-note label {
	color: var(--cd-muted);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cd-item-note input {
	width: 100%;
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid var(--cd-line);
	border-radius: 999px;
	background: #fff;
	color: var(--cd-ink);
	font-family: var(--cd-font-body);
	font-size: 15px;
}

.cd-item-note input:focus { border-color: var(--cd-burgundy-dark); box-shadow: 0 0 0 3px rgba(131, 59, 62, 0.14); outline: 0; }

.cd-single-product .quantity {
	position: relative;
	display: inline-flex;
	align-items: center;
	flex: none;
	height: 52px;
	margin: 0 !important;
	border: 1px solid var(--cd-line);
	border-radius: 999px;
	background: #fff;
	overflow: hidden;
}

.cd-single-product .quantity .qty {
	order: 2;
	width: 44px;
	height: 100% !important;
	padding: 0 !important;
	border: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--cd-ink);
	font-family: var(--cd-font-body) !important;
	font-size: 15px;
	font-weight: 600;
	line-height: 1;
	text-align: center;
	-moz-appearance: textfield;
}

.cd-single-product .quantity .qty::-webkit-outer-spin-button,
.cd-single-product .quantity .qty::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }

.cd-single-product .quantity .ct-decrease,
.cd-single-product .quantity .ct-increase {
	position: static !important;
	display: grid;
	place-items: center;
	width: 42px;
	height: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	background: transparent !important;
	color: var(--cd-ink) !important;
	line-height: 1;
	cursor: pointer;
	transition: background-color 160ms ease, color 160ms ease;
}

.cd-single-product .quantity .ct-decrease { order: 1; }
.cd-single-product .quantity .ct-increase { order: 3; }

.cd-single-product .quantity .ct-decrease:hover,
.cd-single-product .quantity .ct-increase:hover {
	background: var(--cd-blush) !important;
	color: var(--cd-burgundy-dark) !important;
}

.cd-single-product .single_add_to_cart_button {
	flex: 1;
	min-height: 52px;
	margin: 0;
	border: 0;
	border-radius: 999px !important;
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
	font-family: var(--cd-font-body) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	letter-spacing: 0;
	cursor: pointer;
	transition: background 0.2s ease;
}

.cd-single-product .single_add_to_cart_button:hover { background: var(--cd-plum) !important; }
.cd-single-product .single_add_to_cart_button.disabled { opacity: 0.5; cursor: not-allowed; }

/* custom quote card */
.cd-custom-cake-cta {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 18px;
	margin-top: 22px;
	padding: 18px 20px;
	border: 1px solid var(--cd-line);
	border-radius: 16px;
	background: var(--cd-cream);
}

.cd-custom-cake-cta span {
	display: block;
	color: var(--cd-plum);
	font-size: 15px;
	font-weight: 600;
}

.cd-custom-cake-cta p {
	margin: 4px 0 0;
	color: var(--cd-muted);
	font-size: 14px;
	line-height: 1.55;
}

.cd-custom-cake-cta a,
.cd-product-suggestions__more a,
.cd-custom-requirement__form button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 24px;
	border: 1px solid var(--cd-burgundy-dark);
	border-radius: 999px;
	background: transparent;
	color: var(--cd-burgundy-dark);
	font-size: 14px;
	font-weight: 500;
	text-decoration: none;
	cursor: pointer;
	transition: background 0.2s ease, color 0.2s ease;
}

.cd-custom-cake-cta a:hover,
.cd-product-suggestions__more a:hover,
.cd-custom-requirement__form button:hover { background: var(--cd-burgundy-dark); color: #fff; }

/* product information accordions */
.cd-product-info { max-width: 640px; margin: 30px 0 0; }
.cd-info-item { border-bottom: 1px solid var(--cd-line); }
.cd-info-item:first-child { border-top: 1px solid var(--cd-line); }

.cd-info-item summary {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 18px 0;
	color: var(--cd-plum);
	font-family: var(--cd-font-head);
	font-size: 20px;
	cursor: pointer;
	list-style: none;
}

.cd-info-item summary::-webkit-details-marker { display: none; }
.cd-info-item summary::after { content: "+"; color: var(--cd-burgundy-dark); font-family: var(--cd-font-body); font-size: 22px; }
.cd-info-item[open] summary::after { content: "\2013"; }
.cd-info-item__body { padding: 0 0 20px; color: var(--cd-muted); line-height: 1.7; }
.cd-info-item__body p { margin: 0 0 12px; }

/* product FAQs: their own section below the product */
.cd-product-faqs {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(24px, 5vw, 72px);
	margin-top: clamp(40px, 5vw, 64px);
	padding-top: clamp(28px, 3.5vw, 44px);
	border-top: 1px solid var(--cd-line);
}

.cd-product-faqs__eyebrow {
	margin: 0 0 8px;
	color: var(--cd-gold-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

html body .cd-product-faqs__head h2 {
	margin: 0 0 12px;
	color: var(--cd-plum) !important;
	font-size: var(--cd-h2) !important;
	font-weight: 400 !important;
	line-height: 1.1 !important;
}

.cd-product-faqs__head p:not(.cd-product-faqs__eyebrow) { margin: 0; max-width: 34ch; color: var(--cd-muted); line-height: 1.65; }

.cd-product-faqs__list .cd-info-item:first-child { border-top: 1px solid var(--cd-line); }


/* suggestions under the product */
.cd-product-suggestions {
	margin-top: clamp(40px, 5vw, 64px);
	padding-top: clamp(28px, 3.5vw, 44px);
	border-top: 1px solid var(--cd-line);
}

.cd-product-suggestions__head { margin-bottom: clamp(20px, 2.6vw, 30px); text-align: left; }

.cd-product-suggestions__head p {
	margin: 0 0 8px;
	color: var(--cd-gold-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

.cd-product-suggestions__head p::before {
	content: "";
	display: inline-block;
	width: 5px;
	height: 5px;
	margin-right: 10px;
	background: var(--cd-gold);
	transform: rotate(45deg);
	vertical-align: 1px;
}

html body .cd-product-suggestions__head h2 {
	margin: 0;
	color: var(--cd-plum) !important;
	font-size: var(--cd-h2) !important;
	font-weight: 400 !important;
	line-height: 1.1 !important;
	letter-spacing: 0;
}

.cd-product-suggestions__more { display: flex; justify-content: center; margin-top: 28px; }

/* custom requirement form page */
.cd-custom-requirement {
	width: var(--cd-container);
	margin: 0 auto;
	padding: clamp(28px, 4vw, 48px) 0 clamp(56px, 7vw, 88px);
}

.cd-custom-requirement__hero {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	gap: 32px;
	margin-bottom: clamp(24px, 3vw, 38px);
	padding: clamp(28px, 4vw, 48px);
	border-radius: 24px;
	background: var(--cd-blush);
}

.cd-custom-requirement__hero p {
	margin: 0 0 10px;
	color: var(--cd-gold-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

html body .cd-custom-requirement__hero h1 {
	margin: 0 0 12px;
	color: var(--cd-plum) !important;
	font-size: clamp(30px, 3.8vw, 48px) !important;
	font-weight: 400 !important;
	line-height: 1.1 !important;
}

.cd-custom-requirement__hero span { display: block; max-width: 56ch; color: var(--cd-muted); line-height: 1.65; }

.cd-custom-requirement__hero-images { display: flex; gap: 12px; }

.cd-custom-requirement__hero-images img {
	width: 96px;
	height: 120px;
	border-radius: 14px;
	object-fit: cover;
}

.cd-custom-requirement__layout {
	display: grid;
	grid-template-columns: 340px minmax(0, 1fr);
	gap: clamp(20px, 3vw, 36px);
	align-items: start;
}

.cd-custom-requirement__product,
.cd-custom-requirement__form {
	padding: clamp(20px, 2.6vw, 32px);
	border: 1px solid var(--cd-line);
	border-radius: 20px;
	background: #fff;
}

.cd-custom-requirement__product { position: sticky; top: calc(var(--cd-header-height) + 20px); }

.cd-custom-requirement__product img {
	width: 100%;
	aspect-ratio: 4 / 3;
	margin-bottom: 16px;
	border-radius: 14px;
	object-fit: cover;
}

html body .cd-custom-requirement__product h2 { margin: 0 0 8px; color: var(--cd-plum) !important; font-size: 24px !important; font-weight: 400 !important; }
.cd-custom-requirement__product p { margin: 0; color: var(--cd-muted); font-size: 14px; line-height: 1.65; }

.cd-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px; margin-bottom: 22px; }
.cd-form-grid label { display: grid; gap: 7px; }
.cd-form-grid label span { color: var(--cd-muted); font-size: 11px; font-weight: 600; letter-spacing: 0.12em; text-transform: uppercase; }
.cd-form-wide { grid-column: 1 / -1; }

.cd-form-grid input,
.cd-form-grid textarea {
	width: 100%;
	padding: 13px 16px;
	border: 1px solid var(--cd-line);
	border-radius: 14px;
	background: #fff;
	color: var(--cd-ink);
	font: inherit;
	font-size: 15px;
}

.cd-form-grid input { min-height: 48px; padding-block: 0; }
.cd-form-grid input:focus,
.cd-form-grid textarea:focus { border-color: var(--cd-burgundy-dark); box-shadow: 0 0 0 3px rgba(131, 59, 62, 0.14); outline: 0; }

.cd-custom-requirement__form button { background: var(--cd-burgundy-dark); color: #fff; min-height: 50px; padding: 0 32px; }
.cd-custom-requirement__form button:hover { background: var(--cd-plum); }

.cd-form-notice { margin-bottom: 18px; padding: 14px 16px; border-radius: 12px; font-size: 14px; }
.cd-form-notice--success { background: #e8f1ec; color: var(--cd-green); }
.cd-form-notice--error { background: #f7e4e4; color: #8a2f2f; }

/* product pages — responsive */
@media (max-width: 992px) {
	.cd-product-faqs { grid-template-columns: 1fr; }
	.cd-single-product__native { grid-template-columns: minmax(0, 1fr); }
	.cd-single-product__gallery { position: static; width: 100%; max-width: none; }
	.cd-single-product__gallery .woocommerce-product-gallery__image img { aspect-ratio: 5 / 4; }
	.cd-single-product form.cart,
	.cd-product-info { max-width: none; }
	.cd-single-product__gallery .woocommerce-product-gallery { grid-template-columns: 1fr; }
	.cd-single-product__gallery .woocommerce-product-gallery > *:not(.flex-control-thumbs):not(.woocommerce-product-gallery__trigger) { grid-column: 1; }
	.cd-single-product__gallery .flex-control-thumbs { grid-column: 1; grid-row: 2; flex-direction: row; flex-wrap: wrap; }
	.cd-single-product__gallery .flex-control-thumbs li,
	.cd-single-product__gallery .flex-control-thumbs img { width: 68px !important; height: 68px !important; }
	.cd-custom-requirement__layout { grid-template-columns: 1fr; }
	.cd-custom-requirement__product { position: static; }
	.cd-custom-requirement__hero { grid-template-columns: 1fr; }
	.cd-custom-requirement__hero-images { display: none; }
}

@media (max-width: 600px) {
	.cd-single-product__gallery .woocommerce-product-gallery__image img { aspect-ratio: 1 / 1; }
	.cd-custom-cake-cta { grid-template-columns: 1fr; }
	.cd-form-grid { grid-template-columns: 1fr; }
	.cd-single-product__summary p.price,
	.cd-single-product__summary .woocommerce-variation-price .price { margin-bottom: 12px; }
	.cd-single-product .variations tr { margin-bottom: 12px; }
	.cd-single-product .single_add_to_cart_button { flex: 1 1 0; min-width: 0; }
}

/* ======================================================================
   Cart toast, cart page, checkout and my account
   ====================================================================== */
.cd-cart-toast {
	position: fixed;
	right: 24px;
	bottom: 24px;
	z-index: 10000;
	width: min(360px, calc(100vw - 32px));
	overflow: hidden;
	border-radius: 14px;
	background: var(--cd-plum);
	box-shadow: var(--cd-shadow);
	font-family: var(--cd-font-body) !important;
	opacity: 0;
	pointer-events: none;
	transform: translateY(14px);
	transition: opacity 200ms ease, transform 200ms ease;
}

.cd-cart-toast.is-visible {
	opacity: 1;
	pointer-events: auto;
	transform: translateY(0);
}

.cd-cart-toast__body {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 18px 14px;
}

.cd-cart-toast__icon {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 34px;
	height: 34px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.16);
	color: #fff;
}

.cd-cart-toast__icon svg {
	width: 18px;
	height: 18px;
}

.cd-cart-toast__text {
	flex: 1;
	min-width: 0;
}

.cd-cart-toast__message {
	margin: 0;
	color: #fff !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	line-height: 1.35 !important;
	overflow-wrap: anywhere;
}

.cd-cart-toast__close {
	flex: 0 0 auto;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 26px;
	height: 26px;
	border: 0;
	border-radius: 50%;
	background: transparent;
	color: rgba(255, 255, 255, 0.75);
	cursor: pointer;
}

.cd-cart-toast__close:hover {
	background: rgba(255, 255, 255, 0.14);
	color: #fff;
}

.cd-cart-toast__close svg {
	width: 15px;
	height: 15px;
}

.cd-cart-toast__actions {
	display: flex;
	padding: 0 18px 14px;
}

.cd-cart-toast__view-cart {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 9px 16px;
	border-radius: 999px;
	background: #fff;
	color: var(--cd-plum) !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	transition: transform 160ms ease;
}

.cd-cart-toast__view-cart:hover {
	transform: translateY(-1px);
}

.cd-cart-toast__progress {
	height: 3px;
	background: rgba(255, 255, 255, 0.22);
}

.cd-cart-toast__progress-bar {
	height: 100%;
	width: 100%;
	background: #fff;
	transform-origin: left;
	transition: transform linear;
}

.cd-cart-toast__progress-bar.is-counting {
	transform: scaleX(0);
}

body.woocommerce-cart .entry-header,
body.woocommerce-cart .hero-section,
body.woocommerce-cart .page-title,
body.woocommerce-cart h1.entry-title,
body.woocommerce-checkout .entry-header,
body.woocommerce-checkout .hero-section,
body.woocommerce-checkout .page-title,
body.woocommerce-checkout h1.entry-title,
body.woocommerce-account .entry-header,
body.woocommerce-account .hero-section,
body.woocommerce-account .page-title,
body.woocommerce-account h1.entry-title {
	display: none !important;
}

body.woocommerce-cart .site-main,
body.woocommerce-cart main {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	width: var(--cd-container) !important;
	max-width: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	font-family: var(--cd-font-body) !important;
}

/* wrappers inside <main> must fill it, never shrink it a second time */
body.woocommerce-cart .ct-container,
body.woocommerce-cart .ct-container-full,
body.woocommerce-cart article:not(.cd-product-card),
body.woocommerce-checkout .ct-container,
body.woocommerce-checkout .ct-container-full,
body.woocommerce-checkout article,
body.woocommerce-account .ct-container,
body.woocommerce-account .ct-container-full,
body.woocommerce-account article {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	padding: 0 !important;
	font-family: var(--cd-font-body) !important;
}

body.woocommerce-cart .woocommerce {
	position: relative;
	padding: clamp(24px, 3vw, 40px) 0 clamp(48px, 5vw, 72px);
	color: var(--cd-ink);
}

body.woocommerce-account main {
	position: relative;
	z-index: 0;
	overflow: hidden;
}

body.woocommerce-cart .woocommerce::before { content: "Your cart" !important; }
body.woocommerce-checkout:not(.woocommerce-order-received) .woocommerce::before { content: "Checkout"; }
body.woocommerce-order-received .woocommerce::before { content: "Order received"; }
body.woocommerce-account .woocommerce::before { content: "My account"; }

body.woocommerce-cart .woocommerce::before,
body.woocommerce-checkout .woocommerce::before,
body.woocommerce-account .woocommerce::before {
	display: block;
	margin-bottom: 22px;
	color: var(--cd-plum) !important;
	font-family: var(--cd-font-head) !important;
	font-size: var(--cd-h1) !important;
	font-weight: 400 !important;
	line-height: 1.05;
	letter-spacing: 0 !important;
}

body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-info,
body.woocommerce-cart .woocommerce-error {
	border: 0 !important;
	border-radius: 14px;
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
	font-size: 15px !important;
	margin-bottom: 20px !important;
}

body.woocommerce-cart .woocommerce-message .button,
body.woocommerce-cart .woocommerce-info .button,
body.woocommerce-checkout .woocommerce-message .button,
body.woocommerce-checkout .woocommerce-info .button {
	min-height: 36px;
	padding: 0 18px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: #fff !important;
	color: var(--cd-burgundy-dark) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
}

body.woocommerce-cart .woocommerce-message .button:hover,
body.woocommerce-cart .woocommerce-info .button:hover,
body.woocommerce-checkout .woocommerce-message .button:hover,
body.woocommerce-checkout .woocommerce-info .button:hover {
	background: var(--cd-blush) !important;
	color: var(--cd-plum) !important;
}

body.woocommerce-cart .woocommerce-message::before,
body.woocommerce-cart .woocommerce-info::before,
body.woocommerce-cart .woocommerce-error::before {
	color: #fff !important;
}

body.woocommerce-cart .woocommerce::after {
	content: "";
	display: table;
	clear: both;
}

body.woocommerce-cart .woocommerce-cart-form {
	float: none !important;
	width: 100% !important;
}

/* ------------------------------------------------------------
   Cart table
   ------------------------------------------------------------ */

body.woocommerce-cart table.shop_table {
	border: 1px solid var(--cd-line) !important;
	border-radius: 22px !important;
	overflow: hidden;
	background: var(--cd-paper);
	box-shadow: none;
	margin-bottom: 28px !important;
}

body.woocommerce-cart table.shop_table th {
	background: transparent;
	color: var(--cd-muted) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	padding: 18px 24px !important;
	border-bottom: 1px solid var(--cd-line) !important;
}

body.woocommerce-cart table.shop_table td {
	color: var(--cd-ink) !important;
	font-size: 16px !important;
	vertical-align: middle !important;
	border-color: var(--cd-line) !important;
	padding: 20px 24px !important;
}

body.woocommerce-cart table.shop_table img {
	width: 96px !important;
	height: 96px !important;
	min-width: 96px !important;
	border-radius: 14px;
	object-fit: cover;
}

body.woocommerce-cart .product-name a {
	color: var(--cd-ink) !important;
	font-size: 16px !important;
	font-weight: 500 !important;
	line-height: 1.35 !important;
}

body.woocommerce-cart .product-price,
body.woocommerce-cart .product-subtotal {
	color: var(--cd-burgundy-dark) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
}

body.woocommerce-cart .cart_totals .amount {
	color: var(--cd-ink) !important;
	font-weight: 600 !important;
	font-size: 16px !important;
}

/* ------------------------------------------------------------
   Quantity stepper — one clean pill: [-][number][+], all the
   same height with no visible seam between them, so it never
   looks jagged or misaligned regardless of which markup
   Blocksy renders (works with or without its .ct-increase /
   .ct-decrease buttons).
   ------------------------------------------------------------ */

body.woocommerce-cart .quantity,
body.woocommerce-cart .ct-quantity {
	display: inline-flex;
	align-items: stretch;
	height: 40px;
	border: 1px solid var(--cd-line);
	border-radius: 999px;
	overflow: hidden;
	background: #fff;
}

body.woocommerce-cart .quantity .qty,
body.woocommerce-cart .ct-quantity .qty,
body.woocommerce-cart .quantity input[type="number"] {
	display: block !important;
	height: 100% !important;
	border: 0 !important;
	background: transparent !important;
	color: var(--cd-ink) !important;
	-webkit-text-fill-color: var(--cd-ink) !important;
	opacity: 1 !important;
	visibility: visible !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	text-align: center;
	padding: 0 !important;
}

body.woocommerce-cart .quantity button,
body.woocommerce-cart .ct-quantity button,
body.woocommerce-cart .ct-increase,
body.woocommerce-cart .ct-decrease {
	position: static !important;
	inset: auto !important;
	flex: 0 0 auto;
	margin: 0 !important;
	padding: 0 !important;
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 100%;
	border: 0 !important;
	background: transparent !important;
	color: var(--cd-plum) !important;
	font-size: 17px !important;
	font-weight: 500 !important;
	line-height: 1 !important;
	cursor: pointer;
	transition: background-color 150ms ease, color 150ms ease;
}

body.woocommerce-cart .quantity .ct-decrease,
body.woocommerce-cart .quantity .ct-increase {
	font-size: 0 !important;
	background-repeat: no-repeat !important;
	background-position: center !important;
}
body.woocommerce-cart .quantity .ct-decrease > *,
body.woocommerce-cart .quantity .ct-increase > *,
body.woocommerce-cart .quantity .ct-decrease::before,
body.woocommerce-cart .quantity .ct-decrease::after,
body.woocommerce-cart .quantity .ct-increase::before,
body.woocommerce-cart .quantity .ct-increase::after { display: none !important; content: none !important; }
body.woocommerce-cart .quantity .ct-decrease {
	background-image: linear-gradient(var(--cd-plum), var(--cd-plum)) !important;
	background-size: 12px 1.6px !important;
}
body.woocommerce-cart .quantity .ct-increase {
	background-image: linear-gradient(var(--cd-plum), var(--cd-plum)), linear-gradient(var(--cd-plum), var(--cd-plum)) !important;
	background-size: 12px 1.6px, 1.6px 12px !important;
}
body.woocommerce-cart .quantity .ct-decrease { order: 1; }
body.woocommerce-cart .quantity .qty { order: 2; }
body.woocommerce-cart .quantity .ct-increase { order: 3; }

body.woocommerce-cart .quantity button:hover,
body.woocommerce-cart .ct-quantity button:hover,
body.woocommerce-cart .ct-increase:hover,
body.woocommerce-cart .ct-decrease:hover {
	background-color: var(--cd-blush) !important;
	color: var(--cd-plum) !important;
}

/* ------------------------------------------------------------
   Remove / delete icon — a real centered circle. display:block
   on the icon itself removes the couple of stray pixels an
   inline SVG's baseline otherwise leaves, which is what was
   making it look slightly off-center.
   ------------------------------------------------------------ */

body.woocommerce-cart .product-remove {
	width: 44px;
	text-align: center !important;
	padding-right: 12px !important;
}

body.woocommerce-cart .product-remove a.remove {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	width: 34px !important;
	height: 34px !important;
	border-radius: 50%;
	color: var(--cd-muted) !important;
	background: transparent !important;
	line-height: 1 !important;
	transition: background-color 150ms ease, color 150ms ease;
	border: 1px solid var(--cd-line);
}

body.woocommerce-cart .product-remove a.remove svg,
body.woocommerce-cart .product-remove a.remove .ct-icon {
	display: block;
	width: 12px;
	height: 12px;
	fill: var(--cd-muted) !important;
}

body.woocommerce-cart .product-remove a.remove svg path,
body.woocommerce-cart .product-remove a.remove .ct-icon path {
	fill: var(--cd-muted) !important;
}

body.woocommerce-cart .product-remove a.remove:hover {
	background: var(--cd-blush) !important;
	color: var(--cd-burgundy-dark) !important;
}

/* ------------------------------------------------------------
   Actions row + totals
   ------------------------------------------------------------ */

body.woocommerce-cart .actions {
	padding-top: 6px !important;
}

body.woocommerce-cart .actions .button {
	border-radius: 999px !important;
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
	font-family: var(--cd-font-body) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
}

body.woocommerce-cart .actions .button:hover {
	background: var(--cd-plum) !important;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
	display: flex !important;
	align-items: center;
	justify-content: center;
	min-height: 52px;
	border-radius: 999px !important;
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
	font-family: var(--cd-font-body) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	transition: transform 150ms ease, box-shadow 150ms ease;
}

body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button:hover {
	transform: translateY(-1px);
	box-shadow: none;
	background: var(--cd-plum);
}

/* The cart also tries to update itself automatically the moment
   a quantity changes (see the JS in footer.php) — but that's a
   best-effort convenience layered on top, not a replacement for
   this button. It stays visible so there's always a reliable,
   guaranteed way to update the cart by hand. */
body.woocommerce-cart button[name="update_cart"] {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 20px !important;
	border: 1px solid var(--cd-burgundy-dark) !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--cd-burgundy-dark) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	transition: background-color 150ms ease, color 150ms ease;
}

body.woocommerce-cart button[name="update_cart"]:hover {
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
}

body.woocommerce-cart .cart_totals {
	width: min(380px, 100%) !important;
	padding: 28px;
	border-radius: 22px;
	border: 1px solid var(--cd-line);
	background: var(--cd-paper);
	box-shadow: none;
}

body.woocommerce-cart .cart_totals table {
	background: transparent !important;
	box-shadow: none !important;
	border: 0 !important;
	margin-bottom: 18px !important;
}

body.woocommerce-cart .cart_totals table th,
body.woocommerce-cart .cart_totals table td {
	background: transparent !important;
	color: var(--cd-ink) !important;
	border-color: var(--cd-line) !important;
	padding: 12px 0 !important;
	font-size: 15px !important;
	font-weight: 500;
	text-transform: none;
	letter-spacing: 0;
}

body.woocommerce-cart .cart_totals table.shop_table,
body.woocommerce-cart .cart_totals table.shop_table tbody {
	display: block;
	width: 100% !important;
}
body.woocommerce-cart .cart_totals table.shop_table tr {
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 16px;
	width: 100%;
	border-bottom: 1px dotted var(--cd-line);
}
body.woocommerce-cart .cart_totals table.shop_table tr:last-child { border-bottom: 0; }
body.woocommerce-cart .cart_totals table.shop_table th {
	display: block !important;
	flex: 0 0 auto;
	width: auto !important;
	border: 0 !important;
	text-align: left !important;
	font-weight: 600 !important;
}
body.woocommerce-cart .cart_totals table.shop_table td {
	display: block !important;
	flex: 1 1 auto;
	width: auto !important;
	border: 0 !important;
	text-align: right !important;
}
body.woocommerce-cart .cart_totals table.shop_table td::before { display: none !important; content: none !important; }
/* shipping: label on top, details full width underneath */
body.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals,
body.woocommerce-cart .cart_totals table.shop_table tr.shipping { display: block; }
body.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals th,
body.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals td,
body.woocommerce-cart .cart_totals table.shop_table tr.shipping th,
body.woocommerce-cart .cart_totals table.shop_table tr.shipping td { width: 100% !important; text-align: left !important; }
body.woocommerce-cart .cart_totals table.shop_table tr.woocommerce-shipping-totals th,
body.woocommerce-cart .cart_totals table.shop_table tr.shipping th { padding-bottom: 0 !important; }

body.woocommerce-cart .cart_totals h2 {
	margin: 0 0 16px;
	color: var(--cd-plum) !important;
	font-family: var(--cd-font-head) !important;
	font-size: 26px !important;
	font-weight: 400 !important;
	letter-spacing: 0;
}

/* ------------------------------------------------------------
   Shipping calculator ("Change address" toggle + country /
   state / town / pincode fields + its own Update button) —
   sits inside the dark cart_totals card, so needs its own
   light-on-dark treatment plus the font-family/focus-color
   fixes the rest of the page already has.
   ------------------------------------------------------------ */

body.woocommerce-cart .woocommerce-shipping-calculator {
	margin-top: 4px;
}

body.woocommerce-cart .woocommerce-shipping-calculator .shipping-calculator-button {
	color: var(--cd-burgundy-dark) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	text-decoration: underline;
}

body.woocommerce-cart .woocommerce-shipping-calculator .shipping-calculator-button:hover,
body.woocommerce-cart .woocommerce-shipping-calculator .shipping-calculator-button:focus,
body.woocommerce-cart .woocommerce-shipping-calculator .shipping-calculator-button:visited,
body.woocommerce-cart .woocommerce-shipping-calculator .shipping-calculator-button:active {
	color: var(--cd-plum) !important;
}

body.woocommerce-cart .shipping-calculator-form {
	margin-top: 14px;
}

body.woocommerce-cart .shipping-calculator-form p {
	margin: 0 0 12px;
}

body.woocommerce-cart .shipping-calculator-form label {
	display: block;
	margin-bottom: 6px;
	color: var(--cd-muted) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 12px !important;
	font-weight: 500 !important;
}

body.woocommerce-cart .shipping-calculator-form input,
body.woocommerce-cart .shipping-calculator-form select,
body.woocommerce-cart .shipping-calculator-form .select2-selection {
	width: 100% !important;
	min-height: 44px;
	border: 1px solid var(--cd-line) !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--cd-ink) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 15px !important;
}

body.woocommerce-cart .shipping-calculator-form .select2-selection__rendered {
	color: var(--cd-ink) !important;
	line-height: 44px !important;
}

body.woocommerce-cart .shipping-calculator-form input:focus,
body.woocommerce-cart .shipping-calculator-form select:focus {
	outline: none !important;
	border-color: var(--cd-burgundy) !important;
	box-shadow: 0 0 0 3px rgba(150, 57, 67, 0.14) !important;
}

body.woocommerce-cart .shipping-calculator-form .button {
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	min-height: 44px;
	padding: 0 20px !important;
	border: 0 !important;
	border-radius: 999px !important;
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
	font-family: var(--cd-font-body) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
}

body.woocommerce-cart .shipping-calculator-form .button:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(0, 0, 0, 0.18);
}

body.woocommerce-checkout .site-main,
body.woocommerce-checkout main,
body.woocommerce-account .site-main,
body.woocommerce-account main {
	margin-top: 0 !important;
	margin-bottom: 0 !important;
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	width: var(--cd-container) !important;
	max-width: none !important;
	margin-right: auto !important;
	margin-left: auto !important;
	font-family: var(--cd-font-body) !important;
}

body.woocommerce-checkout .woocommerce,
body.woocommerce-account .woocommerce {
	width: 100% !important;
	max-width: none !important;
	padding: clamp(24px, 3vw, 40px) 0 clamp(48px, 5vw, 72px);
	color: var(--cd-ink);
	font-family: var(--cd-font-body) !important;
}

body.woocommerce-checkout form.checkout {
	display: grid;
	grid-template-columns: minmax(0, 1fr) minmax(360px, 430px);
	gap: 28px;
	align-items: start;
}

body.woocommerce-checkout form.checkout .col2-set {
	grid-column: 1;
	grid-row: 1 / span 2;
	width: 100% !important;
	float: none !important;
}

body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review {
	grid-column: 2;
	width: 100% !important;
	float: none !important;
}

/* Order Review — the checkout equivalent of the cart page's
   totals card, styled the same way: solid plum background,
   white text throughout. */

body.woocommerce-checkout #order_review_heading {
	margin: 0 !important;
	padding: 28px 28px 8px;
	border: 1px solid var(--cd-line);
	border-radius: 22px 22px 0 0;
	background: var(--cd-paper);
	border-bottom: 0;
}

body.woocommerce-checkout #order_review_heading,
body.woocommerce-checkout #order_review_heading h3 {
	color: var(--cd-plum) !important;
}

body.woocommerce-checkout h1,
body.woocommerce-checkout h2,
body.woocommerce-checkout h3,
body.woocommerce-account h1,
body.woocommerce-account h2,
body.woocommerce-account h3 {
	color: var(--cd-ink) !important;
	font-family: var(--cd-font-head) !important;
	letter-spacing: 0 !important;
	font-weight: 400;
}

body.woocommerce-checkout h3,
body.woocommerce-checkout #order_review_heading,
body.woocommerce-account h2 {
	font-size: 26px !important;
	font-weight: 400 !important;
}

body.woocommerce-checkout .col2-set,
body.woocommerce-account .woocommerce-form,
body.woocommerce-account .woocommerce-MyAccount-navigation,
body.woocommerce-account .woocommerce-MyAccount-content {
	border: 1px solid var(--cd-line) !important;
	border-radius: 22px !important;
	background: var(--cd-paper) !important;
	box-shadow: none;
}

body.woocommerce-checkout .col2-set,
body.woocommerce-account .woocommerce-form,
body.woocommerce-account .woocommerce-MyAccount-content {
	padding: 26px !important;
}

body.woocommerce-checkout #order_review {
	padding: 0 28px 28px !important;
	border: 1px solid var(--cd-line) !important;
	border-top: 0 !important;
	border-radius: 0 0 22px 22px !important;
	background: var(--cd-paper) !important;
	box-shadow: none;
}

body.woocommerce-checkout #order_review table.shop_table,
body.woocommerce-checkout #order_review table.shop_table th,
body.woocommerce-checkout #order_review table.shop_table td {
	color: var(--cd-ink) !important;
	border-color: var(--cd-line) !important;
}

body.woocommerce-checkout #order_review .product-name,
body.woocommerce-checkout #order_review .product-total,
body.woocommerce-checkout #order_review .amount,
body.woocommerce-checkout #order_review .cart-subtotal .amount,
body.woocommerce-checkout #order_review .order-total .amount {
	color: var(--cd-ink) !important;
}

body.woocommerce-checkout #order_review .order-total .amount {
	font-size: 20px !important;
	font-weight: 600 !important;
}

body.woocommerce-checkout #order_review .product-name .product-quantity {
	color: var(--cd-muted) !important;
}

body.woocommerce-checkout label,
body.woocommerce-account label {
	color: var(--cd-ink) !important;
	font-size: 13px !important;
	font-weight: 500 !important;
}

body.woocommerce-checkout input.input-text,
body.woocommerce-checkout textarea,
body.woocommerce-checkout select,
body.woocommerce-account input.input-text,
body.woocommerce-account textarea,
body.woocommerce-account select {
	min-height: 48px;
	border: 1px solid var(--cd-line) !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--cd-ink) !important;
	font-family: var(--cd-font-body) !important;
	font-size: 15px !important;
}

body.woocommerce-checkout input.input-text:focus,
body.woocommerce-checkout textarea:focus,
body.woocommerce-account input.input-text:focus,
body.woocommerce-account textarea:focus {
	border-color: var(--cd-burgundy) !important;
	box-shadow: 0 0 0 3px rgba(150, 57, 67, 0.14) !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single,
body.woocommerce-account .select2-container--default .select2-selection--single {
	height: 48px !important;
	border: 1px solid var(--cd-line) !important;
	border-radius: 12px !important;
	background: #fff !important;
}

body.woocommerce-checkout .select2-container--default .select2-selection--single .select2-selection__rendered,
body.woocommerce-account .select2-container--default .select2-selection--single .select2-selection__rendered {
	color: var(--cd-ink) !important;
	line-height: 46px !important;
}

body.woocommerce-checkout .woocommerce-message,
body.woocommerce-checkout .woocommerce-info,
body.woocommerce-checkout .woocommerce-error,
body.woocommerce-account .woocommerce-message,
body.woocommerce-account .woocommerce-info,
body.woocommerce-account .woocommerce-error {
	border: 0 !important;
	border-radius: 12px;
	background: var(--cd-blush) !important;
	color: var(--cd-ink) !important;
	font-size: 14px !important;
}

body.woocommerce-checkout .woocommerce-message::before,
body.woocommerce-checkout .woocommerce-info::before,
body.woocommerce-checkout .woocommerce-error::before,
body.woocommerce-account .woocommerce-message::before,
body.woocommerce-account .woocommerce-info::before,
body.woocommerce-account .woocommerce-error::before {
	color: var(--cd-plum) !important;
}

body.woocommerce-checkout #payment {
	background: transparent !important;
	border-radius: 0;
}

body.woocommerce-checkout #payment div.payment_box {
	margin-top: 12px;
	padding: 16px !important;
	border-radius: 12px !important;
	background: var(--cd-blush) !important;
	color: var(--cd-ink) !important;
}

body.woocommerce-checkout #payment div.payment_box::before {
	border-bottom-color: var(--cd-blush) !important;
}

body.woocommerce-checkout button.button,
body.woocommerce-account button.button,
body.woocommerce-account a.button {
	min-height: 46px;
	border-radius: 999px !important;
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
	font-family: var(--cd-font-body) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
}

body.woocommerce-checkout button.button:hover,
body.woocommerce-account button.button:hover,
body.woocommerce-account a.button:hover {
	background: var(--cd-plum) !important;
}

body.woocommerce-checkout #place_order {
	display: flex !important;
	align-items: center;
	justify-content: center;
	width: 100%;
	min-height: 54px;
	margin-top: 8px;
	border-radius: 999px !important;
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
	font-family: var(--cd-font-body) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	transition: transform 150ms ease, box-shadow 150ms ease;
}

body.woocommerce-checkout #place_order:hover {
	transform: none;
	box-shadow: none;
	background: var(--cd-plum);
}

body.woocommerce-checkout table.shop_table,
body.woocommerce-account table.shop_table {
	border-color: var(--cd-line) !important;
	background: transparent !important;
}

body.woocommerce-checkout table.shop_table th,
body.woocommerce-checkout table.shop_table td,
body.woocommerce-account table.shop_table th,
body.woocommerce-account table.shop_table td {
	border-color: var(--cd-line) !important;
	color: var(--cd-ink) !important;
	font-size: 14px !important;
}

/* ------------------------------------------------------------
   Checkout — the pieces that had no styling at all before and
   were falling back to plain browser defaults: coupon/login
   toggle panels, billing/shipping section headings, the "ship
   to a different address" checkbox, order notes, the payment
   methods list, the shipping method list, and the terms
   checkbox.
   ------------------------------------------------------------ */

body.woocommerce-checkout .form-row {
	margin: 0 0 16px !important;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle,
body.woocommerce-checkout .woocommerce-form-login-toggle {
	margin: 0 0 20px !important;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle .woocommerce-info,
body.woocommerce-checkout .woocommerce-form-login-toggle .woocommerce-info {
	margin: 0 !important;
}

body.woocommerce-checkout .woocommerce-form-coupon-toggle a,
body.woocommerce-checkout .woocommerce-form-login-toggle a {
	color: var(--cd-burgundy-dark) !important;
	font-weight: 500 !important;
	text-decoration: underline;
}

body.woocommerce-checkout .checkout_coupon,
body.woocommerce-checkout .woocommerce-form-login {
	padding: 22px !important;
	margin: 0 0 20px !important;
	border: 1px solid var(--cd-line) !important;
	border-radius: 18px !important;
	background: var(--cd-paper) !important;
}

body.woocommerce-checkout .checkout_coupon .form-row-last button,
body.woocommerce-checkout .woocommerce-form-login button[name="login"] {
	margin-top: 4px;
}

body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3 {
	font-size: 24px !important;
	font-weight: 400 !important;
	margin: 0 0 18px !important;
}

body.woocommerce-checkout #ship-to-different-address {
	margin: 4px 0 16px !important;
}

body.woocommerce-checkout #ship-to-different-address label {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--cd-ink) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	cursor: pointer;
}

body.woocommerce-checkout .woocommerce-additional-fields {
	margin-top: 8px;
}

body.woocommerce-checkout .woocommerce-additional-fields textarea {
	min-height: 90px;
}

body.woocommerce-checkout ul.payment_methods {
	list-style: none !important;
	margin: 0 0 4px !important;
	padding: 0 !important;
	border-top: 1px solid var(--cd-line) !important;
}

body.woocommerce-checkout ul.payment_methods li.wc_payment_method {
	padding: 16px 0 !important;
	border-bottom: 1px solid var(--cd-line) !important;
}

body.woocommerce-checkout ul.payment_methods li.wc_payment_method label {
	display: flex;
	align-items: center;
	flex-wrap: wrap;
	gap: 10px;
	color: var(--cd-ink) !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	cursor: pointer;
}

body.woocommerce-checkout ul.payment_methods img {
	max-height: 22px;
	margin-left: 6px;
}

body.woocommerce-checkout .payment_box p {
	margin: 0;
	color: var(--cd-ink) !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
}

body.woocommerce-checkout ul#shipping_method {
	list-style: none !important;
	margin: 0 0 20px !important;
	padding: 0 !important;
}

body.woocommerce-checkout ul#shipping_method li {
	padding: 10px 0 !important;
}

body.woocommerce-checkout ul#shipping_method label {
	color: var(--cd-ink) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	cursor: pointer;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper {
	margin: 20px 0 4px !important;
	background: var(--cd-blush);
	border-radius: 14px;
	padding: 12px 14px;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper .woocommerce-form__label-for-checkbox {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	color: var(--cd-ink) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	cursor: pointer;
}

body.woocommerce-checkout .woocommerce-terms-and-conditions-wrapper a {
	font-weight: 600 !important;
	text-decoration: underline;
}

body.woocommerce-checkout #order_review input[type="checkbox"],
body.woocommerce-checkout #order_review input[type="radio"] {
	accent-color: var(--cd-burgundy-dark);
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
	overflow: hidden;
	padding: 10px !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation li {
	margin: 0 !important;
	list-style: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a {
	display: block;
	padding: 11px 12px;
	border-radius: 10px;
	color: var(--cd-ink) !important;
	font-size: 14px !important;
	font-weight: 500 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation a:hover,
body.woocommerce-account .woocommerce-MyAccount-navigation .is-active a {
	background: var(--cd-blush);
	color: var(--cd-burgundy-dark) !important;
}

body.woocommerce-account:not(.logged-in) .u-columns {
	display: grid;
	grid-template-columns: repeat(2, minmax(0, 1fr));
	gap: 24px;
	align-items: start;
	width: 100%;
	max-width: none;
}

body.woocommerce-account:not(.logged-in) .u-column1,
body.woocommerce-account:not(.logged-in) .u-column2 {
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
}

/* ---- Login / Register tabs (bar is printed by PHP, so there is no flash) --- */
.cd-auth-tabs {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 4px;
	width: min(100%, 560px);
	margin: 0 auto 18px;
	padding: 5px;
	border-radius: 999px;
	background: var(--cd-blush);
}
.cd-auth-tabs button {
	min-height: 44px;
	border: 0;
	border-radius: 999px;
	background: transparent;
	color: var(--cd-plum);
	font-family: var(--cd-font-body);
	font-size: 15px;
	font-weight: 600;
	cursor: pointer;
	transition: background-color 180ms ease, color 180ms ease;
}
.cd-auth-tabs[data-active="login"] button[data-tab="login"],
.cd-auth-tabs[data-active="register"] button[data-tab="register"] { background: var(--cd-burgundy-dark); color: #fff; }

.cd-auth-tabs ~ #customer_login {
	display: block !important;
	width: min(100%, 560px) !important;
	max-width: 560px !important;
	margin: 0 auto !important;
}
.cd-auth-tabs ~ #customer_login .u-column1,
.cd-auth-tabs ~ #customer_login .u-column2 {
	display: none;
	width: 100% !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
	border: 0 !important;
}
.cd-auth-tabs[data-active="login"] ~ #customer_login .u-column1,
.cd-auth-tabs[data-active="register"] ~ #customer_login .u-column2 { display: block; }
.cd-auth-tabs ~ #customer_login .u-column1 > h2,
.cd-auth-tabs ~ #customer_login .u-column2 > h2 { display: none; }
.cd-auth-tabs ~ #customer_login form { width: 100% !important; margin: 0 !important; }
body.woocommerce-account:not(.logged-in) .woocommerce::before { text-align: center; }

/* Login form: [Remember me ........ Lost your password?] then the button */
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 16px;
}
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login > * { grid-column: 1 / -1; }
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login > p.form-row:has(.woocommerce-form-login__rememberme) { display: contents; }
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login .woocommerce-form-login__rememberme {
	grid-column: 1;
	grid-row: 3;
	display: inline-flex !important;
	align-items: center;
	gap: 10px;
	margin: 0 !important;
	line-height: 1.2;
}
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login .woocommerce-form-login__rememberme input[type="checkbox"] {
	position: static !important;
	flex: 0 0 20px;
	width: 20px;
	height: 20px;
	margin: 0 !important;
	transform: none;
}
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login .lost_password {
	grid-column: 2;
	grid-row: 3;
	margin: 0 !important;
	text-align: right;
}
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login .lost_password a {
	color: var(--cd-burgundy-dark) !important;
	font-size: 14px;
	font-weight: 500;
	text-decoration: underline;
}
body.woocommerce-account:not(.logged-in) form.woocommerce-form-login button[name="login"] {
	grid-column: 1 / -1;
	grid-row: 4;
	justify-self: start;
	margin: 18px 0 0 !important;
}

/* ---- My account: orders, tables, empty states -------------------------- */
body.woocommerce-account .woocommerce-MyAccount-content {
	padding: clamp(14px, 2vw, 24px) !important;
}
body.woocommerce-account .woocommerce-MyAccount-content > :first-child { margin-top: 0 !important; }
body.woocommerce-account .woocommerce-MyAccount-content > :last-child { margin-bottom: 0 !important; }
body.woocommerce-account .woocommerce-MyAccount-content table,
body.woocommerce-account table.woocommerce-orders-table {
	width: 100%;
	margin: 0 !important;
	border: 0 !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
body.woocommerce-account .woocommerce-MyAccount-content table th,
body.woocommerce-account .woocommerce-MyAccount-content table td {
	padding: 14px 10px !important;
	border: 0 !important;
	border-bottom: 1px solid var(--cd-line) !important;
	background: transparent !important;
	color: var(--cd-ink) !important;
	font-size: 14.5px !important;
}
body.woocommerce-account .woocommerce-MyAccount-content table th {
	color: var(--cd-muted) !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	letter-spacing: .12em;
	text-transform: uppercase;
}
body.woocommerce-account .woocommerce-MyAccount-content table tr:last-child td { border-bottom: 0 !important; }
body.woocommerce-account .woocommerce-MyAccount-content table a:not(.button) {
	color: var(--cd-burgundy-dark) !important;
	font-weight: 600;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button,
body.woocommerce-account .woocommerce-MyAccount-content a.button {
	display: inline-flex;
	align-items: center;
	min-height: 38px;
	padding: 0 18px !important;
	border: 1px solid var(--cd-burgundy-dark) !important;
	border-radius: 999px !important;
	background: transparent !important;
	color: var(--cd-burgundy-dark) !important;
	font-size: 13.5px !important;
	font-weight: 600 !important;
}
body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-button:hover,
body.woocommerce-account .woocommerce-MyAccount-content a.button:hover {
	background: var(--cd-burgundy-dark) !important;
	color: #fff !important;
}
/* no blue anywhere: focus rings follow the palette */
body.woocommerce-account :focus-visible,
body.woocommerce-cart :focus-visible,
body.woocommerce-checkout :focus-visible {
	outline: 2px solid var(--cd-gold-deep);
	outline-offset: 2px;
}
@media (max-width: 768px) {
	body.woocommerce-account .woocommerce-orders-table thead { display: none; }
	body.woocommerce-account .woocommerce-orders-table,
	body.woocommerce-account .woocommerce-orders-table tbody { display: block; width: 100%; }
	body.woocommerce-account .woocommerce-orders-table tr {
		display: block;
		margin: 0;
		padding: 6px 0 10px;
		border: 0;
		border-bottom: 1px solid var(--cd-line);
		background: transparent;
	}
	body.woocommerce-account .woocommerce-orders-table tr:last-child { border-bottom: 0; }
	body.woocommerce-account .woocommerce-MyAccount-content .woocommerce-orders-table td {
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 14px;
		padding: 10px 0 !important;
		text-align: right;
	}
	body.woocommerce-account .woocommerce-orders-table td::before {
		content: attr(data-title);
		color: var(--cd-muted);
		font-size: 12px;
		font-weight: 600;
		letter-spacing: .1em;
		text-transform: uppercase;
		text-align: left;
	}
	body.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions::before { display: none; }
	body.woocommerce-account .woocommerce-orders-table td.woocommerce-orders-table__cell-order-actions { justify-content: flex-end; }
}

/* ---- Cart / checkout / account: our fonts everywhere (inputs, dropdowns) - */
html body.woocommerce-cart .woocommerce,
html body.woocommerce-checkout .woocommerce,
html body.woocommerce-account .woocommerce,
html body.woocommerce-checkout .select2-dropdown,
html body.woocommerce-account .select2-dropdown,
html body.woocommerce-cart .woocommerce :where(p, span, label, input, select, textarea, button, a, td, th, li, strong, small, div),
html body.woocommerce-checkout .woocommerce :where(p, span, label, input, select, textarea, button, a, td, th, li, strong, small, div),
html body.woocommerce-account .woocommerce :where(p, span, label, input, select, textarea, button, a, td, th, li, strong, small, div),
html body.woocommerce-checkout .select2-results__option {
	font-family: var(--cd-font-body) !important;
}
html body.woocommerce-cart .woocommerce :where(h1, h2, h3, h4),
html body.woocommerce-checkout .woocommerce :where(h1, h2, h3, h4),
html body.woocommerce-account .woocommerce :where(h1, h2, h3, h4) {
	font-family: var(--cd-font-head) !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form {
	position: relative;
	padding: 28px !important;
	overflow: hidden;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form::before {
	content: "";
	position: absolute;
	inset: 0 0 auto;
	height: 3px;
	background: linear-gradient(90deg, var(--cd-gold), var(--cd-gold-soft));
}

body.woocommerce-account:not(.logged-in) .woocommerce-form p {
	color: var(--cd-muted) !important;
	font-size: 14px !important;
	line-height: 1.6 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form .form-row {
	margin-bottom: 18px !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form .woocommerce-form__label-for-checkbox {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin-top: 2px;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .form-row:has(.woocommerce-form-login__rememberme) {
	display: grid;
	justify-items: start;
	gap: 16px;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login .woocommerce-form-login__rememberme {
	margin: 0 !important;
}

body.woocommerce-account:not(.logged-in) .woocommerce-form-login button[name="login"] {
	display: inline-flex !important;
	width: fit-content;
	margin: 0 !important;
	padding: 0 24px !important;
}

@media (max-width: 1260px) {
	:root {
		--cd-container: min(100% - 48px, 1120px);
		--cd-header-height: 158px;
	}

	.cd-header {
		padding-bottom: 12px;
	}

	

	

	

	

	

	

	

}

@media (max-width: 992px) {
	:root {
		--cd-container: min(100% - 32px, 760px);
		--cd-header-height: 132px;
	}

	.cd-header {
		padding: 0 0 12px;
	}

	.cd-menu-toggle {
		display: block;
	}

	/* menu = full-screen sheet; the header (logo + close button) stays on top */
	.cd-header.is-menu-open { will-change: auto; }
	.cd-announce,
	.cd-menu-toggle,
	.cd-header__logo-link { position: relative; z-index: 3; }
	.cd-header.is-menu-open .cd-actions { position: relative; z-index: 3; }
	.cd-nav {
		position: fixed;
		top: 0;
		left: 0;
		right: 0;
		bottom: 0;
		z-index: 1;
		display: grid;
		align-content: start;
		gap: 2px;
		margin: 0;
		padding: calc(var(--cd-header-height) + 12px) var(--cd-gutter) 40px;
		border-radius: 0;
		background: var(--cd-cream);
		box-shadow: none;
		overscroll-behavior: contain;
		font-size: 17px !important;
		opacity: 0;
		visibility: hidden;
		pointer-events: none;
		transform: translateY(-10px);
		transition: opacity 200ms ease, transform 200ms ease, visibility 200ms;
	}

	.cd-header.is-menu-open .cd-nav {
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: translateY(0);
	}

	.cd-nav a {
		width: 100%;
		padding: 13px 14px;
		border-radius: 10px;
		font-weight: 600 !important;
	}

	.cd-nav a:hover,
	.cd-nav a:focus-visible {
		background: var(--cd-blush);
		color: var(--cd-plum) !important;
	}

	.cd-nav {
		height: 100vh;
		height: 100dvh;
		overflow-y: auto;
	}

	/* Our Collections becomes a plain accordion inside the nav
	   panel — children stack BELOW their parent here (unlike
	   the side-flyout on desktop), since that's the natural,
	   easy-to-scan pattern for a narrow mobile menu. */

	.cd-collections__trigger {
		width: 100%;
		justify-content: space-between;
		background: transparent;
		border: 0;
		padding: 13px 14px;
		border-radius: 10px;
		font-size: 16px !important;
		font-weight: 600 !important;
	}

	.cd-collections__trigger:hover { background: var(--cd-blush); border-color: transparent; }
	.cd-collections.is-open .cd-collections__trigger {
		background: transparent;
		color: var(--cd-burgundy-dark);
		border-color: transparent;
	}

	.cd-collections__panel {
		position: static;
		width: 100%;
		max-height: 0;
		margin-top: 0;
		padding: 0;
		border: 0;
		border-radius: 0;
		background: transparent;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
		overflow: hidden;
		transition: max-height 260ms ease;
	}

	.cd-collections.is-open .cd-collections__panel {
		max-height: 3000px;
		margin: 0 0 10px 18px;
		padding: 2px 0 2px 14px;
		border-left: 2px solid var(--cd-gold);
	}

	.cd-collections__panel-intro {
		margin: 2px 6px 10px;
	}

	.cd-collections__row::before {
		display: none;
	}

	.cd-nav .cd-collections__link {
		padding: 11px 8px;
		font-size: 16px !important;
		font-weight: 500 !important;
	}

	.cd-collections__expand {
		display: inline-flex;
		width: 40px;
		height: 40px;
		cursor: pointer;
	}

	.cd-collections__child:has(.cd-collections__child-link--all) { display: block; }

	.cd-collections__children-list { padding: 0; border-left: 0; }

	.cd-collections__child-link { color: var(--cd-ink) !important; font-size: 16px !important; padding: 10px 8px; }

	.cd-collections__expand svg,
	.cd-collections__item.is-active .cd-collections__expand svg {
		transform: rotate(0);
	}

	.cd-collections__item.is-active .cd-collections__expand svg {
		transform: rotate(180deg);
	}

	.cd-collections__children {
		position: static;
		width: 100%;
		max-height: 0;
		margin: 0 0 0 10px;
		padding: 0;
		border: 0;
		border-left: 2px solid rgba(49, 27, 38, 0.12);
		border-radius: 0;
		box-shadow: none;
		opacity: 1;
		visibility: visible;
		pointer-events: auto;
		transform: none;
		overflow: hidden;
		transition: max-height 260ms ease;
	}

	.cd-collections__item.is-active .cd-collections__children {
		max-height: 900px;
		padding: 8px 0 12px 12px;
	}

	.cd-actions {
		gap: 14px;
	}

	.cd-login {
		width: 40px;
		height: 40px;
	}

	.cd-account__toggle {
		width: 40px;
		height: 40px;
	}

	body.woocommerce-account .woocommerce-MyAccount-navigation,
	body.woocommerce-account .woocommerce-MyAccount-content {
		float: none !important;
		width: 100% !important;
		margin-bottom: 18px;
	}

	body.woocommerce-checkout form.checkout {
		grid-template-columns: 1fr;
		gap: 18px;
	}

	body.woocommerce-checkout form.checkout .col2-set,
	body.woocommerce-checkout #order_review_heading,
	body.woocommerce-checkout #order_review {
		grid-column: 1;
		grid-row: auto;
	}

	body.woocommerce-checkout #order_review_heading {
		margin-bottom: -18px !important;
	}

	body.woocommerce-account:not(.logged-in) .u-columns {
		grid-template-columns: 1fr;
		gap: 22px;
	}

	

	

	

	

	

	

	

	

	

	

	

	

	


	

	.cd-footer__inner {
		grid-template-columns: 1fr 1fr;
	}

	.cd-shop-page {
		width: var(--cd-container);
		padding-top: 18px;
	}

	.cd-shop-hero {
		display: grid;
		grid-template-columns: 1fr auto;
		align-items: end;
		gap: 12px;
	}

	.cd-shop-hero p {
		grid-column: 1 / -1;
	}

	.cd-shop-filter-toggle {
		display: inline-flex;
		align-items: center;
		gap: 8px;
		min-height: 40px;
		padding: 0 14px;
		border: 0;
		border-radius: 10px;
		background: var(--cd-plum);
		color: #fff !important;
		font-size: 14px !important;
		font-weight: 600 !important;
		cursor: pointer;
	}

	.cd-filter-icon {
		position: relative;
		width: 16px;
		height: 14px;
		border-top: 3px solid #fff;
		border-bottom: 3px solid #fff;
		flex: 0 0 auto;
	}

	.cd-filter-icon::before {
		content: "";
		position: absolute;
		left: 3px;
		right: 3px;
		top: 50%;
		border-top: 3px solid #fff;
		transform: translateY(-50%);
	}

	.cd-shop-layout {
		grid-template-columns: 1fr;
		gap: 24px;
	}

	.cd-shop-sidebar {
		position: fixed;
		inset: 0;
		z-index: 1200;
		display: none;
		padding: 18px;
		background: rgba(31, 27, 32, 0.32);
		overflow-y: auto;
	}

	.cd-shop-page.is-filter-open .cd-shop-sidebar {
		display: block;
	}

	.cd-shop-sidebar .cd-shop-filter {
		max-width: 420px;
		margin: 0 auto;
		max-height: calc(100vh - 36px);
		overflow-y: auto;
	}

	.cd-shop-filter__close {
		display: inline-flex;
		align-items: center;
		justify-content: center;
		width: 32px;
		height: 32px;
		border: 0;
		border-radius: 50%;
		background: var(--cd-blush);
		color: var(--cd-plum);
		font-size: 22px !important;
		font-weight: 600 !important;
		line-height: 1;
		cursor: pointer;
	}

	.cd-shop-content ul.products,
	.cd-shop-products {
		grid-template-columns: repeat(2, minmax(0, 1fr));
		gap: 22px !important;
	}
}

@media (max-width: 600px) {

	:root {
		--cd-container: calc(100% - 32px);
		--cd-header-height: 112px;
	}

	.cd-logo {
		width: 74px;
		height: auto;
	}

	.cd-header__nav-col {
		gap: 12px;
	}

	.cd-nav {
		margin-top: 10px;
		font-size: 16px !important;
	}

	.cd-icon-button {
		width: 24px;
		height: 24px;
	}

	.cd-login {
		width: 38px;
		height: 38px;
	}

	.cd-account__toggle {
		width: 38px;
		height: 38px;
	}

	.cd-account { position: static; }
	.cd-account__menu {
		left: 0;
		right: 0;
		width: auto;
	}

	body.woocommerce-checkout .woocommerce,
	body.woocommerce-account .woocommerce {
		padding: 22px 0 64px;
	}

	body.woocommerce-checkout .col2-set,
	body.woocommerce-checkout #order_review,
	body.woocommerce-account .woocommerce-form,
	body.woocommerce-account .woocommerce-MyAccount-content {
		padding: 16px !important;
		border-radius: 14px !important;
	}

	body.woocommerce-checkout h3,
	body.woocommerce-checkout #order_review_heading,
	body.woocommerce-account h2 {
		font-size: 20px !important;
	}

	.cd-search-panel {
		padding: calc(var(--cd-header-height) + 14px) 12px 16px;
	}

	.cd-search-panel__box,
	.cd-search-results-form {
		padding: 12px;
		border-radius: 14px;
	}

	.cd-search-form,
	.cd-search-results-form {
		grid-template-columns: 1fr;
	}

	.cd-search-close {
		position: absolute;
		top: 10px;
		right: 10px;
		width: 38px;
		height: 38px;
		min-height: 38px !important;
	}

	.cd-search-form input[type="search"] {
		padding-right: 46px;
	}



	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	

	.cd-footer__inner {
		grid-template-columns: 1fr;
	}





	.cd-footer {
		margin-top: 80px;
		padding: 46px 0;
	}

	.cd-footer h2 {
		font-size: 17px !important;
	}

	.cd-footer li,
	.cd-footer p {
		font-size: 16px !important;
	}

	.custom-filter-sidebar,
	.wpc-filters-widget-wrapper,
	.wpc-filters-main-wrap {
		padding: 14px;
		border-radius: 14px;
	}

	.cd-shop-page {
		width: var(--cd-container);
		padding-bottom: 64px;
	}

	.cd-shop-hero {
		margin-bottom: 18px;
	}

	.cd-shop-hero h1 {
		font-size: 30px !important;
	}

	.cd-shop-toolbar {
		display: grid;
		gap: 12px;
		padding: 12px;
	}

	.cd-shop-toolbar select {
		width: 100%;
	}

	.cd-shop-content ul.products,
	.cd-shop-products {
		grid-template-columns: 1fr;
		gap: 24px !important;
	}

	.cd-category-link,
	.custom-filter-sidebar a,
	.wpc-term-item a,
	.wpc-term-item label {
		font-size: 14px !important;
	}

	.cd-cart-toast {
		right: 12px;
		bottom: 12px;
	}
}


body.woocommerce-account .entry-content {
	width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
}

body.woocommerce-account .woocommerce {
	width: 100% !important;
}

body.woocommerce-account .woocommerce {
	position: relative;
	isolation: isolate;
}

body.woocommerce-account:not(.logged-in) .woocommerce {
	padding-right: 0;
	padding-left: 0;
	border-radius: 0 !important;
	background: none !important;
}

body.woocommerce-account:not(.logged-in) .u-columns,
body.woocommerce-account:not(.logged-in) .woocommerce::before {
	width: 100% !important;
	max-width: none !important;
}

@media (max-width: 600px) {
	body.woocommerce-account:not(.logged-in) .woocommerce {
		padding-right: 12px !important;
		padding-left: 12px !important;
		border-radius: 16px !important;
	}

	body.woocommerce-account:not(.logged-in) .woocommerce {
		padding: 18px 10px 56px !important;
		border-radius: 14px !important;
	}
}

.product-mobile-actions.ct-hidden-lg.product-remove {
	display:none!important;
}

/* ------------------------------------------------------------
   Cart — tablet & mobile (1000px and below). One single
   breakpoint covers this whole range rather than leaving a gap
   between a 600px mobile treatment and the desktop table —
   that gap was exactly where things were showing up missing
   or misaligned, since a cramped desktop table can't share
   space with a fixed-width totals sidebar on a mid-size
   screen. Below 1000px, the totals card goes full-width and
   stacks below the item list instead.
   ------------------------------------------------------------ */

@media (max-width: 1000px) {
	body.woocommerce-cart .woocommerce-cart-form,
	body.woocommerce-cart .cart-collaterals,
	body.woocommerce-cart .cart_totals {
		display: block !important;
		float: none !important;
		width: 100% !important;
	}

	/* ------------------------------------------------------------
	   Mobile cart — each cart item becomes a simple stacked
	   card: thumbnail + name on top, one clean quantity
	   stepper + remove icon below. One single definition here
	   (earlier versions of this file had three different,
	   conflicting attempts at this same layout at overlapping
	   breakpoints — consolidated into just this one).
	   ------------------------------------------------------------ */

	body.woocommerce-cart table.shop_table,
	body.woocommerce-cart table.shop_table tbody {
		display: block !important;
		width: 100% !important;
		min-width: 0 !important;
	}

	body.woocommerce-cart table.shop_table thead {
		display: none !important;
	}

	body.woocommerce-cart table.shop_table tr.cart_item {
		position: relative;
		display: grid !important;
		grid-template-columns: 100px minmax(0, 1fr) !important;
		grid-template-rows: auto auto auto !important;
		column-gap: 14px;
		row-gap: 6px;
		width: 100% !important;
		margin: 0 0 16px !important;
		padding: 0 0 16px !important;
		border: 0 !important;
		border-bottom: 1px solid rgba(49, 27, 38, 0.10) !important;
		border-radius: 0 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	body.woocommerce-cart table.shop_table tr.cart_item:last-child {
		border-bottom: 0 !important;
		margin-bottom: 0 !important;
		padding-bottom: 0 !important;
	}

	body.woocommerce-cart table.shop_table tr.cart_item td {
		display: block !important;
		width: auto !important;
		padding: 0 !important;
		border: 0 !important;
		text-align: left !important;
	}

	body.woocommerce-cart table.shop_table_responsive tr td::before,
	body.woocommerce-cart table.shop_table td::before {
		display: none !important;
		content: none !important;
	}

	body.woocommerce-cart .product-thumbnail {
		grid-column: 1;
		grid-row: 1 / span 3;
	}

	body.woocommerce-cart .product-thumbnail img {
		width: 100px !important;
		height: 100px !important;
		min-width: 100px !important;
		border-radius: 10px !important;
		object-fit: cover;
	}

	body.woocommerce-cart .product-name {
		grid-column: 2;
		grid-row: 1;
		padding-right: 34px !important;
	}

	body.woocommerce-cart table.shop_table tr.cart_item td.product-name { padding-right: 44px !important; }

	body.woocommerce-cart .product-name a {
		font-size: 16px !important;
		font-weight: 600 !important;
		line-height: 1.3 !important;
	}

	body.woocommerce-cart table.shop_table tr.cart_item td.product-price {
		display: none !important;
	}

	body.woocommerce-cart .product-quantity {
		grid-column: 2;
		grid-row: 2;
	}

	body.woocommerce-cart .product-subtotal {
		grid-column: 2;
		grid-row: 3;
		color: var(--cd-plum) !important;
		font-size: 16px !important;
		font-weight: 600 !important;
	}

	body.woocommerce-cart .quantity,
	body.woocommerce-cart .ct-quantity {
		height: 34px;
	}

	body.woocommerce-cart .quantity .qty,
	body.woocommerce-cart .ct-quantity .qty {
		width: 38px;
		font-size: 15px !important;
	}

	body.woocommerce-cart .quantity button,
	body.woocommerce-cart .ct-quantity button,
	body.woocommerce-cart .ct-increase,
	body.woocommerce-cart .ct-decrease {
		width: 30px;
	}

	body.woocommerce-cart .product-remove {
		position: absolute;
		top: 33px;
		right: 15px;
		width: auto !important;
		padding: 0 !important;
	}

	body.woocommerce-cart .product-remove a.remove {
		width: 28px !important;
		height: 28px !important;
	}

	body.woocommerce-cart .actions {
		padding-top: 4px !important;
	}

	body.woocommerce-cart .cart_totals {
		margin-top: 24px !important;
		padding: 18px;
	}

	body.woocommerce-cart .wc-proceed-to-checkout a.checkout-button {
		width: 100% !important;
	}
}


/* Mobile — 1 card */


/* Extra small */


/* ======================================================================
   Collection grid page (taxonomy-product_cat.php — parent categories
   that have subcategories, e.g. "Pastries", "Dessert Bites")
   ====================================================================== */

/* ======================================================================
   Collections grid
   ====================================================================== */
.cd-collection-grid {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	gap: 24px;
}

.cd-collection-card {
	display: flex;
	flex-direction: column;
	overflow: hidden;
	border: 1px solid var(--cd-line);
	border-radius: 18px;
	background: #fff;
	transition: transform 220ms ease, box-shadow 220ms ease;
}

.cd-collection-card:hover,
.cd-collection-card:focus-visible {
	transform: translateY(-4px);
	box-shadow: 0 16px 36px rgba(74, 26, 33, 0.1);
}

.cd-collection-card__image {
	display: block;
	aspect-ratio: 4 / 3;
	overflow: hidden;
	background: var(--cd-blush);
}

.cd-collection-card__image img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s cubic-bezier(0.2, 0.7, 0.2, 1);
}

.cd-collection-card:hover .cd-collection-card__image img { transform: scale(1.05); }

.cd-collection-card__body {
	display: flex;
	flex-direction: column;
	gap: 4px;
	padding: 16px 20px 20px;
}

html body .cd-collection-card__body h2 {
	margin: 0;
	color: var(--cd-plum) !important;
	font-size: 21px !important;
	font-weight: 400 !important;
	line-height: 1.2 !important;
}

.cd-collection-card__count {
	margin: 0;
	color: var(--cd-gold-deep);
	font-size: 11px;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}

.cd-collection-empty {
	padding: 40px 28px;
	border-radius: 18px;
	background: var(--cd-blush);
	color: var(--cd-plum) !important;
	font-size: 16px !important;
	font-weight: 600 !important;
	text-align: center;
}

@media (max-width: 1260px) {
	.cd-collection-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 22px;
	}
}

@media (max-width: 992px) {
	.cd-collection-page {
width: var(--cd-container);
	}

	.cd-collection-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 18px;
	}

	.cd-collection-card {
max-width: none;
	}

	.cd-collection-card__image {
height: 190px;
	}
}

@media (max-width: 768px) {
	.cd-collection-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 16px;
	}
}

@media (max-width: 600px) {
	.cd-collection-page {
width: var(--cd-container);
padding-bottom: 64px;
	}

	.cd-collection-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 12px;
	}

	.cd-collection-card {
max-width: none;
	}

	.cd-collection-card__image {
height: 150px;
	}

	.cd-collection-card__body {
padding: 14px 14px 16px;
	}

	.cd-collection-card__body h2 {
font-size: 15px !important;
line-height: 1.25 !important;
	}

	.cd-collection-card__count {
font-size: 10px !important;
	}

	.cd-collection-hero h1 {
font-size: 30px !important;
	}
}

@media (max-width: 380px) {
	.cd-collection-grid {
grid-template-columns: 1fr;
	}

	.cd-collection-card__image {
height: 200px;
	}
}

	.cd-nav__mobile-only { display: none; }
	.cd-nav-right { display: none; }
	.cd-collections { flex-shrink: 0; }

	@media (min-width: 993px) {
.cd-nav-right {
	display: flex;
	align-items: center;
	gap: 4px;
	margin-right: 14px;
	font-size: 18px;
	font-weight: 500;
	white-space: nowrap;
}
.cd-nav-right a {
	padding: 9px 14px;
	border-radius: 999px;
	transition: background-color 180ms ease, color 180ms ease;
}
.cd-nav-right a:hover,
.cd-nav-right a:focus-visible { background: var(--cd-blush); color: var(--cd-plum) !important; }
.cd-nav { gap: clamp(4px, 1vw, 24px); }
.cd-collections__trigger { padding: 9px 14px; border-radius: 999px; transition: background-color 180ms ease, color 180ms ease; }
.cd-collections__trigger:hover,
.cd-collections.is-open .cd-collections__trigger { background: var(--cd-blush); color: var(--cd-plum); }
	}
	@media (min-width: 993px) and (max-width: 1360px) {
.cd-nav, .cd-nav-right, .cd-collections__trigger { font-size: 16px !important; }
.cd-nav a, .cd-nav-right a, .cd-collections__trigger { padding: 9px 10px; }
	}
	@media (max-width: 992px) {
.cd-nav__mobile-only { display: block; }
	}

	html body .cd-header .cd-logo-text {
display: inline-block;
color: var(--cd-burgundy-dark);
font-family: var(--cd-font-head) !important;
font-size: clamp(26px, 2.2vw, 32px);
font-weight: 400;
letter-spacing: 0;
line-height: 1;
white-space: nowrap;
	}
	@media (max-width: 600px) {
html body .cd-header .cd-logo-text { font-size: 24px; }
	.cd-announce { margin-bottom: 10px; letter-spacing: 0.14em; font-size: 10px; }
	.cd-announce span:nth-child(n+2) { display: none; }
	.cd-logo-tag { font-size: 7px; letter-spacing: 0.26em; }
	/* search + cart leave the header and float on the right edge */
	html body .cd-header .cd-actions .cd-icon-button { display: none; }
	.cd-fab { display: flex; }
	}

/* ======================================================================
   Gifting and corporate: folders page, folder (bento) page, lightbox, form
   ====================================================================== */
.cd-gifting {
	width: min(var(--cd-container), 1240px);
	margin: 0 auto;
	padding: clamp(28px, 4vw, 48px) 0 clamp(56px, 7vw, 88px);
}

.cd-gifting__hero {
	margin-bottom: clamp(24px, 3vw, 36px);
	padding-bottom: 22px;
	border-bottom: 1px solid var(--cd-line);
}

.cd-gifting__eyebrow {
	margin: 0 0 10px;
	color: var(--cd-gold-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

html body .cd-gifting__hero h1 {
	margin: 0;
	color: var(--cd-plum) !important;
	font-size: clamp(34px, 4.2vw, 56px) !important;
	font-weight: 400 !important;
	line-height: 1.05 !important;
	letter-spacing: 0;
}

.cd-gifting__lead { max-width: 60ch; margin: 12px 0 0; color: var(--cd-muted); font-size: 16px; line-height: 1.65; }

.cd-gifting__empty {
	padding: 28px;
	border-radius: 18px;
	background: var(--cd-blush);
	color: var(--cd-plum);
	font-weight: 500;
}

/* folders */
.cd-gift-folders {
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: clamp(18px, 2.4vw, 32px);
}

.cd-gift-folder {
	position: relative;
	display: block;
	margin: 0 0 12px;
	color: inherit;
	text-decoration: none;
}

/* two "sheets" peeking out behind the card, so it reads as a folder */
.cd-gift-folder::before,
.cd-gift-folder::after {
	content: "";
	position: absolute;
	inset: 0;
	z-index: 0;
	border: 1px solid var(--cd-line);
	border-radius: 20px;
	background: var(--cd-blush);
	transition: transform 0.25s ease;
}

.cd-gift-folder::before { transform: translateY(10px) scale(0.95); }
.cd-gift-folder::after { transform: translateY(5px) scale(0.975); background: #fff; }

.cd-gift-folder:hover::before { transform: translateY(14px) scale(0.95); }
.cd-gift-folder:hover::after { transform: translateY(7px) scale(0.975); }

.cd-gift-folder__media,
.cd-gift-folder__body { position: relative; z-index: 1; display: block; }

.cd-gift-folder__media {
	overflow: hidden;
	aspect-ratio: 4 / 3;
	border-radius: 20px 20px 0 0;
	background: var(--cd-blush);
}

.cd-gift-folder__media img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.cd-gift-folder:hover .cd-gift-folder__media img { transform: scale(1.04); }

.cd-gift-folder__body {
	display: grid;
	grid-template-columns: minmax(0, 1fr) auto;
	align-items: center;
	column-gap: 12px;
	padding: 16px 18px 18px;
	border: 1px solid var(--cd-line);
	border-top: 0;
	border-radius: 0 0 20px 20px;
	background: #fff;
}

.cd-gift-folder__name {
	grid-column: 1;
	color: var(--cd-plum);
	font-family: var(--cd-font-head);
	font-size: 21px;
	line-height: 1.2;
}

.cd-gift-folder__count {
	grid-column: 1;
	margin-top: 3px;
	color: var(--cd-muted);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.12em;
	text-transform: uppercase;
}

.cd-gift-folder__arrow {
	grid-column: 2;
	grid-row: 1 / span 2;
	display: grid;
	place-items: center;
	width: 38px;
	height: 38px;
	border: 1px solid var(--cd-line);
	border-radius: 50%;
	color: var(--cd-burgundy-dark);
	transition: background-color 0.2s ease, color 0.2s ease;
}

.cd-gift-folder:hover .cd-gift-folder__arrow { background: var(--cd-burgundy-dark); color: #fff; }

/* bento photo grid */
.cd-gift-bento {
	display: grid;
	grid-template-columns: repeat(4, minmax(0, 1fr));
	grid-auto-rows: clamp(150px, 17vw, 230px);
	grid-auto-flow: dense;
	gap: 14px;
}

.cd-gift-bento__item {
	position: relative;
	overflow: hidden;
	padding: 0;
	border: 0;
	border-radius: 18px;
	background: var(--cd-blush);
	cursor: zoom-in;
}

.cd-gift-bento__item img {
	display: block;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.5s ease;
}

.cd-gift-bento__item:hover img { transform: scale(1.05); }

.cd-gift-bento__item::after {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, transparent 60%, rgba(46, 15, 21, 0.28));
	opacity: 0;
	transition: opacity 0.25s ease;
}

.cd-gift-bento__item:hover::after { opacity: 1; }

.cd-gift-bento__item:nth-child(7n + 1) { grid-column: span 2; grid-row: span 2; }
.cd-gift-bento__item:nth-child(7n + 4) { grid-row: span 2; }
.cd-gift-bento__item:nth-child(7n + 6) { grid-column: span 2; }
.cd-gift-bento__item:nth-child(7n + 4):last-child { grid-row: auto; }

/* lightbox */
.cd-lightbox {
	position: fixed;
	inset: 0;
	z-index: 100000;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 56px 72px;
	background: rgba(46, 15, 21, 0.92);
}

.cd-lightbox[hidden] { display: none; }

.cd-lightbox__img {
	max-width: 100%;
	max-height: 100%;
	border-radius: 12px;
	box-shadow: 0 24px 70px rgba(0, 0, 0, 0.45);
	object-fit: contain;
}

.cd-lightbox__close,
.cd-lightbox__nav {
	position: absolute;
	display: grid;
	place-items: center;
	width: 46px;
	height: 46px;
	border: 1px solid rgba(255, 255, 255, 0.3);
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.08);
	color: #fff;
	font-size: 28px;
	line-height: 1;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.cd-lightbox__close:hover,
.cd-lightbox__nav:hover { background: rgba(255, 255, 255, 0.2); }

.cd-lightbox__close { top: 18px; right: 18px; }
.cd-lightbox__nav { top: 50%; transform: translateY(-50%); }
.cd-lightbox__nav--prev { left: 18px; }
.cd-lightbox__nav--next { right: 18px; }

.cd-lightbox__count {
	position: absolute;
	bottom: 18px;
	left: 50%;
	color: rgba(255, 255, 255, 0.75);
	font-size: 13px;
	letter-spacing: 0.12em;
	transform: translateX(-50%);
}

body.cd-lightbox-open { overflow: hidden; }

/* enquiry form */
.cd-gift-enquiry {
	display: grid;
	grid-template-columns: minmax(0, 0.8fr) minmax(0, 1.2fr);
	gap: clamp(24px, 4vw, 56px);
	align-items: start;
	margin-top: clamp(48px, 6vw, 80px);
	padding: clamp(24px, 4vw, 48px);
	border-radius: 28px;
	background: var(--cd-blush);
}

.cd-gift-enquiry__eyebrow {
	margin: 0 0 10px;
	color: var(--cd-gold-deep);
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 0.18em;
	text-transform: uppercase;
}

html body .cd-gift-enquiry__intro h2 {
	margin: 0 0 14px;
	color: var(--cd-plum) !important;
	font-size: var(--cd-h2) !important;
	font-weight: 400 !important;
	line-height: 1.1 !important;
}

html body .cd-gift-enquiry__intro h2 em { color: var(--cd-burgundy-dark); font-style: italic; }

.cd-gift-enquiry__intro p { margin: 0 0 18px; color: var(--cd-muted); line-height: 1.65; }

.cd-gift-enquiry__intro p.cd-gift-enquiry__eyebrow { margin-bottom: 10px; color: var(--cd-gold-deep); }

.cd-gift-enquiry__intro ul { margin: 0; padding: 0; list-style: none; display: grid; gap: 10px; }

.cd-gift-enquiry__intro li {
	display: flex;
	align-items: center;
	gap: 10px;
	color: var(--cd-ink);
	font-size: 15px;
}

.cd-gift-enquiry__intro li::before {
	content: "";
	flex: none;
	width: 6px;
	height: 6px;
	background: var(--cd-gold);
	transform: rotate(45deg);
}

.cd-gift-form {
	padding: clamp(20px, 2.6vw, 32px);
	border: 1px solid var(--cd-line);
	border-radius: 20px;
	background: #fff;
}

.cd-gift-form .cd-form-grid { margin-bottom: 20px; }

.cd-gift-form select {
	width: 100%;
	min-height: 48px;
	padding: 0 16px;
	border: 1px solid var(--cd-line);
	border-radius: 14px;
	background: #fff;
	color: var(--cd-ink);
	font: inherit;
	font-size: 15px;
}

.cd-gift-form select:focus { border-color: var(--cd-burgundy-dark); box-shadow: 0 0 0 3px rgba(131, 59, 62, 0.14); outline: 0; }

.cd-gift-form button {
	min-height: 50px;
	padding: 0 32px;
	border: 0;
	border-radius: 999px;
	background: var(--cd-burgundy-dark);
	color: #fff;
	font-family: var(--cd-font-body);
	font-size: 15px;
	font-weight: 500;
	cursor: pointer;
	transition: background-color 0.2s ease;
}

.cd-gift-form button:hover { background: var(--cd-plum); }

.cd-gift-form__trap { position: absolute; left: -9999px; width: 1px; height: 1px; overflow: hidden; }

@media (max-width: 1000px) {
	.cd-gift-folders { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.cd-gift-enquiry { grid-template-columns: 1fr; }
}

@media (max-width: 700px) {
	.cd-gift-folders { grid-template-columns: 1fr; }
	.cd-gift-bento { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 150px; gap: 10px; }
	.cd-gift-bento__item:nth-child(7n + 1) { grid-column: span 2; grid-row: span 2; }
	.cd-gift-bento__item:nth-child(7n + 4) { grid-row: auto; }
	.cd-gift-bento__item:nth-child(7n + 6) { grid-column: span 2; }
	.cd-lightbox { padding: 64px 12px; }
	.cd-lightbox__nav { top: auto; bottom: 14px; transform: none; }
	.cd-lightbox__nav--prev { left: 14px; }
	.cd-lightbox__nav--next { right: 14px; }
}