/* ==========================================================================
   Kasaora — UV-cured custom tumblers
   Art direction: quiet luxury × UV light curing (halation, scan, cylinder)
   Target: Awwwards / Webby / FWA craft bar
   ========================================================================== */

:root {
  /* OKLCH-feel palette: paper, ink, terracotta, mint */
  --kas-bg: oklch(0.96 0.015 75);
  --kas-bg-elev: oklch(0.99 0.008 85);
  --kas-ink: oklch(0.22 0.015 55);
  --kas-ink-soft: oklch(0.45 0.02 60);
  --kas-line: color-mix(in oklch, var(--kas-ink) 12%, transparent);
  --kas-accent: oklch(0.58 0.15 45);
  --kas-accent-deep: oklch(0.45 0.14 42);
  --kas-mint: oklch(0.48 0.07 170);
  --kas-glow: oklch(0.86 0.05 65);
  --kas-uv: oklch(0.78 0.12 230);

  /* Fallbacks for older browsers */
  --kas-bg-hex: #f6f1ea;
  --kas-bg-elev-hex: #fffdf9;
  --kas-ink-hex: #1a1714;
  --kas-ink-soft-hex: #5c554c;
  --kas-accent-hex: #c45c26;
  --kas-accent-deep-hex: #9a3f12;
  --kas-mint-hex: #2f6f5e;
  --kas-glow-hex: #e8c4a8;

  --kas-radius: 1.25rem;
  --kas-radius-sm: 0.75rem;
  --kas-radius-lg: 1.75rem;

  /* Fluid type scale (375→1440) */
  --kas-step--1: clamp(0.8125rem, 0.78rem + 0.15vw, 0.875rem);
  --kas-step-0: clamp(1rem, 0.96rem + 0.2vw, 1.125rem);
  --kas-step-1: clamp(1.25rem, 1.15rem + 0.45vw, 1.5rem);
  --kas-step-2: clamp(1.5rem, 1.3rem + 0.9vw, 2rem);
  --kas-step-3: clamp(1.9rem, 1.5rem + 1.6vw, 2.75rem);
  --kas-step-4: clamp(2.4rem, 1.7rem + 2.8vw, 4rem);
  --kas-display: clamp(2.75rem, 1.4rem + 6.5vw, 5.5rem);

  /* Spacing / 12-col grid */
  --kas-space-1: 0.25rem;
  --kas-space-2: 0.5rem;
  --kas-space-3: 1rem;
  --kas-space-4: 1.5rem;
  --kas-space-5: 2.5rem;
  --kas-space-6: 4rem;
  --kas-space-7: 6.5rem;
  --kas-gutter: clamp(1rem, 2.5vw, 1.75rem);
  --kas-margin: clamp(1.25rem, 4.5vw, 4rem);
  --kas-section: clamp(3.5rem, 9vw, 7rem);
  --kas-max: 72rem;
  --kas-cols: repeat(12, minmax(0, 1fr));

  --kas-font: "Instrument Sans", system-ui, sans-serif;
  --kas-display-font: "Newsreader", "Times New Roman", Georgia, serif;
  --kas-mono: "IBM Plex Mono", ui-monospace, monospace;

  --kas-ease: cubic-bezier(0.22, 1, 0.36, 1);
  --kas-ease-out: cubic-bezier(0.16, 1, 0.3, 1);
  --kas-ease-spring: cubic-bezier(0.34, 1.56, 0.64, 1);
  --kas-dur-1: 120ms;
  --kas-dur-2: 240ms;
  --kas-dur-3: 450ms;
  --kas-dur-4: 800ms;
  --kas-shadow: 0 24px 60px -32px color-mix(in oklch, var(--kas-ink) 35%, transparent);
  --kas-shadow-sm: 0 8px 24px -16px color-mix(in oklch, var(--kas-ink) 28%, transparent);
}

@supports not (color: oklch(0.5 0.1 50)) {
  :root {
    --kas-bg: #f6f1ea;
    --kas-bg-elev: #fffdf9;
    --kas-ink: #1a1714;
    --kas-ink-soft: #5c554c;
    --kas-accent: #c45c26;
    --kas-accent-deep: #9a3f12;
    --kas-mint: #2f6f5e;
    --kas-glow: #e8c4a8;
    --kas-uv: #7eb6d4;
    --kas-line: rgba(26, 23, 20, 0.12);
    --kas-shadow: 0 24px 60px -32px rgba(26, 23, 20, 0.35);
  }
}

@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;
  }
  [data-kas-reveal] {
    opacity: 1 !important;
    transform: none !important;
  }
}

@view-transition {
  navigation: auto;
}

::view-transition-old(root),
::view-transition-new(root) {
  animation-duration: 0.45s;
  animation-timing-function: var(--kas-ease-out);
}

html {
  scroll-behavior: smooth;
}

body.kasaora-theme {
  font-family: var(--kas-font);
  font-size: var(--kas-step-0);
  color: var(--kas-ink);
  background:
    radial-gradient(1200px 600px at 8% -12%, color-mix(in oklch, var(--kas-glow) 55%, transparent), transparent 62%),
    radial-gradient(900px 520px at 100% 0%, color-mix(in oklch, var(--kas-mint) 10%, transparent), transparent 55%),
    radial-gradient(700px 400px at 70% 100%, color-mix(in oklch, var(--kas-uv) 6%, transparent), transparent 50%),
    var(--kas-bg);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
  line-height: 1.55;
}

/* Film grain — UV print substrate feel */
body.kasaora-theme::before {
  content: "";
  pointer-events: none;
  position: fixed;
  inset: 0;
  z-index: 9999;
  opacity: 0.035;
  mix-blend-mode: multiply;
  background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

body.kasaora-theme ::selection {
  background: color-mix(in oklch, var(--kas-accent) 28%, transparent);
}

/* ---- Typography ------------------------------------------------------- */
.kas-display,
body.kasaora-theme h1,
body.kasaora-theme .wp-block-post-title,
body.kasaora-theme .product_title {
  font-family: var(--kas-display-font);
  font-weight: 500;
  letter-spacing: -0.035em;
  line-height: 0.98;
  text-wrap: balance;
}

body.kasaora-theme h1 {
  font-size: var(--kas-display);
  margin-block: 0 0.4em;
}
body.kasaora-theme h2 {
  font-family: var(--kas-display-font);
  font-size: var(--kas-step-3);
  letter-spacing: -0.025em;
  line-height: 1.08;
  text-wrap: balance;
}
body.kasaora-theme h3 {
  font-size: var(--kas-step-1);
  font-weight: 600;
  letter-spacing: -0.015em;
  line-height: 1.2;
}
body.kasaora-theme p {
  text-wrap: pretty;
  max-width: 65ch;
}

.kas-eyebrow {
  display: inline-flex;
  align-items: center;
  gap: 0.55rem;
  font-family: var(--kas-mono);
  font-size: var(--kas-step--1);
  font-weight: 500;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kas-mint);
  margin: 0 0 1.15rem;
}

.kas-eyebrow::before {
  content: "";
  width: 1.5rem;
  height: 1px;
  background: currentColor;
  flex-shrink: 0;
}

.kas-lede {
  font-size: clamp(1.05rem, 1.5vw, 1.25rem);
  line-height: 1.65;
  color: var(--kas-ink-soft);
  max-width: 36rem;
  margin: 1.15rem 0 0;
}

.kas-mono {
  font-family: var(--kas-mono);
  font-feature-settings: "tnum" 1;
}

/* Hide redundant page title on Home — hero owns the H1 */
body.kasaora-home .wp-block-post-title,

body.home.kasaora-theme .entry-header .wp-block-post-title,
body.kasaora-home .wp-block-post-title.has-text-align-left,
body.kasaora-home header.wp-block-group .wp-block-post-title {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

/* ---- Layout / 12-col -------------------------------------------------- */
body.kasaora-theme .wp-site-blocks {
  padding-inline: var(--kas-margin);
}

.kas-grid {
  display: grid;
  grid-template-columns: var(--kas-cols);
  gap: var(--kas-gutter);
  max-width: var(--kas-max);
  margin-inline: auto;
}

@media (max-width: 767px) {
  .kas-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

.kas-span-5 { grid-column: span 5; }
.kas-span-6 { grid-column: span 6; }
.kas-span-7 { grid-column: span 7; }
.kas-span-12 { grid-column: 1 / -1; }

@media (max-width: 767px) {
  .kas-span-5, .kas-span-6, .kas-span-7 { grid-column: 1 / -1; }
}

body.kasaora-theme header.wp-block-template-part,
body.kasaora-theme .wp-block-group.has-global-padding {
  max-width: var(--kas-max);
  margin-inline: auto;
}

body.kasaora-theme a {
  color: inherit;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.22em;
  transition: color var(--kas-dur-2) var(--kas-ease);
}

body.kasaora-theme a:hover { color: var(--kas-accent); }

/* Animated underline utility */
body.kasaora-theme .kas-link {
  background: linear-gradient(currentColor 0 0) 0 100% / 0 1px no-repeat;
  text-decoration: none !important;
  transition: background-size var(--kas-dur-3) var(--kas-ease-out), color var(--kas-dur-2) var(--kas-ease);
}
body.kasaora-theme .kas-link:hover {
  background-size: 100% 1px;
  color: var(--kas-accent);
}

/* ---- Header ----------------------------------------------------------- */
body.kasaora-theme header.wp-block-template-part {
  position: sticky;
  top: 0;
  z-index: 80;
  margin-inline: calc(-1 * var(--kas-margin));
  padding: 0.9rem var(--kas-margin);
  background: color-mix(in oklch, var(--kas-bg) 78%, transparent);
  backdrop-filter: blur(16px) saturate(1.25);
  -webkit-backdrop-filter: blur(16px) saturate(1.25);
  border-bottom: 1px solid transparent;
  transition: border-color var(--kas-dur-3) var(--kas-ease), background var(--kas-dur-3) var(--kas-ease), padding var(--kas-dur-3) var(--kas-ease);
  view-transition-name: kas-header;
}

body.kasaora-theme header.wp-block-template-part.is-scrolled {
  border-bottom-color: var(--kas-line);
  background: color-mix(in oklch, var(--kas-bg) 88%, transparent);
  padding-block: 0.65rem;
}

body.kasaora-theme header .wp-block-site-title a,
body.kasaora-theme .wp-block-site-title a {
  font-family: var(--kas-display-font);
  font-size: 1.55rem;
  font-weight: 600;
  letter-spacing: -0.035em;
  text-decoration: none !important;
}

body.kasaora-theme .wp-block-navigation a {
  font-size: 0.9rem;
  font-weight: 500;
  letter-spacing: 0.01em;
  text-decoration: none !important;
  opacity: 0.78;
  transition: opacity var(--kas-dur-2) var(--kas-ease);
}
body.kasaora-theme .wp-block-navigation a:hover {
  opacity: 1;
  color: var(--kas-ink);
}

/* Mini cart pulse */
@keyframes kas-cart-pulse {
  0%, 100% { transform: scale(1); }
  40% { transform: scale(1.18); }
}
.kas-cart-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 1.15rem;
  height: 1.15rem;
  padding: 0 0.3rem;
  margin-left: 0.25rem;
  border-radius: 999px;
  background: var(--kas-accent);
  color: #fffdf9;
  font-size: 0.65rem;
  font-weight: 700;
  font-feature-settings: "tnum" 1;
  line-height: 1;
}
.kas-cart-badge.is-pulse {
  animation: kas-cart-pulse 0.55s var(--kas-ease-spring);
}

/* ---- Hero (asymmetric 12-col) ----------------------------------------- */
.kas-hero {
  position: relative;
  display: grid;
  grid-template-columns: var(--kas-cols);
  gap: var(--kas-gutter);
  align-items: center;
  max-width: var(--kas-max);
  margin: clamp(1rem, 3vw, 2rem) auto var(--kas-section);
  padding: clamp(2.5rem, 7vw, 5.5rem) clamp(1.5rem, 4vw, 3.5rem);
  border-radius: var(--kas-radius-lg);
  background:
    linear-gradient(145deg, oklch(0.22 0.015 55) 0%, oklch(0.28 0.02 50) 45%, oklch(0.32 0.04 170) 100%);
  color: #f8f3ec;
  overflow: hidden;
  isolation: isolate;
  box-shadow: var(--kas-shadow);
}

@supports not (color: oklch(0.5 0.1 50)) {
  .kas-hero {
    background: linear-gradient(145deg, #1a1714 0%, #2a2420 48%, #1f3d36 100%);
  }
}

.kas-hero__glow {
  position: absolute;
  inset: -25% -5% auto auto;
  width: min(58vw, 30rem);
  height: min(58vw, 30rem);
  background: radial-gradient(circle, color-mix(in oklch, var(--kas-accent) 60%, transparent), transparent 68%);
  filter: blur(10px);
  z-index: 0;
  animation: kas-drift 16s var(--kas-ease) infinite alternate;
  pointer-events: none;
}

.kas-hero__beam {
  position: absolute;
  top: -10%;
  right: 18%;
  width: 2px;
  height: 70%;
  background: linear-gradient(to bottom, transparent, color-mix(in oklch, var(--kas-uv) 70%, white), transparent);
  opacity: 0.45;
  z-index: 0;
  filter: blur(1px);
  transform: rotate(12deg);
  pointer-events: none;
  animation: kas-beam 8s ease-in-out infinite alternate;
}

@keyframes kas-drift {
  from { transform: translate(0, 0) scale(1); }
  to { transform: translate(-14%, 16%) scale(1.12); }
}
@keyframes kas-beam {
  from { opacity: 0.25; transform: rotate(12deg) translateY(0); }
  to { opacity: 0.55; transform: rotate(14deg) translateY(8%); }
}

.kas-hero__inner {
  position: relative;
  z-index: 1;
  grid-column: 1 / span 7;
}

.kas-hero__visual {
  position: relative;
  z-index: 1;
  grid-column: 8 / span 5;
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 16rem;
  pointer-events: none;
}

.kas-hero__visual svg {
  width: min(100%, 280px);
  height: auto;
  filter: drop-shadow(0 30px 40px rgba(0,0,0,0.35));
  animation: kas-float 7s var(--kas-ease) infinite alternate;
}

@keyframes kas-float {
  from { transform: translateY(0) rotate(-2deg); }
  to { transform: translateY(-12px) rotate(2deg); }
}

@media (max-width: 860px) {
  .kas-hero {
    grid-template-columns: 1fr;
    padding-bottom: 2.5rem;
  }
  .kas-hero__inner,
  .kas-hero__visual {
    grid-column: 1 / -1;
  }
  .kas-hero__visual {
    order: -1;
    min-height: 12rem;
    margin-bottom: 0.5rem;
  }
  .kas-hero__visual svg {
    width: min(42vw, 180px);
  }
}

.kas-hero .kas-eyebrow { color: #d8c3a8; }
.kas-hero .kas-display {
  font-size: var(--kas-display);
  color: #fffdf9;
  margin: 0;
}
.kas-hero .kas-display em {
  font-style: italic;
  color: #f0b089;
  font-weight: 500;
}
.kas-hero .kas-lede { color: rgba(248, 243, 236, 0.78); }

.kas-hero__cta {
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem;
  margin-top: 2rem;
}

.kas-hero__meta {
  position: relative;
  z-index: 1;
  grid-column: 1 / -1;
  display: flex;
  flex-wrap: wrap;
  gap: 0.75rem 1.75rem;
  margin-top: clamp(2rem, 5vw, 3.5rem);
  padding-top: 1.15rem;
  border-top: 1px solid rgba(255, 253, 249, 0.14);
  font-family: var(--kas-mono);
  font-size: 0.7rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: rgba(248, 243, 236, 0.5);
}

/* ---- Buttons ---------------------------------------------------------- */
.kas-btn,
body.kasaora-theme .wp-block-button__link,
body.kasaora-theme .button,
body.kasaora-theme button.button,
body.kasaora-theme input.button,
body.kasaora-theme #add_to_cart,
body.kasaora-theme .single_add_to_cart_button,
body.kasaora-theme .checkout-button,
body.kasaora-theme .woocommerce a.button,
body.kasaora-theme .woocommerce button.button,
body.kasaora-theme .woocommerce input.button,
body.kasaora-theme .woocommerce #respond input#submit,
body.kasaora-theme .wc-block-components-button {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.95rem 1.5rem;
  border-radius: 999px;
  border: 1px solid transparent;
  font-family: var(--kas-font);
  font-size: 0.9rem;
  font-weight: 600;
  letter-spacing: 0.02em;
  line-height: 1;
  text-decoration: none !important;
  cursor: pointer;
  overflow: hidden;
  transition:
    transform var(--kas-dur-3) var(--kas-ease-out),
    background var(--kas-dur-3) var(--kas-ease),
    color var(--kas-dur-3) var(--kas-ease),
    border-color var(--kas-dur-3) var(--kas-ease),
    box-shadow var(--kas-dur-3) var(--kas-ease);
}

.kas-btn::after,
body.kasaora-theme .single_add_to_cart_button::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(120deg, transparent 30%, rgba(255,255,255,0.22) 50%, transparent 70%);
  transform: translateX(-120%);
  transition: transform 0.7s var(--kas-ease-out);
  pointer-events: none;
}
.kas-btn:hover::after,
body.kasaora-theme .single_add_to_cart_button:hover::after {
  transform: translateX(120%);
}

.kas-btn--primary,
body.kasaora-theme .woocommerce a.button.alt,
body.kasaora-theme .woocommerce button.button.alt,
body.kasaora-theme .single_add_to_cart_button,
body.kasaora-theme .checkout-button,
body.kasaora-theme .wc-block-cart__submit-button,
body.kasaora-theme .wc-block-components-checkout-place-order-button {
  background: var(--kas-accent) !important;
  color: #fffdf9 !important;
  border-color: var(--kas-accent) !important;
  box-shadow: 0 12px 32px -14px color-mix(in oklch, var(--kas-accent) 75%, transparent);
}

.kas-btn--primary:hover,
body.kasaora-theme .woocommerce a.button.alt:hover,
body.kasaora-theme .woocommerce button.button.alt:hover,
body.kasaora-theme .single_add_to_cart_button:hover,
body.kasaora-theme .checkout-button:hover {
  background: var(--kas-accent-deep) !important;
  border-color: var(--kas-accent-deep) !important;
  transform: translateY(-2px);
}

.kas-btn:active,
body.kasaora-theme .single_add_to_cart_button:active {
  transform: scale(0.97) !important;
}

.kas-btn--ghost {
  background: transparent;
  color: #fffdf9;
  border-color: rgba(255, 253, 249, 0.35);
}
.kas-btn--ghost:hover {
  background: rgba(255, 253, 249, 0.08);
  border-color: rgba(255, 253, 249, 0.7);
  color: #fffdf9;
  transform: translateY(-2px);
}

.kas-btn--ink {
  background: var(--kas-ink);
  color: #fffdf9;
  border-color: var(--kas-ink);
}
.kas-btn--ink:hover {
  background: #000;
  transform: translateY(-2px);
}

body.kasaora-theme .woocommerce a.button,
body.kasaora-theme .woocommerce button.button {
  background: var(--kas-ink) !important;
  color: #fffdf9 !important;
}
body.kasaora-theme .woocommerce a.button:hover,
body.kasaora-theme .woocommerce button.button:hover {
  background: #000 !important;
  transform: translateY(-2px);
}

/* ---- Feature cards ---------------------------------------------------- */
.kas-features {
  max-width: var(--kas-max);
  margin: 0 auto var(--kas-section);
}

.kas-section-head {
  max-width: var(--kas-max);
  margin: 0 auto 1.75rem;
  display: grid;
  grid-template-columns: var(--kas-cols);
  gap: var(--kas-gutter);
  align-items: end;
}
.kas-section-head__copy { grid-column: 1 / span 7; }
.kas-section-head__aside {
  grid-column: 9 / span 4;
  text-align: right;
  color: var(--kas-ink-soft);
  font-size: var(--kas-step--1);
  font-family: var(--kas-mono);
  letter-spacing: 0.08em;
  text-transform: uppercase;
}
@media (max-width: 767px) {
  .kas-section-head__copy,
  .kas-section-head__aside { grid-column: 1 / -1; text-align: left; }
}

.kas-features__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--kas-gutter);
}
@media (max-width: 860px) {
  .kas-features__grid { grid-template-columns: 1fr; }
}

.kas-card {
  background: var(--kas-bg-elev);
  border: 1px solid var(--kas-line);
  border-radius: var(--kas-radius);
  padding: 1.85rem 1.6rem;
  transition: transform var(--kas-dur-3) var(--kas-ease-out), box-shadow var(--kas-dur-3) var(--kas-ease), border-color var(--kas-dur-3) var(--kas-ease);
}
.kas-card:hover {
  transform: translateY(-5px);
  box-shadow: var(--kas-shadow);
  border-color: color-mix(in oklch, var(--kas-accent) 30%, transparent);
}
.kas-card__index {
  display: block;
  font-family: var(--kas-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.14em;
  color: var(--kas-accent);
  margin-bottom: 1rem;
}
.kas-card h3 { margin: 0 0 0.5rem; }
.kas-card p {
  margin: 0;
  color: var(--kas-ink-soft);
  line-height: 1.6;
  font-size: 0.95rem;
}

/* ---- Process / UV strip ----------------------------------------------- */
.kas-process {
  max-width: var(--kas-max);
  margin: 0 auto var(--kas-section);
  padding: clamp(1.75rem, 4vw, 2.5rem);
  border-radius: var(--kas-radius);
  border: 1px solid var(--kas-line);
  background:
    linear-gradient(90deg, color-mix(in oklch, var(--kas-glow) 25%, transparent), transparent 40%),
    var(--kas-bg-elev);
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.25rem;
}
@media (max-width: 900px) {
  .kas-process { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 520px) {
  .kas-process { grid-template-columns: 1fr; }
}
.kas-process__step strong {
  display: block;
  font-family: var(--kas-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kas-mint);
  margin-bottom: 0.4rem;
  font-weight: 500;
}
.kas-process__step p {
  margin: 0;
  font-size: 0.95rem;
  color: var(--kas-ink-soft);
  max-width: none;
}

/* ---- Marquee / UV scan ------------------------------------------------ */
.kas-marquee {
  max-width: none;
  margin: 0 calc(-1 * var(--kas-margin)) var(--kas-section);
  padding: 0.85rem 0;
  overflow: hidden;
  border-block: 1px solid var(--kas-line);
  background: color-mix(in oklch, var(--kas-ink) 4%, var(--kas-bg));
}
.kas-marquee__track {
  display: flex;
  gap: 2.5rem;
  width: max-content;
  animation: kas-marquee 32s linear infinite;
  font-family: var(--kas-mono);
  font-size: 0.72rem;
  font-weight: 500;
  letter-spacing: 0.16em;
  text-transform: uppercase;
  color: var(--kas-ink-soft);
  white-space: nowrap;
}
.kas-marquee__track span::before {
  content: "◆";
  margin-right: 2.5rem;
  color: var(--kas-accent);
  font-size: 0.55rem;
  vertical-align: middle;
}
@keyframes kas-marquee {
  from { transform: translateX(0); }
  to { transform: translateX(-50%); }
}
@media (prefers-reduced-motion: reduce) {
  .kas-marquee__track { animation: none; }
}

/* ---- WooCommerce product grid ---------------------------------------- */
body.kasaora-theme ul.products {
  display: grid !important;
  grid-template-columns: repeat(3, 1fr);
  gap: clamp(1rem, 2.5vw, 1.5rem);
  margin: 0 !important;
  padding: 0 !important;
  list-style: none;
}
@media (max-width: 900px) {
  body.kasaora-theme ul.products { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 520px) {
  body.kasaora-theme ul.products { grid-template-columns: 1fr; }
}

body.kasaora-theme ul.products::before,
body.kasaora-theme ul.products::after {
  display: none !important;
  content: none !important;
}

body.kasaora-theme ul.products li.product {
  position: relative;
  width: 100% !important;
  margin: 0 !important;
  float: none !important;
  clear: none !important;
  background: var(--kas-bg-elev);
  border: 1px solid var(--kas-line);
  border-radius: var(--kas-radius);
  padding: 1rem 1rem 1.35rem;
  overflow: hidden;
  transition: transform var(--kas-dur-3) var(--kas-ease-out), box-shadow var(--kas-dur-3) var(--kas-ease), border-color var(--kas-dur-3) var(--kas-ease);
}

body.kasaora-theme ul.products li.product:hover {
  transform: translateY(-7px);
  box-shadow: var(--kas-shadow);
  border-color: color-mix(in oklch, var(--kas-mint) 30%, transparent);
}

body.kasaora-theme ul.products li.product .kas-product-media {
  position: relative;
  overflow: hidden;
  border-radius: var(--kas-radius-sm);
  margin-bottom: 1rem;
  background: linear-gradient(160deg, #ebe4da, #d9d0c4);
  aspect-ratio: 1;
}

body.kasaora-theme ul.products li.product img {
  border-radius: var(--kas-radius-sm);
  margin-bottom: 0;
  background: linear-gradient(160deg, #ebe4da, #d9d0c4);
  aspect-ratio: 1;
  object-fit: cover;
  width: 100%;
  transition: transform 0.7s var(--kas-ease-out);
}

body.kasaora-theme ul.products li.product:hover img {
  transform: scale(1.05);
}

/* Shine sweep on card hover */
body.kasaora-theme ul.products li.product::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.18) 50%, transparent 60%);
  transform: translateX(-120%);
  transition: transform 0.8s var(--kas-ease-out);
  pointer-events: none;
  z-index: 2;
}
body.kasaora-theme ul.products li.product:hover::before {
  transform: translateX(120%);
}

body.kasaora-theme ul.products li.product .woocommerce-loop-product__title {
  font-family: var(--kas-display-font);
  font-size: 1.2rem !important;
  font-weight: 500;
  letter-spacing: -0.02em;
  margin: 0 0 0.35rem !important;
  line-height: 1.2;
}

body.kasaora-theme ul.products li.product .price {
  color: var(--kas-ink) !important;
  font-weight: 600;
  font-size: 1rem;
  margin-bottom: 0.85rem;
  font-feature-settings: "tnum" 1;
}

body.kasaora-theme .woocommerce-loop-product__link {
  text-decoration: none !important;
}

body.kasaora-theme ul.products li.product .button {
  width: 100%;
  margin-top: 0.25rem;
}

body.kasaora-theme ul.products li.product .woocommerce-placeholder {
  border-radius: var(--kas-radius-sm);
  background: linear-gradient(145deg, #2a2420, #1f3d36) !important;
  opacity: 1;
}

/* Block product collection cards */
body.kasaora-theme .wc-block-product,
body.kasaora-theme .wp-block-post.product {
  border-radius: var(--kas-radius);
  transition: transform var(--kas-dur-3) var(--kas-ease-out);
}

/* ---- Single product --------------------------------------------------- */
body.kasaora-product div.product {
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: clamp(1.5rem, 4vw, 3.25rem);
  align-items: start;
  max-width: var(--kas-max);
  margin-inline: auto;
  padding-bottom: 5rem;
}

@media (max-width: 900px) {
  body.kasaora-product div.product {
    grid-template-columns: 1fr;
  }
}

body.kasaora-product div.product .woocommerce-product-gallery {
  border-radius: var(--kas-radius);
  overflow: hidden;
  background: var(--kas-bg-elev);
  border: 1px solid var(--kas-line);
  position: sticky;
  top: 5.5rem;
}

body.kasaora-product .product_title {
  font-size: var(--kas-step-4) !important;
  margin-top: 0;
}

body.kasaora-product .price {
  font-size: 1.4rem !important;
  font-weight: 600;
  color: var(--kas-accent) !important;
  font-feature-settings: "tnum" 1;
}

body.kasaora-product .quantity .qty {
  border-radius: 999px;
  border: 1px solid var(--kas-line);
  padding: 0.7rem 1rem;
  background: var(--kas-bg-elev);
  font-feature-settings: "tnum" 1;
}

.kas-pdp-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0.75rem;
  margin: 1.5rem 0 0;
  padding: 1rem 0 0;
  border-top: 1px solid var(--kas-line);
}
.kas-pdp-trust span {
  font-size: 0.78rem;
  color: var(--kas-ink-soft);
  line-height: 1.4;
}
.kas-pdp-trust strong {
  display: block;
  font-family: var(--kas-mono);
  font-size: 0.65rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kas-mint);
  margin-bottom: 0.2rem;
  font-weight: 500;
}
@media (max-width: 520px) {
  .kas-pdp-trust { grid-template-columns: 1fr; }
}

/* Sticky mobile ATC bar */
.kas-sticky-atc {
  display: none;
}
@media (max-width: 767px) {
  .kas-sticky-atc {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.75rem;
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 90;
    padding: 0.75rem 1rem calc(0.75rem + env(safe-area-inset-bottom));
    background: color-mix(in oklch, var(--kas-bg-elev) 92%, transparent);
    backdrop-filter: blur(12px);
    border-top: 1px solid var(--kas-line);
    box-shadow: 0 -12px 40px -20px rgba(26,23,20,0.25);
  }
  .kas-sticky-atc__price {
    font-weight: 700;
    font-feature-settings: "tnum" 1;
    color: var(--kas-accent);
  }
  .kas-sticky-atc .kas-btn { flex: 1; max-width: 14rem; }
  body.kasaora-product { padding-bottom: 5rem; }
}

/* ---- Cart / Checkout -------------------------------------------------- */
body.kasaora-theme.woocommerce-cart .entry-content,
body.kasaora-theme.woocommerce-checkout .entry-content {
  max-width: var(--kas-max);
  margin-inline: auto;
}

body.kasaora-theme .woocommerce-cart-form,
body.kasaora-theme .cart-collaterals,
body.kasaora-theme .woocommerce-checkout,
body.kasaora-theme .woocommerce-MyAccount-content,
body.kasaora-theme .woocommerce-MyAccount-navigation,
body.kasaora-theme .wp-block-woocommerce-cart,
body.kasaora-theme .wp-block-woocommerce-checkout {
  background: var(--kas-bg-elev);
  border: 1px solid var(--kas-line);
  border-radius: var(--kas-radius);
  padding: clamp(1.25rem, 3vw, 1.75rem);
}

.kas-checkout-steps {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  max-width: var(--kas-max);
  margin: 0 auto 1.5rem;
  padding: 0;
  list-style: none;
}
.kas-checkout-steps li {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-family: var(--kas-mono);
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kas-ink-soft);
  padding: 0.4rem 0.75rem;
  border-radius: 999px;
  border: 1px solid var(--kas-line);
  background: var(--kas-bg-elev);
}
.kas-checkout-steps li.is-active {
  color: #fffdf9;
  background: var(--kas-ink);
  border-color: var(--kas-ink);
}
.kas-checkout-steps li.is-done {
  color: var(--kas-mint);
  border-color: color-mix(in oklch, var(--kas-mint) 35%, transparent);
}

body.kasaora-theme .woocommerce form .form-row input.input-text,
body.kasaora-theme .woocommerce form .form-row textarea,
body.kasaora-theme .woocommerce form .form-row select,
body.kasaora-theme .woocommerce-input-wrapper .input-text,
body.kasaora-theme .wc-block-components-text-input input,
body.kasaora-theme .wc-block-components-textarea {
  border-radius: var(--kas-radius-sm) !important;
  border: 1px solid var(--kas-line) !important;
  background: #fff !important;
  padding: 0.8rem 0.95rem !important;
  transition: border-color var(--kas-dur-2) var(--kas-ease), box-shadow var(--kas-dur-2) var(--kas-ease);
}

body.kasaora-theme .woocommerce form .form-row input.input-text:focus,
body.kasaora-theme .woocommerce form .form-row textarea:focus,
body.kasaora-theme .woocommerce form .form-row select:focus,
body.kasaora-theme .wc-block-components-text-input input:focus {
  outline: none !important;
  border-color: var(--kas-accent) !important;
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--kas-accent) 20%, transparent) !important;
}

.kas-empty-cart {
  text-align: center;
  padding: clamp(2.5rem, 6vw, 4rem) 1.5rem;
  max-width: 28rem;
  margin: 2rem auto;
}
.kas-empty-cart svg {
  width: 120px;
  height: auto;
  margin-bottom: 1.25rem;
  opacity: 0.9;
}
.kas-empty-cart h2 {
  margin: 0 0 0.5rem;
}
.kas-empty-cart p {
  color: var(--kas-ink-soft);
  margin: 0 auto 1.5rem;
}

/* ---- Shop header ------------------------------------------------------ */
.kas-shop-intro {
  max-width: var(--kas-max);
  margin: 1rem auto 2rem;
  display: grid;
  grid-template-columns: var(--kas-cols);
  gap: var(--kas-gutter);
  align-items: end;
}
.kas-shop-intro__title { grid-column: 1 / span 8; }
.kas-shop-intro__lede {
  grid-column: 1 / span 7;
  color: var(--kas-ink-soft);
  margin: 0.75rem 0 0;
  max-width: 40rem;
}
@media (max-width: 767px) {
  .kas-shop-intro__title,
  .kas-shop-intro__lede { grid-column: 1 / -1; }
}

body.kasaora-shop .woocommerce-products-header__title,
body.kasaora-theme .page-title {
  font-family: var(--kas-display-font);
  font-size: var(--kas-step-4);
  margin-bottom: 0.35rem;
  letter-spacing: -0.03em;
}

body.kasaora-theme .woocommerce-result-count,
body.kasaora-theme .woocommerce-ordering {
  font-size: 0.85rem;
  color: var(--kas-ink-soft);
}
body.kasaora-theme .woocommerce-ordering select {
  border-radius: 999px;
  border: 1px solid var(--kas-line);
  padding: 0.5rem 1rem;
  background: var(--kas-bg-elev);
}

/* ---- CTA band --------------------------------------------------------- */
.kas-cta-band {
  max-width: var(--kas-max);
  margin: 0 auto var(--kas-section);
  padding: clamp(2.5rem, 6vw, 4rem);
  border-radius: var(--kas-radius-lg);
  background: linear-gradient(135deg, var(--kas-ink) 0%, #2a2420 60%, #1f3d36 100%);
  color: #f8f3ec;
  display: grid;
  grid-template-columns: var(--kas-cols);
  gap: var(--kas-gutter);
  align-items: center;
  position: relative;
  overflow: hidden;
}
.kas-cta-band::before {
  content: "";
  position: absolute;
  right: -10%;
  top: -40%;
  width: 50%;
  height: 180%;
  background: radial-gradient(circle, color-mix(in oklch, var(--kas-accent) 40%, transparent), transparent 65%);
  pointer-events: none;
}
.kas-cta-band__copy { grid-column: 1 / span 7; position: relative; z-index: 1; }
.kas-cta-band__actions {
  grid-column: 9 / span 4;
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: flex-end;
  gap: 0.75rem;
  flex-wrap: wrap;
}
.kas-cta-band h2 {
  color: #fffdf9;
  margin: 0 0 0.75rem;
}
.kas-cta-band p {
  color: rgba(248, 243, 236, 0.72);
  margin: 0;
  max-width: 32rem;
}
@media (max-width: 767px) {
  .kas-cta-band__copy,
  .kas-cta-band__actions {
    grid-column: 1 / -1;
    justify-content: flex-start;
  }
}

/* ---- Footer ----------------------------------------------------------- */
body.kasaora-theme footer.wp-block-template-part {
  margin-top: var(--kas-section);
  margin-inline: calc(-1 * var(--kas-margin));
  padding: 2.75rem var(--kas-margin);
  border-top: 1px solid var(--kas-line);
  color: var(--kas-ink-soft);
  font-size: 0.9rem;
  background: color-mix(in oklch, var(--kas-ink) 3%, var(--kas-bg));
}

/* ---- Reveal motion ---------------------------------------------------- */
[data-kas-reveal] {
  opacity: 0;
  transform: translateY(22px);
  transition: opacity var(--kas-dur-4) var(--kas-ease-out), transform var(--kas-dur-4) var(--kas-ease-out);
  transition-delay: var(--kas-delay, 0ms);
}
[data-kas-reveal].is-inview {
  opacity: 1;
  transform: none;
}

body.kasaora-theme .entry-content,
body.kasaora-theme .wp-block-post-content,
body.kasaora-theme .woocommerce {
  animation: kas-fade-up 0.65s var(--kas-ease-out) both;
}
@keyframes kas-fade-up {
  from { opacity: 0; transform: translateY(14px); }
  to { opacity: 1; transform: none; }
}

@supports (animation-timeline: view()) {
  @media (prefers-reduced-motion: no-preference) {
    [data-kas-reveal] {
      animation: kas-view-reveal linear both;
      animation-timeline: view();
      animation-range: entry 0% cover 28%;
      opacity: 1;
      transform: none;
      transition: none;
    }
    @keyframes kas-view-reveal {
      from { opacity: 0; transform: translateY(28px); }
      to { opacity: 1; transform: none; }
    }
  }
}

/* ---- Misc polish ------------------------------------------------------ */
body.kasaora-theme .woocommerce-breadcrumb {
  font-family: var(--kas-mono);
  font-size: 0.72rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--kas-ink-soft);
  margin-bottom: 1.5rem !important;
}

body.kasaora-theme .stock.in-stock {
  color: var(--kas-mint);
  font-weight: 600;
  font-size: 0.85rem;
}

body.kasaora-theme .onsale {
  background: var(--kas-accent) !important;
  border-radius: 999px !important;
  padding: 0.35rem 0.7rem !important;
  line-height: 1 !important;
  min-height: 0 !important;
  min-width: 0 !important;
  font-family: var(--kas-mono);
  font-size: 0.65rem !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

body.kasaora-theme .woocommerce-product-gallery__image img {
  border-radius: var(--kas-radius-sm);
}

body.kasaora-theme .wc_payment_methods {
  border-radius: var(--kas-radius-sm);
  overflow: hidden;
  border: 1px solid var(--kas-line);
}
body.kasaora-theme .wc_payment_method {
  padding: 0.9rem 1rem;
  background: #fff;
  border-bottom: 1px solid var(--kas-line);
}
body.kasaora-theme .wc_payment_method:last-child { border-bottom: 0; }

body.kasaora-theme a:focus-visible,
body.kasaora-theme button:focus-visible,
body.kasaora-theme .button:focus-visible {
  outline: 2px solid var(--kas-accent);
  outline-offset: 3px;
}

body.kasaora-home .kas-hero { margin-top: 0.75rem; }

body.kasaora-theme .wp-block-post-title.has-text-align-center,
body.kasaora-theme h2.has-text-align-center {
  font-family: var(--kas-display-font);
  letter-spacing: -0.025em;
}

/* Featured products section breathing room */
body.kasaora-home .wp-block-heading + .wp-block-paragraph {
  color: var(--kas-ink-soft);
  margin-bottom: 1.5rem;
}

/* Free shipping nudge near cart totals */
.kas-ship-nudge {
  margin: 0.75rem 0 0;
  padding: 0.65rem 0.85rem;
  border-radius: var(--kas-radius-sm);
  background: color-mix(in oklch, var(--kas-mint) 10%, var(--kas-bg));
  border: 1px solid color-mix(in oklch, var(--kas-mint) 25%, transparent);
  font-size: 0.85rem;
  color: var(--kas-mint);
}

/* Touch targets on mobile */
@media (max-width: 767px) {
  body.kasaora-theme .wp-block-navigation a,
  body.kasaora-theme .kas-btn,
  body.kasaora-theme .woocommerce a.button {
    min-height: 44px;
  }
  body.kasaora-theme ul.products li.product {
    padding: 0.85rem 0.85rem 1.1rem;
  }
}


/* Block cart empty state */
body.kasaora-theme .wp-block-woocommerce-empty-cart-block {
  text-align: center;
  padding: clamp(1.5rem, 4vw, 2.5rem) 1rem 2rem;
}
body.kasaora-theme .wp-block-woocommerce-empty-cart-block .kas-empty-cart {
  margin-bottom: 0.5rem;
  padding: 0;
}
body.kasaora-theme .wp-block-woocommerce-empty-cart-block h2 {
  font-family: var(--kas-display-font);
  letter-spacing: -0.025em;
}
body.kasaora-theme .wp-block-woocommerce-cart .wc-block-cart__submit-button,
body.kasaora-theme .wc-block-components-checkout-place-order-button {
  border-radius: 999px !important;
}

/* Mini-cart badge pulse reuse */
.wc-block-mini-cart__badge.is-pulse {
  animation: kas-cart-pulse 0.55s var(--kas-ease-spring);
}

/* ==========================================================================
   v1.3 — push all dimensions ≥9
   Asymmetric spacing · label-roll · UV print-reveal · 375 mobile · footer/404
   ========================================================================== */

:root {
  /* Stronger asymmetric spacing tokens */
  --kas-section: clamp(4.5rem, 11vw, 9rem);
  --kas-section-tight: clamp(2.5rem, 5vw, 4rem);
  --kas-margin: clamp(1.25rem, 5.5vw, 5.5rem);
  --kas-margin-asymm-l: clamp(1.25rem, 4vw, 4rem);
  --kas-margin-asymm-r: clamp(1.25rem, 7vw, 7rem);
  --kas-stack: clamp(1.25rem, 2.5vw, 2rem);
  --kas-bleed: clamp(1.5rem, 4vw, 3rem);
  --kas-uv: oklch(0.78 0.12 230);
  --kas-display: clamp(2.85rem, 1.2rem + 7.2vw, 6rem);
}

@supports not (color: oklch(0.5 0.1 50)) {
  :root { --kas-uv: #7eb6d4; }
}

/* Break TT4 density — more air on commerce pages */
body.kasaora-theme .wp-site-blocks {
  padding-inline: var(--kas-margin-asymm-l) var(--kas-margin-asymm-r);
}

body.kasaora-shop main,
body.kasaora-product main,
body.kasaora-cart main,
body.kasaora-checkout main,
body.kasaora-theme.woocommerce-cart .wp-block-post-content,
body.kasaora-theme.woocommerce-checkout .wp-block-post-content {
  padding-block: var(--kas-section-tight) var(--kas-section);
}

body.kasaora-shop .woocommerce-products-header,
body.kasaora-theme .woocommerce-products-header {
  margin-bottom: var(--kas-space-5);
}

body.kasaora-theme ul.products {
  gap: clamp(1.25rem, 3vw, 2rem) !important;
}

body.kasaora-product div.product {
  gap: clamp(2rem, 5vw, 4rem);
  padding-bottom: clamp(4rem, 8vw, 7rem);
}

body.kasaora-theme .woocommerce-cart-form,
body.kasaora-theme .cart-collaterals,
body.kasaora-theme .woocommerce-checkout,
body.kasaora-theme .wp-block-woocommerce-cart,
body.kasaora-theme .wp-block-woocommerce-checkout {
  padding: clamp(1.75rem, 4vw, 2.5rem);
}

/* ---- Header + mini-cart ------------------------------------------------ */
body.kasaora-theme header.wp-block-template-part {
  margin-inline: calc(-1 * var(--kas-margin-asymm-l)) calc(-1 * var(--kas-margin-asymm-r));
  padding-inline: var(--kas-margin-asymm-l) var(--kas-margin-asymm-r);
}

.kas-header-inner {
  width: 100%;
  max-width: var(--kas-max);
  margin-inline: auto;
  min-height: 3.25rem;
  align-items: center !important;
}

.kas-header-actions {
  align-items: center !important;
}

body.kasaora-theme .kas-mini-cart .wc-block-mini-cart__button,
body.kasaora-theme .wc-block-mini-cart__button {
  padding: 0.45rem 0.65rem !important;
  border-radius: 999px !important;
  border: 1px solid var(--kas-line) !important;
  background: var(--kas-bg-elev) !important;
  transition: border-color var(--kas-dur-2) var(--kas-ease), transform var(--kas-dur-2) var(--kas-ease-spring), background var(--kas-dur-2) var(--kas-ease) !important;
}
body.kasaora-theme .wc-block-mini-cart__button:hover {
  border-color: color-mix(in oklch, var(--kas-accent) 40%, transparent) !important;
  transform: translateY(-1px);
}
body.kasaora-theme .wc-block-mini-cart__badge {
  background: var(--kas-accent) !important;
  color: #fffdf9 !important;
  font-family: var(--kas-mono) !important;
  font-size: 0.65rem !important;
  font-weight: 600 !important;
}

/* Drawer polish */
body.kasaora-theme .wc-block-mini-cart__drawer {
  font-family: var(--kas-font);
}
body.kasaora-theme .wc-block-mini-cart__drawer .wc-block-mini-cart__title {
  font-family: var(--kas-display-font);
  letter-spacing: -0.02em;
}

/* ---- Button label-roll ------------------------------------------------- */
.kas-btn--roll {
  overflow: hidden !important;
  padding-block: 0 !important;
  height: 2.85rem !important;
  min-height: 2.85rem !important;
  min-width: 10.5rem;
  align-items: flex-start !important;
}
.kas-btn--roll .kas-btn__labels {
  display: flex;
  flex-direction: column;
  transition: transform var(--kas-dur-3) var(--kas-ease-out);
}
.kas-btn--roll .kas-btn__label {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 2.85rem;
  padding-inline: 1.5rem;
  white-space: nowrap;
  flex: 0 0 2.85rem;
}
.kas-btn--roll:hover .kas-btn__labels,
.kas-btn--roll:focus-visible .kas-btn__labels {
  transform: translateY(-50%);
}
@media (prefers-reduced-motion: reduce) {
  .kas-btn--roll .kas-btn__labels { transition: none; }
  .kas-btn--roll:hover .kas-btn__labels { transform: none; }
}

/* Generic focus-visible everywhere interactive */
body.kasaora-theme a:focus-visible,
body.kasaora-theme button:focus-visible,
body.kasaora-theme .button:focus-visible,
body.kasaora-theme input:focus-visible,
body.kasaora-theme select:focus-visible,
body.kasaora-theme textarea:focus-visible,
body.kasaora-theme summary:focus-visible,
body.kasaora-theme [role="button"]:focus-visible,
body.kasaora-theme .wc-block-components-button:focus-visible,
body.kasaora-theme .wc-block-mini-cart__button:focus-visible {
  outline: 2px solid var(--kas-accent) !important;
  outline-offset: 3px !important;
}

/* ---- Line-mask title reveals (progressive: JS adds .kas-split-on) ------ */
.kas-line-mask {
  display: block;
  overflow: hidden;
  padding-bottom: 0.08em;
}
.kas-line-mask__inner {
  display: block;
}
html.kas-split-on .kas-line-mask__inner {
  transform: translateY(110%);
  transition: transform 0.9s var(--kas-ease-out);
  transition-delay: var(--kas-delay, 0ms);
}
html.kas-split-on .is-inview .kas-line-mask__inner,
html.kas-split-on .kas-line-mask.is-inview .kas-line-mask__inner,
html.kas-split-on [data-kas-reveal].is-inview .kas-line-mask__inner {
  transform: translateY(0);
}
@media (prefers-reduced-motion: reduce) {
  html.kas-split-on .kas-line-mask__inner { transform: none !important; transition: none !important; }
}

/* Lenis smooth scroll root */
html.lenis, html.lenis body { height: auto; }
.lenis.lenis-smooth { scroll-behavior: auto !important; }
.lenis.lenis-smooth [data-lenis-prevent] { overscroll-behavior: contain; }
.lenis.lenis-stopped { overflow: hidden; }

/* ---- UV print-reveal (signature) --------------------------------------- */
.kas-hero__visual {
  position: relative;
}
.kas-uv-stage {
  position: relative;
  width: min(100%, 280px);
}
.kas-uv-stage svg {
  width: 100%;
  height: auto;
  display: block;
  filter: drop-shadow(0 30px 40px rgba(0,0,0,0.35));
}
.kas-uv-stage__beam {
  position: absolute;
  top: 8%;
  left: 50%;
  width: 3px;
  height: 0%;
  transform: translateX(-50%);
  background: linear-gradient(to bottom,
    transparent,
    color-mix(in oklch, var(--kas-uv) 80%, white),
    color-mix(in oklch, var(--kas-accent) 50%, var(--kas-uv)),
    transparent);
  opacity: 0;
  filter: blur(1.5px);
  pointer-events: none;
  z-index: 3;
  box-shadow: 0 0 18px 4px color-mix(in oklch, var(--kas-uv) 55%, transparent);
}
.kas-uv-stage.is-curing .kas-uv-stage__beam {
  animation: kas-uv-beam-scan 2.4s var(--kas-ease-out) forwards;
}
@keyframes kas-uv-beam-scan {
  0%   { opacity: 0; height: 0%; top: 12%; }
  15%  { opacity: 1; height: 35%; }
  55%  { opacity: 1; height: 55%; top: 28%; }
  100% { opacity: 0; height: 20%; top: 62%; }
}
.kas-uv-stage .kas-print-plate {
  opacity: 0.15;
  filter: saturate(0.4);
  transform-origin: center;
  transition: opacity 0.8s var(--kas-ease-out) 0.6s, filter 0.8s var(--kas-ease-out) 0.6s;
}
.kas-uv-stage.is-curing .kas-print-plate {
  opacity: 1;
  filter: saturate(1);
}
.kas-uv-stage .kas-print-lines line {
  stroke-dasharray: 40;
  stroke-dashoffset: 40;
}
.kas-uv-stage.is-curing .kas-print-lines line {
  animation: kas-print-draw 0.7s var(--kas-ease-out) forwards;
}
.kas-uv-stage.is-curing .kas-print-lines line:nth-child(1) { animation-delay: 0.55s; }
.kas-uv-stage.is-curing .kas-print-lines line:nth-child(2) { animation-delay: 0.7s; }
.kas-uv-stage.is-curing .kas-print-lines line:nth-child(3) { animation-delay: 0.85s; }
@keyframes kas-print-draw {
  to { stroke-dashoffset: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .kas-uv-stage__beam { display: none; }
  .kas-uv-stage .kas-print-plate { opacity: 1; filter: none; }
  .kas-uv-stage .kas-print-lines line { stroke-dashoffset: 0; }
}

/* Product card UV print reveal on hover */
body.kasaora-theme ul.products li.product {
  --kas-print: 0;
}
body.kasaora-theme ul.products li.product .kas-card-uv {
  position: absolute;
  inset: 1rem 1rem auto;
  aspect-ratio: 1;
  border-radius: var(--kas-radius-sm);
  pointer-events: none;
  z-index: 3;
  overflow: hidden;
}
body.kasaora-theme ul.products li.product .kas-card-uv__scan {
  position: absolute;
  left: 0;
  right: 0;
  top: -20%;
  height: 28%;
  background: linear-gradient(to bottom,
    transparent,
    color-mix(in oklch, var(--kas-uv) 35%, transparent),
    transparent);
  opacity: 0;
  transform: translateY(0);
}
body.kasaora-theme ul.products li.product:hover .kas-card-uv__scan,
body.kasaora-theme ul.products li.product:focus-within .kas-card-uv__scan {
  animation: kas-card-scan 1.1s var(--kas-ease-out);
}
@keyframes kas-card-scan {
  0% { opacity: 0; top: -10%; }
  30% { opacity: 1; }
  100% { opacity: 0; top: 85%; }
}
body.kasaora-theme ul.products li.product .kas-card-uv__plate {
  position: absolute;
  left: 50%;
  top: 38%;
  width: 36%;
  height: 18%;
  transform: translateX(-50%);
  border-radius: 6px;
  background: rgba(255, 253, 249, 0.92);
  box-shadow: 0 0 0 0 color-mix(in oklch, var(--kas-uv) 0%, transparent);
  opacity: 0;
  transition: opacity 0.45s var(--kas-ease-out), box-shadow 0.45s var(--kas-ease-out);
}
body.kasaora-theme ul.products li.product:hover .kas-card-uv__plate,
body.kasaora-theme ul.products li.product:focus-within .kas-card-uv__plate {
  opacity: 1;
  box-shadow: 0 0 24px 2px color-mix(in oklch, var(--kas-uv) 45%, transparent);
  transition-delay: 0.25s;
}
@media (prefers-reduced-motion: reduce) {
  body.kasaora-theme ul.products li.product .kas-card-uv { display: none; }
}

/* ---- PDP artwork note -------------------------------------------------- */
.kas-artwork-note {
  margin: 1.75rem 0 0;
  padding: 1.15rem 1.25rem;
  border-radius: var(--kas-radius);
  border: 1px dashed color-mix(in oklch, var(--kas-mint) 40%, transparent);
  background:
    linear-gradient(135deg, color-mix(in oklch, var(--kas-uv) 8%, transparent), transparent 55%),
    var(--kas-bg-elev);
}
.kas-artwork-note__label {
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  font-family: var(--kas-mono);
  font-size: 0.7rem;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--kas-mint);
  margin: 0 0 0.5rem;
  font-weight: 500;
}
.kas-artwork-note__label::before {
  content: "";
  width: 0.45rem;
  height: 0.45rem;
  border-radius: 50%;
  background: var(--kas-uv);
  box-shadow: 0 0 10px var(--kas-uv);
}
.kas-artwork-note p {
  margin: 0;
  font-size: 0.92rem;
  color: var(--kas-ink-soft);
  max-width: none;
  line-height: 1.55;
}
.kas-artwork-note strong { color: var(--kas-ink); font-weight: 600; }

/* ---- Sticky ATC refinement (375) --------------------------------------- */
.kas-sticky-atc {
  display: none;
}
@media (max-width: 767px) {
  .kas-sticky-atc {
    display: grid;
    grid-template-columns: auto 1fr;
    align-items: center;
    gap: 0.65rem 0.85rem;
    position: fixed;
    left: 0.65rem;
    right: 0.65rem;
    bottom: calc(0.65rem + env(safe-area-inset-bottom));
    z-index: 90;
    padding: 0.7rem 0.75rem 0.7rem 1rem;
    background: color-mix(in oklch, var(--kas-bg-elev) 94%, transparent);
    backdrop-filter: blur(16px) saturate(1.2);
    border: 1px solid var(--kas-line);
    border-radius: 1.25rem;
    box-shadow: 0 16px 40px -18px rgba(26, 23, 20, 0.4);
    max-width: calc(100vw - 1.3rem);
  }
  .kas-sticky-atc__meta {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
  }
  .kas-sticky-atc__name {
    font-size: 0.7rem;
    font-family: var(--kas-mono);
    letter-spacing: 0.06em;
    text-transform: uppercase;
    color: var(--kas-ink-soft);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 42vw;
  }
  .kas-sticky-atc__price {
    font-weight: 700;
    font-feature-settings: "tnum" 1;
    color: var(--kas-accent);
    font-size: 1rem;
  }
  .kas-sticky-atc .kas-btn {
    grid-column: 2;
    grid-row: 1 / span 2;
    justify-self: end;
    min-height: 44px;
    padding-inline: 1.1rem;
    white-space: nowrap;
  }
  body.kasaora-product { padding-bottom: 6.5rem; }
}

/* ---- Mobile 375 craft -------------------------------------------------- */
@media (max-width: 400px) {
  body.kasaora-theme .wp-site-blocks {
    padding-inline: 1.1rem;
    overflow-x: clip;
  }
  body.kasaora-theme header.wp-block-template-part {
    margin-inline: -1.1rem;
    padding-inline: 1.1rem;
  }
  .kas-hero {
    margin-inline: 0;
    padding: 1.75rem 1.15rem 2rem;
    border-radius: 1.25rem;
  }
  .kas-hero .kas-display {
    font-size: clamp(2.35rem, 11vw, 2.85rem);
    letter-spacing: -0.04em;
  }
  .kas-hero__visual svg,
  .kas-uv-stage { width: min(46vw, 160px); }
  .kas-hero__cta { gap: 0.55rem; }
  .kas-hero__cta .kas-btn { flex: 1 1 auto; min-width: 0; }
  .kas-marquee {
    margin-inline: -1.1rem;
  }
  body.kasaora-theme ul.products {
    grid-template-columns: 1fr !important;
    gap: 1rem !important;
  }
  body.kasaora-theme ul.products li.product {
    display: grid;
    grid-template-columns: 38% 1fr;
    gap: 0.75rem 1rem;
    align-items: center;
    padding: 0.75rem;
  }
  body.kasaora-theme ul.products li.product a.woocommerce-loop-product__link {
    display: contents;
  }
  body.kasaora-theme ul.products li.product img,
  body.kasaora-theme ul.products li.product .kas-product-media {
    grid-column: 1;
    grid-row: 1 / span 3;
    margin: 0;
    aspect-ratio: 1;
    width: 100%;
  }
  body.kasaora-theme ul.products li.product .kas-card-uv {
    inset: 0.75rem auto auto 0.75rem;
    width: 38%;
    aspect-ratio: 1;
  }
  body.kasaora-theme ul.products li.product .woocommerce-loop-product__title {
    grid-column: 2;
    font-size: 1.05rem !important;
    margin: 0 !important;
  }
  body.kasaora-theme ul.products li.product .price {
    grid-column: 2;
    margin: 0.15rem 0 0.35rem;
  }
  body.kasaora-theme ul.products li.product .button {
    grid-column: 2;
    width: auto;
    justify-self: start;
    padding: 0.65rem 1rem;
    font-size: 0.8rem;
  }
  .kas-features__grid,
  .kas-process {
    gap: 0.75rem;
  }
  .kas-cta-band {
    padding: 1.75rem 1.25rem;
  }
  .kas-nav { display: none !important; }
  .kas-header-actions { gap: 0.5rem !important; }
}

/* Shop horizontal snap on mid-mobile (optional alternate) */
@media (min-width: 401px) and (max-width: 640px) {
  body.kasaora-shop ul.products,
  body.kasaora-home ul.products {
    display: flex !important;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding-inline: var(--kas-margin);
    gap: 1rem !important;
    padding-bottom: 0.5rem !important;
    -webkit-overflow-scrolling: touch;
    grid-template-columns: none !important;
  }
  body.kasaora-shop ul.products li.product,
  body.kasaora-home ul.products li.product {
    flex: 0 0 min(78vw, 280px);
    scroll-snap-align: start;
    width: min(78vw, 280px) !important;
  }
}

/* ---- Footer ------------------------------------------------------------ */
.kas-footer {
  width: 100%;
  max-width: var(--kas-max);
  margin-inline: auto;
}
.kas-footer__grid {
  display: grid !important;
  grid-template-columns: 1.4fr 1fr 1fr 1fr;
  gap: clamp(1.5rem, 3vw, 2.5rem);
  padding-bottom: 2rem;
}
.kas-footer__brand .wp-block-site-title a {
  font-family: var(--kas-display-font);
  font-size: 1.75rem;
  font-weight: 600;
  letter-spacing: -0.03em;
  text-decoration: none !important;
}
.kas-footer__tag {
  color: var(--kas-ink-soft);
  font-size: 0.92rem;
  max-width: 22rem;
  margin-top: 0.75rem !important;
  line-height: 1.55;
}
.kas-footer__label {
  font-family: var(--kas-mono) !important;
  font-size: 0.7rem !important;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  color: var(--kas-mint) !important;
  margin: 0 0 0.75rem !important;
  font-weight: 500 !important;
}
.kas-footer__col p {
  font-size: 0.9rem;
  color: var(--kas-ink-soft);
  line-height: 1.7;
  max-width: none;
}
.kas-footer__col a {
  text-decoration: none !important;
  background: linear-gradient(currentColor 0 0) 0 100% / 0 1px no-repeat;
  transition: background-size var(--kas-dur-3) var(--kas-ease-out), color var(--kas-dur-2) var(--kas-ease);
}
.kas-footer__col a:hover {
  background-size: 100% 1px;
  color: var(--kas-accent);
}
.kas-footer__bar {
  padding-top: 1.25rem;
  border-top: 1px solid var(--kas-line);
  width: 100%;
}
.kas-footer__copy {
  font-family: var(--kas-mono);
  font-size: 0.7rem !important;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: var(--kas-ink-soft) !important;
  margin: 0 !important;
}
@media (max-width: 860px) {
  .kas-footer__grid { grid-template-columns: 1fr 1fr; }
  .kas-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 480px) {
  .kas-footer__grid { grid-template-columns: 1fr; }
}

body.kasaora-theme footer.wp-block-template-part {
  margin-inline: calc(-1 * var(--kas-margin-asymm-l)) calc(-1 * var(--kas-margin-asymm-r));
  padding-inline: var(--kas-margin-asymm-l) var(--kas-margin-asymm-r);
  padding-block: var(--kas-space-6) var(--kas-space-5);
}

/* ---- 404 --------------------------------------------------------------- */
.kas-404 {
  padding-block: var(--kas-section) !important;
  text-align: left;
}
.kas-404 .kas-display {
  margin-bottom: 1rem;
}
.kas-404 p {
  color: var(--kas-ink-soft);
  font-size: clamp(1.05rem, 1.5vw, 1.2rem);
  margin-bottom: 1.75rem;
}
.kas-404 .wp-block-buttons {
  gap: 0.75rem;
}

/* Hierarchy: larger display contrast */
body.kasaora-theme h1.kas-display,
.kas-hero .kas-display {
  font-optical-sizing: auto;
  font-variation-settings: "opsz" 72;
}

/* Color: richer UV accent usage in small doses */
.kas-eyebrow::before {
  background: linear-gradient(90deg, var(--kas-mint), var(--kas-uv));
}

/* Prevent horizontal overflow globally */
body.kasaora-theme {
  overflow-x: clip;
}


/* Nav: denser, quieter utility feel — hide accidental Home if present */
body.kasaora-theme .kas-nav .wp-block-navigation-item a {
  font-size: 0.85rem;
  opacity: 0.75;
}
body.kasaora-theme .kas-header-actions .wc-block-mini-cart {
  margin-left: 0.15rem;
}

.kas-hero .kas-display {
  animation: kas-hero-title-in 1s var(--kas-ease-out) both;
}
@keyframes kas-hero-title-in {
  from { opacity: 0; transform: translateY(18px); filter: blur(4px); }
  to { opacity: 1; transform: none; filter: none; }
}
@media (prefers-reduced-motion: reduce) {
  .kas-hero .kas-display { animation: none; }
}

/* ---- v1.3.1 PDP block-template fixes ----------------------------------- */
body.single-product h1.wp-block-post-title,
body.kasaora-product h1.wp-block-post-title,
body.single-product .wp-block-post-title {
  font-size: clamp(2rem, 1.4rem + 2.2vw, 3.25rem) !important;
  line-height: 1.05 !important;
  letter-spacing: -0.03em !important;
  max-width: 18ch;
  writing-mode: horizontal-tb !important;
  text-orientation: mixed !important;
  word-break: normal !important;
  overflow-wrap: normal !important;
  white-space: normal !important;
  margin-top: 0 !important;
}

body.single-product .wp-block-columns {
  gap: clamp(1.5rem, 4vw, 3.5rem) !important;
  align-items: start !important;
  max-width: var(--kas-max);
  margin-inline: auto;
}

body.single-product .wp-block-woocommerce-product-image-gallery,
body.single-product .woocommerce-product-gallery {
  border-radius: var(--kas-radius);
  overflow: hidden;
  background: var(--kas-bg-elev);
  border: 1px solid var(--kas-line);
  position: sticky;
  top: 5.5rem;
}

body.single-product .wp-block-add-to-cart-form,
body.single-product .wp-block-woocommerce-product-price,
body.single-product .wp-block-post-excerpt {
  margin-block: 0.75rem;
}

body.single-product .wp-block-woocommerce-product-price {
  font-size: 1.35rem;
  font-weight: 600;
  color: var(--kas-accent);
  font-feature-settings: "tnum" 1;
}

/* Don't force classic div.product grid onto block column layouts */
body.kasaora-product div.product:has(.wp-block-columns),
body.single-product div.product:has(.wp-block-columns) {
  display: block !important;
  grid-template-columns: unset !important;
}

@media (max-width: 781px) {
  body.single-product .woocommerce-product-gallery {
    position: static;
  }
  body.single-product h1.wp-block-post-title {
    font-size: clamp(1.85rem, 8vw, 2.4rem) !important;
    max-width: none;
  }
}

/* === 1.4.0 product stage placeholders (silhouette, not fake photos) === */
.kasaora-theme ul.products li.product .woocommerce-loop-product__link img,
.kasaora-theme.single-product .woocommerce-product-gallery__image img {
  background:
    radial-gradient(ellipse 70% 40% at 50% 78%, rgba(255,255,255,.55), transparent 70%),
    linear-gradient(165deg, #f6f1ea 0%, #ebe3d8 100%);
  border-radius: 18px;
  object-fit: contain;
}
.kasaora-theme ul.products li.product {
  position: relative;
}
.kasaora-theme ul.products li.product::after {
  content: "Silhouette stage";
  position: absolute;
  top: 12px;
  left: 12px;
  z-index: 2;
  font-size: 0.65rem;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #5c534a;
  background: rgba(246,241,234,.88);
  border: 1px solid rgba(26,23,20,.08);
  padding: 0.25rem 0.5rem;
  border-radius: 999px;
  pointer-events: none;
  opacity: 0.85;
}
.kasaora-theme .kas-artwork-note {
  margin-top: 1rem;
  padding: 1rem 1.15rem;
  border-left: 3px solid #c45c26;
  background: rgba(196,92,38,.06);
  border-radius: 0 12px 12px 0;
}
.kasaora-theme .kas-artwork-note__label {
  margin: 0 0 0.35rem;
  font-size: 0.7rem;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #c45c26;
  font-weight: 600;
}
.kasaora-theme .kas-artwork-note p { margin: 0; font-size: 0.92rem; line-height: 1.5; color: #3d362f; }
