/* ==========================================================================
   UNDF — Single Product Redesign (scoped)
   Editorial · minimal · masculine. Mobile-first (90%+ traffic is mobile).

   Everything is scoped under .undf-product and every class is undf- prefixed
   so nothing collides with the Orologio parent theme or OKThemes Toolkit.
   Header / footer / nav are untouched.
   ========================================================================== */

/* ---- Design tokens ------------------------------------------------------ */
:root {
	/* Palette */
	--undf-paper:        #f5f3ee;  /* warm off-white page */
	--undf-paper-2:      #efece4;  /* faint alt panel */
	--undf-ink:          #17140f;  /* primary text */
	--undf-ink-soft:     #43403a;  /* body text */
	--undf-black:        #100e0c;  /* bars / character block */
	--undf-muted:        #8c8375;  /* meta text */
	--undf-eyebrow:      #9a8a6f;  /* uppercase micro-headings (gold-taupe) */
	--undf-gold:         #a98b5e;  /* accent: stars, promo, chip accents */
	--undf-line:         #e2ddd2;  /* hairlines */
	--undf-line-strong:  #d6cec0;
	--undf-panel:        #ece6dc;  /* beige panels (who / wardrobe) */
	--undf-panel-line:   #ddd5c6;
	--undf-white:        #ffffff;
	--undf-onblack:      #f3f0e9;  /* text on the dark arc block */
	--undf-onblack-mute: #6f6a61;  /* faint text on dark */

	/* Type */
	--undf-serif: Georgia, "Times New Roman", "PT Serif", "Iowan Old Style", serif;

	--fs-eyebrow:  0.72rem;
	--fs-body:     1.0625rem;
	--fs-tagline:  1.375rem;
	--fs-price:    2.5rem;
	--fs-title:    clamp(2.9rem, 15vw, 4.25rem);
	--fs-stat:     2.1rem;
	--fs-quote:    1.35rem;

	/* Letter-spacing */
	--ls-eyebrow:  0.22em;
	--ls-wordmark: 0.3em;
	--ls-btn:      0.16em;

	/* Spacing */
	--sp-1: 0.375rem;
	--sp-2: 0.625rem;
	--sp-3: 1rem;
	--sp-4: 1.5rem;
	--sp-5: 2.25rem;
	--sp-6: 3rem;
	--sp-7: 4rem;
	--sp-section: 3.25rem;   /* gap between sections (mobile) */

	/* Layout */
	--undf-maxw: 920px;
	--undf-radius: 2px;
	--undf-hair: 1px solid var(--undf-line);
}

/* ---- Container / layout overrides --------------------------------------
   Force the WooCommerce two-column summary+gallery into one editorial column
   and hide the gallery (text-first layout). Scoped so it only affects us. */

/* Paint the whole product page in the paper tone (edge-to-edge) so the centered
   content container never looks like a card floating on the theme's white body.
   Covers the body AND the Orologio content wrappers (#content / .theme-container /
   .page-content), scoped to single-product pages only, so no white band shows. */
body.single-product,
body.single-product #content,
body.single-product .site-content,
body.single-product .theme-container,
body.single-product .page-content {
	background-color: var(--undf-paper);
}

/* Hide the native WooCommerce stock line ("242 in stock") in the hero. */
.undf-product .stock {
	display: none;
}

.undf-product {
	max-width: var(--undf-maxw);
	margin-inline: auto;
	background: var(--undf-paper);
	color: var(--undf-ink);
	font-family: var(--undf-serif);
	font-size: var(--fs-body);
	line-height: 1.72;
	-webkit-font-smoothing: antialiased;
	padding: var(--sp-5) var(--sp-4) var(--sp-7);
	display: block;
}

.undf-product .woocommerce-product-gallery,
.undf-product .woocommerce-product-gallery__wrapper {
	display: none !important;
}

.undf-product .summary,
.undf-product .entry-summary {
	width: 100% !important;
	max-width: none !important;
	float: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.undf-product .undf-hero *,
.undf-product .undf-sections * {
	box-sizing: border-box;
}

/* ---- Micro-heading / eyebrow ------------------------------------------- */
.undf-eyebrow {
	font-size: var(--fs-eyebrow);
	letter-spacing: var(--ls-eyebrow);
	text-transform: uppercase;
	color: var(--undf-eyebrow);
	font-family: var(--undf-serif);
	margin: 0 0 var(--sp-3);
	font-weight: 400;
	line-height: 1.4;
}
.undf-eyebrow--onblack { color: var(--undf-onblack-mute); }

/* ==========================================================================
   HERO
   ========================================================================== */
.undf-hero { }

/* 2-column hero: text left, badge + product image right. Full-width cart below.
   Mobile-first = single column (text, then image, then cart). */
.undf-hero__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-4);
	padding-bottom: var(--sp-4);
	margin-bottom: var(--sp-4);
	border-bottom: var(--undf-hair);
}
.undf-hero__main { min-width: 0; }

.undf-title {
	font-size: var(--fs-title);
	line-height: 0.98;
	margin: 0;
	font-weight: 400;
	letter-spacing: -0.01em;
	color: var(--undf-ink);
}
.undf-title__ital { font-style: italic; }
.undf-title__roman { font-style: normal; }

.undf-tagline {
	font-style: italic;
	font-size: var(--fs-tagline);
	color: var(--undf-muted);
	margin: var(--sp-3) 0 0;
	line-height: 1.35;
}

/* Media column: code badge on top, product image below */
.undf-hero__media {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: var(--sp-3);
}
.undf-code-badge {
	align-self: flex-start;
	font-size: 0.66rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--undf-muted);
	border: 1px solid var(--undf-line-strong);
	border-radius: 999px;
	padding: 0.45rem 0.85rem;
	white-space: nowrap;
}
.undf-hero__img { margin: 0; width: 100%; }
.undf-hero__img img { display: block; width: 100%; height: auto; max-width: 100%; }

/* Price block */
.undf-priceblock { margin-top: var(--sp-4); }
.undf-price {
	display: inline-block;
	font-size: var(--fs-price);
	line-height: 1;
	color: var(--undf-ink);
	vertical-align: baseline;
}
.undf-price .woocommerce-Price-amount { font-weight: 400; }
.undf-price del { color: var(--undf-muted); font-size: 0.6em; margin-right: 0.3em; }
.undf-price ins { text-decoration: none; }

.undf-price__vol {
	display: block;
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--undf-muted);
	margin-top: var(--sp-2);
}

/* Character arc — dark block */
.undf-arc {
	background: var(--undf-black);
	color: var(--undf-onblack);
	padding: var(--sp-4) var(--sp-4) var(--sp-3);
	border-radius: var(--undf-radius);
	margin-bottom: var(--sp-4);
}
.undf-arc__words {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.3rem 0.55rem;
	margin: var(--sp-2) 0 var(--sp-3);
}
.undf-arc__w { font-style: italic; line-height: 1.1; }
.undf-arc__sep { color: var(--undf-onblack-mute); font-size: 0.85rem; }
.undf-arc__w--far  { font-size: 0.85rem; color: #5c574e; }
.undf-arc__w--mid  { font-size: 1.05rem; color: #8f897d; }
.undf-arc__w--near { font-size: 1.4rem;  color: #cfc9bd; }
.undf-arc__w--peak { font-size: 1.9rem;  color: var(--undf-white); font-weight: 400; }
.undf-arc__stages {
	margin: 0;
	font-size: 0.66rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--undf-onblack-mute);
}

/* Add to cart (native form, restyled) */
.undf-cart { margin-bottom: var(--sp-3); }
.undf-cart form.cart { margin: 0; display: block; }
.undf-cart .quantity { display: none; }              /* single-bottle purchase */
.undf-cart form.cart .quantity + .button,
.undf-cart .single_add_to_cart_button,
.undf-cart button.single_add_to_cart_button {
	display: block;
	width: 100%;
	background: var(--undf-black);
	color: var(--undf-white);
	border: 1px solid var(--undf-black);
	border-radius: var(--undf-radius);
	padding: 1.15rem 1.5rem;
	font-family: var(--undf-serif);
	font-size: 0.8rem;
	letter-spacing: var(--ls-btn);
	text-transform: uppercase;
	line-height: 1;
	cursor: pointer;
	transition: background 0.18s ease, color 0.18s ease, transform 0.05s ease;
	float: none;
}
.undf-cart .single_add_to_cart_button:hover {
	background: #2b2723;
	color: var(--undf-white);
}
.undf-cart .single_add_to_cart_button:focus-visible {
	outline: 2px solid var(--undf-gold);
	outline-offset: 3px;
}
.undf-cart .single_add_to_cart_button:active { transform: translateY(1px); }

/* Wishlist / notify */
.undf-wishlist {
	display: block;
	width: 100%;
	text-align: center;
	background: transparent;
	color: var(--undf-ink-soft);
	border: 1px solid var(--undf-line-strong);
	border-radius: var(--undf-radius);
	padding: 0.95rem 1.5rem;
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	text-decoration: none;
	transition: border-color 0.18s ease, color 0.18s ease, background 0.18s ease;
	margin-bottom: var(--sp-4);
}
.undf-wishlist:hover { border-color: var(--undf-ink); color: var(--undf-ink); background: rgba(0,0,0,0.02); }
.undf-wishlist:focus-visible { outline: 2px solid var(--undf-gold); outline-offset: 3px; }
.undf-wishlist:active { background: rgba(0,0,0,0.05); }
.undf-wishlist__sep { color: var(--undf-line-strong); margin: 0 0.35em; }

/* Trust badges */
.undf-trust {
	list-style: none;
	margin: 0;
	padding: var(--sp-4) 0 0;
	border-top: var(--undf-hair);
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: var(--sp-3);
}
.undf-trust__item { text-align: center; display: flex; flex-direction: column; align-items: center; gap: var(--sp-2); }
.undf-trust__ico { font-size: 1.05rem; color: var(--undf-gold); line-height: 1; }
.undf-trust__label {
	font-size: 0.6rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--undf-muted);
	line-height: 1.3;
}

/* ==========================================================================
   SECTIONS BELOW HERO
   ========================================================================== */
.undf-sections { margin-top: var(--sp-6); }
.undf-section { margin-top: var(--sp-section); }
.undf-section:first-child { margin-top: 0; }

/* The Scent */
.undf-scent__desc { font-size: 1.15rem; line-height: 1.72; color: var(--undf-ink); }
.undf-scent__desc p { margin: 0 0 var(--sp-3); }
.undf-scent__desc p:last-child { margin-bottom: 0; }
.undf-scent__desc em { font-style: italic; }

.undf-chips {
	list-style: none;
	margin: var(--sp-4) 0 0;
	padding: 0;
	display: flex;
	flex-wrap: wrap;
	gap: var(--sp-2);
}
.undf-chip {
	font-size: 0.72rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--undf-ink-soft);
	border: 1px solid var(--undf-line-strong);
	border-radius: var(--undf-radius);
	padding: 0.55rem 0.85rem;
	background: var(--undf-white);
}
.undf-chip--accent { border-color: var(--undf-gold); box-shadow: inset 3px 0 0 var(--undf-gold); }

/* Longevity stats */
.undf-stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	border: var(--undf-hair);
	border-radius: var(--undf-radius);
	background: var(--undf-white);
	overflow: hidden;
}
.undf-stat {
	text-align: center;
	padding: var(--sp-4) var(--sp-2);
	border-right: var(--undf-hair);
	display: flex;
	flex-direction: column;
	gap: var(--sp-1);
}
.undf-stat:last-child { border-right: 0; }
.undf-stat__value { font-size: var(--fs-stat); line-height: 1; color: var(--undf-ink); }
.undf-stat__label {
	font-size: 0.62rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: var(--undf-muted);
}
.undf-appnote { font-size: 0.9rem; color: var(--undf-muted); margin: var(--sp-3) 0 0; line-height: 1.6; }

/* When to Wear + Mood & Character */
.undf-duo { display: grid; grid-template-columns: 1fr; gap: var(--sp-5); }
.undf-duo__col {
	border: var(--undf-hair);
	border-radius: var(--undf-radius);
	padding: var(--sp-4);
	background: var(--undf-white);
}
.undf-wear__list { list-style: none; margin: 0; padding: 0; }
.undf-wear__item {
	position: relative;
	padding-left: 1.25rem;
	margin-bottom: var(--sp-2);
	font-size: 0.95rem;
	color: var(--undf-ink-soft);
}
.undf-wear__item:last-child { margin-bottom: 0; }
.undf-wear__item::before {
	content: "";
	position: absolute;
	left: 0; top: 0.6em;
	width: 5px; height: 5px;
	background: var(--undf-gold);
	border-radius: 1px;
}

/* Mood: right-aligned italic cascade with hairlines */
.undf-mood__list { list-style: none; margin: 0; padding: 0; text-align: right; }
.undf-mood__item {
	font-style: italic;
	font-size: 1.15rem;
	color: var(--undf-ink);
	padding: var(--sp-2) 0;
	border-top: var(--undf-hair);
}
.undf-mood__item:first-child { border-top: 0; }

/* Who should choose */
.undf-section--who .undf-eyebrow { margin-bottom: var(--sp-3); }
.undf-who {
	background: var(--undf-panel);
	border: 1px solid var(--undf-panel-line);
	border-radius: var(--undf-radius);
	padding: var(--sp-5) var(--sp-4);
}
.undf-who__quote {
	font-style: italic;
	font-size: var(--fs-quote);
	line-height: 1.4;
	color: var(--undf-ink);
	margin: 0;
	quotes: none;
}
.undf-who__supporting {
	font-size: 0.9rem;
	color: var(--undf-muted);
	margin: var(--sp-4) 0 0;
	line-height: 1.7;
}

/* Shipping */
.undf-ship__grid { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 0; }
.undf-ship__row {
	position: relative;
	padding: var(--sp-3) 0 var(--sp-3) 1.25rem;
	border-bottom: var(--undf-hair);
	font-size: 0.9rem;
	color: var(--undf-ink-soft);
}
.undf-ship__row::before {
	content: "";
	position: absolute;
	left: 0; top: 1.35rem;
	width: 5px; height: 5px;
	background: var(--undf-gold);
	border-radius: 1px;
}

/* Complete your wardrobe */
.undf-wardrobe {
	background: var(--undf-panel);
	border: 1px solid var(--undf-panel-line);
	border-radius: var(--undf-radius);
	padding: var(--sp-5) var(--sp-4);
}
.undf-wardrobe__grid { display: grid; grid-template-columns: 1fr; gap: var(--sp-3); }
.undf-wcard {
	display: block;
	background: var(--undf-white);
	border: var(--undf-hair);
	border-radius: var(--undf-radius);
	padding: var(--sp-4);
	text-decoration: none;
	color: var(--undf-ink);
	transition: border-color 0.18s ease, transform 0.12s ease, box-shadow 0.18s ease;
}
.undf-wcard:hover { border-color: var(--undf-ink); transform: translateY(-2px); box-shadow: 0 6px 22px rgba(0,0,0,0.06); }
.undf-wcard:focus-visible { outline: 2px solid var(--undf-gold); outline-offset: 3px; }
.undf-wcard__eyebrow {
	display: block;
	font-size: 0.62rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--undf-eyebrow);
	margin-bottom: var(--sp-2);
}
.undf-wcard__title { display: block; font-size: 1.4rem; line-height: 1.1; margin-bottom: var(--sp-2); }
.undf-wcard__desc { display: block; font-size: 0.85rem; color: var(--undf-muted); line-height: 1.6; margin-bottom: var(--sp-3); }
.undf-wcard__price { display: block; font-size: 1.15rem; color: var(--undf-ink); }

/* ==========================================================================
   RESPONSIVE — desktop / tablet enhancements
   Breakpoints: 720px (tablet), 1024px (desktop). Mobile-first above.
   ========================================================================== */
@media (min-width: 720px) {
	:root {
		--fs-title: clamp(3.5rem, 8vw, 4.75rem);
		--fs-price: 3rem;
		--fs-stat: 2.5rem;
		--fs-quote: 1.6rem;
		--sp-section: 4.25rem;
	}

	.undf-product { padding: var(--sp-6) var(--sp-6) 5rem; }

	/* Hero becomes 2-column: text left, badge + image right */
	.undf-hero__grid { grid-template-columns: 1fr 38%; align-items: start; column-gap: var(--sp-6); }
	.undf-hero__media { align-items: flex-end; }
	.undf-hero__media .undf-code-badge { align-self: flex-end; }

	.undf-arc { padding: var(--sp-5); }
	.undf-arc__w--peak { font-size: 2.4rem; }
	.undf-arc__w--near { font-size: 1.6rem; }

	.undf-duo { grid-template-columns: 1fr 1fr; }
	.undf-mood { display: flex; flex-direction: column; justify-content: flex-start; }

	.undf-ship__grid { grid-template-columns: 1fr 1fr; column-gap: var(--sp-5); }
	.undf-ship__row:nth-last-child(-n+2):nth-child(odd) { } /* keep bottom borders even */

	.undf-wardrobe__grid { grid-template-columns: 1fr 1fr; gap: var(--sp-4); }

	.undf-who { padding: var(--sp-6) var(--sp-6); }
}

@media (min-width: 1024px) {
	.undf-product { padding-inline: 0; }
	.undf-scent__desc { font-size: 1.2rem; }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {
	.undf-wcard, .undf-cart .single_add_to_cart_button, .undf-wishlist { transition: none; }
	.undf-wcard:hover { transform: none; }
}

/* ==========================================================================
   EXPLORE — home-page collection grid  ([undf_explore])
   Self-contained: NOT nested under .undf-product (it lives on the home page).
   Mobile-first single column; 3-across from 720px.
   ========================================================================== */
.undf-explore {
	font-family: var(--undf-serif);
	color: var(--undf-ink);
	max-width: 1200px;
	margin-inline: auto;
	padding: var(--sp-5) var(--sp-4);
	line-height: 1.6;
}
.undf-explore *, .undf-explore *::before, .undf-explore *::after { box-sizing: border-box; }

.undf-explore__head {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	gap: var(--sp-4);
	padding-bottom: var(--sp-4);
	margin-bottom: var(--sp-5);
	border-bottom: var(--undf-hair);
}
.undf-explore__title {
	font-size: clamp(2rem, 5vw, 3rem);
	line-height: 1;
	margin: var(--sp-2) 0 0;
	font-weight: 400;
	color: var(--undf-ink);
}
.undf-explore__title .undf-title__ital { font-style: italic; }
.undf-explore__viewall {
	flex: 0 0 auto;
	font-size: 0.7rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--undf-ink);
	text-decoration: none;
	border-bottom: 1px solid var(--undf-ink);
	padding-bottom: 2px;
	white-space: nowrap;
}
.undf-explore__viewall:hover { color: var(--undf-gold); border-color: var(--undf-gold); }

.undf-explore__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-5);
}

/* Card */
.undf-ecard { display: flex; flex-direction: column; }
.undf-ecard__panel {
	position: relative;
	display: flex;
	align-items: center;
	justify-content: center;
	aspect-ratio: 4 / 5;
	background: var(--undf-tint, #ece9e1);
	text-decoration: none;
	overflow: hidden;
}
.undf-ecard__badge {
	position: absolute;
	top: var(--sp-3);
	left: var(--sp-3);
	font-size: 0.58rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 0.35rem 0.6rem;
	background: var(--undf-black);
	color: #fff;
}
.undf-ecard__badge--ms { background: var(--undf-gold); }
/* Product image inside the panel — sized to fill more of the tile */
.undf-ecard__img { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; padding: var(--sp-2); }
.undf-ecard__img img { max-width: 100%; max-height: 100%; width: auto; height: auto; object-fit: contain; display: block; }
.undf-ecard__mark { text-align: center; }
.undf-ecard__letter {
	display: block;
	font-size: clamp(3.25rem, 7vw, 5rem);
	line-height: 1;
	letter-spacing: 0.05em;
	color: rgba(20, 18, 15, 0.15);
}
.undf-ecard__num {
	display: block;
	font-size: 0.7rem;
	letter-spacing: 0.24em;
	margin-top: var(--sp-2);
	color: rgba(20, 18, 15, 0.3);
}

.undf-ecard__body { display: flex; flex-direction: column; flex: 1; padding: var(--sp-3) var(--sp-1) 0; }
.undf-ecard__code {
	font-size: 0.6rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	color: var(--undf-muted);
	margin: 0 0 var(--sp-2);
}
.undf-ecard__title { font-size: 1.5rem; line-height: 1.1; margin: 0 0 var(--sp-2); font-weight: 400; }
.undf-ecard__title a { color: var(--undf-ink); text-decoration: none; }
.undf-ecard__title a:hover { color: var(--undf-gold); }
.undf-ecard__desc { font-size: 0.9rem; color: var(--undf-muted); line-height: 1.6; margin: 0 0 var(--sp-3); }
.undf-ecard__tags { list-style: none; display: flex; flex-wrap: wrap; gap: var(--sp-1); margin: 0 0 var(--sp-4); padding: 0; }
.undf-ecard__tag {
	font-size: 0.62rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--undf-ink-soft);
	border: 1px solid var(--undf-line-strong);
	padding: 0.3rem 0.55rem;
	border-radius: var(--undf-radius);
}
.undf-ecard__foot {
	margin-top: auto;
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: var(--sp-2);
	padding-top: var(--sp-3);
	border-top: var(--undf-hair);
}
.undf-ecard__price { font-size: 1.25rem; color: var(--undf-ink); }
.undf-ecard__price .woocommerce-Price-amount { font-weight: 400; }
/* Explore card CTA — links to the product page (compact black button) */
.undf-ecard__cta {
	flex: 0 0 auto;
	display: inline-block;
	background: var(--undf-black);
	color: #fff;
	border: 1px solid var(--undf-black);
	border-radius: var(--undf-radius);
	padding: 0.58rem 0.9rem;
	font-family: var(--undf-serif);
	font-size: 0.62rem;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	text-decoration: none;
	line-height: 1;
	white-space: nowrap;
	transition: background 0.16s ease;
}
.undf-ecard__cta:hover { background: #2b2723; color: #fff; }

.undf-ecard__cart { flex: 0 0 auto; }
.undf-ecard__cart .button,
.undf-ecard__cart a.add_to_cart_button,
.undf-ecard__cart a.button,
.undf-ecard__cart button {
	display: inline-block !important;
	width: auto !important;
	min-width: 0 !important;
	background: var(--undf-black) !important;
	color: #fff !important;
	border: 1px solid var(--undf-black) !important;
	border-radius: var(--undf-radius) !important;
	padding: 0.58rem 0.9rem !important;
	margin: 0 !important;
	font-family: var(--undf-serif) !important;
	font-size: 0.62rem !important;
	font-weight: 400 !important;
	letter-spacing: 0.12em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	line-height: 1 !important;
	cursor: pointer;
	transition: background 0.16s ease;
}
/* Strip any theme-added cart icon — text only */
.undf-ecard__cart .button::before,
.undf-ecard__cart .button::after,
.undf-ecard__cart a.add_to_cart_button::before,
.undf-ecard__cart a.add_to_cart_button::after { content: none !important; display: none !important; }
.undf-ecard__cart .button i,
.undf-ecard__cart .button svg,
.undf-ecard__cart a.add_to_cart_button i,
.undf-ecard__cart a.add_to_cart_button svg { display: none !important; }
.undf-ecard__cart .button:hover,
.undf-ecard__cart a.add_to_cart_button:hover { background: #2b2723 !important; }
.undf-ecard__cart .added_to_cart { display: none !important; } /* hide ajax "View cart" link */

@media (min-width: 720px) {
	.undf-explore { padding: var(--sp-7) var(--sp-6); }
	.undf-explore__grid { grid-template-columns: repeat(3, 1fr); gap: var(--sp-5); }
	.undf-ecard__title { font-size: 1.6rem; }
}

/* ==========================================================================
   REVIEWS — home-page "Stories They Share"  ([undf_reviews])
   Self-contained (not nested under .undf-product). Mobile-first single column.
   ========================================================================== */
.undf-reviews {
	font-family: var(--undf-serif);
	color: var(--undf-ink);
	max-width: 1200px;
	margin-inline: auto;
	padding: var(--sp-5) var(--sp-4);
	line-height: 1.7;
}
.undf-reviews *, .undf-reviews *::before, .undf-reviews *::after { box-sizing: border-box; }

.undf-reviews__head {
	padding-bottom: var(--sp-4);
	margin-bottom: var(--sp-5);
	border-bottom: var(--undf-hair);
}
.undf-reviews__title {
	font-size: clamp(2rem, 5vw, 3rem);
	line-height: 1;
	margin: var(--sp-2) 0 0;
	font-weight: 400;
	color: var(--undf-ink);
}
.undf-reviews__title .undf-title__ital { font-style: italic; }

.undf-reviews__grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: var(--sp-4);
}

/* Review card */
.undf-rcard {
	display: flex;
	flex-direction: column;
	border: var(--undf-hair);
	border-radius: var(--undf-radius);
	background: var(--undf-white);
	padding: var(--sp-4);
}
.undf-rcard__stars { margin-bottom: var(--sp-3); letter-spacing: 0.12em; }
.undf-rstar { color: var(--undf-line-strong); font-size: 0.9rem; }
.undf-rstar--on { color: var(--undf-gold); }

.undf-rcard__text {
	font-style: italic;
	font-size: 0.98rem;
	color: var(--undf-ink-soft);
	line-height: 1.75;
	flex: 1;
	margin-bottom: var(--sp-4);
}
.undf-rcard__text p { margin: 0; }

.undf-rcard__foot {
	display: flex;
	align-items: center;
	gap: var(--sp-3);
	padding-top: var(--sp-3);
	border-top: var(--undf-hair);
}
.undf-rcard__avatar {
	flex: 0 0 auto;
	width: 2.4rem;
	height: 2.4rem;
	border-radius: 50%;
	background: var(--undf-paper-2);
	color: var(--undf-ink-soft);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 0.66rem;
	letter-spacing: 0.06em;
	font-weight: 600;
}
.undf-rcard__who { display: flex; flex-direction: column; gap: 0.1rem; min-width: 0; }
.undf-rcard__name { font-weight: 600; font-size: 0.9rem; color: var(--undf-ink); }
.undf-rcard__meta { font-size: 0.68rem; letter-spacing: 0.08em; text-transform: uppercase; color: var(--undf-muted); }
.undf-rcard__verified {
	margin-left: auto;
	font-size: 0.6rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: var(--undf-muted);
	white-space: nowrap;
}

@media (min-width: 720px) {
	.undf-reviews { padding: var(--sp-7) var(--sp-6); }
	.undf-reviews__grid { grid-template-columns: repeat(3, 1fr); gap: var(--sp-4); }
	.undf-rcard { padding: var(--sp-5); }
}

/* ==========================================================================
   QUIZ — "Which UNDF are you?"  ([undf_quiz])   Dark, self-contained.
   ========================================================================== */
.undf-quiz {
	--q-gold: #c6ad7e;
	--q-cream: #e8e4db;
	--q-muted: #8f877a;
	--q-line: rgba(255, 255, 255, 0.14);
	background: #100e0c;
	color: var(--q-cream);
	font-family: var(--undf-serif);
	padding: var(--sp-7) var(--sp-4);
}
.undf-quiz *, .undf-quiz *::before, .undf-quiz *::after { box-sizing: border-box; }
.undf-quiz [hidden] { display: none !important; } /* beat display:flex on nav/stage */
.undf-quiz__inner { max-width: 820px; margin-inline: auto; text-align: center; }

.undf-quiz__eyebrow { color: var(--q-gold); margin-bottom: var(--sp-3); }
.undf-quiz__title { font-size: clamp(2.1rem, 6vw, 3.4rem); line-height: 1.05; margin: 0 0 var(--sp-3); font-weight: 400; color: var(--q-cream); }
.undf-quiz__hl { color: var(--q-gold); font-style: italic; }
.undf-quiz__sub { color: var(--q-muted); font-size: 0.95rem; margin: 0 auto var(--sp-6); max-width: 30rem; }

/* Step indicator */
.undf-quiz__steps { display: flex; align-items: center; justify-content: center; gap: var(--sp-2); margin-bottom: var(--sp-6); }
.undf-quiz__step {
	width: 2rem; height: 2rem; border-radius: 50%;
	border: 1px solid var(--q-line);
	display: flex; align-items: center; justify-content: center;
	font-size: 0.72rem; color: var(--q-muted);
	flex: 0 0 auto;
}
.undf-quiz__step.is-active { border-color: var(--q-gold); color: var(--q-gold); }
.undf-quiz__step.is-done { background: var(--q-gold); border-color: var(--q-gold); color: #100e0c; }
.undf-quiz__step.is-done span { display: none; }
.undf-quiz__step.is-done::after { content: "\2713"; color: #100e0c; font-size: 0.8rem; }
.undf-quiz__line { width: 3rem; height: 1px; background: var(--q-line); flex: 0 0 auto; }

.undf-quiz__q { font-style: italic; font-size: clamp(1.15rem, 3.5vw, 1.5rem); color: var(--q-cream); margin: 0 0 var(--sp-5); }

/* Options */
.undf-quiz__options { display: grid; grid-template-columns: 1fr; gap: var(--sp-3); text-align: left; }
.undf-qopt {
	position: relative;
	background: rgba(255, 255, 255, 0.02);
	border: 1px solid var(--q-line);
	border-radius: var(--undf-radius);
	padding: var(--sp-4);
	font-family: var(--undf-serif);
	color: var(--q-cream);
	cursor: pointer;
	display: block;
	width: 100%;
	transition: border-color 0.16s ease, background 0.16s ease;
}
.undf-qopt:hover { border-color: rgba(255, 255, 255, 0.32); }
.undf-qopt.is-selected { border-color: var(--q-gold); background: rgba(198, 173, 126, 0.06); }
.undf-qopt__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--sp-2); }
.undf-qopt__label { font-size: 0.6rem; letter-spacing: 0.18em; text-transform: uppercase; color: var(--q-muted); }
.undf-qopt__radio { width: 1rem; height: 1rem; border-radius: 50%; border: 1px solid var(--q-line); flex: 0 0 auto; }
.undf-qopt.is-selected .undf-qopt__radio { border-color: var(--q-gold); background: var(--q-gold); box-shadow: inset 0 0 0 3px #100e0c; }
.undf-qopt__title { display: block; font-size: 1.1rem; line-height: 1.25; color: var(--q-cream); margin-bottom: var(--sp-1); }
.undf-qopt__desc { display: block; font-size: 0.82rem; line-height: 1.5; color: var(--q-muted); }

/* Nav */
.undf-quiz__nav { display: flex; align-items: center; justify-content: center; gap: var(--sp-3); margin-top: var(--sp-6); }
.undf-quiz__back, .undf-quiz__next, .undf-quiz__retake, .undf-quiz__shop {
	font-family: var(--undf-serif);
	font-size: 0.72rem;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 0.95rem 1.75rem;
	border-radius: var(--undf-radius);
	cursor: pointer;
	line-height: 1;
	text-decoration: none;
	transition: background 0.16s ease, border-color 0.16s ease, opacity 0.16s ease;
}
.undf-quiz__back, .undf-quiz__retake { background: transparent; border: 1px solid var(--q-line); color: var(--q-cream); }
.undf-quiz__back:hover, .undf-quiz__retake:hover { border-color: rgba(255, 255, 255, 0.4); }
.undf-quiz__next { background: rgba(255, 255, 255, 0.08); border: 1px solid var(--q-line); color: var(--q-cream); }
.undf-quiz__next:hover:not(:disabled) { background: rgba(255, 255, 255, 0.16); }
.undf-quiz__next:disabled { opacity: 0.35; cursor: default; }

/* Result */
.undf-quiz__result { margin-top: var(--sp-3); }
.undf-quiz__rkick { color: var(--q-gold); margin-bottom: var(--sp-3); }
.undf-quiz__rtag { color: var(--q-muted); font-size: 1rem; margin: 0 0 var(--sp-3); }
.undf-quiz__rname { font-size: clamp(2.6rem, 9vw, 4.75rem); line-height: 1; margin: 0 0 var(--sp-3); font-weight: 400; color: var(--q-cream); }
.undf-quiz__rmeta { font-size: 0.72rem; letter-spacing: 0.16em; text-transform: uppercase; color: var(--q-muted); margin: 0 0 var(--sp-4); }
.undf-quiz__rrule { display: block; width: 3rem; height: 1px; background: var(--q-line); margin: 0 auto var(--sp-4); }
.undf-quiz__rdesc { font-style: italic; color: var(--q-cream); line-height: 1.7; max-width: 34rem; margin: 0 auto var(--sp-5); opacity: 0.85; }
.undf-quiz__ractions { display: flex; align-items: center; justify-content: center; gap: var(--sp-3); flex-wrap: wrap; }
.undf-quiz__shop { background: #fff; border: 1px solid #fff; color: #141210; }
.undf-quiz__shop:hover { background: var(--q-cream); border-color: var(--q-cream); }

@media (min-width: 720px) {
	.undf-quiz { padding: 5rem var(--sp-6); }
	.undf-quiz__options { grid-template-columns: 1fr 1fr; gap: var(--sp-4); }
	.undf-quiz__line { width: 4rem; }
}

/* ==========================================================================
   ADD-TO-CART CONFIRMATION POPUP  (undf-cart.js)
   ========================================================================== */
.undf-cartpop { position: fixed; inset: 0; z-index: 99999; display: flex; align-items: center; justify-content: center; padding: var(--sp-4); }
.undf-cartpop[hidden] { display: none; }
.undf-cartpop__overlay { position: absolute; inset: 0; background: rgba(16, 14, 12, 0.55); }
.undf-cartpop__box {
	position: relative;
	background: var(--undf-paper);
	border: 1px solid var(--undf-panel-line);
	border-radius: var(--undf-radius);
	max-width: 380px;
	width: 100%;
	padding: var(--sp-6) var(--sp-5) var(--sp-5);
	text-align: center;
	font-family: var(--undf-serif);
	color: var(--undf-ink);
	box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}
.undf-cartpop__close { position: absolute; top: 0.55rem; right: 0.85rem; background: none; border: 0; font-size: 1.5rem; line-height: 1; color: var(--undf-muted); cursor: pointer; }
.undf-cartpop__close:hover { color: var(--undf-ink); }
.undf-cartpop__kicker { font-size: var(--fs-eyebrow); letter-spacing: var(--ls-eyebrow); text-transform: uppercase; color: var(--undf-eyebrow); margin: 0 0 var(--sp-2); }
.undf-cartpop__name { font-size: 1.5rem; line-height: 1.15; margin: 0 0 var(--sp-4); color: var(--undf-ink); }
.undf-cartpop__actions { display: flex; flex-direction: column; gap: var(--sp-2); }
.undf-cartpop__continue,
.undf-cartpop__checkout {
	display: block;
	width: 100%;
	padding: 0.95rem 1.25rem;
	font-family: var(--undf-serif);
	font-size: 0.72rem;
	letter-spacing: 0.14em;
	text-transform: uppercase;
	border-radius: var(--undf-radius);
	line-height: 1;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.16s ease, border-color 0.16s ease, color 0.16s ease;
}
.undf-cartpop__checkout { background: var(--undf-black); color: #fff; border: 1px solid var(--undf-black); }
.undf-cartpop__checkout:hover { background: #2b2723; color: #fff; }
.undf-cartpop__continue { background: transparent; color: var(--undf-ink-soft); border: 1px solid var(--undf-line-strong); }
.undf-cartpop__continue:hover { border-color: var(--undf-ink); color: var(--undf-ink); }
.undf-cartpop__viewcart { display: inline-block; margin-top: var(--sp-3); font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase; color: var(--undf-muted); text-decoration: underline; text-underline-offset: 3px; }
.undf-cartpop__viewcart:hover { color: var(--undf-ink); }
