/* =============================================================
   RobinLee Collective — theme.css
   Google Fonts loaded via @import for portability
   ============================================================= */

@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,400;0,500;0,600;0,700;1,400;1,500&family=Jost:wght@300;400;500;600;700&display=swap');

@font-face {
	font-family: 'Photograph Signature';
	src: url('../fonts/Photograph_Signature.ttf') format('truetype');
	font-weight: 400;
	font-style: normal;
	font-display: swap;
}

/* =============================================================
   CSS VARIABLES (defaults — overridden by inline style from PHP)
   ============================================================= */
:root {
	--color-primary:            #1e1917;
	--color-primary-foreground: #f5f0ec;
	--color-secondary:          #e8e2da;
	--color-secondary-foreground: #1e1917;
	--color-background:         #f5f0ec;
	--color-foreground:         #1e1917;
	--color-muted:              #c8bfb0;
	--color-muted-foreground:   #7a6e63;
	--color-accent:             #c4a882;
	--color-border:             #d4c9b8;

	--font-display: 'Cormorant Garamond', serif;
	--font-body:    'Jost', sans-serif;
	--font-script:  'Photograph Signature', cursive;

	--shadow-soft:     0 4px 20px -4px rgba(30,25,23,0.06);
	--shadow-elevated: 0 8px 40px -8px rgba(30,25,23,0.12);
	--transition:      cubic-bezier(0.4, 0, 0.2, 1);

	--btn-height:         48px;
	--btn-padding:        0 2rem;
	--btn-radius:         0;
	--btn-font-size:      0.875rem;
	--btn-font-weight:    500;
	--btn-letter-spacing: 0.02em;
	--btn-text-transform: none;

	--header-height: 80px;
	--logo-height:   60px;

	--card-radius:    0;
	--section-padding: 2rem;
	--checkout-gap:   2rem;
}

/* =============================================================
   RESET / BASE
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }
html { scroll-behavior: smooth; }
body {
	font-family: var(--font-body);
	background-color: var(--color-background);
	color: var(--color-foreground);
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
	overflow-x: hidden;
}
h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	line-height: 1.15;
}
a { color: inherit; text-decoration: none; }
img, video { max-width: 100%; height: auto; display: block; }
button { background: none; border: none; cursor: pointer; font-family: var(--font-body); }
input, textarea, select { font-family: var(--font-body); }
ul { list-style: none; }

/* =============================================================
   UTILITY
   ============================================================= */
.container-wide {
	width: 100%;
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 1.5rem;
}
@media (min-width: 1024px) { .container-wide { padding: 0 2rem; } }

.text-center { text-align: center; }
.font-script { font-family: var(--font-script) !important; }

.section-label {
	display: block;
	font-family: var(--font-body);
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-muted-foreground);
	margin-bottom: 0.5rem;
}
.section-heading {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 4vw, 3rem);
	font-weight: 700;
	letter-spacing: -0.02em;
}
.section-script-accent {
	font-family: var(--font-script);
	font-size: clamp(2.25rem, 5vw, 3.75rem);
	color: var(--color-accent);
	display: block;
}

/* =============================================================
   BUTTONS
   ============================================================= */
.btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5rem;
	min-height: var(--btn-height);
	padding: var(--btn-padding);
	border-radius: var(--btn-radius);
	font-family: var(--font-body);
	font-size: var(--btn-font-size);
	font-weight: var(--btn-font-weight);
	letter-spacing: var(--btn-letter-spacing);
	text-transform: var(--btn-text-transform);
	cursor: pointer;
	transition: opacity 0.2s ease, background-color 0.2s ease, transform 0.15s ease;
	text-decoration: none;
}
.btn:hover { opacity: 0.88; transform: scale(1.02); }
.btn:active { transform: scale(0.97); }

.btn-primary {
	background-color: var(--color-primary);
	color: var(--color-primary-foreground);
	border: none;
}
.btn-primary:hover { background-color: var(--color-primary); opacity: 0.88; }

.btn-white {
	background-color: #fff;
	color: var(--color-foreground);
	border: none;
	font-weight: 500;
}
.btn-white:hover { background-color: rgba(255,255,255,0.9); }

.btn-ghost {
	background-color: rgba(255,255,255,0.15);
	color: #fff;
	border: 1px solid rgba(255,255,255,0.3);
}
.btn-ghost:hover { background-color: rgba(255,255,255,0.25); }

.btn-ghost-white {
	background-color: transparent;
	color: #fff;
	border: 2px solid #fff;
	font-weight: 500;
}
.btn-ghost-white:hover { background-color: rgba(255,255,255,0.1); }

.btn-outline {
	background-color: transparent;
	color: var(--color-foreground);
	border: 1px solid var(--color-border);
}
.btn-outline:hover { background-color: var(--color-secondary); }

.btn-full { width: 100%; }
.btn-disabled {
	background-color: var(--color-muted);
	color: var(--color-muted-foreground);
	cursor: not-allowed;
	pointer-events: none;
}

/* =============================================================
   LINK UNDERLINE EFFECT
   ============================================================= */
.link-underline {
	position: relative;
	display: inline-block;
}
.link-underline::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0;
	width: 100%; height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--transition);
}
.link-underline:hover::after { transform: scaleX(1); }

/* =============================================================
   FORMS
   ============================================================= */
.form-label {
	display: block;
	font-size: 0.875rem;
	font-weight: 500;
	margin-bottom: 0.5rem;
	font-family: var(--font-body);
}
.form-input {
	width: 100%;
	padding: 0.75rem 1rem;
	background: var(--color-background);
	border: 1px solid var(--color-border);
	color: var(--color-foreground);
	font-family: var(--font-body);
	font-size: 0.875rem;
	border-radius: 0;
	transition: box-shadow 0.2s ease;
}
.form-input::placeholder { color: var(--color-muted-foreground); }
.form-input:focus {
	outline: none;
	box-shadow: 0 0 0 2px rgba(30,25,23,0.15);
}
.form-textarea { resize: none; }

/* =============================================================
   HEADER
   ============================================================= */
.site-header {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 100;
	transition: background-color 0.3s ease, border-color 0.3s ease;
	border-bottom: 1px solid transparent;
}
.site-header.is-solid {
	background-color: rgba(245,240,236,0.97);
	backdrop-filter: blur(8px);
	border-color: var(--color-border);
}
.site-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 64px;
}
@media (min-width: 1024px) { .site-nav { height: 80px; } }

.site-logo-link {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	text-decoration: none;
}
.site-logo-text {
	font-family: var(--font-display);
	font-size: 1.25rem;
	letter-spacing: -0.02em;
	transition: color 0.3s;
}
@media (min-width: 1024px) { .site-logo-text { font-size: 1.5rem; } }

/* The small logo image that only shows when scrolled */
.site-logo-scroll-img {
	width: 0;
	height: 0;
	opacity: 0;
	object-fit: contain;
	transition: width 0.3s, height 0.3s, opacity 0.3s;
}
.site-header.is-solid .site-logo-scroll-img {
	width: 32px;
	height: 32px;
	opacity: 1;
}

/* Image logo */
.site-logo-img {
	height: var(--logo-height) !important;
	width: auto !important;
	display: block;
}
.footer-logo-img {
	width: 40px;
	height: 40px;
	object-fit: contain;
}

/* Transparent header text color */
.site-header:not(.is-solid) .site-logo-text,
.site-header:not(.is-solid) .theme-nav-list a,
.site-header:not(.is-solid) .cart-btn,
.site-header:not(.is-solid) .mobile-menu-btn {
	color: rgba(255,255,255,0.9);
}
.site-header:not(.is-solid) .site-logo-text:hover,
.site-header:not(.is-solid) .theme-nav-list a:hover { color: #fff; }

/* Nav links */
.site-nav-links { display: none; }
@media (min-width: 768px) { .site-nav-links { display: flex; align-items: center; gap: 2rem; } }

.theme-nav-list {
	display: flex;
	align-items: center;
	gap: 2rem;
	list-style: none;
}
.theme-nav-list li a,
.theme-nav-list li button {
	font-family: var(--font-body);
	font-size: 0.875rem;
	letter-spacing: 0.02em;
	background: none;
	border: none;
	cursor: pointer;
	transition: opacity 0.2s;
	position: relative;
}
.theme-nav-list li a::after,
.theme-nav-list li button::after {
	content: '';
	position: absolute;
	bottom: -2px; left: 0;
	width: 100%; height: 1px;
	background: currentColor;
	transform: scaleX(0);
	transform-origin: left;
	transition: transform 0.3s var(--transition);
}
.theme-nav-list li a:hover::after,
.theme-nav-list li button:hover::after { transform: scaleX(1); }

/* Actions */
.site-nav-actions { display: flex; align-items: center; gap: 0.25rem; }

.cart-btn {
	position: relative;
	padding: 0.5rem;
	transition: opacity 0.2s;
	color: inherit;
}
.cart-btn:hover { opacity: 0.6; }

.theme-cart-count {
	position: absolute;
	top: -2px; right: -2px;
	min-width: 20px; height: 20px;
	display: flex; align-items: center; justify-content: center;
	font-size: 10px;
	font-weight: 500;
	background: var(--color-primary);
	color: var(--color-primary-foreground);
	border-radius: 50%;
	font-family: var(--font-body);
}
.theme-cart-count:empty { display: none; }

.mobile-menu-btn { padding: 0.5rem; color: inherit; transition: opacity 0.2s; }
.mobile-menu-btn:hover { opacity: 0.6; }
@media (min-width: 768px) { .mobile-menu-btn { display: none; } }

/* Mobile nav dropdown */
.mobile-nav {
	border-top: 1px solid var(--color-border);
	padding: 1rem 0;
	background-color: rgba(245,240,236,0.97);
	overflow: hidden;
	transition: max-height 0.3s ease, opacity 0.3s ease;
	max-height: 0;
	opacity: 0;
	pointer-events: none;
}
.mobile-nav.is-open {
	max-height: 400px;
	opacity: 1;
	pointer-events: auto;
}
.mobile-nav-list { list-style: none; }
.mobile-nav-list li a,
.mobile-nav-list li button {
	display: block;
	padding: 0.5rem 0;
	font-family: var(--font-body);
	font-size: 0.875rem;
	letter-spacing: 0.02em;
	cursor: pointer;
	background: none;
	border: none;
	text-align: left;
	width: 100%;
	transition: opacity 0.2s;
}
.mobile-nav-list li a:hover,
.mobile-nav-list li button:hover { opacity: 0.6; }

/* =============================================================
   HERO SECTION
   ============================================================= */
.hero-section {
	position: relative;
	min-height: 100vh;
	display: flex;
	align-items: flex-end;
	overflow: hidden;
	background-color: var(--color-foreground);
}
.hero-media {
	position: absolute;
	inset: 0;
}
.hero-video {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.1s linear;
}
.hero-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to bottom, rgba(30,25,23,0.85) 0%, rgba(30,25,23,0.65) 50%, rgba(30,25,23,0.85) 100%);
}
.hero-content {
	position: relative;
	z-index: 10;
	padding-bottom: 5rem;
	padding-top: 5rem;
	text-align: center;
}
@media (min-width: 768px) { .hero-content { padding-bottom: 7rem; } }

.hero-eyebrow {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 0.75rem;
	margin-bottom: 2.5rem;
}
.hero-eyebrow-text {
	font-family: var(--font-body);
	font-size: 0.8rem;
	letter-spacing: 0.3em;
	text-transform: uppercase;
	color: rgba(255,255,255,0.85);
	font-weight: 300;
}
.hero-eyebrow-line {
	display: block;
	height: 1px;
	width: 32px;
	background: rgba(255,255,255,0.4);
}

.hero-headline {
	color: #fff;
	font-family: var(--font-display);
	font-size: clamp(2.75rem, 7vw, 5rem);
	letter-spacing: -0.02em;
	line-height: 1.15;
	margin-bottom: 2.5rem;
}
@media (min-width: 1024px) { .hero-headline { font-size: clamp(4rem, 7vw, 5.5rem); } }

.hero-headline-word { display: block; }
.hero-headline-script {
	font-family: var(--font-script);
	font-size: clamp(2.75rem, 7vw, 5rem);
	line-height: 1.4;
	display: inline-block;
}
@media (min-width: 1024px) { .hero-headline-script { font-size: clamp(4rem, 7vw, 5.5rem); } }

.hero-cta {
	display: flex;
	flex-direction: column;
	gap: 0.75rem;
	justify-content: center;
	padding: 0 1rem;
}
@media (min-width: 640px) { .hero-cta { flex-direction: row; } }

/* =============================================================
   SECTION ANIMATIONS
   ============================================================= */
.section-anim { opacity: 0; transform: translateY(30px); transition: opacity 0.7s ease, transform 0.7s ease; }
.section-anim.is-visible { opacity: 1; transform: none; }

/* =============================================================
   ABOUT SECTION
   ============================================================= */
.about-section {
	background-color: var(--color-secondary);
	scroll-margin-top: var(--header-height);
}
.about-inner {
	max-width: 48rem;
	margin: 0 auto;
	padding: 4rem 0;
	text-align: center;
}
@media (min-width: 768px) { .about-inner { padding: 6rem 0; } }
.about-text {
	margin-top: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1rem;
	color: var(--color-muted-foreground);
	font-size: 1rem;
	line-height: 1.75;
}
@media (min-width: 768px) { .about-text { font-size: 1.0625rem; } }
.about-text-italic { font-style: italic; }

/* =============================================================
   SERVICES SECTION
   ============================================================= */
.services-section {
	scroll-margin-top: var(--header-height);
}
.services-header {
	margin-bottom: 3rem;
	padding: 4rem 0 0;
}
@media (min-width: 768px) { .services-header { padding: 6rem 0 0; margin-bottom: 4rem; } }

.service-block {
	display: grid;
	grid-template-columns: 1fr;
	margin-bottom: 1.5rem;
	overflow: hidden;
}
@media (min-width: 768px) { .service-block { grid-template-columns: 1fr 1fr; } }

.service-block--img-right .service-content { order: 2; }
@media (min-width: 768px) { .service-block--img-right .service-content { order: 1; } }
@media (min-width: 768px) { .service-block--img-right .service-image-wrap { order: 2; } }
.service-block--img-right .service-image-wrap { order: 1; }

.service-image-wrap {
	aspect-ratio: 3 / 2;
	overflow: hidden;
}
.service-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform 0.7s ease;
	display: block;
}
.service-block:hover .service-img { transform: scale(1.05); }

.service-content {
	position: relative;
	display: flex;
	flex-direction: column;
	justify-content: center;
	padding: 2rem;
	background-color: var(--color-secondary);
	overflow: hidden;
	transition: background-color 0.5s ease;
}
@media (min-width: 768px) { .service-content { padding: 3rem 4rem; } }
@media (min-width: 1024px) { .service-content { padding: 4rem 5rem; } }
.service-block:hover .service-content { background-color: rgba(232,226,218,0.8); }

.service-icon-bg {
	position: absolute;
	right: 1rem; bottom: 1rem;
	width: 8rem; height: 8rem;
	color: rgba(30,25,23,0.04);
	transition: all 0.7s ease;
	pointer-events: none;
}
@media (min-width: 768px) { .service-icon-bg { width: 11rem; height: 11rem; } }
.service-block:hover .service-icon-bg {
	color: rgba(30,25,23,0.08);
	transform: rotate(12deg) scale(1.1);
}
.service-icon-bg svg { width: 100%; height: 100%; }

.service-title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	margin-bottom: 1rem;
	position: relative;
	z-index: 1;
	transition: transform 0.5s ease;
}
@media (min-width: 768px) { .service-title { font-size: 1.875rem; } }
.service-block:hover .service-title { transform: translateX(4px); }

.service-text {
	color: var(--color-muted-foreground);
	line-height: 1.75;
	font-size: 1rem;
	position: relative;
	z-index: 1;
}
@media (min-width: 768px) { .service-text { font-size: 1.0625rem; } }

/* Services section padding at bottom */
.services-section .container-wide { padding-bottom: 4rem; }
@media (min-width: 768px) { .services-section .container-wide { padding-bottom: 6rem; } }

/* =============================================================
   SHOP SECTION
   ============================================================= */
.shop-section { scroll-margin-top: var(--header-height); }
.shop-header { margin-bottom: 3rem; padding: 4rem 0 0; }
@media (min-width: 768px) { .shop-header { padding: 5rem 0 0; } }

/* Category filter pills */
.shop-category-filters {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0.5rem;
	margin-top: 1.5rem;
	margin-bottom: 1rem;
}
.shop-cat-btn {
	padding: 0.625rem 1.25rem;
	font-family: var(--font-body);
	font-size: 0.875rem;
	background-color: var(--color-secondary);
	color: var(--color-secondary-foreground);
	transition: background-color 0.2s, transform 0.15s;
	cursor: pointer;
	border: none;
}
.shop-cat-btn:hover { background-color: var(--color-muted); transform: scale(1.05); }
.shop-cat-btn.active {
	background-color: var(--color-primary);
	color: var(--color-primary-foreground);
}
.shop-cat-btn.active:hover { background-color: var(--color-primary); }

/* Price filter */
.price-filter-wrap { display: flex; flex-direction: column; align-items: center; gap: 0.75rem; margin-top: 0.5rem; }
.price-filter-toggle {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	padding: 0.5rem 1rem;
	font-family: var(--font-body);
	font-size: 0.875rem;
	background-color: var(--color-secondary);
	color: var(--color-secondary-foreground);
	border: none;
	cursor: pointer;
	transition: background-color 0.2s;
}
.price-filter-toggle:hover { background-color: var(--color-muted); }
.price-filter-chevron { transition: transform 0.3s ease; }
.price-filter-toggle[aria-expanded="true"] .price-filter-chevron { transform: rotate(180deg); }
.price-filter-current { font-size: 0.75rem; opacity: 0.7; }

.price-filter-panel {
	width: 100%;
	max-width: 24rem;
	padding: 0.5rem 0;
	overflow: hidden;
	transition: max-height 0.3s ease, opacity 0.3s ease;
}
.price-filter-panel[hidden] {
	display: none;
}

/* Dual-thumb price range (full-width stacked inputs) */
.price-range-wrapper {
	position: relative;
	height: 28px;
	margin-bottom: 0.75rem;
}
.range-track-bg {
	position: absolute;
	left: 0;
	right: 0;
	top: 50%;
	transform: translateY(-50%);
	height: 4px;
	background: var(--color-muted);
	border-radius: 2px;
	pointer-events: none;
	z-index: 0;
}
.range-track-fill {
	position: absolute;
	height: 4px;
	background: var(--color-primary);
	top: 50%;
	transform: translateY(-50%);
	pointer-events: none;
	z-index: 1;
	border-radius: 2px;
}
.price-range-input {
	position: absolute;
	left: 0;
	top: 0;
	width: 100%;
	height: 28px;
	margin: 0;
	padding: 0;
	background: none;
	outline: none;
	pointer-events: none;
	-webkit-appearance: none;
	appearance: none;
}
.price-range-input--min { z-index: 2; }
.price-range-input--max { z-index: 3; }
.price-range-input::-webkit-slider-runnable-track {
	height: 4px;
	background: transparent;
}
.price-range-input::-moz-range-track {
	height: 4px;
	background: transparent;
}
.price-range-input::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 16px;
	height: 16px;
	margin-top: -6px;
	border-radius: 50%;
	background: var(--color-primary);
	cursor: pointer;
	border: 2px solid var(--color-background);
	box-shadow: 0 1px 4px rgba(0,0,0,0.2);
	pointer-events: auto;
}
.price-range-input::-moz-range-thumb {
	width: 16px;
	height: 16px;
	border-radius: 50%;
	background: var(--color-primary);
	cursor: pointer;
	border: 2px solid var(--color-background);
	box-shadow: 0 1px 4px rgba(0,0,0,0.2);
	pointer-events: auto;
}
.price-range-labels {
	display: flex;
	justify-content: space-between;
	font-size: 0.75rem;
	color: var(--color-muted-foreground);
}

/* Product Grid */
.theme-product-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.5rem;
	align-items: stretch;
}
@media (min-width: 640px) { .theme-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .theme-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 2rem; } }

.theme-product-grid--related {
	grid-template-columns: repeat(2, 1fr);
}
@media (min-width: 1024px) { .theme-product-grid--related { grid-template-columns: repeat(4, minmax(0, 1fr)); } }

.theme-product-card-wrap {
	display: flex;
	flex-direction: column;
}
.theme-product-card-wrap.product-hidden { display: none; }

/* Product Card */
.theme-product-card {
	display: flex;
	flex-direction: column;
	height: 100%;
	position: relative;
}
.theme-product-card__image-wrapper {
	position: relative;
	aspect-ratio: 1 / 1;
	overflow: hidden;
	background-color: var(--color-secondary);
	margin-bottom: 1rem;
}
.theme-product-card__image-wrapper img,
.theme-product-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
	transition: transform 0.6s ease;
}
.theme-product-card:hover .theme-product-card__image img { transform: scale(1.08); }
.theme-product-card__image { width: 100%; height: 100%; }

/* PATTERN A hit-area overlay */
.theme-card-link {
	position: absolute;
	inset: 0;
	z-index: 1;
	pointer-events: auto;
}
.theme-product-card:not(.theme-product-card--coming-soon) * { pointer-events: none; }
.theme-product-card:not(.theme-product-card--coming-soon) .theme-card-link { pointer-events: auto; }

.product-badge {
	position: absolute;
	top: 0.5rem; left: 0.5rem;
	padding: 0.375rem 0.75rem;
	font-size: 0.7rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.08em;
	z-index: 3;
	pointer-events: none;
}
@media (min-width: 768px) { .product-badge { top: 0.75rem; left: 0.75rem; } }
.product-badge--sold-out { background-color: var(--color-foreground); color: var(--color-background); }
.product-badge--coming-soon { background-color: var(--color-accent); color: #fff; }
.product-badge--sale { background-color: var(--color-accent); color: #fff; }

.theme-product-card--coming-soon .theme-product-card__image img { opacity: 0.6; }
.theme-product-card--coming-soon:hover .theme-product-card__image img { transform: none; }
.theme-product-card__coming-overlay {
	position: absolute;
	inset: 0;
	background: rgba(30, 25, 23, 0.4);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	pointer-events: none;
}
.theme-product-card__coming-label {
	font-family: var(--font-display);
	font-size: clamp(0.875rem, 2vw, 1.125rem);
	letter-spacing: 0.12em;
	text-transform: uppercase;
	color: #fff;
}
.theme-product-card--coming-soon .theme-product-card__name-text {
	cursor: default;
}

.product-main-img--dim { opacity: 0.65; }
.product-coming-soon-notice {
	margin-top: 1.25rem;
	padding: 1rem 1.25rem;
	background-color: var(--color-secondary);
	border: 1px solid var(--color-border);
}
.product-coming-soon-notice__text {
	margin: 0;
	font-family: var(--font-body);
	font-size: 0.9375rem;
	color: var(--color-muted-foreground);
}

.theme-product-card__info {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 0.25rem;
	margin-bottom: 0.75rem;
}
.theme-product-card__name {
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 500;
	transition: color 0.2s;
	line-height: 1.4;
}
.theme-product-card:hover .theme-product-card__name { color: var(--color-accent); }
.theme-product-card--coming-soon:hover .theme-product-card__name { color: inherit; }
.theme-product-card__name a { text-decoration: none; color: inherit; }
.theme-product-card__price {
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 600;
	color: var(--color-muted-foreground);
}
.theme-product-card__price del { opacity: 0.6; }
.theme-product-card__price ins { text-decoration: none; }

/* Hover overlay effect */
.theme-product-card__hover-overlay {
	position: absolute;
	inset: 0;
	background: rgba(30,25,23,0);
	transition: background 0.5s ease;
	pointer-events: none;
}
.theme-product-card:hover .theme-product-card__hover-overlay { background: rgba(30,25,23,0.05); }

.shop-empty-state { text-align: center; padding: 5rem 0; }
.shop-empty-state p { color: var(--color-muted-foreground); font-family: var(--font-body); }

.shop-show-more-wrap { text-align: center; margin-top: 2.5rem; }

.shop-section .container-wide { padding-bottom: 4rem; }
@media (min-width: 768px) { .shop-section .container-wide { padding-bottom: 5rem; } }

/* =============================================================
   CTA SECTION
   ============================================================= */
.cta-section {
	position: relative;
	overflow: hidden;
}
.cta-media {
	position: relative;
	height: 70vh;
	overflow: hidden;
}
@media (min-width: 768px) { .cta-media { height: 80vh; } }
.cta-bg-img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.cta-img-overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(30,25,23,0.75) 0%, rgba(30,25,23,0.15) 50%, transparent 100%);
}
.cta-content-wrap {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
}
.cta-inner {
	width: 100%;
	padding: 2rem 0;
	background-color: rgba(30,25,23,0.6);
	backdrop-filter: blur(4px);
}
@media (min-width: 768px) {
	.cta-inner { padding: 2.5rem 0; }
}
.cta-inner__row {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 1.5rem;
}
@media (min-width: 768px) {
	.cta-inner__row {
		flex-direction: row;
		align-items: center;
		justify-content: space-between;
	}
}
.cta-title {
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 3vw, 2.25rem);
	color: #fff;
	margin-bottom: 0.5rem;
}
.cta-text {
	color: rgba(255,255,255,0.7);
	font-family: var(--font-body);
	font-weight: 300;
	max-width: 32rem;
	font-size: 0.9375rem;
	line-height: 1.65;
}
.cta-btns {
	display: flex;
	gap: 0.75rem;
	flex-shrink: 0;
}

/* =============================================================
   CONTACT SECTION
   ============================================================= */
.contact-section {
	background-color: var(--color-secondary);
	scroll-margin-top: var(--header-height);
}
.contact-inner { padding: 5rem 0; }
.contact-header { margin-bottom: 2.5rem; }
.contact-intro {
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	max-width: 32rem;
	margin: 1rem auto 0;
	line-height: 1.7;
}
.contact-info-row {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	align-items: flex-start;
	justify-content: center;
	margin-bottom: 2.5rem;
}
@media (min-width: 640px) { .contact-info-row { flex-direction: row; align-items: center; } }

.contact-info-item {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	transition: color 0.2s;
	text-decoration: none;
}
.contact-info-item:hover { color: var(--color-foreground); transform: scale(1.03); }
.contact-info-icon {
	width: 2.5rem; height: 2.5rem;
	background: var(--color-background);
	display: flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}

.contact-form { max-width: 48rem; margin: 0 auto; }
.contact-form-row { display: flex; flex-direction: column; gap: 1.25rem; margin-bottom: 1.25rem; }
@media (min-width: 768px) { .contact-form-row--two { flex-direction: row; } }
.contact-form-field { flex: 1; }
.contact-form-error {
	color: #c0392b;
	font-size: 0.875rem;
	text-align: center;
	padding: 0.5rem;
}

.contact-success { text-align: center; padding: 2.5rem 0; max-width: 48rem; margin: 0 auto; }
.contact-success-icon {
	width: 4rem; height: 4rem;
	background: var(--color-primary);
	color: var(--color-primary-foreground);
	display: flex; align-items: center; justify-content: center;
	margin: 0 auto 1.5rem;
}
.contact-success-title {
	font-family: var(--font-display);
	font-size: 1.75rem;
	margin-bottom: 0.5rem;
}
.contact-success-text { color: var(--color-muted-foreground); font-family: var(--font-body); }

/* =============================================================
   FOOTER
   ============================================================= */
.site-footer { border-top: 1px solid var(--color-border); }
.footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	padding: 3rem 0;
}
@media (min-width: 768px) { .footer-grid { grid-template-columns: 1fr 1fr 1fr; gap: 3rem; padding: 4rem 0; } }

.footer-logo-link { display: flex; align-items: center; gap: 0.75rem; text-decoration: none; }
.footer-logo-text {
	font-family: var(--font-display);
	font-size: 1.25rem;
	letter-spacing: -0.02em;
}
.footer-tagline {
	margin-top: 1rem;
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	max-width: 20rem;
	line-height: 1.65;
	font-family: var(--font-body);
}
.footer-social { display: flex; gap: 1rem; margin-top: 1rem; }
.footer-social-link {
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	transition: color 0.2s;
	text-decoration: none;
}
.footer-social-link:hover { color: var(--color-foreground); }

.footer-col-title {
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 600;
	margin-bottom: 1rem;
}
.footer-nav-list { list-style: none; }
.footer-nav-list li { margin-bottom: 0.75rem; }
.footer-nav-list li a,
.footer-nav-list li button {
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	transition: color 0.2s;
	background: none;
	border: none;
	cursor: pointer;
	padding: 0;
	text-decoration: none;
}
.footer-nav-list li a:hover,
.footer-nav-list li button:hover { color: var(--color-foreground); }

.footer-contact-list { list-style: none; }
.footer-contact-list li {
	display: flex;
	align-items: center;
	gap: 0.5rem;
	margin-bottom: 0.75rem;
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
}
.footer-contact-list a {
	color: var(--color-muted-foreground);
	transition: color 0.2s;
	text-decoration: none;
}
.footer-contact-list a:hover { color: var(--color-foreground); }

.footer-bottom {
	display: flex;
	flex-direction: column;
	gap: 1rem;
	padding-top: 1.5rem;
	border-top: 1px solid var(--color-border);
	padding-bottom: 2.5rem;
}
@media (min-width: 640px) { .footer-bottom { flex-direction: row; justify-content: space-between; align-items: center; } }
.footer-copyright, .footer-credit {
	font-size: 0.75rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	text-decoration: none;
}
.footer-credit:hover { color: var(--color-foreground); }

/* =============================================================
   CART DRAWER
   ============================================================= */
body.cart-open { overflow: hidden; }

#theme-cart-overlay {
	position: fixed;
	inset: 0;
	background: rgba(30,25,23,0.2);
	z-index: 150;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.3s ease;
}
body.cart-open #theme-cart-overlay {
	opacity: 1;
	pointer-events: auto;
}

#theme-cart-drawer {
	position: fixed;
	right: 0; top: 0;
	height: 100%;
	width: 100%;
	max-width: 28rem;
	background: var(--color-background);
	z-index: 200;
	display: flex;
	flex-direction: column;
	box-shadow: var(--shadow-elevated);
	transform: translateX(100%);
	transition: transform 0.35s var(--transition);
}
body.cart-open #theme-cart-drawer { transform: translateX(0); }
#theme-cart-drawer.is-updating { opacity: 0.6; pointer-events: none; }

.cart-drawer-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 1.5rem;
	border-bottom: 1px solid var(--color-border);
	flex-shrink: 0;
}
.cart-drawer-title {
	font-family: var(--font-display);
	font-size: 1.125rem;
	font-weight: 700;
}
.cart-drawer-close {
	padding: 0.25rem;
	transition: opacity 0.2s;
	cursor: pointer;
	color: inherit;
}
.cart-drawer-close:hover { opacity: 0.6; }

.cart-drawer-empty {
	flex: 1;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	text-align: center;
	gap: 1.5rem;
}
.cart-drawer-empty svg { color: var(--color-muted-foreground); }
.cart-drawer-empty-text { color: var(--color-muted-foreground); font-family: var(--font-body); }

.cart-drawer-items {
	flex: 1;
	overflow-y: auto;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
.cart-drawer-item {
	display: flex;
	gap: 1rem;
}
.cart-item-image-link {
	width: 5rem;
	height: 6rem;
	flex-shrink: 0;
	background: var(--color-secondary);
	overflow: hidden;
	display: block;
}
.cart-item-image-link img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.cart-item-details { flex: 1; min-width: 0; }
.cart-item-name {
	font-size: 0.875rem;
	font-weight: 500;
	font-family: var(--font-body);
	display: block;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	text-decoration: none;
	transition: opacity 0.2s;
}
.cart-item-name:hover { opacity: 0.7; }
.cart-item-attrs { margin-top: 0.25rem; }
.cart-item-attr {
	display: block;
	font-size: 0.75rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
}
.cart-item-price {
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	margin-top: 0.25rem;
}
.cart-item-controls {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	margin-top: 0.75rem;
}
.cart-qty-btn {
	padding: 0.25rem;
	transition: background-color 0.2s;
	cursor: pointer;
	color: inherit;
	display: flex; align-items: center; justify-content: center;
}
.cart-qty-btn:hover { background-color: var(--color-secondary); }
.cart-item-qty {
	font-size: 0.875rem;
	min-width: 1.5rem;
	text-align: center;
	font-family: var(--font-body);
}
.cart-item-remove {
	margin-left: auto;
	font-size: 0.75rem;
	color: var(--color-muted-foreground);
	cursor: pointer;
	font-family: var(--font-body);
	transition: color 0.2s;
}
.cart-item-remove:hover { color: var(--color-foreground); }

.cart-drawer-footer {
	padding: 1.5rem;
	border-top: 1px solid var(--color-border);
	flex-shrink: 0;
}
.cart-subtotal-row {
	display: flex;
	justify-content: space-between;
	font-size: 0.875rem;
	margin-bottom: 0.5rem;
	font-family: var(--font-body);
}
.cart-subtotal-label { color: var(--color-muted-foreground); }
.cart-subtotal-value { font-weight: 500; }
.cart-free-shipping {
	font-size: 0.75rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	margin-bottom: 1rem;
}

/* =============================================================
   SINGLE PRODUCT PAGE
   ============================================================= */
.single-product .site-main { padding-top: var(--header-height); }

.single-product-back { padding: 1.5rem 0; }
.back-to-shop-link {
	display: inline-flex;
	align-items: center;
	gap: 0.5rem;
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	transition: color 0.2s;
	text-decoration: none;
}
.back-to-shop-link:hover { color: var(--color-foreground); }

.theme-product-layout {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
	padding-bottom: 5rem;
}
@media (min-width: 1024px) {
	.theme-product-layout {
		grid-template-columns: 1fr 1fr;
		gap: 4rem;
	}
}
.theme-product-layout { min-width: 0; }
.theme-product-gallery, .theme-product-info { min-width: 0; max-width: 100%; }

.product-main-image-wrap {
	aspect-ratio: 3 / 4;
	background: var(--color-secondary);
	overflow: hidden;
	margin-bottom: 1rem;
}
.product-main-img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.theme-product-thumbnails {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 0.5rem;
	flex-wrap: wrap;
	max-width: 100%;
}
.product-thumb-btn {
	aspect-ratio: 1 / 1;
	overflow: hidden;
	border: 2px solid transparent;
	transition: all 0.2s;
	cursor: pointer;
	padding: 0;
	background: var(--color-secondary);
}
.product-thumb-btn img { width: 100%; height: 100%; object-fit: cover; display: block; }
.product-thumb-btn.is-active { border-color: var(--color-primary); }
.product-thumb-btn:not(.is-active) { opacity: 0.6; }
.product-thumb-btn:not(.is-active):hover { opacity: 1; }

/* Single product info */
.theme-product-info { padding: 0; }
@media (min-width: 1024px) { .theme-product-info { padding-top: 2.5rem; } }

.product-categories {
	font-size: 0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	margin-bottom: 0.5rem;
}
.product-categories a { color: inherit; text-decoration: none; }
.product-categories a:hover { color: var(--color-foreground); }

.product-title {
	font-family: var(--font-display);
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 700;
	margin-bottom: 1rem;
}
.product-price {
	font-family: var(--font-body);
	font-size: 1.5rem;
	font-weight: 600;
	margin-bottom: 1.5rem;
}
.product-stock {
	display: inline-block;
	font-size: 0.875rem;
	font-weight: 600;
	font-family: var(--font-body);
	margin-bottom: 1rem;
}
.product-stock--out { color: var(--color-muted-foreground); }

.product-description {
	color: var(--color-muted-foreground);
	line-height: 1.75;
	font-family: var(--font-body);
	font-size: 0.9375rem;
	margin-bottom: 2rem;
	white-space: pre-line;
	overflow-wrap: break-word;
	word-break: break-word;
}
.product-description p { margin-bottom: 0.875rem; }

/* Quantity + Add to Cart */
.theme-add-to-cart-area {
	display: flex;
	gap: 1rem;
	align-items: center;
	flex-wrap: wrap;
	margin-bottom: 2rem;
}
.theme-quantity-wrapper {
	display: flex;
	align-items: center;
	border: 1px solid var(--color-border);
	flex-shrink: 0;
}
.theme-qty-btn {
	padding: 0.75rem 1rem;
	font-size: 1rem;
	cursor: pointer;
	transition: background-color 0.2s;
	color: inherit;
	display: flex; align-items: center; justify-content: center;
}
.theme-qty-btn:hover { background-color: var(--color-secondary); }
.theme-qty-input {
	padding: 0.75rem;
	min-width: 3rem;
	text-align: center;
	border: none;
	border-left: 1px solid var(--color-border);
	border-right: 1px solid var(--color-border);
	background: transparent;
	color: var(--color-foreground);
	font-family: var(--font-body);
	font-size: 0.875rem;
	-moz-appearance: textfield;
}
.theme-qty-input::-webkit-inner-spin-button,
.theme-qty-input::-webkit-outer-spin-button { -webkit-appearance: none; }
.theme-qty-input:focus { outline: none; }

.single_add_to_cart_button.button,
.add_to_cart_button.button,
a.single_add_to_cart_button,
a.add_to_cart_button {
	background-color: var(--color-primary) !important;
	color: var(--color-primary-foreground) !important;
	border: none !important;
	border-radius: var(--btn-radius) !important;
	min-height: var(--btn-height) !important;
	padding: var(--btn-padding) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-family: var(--font-body) !important;
	font-size: var(--btn-font-size) !important;
	font-weight: var(--btn-font-weight) !important;
	letter-spacing: var(--btn-letter-spacing) !important;
	text-transform: var(--btn-text-transform) !important;
	cursor: pointer !important;
	transition: opacity 0.2s ease !important;
	text-decoration: none !important;
}
.single_add_to_cart_button.button:hover,
.add_to_cart_button.button:hover {
	opacity: 0.85 !important;
	background-color: var(--color-primary) !important;
	color: var(--color-primary-foreground) !important;
}
.single_add_to_cart_button.button:disabled,
.single_add_to_cart_button.button.disabled,
.add_to_cart_button.button:disabled,
.add_to_cart_button.button.disabled {
	cursor: not-allowed !important;
	opacity: 0.4 !important;
	pointer-events: none !important;
}
.single_add_to_cart_button.button:disabled:hover,
.single_add_to_cart_button.button.disabled:hover,
.add_to_cart_button.button:disabled:hover,
.add_to_cart_button.button.disabled:hover {
	opacity: 0.4 !important;
	background-color: var(--color-primary) !important;
}

/* Hide "View cart" after AJAX add */
.woocommerce-page a.added_to_cart.wc-forward,
.single-product a.added_to_cart.wc-forward,
body a.added_to_cart.wc-forward { display: none !important; }

/* Add to cart button loading state */
.ajax_add_to_cart.theme-btn-loading {
	opacity: 0.6 !important;
	pointer-events: none !important;
	cursor: wait !important;
}

/* Product short desc section */
.product-short-desc-section {
	border-top: 1px solid var(--color-border);
	padding-top: 2rem;
	margin-top: 0.5rem;
}
.product-section-title {
	font-family: var(--font-body);
	font-size: 0.875rem;
	font-weight: 600;
	margin-bottom: 1rem;
}
.woocommerce-product-details__short-description,
.woocommerce-variation-description,
.posted_in {
	overflow-wrap: break-word;
	word-break: break-word;
}
.woocommerce-product-details__short-description ul {
	list-style: disc;
	padding-left: 1.25rem;
}
.woocommerce-product-details__short-description li {
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	font-family: var(--font-body);
	margin-bottom: 0.5rem;
	display: flex;
	align-items: flex-start;
	gap: 0.5rem;
}
.woocommerce-product-details__short-description li::before {
	content: '';
	width: 6px; height: 6px;
	background: var(--color-primary);
	border-radius: 50%;
	margin-top: 0.4rem;
	flex-shrink: 0;
}
.woocommerce-product-details__short-description li { list-style: none; }

/* Related products */
.related-products-section {
	border-top: 1px solid var(--color-border);
	padding-top: 5rem;
	padding-bottom: 5rem;
}
.related-products-section .section-heading {
	font-size: 1.25rem;
	margin-bottom: 2.5rem;
}

/* Variable product form */
.single-product .variations.shop_attributes tbody,
.single-product .variations tbody tr,
.single-product .variations tbody td {
	display: block;
	width: 100%;
}
.single-product .variations tbody td.label { padding-bottom: 0.25rem; }
.single-product .variations tbody td.value { padding-top: 0; margin-bottom: 1rem; }
.theme-attr-select-hidden { display: none !important; }

.single_variation_wrap { margin-top: 1rem; }

/* =============================================================
   ARCHIVE / SHOP PAGE
   ============================================================= */
.woocommerce-archive .site-main { padding-top: var(--header-height); }
.archive-header { padding: 2rem 0; }
.archive-header h1 {
	font-family: var(--font-display);
	font-size: 2rem;
	font-weight: 700;
}

/* =============================================================
   PAGE TEMPLATES (inner pages)
   ============================================================= */
.inner-page-main { padding-top: var(--header-height); min-height: 80vh; }
.inner-page-main .container-wide { padding-top: 2.5rem; padding-bottom: 4rem; }
.page-title {
	font-family: var(--font-display);
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 700;
	margin-bottom: 2rem;
	padding-bottom: 1rem;
	border-bottom: 1px solid var(--color-border);
}
.entry-content {
	font-family: var(--font-body);
	color: var(--color-foreground);
	line-height: 1.75;
	max-width: 72ch;
}
.entry-content p { margin-bottom: 1rem; }

/* =============================================================
   404 PAGE
   ============================================================= */
.not-found-main {
	padding-top: var(--header-height);
	min-height: 80vh;
	background: var(--color-muted);
}
.not-found-inner {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	min-height: calc(80vh - var(--header-height));
	gap: 1rem;
}
.not-found-code { font-size: 4rem; font-weight: 700; font-family: var(--font-display); }
.not-found-msg { font-size: 1.25rem; color: var(--color-muted-foreground); font-family: var(--font-body); }

/* =============================================================
   WOOCOMMERCE CHECKOUT PAGE
   ============================================================= */
body.woocommerce-checkout .site-main {
	padding-top: var(--header-height, 80px);
	padding-bottom: 4rem;
}
body.woocommerce-checkout .wc-block-checkout {
	display: block;
}
body.woocommerce-checkout .entry-content {
	max-width: 100%;
}
@media (min-width: 768px) {
	body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout.is-large {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: var(--checkout-gap, 2rem);
		align-items: start;
	}
}
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
	min-width: 0;
	width: 100%;
	max-width: none;
}

/* Checkout Blocks: labels match .form-label (contact form) */
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-text-input .wc-block-components-text-input__label,
body.woocommerce-checkout .wc-block-components-select label,
body.woocommerce-checkout .wc-block-components-select .wc-block-components-select__label,
body.woocommerce-checkout .wc-block-components-textarea label,
body.woocommerce-checkout .wc-block-components-textarea .wc-block-components-textarea__label {
	display: block !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	margin-bottom: 0.5rem !important;
	font-family: var(--font-body) !important;
	color: var(--color-foreground) !important;
}

/* Checkbox / radio: typography like contact, keep default layout */
body.woocommerce-checkout .wc-block-components-checkbox-control__label,
body.woocommerce-checkout .wc-block-components-radio-control__label {
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	font-family: var(--font-body) !important;
	color: var(--color-foreground) !important;
}

/* Checkout Blocks: fields match .form-input look; do not set padding (Woo defaults) */
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-textarea textarea {
	width: 100% !important;
	max-width: none !important;
	background: var(--color-background) !important;
	border: 1px solid var(--color-border) !important;
	border-radius: 0 !important;
	color: var(--color-foreground) !important;
	font-family: var(--font-body) !important;
	font-size: 0.875rem !important;
	transition: box-shadow 0.2s ease !important;
}
body.woocommerce-checkout .wc-block-components-text-input input::placeholder,
body.woocommerce-checkout .wc-block-components-textarea textarea::placeholder {
	color: var(--color-muted-foreground) !important;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-select select:focus,
body.woocommerce-checkout .wc-block-components-textarea textarea:focus {
	outline: none !important;
	box-shadow: 0 0 0 2px rgba(30,25,23,0.15) !important;
}

/* Classic shortcode checkout: same as contact form fields; no padding override */
body.woocommerce-checkout .woocommerce form.checkout .form-row label,
body.woocommerce-checkout .woocommerce form.woocommerce-checkout .form-row label {
	display: block !important;
	font-size: 0.875rem !important;
	font-weight: 500 !important;
	margin-bottom: 0.5rem !important;
	font-family: var(--font-body) !important;
	color: var(--color-foreground) !important;
}
body.woocommerce-checkout .woocommerce form .input-text,
body.woocommerce-checkout .woocommerce form input.input-text,
body.woocommerce-checkout .woocommerce form select,
body.woocommerce-checkout .woocommerce form textarea {
	background: var(--color-background) !important;
	border: 1px solid var(--color-border) !important;
	border-radius: 0 !important;
	color: var(--color-foreground) !important;
	font-family: var(--font-body) !important;
	font-size: 0.875rem !important;
	transition: box-shadow 0.2s ease !important;
}
body.woocommerce-checkout .woocommerce form .input-text::placeholder,
body.woocommerce-checkout .woocommerce form textarea::placeholder {
	color: var(--color-muted-foreground) !important;
}
body.woocommerce-checkout .woocommerce form .input-text:focus,
body.woocommerce-checkout .woocommerce form select:focus,
body.woocommerce-checkout .woocommerce form textarea:focus {
	outline: none !important;
	box-shadow: 0 0 0 2px rgba(30,25,23,0.15) !important;
}
body.woocommerce-checkout .wc-block-checkout__sidebar {
	background-color: var(--color-secondary);
	border-radius: var(--card-radius);
	padding: var(--section-padding, 2rem);
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
	background-color: var(--color-primary) !important;
	color: var(--color-primary-foreground) !important;
	border-radius: var(--btn-radius) !important;
	font-family: var(--font-body) !important;
	font-weight: 500 !important;
	border: none !important;
	min-height: var(--btn-height) !important;
	padding: var(--btn-padding) !important;
	width: 100% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	transition: opacity 0.2s !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
	opacity: 0.85 !important;
}
body.woocommerce-checkout h2,
body.woocommerce-checkout .wc-block-components-form-step__title {
	font-family: var(--font-display) !important;
	font-size: 1.25rem !important;
	font-weight: 700 !important;
	margin-bottom: 1rem !important;
}

/* =============================================================
   WOOCOMMERCE THANK YOU PAGE
   ============================================================= */
body.theme-thankyou-page { overflow-x: hidden; }
body.theme-thankyou-page .woocommerce-order { font-family: var(--font-body); }
body.theme-thankyou-page .woocommerce-order h2,
body.theme-thankyou-page .woocommerce-order-details__title {
	font-family: var(--font-display);
	font-size: 1.5rem;
	font-weight: 700;
	padding: 0 0 1rem 0;
	margin-bottom: 1rem;
}
body.theme-thankyou-page .woocommerce-order-overview {
	background: var(--color-secondary);
	padding: 1.5rem;
	margin-bottom: 2rem;
}
body.theme-thankyou-page .woocommerce-order-overview li {
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	display: inline-block;
	margin-right: 1.5rem;
	margin-bottom: 0.5rem;
}
body.theme-thankyou-page .woocommerce-order-overview li strong { color: var(--color-foreground); }
body.theme-thankyou-page .woocommerce-order-details table {
	width: 100%;
	table-layout: fixed;
	border-collapse: collapse;
	font-size: 0.875rem;
}
body.theme-thankyou-page .woocommerce-order-details tfoot th { text-align: left; }
body.theme-thankyou-page .woocommerce-order-details tfoot td { text-align: right; }
body.theme-thankyou-page .woocommerce-customer-details {
	display: flex;
	flex-direction: column;
	gap: 1.5rem;
}
@media (min-width: 768px) {
	body.theme-thankyou-page .woocommerce-customer-details {
		display: grid;
		grid-template-columns: 1fr 1fr;
		gap: 2rem;
		align-items: start;
	}
}
body.theme-thankyou-page .woocommerce-customer-details address {
	min-width: 0;
	font-style: normal;
	font-size: 0.875rem;
	color: var(--color-muted-foreground);
	line-height: 1.7;
	overflow-wrap: break-word;
}
.thankyou-wrap {
	padding: 2rem 0;
	font-family: var(--font-body);
}

/* =============================================================
   WOOCOMMERCE GENERAL OVERRIDES
   ============================================================= */
/* Notices */
.single-product .woocommerce-message,
.single-product .woocommerce-info { display: none; }
#theme-cart-drawer .woocommerce-message { display: none; }

.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
	font-family: var(--font-body);
	padding: 1rem 1.5rem;
	margin-bottom: 1rem;
	border-radius: 0;
	font-size: 0.875rem;
}
.woocommerce-message { background: var(--color-secondary); border-left: 3px solid var(--color-primary); }
.woocommerce-error { background: rgba(192,57,43,0.06); border-left: 3px solid #c0392b; }
.woocommerce-info { background: var(--color-secondary); border-left: 3px solid var(--color-accent); }

/* Pagination */
.woocommerce-pagination {
	margin-top: 2.5rem;
	text-align: center;
}
.woocommerce-pagination ul {
	display: inline-flex;
	gap: 0.25rem;
	list-style: none;
}
.woocommerce-pagination ul li a,
.woocommerce-pagination ul li span {
	padding: 0.5rem 0.75rem;
	font-size: 0.875rem;
	font-family: var(--font-body);
	background: var(--color-secondary);
	display: inline-block;
	transition: background 0.2s;
}
.woocommerce-pagination ul li a:hover,
.woocommerce-pagination ul li span.current {
	background: var(--color-primary);
	color: var(--color-primary-foreground);
}

/* =============================================================
   FRONT PAGE / INNER PAGE SCROLL OFFSET
   ============================================================= */
#about, #services, #shop, #contact {
	scroll-margin-top: var(--header-height);
}

/* =============================================================
   RESPONSIVE TWEAKS
   ============================================================= */
@media (max-width: 767px) {
	.cta-inner__row { gap: 1rem; }
	.cta-btns { flex-direction: column; width: 100%; }
	.cta-btns .btn { width: 100%; }
	.theme-add-to-cart-area { flex-direction: column; }
	.theme-add-to-cart-area .single_add_to_cart_button { flex: 1 1 auto; width: 100%; }
}
.single-product .single_add_to_cart_button {
	flex: 1 1 auto;
	min-width: 160px;
}

/* =============================================================
   ANIMATIONS
   ============================================================= */
@keyframes fadeIn {
	from { opacity: 0; }
	to { opacity: 1; }
}
@keyframes slideUp {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}
.animate-fade-in { animation: fadeIn 0.6s ease forwards; }
.animate-slide-up { animation: slideUp 0.6s ease forwards; }
