/* =========================================================================
   HOOKED & HAPPY — design system
   Warm boutique crochet brand. Cream + deep olive, pink used sparingly.
   ========================================================================= */

/* ---- Custom display face ---------------------------------------------- */
@font-face {
	font-family: 'Rosaline';
	src: url('../fonts/Rosaline-Regular.woff2') format('woff2'),
	     url('../fonts/Rosaline-Regular.woff') format('woff');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* ---- Safety net: inline icon SVGs never have explicit width/height in
   markup, so if a spot is ever missed below, this keeps them icon-sized
   instead of rendering at browser-default (which can blow up huge). ---- */
svg{ width: 1em; height: 1em; }

/* ---- Tokens ------------------------------------------------------------ */
:root{
	--cream:      #FEFEEC;
	--sand:       #F3EFDD;
	--white:      #FFFFFF;
	--olive:      #415A2B;
	--olive-700:  #364B24;
	--olive-900:  #263318;   /* body ink */
	--pink:       #FD7FA4;
	--pink-100:   #FFE3EC;
	--line:       rgba(65,90,43,0.16);
	--line-soft:  rgba(65,90,43,0.09);
	--shadow-sm:  0 8px 24px -16px rgba(38,51,24,0.28);
	--shadow-md:  0 24px 48px -28px rgba(38,51,24,0.38);
	--shadow-lg:  0 40px 80px -32px rgba(38,51,24,0.42);

	--font-display: 'Rosaline', 'Iowan Old Style', 'Palatino Linotype', Georgia, serif;
	--font-body: 'Poppins', -apple-system, BlinkMacSystemFont, sans-serif;
	--font-script: var(--font-body);

	--radius-sm: 10px;
	--radius-md: 18px;
	--radius-lg: 28px;
	--radius-pill: 999px;

	--container: 1320px;
	--gutter: clamp(20px, 5vw, 64px);
	--section-space: clamp(40px, 6vw, 80px);

	--ease: cubic-bezier(.22,.61,.36,1);
}
body.single-product{ --section-space: clamp(40px, 6vw, 80px); }
/* ---- Reset --------------------------------------------------------------*/
*, *::before, *::after{ box-sizing: border-box; }
html{ scroll-behavior: smooth; overflow-x: hidden; width: 100%; }
body{
	margin:0;
	font-family: var(--font-body);
	font-weight: 300;
	color: var(--olive-900);
	background: var(--cream);
	-webkit-font-smoothing: antialiased;
	width: 100%;
}
img{ max-width:100%; display:block; }
a{ color: inherit; text-decoration:none; }
ul{ margin:0; padding:0; list-style:none; }
button{ font-family: inherit; cursor:pointer; background:none; border:none; color:inherit; }
input, select, textarea{ font-family: inherit; }
h1,h2,h3,h4{ font-family: var(--font-display); font-weight:400; color: var(--olive-900); margin:0 0 0.5em; letter-spacing: 0.005em; }
p{ margin:0 0 1em; line-height:1.75; color: var(--olive-700); }
.screen-reader-text{ position:absolute!important; clip:rect(1px,1px,1px,1px); overflow:hidden; height:1px; width:1px; }

@media (prefers-reduced-motion: reduce){
	*{ animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior:auto !important; }
}

:focus-visible{ outline: 2px solid var(--pink); outline-offset: 3px; border-radius: 4px; }
.pc-title{ font-size: 1.05rem; margin: 0.15em 0 0.25em; font-family: var(--font-body); }
@media (min-width: 1081px){
	.wc-block-checkout__main{ grid-column: 1; }
	.wc-block-checkout__sidebar{ grid-column: 2; position: sticky; top: 110px; }
}
@media (max-width: 1080px){
	.wc-block-checkout__sidebar{ position: static !important; }
}

/* ---- Utility ------------------------------------------------------------*/
.eyebrow{
	display:inline-block; font-size: 0.78rem; letter-spacing: 0.16em; text-transform: uppercase;
	color: var(--pink); font-weight:500; margin-bottom: 0.9em;
}
.font-script{ font-family: var(--font-script); font-weight:600; }
.section{ padding: var(--section-space) var(--gutter); max-width: var(--container); margin: 0 auto; }
.section.cottage-tight-top{ padding-top: 80px; }
.section.cottage-tight-bottom{ padding-bottom: 100px; }
.section.on-sand{ background: var(--sand); max-width: none; padding-left: var(--gutter); padding-right: var(--gutter); border-radius: 0; }
.section.on-sand > *{ max-width: var(--container); margin-left:auto; margin-right:auto; }
.section-head{ display:flex; align-items:flex-end; justify-content:space-between; gap: 24px; margin-bottom: 2.75rem; flex-wrap:wrap; }
.section-head.center{ flex-direction:column; align-items:center; text-align:center; }
.section-head h2{ font-size: clamp(1.9rem, 3.1vw, 2.75rem); margin:0; }
.section-sub{ margin-top: 0.4rem; max-width: 46ch; }

/* ---- Buttons --------------------------------------------------------- */
.btn{
	display:inline-flex; align-items:center; justify-content:center; gap:8px;
	padding: 0.95em 2.1em; border-radius: var(--radius-pill);
	font-size: 0.92rem; font-weight:500; letter-spacing:0.02em;
	transition: background .35s var(--ease), color .35s var(--ease), border-color .35s var(--ease), transform .25s var(--ease);
	white-space: nowrap;
}
.btn-primary{ background: var(--olive); color: var(--cream); }
.btn-primary:hover{ background: var(--pink); color: var(--olive-900); transform: translateY(-2px); }
.btn-outline{ border: 1.4px solid var(--olive); color: var(--olive-900); }
.btn-outline:hover{ background: var(--olive); color: var(--cream); }
.btn-text{ padding: 0; border-radius:0; gap:6px; color: var(--olive-900); position:relative; }
.btn-text svg{ width:16px; height:16px; transition: transform .3s var(--ease); }
.btn-text::after{ content:''; position:absolute; left:0; right:0; bottom:-3px; height:1.4px; background: var(--pink); transform: scaleX(0); transform-origin:left; transition: transform .35s var(--ease); }
.btn-text:hover::after{ transform: scaleX(1); }
.btn-text:hover svg{ transform: translateX(4px); }

/* =========================================================================
   Page loader
   ========================================================================= */
.page-loader{
	position: fixed; inset:0; z-index: 9999; background: var(--cream);
	display:flex; flex-direction:column; align-items:center; justify-content:center; gap: 18px;
	transition: opacity .6s var(--ease), visibility .6s var(--ease);
}
.page-loader p{ font-family: var(--font-display); font-size: 1.15rem; letter-spacing: 0.01em; color: var(--olive); margin:0; white-space: nowrap; }
.loader-thread{
	width: 140px; height: 2px; background: var(--line); position:relative; overflow:hidden; border-radius:2px;
}
.loader-thread::after{
	content:''; position:absolute; left:-40%; top:0; bottom:0; width:40%;
	background: var(--pink); animation: threadMove 1.1s ease-in-out infinite;
}
@keyframes threadMove{ 0%{ left:-40%; } 50%{ left:60%; } 100%{ left:-40%; } }
.page-loader.is-hidden{ opacity:0; visibility:hidden; pointer-events:none; }

/* =========================================================================
   Header
   ========================================================================= */
.announcement-bar{ background: var(--olive); color: var(--cream); text-align:center; padding: 10px 16px; }
.announcement-bar p{ margin:0; font-size:0.8rem; letter-spacing:0.03em; color: var(--cream); display:flex; align-items:center; justify-content:center; gap:8px; }
.announcement-bar svg{ width:14px; height:14px; flex-shrink:0; }

.site-header{
	position: sticky; top:0; z-index: 500;
	border-bottom: 1px solid var(--line-soft);
	transition: box-shadow .3s var(--ease);
}
.site-header::before{
	content:''; position:absolute; inset:0; z-index:-1;
	background: rgba(254,254,236,0.92); backdrop-filter: blur(10px);
}
.site-header.is-scrolled{ box-shadow: var(--shadow-sm); }
.header-inner{
	max-width: var(--container); margin: 0 auto; padding: 10px 20px;
	display:grid; grid-template-columns: 1fr auto 1fr; align-items:center; gap: 4px;
}
.site-branding{ order: 2; justify-self: center; }
.site-branding .site-title-fallback, .custom-logo-link{
	font-family: var(--font-script); font-weight:600; font-size: 2.3rem; color: var(--olive-900);
}
.header-menu-toggle{ display:none; flex-direction:column; gap:5px; width:26px; }
.header-menu-toggle span{ height:1.6px; background: var(--olive-900); border-radius:2px; transition: transform .3s var(--ease), opacity .3s var(--ease); }

.primary-nav{ order: 1; justify-self:start; margin-left: -15px; }
.primary-menu{ display:flex; gap: 24px; }
.primary-menu > li{ position: relative; }
.primary-menu > li > a{
	font-size: 0.9rem; letter-spacing:0.02em; font-weight:400; padding: 10px 0; position:relative;
	white-space: nowrap;
}
.primary-menu > li > a::after{
	content:''; position:absolute; left:0; bottom:4px; width:100%; height:1.4px; background: var(--olive);
	transform: scaleX(0); transform-origin:left; transition: transform .3s var(--ease);
}
.primary-menu > li > a:hover::after{ transform: scaleX(1); }

.primary-menu > li.current-menu-item > a{ color: var(--pink); }
.primary-menu > li.current-menu-item > a::after{ background: var(--pink); transform: scaleX(1); }

.primary-menu .sub-menu{
	position:absolute; top: 100%; left:50%; transform: translate(-50%,10px); min-width:220px;
	background: var(--white); border-radius: var(--radius-md); box-shadow: var(--shadow-md);
	padding: 14px; opacity:0; visibility:hidden; transition: opacity .3s var(--ease), transform .3s var(--ease);
}
.primary-menu li:hover > .sub-menu{ opacity:1; visibility:visible; transform: translate(-50%,4px); }
.primary-menu .sub-menu li a{ display:block; padding: 8px 10px; border-radius: 8px; font-size:0.86rem; }
.primary-menu .sub-menu li a:hover{ background: var(--pink-100); }

.header-actions{ display:flex; align-items:center; gap: 6px; justify-self:end; order: 3; margin-right: -8px; }
.header-icon-btn{
	position:relative; width: 40px; height:40px; border-radius:50%; display:flex; align-items:center; justify-content:center;
	transition: background .3s var(--ease);
}
.header-icon-btn:hover{ background: var(--pink-100); }
.header-icon-btn svg{ width:19px; height:19px; }
.badge-count{
	position:absolute; top:2px; right:2px; background: var(--pink); color: var(--olive-900);
	font-size: 0.62rem; font-weight:600; min-width:16px; height:16px; padding: 0 3px;
	border-radius: var(--radius-pill); box-sizing: border-box;
	display:flex; align-items:center; justify-content:center; line-height:1;
}
.badge-count:empty, .badge-count[data-empty="1"]{ display:none; }

/* Floating pill that grows out from the search icon's own spot, overlaying
   the page instead of pushing the header/content down. */
.header-actions{ position: relative; }
.search-flyout{
	position: absolute; top: calc(100% + 12px); right: 0; z-index: 40;
	width: 0; max-width: min(380px, calc(100vw - 2 * var(--gutter)));
	background: var(--white); border-radius: var(--radius-pill);
	box-shadow: var(--shadow-md); border: 1px solid var(--line);
	overflow: hidden; opacity: 0; visibility: hidden;
	transform: translateY(-6px);
	transition: width .38s var(--ease), opacity .28s var(--ease), visibility .38s, transform .32s var(--ease);
}
.search-flyout.is-open{
	width: min(380px, calc(100vw - 2 * var(--gutter)));
	opacity: 1; visibility: visible; transform: translateY(0);
}
.search-flyout-form{ margin:0; padding: 6px 8px 6px 22px; display:flex; gap:8px; align-items:center; height:54px; }
.search-flyout-form input{ flex:1; min-width:0; border:none; background:transparent; font-family: var(--font-body); font-weight:400; font-size: 0.95rem; color: var(--olive-900); white-space:nowrap; }
.search-flyout-form input::placeholder{ color: var(--olive-700); opacity:0.55; }
.search-flyout-form input:focus{ outline:none; }
.search-flyout-form button{ flex-shrink:0; width:40px; height:40px; border-radius:50%; background: var(--olive); color: var(--cream); display:flex; align-items:center; justify-content:center; transition: background .3s var(--ease); }
.search-flyout-form button:hover{ background: var(--pink); color: var(--olive-900); }
.search-flyout-form button svg{ width:16px; height:16px; }
@media (max-width: 480px){
	.search-flyout{ right: 0; }
}
/* =========================================================================
   Trust bar (4-icon strip, torn-paper edges, two-line items)
   ========================================================================= */
.trust-bar{
	position:relative; background: var(--sand); padding: 2.4rem var(--gutter) 2.8rem;
	--torn: 24px;
	clip-path: polygon(
		0% 0%, 100% 0%,
		100% calc(100% - var(--torn)), 96% calc(100% - 4px), 91% calc(100% - var(--torn)), 86% calc(100% - 2px),
		81% calc(100% - var(--torn)), 76% calc(100% - 4px), 71% calc(100% - var(--torn)), 66% calc(100% - 2px),
		61% calc(100% - var(--torn)), 56% calc(100% - 4px), 50% calc(100% - var(--torn)), 44% calc(100% - 4px),
		39% calc(100% - var(--torn)), 34% calc(100% - 2px), 29% calc(100% - var(--torn)), 24% calc(100% - 4px),
		19% calc(100% - var(--torn)), 14% calc(100% - 2px), 9% calc(100% - var(--torn)), 4% calc(100% - 4px),
		0% calc(100% - var(--torn))
	);
}
.site-logo-img{ max-height: 60px; width: auto; display: block; transition: opacity .25s ease; }
.custom-logo-link{ position: relative; display: inline-block; height: 50px; width: 160px; }
.site-logo-scrolled{ position: absolute; top: 0; left: 50%; transform: translateX(-50%); opacity: 0; pointer-events: none; }
.site-logo-top{ opacity: 1; position: absolute; top: 0; left: 50%; transform: translateX(-50%); }
.site-header.is-scrolled .site-logo-top{ opacity: 0; pointer-events: none; }
.site-header.is-scrolled .site-logo-scrolled{ opacity: 1; pointer-events: auto; }
.trust-bar-inner{ max-width: var(--container); margin:0 auto; display:grid; grid-template-columns: repeat(4,1fr); gap: 24px; }
.trust-bar-item{ display:flex; align-items:flex-start; justify-content:flex-start; gap:14px; text-align:left; }
.trust-bar-item svg{ width:26px; height:26px; color: var(--olive-900); flex-shrink:0; }
.trust-bar-item strong{ display:block; font-size: 0.82rem; letter-spacing:0.04em; text-transform:uppercase; color: var(--olive-900); font-weight:600; }
.trust-bar-item span{ display:block; font-size: 0.78rem; color: var(--olive-700); margin-top:2px; }
@media (max-width: 720px){ .trust-bar-inner{ grid-template-columns: repeat(2,1fr); row-gap: 22px; } }

/* =========================================================================
   Hero
   ========================================================================= */
.hero.hero--editorial{
	position:relative; display:flex; align-items:center; overflow:hidden;
	min-height: clamp(560px, 86vh, 860px); margin-bottom: 0;
}
.hero-ed-bg{ position:absolute; inset:0; z-index:0; background: var(--sand); }
.hero-ed-bg img{ width:100%; height:100%; object-fit:cover; object-position: center 35%; }
.hero-ed-bg-link{ position:absolute; inset:0; display:block; z-index:0; }
.hero-ed-scrim{
	position:absolute; inset:0; pointer-events:none;
	background: linear-gradient(100deg, rgba(243,239,221,0.94) 0%, rgba(243,239,221,0.86) 22%, rgba(243,239,221,0.5) 42%, rgba(243,239,221,0.06) 62%, rgba(35,45,26,0.08) 100%);
}
.hero-doodle{ position:absolute; width:70px; height:70px; color: var(--pink); opacity:0.35; pointer-events:none; z-index:1; }
.hero-doodle-yarn-1{ top: 8%; left: 2%; }
.hero-doodle-swirl{ bottom: 6%; right: 44%; color: var(--olive); opacity:0.25; }

.hero-ed-text{
	position:relative; z-index:2; display:flex; flex-direction:column; justify-content:center;
	width:100%; max-width: 620px;
	padding: 64px var(--gutter) 64px max(var(--gutter), calc((100vw - var(--container)) / 2));
}
.hero-ed-eyebrow{
	display:flex; align-items:center; gap:8px; font-size:0.78rem; letter-spacing:0.2em; text-transform:uppercase;
	color: var(--pink); margin-bottom: 1.6em; font-weight:500;
}
.hero-ed-eyebrow svg{ width:14px; height:14px; }
.hero-ed-title{ font-size: clamp(2.8rem, 5.4vw, 4.8rem); line-height:1.06; margin-bottom:0; color: var(--olive-900); }
.hero-ed-title span{ display:block; }
.hero-script-word{ color: var(--pink); font-size: 0.8em; font-weight:300; font-style: italic; }
.hero-ed-underline{ display:block; width:64px; height:3px; border-radius:2px; background: var(--pink); margin: 6px 0 1.6rem; }
.hero-ed-sub{ max-width: 42ch; font-size: 0.92rem; margin-bottom: 2.3rem; }

.hero-ed-cta{ display:flex; align-items:center; gap: 16px; flex-wrap:nowrap; }
.btn-ed-primary{
	display:inline-flex; align-items:center; gap: 14px; font-family: var(--font-body);
	font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase; background: var(--olive-900); color: var(--cream);
	padding: 8px 8px 8px 26px; border-radius: var(--radius-pill); box-shadow: var(--shadow-md);
	transition: transform .4s var(--ease), box-shadow .4s var(--ease), background .3s var(--ease);
	white-space: nowrap;
}
.btn-ed-primary svg{
	width:16px; height:16px; padding:12px; box-sizing:content-box; border-radius:50%;
	background: var(--pink); color: var(--olive-900);
	transition: transform .3s var(--ease), background .3s var(--ease), color .3s var(--ease);
}
.btn-ed-primary:hover{ background: var(--pink); color: var(--olive-900); transform: translateY(-3px); box-shadow: var(--shadow-lg); }
.btn-ed-primary:hover svg{ transform: translateX(3px); background: var(--cream); color: var(--olive-900); }

.btn-ed-outline{
	display:inline-flex; align-items:center; gap: 10px; font-family: var(--font-body);
	font-size:0.85rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--olive-900);
	border: 1.4px solid var(--line); background: var(--cream);
	padding: 16px 26px; border-radius: var(--radius-pill); transition: border-color .3s var(--ease), color .3s var(--ease);
	white-space: nowrap;
}
.btn-ed-outline svg{ width:15px; height:15px; color: var(--pink); }
.btn-ed-outline:hover{ border-color: var(--pink); color: var(--pink); }

.hero-ed-media{ position:absolute; inset:0; z-index:3; pointer-events:none; }
.hero-ed-media .hero-polaroids,
.hero-ed-media .hero-stamp{ pointer-events:auto; }

/* Circular "Small Batch · Handmade" stamp */
.hero-stamp{
	position:absolute; top: 34px; right: max(24px, calc((100vw - var(--container)) / 2 + 12px)); z-index:3; width: 92px; height:92px;
	display:flex; align-items:center; justify-content:center;
	background: var(--olive-900); color: var(--cream); border-radius:50%;
	box-shadow: var(--shadow-md); transform: rotate(-8deg);
}
.hero-stamp svg{ position:absolute; inset:0; width:100%; height:100%; }
.hero-stamp-icon{ color: var(--pink); display:flex; align-items:center; justify-content:center; transform: rotate(8deg); }
.hero-stamp-icon svg{ position:static; width:18px; height:18px; }
.hero-stamp-icon img{ width:52px; height:52px; object-fit:contain; }

/* Stacked polaroids */
.hero-polaroids{ position:absolute; right: max(-18px, calc((100vw - var(--container)) / 2 - 40px)); top: 22%; z-index:3; }
.hero-polaroid{
	position:absolute; background: var(--cream); padding: 16px 16px 50px; width: 240px;
	box-shadow: var(--shadow-md); border-radius: 2px; margin:0;
}
.hero-polaroid img{ width:100%; height:200px; object-fit:cover; object-position: center 30%; border-radius:1px; }.hero-polaroid figcaption{
	position:absolute; left:0; right:0; bottom:8px; text-align:center;
	font-family: var(--font-script); font-size: 1rem; color: var(--olive-900);
}
.hero-polaroid-link{ display:block; color:inherit; text-decoration:none; }
.hero-polaroid-link:hover img{ opacity:.92; }
.hero-polaroid-link img{ width:100%; aspect-ratio: 4/5; object-fit:cover; object-position: center 30%; border-radius:1px; }
.hero-polaroid-link figcaption{
	position:absolute; left:0; right:0; bottom:8px; text-align:center;
	font-family: var(--font-script); font-size: 1rem; color: var(--olive-900);
}
.hero-polaroid-tape{
	position:absolute; top:0; left:0; transform: translate(-50%,-50%) rotate(-40deg);
	width:84px; height:32px; background: rgba(243,239,221,0.9); box-shadow: var(--shadow-sm);
}
.hero-polaroid-1{ top:0; right: 100px; transform: rotate(-6deg); z-index:2; }
.hero-polaroid-2{ top: 230px; right: 0; transform: rotate(9deg); z-index:1; }
.hero-polaroid-2 .hero-polaroid-tape{
	left:auto; right:0; top:0; transform: translate(50%,-50%) rotate(40deg);
}
@media (max-width: 767px){
	.product-row-section-dark::before,
.product-row-section-dark::after{
	content: '';
	position: absolute;
	left: 0;
	right: 0;
	height: 3px;
	background: var(--cream);
	z-index: 1;
}
.product-row-section-dark::before{ top: 0; }
.section.brand-story{ padding-top: 24px; }
.product-row-section-dark::after{ bottom: 0; }
	.hero-polaroids{ display:none; }
	.hero-stamp{ width:74px; height:74px; }
	.section{ padding-top: 32px; padding-bottom: 32px; }
	.section.cottage-tight-top{ padding-top: 36px; }
	.section.cottage-tight-bottom{ padding-bottom: 40px; }
	.product-row-section, .product-row-section-dark{ display:flex; flex-direction:column; }
	.product-row-section-dark .section{ display:flex; flex-direction:column; }
	.product-row-section .section-head, .product-row-section-dark .section-head{ display:contents; }
	.product-row-section .section-head > div, .product-row-section-dark .section-head > div{ order:1; margin-bottom: 1.2rem; }
	.product-row-section .product-grid,
	.product-row-section .product-carousel,
	.product-row-section-dark .product-grid,
	.product-row-section-dark .product-carousel{ order:2; }
	.product-row-section .section-head > a.btn-text,
	.product-row-section-dark .section-head > a.btn-text{
		order:3; margin-top: 1.4rem; align-self:center;
	}
	.product-carousel{ display:grid; overflow-x:visible; }
	.product-carousel .product-card{ flex:none; }
	.testimonials-row.is-carousel .testimonial-card{ flex: 0 0 88%; }
	.hero-ed-title{ font-size: 2.3rem !important; }
	.section-head h2{ font-size: 1.7rem !important; }
	.story-copy h2{ font-size: 1.7rem !important; }
	.shop-header h1{ font-size: 1.8rem !important; }
}
@media (min-width: 768px) and (max-width: 1080px){
  .hero-polaroid{ width: 190px; }
  .hero-polaroid-2{ top: 180px; }
  .header-actions{ margin-right: -8px; }
}

/* =========================================================================
   Tagline strip (script line + organic olive blob), sits right after trust bar
   ========================================================================= */
.tagline-strip{
	position:relative; overflow:hidden; padding: 3.2rem var(--gutter) 6rem; text-align:center; background: var(--cream);
}
.tagline-strip-text{
	position:relative; z-index:2; font-family: var(--font-script); font-weight:600;
	font-size: clamp(1.4rem, 2.4vw, 2rem); color: var(--olive-900); margin:0;
}
.tagline-blob{
	position:absolute; left: -8%; bottom: -12%; width: 46%; max-width: 460px; aspect-ratio: 1/1;
	background: var(--olive-900); z-index:1;
	border-radius: 62% 38% 55% 45% / 55% 45% 55% 45%;
}
.tagline-doodle{ position:absolute; width:56px; height:56px; color: var(--pink); opacity:0.4; z-index:2; }
.tagline-doodle-tl{ top: 18px; left: 6%; }
.tagline-doodle-br{ bottom: 18px; right: 8%; color: var(--olive); opacity:0.3; }
.tagline-heart{ position:absolute; top: 30%; right: 5%; width:18px; height:18px; color: var(--pink); z-index:2; opacity:0.7; }
.tagline-heart svg{ width:100%; height:100%; }
@media (max-width: 720px){ .tagline-blob{ width:70%; left:-16%; } }

@media (max-width: 980px){
	.hero.hero--editorial{ min-height: auto; }
	.hero-ed-text{ max-width:100%; padding: 56px var(--gutter) 76px; }
	.hero-ed-scrim{ background: linear-gradient(180deg, rgba(243,239,221,0.96) 0%, rgba(243,239,221,0.9) 34%, rgba(243,239,221,0.55) 58%, rgba(243,239,221,0.15) 100%); }
	.hero-ed-tag{ left:50%; transform: translateX(-50%); bottom:-26px; }
}
@media (max-width: 560px){
	.hero-ed-cta{ gap:18px; }
	.btn-ed-primary{ gap:28px; padding: 15px 6px 15px 24px; }
	.hero-ed-tag{ max-width: 220px; padding: 14px 16px; }
	.hero-ed-doodle{ width:36px; height:36px; top:16px; right:16px; }
}

/* =========================================================================
   Scroll reveal
   ========================================================================= */
.reveal-up{ opacity:0; transform: translateY(28px); transition: opacity .8s var(--ease), transform .8s var(--ease); }
.reveal-up.in-view{ opacity:1; transform: translateY(0); }
.reveal-up.d1.in-view, .reveal-up.d1{ transition-delay: .05s; }
.reveal-up.d2{ transition-delay: .15s; }
.reveal-up.d3{ transition-delay: .25s; }
.reveal-up.d4{ transition-delay: .35s; }

/* =========================================================================
   Stitch divider (signature element)
   ========================================================================= */
.stitch-divider{ max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); color: var(--olive); opacity:0.4; }
.stitch-divider.small{ max-width: 240px; opacity: 0.55; margin: 0 auto 3rem; padding:0; }
.stitch-svg{ width:100%; height:24px; }

/* =========================================================================
   Category showcase
   ========================================================================= */
.categories-section{
	padding-top: 40px;
	padding-bottom: 24px;
	background: var(--sand);
	max-width: none;
	padding-left: var(--gutter);
	padding-right: var(--gutter);
}
.categories-section > *{ max-width: var(--container); margin-left: auto; margin-right: auto; }
.categories-row{ display:grid; grid-template-columns: repeat(5, 1fr); gap: 20px; }
.category-card{ position:relative; display:block; border-radius: var(--radius-md); overflow:hidden; box-shadow: var(--shadow-sm); }
.category-card-media{ display:block; aspect-ratio: 4/5; overflow:hidden; background: var(--sand); }
.category-card-media img{ width:100%; height:100%; object-fit:cover; transition: transform .8s var(--ease); }
.category-card:hover .category-card-media img{ transform: scale(1.05); }
.category-card-scrim{
	position:absolute; inset:0; pointer-events:none;
	background: linear-gradient(0deg, rgba(38,51,24,0.6), rgba(38,51,24,0.06) 60%, transparent 100%);
}
.category-card-label{
	position:absolute; left:0; right:0; bottom:0; padding: 18px 16px;
	font-family: var(--font-display); font-size: 1.1rem; color: var(--cream);
}
.category-card-explore{
	display:flex; align-items:center; gap:6px; margin-top:10px; font-family: var(--font-body);
	font-size: 0.7rem; letter-spacing:0.15em; text-transform:uppercase;
	opacity:0; transform: translateX(-8px); transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.category-card-explore svg{ width:14px; height:14px; }
.category-card:hover .category-card-explore{ opacity:1; transform: translateX(0); }

/* =========================================================================
   Product grid / carousel / cards
   ========================================================================= */
.product-row-section .section-head{ align-items:flex-end; }
.product-grid{ display:grid; grid-template-columns: repeat(5, 1fr); gap: 14px 12px; }
.product-carousel{
	display:grid; 
	gap:24px; 
	overflow-x:visible;
	grid-template-columns: repeat(5, 1fr) !important;
	padding-bottom: 10px;
	scrollbar-width: none; 
	-ms-overflow-style: none;
}

/* Breadcrumb above the "Checkout" heading */
.hh-checkout-crumb{ display:flex; align-items:center; gap:8px; justify-content:center; font-size:0.8rem; color: var(--olive-700); margin-bottom: 10px; }
.hh-checkout-crumb a{ color: var(--olive-700); }
.hh-checkout-crumb a:hover{ color: var(--pink); }
.hh-checkout-crumb .is-current{ color: var(--olive-900); font-weight:500; }
.hh-checkout-heart{ color: var(--pink); font-size:0.7em; vertical-align: middle; }

/* "Edit Cart" link beside the Order Summary title */
.hh-edit-cart-link{ float:right; font-size:0.78rem; letter-spacing:0.04em; text-decoration:underline; color: var(--olive-700); }
.hh-edit-cart-link:hover{ color: var(--pink); }

/* Handmade tagline moved into the sidebar, above the perks box */
.hh-checkout-tagline{ display:flex; align-items:center; gap:8px; font-size:0.85rem; color: var(--olive-700); margin: 0 0 4px; }
.hh-checkout-tagline svg{ width:16px; height:16px; color: var(--pink); flex-shrink:0; }

/* Circular quantity badge overlapping the product thumbnail corner */
.wc-block-components-order-summary-item .wc-block-components-order-summary-item__image{ position:relative; }
.wc-block-components-order-summary-item__quantity{
	position:absolute; top:-8px; right:-8px;
	width:22px; height:22px; border-radius:50%;
	display:flex; align-items:center; justify-content:center;
	font-size:0.7rem; font-weight:600; line-height:1;
	background: var(--pink); color: var(--olive-900);
	box-shadow: var(--shadow-sm);
}
.product-carousel .product-card{ flex: 0 0 220px; scroll-snap-align:start; }
.product-carousel::-webkit-scrollbar{ display:none; }

/* WooCommerce loop wrapper neutralised so our grid rules apply cleanly */
ul.products{ display:grid !important; grid-template-columns: repeat(4,1fr) !important; gap: 18px 24px !important; margin:0 !important; padding:0 !important; }
ul.products li.product{ list-style:none; width:auto !important; margin:0 !important; float:none !important; }
.woocommerce-pagination{ margin-top: 3rem; }
.woocommerce-pagination ul{ display:flex; align-items:center; gap:8px; list-style:none; padding:0; margin:0; width:100%; justify-content:center; }

.woocommerce-pagination a, .woocommerce-pagination span{ display:flex; align-items:center; justify-content:center; font-size:0.85rem; transition: all .2s ease; }
.woocommerce-pagination a.page-numbers:not(.prev):not(.next),
.woocommerce-pagination span.page-numbers{ width:24px; height:24px; border-radius:50%; border:1px solid var(--line); font-size:0.7rem; }

.woocommerce-pagination a.page-numbers:not(.prev):not(.next):hover{ background: var(--line); }
.woocommerce-pagination .current{ background: var(--olive); color:var(--cream); border-color:var(--olive); }
.woocommerce-pagination .prev, .woocommerce-pagination .next{
	width:24px; height:24px; padding:0; border-radius:50%;
	border:1px solid var(--olive); color:var(--olive); font-weight:600; font-size:0.7rem;
}
.woocommerce-pagination .prev:hover, .woocommerce-pagination .next:hover{ background:var(--olive); color:var(--cream); }

.shop-pagination-top{ display:none; }
.shop-pagination-top ul.page-numbers:has(.prev){ display:flex; }
.shop-pagination-top:has(.prev){ display:flex; justify-content:flex-end; margin-bottom: 14px; }
.shop-pagination-top .woocommerce-pagination{ margin-top:0; }
.product-card{
	background: transparent; overflow:visible;
	display:flex; flex-direction:column;
	min-width: 0;
}
.product-card-info{ padding: 0; margin-top: 8px; display:flex; flex-direction:column; gap:2px; flex:1; }
.product-card-media{ position:relative; display:block; width:100%; aspect-ratio: 3/4; overflow:hidden; border-radius: var(--radius-md); background: var(--sand); }
.pc-media-link{ display:block; width:100%; height:100%; }
.pc-img-main, .product-card-media img{ width:100% !important; height:100% !important; max-width:none !important; object-fit:cover !important; margin:0 !important; transition: transform .9s var(--ease); }.product-card:hover .pc-img-main{ transform: scale(1.06); }

.badge{ position:absolute; top:14px; left:14px; padding: 5px 12px; border-radius: var(--radius-pill); font-size:0.68rem; letter-spacing:0.05em; text-transform:uppercase; font-weight:600; z-index:2; }
.badge-sale{ background: var(--pink); color: var(--olive-900); }
.badge-bestseller{ background: var(--pink-100); color: var(--pink); }
.badge-new{ background: var(--olive-900); color: var(--cream); }
.badge-custom{ background: var(--pink); color: var(--olive-900); }
span.onsale{ position:absolute; top:14px; left:14px; padding: 5px 12px; border-radius: var(--radius-pill); font-size:0.68rem; letter-spacing:0.05em; text-transform:uppercase; font-weight:600; background: var(--pink); color: var(--olive-900); z-index:2; }

.wishlist-trigger{
	position:absolute; top:12px; width:36px; height:36px; border-radius:50%;
	background: rgba(254,254,236,0.9); backdrop-filter: blur(4px);
	display:flex; align-items:center; justify-content:center;
	opacity:0; transform: translateY(-6px); transition: opacity .5s var(--ease), transform .5s var(--ease), background .3s var(--ease), color .3s var(--ease);
	z-index:2; color: var(--olive-900);
}
/* ---- Quick view: badge, rating, price meta ------------------------------ */
.qv-badge{
	display:inline-block; padding: 0.4em 1em; border-radius: var(--radius-pill);
	background: var(--pink-100); color: var(--pink); font-size: 0.72rem; font-weight:600;
	letter-spacing:0.03em; text-transform:uppercase; margin-bottom: 0.8rem;
}
.qv-badge-added{
	background: var(--olive); color: var(--cream); display:inline-flex; align-items:center; gap:6px; text-transform:none;
}
.qv-badge-added svg{ width:12px; height:12px; }
.qv-rating{ display:flex; align-items:center; gap:8px; margin-bottom: 0.9rem; }
.qv-rating .star-rating, .qv-rating .hh-star-rating{ font-size: 0.85rem; color: var(--pink); }
.qv-rating-count{ font-size: 0.82rem; color: var(--olive-900); opacity:0.75; }
.qv-price{ font-size: 1.4rem; font-weight:600; margin-bottom: 0.15rem; }
.qv-price del{ font-size: 0.85rem; opacity:0.5; font-weight:400; margin-right:0.4em; }
.qv-price ins{ text-decoration:none; color: var(--pink); }
.qv-tax-note{ font-size: 0.78rem; opacity:0.6; margin-bottom: 1rem; }
.qv-divider{ border:none; border-top: 1px solid var(--line); margin: 1.2rem 0; }

/* ---- Quick view: swap between initial / success states ------------------ */
.qv-state-success{ display:none; }
.qv-panel.is-added .qv-state-initial{ display:none; }
.qv-panel.is-added .qv-state-success{ display:block; }

.qv-confirm{ display:flex; align-items:flex-start; gap:10px; margin-bottom: 1rem; }
.qv-confirm svg{ width:18px; height:18px; flex-shrink:0; margin-top:3px; color: var(--olive); }
.qv-confirm p{ font-size:0.92rem; margin:0; }
.qv-qty-display{ font-size:0.88rem; margin-bottom: 1.4rem; }
.qv-success-actions{ display:flex; gap:12px; flex-wrap:wrap; }
.qv-success-actions .btn{ flex:1; min-width: 160px; }

/* ---- Quick view: feature icon row ---------------------------------------- */
.qv-features{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 14px; }
.qv-feature{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:8px; }
.qv-feature svg{ width:22px; height:22px; color: var(--olive); }
.qv-feature span{ font-size: 0.72rem; line-height:1.3; color: var(--olive-900); opacity:0.85; }
.wishlist-trigger{ right: 12px; }
.wishlist-trigger svg{ width:16px; height:16px; }
.product-card:hover .wishlist-trigger{ opacity:1; transform: translateY(0); }
.wishlist-trigger:hover, .wishlist-trigger.is-active{ color: var(--pink); }
.wishlist-trigger.is-active svg{ fill: var(--pink); }

/* Quick-add "Add to Bag" pill — reveals over the image on hover, like willow-weave */
.pc-quick-add{
	position:absolute; left:16px; right:16px; bottom:16px; z-index:2;
	opacity:0; transform: translateY(8px); transition: opacity .5s var(--ease), transform .5s var(--ease);
}
.product-card:hover .pc-quick-add{ opacity:1; transform: translateY(0); }
.pc-quick-add a.pc-add, .pc-quick-add a.add_to_cart_button{ margin:0; }

.pc-cat{ font-size: 0.7rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--olive); opacity:0.6; margin:0; }
.pc-title{
	font-size: 1.05rem;
	margin: 0.1em 0 0.15em;
	line-height: 1.3;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.pc-rating{ margin-bottom:2px; display:flex; align-items:center; gap:6px; }
.pc-rating-count{ font-size:0.76rem; color: var(--olive-700); opacity:0.65; }
.pc-price, p.price{ font-family: var(--font-body); font-weight:500; color: var(--olive-900); margin:0; font-size:0.98rem; }
.pc-price del, p.price del{ font-size: 0.85em; opacity:0.45; font-weight:300; margin-right:6px; }
.pc-price ins, p.price ins{ text-decoration:none; color: var(--pink); }
a.pc-add, a.add_to_cart_button, .single_add_to_cart_button{
	display:inline-flex; align-items:center; justify-content:center; width:100%;
	padding: 0.85em 1.4em; border-radius: var(--radius-pill); background: var(--olive-900); color: var(--cream) !important;
	font-size: 0.78rem; letter-spacing:0.15em; text-transform:uppercase; transition: background .3s var(--ease), color .3s var(--ease);
}
a.pc-add:hover, a.add_to_cart_button:hover, .single_add_to_cart_button:hover{ background: var(--pink); color: var(--olive-900) !important; }
a.added_to_cart{ display:block; text-align:center; font-size:0.75rem; margin-top:6px; color: var(--olive); text-decoration:underline; }

.empty-state{ text-align:center; padding: 3rem 1rem; color: var(--olive-700); background: var(--sand); border-radius: var(--radius-md); }

/* =========================================================================
   Dark full-bleed product section (Bestsellers), matching willow-weave
   ========================================================================= */
.product-row-section-dark{
	position:relative; background: var(--olive-900); color: var(--cream);
	padding: 40px 0; margin: 20px 0; overflow:hidden;
}
.product-row-section-dark .section-wave{ position:absolute; left:0; width:100%; height:48px; color: var(--cream); }
.product-row-section-dark .section-wave:first-child{ top:-1px; transform: rotate(180deg); }
.product-row-section-dark .section-wave-flip{ bottom:-1px; top:auto; transform:none; }
.product-row-section-dark .section{ max-width: var(--container); margin:0 auto; padding-left: var(--gutter); padding-right: var(--gutter); }
.product-row-section-dark h2{ color: var(--cream); }
.product-row-section-dark .section-sub{ color: rgba(254,254,236,0.7); }
.product-row-section-dark .eyebrow{ color: var(--pink); }
.product-row-section-dark .btn-text{ color: rgba(254,254,236,0.8); }
.product-row-section-dark .btn-text:hover{ color: var(--pink); }
.product-row-section-dark .pc-cat{ color: var(--cream); opacity:0.55; }
.product-row-section-dark .pc-title{ color: var(--cream); }
.product-row-section-dark .pc-price, .product-row-section-dark p.price{ color: var(--cream); }
.product-row-section-dark .pc-price del, .product-row-section-dark p.price del{ color: rgba(254,254,236,0.5); }

/* =========================================================================
   Brand story
   ========================================================================= */
.brand-story{ display:grid; grid-template-columns: 0.9fr 1.1fr; gap: 64px; align-items:center; }
.section.brand-story{ padding-top: 100px; padding-bottom: 80px; }
.story-media{ position:relative; border-radius: var(--radius-lg); overflow:hidden; box-shadow: var(--shadow-md); }
.story-media img{ width:100%; aspect-ratio: 4/5; object-fit:cover; }
.story-stat{
	position:absolute; right:-18px; bottom: -18px; background: var(--olive); color: var(--cream);
	border-radius: var(--radius-md); padding: 20px 22px; text-align:center; box-shadow: var(--shadow-md);
}
.story-stat strong{ display:block; font-family: var(--font-display); font-size: 2rem; }
.story-stat span{ font-size: 0.72rem; letter-spacing:0.03em; opacity:0.85; }
.story-copy h2{ font-size: clamp(1.9rem,3vw,2.7rem); }
.story-points{ margin: 1.4rem 0 1.8rem; display:flex; flex-direction:column; gap:10px; }
.story-points li{ display:flex; align-items:center; gap:12px; font-size:0.94rem; color: var(--olive-900); }
.story-points .dot{ width:7px; height:7px; border-radius:50%; background: var(--pink); flex:none; }

/* =========================================================================
   Testimonials
   ========================================================================= */
.testimonials-section{ background: var(--sand); max-width:none; padding-top: 60px; padding-bottom: 80px; padding-left: var(--gutter); padding-right: var(--gutter); }
.testimonials-section > *{ max-width: var(--container); margin-left:auto; margin-right:auto; }
.testimonials-row{ display:grid; grid-template-columns: repeat(3,1fr); gap: 24px; }
.testimonials-row.is-carousel{
	display:flex; overflow-x:auto; scroll-snap-type: x mandatory;
	gap:24px; padding-bottom:10px;
	scrollbar-width:none; -ms-overflow-style:none;
	overflow-y: hidden;
}
.testimonials-row.is-carousel::-webkit-scrollbar{ display:none; }
.testimonials-row.is-carousel .testimonial-card{
	flex: 0 0 calc((100% - 48px) / 3); /* 48px = 2 gaps × 24px, so exactly 3 cards fill the row */
	scroll-snap-align:start;
}

.testimonials-carousel-wrap{ position:relative; display:flex; align-items:center; gap:12px; max-width:1180px; margin-left:auto; margin-right:auto; }
.testimonials-carousel-wrap .testimonials-row{ flex:1; min-width:0; }
.testimonials-nav{
	flex: 0 0 auto; width:44px; height:44px; border-radius:50%;
	background: var(--white); border:1px solid var(--line);
	display:flex; align-items:center; justify-content:center;
	cursor:pointer; transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
	color: var(--olive-900);
}
.testimonials-nav svg{ width:18px; height:18px; }
.testimonials-nav:hover{ background: var(--olive); border-color: var(--olive); color: var(--cream); }
.testimonials-nav.is-hidden{ visibility:hidden; opacity:0; pointer-events:none; }
.testimonials-nav-prev svg{ transform: rotate(180deg); }
.testimonial-card{ background: var(--white); border-radius: var(--radius-md); padding: 32px 28px; box-shadow: var(--shadow-sm); margin:0; display:flex; flex-direction:column; }
.testimonial-card .stars{ display:flex; gap:3px; color: var(--pink); margin-bottom: 14px; }
.testimonial-card .stars svg{ width:14px; height:14px; }
.testimonial-card p{ font-family: var(--font-body); font-size: 1rem; line-height:1.35; color: var(--olive-900); }
.testimonial-card footer{ display:flex; flex-direction:column; margin-top: auto; }
.testimonial-card footer strong{ font-weight:500; }
.testimonial-card footer span{ font-size:0.78rem; color: var(--olive-700); opacity:0.7; }

/* =========================================================================
   Instagram gallery
   ========================================================================= */
.instagram-grid{ display:grid; grid-template-columns: repeat(6,1fr); gap: 14px; }
.instagram-tile{ position:relative; aspect-ratio: 1/1; border-radius: var(--radius-sm); overflow:hidden; display:block; }
.instagram-tile img{ width:100%; height:100%; object-fit:cover; transition: transform .6s var(--ease); }
.instagram-tile:hover img{ transform: scale(1.1); }
.ig-hover{ position:absolute; inset:0; background: rgba(65,90,43,0.35); display:flex; align-items:center; justify-content:center; opacity:0; transition: opacity .3s var(--ease); color: var(--cream); }
.ig-hover svg{ width:22px; height:22px; }
.instagram-tile:hover .ig-hover{ opacity:1; }
@media (max-width: 767px){
	body.woocommerce-account .site-newsletter,
	body.woocommerce-cart .site-newsletter,
	body.woocommerce-shop .site-newsletter{
		display: none !important;
	}
}

/* =========================================================================
   Newsletter
   ========================================================================= */
.site-newsletter{ background: var(--olive); color: var(--cream); text-align:center; padding: 60px var(--gutter); }

.site-newsletter .stitch-divider{ display: none; }
.newsletter-inner{ max-width: 560px; margin:0 auto; }
.site-newsletter .eyebrow{ color: var(--pink); }
.site-newsletter h2{ color: var(--cream); font-size: clamp(1.9rem,3vw,2.6rem); }
.site-newsletter p{ color: rgba(254,254,236,0.78); }
.newsletter-form{
	display:flex; gap:8px; margin: 1.6rem 0 0.8rem; max-width: 480px; margin-left:auto; margin-right:auto;
	background: var(--cream); border-radius: var(--radius-pill); padding: 6px; box-shadow: var(--shadow-md);
}
.newsletter-form input{ flex:1; padding: 0.85em 1.2em; border:none; background: transparent; color: var(--olive-900); font-size:0.9rem; }
.newsletter-form input::placeholder{ color: var(--olive-700); opacity:0.6; }
.newsletter-form input:focus{ outline:none; }
.newsletter-form button{
	background: var(--olive-900); color: var(--cream); padding: 0.85em 1.6em; border-radius: var(--radius-pill);
	font-size: 0.75rem; letter-spacing:0.15em; text-transform:uppercase; transition: background .3s var(--ease);
}
.newsletter-form button:hover{ background: var(--pink); color: var(--olive-900); }
.newsletter-fine{ font-size:0.75rem; color: rgba(254,254,236,0.55); }

/* =========================================================================
   Footer
   ========================================================================= */
.site-footer{ background: var(--sand); padding: 4rem var(--gutter) 0; }
.footer-top{ max-width: var(--container); margin: 0 auto; display:grid; grid-template-columns: 1.3fr 0.7fr 0.7fr; gap: 40px; padding-bottom: 3rem; }
.footer-links-group{ display:contents; }
.footer-logo{ display:inline-block; margin-bottom: 0.8rem; }
.footer-logo-img{ max-height: 60px; width: auto; display:block; }
.footer-brand p{ font-size: 0.9rem; max-width: 32ch; }
.footer-social{ display:flex; gap:10px; margin-top: 1rem; }
.footer-social a{ width:34px; height:34px; border-radius:50%; border:1px solid var(--line); display:flex; align-items:center; justify-content:center; transition: border-color .3s var(--ease), color .3s var(--ease); }
.footer-social a svg{ width:16px; height:16px; }
.footer-social a:hover{ border-color: var(--pink); color: var(--pink); }
.footer-col h4, .footer-widget-title{ font-family: var(--font-body); font-weight:500; font-size:0.85rem; letter-spacing:0.03em; text-transform:uppercase; margin-bottom:1.1rem; color: var(--olive-900); }
.footer-col ul{ display:flex; flex-direction:column; gap: 10px; }
.footer-col a{ font-size:0.88rem; color: var(--olive-700); transition: color .25s var(--ease); }
.footer-col a:hover{ color: var(--pink); }
.footer-bottom{ max-width: var(--container); margin:0 auto; display:flex; justify-content:space-between; align-items:center; padding: 1.6rem 0; border-top:1px solid var(--line); flex-wrap:wrap; gap:12px; }
.footer-bottom p{ margin:0; font-size:0.78rem; color: var(--olive-700); }
.footer-legal{ display:flex; gap: 18px; }
.footer-legal a{ font-size:0.78rem; color: var(--olive-700); }
.footer-legal a:hover{ color: var(--pink); }

/* =========================================================================
   Cart drawer
   ========================================================================= */
.overlay-scrim{
	position:fixed; inset:0; background: rgba(38,51,24,0.45); backdrop-filter: blur(2px);
	opacity:0; visibility:hidden; transition: opacity .4s var(--ease), visibility .4s var(--ease); z-index: 700;
}
.overlay-scrim.is-active{ opacity:1; visibility:visible; }

.cart-drawer{
	position:fixed; top:0; right:0; bottom:0; width: min(420px, 92vw); background: var(--cream);
	transform: translateX(100%); transition: transform .5s var(--ease); z-index: 800; box-shadow: var(--shadow-lg);
	display:flex; flex-direction:column;
}
.cart-drawer.is-open{ transform: translateX(0); }
.cart-drawer-panel{ display:flex; flex-direction:column; height:100%; overflow-y:auto; }
.cart-drawer-header{ display:flex; align-items:center; justify-content:space-between; padding: 24px; border-bottom:1px solid var(--line-soft); }
.cart-drawer-header h3{ margin:0; }
.cart-drawer-close{ width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center; }
.cart-drawer-close:hover{ background: var(--pink-100); }
.cart-drawer-close svg{ width:15px; height:15px; }
.cart-drawer-empty{ padding: 40px 24px; text-align:center; }
.cart-drawer-items{ padding: 8px 24px; display:flex; flex-direction:column; gap: 18px; flex:1; }
.cart-drawer-item{ display:grid; grid-template-columns: 64px 1fr auto; gap: 14px; align-items:center; }
.cdi-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.cdi-info{ display:flex; flex-direction:column; gap:2px; font-size:0.85rem; }
.cdi-qty{ font-size:0.75rem; color: var(--olive-700); opacity:0.7; }
.cdi-price{ font-weight:500; }
.cdi-remove{ font-size: 1.2rem; color: var(--olive-700); opacity:0.5; }
.cdi-remove:hover{ color: var(--pink); opacity:1; }
.cart-drawer-footer{ padding: 20px 24px 28px; border-top: 1px solid var(--line-soft); display:flex; flex-direction:column; gap: 12px; }
.cdf-subtotal{ display:flex; justify-content:space-between; font-size:0.95rem; margin-bottom: 4px; }

/* =========================================================================
   Quick view modal
   ========================================================================= */
.quick-view-modal{
	position:fixed; inset:0; z-index: 900; display:flex; align-items:center; justify-content:center; padding: 24px;
	opacity:0; visibility:hidden; transition: opacity .4s var(--ease), visibility .4s var(--ease);
}
.quick-view-modal.is-open{ opacity:1; visibility:visible; }
.qv-panel{
	background: var(--cream); border-radius: var(--radius-lg); max-width: 860px; width:100%; max-height: 86vh; overflow-y:auto;
	position:relative; box-shadow: var(--shadow-lg); transform: scale(0.94) translateY(16px); transition: transform .45s var(--ease);
}
.quick-view-modal.is-open .qv-panel{ transform: scale(1) translateY(0); }
.qv-close{ position:absolute; top: 5px; right:22px; width:32px; height:32px; border-radius:50%; background: var(--white); display:flex; align-items:center; justify-content:center; z-index:2; box-shadow: var(--shadow-sm); }
.cart-remove-panel .qv-close{ top:8px; right:18px; }
.qv-close svg{ width:14px; height:14px; }
.qv-layout{ display:grid; grid-template-columns: 1fr 1fr; }
.qv-gallery img{ width:100%; height:100%; object-fit:cover; border-radius: var(--radius-lg) 0 0 var(--radius-lg); }
.qv-info{ padding: 44px 40px; }
.qv-info h3{ font-size: 1.7rem; margin: 0.2em 0 0.4em; }
.qv-excerpt{ font-size:0.92rem; margin-bottom: 1.4rem; }
.qv-view-full{ display:inline-block; margin-top: 1rem; font-size:0.82rem; text-decoration:underline; color: var(--olive); }
.qv-loading{ display:flex; gap:8px; align-items:center; justify-content:center; padding: 80px 0; }
.qv-loading span{ width:9px; height:9px; border-radius:50%; background: var(--pink); animation: qvBounce 1s ease-in-out infinite; }
.qv-loading span:nth-child(2){ animation-delay:.15s; } .qv-loading span:nth-child(3){ animation-delay:.3s; }
@keyframes qvBounce{ 0%,80%,100%{ transform: translateY(0); opacity:0.5; } 40%{ transform: translateY(-8px); opacity:1; } }

/* =========================================================================
   Shop archive / filters
   ========================================================================= */
.shop-page-wrap{ max-width: var(--container); margin: 0 auto; padding: clamp(16px,2vw,28px) var(--gutter) var(--section-space); }
.shop-header{ text-align:center; margin-bottom: 1.25rem; }
.shop-header h1{ font-size: clamp(2rem,3.6vw,3.2rem); }
.shop-title-deco{ color: var(--pink); font-size:0.55em; vertical-align: middle; }
.shop-header h1{ font-family: var(--font-display); font-weight:400; letter-spacing: 0.005em; }
.shop-breadcrumb{ margin: 0.6em 0 0; font-size:0.82rem; color: var(--olive-700); opacity:0.7; }
.shop-breadcrumb a{ color: var(--olive-700); }
.shop-breadcrumb a:hover{ color: var(--pink); }
.shop-breadcrumb span{ margin: 0 0.4em; }
.shop-content-inner.with-filters{ display:grid; grid-template-columns: 260px 1fr; gap: 48px; align-items:flex-start; }

.shop-filters{ position:sticky; top: 110px; background: var(--white); border:1px solid var(--line-soft); border-radius: var(--radius-md); padding: 26px 24px; }
.shop-filters h4{ font-family: var(--font-body); font-weight:600; text-transform:uppercase; font-size:0.82rem; letter-spacing:0.04em; margin: 0 0 1.4rem; }

/* Accordions (Categories / Price / Colors open by default; Material / Occasion / Rating collapsed) */
.filter-group{ border-bottom: 1px solid var(--line-soft); padding-bottom: 1.1rem; margin-bottom: 1.1rem; }
.filter-group:last-of-type{ border-bottom:none; margin-bottom: 0.4rem; padding-bottom: 0.2rem; }
.filter-group summary{
	list-style:none; cursor:pointer; display:flex; align-items:center; justify-content:space-between;
	font-family: var(--font-body); font-weight:600; font-size:0.92rem; color: var(--olive-900);
	padding: 4px 0; margin-bottom: 0.9rem;
}
.filter-group summary::-webkit-details-marker{ display:none; }
.filter-group summary::after{ content:'+'; font-size:1.1rem; font-weight:300; color: var(--olive-700); transition: transform .3s var(--ease); }
.filter-group[open] summary::after{ content:'\2212'; }
.filter-group[open] summary{ margin-bottom: 0.9rem; }

.filter-list li a{ display:flex; justify-content:space-between; padding: 8px 0; font-size:0.88rem; color: var(--olive-700); border-bottom: 1px solid var(--line-soft); transition: color .25s var(--ease); }
.filter-list li:last-child a{ border-bottom:none; }
.filter-list li a:hover{ color: var(--pink); }
.filter-list li a span{ opacity:0.5; font-size:0.78rem; }
.filter-list-cats li.is-active a{ color: var(--pink); font-weight:600; }
.filter-list-cats li.is-active a span{ opacity:0.8; }

/* Material / Occasion / Rating checklists */
.filter-checklist li{ padding: 5px 0; }
.filter-checklist label{ display:flex; align-items:center; gap:9px; font-size:0.86rem; color: var(--olive-700); cursor:pointer; }
.filter-checklist input[type="checkbox"]{ width:16px; height:16px; accent-color: var(--pink); border-radius:4px; flex-shrink:0; }
.filter-checklist-rating label{ gap:7px; }
.rating-stars-mini{ color: var(--pink); font-size:0.85rem; letter-spacing:1px; }
.apply-filters-btn{ display:block; width:100%; text-align:center; padding:0.75em 1em; margin: 0.4rem 0 1.2rem; border:none; border-radius: var(--radius-pill); background: var(--olive-900); color: var(--cream); font-size:0.85rem; letter-spacing:0.03em; cursor:pointer; transition: background .25s var(--ease); }
.apply-filters-btn:hover{ background: var(--pink); color: var(--olive-900); }
/* Price range */
.price_slider_wrapper .ui-slider{ position:relative; background: var(--line); height:5px; border-radius: var(--radius-pill); margin: 1.4rem 0 1rem; }
.price_slider_wrapper .ui-slider .ui-slider-range{ position:absolute; top:0; height:100%; background: var(--pink); border-radius: var(--radius-pill); }
.price_slider_wrapper .ui-slider .ui-slider-handle{ position:absolute; background: var(--pink); border: 3px solid var(--white); box-shadow: var(--shadow-sm); width:16px; height:16px; top:-6px; margin-left:-8px; border-radius:50%; cursor:pointer; }
.price_label{ font-size:0.82rem; color: var(--olive-700); }
.price_slider_amount .button{ background: var(--olive); color: var(--cream); border-radius: var(--radius-pill); padding: 0.5em 1.2em; font-size:0.75rem; float:right; }
.price-presets{ display:grid; grid-template-columns: 1fr 1fr; gap: 8px; margin-top: 1.2rem; }
.price-preset-btn{
	display:block; text-align:center; padding: 0.55em 0.4em; border:1px solid var(--line);
	border-radius: var(--radius-pill); font-size:0.76rem; color: var(--olive-700);
	transition: background .25s var(--ease), color .25s var(--ease), border-color .25s var(--ease);
}
.price-preset-btn:hover, .price-preset-btn.is-active{ background: var(--olive-900); border-color: var(--olive-900); color: var(--cream); }

/* Color swatches */
.color-swatch-grid{ display:grid; grid-template-columns: repeat(4,1fr); gap:14px; }
.color-swatch{
	width:32px; height:32px; border-radius:50%; border: 1px solid var(--line);
	box-shadow: inset 0 0 0 2px var(--white); cursor:pointer; transition: transform .2s var(--ease), box-shadow .2s var(--ease);
}
.color-swatch:hover{ transform: scale(1.1); }
.color-swatch.is-selected, .color-swatch[aria-pressed="true"]{ box-shadow: inset 0 0 0 2px var(--white), 0 0 0 2px var(--pink); }

.clear-filters-btn{
	display:flex; align-items:center; justify-content:center; gap:8px; width:100%;
	padding: 0.85em 1.2em; border:1px solid var(--line); border-radius: var(--radius-pill);
	font-size:0.8rem; color: var(--olive-700); margin-top: 0.6rem; transition: background .25s var(--ease), color .25s var(--ease);
}
.clear-filters-btn svg{ width:15px; height:15px; }
.clear-filters-btn:hover{ background: var(--olive-900); color: var(--cream); border-color: var(--olive-900); }

.shop-toolbar{ display:flex; justify-content:space-between; align-items:center; margin-bottom: 1.8rem; font-size:0.85rem; }
.shop-toolbar select{ border:1px solid var(--line); border-radius: var(--radius-pill); padding: 0.5em 1.2em; background: var(--white); }
.woocommerce-result-count{ margin:0; color: var(--olive-700); }

/* =========================================================================
   Generic content pages (blog, static page)
   ========================================================================= */
.generic-content-wrap{ max-width: var(--container); margin:0 auto; padding: clamp(40px,6vw,72px) var(--gutter) var(--section-space); }
.generic-content-wrap.narrow{ max-width: 780px; }
.page-header{ text-align:center; margin-bottom: 2rem; }
.page-content{ font-size: 1.02rem; }
.page-content h2{ margin-top:1.6em; }
.post-list{ display:grid; grid-template-columns: repeat(2,1fr); gap: 32px; }
.post-card-media{ display:block; border-radius: var(--radius-md); overflow:hidden; aspect-ratio: 16/10; margin-bottom: 1rem; }
.post-card h2{ font-size:1.3rem; }

/* =========================================================================
   Single product (theming default WooCommerce structure)
   ========================================================================= */
.single-product .shop-page-wrap{ padding-top: clamp(32px,5vw,56px); }
.single-product .single-product div.product{ display:grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; }
.woocommerce-product-gallery{ border-radius: var(--radius-lg); overflow:hidden; }
.woocommerce-product-gallery .flex-control-thumbs{ display:flex; gap:10px; margin-top:12px; padding:0; }
.woocommerce-product-gallery .flex-control-thumbs li{ list-style:none; width:74px; border-radius: 10px; overflow:hidden; opacity:0.6; transition: opacity .3s var(--ease); }
.woocommerce-product-gallery .flex-control-thumbs li img{ border-radius:10px; }
.woocommerce-product-gallery .flex-control-thumbs li.flex-active-slide{ opacity:1; box-shadow: 0 0 0 2px var(--pink); }

.summary.entry-summary .product_title{ font-size: clamp(1.9rem,3vw,2.5rem); }
.summary.entry-summary .price{ font-size: 1.35rem; font-weight:500; color: var(--olive-900); margin: 0.4rem 0 1.2rem; }
.summary.entry-summary .woocommerce-product-details__short-description{ margin-bottom: 1.6rem; }
.summary.entry-summary form.cart{ display:flex; gap: 14px; align-items:center; margin-bottom: 1.8rem; }
.quantity input.qty{
	width: 68px; padding: 0.85em 0.6em; text-align:center; border: 1px solid var(--line); border-radius: var(--radius-pill); background: var(--white);
}
.summary.entry-summary form.cart .single_add_to_cart_button{ flex:1; padding: 0.95em 1.6em; }
.product_meta{ font-size:0.82rem; color: var(--olive-700); opacity:0.75; margin-top: 1.2rem; }
.product_meta a{ text-decoration:underline; }

.woocommerce-tabs{ margin-top: 4rem; }
.woocommerce-tabs ul.tabs{ display:flex; gap: 32px; border-bottom: 1px solid var(--line); margin-bottom: 2rem; }
.woocommerce-tabs ul.tabs li{ padding-bottom: 12px; font-size:0.9rem; position:relative; }
.woocommerce-tabs ul.tabs li.active{ color: var(--olive-900); font-weight:500; }
.woocommerce-tabs ul.tabs li.active::after{ content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background: var(--pink); }
.woocommerce-tabs ul.tabs li a{ display:block; }

.related.products, .up-sells.upsells{ margin-top: 5rem; }
.related.products > h2, .up-sells.upsells > h2{ font-family: var(--font-display); font-size: clamp(1.8rem,2.8vw,2.4rem); margin-bottom: 2rem; }

.star-rating{ color: var(--pink); font-size: 0.85rem; }
.hh-star-rating{ color: var(--pink); font-size: 0.95rem; letter-spacing:1px; white-space:nowrap; }

/* =========================================================================
   Cart / Checkout / My account (default WooCommerce tables & forms, restyled)
   ========================================================================= */
.woocommerce-cart-form, .checkout, table.shop_table{ font-size: 0.92rem; }
table.shop_table{
	width:100%; border-collapse: collapse; margin-bottom: 2rem;
	display:block; overflow-x:auto; -webkit-overflow-scrolling:touch;
}
table.shop_table thead, table.shop_table tbody, table.shop_table tr{ width:100%; }
table.shop_table tr{ display:table; width:100%; table-layout:fixed; }
@media (max-width: 560px){ table.shop_table tr{ min-width: 480px; } }
table.shop_table th{ text-align:left; padding: 14px 12px; font-weight:500; border-bottom: 1px solid var(--line); font-size:0.8rem; text-transform:uppercase; letter-spacing:0.03em; }
table.shop_table td{ padding: 18px 12px; border-bottom: 1px solid var(--line-soft); vertical-align:middle; }
table.shop_table img{ width:64px; border-radius:10px; }
.cart-collaterals .cart_totals{ background: var(--white); border-radius: var(--radius-md); padding: 28px; box-shadow: var(--shadow-sm); }
.cart_totals h2{ font-size:1.3rem; }
.wc-proceed-to-checkout .checkout-button{ display:flex; width:100%; margin-top: 1rem; }

.woocommerce-form-row, .form-row{ margin-bottom: 1.1rem; }
.woocommerce-form-row label, .form-row label{ display:block; margin-bottom:6px; font-size:0.82rem; }
.woocommerce-input-wrapper input, .woocommerce-input-wrapper select,
.woocommerce form .input-text, .woocommerce form select, .select2-container .select2-selection{
	width:100%; padding: 0.85em 1em; border:1px solid var(--line); border-radius: var(--radius-sm); background: var(--white);
}
.select2-container .select2-selection--single{
	height: auto;
	display: flex;
	align-items: center;
}
.select2-container .select2-selection__rendered{
	line-height: normal !important;
	padding-left: 0 !important;
}
.select2-container .select2-selection__arrow{
	height: 100% !important;
	top: 0 !important;
}
.woocommerce form .input-text:focus{ outline:none; border-color: var(--pink); }

.woocommerce-MyAccount-navigation ul{ display:flex; flex-direction:column; gap:4px; }
.woocommerce-MyAccount-navigation a{ display:block; padding: 12px 16px; border-radius: var(--radius-sm); font-size:0.9rem; }
.woocommerce-MyAccount-navigation .is-active a{ background: var(--olive); color: var(--cream); }
.woocommerce-MyAccount-navigation a:hover{ background: var(--pink-100); }
.woocommerce-MyAccount-navigation .is-active a:hover{ background: var(--olive); }
.woocommerce-MyAccount-content{ background: var(--white); border-radius: var(--radius-md); padding: 32px; box-shadow: var(--shadow-sm); min-width: 0; }
.woocommerce-account .shop-content-inner{ display:grid; grid-template-columns: 240px minmax(0,1fr); gap: 40px; }
.woocommerce-message, .woocommerce-info, .woocommerce-error, .woocommerce-notice{
	list-style:none; background: var(--pink-100); border-radius: var(--radius-sm); padding: 14px 20px;
	margin-bottom: 1.6rem; font-size: 0.88rem; border-left: 3px solid var(--pink);
}
.woocommerce-address-fields .button,
.woocommerce-account form .button[type="submit"]{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.85em 2.1em;
	border-radius: var(--radius-pill);
	background: var(--olive-900);
	color: var(--cream);
	font-size: 0.85rem;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	transition: background .3s var(--ease), color .3s var(--ease);
}
.woocommerce-address-fields .button:hover,
.woocommerce-account form .button[type="submit"]:hover{
	background: var(--pink);
	color: var(--olive-900);
}
/* Cart/wishlist "item removed" notices shouldn't surface on the Dashboard tab */
body.woocommerce-dashboard .woocommerce-notices-wrapper,
body.woocommerce-dashboard .woocommerce-message,
body.woocommerce-dashboard .woocommerce-info,
body.woocommerce-dashboard .woocommerce-error,
body.woocommerce-dashboard .woocommerce-notice{
	display: none !important;
}

/* =========================================================================
   Responsive
   ========================================================================= */
   @media (min-width: 1081px){
	.mobile-filter-toggle, .shop-filters-close{ display:none; }
}
@media (max-width: 1080px){
	.qv-features{ grid-template-columns: repeat(2, 1fr); }
.qv-success-actions{ flex-direction:column; }
	.header-inner{ grid-template-columns: auto 1fr auto; }
	.primary-nav{ display:none; }
	.header-menu-toggle{ display:flex; }
	.brand-story{ grid-template-columns:1fr; }
	.categories-row{ grid-template-columns: repeat(3,1fr); }
	.product-grid, ul.products, .product-carousel{ grid-template-columns: repeat(3,1fr) !important; }
	.testimonials-row{ grid-template-columns:1fr; }
	.footer-top{ grid-template-columns: 1fr 1fr; }
	.shop-content-inner.with-filters, .woocommerce-account .shop-content-inner{ grid-template-columns:1fr; }
	.shop-filters{
		position: fixed; top:0; left:0; bottom:0; width: min(340px, 86vw);
		background: var(--cream); z-index: 850; padding: 24px;
		transform: translateX(-100%); transition: transform .5s var(--ease);
		box-shadow: var(--shadow-lg); overflow-y:auto; margin-bottom:0;
		scrollbar-width: none;
		-ms-overflow-style: none;
	}
	.shop-filters::-webkit-scrollbar{ display:none; }
	.shop-filters.is-open{ transform: translateX(0); }
	.mobile-filter-toggle{
		display:flex; align-items:center; gap:8px;
		padding: 0.6em 1.2em; border:1px solid var(--line); border-radius: var(--radius-pill);
		font-size:0.85rem; color: var(--olive-900); background: var(--white);
	}
	.mobile-filter-toggle svg{ width:16px; height:16px; }
	.shop-filters-close{
		width:34px; height:34px; border-radius:50%; display:flex; align-items:center; justify-content:center;
		margin-bottom: 12px;
	}
	.shop-filters-close svg{ width:15px; height:15px; }
	div.product{ grid-template-columns:1fr; }
	.qv-layout{ grid-template-columns:1fr; }
	.qv-gallery img{ border-radius: var(--radius-lg) var(--radius-lg) 0 0; max-height: 320px; }
}
@media (max-width: 720px){
	.wishlist-trigger{ opacity: 1; transform: none; }
.pc-quick-add{ opacity: 1; transform: none; }
	.site-branding .site-title-fallback, .custom-logo-link{ font-size: 1.4rem; }
	.site-logo-img{ max-height: 48px; }
	.categories-row{ grid-template-columns: repeat(2,1fr); }
	.categories-row > .category-card:nth-child(5){ display:none; }
	.product-grid, ul.products, .product-carousel{ grid-template-columns: repeat(2,1fr) !important; }
.product-grid > .product-card:last-child:nth-child(odd),
ul.products li.product:last-child:nth-child(odd),
.product-carousel > .product-card:last-child:nth-child(odd){ display:none; }

	.instagram-grid{ grid-template-columns: repeat(3,1fr); }
	.footer-top{ grid-template-columns:1fr; gap: 32px; }
	.footer-links-group{
		display: grid !important;
		grid-template-columns: 1fr 1fr;
		gap: 24px;
	}

	.footer-bottom{ flex-direction:column; align-items:flex-start; text-align:left; }
	.post-list{ grid-template-columns:1fr; }
	.qv-info{ padding: 32px 24px; }
	.acct-stats{ grid-template-columns: repeat(3, minmax(0,1fr)); gap: 10px; }
	.acct-order-row{
	display: grid;
	grid-template-columns: 1fr auto;
	grid-template-rows: auto auto;
	column-gap: 12px;
	row-gap: 6px;
	align-items: center;
}
.acct-order-row > div:first-child{ grid-row: 1 / 3; }
.acct-order-row .acct-order-status{ grid-column: 2; grid-row: 1; justify-self: end; }
.acct-order-row .acct-order-total{ grid-column: 2; grid-row: 2; justify-self: end; font-weight: 600; }
	.pd-assurances{ grid-template-columns: 1fr; gap:14px; text-align:left; }
	.pd-assurances > div{ display:flex; align-items:center; gap:12px; }
	.pd-assurances svg{ margin:0; }
	.header-actions{ gap: 0; margin-right: -8px; }
	.header-icon-btn{ width:36px; height:36px; }
	.newsletter-form{ flex-direction:column; border-radius: var(--radius-md); padding: 10px; }
	.newsletter-form button{ width:100%; }
	.cart-line-item{ gap:14px; }
	.cli-thumb{ width:76px; height:88px; }
	.section-head h2{ line-height:1.15; }
}

/* ---- Extra-small phones ------------------------------------------------ */
@media (max-width: 480px){
	.product-grid, ul.products, .product-carousel{ grid-template-columns: repeat(2,1fr) !important; gap: 10px 8px; }
	.categories-row{ grid-template-columns: repeat(2,1fr); gap: 10px; }
	.pc-title{ font-size: 0.88rem; }
	.pc-cat{ font-size: 0.62rem; }
	.pc-price, p.price{ font-size: 0.85rem; }
	.product-card-info{ margin-top: 4px; gap: 2px; }
	a.pc-add, a.add_to_cart_button, .single_add_to_cart_button{ font-size: 0.68rem; padding: 0.7em 0.8em; letter-spacing: 0.08em; }
	.badge, span.onsale{ font-size: 0.6rem; padding: 4px 9px; top: 8px; left: 8px; }
	.wishlist-trigger{ width: 30px; height:30px; top:8px; right:8px; }
	.wishlist-trigger svg{ width:13px; height:13px; }
	.pc-quick-add{ left:8px; right:8px; bottom:8px; }
	.instagram-grid{ grid-template-columns: repeat(2,1fr); }
	.trust-bar-inner{ grid-template-columns: repeat(2,1fr); gap: 18px 14px; }
	.trust-bar{ padding: 1.8rem var(--gutter) 2rem; }
	.trust-bar-item svg{ width:20px; height:20px; }
	.trust-bar-item strong{ font-size: 0.72rem; }
	.trust-bar-item span{ font-size: 0.7rem; }
	.acct-stats{ grid-template-columns: repeat(3, minmax(0,1fr)); gap: 6px; }
.acct-stat{ padding: 10px 4px; min-width: 0; text-align: center; }
.acct-stat-n{ font-size: 1.1rem; }
.acct-stat-l{ font-size: 0.5rem; letter-spacing: 0.02em; white-space: normal; }
	.hero-ed-cta{ flex-direction:row; flex-wrap:nowrap; gap:6px; width:100%; }
	.btn-ed-primary, .btn-ed-outline{ flex:0 1 auto; width:auto; min-width:0; justify-content:center; font-size:0.62rem; letter-spacing:0.03em; padding: 10px 8px; }
	.btn-ed-primary{ padding: 5px 5px 5px 10px; gap:6px; }
	.btn-ed-primary svg{ width:12px; height:12px; padding:8px; }
	.btn-ed-outline svg{ width:12px; height:12px; }
	.hero-ed-eyebrow{ font-size:0.62rem; letter-spacing:0.14em; margin-bottom:1em; }
	.header-inner{ padding: 14px 14px; }
	.announcement-bar p{ font-size:0.7rem; }
	.section{ padding-left: 18px; padding-right: 18px; }
	.testimonials-section, .categories-section, .instagram-section{ padding-left: 18px; padding-right: 18px; }
	.hero-stamp{ width:60px; height:60px; top:18px; }
	.hero-stamp-icon img{ width:36px; height:36px; }
	.ot-result-head{ flex-direction:column; }
	.ot-result-eta{ text-align:left; }
}

/* =========================================================================
   Mobile off-canvas nav (JS toggles .is-open on <body>)
   ========================================================================= */
@media (max-width: 1080px){
	.primary-nav{
		display:block; position:fixed; top:0; left:0; bottom:0; width: min(340px,86vw); background: var(--cream);
		transform: translateX(-100%); transition: transform .5s var(--ease); z-index: 850; padding: 100px 32px 32px;
		box-shadow: var(--shadow-lg); overflow-y:auto;
	}
	body.menu-open .primary-nav{ transform: translateX(0); }
	.primary-menu{ flex-direction:column; gap: 4px; }
	.primary-menu > li > a{ display:block; padding: 14px 4px; font-size:1rem; }
	.primary-menu .sub-menu{ position:static; transform:none; opacity:1; visibility:visible; box-shadow:none; padding: 0 0 0 14px; display:none; }
	.primary-menu li.menu-open-mobile .sub-menu{ display:block; }
	body.menu-open .header-menu-toggle span:nth-child(1){ transform: translateY(6.5px) rotate(45deg); }
	body.menu-open .header-menu-toggle span:nth-child(2){ opacity:0; }
	body.menu-open .header-menu-toggle span:nth-child(3){ transform: translateY(-6.5px) rotate(-45deg); }
}

/* =========================================================================
   Single product page (custom, matches product detail design)
   ========================================================================= */
.pd-breadcrumb-wrap{ max-width: var(--container); margin:0 auto; padding: 28px var(--gutter) 8px; }
.pd-breadcrumb{ font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--olive-700); }
.pd-breadcrumb a{ color: var(--olive-700); }
.pd-breadcrumb a:hover{ color: var(--pink); }
.pd-breadcrumb span{ margin: 0 8px; opacity:0.5; }
.pd-breadcrumb-current{ color: var(--olive-900); }

.pd-main{ max-width: var(--container); margin:0 auto; padding: 8px var(--gutter) var(--section-space); }
.pd-grid{ display:grid; grid-template-columns: 1.18fr 1fr; gap: 56px; align-items:start; }

/* ---- Gallery: vertical thumbnail rail + large zoomable hero image ---- */
.pd-gallery{ display:grid; grid-template-columns: 84px 1fr; gap: 16px; }
.pd-gallery-rail{ display:flex; flex-direction:column; gap:12px; max-height: 560px; overflow-y:auto; scrollbar-width: none; }
.pd-gallery-rail::-webkit-scrollbar{ display:none; }
.pd-rail-thumb{ flex-shrink:0; aspect-ratio:1/1; border-radius:12px; overflow:hidden; background: var(--sand); border:2px solid transparent; padding:0; cursor:pointer; transition: border-color .25s var(--ease), transform .25s var(--ease); }
.pd-rail-thumb img{ width:100%; height:100%; object-fit:cover; display:block; }
.pd-rail-thumb video{ width:100%; height:100%; object-fit:cover; display:block; }
.pd-care-list{ margin:0; padding-left:20px; list-style:disc; }
.pd-care-list li{ margin-bottom:8px; line-height:1.6; }
.pd-rail-thumb.is-active{ border-color: var(--pink); }
.pd-rail-thumb:hover{ border-color: var(--olive); transform: translateY(-1px); }

.pd-gallery-main{ position:relative; border-radius: var(--radius-lg); overflow:hidden; aspect-ratio: 4/5; background: var(--sand); cursor: zoom-in; }
.pd-zoom-lens{
	position:absolute; border:1px solid var(--pink); background: rgba(253,127,164,0.18);
	pointer-events:none; z-index:5; opacity:0; transition: opacity .15s ease;
}
.pd-zoom-lens.is-active{ opacity:1; }
.pd-gallery-main img{ width:100%; height:100%; object-fit:cover; transition: transform .5s var(--ease); }
.pd-gallery-main video{ width:100%; height:100%; object-fit:contain; background:#000; }
.pd-video-playpause{
    position:absolute; top:50%; left:50%; transform:translate(-50%,-50%);
    width:56px; height:56px; border-radius:50%;
    background:rgba(0,0,0,0.5); color:#fff; border:none;
    display:none; align-items:center; justify-content:center;
    font-size:20px; cursor:pointer; z-index:3;
    opacity:0; pointer-events:none; transition: opacity .2s ease;
}
.pd-gallery-main:hover .pd-video-playpause{
    opacity:1; pointer-events:auto;
}
.woocommerce-orders-table__cell-order-actions{
	display: flex;
	flex-wrap: nowrap;
	gap: 6px;
}
.woocommerce-orders-table__cell-order-actions .button{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.4em 0.9em;
	border-radius: var(--radius-pill);
	background: var(--olive-900);
	color: var(--cream);
	font-size: 0.7rem;
	letter-spacing: 0.02em;
	white-space: nowrap;
	transition: background .3s var(--ease), color .3s var(--ease);
}
.woocommerce-orders-table__cell-order-actions .button:hover{
	background: var(--pink);
	color: var(--olive-900);
}
.woocommerce-orders-table__cell-order-actions .button.cancel{
	background: transparent;
	border: 1.4px solid var(--olive-900);
	color: var(--olive-900);
}
.woocommerce-orders-table__cell-order-actions .button.cancel:hover{
	background: var(--olive-900);
	color: var(--cream);
}
.pd-video-mute{
    position:absolute; bottom:16px; right:16px;
    width:36px; height:36px; border-radius:50%;
    background:rgba(0,0,0,0.5); color:#fff; border:none;
    display:none; align-items:center; justify-content:center;
    font-size:16px; cursor:pointer; z-index:3;
}
.pd-gallery-main:hover img{ transform: scale(1.06); }
.pd-gallery-main .badge{ position:absolute; top:20px; left:20px; z-index:2; }
.pd-zoom-btn{ position:absolute; top:16px; right:16px; z-index:3; width:38px; height:38px; border-radius:50%; background: var(--white); display:grid; place-items:center; box-shadow: var(--shadow-sm); color: var(--olive-900); transition: background .25s var(--ease), color .25s var(--ease); }
.pd-zoom-btn svg{ width:16px; height:16px; }
.pd-zoom-btn:hover{ background: var(--pink); color: var(--olive-900); }

/* ---- Info column ---- */
.pd-info{ padding-top: 8px; position:relative; }
.pd-zoom-pane{
	position:absolute; inset:0; left: -10px; z-index:20; border-radius: var(--radius-lg);
	background-color: var(--white); background-repeat:no-repeat; background-size: 200% auto;
	box-shadow: var(--shadow-lg); opacity:0; pointer-events:none; transition: opacity .2s ease;
}
.pd-zoom-pane.is-active{ opacity:1; }
@media (max-width: 900px){ .pd-zoom-pane, .pd-zoom-lens{ display:none; } }
.pd-badge-pill{ display:inline-block; padding: 0.35em 1.1em; border-radius: var(--radius-pill); background: var(--pink-100); color: var(--pink); font-size:0.72rem; letter-spacing:0.1em; text-transform:uppercase; font-weight:500; margin-bottom: 0.9em; }
/* Single product page: headings use the Rosaline display font. */
body.single-product h1,
body.single-product h2,
body.single-product h3,
body.single-product h4{ font-family: 'Rosaline', var(--font-display); font-weight:400; }
body.single-product .footer-col h4,
body.single-product .footer-widget-title{ font-family: var(--font-body); font-weight:500; }
body.single-product h3.pc-title{ font-family: var(--font-body); font-weight:400; }
.pd-title{ font-size: clamp(2rem,3.4vw,3rem); line-height:1.05; margin: 0 0 0.28em; font-family: 'Rosaline', var(--font-display); font-weight:400; }
.pd-rating-link{ display:inline-flex; align-items:center; gap:10px; font-size:0.85rem; color: var(--olive-700); }
.pd-rating-link:hover{ color: var(--pink); }
.pd-price-row{ margin-top: 18px; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.pd-price{ font-size:1.7rem; font-family: var(--font-body); font-weight:600; }
.pd-price del{ font-size: 0.85em; color: var(--olive-900); opacity:0.45; font-weight:400; margin-right:0.3em; }
.pd-price ins{ color: var(--pink); text-decoration:none; }
.pd-price-tax{ font-size:0.78rem; color: var(--olive-700); opacity:0.75; }
.pd-desc{ margin-top: 16px; max-width: 48ch; color: var(--olive-700); }
.pd-block{ margin-top: 26px; }
.pd-block-label{ font-size:0.72rem; letter-spacing:0.16em; text-transform:uppercase; color: var(--olive-700); margin-bottom: 12px; }
.pd-swatches{ display:flex; gap:12px; }
.pd-swatch{ width:34px; height:34px; border-radius:50%; border:1px solid var(--line); cursor:pointer; display:inline-block; }
.pd-swatch.is-active{ box-shadow: 0 0 0 2px var(--cream), 0 0 0 4px var(--pink); }

.pd-assurances{ margin-top:28px; display:grid; grid-template-columns: repeat(4,1fr); gap:16px; padding: 22px 0; border-top:1px solid var(--line); border-bottom:1px solid var(--line); text-align:center; }
.pd-assurances svg{ width:20px; height:20px; margin: 0 auto; color: var(--pink); }
.pd-assurances p{ margin: 10px 0 0; font-size:0.66rem; letter-spacing:0.06em; text-transform:uppercase; color: var(--olive-700); line-height:1.4; }

/* ---- Quantity stepper + Add to Cart ---- */
.pd-add-row{ margin-top: 30px; }
.pd-add-row{ display:flex; align-items:center; gap:16px; flex-wrap:wrap; }
.pd-add-row form.cart{ display:contents; }
.pd-add-row .quantity{ order:1; }
.pd-add-row .pd-wishlist-btn{ order:2; }
.pd-add-row .single_add_to_cart_button{ order:3; }
.pd-add-row .single_add_to_cart_button{ flex:1; min-width: 180px; padding: 1em 1.6em; font-size:0.95rem; }
.pd-add-row .quantity, .qv-info .quantity{ position:relative; }
.pd-add-row .quantity.pd-qty-stepper, .qv-info .quantity.pd-qty-stepper{ display:flex; align-items:center; border:1px solid var(--line); border-radius: var(--radius-pill); overflow:hidden; background: var(--white); width:fit-content; }
.pd-add-row .quantity.pd-qty-stepper input.qty, .qv-info .quantity.pd-qty-stepper input.qty{ width:44px; border:none; padding: 0.9em 0; text-align:center; background:transparent; -moz-appearance: textfield; }
.pd-add-row .quantity.pd-qty-stepper input.qty::-webkit-inner-spin-button, .pd-add-row .quantity.pd-qty-stepper input.qty::-webkit-outer-spin-button,
.qv-info .quantity.pd-qty-stepper input.qty::-webkit-inner-spin-button, .qv-info .quantity.pd-qty-stepper input.qty::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }
.pd-qty-btn{ width:38px; height:44px; display:grid; place-items:center; font-size:1.1rem; color: var(--olive-900); transition: background .25s var(--ease), color .25s var(--ease); }
.pd-qty-btn:hover{ background: var(--pink-100); color: var(--pink); }
.qv-info .quantity{ margin-bottom: 0; }
.qv-info form.cart{ display:flex; align-items:center; gap:14px; margin-bottom: 1.4rem; }
.qv-info form.cart .quantity{ flex:0 0 auto; }
.qv-info form.cart .single_add_to_cart_button{ flex:1; margin-bottom:0; }

.pd-wishlist-btn{ position: static; opacity: 1; transform: none; width:48px; height:48px; flex-shrink:0; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:50%; background: var(--white); }
.pd-wishlist-btn svg{ width:16px; height:16px; }
.pd-wishlist-btn:hover, .pd-wishlist-btn.is-active{ border-color: var(--pink); color: var(--pink); }

.pd-info-list{ margin-top: 26px; display:flex; flex-direction:column; gap:12px; }
.pd-info-list li{ display:flex; align-items:center; gap:10px; font-size:0.85rem; color: var(--olive-700); }
.pd-info-list svg{ width:16px; height:16px; color: var(--pink); flex-shrink:0; }

/* ---- Tabs (Description / Product Details / Care / Shipping) ---- */
.pd-tabs-section{ max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter) var(--section-space); }
.pd-tabs-wrap{ display:grid; grid-template-columns: 240px 1fr; gap: 48px; background: var(--white); border-radius: var(--radius-lg); padding: clamp(24px,3vw,44px); box-shadow: var(--shadow-sm); }
.pd-tab-nav{ display:flex; flex-direction:column; gap: 4px; }
.pd-tab-btn{ text-align:left; padding: 14px 4px; font-size:0.92rem; color: var(--olive-700); border-bottom: 1px solid var(--line-soft); transition: color .25s var(--ease), border-color .25s var(--ease); }
.pd-tab-nav .pd-tab-btn:last-child{ border-bottom:none; }
.pd-tab-btn.is-active{ color: var(--pink); font-weight:500; border-color: var(--pink); }
.pd-tab-btn:hover{ color: var(--pink); }
.pd-tab-panels{ min-width:0; }
.pd-tab-panel{ display:none; }
.pd-tab-panel.is-active{ display:block; animation: pdFadeIn .4s var(--ease); }
@keyframes pdFadeIn{ from{ opacity:0; transform: translateY(6px); } to{ opacity:1; transform:none; } }
.pd-tab-panel h3{ font-size:1.3rem; margin-bottom: 0.7em; }
.pd-tab-panel p{ font-size:0.95rem; }
.pd-spec-table{ width:100%; border-collapse: collapse; margin-top: 0.4em; }
.pd-spec-table th, .pd-spec-table td{ text-align:left; padding: 12px 0; border-bottom: 1px solid var(--line-soft); font-size:0.9rem; }
.pd-spec-table th{ width: 40%; font-weight:500; color: var(--olive-900); }
.pd-spec-table td{ color: var(--olive-700); }

/* ---- Mini trust strip (100% Handmade / Secure Packaging / Customer Support) ---- */
.pd-mini-trust{ background: var(--sand); padding: clamp(28px,4vw,44px) var(--gutter); }
.pd-mini-trust-inner{ max-width: var(--container); margin:0 auto; display:grid; grid-template-columns: repeat(3,1fr); gap: 28px; }
.pd-mini-trust-item{ display:flex; align-items:center; gap:16px; justify-content:center; text-align:left; }
.pd-mini-trust-item svg{ width:26px; height:26px; color: var(--pink); flex-shrink:0; }
.pd-mini-trust-item strong{ display:block; font-family: var(--font-display); font-size:1.02rem; font-weight:400; color: var(--olive-900); }
.pd-mini-trust-item span{ display:block; font-size:0.8rem; color: var(--olive-700); margin-top:2px; }

/* ---- Styled & Loved carousel ---- */
.pd-styled-loved{ max-width: var(--container); margin:0 auto; padding: var(--section-space) var(--gutter); }
.pd-styled-carousel{ position:relative; }
.pd-styled-grid{ display:flex; gap: 20px; overflow-x:auto; scroll-snap-type: x mandatory; scrollbar-width:none; padding-bottom: 4px; }
.pd-styled-grid::-webkit-scrollbar{ display:none; }
.pd-styled-card{ flex: 0 0 clamp(200px,22vw,260px); scroll-snap-align:start; margin:0; }
.pd-styled-card img{ border-radius: var(--radius-md); aspect-ratio: 4/5; object-fit:cover; width:100%; }
.pd-styled-card figcaption{ margin-top: 10px; font-size:0.82rem; color: var(--olive-700); text-align:center; }
.pd-carousel-arrow{ position:absolute; top:38%; transform: translateY(-50%); width:44px; height:44px; border-radius:50%; background: var(--white); box-shadow: var(--shadow-sm); display:grid; place-items:center; z-index:3; transition: background .25s var(--ease), color .25s var(--ease); }
.pd-carousel-arrow svg{ width:17px; height:17px; }
.pd-carousel-arrow:hover{ background: var(--pink); color: var(--olive-900); }
.pd-carousel-prev{ left:-8px; }
.pd-carousel-next{ right:-8px; }

/* ---- Reviews: summary + rating breakdown ---- */
.pd-reviews{ max-width: var(--container); margin:0 auto; padding: 0 var(--gutter) var(--section-space); }
.pd-reviews-head{ display:flex; align-items:flex-end; justify-content:space-between; gap:24px; flex-wrap:wrap; margin-bottom: 2.2rem; margin-top: 2rem; }
body.single-product .pd-reviews-head h2{ font-family: var(--font-body); font-style: italic; font-weight: 600; }
.pd-write-review{ font-size:0.8rem; letter-spacing:0.06em; text-decoration:underline; color: var(--olive-700); white-space:nowrap; }
.pd-write-review:hover{ color: var(--pink); }
.pd-review-summary{ display:grid; grid-template-columns: 200px 1fr; gap: 40px; align-items:center; background: var(--sand); border-radius: var(--radius-lg); padding: clamp(24px,3vw,36px); margin-bottom: 2.5rem; }
.pd-review-average{ text-align:center; border-right: 1px solid var(--line); padding-right: 24px; }
.pd-review-average-num{ display:block; font-family: var(--font-body); font-weight:700; font-size: 2.6rem; line-height:1; color: var(--olive-900); }
.pd-review-average p{ margin: 8px 0 0; font-size:0.78rem; color: var(--olive-700); }
.pd-rating-bars{ display:flex; flex-direction:column; gap: 8px; }
.pd-rating-bar-row{ display:grid; grid-template-columns: 32px 1fr 28px; align-items:center; gap: 12px; }
.pd-rating-bar-label{ font-size:0.78rem; color: var(--olive-700); }
.pd-rating-bar-track{ height:8px; border-radius: var(--radius-pill); background: var(--line-soft); overflow:hidden; }
.pd-rating-bar-fill{ display:block; height:100%; background: var(--pink); border-radius: var(--radius-pill); }
.pd-rating-bar-count{ font-size:0.78rem; color: var(--olive-700); text-align:right; }

.pd-related{ max-width: var(--container); margin:0 auto; padding: 0 var(--gutter) var(--section-space); }

@media (max-width: 1080px){
	.pd-grid{ grid-template-columns:1fr; gap: 20px; }
	.pd-tabs-wrap{ grid-template-columns:1fr; }
	.pd-tab-nav{ flex-direction:row; flex-wrap:wrap; gap:8px; }
		.pd-assurances{ display:none; }

	.pd-tab-nav .pd-tab-btn{ border-bottom:none; padding: 8px 14px; border:1px solid var(--line); border-radius: var(--radius-pill); }
.pd-tab-nav .pd-tab-btn.is-active{ background: var(--pink); color: var(--olive-900); border-color: var(--pink); }
	.pd-mini-trust-inner{ grid-template-columns:1fr; gap:20px; }
	.pd-review-summary{ grid-template-columns:1fr; }
	.pd-review-average{ border-right:none; border-bottom:1px solid var(--line); padding-right:0; padding-bottom:20px; }
}
@media (max-width: 640px){
	.pd-size-label, .qv-size-label{ font-size:0.68rem; margin-bottom:6px; }
.pd-size-btn, .qv-size-btn{ width:24px; height:24px; font-size:0.65rem; border-radius:5px; }
		/* Keep all 4 tabs on one scrollable line instead of wrapping */
	.pd-tab-nav-horizontal{
	display: flex !important;
	flex-direction: row !important;
	flex-wrap: nowrap !important;
	overflow-x: auto !important;
	gap: 8px !important;
	border-bottom: none !important;
	padding-bottom: 4px;
	scrollbar-width: none;
	-ms-overflow-style: none;
	-webkit-overflow-scrolling: touch;
	mask-image: linear-gradient(to right, #000 88%, transparent 100%);
	-webkit-mask-image: linear-gradient(to right, #000 88%, transparent 100%);
}
.pd-tabs-main{ min-width: 0; }
.pd-related{ padding-top: 28px; }
	.pd-tab-nav-horizontal::-webkit-scrollbar{ display:none; }
	.pd-tab-nav-horizontal .pd-tab-btn{
	flex-shrink:0; font-size:0.75rem; white-space:nowrap;
	border: 1px solid var(--line); border-radius: var(--radius-pill);
	padding: 7px 14px !important; margin-bottom:0 !important;
}
.pd-secure-card{ display:none !important; }

	/* Smaller text inside the tab panels (Description / Details table / Care / Shipping) */
	.pd-tab-panel p{ font-size:0.85rem; }
	.pd-spec-table th, .pd-spec-table td{ font-size:0.8rem; padding: 9px 0; }
	.pd-tabs-main{ padding: 20px 10px; }
	.pd-gallery{ grid-template-columns: 64px 1fr; gap:10px; }
	.pd-gallery-rail{ max-height: 315px; }
	.pd-assurances{ grid-template-columns: repeat(2,1fr); text-align:left; }
	.pd-assurances > div{ display:flex; align-items:center; gap:10px; }
	.pd-assurances svg{ margin:0; }
	.pd-assurances p{ margin:0; }
	.pd-carousel-prev{ left:0; }
	.pd-carousel-next{ right:0; }

	/* Keep quantity stepper + wishlist + Add to Cart on one row */
	.pd-add-row{ flex-wrap:nowrap; gap:8px; }
	.pd-add-row .quantity.pd-qty-stepper{ flex-shrink:0; }
	.pd-add-row .quantity.pd-qty-stepper input.qty{ width:32px; padding: 0.7em 0; }
	.pd-qty-btn{ width:30px; height:38px; font-size:1rem; }
	.pd-add-row .pd-wishlist-btn{ width:38px; height:38px; }
	.pd-add-row .single_add_to_cart_button{ min-width:0; flex:1; padding: 0.8em 0.6em; font-size:0.78rem; letter-spacing:0.04em; }

	/* Slightly smaller type for the product info column */
	.pd-title{ font-size: 1.6rem; }
	.pd-price{ font-size: 1.3rem; }
	.pd-price-tax{ font-size:0.72rem; }
	.pd-desc{ font-size:0.85rem; }
	.pd-badge-pill{ font-size:0.66rem; padding: 0.3em 0.9em; }
	.pd-info-list li{ font-size:0.8rem; }
}

/* =========================================================================
   Cart page (custom two-column layout)
   ========================================================================= */
.cart-hero{ text-align:center; padding: 20px 0 8px; }
.cart-empty-state{ text-align:center; padding: 60px var(--gutter) 100px; }
.cart-empty-state .pd-title{ margin-bottom: 20px; }
.cart-columns{ max-width: var(--container); margin:0 auto; padding: 20px var(--gutter) 20px; display:grid; grid-template-columns: 1.6fr 1fr; gap: 48px; align-items:start; }
.cart-item-list{ border-top:1px solid var(--line-soft); }
.cart-line-item{ display:flex; gap:20px; padding: 22px 0; border-bottom:1px solid var(--line-soft); }
.cli-thumb{ width:96px; height:110px; border-radius: var(--radius-sm); overflow:hidden; flex-shrink:0; background: var(--sand); }
.cli-thumb img{ width:100%; height:100%; object-fit:cover; }
.cli-info{ flex:1; min-width:0; }
.cli-name{ display:block; font-family: var(--font-body); font-style: italic; font-size:1rem; margin-top:2px; }
.cli-price{ margin: 4px 0 0; font-size:0.9rem; }
.cli-controls{ margin-top:14px; display:flex; align-items:center; gap:16px; }
.cli-controls .quantity input.qty{ width:56px; padding:0.5em; }
.cli-remove{ font-size:0.78rem; color: var(--olive-700); text-decoration: underline; }
.cli-remove:hover{ color: var(--pink); }
.cli-total{ white-space:nowrap; font-size:0.92rem; }
.cart-summary-card{ background: var(--sand); border-radius: var(--radius-lg); padding: 32px; position: sticky; top: 110px; }
.cart-summary-card h2{ font-size:1.4rem; }
.cart-summary-row{ display:flex; justify-content:space-between; font-size:0.9rem; padding: 8px 0; color: var(--olive-700); }
.cart-summary-total{ border-top:1px solid var(--line); margin-top:8px; padding-top:14px; font-size:1.05rem; color: var(--olive-900); }
.cart-continue-link{ display:block; text-align:center; margin-top:12px; font-size:0.78rem; letter-spacing:0.08em; text-transform:uppercase; color: var(--olive-700); }
@media (max-width: 1080px){ .cart-columns{ grid-template-columns:1fr; } .cart-summary-card{ position:static; } }

/* =========================================================================
   Checkout — reshape default WooCommerce markup into two columns
   ========================================================================= */
.checkout-page-wrap{ padding: clamp(40px,6vw,72px) 0 var(--section-space); }
.checkout-hero{ text-align:center; padding: 20px 0 8px; }
.woocommerce-checkout .col2-set{ display:grid; grid-template-columns: 1.4fr 1fr; gap: 48px; align-items:start; max-width: var(--container); margin:0 auto; }
.woocommerce-checkout #order_review_heading, .woocommerce-checkout #order_review{ background: var(--sand); border-radius: var(--radius-lg); padding: 32px; position: sticky; top: 110px; }
.woocommerce-checkout .place-order{ margin-top: 20px; }
.woocommerce-checkout .place-order .button{ width:100%; }
@media (max-width: 1080px){ .woocommerce-checkout .col2-set{ grid-template-columns:1fr; } .woocommerce-checkout #order_review{ position:static; } }



/* =========================================================================
   Account dashboard
   ========================================================================= */
.acct-hero{ margin-bottom: 28px; }
.acct-hero h1{ font-size: clamp(2rem,3vw,2.6rem); margin-top:6px; }
.acct-hero h1{
	font-size: clamp(2rem,3vw,2.6rem);
	margin-top:6px;
	overflow-wrap: anywhere;
	word-break: break-word;
}
.acct-stats{ display:grid; grid-template-columns: repeat(3,1fr); gap:16px; margin-bottom: 40px; }
.acct-stat{ background: var(--sand); border-radius: var(--radius-md); padding: 22px; }
.acct-stat-n{ font-family: var(--font-display); font-size:2.2rem; margin:0; }
.acct-stat-l{ font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color: var(--olive-700); margin: 4px 0 0; }
.acct-recent-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:16px; }
.acct-recent-head h2{ font-size:1.3rem; margin:0; }
.link-text{ font-size:0.75rem; letter-spacing:0.1em; text-transform:uppercase; text-decoration:underline; }
.acct-order-list{ border:1px solid var(--line); border-radius: var(--radius-md); overflow:hidden; }
.acct-order-row{ display:flex; align-items:center; justify-content:space-between; gap:16px; padding: 18px 20px; border-bottom:1px solid var(--line-soft); flex-wrap:wrap; }
.acct-order-row:last-child{ border-bottom:none; }
.acct-order-row:hover{ background: var(--pink-100); }
.acct-order-date{ font-size:0.78rem; color: var(--olive-700); margin:2px 0 0; }
.acct-order-date{ font-size:0.78rem; color: var(--olive-700); margin:2px 0 0; }
.acct-order-status{ font-size:0.68rem; letter-spacing:0.12em; text-transform:uppercase; padding: 6px 14px; border-radius: var(--radius-pill); background: var(--sand); }
.acct-order-status.status-completed, .acct-order-status.status-delivered{ background: var(--sand); }
.acct-order-status.status-processing{ background: var(--pink-100); color: var(--pink); }
.acct-empty{ color: var(--olive-700); }

/* =========================================================================
   Order tracking page
   ========================================================================= */
.ot-page{ max-width: 900px; margin:0 auto; padding: var(--section-space) var(--gutter); }
.ot-hero{ text-align:center; margin-bottom: 40px; }
.ot-form{ display:grid; grid-template-columns: 1fr 1fr auto; gap:12px; max-width: 700px; margin: 0 auto; }
.ot-form input{ padding: 0.95em 1.1em; border:1px solid var(--line); border-radius: var(--radius-sm); background: var(--white); font-size:0.9rem; }
.ot-form input:focus{ outline:none; border-color: var(--pink); }
.ot-result{ margin-top: 56px; background: var(--sand); border-radius: var(--radius-lg); padding: clamp(28px,4vw,48px); }
.ot-result-head{ display:flex; justify-content:space-between; flex-wrap:wrap; gap:16px; margin-bottom: 40px; }
.ot-label{ font-size:0.7rem; letter-spacing:0.14em; text-transform:uppercase; color: var(--olive-700); margin:0; }
.ot-order-num, .ot-eta{ font-family: var(--font-display); font-size:1.5rem; margin: 4px 0 0; }
.ot-result-eta{ text-align:right; }
.ot-steps{ display:grid; grid-template-columns: repeat(4,1fr); gap: 8px; position:relative; }
.ot-step{ text-align:center; }
.ot-step-icon{ width:48px; height:48px; margin:0 auto; border-radius:50%; display:grid; place-items:center; background: var(--white); border:1px solid var(--line); color: var(--olive-700); }
.ot-step-icon svg{ width:18px; height:18px; }
.ot-step.is-done .ot-step-icon{ background: var(--pink); border-color: var(--pink); color: var(--olive-900); }
.ot-step-label{ margin: 10px 0 0; font-family: var(--font-display); font-size:0.95rem; }
.ot-step-date{ font-size:0.68rem; letter-spacing:0.1em; text-transform:uppercase; color: var(--olive-700); }
.ot-not-found{ margin-top: 40px; text-align:center; color: var(--olive-700); }
@media (max-width: 640px){ .ot-form{ grid-template-columns:1fr; } .ot-steps{ grid-template-columns: repeat(2,1fr); row-gap:24px; } }

@media (max-width: 720px){
	.woocommerce-result-count{ display:none; }
}
/* =========================================================================
   Wishlist page
   ========================================================================= */
.wl-page{ max-width: var(--container); margin:0 auto; padding: 28px var(--gutter) var(--section-space); }

.wl-breadcrumb{ display:flex; align-items:center; gap:8px; font-size:0.82rem; color: var(--olive-700); margin-bottom: 22px; }
.wl-breadcrumb a{ color: var(--olive-700); }
.wl-breadcrumb a:hover{ color: var(--pink); }
.wl-breadcrumb span:last-child{ color: var(--olive-900); font-weight:500; }

.wl-top{ margin-bottom: 24px; }
.wl-top h1{ font-size: clamp(2rem, 3.2vw, 2.7rem); margin-bottom: 0.15em; }
.wl-top p{ margin:0; }

.wl-stats-bar{ display:none; }
.wl-stats-count{ display:flex; align-items:center; gap:10px; font-weight:500; color: var(--olive-900); }
.wl-stats-count svg{ width:18px; height:18px; color: var(--pink); }
.wl-sort{ display:flex; align-items:center; gap:8px; font-size:0.85rem; color: var(--olive-700); }
.wl-sort select{ border:1px solid var(--line); border-radius: var(--radius-sm); padding: 0.5em 0.8em; background: var(--white); font-size:0.85rem; color: var(--olive-900); }

.wl-features{ display:none; }
.wl-feature{
	display:flex; align-items:center; gap:14px; padding: 20px; background: var(--pink-100);
	border-radius: var(--radius-md);
}
.wl-feature svg{ width:24px; height:24px; color: var(--olive-900); flex-shrink:0; }
.wl-feature strong{ display:block; font-size:0.9rem; color: var(--olive-900); }
.wl-feature span{ display:block; font-size:0.78rem; color: var(--olive-700); margin-top:2px; line-height:1.4; }

.wl-grid{ display:grid; grid-template-columns: repeat(4, 1fr); gap: 22px; }
.wl-card{
	background: var(--white); border-radius: var(--radius-lg); padding: 14px 14px 18px;
	box-shadow: var(--shadow-sm); display:flex; flex-direction:column;
}
.wl-card-media{ position:relative; display:block; width:100%; aspect-ratio: 1/1; overflow:hidden; border-radius: var(--radius-md); background: var(--sand); margin-bottom: 14px; }
.wl-card-media .pc-img-main{ width:100% !important; height:100% !important; object-fit:cover !important; }
.wl-card-media .wishlist-trigger{ opacity:1; transform:none; background: var(--white); color: var(--pink); }
.wl-card-media .wishlist-trigger svg{ fill: var(--pink); }
.wl-card-info{ display:flex; flex-wrap:wrap; align-items:center; gap:0 8px; flex:1; }
.wl-card-info > a{ flex:0 0 100%; }
.wl-card-actions{ flex:0 0 100%; margin-top:6px; }
.wl-card-info .pc-title{ white-space:normal; }
.wl-card-info .pc-price{ margin-bottom:0; }
.wl-stock{ display:flex; align-items:center; gap:6px; font-size:0.76rem; font-weight:500; margin:0 0 8px 0; }
.wl-stock svg{ width:13px; height:13px; }
.wl-stock-in{ color: #3F8B4C; }
.wl-stock-low{ color: #C98A2C; }
.wl-stock-out{ color: #C25656; }
.wl-card-actions{ display:flex; align-items:center; gap:10px; margin-top:4px; }
.wl-card-add{ flex:1; margin-bottom:0; }
.wl-card-add a.pc-add{ width:100%; }
.wl-remove{ white-space:nowrap; }
.wl-remove{
	flex-shrink:0; padding: 0.78em 1.1em; border-radius: var(--radius-md,10px);
	border: 1.4px solid var(--olive); font-size:0.78rem; font-weight:500;
	letter-spacing:0.03em; color: var(--olive-900); background:transparent;
	transition: background .25s var(--ease), color .25s var(--ease);
}
.wl-remove:hover{ background: var(--olive); color: var(--cream); }

.wl-empty{ text-align:center; color: var(--olive-700); padding: 60px 20px; }
.wl-empty svg{ width:40px; height:40px; color: var(--pink); margin-bottom:14px; }
.wl-empty .btn{ margin-top: 18px; }

.wl-also-love{ margin-top: 72px; }
.wl-also-love h2{ font-size: clamp(1.6rem, 2.4vw, 2.1rem); margin-bottom: 1.6rem; }

@media (max-width: 1080px){
	.wl-grid{ grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 780px){
	.wl-features{ grid-template-columns: 1fr; }
	.wl-grid{ grid-template-columns: repeat(2, 1fr); gap: 14px; }
	.wl-stats-bar{ flex-direction:column; align-items:flex-start; }
}
@media (min-width: 481px){
  .wl-card-info{ justify-content: space-between; }
  .wl-stock{ margin-left: auto; margin-bottom: 0; }
}
@media (max-width: 480px){
	.wl-grid{ grid-template-columns: repeat(2, 1fr); gap: 10px; }
	.wl-card{ padding: 8px 8px 12px; border-radius: var(--radius-md); }
	.wl-card-media{ margin-bottom:8px; }
	.wl-card-actions{ gap: 6px; }
	.wl-card-add a.pc-add{ font-size: 0.62rem; padding: 0.65em 0.4em; letter-spacing: 0.02em; }
	.wl-remove{ font-size: 0.6rem; padding: 0.5em 0.5em; }
	.wl-top p{ font-size: 0.85rem; }
	.wl-stock{ flex:0 0 100%; }
}

/* ---- Tabs + Secure card side-by-side ---- */
.pd-tabs-flex{ display:grid; grid-template-columns: 1fr 300px; gap: 28px; max-width: var(--container); margin:0 auto; padding: 0 var(--gutter) clamp(16px, 2vw, 32px); align-items:start; }
.pd-tabs-main{ background: var(--white); border-radius: var(--radius-lg); padding: clamp(24px,3vw,36px); box-shadow: var(--shadow-sm); }
.pd-tab-nav-horizontal{ display:flex; gap: 32px; border-bottom: 1px solid var(--line); margin-bottom: 24px; flex-wrap:wrap; }
.pd-tab-nav-horizontal .pd-tab-btn{ padding: 0 0 14px; font-size: 0.92rem; color: var(--olive-700); border-bottom: 2px solid transparent; margin-bottom:-1px; }
.pd-tab-nav-horizontal .pd-tab-btn.is-active{ color: var(--olive-900); font-weight:500; border-color: var(--pink); }
.pd-secure-card{ background: var(--sand); border-radius: var(--radius-lg); padding: 28px; display:flex; flex-direction:column; gap:18px; height:fit-content; }
.pd-secure-item{ display:flex; align-items:center; gap:12px; font-size:0.85rem; font-weight:500; color: var(--olive-900); }
.pd-secure-item svg{ width:20px; height:20px; color: var(--pink); flex-shrink:0; }

/* ---- Why You'll Love It ---- */
.why-love-section{ max-width: var(--container); margin:0 auto; padding: 0 var(--gutter) var(--section-space); }
.why-love-grid{ display:grid; grid-template-columns: repeat(5,1fr); gap: 20px; }
.why-love-card{ border:1px solid var(--line); border-radius: var(--radius-md); padding: 28px 20px; text-align:center; transition: box-shadow .3s var(--ease), transform .3s var(--ease); }
.why-love-card:hover{ box-shadow: var(--shadow-sm); transform: translateY(-3px); }
.why-love-card svg{ width:26px; height:26px; color: var(--pink); margin-bottom:14px; }
body.single-product .why-love-card h4{ font-family: var(--font-body); font-weight:600; font-style: italic; font-size:0.8rem; color: var(--olive-900); margin-bottom:6px; }
.why-love-card p{ font-size:0.8rem; margin:0; }

/* ---- Crafted with Care ---- */
.craft-care-section{ max-width: var(--container); margin:0 auto; padding: 0 var(--gutter) var(--section-space); }
.craft-care-steps{ display:grid; grid-template-columns: repeat(4,1fr); gap: 24px; position:relative; text-align:center; }
.craft-care-steps::before{ content:''; position:absolute; top:55px; left:12%; right:12%; height:1px; background: repeating-linear-gradient(90deg, var(--line) 0 8px, transparent 8px 16px); z-index:0; }
.craft-step{ position:relative; z-index:1; }
.craft-step-img{ width:110px; height:110px; border-radius:50%; overflow:hidden; margin: 0 auto 16px; border: 3px solid var(--cream); box-shadow: var(--shadow-sm); background: var(--sand); }
.craft-step-img img{ width:100%; height:100%; object-fit:cover; }
body.single-product .craft-step h4{ font-family: var(--font-body); font-weight:600; font-style: italic; font-size:0.8rem; color: var(--olive-900); margin-bottom:4px; }
.craft-step p{ font-size:0.78rem; margin:0; max-width: 22ch; margin-inline:auto; }

/* ---- Perfect For ---- */
.perfect-for-section{ background: var(--sand); max-width:none; padding: clamp(32px, 4vw, 56px) var(--gutter); }
.perfect-for-grid{ max-width: var(--container); margin:0 auto; display:flex; flex-wrap:wrap; justify-content:center; gap: 20px 48px; text-align:center; }
.perfect-for-item{ flex: 0 1 140px; }
.perfect-for-item svg{ width:34px; height:34px; color: var(--pink); margin-bottom:12px; }
.perfect-for-item span{ display:block; font-size:0.82rem; font-weight:500; color: var(--olive-900); }

/* ---- Reviews (combined summary + grid layout) ---- */
.pd-reviews-head-rating{ display:inline-flex; align-items:center; gap:8px; font-size:0.85rem; color: var(--olive-700); margin-top:6px; }
.pd-reviews-layout{ display:grid; grid-template-columns: 240px 1fr; gap: 32px; align-items:start; }
.pd-review-summary-col{ background: var(--sand); border-radius: var(--radius-lg); padding: 28px; }
.pd-review-average-big{ text-align:center; border-bottom: 1px solid var(--line); padding-bottom:18px; margin-bottom:18px; }
.pd-review-average-big .pd-review-average-num{ display:block; font-family: var(--font-body); font-weight:700; font-size: 2.6rem; color: var(--olive-900); }
.pd-review-average-big p{ margin: 6px 0 0; font-size:0.78rem; color: var(--olive-700); }
.pd-rating-bars{ display:flex; flex-direction:column; gap:8px; }
.pd-reviews-grid{ display:grid; grid-template-columns: repeat(3,1fr); gap: 20px; align-content:start; }
.pd-review-card{ background: var(--white); border-radius: var(--radius-md); padding: 20px; box-shadow: var(--shadow-sm); }
.pd-review-card-head{ display:flex; align-items:center; gap:10px; margin-bottom:8px; }
.pd-review-card-head img{ border-radius:50%; width:36px; height:36px; }
.pd-review-card-head strong{ display:block; font-size:0.88rem; }
.pd-review-verified{ display:inline-flex; align-items:center; gap:4px; font-size:0.7rem; color: var(--olive-700); opacity:0.7; }
.pd-review-verified svg{ width:11px; height:11px; color: var(--pink); }
.pd-review-date{ margin-left:auto; font-size:0.72rem; color: var(--olive-700); opacity:0.6; }
.pd-review-stars{ margin-bottom:6px; }
.pd-review-card p{ font-size:0.85rem; margin:0; }
.pd-no-reviews{ color: var(--olive-700); text-align: center; }

@media (min-width: 1081px){
	.pd-no-reviews{ grid-column: 1 / -1; margin-top: 130px; }
}
@media (max-width: 720px){
	.pd-review-summary-col{ display: none; }
}
@media (max-width: 720px){
	.pd-write-review{ margin-left: auto; }
	.pd-no-reviews{ font-size: 0.85rem; }
}
@media (max-width: 720px){
	.pd-write-review{ margin-left: auto; }
	.pd-no-reviews{ font-size: 0.85rem; }
	.pd-reviews-head{ gap: 8px; }
}
.pd-reviews-more-mobile{ display:none; }

@media (max-width: 720px){
	.pd-reviews-more-desktop{ display:none; }
	.pd-reviews-more-mobile{ display:flex; }
	.pd-reviews-grid:not(.is-expanded){ max-height:none; overflow:visible; }
	.pd-review-card.pd-review-hidden-mobile{ display:none; }
	.pd-reviews-grid.is-expanded .pd-review-card.pd-review-hidden-mobile{ display:block; }
}  

/* ---- "Show more reviews" blur + overlay ---- */
.pd-reviews-grid{ position: relative; }
.pd-reviews-grid:not(.is-expanded){ max-height: 760px; overflow: hidden; }
.pd-review-card.pd-review-hidden{ filter: blur(6px); pointer-events: none; user-select: none; }
.pd-reviews-more-overlay{
	position: absolute; left:0; right:0; bottom:0; height: 110px;
	background: linear-gradient( to bottom, rgba(255,253,235,0), var(--cream) 68% );
	display:flex; align-items:flex-end; justify-content:center; padding-bottom: 12px;
	pointer-events: none;
}
.pd-reviews-more-overlay button{
	pointer-events: auto; background: var(--olive); color: var(--cream); border:none;
	padding: 0.8em 1.8em; border-radius: var(--radius-pill); font-size:0.9rem; font-weight:500;
	cursor:pointer; box-shadow: var(--shadow-sm); transition: background .3s var(--ease);
}
.pd-reviews-more-overlay button:hover{ background: var(--olive-700); }
.pd-reviews-grid.is-expanded{ max-height:none; overflow:visible; }
.pd-reviews-grid.is-expanded .pd-review-card.pd-review-hidden{ filter:none; pointer-events:auto; user-select:auto; }
.pd-reviews-grid.is-expanded .pd-reviews-more-overlay{ display:none; }

/* ---- Review media thumbnails on approved review cards ---- */
.pd-review-media{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.pd-review-media-item{ width:56px; height:56px; border-radius: var(--radius-sm); overflow:hidden; display:block; background: var(--sand); }
.pd-review-media-item img, .pd-review-media-item video{ width:100%; height:100%; object-fit:cover; display:block; }

/* ---- "Write a review" modal ---- */
.pd-review-modal{
	position: fixed; inset:0; z-index: 900; display:flex; align-items:center; justify-content:center;
	padding: 24px; opacity:0; visibility:hidden; transition: opacity .25s var(--ease), visibility 0s linear .25s;
}
.pd-review-modal.is-open{ opacity:1; visibility:visible; transition: opacity .25s var(--ease); }
.pdrm-panel{
	position:relative; background: var(--white); border-radius: var(--radius-lg); width:100%; max-width: 560px;
	max-height: 94vh; overflow-y:auto; padding: clamp(16px,3vw,26px); box-shadow: var(--shadow-lg);
	transform: translateY(14px); transition: transform .3s var(--ease);
	scrollbar-width: none;
	-ms-overflow-style: none;
}
.pdrm-panel::-webkit-scrollbar{ display: none; }
.pd-review-modal.is-open .pdrm-panel{ transform: translateY(0); }
.pdrm-close{ position:absolute; top:16px; right:16px; width:36px; height:36px; border-radius:50%; background: var(--sand); display:flex; align-items:center; justify-content:center; color: var(--olive-900); }
.pdrm-close:hover{ background: var(--pink-100); color: var(--pink); }
.pdrm-close svg{ width:16px; height:16px; }
.pdrm-title{ font-family: var(--font-body); font-style:italic; font-weight:600; font-size:1.4rem; color: var(--olive-900); margin-bottom: 0.7rem; }
.pdrm-field{ margin-bottom: 0.65rem; }
.pdrm-field label{ display:block; font-size:0.85rem; font-weight:500; margin-bottom:8px; color: var(--olive-900); }
.pdrm-req{ color: var(--pink); }
.pdrm-optional{ font-weight:400; color: var(--olive-700); font-size:0.8em; }
.pdrm-field-row{ display:grid; grid-template-columns: 1fr 1fr; gap:14px; }
.pdrm-field textarea,
.pdrm-field input[type="text"],
.pdrm-field input[type="email"]{
	width:100%; padding: 0.85em 1em; border:1px solid var(--line); border-radius: var(--radius-sm);
	background: var(--white); font-size:0.92rem; font-family: var(--font-body);
}
.pdrm-field textarea{ resize: vertical; }
.pdrm-field textarea:focus,
.pdrm-field input:focus{ outline:none; border-color: var(--pink); }

.pdrm-star-picker{ display:inline-flex; gap:6px; }
.pdrm-star{ width:30px; height:30px; color: var(--line); transition: color .15s var(--ease), transform .15s var(--ease); }
.pdrm-star svg{ width:100%; height:100%; }
.pdrm-star:hover, .pdrm-star:hover ~ .pdrm-star{ color: var(--line); }
.pdrm-star-picker:hover .pdrm-star:hover, .pdrm-star-picker:hover .pdrm-star:hover ~ .pdrm-star{ transform: scale(1); }
.pdrm-star.is-selected{ color: var(--pink); }

.pdrm-upload-drop{
	border: 1.6px dashed var(--line); border-radius: var(--radius-md); padding: 12px; text-align:center;
	cursor:pointer; transition: border-color .2s var(--ease), background .2s var(--ease); color: var(--olive-700);
}
.pdrm-upload-drop:hover, .pdrm-upload-drop.is-dragover{ border-color: var(--pink); background: var(--pink-100); }
.pdrm-upload-drop svg{ width:26px; height:26px; color: var(--pink); margin: 0 auto 8px; }
.pdrm-upload-drop p{ margin:0; font-size:0.88rem; }
.pdrm-upload-drop p span{ text-decoration:underline; color: var(--olive-900); font-weight:500; }
.pdrm-upload-hint{ display:block; font-size:0.74rem; margin-top:6px; opacity:0.75; }
.pdrm-preview-grid{ display:flex; flex-wrap:wrap; gap:10px; margin-top: 12px; }
.pdrm-preview-item{ position:relative; width:68px; height:68px; border-radius: var(--radius-sm); overflow:hidden; background: var(--sand); }
.pdrm-preview-item img, .pdrm-preview-item video{ width:100%; height:100%; object-fit:cover; display:block; }
.pdrm-preview-remove{
	position:absolute; top:2px; right:2px; width:18px; height:18px; border-radius:50%; background: rgba(0,0,0,0.6);
	color:#fff; font-size:12px; line-height:1; display:flex; align-items:center; justify-content:center;
}

.pdrm-msg{ font-size:0.85rem; margin: 0 0 0.2rem; min-height: 0.8em; }
.pdrm-msg.is-error{ color: var(--pink); }
.pdrm-msg.is-success{ color: var(--olive); font-weight:500; }
.pdrm-submit{
	background: var(--olive); color: var(--cream); border:none; border-radius: var(--radius-pill);
	padding: 0.85em 2em; font-size:0.9rem; font-weight:500; cursor:pointer; transition: background .3s var(--ease);
}
.pdrm-submit:hover{ background: var(--olive-700); }
.pdrm-submit:disabled{ opacity:0.6; cursor:default; }

@media (max-width: 560px){
	.pd-review-modal{ padding: 12px; align-items:flex-end; }
	.pdrm-panel{
		max-width: 100%;
		max-height: 92vh;
		padding: 18px 16px 22px;
		border-radius: var(--radius-lg) var(--radius-lg) 0 0;
	}
	.pdrm-title{ font-size: 1.15rem; margin-bottom: 0.85rem; }
	.pdrm-star{ width: 26px; height: 26px; }
	.pdrm-close{ top: 12px; right: 12px; width: 32px; height: 32px; }
	.pdrm-field-row{ grid-template-columns: 1fr; }
}

/* ---- Handmade Promise / Follow Us band ---- */
.brand-promise-section{ max-width: var(--container); margin: 0 auto var(--section-space); padding: 0 var(--gutter); display:grid; grid-template-columns: 1fr 1.4fr 1fr 1fr; gap:0; border-radius: var(--radius-lg); overflow:hidden; background: var(--sand); align-items:stretch; }
.brand-promise-media{ background-size:cover; background-position:center; min-height: 200px; }
.brand-promise-copy, .brand-promise-follow{ padding: 24px 22px; }
body.single-product .brand-promise-copy h3, body.single-product .brand-promise-follow h3{ font-family: var(--font-body); font-style: italic; font-weight:600; font-size:1.1rem; margin-bottom:0.4em; }
.brand-promise-copy p{ font-size:0.85rem; }
.brand-promise-follow p{ font-size:0.8rem; }

@media (max-width: 1080px){
	.pd-tabs-flex{ grid-template-columns:1fr; }
	.why-love-grid{ grid-template-columns: repeat(3,1fr); }
	.craft-care-steps{ grid-template-columns: repeat(4,1fr); gap: 10px; }
	.craft-care-steps::before{ display:none; }
	.perfect-for-grid{ grid-template-columns: repeat(3,1fr); }
	.pd-reviews-layout{ grid-template-columns:1fr; }
	.pd-reviews-grid{ grid-template-columns: repeat(2,1fr); }
	.brand-promise-section{ grid-template-columns:1fr 1fr; }
	.brand-promise-media{ display:none; }
}
@media (max-width: 640px){
	.why-love-grid{ grid-template-columns: repeat(2,1fr); }
.why-love-card:nth-child(5){ display:none; }
.perfect-for-grid{ flex-wrap:nowrap; gap:6px; }
.perfect-for-item{ flex:1 1 0; min-width:0; }
.perfect-for-item svg{ width:22px; height:22px; margin-bottom:6px; }
.perfect-for-item span{ font-size:0.62rem; }
.perfect-for-item:nth-child(5){ display:none; }
.announcement-bar p{ align-items:flex-start; }
.announcement-bar svg{ margin-top:2px; }
	.craft-care-steps{ grid-template-columns: repeat(4,1fr); gap: 6px; }
	.pd-reviews-grid{ grid-template-columns:1fr; }
	.brand-promise-section{ display:none; }
	.why-love-card{ padding:18px 14px; }
.why-love-card svg{ width:20px; height:20px; margin-bottom:8px; }
body.single-product .why-love-card h4{ font-size:0.72rem; margin-bottom:4px; }
.why-love-card p{ font-size:0.68rem; line-height:1.4; }

}
.pd-related .section-head h2{ width:100%; text-align:center; }
@media (max-width: 640px){
	.craft-step-img{ width:56px; height:56px; margin-bottom:8px; }
	.craft-care-steps::before{ display:block; top:28px; left:12%; right:12%; }
	body.single-product .craft-step h4{ font-size:0.62rem; margin-bottom:2px; }
	.craft-step p{ display:none; }
}
/* =========================================================================
   Checkout — WooCommerce Checkout BLOCK (this site uses the block checkout,
   so it ships with generic wc-block-* markup instead of the classic
   template above; restyle it to match the rest of the site).
   ========================================================================= */
.hh-checkout-hero{ text-align:center; max-width: var(--container); margin: 8px auto 28px; padding: 0 var(--gutter); }
.hh-checkout-hero .eyebrow{ display:inline-flex; align-items:center; gap:6px; }
.hh-checkout-hero h1{ font-size: clamp(2rem,3.2vw,2.6rem); margin: 0.1em 0 0; }
.hh-checkout-hero p{ margin: 6px 0 0; font-size:0.82rem; color: var(--olive-700); }
.hh-checkout-hero p a{ color: var(--olive-900); text-decoration:underline; }

.hh-checkout-trust{
	display:grid; grid-template-columns: repeat(4,1fr); gap: 14px;
	max-width: var(--container); margin: 0 auto 32px; padding: 18px var(--gutter);
	background: var(--sand); border-radius: var(--radius-lg);
}
.hh-checkout-trust .trust-bar-item{ justify-content:flex-start; }

.wc-block-checkout, .wp-block-woocommerce-checkout{ max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter) var(--section-space); }

/* Two-column layout: form on the left, order summary on the right.
   minmax(0, ...) on BOTH tracks stops either column from being starved
   below its fair share — this is what was breaking the sidebar before. */
.wc-block-checkout{
	display:grid !important;
	grid-template-columns: minmax(0, 1.4fr) minmax(300px, 1fr) !important;
	gap: 32px; align-items:stretch;
}
.wc-block-checkout__form{ display:contents; }
.wc-block-checkout__main{ min-width:0; }
.wc-block-checkout__sidebar{ min-width:0; }
@media (min-width: 1081px){
	.wc-block-checkout__sidebar{ position: sticky; top: 110px; }
}

/* Step cards */
.wc-block-checkout__main{ counter-reset: hh-step; }
.wc-block-components-checkout-step{
	background: var(--white) !important; border: 1px solid var(--line) !important; border-radius: var(--radius-lg) !important;
	padding: 26px 28px !important; margin-bottom: 20px !important;
}
.wc-block-components-checkout-step__title{
	font-family: var(--font-body); font-size: 1.35rem; font-weight:500; color: var(--olive-900);
	display:flex; align-items:center; gap:12px; margin-bottom: 4px;
}
.wc-block-components-checkout-step__title::before{
	content: counter(hh-step); counter-increment: hh-step;
	display:flex; align-items:center; justify-content:center; flex-shrink:0;
	width: 28px; height:28px; border-radius:50%; background: var(--pink); color: var(--olive-900);
	font-family: var(--font-body); font-size: 0.82rem; font-weight:600;
}
.wc-block-components-checkout-step__description{ font-size: 0.85rem; color: var(--olive-700); margin: 0 0 1.2rem; }
.wc-block-components-checkout-step__content{ padding-top: 6px; }

/* Text inputs / selects */
.wc-block-components-text-input input,
.wc-block-components-textarea,
.wc-block-checkout .wc-block-components-textarea textarea,
.wc-block-components-select .wc-block-components-select__select,
.wc-blocks-components-select .wc-blocks-components-select__select{
	width:100%; height: 44px !important; padding: 0 1em !important; border:1px solid var(--line) !important; border-radius: var(--radius-sm) !important;
	background: var(--white) !important; font-family: var(--font-body); font-size:0.92rem; color: var(--olive-900);
	box-sizing: border-box;
}
.wc-block-components-select__select-icon,
.wc-blocks-components-select__select-icon{
	width: 20px !important;
	height: 20px !important;
	top: 55% !important;
}
.wc-block-components-text-input input:focus,
.wc-blocks-components-select .wc-blocks-components-select__select:focus{ outline:none; border-color: var(--pink) !important; }
.wc-block-components-text-input,
.wc-block-components-select{
	display: flex !important;
	flex-direction: column !important;
}
.wc-block-components-text-input label,
.wc-block-components-select label,
.wc-blocks-components-select label,
.wc-blocks-components-select__label{
	order: -1 !important;
	position: static !important;
	transform: none !important;
	font-size: 0.78rem !important;
	font-weight: 500;
	color: var(--olive-900);
	margin-bottom: 6px !important;
	display: block;
}
.wc-block-components-checkbox label{ font-size: 0.85rem; }
.wc-block-components-address-form{
	row-gap: 12px !important;
	align-items: start !important;
}
.wc-block-components-address-form > *{ margin: 0 !important; }

/* State field (India, etc.) renders as a searchable combobox, not a
   plain <select> like Country — it has different internal spacing that
   pushes it lower than City's plain text input in the same row. */
@media (min-width: 1081px){
  .wc-block-components-address-form__state .wc-blocks-components-select{
    margin-top: 4px !important;
  }
}
.wc-block-components-address-form .wc-block-components-combobox-control label{
	order: -1 !important;
	position: static !important;
	transform: none !important;
	font-size: 0.78rem !important;
	font-weight: 500;
	color: var(--olive-900);
	margin-bottom: 6px !important;
	display: block;
}
.wc-block-components-address-form .wc-block-components-combobox-control__input{
	height: 44px !important;
	padding: 0 1em !important;
	border: 1px solid var(--line) !important;
	border-radius: var(--radius-sm) !important;
	background: var(--white) !important;
	font-family: var(--font-body);
	font-size: 0.92rem;
	box-sizing: border-box;
	margin: 0 !important;
}
/* Radio option cards: shipping rates + payment methods */
.wc-block-components-radio-control__option,
.wc-block-components-radio-control-accordion-option{
	border: none !important; background: transparent !important;
	padding: 16px 18px !important; margin-bottom: 4px;
	display: flex !important; align-items: center; gap: 12px;
	position: relative;
}
.wc-block-components-radio-control,
.wc-block-components-radio-control-accordion{
	border: none !important;
	background: transparent !important;
}
.wc-block-components-checkbox__input{
	width: 16px !important;
	height: 16px !important;
	accent-color: var(--pink);
	border-radius: 4px;
	flex-shrink: 0;
}
@media (max-width: 767px){
	.page-template-page-wishlist-php .site-newsletter{
		display: none !important;
	}
}

.wc-block-components-radio-control__label-group{
	flex: 1 1 auto; min-width: 0;
	display: flex; align-items: center; justify-content: space-between; gap: 8px;
	margin-left: 25px;
}
.wc-block-components-totals-wrapper hr,
.wc-block-checkout-order-summary hr{ display: none !important; border: none !important; }
.wc-block-components-totals-item{ border-bottom: none !important; }
.wc-block-components-totals-wrapper{ border: none !important; box-shadow: none !important; }
.wc-block-components-radio-control__option--checked,
.wc-block-components-radio-control__option[aria-checked="true"],
.wc-block-components-radio-control-accordion-option--checked{
	background: transparent !important;
}
.wc-block-components-radio-control__input{ accent-color: var(--pink); }
.wc-block-components-radio-control__label{ font-size: 0.92rem; color: var(--olive-900); }
.wc-block-components-radio-control__secondary-label{ font-weight:500; }
.wc-block-components-payment-method-label{ display:flex; align-items:center; gap:10px; font-size:0.92rem; }
.wc-block-components-payment-method-icons{ margin-left:auto; }

/* Order summary sidebar card */
.wc-block-components-checkout-order-summary,
.wc-block-checkout-order-summary{
	background: var(--sand) !important; border-radius: var(--radius-lg) !important; padding: 28px !important;
	width: 100%; box-sizing: border-box;
}
.wc-block-components-order-summary__button-text,
.wc-block-checkout-order-summary__title-text{ font-family: var(--font-body); font-weight:600; font-size:1.3rem; }

/* Individual product rows — explicit flex layout so the name/price
   can never collapse into a starved, letter-wrapping column again. */
.wc-block-components-order-summary-item{
	display:flex !important; align-items:flex-start; gap: 12px; width:100%;
	padding: 12px 0; border-bottom: 1px solid var(--line);
}
.wc-block-components-order-summary-item:last-of-type{ border-bottom:none; }
.wc-block-components-order-summary-item__image{ flex: 0 0 auto; width: 56px; }
.wc-block-components-order-summary-item__image img{ border-radius: 10px; width:56px; height:56px; object-fit:cover; }
.wc-block-components-order-summary-item__description{ flex: 1 1 auto; min-width: 0; }
.wc-block-components-order-summary-item__total-price{
	flex: 0 0 auto; white-space: nowrap; margin-left: auto; font-size:0.9rem; color: var(--olive-900);
}
.wc-block-components-order-summary-item__quantity{ background: var(--pink); color: var(--olive-900); }
.wc-block-components-product-price__regular{ font-size: 0.85em; opacity: 0.45; font-weight: 300; }
.wc-block-components-product-price__value{ color: var(--pink); }

.wc-block-components-totals-item{ display:flex; justify-content:space-between; font-size: 0.88rem; color: var(--olive-700); padding: 10px 0; }
.wc-block-components-totals-item__label{ color: var(--olive-700); }
.wc-block-components-totals-item__value{ color: var(--olive-900); white-space:nowrap; }
.wc-block-components-totals-footer-item{ border-top: 1px solid var(--line); margin-top: 6px; padding-top: 16px; }
.wc-block-components-totals-footer-item .wc-block-components-totals-item__label,
.wc-block-components-totals-footer-item .wc-block-components-totals-item__value{
	font-family: var(--font-body); font-weight:600; font-size: 1.3rem; color: var(--olive-900);
}
.wc-block-components-totals-coupon .wc-block-components-panel__button{ font-size: 0.85rem; color: var(--olive-900); }
.wc-block-components-radio-control__secondary-label,
.wc-block-components-radio-control__description{
	display: none !important;
}
.wc-block-components-totals-coupon__content{
	display: flex !important; gap: 10px; align-items: flex-end; margin-top: 12px;
}
/* ---- Fix coupon input + apply button alignment ---- */
.wc-block-components-totals-coupon__content {
	display: flex !important;
	gap: 10px !important;
	align-items: center !important; /* Changed from flex-end to center */
	margin-top: 12px;
	flex-wrap: wrap !important;
}

.wc-block-components-totals-coupon__input {
	flex: 1 1 auto !important;
	min-width: 150px !important;
}

.wc-block-components-totals-coupon__button {
	background: var(--olive) !important;
	color: var(--cream) !important;
	border-radius: var(--radius-pill) !important;
	border: none !important;
	height: 44px !important;
	padding: 0 1.4em !important;
	font-size: 0.85rem !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	white-space: nowrap !important;
	flex: 0 0 auto !important;
	margin-top: 0 !important; /* Remove any top margin that might push it up */
	align-self: flex-end !important; /* Align to bottom of container */
}

/* Make sure the input and button are in a row */
.wc-block-components-totals-coupon__content {
	display: flex !important;
	flex-direction: row !important;
	align-items: flex-end !important; /* Align items to bottom */
	gap: 10px !important;
}
.wc-block-components-select,
.wc-blocks-components-select{
	position: relative !important;
}
.wc-block-components-select svg,
.wc-blocks-components-select svg,
.wc-block-components-select__select-icon,
.wc-blocks-components-select__select-icon{
	opacity: 0 !important;
}
.wc-block-components-select::after,
.wc-blocks-components-select::after{
	content: '';
	position: absolute;
	right: 18px;
	bottom: 18px;
	width: 7px; height: 7px;
	border-right: 2px solid var(--olive-900);
	border-bottom: 2px solid var(--olive-900);
	transform: rotate(45deg);
	pointer-events: none;
}
.wc-block-components-totals-coupon__input{ flex: 1 1 auto; min-width: 0; }
.wc-block-components-totals-coupon__button{
	background: var(--olive) !important; color: var(--cream) !important;
	border-radius: var(--radius-pill) !important; border: none !important;
	height: 44px !important; padding: 0 1.4em !important; font-size: 0.85rem !important;
	display: flex !important; align-items: center; justify-content: center;
	white-space: nowrap; flex: 0 0 auto;
}
.wc-block-components-totals-coupon__button:hover{ background: var(--pink) !important; color: var(--olive-900) !important; }
/* Place order button */
.wc-block-components-checkout-place-order-button,
.wc-block-checkout__actions .wc-block-components-button{
	width:100% !important; display:flex !important; align-items:center; justify-content:center;
	padding: 1em 1.6em !important; border-radius: var(--radius-pill) !important;
	background: var(--olive-900) !important; color: var(--cream) !important;
	font-size: 0.85rem !important; letter-spacing: 0.08em; text-transform: uppercase;
	border:none !important;
}
.wc-block-components-checkout-place-order-button:hover{ background: var(--pink) !important; color: var(--olive-900) !important; }
.wc-block-checkout__actions_row{ margin-top: 8px; }

/* Notices */
.wc-block-components-notice-banner{
	border-radius: var(--radius-sm); border-left: 3px solid var(--pink) !important; background: var(--pink-100) !important;
	font-size: 0.85rem; padding: 14px 18px !important;
}

/* Extra sidebar-style boxes (added via main.js) */
.hh-checkout-extra{
	width: 100%;
	margin-top: 20px;
}
.hh-checkout-perks, .hh-checkout-help{
	background: var(--pink-100); border-radius: var(--radius-lg); padding: 22px 24px; margin-top: 20px;
}
.hh-checkout-perks h3, .hh-checkout-help h3{ font-family: var(--font-body); font-weight:600; font-size: 1rem; margin-bottom: 12px; }
.hh-checkout-perks ul{ display:flex; flex-direction:column; gap:8px; }
.hh-checkout-perks li{ display:flex; align-items:center; gap:8px; font-size:0.85rem; color: var(--olive-900); }
.hh-checkout-perks li svg{ width:16px; height:16px; color: var(--pink); flex-shrink:0; }
.hh-checkout-help p{ font-size:0.85rem; margin: 4px 0; }
.hh-checkout-help a{ text-decoration:underline; }

@media (max-width: 1080px){
	.wc-block-checkout__form, .wc-block-checkout{ grid-template-columns: 1fr !important; }
	.wc-block-checkout__sidebar{ position:static; }
	.hh-checkout-trust{ grid-template-columns: repeat(2,1fr); }
	.hh-checkout-extra{ grid-template-columns: 1fr; }
	.hh-checkout-extra > div:first-child{ grid-column: 1; }
}
@media (max-width: 600px){
	.wc-block-components-checkout-step{ padding: 20px 18px !important; }
}
/* On phones the compact "Order summary" accordion already shown at the
   top of the page covers this info, so the full detailed summary card
   (line items, discount code, "Edit Cart" link) and the extra
   tagline/perks/help boxes further down are redundant — hide them here.
   iPad/tablet keeps all of this since it has the room for it. */
@media (max-width: 767px){
	.wc-block-components-checkout-order-summary,
	.wc-block-checkout-order-summary,
	.wc-block-checkout__actions .wp-block-woocommerce-checkout-order-summary-block{
		display: none !important;
	}
	.hh-checkout-trust{ display: none !important; }
	.hh-checkout-extra,
	.hh-edit-cart-link{
		display: none !important;
	}
	@media (max-width: 767px){
	.wc-block-components-checkout-order-summary,
	.wc-block-checkout-order-summary,
	.wc-block-checkout__actions .wp-block-woocommerce-checkout-order-summary-block{
		display: none !important;
	}
	.hh-checkout-trust{ display: none !important; }
	.hh-checkout-extra,
	.hh-edit-cart-link{
		display: none !important;
	}
	

	.wc-block-components-radio-control__label-group{
		flex-direction: column !important;
		align-items: flex-start !important;
		margin-left: 25px !important;
		gap: 2px !important;
	}
	.wc-block-components-radio-control__secondary-label{
		font-size: 0.78rem !important;
		color: var(--olive-700);
	}
	.wc-block-components-checkout-step__title{
		font-size: 1.1rem !important;
	}
	body.woocommerce-checkout .site-newsletter{
		display: none !important;
	}
}
}
.wishlist-count-btn.is-active{ background: var(--pink-100); }
.wishlist-count-btn.is-active svg{ fill: var(--pink); stroke: var(--pink); }
.cart-toggle.is-active{ background: var(--pink-100); }
.cart-toggle.is-active svg{ fill: var(--pink); stroke: var(--pink); }
/* Catch-all: whatever element is directly wrapping the checkout block,
   force it to behave like a normal full-width block instead of
   shrinking to fit its content (this is what's squeezing the layout). */
*:has(> .wc-block-checkout),
*:has(> .wp-block-woocommerce-checkout){
	display: block !important;
	width: 100% !important;
}
@media (min-width: 1081px){
	.wc-block-checkout__sidebar{ min-width: 300px !important; }
}
@media (max-width: 1080px){
	.wc-block-checkout__sidebar{ min-width: 0 !important; }
}
.wc-block-components-address-card{
	display:flex;
	align-items:flex-start;
	justify-content:space-between;
	gap:12px;
}
.wc-block-components-address-card__address{
	flex:1 1 auto;
	min-width:0;
}
.wc-block-components-address-card__edit{
	flex:0 0 auto;
	white-space:nowrap;
	font-size:0.82rem;
	text-decoration:underline;
	color: var(--olive-700);
	transition: color .25s var(--ease);
}
.wc-block-components-address-card__edit:hover{
	color: var(--pink);
}
.wc-block-components-checkout-order-summary,
.wc-block-checkout-order-summary{
	background: var(--sand) !important;
	border-radius: 18px !important;
	padding: 28px !important;
	width: 100% !important;
	box-sizing: border-box !important;
}

.wc-block-components-order-summary-item{
	display: flex !important;
	align-items: flex-start !important;
	gap: 12px !important;
	width: 100% !important;
}
.wc-block-components-order-summary-item__image{
	flex: 0 0 56px !important;
	width: 56px !important;
	height: 56px !important;
}
.wc-block-components-order-summary-item__description{
	flex: 1 1 auto !important;
	min-width: 0 !important;
	width: auto !important;
}
.wc-block-components-order-summary-item__total-price{
	flex: 0 0 auto !important;
	white-space: nowrap !important;
	margin-left: auto !important;
}
.wc-block-checkout__main,
.wc-block-checkout__sidebar{
	width: 100% !important;
}
.wc-block-components-checkout-step{
	width: 100% !important;
	box-sizing: border-box !important;
}
.wc-block-components-checkout-order-summary,
.wc-block-checkout-order-summary{
	width: 100% !important;
	box-sizing: border-box !important;
}
/* Reduce the gap between the order summary card and the perks/tagline
   section below it */
.wc-block-checkout, .wp-block-woocommerce-checkout{
	padding-bottom: 24px !important;
}
.hh-checkout-tagline{
	margin-top: 0 !important;
}
/* ---- Cart page: free-shipping bar, save badge, cross-sells, trust row -- */
.cart-shipping-bar{ max-width: var(--container); margin: 0 auto; padding: 0 var(--gutter); }
.cart-shipping-bar p{ display:flex; align-items:center; gap:8px; font-size:0.88rem; margin-bottom:10px; }
.cart-shipping-bar p svg{ width:16px; height:16px; color: var(--pink); }
.cart-shipping-track{ height:8px; border-radius: var(--radius-pill); background: var(--sand); overflow:hidden; }
.cart-shipping-fill{ height:100%; background: var(--olive); border-radius: var(--radius-pill); transition: width .5s var(--ease); }

.cli-save-badge{ display:inline-block; margin-left:8px; padding: 2px 10px; border-radius: var(--radius-pill); background: var(--sand); font-size:0.72rem; color: var(--olive-700); }
.cli-desc{ font-size:0.82rem; color: var(--olive-700); opacity:0.75; margin: 4px 0 0; max-width: 46ch; }
.cli-remove-btn{ width:34px; height:34px; border-radius:50%; display:grid; place-items:center; color: var(--olive-700); transition: background .25s var(--ease), color .25s var(--ease); }
.cli-remove-btn:hover{ background: var(--pink-100); color: var(--pink); }
.cli-remove-btn svg{ width:16px; height:16px; }

.cli-controls .quantity.pd-qty-stepper{ display:flex; align-items:center; border:1px solid var(--line); border-radius: var(--radius-pill); overflow:hidden; background: var(--white); width:fit-content; }
.cli-controls .quantity.pd-qty-stepper input.qty{ width:44px; border:none; padding: 0.6em 0; text-align:center; background:transparent; -moz-appearance: textfield; }
.cli-controls .quantity.pd-qty-stepper input.qty::-webkit-inner-spin-button, .cli-controls .quantity.pd-qty-stepper input.qty::-webkit-outer-spin-button{ -webkit-appearance:none; margin:0; }

.cart-trust-row{ display:flex; justify-content:space-between; gap:8px; margin-top:24px; padding-top:20px; border-top:1px solid var(--line); }
.cart-trust-item{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:6px; flex:1; }
.cart-trust-item svg{ width:20px; height:20px; color: var(--olive); }
.cart-trust-item span{ font-size:0.68rem; line-height:1.3; color: var(--olive-700); }

.cart-cross-sell{ max-width: var(--container); margin: 12px auto 0; padding: 0 var(--gutter) var(--section-space); }
.cart-cross-sell-grid{ display:grid; grid-template-columns: repeat(3, 1fr); gap:20px; }
.cs-card{ display:flex; gap:14px; background: var(--sand); border-radius: var(--radius-md); padding:14px; }
.cs-thumb{ width:68px; height:68px; border-radius: var(--radius-sm); overflow:hidden; flex-shrink:0; }
.cs-thumb img{ width:100%; height:100%; object-fit:cover; }
.cs-name{ font-size:0.88rem; font-weight:500; display:block; margin-bottom:2px; }
.cs-price{ margin:0 0 8px; }
.cs-add-btn{ padding: 0.5em 1em !important; font-size:0.68rem !important; width:auto !important; border-radius: var(--radius-pill); }
@media (max-width: 900px){ .cart-cross-sell-grid{ grid-template-columns:1fr; } }
body.woocommerce-cart .generic-content-wrap{
    max-width: none;
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
}
body.woocommerce-cart .woocommerce-notice,
body.woocommerce-cart .woocommerce-message,
body.woocommerce-cart .woocommerce-error{
	display: none !important;
}
body.woocommerce-cart .pd-breadcrumb-wrap{ padding-top: 8px; }
body.woocommerce-cart .cart-hero{ padding-top: 0; }

.cart-remove-panel{ max-width: 420px; padding: 36px 32px; text-align:center; }
.cart-remove-title{ font-size:1.05rem; color: var(--olive-900); margin: 6px 0 1.6rem; }
.cart-remove-actions{ display:flex; flex-direction:column; gap:12px; }
.cart-remove-actions .btn{ width:100%; display:inline-flex; align-items:center; justify-content:center; gap:8px; }
.cart-remove-actions .btn svg{ width:16px; height:16px; }
@media (max-width: 480px){
	.cart-remove-panel{ padding: 24px 20px; max-width: 320px; }
	.cart-remove-title{ font-size: 0.92rem; margin: 6px 0 1.2rem; }
	.cart-remove-actions .btn{ padding: 0.75em 1.2em; font-size: 0.85rem; }
}
@media (max-width: 480px){
	.cart-remove-panel .qv-close{ top: 14px; right: 25px; width: 20px; height: 20px; }
	.cart-remove-title{ padding-right: 24px; }
	.qv-close{ top: 4px; right: 8px; width: 22px; height: 22px; }
}
@media (max-width: 480px){
		.qv-layout{ grid-template-columns: 1fr 1fr; }
		.qv-gallery img{ width: 100%; height: 100%; object-fit: cover; border-radius: var(--radius-lg) 0 0 var(--radius-lg); }
	.quick-view-modal{ padding: 10px; align-items: center; }
	.qv-panel{ max-height: 94vh; }

	.qv-info{ padding: 14px 12px; }
	.qv-info h3{ font-size: 1.2rem; margin: 0.15em 0 0.3em; }
	.qv-price{ font-size: 0.9rem; margin-bottom: 0.1rem; }
	.qv-tax-note{ font-size: 0.62rem; margin-bottom: 0.4rem; }
	.qv-excerpt{ font-size: 0.72rem; margin-bottom: 0.6rem; }
	.qv-divider{ margin: 0.6rem 0; }
	.qv-info form.cart{ gap: 10px; margin-bottom: 0.6rem; }
	.qv-info form.cart{ gap: 6px; margin-bottom: 0.6rem; }
.qv-info .quantity.pd-qty-stepper input.qty{ width: 16px; height: 26px; padding: 0; font-size: 0.65rem; }
.qv-info .pd-qty-btn{ width: 20px; height: 26px; font-size: 0.7rem; }
.qv-info form.cart .single_add_to_cart_button{ white-space: nowrap; font-size: 0.62rem; padding: 0.6em 0.5em; letter-spacing: 0.02em; min-width: 0; flex: 1.6; }
	.qv-features{ display: none; }
	.qv-view-full{ margin-top: 0.5rem; font-size: 0.7rem; }
	a.pc-add, a.add_to_cart_button, .single_add_to_cart_button{ font-size: 0.68rem; padding: 0.6em 0.8em; letter-spacing: 0.06em; }

	.qv-badge-added{ font-size: 0.62rem; padding: 3px 8px; margin-bottom: 0.4rem; }
	.qv-confirm{ margin-bottom: 0.4rem; }
	.qv-confirm p{ font-size: 0.68rem; line-height: 1.4; }
	.qv-qty-display{ font-size: 0.66rem; margin-bottom: 0.8rem; }

	.qv-success-actions{ flex-direction: row; flex-wrap: nowrap; gap: 8px; align-items: stretch; }
	.qv-success-actions .btn{
		min-width: 0;
		width: auto;
		flex: 1;
		padding: 0.5em 0.3em;
		font-size: 0.6rem;
		letter-spacing: 0;
		white-space: normal;
		line-height: 1.25;
		text-align: center;
	}
}
/* =========================================================================
   ACCOUNT — dashboard layout, nav icons, quick actions
   ========================================================================= */
body.woocommerce-account .generic-content-wrap.narrow{ max-width: var(--container); }
body.woocommerce-account .page-header{ display:none; }
body.woocommerce-account.logged-in .page-content:has(> .woocommerce-MyAccount-navigation),
body.woocommerce-account.logged-in .page-content *:has(> .woocommerce-MyAccount-navigation){
	display:grid; grid-template-columns: 240px minmax(0,1fr); gap:40px; align-items:start;
}
@media (max-width: 900px){
	body.woocommerce-account.logged-in .page-content:has(> .woocommerce-MyAccount-navigation),
	body.woocommerce-account.logged-in .page-content *:has(> .woocommerce-MyAccount-navigation){ grid-template-columns: 1fr; }
}

.woocommerce-MyAccount-navigation{
	background: var(--white); border-radius: var(--radius-md); padding: 18px;
	box-shadow: var(--shadow-sm); align-self:start;
}
@media (min-width: 901px){ .woocommerce-MyAccount-navigation{ position: sticky; top: 110px; } }
/* ---- Mobile: collapse the account nav behind a single toggle bar ---- */
.acct-nav-toggle{ display:none; }
@media (max-width: 900px){
	.woocommerce-MyAccount-navigation{ padding: 8px; }
	.acct-nav-toggle{
		display:flex; align-items:center; gap:12px; width:100%;
		background: var(--olive); color: var(--cream); border:none; border-radius: var(--radius-sm);
		padding: 14px 16px; font-family: var(--font-body); font-size:0.92rem; font-weight:500; text-align:left;
	}
	.acct-nav-toggle-icon{ width:18px; height:18px; flex-shrink:0; display:flex; }
	.acct-nav-toggle-icon svg{ width:100%; height:100%; }
	.acct-nav-toggle-label{ flex:1; }
	.acct-nav-toggle-chevron{
		width:8px; height:8px; flex-shrink:0; border-right:2px solid currentColor; border-bottom:2px solid currentColor;
		transform: rotate(45deg); transition: transform .3s var(--ease); margin-top:-2px;
	}
	.acct-nav-toggle[aria-expanded="true"] .acct-nav-toggle-chevron{ transform: rotate(-135deg); margin-top:2px; }

	.woocommerce-MyAccount-navigation ul{
		display:none; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--line-soft);
	}
	.woocommerce-MyAccount-navigation.is-open ul{ display:flex; }
	.woocommerce-MyAccount-navigation .is-active{ display:none; }
}
.woocommerce-MyAccount-navigation-link a{ display:flex; align-items:center; gap:11px; }
.woocommerce-MyAccount-navigation-link a::before{
	content:''; width:17px; height:17px; flex-shrink:0; display:inline-block;
	background-repeat:no-repeat; background-size:contain; background-position:center;
	opacity:0.85;
}
.woocommerce-MyAccount-navigation-link--dashboard a::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415A2B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='4' y='4' width='7' height='7' rx='1.5'/%3E%3Crect x='13' y='4' width='7' height='7' rx='1.5'/%3E%3Crect x='4' y='13' width='7' height='7' rx='1.5'/%3E%3Crect x='13' y='13' width='7' height='7' rx='1.5'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--orders a::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415A2B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 8h12l1 13H5L6 8Z'/%3E%3Cpath d='M9 8V6a3 3 0 0 1 6 0v2'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--downloads a::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415A2B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 3v12m0 0-4-4m4 4 4-4'/%3E%3Cpath d='M4 17v2a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-2'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--edit-address a::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415A2B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s7-6.5 7-12a7 7 0 1 0-14 0c0 5.5 7 12 7 12Z'/%3E%3Ccircle cx='12' cy='9' r='2.4'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--edit-account a::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415A2B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='8' r='4'/%3E%3Cpath d='M4 20c1.5-4 4.7-6 8-6s6.5 2 8 6'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link--coupons a::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415A2B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12.6 3.4 20.6 11.4c.8.8.8 2 0 2.8L14.2 20.6c-.8.8-2 .8-2.8 0L3.4 12.6V4.2A.8.8 0 0 1 4.2 3.4H12.6Z'/%3E%3Ccircle cx='8' cy='8' r='1.6' fill='%23415A2B' stroke='none'/%3E%3C/svg%3E"); }
.woocommerce-MyAccount-navigation-link.is-active a::before{ opacity:1; filter: brightness(0) invert(1); }
.woocommerce-MyAccount-navigation-link--customer-logout a::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23415A2B' stroke-width='1.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpath d='M16 17l5-5-5-5'/%3E%3Cpath d='M21 12H9'/%3E%3C/svg%3E"); }
.acct-hero-sub{ margin-top:-8px; }

.acct-quick-actions{ display:grid; grid-template-columns: repeat(4,1fr); gap:14px; margin-bottom: 32px; }
.acct-quick-action{
	display:flex; align-items:center; gap:12px; background: var(--white); border:1px solid var(--line);
	border-radius: var(--radius-md); padding: 16px 16px; transition: border-color .3s var(--ease), transform .25s var(--ease), background .3s var(--ease);
}
.acct-quick-action:hover{ border-color: var(--pink); background: var(--pink-100); transform: translateY(-2px); }
.acct-quick-action-icon{ width:38px; height:38px; flex-shrink:0; display:flex; align-items:center; justify-content:center; background: var(--sand); border-radius:50%; color: var(--olive); }
.acct-quick-action-icon svg{ width:18px; height:18px; }
.acct-quick-action-label{ font-size:0.85rem; font-weight:500; flex:1; }
.acct-quick-action-arrow svg{ width:14px; height:14px; opacity:0.5; transition: transform .3s var(--ease); }
.acct-quick-action:hover .acct-quick-action-arrow svg{ transform: translateX(3px); opacity:1; }
@media (max-width: 900px){ .acct-quick-actions{ grid-template-columns: repeat(2,1fr); } }
@media (max-width: 480px){ .acct-quick-actions{ grid-template-columns: 1fr; } }

.acct-empty-state{ text-align:center; padding: 40px 20px; }
.acct-empty-state svg{ width:34px; height:34px; color: var(--pink); margin: 0 auto 14px; }
.acct-empty-state .acct-empty{ margin-bottom: 20px; }

/* =========================================================================
   AUTH — split-screen login / register (myaccount/form-login.php)
   ========================================================================= */
body.woocommerce-account:not(.logged-in) .generic-content-wrap.narrow{ padding-top:0; padding-bottom:0; }

.hh-auth{
	display:grid; grid-template-columns: 1fr 1.15fr; min-height: 640px; border-radius: var(--radius-lg);
	overflow:hidden; box-shadow: var(--shadow-lg); margin: clamp(20px,4vw,48px) 0;
}
.hh-auth-visual{
	position:relative; background: var(--olive) url('../img/story.jpg') center/cover no-repeat;
	display:flex; align-items:flex-end; padding: 48px 40px;
}
.hh-auth-visual-overlay{
	position:absolute; inset:0;
	background: linear-gradient(180deg, rgba(38,51,24,0.35) 0%, rgba(38,51,24,0.78) 100%);
}
.hh-auth-visual-content{ position:relative; z-index:1; color: var(--cream); }
.hh-auth-visual-content h1{ color: var(--cream); font-size: clamp(2rem,3.4vw,2.9rem); margin-bottom:0.3em; }
.hh-auth-visual-content p{ color: rgba(254,254,236,0.85); max-width: 38ch; }
.eyebrow-light{ color: var(--pink-100); }
.hh-auth-perks{ display:flex; flex-direction:column; gap:12px; margin-top:24px; }
.hh-auth-perks li{ display:flex; align-items:center; gap:10px; font-size:0.85rem; color: rgba(254,254,236,0.92); }
.hh-auth-perks svg{ width:18px; height:18px; flex-shrink:0; color: var(--pink); }

.hh-auth-panel{ background: var(--white); padding: clamp(32px,4vw,56px); display:flex; flex-direction:column; justify-content:center; }

.hh-tab-input{ position:absolute; opacity:0; pointer-events:none; }
.hh-tab-labels{ display:flex; gap:6px; background: var(--sand); border-radius: var(--radius-pill); padding:5px; margin-bottom: 28px; }
.hh-tab-labels label{
	flex:1; display:flex; align-items:center; justify-content:center; text-align:center;
	padding: 0.55em 1em; border-radius: var(--radius-pill); font-size:0.88rem;
	font-weight:500; cursor:pointer; transition: background .3s var(--ease), color .3s var(--ease); color: var(--olive-700);
}
.hh-tab-labels-solo{ background:none; padding:0; margin-bottom: 12px; }
.hh-tab-labels-solo .is-solo-active{ font-family: var(--font-display); font-size:1.5rem; color: var(--olive-900); }
#hh-tab-login:checked ~ .hh-tab-labels label[for="hh-tab-login"],
#hh-tab-register:checked ~ .hh-tab-labels label[for="hh-tab-register"]{ background: var(--olive); color: var(--cream); }

.hh-tab-panel{ display:none; }
#hh-tab-login:checked ~ .hh-tab-panels .hh-tab-panel-login{ display:block; }
#hh-tab-register:checked ~ .hh-tab-panels .hh-tab-panel-register{ display:block; }

.hh-auth-terms-row label{ display:flex; align-items:flex-start; gap:9px; font-size:0.82rem; color: var(--olive-700); cursor:pointer; }
.hh-auth-terms-row{ margin-top: -10px; }
.hh-auth-terms-row input{ margin-top:3px; flex-shrink:0; }
.hh-auth-switch{ text-align:right; font-size:0.85rem; color: var(--olive-700); margin: 18px 0 0; }
.hh-auth-switch label{ color: var(--pink); font-weight:500; text-decoration:underline; cursor:pointer; }

.hh-social-login {
    margin-bottom: 18px;
    display: flex;
    justify-content: center;
    width: 100%;
}

.hh-social-login,
.hh-social-login > *,
.hh-social-login .nsl-container,
.hh-social-login .nsl-container-buttons,
.hh-social-login .nsl-button,
.hh-social-login .nsl-button-default {
    width: 100% !important;
    max-width: 100% !important;
}

.hh-social-login a,
.hh-social-login button {
    width: 100% !important;
    justify-content: center !important;
    align-items: center !important;
    display: flex !important;
    border-radius: var(--radius-pill) !important;
    margin: 0 auto !important;
    gap: 6px !important; /* CHANGED from 10px to 6px */
}

.hh-social-login .nsl-container-buttons {
    display: flex !important;
    width: 100% !important;
}

.hh-social-login .nsl-button.nsl-button-default.nsl-button-google {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 100% !important;
    padding: 8px 20px !important;
    column-gap: 0px !important;
    row-gap: 0px !important;
}

.hh-social-login .nsl-button svg,
.hh-social-login .nsl-button img {
    flex-shrink: 0 !important;
}

.hh-social-login .nsl-button > * {
    flex: none !important;
}

.hh-social-login .nsl-button-default {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 10px !important;
}
.hh-social-setup-note{
	font-size:0.75rem; line-height:1.5; color: var(--olive-700); background: var(--sand);
	border-radius: var(--radius-sm); padding: 12px 14px; margin-bottom:18px; border-left:3px solid var(--pink);
}
.hh-or{ display:flex; align-items:center; gap:12px; margin: 24px 0 20px; color: var(--olive-700); font-size:0.76rem; text-transform:uppercase; letter-spacing:0.08em; }
.hh-or::before, .hh-or::after{ content:''; flex:1; height:1px; background: var(--line); }

.hh-form-meta{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:10px; }
.hh-form-meta .woocommerce-form-login__rememberme{ display:flex; align-items:center; gap:8px; font-size:0.82rem; margin:0; }
.hh-form-meta .lost_password{ font-size:0.82rem; text-decoration:underline; }
.hh-auth-submit{ width:100%; margin-top:8px; }
.hh-auth-note{ font-size:0.78rem; color: var(--olive-700); }
.hh-auth-terms{ margin: 4px 0 14px; }

@media (max-width: 900px){
	.hh-auth{ grid-template-columns: 1fr; min-height:0; }
	.hh-auth-visual{ display:none; }
}
/* ===== Order Received / Thank You page ===== */

.woocommerce-order {
    max-width: 900px;
    margin: 40px auto;
    padding: 0 20px;
}

/* Top order overview (Order number / Date / Email / Total / Payment method) */
.woocommerce-order-overview {
    list-style: none;
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    margin: 0 0 30px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.woocommerce-order-overview li {
    font-size: 14px;
    color: #555;
}
.woocommerce-order-overview li strong,
.woocommerce-order-overview__total,
.woocommerce-order-overview__order {
    color: #222;
    font-weight: 600;
}

/* Order details table */
.woocommerce-order-details {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    margin-bottom: 30px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.woocommerce-table--order-details {
    width: 100%;
    border-collapse: collapse;
}
.woocommerce-table--order-details th,
.woocommerce-table--order-details td {
    padding: 12px 8px;
    border-bottom: 1px solid #eee;
    text-align: left;
    font-size: 14px;
}
.woocommerce-table--order-details tfoot th,
.woocommerce-table--order-details tfoot td {
    font-weight: 600;
}

/* Billing / Shipping address columns */
.woocommerce-customer-details {
    background: #fff;
    border-radius: 14px;
    padding: 24px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.05);
}
.woocommerce-columns--addresses {
    display: flex;
    flex-wrap: wrap;
    gap: 40px;
    list-style: none;
    padding: 0;
}
.woocommerce-column--billing-address,
.woocommerce-column--shipping-address {
    flex: 1;
    min-width: 240px;
}
.woocommerce-column__title {
    margin-bottom: 10px;
}
.woocommerce-customer-details address {
    font-style: normal;
    line-height: 1.7;
    color: #555;
}

/* Mobile */
@media (max-width: 600px) {
    .woocommerce-order-overview {
        flex-direction: column;
        gap: 10px;
    }
    .woocommerce-columns--addresses {
        flex-direction: column;
        gap: 20px;
    }
}
.hero-polaroid-empty {
    display: flex;
    align-items: center;
    justify-content: center;
    text-align: center;
    aspect-ratio: 1 / 1; /* match whatever ratio your polaroid images use */
    border: 1px dashed currentColor;
    background: rgba(0,0,0,0.03);
    padding: 12px;
}
.hero-polaroid-empty-text {
    font-size: 0.8rem;
    opacity: 0.6;
}
.newsletter-form {
    position: relative;
}
.newsletter-msg {
	position: absolute;
	left: calc(100% + 16px);
	top: 50%;
	transform: translateY(-50%);
	white-space: nowrap;
	font-size: 0.85rem;
	color: #fff;
	padding: 0;
	border-radius: 20px;
	background: transparent;
	opacity: 0;
	visibility: hidden;
	transition: opacity 0.25s ease;
}
.newsletter-msg.is-visible {
	background: rgba(0,0,0,0.25);
	padding: 6px 14px;
	opacity: 1;
	visibility: visible;
}
@media (max-width: 780px) {
    .newsletter-msg {
        position: static;
        display: block;
        margin-top: 12px;
        transform: none;
        background: none;
        padding: 0;
    }
}

.hh-auth-title{ font-family: var(--font-body); font-style: italic; font-weight: 500; }
.acct-address-grid{ display:grid; grid-template-columns: repeat(2,1fr); gap:20px; margin-top:28px; }
.acct-address-card{ background: var(--white); border:1px solid var(--line); border-radius: var(--radius-md); padding:24px; }
.acct-address-card-head{ display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.acct-address-card-head h2{ font-size:1.1rem; margin:0; }
.acct-address-body{ font-style:normal; font-size:0.92rem; line-height:1.8; color: var(--olive-700); }

.hh-forgot-password-link{
	display: block;
	margin-top: 2px;
	margin-bottom: 0.2rem;
	font-size: 0.8rem;
	text-decoration: underline;
	color: var(--olive-700);
}
.hh-forgot-password-link:hover{ color: var(--pink); }
.woocommerce-form-row:has(.hh-forgot-password-link){
	margin-bottom: 0.1rem;
}
p.woocommerce-form-row:has(#password_1){
	margin-bottom: 0.3rem !important;
}
.woocommerce-EditAccountForm fieldset{
	display: none !important;
}

@media (max-width: 700px){
	.acct-address-grid{ grid-template-columns: 1fr; }
}
@media (max-width: 767px){
	.testimonials-row.is-carousel .testimonial-card{
		flex: 0 0 100%;
	}
}
/* =========================================================================
   MY ACCOUNT / DASHBOARD — mobile-only fixes (phones, <=480px)
   ========================================================================= */
.acct-order-total{ font-weight:500; color: var(--olive-900); white-space:nowrap; }
@media (max-width: 480px){
    .woocommerce-MyAccount-content{ padding: 20px; }
    .acct-hero h1{ font-size: 1.15rem; }
    .acct-hero-sub{ font-size: 0.85rem; }   /* add this line */
    .acct-recent-head{ flex-wrap:wrap; gap:8px; }
    .acct-address-card{ padding: 18px; }
    .acct-address-card-head h2{ font-size: 1rem; }
}

	#account_display_name + span{
		font-size: 0.8rem;
		line-height: 1.5;
	}

/* ============================================
   Order-Pay page (Razorpay redirect / receipt)
   Targets checkout/order-receipt.php + form-pay.php
   markup, which ships with zero classes of its own.
   Scoped to body.woocommerce-order-pay so it never
   touches the real /checkout/ page's block layout.
   ============================================ */

body.woocommerce-order-pay .checkout-content{
	max-width: 640px;
	margin: 0 auto;
	padding: 40px clamp(20px, 5vw, 48px);
	background: var(--white, #fff);
	border-radius: var(--radius-lg);
	box-shadow: var(--shadow-md);
}

/* Order number / Date / Total / Payment method list */
body.woocommerce-order-pay .checkout-content .order_details{
	list-style: none;
	margin: 0 0 24px;
	padding: 0;
	border-top: 1px solid var(--line-soft, #E7E7D6);
}
body.woocommerce-order-pay .checkout-content .order_details li{
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 12px;
	padding: 14px 0;
	border-bottom: 1px solid var(--line-soft, #E7E7D6);
	font-size: 0.9rem;
	color: var(--olive-700);
}
body.woocommerce-order-pay .checkout-content .order_details li strong{
	color: var(--olive-900);
	font-weight: 600;
	text-align: right;
}

/* Notices (webhook message, errors, etc.) */
body.woocommerce-order-pay .checkout-content .notice,
body.woocommerce-order-pay .checkout-content .woocommerce-error,
body.woocommerce-order-pay .checkout-content .woocommerce-info{
	background: var(--pink-100);
	border-left: 3px solid var(--pink);
	border-radius: var(--radius-sm);
	padding: 14px 18px;
	margin: 0 0 20px;
	font-size: 0.85rem;
	color: var(--olive-900);
}
body.woocommerce-order-pay .checkout-content .notice p,
body.woocommerce-order-pay .checkout-content .notice b{ margin: 0; }

/* "Thank you for your order..." intro text */
body.woocommerce-order-pay .checkout-content p{ font-size: 0.95rem; }

/* Pay Now / Cancel buttons (Razorpay plugin — bare <button>, no classes) */
body.woocommerce-order-pay .checkout-content #btn-razorpay,
body.woocommerce-order-pay .checkout-content #place_order{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-body);
	font-size: 0.95rem;
	font-weight: 500;
	padding: 0.95em 2.4em;
	border-radius: var(--radius-pill);
	border: none;
	background: var(--olive);
	color: var(--cream);
	cursor: pointer;
	transition: background .3s var(--ease), transform .3s var(--ease);
}
body.woocommerce-order-pay .checkout-content #btn-razorpay:hover,
body.woocommerce-order-pay .checkout-content #place_order:hover{
	background: var(--pink);
	color: var(--olive-900);
	transform: translateY(-2px);
}
body.woocommerce-order-pay .checkout-content #btn-razorpay-cancel{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-family: var(--font-body);
	font-size: 0.9rem;
	padding: 0.95em 1.8em;
	margin-left: 10px;
	border-radius: var(--radius-pill);
	border: 1.4px solid var(--olive);
	background: transparent;
	color: var(--olive-900);
	cursor: pointer;
	transition: background .3s var(--ease), color .3s var(--ease);
}
body.woocommerce-order-pay .checkout-content #btn-razorpay-cancel:hover{
	background: var(--olive);
	color: var(--cream);
}

/* Classic pay-for-order flow (My Account > Pay for order): #payment ul.payment_methods */
body.woocommerce-order-pay .checkout-content #payment{
	background: var(--sand, #F4F1E4);
	border-radius: var(--radius-md);
	padding: 20px;
	margin-top: 20px;
}
body.woocommerce-order-pay .checkout-content ul.payment_methods{
	list-style: none;
	margin: 0 0 16px;
	padding: 0;
}
body.woocommerce-order-pay .checkout-content ul.payment_methods li{
	padding: 12px 4px;
	border-bottom: 1px solid var(--line-soft, #E7E7D6);
	font-size: 0.9rem;
}
body.woocommerce-order-pay .checkout-content ul.payment_methods li:last-child{ border-bottom: none; }
body.woocommerce-order-pay .checkout-content ul.payment_methods input[type="radio"]{ margin-right: 8px; }
body.woocommerce-order-pay .checkout-content ul.payment_methods label{ font-weight: 500; color: var(--olive-900); }
body.woocommerce-order-pay .checkout-content .payment_box{
	font-size: 0.82rem;
	color: var(--olive-700);
	padding: 10px 0 0 24px;
}

/* Mobile responsiveness */
@media (max-width: 640px){
	body.woocommerce-order-pay .checkout-content{
		margin: 0 16px;
		padding: 28px 20px;
		border-radius: var(--radius-md);
	}
	body.woocommerce-order-pay .checkout-content .order_details li{
		flex-direction: column;
		gap: 2px;
		padding: 12px 0;
	}
	body.woocommerce-order-pay .checkout-content .order_details li strong{ text-align: left; }
	body.woocommerce-order-pay .checkout-content .form-row:has(> #btn-razorpay),
	body.woocommerce-order-pay .checkout-content .form-row:has(> #place_order),
	body.woocommerce-order-pay .checkout-content p:has(> #btn-razorpay),
	body.woocommerce-order-pay .checkout-content p:has(> #place_order){
		display: flex;
		gap: 10px;
	}
	body.woocommerce-order-pay .checkout-content #btn-razorpay,
	body.woocommerce-order-pay .checkout-content #place_order,
	body.woocommerce-order-pay .checkout-content #btn-razorpay-cancel{
		flex: 1;
		min-width: 0;
		width: auto;
		margin: 0;
		padding: 0.7em 0.6em;
		font-size: 0.85rem;
	}
}
.hha-spec-rows{ display:flex; flex-direction:column; gap:8px; margin-bottom:10px; }
.hha-spec-row{ display:grid; grid-template-columns: 1fr 1fr auto; gap:8px; align-items:center; }
.hha-spec-row input{ width:100%; }

.hh-pw-wrap {
	position: relative;
	display: block;
}

.hh-pw-wrap input[type="password"],
.hh-pw-wrap input[type="text"] {
	display: block;
	width: 100%;
	padding-right: 44px !important;
	box-sizing: border-box;
}

.hh-pw-toggle {
	position: absolute;
	right: 4px;
	background: none;
	border: none;
	padding: 0 8px;
	margin: 0;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #7a7a6e;
	line-height: 0;
}

.hh-pw-toggle:hover,
.hh-pw-toggle:focus {
	color: #2f3a24;
	outline: none;
}

.hh-pw-toggle svg {
	width: 20px;
	height: 20px;
	pointer-events: none;
}
.hh-or {
	display: none !important;
}

body.page-template-page-terms-conditions-php .page-content a,
body.page-template-page-privacy-policy-php .page-content a{ color: var(--olive-700); text-decoration: underline; text-underline-offset: 2px; transition: color .25s var(--ease); }
body.page-template-page-terms-conditions-php .page-content a:hover,
body.page-template-page-privacy-policy-php .page-content a:hover{ color: var(--pink); }
body.page-template-page-terms-conditions-php .page-content ul,
body.page-template-page-privacy-policy-php .page-content ul{ list-style: disc; padding-left: 1.3em; margin: 1em 0; }
body.page-template-page-terms-conditions-php .page-content ul li,
body.page-template-page-privacy-policy-php .page-content ul li{ margin-bottom: 0.6em; }
.page-content .woocommerce-MyAccount-navigation ul{ list-style: none; padding-left: 0; margin: 0; }
.page-content h2{ margin-top:1.6em; font-size: 1.25rem; font-family: var(--font-body); font-style: italic; font-weight: 500; }

@media (max-width: 767px){
	.page-content h2{ font-size: 1.05rem; }
}
/* Mobile: Title first, then image, then content */
@media (max-width: 767px) {
	.section.brand-story {
		display: flex;
		flex-direction: column;
		gap: 10px; /* Reduced the gap */
		padding-top: 50px; 
		padding-bottom: 0; /* Reduces space below the image before the next section */
	}
	
	.section.brand-story .story-title {
		order: 1;
	}
	
	.section.brand-story .story-media {
		order: 2;
	}
	
	.section.brand-story .story-copy {
		order: 3;
	}
	
	/* Hide the duplicate title in story-copy on mobile ONLY */
	.section.brand-story .story-copy h2 {
		display: none;
	}
}

/* Desktop: hide the separate story-title, show the one in story-copy */
@media (min-width: 768px) {
	.section.brand-story .story-title {
		display: none;
	}
	
	.section.brand-story .story-copy h2 {
		display: block;
	}
}

.hha-size-toggle-group{ display:flex; gap:8px; }
.hha-size-toggle-btn{ width:36px; height:36px; border:1px solid var(--line); border-radius:6px; background:#fff; cursor:pointer; font-size:0.85rem; }
.hha-size-toggle-btn.is-active{ background: var(--olive-900); color:#fff; border-color: var(--olive-900); }

.pd-size-selector, .qv-size-selector{ margin: 14px 0; }
.pd-size-label, .qv-size-label{ display:block; font-size:0.8rem; font-weight:600; margin-bottom:8px; color: var(--olive-700); }
.pd-size-options, .qv-size-options{ display:flex; gap:10px; }
.pd-size-btn, .qv-size-btn{ width:28px; height:28px; border:1px solid var(--line); border-radius:6px; background:#fff; cursor:pointer; font-size:0.72rem; padding:0; }
.pd-size-btn.is-selected, .qv-size-btn.is-selected{ background: var(--olive-900); color:#fff; border-color: var(--olive-900); }

.cdi-size{ display:block; font-size:0.75rem; color: var(--olive-700); }

@media (max-width: 640px){
	.qv-size-label{ font-size:0.68rem; margin-bottom:6px; }
	.qv-size-btn{ width:24px; height:24px; font-size:0.65rem; border-radius:5px; }
	.pd-size-label{ font-size:0.8rem; margin-bottom:8px; }
	.pd-size-btn{ width:34px; height:34px; font-size:0.85rem; border-radius:7px; }
}
.wc-item-meta{ margin: 4px 0 0; padding: 0; list-style: none; }
.wc-item-meta li{ display: flex; gap: 4px; font-size: 0.85rem; color: #555; }
.wc-item-meta li strong{ font-weight: 600; }
.wc-item-meta li p{ display: inline; margin: 0; }

.pd-size-error, .qv-size-error{ display:none; color:#C25656; font-size:0.78rem; margin-top:8px; }
.pd-size-error.is-visible, .qv-size-error.is-visible{ display:block; }
.pd-size-btn.needs-selection, .qv-size-btn.needs-selection{ border-color:#C25656; }
.pd-size-selector.has-error .pd-size-options, .qv-size-selector.has-error .qv-size-options{ animation: hhSizeShake 0.4s; }
@keyframes hhSizeShake{ 0%,100%{ transform: translateX(0); } 25%{ transform: translateX(-4px); } 75%{ transform: translateX(4px); } }

.cli-gift-badge{ display:inline-flex; align-items:center; gap:4px; margin-left:8px; padding:2px 10px; border-radius:var(--radius-pill); background:var(--sand); font-size:0.72rem; color:var(--olive-700); }
.cli-gift-badge svg{ width:12px; height:12px; }
.cli-gift-note{ font-size:0.8rem; color:var(--olive-700); font-style:italic; }
.hh-gift-free{ color:var(--pink); font-weight:600; }
.hh-gift-note{ margin:4px 0 0; font-size:0.85em; color:var(--pink); display:flex; align-items:center; gap:4px; }
.hh-gift-note svg{ width:13px; height:13px; }
.cli-gift-badge {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	padding: 3px 8px;
	font-size: 11px;
	margin-left: 0;
}

.hha-logout-overlay{ display:none; position:fixed; inset:0; background:rgba(0,0,0,0.45); z-index:99999; align-items:center; justify-content:center; padding:20px; }
.hha-logout-overlay.is-open{ display:flex; }
.hha-logout-box{ background:var(--cream); border-radius:var(--radius-md,14px); padding:28px 24px; max-width:360px; width:100%; text-align:center; box-shadow:0 20px 50px rgba(0,0,0,0.2); }
.hha-logout-text{ font-size:15px; margin:0 0 20px; color:var(--olive-900); }
.hha-logout-actions{ display:flex; gap:10px; justify-content:center; }
.hha-logout-actions button{ padding:10px 22px; border-radius:999px; font-size:14px; font-weight:500; border:1px solid transparent; cursor:pointer; transition:transform .12s ease, opacity .12s ease; }
.hha-logout-actions button:active{ transform:scale(.97); }
#hhaLogoutCancel{ background:transparent; border-color:var(--olive-900,#415A2B); color:var(--olive-900,#415A2B); }
#hhaLogoutCancel:hover{ background:rgba(65,90,43,0.08); }
#hhaLogoutConfirm{ background:var(--olive,#5c7a3a); color:var(--cream,#fdf9ee); }
#hhaLogoutConfirm:hover{ background:var(--olive-700,#415A2B); }

.woocommerce-account a.woocommerce-button.button.pay,
.woocommerce-account a.woocommerce-button.button.cancel{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 0.45em 1.2em;
	border-radius: var(--radius-pill);
	font-size: 0.78rem;
	letter-spacing: 0.03em;
	white-space: nowrap;
	margin-right: 8px;
	transition: background .3s var(--ease), color .3s var(--ease);
}
.woocommerce-account a.woocommerce-button.button.pay{
	background: var(--olive-900);
	color: var(--cream);
}
.woocommerce-account a.woocommerce-button.button.pay:hover{
	background: var(--pink);
	color: var(--olive-900);
}
.woocommerce-account a.woocommerce-button.button.cancel{
	background: transparent;
	border: 1.4px solid var(--olive-900);
	color: var(--olive-900);
}
.woocommerce-account a.woocommerce-button.button.cancel:hover{
	background: var(--olive-900);
	color: var(--cream);
}
.pd-order-tracker{
	display: flex;
	align-items: flex-start;
	margin: 24px 0 32px;
	padding: 0 8px;
}
.pd-tracker-step{
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	flex-shrink: 0;
}
.pd-tracker-dot{
	width: 16px; height: 16px;
	border-radius: 50%;
	background: var(--sand, #E7E7D6);
	border: 2px solid var(--sand, #E7E7D6);
	display: block;
}
.pd-tracker-step.is-done .pd-tracker-dot,
.pd-tracker-step.is-current .pd-tracker-dot{
	background: var(--olive-900);
	border-color: var(--olive-900);
}
.pd-tracker-step.is-current .pd-tracker-dot{
	box-shadow: 0 0 0 4px var(--pink-100);
}
.pd-tracker-label{
	font-size: 0.78rem;
	color: var(--olive-700, #6b7a52);
	white-space: nowrap;
	text-align: center;
}
.pd-tracker-step.is-done .pd-tracker-label,
.pd-tracker-step.is-current .pd-tracker-label{
	color: var(--olive-900);
	font-weight: 600;
}
.pd-tracker-line{
	flex: 1;
	height: 3px;
	background: var(--sand, #E7E7D6);
	margin: 6.5px 6px 0;
}
.pd-tracker-line.is-done{
	background: var(--olive-900);
}
.pd-order-tracker-stopped{
	display: inline-flex;
	align-items: center;
	gap: 10px;
	margin: 24px 0 32px;
	padding: 10px 18px;
	border-radius: var(--radius-pill);
	background: var(--pink-100);
	color: var(--olive-900);
	font-weight: 600;
	font-size: 0.9rem;
}
.pd-tracker-dot.is-stopped{
	width: 10px; height: 10px;
	border-radius: 50%;
	background: var(--pink);
}
body.woocommerce-view-order p:has(mark.order-status){
	display: none;
}
.pd-order-page{ max-width: 100%; }
.pd-order-back{ display:inline-block; margin-bottom:16px; font-size:0.85rem; color: var(--olive-700); }
.pd-order-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom: 8px; }
.pd-order-title{ font-size:1.6rem; margin:0 0 4px; }
.pd-order-sub{ font-size:0.85rem; color: var(--olive-700); margin:0; }
.pd-order-status-pill{
	display:inline-flex; align-items:center; padding:8px 18px;
	border-radius: var(--radius-pill); background: var(--pink-100); color: var(--olive-900);
	font-weight:600; font-size:0.85rem; white-space:nowrap;
}
.pd-status-completed{ background:#DFF3E1; color:#1E7A34; }
.pd-status-cancelled, .pd-status-failed{ background:#FBE1E1; color:#B23A3A; }

.pd-order-grid{ display:grid; grid-template-columns: 2fr 1fr; gap:24px; align-items:start; margin-top:24px; }
@media (max-width: 900px){ .pd-order-grid{ grid-template-columns: 1fr; } }

.pd-order-card{
	background: var(--white); border-radius: var(--radius-md); padding:24px;
	box-shadow: var(--shadow-sm); margin-bottom:20px;
}
.pd-order-card h3{ margin:0 0 16px; font-size:1.05rem; display:flex; align-items:center; gap:8px; }

.pd-order-item-row{ display:flex; gap:14px; align-items:flex-start; padding:14px 0; border-bottom:1px solid var(--line-soft,#E7E7D6); }
.pd-order-item-row:last-child{ border-bottom:none; }
.pd-order-item-row img{ width:56px; height:56px; border-radius:8px; object-fit:cover; flex-shrink:0; }
.pd-order-item-info{ display:flex; flex-direction:column; gap:4px; flex:1; }
.pd-order-item-info span{ font-size:0.82rem; color: var(--olive-700); }
.pd-order-gift-note{ color: var(--pink); font-size:0.78rem; }
.pd-order-item-total{ font-weight:600; white-space:nowrap; }
.pd-order-gift-price{ color: var(--pink); }

.pd-order-payment-row{ display:flex; justify-content:space-between; font-size:0.9rem; }
.pd-order-payment-status{ color: var(--olive-700); }

.pd-order-summary-row{ display:flex; justify-content:space-between; font-size:0.88rem; padding:8px 0; border-bottom:1px solid var(--line-soft,#E7E7D6); }
.pd-order-summary-row:last-child{ border-bottom:none; }
.pd-order-summary-total{ font-weight:700; font-size:1rem; padding-top:12px; }

.pd-order-address-name{ font-weight:600; margin:0 0 6px; }
.pd-order-address-lines{ font-size:0.88rem; color: var(--olive-700); line-height:1.6; margin:0; }
.pd-order-pay-btn{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-top: 16px;
	padding: 0.7em 2em;
	border-radius: var(--radius-pill);
	background: var(--olive-900);
	color: var(--cream);
	font-size: 0.85rem;
	font-weight: 600;
	transition: background .3s var(--ease), color .3s var(--ease);
}
.pd-order-pay-btn:hover{
	background: var(--pink);
	color: var(--olive-900);
}
.pd-tracker-desc{
	font-size: 0.72rem;
	color: var(--olive-700, #6b7a52);
	max-width: 130px;
	text-align: center;
	line-height: 1.4;
}
@media (max-width: 640px){
	.pd-order-tracker{ padding:0 2px; }
	.pd-tracker-desc{ display:none; }
	.pd-tracker-label{ font-size:0.68rem; white-space:normal; max-width:64px; line-height:1.2; }
	.pd-tracker-dot{ width:12px; height:12px; }
	.pd-tracker-line{ margin:5px 3px 0; }
	.pd-order-title{ font-size:1.25rem; }
	.pd-order-head{ gap:10px; }
}
@media (max-width: 380px){
	.pd-tracker-label{ font-size:0.6rem; max-width:52px; }
}