/* =============================================================
   Stylr CD — theme.css
   Author: The Free Website Guys | thefreewebsiteguys.com
   ============================================================= */

/* ---- Design token defaults (overridden by wp_add_inline_style) ---- */
:root {
  --color-primary:          #C1A253;
  --color-background:       #0D0D0D;
  --color-foreground:       #F4F2EB;
  --color-card:             #141414;
  --color-secondary:        #1A1A1A;
  --color-border:           #292929;
  --color-muted-foreground: #B0AA9B;

  --radius:             0.5rem;
  --radius-lg:          1rem;
  --radius-xl:          1.5rem;
  --radius-full:        9999px;

  --shadow-soft:     0 10px 30px -16px rgba(0,0,0,0.5);
  --shadow-elevated: 0 22px 55px -24px rgba(0,0,0,0.7);

  --font-display: 'Syne', sans-serif;
  --font-body:    'Plus Jakarta Sans', sans-serif;

  /* Typography scale (Tailwind / Lovable) */
  --text-2xs:   0.625rem;
  --text-xs:    0.75rem;
  --text-sm:    0.875rem;
  --text-base:  1rem;
  --text-lg:    1.125rem;
  --text-xl:    1.25rem;
  --text-2xl:   1.5rem;
  --text-3xl:   1.875rem;
  --text-4xl:   2.25rem;
  --text-5xl:   3rem;
  --text-6xl:   3.75rem;
  --text-7xl:   4.5rem;

  --leading-tight:    1.25;
  --leading-snug:     1.375;
  --leading-normal:   1.5;
  --leading-relaxed:  1.625;

  --tracking-tight:           -0.025em;
  --tracking-wide:            0.025em;
  --tracking-wider:           0.05em;
  --tracking-widest:          0.1em;
  --tracking-eyebrow:         0.2em;
  --tracking-hero-eyebrow:    0.28em;
  --tracking-promise-eyebrow: 0.32em;
  --tracking-badge:           0.15em;
  --tracking-contact-label:   0.16em;

  --transition-smooth: cubic-bezier(0.4, 0, 0.2, 1);

  --btn-radius:         0.5rem;
  --btn-height:         2.5rem;
  --btn-padding:        0.5rem 1rem;
  --btn-font-size:      var(--text-sm);
  --btn-font-weight:    800;
  --btn-letter-spacing: normal;
  --btn-text-transform: none;
  --btn-icon-padding:   0.5rem;

  --logo-height:    60px;
  --header-height:  72px;

  --card-radius:      1rem;
  --section-padding:  2rem;
  --checkout-gap:     2rem;
}

/* ---- Reset & Base ---- */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

html {
  scroll-behavior: smooth;
  font-size: 16px;
  overflow-x: hidden;
}

body {
  background-color: var(--color-background);
  color: var(--color-foreground);
  font-family: var(--font-body);
  font-weight: 400;
  line-height: var(--leading-relaxed);
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-rendering: optimizeLegibility;
  overflow-x: hidden;
  max-width: 100%;
}

img, video { max-width: 100%; height: auto; display: block; }
a { color: inherit; text-decoration: none; }
button { cursor: pointer; border: none; background: none; font-family: inherit; }
ul, ol { list-style: none; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-display); font-weight: 700; line-height: 1.1; }

/* ---- Container ---- */
.container-wide {
  width: 100%;
  max-width: 88rem;
  margin-inline: auto;
  padding-inline: 1.5rem;
}
@media (min-width: 1024px) { .container-wide { padding-inline: 2rem; } }

/* =============================================================
   TYPOGRAPHY UTILITIES
   ============================================================= */
.section-eyebrow {
  display: block;
  font-family: var(--font-body);
  font-size: var(--text-xs);
  font-weight: 700;
  letter-spacing: var(--tracking-eyebrow);
  text-transform: uppercase;
  color: var(--color-muted-foreground);
  margin-bottom: 0.5rem;
}
.section-heading {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: var(--text-3xl);
  line-height: var(--leading-tight);
  letter-spacing: var(--tracking-tight);
  margin-bottom: 1.25rem;
}
@media (min-width: 768px) {
  .section-heading { font-size: var(--text-4xl); }
}
@media (min-width: 1024px) {
  .section-heading { font-size: var(--text-5xl); }
}
#shop .section-heading,
#contact .section-header .section-heading {
  font-size: var(--text-3xl);
  margin-bottom: 1rem;
}
@media (min-width: 768px) {
  #shop .section-heading,
  #contact .section-header .section-heading { font-size: var(--text-5xl); }
}
.heading-italic { font-style: italic; color: var(--color-primary); }
.section-subtitle {
  color: var(--color-muted-foreground);
  font-family: var(--font-body);
  font-size: var(--text-base);
  line-height: var(--leading-relaxed);
  max-width: 40rem;
}
.section-header { text-align: center; max-width: 42rem; margin-inline: auto; margin-bottom: 3.5rem; }
.section-header .section-subtitle { margin-inline: auto; }

.link-underline {
  position: relative;
  display: inline-block;
}
.link-underline::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s var(--transition-smooth);
}
.link-underline:hover::after { transform: scaleX(1); }

.featured-product-cta {
  font-size: var(--text-sm);
  font-family: var(--font-body);
  font-weight: 400;
  position: relative;
  display: inline-block;
}
.featured-product-cta::after {
  content: '';
  position: absolute;
  bottom: 0;
  left: 0;
  width: 100%;
  height: 1px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: left;
  transition: transform 0.3s var(--transition-smooth);
}
.featured-product-link:hover .featured-product-cta::after { transform: scaleX(1); }

/* =============================================================
   BUTTONS
   ============================================================= */
.btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background-color: var(--color-primary);
  color: var(--color-background);
  border: none;
  border-radius: var(--btn-radius);
  min-height: var(--btn-height);
  padding: var(--btn-padding);
  font-family: var(--font-body);
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  letter-spacing: var(--btn-letter-spacing);
  text-transform: var(--btn-text-transform);
  transition: opacity 0.2s ease, transform 0.2s ease;
  cursor: pointer;
  text-decoration: none;
}
.btn-primary:hover { opacity: 0.85; transform: translateY(-1px); }
.btn-primary:active { transform: scale(0.97); }

.btn-secondary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background-color: var(--color-background);
  color: var(--color-foreground);
  border: none;
  border-radius: var(--btn-radius);
  min-height: var(--btn-height);
  padding: var(--btn-padding);
  font-family: var(--font-body);
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  transition: opacity 0.2s ease, transform 0.2s ease;
  text-decoration: none;
}
.btn-secondary:hover { opacity: 0.85; transform: translateY(-1px); }

.btn-outline-inverted {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background: transparent;
  color: var(--color-background);
  border: 2px solid rgba(13,13,13,0.4);
  border-radius: var(--btn-radius);
  min-height: var(--btn-height);
  padding: var(--btn-padding);
  font-family: var(--font-body);
  font-size: var(--btn-font-size);
  font-weight: 800;
  transition: background 0.2s ease, transform 0.2s ease;
  text-decoration: none;
}
.btn-outline-inverted:hover { background: rgba(0,0,0,0.1); transform: translateY(-1px); }

.theme-btn-primary {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  background-color: var(--color-primary);
  color: var(--color-background);
  border: none;
  border-radius: var(--btn-radius);
  min-height: var(--btn-height);
  padding: var(--btn-padding);
  font-family: var(--font-body);
  font-size: var(--btn-font-size);
  font-weight: var(--btn-font-weight);
  cursor: pointer;
  transition: opacity 0.2s ease;
  text-decoration: none;
}
.theme-btn-primary:hover { opacity: 0.85; }

/* =============================================================
   HEADER
   ============================================================= */
.site-header {
  position: fixed;
  top: 0; left: 0; right: 0;
  z-index: 100;
  transition: background-color 0.3s ease, border-color 0.3s ease, backdrop-filter 0.3s ease, top 0.2s ease;
  background: linear-gradient(to bottom, rgba(0,0,0,0.6), rgba(0,0,0,0.3), transparent);
  border-bottom: 1px solid transparent;
}
body.admin-bar .site-header {
  top: 32px;
}
@media screen and (max-width: 782px) {
  body.admin-bar .site-header {
    top: 46px;
  }
}
.site-header.is-solid {
  background-color: rgba(13,13,13,0.95);
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  border-bottom: 1px solid var(--color-border);
}
.site-nav {
  display: flex;
  align-items: center;
  justify-content: space-between;
  height: var(--header-height);
  transition: height 0.3s ease;
}
.site-header.is-solid .site-nav { height: calc(var(--header-height) - 8px); }

.site-logo-link {
  display: flex;
  align-items: center;
  flex-shrink: 0;
  transition: transform 0.3s ease;
  text-decoration: none;
}
.site-logo-link:hover { transform: scale(1.03); }
.site-logo-img { height: var(--logo-height) !important; width: auto !important; display: block; object-fit: contain; filter: drop-shadow(0 2px 6px rgba(0,0,0,0.6)); }
.site-logo-text { font-family: var(--font-display); font-size: 1.25rem; font-weight: 800; color: var(--color-foreground); }

.site-nav__actions { display: flex; align-items: center; gap: 0.5rem; flex-shrink: 0; }
@media (min-width: 768px) { .site-nav__actions { gap: 1.25rem; } }
.site-nav__links { display: none; }
@media (min-width: 768px) { .site-nav__links { display: flex; align-items: center; gap: 2rem; } }

.theme-nav-list { display: flex; align-items: center; gap: 2rem; list-style: none; margin: 0; padding: 0; }
.theme-nav-link, .site-nav__links a {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 800;
  letter-spacing: var(--tracking-wide);
  color: var(--color-foreground);
  text-decoration: none;
  position: relative;
  transition: color 0.2s ease, transform 0.2s ease;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.6));
  cursor: pointer;
}
.theme-nav-link::after, .site-nav__links a::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-smooth);
}
.theme-nav-link:hover, .site-nav__links a:hover { transform: translateY(-2px); }
.theme-nav-link:hover::after, .site-nav__links a:hover::after { transform: scaleX(1); }

/* Cart button */
.cart-btn {
  position: relative;
  padding: 0.5rem;
  color: var(--color-foreground);
  transition: color 0.2s ease, transform 0.2s ease;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.6));
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-family: var(--font-body);
  font-size: 0.875rem;
  font-weight: 700;
}
.cart-btn:hover { color: var(--color-primary); transform: translateY(-2px) scale(1.1); }
.theme-cart-count {
  position: absolute;
  top: -2px; right: -2px;
  width: 1.25rem; height: 1.25rem;
  background: var(--color-primary);
  color: var(--color-background);
  border-radius: 50%;
  font-size: var(--text-sm);
  font-weight: 500;
  font-family: var(--font-body);
  display: flex;
  align-items: center;
  justify-content: center;
}
.theme-cart-count:empty { display: none; }

/* Mobile menu toggle */
.mobile-menu-toggle {
  padding: 0.5rem;
  color: var(--color-foreground);
  transition: color 0.2s ease, transform 0.2s ease;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,0.6));
}
.mobile-menu-toggle:hover { color: var(--color-primary); transform: scale(1.1); }
@media (min-width: 768px) { .mobile-menu-toggle { display: none; } }

/* Mobile menu */
.mobile-menu {
  border-top: 1px solid var(--color-border);
  padding-block: 1rem;
  animation: slideUp 0.25s var(--transition-smooth);
}
.mobile-menu[hidden] { display: none; }
.mobile-nav-list { display: flex; flex-direction: column; gap: 1rem; }
.mobile-nav-list li { list-style: none; }
.mobile-nav-list a, .mobile-nav-list .theme-nav-link {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 800;
  letter-spacing: var(--tracking-wide);
  color: var(--color-foreground);
  text-decoration: none;
  transition: color 0.2s ease;
  display: block;
  padding-block: 0.5rem;
}
.mobile-nav-list a:hover, .mobile-nav-list .theme-nav-link:hover { color: var(--color-muted-foreground); }

/* =============================================================
   HERO SECTION
   ============================================================= */
.hero-section {
  position: relative;
  height: 100vh;
  min-height: 600px;
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: hidden;
  background-color: var(--color-foreground);
}
.hero-video-wrap {
  position: absolute;
  inset: 0;
  z-index: 0;
}
.hero-video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.hero-overlay {
  position: absolute;
  inset: 0;
  z-index: 1;
  background-color: var(--color-background);
  opacity: 0.6;
}
.hero-radial {
  position: absolute;
  inset: 0;
  z-index: 2;
  background: radial-gradient(circle at center, rgba(0,0,0,0.3), rgba(0,0,0,0.85) 72%);
}
.hero-content {
  position: relative;
  z-index: 10;
  padding-block: 5rem;
}
.hero-inner {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  min-height: 58vh;
}
.hero-eyebrow-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}
.hero-line {
  display: block;
  height: 1px;
  width: 2.25rem;
  background: var(--color-primary);
}
.hero-eyebrow {
  font-family: var(--font-body);
  font-size: 0.6875rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: var(--tracking-hero-eyebrow);
  color: var(--color-primary);
  text-shadow: 0 1px 2px rgba(0,0,0,0.5);
}
@media (min-width: 768px) { .hero-eyebrow { font-size: var(--text-xs); } }

.hero-title {
  font-family: var(--font-display);
  font-size: var(--text-4xl);
  font-weight: 700;
  line-height: 0.95;
  letter-spacing: var(--tracking-tight);
  color: var(--color-foreground);
  text-shadow: 0 4px 22px rgba(0,0,0,0.8);
  margin-bottom: 1.25rem;
  max-width: 48rem;
}
@media (min-width: 640px) { .hero-title { font-size: var(--text-5xl); } }
@media (min-width: 768px) { .hero-title { font-size: var(--text-6xl); } }
@media (min-width: 1024px) { .hero-title { font-size: var(--text-7xl); } }
.hero-title-italic { font-style: italic; color: var(--color-primary); }
.hero-subtitle {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  line-height: var(--leading-relaxed);
  color: rgba(244,242,235,0.9);
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
  max-width: 32rem;
  margin-bottom: 1.75rem;
}
@media (min-width: 768px) { .hero-subtitle { font-size: var(--text-base); } }

/* Hero pill */
.hero-pill {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.5rem;
  width: 100%;
  max-width: 30rem;
  border: 1px solid rgba(193,161,82,0.3);
  background: rgba(20,20,20,0.9);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  border-radius: 0.75rem;
  padding: 0.5rem;
  box-shadow: var(--shadow-elevated);
}
@media (min-width: 640px) {
  .hero-pill { flex-direction: row; align-items: center; }
}
.hero-pill__info {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  padding-inline: 0.75rem;
  flex: 1;
  min-width: 0;
}
.hero-pill__icon { color: var(--color-primary); flex-shrink: 0; }
.hero-pill__text { min-width: 0; font-family: var(--font-body); }
.hero-pill__label {
  font-size: var(--text-2xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-widest);
  color: var(--color-muted-foreground);
}
.hero-pill__email {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-foreground);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
@media (min-width: 768px) { .hero-pill__email { font-size: var(--text-base); } }
.hero-pill__cta { flex-shrink: 0; border-radius: var(--btn-radius); padding-inline: 1.25rem; font-weight: 800; }
@media (min-width: 768px) { .hero-pill__cta { padding-inline: 1.5rem; } }
.hero-cta-icon { width: 1rem; height: 1rem; }

/* =============================================================
   SECTIONS — shared
   ============================================================= */
.section-secondary { background-color: var(--color-secondary); }
.scroll-reveal { opacity: 1; } /* JS adds animations */

/* =============================================================
   ABOUT SECTION
   ============================================================= */
.about-section { padding-block: 4rem; }
@media (min-width: 768px) { .about-section { padding-block: 6rem; } }
.about-inner {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: stretch;
}
@media (min-width: 768px) {
  .about-inner { grid-template-columns: 1fr 1fr; gap: 3rem; }
}
.about-image-col { display: flex; }
.about-image-wrap {
  width: 100%;
  min-height: 26rem;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  box-shadow: var(--shadow-elevated);
}
.about-image { width: 100%; height: 100%; object-fit: cover; transition: transform 0.6s ease; }
.about-image-wrap:hover .about-image { transform: scale(1.03); }
.about-content-col { display: flex; }
.about-card {
  position: relative;
  display: flex;
  flex-direction: column;
  justify-content: center;
  width: 100%;
  background: var(--color-card);
  border: 1px solid var(--color-border);
  border-radius: var(--radius-lg);
  padding: 1.5rem;
  box-shadow: var(--shadow-soft);
}
@media (min-width: 768px) { .about-card { padding: 2rem; } }
.about-award { position: absolute; top: 1.5rem; right: 1.5rem; }
.about-award-icon { color: rgba(193,161,82,0.35); fill: rgba(193,161,82,0.1); }
.about-heading { margin-top: 0.5rem; margin-bottom: 1.5rem; }
.about-body { display: flex; flex-direction: column; gap: 1rem; color: var(--color-muted-foreground); }
.about-p { line-height: var(--leading-relaxed); font-size: var(--text-base); }
@media (min-width: 768px) { .about-p { font-size: var(--text-lg); } }
.about-p:last-child,
.about-quote { font-weight: 500; color: var(--color-foreground); font-size: var(--text-lg); }

/* =============================================================
   FABRIC SECTION
   ============================================================= */
.fabric-section { position: relative; overflow: hidden; padding-block: 5rem; }
@media (min-width: 768px) { .fabric-section { padding-block: 8rem; } }
.fabric-bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.fabric-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to right,
    var(--color-background) 0%,
    rgba(13,13,13,0.85) 50%,
    rgba(13,13,13,0.3) 80%,
    transparent 100%
  );
}
@media (max-width: 767px) {
  .fabric-overlay {
    background: linear-gradient(to right,
      var(--color-background) 0%,
      rgba(13,13,13,0.85) 60%,
      rgba(13,13,13,0.7) 100%
    );
  }
}
.fabric-inner { position: relative; z-index: 2; display: grid; grid-template-columns: 1fr; }
@media (min-width: 768px) { .fabric-inner { grid-template-columns: 1fr 1fr; } }
.fabric-content { display: flex; flex-direction: column; justify-content: center; }
.fabric-body { display: flex; flex-direction: column; gap: 1rem; color: var(--color-muted-foreground); margin-top: 0; }
.fabric-p { line-height: var(--leading-relaxed); }

/* =============================================================
   SHOP SECTION
   ============================================================= */
.shop-section { padding-block: 4rem; }
@media (min-width: 768px) { .shop-section { padding-block: 6rem; } }

/* 5-col featured row */
.shop-featured-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  margin-bottom: 3.5rem;
}
@media (min-width: 1024px) {
  .shop-featured-row { grid-template-columns: 3fr 2fr; gap: 2rem; }
}

/* Process card */
.process-card {
  background: linear-gradient(135deg, #C1A152 0%, #9B7A27 100%);
  color: var(--color-background);
  border-radius: var(--radius-lg);
  padding: 2rem;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  position: relative;
  overflow: hidden;
  box-shadow: var(--shadow-elevated);
}
@media (min-width: 768px) { .process-card { padding: 3rem; } }
@media (min-width: 1024px) { .process-card { padding: 3.5rem; } }
.process-card__sparkles {
  position: absolute;
  top: -2.5rem; right: -2.5rem;
  opacity: 0.1;
  pointer-events: none;
}
.process-sparkle-icon { color: var(--color-background); }
.process-card__body { position: relative; z-index: 2; flex: 1; display: flex; flex-direction: column; }
.process-card__eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--text-xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  font-family: var(--font-body);
  margin-bottom: 1rem;
  opacity: 0.9;
  color: var(--color-background);
}
.process-card__title {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 700;
  line-height: var(--leading-tight);
  margin-bottom: 1.25rem;
  color: var(--color-background);
}
@media (min-width: 768px) { .process-card__title { font-size: var(--text-4xl); } }
@media (min-width: 1024px) { .process-card__title { font-size: var(--text-5xl); } }
.process-card__subtitle {
  font-family: var(--font-body);
  font-size: var(--text-base);
  opacity: 0.9;
  line-height: var(--leading-relaxed);
  margin-bottom: 2rem;
  max-width: 28rem;
  color: var(--color-background);
}
.process-steps { display: flex; flex-direction: column; gap: 1.25rem; margin-bottom: 2rem; flex: 1; }
.process-step { display: flex; align-items: flex-start; gap: 1rem; }
.process-step__icon-wrap {
  width: 2.25rem; height: 2.25rem;
  border-radius: 50%;
  background: rgba(13,13,13,0.15);
  backdrop-filter: blur(4px);
  display: flex; align-items: center; justify-content: center;
  flex-shrink: 0;
  margin-top: 0.125rem;
  color: var(--color-background);
}
.process-step__title { font-family: var(--font-body); font-size: var(--text-sm); font-weight: 600; color: var(--color-background); }
.process-step__desc  { font-family: var(--font-body); font-size: var(--text-sm); opacity: 0.8; line-height: var(--leading-relaxed); color: var(--color-background); }
.process-card__quote {
  border-top: 1px solid rgba(13,13,13,0.2);
  padding-top: 1.5rem;
  margin-bottom: 2rem;
}
.process-quote__text {
  font-family: var(--font-display);
  font-style: italic;
  font-size: var(--text-lg);
  line-height: var(--leading-relaxed);
  opacity: 0.95;
  margin-bottom: 0.75rem;
  color: var(--color-background);
}
@media (min-width: 768px) { .process-quote__text { font-size: var(--text-xl); } }
.process-quote__author {
  font-size: var(--text-xs);
  text-transform: uppercase;
  letter-spacing: var(--tracking-eyebrow);
  font-family: var(--font-body);
  opacity: 0.75;
  color: var(--color-background);
}
.process-card__ctas {
  position: relative; z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
@media (min-width: 640px) { .process-card__ctas { flex-direction: row; } }
.process-cta { border-radius: 0.75rem; padding-inline: 2rem; }

/* Featured product card */
.featured-product-wrap { display: flex; }
.featured-product-link { display: block; width: 100%; }
.featured-product-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  background: var(--color-card);
  box-shadow: var(--shadow-soft);
  transition: border-color 0.3s ease, box-shadow 0.3s ease;
}
.featured-product-link:hover .featured-product-card {
  border-color: rgba(193,161,82,0.6);
  box-shadow: var(--shadow-elevated);
}
.featured-product-image-wrap {
  position: relative;
  aspect-ratio: 1 / 1;
  overflow: hidden;
  background: var(--color-secondary);
}
.featured-product-image-inner { width: 100%; height: 100%; }
.featured-product-image-inner img { width: 100%; height: 100%; object-fit: cover; transition: transform 0.7s ease; }
.featured-product-link:hover .featured-product-image-inner img { transform: scale(1.06); }
.badge-new-drop {
  position: absolute; top: 1rem; left: 1rem; z-index: 10;
  border-radius: var(--radius-full);
  padding: 0.375rem 0.75rem;
  font-size: var(--text-2xs); font-weight: 800; text-transform: uppercase; letter-spacing: var(--tracking-badge);
  background: var(--color-primary);
  color: var(--color-background);
  font-family: var(--font-body);
}
.badge-sold-out {
  position: absolute; top: 1rem; right: 1rem; z-index: 10;
  border-radius: var(--radius-full);
  padding: 0.375rem 0.75rem;
  font-size: var(--text-2xs); font-weight: 800; text-transform: uppercase; letter-spacing: var(--tracking-wider);
  background: var(--color-foreground);
  color: var(--color-background);
  font-family: var(--font-body);
}
.featured-product-info { padding: 1.5rem; display: flex; flex-direction: column; flex: 1; }
@media (min-width: 768px) { .featured-product-info { padding: 1.75rem; } }
.product-cat-label {
  font-size: var(--text-xs); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase;
  color: var(--color-muted-foreground); font-family: var(--font-body); margin-bottom: 0.5rem;
  display: block;
}
.featured-product-name {
  font-family: var(--font-display);
  font-size: var(--text-2xl);
  font-weight: 700;
  margin-bottom: 0.75rem;
  transition: color 0.3s ease;
}
@media (min-width: 768px) { .featured-product-name { font-size: var(--text-3xl); } }
.featured-product-link:hover .featured-product-name { color: var(--color-primary); }
.featured-product-desc {
  font-size: var(--text-sm);
  color: var(--color-muted-foreground);
  line-height: var(--leading-relaxed);
  font-family: var(--font-body);
  flex: 1;
  margin-bottom: 1.5rem;
}
.featured-product-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  border-top: 1px solid var(--color-border);
  padding-top: 1rem;
}
.featured-product-price { font-family: var(--font-display); font-size: var(--text-xl); color: var(--color-primary); font-weight: 600; }
.featured-product-price .woocommerce-Price-amount { font-size: var(--text-xl); color: var(--color-primary); }

/* =============================================================
   PRODUCT GRID
   ============================================================= */
.theme-product-grid {
  display: grid;
  grid-template-columns: repeat(1, 1fr);
  gap: 1.25rem;
  align-items: stretch;
}
@media (min-width: 640px)  { .theme-product-grid { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 768px)  { .theme-product-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .theme-product-grid { grid-template-columns: repeat(4, 1fr); gap: 1.75rem; } }

/* Product cards */
.theme-product-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  border-radius: var(--radius-lg);
  border: 2px solid var(--color-border);
  background: var(--color-card);
  box-shadow: var(--shadow-soft);
  transition: border-color 0.3s ease, box-shadow 0.3s ease, transform 0.3s ease;
}
.theme-product-card:hover { border-color: rgba(193,161,82,0.4); box-shadow: var(--shadow-elevated); transform: translateY(-6px); }
.theme-product-card__image-link {
  display: block;
  overflow: hidden;
}
.theme-product-card__image-wrapper {
  position: relative;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background: var(--color-secondary);
}
.theme-product-card__image-wrapper img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.6s ease;
}
.theme-product-card:hover .theme-product-card__image-wrapper img { transform: scale(1.06); }
.theme-product-card__overlay {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  height: 5rem;
  background: linear-gradient(to top, rgba(244,241,235,0.35), transparent);
  opacity: 0;
  transition: opacity 0.3s ease;
}
.theme-product-card:hover .theme-product-card__overlay { opacity: 1; }
.theme-product-card__badge-cat {
  position: absolute; top: 0.75rem; left: 0.75rem; z-index: 10;
  border-radius: var(--radius-full);
  padding: 0.375rem 0.75rem;
  font-size: 0.65rem; font-weight: 800; text-transform: uppercase; letter-spacing: var(--tracking-wider);
  background: rgba(20,20,20,0.9);
  color: var(--color-foreground);
  backdrop-filter: blur(4px);
  font-family: var(--font-body);
}
.theme-product-card__badge-sold {
  position: absolute; top: 0.75rem; right: 0.75rem; z-index: 10;
  border-radius: var(--radius-full);
  padding: 0.375rem 0.75rem;
  font-size: 0.65rem; font-weight: 800; text-transform: uppercase; letter-spacing: var(--tracking-wider);
  background: var(--color-foreground);
  color: var(--color-background);
  font-family: var(--font-body);
}
.theme-product-card__info { padding: 1rem; display: flex; flex-direction: column; gap: 0.75rem; flex: 1; }
.theme-product-card__title {
  font-size: var(--text-base);
  font-weight: 600;
  line-height: var(--leading-snug);
  color: var(--color-foreground);
  font-family: var(--font-body);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  min-height: 2.75rem;
  transition: color 0.3s ease;
}
.theme-product-card:hover .theme-product-card__title { color: var(--color-primary); }
.theme-product-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.75rem;
  border-top: 1px solid var(--color-border);
  padding-top: 0.75rem;
  margin-top: auto;
}
.theme-product-card__price {
  font-size: var(--text-sm);
  font-weight: 600;
  color: var(--color-primary);
  font-family: var(--font-body);
}
.theme-product-card__price .woocommerce-Price-amount { color: var(--color-primary); }

/* Pattern A card overlay hit area */
.theme-product-card { position: relative; }
.theme-product-card .theme-card-link {
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: auto;
}
.theme-product-card__image-wrapper,
.theme-product-card__info {
  pointer-events: none;
}
.theme-product-card .theme-card-atc-btn,
.theme-product-card .add_to_cart_button.ajax_add_to_cart {
  position: relative;
  z-index: 2;
  pointer-events: auto;
}

.theme-product-card .add_to_cart_button.ajax_add_to_cart {
  min-height: unset !important;
  padding: var(--btn-icon-padding) !important;
  border-radius: 50% !important;
  width: 2.25rem !important;
  height: 2.25rem !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  flex-shrink: 0 !important;
}
.shop-no-products { color: var(--color-muted-foreground); font-family: var(--font-body); text-align: center; padding: 2rem; }

/* Shop grid — view more */
.shop-grid-item { min-width: 0; }
.shop-grid-item--hidden { display: none; }
.shop-view-more-wrap {
  display: flex;
  justify-content: center;
  margin-top: 2.5rem;
}
.shop-view-more-btn {
  min-width: 10rem;
  padding-inline: 2rem;
}
.shop-view-more-wrap.is-expanded { display: none; }

/* =============================================================
   PROMISE SECTION
   ============================================================= */
.promise-section {
  position: relative;
  overflow: hidden;
  background-color: var(--color-foreground);
}
.promise-bg-wrap {
  position: absolute;
  left: -1rem;
  right: -1rem;
  top: -4rem;
  bottom: -4rem;
  overflow: hidden;
}
@media (min-width: 768px) {
  .promise-bg-wrap { top: -6rem; bottom: -6rem; }
}
.promise-bg {
  width: 100%; height: 100%;
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
}
.promise-overlay {
  position: absolute; inset: 0;
  background: rgba(13,13,13,0.80);
}
.promise-overlay-lines {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.92), rgba(0,0,0,0.65) 48%, rgba(0,0,0,0.90));
}
.promise-inner {
  position: relative; z-index: 10;
  display: flex;
  flex-direction: column;
  justify-content: center;
  min-height: 38rem;
  padding-block: 6rem;
}
@media (min-width: 768px) { .promise-inner { min-height: 45rem; padding-block: 8rem; } }
.promise-header { text-align: center; max-width: 48rem; margin-inline: auto; margin-bottom: 3.5rem; }
.promise-eyebrow {
  font-size: var(--text-xs);
  font-weight: 800;
  letter-spacing: var(--tracking-promise-eyebrow);
  text-transform: uppercase;
  color: var(--color-primary);
  text-shadow: 0 1px 2px rgba(0,0,0,0.5);
  margin-bottom: 0.75rem;
}
.promise-heading {
  font-size: var(--text-3xl);
  line-height: var(--leading-tight);
  color: var(--color-foreground);
  text-shadow: 0 4px 18px rgba(0,0,0,0.8);
}
@media (min-width: 768px) { .promise-heading { font-size: var(--text-4xl); } }
@media (min-width: 1024px) { .promise-heading { font-size: var(--text-5xl); } }
.promise-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  border-top: 1px solid rgba(193,161,82,0.4);
  padding-top: 2.5rem;
}
@media (min-width: 768px) { .promise-grid { grid-template-columns: repeat(3, 1fr); gap: 2.5rem; } }
.promise-item {
  text-align: center;
  display: flex;
  flex-direction: column;
  align-items: center;
  filter: drop-shadow(0 2px 10px rgba(0,0,0,0.85));
}
.promise-item__icon-wrap {
  width: 3rem; height: 3rem;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  border: 1px solid rgba(193,161,82,0.4);
  background: rgba(193,161,82,0.15);
  backdrop-filter: blur(4px);
  margin-bottom: 1.25rem;
  color: var(--color-primary);
}
.promise-item__title {
  font-family: var(--font-display);
  font-size: var(--text-xl);
  font-weight: 700;
  color: var(--color-foreground);
  margin-bottom: 0.5rem;
}
@media (min-width: 768px) { .promise-item__title { font-size: var(--text-2xl); } }
.promise-item__desc {
  font-size: var(--text-sm);
  font-weight: 500;
  color: rgba(244,242,235,0.9);
  line-height: var(--leading-relaxed);
  max-width: 20rem;
}

/* =============================================================
   CONTACT SECTION
   ============================================================= */
.contact-section { position: relative; overflow: hidden; padding-block: 5rem; }
@media (min-width: 768px) { .contact-section { padding-block: 0; } }
.contact-video-wrap { position: absolute; inset: 0; z-index: 0; }
.contact-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.contact-overlay { position: absolute; inset: 0; z-index: 1; background: rgba(13,13,13,0.75); }
.contact-inner { position: relative; z-index: 10; padding-block: 5rem; }

.contact-success {
  max-width: 42rem;
  margin-inline: auto;
  border-radius: var(--radius-xl);
  border: 2px solid var(--color-border);
  background: var(--color-card);
  padding: 3rem 2.5rem;
  text-align: center;
  box-shadow: var(--shadow-elevated);
}
.contact-success__icon-wrap {
  width: 4rem; height: 4rem;
  border-radius: 50%;
  background: var(--color-primary);
  display: flex; align-items: center; justify-content: center;
  margin-inline: auto;
  margin-bottom: 1.5rem;
  color: var(--color-background);
}
.contact-success-icon { color: var(--color-background); }
.contact-success__title { font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 700; margin-bottom: 0.5rem; }
.contact-success__message { color: var(--color-muted-foreground); font-family: var(--font-body); }

.contact-card {
  display: grid;
  grid-template-columns: 1fr;
  border-radius: var(--radius-xl);
  border: 2px solid var(--color-border);
  background: var(--color-card);
  overflow: hidden;
  box-shadow: var(--shadow-elevated);
  max-width: 72rem;
  margin-inline: auto;
}
@media (min-width: 1024px) { .contact-card { grid-template-columns: 0.9fr 1.1fr; } }

/* Contact info panel */
.contact-info-panel {
  background: linear-gradient(135deg, #C1A152 0%, #9B7A27 100%);
  color: var(--color-background);
  padding: 1.5rem;
  position: relative;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 2rem;
}
@media (min-width: 768px) { .contact-info-panel { padding: 2rem; } }
@media (min-width: 1024px) { .contact-info-panel { padding: 2.5rem; } }
.contact-info-sparkles {
  position: absolute; top: -2.5rem; right: -2.5rem;
  opacity: 0.15; pointer-events: none;
  color: var(--color-background);
}
.contact-info-content { position: relative; z-index: 2; }
.contact-info__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  border-radius: var(--radius-full);
  border: 1px solid rgba(13,13,13,0.3);
  background: rgba(13,13,13,0.15);
  padding: 0.5rem 1rem;
  font-size: var(--text-xs);
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: var(--tracking-contact-label);
  backdrop-filter: blur(4px);
  font-family: var(--font-body);
  margin-bottom: 1rem;
  color: var(--color-background);
  display: inline-flex;
}
.contact-info__title {
  font-family: var(--font-display);
  font-size: var(--text-3xl);
  font-weight: 800;
  line-height: var(--leading-tight);
  color: var(--color-background);
  margin-bottom: 1rem;
}
@media (min-width: 768px) { .contact-info__title { font-size: var(--text-4xl); } }
.contact-info__subtitle {
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 600;
  line-height: var(--leading-relaxed);
  opacity: 0.9;
  max-width: 22rem;
  color: var(--color-background);
}
.contact-info-links { position: relative; z-index: 2; display: flex; flex-direction: column; gap: 0.75rem; }
.contact-info-link-item {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  border-radius: var(--radius-lg);
  border: 1px solid rgba(13,13,13,0.25);
  background: rgba(13,13,13,0.12);
  padding: 0.75rem;
  backdrop-filter: blur(4px);
  transition: transform 0.2s ease;
}
.contact-info-link-item:hover { transform: translateX(4px); }
.contact-info-link-item > div:not(.contact-info-link-icon) {
  min-width: 0;
  flex: 1;
}
.contact-info-link-icon {
  width: 2.5rem; height: 2.5rem;
  display: flex; align-items: center; justify-content: center;
  border-radius: 50%;
  background: rgba(13,13,13,0.18);
  color: var(--color-background);
  flex-shrink: 0;
}
.contact-info-link-label {
  font-size: 0.6875rem;
  font-weight: 800;
  text-transform: uppercase;
  letter-spacing: var(--tracking-contact-label);
  opacity: 0.75;
  font-family: var(--font-body);
  color: var(--color-background);
}
.contact-info-link {
  font-size: var(--text-sm);
  font-weight: 800;
  color: var(--color-background);
  text-decoration: none;
  word-break: break-all;
  transition: opacity 0.2s ease;
  font-family: var(--font-body);
}
.contact-info-link:hover { opacity: 0.8; }
.contact-info-steps {
  position: relative; z-index: 2;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  border-top: 1px solid rgba(13,13,13,0.25);
  padding-top: 1.75rem;
}
@media (min-width: 768px) { .contact-info-steps { gap: 1rem; } }
.contact-step {
  border-radius: 1.5rem;
  background: rgba(13,13,13,0.12);
  padding: 1.25rem 0.75rem;
  text-align: center;
  font-family: var(--font-body);
  font-size: var(--text-sm);
  font-weight: 800;
  color: var(--color-background);
  display: flex; flex-direction: column; align-items: center; gap: 0.75rem;
}
@media (min-width: 768px) { .contact-step { padding: 1.5rem; } }
.contact-step-icon { color: var(--color-background); }

/* Contact form */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1.25rem;
  padding: 1.25rem;
  height: 100%;
}
@media (min-width: 768px) { .contact-form { padding: 2rem; } }
@media (min-width: 1024px) { .contact-form { padding: 2.5rem; } }
.contact-form-row { display: grid; grid-template-columns: 1fr; gap: 1.25rem; }
@media (min-width: 640px) { .contact-form-row { grid-template-columns: 1fr 1fr; } }
.contact-form-field { display: flex; flex-direction: column; gap: 0.5rem; }
.contact-form-field--full { flex: 1; display: flex; flex-direction: column; }
.contact-label {
  font-size: var(--text-sm); font-weight: 500; font-family: var(--font-body);
  color: var(--color-foreground);
}
.required { color: var(--color-primary); }
.contact-input, .contact-textarea {
  width: 100%;
  border-radius: var(--radius-lg);
  border: 2px solid var(--color-border);
  background: var(--color-background);
  padding: 0.75rem 1rem;
  font-size: var(--text-sm);
  font-family: var(--font-body);
  color: var(--color-foreground);
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
  outline: none;
}
.contact-input::placeholder, .contact-textarea::placeholder { color: var(--color-muted-foreground); }
.contact-input:focus, .contact-textarea:focus {
  border-color: rgba(193,161,82,0.5);
  box-shadow: 0 0 0 3px rgba(193,161,82,0.15);
}
.contact-textarea { resize: none; flex: 1; min-height: 8rem; }
.contact-form-footer {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  align-items: flex-start;
}
@media (min-width: 640px) {
  .contact-form-footer { flex-direction: row; align-items: center; justify-content: space-between; }
}
.contact-reply-note { font-size: var(--text-sm); color: var(--color-muted-foreground); font-family: var(--font-body); }
.contact-submit { flex-shrink: 0; min-height: 2.75rem; padding-inline: 2rem; font-weight: 800; }
.contact-submit-icon { flex-shrink: 0; }
.contact-submit:disabled { opacity: 0.6; cursor: not-allowed; pointer-events: none; }

/* =============================================================
   FOOTER
   ============================================================= */
.site-footer {
  border-top: 1px solid var(--color-border);
  background: var(--color-secondary);
  color: var(--color-foreground);
}
.footer-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  padding-block: 3rem;
}
@media (min-width: 768px) { .footer-grid { grid-template-columns: repeat(3, 1fr); gap: 4rem; padding-block: 4rem; } }
.footer-logo-link { display: inline-flex; }
.footer-tagline {
  margin-top: 1.25rem;
  max-width: 22rem;
  font-size: var(--text-base);
  font-weight: 600;
  line-height: var(--leading-relaxed);
  color: var(--color-foreground);
  font-family: var(--font-body);
}
.footer-heading { font-family: var(--font-body); font-size: var(--text-base); font-weight: 800; margin-bottom: 1.25rem; color: var(--color-foreground); }
.footer-nav-list { display: flex; flex-direction: column; gap: 0.75rem; }
.footer-nav-link {
  font-family: var(--font-body);
  font-size: var(--text-base);
  font-weight: 600;
  color: rgba(244,242,235,0.85);
  text-decoration: none;
  transition: color 0.2s ease, transform 0.2s ease;
  display: inline-block;
}
.footer-nav-link:hover { color: var(--color-foreground); transform: translateX(4px); }
.footer-contact-list { display: flex; flex-direction: column; gap: 0.75rem; }
.footer-contact-item { display: flex; align-items: center; gap: 0.75rem; font-size: var(--text-base); font-weight: 600; color: rgba(244,242,235,0.85); font-family: var(--font-body); }
.footer-contact-icon { color: var(--color-primary); flex-shrink: 0; }
.footer-contact-link { color: rgba(244,242,235,0.85); text-decoration: none; word-break: break-all; transition: color 0.2s ease; }
.footer-contact-link:hover { color: var(--color-foreground); }
.footer-bottom {
  border-top: 1px solid var(--color-border);
  padding-block: 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 1rem;
  align-items: center;
}
@media (min-width: 640px) { .footer-bottom { flex-direction: row; justify-content: space-between; } }
.footer-copyright { font-size: var(--text-xs); font-weight: 600; color: rgba(244,242,235,0.75); font-family: var(--font-body); }
.footer-built-by { font-size: var(--text-xs); font-weight: 600; color: rgba(244,242,235,0.75); text-decoration: none; font-family: var(--font-body); transition: color 0.2s ease; }
.footer-built-by:hover { color: var(--color-foreground); }

/* =============================================================
   CART DRAWER
   ============================================================= */
#theme-cart-overlay {
  position: fixed;
  inset: 0;
  background: rgba(244,241,235,0.2);
  z-index: 199;
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
body.cart-open #theme-cart-overlay { opacity: 1; pointer-events: auto; }

#theme-cart-drawer {
  position: fixed;
  top: 0; right: 0;
  width: 100%;
  max-width: 28rem;
  height: 100%;
  background: var(--color-background);
  z-index: 200;
  box-shadow: var(--shadow-elevated);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.35s cubic-bezier(0.25, 0.4, 0.25, 1);
}
body.cart-open #theme-cart-drawer { transform: translateX(0); }
#theme-cart-drawer.is-updating { opacity: 0.6; pointer-events: none; }

.cart-drawer__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.5rem;
  border-bottom: 1px solid var(--color-border);
  flex-shrink: 0;
}
.cart-drawer__title { font-family: var(--font-display); font-size: 1.125rem; font-weight: 700; }
.cart-drawer__close { padding: 0.25rem; color: var(--color-foreground); transition: opacity 0.2s ease; }
.cart-drawer__close:hover { opacity: 0.6; }

.cart-drawer__empty {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  text-align: center;
  gap: 1.5rem;
}
.cart-drawer__empty-icon { color: var(--color-muted-foreground); animation: iconBob 4s ease-in-out infinite; }
.cart-drawer__empty-text { color: var(--color-muted-foreground); font-family: var(--font-body); }
.cart-drawer__continue-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid var(--color-border);
  border-radius: var(--btn-radius);
  padding: 0.625rem 1.25rem;
  font-size: 0.875rem;
  font-weight: 700;
  font-family: var(--font-body);
  color: var(--color-foreground);
  transition: border-color 0.2s ease;
  background: transparent;
  cursor: pointer;
}
.cart-drawer__continue-btn:hover { border-color: var(--color-primary); }

.cart-drawer__items { flex: 1; overflow-y: auto; padding: 1.5rem; display: flex; flex-direction: column; gap: 1.5rem; }
.cart-item {
  display: flex;
  gap: 1rem;
  transition: transform 0.3s ease;
}
.cart-item:hover { transform: translateX(4px); }
.cart-item__img-link {
  width: 5rem; height: 6rem;
  flex-shrink: 0;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: var(--color-secondary);
  display: block;
  transition: transform 0.3s ease;
}
.cart-item__img-link:hover { transform: scale(1.05); }
.cart-item__img { width: 100%; height: 100%; object-fit: cover; }
.cart-item__body { flex: 1; min-width: 0; }
.cart-item__name {
  font-size: 0.875rem;
  font-weight: 500;
  font-family: var(--font-body);
  display: block;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  transition: opacity 0.2s ease;
  text-decoration: none;
  color: var(--color-foreground);
}
.cart-item__name:hover { opacity: 0.7; }
.cart-item__price { font-size: 0.875rem; color: var(--color-muted-foreground); font-family: var(--font-body); margin-top: 0.125rem; }
.cart-item__variation { font-size: 0.75rem; color: var(--color-muted-foreground); font-family: var(--font-body); margin-top: 0.125rem; }
.cart-item__controls { display: flex; align-items: center; gap: 0.75rem; margin-top: 0.75rem; }
.cart-item__qty-btn {
  padding: 0.25rem;
  color: var(--color-foreground);
  border-radius: var(--radius);
  transition: background 0.2s ease;
}
.cart-item__qty-btn:hover { background: var(--color-secondary); }
.cart-item__qty { font-size: 0.875rem; width: 1.5rem; text-align: center; font-family: var(--font-body); }
.cart-item__remove {
  margin-left: auto;
  font-size: 0.75rem;
  color: var(--color-muted-foreground);
  font-family: var(--font-body);
  transition: color 0.2s ease;
}
.cart-item__remove:hover { color: var(--color-foreground); }

.cart-drawer__footer {
  padding: 1.5rem;
  border-top: 1px solid var(--color-border);
  display: flex;
  flex-direction: column;
  gap: 1rem;
  flex-shrink: 0;
}
.cart-drawer__subtotal { display: flex; justify-content: space-between; font-size: 0.875rem; font-family: var(--font-body); }
.cart-drawer__subtotal-label { color: var(--color-muted-foreground); }
.cart-drawer__subtotal-value { font-weight: 500; }
.cart-drawer__free-ship { font-size: 0.75rem; color: var(--color-muted-foreground); font-family: var(--font-body); }
.cart-drawer__checkout-btn { display: flex; text-align: center; width: 100%; min-height: var(--btn-height); }

/* =============================================================
   WOOCOMMERCE: ADD TO CART OVERRIDES
   ============================================================= */
.single_add_to_cart_button.button,
.add_to_cart_button.button,
a.single_add_to_cart_button,
a.add_to_cart_button {
  background-color: var(--color-primary) !important;
  color: var(--color-background) !important;
  border: none !important;
  border-radius: var(--btn-radius) !important;
  min-height: var(--btn-height) !important;
  padding: var(--btn-padding) !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  font-family: var(--font-body) !important;
  font-size: var(--btn-font-size) !important;
  font-weight: var(--btn-font-weight) !important;
  letter-spacing: var(--btn-letter-spacing) !important;
  text-transform: var(--btn-text-transform) !important;
  cursor: pointer !important;
  transition: opacity 0.2s ease !important;
  text-decoration: none !important;
}
.single_add_to_cart_button.button:hover,
.add_to_cart_button.button:hover {
  opacity: 0.85 !important;
  background-color: var(--color-primary) !important;
  color: var(--color-background) !important;
}
.single_add_to_cart_button.button:disabled,
.single_add_to_cart_button.button.disabled,
.add_to_cart_button.button:disabled,
.add_to_cart_button.button.disabled {
  cursor: not-allowed !important;
  opacity: 0.4 !important;
  pointer-events: none !important;
}
.single_add_to_cart_button.button:disabled:hover,
.single_add_to_cart_button.button.disabled:hover,
.add_to_cart_button.button:disabled:hover,
.add_to_cart_button.button.disabled:hover {
  opacity: 0.4 !important;
  background-color: var(--color-primary) !important;
}

/* Hide WooCommerce "View cart" link injected after AJAX add */
.woocommerce-page a.added_to_cart.wc-forward,
.single-product a.added_to_cart.wc-forward,
body a.added_to_cart.wc-forward { display: none !important; }

/* Button loading state */
.ajax_add_to_cart.theme-btn-loading {
  opacity: 0.6 !important;
  pointer-events: none !important;
  cursor: wait !important;
}

/* =============================================================
   WOOCOMMERCE NOTICES
   ============================================================= */
.single-product .woocommerce-message,
.single-product .woocommerce-info { display: none; }
#theme-cart-drawer .woocommerce-message { display: none; }
.woocommerce-error { display: block; background: rgba(220,38,38,0.1); border: 1px solid rgba(220,38,38,0.3); border-radius: var(--radius); padding: 1rem; color: var(--color-foreground); font-family: var(--font-body); list-style: none; margin-bottom: 1rem; }
.woocommerce-message { background: rgba(193,161,82,0.1); border: 1px solid rgba(193,161,82,0.3); border-radius: var(--radius); padding: 1rem; color: var(--color-foreground); font-family: var(--font-body); list-style: none; margin-bottom: 1rem; }

/* =============================================================
   SINGLE PRODUCT PAGE
   ============================================================= */
.single-product-main { padding-top: calc(var(--header-height) + 1.5rem); min-height: 100vh; }
.back-to-shop-link {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  font-size: var(--text-sm);
  color: var(--color-muted-foreground);
  font-family: var(--font-body);
  transition: color 0.2s ease, transform 0.2s ease;
  margin-bottom: 1.5rem;
  text-decoration: none;
}
.back-to-shop-link:hover { color: var(--color-foreground); transform: translateX(-4px); }
.back-to-shop-link svg { flex-shrink: 0; }

/* Product layout */
.theme-product-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  padding-bottom: 5rem;
  min-width: 0;
}
@media (min-width: 1024px) { .theme-product-layout { grid-template-columns: 1fr 1fr; gap: 4rem; } }
.theme-product-gallery, .theme-product-info { min-width: 0; max-width: 100%; }

/* Gallery */
.product-main-img-wrap {
  aspect-ratio: 3/4;
  overflow: hidden;
  border-radius: var(--radius-xl);
  border: 2px solid var(--color-border);
  background: var(--color-secondary);
  box-shadow: var(--shadow-elevated);
  margin-bottom: 1rem;
  transition: box-shadow 0.3s ease;
}
.product-main-img-wrap:hover { box-shadow: var(--shadow-elevated), 0 0 0 1px rgba(193,161,82,0.2); }
#product-main-img {
  width: 100%; height: 100%;
  object-fit: cover;
  display: block;
  transition: opacity 0.3s ease, transform 0.3s ease;
}
.theme-product-thumbnails { display: grid; grid-template-columns: repeat(5, 1fr); gap: 0.5rem; flex-wrap: wrap; max-width: 100%; }
.thumbnail-btn {
  aspect-ratio: 1/1;
  border: 2px solid transparent;
  border-radius: var(--radius-lg);
  overflow: hidden;
  background: none;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity 0.2s ease, border-color 0.2s ease, transform 0.2s ease;
  padding: 0;
}
.thumbnail-btn:hover { opacity: 1; transform: translateY(-2px); }
.thumbnail-btn.is-active { border-color: var(--color-primary); border-radius: var(--radius-lg); opacity: 1; }
.thumbnail-btn img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* Product info card */
.theme-product-info-card {
  border-radius: var(--radius-xl);
  background: var(--color-card);
  padding: 1.25rem;
  box-shadow: var(--shadow-soft);
}
@media (min-width: 768px) { .theme-product-info-card { padding: 2rem; } }
@media (min-width: 1024px) { .theme-product-info-card { padding-block: 2.5rem; } }
.product-category { font-size: var(--text-xs); letter-spacing: var(--tracking-eyebrow); text-transform: uppercase; color: var(--color-muted-foreground); font-family: var(--font-body); display: block; }
.product-title { font-family: var(--font-display); font-size: var(--text-2xl); font-weight: 700; line-height: var(--leading-tight); margin-top: 0.5rem; margin-bottom: 1rem; }
@media (min-width: 768px) { .product-title { font-size: var(--text-3xl); } }
.product-price { font-size: var(--text-2xl); font-weight: 600; color: var(--color-primary); font-family: var(--font-body); margin-bottom: 1.5rem; }
.product-price .woocommerce-Price-amount { color: var(--color-primary); font-size: inherit; }
.product-description { color: var(--color-muted-foreground); line-height: var(--leading-relaxed); font-family: var(--font-body); white-space: pre-line; overflow-wrap: break-word; word-break: break-word; margin-bottom: 2rem; }
.product-stock-badge { display: inline-flex; align-items: center; gap: 0.375rem; font-size: 0.8125rem; font-weight: 700; font-family: var(--font-body); padding: 0.375rem 0.75rem; border-radius: var(--radius-full); margin-bottom: 1.25rem; }
.product-stock-badge.in-stock { background: rgba(34,197,94,0.1); color: #4ade80; }
.product-stock-badge.sold-out { background: rgba(239,68,68,0.1); color: #f87171; }

/* Size selector */
.product-option-group { margin-bottom: 1.5rem; }
.product-option-label { font-size: var(--text-sm); font-weight: 600; margin-bottom: 0.75rem; font-family: var(--font-body); display: block; }
.product-size-options, .product-attr-btns { display: flex; flex-wrap: wrap; gap: 0.5rem; }
.size-btn, .attr-btn {
  border-radius: var(--radius-full);
  padding: 0.5rem 1rem;
  font-size: var(--text-sm);
  font-weight: 800;
  border: 2px solid var(--color-border);
  background: transparent;
  color: var(--color-foreground);
  font-family: var(--font-body);
  cursor: pointer;
  transition: border-color 0.2s ease, background 0.2s ease, color 0.2s ease;
}
.size-btn:hover, .attr-btn:hover { border-color: rgba(193,161,82,0.5); }
.size-btn.is-selected, .attr-btn.is-selected { background: var(--color-primary); color: var(--color-background); border-color: var(--color-primary); }
.theme-attr-select-hidden { display: none !important; }

/* Quantity + add to cart */
.theme-add-to-cart-area {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  margin-bottom: 2rem;
}
.single-product .single_add_to_cart_button { flex: 1 1 auto; min-width: 160px; }
.theme-quantity-wrapper {
  display: flex;
  align-items: center;
  border-radius: var(--radius-full);
  border: 2px solid var(--color-border);
  background: var(--color-background);
  overflow: hidden;
}
.theme-qty-minus, .theme-qty-plus {
  padding: 0.75rem 1rem;
  color: var(--color-foreground);
  transition: background 0.2s ease;
  font-size: 1rem;
  min-width: 2.5rem;
  display: flex; align-items: center; justify-content: center;
}
.theme-qty-minus:hover, .theme-qty-plus:hover { background: var(--color-secondary); }
.theme-qty-input {
  width: 3rem;
  text-align: center;
  background: transparent;
  border: none;
  color: var(--color-foreground);
  font-family: var(--font-body);
  font-size: 1rem;
  outline: none;
  padding: 0.75rem 0;
  -moz-appearance: textfield;
}
.theme-qty-input::-webkit-outer-spin-button,
.theme-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; }

/* Details */
.product-details { border-top: 1px solid var(--color-border); padding-top: 2rem; }
.product-details__label { font-size: 0.875rem; font-weight: 600; margin-bottom: 1rem; font-family: var(--font-body); display: block; }
.product-details__list { display: flex; flex-direction: column; gap: 0.5rem; }
.product-details__item {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  font-size: 0.875rem;
  color: var(--color-muted-foreground);
  font-family: var(--font-body);
}
.product-details__bullet {
  width: 0.375rem; height: 0.375rem;
  background: var(--color-primary);
  border-radius: 50%;
  flex-shrink: 0;
  margin-top: 0.5rem;
}

/* Responsive single product */
.single-product .theme-add-to-cart-area { flex-wrap: wrap; gap: 0.75rem; }

/* Variation attributes table */
.single-product .variations.shop_attributes tbody,
.single-product .variations tbody tr,
.single-product .variations tbody td { display: block; width: 100%; }
.single-product .variations tbody td.label { padding-bottom: 0.25rem; }
.single-product .variations tbody td.value { padding-top: 0; }
.single-product .variations_form .variations.shop_attributes { margin-bottom: 0; }
.single-product .variations_form .variations tbody tr { margin-bottom: 1.25rem; }
.single-product .variations_form .variations tbody tr:last-child { margin-bottom: 0; }
.single-product .variations_form .single_variation_wrap {
  margin-top: 2rem;
  margin-bottom: 1.5rem;
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
  align-items: center;
}
.single-product .variations_form .woocommerce-variation {
  flex: 1 1 100%;
}
.single-product .variations_form .single_add_to_cart_button {
  flex: 1 1 auto;
  min-width: 160px;
}
.single_variation_wrap { margin-bottom: 1.5rem; }

/* Related products */
.related-products-section { border-top: 1px solid var(--color-border); padding-top: 5rem; padding-bottom: 5rem; }
.related-products-title { font-family: var(--font-display); font-size: clamp(1.25rem, 2.5vw, 1.5rem); font-weight: 700; margin-bottom: 2.5rem; }
.related-products-grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.5rem;
}
@media (min-width: 1024px) { .related-products-grid { grid-template-columns: repeat(4, 1fr); gap: 2rem; } }

/* =============================================================
   WOOCOMMERCE ARCHIVE
   ============================================================= */
.archive-main { padding-top: calc(var(--header-height) + 2rem); min-height: 100vh; }
.archive-header { text-align: center; max-width: 42rem; margin-inline: auto; margin-bottom: 3rem; padding-inline: 1.5rem; }
.archive-title { font-family: var(--font-display); font-size: clamp(2rem, 4vw, 3rem); font-weight: 700; }
.archive-grid { padding-bottom: 5rem; }
.archive-grid-inner {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1.25rem;
}
@media (min-width: 768px)  { .archive-grid-inner { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .archive-grid-inner { grid-template-columns: repeat(4, 1fr); gap: 1.75rem; } }
.archive-no-products { color: var(--color-muted-foreground); font-family: var(--font-body); text-align: center; padding: 4rem; }

/* =============================================================
   PAGE (Generic / Checkout)
   ============================================================= */
.page-main { padding-top: calc(var(--header-height) + 2rem); min-height: 100vh; padding-bottom: 4rem; }
.page-title {
  font-family: var(--font-display);
  font-size: clamp(1.75rem, 4vw, 2.5rem);
  font-weight: 700;
  margin-bottom: 2rem;
  padding-top: 0.5rem;
}
.entry-content { font-family: var(--font-body); line-height: 1.7; }

/* =============================================================
   CHECKOUT (WooCommerce Blocks)
   ============================================================= */
body.woocommerce-checkout .site-main { padding-top: var(--header-height, 80px); padding-bottom: 4rem; }
body.woocommerce-checkout .entry-content { max-width: 100%; }

body.woocommerce-checkout .wc-block-checkout { display: block; }
@media (min-width: 768px) {
  body.woocommerce-checkout .wc-block-components-sidebar-layout.wc-block-checkout.is-large,
  body.woocommerce-checkout .wc-block-checkout__inner-wrapper {
    display: grid;
    grid-template-columns: 1fr 380px;
    gap: var(--checkout-gap, 2rem);
    align-items: start;
  }
}
body.woocommerce-checkout .wc-block-checkout__main,
body.woocommerce-checkout .wc-block-checkout__sidebar {
  min-width: 0; width: 100%; max-width: none;
}
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-select select {
  width: 100% !important; max-width: none !important;
  background: var(--color-card);
  border: 2px solid var(--color-border);
  border-radius: var(--radius-lg);
  color: var(--color-foreground);
  font-family: var(--font-body);
  font-size: 0.875rem;
  padding: revert;
}
body.woocommerce-checkout .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-select select:focus {
  border-color: rgba(193,161,82,0.5);
  box-shadow: 0 0 0 3px rgba(193,161,82,0.15);
  outline: none;
}
body.woocommerce-checkout .wc-block-checkout__sidebar {
  background-color: var(--color-card);
  border-radius: var(--card-radius);
  padding: var(--section-padding, 2rem);
  border: 1px solid var(--color-border);
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
  background-color: var(--color-primary) !important;
  color: var(--color-background) !important;
  border: none !important;
  border-radius: var(--btn-radius) !important;
  font-family: var(--font-body) !important;
  font-weight: 700 !important;
  min-height: var(--btn-height) !important;
}
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover { opacity: 0.85 !important; }

/* Checkout address — labels while editing (dark text on light fields) */
body.woocommerce-checkout .wc-blocks-components-select__label,
body.woocommerce-checkout .wc-block-components-address-form label,
body.woocommerce-checkout .wc-block-components-address-address-wrapper.is-editing label,
body.woocommerce-checkout .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-components-combobox-control label {
  color: #0D0D0D;
}

body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-address-form .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-address-address-wrapper.is-editing .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-address-address-wrapper.is-editing .wc-block-components-select select,
body.woocommerce-checkout .wc-block-components-address-address-wrapper.is-editing .wc-block-components-combobox-control input {
  background: #fff;
  border-color: #d4d4d4;
  color: #0D0D0D;
}

body.woocommerce-checkout .wc-block-components-address-form input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-address-form input:-webkit-autofill:hover,
body.woocommerce-checkout .wc-block-components-address-form input:-webkit-autofill:focus,
body.woocommerce-checkout .wc-block-components-address-address-wrapper.is-editing input:-webkit-autofill,
body.woocommerce-checkout .wc-block-components-address-address-wrapper.is-editing input:-webkit-autofill:hover,
body.woocommerce-checkout .wc-block-components-address-address-wrapper.is-editing input:-webkit-autofill:focus {
  -webkit-text-fill-color: #0D0D0D;
  box-shadow: 0 0 0 1000px #fff inset;
  transition: background-color 5000s ease-in-out 0s;
}

/* Collapsed billing/shipping summary — white on dark theme */
body.woocommerce-checkout .wc-block-components-address-address-wrapper:not(.is-editing) .wc-block-components-formatted-address,
body.woocommerce-checkout .wc-block-components-address-card .wc-block-components-formatted-address,
body.woocommerce-checkout .wc-block-components-address-card address {
  color: var(--color-foreground) !important;
}

/* Order summary sidebar & other checkout text */
body.woocommerce-checkout .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-product-name,
body.woocommerce-checkout .wc-block-components-order-summary-item__description,
body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wc-block-components-checkbox__label,
body.woocommerce-checkout .wc-block-components-radio-control__label,
body.woocommerce-checkout .wc-block-components-radio-control__label-content {
  color: var(--color-foreground);
}

body.woocommerce-checkout .wc-block-components-combobox-control__suggestions,
body.woocommerce-checkout .wc-block-components-combobox-control__suggestions-list,
body.woocommerce-checkout .components-form-token-field__suggestions-list {
  background-color: #fff;
  color: #0D0D0D;
}

body.woocommerce-checkout .wc-block-components-combobox-control__suggestion,
body.woocommerce-checkout .components-form-token-field__suggestion {
  color: #0D0D0D;
}

/* Classic checkout fallback */
body.woocommerce-checkout .woocommerce-billing-fields label,
body.woocommerce-checkout .woocommerce-shipping-fields label {
  color: #0D0D0D;
}
body.woocommerce-checkout .woocommerce-billing-fields input,
body.woocommerce-checkout .woocommerce-shipping-fields input,
body.woocommerce-checkout .woocommerce-shipping-fields textarea {
  background: #fff;
  color: #0D0D0D;
}

/* =============================================================
   THANK YOU PAGE
   ============================================================= */
body.theme-thankyou-page { overflow-x: hidden; }
body.theme-thankyou-page .woocommerce-order { max-width: 48rem; margin-inline: auto; padding: 2rem; }
body.theme-thankyou-page .woocommerce-order h2,
body.theme-thankyou-page .woocommerce-order-details__title {
  font-family: var(--font-display);
  font-size: 1.25rem;
  font-weight: 700;
  padding: 0 0 1rem 0;
  border-bottom: 1px solid var(--color-border);
  margin-bottom: 1.5rem;
}
body.theme-thankyou-page .woocommerce-order-overview {
  list-style: none; margin: 0 0 2rem 0; padding: 0;
  display: flex; flex-wrap: wrap; gap: 1rem;
  background: var(--color-card);
  border-radius: var(--radius-lg);
  border: 1px solid var(--color-border);
  padding: 1.5rem;
}
body.theme-thankyou-page .woocommerce-order-overview li { font-family: var(--font-body); font-size: 0.875rem; color: var(--color-muted-foreground); }
body.theme-thankyou-page .woocommerce-order-overview li strong { color: var(--color-foreground); }
body.theme-thankyou-page .woocommerce-order-details { margin-bottom: 2rem; }
body.theme-thankyou-page .woocommerce-order-details table {
  width: 100%; table-layout: fixed;
  border-collapse: collapse;
  font-family: var(--font-body); font-size: 0.875rem;
}
body.theme-thankyou-page .woocommerce-order-details table th,
body.theme-thankyou-page .woocommerce-order-details table td { padding: 0.75rem; border-bottom: 1px solid var(--color-border); }
body.theme-thankyou-page .woocommerce-order-details tfoot th { text-align: left; }
body.theme-thankyou-page .woocommerce-order-details tfoot td { text-align: right; }
body.theme-thankyou-page .woocommerce-customer-details { display: flex; flex-direction: column; gap: 1.5rem; margin-bottom: 2rem; }
body.theme-thankyou-page .woocommerce-customer-details address {
  font-family: var(--font-body);
  font-size: 0.875rem;
  line-height: 1.7;
  overflow-wrap: break-word;
  max-width: 30rem;
  color: var(--color-foreground);
}

/* =============================================================
   404 PAGE
   ============================================================= */
.notfound-main { min-height: 100vh; display: flex; align-items: center; justify-content: center; }
.notfound-container { display: flex; justify-content: center; }
.notfound-content { text-align: center; padding: 4rem 1.5rem; }
.notfound-code { font-family: var(--font-display); font-size: 6rem; font-weight: 800; color: var(--color-primary); line-height: 1; margin-bottom: 1rem; }
.notfound-title { font-family: var(--font-display); font-size: 1.5rem; margin-bottom: 1rem; }
.notfound-message { color: var(--color-muted-foreground); font-family: var(--font-body); margin-bottom: 2rem; }

/* =============================================================
   ANIMATIONS
   ============================================================= */
@keyframes fadeIn       { from { opacity: 0; } to { opacity: 1; } }
@keyframes slideUp      { from { opacity: 0; transform: translateY(20px); } to { opacity: 1; transform: translateY(0); } }
@keyframes scaleIn      { from { opacity: 0; transform: scale(0.9); } to { opacity: 1; transform: scale(1); } }
@keyframes slideInRight { from { opacity: 0; transform: translateX(100%); } to { opacity: 1; transform: translateX(0); } }
@keyframes iconBob      { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-6px); } }

.animate-fade-in { animation: fadeIn 0.6s var(--transition-smooth) forwards; }
.animate-slide-up { animation: slideUp 0.6s var(--transition-smooth) forwards; }
.animate-scale-in { animation: scaleIn 0.35s var(--transition-smooth) forwards; }

/* Scroll reveal */
.reveal-start {
  opacity: 0;
  transform: translateY(40px);
  transition: opacity 0.7s var(--transition-smooth), transform 0.7s var(--transition-smooth);
}
.reveal-start.is-visible { opacity: 1; transform: translateY(0); }
.reveal-left { opacity: 0; transform: translateX(-60px); transition: opacity 0.8s var(--transition-smooth), transform 0.8s var(--transition-smooth); }
.reveal-left.is-visible { opacity: 1; transform: translateX(0); }
.reveal-right { opacity: 0; transform: translateX(60px); transition: opacity 0.8s var(--transition-smooth), transform 0.8s var(--transition-smooth); }
.reveal-right.is-visible { opacity: 1; transform: translateX(0); }
.reveal-scale { opacity: 0; transform: scale(0.92); transition: opacity 0.6s var(--transition-smooth), transform 0.6s var(--transition-smooth); }
.reveal-scale.is-visible { opacity: 1; transform: scale(1); }

/* =============================================================
   MOBILE OVERFLOW & LAYOUT (≤767px — desktop unchanged)
   ============================================================= */
@media (max-width: 767px) {
  .site-main,
  .front-page-main {
    width: 100%;
    max-width: 100%;
    overflow-x: hidden;
  }

  .container-wide { min-width: 0; }

  /* Header */
  .site-nav {
    min-width: 0;
    gap: 0.75rem;
  }
  .site-logo-link {
    min-width: 0;
    flex: 1;
    max-width: calc(100% - 6.5rem);
  }
  .site-logo-text {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    max-width: 100%;
  }
  .site-nav__actions { flex-shrink: 0; }
  .hero-content,
  .hero-inner {
    width: 100%;
    min-width: 0;
  }
  .hero-title {
    width: 100%;
    overflow-wrap: anywhere;
    word-break: break-word;
  }
  .hero-eyebrow-wrap {
    max-width: 100%;
    padding-inline: 0.25rem;
  }
  .hero-eyebrow { letter-spacing: var(--tracking-eyebrow); }
  .hero-pill { max-width: 100%; }
  .hero-pill__email {
    white-space: normal;
    overflow: visible;
    text-overflow: unset;
    word-break: break-all;
  }
  .hero-pill__cta {
    width: 100%;
    justify-content: center;
  }

  /* Sections — contain scroll-reveal bleed */
  .about-section,
  .fabric-section,
  .shop-section,
  .promise-section,
  .contact-section {
    overflow-x: hidden;
  }
  .about-inner,
  .fabric-inner,
  .shop-featured-row,
  .contact-card,
  .contact-info-panel,
  .theme-product-grid,
  .archive-grid-inner {
    min-width: 0;
  }

  /* Vertical reveals only (translateX caused horizontal overflow) */
  .reveal-left,
  .reveal-right { transform: translateY(24px); }
  .reveal-left.is-visible,
  .reveal-right.is-visible { transform: translateY(0); }

  /* Process & contact CTAs */
  .process-card__ctas .process-cta {
    width: 100%;
    padding-inline: 1.25rem;
    justify-content: center;
  }
  .contact-info-steps { min-width: 0; }
  .contact-step {
    min-width: 0;
    padding: 1rem 0.5rem;
    font-size: var(--text-xs);
  }
  .contact-info__badge {
    max-width: 100%;
    white-space: normal;
  }
  .contact-success { padding: 2rem 1.25rem; }
  .contact-form-footer { align-items: stretch; }
  .contact-submit {
    width: 100%;
    justify-content: center;
  }

  /* Headings with wide letter-spacing */
  .section-eyebrow,
  .promise-eyebrow {
    overflow-wrap: anywhere;
    word-break: break-word;
  }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: 0.01ms !important; animation-iteration-count: 1 !important; transition-duration: 0.01ms !important; scroll-behavior: auto !important; }
}

/* Stylr icon */
.stylr-icon { display: inline-block; vertical-align: middle; flex-shrink: 0; }

/* WooCommerce overrides */
.woocommerce-loop-product__link { display: none !important; }
