/* Pond Life Press theme styles — The Free Website Guys */

/* ==========================================================================
   1. Tokens
   ========================================================================== */
:root {
  --color-background: #f8f6f1;
  --color-foreground: #172b25;
  --color-primary: #205543;
  --color-accent: #b1532b;
  --color-secondary: #e3e9dd;
  --color-border: #b8c5b4;
  --color-volt: #3e6c79;
  --color-sun: #dcab38;
  --color-leaf: #4b713d;
  --color-violet: #794961;
  --color-dark-background: #11221c;
  --color-dark-foreground: #f8f6f1;
  --color-dark-primary: #a2c37f;
  --color-dark-accent: #e58f52;

  --color-card: #ffffff;
  --color-primary-foreground: #fcfbf8;
  --color-accent-foreground: #ffffff;
  --color-muted: #dde2da;
  --color-muted-foreground: #425c52;
  --color-destructive: #e42532;
  --color-linen: #e9ede3;
  --color-bone: #d6dcd0;
  --color-sand: #bac5b5;
  --color-hero-gradient-start: #fdf8ed;
  --color-dark-card: #192e27;
  --color-dark-secondary: #233930;
  --color-dark-muted: #2b4038;
  --color-dark-muted-foreground: #c7d1bd;
  --color-dark-border: #3b5447;
  --color-dark-primary-foreground: #11221c;
  --color-dark-accent-foreground: #11221c;

  --color-button-text: var(--color-primary-foreground);

  --background: var(--color-background);
  --foreground: var(--color-foreground);
  --card: var(--color-card);
  --primary: var(--color-primary);
  --primary-foreground: var(--color-primary-foreground);
  --secondary: var(--color-secondary);
  --muted: var(--color-muted);
  --muted-foreground: var(--color-muted-foreground);
  --accent: var(--color-accent);
  --accent-foreground: var(--color-accent-foreground);
  --border: var(--color-border);

  --ivory: var(--color-background);
  --linen: var(--color-linen);
  --bone: var(--color-bone);
  --sand: var(--color-sand);
  --hot: var(--color-accent);
  --flame: var(--color-accent);
  --volt: var(--color-volt);
  --sun: var(--color-sun);
  --leaf: var(--color-leaf);
  --violet: var(--color-violet);
  --destructive: var(--color-destructive);

  --radius: 1rem;
  --shadow-soft: 0 8px 26px -14px color-mix(in srgb, var(--color-foreground) 28%, transparent);
  --shadow-elevated: 0 26px 60px -22px color-mix(in srgb, var(--color-foreground) 38%, transparent);
  --gradient-stitch: linear-gradient(135deg, var(--color-primary), var(--hot) 50%, var(--volt));

  --font-display: 'Anton', 'Baloo 2', system-ui, sans-serif;
  --font-body: 'Outfit', system-ui, -apple-system, sans-serif;
  --header-height: 4rem;

  --btn-radius: 9999px;
  --btn-height: 3rem;
  --btn-padding: 0 1.75rem;
  --btn-font-size: 15px;
  --btn-font-weight: 500;
  --btn-letter-spacing: normal;
  --btn-text-transform: none;
  --btn-icon-padding: 0;
}
@media (min-width: 1024px) {
  :root { --header-height: 5rem; }
}

.theme-light {
  --background: var(--color-background);
  --foreground: var(--color-foreground);
  --card: var(--color-card);
  --primary: var(--color-primary);
  --primary-foreground: var(--color-primary-foreground);
  --secondary: var(--color-secondary);
  --muted: var(--color-muted);
  --muted-foreground: var(--color-muted-foreground);
  --accent: var(--color-accent);
  --accent-foreground: var(--color-accent-foreground);
  --border: var(--color-border);
  background-color: var(--background);
  color: var(--foreground);
}
.theme-dark {
  --background: var(--color-dark-background);
  --foreground: var(--color-dark-foreground);
  --card: var(--color-dark-card);
  --primary: var(--color-dark-primary);
  --primary-foreground: var(--color-dark-primary-foreground);
  --secondary: var(--color-dark-secondary);
  --muted: var(--color-dark-muted);
  --muted-foreground: var(--color-dark-muted-foreground);
  --accent: var(--color-dark-accent);
  --accent-foreground: var(--color-dark-accent-foreground);
  --border: var(--color-dark-border);
  background-color: var(--background);
  color: var(--foreground);
}

/* ==========================================================================
   2. Base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; border: 0 solid var(--border); }
[hidden] { display: none !important; }
html { line-height: 1.5; -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html, body { max-width: 100%; overflow-x: clip; }
body {
  margin: 0;
  background-color: var(--background);
  color: var(--foreground);
  font-family: var(--font-body);
  font-size: 15px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
}
h1, h2, h3, h4, h5, h6 {
  margin: 0;
  font-size: inherit;
  font-weight: 700;
  font-family: var(--font-display);
  letter-spacing: 0;
}
.font-display { font-family: var(--font-display); }
p, figure, blockquote, dl, dd { margin: 0; }
ul, ol { list-style: none; margin: 0; padding: 0; }
a { color: inherit; text-decoration: inherit; }
button, input, select, textarea {
  font-family: inherit; font-size: 100%; font-weight: inherit; line-height: inherit;
  color: inherit; margin: 0; padding: 0; background: transparent; border-radius: 0;
}
button { cursor: pointer; -webkit-appearance: button; appearance: button; background-image: none; text-transform: none; }
button:disabled { cursor: default; }
img, svg, video, canvas { display: block; vertical-align: middle; }
img, video { max-width: 100%; }
img:not(.cover-img):not(.product-card-img):not(.product-gallery-img):not(.product-thumb-img):not(.cart-thumb-img):not(.site-logo-img):not(.hero-bg-img):not(.about-banner-img) { height: auto; }
.cover-img, .product-card-img, .product-gallery-img, .product-thumb-img, .cart-thumb-img, .hero-bg-img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center;
}
.cover-img-static { position: static; }
section[id] { scroll-margin-top: 104px; }
::selection { background: color-mix(in srgb, var(--accent) 90%, transparent); color: var(--accent-foreground); }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }

a, button, [role="button"] {
  transition: color 300ms cubic-bezier(0.22, 1, 0.36, 1),
              background-color 300ms cubic-bezier(0.22, 1, 0.36, 1),
              border-color 300ms cubic-bezier(0.22, 1, 0.36, 1),
              transform 350ms cubic-bezier(0.34, 1.56, 0.64, 1),
              box-shadow 350ms cubic-bezier(0.22, 1, 0.36, 1),
              opacity 300ms ease;
}
a svg, button svg, [role="button"] svg {
  transition: transform 400ms cubic-bezier(0.34, 1.56, 0.64, 1), color 300ms ease, opacity 300ms ease;
  will-change: transform;
}
a:hover svg, button:hover svg, [role="button"]:hover svg { transform: translateY(-1px) rotate(-7deg) scale(1.12); }
a:active svg, button:active svg { transform: scale(0.95); }
img { transition: transform 700ms cubic-bezier(0.22, 1, 0.36, 1), filter 700ms ease; }

@media (prefers-reduced-motion: reduce) {
  a, button, [role="button"], a svg, button svg, img { transition: none !important; transform: none !important; }
}

.icon { flex-shrink: 0; }
.icon-3 { width: 0.75rem; height: 0.75rem; }
.icon-35 { width: 0.875rem; height: 0.875rem; }
.icon-4 { width: 1rem; height: 1rem; }
.icon-5 { width: 1.25rem; height: 1.25rem; }
.icon-7 { width: 1.75rem; height: 1.75rem; }
.icon-12 { width: 3rem; height: 3rem; }
.icon-14 { width: 3.5rem; height: 3.5rem; }

.container-wide { width: 100%; max-width: 80rem; margin-left: auto; margin-right: auto; padding-left: 1.25rem; padding-right: 1.25rem; }
@media (min-width: 640px) { .container-wide { padding-left: 1.5rem; padding-right: 1.5rem; } }
@media (min-width: 1024px) { .container-wide { padding-left: 2.5rem; padding-right: 2.5rem; } }

.text-stitch-gradient {
  background: linear-gradient(120deg, var(--hot), var(--violet) 50%, var(--volt));
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.text-hero-gradient {
  background: linear-gradient(115deg, var(--color-hero-gradient-start) 0%, var(--sun) 42%, var(--primary) 100%);
  -webkit-background-clip: text; background-clip: text; color: transparent;
}
.eyebrow {
  font-size: 15px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--accent);
  margin-bottom: 1rem; font-weight: 700;
}
.press-pop { transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 300ms ease; }
.press-pop:hover { transform: scale(1.02) translateY(-2px); }
.press-pop:active { transform: scale(0.98); }
.shadow-elevated { box-shadow: var(--shadow-elevated); }

/* ==========================================================================
   3. Animations
   ========================================================================== */
@keyframes fade-in { from { opacity: 0; } to { opacity: 1; } }
@keyframes slide-in-bottom { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes shimmer { 0% { background-position: -200% 0; } 100% { background-position: 200% 0; } }
@keyframes marquee-scroll { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(-50%, 0, 0); } }
.animate-fade-in { animation: fade-in 0.7s ease-out both; }
.animate-slide-in-bottom { animation: slide-in-bottom 0.9s cubic-bezier(0.22, 1, 0.36, 1) both; }

[data-aos] {
  opacity: 0;
  transform: translateY(24px);
  transition: opacity 900ms cubic-bezier(0.22, 1, 0.36, 1), transform 900ms cubic-bezier(0.22, 1, 0.36, 1), filter 900ms cubic-bezier(0.22, 1, 0.36, 1);
  will-change: opacity, transform, filter;
}
[data-aos="fade-up"] { transform: translateY(28px); }
[data-aos="fade-down"] { transform: translateY(-28px); }
[data-aos="fade-left"] { transform: translateX(36px); }
[data-aos="fade-right"] { transform: translateX(-36px); }
[data-aos="zoom-in"] { transform: scale(0.94); }
[data-aos="zoom-out"] { transform: scale(1.06); }
[data-aos="blur-in"] { filter: blur(12px); transform: translateY(16px); }
[data-aos].is-revealed { opacity: 1; transform: translateY(0) translateX(0) scale(1); filter: blur(0); }
body.is-customizer [data-aos] { opacity: 1; transform: none; filter: none; }
@media (prefers-reduced-motion: reduce) {
  [data-aos] { opacity: 1 !important; transform: none !important; filter: none !important; transition: none !important; }
}

.skeleton-shimmer {
  background: linear-gradient(90deg, var(--muted) 0%, var(--linen) 50%, var(--muted) 100%);
  background-size: 200% 100%;
  animation: shimmer 1.6s linear infinite;
}
.img-fade-in { opacity: 0; transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1); }
.img-fade-in.is-loaded { opacity: 1; }
body.is-customizer .img-fade-in { opacity: 1; }
@media (prefers-reduced-motion: reduce) {
  .skeleton-shimmer { animation: none; }
  .img-fade-in { transition: none; opacity: 1; }
  .marquee-track { animation: none; }
}
.marquee-track { width: max-content; animation: marquee-scroll 45s linear infinite; }

/* ==========================================================================
   4. Buttons
   ========================================================================== */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 0.5rem; white-space: nowrap;
  border-radius: 9999px; font-size: 15px; font-weight: 500; border: 1px solid transparent;
  height: 2.75rem; padding: 0.625rem 1.5rem; line-height: 1.5; cursor: pointer;
  transition: transform 150ms ease-out, box-shadow 150ms ease-out, background-color 150ms ease-out, border-color 150ms ease-out, color 150ms ease-out;
}
.btn:hover { transform: scale(1.02); box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -2px rgba(0, 0, 0, 0.1); }
.btn:active { transform: scale(0.97); }
.btn:focus-visible { outline: 2px solid transparent; outline-offset: 2px; box-shadow: 0 0 0 2px var(--background), 0 0 0 4px var(--primary); }
.btn:disabled, .btn.is-disabled { pointer-events: none; opacity: 0.6; }
.btn svg { width: 1rem; height: 1rem; flex-shrink: 0; pointer-events: none; }
.btn--lg { height: 3rem; padding: 0 1.75rem; }
.btn--sm { height: 2.25rem; padding: 0 1rem; }
.btn--default { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); }
.btn--default:hover { background: color-mix(in srgb, var(--primary) 90%, transparent); }
.btn--outline { background: transparent; color: var(--foreground); border-color: color-mix(in srgb, var(--foreground) 25%, transparent); }
.btn--outline:hover { border-color: var(--primary); color: var(--primary); }
.btn--ghost { background: transparent; border-color: transparent; }
.btn--ghost:hover { background: color-mix(in srgb, var(--foreground) 6%, transparent); color: var(--primary); }
.btn--block { width: 100%; }
.btn.press-pop { transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 300ms ease; }
.btn.press-pop:hover { transform: scale(1.02) translateY(-2px); }
.btn.press-pop:active { transform: scale(0.98); }

/* ==========================================================================
   5. Header
   ========================================================================== */
.scroll-progress { position: fixed; top: 0; left: 0; right: 0; z-index: 60; height: 2px; background: transparent; pointer-events: none; }
.scroll-progress__bar { height: 100%; background: var(--foreground); transform-origin: left; transform: scaleX(0); transition: transform 150ms ease-out; }

.site-header {
  position: sticky; top: 0; left: 0; right: 0; z-index: 50; width: 100%;
  background: transparent; border-bottom: 0; box-shadow: none;
  transition: color 300ms, background-color 300ms, border-color 300ms, fill 300ms, stroke 300ms;
}
.site-header.is-solid { background: var(--background); border-bottom: 1px solid var(--border); box-shadow: var(--shadow-soft); }
.site-header__inner { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem; height: 4rem; }
@media (min-width: 1024px) { .site-header__inner { height: 5rem; } }
.site-header__brand { display: flex; height: 100%; align-items: center; gap: 0.5rem; min-width: 0; }
.menu-toggle, .cart-button {
  position: relative; display: inline-flex; align-items: center; justify-content: center;
  width: 2.5rem; height: 2.5rem; border-radius: 9999px; color: #fff;
}
.menu-toggle:hover, .cart-button:hover { background: color-mix(in srgb, #fff 15%, transparent); }
.site-header.is-solid .menu-toggle, .site-header.is-solid .cart-button { color: var(--primary); }
.site-header.is-solid .menu-toggle:hover, .site-header.is-solid .cart-button:hover { background: color-mix(in srgb, var(--primary) 10%, transparent); }
.menu-toggle { display: none; }
.menu-toggle .icon-close { display: none; }
.menu-toggle[aria-expanded="true"] .icon-close { display: block; }
.menu-toggle[aria-expanded="true"] .icon-menu { display: none; }
@media (max-width: 1023px) { .menu-toggle { display: inline-flex; } }

.site-logo { align-self: flex-start; display: flex; align-items: flex-start; gap: 0.625rem; min-width: 0; }
.site-logo-img {
  transform-origin: top; width: auto; max-width: 48vw; object-fit: contain; user-select: none;
  height: 7rem; filter: brightness(0) invert(1); opacity: 1;
  transition: all 500ms ease-out;
}
.site-logo:hover .site-logo-img { transform: scale(1.05); }
.site-header.is-solid .site-logo-img { height: 3.5rem; filter: none; }
@media (min-width: 1024px) {
  .site-logo-img { height: 9rem; }
  .site-header.is-solid .site-logo-img { height: 4rem; }
}
.site-logo-text { font-family: var(--font-display); font-size: 1.5rem; color: #fff; line-height: 1.2; transition: color 300ms; }
.site-header.is-solid .site-logo-text { color: var(--primary); }

.site-nav { display: none; align-items: center; gap: 0.125rem; flex: 1 1 0%; justify-content: center; min-width: 0; }
@media (min-width: 1024px) { .site-nav { display: flex; } }
.site-nav .theme-nav-list { display: flex; align-items: center; gap: 0.125rem; }
.nav-link {
  position: relative; display: inline-block; padding: 0.5rem 0.625rem; font-size: 15px; font-weight: 600;
  border-radius: 9999px; white-space: nowrap; color: color-mix(in srgb, #fff 80%, transparent);
  transition: all 300ms ease-out;
}
@media (min-width: 1280px) { .nav-link { padding-left: 0.875rem; padding-right: 0.875rem; } }
.site-nav .nav-link:hover { transform: translateY(-0.125rem); color: #fff; }
.nav-link.is-active { color: #fff; }
.site-header.is-solid .nav-link { color: color-mix(in srgb, var(--foreground) 70%, transparent); }
.site-header.is-solid .nav-link:hover, .site-header.is-solid .nav-link.is-active { color: var(--primary); }
.nav-link__bar {
  pointer-events: none; position: absolute; left: 0.625rem; right: 0.625rem; bottom: 0.125rem; height: 3px;
  border-radius: 9999px; background: var(--accent); opacity: 0; transform: scaleX(0.5); transition: all 300ms ease-out;
}
@media (min-width: 1280px) { .nav-link__bar { left: 0.875rem; right: 0.875rem; } }
.nav-link.is-active .nav-link__bar { opacity: 1; transform: scaleX(1); }

.site-header__actions { display: flex; align-items: center; gap: 0.5rem; }
.header-cta {
  display: none; align-items: center; height: 2.5rem; padding: 0 1rem; border-radius: 9999px;
  background: var(--accent); color: var(--accent-foreground); font-size: 15px; font-weight: 600;
}
.header-cta:hover { box-shadow: var(--shadow-elevated); }
@media (min-width: 1280px) { .header-cta { display: inline-flex; } }
.theme-cart-count {
  position: absolute; top: -0.125rem; right: -0.125rem; font-size: 15px; font-weight: 700; min-width: 21px; height: 21px;
  padding: 0 0.25rem; border-radius: 9999px; display: flex; align-items: center; justify-content: center;
  background: var(--color-accent); color: var(--color-accent-foreground); animation: fade-in 0.7s ease-out both; line-height: 1.5;
}
.theme-cart-count:empty { display: none; }

.mobile-nav { border-top: 1px solid var(--border); background: var(--background); animation: fade-in 0.7s ease-out both; }
.mobile-nav[hidden] { display: none; }
@media (min-width: 1024px) { .mobile-nav { display: none; } }
.mobile-nav .container-wide { padding-top: 0.5rem; padding-bottom: 0.5rem; display: flex; flex-direction: column; }
.mobile-nav .theme-nav-list { display: flex; flex-direction: column; }
.mobile-nav .nav-link {
  display: block; text-align: left; font-size: 15px; font-weight: 600; padding: 0.75rem 0; border-radius: 0;
  border-bottom: 1px solid var(--border); color: color-mix(in srgb, var(--foreground) 80%, transparent);
}
.mobile-nav li:last-child .nav-link { border-bottom: 0; }
.mobile-nav .nav-link:hover { color: var(--primary); transform: translateX(0.25rem); }
.mobile-nav .nav-link__bar { display: none; }

/* ==========================================================================
   6. Hero
   ========================================================================== */
.hero-section {
  position: relative; margin-top: -4rem; min-height: 100vh; width: 100%; display: flex; align-items: center; justify-content: center;
}
@media (min-width: 1024px) { .hero-section { margin-top: -5rem; } }
.hero-section video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.hero-scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0, 0, 0, 0.42) 0%, rgba(0, 0, 0, 0.24) 45%, rgba(0, 0, 0, 0.48) 100%); }
.hero-content { position: relative; z-index: 10; text-align: center; color: #fff; padding-top: 6rem; padding-bottom: 6rem; }
@media (min-width: 1024px) { .hero-content { padding-top: 7rem; padding-bottom: 7rem; } }
.hero-badge-wrap { display: flex; justify-content: center; margin-bottom: 1.75rem; }
.hero-badge {
  display: inline-flex; align-items: center; gap: 0.5rem; padding: 0.375rem 1rem; border-radius: 9999px;
  border: 1px solid color-mix(in srgb, #fff 30%, transparent); font-size: 15px; letter-spacing: 0.28em; text-transform: uppercase;
  color: #fff; font-weight: 700; backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px); transition: transform 500ms;
}
.hero-badge:hover { transform: scale(1.05); }
.hero-title {
  font-size: 2.5rem; font-size: clamp(2.5rem, 8vw, 6rem); line-height: 0.95; letter-spacing: -0.025em; margin-left: auto; margin-right: auto;
  max-width: 64rem; filter: drop-shadow(0 2px 20px rgba(0, 0, 0, 0.65));
}
.hero-title__sub { color: color-mix(in srgb, #fff 95%, transparent); }
.hero-text {
  margin: 1.75rem auto 0; max-width: 42rem; font-size: 17px; color: color-mix(in srgb, #fff 90%, transparent); line-height: 1.625;
  filter: drop-shadow(0 1px 10px rgba(0, 0, 0, 0.45)); animation-delay: 120ms;
}
@media (min-width: 640px) { .hero-text { font-size: 19px; } }
.hero-actions { margin-top: 2.5rem; display: flex; flex-direction: column; gap: 0.75rem; justify-content: center; animation-delay: 240ms; }
@media (min-width: 640px) { .hero-actions { flex-direction: row; gap: 1rem; } }
.btn-hero-primary { background: var(--accent); color: var(--accent-foreground); border-color: var(--primary); box-shadow: var(--shadow-elevated); text-transform: none; }
.btn-hero-primary:hover { background: color-mix(in srgb, var(--accent) 90%, transparent); }
.btn-hero-outline {
  background: color-mix(in srgb, #fff 10%, transparent); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
  border-color: color-mix(in srgb, #fff 70%, transparent); color: #fff; text-transform: none;
}
.btn-hero-outline:hover { background: #fff; color: var(--primary); border-color: var(--primary); }

/* ==========================================================================
   7. Marquee
   ========================================================================== */
.mantra-section { position: relative; overflow: hidden; padding: 1.75rem 0; background: linear-gradient(100deg, var(--primary), var(--accent) 50%, var(--primary)); }
@media (min-width: 768px) { .mantra-section { padding: 2.5rem 0; } }
.mantra-fade { pointer-events: none; position: absolute; top: 0; bottom: 0; width: 4rem; z-index: 10; }
.mantra-fade--left { left: 0; background: linear-gradient(to right, var(--primary), transparent); }
.mantra-fade--right { right: 0; background: linear-gradient(to left, var(--primary), transparent); }
@media (min-width: 768px) { .mantra-fade { width: 8rem; } }
.marquee-track { display: flex; align-items: center; gap: 2.5rem; white-space: nowrap; will-change: transform; }
@media (min-width: 768px) { .marquee-track { gap: 4rem; } }
.marquee-item { display: flex; align-items: center; gap: 2.5rem; flex-shrink: 0; }
@media (min-width: 768px) { .marquee-item { gap: 4rem; } }
.marquee-phrase { font-family: var(--font-display); line-height: 1; color: color-mix(in srgb, #fff 95%, transparent); font-size: clamp(1.2rem, 3vw, 2.4rem); }
.marquee-dot { display: inline-block; border-radius: 9999px; flex-shrink: 0; background: var(--volt); width: clamp(7px, 0.7vw, 12px); height: clamp(7px, 0.7vw, 12px); }

/* ==========================================================================
   8. Section headings & layout
   ========================================================================== */
.section-pad { padding-top: 6rem; padding-bottom: 6rem; }
@media (min-width: 768px) { .section-pad { padding-top: 8rem; padding-bottom: 8rem; } }
.about-section .section-heading, .services-section .section-heading, .shop-section .section-heading,
.owner-section .section-heading, .contact-section .section-heading { font-size: 2.25rem; line-height: 1.05; color: var(--foreground); }
@media (min-width: 768px) {
  .about-section .section-heading, .services-section .section-heading, .shop-section .section-heading,
  .owner-section .section-heading, .contact-section .section-heading { font-size: 3rem; }
}
@media (min-width: 1024px) {
  .about-section .section-heading, .services-section .section-heading, .shop-section .section-heading,
  .owner-section .section-heading, .contact-section .section-heading { font-size: 3.2rem; }
}

/* About */
.about-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 3rem; align-items: start; }
@media (min-width: 1024px) { .about-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4rem; } }
.about-left { display: flex; flex-direction: column; }
@media (min-width: 1024px) { .about-left { grid-column: span 5 / span 5; align-self: stretch; } .about-right { grid-column: span 7 / span 7; padding-left: 1.5rem; } }
.about-right { display: flex; flex-direction: column; }
.about-heading { cursor: default; }
.about-heading__accent { display: inline-block; transition: transform 500ms ease-out; }
.about-heading:hover .about-heading__accent { transform: translateX(0.25rem); }
.about-lead { margin-top: 1.25rem; font-size: 16px; color: color-mix(in srgb, var(--foreground) 70%, transparent); line-height: 1.625; max-width: 24rem; }
@media (min-width: 1024px) { .about-lead { margin-top: 15px; } }
.about-body { margin-top: 2.5rem; font-size: 16px; line-height: 1.75; color: color-mix(in srgb, var(--foreground) 75%, transparent); }
.about-body p, .about-narrative p { transition: color 300ms; }
.about-body p:hover, .about-narrative p:hover { color: var(--foreground); }
.about-extra { margin-top: 2.5rem; border-top: 1px solid var(--border); padding-top: 2rem; }
.about-callout {
  border-radius: var(--radius); border: 1px solid var(--border); background: var(--card); padding: 1.25rem; text-align: center;
  box-shadow: var(--shadow-soft); transition: all 500ms ease-out; cursor: default;
}
.about-callout:hover { transform: translateY(-0.375rem); border-color: color-mix(in srgb, var(--accent) 60%, transparent); box-shadow: var(--shadow-elevated); }
.about-callout__label { font-size: 15px; letter-spacing: 0.24em; text-transform: uppercase; color: color-mix(in srgb, var(--foreground) 50%, transparent); margin-bottom: 0.375rem; font-weight: 700; }
.about-callout__text { font-size: 15px; font-weight: 600; color: var(--foreground); }
.about-stats { margin-top: 2rem; display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; }
@media (min-width: 640px) { .about-stats { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .about-stats { grid-template-columns: minmax(0, 1fr); } }
.about-stat { display: flex; align-items: center; gap: 1rem; text-align: left; cursor: default; transition: transform 500ms ease-out; }
.about-stat:hover { transform: translateX(0.375rem); }
@media (min-width: 640px) { .about-stat { flex-direction: column; text-align: center; } }
@media (min-width: 1024px) { .about-stat { flex-direction: row; text-align: left; } }
.about-stat__icon {
  display: inline-flex; flex-shrink: 0; align-items: center; justify-content: center; width: 2.75rem; height: 2.75rem;
  border-radius: calc(var(--radius) - 4px); transition: transform 500ms ease-out;
}
.about-stat:hover .about-stat__icon { transform: rotate(6deg) scale(1.1); }
.about-stat__icon svg { color: #fff; }
.about-stat__title { font-family: var(--font-display); font-size: 1.25rem; line-height: 1.75rem; color: var(--foreground); transition: color 400ms; }
.about-stat:hover .about-stat__title { color: var(--primary); }
.about-stat__text { margin-top: 0.125rem; font-size: 15px; color: color-mix(in srgb, var(--foreground) 60%, transparent); transition: color 400ms; }
.about-stat:hover .about-stat__text { color: color-mix(in srgb, var(--foreground) 85%, transparent); }
.about-subheading {
  font-size: 1.875rem; line-height: 1.15; color: var(--foreground); margin-bottom: 1.75rem; transition: transform 500ms ease-out; cursor: default;
}
@media (min-width: 768px) { .about-subheading { font-size: 2.25rem; } }
.about-subheading:hover { transform: translateX(0.25rem); }
.about-banner { margin-bottom: 1.75rem; overflow: hidden; border-radius: var(--radius); border: 1px solid var(--border); background: var(--card); box-shadow: var(--shadow-soft); }
.about-banner-img { display: block; width: 100%; aspect-ratio: 16 / 10; object-fit: cover; height: auto; }
.about-narrative { font-size: 16px; line-height: 1.75; color: color-mix(in srgb, var(--foreground) 75%, transparent); flex: 1 1 0%; }
.about-narrative > * + * { margin-top: 1.25rem; }
.about-quote {
  font-family: var(--font-display); color: color-mix(in srgb, var(--foreground) 90%, transparent); font-size: 1.125rem; line-height: 1.75rem;
  transition: all 500ms ease-out; cursor: default;
}
@media (min-width: 768px) { .about-quote { font-size: 1.25rem; } }
.about-narrative .about-quote:hover { transform: translateX(0.25rem); color: var(--accent); }

/* Services */
.services-section { position: relative; overflow: hidden; }
.services-glow { pointer-events: none; position: absolute; left: -8rem; top: 33.333%; width: 24rem; height: 24rem; border-radius: 9999px; opacity: 0.2; filter: blur(64px); background: radial-gradient(circle, var(--violet), transparent 70%); }
.services-section .container-wide { position: relative; }
.hidden-sm { display: none; }
@media (min-width: 768px) { .hidden-sm { display: inline; } }
.services-head { max-width: 48rem; margin-bottom: 3.5rem; }
.services-text { margin-top: 1.25rem; font-size: 16px; color: color-mix(in srgb, var(--foreground) 75%, transparent); line-height: 1.625; }
.services-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1.5rem; align-items: stretch; }
@media (min-width: 640px) { .services-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .services-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.service-card { position: relative; height: 100%; cursor: pointer; border-radius: var(--radius); will-change: transform; }
.service-card:focus { outline: none; }
.service-card:focus-visible { box-shadow: 0 0 0 2px var(--accent); }
.service-card__glow { pointer-events: none; position: absolute; inset: -0.25rem; border-radius: var(--radius); opacity: 0; filter: blur(24px); transition: opacity 500ms; }
.service-card:hover .service-card__glow { opacity: 0.7; }
.service-card__inner {
  position: relative; height: 100%; display: flex; flex-direction: column; background: var(--card); border: 1px solid var(--border);
  border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow-soft); overflow: hidden;
  transition: border-color 500ms ease-out, box-shadow 500ms ease-out, transform 500ms ease-out;
}
@media (min-width: 768px) { .service-card__inner { padding: 1.75rem; } }
.service-card:hover .service-card__inner { transform: translateY(-0.25rem); border-color: transparent; box-shadow: var(--shadow-elevated); }
.service-card__bar { position: absolute; left: 0; right: 0; top: 0; height: 0.25rem; opacity: 0; transition: opacity 500ms; }
.service-card:hover .service-card__bar { opacity: 1; }
.service-card__icon {
  position: relative; display: inline-flex; align-items: center; justify-content: center; width: 3.5rem; height: 3.5rem;
  border-radius: calc(var(--radius) - 4px); margin-bottom: 1.25rem; flex-shrink: 0; transition: transform 320ms cubic-bezier(0.34, 1.56, 0.64, 1);
}
.service-card__icon:hover { transform: rotate(8deg) scale(1.12); }
.service-card__icon-glow { position: absolute; inset: 0; border-radius: calc(var(--radius) - 4px); opacity: 0; transition: opacity 500ms; }
.service-card:hover .service-card__icon-glow { opacity: 1; }
.service-card__icon svg { position: relative; width: 1.75rem; height: 1.75rem; color: #fff; }
.service-card__title { font-family: var(--font-display); font-size: 1.2rem; line-height: 1.375; color: var(--foreground); margin-bottom: 0.5rem; transition: color 300ms; }
.service-card:hover .service-card__title { color: var(--accent); }
.service-card__text { font-size: 15px; line-height: 1.625; color: color-mix(in srgb, var(--foreground) 70%, transparent); flex: 1 1 0%; }
.service-card__more { margin-top: 1.5rem; display: inline-flex; align-items: center; gap: 0.5rem; font-size: 15px; font-weight: 700; color: var(--accent); }
.service-card__more svg { width: 1rem; height: 1rem; transition: transform 300ms; }
.service-card:hover .service-card__more svg { transform: translateX(0.25rem); }

/* Shop */
.shop-head { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 3rem; }
@media (min-width: 1024px) { .shop-head { flex-direction: row; align-items: flex-end; justify-content: space-between; } }
.shop-head__copy { max-width: 42rem; }
.shop-text { margin-top: 1.25rem; font-size: 16px; color: color-mix(in srgb, var(--foreground) 70%, transparent); line-height: 1.625; max-width: 36rem; }
.shop-search { position: relative; width: 100%; }
@media (min-width: 1024px) { .shop-search { width: 20rem; } }
.shop-search svg { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); width: 1rem; height: 1rem; color: color-mix(in srgb, var(--foreground) 50%, transparent); pointer-events: none; }
.shop-search:hover svg { transform: translateY(-50%); }
.shop-search input {
  width: 100%; height: 2.75rem; padding: 0 1rem 0 2.75rem; border-radius: 9999px; background: var(--secondary); border: 1px solid var(--border);
  font-size: 15px; color: var(--foreground); outline: none; transition: border-color 150ms; -webkit-appearance: none; appearance: none;
}
.shop-search input::placeholder { color: color-mix(in srgb, var(--foreground) 45%, transparent); opacity: 1; }
.shop-search input:focus { border-color: var(--primary); }
.shop-filters { display: flex; flex-wrap: wrap; gap: 0.625rem; margin-bottom: 3rem; }
.shop-filter {
  padding: 0 1.25rem; height: 2.5rem; border-radius: 9999px; font-size: 15px; font-weight: 600; border: 1px solid color-mix(in srgb, var(--primary) 25%, transparent);
  background: transparent; color: color-mix(in srgb, var(--foreground) 70%, transparent); text-transform: none;
  transition: transform 300ms cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 300ms ease;
}
.shop-filter:hover { border-color: var(--accent); color: var(--accent); transform: scale(1.02) translateY(-2px); }
.shop-filter:active { transform: scale(0.98); }
.shop-filter.is-active { background: var(--primary); color: var(--primary-foreground); border-color: var(--primary); box-shadow: var(--shadow-soft); }
.shop-filter.is-active:hover { color: var(--primary-foreground); }
.theme-product-grid { display: grid; grid-template-columns: minmax(0, 1fr); column-gap: 1.5rem; row-gap: 3rem; align-items: stretch; }
@media (min-width: 640px) { .theme-product-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .theme-product-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
.theme-product-grid--related { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 2.5rem; }
@media (min-width: 1024px) { .theme-product-grid--related { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.shop-empty { text-align: center; padding: 5rem 0; color: color-mix(in srgb, var(--foreground) 55%, transparent); }
.shop-more { margin-top: 3.5rem; display: flex; justify-content: center; }
.is-filtered-out, .is-collapsed { display: none !important; }

/* Product card */
.theme-product-card-wrap { height: 100%; }
.theme-product-card {
  position: relative; display: flex; flex-direction: column; height: 100%; border-radius: 0.75rem; border: 1px solid var(--border); background: var(--card);
  overflow: hidden; box-shadow: var(--shadow-soft); transition: all 500ms ease-out;
}
.theme-product-card:hover { transform: translateY(-0.5rem); border-color: color-mix(in srgb, var(--accent) 60%, transparent); box-shadow: var(--shadow-elevated); }
.theme-product-card__image-wrapper .theme-card-link { position: absolute; inset: 0; z-index: 1; display: block; }
.theme-product-card__image-wrapper *:not(.theme-card-link):not(.theme-product-card__actions):not(.theme-product-card__actions *) { pointer-events: none; }
.theme-product-card__actions, .theme-product-card__actions * { pointer-events: auto; position: relative; z-index: 5; }
.theme-product-card__title-link { pointer-events: auto; color: inherit; text-decoration: none; }
@media (hover: none) { .theme-product-card__actions { opacity: 1; } }
.theme-product-card__image-wrapper { position: relative; aspect-ratio: 1 / 1; background: var(--linen); overflow: hidden; }
.theme-product-card__skeleton { position: absolute; inset: 0; }
.product-card-img { will-change: transform; transition: opacity 700ms cubic-bezier(0.22, 1, 0.36, 1); }
.theme-product-card:hover .product-card-img { transform: scale(1.06); }
.theme-product-card__shade {
  position: absolute; inset: 0; background: linear-gradient(to top, rgba(0, 0, 0, 0.55), transparent 50%, transparent); opacity: 0; transition: opacity 500ms;
}
.theme-product-card:hover .theme-product-card__shade { opacity: 1; }
.theme-badge { position: absolute; top: 0.75rem; font-size: 15px; font-weight: 700; padding: 0.25rem 0.625rem; border-radius: 9999px; }
.theme-badge--made { left: 0.75rem; background: var(--primary); color: var(--primary-foreground); letter-spacing: 0.025em; text-transform: uppercase; }
.theme-badge--sold { right: 0.75rem; background: var(--hot); color: #fff; }
.theme-product-card__actions { position: absolute; left: 0.75rem; right: 0.75rem; bottom: 0.75rem; display: flex; align-items: center; gap: 0.5rem; opacity: 0; transition: opacity 500ms ease-out; }
.theme-product-card:hover .theme-product-card__actions { opacity: 1; }
.theme-product-card__actions .theme-card-atc,
.theme-product-card__actions button.theme-card-atc.ajax_add_to_cart {
  position: relative; z-index: 3; pointer-events: auto; flex: 1 1 0%; min-width: 0; width: 100%;
  appearance: none; -webkit-appearance: none; margin: 0; cursor: pointer;
  display: inline-flex !important; align-items: center !important; justify-content: center !important;
  gap: 0.5rem !important; height: 2.5rem !important; min-height: 2.5rem !important; max-height: 2.5rem !important;
  padding: 0 1rem !important; border: none !important; border-radius: 9999px !important;
  background-color: var(--accent) !important; color: var(--accent-foreground) !important;
  font-family: var(--font-body) !important; font-size: 15px !important; font-weight: 700 !important;
  letter-spacing: 0.025em !important; line-height: 1.25 !important; text-transform: none !important;
  box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05); transition: background-color 300ms ease, transform 300ms ease !important;
}
.theme-product-card__actions .theme-card-atc svg { width: 0.875rem; height: 0.875rem; flex-shrink: 0; }
.theme-product-card__actions .theme-card-atc:hover {
  background-color: color-mix(in srgb, var(--accent) 90%, transparent) !important;
  opacity: 1 !important; color: var(--accent-foreground) !important;
}
.theme-product-card__actions .theme-card-atc:active { transform: scale(0.97); }
.theme-product-card__actions .theme-card-atc.theme-btn-loading { opacity: 0.85 !important; }
.theme-product-card__quick {
  width: 2.5rem; height: 2.5rem; display: inline-flex; align-items: center; justify-content: center; border-radius: 9999px;
  background: color-mix(in srgb, var(--background) 90%, transparent); backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  color: var(--foreground); border: 1px solid var(--border); box-shadow: 0 1px 2px 0 rgba(0, 0, 0, 0.05);
}
.theme-product-card__info { display: flex; flex-direction: column; flex: 1 1 0%; padding: 1.25rem; }
.theme-product-card__cat { font-size: 15px; text-transform: uppercase; letter-spacing: 0.24em; color: var(--accent); margin-bottom: 0.375rem; font-weight: 700; }
.theme-product-card__title { font-family: var(--font-display); font-size: 1.05rem; line-height: 1.375; color: var(--foreground); transition: color 300ms; }
@media (min-width: 768px) { .theme-product-card__title { font-size: 1.15rem; } }
.theme-product-card:hover .theme-product-card__title { color: var(--primary); }
.theme-product-card__price { margin-top: auto; padding-top: 0.75rem; font-size: 16px; font-weight: 700; color: var(--primary); }
.theme-product-card__price .woocommerce-Price-amount, .theme-product-card__price .price { font-weight: 700; color: var(--primary); }
.theme-product-card__price del { opacity: 0.6; }
.theme-product-card__price ins { text-decoration: none; }

/* Owner */
.owner-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: center; }
@media (min-width: 1024px) { .owner-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; } }
.owner-body { margin-top: 2rem; font-size: 16px; line-height: 1.75; color: color-mix(in srgb, var(--foreground) 75%, transparent); }
.owner-body > * + * { margin-top: 1.75rem; }
.owner-quote {
  border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 1.75rem 0; font-family: var(--font-display);
  font-size: 1.5rem; line-height: 1.3; color: var(--primary);
}
@media (min-width: 768px) { .owner-quote { font-size: 1.8rem; } }
.owner-marks { margin-top: 2.25rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 1rem; border-top: 1px solid var(--border); border-bottom: 1px solid var(--border); padding: 1.25rem 0; }
.owner-mark { display: flex; flex-direction: column; align-items: center; gap: 0.5rem; text-align: center; font-size: 15px; font-weight: 600; color: color-mix(in srgb, var(--foreground) 70%, transparent); }
.owner-mark svg { width: 1.25rem; height: 1.25rem; color: var(--accent); }
.owner-link { margin-top: 2.5rem; }
.owner-photo { aspect-ratio: 4 / 5; position: relative; overflow: hidden; border-radius: var(--radius); border: 1px solid var(--border); background: var(--secondary); box-shadow: var(--shadow-elevated); }
.owner-photo img { object-position: center; }

/* Pre-contact */
.precontact-section { position: relative; display: flex; min-height: 100vh; align-items: center; justify-content: center; }
@media (min-width: 768px) { .precontact-section { aspect-ratio: 16 / 9; } }
.precontact-section video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: center; pointer-events: none; }
.precontact-scrim { position: absolute; inset: 0; pointer-events: none; background: linear-gradient(180deg, rgba(0, 0, 0, 0.4) 0%, rgba(0, 0, 0, 0.22) 50%, rgba(0, 0, 0, 0.46) 100%); }
.precontact-content { position: relative; z-index: 10; padding-top: 7rem; padding-bottom: 7rem; text-align: center; text-shadow: 0 2px 10px rgba(0, 0, 0, 0.5); }
@media (min-width: 768px) { .precontact-content { padding-top: 9rem; padding-bottom: 9rem; } }
.precontact-eyebrow { display: inline-flex; align-items: center; justify-content: center; gap: 0.75rem; font-size: 15px; letter-spacing: 0.28em; text-transform: uppercase; color: color-mix(in srgb, #fff 90%, transparent); margin-bottom: 1.25rem; font-weight: 700; }
.precontact-eyebrow .line { height: 1px; width: 2rem; background: color-mix(in srgb, #fff 50%, transparent); }
.precontact-title { font-size: 2rem; font-size: clamp(2rem, 5.4vw, 3.8rem); color: #fff; line-height: 1.05; letter-spacing: -0.025em; margin: 0 auto; max-width: 56rem; }
.precontact-text { margin: 1.5rem auto 0; max-width: 36rem; font-size: 16px; color: color-mix(in srgb, #fff 85%, transparent); line-height: 1.625; white-space: pre-line; }
.precontact-actions { margin-top: 2.25rem; text-shadow: none; }

/* Contact */
.contact-section { padding-top: 6rem; padding-bottom: 4rem; }
@media (min-width: 768px) { .contact-section { padding-top: 8rem; padding-bottom: 5rem; } }
.contact-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: stretch; }
@media (min-width: 1024px) { .contact-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4rem; } }
.contact-left { display: flex; flex-direction: column; height: 100%; }
.contact-text { margin-top: 1.25rem; font-size: 16px; color: color-mix(in srgb, var(--foreground) 70%, transparent); line-height: 1.625; max-width: 28rem; }
.contact-points { margin-top: 2.25rem; }
.contact-points > li + li { margin-top: 1rem; }
.contact-point {
  display: flex; align-items: center; gap: 1rem; border-radius: var(--radius); border: 1px solid var(--border); background: var(--card); padding: 1rem;
  box-shadow: var(--shadow-soft); transition: all 400ms ease-out;
}
a.contact-link { display: block; }
.contact-point:hover { transform: translateY(-0.25rem); border-color: color-mix(in srgb, var(--accent) 60%, transparent); box-shadow: var(--shadow-elevated); }
.contact-point__icon {
  width: 2.75rem; height: 2.75rem; border-radius: calc(var(--radius) - 4px); display: inline-flex; align-items: center; justify-content: center;
  flex-shrink: 0; transition: transform 500ms ease-out;
}
.contact-point:hover .contact-point__icon { transform: rotate(6deg) scale(1.1); }
.contact-point__icon svg { width: 1.25rem; height: 1.25rem; color: #fff; }
.contact-point__body { display: flex; flex-direction: column; text-align: left; min-width: 0; }
.contact-point__label { font-size: 15px; letter-spacing: 0.2em; text-transform: uppercase; color: color-mix(in srgb, var(--foreground) 50%, transparent); font-weight: 700; }
.contact-point__value { font-size: 15px; font-weight: 600; color: var(--foreground); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; transition: color 300ms; }
.contact-point:hover .contact-point__value { color: var(--primary); }
.contact-quote-wrap { margin-top: auto; padding-top: 2rem; }
.contact-quote { position: relative; border-radius: var(--radius); border: 1px solid var(--border); background: var(--secondary); padding: 2.25rem 1.5rem; text-align: center; overflow: hidden; }
@media (min-width: 768px) { .contact-quote { padding: 2.75rem 2.5rem; } }
.contact-quote__bar { margin: 0 auto 1rem; display: block; height: 0.25rem; width: 3rem; border-radius: 9999px; background: color-mix(in srgb, var(--accent) 70%, transparent); }
.contact-quote__text { font-family: var(--font-display); color: color-mix(in srgb, var(--foreground) 90%, transparent); line-height: 1.3; font-size: 1.125rem; max-width: 28rem; margin: 0 auto; }
@media (min-width: 768px) { .contact-quote__text { font-size: 1.25rem; } }
@media (min-width: 1024px) { .contact-quote__text { font-size: 1.5rem; } }
.contact-quote__cap { margin-top: 1.25rem; font-size: 15px; letter-spacing: 0.24em; text-transform: uppercase; color: color-mix(in srgb, var(--foreground) 55%, transparent); font-weight: 700; }
.contact-form {
  background: var(--card); border: 1px solid var(--border); border-radius: var(--radius); padding: 1.5rem; box-shadow: var(--shadow-soft);
  height: 100%; display: flex; flex-direction: column; transition: all 500ms ease-out;
}
@media (min-width: 768px) { .contact-form { padding: 2rem; } }
.contact-form:hover { box-shadow: var(--shadow-elevated); border-color: color-mix(in srgb, var(--primary) 40%, transparent); }
.contact-form__fields { flex: 1 1 0%; display: flex; flex-direction: column; }
.contact-form__fields > * + * { margin-top: 1rem; }
.contact-form__row { display: grid; grid-template-columns: minmax(0, 1fr); gap: 1rem; }
@media (min-width: 640px) { .contact-form__row { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
.field-label { display: block; font-size: 15px; letter-spacing: 0.2em; text-transform: uppercase; color: color-mix(in srgb, var(--foreground) 55%, transparent); margin-bottom: 0.5rem; font-weight: 700; }
.field-input {
  width: 100%; height: 3rem; padding: 0 1rem; background: var(--background); border: 1px solid var(--border); border-radius: calc(var(--radius) - 4px);
  font-size: 15px; color: var(--foreground); outline: none; transition: border-color 150ms; -webkit-appearance: none; appearance: none;
}
.field-input::placeholder { color: color-mix(in srgb, var(--foreground) 45%, transparent); opacity: 1; }
.field-input:focus { border-color: var(--primary); }
.field-select-wrap { position: relative; }
.field-select-wrap select { padding-right: 2.5rem; }
.field-select-wrap svg { pointer-events: none; position: absolute; right: 1rem; top: 50%; transform: translateY(-50%); width: 1rem; height: 1rem; color: color-mix(in srgb, var(--foreground) 55%, transparent); }
.contact-form__message { flex: 1 1 0%; display: flex; flex-direction: column; }
textarea.field-input { flex: 1 1 0%; min-height: 140px; height: auto; padding-top: 0.75rem; padding-bottom: 0.75rem; resize: none; }
.contact-form__foot { padding-top: 0.5rem; }
.contact-form__foot > * + * { margin-top: 0.75rem; }
.contact-form__note { font-size: 15px; color: color-mix(in srgb, var(--foreground) 55%, transparent); text-align: center; }
.contact-form__submit { text-transform: none; }

/* ==========================================================================
   9. Footer
   ========================================================================== */
.site-footer { border-top: 1px solid color-mix(in srgb, #fff 10%, transparent); background: var(--background); }
.site-footer__top { padding-top: 3.5rem; padding-bottom: 1.5rem; }
@media (min-width: 1024px) { .site-footer__top { padding-top: 5rem; } }
.footer-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; align-items: start; }
@media (min-width: 640px) { .footer-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1024px) { .footer-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 3rem; } }
.footer-col { display: flex; flex-direction: column; height: 100%; }
.footer-logo { display: inline-flex; align-items: center; gap: 0.75rem; }
.footer-logo .site-logo-img { height: 6.1875rem; max-width: none; filter: brightness(0) invert(1); transition: transform 500ms ease-out; }
@media (min-width: 1024px) { .footer-logo .site-logo-img { height: 7.425rem; } }
.footer-logo:hover .site-logo-img { transform: scale(1.05); }
.footer-logo .site-logo-text { color: #fff; }
.footer-blurb { margin-top: 1rem; font-size: 14px; color: color-mix(in srgb, #fff 70%, transparent); line-height: 1.625; max-width: 20rem; }
.footer-title { font-family: var(--font-display); font-size: 1.125rem; line-height: 1.75rem; color: #fff; margin-bottom: 1rem; }
.footer-list > li + li { margin-top: 0.625rem; }
.footer-link { display: inline-block; font-size: 14px; color: color-mix(in srgb, #fff 70%, transparent); transition: all 300ms; }
.footer-link:hover { color: var(--hot); transform: translateX(0.25rem); }
.footer-contact > li + li { margin-top: 0.75rem; }
.footer-contact { font-size: 14px; }
.footer-contact a, .footer-contact span.footer-contact__item { display: inline-flex; align-items: center; gap: 0.5rem; color: color-mix(in srgb, #fff 75%, transparent); }
.footer-contact a:hover { color: var(--hot); }
.footer-contact a.is-break { word-break: break-all; }
.footer-contact svg { width: 1rem; height: 1rem; flex-shrink: 0; }
.footer-bottom { margin-top: 3.5rem; padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, #fff 10%, transparent); display: flex; flex-direction: column; justify-content: space-between; align-items: center; gap: 1rem; }
@media (min-width: 640px) { .footer-bottom { flex-direction: row; } }
.footer-copy { font-size: 14px; color: color-mix(in srgb, #fff 60%, transparent); text-align: center; }
@media (min-width: 640px) { .footer-copy { text-align: left; flex: 1 1 0%; } }
.footer-credit-wrap { display: flex; justify-content: center; }
@media (min-width: 640px) { .footer-credit-wrap { flex: 1 1 0%; justify-content: flex-end; } }
.footer-credit { font-size: 14px; color: color-mix(in srgb, #fff 70%, transparent); }
.footer-credit a { color: #fff; text-decoration: underline; text-underline-offset: 4px; }
.footer-credit a:hover { color: var(--hot); }

/* ==========================================================================
   10. Cart drawer
   ========================================================================== */
#theme-cart-overlay { display: none; position: fixed; inset: 0; background: color-mix(in srgb, var(--color-foreground) 30%, transparent); z-index: 50; }
body.cart-open #theme-cart-overlay { display: block; animation: fade-in 0.7s ease-out both; }
#theme-cart-drawer {
  display: none; position: fixed; right: 0; top: 0; height: 100%; width: 100%; max-width: 28rem; background: var(--color-background);
  color: var(--color-foreground); z-index: 51; box-shadow: var(--shadow-elevated); flex-direction: column;
}
body.cart-open #theme-cart-drawer { display: flex; animation: slide-in-bottom 0.9s cubic-bezier(0.22, 1, 0.36, 1) both; }
#theme-cart-drawer.is-updating { opacity: 0.6; pointer-events: none; }
.cart-drawer__head { display: flex; align-items: center; justify-content: space-between; padding: 1.5rem; border-bottom: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent); }
.cart-drawer__title { font-family: var(--font-display); font-size: 1.5rem; line-height: 2rem; color: var(--color-foreground); }
.cart-drawer__close { padding: 0.375rem; border-radius: 9999px; }
.cart-drawer__close:hover { background: color-mix(in srgb, var(--color-foreground) 6%, transparent); }
.cart-drawer__close svg { width: 1.25rem; height: 1.25rem; }
.cart-drawer__empty { flex: 1 1 0%; display: flex; flex-direction: column; align-items: center; justify-content: center; padding: 1.5rem; text-align: center; }
.cart-drawer__empty > svg { width: 3rem; height: 3rem; color: color-mix(in srgb, var(--color-foreground) 30%, transparent); margin-bottom: 1rem; }
.cart-drawer__empty p { color: color-mix(in srgb, var(--color-foreground) 65%, transparent); margin-bottom: 1.5rem; font-size: 15px; }
.cart-drawer__items { flex: 1 1 0%; overflow: auto; padding: 1.5rem; }
.cart-drawer__items > * + * { margin-top: 1.25rem; }
.cart-item { display: flex; gap: 1rem; }
.cart-item__thumb { position: relative; display: block; width: 5rem; height: 6rem; background: var(--color-bone); border-radius: calc(var(--radius) - 4px); overflow: hidden; flex-shrink: 0; }
.cart-item__body { flex: 1 1 0%; min-width: 0; }
.cart-item__name { display: block; font-size: 15px; font-weight: 500; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cart-item__name:hover { color: var(--color-primary); }
.cart-item__price { font-size: 15px; color: color-mix(in srgb, var(--color-foreground) 60%, transparent); margin-top: 0.125rem; }
.cart-item__meta { font-size: 15px; color: color-mix(in srgb, var(--color-foreground) 60%, transparent); }
.cart-item__controls { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.75rem; }
.cart-item__btn { padding: 0.25rem; border-radius: 0.25rem; }
.cart-item__btn:hover { background: var(--color-bone); }
.cart-item__btn svg { width: 0.75rem; height: 0.75rem; }
.cart-item__qty { font-size: 15px; width: 1.5rem; text-align: center; }
.cart-item__remove { margin-left: auto; font-size: 15px; color: color-mix(in srgb, var(--color-foreground) 55%, transparent); }
.cart-item__remove:hover { color: var(--color-destructive); }
.cart-drawer__foot { padding: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--color-foreground) 10%, transparent); background: color-mix(in srgb, var(--color-linen) 40%, transparent); }
.cart-drawer__foot > * + * { margin-top: 1rem; }
.cart-drawer__row { display: flex; justify-content: space-between; font-size: 15px; }
.cart-drawer__row span:first-child { color: color-mix(in srgb, var(--color-foreground) 65%, transparent); }
.cart-drawer__row span:last-child { font-weight: 500; }
.cart-drawer__note { font-size: 15px; color: color-mix(in srgb, var(--color-foreground) 55%, transparent); }
.cart-drawer__checkout { background: var(--color-primary); color: var(--color-primary-foreground); border-color: var(--color-primary); }
.cart-drawer__empty-btn { color: color-mix(in srgb, var(--color-foreground) 60%, transparent); }
.cart-drawer__empty-btn svg { margin-right: 0.5rem; }
.cart-drawer__foot .btn--outline, .cart-drawer__empty .btn--outline { color: var(--color-foreground); }

/* ==========================================================================
   11. Pages: single product, 404, generic
   ========================================================================== */
.site-main { display: block; }
.site-main--inner { padding-top: 6rem; background: var(--color-background); }
@media (min-width: 1024px) { .site-main--inner { padding-top: 7rem; } }
.page-title { font-family: var(--font-display); font-size: 2.25rem; line-height: 1; margin-bottom: 2.5rem; }
@media (min-width: 768px) { .page-title { font-size: 3rem; } }
.page-wrap { padding-top: 2.5rem; padding-bottom: 4rem; }
.entry-content { max-width: none; }

.theme-breadcrumb { padding: 1.5rem 0; font-size: 15px; letter-spacing: 0.2em; text-transform: uppercase; color: color-mix(in srgb, var(--foreground) 55%, transparent); }
.theme-breadcrumb a:hover { color: var(--primary); }
.theme-breadcrumb .sep { margin: 0 0.5rem; opacity: 0.5; }
.theme-breadcrumb .current { color: var(--foreground); }
.theme-product-layout { display: grid; grid-template-columns: minmax(0, 1fr); gap: 2.5rem; padding-bottom: 5rem; align-items: start; min-width: 0; }
@media (min-width: 1024px) { .theme-product-layout { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 4rem; } }
.theme-product-gallery, .theme-product-info { min-width: 0; max-width: 100%; }
@media (min-width: 1024px) {
  .theme-product-gallery { grid-column: span 7 / span 7; position: sticky; top: 7rem; align-self: start; }
  .theme-product-info { grid-column: span 5 / span 5; }
}
.theme-product-main { position: relative; aspect-ratio: 1 / 1; width: 100%; background: var(--linen); border-radius: 0.75rem; overflow: hidden; margin-bottom: 1rem; }
.theme-product-thumbnails { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 0.625rem; max-width: 100%; }
.theme-product-thumb { position: relative; aspect-ratio: 1 / 1; background: var(--linen); border-radius: calc(var(--radius) - 4px); overflow: hidden; border: 2px solid transparent; transition: border-color 150ms; }
.theme-product-thumb:hover { border-color: color-mix(in srgb, var(--foreground) 20%, transparent); }
.theme-product-thumb.is-active { border-color: var(--primary); }
.theme-product-cat { font-size: 15px; letter-spacing: 0.28em; text-transform: uppercase; color: var(--primary); margin-bottom: 0.75rem; font-weight: 500; }
.product-title { font-family: var(--font-display); font-weight: 400; font-size: 1.875rem; line-height: 1.05; color: var(--foreground); margin-bottom: 1rem; }
@media (min-width: 768px) { .product-title { font-size: 2.25rem; } }
@media (min-width: 1024px) { .product-title { font-size: 2.6rem; } }
.theme-product-price { font-size: 20px; font-weight: 500; color: color-mix(in srgb, var(--foreground) 90%, transparent); margin-bottom: 1.75rem; }
.theme-product-price .woocommerce-Price-amount { font-weight: 500; }
.theme-product-price del { opacity: 0.6; }
.theme-product-price ins { text-decoration: none; }
.theme-product-desc { font-size: 15px; line-height: 1.625; color: color-mix(in srgb, var(--foreground) 75%, transparent); margin-bottom: 2rem; white-space: pre-line; }
.theme-product-desc p + p { margin-top: 1rem; }
.theme-label { font-size: 15px; letter-spacing: 0.2em; text-transform: uppercase; color: color-mix(in srgb, var(--foreground) 55%, transparent); }
.theme-qty-block { margin-bottom: 1.5rem; margin-top: 0; }
.theme-qty-block .theme-label { margin-bottom: 0.625rem; }
.theme-quantity-wrapper { display: inline-flex; align-items: center; border: 1px solid color-mix(in srgb, var(--foreground) 20%, transparent); border-radius: 9999px; }
.theme-qty-minus, .theme-qty-plus { padding: 0.625rem 1rem; line-height: 0; display: inline-flex; }
.theme-qty-minus:hover, .theme-qty-plus:hover { color: var(--primary); }
.theme-qty-minus svg, .theme-qty-plus svg { width: 0.875rem; height: 0.875rem; }
.theme-qty-input, .theme-quantity-wrapper input.qty {
  -moz-appearance: textfield; appearance: textfield; padding: 0.625rem 0; min-width: 44px; width: 44px; text-align: center; font-size: 15px; font-weight: 500;
  border: 0; background: transparent; color: var(--foreground); outline: none;
}
.theme-qty-input::-webkit-outer-spin-button, .theme-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
.theme-add-to-cart-area { display: flex; flex-direction: column; align-items: stretch; flex-wrap: nowrap; gap: 0; }
.theme-product-actions { display: flex; flex-direction: column; gap: 0.75rem; width: 100%; }
@media (min-width: 640px) { .theme-product-actions { flex-direction: row; align-items: stretch; } }
.theme-product-actions > .single_add_to_cart_button,
.theme-product-actions > .theme-buy-now,
.theme-product-actions > .btn {
  flex: 1 1 0% !important; width: 100% !important; min-width: 0 !important; max-width: none !important; box-sizing: border-box !important;
}
.theme-buy-now { text-transform: none; }
.theme-product-details { margin-top: 2rem; padding-top: 2rem; border-top: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); }
.theme-product-details .theme-label { margin-bottom: 1rem; }
.theme-product-details ul > li { display: flex; align-items: flex-start; font-size: 15px; color: color-mix(in srgb, var(--foreground) 75%, transparent); }
.theme-product-details ul > li + li { margin-top: 0.625rem; }
.theme-product-details ul > li::before { content: ''; width: 0.25rem; height: 0.25rem; background: var(--primary); border-radius: 9999px; margin-top: 0.625rem; margin-right: 0.75rem; flex-shrink: 0; }
.theme-product-details p { font-size: 15px; color: color-mix(in srgb, var(--foreground) 75%, transparent); }
.theme-product-perks { margin-top: 2rem; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0.75rem; padding-top: 1.5rem; border-top: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); }
.theme-perk { text-align: center; }
.theme-perk svg { width: 1.25rem; height: 1.25rem; margin: 0 auto 0.5rem; color: var(--accent); transition: transform 300ms ease-out; }
.theme-perk:hover svg { transform: rotate(6deg) scale(1.1); }
.theme-perk p { font-size: 15px; letter-spacing: 0.15em; text-transform: uppercase; color: color-mix(in srgb, var(--foreground) 60%, transparent); }
.theme-related { padding: 5rem 0; border-top: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); }
.theme-related__head { display: flex; align-items: flex-end; justify-content: space-between; margin-bottom: 2.5rem; }
.theme-related__title { font-size: 1.875rem; color: var(--foreground); }
@media (min-width: 768px) { .theme-related__title { font-size: 2.25rem; } }
.theme-related__all { display: none; align-items: center; gap: 0.375rem; font-size: 15px; font-weight: 500; color: color-mix(in srgb, var(--foreground) 70%, transparent); }
@media (min-width: 640px) { .theme-related__all { display: inline-flex; } }
.theme-related__all:hover { color: var(--primary); }
.theme-related__all svg { width: 1rem; height: 1rem; }
.theme-notfound-product { padding: 5rem 0; text-align: center; min-height: 60vh; }
.theme-notfound-product h1 { font-size: 1.875rem; margin-bottom: 1rem; }

.single-product .woocommerce-product-details__short-description, .single-product .woocommerce-variation-description, .single-product .posted_in { overflow-wrap: break-word; word-break: break-word; }
.single-product .variations tbody, .single-product .variations tbody tr, .single-product .variations tbody td { display: block; width: 100%; }
.single-product .variations { width: 100%; margin-bottom: 1.25rem; border: 0; }
.single-product .variations tbody td.label { padding-bottom: 0.25rem; }
.single-product .variations tbody td.value { padding-top: 0; }
.single-product .variations label { font-family: var(--font-body); font-weight: 600; font-style: normal; font-size: 15px; letter-spacing: 0.2em; text-transform: uppercase; color: color-mix(in srgb, var(--foreground) 55%, transparent); }
.single-product .variations select { width: 100%; height: 3rem; padding: 0 1rem; background: var(--background); border: 1px solid var(--border); border-radius: calc(var(--radius) - 4px); font-size: 15px; }
.single-product .reset_variations { font-size: 15px; color: var(--accent); }
.single-product .single_variation_wrap .woocommerce-variation-price { margin-bottom: 1rem; font-size: 20px; font-weight: 500; }
.single-product .single_add_to_cart_button { flex: 1 1 auto; min-width: 160px; }
.theme-attr-select-hidden { display: none !important; }

.notfound-main { display: flex; min-height: 100vh; align-items: center; justify-content: center; background: var(--color-muted); }
.notfound-inner { text-align: center; padding: 0 1.25rem; }
.notfound-inner h1 { margin-bottom: 1rem; font-size: 2.25rem; line-height: 2.5rem; font-weight: 700; font-family: var(--font-body); }
.notfound-inner p { margin-bottom: 1rem; font-size: 1.25rem; line-height: 1.75rem; color: var(--color-muted-foreground); }
.notfound-inner a { color: var(--color-primary); text-decoration: underline; }
.notfound-inner a:hover { color: color-mix(in srgb, var(--color-primary) 90%, transparent); }

/* ==========================================================================
   12. WooCommerce overrides
   ========================================================================== */
.single_add_to_cart_button.button,
.add_to_cart_button.button:not(.theme-card-atc),
a.single_add_to_cart_button,
a.add_to_cart_button:not(.theme-card-atc) {
  background-color: var(--color-primary) !important;
  color: var(--color-button-text) !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;
  gap: 0.5rem !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;
  line-height: 1.5 !important;
  cursor: pointer !important;
  transition: opacity 0.2s ease !important;
}
.single_add_to_cart_button.button:hover,
.add_to_cart_button.button:not(.theme-card-atc):hover {
  opacity: 0.85 !important;
  background-color: var(--color-primary) !important;
  color: var(--color-button-text) !important;
}
.single_add_to_cart_button.button:disabled, .single_add_to_cart_button.button.disabled,
.add_to_cart_button.button:not(.theme-card-atc):disabled, .add_to_cart_button.button:not(.theme-card-atc).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:not(.theme-card-atc):disabled:hover, .add_to_cart_button.button:not(.theme-card-atc).disabled:hover { opacity: 0.4 !important; background-color: var(--color-primary) !important; }
.single-product .single_add_to_cart_button { text-transform: none !important; }
.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; }
.ajax_add_to_cart.theme-btn-loading { opacity: 0.6 !important; pointer-events: none !important; cursor: wait !important; }
.single-product .single_add_to_cart_button.loading::after, .ajax_add_to_cart.loading::after, .ajax_add_to_cart.added::after { display: none !important; }
.single-product .woocommerce-message, .single-product .woocommerce-info { display: none; }
#theme-cart-drawer .woocommerce-message { display: none; }

.woocommerce-message, .woocommerce-info, .woocommerce-error {
  list-style: none; margin: 0 0 1.5rem; padding: 1rem 1.25rem; border: 1px solid var(--border); border-radius: calc(var(--radius) - 4px);
  background: var(--secondary); color: var(--foreground); font-size: 15px;
}
.woocommerce-error { border-color: var(--destructive); }
.woocommerce-breadcrumb { display: none; }

/* Cart / account / checkout shells */
body.woocommerce-checkout .site-main, body.woocommerce-cart .site-main, body.woocommerce-account .site-main { padding-top: var(--header-height, 80px); padding-bottom: 4rem; }
body.woocommerce-checkout { background: var(--background); }
body.woocommerce-checkout .site-main--inner > .container-wide.page-wrap > .page-title,
body.woocommerce-checkout .site-main--inner > .page-wrap > .page-title { display: none; }
body.woocommerce-checkout .entry-content > .woocommerce { max-width: none; margin: 0; padding: 0; }
.site-main--woocommerce { padding-bottom: 0; }

.theme-checkout-main-wrap { width: 100%; }
.theme-checkout-container { padding-top: 2.5rem; padding-bottom: 2.5rem; }
@media (min-width: 1024px) { .theme-checkout-container { padding-top: 2.5rem; padding-bottom: 3rem; } }
.theme-checkout-back { display: inline-flex; align-items: center; gap: 0.5rem; font-size: 15px; color: color-mix(in srgb, var(--foreground) 65%, transparent); margin-bottom: 1.5rem; transition: color 0.2s ease; }
.theme-checkout-back:hover { color: var(--primary); }
.theme-checkout-back svg { width: 1rem; height: 1rem; }
.theme-checkout-title { font-family: var(--font-display); font-size: 2.25rem; line-height: 1.1; margin-bottom: 2.5rem; }
@media (min-width: 768px) { .theme-checkout-title { font-size: 3rem; } }

.theme-checkout-grid { display: grid; grid-template-columns: 1fr; gap: 2.5rem; align-items: start; }
@media (min-width: 1024px) {
  .theme-checkout-grid { grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 2.5rem 3.5rem; }
  .theme-checkout-col--form { grid-column: span 7 / span 7; order: 1; }
  .theme-checkout-col--summary { grid-column: span 5 / span 5; order: 2; }
}
@media (max-width: 1023px) {
  .theme-checkout-col--summary { order: 1; }
  .theme-checkout-col--form { order: 2; }
}
.theme-checkout-col--form { display: flex; flex-direction: column; gap: 2.5rem; }
.theme-checkout-section { margin-bottom: 0; }
.theme-checkout-section-title {
  font-family: var(--font-display); font-size: 1.5rem; line-height: 1.2; font-weight: 700;
  margin: 0 0 1.25rem; color: var(--foreground);
}
.theme-checkout-fields .form-row,
.theme-checkout-fields .form-row-first,
.theme-checkout-fields .form-row-last,
.theme-checkout-fields .form-row-wide,
.theme-checkout-fields .form-row-third {
  margin: 0 !important; padding: 0 !important; width: 100% !important;
  float: none !important; clear: none !important;
}
.theme-checkout-fields .woocommerce-input-wrapper { width: 100%; display: block; }
@media (min-width: 640px) {
  .theme-checkout-fields .woocommerce-billing-fields__field-wrapper,
  .theme-checkout-fields .theme-checkout-contact-grid {
    display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0.75rem;
  }
  .theme-checkout-fields .woocommerce-billing-fields__field-wrapper .form-row-wide { grid-column: 1 / -1; }
}
.theme-checkout-fields label:not(.screen-reader-text) { display: none; }
.theme-checkout-fields .screen-reader-text {
  clip: rect(1px, 1px, 1px, 1px); height: 1px; width: 1px; overflow: hidden; position: absolute !important;
}
.theme-checkout-fields input.input-text,
.theme-checkout-fields select,
.theme-checkout-fields textarea,
.theme-checkout-fields .select2-container .select2-selection--single {
  width: 100% !important; height: 3rem !important; min-height: 3rem; padding: 0 1rem; box-sizing: border-box;
  background: var(--ivory, var(--background)); border: 1px solid color-mix(in srgb, var(--foreground) 15%, transparent);
  border-radius: 0.375rem; font-family: var(--font-body); font-size: 15px; color: var(--foreground);
  line-height: 1.5; transition: border-color 0.2s ease;
}
.theme-checkout-fields select { appearance: auto; cursor: pointer; }
.theme-checkout-fields input::placeholder,
.theme-checkout-fields textarea::placeholder { color: color-mix(in srgb, var(--foreground) 45%, transparent); opacity: 1; }
.theme-checkout-fields .select2-container--default .select2-selection--single .select2-selection__rendered {
  line-height: 3rem; padding-left: 0; color: var(--foreground); font-size: 15px;
}
.theme-checkout-fields .select2-container--default .select2-selection--single .select2-selection__arrow { height: 3rem; }
.theme-checkout-fields textarea { height: auto; min-height: 6.5rem; padding-top: 0.75rem; padding-bottom: 0.75rem; resize: none; }
.theme-checkout-fields input:focus, .theme-checkout-fields select:focus, .theme-checkout-fields textarea:focus {
  border-color: var(--primary); outline: none; box-shadow: none;
}
.theme-checkout-summary-card {
  background: var(--color-linen); border: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent);
  border-radius: 1rem; padding: 1.5rem;
}
@media (min-width: 1024px) { .theme-checkout-summary-card { padding: 1.75rem; position: sticky; top: 7rem; } }
.theme-checkout-summary-title { font-family: var(--font-display); font-size: 1.5rem; margin-bottom: 1.5rem; }
.theme-checkout-items { list-style: none; margin: 0 0 1.5rem; padding: 0; display: flex; flex-direction: column; gap: 1.25rem; }
.theme-checkout-item { display: flex; gap: 1rem; align-items: flex-start; }
.theme-checkout-thumb { width: 5rem; height: 6rem; flex-shrink: 0; border-radius: calc(var(--radius) - 4px); overflow: hidden; background: var(--background); }
.theme-checkout-thumb img { width: 100%; height: 100%; object-fit: cover; }
.theme-checkout-item-body { flex: 1; min-width: 0; }
.theme-checkout-item-name { font-size: 15px; font-weight: 500; display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.theme-checkout-item-name:hover { color: var(--primary); }
.theme-checkout-unit-price { font-size: 15px; color: color-mix(in srgb, var(--foreground) 60%, transparent); margin: 0.125rem 0 0; }
.theme-checkout-line-total { font-size: 15px; font-weight: 500; margin: 0; flex-shrink: 0; }
.theme-checkout-qty { display: flex; align-items: center; gap: 0.5rem; margin-top: 0.5rem; }
.theme-checkout-qty-btn, .theme-checkout-remove { padding: 0.25rem; line-height: 0; border: 0; background: transparent; cursor: pointer; color: inherit; }
.theme-checkout-qty-btn:hover { color: var(--primary); }
.theme-checkout-remove { margin-left: auto; color: color-mix(in srgb, var(--foreground) 50%, transparent); }
.theme-checkout-remove:hover { color: var(--destructive); }
.theme-checkout-qty-val { font-size: 15px; width: 1.5rem; text-align: center; }

.theme-checkout-totals { width: 100%; border-collapse: collapse; border-top: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); font-size: 15px; }
.theme-checkout-totals th, .theme-checkout-totals td { padding: 0.625rem 0; border: 0; font-weight: 400; }
.theme-checkout-totals th { text-align: left; color: color-mix(in srgb, var(--foreground) 65%, transparent); }
.theme-checkout-totals td { text-align: right; }
.theme-checkout-totals .order-total th, .theme-checkout-totals .order-total td { font-weight: 500; padding-top: 0.75rem; border-top: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); }
.theme-checkout-shipping-free { color: var(--primary); font-weight: 500; }
.theme-checkout-summary-card .theme-checkout-payment { display: none; }
.theme-checkout-payment--submit { margin-top: 0; padding-top: 0; border: 0; }
.theme-checkout-payment--submit .wc_payment_methods { margin: 0 0 1rem; padding: 0; list-style: none; }
.theme-checkout-place-order, #place_order.theme-checkout-place-order {
  width: 100% !important; min-height: 3rem !important; border-radius: 9999px !important; text-transform: none !important;
  background-color: var(--color-primary) !important; color: var(--color-primary-foreground) !important; border: none !important;
  font-size: 15px !important; font-weight: 500 !important;
}
.theme-checkout-place-order:hover, #place_order.theme-checkout-place-order:hover { opacity: 0.9 !important; }
.theme-checkout-confirm-note { font-size: 15px; text-align: center; color: color-mix(in srgb, var(--foreground) 55%, transparent); margin: 0.75rem 0 0; }
.theme-checkout-submit { margin-bottom: 0; }
.theme-checkout-coupon { margin-top: 1rem; padding-top: 1rem; border-top: 1px solid color-mix(in srgb, var(--foreground) 10%, transparent); }
.theme-checkout-coupon .woocommerce-form-coupon-toggle { margin-bottom: 0.75rem; }
.theme-checkout-coupon .woocommerce-form-coupon-toggle .woocommerce-info { display: block; margin: 0; padding: 0; border: 0; background: transparent; font-size: 15px; color: color-mix(in srgb, var(--foreground) 65%, transparent); }
.theme-checkout-coupon form.checkout_coupon { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 0; }
.theme-checkout-coupon form.checkout_coupon .form-row { flex: 1 1 auto; margin: 0; padding: 0; }
.theme-checkout-coupon form.checkout_coupon input { height: 3rem; }
#order_review .shop_table.woocommerce-checkout-review-order-table { display: none; }

body.theme-thankyou-page { overflow-x: hidden; }
body.theme-thankyou-page .woocommerce-order { font-size: 15px; color: color-mix(in srgb, var(--foreground) 75%, transparent); }
body.theme-thankyou-page .woocommerce-order-overview { display: flex; flex-wrap: wrap; gap: 1.5rem; margin: 0 0 2rem; padding: 1.5rem; background: var(--color-linen); border-radius: 1rem; }
body.theme-thankyou-page .woocommerce-order-overview li { list-style: none; font-size: 15px; }
body.theme-thankyou-page .woocommerce-customer-details { display: flex; flex-direction: column; gap: 1.5rem; }
body.theme-thankyou-page .woocommerce-customer-details address { max-width: 480px; overflow-wrap: break-word; }
body.theme-thankyou-page .woocommerce-order h2, body.theme-thankyou-page .woocommerce-order-details__title { font-family: var(--font-display); font-size: 1.5rem; padding: 0 0 1rem 0; color: var(--foreground); }
body.theme-thankyou-page .woocommerce-order-details table { width: 100%; table-layout: fixed; border-collapse: collapse; }
body.theme-thankyou-page .woocommerce-order-details th, body.theme-thankyou-page .woocommerce-order-details td { padding: 0.75rem 0; border-bottom: 1px solid var(--border); text-align: left; }
body.theme-thankyou-page .woocommerce-order-details tfoot th { text-align: left; }
body.theme-thankyou-page .woocommerce-order-details tfoot td { text-align: right; }

/* ==========================================================================
   13. Customizer preview fallback
   ========================================================================== */
body.is-customizer .reveal-item, body.is-customizer .scale-in-item { opacity: 1; transform: none; }
