/* ============================================================
   SCOTT HARRIS PHOTOGRAPHY — THEME CSS
   ============================================================ */

/* ============================================================
   GOOGLE FONTS ARE ENQUEUED VIA PHP — NOT IMPORTED HERE
   ============================================================ */

/* ============================================================
   CSS CUSTOM PROPERTIES (COLOR VARIABLES)
   ============================================================ */
:root {
	--color-background:   #fafaf8;
	--color-foreground:   #1a1f24;
	--color-primary:      #536070;
	--color-primary-fg:   #ffffff;
	--color-secondary:    #f2f2ef;
	--color-secondary-fg: #4a5260;
	--color-muted:        #ebebea;
	--color-muted-fg:     #717b84;
	--color-accent:       #3d6147;
	--color-accent-fg:    #ffffff;
	--color-border:       #e0e0dd;
	--color-earth-brown:  #6b5440;
	--color-destructive:  #f03a3a;

	--font-display: 'Playfair Display', Georgia, serif;
	--font-body:    'Inter', -apple-system, BlinkMacSystemFont, sans-serif;

	--radius:     0.75rem;
	--radius-sm:  0.5rem;
	--radius-xl:  1rem;
	--radius-2xl: 1.5rem;

	--shadow-soft:     0 4px 24px -4px rgba(26,31,36,0.08);
	--shadow-elevated: 0 8px 40px -8px rgba(0,0,0,0.10);
	--shadow-glow:     0 8px 40px rgba(83,96,112,0.10);

	--transition: cubic-bezier(0.4, 0, 0.2, 1);

	--header-height: 4rem;
}

@media (min-width: 1024px) {
	:root { --header-height: 5rem; }
}

/* ============================================================
   RESET & BASE
   ============================================================ */
*, *::before, *::after {
	box-sizing: border-box;
	margin: 0;
	padding: 0;
	border: 0 solid var(--color-border);
}

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
}

body {
	background-color: var(--color-background);
	color:            var(--color-foreground);
	font-family:      var(--font-body);
	font-size:        1rem;
	line-height:      1.6;
	-webkit-font-smoothing: antialiased;
	-moz-osx-font-smoothing: grayscale;
}

img, video {
	max-width: 100%;
	height:    auto;
	display:   block;
}

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

button {
	background: none;
	border:     none;
	cursor:     pointer;
	font-family: inherit;
	font-size:  inherit;
	color:      inherit;
}

ul, ol { list-style: none; }

h1, h2, h3, h4, h5, h6 {
	font-family: var(--font-display);
	font-weight: 500;
	line-height: 1.2;
	letter-spacing: -0.02em;
}

/* ============================================================
   LAYOUT UTILITIES
   ============================================================ */
.container-wide {
	width:      100%;
	max-width:  80rem;
	margin-left:  auto;
	margin-right: auto;
	padding-left:  1.5rem;
	padding-right: 1.5rem;
}

@media (min-width: 1024px) {
	.container-wide {
		padding-left:  2rem;
		padding-right: 2rem;
	}
}

.text-center { text-align: center; }

/* ============================================================
   TYPOGRAPHY
   ============================================================ */
.section-eyebrow {
	display:         inline-block;
	font-family:     var(--font-body);
	font-size:       0.7rem;
	letter-spacing:  0.2em;
	text-transform:  uppercase;
	color:           var(--color-muted-fg);
	margin-bottom:   0.5rem;
}

.section-header .section-eyebrow {
	color: var(--color-muted-fg);
}

.section-heading {
	font-family:    var(--font-display);
	font-size:      clamp(1.75rem, 4vw, 2.5rem);
	font-weight:    500;
	letter-spacing: -0.02em;
	margin-top:     0.5rem;
	margin-bottom:  0.5rem;
}

.page-heading {
	font-family:    var(--font-display);
	font-size:      clamp(2rem, 5vw, 3.5rem);
	font-weight:    500;
	letter-spacing: -0.02em;
}

.page-entry-title {
	margin-top:    0;
	margin-bottom: 1.5rem;
}

.section-subtext {
	font-size:  0.875rem;
	color:      var(--color-muted-fg);
}

.editorial-quote {
	font-family:    var(--font-display);
	font-size:      clamp(1.25rem, 2.5vw, 2rem);
	font-style:     italic;
	font-weight:    400;
	line-height:    1.6;
	color:          var(--color-foreground);
}

.back-link {
	display:     inline-flex;
	align-items: center;
	gap:         0.5rem;
	font-size:   0.875rem;
	color:       var(--color-muted-fg);
	transition:  color 0.2s ease;
}

.back-link:hover { color: var(--color-foreground); }

/* ============================================================
   BUTTONS
   ============================================================ */
.btn {
	display:         inline-flex;
	align-items:     center;
	justify-content: center;
	gap:             0.5rem;
	padding:         0.75rem 2rem;
	border-radius:   var(--radius);
	font-family:     var(--font-body);
	font-size:       0.9375rem;
	font-weight:     500;
	line-height:     1;
	transition:      all 0.2s ease;
	cursor:          pointer;
	text-decoration: none;
	white-space:     nowrap;
}

.btn-primary {
	background-color: var(--color-primary);
	color:            var(--color-primary-fg);
}

.btn-primary:hover {
	background-color: color-mix(in srgb, var(--color-primary) 90%, black);
	color:            var(--color-primary-fg);
}

.btn-glow {
	box-shadow: 0 4px 20px rgba(83,96,112,0.18);
}

.btn-glow:hover {
	box-shadow: 0 8px 30px rgba(83,96,112,0.28);
}

.btn-outline {
	background-color: transparent;
	color:            var(--color-foreground);
	border:           1px solid rgba(26,31,36,0.2);
}

.btn-outline:hover {
	background-color: var(--color-secondary);
	border-color:     rgba(26,31,36,0.4);
}

.btn-outline-white {
	background-color: transparent;
	color:            rgba(255,255,255,0.9);
	border:           1px solid rgba(255,255,255,0.3);
}

.btn-outline-white:hover {
	background-color: rgba(255,255,255,0.1);
	color:            #fff;
}

/* ============================================================
   HEADER
   ============================================================ */
.site-header {
	position:   fixed;
	top:        0;
	left:       0;
	right:      0;
	z-index:    50;
	background: rgba(250,250,248,0.95);
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	border-bottom: 1px solid var(--color-border);
}

.header-nav {
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	height:          4rem;
}

@media (min-width: 1024px) {
	.header-nav { height: 5rem; }
}

.header-logo {
	display:     flex;
	align-items: center;
	gap:         0.5rem;
	text-decoration: none;
}

.header-logo-text {
	font-family:    var(--font-display);
	font-size:      1.125rem;
	font-weight:    600;
	letter-spacing: -0.02em;
	color:          var(--color-primary);
}

@media (min-width: 1024px) {
	.header-logo-text { font-size: 1.25rem; }
}

.header-desktop-nav {
	display: none;
	align-items: center;
	gap: 2rem;
}

@media (min-width: 768px) {
	.header-desktop-nav { display: flex; }
}

.header-nav-link {
	font-size:  0.875rem;
	font-family: var(--font-body);
	letter-spacing: 0.025em;
	color:      var(--color-foreground);
	position:   relative;
	transition: color 0.2s;
}

.header-nav-link::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);
}

.header-nav-link:hover::after,
.header-nav-link.current-menu-item::after { transform: scaleX(1); }

.header-actions {
	display:     flex;
	align-items: center;
	gap:         0.25rem;
}

.cart-btn {
	position:    relative;
	padding:     0.5rem;
	transition:  opacity 0.2s;
	line-height: 0;
}

.cart-btn:hover { opacity: 0.6; }

.theme-cart-count {
	position:         absolute;
	top:              -2px;
	right:            -2px;
	width:            1.25rem;
	height:           1.25rem;
	display:          flex;
	align-items:      center;
	justify-content:  center;
	font-size:        0.625rem;
	font-weight:      600;
	background-color: var(--color-primary);
	color:            var(--color-primary-fg);
	border-radius:    9999px;
}

.theme-cart-count:empty { display: none; }

.mobile-menu-btn {
	padding:   0.5rem;
	transition: opacity 0.2s;
	line-height: 0;
}

.mobile-menu-btn:hover { opacity: 0.6; }

@media (min-width: 768px) {
	.mobile-menu-btn { display: none; }
}

.mobile-nav {
	display:    none;
	flex-direction: column;
	gap:        1rem;
	padding-top:    1rem;
	padding-bottom: 1rem;
	border-top: 1px solid var(--color-border);
}

.mobile-nav.is-open { display: flex; }

.mobile-nav-link {
	font-size:      0.875rem;
	font-family:    var(--font-body);
	letter-spacing: 0.025em;
	padding:        0.5rem 0;
	color:          var(--color-foreground);
	transition:     color 0.2s;
}

.mobile-nav-link:hover { color: var(--color-muted-fg); }

/* ============================================================
   HERO SECTION
   ============================================================ */
.hero-section {
	position:         relative;
	min-height:       100vh;
	display:          flex;
	align-items:      center;
	justify-content:  center;
	overflow:         hidden;
}

.hero-bg-image {
	position:   absolute;
	inset:      0;
	width:      100%;
	height:     120%;
	object-fit: cover;
	top:        -10%;
	will-change: transform;
}

.hero-overlay {
	position:   absolute;
	inset:      0;
	background: linear-gradient(
		to bottom,
		rgba(0,0,0,0.65) 0%,
		rgba(0,0,0,0.45) 50%,
		rgba(0,0,0,0.75) 100%
	);
}

.hero-content {
	position:   relative;
	z-index:    10;
	text-align: center;
	padding-top:    6rem;
	padding-bottom: 6rem;
}

.hero-location-badge {
	display:        inline-flex;
	align-items:    center;
	gap:            0.5rem;
	font-size:      0.875rem;
	letter-spacing: 0.25em;
	text-transform: uppercase;
	color:          rgba(255,255,255,0.65);
	margin-bottom:  1.5rem;
	animation:      fadeIn 0.6s ease forwards;
}

.hero-heading {
	font-family:    var(--font-display);
	font-size:      clamp(2.25rem, 7vw, 4.5rem);
	font-weight:    500;
	letter-spacing: -0.03em;
	line-height:    1.1;
	color:          #fff;
	margin-bottom:  1.5rem;
	text-shadow:    0 2px 16px rgba(0,0,0,0.55), 0 1px 4px rgba(0,0,0,0.4);
	animation:      slideUp 0.6s ease forwards;
}

.hero-subtext {
	font-size:      clamp(1rem, 2vw, 1.125rem);
	color:          rgba(255,255,255,0.85);
	max-width:      36rem;
	margin:         0 auto 2.5rem;
	line-height:    1.7;
	text-shadow:    0 1px 8px rgba(0,0,0,0.5);
	animation:      slideUp 0.6s 0.1s ease forwards;
	opacity:        0;
	animation-fill-mode: forwards;
}

.hero-buttons {
	display:         flex;
	flex-direction:  column;
	gap:             1rem;
	justify-content: center;
	align-items:     center;
	animation:       slideUp 0.6s 0.2s ease forwards;
	opacity:         0;
	animation-fill-mode: forwards;
}

@media (min-width: 640px) {
	.hero-buttons {
		flex-direction: row;
	}
}

/* ============================================================
   MISSION SECTION
   ============================================================ */
.mission-section {
	padding:    7rem 0;
	position:   relative;
	overflow:   hidden;
	background: rgba(242,242,239,0.6);
}

.mission-inner {
	max-width:  48rem;
	margin:     0 auto;
	text-align: center;
}

.mission-text {
	color:       var(--color-muted-fg);
	margin-top:  2rem;
	line-height: 1.8;
	font-size:   clamp(0.875rem, 1.5vw, 1rem);
	max-width:   40rem;
	margin-left:  auto;
	margin-right: auto;
}

/* ============================================================
   ARTIST TEASER
   ============================================================ */
.artist-section {
	padding: 5rem 0;
}

.artist-grid {
	max-width:   64rem;
	margin:      0 auto;
	display:     grid;
	grid-template-columns: 1fr;
	gap:         2.5rem;
	align-items: center;
}

@media (min-width: 768px) {
	.artist-grid {
		grid-template-columns: 1fr 1fr;
		gap: 4rem;
	}
}

.artist-photo-wrap {
	aspect-ratio: 1;
	border-radius: var(--radius-2xl);
	overflow:     hidden;
	max-width:    20rem;
	margin:       0 auto;
	border:       1px solid rgba(83,96,112,0.12);
	box-shadow:   var(--shadow-soft);
}

@media (min-width: 768px) {
	.artist-photo-wrap { margin: 0; }
}

.artist-photo {
	width:      100%;
	height:     100%;
	object-fit: cover;
}

.artist-eyebrow {
	display:        inline-flex;
	align-items:    center;
	gap:            0.5rem;
	font-size:      0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--color-primary);
}

.artist-name {
	font-family: var(--font-display);
	font-size:   clamp(1.5rem, 3vw, 1.875rem);
	font-weight: 500;
	margin-top:  0.5rem;
	margin-bottom: 1rem;
}

.artist-subtitle {
	font-size:      0.6875rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--color-muted-fg);
	margin-bottom:  1rem;
	font-weight:    500;
}

.artist-bio {
	display:    flex;
	flex-direction: column;
	gap:        1rem;
	color:      var(--color-muted-fg);
	line-height: 1.8;
	font-size:   0.9375rem;
}

.artist-blockquote {
	margin-top:  1.5rem;
	padding-left: 1rem;
	border-left: 2px solid rgba(83,96,112,0.3);
}

.artist-blockquote p {
	font-family: var(--font-display);
	font-style:  italic;
	font-size:   1rem;
	color:       rgba(26,31,36,0.8);
	line-height: 1.7;
}

.artist-link {
	display:     inline-block;
	margin-top:  1.5rem;
	font-size:   0.875rem;
	font-weight: 500;
	color:       var(--color-primary);
	position:    relative;
}

.artist-link::after {
	content:    '';
	position:   absolute;
	bottom:     -1px;
	left:       0;
	width:      100%;
	height:     1px;
	background: currentColor;
	transform:  scaleX(0);
	transform-origin: left;
	transition: transform 0.3s ease;
}

.artist-link:hover::after { transform: scaleX(1); }

/* ============================================================
   SHOP SECTION
   ============================================================ */
.shop-section {
	padding: 5rem 0;
}

.section-header {
	margin-bottom: 3rem;
}

.section-header .section-heading {
	margin-top: 0.5rem;
}

.product-grid {
	display:               grid;
	grid-template-columns: 1fr;
	gap:                   1.5rem;
	max-width:             56rem;
	margin:                0 auto;
}

@media (min-width: 640px) {
	.product-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 768px) {
	.product-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 2rem;
	}
}

.coming-soon-placeholder {
	grid-column: 1 / -1;
	border-radius: var(--radius-xl);
	border: 2px dashed rgba(113,123,132,0.2);
	display:       flex;
	flex-direction: column;
	align-items:   center;
	justify-content: center;
	gap:           0.5rem;
	padding:       2.5rem;
	color:         rgba(113,123,132,0.6);
}

.coming-soon-placeholder p {
	font-size:   0.875rem;
	font-weight: 500;
	text-align:  center;
	line-height: 1.5;
}

/* ============================================================
   PRODUCT CARD
   ============================================================ */
.product-card {
	display:   block;
}

.product-card-image-wrap {
	position:      relative;
	aspect-ratio:  1;
	border-radius: var(--radius-xl);
	overflow:      hidden;
	margin-bottom: 1rem;
	cursor:        pointer;
}

.product-card-image-link {
	display: block;
	width:   100%;
	height:  100%;
}

.product-card-img,
.product-card-image-link img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	transition: transform 0.7s ease-out;
}

.product-card:hover .product-card-img,
.product-card:hover .product-card-image-link img {
	transform: scale(1.03);
}

.product-card-hover-overlay {
	position:   absolute;
	inset:      0;
	background: linear-gradient(to top, rgba(0,0,0,0.4) 0%, transparent 60%);
	opacity:    0;
	transition: opacity 0.5s ease;
}

.product-card:hover .product-card-hover-overlay { opacity: 1; }

.product-card-hover-content {
	position:         absolute;
	bottom:           0;
	left:             0;
	right:            0;
	padding:          1rem;
	display:          flex;
	align-items:      flex-end;
	justify-content:  space-between;
	opacity:          0;
	transition:       opacity 0.5s ease, transform 0.5s ease;
	transform:        translateY(0.5rem);
}

.product-card-hover-desc {
	color:            rgba(255, 255, 255, 0.9);
	font-size:        0.75rem;
	line-height:      1.5;
	max-width:        70%;
	margin:           0;
}

.product-card:hover .product-card-hover-content {
	opacity:   1;
	transform: translateY(0);
}

.quick-view-pill {
	background:    rgba(255,255,255,0.9);
	color:         var(--color-foreground);
	font-size:     0.875rem;
	font-weight:   500;
	padding:       0.5rem 1.25rem;
	border-radius: 9999px;
	backdrop-filter: blur(4px);
	white-space:   nowrap;
}

.product-card-info {
	display:   flex;
	flex-direction: column;
	gap:       0.375rem;
}

.product-card-name {
	font-size:   0.875rem;
	font-weight: 500;
	color:       var(--color-foreground);
	transition:  color 0.2s;
	display:     block;
}

.product-card:hover .product-card-name { color: var(--color-primary); }

.product-card-price {
	font-size: 0.875rem;
	color:     var(--color-muted-fg);
}

.product-card-price .amount { color: var(--color-muted-fg); }

.product-card-atc {
	display:     none; /* Hidden by default, shown on hover if needed */
}

.sold-out-badge {
	position:       absolute;
	top:            0.5rem;
	left:           0.5rem;
	padding:        0.25rem 0.5rem;
	font-size:      0.625rem;
	font-weight:    500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	background:     var(--color-muted);
	color:          var(--color-muted-fg);
	border-radius:  var(--radius-sm);
}

@media (min-width: 768px) {
	.sold-out-badge {
		top:    0.75rem;
		left:   0.75rem;
		padding: 0.375rem 0.75rem;
		font-size: 0.75rem;
	}
}

/* Quick View Modal */
.quick-view-modal {
	position:         fixed;
	inset:            0;
	z-index:          200;
	display:          flex;
	align-items:      center;
	justify-content:  center;
	padding:          1.5rem;
	opacity:          0;
	pointer-events:   none;
	transition:       opacity 0.3s ease;
}

.quick-view-modal.is-open {
	opacity:        1;
	pointer-events: auto;
}

.quick-view-modal-backdrop {
	position:   absolute;
	inset:      0;
	background: rgba(0, 0, 0, 0.8);
	cursor:     pointer;
}

.quick-view-modal-content {
	position:      relative;
	z-index:       1;
	width:         100%;
	max-width:     48rem;
	max-height:    90vh;
	overflow:      auto;
	background:    var(--color-background);
	border-radius: var(--radius-2xl);
	box-shadow:    var(--shadow-elevated);
	display:       grid;
	grid-template-columns: 1fr;
}

.quick-view-modal-close {
	position:      absolute;
	top:          1rem;
	right:        1rem;
	z-index:      10;
	width:        2.25rem;
	height:       2.25rem;
	display:       flex;
	align-items:   center;
	justify-content: center;
	padding:       0;
	border:        none;
	background:    transparent;
	color:         var(--color-muted-fg);
	cursor:        pointer;
	transition:    color 0.2s;
	border-radius: var(--radius);
}

.quick-view-modal-close:hover {
	color: var(--color-foreground);
}

.quick-view-modal-grid {
	display:       flex;
	flex-direction: column;
}

@media (min-width: 768px) {
	.quick-view-modal-grid {
		display:       grid;
		grid-template-columns: 1fr 1fr;
	}
}

.quick-view-modal-image-wrap {
	aspect-ratio:   1;
	overflow:       hidden;
	background:     var(--color-secondary);
}

@media (min-width: 768px) {
	.quick-view-modal-image-wrap {
		aspect-ratio:  auto;
		min-height:    420px;
	}
}

.quick-view-modal-image {
	width:      100%;
	height:     100%;
	object-fit: cover;
	display:    block;
}

.quick-view-modal-info {
	padding:       2rem;
	display:       flex;
	flex-direction: column;
	gap:           1.5rem;
}

.quick-view-category {
	font-size:      0.75rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--color-muted-fg);
}

.quick-view-name {
	font-family:    var(--font-display);
	font-size:      1.25rem;
	font-weight:    500;
	margin:         0 0 0.5rem;
	line-height:    1.3;
}

@media (min-width: 768px) {
	.quick-view-name {
		font-size: 1.5rem;
	}
}

.quick-view-price {
	font-size:   1.125rem;
	font-weight: 500;
	color:       var(--color-foreground);
}

.quick-view-desc {
	font-size:     0.875rem;
	color:         var(--color-muted-fg);
	line-height:   1.6;
	margin:        0;
	display:       -webkit-box;
	-webkit-line-clamp: 4;
	-webkit-box-orient: vertical;
	overflow:      hidden;
}

.quick-view-controls {
	display:       flex;
	flex-direction: column;
	gap:           1rem;
}

.quick-view-label {
	display:       block;
	font-size:     0.875rem;
	font-weight:   500;
	margin-bottom: 0.5rem;
}

.quick-view-size-wrap {
	margin-bottom: 0;
}

.quick-view-size-select {
	width:         100%;
	padding:       0.75rem 1rem;
	font-size:     0.875rem;
	border:        1px solid var(--color-border);
	border-radius: var(--radius);
	background:    var(--color-background);
	color:         var(--color-foreground);
}

.quick-view-size-select option[value=""] {
	color: var(--color-muted-fg);
}

.quick-view-qty-wrap {
	margin-bottom: 0;
}

.quick-view-qty-controls {
	display:        flex;
	align-items:    center;
	gap:            0.75rem;
}

.quick-view-qty-btn {
	width:         2.25rem;
	height:        2.25rem;
	display:        flex;
	align-items:    center;
	justify-content: center;
	padding:        0;
	border:         1px solid var(--color-border);
	border-radius:  var(--radius-xl);
	background:     transparent;
	color:          var(--color-foreground);
	cursor:         pointer;
	font-size:      1rem;
	transition:     background 0.2s;
}

.quick-view-qty-btn:hover {
	background: var(--color-secondary);
}

.quick-view-qty-val {
	font-size:   0.875rem;
	font-weight: 500;
	width:       2rem;
	text-align:  center;
	border-left:  1px solid var(--color-border);
	border-right: 1px solid var(--color-border);
}

.quick-view-atc {
	width:      100%;
	padding:   0.875rem 2rem;
}

.quick-view-full-details {
	display:       block;
	text-align:    center;
	font-size:     0.875rem;
	color:         var(--color-muted-fg);
	transition:    color 0.2s;
}

.quick-view-full-details:hover {
	color: var(--color-foreground);
}

/* ============================================================
   WORKSHOPS SECTION
   ============================================================ */
.workshops-section {
	padding: 5rem 0;
}

.workshops-inner {
	position:      relative;
	overflow:      hidden;
	border-radius: var(--radius-xl);
	border:        1px solid rgba(83,96,112,0.12);
	padding:       3.5rem 2rem;
	text-align:    center;
}

@media (min-width: 768px) {
	.workshops-inner {
		padding: 5rem 4rem;
	}
}

.workshops-bg-img {
	position:   absolute;
	inset:      0;
	width:      100%;
	height:     100%;
	object-fit: cover;
}

.workshops-overlay {
	position:   absolute;
	inset:      0;
	background: rgba(0,0,0,0.55);
}

.workshops-content {
	position:   relative;
	z-index:    10;
	max-width:  36rem;
	margin:     0 auto;
}

.workshops-badge {
	display:        inline-block;
	padding:        0.25rem 0.75rem;
	font-size:      0.75rem;
	font-weight:    500;
	letter-spacing: 0.1em;
	text-transform: uppercase;
	background:     rgba(255,255,255,0.2);
	color:          #fff;
	border-radius:  9999px;
	margin-bottom:  1.5rem;
}

.workshops-heading {
	font-family:    var(--font-display);
	font-size:      clamp(1.5rem, 3vw, 2rem);
	font-weight:    500;
	color:          #fff;
	margin-bottom:  1rem;
}

.workshops-text {
	color:       rgba(255,255,255,0.75);
	line-height: 1.7;
	font-size:   clamp(0.875rem, 1.5vw, 1rem);
	margin-bottom: 2rem;
}

.workshops-buttons {
	display:         flex;
	flex-direction:  column;
	gap:             1rem;
	justify-content: center;
}

@media (min-width: 640px) {
	.workshops-buttons { flex-direction: row; }
}

/* ============================================================
   FOOTER
   ============================================================ */
.site-footer {
	border-top:  1px solid var(--color-border);
	margin-top:  5rem;
}

.footer-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2rem;
	padding: 3rem 0;
}

@media (min-width: 768px) {
	.footer-grid {
		grid-template-columns: 2fr 1fr 1fr;
		gap: 3rem;
		padding: 4rem 0;
	}
}

.footer-logo { display: inline-block; }

.footer-logo-text {
	font-family:    var(--font-display);
	font-size:      1.25rem;
	font-weight:    600;
	letter-spacing: -0.02em;
	color:          var(--color-primary);
}

.footer-tagline {
	margin-top:  1rem;
	font-size:   0.875rem;
	color:       var(--color-muted-fg);
	max-width:   22rem;
	line-height: 1.7;
}

.footer-quote {
	margin-top: 0.5rem;
	font-size:  0.8125rem;
	color:      var(--color-muted-fg);
	font-style: italic;
}

.footer-location {
	display:     flex;
	align-items: center;
	gap:         0.375rem;
	margin-top:  0.75rem;
	font-size:   0.75rem;
	color:       var(--color-muted-fg);
}

.footer-col-title {
	font-family: var(--font-body);
	font-size:   0.875rem;
	font-weight: 500;
	margin-bottom: 1rem;
}

.footer-links {
	display:        flex;
	flex-direction: column;
	gap:            0.75rem;
}

.footer-links a,
.footer-links button {
	font-size:  0.875rem;
	color:      var(--color-muted-fg);
	transition: color 0.2s;
	background: none;
	border:     none;
	cursor:     pointer;
	padding:    0;
	text-align: left;
}

.footer-links a:hover,
.footer-links button:hover { color: var(--color-foreground); }

.footer-contact-item {
	display:     flex;
	align-items: center;
	gap:         0.5rem;
}

.footer-social-link {
	display:     flex;
	align-items: center;
	gap:         0.5rem;
	font-size:   0.875rem;
	color:       var(--color-muted-fg);
	transition:  color 0.2s;
}

.footer-social-link:hover { color: var(--color-foreground); }

.footer-email-link {
	font-size:  0.875rem;
	color:      var(--color-muted-fg);
	transition: color 0.2s;
}

.footer-email-link:hover { color: var(--color-foreground); }

.footer-bottom {
	border-top:      1px solid var(--color-border);
	padding:         2rem 0;
	display:         flex;
	flex-direction:  column;
	align-items:     center;
	gap:             1rem;
}

@media (min-width: 640px) {
	.footer-bottom {
		flex-direction:  row;
		justify-content: space-between;
	}
}

.footer-copyright,
.footer-credit {
	font-size:  0.75rem;
	color:      var(--color-muted-fg);
}

.footer-credit { transition: color 0.2s; }
.footer-credit:hover { color: var(--color-foreground); }

/* ============================================================
   INNER PAGES — HEADER OFFSET
   ============================================================ */
.theme-no-hero #main-content,
.archive-product-page,
.single-product-page,
.about-page,
.gallery-page,
.contact-page,
.faq-page,
.page-content,
.notfound-page,
.thankyou-page,
.checkout-page {
	padding-top: calc(var(--header-height) + 1rem);
}

/* ============================================================
   ABOUT PAGE
   ============================================================ */
.about-hero {
	margin-bottom: 4rem;
}

.about-hero .section-eyebrow { color: var(--color-primary); }
.about-hero .page-heading { margin-top: 0.5rem; margin-bottom: 0.5rem; }

.about-subtitle {
	font-size:      0.75rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--color-muted-fg);
	font-weight:    500;
}

.about-grid {
	max-width:   72rem;
	margin:      0 auto;
	display:     grid;
	grid-template-columns: 1fr;
	gap:         3rem;
	align-items: start;
}

@media (min-width: 1024px) {
	.about-grid {
		grid-template-columns: 1fr 1fr;
		gap: 5rem;
	}
}

.about-photo-wrap {
	border-radius: var(--radius-xl);
	overflow:     hidden;
	box-shadow:   var(--shadow-elevated);
	aspect-ratio: 1;
	max-width:    24rem;
	margin:       0 auto;
}

@media (min-width: 1024px) {
	.about-photo-wrap { margin: 0; }
}

.about-photo {
	width:      100%;
	height:     100%;
	object-fit: cover;
}

.about-story-col {
	display:        flex;
	flex-direction: column;
	gap:            1.5rem;
}

@media (min-width: 1024px) {
	.about-story-col {
		position: sticky;
		top: calc(var(--header-height) + 2rem);
	}
}

.about-bio-text {
	display:        flex;
	flex-direction: column;
	gap:            1.25rem;
	color:          var(--color-muted-fg);
	line-height:    1.9;
	font-size:      0.9375rem;
}

.about-blockquote {
	padding:     1.5rem 0 1.5rem 1.5rem;
	border-left: 2px solid rgba(83,96,112,0.3);
}

.about-blockquote p {
	font-family: var(--font-display);
	font-size:   clamp(1.1rem, 2vw, 1.5rem);
	font-style:  italic;
	color:       var(--color-foreground);
	line-height: 1.6;
}

.about-social-links {
	display:     flex;
	flex-wrap:   wrap;
	gap:         1rem;
	padding-top: 1rem;
}

.about-social-link {
	display:     inline-flex;
	align-items: center;
	gap:         0.5rem;
	font-size:   0.875rem;
	color:       var(--color-primary);
}

.about-social-link:hover { text-decoration: underline; }

.about-cta-buttons {
	display:     flex;
	flex-wrap:   wrap;
	gap:         1rem;
	padding-top: 1.5rem;
}

/* ============================================================
   GALLERY PAGE
   ============================================================ */
.gallery-page { padding-bottom: 4rem; }

.gallery-header {
	margin-bottom: 3rem;
}

.gallery-header .section-eyebrow { color: var(--color-primary); }

.gallery-subtext {
	color:     var(--color-muted-fg);
	font-size: clamp(0.875rem, 1.5vw, 1rem);
	max-width: 36rem;
	margin:    0 auto;
}

.gallery-masonry {
	display:               grid;
	grid-template-columns: 1fr;
	gap:                   1rem;
	align-items:           stretch;
}

@media (min-width: 640px) {
	.gallery-masonry {
		grid-template-columns: repeat(2, 1fr);
	}
}

@media (min-width: 1024px) {
	.gallery-masonry {
		grid-template-columns: repeat(3, 1fr);
	}
}

.gallery-col {
	display:        flex;
	flex-direction: column;
	height:         100%;
	gap:            1rem;
}

.gallery-item {
	flex:          1;
	min-height:    0;
	cursor:        pointer;
	border-radius: var(--radius-xl);
	overflow:      hidden;
}

.gallery-img {
	width:      100%;
	height:     100%;
	object-fit: cover;
	transition: box-shadow 0.5s ease;
	border-radius: var(--radius-xl);
}

.gallery-item:hover .gallery-img {
	box-shadow: var(--shadow-elevated);
}

/* Placeholders (solo en Customizer preview; no en live site) */
.gallery-item-placeholder {
	cursor:          default;
	pointer-events:  none;
	background:      var(--color-muted, #ebebea);
	border:          2px dashed var(--color-border, #e0e0dd);
	display:         flex;
	align-items:     center;
	justify-content: center;
	min-height:      8rem;
}

.gallery-placeholder-text {
	font-size:   0.75rem;
	color:       var(--color-muted-fg, #717b84);
	text-align:  center;
	padding:     0.5rem 1rem;
}

/* Lightbox */
.gallery-lightbox {
	position:         fixed;
	inset:            0;
	z-index:          100;
	background:       rgba(0,0,0,0.92);
	display:          flex;
	align-items:      center;
	justify-content:  center;
	padding:          1.5rem;
	opacity:          0;
	pointer-events:   none;
	transition:       opacity 0.3s ease;
}

.gallery-lightbox.is-open {
	opacity:        1;
	pointer-events: auto;
	animation:      fadeIn 0.3s ease forwards;
}

.lightbox-close {
	position:   absolute;
	top:        1.5rem;
	right:      1.5rem;
	color:      rgba(255,255,255,0.7);
	transition: color 0.2s;
}

.lightbox-close:hover { color: #fff; }

.lightbox-img {
	max-width:   100%;
	max-height:  85vh;
	object-fit:  contain;
	border-radius: var(--radius);
}

/* ============================================================
   CONTACT PAGE
   ============================================================ */
.contact-wrapper {
	max-width: 56rem;
	margin:    0 auto;
}

.contact-hero { margin-bottom: 2.5rem; }

.contact-hero .section-eyebrow { color: var(--color-primary); }

.contact-intro {
	color:     var(--color-muted-fg);
	max-width: 28rem;
	margin:    1rem auto 0;
}

.contact-divider {
	display:         flex;
	align-items:     center;
	justify-content: center;
	gap:             0.75rem;
	margin:          2rem 0;
}

.divider-line {
	height:     1px;
	width:      4rem;
	background: var(--color-border);
}

.divider-dot {
	width:         0.375rem;
	height:        0.375rem;
	border-radius: 9999px;
	background:    var(--color-primary);
	opacity:       0.6;
}

.contact-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 2.5rem;
}

@media (min-width: 1024px) {
	.contact-grid {
		grid-template-columns: 1fr 2fr;
	}
}

.contact-card {
	border-radius: var(--radius);
	border:        1px solid var(--color-border);
	background:    rgba(242,242,239,0.6);
	padding:       1.5rem;
	display:       flex;
	flex-direction: column;
	gap:           1.5rem;
	height:        100%;
}

.contact-card-title {
	font-family: var(--font-display);
	font-size:   1.125rem;
	font-weight: 500;
	margin-bottom: 0.5rem;
}

.contact-card-text {
	font-size:   0.875rem;
	color:       var(--color-muted-fg);
	line-height: 1.7;
}

.contact-divider-line {
	height:     1px;
	background: var(--color-border);
}

.contact-info-list {
	display:        flex;
	flex-direction: column;
	gap:            1rem;
}

.contact-info-item {
	display:     flex;
	align-items: center;
	gap:         0.75rem;
	font-size:   0.875rem;
}

.contact-icon-wrap {
	width:            2rem;
	height:           2rem;
	border-radius:    9999px;
	background:       rgba(83,96,112,0.1);
	display:          flex;
	align-items:      center;
	justify-content:  center;
	flex-shrink:      0;
	color:            var(--color-primary);
}

.contact-link {
	transition: color 0.2s;
}

.contact-link:hover { color: var(--color-primary); }

.contact-follow-label {
	font-size:      0.6875rem;
	letter-spacing: 0.15em;
	text-transform: uppercase;
	color:          var(--color-muted-fg);
	margin-bottom:  0.75rem;
}

.contact-social-icons {
	display:     flex;
	align-items: center;
	gap:         0.75rem;
}

.contact-social-icon {
	width:            2rem;
	height:           2rem;
	border-radius:    9999px;
	background:       rgba(83,96,112,0.1);
	display:          flex;
	align-items:      center;
	justify-content:  center;
	color:            var(--color-primary);
	transition:       background-color 0.2s, color 0.2s;
}

.contact-social-icon:hover {
	background-color: var(--color-primary);
	color:            var(--color-primary-fg);
}

/* Contact Form */
.contact-form {
	display:        flex;
	flex-direction: column;
	gap:            1.25rem;
}

.form-row {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.25rem;
}

@media (min-width: 768px) {
	.form-row {
		grid-template-columns: 1fr 1fr;
	}
}

.form-group {
	display:        flex;
	flex-direction: column;
	gap:            0.5rem;
}

.form-label {
	font-size:   0.875rem;
	font-weight: 500;
}

.form-input,
.form-select,
.form-textarea {
	width:           100%;
	padding:         0.75rem 1rem;
	background:      var(--color-background);
	border:          1px solid var(--color-border);
	border-radius:   var(--radius-sm);
	font-family:     var(--font-body);
	font-size:       0.875rem;
	color:           var(--color-foreground);
	transition:      border-color 0.2s, box-shadow 0.2s;
	outline:         none;
}

.form-input::placeholder,
.form-textarea::placeholder { color: var(--color-muted-fg); }

.form-input:focus,
.form-select:focus,
.form-textarea:focus {
	border-color: var(--color-primary);
	box-shadow:   0 0 0 2px rgba(83,96,112,0.1);
}

.form-textarea { resize: vertical; }

.contact-submit-btn { align-self: flex-start; }

.contact-success {
	text-align: center;
	padding:    3rem 0;
}

.success-icon-wrap {
	width:            4rem;
	height:           4rem;
	background:       var(--color-primary);
	color:            var(--color-primary-fg);
	border-radius:    9999px;
	display:          flex;
	align-items:      center;
	justify-content:  center;
	margin:           0 auto 1.5rem;
}

.contact-error {
	padding:       0.75rem;
	border-radius: var(--radius-sm);
	background:    rgba(240,58,58,0.1);
	color:         var(--color-destructive);
	font-size:     0.875rem;
}

/* ============================================================
   FAQ PAGE
   ============================================================ */
.faq-wrapper {
	max-width: 48rem;
	margin:    0 auto;
	padding:   2.5rem 0 5rem;
}

.faq-header { margin: 2rem 0 3rem; }

.faq-subtext {
	color:     var(--color-muted-fg);
	font-size: 0.9375rem;
	margin-top: 0.75rem;
}

.faq-sections {
	display:        flex;
	flex-direction: column;
	gap:            2.5rem;
}

.faq-section {}

.faq-category {
	font-family:   var(--font-display);
	font-size:     1.25rem;
	font-weight:   500;
	padding-bottom: 0.5rem;
	margin-bottom: 1rem;
	border-bottom: 1px solid var(--color-border);
}

.faq-items {
	display:        flex;
	flex-direction: column;
	gap:            0.75rem;
}

.faq-item {
	border:        1px solid var(--color-border);
	border-radius: var(--radius-sm);
	overflow:      hidden;
}

/* Placeholders (solo en Customizer preview; no en live site) */
.faq-item-placeholder {
	border-style:  dashed;
	opacity:       0.7;
}

.faq-item-placeholder .faq-question { cursor: default; }
.faq-item-placeholder .faq-question span { color: var(--color-muted-fg); font-style: italic; }

.faq-question {
	width:           100%;
	display:         flex;
	align-items:     center;
	justify-content: space-between;
	padding:         1.25rem;
	text-align:      left;
	transition:      background-color 0.2s;
}

.faq-question:hover { background-color: rgba(242,242,239,0.5); }

.faq-question span {
	font-weight: 500;
	font-size:   0.875rem;
	padding-right: 1rem;
}

.faq-icon { flex-shrink: 0; color: var(--color-muted-fg); }

.faq-answer {
	padding:     0 1.25rem 1.25rem;
}

.faq-answer p {
	color:       var(--color-muted-fg);
	font-size:   0.875rem;
	line-height: 1.7;
}

.faq-cta {
	margin-top:  4rem;
	padding-top: 2.5rem;
	border-top:  1px solid var(--color-border);
	text-align:  center;
}

.faq-cta-heading {
	font-family:   var(--font-display);
	font-size:     1.25rem;
	font-weight:   500;
	margin-bottom: 1rem;
}

.faq-cta-text {
	color:          var(--color-muted-fg);
	font-size:      0.875rem;
	margin-bottom:  1.5rem;
}

/* ============================================================
   SINGLE PRODUCT PAGE
   ============================================================ */
.single-product-page { padding-bottom: 5rem; }

.back-link-wrap { padding: 1.5rem 0; }

.product-detail-grid {
	display:               grid;
	grid-template-columns: 1fr;
	gap:                   2.5rem;
	padding-bottom:        5rem;
}

@media (min-width: 1024px) {
	.product-detail-grid {
		grid-template-columns: 1fr 1fr;
		gap: 4rem;
	}
}

.product-gallery {}

.product-main-image-wrap {
	aspect-ratio:  1;
	border-radius: var(--radius-xl);
	overflow:      hidden;
}

.product-main-image {
	width:      100%;
	height:     100%;
	object-fit: cover;
	transition: opacity 0.5s ease;
}

.product-thumbnails {
	display:     flex;
	gap:         0.5rem;
	margin-top:  0.75rem;
	flex-wrap:   wrap;
}

.product-thumb-btn {
	width:         4rem;
	height:        4rem;
	border-radius: var(--radius);
	overflow:      hidden;
	border:        2px solid var(--color-border);
	transition:    border-color 0.2s;
}

.product-thumb-btn.is-active {
	border-color: var(--color-foreground);
}

.product-thumb-btn:hover { border-color: var(--color-muted-fg); }

.product-thumb-btn img {
	width:      100%;
	height:     100%;
	object-fit: cover;
}

.product-info {
	display:        flex;
	flex-direction: column;
	gap:            1rem;
}

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

.product-categories {
	font-size:      0.7rem;
	letter-spacing: 0.2em;
	text-transform: uppercase;
	color:          var(--color-muted-fg);
}

.product-categories a {
	color:       var(--color-muted-fg);
	transition:  color 0.2s;
}

.product-categories a:hover { color: var(--color-foreground); }

.product-title {
	font-family:    var(--font-display);
	font-size:      clamp(1.5rem, 3vw, 2rem);
	font-weight:    500;
	letter-spacing: -0.02em;
}

.product-price {
	font-size: 1.25rem;
	font-family: var(--font-body);
}

.product-price .amount { font-size: 1.25rem; }
.product-price del .amount { font-size: 1rem; color: var(--color-muted-fg); }
.product-price ins { text-decoration: none; }

.sold-out-indicator {
	display:        inline-block;
	padding:        0.5rem 1rem;
	background:     var(--color-muted);
	color:          var(--color-muted-fg);
	font-size:      0.875rem;
	font-weight:    500;
	border-radius:  var(--radius);
}

.product-long-desc {
	color:       var(--color-muted-fg);
	line-height: 1.8;
	font-size:   0.9375rem;
}

.product-long-desc p { margin-bottom: 0.75rem; }
.product-long-desc p:last-child { margin-bottom: 0; }

.product-add-to-cart-wrap {
	display:       flex;
	flex-direction: column;
	gap:           0.75rem;
}

.product-qty-wrap {
	margin: 0;
}

/* React-like quantity: label and controls in one row (ProductDetail.tsx) */
.product-qty-wrap-react {
	display:         flex;
	flex-direction:   row;
	align-items:     center;
	gap:             0.75rem;
	margin-bottom:   1rem;
}

.product-qty-wrap-react .product-qty-label {
	display:       block;
	font-size:     0.875rem;
	font-weight:   500;
	margin-bottom: 0;
}

.product-qty-controls {
	display:         flex;
	align-items:     center;
	gap:             0.5rem;
}

.product-qty-btn {
	width:           2.25rem;
	height:          2.25rem;
	flex-shrink:     0;
	display:         flex;
	align-items:     center;
	justify-content: center;
	border:          1px solid var(--color-border);
	border-radius:   var(--radius-xl);
	background:      var(--color-background);
	color:           var(--color-foreground);
	font-size:       1.25rem;
	line-height:     1;
	cursor:          pointer;
	transition:      background 0.2s, border-color 0.2s;
}

.product-qty-btn:hover {
	background: var(--color-secondary);
	border-color: var(--color-border);
}

.product-qty-input,
.product-qty-wrap input.qty {
	width:         2.5rem;
	min-width:     2.5rem;
	padding:       0.35rem 0.25rem;
	font-size:     0.875rem;
	font-weight:   500;
	text-align:    center;
	border:        1px solid var(--color-border);
	border-radius: var(--radius-xl);
	background:    var(--color-background);
	color:         var(--color-foreground);
	-moz-appearance: textfield;
}

.product-qty-wrap input.qty {
	width:      2.5rem;
	min-width: 2.5rem;
}

.product-qty-controls .product-qty-minus,
.product-qty-controls .product-qty-plus {
	border-radius: var(--radius-xl);
}

.product-atc-btn {
	width:      100%;
	padding:    1rem;
	font-size:  1rem;
	margin-top: 0;
}

/* Variable product: variations (stacked layout like Quick View / image 1) */
.product-variations-wrap {
	display:       flex;
	flex-direction: column;
	gap:           1rem;
	margin-bottom: 1rem;
}

.product-variation-row {
	display:       flex;
	flex-direction: column;
	gap:           0.5rem;
}

.product-variation-label {
	display:       block;
	font-size:     0.875rem;
	font-weight:   500;
	color:         var(--color-foreground);
	margin:        0;
}

.product-variation-select,
.product-variation-select-react {
	width:         100%;
	max-width:     20rem;
	padding:       0.75rem 1rem;
	font-size:     0.875rem;
	font-family:   var(--font-body);
	border:        1px solid var(--color-border);
	border-radius: var(--radius);
	background:    var(--color-background);
	color:         var(--color-foreground);
	appearance:    auto;
	cursor:        pointer;
}

.product-variation-select option[value=""] {
	color: var(--color-muted-fg);
}

.single_variation_wrap {
	margin-bottom: 1rem;
}

.woocommerce-variation-add-to-cart.variations_button {
	display:       flex;
	align-items:   center;
	gap:           1rem;
	margin-top:    1rem;
	flex-wrap:     wrap;
}

.woocommerce-variation-add-to-cart .quantity {
	margin: 0;
}

.woocommerce-variation-add-to-cart .quantity input.qty,
.woocommerce-variation-add-to-cart .quantity input.input-text {
	width:         4rem;
	padding:       0.5rem 0.75rem;
	font-size:     0.875rem;
	font-family:   var(--font-body);
	border:        1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background:    var(--color-background);
	color:         var(--color-foreground);
}

.single_variation_wrap .woocommerce-variation-price.product-price {
	font-size: 1.25rem;
}

.product-details-section {
	border-top:  1px solid var(--color-border);
	padding-top: 2rem;
	margin-top:  0.5rem;
}

.product-details-heading {
	font-family:    var(--font-body);
	font-size:      0.875rem;
	font-weight:    500;
	margin-bottom:  1rem;
}

.product-short-desc {
	color:       var(--color-muted-fg);
	font-size:   0.875rem;
	line-height: 1.8;
}

.product-short-desc ul { padding-left: 1rem; list-style: disc; }
.product-short-desc li { margin-bottom: 0.375rem; }

/* Related Products */
.related-products-section {
	border-top:  1px solid var(--color-border);
	padding-top: 5rem;
	padding-bottom: 2rem;
}

.related-products-heading {
	font-family:    var(--font-display);
	font-size:      clamp(1.25rem, 2.5vw, 1.5rem);
	font-weight:    500;
	margin-bottom:  2.5rem;
}

.related-products-grid {
	display:               grid;
	grid-template-columns: 1fr;
	gap:                   1.5rem;
}

@media (min-width: 640px) {
	.related-products-grid { grid-template-columns: repeat(2, 1fr); }
}

@media (min-width: 1024px) {
	.related-products-grid { grid-template-columns: repeat(3, 1fr); gap: 2rem; }
}

/* ============================================================
   SHOP / ARCHIVE PAGE
   ============================================================ */
.archive-product-page { padding-bottom: 5rem; }

.shop-page-header {
	margin-bottom: 3rem;
}

.shop-page-header h1 { margin-bottom: 0.5rem; }

.shop-products-section {}

.no-products {
	grid-column:  1 / -1;
	text-align:   center;
	padding:      4rem 0;
	color:        var(--color-muted-fg);
}

.no-products p { margin-bottom: 1.5rem; }

/* ============================================================
   SIDE CART DRAWER (matches React CartDrawer)
   ============================================================ */
.theme-cart-container {
	position:         fixed;
	inset:            0;
	z-index:          99999;
	pointer-events:   none;
}

body.cart-open .theme-cart-container {
	pointer-events:   auto;
}

#theme-cart-overlay {
	position:         fixed;
	inset:            0;
	background:       rgba(26,31,36,0.2);
	z-index:          1;
	opacity:          0;
	pointer-events:   none;
	cursor:           pointer;
	transition:       opacity 0.6s var(--transition);
}

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:          2;
	box-shadow:       -8px 0 40px rgba(0,0,0,0.12);
	display:          flex;
	flex-direction:   column;
	opacity:          0;
	transform:        translateY(20px);
	pointer-events:   none;
	transition:       opacity 0.6s var(--transition), transform 0.6s var(--transition);
}

body.cart-open #theme-cart-drawer {
	opacity:         1;
	transform:       translateY(0);
	pointer-events:  auto;
}

#theme-cart-drawer.is-updating {
	opacity:        0.6;
	pointer-events: none;
}

/* Hide WooCommerce "View cart" link after AJAX add to cart */
a.added_to_cart.wc-forward {
	display: none !important;
}

.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: 500;
}

.cart-drawer-close {
	padding:    0.25rem;
	transition: opacity 0.2s;
}

.cart-drawer-close:hover { opacity: 0.6; }

.cart-empty-state {
	flex:            1;
	display:         flex;
	flex-direction:  column;
	align-items:     center;
	justify-content: center;
	padding:         1.5rem;
	text-align:      center;
	gap:             1rem;
	color:           var(--color-muted-fg);
}

.cart-empty-icon {
	margin-bottom:   1rem;
	color:           var(--color-muted-fg);
}

.cart-empty-text { margin-bottom: 0.5rem; }

.cart-continue-btn {
	margin-top: 0.5rem;
}

.cart-items-list {
	flex:       1;
	overflow-y: auto;
	padding:    1.5rem;
	display:    flex;
	flex-direction: column;
	gap:        1.5rem;
}

.cart-item {
	display:   flex;
	gap:       1rem;
	flex-wrap: nowrap;
}

.cart-item-img-link {
	width:         5rem;
	height:        6rem;
	background:    var(--color-secondary);
	border-radius: 0.25rem;
	overflow:      hidden;
	flex-shrink:   0;
	display:       block;
}

.cart-item-img-link img {
	width:      100%;
	height:     100%;
	object-fit: cover;
}

.cart-item-details {
	flex:    1;
	min-width: 0;
	display: flex;
	flex-direction: column;
	gap:     0.25rem;
}

.cart-item-name {
	font-size:     0.875rem;
	font-weight:   500;
	white-space:   nowrap;
	overflow:      hidden;
	text-overflow: ellipsis;
	display:       block;
	transition:    opacity 0.2s;
}

.cart-item-name:hover { opacity: 0.7; }

.cart-item-price {
	font-size: 0.875rem;
	color:     var(--color-muted-fg);
}

.cart-item-variation {
	font-size: 0.75rem;
	color:     var(--color-muted-fg);
}

.cart-item-controls {
	display:     flex;
	align-items: center;
	gap:         0.75rem;
	margin-top:  0.75rem;
}

.cart-qty-btn {
	width:         1.75rem;
	height:        1.75rem;
	display:       flex;
	align-items:   center;
	justify-content: center;
	border:        1px solid var(--color-border);
	border-radius: var(--radius-sm);
	transition:    background-color 0.2s;
}

.cart-qty-btn:hover { background-color: var(--color-secondary); }

.cart-qty-value {
	font-size: 0.875rem;
	width:     1.5rem;
	text-align: center;
}

.cart-remove-btn {
	margin-left:  auto;
	font-size:    0.75rem;
	color:        var(--color-muted-fg);
	transition:   color 0.2s;
}

.cart-remove-btn:hover { color: var(--color-foreground); }

.cart-drawer-footer {
	border-top:  1px solid var(--color-border);
	padding:     1.5rem;
	flex-shrink: 0;
	display:     flex;
	flex-direction: column;
	gap:         1rem;
}

.cart-subtotal-row {
	display:         flex;
	justify-content: space-between;
	font-size:       0.875rem;
}

.cart-subtotal-label { color: var(--color-muted-fg); }
.cart-subtotal-value { font-weight: 500; }

.cart-shipping-note {
	font-size:  0.75rem;
	color:      var(--color-muted-fg);
	margin:     0;
	line-height: 1.5;
}

.checkout-btn {
	width:      100%;
	padding:    1rem;
	font-size:  0.9375rem;
}

/* ============================================================
   404 PAGE
   ============================================================ */
.notfound-page {
	min-height: 100vh;
	display:    flex;
	align-items: center;
}

.notfound-content {
	text-align: center;
	padding:    5rem 0;
}

.notfound-code {
	font-family: var(--font-display);
	font-size:   6rem;
	font-weight: 700;
	color:       var(--color-primary);
	line-height: 1;
	margin-bottom: 1rem;
}

.notfound-title {
	font-size:     1.5rem;
	font-weight:   500;
	margin-bottom: 1rem;
}

.notfound-text {
	color:         var(--color-muted-fg);
	margin-bottom: 2rem;
}

/* ============================================================
   WOOCOMMERCE OVERRIDES
   ============================================================ */

/* Remove default WC styling since we dequeued it */
.woocommerce,
.woocommerce-page { background: transparent; }

/* Notices */
.woocommerce-message,
.woocommerce-error,
.woocommerce-info {
	padding:       1rem 1.5rem;
	border-radius: var(--radius-sm);
	margin-bottom: 1.5rem;
	font-size:     0.9375rem;
	border:        none;
	list-style:    none;
}

.woocommerce-message {
	background: rgba(61,97,71,0.1);
	color:      var(--color-accent);
	border-left: 3px solid var(--color-accent);
}

.woocommerce-error {
	background: rgba(240,58,58,0.1);
	color:      var(--color-destructive);
	border-left: 3px solid var(--color-destructive);
}

.woocommerce-info {
	background: rgba(83,96,112,0.1);
	color:      var(--color-primary);
	border-left: 3px solid var(--color-primary);
}

/* ============================================================
   CHECKOUT — ESTILOS COMO REACT, FORZADOS (block + shortcode)
   Anula estilos nativos de WooCommerce con !important.
   ============================================================ */
body.woocommerce-checkout .page-entry-title {
	font-family: var(--font-display);
	font-size:   clamp(1.875rem, 4vw, 2.25rem);
	font-weight: 500;
	margin-bottom: 2.5rem;
}

body.woocommerce-checkout .wc-block-checkout {
	font-family: var(--font-body);
	color:       var(--color-foreground);
}

/* ---- Campos: Block checkout (inputs, select, textarea) ---- */
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;
	min-height:      auto !important;
	margin:          0 !important;
	background:      var(--color-background) !important;
	border:          1px solid var(--color-border) !important;
	border-radius:   var(--radius-sm) !important;
	font-family:     var(--font-body) !important;
	font-size:       0.875rem !important;
	color:           var(--color-foreground) !important;
	outline:         none !important;
	box-shadow:      none !important;
	appearance:      none !important;
	-webkit-appearance: none !important;
}

body.woocommerce-checkout .wc-block-components-text-input input::placeholder,
body.woocommerce-checkout .wc-block-components-textarea textarea::placeholder {
	color: var(--color-muted-fg) !important;
	opacity: 1 !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 {
	border-color: var(--color-primary) !important;
	box-shadow:   0 0 0 1px var(--color-primary) !important;
	outline:       none !important;
}

body.woocommerce-checkout .wc-block-components-textarea textarea {
	resize: none !important;
}

/* ---- Campos: Shortcode checkout (por si se usa) ---- */
body.woocommerce-checkout .woocommerce-checkout .form-row input.input-text,
body.woocommerce-checkout .woocommerce-checkout .form-row select,
body.woocommerce-checkout .woocommerce-checkout .form-row textarea {
	width:           100% !important;
	min-height:      auto !important;
	margin:          0 !important;
	padding:         0.75rem 1rem !important;
	background:      var(--color-background) !important;
	border:          1px solid var(--color-border) !important;
	border-radius:   var(--radius-sm) !important;
	font-family:     var(--font-body) !important;
	font-size:       0.875rem !important;
	color:           var(--color-foreground) !important;
	outline:         none !important;
	box-shadow:      none !important;
	appearance:      none !important;
	-webkit-appearance: none !important;
}

body.woocommerce-checkout .woocommerce-checkout .form-row input.input-text::placeholder,
body.woocommerce-checkout .woocommerce-checkout .form-row textarea::placeholder {
	color: var(--color-muted-fg) !important;
	opacity: 1 !important;
}

body.woocommerce-checkout .woocommerce-checkout .form-row input.input-text:focus,
body.woocommerce-checkout .woocommerce-checkout .form-row select:focus,
body.woocommerce-checkout .woocommerce-checkout .form-row textarea:focus {
	border-color: var(--color-primary) !important;
	box-shadow:   0 0 0 1px var(--color-primary) !important;
	outline:       none !important;
}

body.woocommerce-checkout .woocommerce-checkout .form-row textarea {
	resize: none !important;
}

/* ---- Espaciado entre campos (React space-y-3) ---- */
body.woocommerce-checkout .wc-block-components-text-input,
body.woocommerce-checkout .wc-block-components-select,
body.woocommerce-checkout .wc-block-components-textarea,
body.woocommerce-checkout .woocommerce-checkout .form-row {
	margin-bottom: 0.75rem !important;
}

body.woocommerce-checkout .wc-block-components-panel,
body.woocommerce-checkout .woocommerce-billing-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-shipping-fields__field-wrapper,
body.woocommerce-checkout .woocommerce-billing-fields,
body.woocommerce-checkout .woocommerce-shipping-fields,
body.woocommerce-checkout .woocommerce-additional-fields {
	margin-bottom: 2rem !important;
}

/* ---- Labels (React text-sm font-medium) ---- */
body.woocommerce-checkout .wc-block-components-label,
body.woocommerce-checkout .woocommerce-checkout .form-row label {
	font-family: var(--font-body) !important;
	font-size:   0.875rem !important;
	font-weight: 500 !important;
	color:       var(--color-foreground) !important;
}

/* ---- Títulos de sección (React font-display text-xl font-medium mb-4) ---- */
body.woocommerce-checkout .wc-block-components-panel__title,
body.woocommerce-checkout .wc-block-checkout-form .wc-block-components-panel__title,
body.woocommerce-checkout .woocommerce-billing-fields h3,
body.woocommerce-checkout .woocommerce-shipping-fields h3,
body.woocommerce-checkout .woocommerce-additional-fields h3 {
	font-family: var(--font-display) !important;
	font-size:   1.25rem !important;
	font-weight: 500 !important;
	margin-bottom: 1rem !important;
}

/* ---- Botones Place Order ---- */
body.woocommerce-checkout .wc-block-components-checkout-place-order-button,
body.woocommerce-checkout .wc-block-components-button,
body.woocommerce-checkout #place_order {
	background-color: var(--color-primary) !important;
	color:            var(--color-primary-fg) !important;
	border-radius:    var(--radius) !important;
	font-family:      var(--font-body) !important;
	font-weight:      500 !important;
	padding:          0.875rem 2rem !important;
	font-size:        0.9375rem !important;
	border:           none !important;
	cursor:           pointer !important;
	transition:       background-color 0.2s !important;
	box-shadow:       0 4px 20px rgba(83,96,112,0.18) !important;
	width:            100% !important;
}

body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover,
body.woocommerce-checkout .wc-block-components-button:hover,
body.woocommerce-checkout #place_order:hover {
	opacity: 0.9 !important;
}

body.woocommerce-checkout .wc-block-components-notice-banner {
	padding:       1rem 1.5rem !important;
	border-radius: var(--radius-sm) !important;
	font-family:   var(--font-body) !important;
	font-size:     0.875rem !important;
	border:        none !important;
	border-left:   3px solid var(--color-primary) !important;
	background:    rgba(83,96,112,0.08) !important;
	color:         var(--color-foreground) !important;
}

body.woocommerce-checkout .wc-block-cart-items {
	font-family: var(--font-body) !important;
	font-size:   0.875rem !important;
}

body.woocommerce-checkout .wc-block-components-order-summary__title {
	font-family: var(--font-display) !important;
	font-size:   1.125rem !important;
	font-weight: 500 !important;
}

body.woocommerce-checkout .wc-block-components-totals-item__label {
	color: var(--color-muted-fg) !important;
}

/* ============================================================
   THANK YOU PAGE
   ============================================================ */
#main-content.thankyou-page { padding-top: 0; }
.thankyou-page { padding-bottom: 5rem; }

.thankyou-content {
	max-width: 40rem;
	margin:    0 auto;
	padding:   2rem 0;
}

.thankyou-inner {
	text-align: center;
}

.thankyou-icon {
	width:            5rem;
	height:           5rem;
	background:       var(--color-primary);
	color:            var(--color-primary-fg);
	border-radius:    9999px;
	display:          flex;
	align-items:      center;
	justify-content:  center;
	margin:           0 auto 2rem;
}

.woocommerce-thankyou-order-received {
	font-family:    var(--font-display);
	font-size:      1.5rem;
	font-weight:    500;
	margin-bottom:  0.3rem;
	text-align:     center;
}

.woocommerce-order-details {
	margin-top:    0.4rem;
	margin-bottom: 2rem;
	border:        1px solid var(--color-border);
	border-radius: var(--radius);
	overflow:      hidden;
}

.woocommerce-order-details__title,
.woocommerce-customer-details__title {
	font-family:    var(--font-display);
	font-size:      1.125rem;
	font-weight:    500;
	padding:        1.25rem 1.5rem;
	border-bottom:  1px solid var(--color-border);
	margin:         0;
}

.woocommerce-table {
	width:          100%;
	border-collapse: collapse;
	font-size:      0.875rem;
}

.woocommerce-table th,
.woocommerce-table td {
	padding:     0.75rem 1.5rem;
	border-bottom: 1px solid var(--color-border);
	text-align:  left;
}

.woocommerce-table thead th {
	background:  var(--color-secondary);
	font-weight: 600;
}

.thankyou-page .woocommerce-customer-details section{
	display:               grid;
	grid-template-columns: 1fr 1fr;
	gap:                   1.5rem;
}
@media (max-width: 640px) {
	.thankyou-page .woocommerce-customer-details {
		grid-template-columns: 1fr;
	}
}

/* ============================================================
   PAGE CONTENT (for WooCommerce Checkout Block)
   ============================================================ */
.page-content {
	min-height: calc(100vh - var(--header-height));
	padding-top: calc(var(--header-height) + 2rem);
	padding-bottom: 5rem;
}

.page-entry { max-width: 100%; }

/* ============================================================
   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;
}

/* ============================================================
   SOFT BORDER / GLOW CARD
   ============================================================ */
.soft-border {
	border:        1px solid rgba(83,96,112,0.12);
	border-radius: var(--radius-xl);
	transition:    border-color 0.4s ease, box-shadow 0.4s ease;
}

.soft-border:hover {
	border-color: rgba(83,96,112,0.28);
	box-shadow:   0 8px 40px rgba(83,96,112,0.08);
}

/* ============================================================
   RESPONSIVE UTILITIES
   ============================================================ */
@media (max-width: 767px) {
	.product-detail-grid { gap: 2rem; }
	.workshops-inner { padding: 2.5rem 1.5rem; }
	.contact-grid { gap: 2rem; }
}
