/* ============================================================
   SHIZU UI Kit — local stylesheet
   Extends colors_and_type.css with component-level rules
   needed by the click-through prototype.
   ============================================================ */

/* Reset — kill browser default body margin (was showing as a strip above the sticky header) */
* { box-sizing: border-box; }
html, body { margin: 0; padding: 0; }
/* Global guard: never allow horizontal scroll on any page/viewport.
   overflow-x: clip (not hidden) prevents a horizontal scrollbar without
   creating a scroll container that would break position: sticky. */
html, body { max-width: 100%; overflow-x: clip; }
img, svg, video, canvas { max-width: 100%; }

/* Container & sections */
.container { max-width: 1200px; margin: 0 auto; padding: 0 24px; }
@media (max-width: 430px) {
  .container { padding: 0 16px; }
}
@media (max-width: 390px) {
  .container { padding: 0 14px; }
}
.section { padding: 80px 0; }
@media (max-width: 768px) {
  .section { padding: 56px 0; }
}
@media (max-width: 430px) {
  .section { padding: 40px 0; }
}

/* ============================================================
   THEMING — Day (default) vs Night
   Adds a semantic surface layer over the brand tokens so the
   header toggle can re-skin the whole page. The teal / gold
   brand colors stay constant; only neutrals + surfaces swap.
   ============================================================ */
:root {
  --bg:           var(--white);
  --bg-elevated:  var(--pure-white);
  --surface:      var(--pure-white);
  --surface-2:    var(--gray-100);
  --surface-soft: var(--menthol);
  --fg:           var(--charcoal);
  --fg-muted:     var(--gray-600);
  --fg-dim:       var(--gray-400);
  --border:       var(--gray-200);
  --border-soft:  var(--gray-100);
  --header-bg:    var(--pure-white);
  --footer-bg:    var(--ink);
}

[data-theme="night"] {
  /* Night surfaces are sampled from the SAME navy-teal water ramp as the global
     shader (--gwa-base #07111F · --gwa-top #102134), so cards, panels and the
     page all belong to one body of water instead of a separate bluer navy.
     Each step is one elevation up that same ramp. */
  --bg:           #081521;          /* == water base family; page merges into the field */
  --bg-elevated:  #102134;          /* == --gwa-top: elevated sections sit at the water's own top tone */
  --surface:      #172B3D;          /* card surface — one step up the water ramp, faint teal lift */
  --surface-2:    #20384A;          /* hover / second elevation */
  --surface-soft: rgba(127,217,217,0.06);
  --fg:           #F1F5F4;
  --fg-muted:     #9AB1B0;
  --fg-dim:       #607A78;
  --border:       rgba(255,255,255,0.08);
  --border-soft:  rgba(255,255,255,0.04);
  --header-bg:    rgba(10,23,38,0.85);
  --footer-bg:    #050D17;          /* even deeper than --bg */
}

/* Smooth color transitions when the toggle is flipped. */
html, body, .header, .footer, .product-card, .benefit-card,
.cart-item, .cart-summary, .preorder-banner, .nika-note,
.trust-chip, .filter-btn, .qty-btn, .page-hero, .pd-trust {
  transition: background-color 0.4s var(--ease), color 0.4s var(--ease), border-color 0.4s var(--ease);
}

body { background: var(--bg); color: var(--fg); }

/* Header swap rules live in the main /* HEADER */ block below — kept together
   so the two-tier nav + theming are easy to read in one place. */
.nav-link { color: var(--fg); }

/* Day/night toggle pill (lives in nav-actions) */
.theme-toggle {
  display: inline-flex; align-items: center;
  background: var(--surface-2);
  border: 1px solid var(--border);
  border-radius: 999px;
  padding: 3px;
  cursor: pointer;
  font-family: inherit;
}
[data-theme="day"] .theme-toggle { background: var(--gray-100); border-color: var(--gray-200); }
.theme-toggle .opt {
  background: none; border: none;
  width: 26px; height: 26px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 11px;
  color: var(--fg-dim);
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
}
[data-theme="day"] .theme-toggle .opt.day,
[data-theme="night"] .theme-toggle .opt.night {
  background: var(--bg-elevated);
  color: var(--teal-accent);
  box-shadow: 0 1px 4px rgba(0,0,0,0.12);
}
[data-theme="day"] .theme-toggle .opt.day { color: var(--gold); }

/* Page hero swap */
[data-theme="night"] .page-hero { background: var(--bg-elevated); }
[data-theme="night"] .page-hero h1 { color: var(--teal-accent); }
[data-theme="night"] .page-hero p { color: var(--fg-muted); }

/* Statement strip swap */
[data-theme="night"] .statement-strip {
  background: var(--bg-elevated);
}
[data-theme="night"] .statement-quote { color: var(--fg); }

[data-theme="night"] .statement-byline { color: var(--teal-accent); }

/* Product / benefit / cart cards swap */
[data-theme="night"] .product-card {
  background: var(--surface);
  box-shadow: 0 4px 24px rgba(0,0,0,0.35);
  border: 1px solid var(--border);
}
[data-theme="night"] .benefit-card {
  background: transparent;
  box-shadow: none;
  border: 0;
  border-left: 1px solid var(--border);
}
[data-theme="night"] .benefit-card:first-child { border-left: 0; }
[data-theme="night"] .benefits-grid { border-top-color: var(--border); }
[data-theme="night"] .product-card-name { color: var(--fg); }
[data-theme="night"] .product-card-category { color: var(--fg-dim); }
[data-theme="night"] .product-card-feature { color: var(--fg-muted); }
[data-theme="night"] .benefit-card h3 { color: var(--teal-accent); }
[data-theme="night"] .benefit-card p { color: var(--fg-muted); }
[data-theme="night"] .benefit-icon {
  background: rgba(127,217,217,0.12);
  color: var(--teal-accent);
}
[data-theme="night"] .benefit-stat { border-top-color: var(--border); }
[data-theme="night"] .section-title { color: var(--teal-accent); }
[data-theme="night"] .filter-bar { border-bottom-color: var(--border); }
[data-theme="night"] .filter-btn {
  background: var(--surface);
  border-color: var(--border);
  color: var(--fg-muted);
}

[data-theme="night"] .filter-btn.active { background: var(--teal-accent); color: var(--bg-elevated); border-color: var(--teal-accent); }

/* Cart night theme */
[data-theme="night"] .cart-item {
  background: var(--surface);
  border-color: var(--border);
}
[data-theme="night"] .cart-item-info h4 { color: var(--fg); }
[data-theme="night"] .cart-item-info p { color: var(--fg-muted); }
[data-theme="night"] .qty-btn {
  background: var(--surface-2);
  border-color: var(--border);
  color: var(--fg);
}
[data-theme="night"] .cart-summary { background: var(--bg-elevated); }
[data-theme="night"] .cart-summary h3 { color: var(--teal-accent); }
[data-theme="night"] .summary-row { color: var(--fg-muted); }
[data-theme="night"] .summary-row.total { color: var(--teal-accent); border-top-color: var(--border); }
[data-theme="night"] .preorder-banner {
  background: linear-gradient(135deg, rgba(127,217,217,0.08) 0%, rgba(127,217,217,0.04) 100%);
  border-color: var(--border);
}
[data-theme="night"] .preorder-body h4 { color: var(--teal-accent); }
[data-theme="night"] .preorder-body p { color: var(--fg-muted); }
[data-theme="night"] .preorder-pill {
  background: rgba(127,217,217,0.12);
  color: var(--teal-accent);
}
[data-theme="night"] .nika-note {
  background: var(--surface);
  border-color: var(--border);
  border-left-color: var(--gold);
}
[data-theme="night"] .nika-note-body p { color: var(--fg); }
[data-theme="night"] .nika-note-body, [data-theme="night"] .nika-signature { color: var(--fg-muted); }
[data-theme="night"] .trust-chip {
  background: var(--surface);
  border-color: var(--border);
}
[data-theme="night"] .trust-chip-title { color: var(--fg); }
[data-theme="night"] .trust-chip-sub { color: var(--fg-muted); }
[data-theme="night"] .trust-chip i { color: var(--teal-accent); }

/* Product detail night */
[data-theme="night"] .pd-title { color: var(--fg); }
[data-theme="night"] .pd-tagline { color: var(--fg-muted); }
[data-theme="night"] .pd-highlights li { color: var(--fg); }
[data-theme="night"] .pd-trust { background: var(--bg-elevated); }
[data-theme="night"] .pd-trust > div { color: var(--teal-accent); }
[data-theme="night"] .breadcrumb button { color: var(--fg-muted); }
[data-theme="night"] .breadcrumb span { color: var(--teal-accent); }

/* Footer (already dark — night just deepens it) */

/* Form inputs in BoG don't change (BoG checkout has its own brand chrome) */

/* ============================================================
   END THEMING
   ============================================================ */

/* HEADER */
.header-wrap {
  position: sticky; top: 0; z-index: 100;
}

/* Utility bar — top tier */
.util-bar {
  background: var(--teal);
  color: var(--pure-white);
  font-size: 11px;
  letter-spacing: 0.4px;
  overflow: hidden;
  max-height: 80px;
  transition: max-height 0.4s cubic-bezier(0.35, 0, 0.25, 1), opacity 0.3s ease;
  opacity: 1;
}
.util-bar.hide {
  max-height: 0;
  opacity: 0;
}
@media (max-width: 600px) {
  .util-bar { min-height: auto; }
}
.util-inner {
  display: flex; justify-content: space-between; align-items: center;
  padding: 7px 24px;
  flex-wrap: nowrap;
}
@media (max-width: 600px) {
  .util-inner { flex-direction: row; flex-wrap: wrap; gap: 6px; padding: 6px 12px; justify-content: center; }
}
.util-left { display: flex; gap: 18px; align-items: center; flex-wrap: wrap; white-space: nowrap; }
@media (max-width: 600px) {
  .util-left { gap: 8px; justify-content: center; width: 100%; }
}
.util-item { display: inline-flex; align-items: center; gap: 6px; white-space: nowrap; font-size: 11px; }
@media (max-width: 600px) {
  .util-item { font-size: 9px; gap: 3px; }
}
.util-item i { color: var(--teal-accent); font-size: 10px; }
.util-link {
  display: inline-flex; align-items: center; gap: 6px;
  color: var(--teal-accent); text-decoration: none; font-weight: 600;
}
.util-link i { font-size: 12px; }
.util-link:hover { color: var(--pure-white); }
.util-pill {
  background: rgba(127,217,217,0.15);
  color: var(--teal-accent);
  padding: 2px 8px;
  border-radius: 100px;
  font-size: 9px;
  letter-spacing: 1.5px;
  font-weight: 600;
  text-transform: uppercase;
}

/* Main nav — bottom tier */
.header {
  background: var(--header-bg);
  border-bottom: 1px solid var(--border);
  box-shadow: var(--shadow-sm);
}
.nav-container {
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 18px;
  padding-top: 12px; padding-bottom: 12px;
}
@media (max-width: 768px) {
  .nav-container { gap: 12px; padding: 10px 16px; }
}
@media (max-width: 430px) {
  .nav-container { gap: 8px; padding: 10px 14px; }
}
.logo-link {
  display: flex; align-items: center; gap: 9px;
  cursor: pointer; background: none; border: none; padding: 0;
  font: inherit;
}
.logo-img { width: 30px; height: 30px; color: var(--fg); }
@media (max-width: 430px) {
  .logo-img { width: 26px; height: 26px; }
}
/* Classic teal wordmark — the brand colour */
.logo-text { font-size: 17px; font-weight: 700; letter-spacing: 3.5px; color: var(--teal); }
@media (max-width: 768px) {
  .logo-text { font-size: 15px; letter-spacing: 2.5px; }
}
@media (max-width: 430px) {
  .logo-text { font-size: 13px; letter-spacing: 2px; }
}
/* (logo gold water-droplet dot removed) */

.nav-menu { display: flex; align-items: center; gap: 20px; justify-content: center; flex-wrap: nowrap; }
.nav-link {
  font-size: 12.5px; font-weight: 500; color: var(--fg);
  background: none; border: none; cursor: pointer; font-family: inherit;
  padding: 6px 0;
  position: relative;
  transition: color 0.2s;
  white-space: nowrap;
}
@media (max-width: 430px) {
  .nav-link { font-size: 11px; padding: 4px 0; }
}
.nav-link:hover { color: var(--teal); }
.nav-link.active { color: var(--teal); }
.nav-link.active::after {
  content: '';
  position: absolute; bottom: 0; left: 50%;
  transform: translateX(-50%);
  width: 18px; height: 2px;
  background: var(--gold);
  border-radius: 2px;
}

.nav-actions { display: flex; align-items: center; gap: 6px; flex-shrink: 0; }
.lang-toggle {
  background: var(--menthol);
  color: var(--teal);
  border: none;
  padding: 5px 10px;
  border-radius: 100px;
  font-size: 10.5px;
  font-weight: 600;
  cursor: pointer;
  letter-spacing: 0.8px;
  font-family: inherit;
  transition: all 0.2s;
  white-space: nowrap;
  line-height: 1;
  display: inline-flex; align-items: center; gap: 4px;
  min-height: 32px;
}
@media (max-width: 768px) {
  .lang-toggle { padding: 6px 10px; font-size: 10px; min-height: 36px; }
}
@media (max-width: 430px) {
  .lang-toggle { padding: 6px 8px; font-size: 9px; }
}
.lang-toggle i { font-size: 10px; opacity: 0.7; }
.lang-toggle:hover { background: var(--teal); color: var(--pure-white); }

/* Gold cart CTA replaces the simple icon button */
.cart-cta {
  display: inline-flex; align-items: center; gap: 7px;
  background: var(--gold);
  color: #3D2914;
  border: none;
  padding: 7px 12px;
  border-radius: 100px;
  font-size: 11.5px;
  font-weight: 600;
  letter-spacing: 0.3px;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s;
  white-space: nowrap;
  line-height: 1;
  min-height: 36px;
}
@media (max-width: 768px) {
  .cart-cta { padding: 8px 10px; font-size: 11px; min-height: 40px; }
}
@media (max-width: 430px) {
  .cart-cta { padding: 7px 9px; font-size: 10px; }
}
.cart-cta:hover { background: var(--gold-hover); color: var(--pure-white); transform: translateY(-1px); box-shadow: var(--shadow-gold); }
.cart-cta:hover .cart-cta-count { background: var(--pure-white); color: var(--gold-hover); }
.cart-cta i { font-size: 11px; }
.cart-cta-count {
  background: #3D2914;
  color: var(--gold);
  width: 17px; height: 17px;
  border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 10px; font-weight: 700;
  transition: all 0.2s;
}

/* Night-mode overrides for header */
[data-theme="night"] .header-wrap { /* container */ }
[data-theme="night"] .util-bar { background: #050D17; }
[data-theme="night"] .util-item, [data-theme="night"] .util-link { color: var(--teal-accent); }

[data-theme="night"] .util-link:hover { color: var(--pure-white); }

[data-theme="night"] .header {
  background: rgba(10,23,38,0.92);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  border-bottom: 1px solid rgba(255,255,255,0.08);
  box-shadow: none;
}
[data-theme="night"] .logo-text { color: var(--teal-accent); }
/* .logo-img ripple arcs follow --fg (light at night); the droplet stays aqua — no filter needed */
[data-theme="night"] .nav-link { color: #E2E8E7; }

[data-theme="night"] .lang-toggle { background: rgba(127,217,217,0.12); color: var(--teal-accent); }
[data-theme="night"] .lang-toggle:hover { background: var(--teal-accent); color: var(--navy); }
[data-theme="night"] .theme-toggle {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.1);
}
[data-theme="night"] .theme-toggle .opt { color: rgba(255,255,255,0.45); }
[data-theme="night"] .theme-toggle .opt.night {
  background: var(--navy);
  color: var(--teal-accent);
  box-shadow: none;
}

/* HERO */
.hero {
  /* A floating premium glass slab — NOT a full-bleed rectangle. It lifts off
     the page on all four sides so the global water shader flows around it, its
     corners are fully rounded, and its photographic surface is feathered into
     that field (mask in water.css) so every edge dissolves rather than cuts.
     What remains here is the glass itself: a protective base wash + rim light. */
  color: var(--pure-white);
  padding: 92px 0 104px;
  position: relative;
  isolation: isolate;
  margin: clamp(10px, 1.3vw, 18px) clamp(12px, 1.7vw, 26px) 0;
  border-radius: clamp(30px, 3.2vw, 48px);
  overflow: hidden;
  /* Protective base wash BEHIND the photo: a soft deep-teal glow anchored under
     the headline (keeps white type crisp) that fades to transparent toward the
     corners — so where the photo feathers out, the water shows, not a hard teal
     block. */
  background:
    radial-gradient(140% 125% at 24% 60%,
      rgba(7,38,37,0.94) 0%,
      rgba(10,54,53,0.64) 40%,
      rgba(12,66,65,0.20) 66%,
      transparent 82%);
  /* Glass physics: floats on the water (layered drop shadow), a lit top rim +
     hairline aqua frame, and a faint inner aqua reflection rising from the base
     like a waterline glancing off the underside of the slab. */
  box-shadow:
    0 46px 92px -46px rgba(5,20,28,0.58),
    0 10px 34px -24px rgba(5,20,28,0.50),
    inset 0 1px 0 rgba(206,242,242,0.22),
    inset 0 0 0 1px rgba(176,228,228,0.15),
    inset 0 -72px 104px -72px rgba(127,217,217,0.28);
}
@media (max-width: 768px) {
  .hero { padding: 64px 0 64px; border-radius: clamp(26px, 5vw, 36px); }
}
@media (max-width: 430px) {
  .hero { padding: 48px 0 48px; margin: 8px 8px 0; }
}
/* Full-bleed lifestyle photo behind the hero — tells visitors at a glance
   this is a luxury smart-bathroom brand. */
.hero-photo {
  position: absolute; inset: 0; z-index: 0;
  background: url("assets/hero.webp") center / cover no-repeat;
}
/* Brand duotone wash: deep teal on the left (keeps headline crisp),
   clearing toward the right so the warm bathroom reads behind the panel. */
.hero-photo-overlay {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    linear-gradient(102deg,
      rgba(7,38,37,0.95) 0%,
      rgba(11,64,63,0.88) 32%,
      rgba(13,76,75,0.62) 56%,
      rgba(13,76,75,0.34) 78%,
      rgba(13,76,75,0.20) 100%),
    linear-gradient(to top, rgba(6,32,31,0.55) 0%, transparent 34%);
}
.hero-bg-pattern {
  position: absolute; inset: 0; z-index: 0; opacity: 0.5;
  background-image: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.08) 0%, transparent 50%),
                    radial-gradient(circle at 80% 70%, rgba(127,217,217,0.15) 0%, transparent 50%);
}
.hero-content {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 56px;
  align-items: center;
}
@media (max-width: 920px) {
  .hero-content { grid-template-columns: 1fr; text-align: center; gap: 36px; }
}
@media (max-width: 768px) {
  .hero-panel-scene { display: grid; }
}
@media (max-width: 430px) {
  .hero-content { gap: 20px; }
  .hero-panel-scene { display: grid; }
}
.hero-eyebrow {
  font-size: clamp(10px, 0.55rem + 0.2vw, 12px);
  letter-spacing: 0.34em;
  font-weight: 600;
  color: var(--teal-accent);
  margin-bottom: 20px;
  text-transform: uppercase;
}

/* ─────────────────────────────────────────────────────────────────────
   HERO TITLE — bilingual display system (EN: Satoshi · KA: Noto Sans Georgian)
   The two scripts have very different vertical metrics and line counts, so a
   single rule made the hero jump on language toggle. Fix:
     • per-script fluid clamp() sizes + line-height + tracking
     • each language tuned to break to TWO lines (forced via <br> in copy)
     • a reserved min-height = the taller script's footprint, so the block
       occupies a CONSTANT height in both languages → zero layout shift.
   ───────────────────────────────────────────────────────────────────── */
.hero-title {
  font-family: var(--font-display);
  font-weight: 700;
  font-size: clamp(2.3rem, 1.15rem + 3.9vw, 3.8rem);   /* ~37 → 60.8px */
  line-height: 1.04;
  letter-spacing: -0.025em;
  margin: 0 0 24px;
  color: var(--pure-white);
  max-width: 18ch;
  text-wrap: balance;
  overflow-wrap: break-word;
  /* Constant footprint across languages — the anti-shift anchor. */
  min-height: clamp(4.6rem, 3rem + 6.6vw, 8rem);
}
.hero-title em {
  font-style: normal;
  /* Futuristic accent: a soft cyan glow instead of a flat color block. */
  color: var(--teal-accent);
  text-shadow: 0 0 22px rgba(127, 217, 217, 0.35);
}

/* Georgian: smaller cap-equivalent + looser leading + near-zero tracking so
   the taller Mkhedruli glyphs fill the same box and stay on two lines. */
:lang(ka) .hero-title {
  font-family: var(--font-display-ka);
  font-weight: 700;
  font-size: clamp(1.95rem, 1.05rem + 3.2vw, 3.3rem);
  line-height: 1.14;
  letter-spacing: -0.004em;
  max-width: 20ch;
}
:lang(ka) .hero-eyebrow { letter-spacing: 0.2em; font-weight: 500; }

.hero-sub {
  font-size: clamp(15px, 0.85rem + 0.35vw, 18px);
  font-weight: 300;
  line-height: 1.6;
  opacity: 0.9;
  max-width: 520px;
  margin: 0 0 32px;
  color: var(--pure-white);
  text-wrap: pretty;
}
/* Georgian body needs a touch more weight + leading to read at the same size. */
:lang(ka) .hero-sub { font-weight: 400; line-height: 1.72; max-width: 560px; }

@media (max-width: 920px) {
  .hero-title { max-width: 22ch; margin-inline: auto; min-height: clamp(4.4rem, 8vw + 2rem, 7rem); }
  :lang(ka) .hero-title { max-width: 24ch; }
  .hero-sub { margin-left: auto; margin-right: auto; }
}
@media (max-width: 430px) {
  .hero-title { font-size: clamp(1.8rem, 5.5vw, 2.8rem); min-height: clamp(3.4rem, 6vw + 1rem, 5rem); }
  .hero-eyebrow { font-size: 9px; margin-bottom: 14px; }
  .hero-sub { font-size: clamp(13px, 3.5vw, 15px); margin: 0 0 20px; }
  .hero-cta-row { gap: 8px; }
  .hero-meta-row { gap: 12px 16px; font-size: 10px; margin-top: 18px; }
}
.hero-cta-row { display: flex; gap: 12px; flex-wrap: wrap; }
@media (max-width: 920px) { .hero-cta-row { justify-content: center; } }
.hero-meta-row {
  display: flex; gap: 24px; margin-top: 28px;
  font-size: 12px; color: rgba(255,255,255,0.75);
  letter-spacing: 1px; text-transform: uppercase; font-weight: 500;
}
.hero-meta-row > div { display: inline-flex; align-items: center; gap: 7px; }
.hero-meta-row i { color: var(--teal-accent); font-size: 14px; }
@media (max-width: 920px) { .hero-meta-row { justify-content: center; flex-wrap: wrap; gap: 14px 24px; } }

/* Hero showcase card — the floating product preview on the right of the split hero */
/* Hero panel — premium floating display (template-matched: dark glass, glowing recess) */
.hero-panel-scene {
  display: grid; place-items: center;
  perspective: 1100px;
  min-height: 460px;
}
@media (max-width: 768px) {
  .hero-panel-scene { min-height: 380px; }
}
@media (max-width: 430px) {
  .hero-panel-scene { min-height: 320px; }
}
.hero-panel {
  position: relative;
  width: min(440px, 100%);
  padding: 30px 30px 28px;
  border-radius: 18px;
  transform-style: preserve-3d;
  will-change: transform;
  transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  background: linear-gradient(158deg, rgba(22,44,66,0.55), rgba(8,18,32,0.66));
  border: 1px solid rgba(255,255,255,0.10);
  backdrop-filter: blur(14px);
  -webkit-backdrop-filter: blur(14px);
  box-shadow: 0 34px 90px -34px rgba(0,0,0,0.85),
    inset 0 1px 0 rgba(255,255,255,0.08),
    0 0 64px -14px rgba(52,226,208,0.18);
  color: var(--pure-white);
}
@media (max-width: 430px) {
  .hero-panel { width: min(100%, calc(100% - 20px)); padding: 20px 20px 18px; margin: 0 10px; }
}
.hero-panel-shine {
  position: absolute; inset: 0; border-radius: inherit; pointer-events: none;
  mix-blend-mode: screen;
  background: radial-gradient(420px circle at var(--px,50%) var(--py,28%), rgba(255,255,255,0.14), rgba(255,255,255,0) 45%);
}
.hero-panel-content { position: relative; z-index: 2; text-align: center; }
.hero-panel-eyebrow { display: flex; align-items: center; justify-content: center; gap: 8px; font-size: 13px; letter-spacing: 4px; color: var(--teal-accent); font-weight: 600; }
.hero-panel-mark { width: 19px; height: 19px; flex: none; }

.hero-panel-screen {
  position: relative; isolation: isolate;
  width: 100%; display: flex; flex-direction: column; align-items: center;
  margin: 14px 0 6px; padding: 30px 20px 32px; border-radius: 16px;
}
.hero-panel-screen::after {
  content: ""; position: absolute; left: 50%; top: 44%;
  width: 240px; height: 124px; transform: translate(-50%, -50%);
  z-index: 0; pointer-events: none; filter: blur(10px);
  animation: heroPanelBreathe 6s ease-in-out infinite;
  background: radial-gradient(ellipse, rgba(52,226,208,0.40), rgba(52,226,208,0) 68%);
}
@keyframes heroPanelBreathe { 50% { opacity: 0.62; } }
.hero-panel-temp {
  position: relative; z-index: 1;
  font-size: clamp(46px, 9vw, 60px); font-weight: 300; line-height: 1;
  color: var(--teal-accent); letter-spacing: 1px;
  text-shadow: 0 0 22px rgba(52,226,208,0.5);
}
@media (max-width: 430px) {
  .hero-panel-temp { font-size: clamp(36px, 7vw, 48px); }
}
.hero-panel-temp span { font-size: 0.38em; vertical-align: super; color: var(--teal); margin-left: 2px; }
.hero-panel-icons { position: relative; z-index: 1; display: flex; justify-content: center; gap: 20px; margin-top: 18px; }
@media (max-width: 430px) {
  .hero-panel-icons { gap: 14px; margin-top: 12px; }
}
.hero-panel-icons svg {
  width: 25px; height: 25px; stroke: var(--teal-accent); stroke-width: 1.6; fill: none;
  opacity: 0.92; stroke-linecap: round; stroke-linejoin: round;
  filter: drop-shadow(0 0 5px rgba(52,226,208,0.45));
}
@media (max-width: 430px) {
  .hero-panel-icons svg { width: 20px; height: 20px; }
}
.hero-panel-tag { margin-top: 22px; font-size: 13px; letter-spacing: 0.3px; color: rgba(255,255,255,0.78); }
@media (max-width: 430px) {
  .hero-panel-tag { margin-top: 14px; font-size: 11px; }
}
.hero-panel-priceline { margin-top: 6px; font-size: 14px; font-weight: 500; }
@media (max-width: 430px) {
  .hero-panel-priceline { margin-top: 4px; font-size: 12px; }
}
.hero-panel-cta {
  display: inline-flex; align-items: center; gap: 8px; margin-top: 22px;
  padding: 12px 24px; border-radius: 11px;
  font-family: inherit; font-size: 14px; font-weight: 500; letter-spacing: 0.3px; cursor: pointer;
  background: linear-gradient(180deg, #15243b, #0c1626); color: #e9eff4;
  border: 1px solid rgba(201,169,110,0.45);
  transition: transform 0.3s cubic-bezier(.2,.8,.2,1), border-color 0.3s, box-shadow 0.3s;
  min-height: 40px;
}
@media (max-width: 430px) {
  .hero-panel-cta { margin-top: 14px; padding: 10px 18px; font-size: 12px; min-height: 36px; }
}
.hero-panel-cta:hover {
  transform: translateY(-2px); border-color: var(--gold);
  box-shadow: 0 12px 30px -12px rgba(0,0,0,0.7), 0 0 22px -6px rgba(52,226,208,0.4);
}
@media (prefers-reduced-motion: reduce) {
  .hero-panel { transform: none !important; }
  .hero-panel-screen::after { animation: none; }
}
/* Product photo sits in the top portion of the card; text lives below it on the
   card's own translucent surface, so the "Editor's pick" tag stays legible. */

/* Floating droplet decoration in the hero background (subtle, brand-rich) */

/* CONTACT SCREEN ─ online-first, showroom opening soon */
.contact-online-note {
  display: flex; align-items: center; gap: 12px;
  max-width: 760px; margin: 0 auto 44px;
  padding: 16px 22px; border-radius: 12px;
  background: var(--menthol); border: 1px solid rgba(13,76,75,0.08);
  color: var(--teal); font-size: 14px; line-height: 1.6;
}
.contact-online-note i { font-size: 18px; }
.contact-methods {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 18px;
  max-width: 760px; margin: 0 auto;
}
@media (max-width: 768px) {
  .contact-methods { grid-template-columns: 1fr; }
}
@media (max-width: 430px) {
  .contact-methods { gap: 14px; }
}
.contact-method {
  display: flex; flex-direction: column; align-items: flex-start;
  padding: 26px 26px 28px; border-radius: 14px;
  background: #fff; border: 1px solid var(--gray-200);
  box-shadow: var(--shadow-sm); text-decoration: none;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.25s var(--ease);
}
a.contact-method:hover { transform: translateY(-3px); box-shadow: var(--shadow-md); border-color: var(--teal-accent); }
.contact-method-icon {
  width: 48px; height: 48px; border-radius: 12px;
  display: flex; align-items: center; justify-content: center;
  background: var(--menthol); color: var(--teal); font-size: 19px;
  margin-bottom: 16px;
}
.contact-method-label {
  font-size: 11px; letter-spacing: 2.5px; text-transform: uppercase;
  font-weight: 600; color: var(--gray-400); margin-bottom: 8px;
}
.contact-method-value { font-size: 19px; font-weight: 600; color: var(--teal); letter-spacing: -0.01em; }
.contact-method-sub { font-size: 13px; color: var(--gray-600); line-height: 1.6; margin-top: 8px; max-width: 30ch; }
.contact-social { display: flex; gap: 10px; margin: 2px 0 2px; }
.contact-social a {
  width: 38px; height: 38px; border-radius: 10px;
  display: flex; align-items: center; justify-content: center;
  background: var(--menthol); color: var(--teal); font-size: 16px;
  transition: background 0.2s, color 0.2s, transform 0.2s;
}
.contact-social a:hover { background: var(--teal); color: #fff; transform: translateY(-2px); }
[data-theme="night"] .contact-online-note { background: var(--bg-elevated); border-color: var(--border); color: var(--fg); }
[data-theme="night"] .contact-method { background: var(--bg-elevated); border-color: var(--border); box-shadow: none; }
[data-theme="night"] .contact-method-value { color: var(--teal-accent); }
[data-theme="night"] .contact-method-sub { color: var(--fg-muted); }
[data-theme="night"] .contact-method-icon,
[data-theme="night"] .contact-social a { background: rgba(127,217,217,0.12); color: var(--teal-accent); }
[data-theme="night"] .contact-social a:hover { background: var(--teal-accent); color: var(--navy); }
@media (max-width: 720px) { .contact-methods { grid-template-columns: 1fr; } }

/* CONTACT FORM ─ callback request, matches luxury card styling */
.contact-form-wrap { max-width: 760px; margin: 0 auto 44px; }

/* Shader stage: WebGL water field frames the frosted-glass form card */
.cf-stage {
  position: relative;
  border-radius: 22px;
  padding: 14px;
  overflow: hidden;
  background-color: #e6f1ef;
  box-shadow: var(--shadow-md);
}
[data-theme="night"] .cf-stage { background-color: #082423; box-shadow: none; }
.cf-shader-wrap { position: absolute; inset: 0; pointer-events: none; overflow: hidden; border-radius: inherit; z-index: 0; }
.cf-shader { position: absolute; inset: 0; width: 100%; height: 100%; display: block; border-radius: inherit; }
.cf-stage .cf-card {
  position: relative;
  z-index: 1;
  background: rgba(255,255,255,0.78);
  -webkit-backdrop-filter: blur(16px) saturate(1.1);
  backdrop-filter: blur(16px) saturate(1.1);
  border: 1px solid rgba(255,255,255,0.55);
  box-shadow: 0 18px 50px -24px rgba(11,46,45,0.5);
}
[data-theme="night"] .cf-stage .cf-card {
  background: rgba(8,32,31,0.6);
  border-color: rgba(127,217,217,0.18);
}
.cf-card {
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 18px;
  padding: 36px 36px 32px;
  box-shadow: var(--shadow-md);
}
[data-theme="night"] .cf-card { background: var(--bg-elevated); border-color: var(--border); box-shadow: none; }
.cf-head { margin-bottom: 26px; }
.cf-title { font-size: 23px; font-weight: 700; color: var(--fg); letter-spacing: -0.3px; margin: 0 0 8px; }
[data-theme="night"] .cf-title { color: var(--teal-accent); }
.cf-sub { font-size: 14px; line-height: 1.65; color: var(--gray-600); margin: 0; max-width: 56ch; }
[data-theme="night"] .cf-sub { color: var(--fg-muted); }
.cf-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cf-field { display: flex; flex-direction: column; gap: 8px; min-width: 0; }
.cf-field-full { grid-column: 1 / -1; }
.cf-label {
  font-size: 11px; letter-spacing: 2px; text-transform: uppercase;
  font-weight: 600; color: var(--gray-400);
}
.cf-input {
  width: 100%; box-sizing: border-box;
  padding: 14px 16px;
  font-family: inherit; font-size: 15px; color: var(--fg);
  background: var(--bg);
  border: 1px solid var(--border);
  border-radius: 11px;
  transition: border-color 0.22s var(--ease), box-shadow 0.22s var(--ease), background 0.22s var(--ease);
}
.cf-input::placeholder { color: var(--gray-400); }
.cf-input:focus {
  outline: none;
  border-color: var(--teal-accent);
  background: var(--surface);
  box-shadow: 0 0 0 4px rgba(127,217,217,0.18);
}
[data-theme="night"] .cf-input { background: var(--bg); border-color: var(--border); }
[data-theme="night"] .cf-input:focus { background: var(--bg-elevated); }
.cf-textarea { resize: vertical; min-height: 110px; line-height: 1.6; }
.cf-foot { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 26px; }
.cf-submit { min-width: 180px; }
.cf-submit:disabled { opacity: 0.65; cursor: progress; }
.cf-msg { display: flex; align-items: center; gap: 8px; font-size: 14px; font-weight: 500; margin: 0; }
.cf-msg i { font-size: 16px; }
.cf-msg-ok { color: var(--teal); }
[data-theme="night"] .cf-msg-ok { color: var(--teal-accent); }
.cf-msg-err { color: #c0392b; }
[data-theme="night"] .cf-msg-err { color: #ff8a7a; }
@media (max-width: 560px) {
  .cf-card { padding: 26px 22px 24px; }
  .cf-grid { grid-template-columns: 1fr; gap: 16px; }
  .cf-foot { gap: 14px; }
  .cf-submit { width: 100%; }
}

/* BUTTONS */
.btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 13px 28px;
  border-radius: 8px;
  font-size: 14px;
  font-weight: 600;
  letter-spacing: 0.3px;
  border: none;
  cursor: pointer;
  font-family: inherit;
  transition: all 0.2s;
  text-decoration: none;
  min-height: 44px;
}
@media (max-width: 430px) {
  .btn { padding: 12px 20px; font-size: 13px; min-height: 40px; }
}
.btn-primary { background: var(--gold); color: var(--charcoal); }
.btn-primary:hover { background: var(--gold-hover); transform: translateY(-1px); box-shadow: var(--shadow-gold); }
.btn-ghost { background: transparent; color: var(--pure-white); border: 1.5px solid rgba(255,255,255,0.3); }
.btn-ghost:hover { background: rgba(255,255,255,0.1); border-color: rgba(255,255,255,0.5); }
.btn-outline { background: transparent; color: var(--teal); border: 1.5px solid var(--teal); }
.btn-outline:hover { background: var(--teal); color: var(--pure-white); }

/* NIGHT readability (Nika): dark-teal (--teal) text/controls that sit on
   transparent or dark (water) surfaces blend into the background and can't be
   read — lift them to the light aqua accent. Teal-on-light-chip cases
   (lang-toggle, product badges) and elements that already have night overrides
   (section titles, prices, logo wordmark) are intentionally left as-is. */
[data-theme="night"] .btn-outline { color: var(--teal-accent); border-color: color-mix(in oklab, var(--teal-accent) 55%, transparent); }
[data-theme="night"] .btn-outline:hover { background: var(--teal-accent); color: var(--navy); border-color: var(--teal-accent); }
[data-theme="night"] .nav-link:hover,
[data-theme="night"] .nav-link.active { color: var(--teal-accent); }
[data-theme="night"] .breadcrumb span,
[data-theme="night"] .breadcrumb button:hover { color: var(--teal-accent); }
[data-theme="night"] .filter-btn:hover { color: var(--teal-accent); border-color: color-mix(in oklab, var(--teal-accent) 45%, transparent); }

/* Section */
.section-label { font-size: 12px; letter-spacing: 4px; font-weight: 500; margin-bottom: 12px; text-transform: uppercase; }
.section-title { font-size: clamp(28px, 4vw, 40px); font-weight: 700; letter-spacing: -0.5px; color: var(--teal); margin: 0 0 48px; line-height: 1.2; }
@media (max-width: 430px) {
  .section-title { margin: 0 0 32px; font-size: clamp(22px, 5vw, 32px); }
}
.section-title.center { text-align: center; }

/* STATEMENT STRIP — full-width menthol with a single editorial sentence */
.statement-strip {
  background: var(--menthol);
  padding: 64px 0;
  position: relative;
  overflow: hidden;
}
.statement-strip .container { display: grid; grid-template-columns: 1fr auto; gap: 40px; align-items: center; }
@media (max-width: 820px) { .statement-strip .container { grid-template-columns: 1fr; } }
.statement-quote {
  font-size: clamp(22px, 2.6vw, 30px);
  font-weight: 500;
  color: var(--teal);
  letter-spacing: -0.4px;
  line-height: 1.3;
  text-wrap: pretty;
  margin: 0;
}
.statement-quote em { font-style: normal; font-weight: 600; }
.statement-byline {
  font-size: 11px; letter-spacing: 3px; font-weight: 600;
  color: var(--teal-light);
  text-transform: uppercase;
  white-space: nowrap;
}

/* BENEFITS — editorial, number-led columns split by hairline rules
   (no floating cards — quiet-luxury, intentional whitespace) */
.benefits-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 0;
  margin-top: 36px;
  border-top: 1px solid var(--gray-200);
}
.benefit-card {
  background: transparent;
  border: 0;
  border-left: 1px solid var(--gray-200);
  border-radius: 0;
  box-shadow: none;
  padding: 44px 48px 10px 48px;
  transition: none;
  position: relative;
  display: flex;
  flex-direction: column;
}
.benefit-card:first-child { border-left: 0; padding-left: 0; }
.benefit-card:last-child { padding-right: 0; }
.benefit-card:hover { transform: none; box-shadow: none; }

/* Hero stat leads each column */
.benefit-stat {
  display: block;
  border: 0;
  padding: 0;
  margin: 0 0 26px;
}
.benefit-stat .num {
  display: block;
  font-size: 60px;
  font-weight: 300;
  color: #009CA6;
  letter-spacing: -0.03em;
  line-height: 0.95;
}
.benefit-stat .label {
  display: block;
  max-width: 22ch;
  margin-top: 12px;
  font-size: 12px;
  line-height: 1.45;
  color: var(--gray-500, #6b7775);
  letter-spacing: 0.2px;
  text-transform: none;
}

/* Title row: small line mark + heading (no chip) */
.benefit-head {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 10px;
}
.benefit-card h3 { font-size: 18px; font-weight: 600; color: var(--teal); margin: 0; letter-spacing: -0.01em; }
.benefit-card p { color: var(--gray-600); font-size: 14px; line-height: 1.65; margin: 0; max-width: 32ch; }

[data-theme="night"] .benefit-stat .label { color: var(--fg-muted); }
@media (max-width: 820px) {
  .benefits-grid { grid-template-columns: 1fr; }
  .benefit-card {
    border-left: 0;
    border-top: 1px solid var(--gray-200);
    padding: 36px 0 4px;
  }
  .benefit-card:first-child { border-top: 0; padding-top: 8px; }
  [data-theme="night"] .benefit-card { border-left: 0; border-top: 1px solid var(--border); }
  [data-theme="night"] .benefit-card:first-child { border-top: 0; }
  .benefit-stat .num { font-size: 52px; }
}

/* ── WHY SHIZU · Cards mode ─────────────────────────────────────────
   Governed by the header Editorial⇄Cards toggle. In "off"/Cards mode the
   number-led editorial columns become soft floating cards, so the toggle
   now A/Bs the whole homepage direction in step with the spec grid. */
[data-editorial="off"] .benefits-grid {
  gap: 24px;
  margin-top: 36px;
  border-top: 0;
}
[data-editorial="off"] .benefit-card {
  background: var(--pure-white);
  border: 1px solid var(--gray-200);
  border-radius: 16px;
  box-shadow: var(--shadow-md);
  padding: 32px 30px;
  gap: 14px;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
}
[data-editorial="off"] .benefit-card:first-child { padding-left: 30px; }
[data-editorial="off"] .benefit-card:last-child { padding-right: 30px; }
[data-editorial="off"] .benefit-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--shadow-lg);
  border-color: var(--teal-accent);
}
/* reorder the existing markup into a card: icon+title → copy → stat footer */
[data-editorial="off"] .benefit-head { order: 1; margin-bottom: 2px; }
[data-editorial="off"] .benefit-card p { order: 2; max-width: none; }
[data-editorial="off"] .benefit-stat {
  order: 3;
  margin: 6px 0 0;
  padding-top: 16px;
  border-top: 1px solid var(--gray-200);
}
/* line-mark icon → the brand's signature menthol icon tile */
[data-editorial="off"] .benefit-glyph {
  width: 52px; height: 52px; border-radius: 13px;
  background: var(--menthol); color: var(--teal);
}
[data-editorial="off"] .benefit-glyph svg { width: 26px; height: 26px; }
/* demote the oversized numeral to a tidy stat lead */
[data-editorial="off"] .benefit-stat .num { font-size: 30px; font-weight: 600; }
[data-editorial="off"] .benefit-stat .label { margin-top: 6px; font-size: 11.5px; }
/* night surfaces for card mode */
[data-theme="night"][data-editorial="off"] .benefit-card {
  background: var(--surface);
  border-color: var(--border);
  box-shadow: none;
}
[data-theme="night"][data-editorial="off"] .benefit-card:hover { border-color: var(--teal-accent); }
[data-theme="night"][data-editorial="off"] .benefit-glyph {
  background: rgba(127,217,217,0.12);
  color: var(--teal-accent);
}
[data-theme="night"][data-editorial="off"] .benefit-stat { border-top-color: var(--border); }

/* PRODUCT GRID + CARD */
.product-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; perspective: 1600px; }
@media (max-width: 900px) {
  .product-grid { grid-template-columns: repeat(2, 1fr); gap: 20px; }
}
@media (max-width: 560px) {
  .product-grid { grid-template-columns: 1fr; gap: 18px; }
}
.product-card {
  background: var(--pure-white);
  border-radius: 16px;
  overflow: visible;
  box-shadow: var(--shadow-sm);
  border: 1px solid var(--gray-200);
  transition: box-shadow 0.4s cubic-bezier(.2,.8,.2,1), border-color 0.3s;
  display: flex; flex-direction: column;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
  padding: 0;
  position: relative;
  transform-style: preserve-3d;
  transform: rotateX(var(--rx, 0deg)) rotateY(var(--ry, 0deg));
  will-change: transform;
}
/* Inner wrapper clips the image to the card radius while the card itself
   keeps overflow visible so lifted 3D layers aren't cut off. */
.product-card-3d {
  display: flex; flex-direction: column; flex: 1;
  transform-style: preserve-3d;
  border-radius: inherit;
  overflow: hidden;
}
.product-card:hover {
  box-shadow: 0 12px 36px rgba(13,76,75,0.12);
  border-color: rgba(13,76,75,0.18);
}
/* Lifted, reactive shadow + layered parallax while the card is tilting */
.product-card.is-tilting {
  box-shadow: 0 34px 60px -26px rgba(13,76,75,0.42), 0 10px 26px -18px rgba(13,76,75,0.28);
  border-color: rgba(13,76,75,0.22);
}
.product-card-img,
.product-card-body { transition: transform 0.45s cubic-bezier(.2,.8,.2,1); transform-style: preserve-3d; }
.product-card.is-tilting .product-card-img { transform: translateZ(46px) scale(1.04); }
.product-card.is-tilting .product-card-body { transform: translateZ(24px); }
.product-card-pill,
.product-card-price-block { transition: transform 0.45s cubic-bezier(.2,.8,.2,1); }
.product-card.is-tilting .product-card-pill { transform: translateZ(16px); }
.product-card.is-tilting .product-card-price-block { transform: translateZ(12px); }
/* Specular glare that tracks the cursor across the glass */
.product-card-glare {
  position: absolute; inset: 0;
  border-radius: inherit;
  pointer-events: none;
  z-index: 5;
  opacity: 0;
  transition: opacity 0.35s ease;
  background:
    radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),
      rgba(255,255,255,0.40) 0%, rgba(255,255,255,0.10) 26%, transparent 60%);
  mix-blend-mode: soft-light;
}
.product-card.is-tilting .product-card-glare { opacity: 1; }
[data-theme="night"] .product-card-glare {
  background:
    radial-gradient(420px circle at var(--mx, 50%) var(--my, 50%),
      rgba(127,217,217,0.30) 0%, rgba(127,217,217,0.08) 28%, transparent 62%);
  mix-blend-mode: screen;
}
[data-theme="night"] .product-card.is-tilting {
  box-shadow: 0 36px 64px -24px rgba(0,0,0,0.7), 0 0 40px -14px rgba(127,217,217,0.32);
}
@media (prefers-reduced-motion: reduce), (hover: none), (pointer: coarse) {
  .product-card { transform: none; transition: transform 0.3s, box-shadow 0.3s, border-color 0.3s; }
  .product-card:hover { transform: translateY(-4px); }
  .product-card-glare { display: none; }
}
/* Calm motion: flat, fast cards — no cursor tilt, glare, or lifted 3D layers.
   A simple hover-lift remains as the click affordance. */
[data-motion="calm"] .product-card {
  transform: none !important;
  transition: transform 0.25s var(--ease), box-shadow 0.25s var(--ease), border-color 0.25s var(--ease);
}
[data-motion="calm"] .product-card:hover { transform: translateY(-4px) !important; }
[data-motion="calm"] .product-card-glare { display: none !important; }
[data-motion="calm"] .product-card-img,
[data-motion="calm"] .product-card-body,
[data-motion="calm"] .product-card-pill,
[data-motion="calm"] .product-card-price-block { transform: none !important; transition: none; }
.product-card-img {
  aspect-ratio: 1; position: relative;
  display: flex; align-items: center; justify-content: center;
}
.product-card-img::after {
  content: ''; position: absolute; inset: 0;
  background-image: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.15) 0%, transparent 50%);
}
.product-card-badge {
  position: absolute; top: 14px; left: 14px;
  background: rgba(255,255,255,0.95);
  color: var(--teal);
  font-size: 9px; font-weight: 700; letter-spacing: 1.5px;
  padding: 5px 10px; border-radius: 4px; z-index: 2;
}

.product-card-body { padding: 22px; display: flex; flex-direction: column; flex: 1; }
@media (max-width: 430px) {
  .product-card-body { padding: 16px; }
}
.product-card-category { font-size: 10px; letter-spacing: 2px; color: var(--gray-400); margin-bottom: 6px; font-weight: 500; text-transform: uppercase; }
.product-card-name { font-size: 19px; font-weight: 700; color: var(--charcoal); margin: 0 0 6px; line-height: 1.3; letter-spacing: -0.3px; }
@media (max-width: 430px) {
  .product-card-name { font-size: 16px; }
}
.product-card-feature { font-size: 13px; color: var(--gray-600); margin-bottom: 14px; flex: 1; line-height: 1.5; }
@media (max-width: 430px) {
  .product-card-feature { font-size: 12px; margin-bottom: 10px; }
}
.product-card-pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 10.5px; font-weight: 600;
  color: var(--teal);
  background: var(--menthol);
  padding: 4px 10px;
  border-radius: 100px;
  margin-bottom: 16px;
  align-self: flex-start;
}
[data-theme="night"] .product-card-pill { background: rgba(127,217,217,0.12); color: var(--teal-accent); }
.product-card-pill i { font-size: 9px; }
.product-card-price-block { padding-top: 14px; border-top: 1px solid var(--gray-200); margin-bottom: 16px; }
[data-theme="night"] .product-card-price-block { border-top-color: var(--border); }
.product-card-from { font-size: 10px; letter-spacing: 1.8px; color: var(--gray-400); font-weight: 500; text-transform: uppercase; margin-bottom: 2px; }
.product-card-price-row { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; }
.product-card-price { font-size: 22px; font-weight: 700; color: var(--teal); letter-spacing: -0.4px; }
@media (max-width: 430px) {
  .product-card-price { font-size: 18px; }
}
[data-theme="night"] .product-card-price { color: var(--teal-accent); }
.product-card-price-old { font-size: 13px; color: var(--gray-400); text-decoration: line-through; font-weight: 500; }
.product-card-installment { font-size: 11px; color: var(--gray-600); margin-top: 4px; }
.product-card-actions { display: flex; gap: 8px; margin-top: auto; }
.product-card-btn { flex: 1; padding: 11px !important; font-size: 12.5px !important; min-height: 40px; }
@media (max-width: 430px) {
  .product-card-btn { padding: 10px !important; font-size: 11px !important; min-height: 36px; }
}

/* Hover arrow on the gradient image — a small affordance */
.product-card-hover-arrow {
  position: absolute; top: 14px; right: 14px;
  width: 28px; height: 28px;
  background: rgba(255,255,255,0.18);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: #FFFFFF; font-size: 11px;
  z-index: 3;
  opacity: 0;
  transition: opacity 0.3s, transform 0.3s;
  transform: translateY(-4px);
}
.product-card:hover .product-card-hover-arrow { opacity: 1; transform: translateY(0); }

/* RITUAL SECTION — dark editorial strip with morning timeline */
.ritual-section {
  /* Frosted-glass band, NOT a hard opaque rectangle (Nika). A translucent navy
     over the always-on water field + a soft backdrop-blur reads as premium
     frosted glass; the top/bottom edges are feathered (mask) so the band
     dissolves into the page rather than cutting a blunt border line. The
     water-on override in water.css re-tints this per theme; the blur + feather
     are inherited from here so both water states stay soft-edged. */
  background: linear-gradient(180deg, rgba(22,38,59,0.80) 0%, rgba(14,26,43,0.86) 100%);
  color: var(--pure-white);
  padding: 80px 0;
  position: relative;
  overflow: hidden;
  -webkit-backdrop-filter: blur(7px) saturate(1.05);
  backdrop-filter: blur(7px) saturate(1.05);
  -webkit-mask-image: linear-gradient(to bottom, transparent 0, #000 30px, #000 calc(100% - 30px), transparent 100%);
  mask-image: linear-gradient(to bottom, transparent 0, #000 30px, #000 calc(100% - 30px), transparent 100%);
}
@media (max-width: 768px) {
  .ritual-section { padding: 56px 0; }
}
@media (max-width: 430px) {
  .ritual-section { padding: 40px 0; }
}
.ritual-section::before {
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(circle at 85% 20%, rgba(127,217,217,0.08) 0%, transparent 55%),
                    radial-gradient(circle at 10% 80%, rgba(201,169,110,0.06) 0%, transparent 50%);
  pointer-events: none;
}
.ritual-grid {
  position: relative; z-index: 1;
  display: grid;
  grid-template-columns: 1fr 1.05fr;
  gap: 56px;
  align-items: center;
}
@media (max-width: 920px) { .ritual-grid { grid-template-columns: 1fr; gap: 40px; } }
.ritual-eyebrow { font-size: 11px; letter-spacing: 4px; font-weight: 500; color: var(--teal-accent); margin-bottom: 14px; text-transform: uppercase; }
.ritual-title {
  font-size: clamp(28px, 3.4vw, 40px);
  font-weight: 700;
  letter-spacing: -0.5px;
  line-height: 1.15;
  margin: 0 0 18px;
  color: var(--pure-white);
}
@media (max-width: 430px) {
  .ritual-title { font-size: clamp(22px, 5vw, 32px); margin: 0 0 14px; }
}
.ritual-title em { font-style: normal; }
.ritual-lede {
  font-size: 15px;
  font-weight: 300;
  line-height: 1.7;
  color: rgba(255,255,255,0.78);
  margin: 0 0 24px;
  max-width: 460px;
}
.ritual-steps {
  list-style: none; padding: 0; margin: 0;
  display: flex; flex-direction: column; gap: 16px;
}
.ritual-step {
  display: grid;
  grid-template-columns: 44px 1fr auto;
  gap: 18px;
  align-items: center;
  padding: 16px 20px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 14px;
  transition: all 0.25s var(--ease);
}
.ritual-step:hover {
  background: rgba(255,255,255,0.07);
  border-color: rgba(127,217,217,0.25);
  transform: translateX(4px);
}
.ritual-step-num {
  width: 44px; height: 44px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--teal-accent) 0%, var(--teal-light) 100%);
  display: flex; align-items: center; justify-content: center;
  font-size: 15px; font-weight: 700; color: var(--navy);
}
.ritual-step-body h4 {
  margin: 0 0 4px;
  font-size: 15px;
  font-weight: 600;
  color: var(--pure-white);
}
.ritual-step-body p {
  margin: 0;
  font-size: 12.5px;
  color: rgba(255,255,255,0.6);
  line-height: 1.5;
}
.ritual-step-time {
  font-size: 11px; font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}

/* NEWSLETTER */
.newsletter-section {
  background: var(--teal);
  color: var(--pure-white);
  padding: 64px 0;
  position: relative;
  overflow: hidden;
}
.newsletter-section::before {
  content: '';
  position: absolute; inset: 0;
  background-image: radial-gradient(circle at 80% 30%, rgba(127,217,217,0.18) 0%, transparent 55%);
  pointer-events: none;
}
.newsletter-box {
  position: relative; z-index: 1;
  display: grid; grid-template-columns: 1.1fr 1fr; gap: 36px; align-items: center;
}
@media (max-width: 820px) { .newsletter-box { grid-template-columns: 1fr; } }
.newsletter-box h2 { font-size: 28px; font-weight: 700; margin: 0 0 8px; color: var(--pure-white); letter-spacing: -0.4px; }
.newsletter-box p { font-size: 14px; opacity: 0.85; margin: 0; color: var(--pure-white); }

.newsletter-form input {
  flex: 1;
  padding: 14px 18px;
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 8px;
  font-size: 14px;
  font-family: inherit;
  background: rgba(255,255,255,0.08);
  color: var(--pure-white);
}
.newsletter-form input::placeholder { color: rgba(255,255,255,0.55); }
.newsletter-form input:focus { outline: none; background: rgba(255,255,255,0.14); border-color: var(--teal-accent); }
.newsletter-form { display: flex; gap: 8px; }
@media (max-width: 520px) { .newsletter-form { flex-direction: column; } }
@media (max-width: 430px) { .newsletter-form { gap: 6px; } }
.newsletter-form { position: relative; flex-wrap: wrap; }
.newsletter-form input:disabled { opacity: 0.6; cursor: not-allowed; }
.newsletter-form .btn[disabled] { opacity: 0.7; cursor: progress; }
.newsletter-form input[aria-invalid="true"] { border-color: var(--gold, #c9a96a); background: rgba(255,255,255,0.16); }
.newsletter-error {
  flex-basis: 100%;
  font-size: 13px; font-weight: 500;
  color: var(--pure-white);
  background: rgba(0,0,0,0.18);
  border-radius: 8px;
  padding: 8px 12px;
  margin: 0;
}
.newsletter-done {
  display: flex; align-items: center;
  font-size: 15px; font-weight: 600;
  color: var(--pure-white);
  min-height: 52px;
  letter-spacing: -0.2px;
}

/* PAGE HERO (subpages) */
.page-hero { background: var(--menthol); padding: 56px 0 44px; }
.page-hero h1 { font-size: clamp(28px, 4vw, 40px); font-weight: 700; color: var(--teal); margin: 0 0 12px; letter-spacing: -0.5px; }
.page-hero p { font-size: 15px; color: var(--gray-600); max-width: 620px; line-height: 1.65; margin: 0; }

/* FILTER BAR */
.filter-bar {
  display: flex; gap: 8px;
  margin-bottom: 32px;
  flex-wrap: wrap;
  padding-bottom: 16px;
  border-bottom: 1px solid var(--gray-200);
}
.filter-btn {
  background: var(--pure-white);
  border: 1px solid var(--gray-200);
  color: var(--gray-600);
  padding: 9px 18px;
  border-radius: 24px;
  font-size: 13px; font-weight: 500;
  font-family: inherit;
  cursor: pointer;
  transition: all 0.2s;
}
.filter-btn:hover { border-color: var(--teal); color: var(--teal); }
.filter-btn.active { background: var(--teal); color: var(--pure-white); border-color: var(--teal); }

/* CROSS-SELL — "You may also like" row on product detail */
.cross-sell {
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid var(--border);
}
.cross-sell-head {
  display: flex; justify-content: space-between; align-items: baseline;
  margin-bottom: 24px;
}
.cross-sell-head h3 {
  font-size: 22px; font-weight: 600; color: var(--teal);
  margin: 0;
}
[data-theme="night"] .cross-sell-head h3 { color: var(--teal-accent); }
.cross-sell-head a, .cross-sell-head button {
  font-size: 12px; letter-spacing: 1.5px; font-weight: 600;
  color: var(--gold);
  text-transform: uppercase;
  background: none; border: none; cursor: pointer;
  font-family: inherit;
}
.cross-sell-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}
@media (max-width: 820px) { .cross-sell-grid { grid-template-columns: 1fr; } }

/* PD spec list — replaces the simple <ul> highlights with a 2-col stat grid */
.pd-specs {
  margin-top: 40px;
  padding-top: 32px;
  border-top: 1px solid var(--border);
}
.pd-specs-head {
  font-size: 11px; letter-spacing: 3px; font-weight: 600;
  text-transform: uppercase;
  margin-bottom: 18px;
}
.pd-specs-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 14px;
}
@media (max-width: 820px) { .pd-specs-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .pd-specs-grid { grid-template-columns: 1fr; gap: 12px; } }
@media (max-width: 430px) { .pd-specs-grid { gap: 10px; } }
.pd-spec {
  position: relative;
  padding: 14px 16px;
  background: var(--surface-soft);
  border-radius: 10px;
  border: 1px solid transparent;
  overflow: hidden;
  cursor: default;
  transition: transform 0.28s cubic-bezier(.2,.8,.2,1), box-shadow 0.28s, border-color 0.28s, background 0.28s;
}
/* Accent bar wipes in along the bottom edge on hover */
.pd-spec::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0; height: 2px;
  background: var(--teal);
  transform: scaleX(0); transform-origin: left;
  transition: transform 0.32s cubic-bezier(.2,.8,.2,1);
}
.pd-spec:hover {
  transform: translateY(-3px);
  border-color: color-mix(in oklab, var(--teal) 30%, transparent);
  box-shadow: 0 10px 24px -12px rgba(13,76,75,0.35);
  background: var(--surface);
}
.pd-spec:hover::after { transform: scaleX(1); }
.pd-spec:hover .pd-spec-label { color: var(--teal); }
.pd-spec:hover .pd-spec-value { color: var(--teal-light); }
@media (prefers-reduced-motion: reduce) {
  .pd-spec, .pd-spec::after { transition: none; }
  .pd-spec:hover { transform: none; }
}
[data-theme="night"] .pd-spec { background: var(--bg-elevated); border: 1px solid var(--border); }
[data-theme="night"] .pd-spec::after { background: var(--teal-accent); }
[data-theme="night"] .pd-spec:hover {
  border-color: color-mix(in oklab, var(--teal-accent) 42%, transparent);
  box-shadow: 0 12px 28px -12px rgba(0,0,0,0.6), 0 0 24px -10px rgba(127,217,217,0.4);
  background: color-mix(in oklab, var(--bg-elevated) 88%, var(--teal-accent));
}
[data-theme="night"] .pd-spec:hover .pd-spec-label { color: var(--teal-accent); }
[data-theme="night"] .pd-spec:hover .pd-spec-value { color: var(--pure-white); }
.pd-spec-label {
  font-size: 10px; color: var(--fg-muted);
  letter-spacing: 1.2px; text-transform: uppercase; font-weight: 500;
  margin-bottom: 4px;
}
.pd-spec-value {
  font-size: 14px; font-weight: 600;
  color: var(--teal);
}
[data-theme="night"] .pd-spec-value { color: var(--teal-accent); }

/* ── Editorial spec-sheet variant (toggleable via header; [data-editorial="on"]) ──
   Drops the soft chips for a hairline-ruled spec table — bigger values,
   open whitespace, no hover-lift. Flip the toggle off to restore the cards. */
[data-editorial="on"] .pd-specs-grid { gap: 0 32px; }
[data-editorial="on"] .pd-spec {
  background: transparent;
  border: 0;
  border-top: 1px solid var(--border);
  border-radius: 0;
  padding: 16px 0 14px;
  transition: color 0.2s;
}
[data-editorial="on"] .pd-spec::after { display: none; }
[data-editorial="on"] .pd-spec:hover {
  transform: none;
  box-shadow: none;
  background: transparent;
  border-color: var(--border);
}
[data-editorial="on"] .pd-spec:hover .pd-spec-label { color: var(--gold); }
[data-editorial="on"] .pd-spec-value { font-size: 18px; font-weight: 600; letter-spacing: -0.01em; }
[data-editorial="on"][data-theme="night"] .pd-spec:hover .pd-spec-value { color: var(--teal-accent); }

/* Layout (spec-style) toggle button — mirrors lang-toggle, accents when editorial is on */

/* "Help me choose" callout — appears on the products listing */
.choose-callout {
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 20px;
  align-items: center;
  padding: 18px 22px;
  background: linear-gradient(135deg, rgba(13,76,75,0.04) 0%, rgba(127,217,217,0.10) 100%);
  border: 1px solid rgba(13,76,75,0.12);
  border-radius: 14px;
  margin-bottom: 28px;
}
[data-theme="night"] .choose-callout {
  background: linear-gradient(135deg, rgba(127,217,217,0.06) 0%, rgba(127,217,217,0.10) 100%);
  border-color: var(--border);
}
.choose-callout-icon {
  width: 48px; height: 48px;
  border-radius: 12px;
  background: var(--menthol);
  display: flex; align-items: center; justify-content: center;
  color: var(--teal);
  font-size: 18px;
}
[data-theme="night"] .choose-callout-icon { background: rgba(127,217,217,0.12); color: var(--teal-accent); }
.choose-callout-body h4 { margin: 0 0 3px; font-size: 14px; font-weight: 600; color: var(--teal); }
[data-theme="night"] .choose-callout-body h4 { color: var(--teal-accent); }
.choose-callout-body p { margin: 0; font-size: 12.5px; color: var(--fg-muted); line-height: 1.5; }
@media (max-width: 720px) {
  .choose-callout { grid-template-columns: 1fr; text-align: left; }
}
/* PRODUCT DETAIL */
.breadcrumb { font-size: 12px; color: var(--gray-400); margin-bottom: 28px; }
.breadcrumb button { color: var(--gray-600); margin: 0 4px; background: none; border: none; font-family: inherit; font-size: inherit; cursor: pointer; }
.breadcrumb button:hover { color: var(--teal); }
.breadcrumb span { color: var(--teal); font-weight: 500; margin-left: 4px; }
.pd-grid { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 40px; margin-bottom: 48px; align-items: start; }
.pd-grid > * { min-width: 0; }
@media (max-width: 980px) {
  .pd-grid { grid-template-columns: minmax(0, 1fr); gap: 32px; margin-bottom: 36px; }
}
@media (max-width: 430px) {
  .pd-grid { gap: 24px; margin-bottom: 28px; }
}

.pd-category { font-size: 11px; letter-spacing: 3px; color: #009CA6; font-weight: 700; margin-bottom: 8px; text-transform: uppercase; }
[data-theme="night"] .pd-category { color: #2FC4CC; }
.pd-title { font-size: 30px; font-weight: 700; color: var(--charcoal); margin: 0 0 12px; letter-spacing: -0.5px; }
@media (max-width: 600px) {
  .pd-title { font-size: 24px; margin: 0 0 10px; }
}
@media (max-width: 430px) {
  .pd-title { font-size: 20px; }
}

.pd-tagline { color: var(--gray-600); margin: 0 0 16px; line-height: 1.6; font-size: 14px; text-wrap: pretty; }
.pd-price { margin-bottom: 18px; padding-bottom: 18px; flex-wrap: wrap; }

.pd-price-old { text-decoration: line-through; }

.pd-highlights { list-style: none; margin: 0 0 20px; padding: 0; display: grid; gap: 8px; }
.pd-highlights li { font-size: 13px; color: var(--charcoal); line-height: 1.45; display: grid; grid-template-columns: 16px 1fr; gap: 10px; align-items: baseline; }
@media (max-width: 430px) {
  .pd-highlights li { font-size: 12px; }
}
.pd-highlights li i { color: var(--teal); font-size: 11px; }
[data-theme="night"] .pd-highlights li i { color: var(--teal-accent); }
@media (min-width: 981px) { .pd-info { position: sticky; top: 96px; } }
.pd-actions { display: flex; gap: 10px; margin-bottom: 24px; flex-wrap: wrap; }
@media (max-width: 600px) {
  .pd-actions { gap: 8px; margin-bottom: 18px; }
}
@media (max-width: 430px) {
  .pd-actions { flex-direction: column; gap: 8px; }
}
.pd-actions .btn { flex: 1; min-width: 140px; }
@media (max-width: 430px) {
  .pd-actions .btn { min-width: 100%; }
}
.pd-trust {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  padding: 10px 12px;
  background: var(--menthol);
  border-radius: 10px;
}
.pd-trust > div { font-size: 11px; color: var(--teal); font-weight: 500; line-height: 1.35; display: flex; align-items: center; gap: 8px; text-align: left; }
.pd-trust i { font-size: 14px; flex: none; }

/* CART */
.cart-wrap { display: grid; grid-template-columns: 1.6fr 1fr; gap: 32px; }

/* Pre-order banner — sets honest expectations BEFORE checkout */
.preorder-banner {
  display: grid;
  grid-template-columns: 56px 1fr auto;
  gap: 18px;
  align-items: center;
  background: linear-gradient(135deg, rgba(13,76,75,0.04) 0%, rgba(127,217,217,0.10) 100%);
  border: 1px solid rgba(13,76,75,0.12);
  border-radius: 14px;
  padding: 18px 22px;
  margin-bottom: 24px;
}
.preorder-icon {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: var(--teal);
  color: var(--teal-accent);
  display: flex; align-items: center; justify-content: center;
  font-size: 22px;
}
.preorder-body h4 {
  margin: 0 0 4px;
  font-size: 15px; font-weight: 600;
  color: var(--teal);
}
.preorder-body p {
  margin: 0;
  font-size: 13px; line-height: 1.5;
  color: var(--gray-600);
}
.preorder-cta {
  font-size: 11px; letter-spacing: 1.5px; font-weight: 600;
  color: var(--gold); text-transform: uppercase;
  white-space: nowrap;
}
@media (max-width: 720px) {
  .preorder-banner { grid-template-columns: 48px 1fr; gap: 14px; padding: 14px 16px; }
  .preorder-cta { grid-column: 1 / -1; }
}

/* Trust chip strip — appears in cart + checkout */
.trust-strip {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 10px;
  margin-top: 18px;
}
.trust-chip {
  background: var(--pure-white);
  border: 1px solid var(--gray-200);
  border-radius: 10px;
  padding: 12px 14px;
  display: flex; align-items: flex-start; gap: 10px;
}
.trust-chip i {
  color: var(--teal);
  font-size: 14px;
  margin-top: 2px;
  flex-shrink: 0;
}
.trust-chip-body { display: flex; flex-direction: column; gap: 2px; }
.trust-chip-title {
  font-size: 11px; font-weight: 600;
  color: var(--charcoal);
  letter-spacing: 0.2px;
}
.trust-chip-sub {
  font-size: 10.5px; color: var(--gray-600);
  line-height: 1.4;
}
@media (max-width: 820px) {
  .trust-strip { grid-template-columns: repeat(2, 1fr); }
}

/* Item-level "ships in 30-40 days" pill */
.preorder-pill {
  display: inline-flex; align-items: center; gap: 6px;
  font-size: 10.5px; font-weight: 600;
  color: var(--teal);
  background: var(--menthol);
  padding: 3px 8px; border-radius: 4px;
  letter-spacing: 0.3px;
  margin-top: 6px;
}
.preorder-pill i { font-size: 9px; }

/* "From Nika" personal callout */
.nika-note {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 14px;
  background: var(--pure-white);
  border: 1px solid var(--gray-200);
  border-left: 3px solid var(--gold);
  border-radius: 10px;
  padding: 16px 18px;
  margin-top: 14px;
}
.nika-avatar {
  width: 56px; height: 56px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-light) 100%);
  color: var(--pure-white);
  display: flex; align-items: center; justify-content: center;
  font-weight: 700;
  font-size: 18px;
  letter-spacing: 0.5px;
}
.nika-note-body { font-size: 13px; line-height: 1.55; color: var(--gray-600); }
.nika-note-body p { margin: 0 0 6px; font-size: 13px; color: var(--charcoal); }
.nika-signature {
  font-size: 11px; color: var(--gray-600);
}
.nika-signature b { color: var(--teal); font-weight: 600; }
.cart-items { display: flex; flex-direction: column; gap: 14px; }
.cart-item {
  background: var(--pure-white);
  border: 1px solid var(--gray-200);
  border-radius: 12px;
  padding: 16px;
  display: grid;
  grid-template-columns: 80px 1fr auto;
  gap: 16px;
  align-items: center;
}
.cart-item-img {
  width: 80px; height: 80px;
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  position: relative; overflow: hidden;
}
.cart-item-info h4 { font-size: 14px; font-weight: 600; margin: 0 0 4px; color: var(--charcoal); }
@media (max-width: 430px) {
  .cart-item-info h4 { font-size: 12px; }
}
.cart-item-info p { font-size: 12px; color: var(--gray-600); margin: 0 0 8px; }
.cart-item-qty { display: flex; align-items: center; gap: 6px; }
.qty-btn {
  width: 26px; height: 26px;
  border: 1px solid var(--gray-200);
  background: var(--pure-white);
  border-radius: 6px;
  cursor: pointer;
  font-size: 13px;
  display: flex; align-items: center; justify-content: center;
  font-family: inherit;
}
.qty-btn:hover { background: var(--menthol); border-color: var(--teal); color: var(--teal); }
.qty-display { min-width: 28px; text-align: center; font-weight: 600; font-size: 14px; }
.cart-item-actions { text-align: right; }
.cart-item-price { font-size: 16px; font-weight: 700; color: var(--teal); margin-bottom: 6px; }
.remove-btn { background: none; border: none; color: var(--gray-400); cursor: pointer; font-size: 11px; font-family: inherit; }
.remove-btn:hover { color: var(--danger); }
.cart-summary {
  background: var(--menthol);
  border-radius: 14px;
  padding: 26px;
  height: fit-content;
}
.cart-summary h3 { font-size: 17px; font-weight: 600; color: var(--teal); margin: 0 0 18px; }
.summary-row { display: flex; justify-content: space-between; font-size: 13px; margin-bottom: 9px; color: var(--gray-600); }
@media (max-width: 430px) {
  .summary-row { font-size: 12px; margin-bottom: 7px; }
}
.summary-row.total { font-size: 17px; font-weight: 700; color: var(--teal); padding-top: 12px; margin-top: 10px; border-top: 1px solid rgba(13,76,75,0.15); }
.bog-checkout-btn {
  width: 100%;
  background: var(--bog-orange);
  color: var(--pure-white);
  padding: 15px;
  border-radius: 8px;
  font-weight: 700;
  font-size: 14px;
  border: none;
  font-family: inherit;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 10px;
  transition: all 0.2s;
  margin-top: 14px;
}
.bog-checkout-btn:hover { background: var(--bog-orange-h); transform: translateY(-1px); box-shadow: var(--shadow-bog); }
.bog-icon-sm {
  width: 26px; height: 26px;
  background: var(--pure-white); color: var(--bog-orange);
  border-radius: 6px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; font-size: 13px;
}
.free-shipping-note { font-size: 11px; color: var(--gray-400); text-align: center; margin-top: 12px; }

/* CART EMPTY */
.cart-empty { text-align: center; padding: 60px 24px; }
.cart-empty i { font-size: 56px; color: var(--gray-200); margin-bottom: 18px; }
.cart-empty h3 { font-size: 20px; font-weight: 600; color: var(--charcoal); margin: 0 0 8px; }
.cart-empty p { color: var(--gray-600); margin: 0 0 22px; font-size: 14px; }

/* BANK OF GEORGIA CHECKOUT */
.bog-page {
  min-height: 100vh;
  background: var(--bog-alabaster);
  display: flex; flex-direction: column;
}
.bog-header {
  background: var(--pure-white);
  border-bottom: 1px solid var(--gray-200);
  padding: 16px 32px;
  display: flex; justify-content: space-between; align-items: center;
}
.bog-logo { display: flex; align-items: center; gap: 12px; }
.bog-logo-icon {
  width: 40px; height: 40px;
  background: var(--bog-orange);
  border-radius: 8px;
  display: flex; align-items: center; justify-content: center;
  font-weight: 800; color: var(--pure-white); font-size: 18px;
}
.bog-brand-text { font-weight: 600; color: var(--bog-tundora); font-size: 15px; }
.bog-secure { display: flex; align-items: center; gap: 8px; font-size: 12px; color: var(--bog-tundora); }
.bog-secure i { color: var(--bog-orange); }
.bog-demo-tag { background: var(--bog-orange); color: var(--pure-white); padding: 3px 10px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: 1px; }
.bog-wrap { flex: 1; display: flex; align-items: center; justify-content: center; padding: 32px 20px; }
.bog-card {
  background: var(--pure-white);
  border-radius: 14px;
  box-shadow: 0 4px 32px rgba(0,0,0,0.06);
  max-width: 480px;
  width: 100%;
  overflow: hidden;
}
.bog-card-header {
  background: linear-gradient(135deg, var(--ink) 0%, #2A2A2A 100%);
  color: var(--pure-white);
  padding: 26px 30px;
}
.bog-card-header h1 { font-size: 19px; font-weight: 600; margin: 0 0 6px; }
.bog-card-header p { font-size: 12px; color: #B5B5B5; margin: 0; }
.bog-card-body { padding: 26px 30px; }
.bog-summary { background: var(--gray-100); border-radius: 8px; padding: 16px 18px; margin-bottom: 22px; }
.bog-summary-row { display: flex; justify-content: space-between; font-size: 12px; margin-bottom: 7px; color: var(--gray-600); }
.bog-summary-row.total { font-size: 15px; font-weight: 700; color: var(--ink); padding-top: 9px; margin-top: 9px; border-top: 1px solid var(--gray-200); }
.bog-method-label { font-size: 10px; letter-spacing: 2px; color: var(--gray-600); margin-bottom: 10px; font-weight: 500; text-transform: uppercase; }
.bog-card-form { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; margin-bottom: 20px; }
.bog-card-form .full { grid-column: 1 / -1; }
.bog-card-form label { display: block; font-size: 10px; color: var(--gray-600); margin-bottom: 5px; letter-spacing: 1px; font-weight: 500; text-transform: uppercase; }
.bog-card-form input {
  width: 100%; padding: 11px 13px;
  border: 1px solid var(--gray-200);
  border-radius: 6px;
  font-size: 13px;
  font-family: inherit;
  background: var(--white);
  box-sizing: border-box;
}
.bog-card-form input:focus { outline: none; border-color: var(--bog-orange); background: var(--pure-white); }
.bog-pay-btn {
  width: 100%;
  background: var(--bog-orange); color: var(--pure-white);
  border: none; border-radius: 8px;
  padding: 15px;
  font-size: 14px; font-weight: 600;
  cursor: pointer;
  transition: all 0.2s;
  font-family: inherit;
}
.bog-pay-btn:hover { background: var(--bog-orange-h); transform: translateY(-1px); box-shadow: var(--shadow-bog); }
.bog-loading { display: flex; flex-direction: column; align-items: center; padding: 36px; }
.bog-spinner { width: 52px; height: 52px; border: 4px solid var(--gray-100); border-top-color: var(--bog-orange); border-radius: 50%; animation: spin 0.9s linear infinite; margin-bottom: 20px; }
@keyframes spin { to { transform: rotate(360deg); } }
.bog-footer {
  padding: 16px 30px;
  background: var(--white);
  border-top: 1px solid var(--gray-200);
  display: flex; justify-content: space-between; align-items: center;
  font-size: 11px; color: var(--gray-400);
}
.bog-cards-row { display: flex; gap: 5px; }
.bog-cards-row span { background: var(--pure-white); border: 1px solid var(--gray-200); border-radius: 4px; padding: 3px 8px; font-size: 9px; font-weight: 600; color: var(--gray-600); }

/* BoG trust callout — appears above the card form */
.bog-trust-callout {
  display: grid;
  grid-template-columns: 24px 1fr;
  gap: 12px;
  align-items: start;
  padding: 14px 16px;
  background: rgba(252, 103, 26, 0.06);
  border: 1px solid rgba(252, 103, 26, 0.2);
  border-radius: 8px;
  margin-bottom: 20px;
}
.bog-trust-callout > i { color: var(--bog-orange); font-size: 16px; margin-top: 2px; }
.bog-trust-title {
  font-size: 12.5px; font-weight: 600;
  color: var(--bog-tundora);
  margin-bottom: 3px;
}
.bog-trust-sub {
  font-size: 11.5px;
  line-height: 1.55;
  color: var(--bog-tundora);
  opacity: 0.85;
}
.bog-trust-sub b { color: var(--bog-orange); font-weight: 600; }

/* SUCCESS PAGE */
.success-wrap { padding: 60px 0 80px; text-align: center; }
.success-icon {
  width: 72px; height: 72px;
  background: var(--teal); color: var(--pure-white);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 30px;
  margin: 0 auto 22px;
}
.success-wrap h1 { font-size: 30px; font-weight: 700; color: var(--teal); margin: 0 0 8px; letter-spacing: -0.5px; }
.success-wrap p.sub { font-size: 15px; color: var(--gray-600); margin: 0 0 28px; }
.order-id-chip { display: inline-block; background: var(--menthol); color: var(--teal); padding: 6px 14px; border-radius: 6px; font-size: 12px; font-weight: 600; letter-spacing: 1px; margin-bottom: 28px; }

/* Success timeline — replaces next-steps with dated milestones */
.success-timeline {
  max-width: 620px;
  margin: 0 auto 36px;
  text-align: left;
  display: flex;
  flex-direction: column;
  gap: 0;
}
.success-milestone {
  display: grid;
  grid-template-columns: 40px 1fr;
  gap: 18px;
  align-items: start;
  padding: 16px 0;
  position: relative;
}
.success-milestone + .success-milestone { border-top: 1px dashed var(--border); }
.success-milestone-icon {
  width: 40px; height: 40px;
  border-radius: 50%;
  background: var(--menthol);
  color: var(--teal);
  display: flex; align-items: center; justify-content: center;
  font-size: 15px;
  flex-shrink: 0;
}
[data-theme="night"] .success-milestone-icon {
  background: rgba(127,217,217,0.12);
  color: var(--teal-accent);
}
.success-milestone-head {
  display: flex; justify-content: space-between; align-items: baseline;
  gap: 10px; flex-wrap: wrap;
}
.success-milestone-head h4 {
  margin: 0;
  font-size: 14.5px; font-weight: 600;
  color: var(--teal);
}
[data-theme="night"] .success-milestone-head h4 { color: var(--teal-accent); }
.success-milestone-date {
  font-size: 11px; font-weight: 600;
  letter-spacing: 1.5px;
  text-transform: uppercase;
}
.success-milestone-body p {
  margin: 5px 0 0;
  font-size: 13px;
  color: var(--fg-muted);
  line-height: 1.55;
}

/* Founder note + WhatsApp on success */
.success-note {
  display: grid;
  grid-template-columns: 56px 1fr;
  gap: 16px;
  max-width: 620px;
  margin: 28px auto 0;
  text-align: left;
  background: var(--surface-soft);
  border: 1px solid var(--border);
  border-left: 3px solid var(--gold);
  border-radius: 12px;
  padding: 20px 22px;
}
[data-theme="night"] .success-note { background: var(--bg-elevated); }
.success-note p {
  margin: 0 0 12px;
  font-size: 13.5px;
  line-height: 1.6;
  color: var(--fg);
}
.success-whatsapp {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 13px; font-weight: 600;
  color: #1F8A5B;
  text-decoration: none;
  letter-spacing: 0.2px;
}
.success-whatsapp:hover { color: var(--teal); }
.success-whatsapp i { font-size: 16px; }
[data-theme="night"] .success-whatsapp { color: #6BD89B; }

/* FOOTER */
.footer { background: var(--ink); color: var(--pure-white); padding: 56px 0 22px; }
@media (max-width: 768px) {
  .footer { padding: 44px 0 20px; }
}
@media (max-width: 430px) {
  .footer { padding: 32px 0 16px; }
}
.footer-grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.1fr 1.3fr; gap: 32px; margin-bottom: 36px; }
@media (max-width: 900px) {
  .footer-grid { grid-template-columns: repeat(2, 1fr); gap: 24px; margin-bottom: 28px; }
}
@media (max-width: 600px) {
  .footer-grid { grid-template-columns: 1fr; gap: 20px; margin-bottom: 24px; }
}
.footer-logo { display: flex; align-items: center; gap: 10px; margin-bottom: 14px; }
@media (max-width: 430px) {
  .footer-logo { gap: 8px; margin-bottom: 10px; }
}
.footer-logo .logo-img { width: 32px; height: 32px; color: var(--pure-white); }
.footer-logo span { font-size: 18px; font-weight: 700; letter-spacing: 3px; }
.footer-tagline { color: var(--teal-accent); font-size: 13px; font-style: italic; margin: 0 0 4px; }
.footer-tagline-ge { color: var(--gray-400); font-size: 12px; font-style: italic; margin: 0; }
.footer-label { font-size: 10px; letter-spacing: 3px; margin-bottom: 14px; font-weight: 600; text-transform: uppercase; }
.footer-col a, .footer-col button { display: block; font-size: 13px; color: rgba(255,255,255,0.7); padding: 4px 0; transition: color 0.2s; text-decoration: none; background: none; border: none; cursor: pointer; font-family: inherit; text-align: left; }
.footer-col a:hover, .footer-col button:hover { color: var(--teal-accent); }
.footer-col p { font-size: 13px; color: rgba(255,255,255,0.7); margin: 0 0 6px; line-height: 1.6; }
.footer-col p i { color: var(--teal-accent); margin-right: 6px; width: 14px; }
.social-row { display: flex; gap: 10px; margin-top: 12px; }
.social-row a {
  width: 32px; height: 32px;
  background: rgba(255,255,255,0.1);
  border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  color: var(--pure-white);
  text-decoration: none;
  transition: background 0.2s, color 0.2s;
}
.social-row a:hover { background: var(--teal-accent); color: var(--teal); }
.footer-bottom {
  padding-top: 22px;
  border-top: 1px solid rgba(255,255,255,0.1);
  display: flex; justify-content: space-between;
  font-size: 12px; color: rgba(255,255,255,0.5);
  flex-wrap: wrap; gap: 12px;
}

/* TOAST */
.toast {
  position: fixed; bottom: 28px; right: 28px;
  background: var(--teal); color: var(--pure-white);
  padding: 12px 20px; border-radius: 10px;
  box-shadow: var(--shadow-lg);
  font-size: 13px; font-weight: 500;
  z-index: 300;
  display: flex; align-items: center; gap: 10px;
  animation: slidein 0.3s var(--ease);
}
.toast i { color: var(--teal-accent); }
@keyframes slidein { from { transform: translateY(120%); opacity: 0; } to { transform: translateY(0); opacity: 1; } }

/* PROTOTYPE BANNER */
.proto-banner {
  position: fixed; bottom: 14px; left: 14px;
  background: rgba(13, 76, 75, 0.92);
  color: var(--teal-accent);
  font-size: 11px; padding: 6px 12px;
  border-radius: 6px;
  letter-spacing: 1px; text-transform: uppercase;
  z-index: 999;
  font-weight: 600;
}

/* ============================================================
   REFINE MODE — "Demote gold" before/after option
   Toggled via [data-refine="on"] on <html>. Gold survives in
   exactly TWO places — the logo dot and the single primary CTA;
   everywhere else collapses into the teal family. FA icons get a
   lighter, quieter treatment. Flip the toggle to compare.
   ============================================================ */

/* Eyebrows / labels / accents on LIGHT surfaces → teal */
[data-refine="on"] .statement-quote em,
[data-refine="on"] .cross-sell-head a,
[data-refine="on"] .cross-sell-head button,
[data-refine="on"] .pd-specs-head,
[data-refine="on"] .preorder-cta,
[data-refine="on"] .success-milestone-date { color: var(--teal); }

/* Eyebrow component (.section-label) is surface-aware: teal on light .section
   blocks, aqua on dark .page-hero banners. !important beats the inline gold
   the Eyebrow component sets. */
[data-refine="on"] .section .section-label { color: var(--teal) !important; }
/* Night: dark teal vanishes on the dark page — lift every section eyebrow to aqua (Nika) */
[data-refine="on"][data-theme="night"] .section .section-label { color: var(--teal-accent) !important; }
[data-refine="on"] .page-hero .section-label { color: var(--teal-accent) !important; }

/* Eyebrows / accents on DARK surfaces → aqua */
[data-refine="on"] .ritual-step-time,
[data-refine="on"] .ritual-title em,
[data-refine="on"] .footer-label { color: var(--teal-accent); }

/* Benefit stat number — match the turquoise caption beside it (Nika) */
[data-refine="on"] .benefit-stat .num { color: #009CA6; }
[data-theme="night"] .benefit-stat .num { color: #2FC4CC; }

/* Left-accent borders → teal */
[data-refine="on"] .nika-note { border-left-color: var(--teal); }

/* Nav active underline → teal (logo dot stays GOLD — sparing use #1) */
[data-refine="on"] .nav-link.active::after { background: var(--teal); }

/* Cart CTA: gold pill → teal pill */
/* Cart stays gold — the one money CTA keeps the brand's single accent */
[data-refine="on"] .cart-cta { background: var(--gold); color: var(--charcoal); }
[data-refine="on"] .cart-cta:hover { background: var(--gold-hover); color: var(--pure-white); box-shadow: var(--shadow-gold); }
[data-refine="on"] .cart-cta-count { background: #3D2914; color: var(--gold); }
[data-refine="on"] .cart-cta:hover .cart-cta-count { background: var(--pure-white); color: var(--gold-hover); }

/* btn-primary intentionally LEFT GOLD — sparing use #2 (the one money CTA) */

/* Day theme-toggle active sun icon */
[data-refine="on"][data-theme="day"] .theme-toggle .opt.day { color: var(--teal); }

/* Night-mode gold survivors → aqua */
[data-refine="on"][data-theme="night"] .statement-quote em,
[data-refine="on"][data-theme="night"] .util-item i { color: var(--teal-accent); }
[data-refine="on"][data-theme="night"] .util-pill { background: rgba(127,217,217,0.15); color: var(--teal-accent); }
[data-refine="on"][data-theme="night"] .nika-note { border-left-color: var(--teal-accent); }

/* FA icons: lighter & quieter. True hairline strokes need the custom
   icon set (the deferred, bigger job) — this is the quick "for now" pass. */
[data-refine="on"] i.fas,
[data-refine="on"] i.fab { opacity: 0.7; }
/* Key action / status icons stay full-strength */
[data-refine="on"] .btn i,
[data-refine="on"] .cart-cta i,
[data-refine="on"] .bog-pay-btn i,
[data-refine="on"] .success-icon i,
[data-refine="on"] .toast i,
[data-refine="on"] .theme-toggle i { opacity: 1; }

/* ============================================================
   MOBILE NAVIGATION — hamburger + full-screen drawer (≤820px)
   ============================================================ */
.nav-burger {
  display: none;
  width: 44px; height: 44px;
  background: var(--menthol);
  border: none;
  color: var(--teal);
  border-radius: 8px;
  font-size: 16px;
  cursor: pointer;
  font-family: inherit;
  align-items: center; justify-content: center;
  transition: all 0.2s;
  flex-shrink: 0;
}
@media (max-width: 430px) {
  .nav-burger { width: 40px; height: 40px; }
}

.mobile-nav {
  position: fixed; inset: 0;
  z-index: 200;
  display: flex; justify-content: flex-end;
  pointer-events: none;
  visibility: hidden;
}
.mobile-nav.open { pointer-events: auto; visibility: visible; }
.mobile-nav-scrim {
  position: absolute; inset: 0;
  z-index: 0;
  background: rgba(0, 0, 0, 0.35);
  border: none; padding: 0; cursor: pointer;
  opacity: 0; transition: opacity 0.32s var(--ease);
}
.mobile-nav.open .mobile-nav-scrim { opacity: 1; }
.mobile-nav-panel {
  position: relative;
  z-index: 1;
  width: min(380px, 86vw);
  height: 100%;
  background: var(--bg-elevated);
  border-left: 1px solid var(--border);
  box-shadow: -20px 0 60px rgba(0,0,0,0.22);
  padding: 84px 26px 28px;
  display: flex; flex-direction: column; gap: 8px;
  transform: translateX(100%);
  transition: transform 0.34s var(--ease);
  overflow-y: auto;
}
.mobile-nav.open .mobile-nav-panel { transform: translateX(0); }
.mobile-nav-links { display: flex; flex-direction: column; }
.mobile-nav-link {
  display: flex; align-items: center; justify-content: space-between;
  min-height: 56px;
  padding: 6px 4px;
  background: none; border: none;
  border-bottom: 1px solid var(--border-soft);
  font-family: inherit;
  font-size: 19px; font-weight: 500;
  letter-spacing: -0.2px;
  color: var(--fg);
  cursor: pointer;
  text-align: left;
  transition: color 0.2s, padding 0.2s;
}
.mobile-nav-link i { color: var(--fg-dim); font-size: 13px; transition: transform 0.2s, color 0.2s; }
.mobile-nav-link:hover, .mobile-nav-link:hover i { color: var(--teal); }
.mobile-nav-link:hover i { transform: translateX(3px); }
.mobile-nav-link.active { color: var(--teal); }
[data-theme="night"] .mobile-nav-link.active,
[data-theme="night"] .mobile-nav-link:hover { color: var(--teal-accent); }
.mobile-nav-cart {
  margin-top: 22px;
  justify-content: center;
  padding: 15px !important;
  font-size: 14px !important;
}
.mobile-nav-foot {
  display: flex; gap: 10px; margin-top: 16px; flex-wrap: wrap;
}
.mobile-nav-foot .lang-toggle {
  flex: 1; justify-content: center;
  min-height: 44px; font-size: 12px;
  border: 1px solid var(--border);
  background: var(--surface-soft);
}

@media (max-width: 820px) {
  .nav-menu { display: none; }
  .nav-burger { display: inline-flex; }
  .nav-actions .theme-toggle { display: none; }
  .nav-container { gap: 10px; }
  .nav-actions { justify-self: end; margin-left: auto; }
  .cart-cta .cart-cta-label { display: none; }
  .cart-cta { padding: 9px 11px; }
}
@media (max-width: 430px) {
  .nav-actions { gap: 4px; }
}
@media (min-width: 821px) {
  .mobile-nav { display: none; }
}

/* ============================================================
   PRODUCT DETAIL — gallery (main + thumbnail rail)
   ============================================================ */
.pd-gallery { display: flex; flex-direction: column; gap: 12px; min-width: 0; max-width: 100%; }

.pd-frame-ph {
  position: absolute; inset: 0;
  display: flex; align-items: center; justify-content: center;
}
.pd-frame-ph-cap {
  position: absolute; left: 0; right: 0; bottom: 22px;
  display: flex; flex-direction: column; align-items: center; gap: 6px;
  text-align: center;
}
.pd-frame-ph-label {
  font-family: var(--font-mono, ui-monospace, "SF Mono", Menlo, monospace);
  font-size: 12px; letter-spacing: 2.5px; font-weight: 600;
  color: rgba(255,255,255,0.92);
}
.pd-frame-ph-sub {
  font-family: var(--font-mono, ui-monospace, "SF Mono", Menlo, monospace);
  font-size: 10px; letter-spacing: 1.5px;
  color: rgba(255,255,255,0.5);
  text-transform: uppercase;
}

/* Sticky mobile buy-bar (hidden on desktop) */
.pd-buybar {
  display: none;
  position: fixed; left: 0; right: 0; bottom: 0;
  z-index: 150;
  align-items: center; justify-content: space-between; gap: 14px;
  padding: 12px 16px calc(16px + env(safe-area-inset-bottom));
  background: var(--bg-elevated);
  border-top: 1px solid var(--border);
  box-shadow: 0 -8px 28px rgba(0,0,0,0.12);
}

.pd-buybar-info { display: flex; flex-direction: column; line-height: 1.2; flex: 1 1 auto; min-width: 0; }
.pd-buybar-name { font-size: 11px; letter-spacing: 1px; text-transform: uppercase; color: var(--fg-muted); font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.pd-buybar-price { font-size: 19px; font-weight: 700; color: var(--teal); display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; }
[data-theme="night"] .pd-buybar-price { color: var(--teal-accent); }
.pd-buybar-price small { font-size: 10.5px; font-weight: 500; color: var(--fg-muted); letter-spacing: 0; }
.pd-buybar-btn { flex: 0 0 auto; padding: 12px 22px; }
@media (max-width: 820px) {
  .pd-buybar { display: flex; }
  /* keep the page clear of the fixed bar */
  main.section:has(.pd-buybar) { padding-bottom: 96px; }
}

/* ============================================================
   COMPARE STRIP — SHIZU 1 vs 1+
   ============================================================ */
.compare {
  margin-top: 64px;
  padding-top: 40px;
  border-top: 1px solid var(--border);
}
.compare-head { margin-bottom: 24px; max-width: 620px; }
.compare-head h3 {
  font-size: clamp(22px, 3vw, 28px); font-weight: 700;
  color: var(--teal); margin: 0 0 8px; letter-spacing: -0.5px;
}
[data-theme="night"] .compare-head h3 { color: var(--teal-accent); }
.compare-head p { font-size: 14px; color: var(--fg-muted); line-height: 1.6; margin: 0; }
.compare-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 18px;
  align-items: start;
}
@media (max-width: 620px) { .compare-grid { grid-template-columns: 1fr; } }
.compare-col {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 26px 24px 24px;
  display: flex; flex-direction: column;
}
[data-theme="day"] .compare-col { background: var(--pure-white); box-shadow: var(--shadow-sm); }
.compare-col.is-plus {
  border-color: rgba(13,76,75,0.22);
  background: linear-gradient(165deg, rgba(127,217,217,0.08) 0%, var(--surface) 55%);
}
[data-theme="night"] .compare-col.is-plus {
  border-color: rgba(127,217,217,0.3);
  background: linear-gradient(165deg, rgba(127,217,217,0.1) 0%, var(--surface) 60%);
}
.compare-col.is-current { box-shadow: 0 0 0 2px var(--gold); }
.compare-flag {
  position: absolute; top: -11px; left: 24px;
  background: var(--gold); color: #3D2914;
  font-size: 9.5px; font-weight: 700; letter-spacing: 1.5px;
  text-transform: uppercase;
  white-space: nowrap;
  padding: 4px 11px; border-radius: 100px;
}
.compare-col-name { font-size: 22px; font-weight: 700; color: var(--fg); letter-spacing: -0.4px; }
.compare-col-price { font-size: 26px; font-weight: 700; color: var(--teal); margin-top: 8px; letter-spacing: -0.5px; }
[data-theme="night"] .compare-col-price { color: var(--teal-accent); }
.compare-col-monthly { font-size: 11.5px; color: var(--fg-muted); margin-top: 2px; }
.compare-list {
  list-style: none; padding: 18px 0 0; margin: 18px 0 0;
  border-top: 1px dashed var(--border);
  display: flex; flex-direction: column; gap: 10px;
  flex: 1;
}
.compare-list li {
  font-size: 13px; color: var(--fg); line-height: 1.45;
  display: flex; gap: 9px; align-items: baseline;
}
.compare-list li i { color: var(--teal); font-size: 11px; flex-shrink: 0; }
[data-theme="night"] .compare-list li i { color: var(--teal-accent); }
.compare-list li.is-lead {
  font-weight: 600; color: var(--fg-muted);
  font-size: 11px; letter-spacing: 1px; text-transform: uppercase;
}
.compare-btn { margin-top: 22px; width: 100%; }
.compare-btn:disabled { opacity: 0.55; cursor: default; transform: none; box-shadow: none; }

/* ============================================================
   TAP TARGETS — bump small controls to a comfortable size on touch
   ============================================================ */
@media (max-width: 820px) {
  .qty-btn { width: 34px; height: 34px; font-size: 15px; }
  .nav-link { padding: 10px 0; }
}

/* ============================================================
   BENEFIT GLYPHS — custom thin-line marks (replace generic FA chips)
   ============================================================ */
.benefit-glyph {
  width: 22px; height: 22px;
  background: transparent;
  border-radius: 0;
  display: flex; align-items: center; justify-content: center;
  margin: 0;
  color: #009CA6;
  flex: 0 0 auto;
}
[data-theme="night"] .benefit-glyph { background: transparent; color: var(--teal-accent); }
.benefit-glyph svg { width: 22px; height: 22px; display: block; }

/* ============================================================
   PRODUCT DETAIL — scroll zoom gallery
   S monogram watermark + water-drops behind · per-frame cursor zoom
   (1.3x + 3D tilt) · drifting caustics + steam on hover.
   ============================================================ */
.pdz {
  position: relative; border-radius: 18px; overflow: hidden; padding: 16px;
  min-width: 0; max-width: 100%; box-sizing: border-box;
  background-color: #e6f1ef;
  border: 1px solid rgba(13,76,75,.12);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.55);
  transition: background-color .55s ease, border-color .55s ease, box-shadow .55s ease;
}
[data-theme="night"] .pdz {
  background-color: #082423;
  border-color: var(--border);
  box-shadow: none;
}
.pdz-wm { position: absolute; inset: 0; pointer-events: none; overflow: hidden; border-radius: inherit; }
/* Flowing-water WebGL shader, full-bleed behind the gallery rail */
.pdz-shader {
  position: absolute; inset: 0; width: 100%; height: 100%;
  display: block; z-index: 0; border-radius: inherit;
}
.pdz-kanji {
  position: absolute; top: 50%; left: 52%; transform: translate(-50%,-50%);
  font-family: var(--font-display); font-weight: 300; line-height: 1;
  font-size: clamp(240px, 46vh, 460px); color: rgba(13,76,75,.07); user-select: none;
  z-index: 1; transition: color .55s ease;
}
[data-theme="night"] .pdz-kanji { color: rgba(235,250,248,.12); }

.pdz-rail {
  position: relative; z-index: 1; display: flex; gap: 14px;
  min-width: 0; max-width: 100%;
  overflow-x: auto; scroll-snap-type: x mandatory;
  -webkit-overflow-scrolling: touch; padding: 4px 2px 14px;
  scrollbar-width: thin; scrollbar-color: var(--teal) transparent;
}
[data-theme="night"] .pdz-rail { scrollbar-color: var(--teal-accent) transparent; }
.pdz-rail::-webkit-scrollbar { height: 7px; }
.pdz-rail::-webkit-scrollbar-track { background: rgba(13,76,75,.10); border-radius: 99px; }
.pdz-rail::-webkit-scrollbar-thumb { background: var(--teal); border-radius: 99px; }
[data-theme="night"] .pdz-rail::-webkit-scrollbar-track { background: rgba(127,217,217,.12); }
[data-theme="night"] .pdz-rail::-webkit-scrollbar-thumb { background: var(--teal-accent); }

.pdz .shizu-tile {
  position: relative; flex: 0 0 auto;
  width: min(86%, 420px); aspect-ratio: 4/5;
  scroll-snap-align: center; border-radius: 14px; overflow: hidden;
  perspective: 1000px; cursor: crosshair;
  background-color: #f3f9f8;
  border: 1px solid rgba(13,76,75,.12);
  box-shadow: 0 18px 50px -30px rgba(13,76,75,.5);
  transition: background-color .55s ease, border-color .55s ease, box-shadow .55s ease;
}
[data-theme="night"] .pdz .shizu-tile {
  background-color: #0D1F1E;
  border-color: rgba(127,217,217,.16);
}
.pdz .shizu-zoom-img {
  position: absolute; inset: 0; width: 100%; height: 100%;
  object-fit: cover; transform-style: preserve-3d; transform: scale(1);
  transition: filter .45s cubic-bezier(0.65,0,0.35,1);
  will-change: transform;
}
.pdz .shizu-tile.is-wide { width: 94%; }
.pdz .shizu-tile:hover .shizu-zoom-img { filter: contrast(1.06) saturate(1.04) brightness(.97); }
.pdz-ph { display: flex; align-items: center; justify-content: center; }

.shizu-caustic {
  position: absolute; inset: -25%; pointer-events: none; z-index: 1;
  opacity: 0; mix-blend-mode: screen; filter: blur(22px) contrast(1.25);
  transition: opacity .5s cubic-bezier(0.65,0,0.35,1);
  background:
    radial-gradient(26% 34% at 30% 28%, rgba(224,248,246,.85), transparent 60%),
    radial-gradient(22% 30% at 70% 44%, rgba(77,182,172,.80), transparent 60%),
    radial-gradient(30% 38% at 52% 72%, rgba(201,169,110,.40), transparent 62%),
    radial-gradient(18% 26% at 84% 76%, rgba(128,203,196,.75), transparent 60%);
  animation: shizuCaustic 24s ease-in-out infinite alternate;
}
.shizu-tile:hover .shizu-caustic { opacity: .52; }
@keyframes shizuCaustic {
  0%   { transform: translate3d(-3%,-2%,0) scale(1.05) rotate(0deg); }
  50%  { transform: translate3d(2%,3%,0)  scale(1.18) rotate(4deg); }
  100% { transform: translate3d(4%,-1%,0) scale(1.1)  rotate(-3deg); }
}
.shizu-steam { position: absolute; inset: 0; pointer-events: none; z-index: 1; opacity: 0; transition: opacity .5s cubic-bezier(0.65,0,0.35,1); }
.shizu-tile:hover .shizu-steam { opacity: 1; }
.shizu-steam span {
  position: absolute; bottom: -14%; border-radius: 50%;
  background: radial-gradient(circle at 34% 30%, rgba(224,248,246,.55), rgba(128,203,196,.12) 60%, transparent 72%);
  box-shadow: 0 0 16px rgba(77,182,172,.18); animation: shizuRise linear infinite;
}
.shizu-steam span:nth-child(1) { left: 26%; width: 24px; height: 24px; animation-duration: 7.5s; animation-delay: .2s; }
.shizu-steam span:nth-child(2) { left: 54%; width: 16px; height: 16px; animation-duration: 9s;   animation-delay: 1.6s; }
.shizu-steam span:nth-child(3) { left: 74%; width: 30px; height: 30px; animation-duration: 8.2s; animation-delay: .9s; }
@keyframes shizuRise {
  0%   { transform: translateY(0) translateX(0) scale(.7); opacity: 0; }
  15%  { opacity: .7; }
  85%  { opacity: .5; }
  100% { transform: translateY(-118%) translateX(14px) scale(1.15); opacity: 0; }
}

/* Frame labels — compact pill chips in the top corners (consistent across frames) */
.shizu-tag {
  position: absolute; left: 12px; right: 12px; top: 12px; z-index: 3;
  display: flex; align-items: flex-start; justify-content: space-between; gap: 10px;
  padding: 0; background: none; border: none; -webkit-backdrop-filter: none; backdrop-filter: none;
  pointer-events: none;
}
.shizu-tag-name, .shizu-tag-idx {
  padding: 7px 13px; border-radius: 999px;
  background: rgba(255,255,255,.74);
  -webkit-backdrop-filter: blur(10px) saturate(1.2); backdrop-filter: blur(10px) saturate(1.2);
  border: 1px solid rgba(13,76,75,.12);
  box-shadow: 0 6px 18px -10px rgba(13,76,75,.5);
  transition: background-color .55s ease, border-color .55s ease, color .55s ease;
}
.shizu-tag-name { font-family: var(--font-display); font-weight: 600; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; color: #0d4c4b; }
.shizu-tag-idx  { font-size: 10px; font-weight: 600; letter-spacing: .16em; color: var(--teal); white-space: nowrap; }
[data-theme="night"] .shizu-tag-name, [data-theme="night"] .shizu-tag-idx {
  background: rgba(13,43,43,.55); border-color: rgba(127,217,217,.22);
  box-shadow: 0 6px 18px -10px rgba(0,0,0,.6);
}
[data-theme="night"] .shizu-tag-name { color: var(--pure-white); }
[data-theme="night"] .shizu-tag-idx  { color: var(--teal-accent); }

/* Smooth color crossfade across detail-page surfaces on day/night switch */
body,
.pd-info, .pd-title, .pd-tagline,
.pd-specs, .pd-spec, .pd-spec-label, .pd-spec-value,
.compare, .compare-col {
  transition: background-color .5s ease, color .5s ease, border-color .5s ease;
}

@media (prefers-reduced-motion: reduce) {
  .shizu-caustic,
.shizu-steam span { animation: none; }
}

/* ============================================================
   PAGE TRANSITIONS — View Transitions API (same-document)
   Header & footer stay put; only <main> fades + scales, on a
   slow, deliberate ceramic easing. Falls back to instant swap
   in browsers without the API (handled in App.jsx).
   ============================================================ */
@media (prefers-reduced-motion: no-preference) {
  .header-wrap { view-transition-name: site-header; }
  .footer      { view-transition-name: site-footer; }
  main         { view-transition-name: page; }

  /* persistent chrome: no animation, just hold in place */
  ::view-transition-group(site-header),
  ::view-transition-group(site-footer) { animation-duration: 0s; }
  /* the root snapshot holds solid (theme bg) → no flash */
  ::view-transition-old(root),
  ::view-transition-new(root) { animation: none; }

  ::view-transition-old(page) {
    animation: shizuPageOut 400ms cubic-bezier(0.65, 0, 0.35, 1) both;
  }
  ::view-transition-new(page) {
    animation: shizuPageIn 400ms cubic-bezier(0.65, 0, 0.35, 1) 150ms both;
  }
}
@keyframes shizuPageOut {
  from { opacity: 1; transform: scale(1); }
  to   { opacity: 0; transform: scale(0.96); }
}
@keyframes shizuPageIn {
  from { opacity: 0; transform: scale(0.96); }
  to   { opacity: 1; transform: scale(1); }
}

/* ============================================================
   LIVELINESS PASS (Nika) — subtle, reduced-motion-safe polish
   · Ritual timeline: warmer, less "appointment-list"
   · Newsletter: a more tempting, shimmering subscribe block
   · Why-SHIZU stats: a touch of luxe glow
   ============================================================ */

/* ── Ritual: living timeline ─────────────────────────────── */
.ritual-steps { position: relative; }
.ritual-step-num { position: relative; transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease); }
.ritual-step:hover .ritual-step-num {
  transform: scale(1.08);
  box-shadow: 0 6px 18px -4px rgba(127,217,217,0.6);
}
/* the time becomes a soft pill instead of bare clinical text */
.ritual-step-time {
  padding: 5px 11px; border-radius: 999px;
  border: 1px solid rgba(201,169,110,0.24);
  transition: background 0.3s var(--ease), border-color 0.3s var(--ease);
}

@media (prefers-reduced-motion: no-preference) {
  /* a gentle halo breathes around each step number, staggered down the list */
  .ritual-step-num::after {
    content: ''; position: absolute; inset: -4px; border-radius: 50%;
    border: 1px solid rgba(127,217,217,0.5);
    opacity: 0; pointer-events: none;
    animation: ritualPulse 5s var(--ease) infinite;
  }
  .ritual-step:nth-child(2) .ritual-step-num::after { animation-delay: 1.25s; }
  .ritual-step:nth-child(3) .ritual-step-num::after { animation-delay: 2.5s; }
  .ritual-step:nth-child(4) .ritual-step-num::after { animation-delay: 3.75s; }
}
@keyframes ritualPulse {
  0%   { transform: scale(0.9); opacity: 0; }
  35%  { opacity: 0.85; }
  100% { transform: scale(1.55); opacity: 0; }
}

/* ── Newsletter: more tempting, quietly animated ─────────── */
@media (prefers-reduced-motion: no-preference) {
  .newsletter-section::after {
    content: ''; position: absolute; top: 0; left: -45%;
    width: 45%; height: 100%; z-index: 0; pointer-events: none;
    background: linear-gradient(100deg, transparent, rgba(255,255,255,0.10), transparent);
    transform: skewX(-18deg);
    animation: nlSweep 8s ease-in-out infinite;
  }
  .newsletter-form .btn-primary { animation: nlBtnGlow 3.4s ease-in-out infinite; }
}
@keyframes nlSweep {
  0%, 55% { left: -50%; }
  100%    { left: 135%; }
}
@keyframes nlBtnGlow {
  0%, 100% { box-shadow: 0 0 0 0 rgba(201,169,110,0); }
  50%      { box-shadow: 0 8px 26px -6px rgba(201,169,110,0.6); }
}
.newsletter-form .btn-primary { position: relative; overflow: hidden; transition: transform 0.2s var(--ease); }
.newsletter-form .btn-primary:hover { transform: translateY(-2px) scale(1.02); }
.newsletter-form input { transition: background 0.25s var(--ease), border-color 0.25s var(--ease), box-shadow 0.25s var(--ease); }
.newsletter-form input:focus { box-shadow: 0 0 0 4px rgba(127,217,217,0.18); }

/* ── Why SHIZU: luxe glow on the stats ─ */
.benefit-stat .num {
  position: relative;
  text-shadow: 0 0 18px rgba(0,156,166,0.12);
  transition: text-shadow 0.4s var(--ease);
}
.benefit-card:hover .benefit-stat .num { text-shadow: 0 0 26px rgba(0,156,166,0.34); }
[data-theme="night"] .benefit-stat .num { text-shadow: 0 0 18px rgba(47,196,204,0.18); }
[data-theme="night"] .benefit-card:hover .benefit-stat .num { text-shadow: 0 0 28px rgba(47,196,204,0.42); }

/* ============================================================
   ABOUT PAGE
   ============================================================ */

/* ── Hero ─────────────────────────────────────────────────── */
.about-hero {
  position: relative;
  overflow: hidden;
  background: linear-gradient(165deg, var(--menthol) 0%, #F1F8F7 58%, var(--pure-white) 100%);
  padding: 84px 0 76px;
}
[data-theme="night"] .about-hero {
  background: linear-gradient(165deg, var(--bg-elevated) 0%, var(--bg) 100%);
}
.about-hero::before {
  content: ''; position: absolute; top: -140px; right: -90px;
  width: 460px; height: 460px; pointer-events: none;
  background: radial-gradient(circle, rgba(127,217,217,0.30), transparent 70%);
}
[data-theme="night"] .about-hero::before { background: radial-gradient(circle, rgba(127,217,217,0.14), transparent 70%); }
.about-hero-inner { position: relative; z-index: 1; max-width: 760px; }
.about-hero h1 {
  font-size: clamp(30px, 4.4vw, 48px); font-weight: 700; letter-spacing: -0.5px;
  color: var(--teal); margin: 14px 0 18px; line-height: 1.16; text-wrap: balance;
}
[data-theme="night"] .about-hero h1 { color: var(--teal-accent); }
.about-hero-lede {
  font-size: clamp(15px, 0.9rem + 0.3vw, 17px); line-height: 1.72;
  color: var(--fg-muted); max-width: 620px; margin: 0 0 30px; text-wrap: pretty;
}
.about-hero-cta { display: flex; gap: 12px; flex-wrap: wrap; }
[data-refine="on"] .about-hero .section-label { color: var(--teal) !important; }
[data-refine="on"][data-theme="night"] .about-hero .section-label { color: var(--teal-accent) !important; }
:lang(ka) .about-hero h1 { font-size: clamp(25px, 3.4vw, 39px); line-height: 1.3; letter-spacing: 0; }
:lang(ka) .about-hero-lede { line-height: 1.8; }

/* ── Shared band + lead ──────────────────────────────────── */
.about-band { background: var(--menthol); }
[data-theme="night"] .about-band { background: var(--bg-elevated); }
.about-lead {
  font-size: 15px; line-height: 1.75; color: var(--fg-muted);
  max-width: 60ch; margin: 0 0 16px; text-wrap: pretty;
}
.about-lead:last-child { margin-bottom: 0; }
:lang(ka) .about-lead { line-height: 1.85; }

/* ── Brand story (two columns) ───────────────────────────── */
.about-story-grid {
  display: grid; grid-template-columns: 1.05fr 0.95fr; gap: 56px; align-items: center;
}
@media (max-width: 900px) { .about-story-grid { grid-template-columns: 1fr; gap: 36px; } }
.about-visual {
  position: relative; aspect-ratio: 4 / 5; border-radius: 18px; overflow: hidden;
  box-shadow: var(--shadow-lg); border: 1px solid var(--border);
}
.about-visual img { width: 100%; height: 100%; object-fit: cover; object-position: 50% 60%; display: block; }
.about-visual::after {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, transparent 55%, rgba(13,76,75,0.22) 100%);
}
@media (max-width: 900px) { .about-visual { aspect-ratio: 16 / 11; } }

/* ── Focus / service cards (shared grid) ─────────────────── */
.focus-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 4px; }
@media (max-width: 980px) { .focus-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 560px) { .focus-grid { grid-template-columns: 1fr; } }
.focus-card {
  background: var(--pure-white); border: 1px solid var(--gray-200); border-radius: 16px;
  padding: 28px 26px; box-shadow: var(--shadow-sm);
  display: flex; flex-direction: column;
  transition: transform 0.3s var(--ease), box-shadow 0.3s var(--ease), border-color 0.3s var(--ease);
}
.focus-card:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); border-color: var(--teal-accent); }
[data-theme="night"] .focus-card { background: var(--surface); border-color: var(--border); box-shadow: none; }
[data-theme="night"] .focus-card:hover { border-color: var(--teal-accent); }
.focus-icon {
  width: 52px; height: 52px; border-radius: 14px; flex: 0 0 auto;
  background: var(--menthol); color: var(--teal);
  display: flex; align-items: center; justify-content: center; margin-bottom: 18px;
  font-size: 20px;
}
[data-theme="night"] .focus-icon { background: rgba(127,217,217,0.12); color: var(--teal-accent); }
.focus-icon svg { width: 27px; height: 27px; display: block; }
.focus-card h3 { font-size: 17px; font-weight: 600; color: var(--fg); margin: 0 0 8px; letter-spacing: -0.01em; }
[data-theme="night"] .focus-card h3 { color: var(--teal-accent); }
.focus-card p { font-size: 13.5px; line-height: 1.62; color: var(--fg-muted); margin: 0; }
:lang(ka) .focus-card p { line-height: 1.72; }

/* ── What matters to us (text + checklist) ───────────────── */
.standards-grid { display: grid; grid-template-columns: 0.85fr 1.15fr; gap: 56px; align-items: start; }
@media (max-width: 900px) { .standards-grid { grid-template-columns: 1fr; gap: 32px; } }
.check-list {
  display: grid; grid-template-columns: repeat(2, 1fr); gap: 16px 30px;
  justify-items: center; align-content: center;
  border: 1px solid var(--border); border-radius: 18px; padding: 28px 32px;
}
@media (max-width: 560px) { .check-list { grid-template-columns: 1fr; padding: 24px; } }
.check-row { display: flex; gap: 13px; align-items: center; }
.check-ic {
  width: 26px; height: 26px; flex: 0 0 auto; border-radius: 50%;
  background: var(--teal); color: var(--pure-white);
  display: flex; align-items: center; justify-content: center; font-size: 11px; margin-top: 1px;
}
[data-theme="night"] .check-ic { background: var(--teal-accent); color: var(--navy); }
.check-row .tx { font-size: 14px; line-height: 1.5; color: var(--fg); }
:lang(ka) .check-row .tx { line-height: 1.6; }

/* ── Why upgrade (copy + bullets) ────────────────────────── */
.why-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; align-items: center; }
@media (max-width: 900px) { .why-grid { grid-template-columns: 1fr; gap: 32px; } }
.why-bullets {
  list-style: none; margin: 0; padding: 28px 30px; border-radius: 16px;
  background: var(--surface-soft); border: 1px solid var(--border);
  display: flex; flex-direction: column; gap: 14px;
}
[data-theme="night"] .why-bullets { background: var(--bg-elevated); }
.why-bullets li { display: flex; gap: 13px; align-items: flex-start; font-size: 14px; color: var(--fg); line-height: 1.5; }
.why-bullets li i { color: var(--teal); font-size: 13px; margin-top: 3px; flex: 0 0 auto; }
[data-theme="night"] .why-bullets li i { color: var(--teal-accent); }
:lang(ka) .why-bullets li { line-height: 1.6; }

/* ── Final CTA ───────────────────────────────────────────── */
.about-cta {
  position: relative; overflow: hidden; text-align: center;
  background: linear-gradient(135deg, var(--teal) 0%, var(--teal-light) 100%);
  color: var(--pure-white); padding: 76px 0;
}
.about-cta::before {
  content: ''; position: absolute; inset: 0; pointer-events: none;
  background-image:
    radial-gradient(circle at 82% 22%, rgba(127,217,217,0.22), transparent 55%),
    radial-gradient(circle at 12% 84%, rgba(201,169,110,0.12), transparent 52%);
}
.about-cta-inner { position: relative; z-index: 1; max-width: 640px; margin: 0 auto; }
.about-cta h2 { font-size: clamp(26px, 3.4vw, 38px); font-weight: 700; color: var(--pure-white); margin: 0 0 14px; letter-spacing: -0.5px; line-height: 1.2; }
.about-cta p { font-size: 15px; line-height: 1.7; color: rgba(255,255,255,0.85); margin: 0 0 30px; }
.about-cta-btns { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }
:lang(ka) .about-cta h2 { font-size: clamp(23px, 3vw, 33px); line-height: 1.3; }
:lang(ka) .about-cta p { line-height: 1.8; }

/* ============================================================
   FAQ SCREEN — gallery-style "ceramic" accordion
   Ported from the SHIZUKU FAQ concept, recolored to SHIZU's
   day/night tokens. Effects: 3D tile lift, water ripple,
   floating ceramic particles, glass search.
   ============================================================ */
.faq-screen { position: relative; overflow: hidden; }

/* Soft water wash behind the whole screen — teal pools, theme-aware */
.faq-wash {
  position: absolute; inset: 0; z-index: 0; pointer-events: none;
  background:
    radial-gradient(900px 560px at 80% -6%, rgba(127,217,217,0.16), transparent 60%),
    radial-gradient(760px 520px at 8% 104%, rgba(127,217,217,0.10), transparent 58%),
    radial-gradient(620px 440px at 50% 50%, rgba(201,169,110,0.05), transparent 70%);
}
[data-theme="night"] .faq-wash {
  background:
    radial-gradient(900px 560px at 80% -6%, rgba(127,217,217,0.10), transparent 60%),
    radial-gradient(760px 520px at 8% 104%, rgba(127,217,217,0.07), transparent 58%),
    radial-gradient(620px 440px at 50% 50%, rgba(201,169,110,0.05), transparent 72%);
}
.faq-screen > * { position: relative; z-index: 1; }

/* ---- floating ceramic particles ---- */
.faq-particles { position: absolute; inset: 0; z-index: 0; pointer-events: none; overflow: hidden; }
.faq-shard {
  position: absolute; opacity: 0; will-change: transform, opacity;
  animation: faq-drift linear infinite; filter: blur(0.3px);
}
@keyframes faq-drift {
  0%   { transform: translate3d(0, 18px, 0) rotate(0deg) scale(0.9);     opacity: 0; }
  12%  { opacity: var(--max-op); }
  50%  { transform: translate3d(14px, -46px, 0) rotate(120deg) scale(1.05); }
  88%  { opacity: var(--max-op); }
  100% { transform: translate3d(-8px, -96px, 0) rotate(240deg) scale(0.92); opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  .faq-shard { animation: none; opacity: var(--max-op); }
}

/* ---- water ripple ---- */
.faq-ripple-layer { position: fixed; inset: 0; z-index: 60; pointer-events: none; overflow: hidden; }
.faq-ripple {
  position: absolute; border-radius: 50%;
  transform: translate(-50%, -50%) scale(0);
  border: 1.5px solid rgba(127,217,217,0.6);
  animation: faq-ripple-out 1.15s var(--ease) forwards;
}
.faq-ripple.r2 { animation-delay: 0.12s; border-color: rgba(127,217,217,0.35); }
.faq-ripple.r3 { animation-delay: 0.24s; }
@keyframes faq-ripple-out {
  0%   { transform: translate(-50%, -50%) scale(0);   opacity: 0.9; }
  100% { transform: translate(-50%, -50%) scale(1);   opacity: 0; }
}

/* ---- about blurb (droplet philosophy) ---- */
.faq-about {
  max-width: 600px; margin: 40px auto 0; padding: 30px 34px; text-align: center;
  /* Frosted glass (Nika: "same frosted glass effect here"): a translucent
     surface + backdrop-blur frosts the water field behind it, with a soft glassy
     border + inner highlight instead of the previous hard 1px line. */
  background: color-mix(in oklab, var(--surface) 60%, transparent);
  -webkit-backdrop-filter: blur(14px) saturate(1.08);
  backdrop-filter: blur(14px) saturate(1.08);
  border: 1px solid color-mix(in oklab, var(--teal) 12%, rgba(255,255,255,0.55));
  border-radius: var(--r-2xl);
  box-shadow: 0 20px 54px -30px rgba(11,46,45,0.42), inset 0 1px 0 rgba(255,255,255,0.55);
}
[data-theme="night"] .faq-about {
  background: color-mix(in oklab, var(--surface) 52%, transparent);
  border-color: rgba(127,217,217,0.16);
  box-shadow: 0 20px 54px -30px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,255,0.06);
}

.faq-about p {
  font-size: 18px; line-height: 1.6; color: var(--fg); font-style: italic; font-weight: 300; margin: 0;
}

/* ---- search ---- */
.faq-search-zone { max-width: 720px; margin: 0 auto; padding: 0 24px; }
.faq-search { position: relative; max-width: 560px; margin: 0 auto; }
.faq-search input {
  width: 100%; font-family: inherit; font-size: 15px; color: var(--fg);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-full); padding: 16px 22px 16px 52px;
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.faq-search input::placeholder { color: var(--fg-dim); }
.faq-search input:focus { outline: none; border-color: var(--teal); box-shadow: var(--shadow-md); }
.faq-search .faq-search-ic {
  position: absolute; left: 22px; top: 50%; transform: translateY(-50%);
  color: var(--teal); opacity: 0.85; pointer-events: none;
}
[data-theme="night"] .faq-search .faq-search-ic { color: var(--teal-accent); }

/* ---- ceramic accordion ---- */
.faq-list {
  perspective: 1600px;
  max-width: 720px; margin: 34px auto 0; padding: 0 24px;
  display: flex; flex-direction: column; gap: 14px;
}
.faq-item {
  position: relative; border-radius: var(--r-2xl);
  background: var(--surface); border: 1px solid var(--border);
  transform-style: preserve-3d;
  transition: transform 0.55s var(--ease), box-shadow 0.55s var(--ease), background 0.4s var(--ease);
  z-index: 1;
}
/* gradient border (teal -> gold), revealed on hover / open */
.faq-item::before {
  content: ""; position: absolute; inset: 0; border-radius: var(--r-2xl); padding: 1px;
  -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite: xor; mask-composite: exclude;
  opacity: 0; transition: opacity 0.4s var(--ease); pointer-events: none;
}
.faq-item:hover { transform: scale(1.012); box-shadow: var(--shadow-md); }
.faq-item:hover::before { opacity: 0.5; }
.faq-item.open {
  transform: translateZ(34px) scale(1.018);
  box-shadow: var(--shadow-xl); z-index: 4;
}
.faq-item.open::before { opacity: 0.85; }
.faq-item.dropping { animation: faq-tile-drop 0.5s var(--ease); }
@keyframes faq-tile-drop {
  0%   { transform: translateZ(34px) scale(1.018); }
  45%  { transform: translateZ(14px) scale(1.004); }
  100% { transform: translateZ(34px) scale(1.018); }
}

.faq-q {
  width: 100%; display: flex; align-items: center; gap: 18px;
  background: none; border: none; cursor: pointer; text-align: left;
  padding: 22px 26px; color: var(--fg);
  font-family: inherit; font-size: clamp(16px, 2.2vw, 19px); font-weight: 600; line-height: 1.4;
}
.faq-q .faq-drop-ic { flex: none; color: var(--teal); opacity: 0.9; transition: transform 0.5s var(--ease); }
[data-theme="night"] .faq-q .faq-drop-ic { color: var(--teal-accent); }
.faq-item.open .faq-q .faq-drop-ic { transform: scale(1.16) rotate(8deg); }
.faq-q .faq-q-text { flex: 1; }
.faq-q .faq-chev { flex: none; color: var(--teal); opacity: 0.7; transition: transform 0.5s var(--ease); }
[data-theme="night"] .faq-q .faq-chev { color: var(--teal-accent); }
.faq-item.open .faq-q .faq-chev { transform: rotate(135deg); }

.faq-a { max-height: 0; overflow: hidden; opacity: 0; transition: max-height 0.55s var(--ease), opacity 0.45s var(--ease); }
.faq-item.open .faq-a { opacity: 1; }
.faq-a .faq-a-inner { padding: 0 26px 26px 62px; color: var(--fg-muted); font-size: 15px; line-height: 1.85; }
.faq-a .faq-tag {
  display: inline-block; font-size: 9px; letter-spacing: 2px; font-weight: 600;
  color: var(--teal); border: 1px solid rgba(45,110,108,0.4);
  border-radius: 4px; padding: 2px 7px; margin-bottom: 12px;
}
[data-theme="night"] .faq-a .faq-tag { color: var(--teal-accent); border-color: rgba(127,217,217,0.4); }

.faq-no-results {
  max-width: 720px; margin: 0 auto; padding: 40px 24px; text-align: center;
  color: var(--fg-dim); font-style: italic;
}

/* ---- still have questions ---- */
.faq-contact {
  max-width: 720px; margin: 72px auto 0; text-align: center; padding: 56px 34px;
  background:
    radial-gradient(700px 300px at 50% -40%, rgba(127,217,217,0.14), transparent 70%),
    var(--surface-soft);
  border: 1px solid var(--border-soft); border-radius: var(--r-2xl);
}
.faq-contact .faq-contact-drop { margin: 0 auto 20px; color: var(--teal); display: flex; justify-content: center; }
[data-theme="night"] .faq-contact .faq-contact-drop { color: var(--teal-accent); }
.faq-contact h2 { font-size: clamp(26px, 4vw, 36px); font-weight: 700; color: var(--fg); letter-spacing: -0.5px; line-height: 1.15; margin: 0; }
[data-theme="night"] .faq-contact h2 { color: var(--teal-accent); }
.faq-contact p { margin: 14px auto 0; max-width: 420px; color: var(--fg-muted); font-size: 15px; }
.faq-contact .btn { margin-top: 28px; }

@media (max-width: 600px) {
  .faq-about { padding: 26px 22px; }
  .faq-q { padding: 18px 20px; gap: 13px; }
  .faq-a .faq-a-inner { padding: 0 20px 22px 20px; }
  .faq-contact { padding: 44px 22px; }
}

/* ============================================================
   BLOG SCREEN — luxury editorial grid
   Ceramic 3D cards, scroll reveal, category filter, featured
   hero post, glass search, newsletter. Reuses the FAQ wash /
   particle / ripple layers. Day/night token-aware.
   ============================================================ */
.blog-screen { position: relative; overflow: hidden; }
.blog-screen > * { position: relative; z-index: 1; }

/* hero */
.blog-hero { padding-bottom: 26px; }
.blog-hero .blog-hero-sub {
  margin: 16px auto 0; max-width: 560px; text-align: center;
}
.blog-hero .blog-hero-sub .ka { display: block; margin-top: 6px; color: var(--fg-dim); font-size: 13px; }

/* search */
.blog-search-zone { max-width: 560px; margin: 30px auto 0; }
.blog-search { position: relative; }
.blog-search input {
  width: 100%; font-family: inherit; font-size: 15px; color: var(--fg);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-full); padding: 16px 22px 16px 52px;
  transition: border-color 0.3s var(--ease), box-shadow 0.3s var(--ease);
}
.blog-search input::placeholder { color: var(--fg-dim); }
.blog-search input:focus { outline: none; border-color: var(--teal); box-shadow: var(--shadow-md); }
.blog-search .blog-search-ic {
  position: absolute; left: 22px; top: 50%; transform: translateY(-50%);
  color: var(--teal); opacity: 0.85; pointer-events: none;
}
[data-theme="night"] .blog-search .blog-search-ic { color: var(--teal-accent); }

/* category filters */
.blog-filters {
  display: flex; flex-wrap: wrap; gap: 10px; justify-content: center;
  margin: 26px auto 0; max-width: 760px;
}
.blog-filter {
  font-family: inherit; font-size: 13px; font-weight: 500; letter-spacing: 0.2px;
  color: var(--fg-muted); background: var(--surface); cursor: pointer;
  border: 1px solid var(--border); border-radius: var(--r-pill); padding: 9px 18px;
  transition: color 0.25s var(--ease), border-color 0.25s var(--ease),
              background 0.25s var(--ease), box-shadow 0.25s var(--ease);
}
.blog-filter .ka { opacity: 0.55; margin-left: 6px; font-size: 11px; }
.blog-filter:hover { color: var(--teal); border-color: var(--teal); }
[data-theme="night"] .blog-filter:hover { color: var(--teal-accent); border-color: var(--teal-accent); }
.blog-filter.active {
  color: var(--teal); border-color: var(--teal);
  box-shadow: 0 0 0 3px rgba(77,182,172,0.18);
}
[data-theme="night"] .blog-filter.active {
  color: var(--teal-accent); border-color: var(--teal-accent);
  box-shadow: 0 0 0 3px rgba(127,217,217,0.16);
}

/* shared reveal animation (scroll-triggered) */
.blog-reveal { opacity: 0; transform: translateY(30px); transition: opacity 0.7s var(--ease), transform 0.7s var(--ease); }
.blog-reveal.in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) { .blog-reveal { opacity: 1; transform: none; } }

/* typographic cover plate (no photos — a numbered editorial tile) */
.blog-cover {
  position: relative; overflow: hidden; isolation: isolate;
  display: flex; flex-direction: column; justify-content: space-between;
  padding: 16px 20px; color: #EAFBFA;
}
.blog-cover::after {
  content: ""; position: absolute; inset: -40% -10% auto -10%; height: 90%;
  background: radial-gradient(45% 60% at 28% 18%, rgba(255,255,255,0.18), transparent 70%);
  transform: translateY(6%); transition: transform 1.1s var(--ease); z-index: 0; pointer-events: none;
}
.blog-card:hover .blog-cover::after,
.blog-featured:hover .blog-cover::after { transform: translateY(-8%) scale(1.12); }
.blog-cover-top {
  position: relative; z-index: 2; display: flex; align-items: flex-start; justify-content: space-between; gap: 12px;
}
.blog-cover-cat {
  font-size: 10px; font-weight: 700; letter-spacing: 2.5px; text-transform: uppercase;
  color: rgba(255,255,255,0.85);
}
.blog-cover-drop { color: rgba(255,255,255,0.85); transition: transform 0.5s var(--ease); }
.blog-card:hover .blog-cover-drop { transform: translateY(5px); }
.blog-cover-num {
  position: relative; z-index: 1; align-self: flex-end;
  font-size: 46px; font-weight: 800; line-height: 0.78; letter-spacing: -2px;
  color: rgba(255,255,255,0.18);
  transition: transform 0.6s cubic-bezier(0.65,0,0.35,1), color 0.5s var(--ease);
}
.blog-card:hover .blog-cover-num,
.blog-featured:hover .blog-cover-num { transform: translateX(-3px) scale(1.06); color: rgba(255,255,255,0.3); }
.blog-cover-line {
  position: absolute; left: 0; bottom: 0; height: 3px; width: 26%; z-index: 2;
  background: rgba(255,255,255,0.6); transition: width 0.6s var(--ease);
}
.blog-card:hover .blog-cover-line,
.blog-featured:hover .blog-cover-line { width: 100%; }
.blog-cover.is-featured { padding: 30px 34px; height: 100%; }
.blog-cover.is-featured .blog-cover-cat { font-size: 11px; letter-spacing: 3px; }
.blog-cover.is-featured .blog-cover-num { font-size: clamp(78px, 10vw, 120px); }

/* meta line */
.blog-meta {
  display: flex; align-items: center; gap: 10px; flex-wrap: wrap;
  font-size: 10px; letter-spacing: 1.5px; text-transform: uppercase;
  font-weight: 600; color: var(--fg-dim);
}
.blog-meta .dot { width: 3px; height: 3px; border-radius: 50%; background: currentColor; opacity: 0.6; }
.blog-tag { color: var(--teal); }
[data-theme="night"] .blog-tag { color: var(--teal-accent); }

/* author row */
.blog-author { display: flex; align-items: center; gap: 10px; margin-top: auto; padding-top: 16px; }
.blog-avatar {
  width: 30px; height: 30px; border-radius: 50%; flex: none;
  display: flex; align-items: center; justify-content: center;
  font-size: 11px; font-weight: 700; letter-spacing: 0.3px;
  background: var(--menthol); color: var(--teal);
}
[data-theme="night"] .blog-avatar { background: rgba(127,217,217,0.14); color: var(--teal-accent); }
.blog-author-name { font-size: 12px; color: var(--fg-muted); }
.blog-author-name .pre { color: var(--fg-dim); }

/* grid + ceramic cards */
.blog-grid {
  perspective: 1500px;
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 26px; margin-top: 34px;
}
.blog-card {
  position: relative; display: flex; flex-direction: column;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-xl); overflow: hidden; cursor: pointer;
  transform-style: preserve-3d;
  transition: transform 0.55s cubic-bezier(0.65,0,0.35,1), box-shadow 0.55s cubic-bezier(0.65,0,0.35,1), border-color 0.4s var(--ease);
}
.blog-card:hover {
  transform: translateY(-10px) rotateX(4deg) rotateY(-4deg) scale(1.015);
  box-shadow: var(--shadow-xl); border-color: transparent;
}
.blog-card .blog-cover { height: 104px; }
.blog-card-body { display: flex; flex-direction: column; flex: 1; padding: 20px 22px 22px; }
.blog-card h3 {
  font-size: 18px; font-weight: 700; line-height: 1.3; color: var(--fg);
  margin: 12px 0 8px; letter-spacing: -0.2px;
}
[data-theme="night"] .blog-card h3 { color: var(--fg); }
.blog-excerpt { font-size: 13.5px; line-height: 1.65; color: var(--fg-muted); margin: 0; }

/* read-more affordance */
.blog-readmore {
  display: inline-flex; align-items: center; gap: 7px; margin-top: 16px;
  font-size: 12px; font-weight: 700; letter-spacing: 0.3px; color: var(--teal);
}
[data-theme="night"] .blog-readmore { color: var(--teal-accent); }
.blog-readmore span { transition: transform 0.4s var(--ease); }
.blog-card:hover .blog-readmore span,
.blog-featured:hover .blog-readmore span { transform: translateX(5px); }

/* hover droplet in corner */

/* featured (editor's pick) */
.blog-featured {
  position: relative; display: grid; grid-template-columns: 1.15fr 1fr;
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-2xl); overflow: hidden; margin-top: 34px; cursor: pointer;
  transition: box-shadow 0.55s var(--ease), transform 0.55s var(--ease);
}
.blog-featured:hover { box-shadow: var(--shadow-xl); transform: translateY(-4px); }
.blog-featured .blog-cover { min-height: 240px; }
.blog-featured-body { padding: 40px 44px; display: flex; flex-direction: column; }
.blog-featured-body h2 {
  font-size: clamp(24px, 2.6vw, 32px); font-weight: 700; line-height: 1.2;
  color: var(--fg); margin: 16px 0 14px; letter-spacing: -0.5px;
}
.blog-featured-body .blog-excerpt { font-size: 15px; }
.blog-badge {
  display: inline-flex; align-items: center; gap: 7px; align-self: flex-start;
  font-size: 10px; font-weight: 700; letter-spacing: 2px; text-transform: uppercase;
  color: var(--teal-deep, #0D2B2B); background: linear-gradient(120deg, var(--teal-accent), #6fcfc6);
  padding: 6px 12px; border-radius: var(--r-sm); margin-bottom: 16px;
}

/* load more */
.blog-loadmore-wrap { display: flex; justify-content: center; margin-top: 44px; }

/* no results */
.blog-no-results { text-align: center; padding: 60px 24px; color: var(--fg-dim); }
.blog-no-results .nr-drop { color: var(--teal); opacity: 0.6; display: flex; justify-content: center; margin-bottom: 16px; }
[data-theme="night"] .blog-no-results .nr-drop { color: var(--teal-accent); }
.blog-no-results p { font-style: italic; color: var(--fg-dim); }

/* newsletter */
.blog-newsletter {
  margin-top: 80px; text-align: center; padding: 56px 34px;
  background: radial-gradient(700px 300px at 50% -40%, rgba(127,217,217,0.14), transparent 70%), var(--surface-soft);
  border: 1px solid var(--border-soft); border-radius: var(--r-2xl);
}
.blog-newsletter .nl-drop { color: var(--teal); display: flex; justify-content: center; margin-bottom: 18px; }
[data-theme="night"] .blog-newsletter .nl-drop { color: var(--teal-accent); }
.blog-newsletter h2 { font-size: clamp(24px, 3.4vw, 32px); font-weight: 700; color: var(--fg); letter-spacing: -0.5px; margin: 0; }
[data-theme="night"] .blog-newsletter h2 { color: var(--teal-accent); }
.blog-newsletter p { margin: 14px auto 0; max-width: 440px; color: var(--fg-muted); font-size: 15px; }
.blog-nl-form { display: flex; gap: 10px; max-width: 440px; margin: 26px auto 0; }
.blog-nl-form input {
  flex: 1; font-family: inherit; font-size: 14px; color: var(--fg);
  background: var(--surface); border: 1px solid var(--border);
  border-radius: var(--r-md); padding: 13px 18px;
  transition: border-color 0.3s var(--ease);
}
.blog-nl-form input:focus { outline: none; border-color: var(--teal); }
.blog-nl-form .btn { white-space: nowrap; }
.blog-nl-done { margin-top: 22px; color: var(--teal); font-weight: 600; font-size: 14px; }
[data-theme="night"] .blog-nl-done { color: var(--teal-accent); }

/* reading modal — a card pops to center, larger & easier to read */
.blog-modal {
  position: fixed; inset: 0; z-index: 1200;
  display: flex; align-items: center; justify-content: center; padding: 28px;
  background: rgba(6,26,26,0.6); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  animation: blogFade 0.3s var(--ease);
}
[data-theme="day"] .blog-modal { background: rgba(13,43,43,0.4); }
@keyframes blogFade { from { opacity: 0; } to { opacity: 1; } }
.blog-modal-card {
  position: relative; width: min(720px, 100%); height: min(620px, 88vh);
  display: flex; flex-direction: column; overflow: hidden;
  background: var(--surface); border: 1px solid var(--border-soft);
  border-radius: var(--r-2xl); box-shadow: var(--shadow-xl);
  animation: blogPop 0.42s cubic-bezier(0.34,1.28,0.5,1); transform-origin: center;
}
@keyframes blogPop { from { opacity: 0; transform: scale(0.94); } to { opacity: 1; transform: none; } }
@media (prefers-reduced-motion: reduce) { .blog-modal, .blog-modal-card { animation: none; } }
.blog-modal-close {
  position: absolute; top: 16px; right: 16px; z-index: 5;
  width: 38px; height: 38px; border-radius: 50%; cursor: pointer; border: none;
  display: flex; align-items: center; justify-content: center; font-size: 22px; line-height: 1;
  background: rgba(255,255,255,0.18); color: #fff; backdrop-filter: blur(4px);
  transition: background 0.3s var(--ease), transform 0.3s var(--ease);
}
.blog-modal-close:hover { background: rgba(255,255,255,0.32); transform: rotate(90deg); }
.blog-modal-cover {
  position: relative; overflow: hidden; min-height: 180px; padding: 32px 40px 26px; flex: none;
  display: flex; flex-direction: column; justify-content: space-between; color: #EAFBFA;
}
.blog-modal-cover .blog-cover-cat { font-size: 11px; letter-spacing: 3px; }
.blog-modal-cover .blog-cover-num {
  align-self: flex-end; font-size: clamp(82px, 14vw, 128px); font-weight: 800;
  line-height: 0.78; letter-spacing: -2px; color: rgba(255,255,255,0.22);
}
.blog-modal-body { padding: 28px 40px 42px; flex: 1; overflow-y: auto; }
.blog-modal-body h2 {
  font-size: clamp(26px, 3.4vw, 38px); font-weight: 800; line-height: 1.18;
  letter-spacing: -0.6px; color: var(--fg); margin: 14px 0 16px;
}
[data-theme="night"] .blog-modal-body h2 { color: var(--fg); }
.blog-article { margin-top: 24px; }
.blog-article p { font-size: 17px; line-height: 1.8; color: var(--fg-muted); margin: 0 0 18px; }
.blog-article p:last-child { margin-bottom: 0; }
.blog-article p:first-of-type::first-letter {
  font-size: 3.1em; font-weight: 800; line-height: 0.82; float: left;
  margin: 6px 12px 0 0; color: var(--teal);
}
[data-theme="night"] .blog-article p:first-of-type::first-letter { color: var(--teal-accent); }

@media (max-width: 980px) {
  .blog-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 760px) {
  .blog-featured { grid-template-columns: 1fr; }
  .blog-featured .blog-cover { min-height: 180px; }
  .blog-featured-body { padding: 28px 24px; }
}
@media (max-width: 560px) {
  .blog-grid { grid-template-columns: 1fr; }
  .blog-nl-form { flex-direction: column; }
  .blog-newsletter { padding: 44px 22px; }
  .blog-modal { padding: 0; }
  .blog-modal-card { max-height: 100vh; border-radius: 0; width: 100%; }
  .blog-modal-cover { padding: 26px 22px 18px; min-height: 150px; }
  .blog-modal-body { padding: 24px 22px 32px; }
}

/* ============================================================
   PRE-ORDER / CHECKOUT  (details → review → payment)
   ============================================================ */
.po-wrap { display: grid; grid-template-columns: 1.6fr 1fr; gap: 32px; align-items: start; }

/* Step indicator */
.po-steps { display: flex; align-items: center; gap: 10px; margin-bottom: 26px; flex-wrap: wrap; }
.po-step { display: flex; align-items: center; gap: 9px; font-size: 12px; font-weight: 600; letter-spacing: 0.4px; color: var(--gray-400); }
.po-step.is-active { color: var(--teal); }
.po-step.is-done { color: var(--teal); }
.po-step-n {
  width: 24px; height: 24px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 12px; font-weight: 700;
  background: var(--gray-100); color: var(--gray-400);
  border: 1px solid var(--border);
}
.po-step.is-active .po-step-n { background: var(--teal); color: var(--pure-white); border-color: var(--teal); }
.po-step.is-done .po-step-n { background: color-mix(in oklab, var(--teal) 14%, transparent); color: var(--teal); border-color: transparent; }
.po-step-line { flex: 1; min-width: 18px; height: 1px; background: var(--border); }

/* Main form card */
.po-card {
  position: relative;
  background: var(--surface);
  border: 1px solid var(--border);
  border-radius: 16px;
  padding: 30px 30px 28px;
  box-shadow: var(--shadow-sm);
}
.po-section-title {
  font-size: 12px; letter-spacing: 2px; text-transform: uppercase;
  font-weight: 700; color: var(--teal); margin: 0 0 16px;
}
.po-card .po-section-title:not(:first-of-type) { margin-top: 28px; padding-top: 26px; border-top: 1px solid var(--border-soft); }
.po-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.po-select {
  appearance: none; -webkit-appearance: none; cursor: pointer;
  font-family: inherit; font-weight: 500;
  padding-right: 44px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%230D4C4B' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 16px center;
  transition: border-color 0.22s var(--ease), box-shadow 0.22s var(--ease),
              background-color 0.22s var(--ease), transform 0.22s var(--ease);
}
.po-select:hover {
  border-color: var(--teal);
  background-color: var(--menthol);
}
.po-select:focus {
  transform: translateY(-1px);
  background-position: right 14px center;
}
.po-select option { font-weight: 500; color: var(--fg); }
[data-theme="night"] .po-select {
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%237FD9D9' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
}
[data-theme="night"] .po-select:hover { background-color: rgba(127,217,217,0.08); border-color: var(--teal-accent); }

/* Quantity stepper (reuses .qty-btn, larger for the form) */
.po-qty { display: flex; align-items: center; gap: 10px; align-self: start; }
.po-qty .qty-btn { width: 42px; height: 42px; border-radius: 11px; font-size: 18px; }
.po-qty .qty-display { font-size: 16px; min-width: 32px; }

/* Actions row */
.po-actions { display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-top: 28px; flex-wrap: wrap; }
.po-link-btn {
  background: none; border: none; cursor: pointer; font-family: inherit;
  font-size: 13px; font-weight: 600; color: var(--gray-600);
  display: inline-flex; align-items: center; gap: 8px; padding: 6px 0;
  transition: color 0.2s var(--ease);
}
.po-link-btn:hover { color: var(--teal); }
.po-link-btn:disabled { opacity: 0.5; cursor: default; }
.po-next { display: inline-flex; align-items: center; gap: 9px; min-width: 200px; justify-content: center; }
.po-next:disabled { opacity: 0.7; cursor: progress; }
.po-spin {
  width: 15px; height: 15px; border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.4); border-top-color: #fff;
  display: inline-block; animation: po-spin 0.7s linear infinite;
}
@keyframes po-spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) { .po-spin { animation-duration: 2s; } }

/* Review step */
.po-review-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 22px 28px; }
.po-review-block { display: flex; flex-direction: column; gap: 4px; }
.po-review-label { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; font-weight: 600; color: var(--gray-400); margin-bottom: 4px; }
.po-review-val { font-size: 15px; color: var(--fg); font-weight: 500; }
.po-review-muted { color: var(--gray-600); font-weight: 400; font-size: 14px; }
.po-verify-note {
  display: flex; gap: 11px; align-items: flex-start;
  margin-top: 26px; padding: 14px 16px;
  background: var(--menthol); border-radius: 12px;
  font-size: 13px; line-height: 1.55; color: var(--teal);
}
.po-verify-note i { color: var(--teal); font-size: 15px; margin-top: 1px; }

/* Order summary sidebar */
.po-summary {
  background: var(--menthol);
  border-radius: 16px;
  padding: 26px 24px;
  position: sticky; top: 96px;
  height: fit-content;
}
.po-summary h3 { font-size: 17px; font-weight: 600; color: var(--teal); margin: 0 0 18px; }
.po-sum-item { display: flex; gap: 13px; padding-bottom: 18px; margin-bottom: 18px; border-bottom: 1px solid rgba(13,76,75,0.12); }
.po-sum-thumb { width: 64px; height: 64px; flex: none; border-radius: 10px; overflow: hidden; background: var(--surface); }
.po-sum-meta { min-width: 0; }
.po-sum-meta h4 { font-size: 15px; font-weight: 700; color: var(--fg); margin: 0 0 3px; }
.po-sum-meta p { font-size: 12px; color: var(--gray-600); margin: 0 0 7px; }
.po-sum-ships { font-size: 11px; color: var(--teal); display: flex; align-items: center; gap: 6px; font-weight: 500; }
.po-sum-note {
  display: flex; gap: 9px; align-items: flex-start;
  margin-top: 16px; font-size: 11.5px; line-height: 1.5; color: var(--gray-600);
}
.po-sum-note i { color: var(--teal); font-size: 13px; margin-top: 1px; flex: none; }

/* What's included — order-specific notes */
.po-included {
  margin-top: 20px; padding-top: 18px;
  border-top: 1px solid rgba(13,76,75,0.12);
  display: flex; flex-direction: column; gap: 14px;
}
.po-included-head {
  font-size: 10.5px; letter-spacing: 2px; text-transform: uppercase;
  font-weight: 700; color: var(--gray-400);
}
.po-sum-detail { display: flex; gap: 11px; align-items: flex-start; }
.po-sum-detail > i {
  font-size: 13px; color: var(--teal); margin-top: 2px; flex: none;
  width: 16px; text-align: center;
}
.po-sd-text { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.po-sd-label { font-size: 13px; font-weight: 600; color: var(--fg); }
.po-sd-val { font-size: 12px; line-height: 1.5; color: var(--gray-600); }

/* Trust signals */
.po-trust {
  list-style: none; margin: 18px 0 0; padding: 16px 0 0;
  border-top: 1px solid rgba(13,76,75,0.12);
  display: flex; flex-direction: column; gap: 13px;
}
.po-trust li { display: flex; gap: 11px; align-items: flex-start; }
.po-trust li > i {
  font-size: 13px; color: var(--teal); flex: none;
  width: 26px; height: 26px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: color-mix(in oklab, var(--teal) 10%, transparent);
  margin-top: 1px;
}
.po-trust li > div { display: flex; flex-direction: column; gap: 1px; min-width: 0; }
.po-trust strong { font-size: 13px; font-weight: 600; color: var(--fg); }
.po-trust span { font-size: 11.5px; line-height: 1.45; color: var(--gray-600); }

/* Night theme */
[data-theme="night"] .po-card { background: var(--bg-elevated); border-color: var(--border); box-shadow: none; }
[data-theme="night"] .po-section-title { color: var(--teal-accent); }
[data-theme="night"] .po-card .po-section-title:not(:first-child) { border-top-color: var(--border); }
[data-theme="night"] .po-step.is-active,
[data-theme="night"] .po-step.is-done { color: var(--teal-accent); }
[data-theme="night"] .po-step-n { background: var(--bg); border-color: var(--border); color: var(--fg-dim); }
[data-theme="night"] .po-step.is-active .po-step-n { background: var(--teal-accent); color: var(--navy); border-color: var(--teal-accent); }
[data-theme="night"] .po-step.is-done .po-step-n { background: rgba(127,217,217,0.14); color: var(--teal-accent); }
[data-theme="night"] .po-review-val { color: var(--fg); }
[data-theme="night"] .po-review-muted { color: var(--fg-muted); }
[data-theme="night"] .po-verify-note { background: var(--bg-elevated); color: var(--teal-accent); }
[data-theme="night"] .po-verify-note i { color: var(--teal-accent); }
[data-theme="night"] .po-summary { background: var(--bg-elevated); }
[data-theme="night"] .po-summary h3 { color: var(--teal-accent); }
[data-theme="night"] .po-sum-item { border-bottom-color: var(--border); }
[data-theme="night"] .po-sum-thumb { background: var(--bg); }
[data-theme="night"] .po-sum-meta h4 { color: var(--fg); }
[data-theme="night"] .po-sum-meta p, [data-theme="night"] .po-sum-note { color: var(--fg-muted); }
[data-theme="night"] .po-sum-ships, [data-theme="night"] .po-sum-note i { color: var(--teal-accent); }
[data-theme="night"] .po-included, [data-theme="night"] .po-trust { border-top-color: var(--border); }
[data-theme="night"] .po-sd-label, [data-theme="night"] .po-trust strong { color: var(--fg); }
[data-theme="night"] .po-sd-val, [data-theme="night"] .po-trust span { color: var(--fg-muted); }
[data-theme="night"] .po-sum-detail > i { color: var(--teal-accent); }
[data-theme="night"] .po-trust li > i { color: var(--teal-accent); background: rgba(127,217,217,0.14); }
[data-theme="night"] .po-link-btn { color: var(--fg-muted); }
[data-theme="night"] .po-link-btn:hover { color: var(--teal-accent); }

/* Responsive */
@media (max-width: 920px) {
  .po-wrap { grid-template-columns: 1fr; gap: 24px; }
  .po-summary { position: static; order: -1; }
}
@media (max-width: 560px) {
  .po-card { padding: 24px 20px 22px; }
  .po-grid { grid-template-columns: 1fr; gap: 16px; }
  .po-review-grid { grid-template-columns: 1fr; gap: 18px; }
  .po-actions { flex-direction: column-reverse; align-items: stretch; }
  .po-next { width: 100%; }
  .po-link-btn { justify-content: center; }
}

/* ============================================================
   LEGAL / TRUST PAGES — Warranty · Refund & Returns · Privacy
   Calm, minimal, centered reading column. Day/night-aware.
   ============================================================ */
.legal-meta {
  margin-top: 18px; font-size: 12px; letter-spacing: 0.3px;
  color: var(--fg-dim); font-weight: 500;
}
.legal-section-wrap { padding-top: 56px; }
.legal-col { max-width: 820px; margin: 0 auto; padding: 0 24px; }
@media (max-width: 430px) { .legal-col { padding: 0 16px; } }

/* — numbered section — */
.legal-section { padding: 0 0 46px; }
.legal-section + .legal-section {
  padding-top: 46px; border-top: 1px solid var(--border-soft);
}
.legal-section-head { display: flex; align-items: baseline; gap: 16px; margin-bottom: 22px; }
.legal-num {
  flex: 0 0 auto; font-size: 13px; font-weight: 600; letter-spacing: 1px;
  color: var(--teal); font-variant-numeric: tabular-nums;
  padding-top: 3px; min-width: 24px;
}
[data-theme="night"] .legal-num { color: var(--teal-accent); }
.legal-h2 {
  font-size: clamp(20px, 2.6vw, 26px); font-weight: 700; line-height: 1.25;
  letter-spacing: -0.3px; color: var(--teal); margin: 0; text-wrap: balance;
}
[data-theme="night"] .legal-h2 { color: var(--fg); }
.legal-body { padding-left: 40px; }
@media (max-width: 560px) {
  .legal-section-head { gap: 12px; }
  .legal-body { padding-left: 0; }
}
.legal-p {
  font-size: 15.5px; line-height: 1.8; color: var(--fg-muted);
  margin: 0 0 16px; text-wrap: pretty;
}
.legal-p:last-child { margin-bottom: 0; }
:lang(ka) .legal-p { line-height: 1.9; }

/* — simple droplet list — */
.legal-list { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 12px; }
.legal-list li {
  display: flex; gap: 12px; align-items: flex-start;
  font-size: 15px; line-height: 1.6; color: var(--fg);
}
.legal-list-ic { flex: 0 0 auto; color: var(--teal); margin-top: 3px; display: inline-flex; }
[data-theme="night"] .legal-list-ic { color: var(--teal-accent); }
.legal-drop { display: block; }

/* — covered / not-covered duo — */
.legal-duo { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; margin: 4px 0 24px; }
@media (max-width: 600px) { .legal-duo { grid-template-columns: 1fr; } }
.legal-duo-card {
  background: var(--surface-soft); border: 1px solid var(--border-soft);
  border-radius: var(--r-lg, 14px); padding: 22px 22px 24px;
}
[data-theme="night"] .legal-duo-card { background: var(--surface); border-color: var(--border); }
.legal-duo-head {
  display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
  font-size: 14px; font-weight: 700; letter-spacing: 0.2px; color: var(--fg);
}
.legal-duo-ic {
  width: 24px; height: 24px; flex: 0 0 auto; border-radius: 50%;
  display: flex; align-items: center; justify-content: center; font-size: 11px;
}
.legal-duo-card.is-yes .legal-duo-ic { background: var(--teal); color: var(--pure-white); }
.legal-duo-card.is-no  .legal-duo-ic { background: var(--gray-200); color: var(--gray-600); }
[data-theme="night"] .legal-duo-card.is-yes .legal-duo-ic { background: var(--teal-accent); color: var(--navy); }
[data-theme="night"] .legal-duo-card.is-no  .legal-duo-ic { background: var(--surface-2); color: var(--fg-muted); }
.legal-duo-card ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 11px; }
.legal-duo-card li {
  font-size: 14px; line-height: 1.55; color: var(--fg-muted); padding-left: 16px; position: relative;
}
.legal-duo-card li::before {
  content: ""; position: absolute; left: 0; top: 9px;
  width: 5px; height: 5px; border-radius: 50%; background: var(--fg-dim);
}
:lang(ka) .legal-duo-card li { line-height: 1.7; }

/* — numbered steps — */
.legal-steps { list-style: none; margin: 4px 0 0; padding: 0; display: grid; gap: 18px; counter-reset: ls; }
.legal-steps li { display: flex; gap: 16px; align-items: flex-start; }
.legal-step-n {
  flex: 0 0 auto; width: 30px; height: 30px; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  font-size: 13px; font-weight: 700; font-variant-numeric: tabular-nums;
  background: var(--teal); color: var(--pure-white);
}
[data-theme="night"] .legal-step-n { background: var(--teal-accent); color: var(--navy); }
.legal-step-tx { font-size: 15px; line-height: 1.65; color: var(--fg-muted); padding-top: 4px; }
:lang(ka) .legal-step-tx { line-height: 1.75; }

/* — callout note — */
.legal-note {
  display: flex; gap: 13px; align-items: flex-start;
  margin: 22px 0 0; padding: 16px 18px;
  background: var(--surface-soft); border: 1px solid var(--border-soft);
  border-left: 3px solid var(--teal); border-radius: 10px;
}
[data-theme="night"] .legal-note { background: var(--surface); border-color: var(--border); border-left-color: var(--teal-accent); }
.legal-note-ic { flex: 0 0 auto; color: var(--teal); font-size: 15px; margin-top: 2px; }
[data-theme="night"] .legal-note-ic { color: var(--teal-accent); }
.legal-note p { margin: 0; font-size: 14px; line-height: 1.65; color: var(--fg-muted); }
:lang(ka) .legal-note p { line-height: 1.75; }

/* — contact CTA — */
.legal-contact {
  margin-top: 56px; padding-top: 48px; border-top: 1px solid var(--border-soft);
  text-align: center;
}
.legal-contact-drop { color: var(--teal); display: flex; justify-content: center; margin-bottom: 16px; }
[data-theme="night"] .legal-contact-drop { color: var(--teal-accent); }
.legal-contact h2 {
  font-size: clamp(22px, 3vw, 28px); font-weight: 700; letter-spacing: -0.3px;
  color: var(--teal); margin: 0 0 12px;
}
[data-theme="night"] .legal-contact h2 { color: var(--fg); }
.legal-contact p { margin: 0 auto; max-width: 440px; font-size: 15px; line-height: 1.7; color: var(--fg-muted); }
.legal-company {
  margin: 18px 0 26px; font-size: 13px; letter-spacing: 0.4px;
  color: var(--fg-dim); font-weight: 500;
}

/* ============================================================
   PHASE 1 LAUNCH FIXES (2026-07-07) — appended overrides only.
   Rollback: delete this block.
   ============================================================ */

/* 1) Night model select: night .cf-input background shorthand reset
   repeat/position, tiling the chevron — re-assert them */
[data-theme="night"] .po-select {
  background-repeat: no-repeat;
  background-position: right 16px center;
}
[data-theme="night"] .po-select:focus { background-position: right 14px center; }

/* 2) Pre-order summary thumb: contain the absolutely-positioned ProductImage
   (was escaping the 64px box and painting under the trust rows) */
.po-sum-thumb { position: relative; }

/* 3) Cart + BoG order summaries: amounts never wrap or collide */
.summary-row, .bog-summary-row { align-items: baseline; gap: 12px; }
.summary-row > :last-child,
.bog-summary-row > :last-child { white-space: nowrap; font-variant-numeric: tabular-nums; }

/* 4) Gallery frame chips: room for two-line labels (16px radius renders
   identically on one-liners — 999px was clipping wrapped glyphs) */
.shizu-tag-name { line-height: 1.45; border-radius: 16px; min-width: 0; }

/* 8) Two-SKU catalogue: centered 2-up grid; filter pill descender room */
.product-grid.two-up {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 860px;
  margin-inline: auto;
}
@media (max-width: 560px) {
  .product-grid.two-up { grid-template-columns: 1fr; }
}
.filter-btn { line-height: 1.4; }

/* 6) Day hero: crisp glass-card shadow, softer aqua underglow (was murky) */
[data-theme="day"] .hero {
  box-shadow:
    0 40px 80px -44px rgba(13, 60, 60, 0.35),
    0 10px 30px -22px rgba(13, 60, 60, 0.28),
    inset 0 1px 0 rgba(255, 255, 255, 0.35),
    inset 0 0 0 1px rgba(13, 76, 75, 0.10),
    inset 0 -72px 104px -72px rgba(127, 217, 217, 0.14);
}

/* 10) Gold discipline: gold = action (CTAs, cart, payment, ratings,
   comparison marker, Nika's signature note). Decorative labels/accents → teal. */
.section-label { color: var(--teal); }
[data-theme="night"] .section-label { color: var(--teal-accent); }
.statement-quote em { color: var(--teal); }
[data-theme="night"] .statement-quote em { color: var(--teal-accent); }
.ritual-title em { color: var(--teal-accent); }
.ritual-step-time {
  color: var(--teal-accent);
  background: rgba(127, 217, 217, 0.10);
  border-color: rgba(127, 217, 217, 0.28);
}
.ritual-step:hover .ritual-step-time {
  background: rgba(127, 217, 217, 0.16);
  border-color: rgba(127, 217, 217, 0.40);
}
/* water.css re-tints these via html[data-water="on"] { color: var(--w-gold) } —
   match that specificity so the teal swap wins in the default (water-on) state */
html[data-water="on"] .ritual-title em { color: var(--teal-accent); }
html[data-water="on"] .ritual-step-time {
  color: var(--teal-accent);
  background: rgba(127, 217, 217, 0.10);
  border-color: rgba(127, 217, 217, 0.28);
}
html[data-water="on"] .ritual-step:hover .ritual-step-time {
  background: rgba(127, 217, 217, 0.16);
  border-color: rgba(127, 217, 217, 0.40);
}
.hero-panel-priceline { color: var(--teal-accent); }
.pd-specs-head { color: var(--teal); }
[data-theme="night"] .pd-specs-head { color: var(--teal-accent); }
.success-milestone-date { color: var(--teal); }
[data-theme="night"] .success-milestone-date { color: var(--teal-accent); }
.footer-label { color: var(--teal-accent); }
.contact-online-note i { color: var(--teal); }
[data-theme="night"] .util-item i { color: var(--teal-accent); }
[data-theme="night"] .util-pill { background: rgba(127, 217, 217, 0.15); color: var(--teal-accent); }
.faq-ripple.r3 { border-color: rgba(127, 217, 217, 0.22); }
.faq-item::before { background: linear-gradient(120deg, var(--teal-accent), rgba(127, 217, 217, 0.22)); }

/* ============================================================
   PRODUCT SHOWCASE 3D — real interactive GLB configurator
   (SHIZU 1 / SHIZU 1 Plus, drag-to-rotate, 2D/3D toggle, reset)
   ============================================================ */
.showcase3d-section { padding: 80px 0; background: var(--bg); }
@media (max-width: 768px) { .showcase3d-section { padding: 56px 0; } }

.showcase3d-tabs {
  display: inline-flex; gap: 4px; padding: 4px;
  background: var(--surface-2); border-radius: var(--r-full);
  margin-bottom: 40px;
}
.showcase3d-tab {
  font-family: var(--font-sans); font-size: 14px; font-weight: 600; color: var(--fg-muted);
  background: transparent; border: none; border-radius: var(--r-full);
  padding: 11px 22px; cursor: pointer; white-space: nowrap;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.showcase3d-tab:hover { color: var(--fg); }
.showcase3d-tab.is-active { background: var(--teal); color: var(--pure-white); box-shadow: var(--shadow-sm); }
@media (max-width: 430px) {
  .showcase3d-tabs { display: flex; width: 100%; }
  .showcase3d-tab { flex: 1; padding: 12px 10px; }
}

.showcase3d-grid {
  display: grid;
  grid-template-columns: minmax(320px, 0.86fr) 1.14fr;
  gap: clamp(40px, 5vw, 72px);
  align-items: center;
}
@media (max-width: 900px) {
  .showcase3d-grid { grid-template-columns: 1fr; gap: 32px; }
  .showcase3d-stagecol { order: 1; }
  .showcase3d-info { order: 2; }
}

.showcase3d-category {
  font-size: 11px; font-weight: 600; letter-spacing: 2px; text-transform: uppercase;
  color: var(--gold); margin-bottom: 14px;
}
.showcase3d-tagline { font-size: 16px; font-weight: 300; line-height: 1.7; color: var(--fg-muted); margin-bottom: 28px; text-wrap: pretty; }

.showcase3d-feats { list-style: none; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 18px; margin-bottom: 8px; }
.showcase3d-feat { display: flex; align-items: flex-start; gap: 12px; }
.showcase3d-feat-ico {
  flex: none; width: 40px; height: 40px; border-radius: 12px;
  background: var(--surface-soft); color: var(--teal);
  display: flex; align-items: center; justify-content: center; font-size: 15px;
}
[data-theme="night"] .showcase3d-feat-ico { color: var(--teal-accent); }
.showcase3d-feat strong { display: block; font-size: 14px; font-weight: 600; color: var(--fg); line-height: 1.3; }
.showcase3d-feat em { display: block; font-style: normal; font-size: 12px; color: var(--fg-dim); line-height: 1.45; margin-top: 2px; }
@media (max-width: 430px) { .showcase3d-feats { grid-template-columns: 1fr; } }

.showcase3d-incl { margin: 14px 0 0; font-size: 12.5px; color: var(--fg-dim); }
.showcase3d-incl i { color: var(--success); font-size: 11px; margin-right: 7px; }

.showcase3d-buy {
  margin-top: 28px; padding-top: 24px; border-top: 1px solid var(--border);
  display: flex; align-items: center; justify-content: space-between; gap: 20px; flex-wrap: wrap;
}
.showcase3d-price { font-size: 34px; font-weight: 700; letter-spacing: -1px; color: var(--teal); line-height: 1; }
[data-theme="night"] .showcase3d-price { color: var(--teal-accent); }
.showcase3d-price sup { font-size: 0.44em; font-weight: 600; vertical-align: top; top: 0.3em; position: relative; margin-right: 2px; }
.showcase3d-installment { display: block; font-size: 12px; font-weight: 400; letter-spacing: 0; color: var(--fg-dim); margin-top: 6px; }
.showcase3d-cta-row { display: flex; gap: 10px; }

/* ── stage: 3D canvas / fallback photo ── */
.showcase3d-stagecol { display: flex; flex-direction: column; gap: 16px; }
.showcase3d-stage {
  position: relative;
  aspect-ratio: 4 / 3.3;
  border-radius: var(--r-2xl);
  overflow: hidden;
  background: radial-gradient(120% 95% at 50% 82%, var(--surface) 0%, var(--surface-soft) 55%, var(--surface-2) 100%);
  box-shadow: var(--shadow-lg);
}
.showcase3d-img {
  position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover;
  transition: opacity 0.5s var(--ease);
}
.showcase3d-3dmount {
  position: absolute; inset: 0; width: 100%; height: 100%;
  transition: opacity 0.5s var(--ease);
  cursor: grab;
}
.showcase3d-3dmount:active { cursor: grabbing; }
.showcase3d-hint-static {
  position: absolute; bottom: 18px; left: 50%; transform: translateX(-50%);
  font-size: 12px; font-weight: 600; color: var(--fg-muted);
  background: var(--surface); padding: 7px 15px; border-radius: var(--r-full); box-shadow: var(--shadow-sm);
  pointer-events: none;
}
/* engine-managed elements inside the mount point */
.showcase3d-3dmount .ov-3d-canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; touch-action: pan-y pinch-zoom; }
.showcase3d-3dmount .ov-3d-loading {
  position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
  gap: 12px; pointer-events: none;
}
.showcase3d-3dmount .ov-3d-spin {
  width: 30px; height: 30px; border-radius: 50%;
  border: 2.5px solid rgba(13, 76, 75, 0.14); border-top-color: var(--teal);
  animation: showcase3d-spin 0.85s linear infinite;
}
@keyframes showcase3d-spin { to { transform: rotate(360deg); } }
.showcase3d-3dmount .ov-3d-loading em { font-style: normal; font-size: 12px; font-weight: 600; color: var(--fg-muted); }
.showcase3d-3dmount .ov-3d-hint {
  position: absolute; bottom: 16px; left: 50%; transform: translateX(-50%);
  display: flex; align-items: center; gap: 8px;
  background: rgba(255, 255, 255, 0.92); color: var(--teal);
  font-size: 11.5px; font-weight: 600; letter-spacing: 0.3px;
  padding: 7px 15px; border-radius: var(--r-full); box-shadow: var(--shadow-sm);
  pointer-events: none; transition: opacity 0.45s var(--ease);
}
.showcase3d-3dmount .ov-3d-hint i { font-size: 11px; color: var(--gold); }
.showcase3d-3dmount.is-touched .ov-3d-hint { opacity: 0; }
@media (prefers-reduced-motion: reduce) { .showcase3d-3dmount .ov-3d-spin { animation-duration: 1.6s; } }

/* ── glass control bar ── */
.showcase3d-controlbar {
  display: flex; align-items: center; justify-content: space-between; gap: 14px;
  padding: 12px 16px;
  border-radius: var(--r-full);
  background: color-mix(in oklab, var(--surface) 70%, transparent);
  -webkit-backdrop-filter: blur(16px) saturate(1.1);
  backdrop-filter: blur(16px) saturate(1.1);
  border: 1px solid color-mix(in oklab, var(--teal) 10%, rgba(255,255,255,0.5));
  box-shadow: var(--shadow-md);
}
.showcase3d-modetoggle { display: inline-flex; gap: 2px; background: var(--surface-2); border-radius: var(--r-full); padding: 3px; }
.showcase3d-modebtn {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--font-sans); font-size: 13px; font-weight: 600; color: var(--fg-muted);
  background: transparent; border: none; border-radius: var(--r-full);
  padding: 8px 15px; cursor: pointer;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease);
}
.showcase3d-modebtn i { font-size: 11px; }
.showcase3d-modebtn.is-active { background: var(--pure-white); color: var(--teal); box-shadow: var(--shadow-sm); }
[data-theme="night"] .showcase3d-modebtn.is-active { background: var(--surface-2); color: var(--teal-accent); }
.showcase3d-modebtn:disabled { opacity: 0.4; cursor: not-allowed; }

.showcase3d-tools { display: inline-flex; gap: 8px; }
.showcase3d-toolbtn {
  width: 38px; height: 38px; border-radius: 50%;
  display: inline-flex; align-items: center; justify-content: center;
  background: transparent; border: 1px solid var(--border); color: var(--fg-muted);
  cursor: pointer; font-size: 14px;
  transition: background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease);
}
.showcase3d-toolbtn:hover:not(:disabled) { border-color: var(--teal); color: var(--teal); transform: translateY(-1px); }
[data-theme="night"] .showcase3d-toolbtn:hover:not(:disabled) { border-color: var(--teal-accent); color: var(--teal-accent); }
.showcase3d-toolbtn.is-active { background: var(--teal); border-color: var(--teal); color: var(--pure-white); }
.showcase3d-toolbtn:disabled { opacity: 0.35; cursor: not-allowed; }

@media (max-width: 430px) {
  .showcase3d-controlbar { flex-wrap: nowrap; padding: 10px 12px; }
  .showcase3d-modebtn span, .showcase3d-modebtn { font-size: 12.5px; padding: 8px 12px; }
  .showcase3d-buy { flex-direction: column; align-items: stretch; }
  .showcase3d-cta-row { justify-content: stretch; }
  .showcase3d-cta-row .btn { flex: 1; }
}

/* ── Cart fulfilment / installation add-on ──────────────────── */
.fulfil-head { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--teal); font-weight: 600; margin: 18px 0 10px; }
.fulfil-opt { display: flex; align-items: center; gap: 11px; padding: 12px 14px; border: 1px solid rgba(13,76,75,0.18); border-radius: 12px; margin-bottom: 8px; cursor: pointer; color: var(--gray-600); transition: border-color .18s ease, background .18s ease; }
.fulfil-opt:hover { border-color: var(--teal); }
.fulfil-opt.is-on { border-color: var(--teal); background: rgba(13,76,75,0.09); color: var(--teal); }
.fulfil-opt input { accent-color: var(--teal); width: 16px; height: 16px; margin: 0; flex: none; }
.fulfil-label { flex: 1; font-size: 15px; color: inherit; }
.fulfil-price { font-size: 13px; font-weight: 600; letter-spacing: .04em; white-space: nowrap; color: inherit; }
.fulfil-note { font-size: 12.5px; line-height: 1.5; color: var(--gray-600); margin: -2px 0 12px 41px; text-wrap: pretty; }
[data-theme="night"] .fulfil-head { color: var(--teal-accent); }
[data-theme="night"] .fulfil-opt { color: var(--fg-muted); border-color: var(--border); }
[data-theme="night"] .fulfil-opt:hover { border-color: var(--teal-accent); }
[data-theme="night"] .fulfil-opt.is-on { border-color: var(--teal-accent); background: rgba(127,217,217,0.14); color: var(--teal-accent); }
[data-theme="night"] .fulfil-opt input { accent-color: var(--teal-accent); }
[data-theme="night"] .fulfil-note { color: var(--fg-muted); }

/* PD gallery — frameless, Apple-style: one image at a time, dots + arrows below */
.pdz, [data-theme="night"] .pdz { background: none; border: 0; box-shadow: none; padding: 0; border-radius: 0; overflow: visible; }
.pdz .pdz-wm,
.pdz .shizu-tag,
.pdz .shizu-caustic,
.pdz .shizu-steam { display: none; }
.pdz .pdz-rail { gap: 12px; padding: 0; scrollbar-width: none; scroll-snap-type: x mandatory; }
.pdz .pdz-rail::-webkit-scrollbar { display: none; }
.pdz .shizu-tile, .pdz .shizu-tile.is-wide { width: 100%; border: 0; border-radius: 22px; box-shadow: none; background: #f5f5f7; scroll-snap-align: start; }
[data-theme="night"] .pdz .shizu-tile { background: #0D1F1E; border: 0; box-shadow: none; }
.pdz-nav { display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 12px; margin-top: 16px; }
.pdz-cap { font-size: 13px; font-weight: 500; color: var(--gray-600); letter-spacing: .01em; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
[data-theme="night"] .pdz-cap { color: var(--fg-muted); }
.pdz-dots { display: flex; gap: 8px; align-items: center; padding: 8px 12px; border-radius: 999px; background: rgba(0,0,0,.05); }
[data-theme="night"] .pdz-dots { background: rgba(255,255,255,.08); }
.pdz-dot { width: 8px; height: 8px; padding: 0; border: 0; border-radius: 999px; background: rgba(0,0,0,.25); cursor: pointer; transition: width .35s cubic-bezier(.65,0,.35,1), background-color .35s ease; }
.pdz-dot.is-on { width: 22px; background: var(--charcoal); }
[data-theme="night"] .pdz-dot { background: rgba(255,255,255,.3); }
[data-theme="night"] .pdz-dot.is-on { background: var(--fg); }
.pdz-arrows { display: flex; gap: 8px; justify-content: flex-end; }
.pdz-arrows button { width: 36px; height: 36px; border-radius: 50%; border: 0; background: rgba(0,0,0,.06); color: var(--charcoal); cursor: pointer; display: grid; place-items: center; font-size: 12px; transition: background-color .2s ease, opacity .2s ease; }
.pdz-arrows button:hover:not(:disabled) { background: rgba(0,0,0,.12); }
.pdz-arrows button:disabled { opacity: .35; cursor: default; }
[data-theme="night"] .pdz-arrows button { background: rgba(255,255,255,.1); color: var(--fg); }
[data-theme="night"] .pdz-arrows button:hover:not(:disabled) { background: rgba(255,255,255,.18); }
@media (max-width: 600px) { .pdz .shizu-tile, .pdz .shizu-tile.is-wide { border-radius: 16px; } .pdz-arrows { display: none; } .pdz-nav { grid-template-columns: 1fr auto; } }

/* PD price — Apple-style price card: large ink figure, quiet monthly line */
.pd-price { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: 4px 12px; margin: 0 0 18px; padding: 18px 20px; border: 1px solid var(--border); border-bottom: 1px solid var(--border); border-radius: 18px; background: #f5f5f7; }
.pd-price-current { font-size: 40px; font-weight: 600; letter-spacing: -0.02em; line-height: 1.1; color: #1d1d1f; font-variant-numeric: tabular-nums; }
.pd-price-old { font-size: 16px; color: #6e6e73; }
.pd-price-installment { grid-column: 1 / -1; font-size: 13px; font-weight: 500; color: #424245; width: auto; }
[data-theme="night"] .pd-price { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.12); }
[data-theme="night"] .pd-price-current { color: #f5f5f7; }
[data-theme="night"] .pd-price-old { color: rgba(245,245,247,.55); }
[data-theme="night"] .pd-price-installment { color: rgba(245,245,247,.78); }
@media (max-width: 430px) { .pd-price-current { font-size: 32px; } }

.pd-more { display: inline-flex; align-items: center; gap: 8px; margin: -8px 0 20px 26px; padding: 0; border: 0; background: none; font: inherit; font-size: 13px; font-weight: 600; color: var(--teal); cursor: pointer; }
.pd-more i { font-size: 10px; }
.pd-more:hover { text-decoration: underline; }
[data-theme="night"] .pd-more { color: var(--teal-accent); }

/* Launch: the pre-order button replaces the old bank checkout button */
.cart-preorder-btn { width: 100%; justify-content: center; }
