/* Stage 1 shell styles. The variables below retain Readdy/Tailwind design tokens. */
:root {
      --font-body: 'Inter', system-ui, sans-serif;
      --font-heading: 'Playfair Display', Georgia, serif;
      --font-label: 'Inter', system-ui, sans-serif;

      /* Background — 纯白体系 */
      --background-50: 1 0 0;
      --background-100: 0.97 0 0;
      --background-200: 0.93 0 0;
      --background-300: 0.88 0 0;
      --background-400: 0.82 0 0;
      --background-500: 0.75 0 0;
      --background-600: 0.65 0 0;
      --background-700: 0.55 0 0;
      --background-800: 0.45 0 0;
      --background-900: 0.35 0 0;
      --background-950: 0.25 0 0;

      /* Foreground — 纯黑到白文字层级 */
      --foreground-50: 0.97 0 0;
      --foreground-100: 0.93 0 0;
      --foreground-200: 0.88 0 0;
      --foreground-300: 0.82 0 0;
      --foreground-400: 0.75 0 0;
      --foreground-500: 0.65 0 0;
      --foreground-600: 0.55 0 0;
      --foreground-700: 0.45 0 0;
      --foreground-800: 0.35 0 0;
      --foreground-900: 0.25 0 0;
      --foreground-950: 0.12 0 0;

      /* Primary — 促销正红，高饱和、明亮，全站主转化色 */
      --primary-50: 0.970 0.020 30;
      --primary-100: 0.945 0.055 30;
      --primary-200: 0.900 0.100 30;
      --primary-300: 0.830 0.155 30;
      --primary-400: 0.720 0.205 29;
      --primary-500: 0.590 0.235 29;
      --primary-600: 0.515 0.215 28;
      --primary-700: 0.435 0.180 27;
      --primary-800: 0.355 0.145 26;
      --primary-900: 0.275 0.105 25;
      --primary-950: 0.195 0.075 24;

      /* Accent — 深绯红/酒红，与主红形成层次，用于折扣/倒计时/紧迫感 */
      --accent-50: 0.970 0.018 12;
      --accent-100: 0.945 0.050 12;
      --accent-200: 0.900 0.090 11;
      --accent-300: 0.840 0.130 11;
      --accent-400: 0.720 0.170 10;
      --accent-500: 0.555 0.200 10;
      --accent-600: 0.480 0.190 10;
      --accent-700: 0.400 0.160 10;
      --accent-800: 0.320 0.125 10;
      --accent-900: 0.250 0.090 10;
      --accent-950: 0.180 0.060 10;

      /* Secondary — 金黄，作为奖励/信任/次要促销强调色 */
      --secondary-50: 0.98 0.02 92;
      --secondary-100: 0.95 0.05 90;
      --secondary-200: 0.91 0.09 88;
      --secondary-300: 0.86 0.12 86;
      --secondary-400: 0.80 0.15 85;
      --secondary-500: 0.76 0.16 84;
      --secondary-600: 0.68 0.15 82;
      --secondary-700: 0.56 0.13 80;
      --secondary-800: 0.45 0.10 78;
      --secondary-900: 0.36 0.08 76;
      --secondary-950: 0.25 0.05 74;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: oklch(var(--foreground-950)); background: oklch(var(--background-50)); font-family: var(--font-body); line-height: 1.6; }
h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); line-height: 1.2; }
a { color: inherit; }
img { max-width: 100%; height: auto; }
button, input, select, textarea { font: inherit; }
.rt-container { width: min(100% - 2rem, 1200px); margin-inline: auto; }
.rt-skip-link { position: absolute; inset: 0 auto auto -9999px; z-index: 9999; padding: .8rem 1rem; background: white; color: black; }
.rt-skip-link:focus { left: 1rem; top: 1rem; }
.rt-site-header { background: white; border-bottom: 1px solid oklch(var(--background-200)); }
.rt-header-inner { display: flex; align-items: center; justify-content: space-between; gap: 1.5rem; min-height: 78px; }
.rt-brand-link { color: oklch(var(--foreground-950)); text-decoration: none; font-size: 1.25rem; font-family: var(--font-body); font-weight: 800; letter-spacing: -.035em; white-space: nowrap; }
.rt-brand-accent { color: oklch(var(--secondary-500)); }
.custom-logo { display: block; width: auto; max-height: 56px; }
.rt-primary-nav { margin-left: auto; }
.rt-menu-list { display: flex; flex-wrap: wrap; align-items: center; gap: 1rem; padding: 0; margin: 0; list-style: none; }
.rt-menu-list a { text-decoration: none; font-size: .875rem; font-weight: 600; }
.rt-menu-list a:hover, .rt-menu-list a:focus-visible { color: oklch(var(--primary-600)); }
.rt-menu-list .sub-menu { list-style: none; padding: .4rem 0; }
.rt-header-cart { white-space: nowrap; text-decoration: none; font-size: .875rem; font-weight: 700; }
.rt-main { min-height: 60vh; padding-block: 3.5rem 5rem; }
.rt-stage-panel { max-width: 740px; margin: clamp(2rem, 6vw, 5rem) auto; padding: clamp(2rem, 6vw, 4.5rem); border: 1px solid oklch(var(--background-200)); border-radius: 1.25rem; text-align: center; }
.rt-stage-panel h1 { font-size: clamp(2rem, 5vw, 3.5rem); margin: .3rem 0 1rem; }
.rt-eyebrow { margin: 0; color: oklch(var(--primary-600)); font-weight: 800; font-size: .8rem; letter-spacing: .12em; }
.rt-button { display: inline-block; border-radius: 50rem; padding: .75rem 1.4rem; background: oklch(var(--primary-600)); color: white; font-weight: 700; text-decoration: none; }
.rt-page-content { max-width: 950px; margin: 0 auto; }
.rt-page-heading { margin-bottom: 2rem; }
.rt-entry-content { overflow-wrap: anywhere; }
.rt-post-card { padding-block: 1.5rem; border-bottom: 1px solid oklch(var(--background-200)); }
.rt-post-card h2 a { text-decoration: none; }
.rt-site-footer { background: oklch(var(--primary-950)); color: white; padding-block: 2rem; }
.rt-footer-inner { display: flex; gap: 1rem 2rem; align-items: center; flex-wrap: wrap; justify-content: space-between; }
.rt-footer-brand { font-size: .875rem; letter-spacing: .02em; font-weight: 800; }
.rt-copyright { font-size: .75rem; opacity: .8; }
/* Original Readdy helper behavior is preserved for later phase components. */
.hide-scrollbar { -ms-overflow-style: none; scrollbar-width: none; }
.hide-scrollbar::-webkit-scrollbar { display: none; }
@keyframes rt-live-marquee { from { transform: translateX(0); } to { transform: translateX(-50%); } }
.animate-rt-live-marquee { animation: rt-live-marquee 48s linear infinite; }
.animate-rt-live-marquee:hover { animation-play-state: paused; }
.newsletter-verify-field { position: absolute; left: -9999px; top: auto; width: 1px; height: 1px; padding: 0; margin: 0; border: 0; overflow: hidden; opacity: 0; pointer-events: none; }
@media (max-width: 767px) {
    .rt-header-inner { min-height: 64px; flex-wrap: wrap; padding-block: .75rem; }
    .rt-primary-nav { order: 3; flex: 0 0 100%; }
    .rt-menu-list { gap: .5rem 1rem; }
    .rt-site-footer { padding-block: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .animate-rt-live-marquee { animation: none; } }

/* Accessible visually-hidden labels are required even when WooCommerce CSS is unavailable. */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important;white-space:nowrap;word-wrap:normal!important}
.screen-reader-text:focus{clip:auto!important;clip-path:none;height:auto;width:auto;padding:.65rem 1rem;background:#fff;color:#111;z-index:100000;left:1rem;top:1rem}
