/*
Theme Name: BizAIPlan VRV Dark
Theme URI: https://bizaiplan.com
Description: GeneratePress child theme for BizAIPlan — "VRV Dark" sovereign-tech aesthetic (modeled on openrouter.ai / VRV handoff). Dark-first #08080b, elevated #0f0f15 surfaces, a single indigo accent #7c83ff, clean grotesque type (Space Grotesk display / Manrope body / JetBrains Mono accents / Noto Sans SC CJK), rounded corners, subtle radial glows + soft shadow. Chinese-only, dark-only. (Restyled from the earlier Couture Cream / Quiet Luxury iteration — see .backup-bak-vrv-* for the previous tokens.)
Author: BizAIPlan
Template: generatepress
Version: 2.0.0
Text Domain: bizaiplan
*/

/* ============================================================
   FONTS
   - Space Grotesk (display) + Manrope (body): loaded via Google Fonts
     <link> injected in functions.php wp_head (VRV spec uses Google Fonts).
   - JetBrains Mono + Noto Sans SC (CJK): self-hosted, see fonts/fonts.css.
   - Cormorant/Inter @font-face remain self-hosted but are no longer
     referenced by tokens (kept harmless for any legacy markup).
   ============================================================ */

/* ============================================================
   DESIGN TOKENS (VRV Dark) — dark-only, indigo accent.
   Variable NAMES are preserved from the previous theme so layout.css /
   pages.css keep cascading; only VALUES changed + a few VRV additions.
   ============================================================ */
:root{
  /* color — VRV dark palette */
  --color-bg:#08080b;            /* page background */
  --color-bg-alt:#0f0f15;        /* elevated surface / .alt bands / card fill (VRV --bg2) */
  --color-bg-deep:#0c0c12;       /* deeper band / .deep / footer (subtle differentiation on dark) */
  --color-bg-inset:#17171f;      /* inset surface / inputs / in-card chips (VRV --bg3) */
  --color-ink:#f4f4f6;           /* primary text (VRV --text) */
  --color-ink-mid:#9b9ba6;       /* secondary / captions (VRV --muted) */
  --color-ink-soft:#8a8a98;      /* meta / faint (VRV --faint; lightened to clear AA 4.5:1 on dark) */
  --color-ink-inverse:#f4f4f6;   /* text on dark bands == primary text (site is all-dark) */
  --color-rule:rgba(255,255,255,.09);        /* hairline (VRV --border) */
  --color-rule-strong:rgba(255,255,255,.16); /* stronger border for card edges */
  --color-accent:#7c83ff;        /* single indigo accent (VRV --accent dark) */
  --color-accent-hover:#9097ff;  /* accent hover (brighter; VRV brightness(1.08)) */
  --color-accent-soft:rgba(124,131,255,.15); /* accent tint — chips / soft panels / glow */
  --color-glow:rgba(124,131,255,.22);        /* hero radial glow */
  --color-on-accent:#0b0b14;     /* text/icon on accent fills (dark, legible on indigo) */
  --color-focus-ring:var(--color-accent);

  /* type — Latin grotesk first, CJK (Noto Sans SC) falls back behind it.
     VRV: Space Grotesk display / Manrope body / JetBrains Mono accents. */
  --font-display:'Space Grotesk','Noto Sans SC',system-ui,sans-serif;
  --font-body:'Manrope','Noto Sans SC',system-ui,sans-serif;
  --font-mono:'JetBrains Mono',ui-monospace,monospace;
  --text-xs:12px; --text-sm:14px; --text-base:17px; --text-lg:22px;
  --text-xl:30px; --text-2xl:40px; --text-3xl:52px; --text-4xl:66px; --text-5xl:88px; --text-6xl:120px;
  --leading-relaxed:1.6; --leading-cjk-body:1.8; --leading-cjk-head:1.25;
  --tracking-tight:-0.022em; --tracking-wider:0.08em; --tracking-widest:0.16em; --tracking-cjk-label:0.24em;

  /* spacing */
  --space-1:4px; --space-2:8px; --space-3:12px; --space-4:16px; --space-5:24px;
  --space-6:40px; --space-7:64px; --space-8:96px; --space-9:160px; --space-10:240px;

  /* layout / form */
  --content-max:1440px; --gutter:32px; --margin-x:96px;
  /* radius — VRV rounds everything (previous theme was --radius:0) */
  --radius:14px; --radius-card:16px; --radius-sm:10px; --radius-pill:999px;
  --hairline:1px solid var(--color-rule);
  --hairline-strong:1px solid var(--color-rule-strong);
  --hairline-ink:1px solid var(--color-rule-strong);

  /* elevation — VRV allows a single soft shadow (previous theme forbade shadow) */
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 24px 60px rgba(0,0,0,.45);

  /* motion */
  --ease-out-expo:cubic-bezier(0.16,1,0.3,1); --ease-out-cubic:cubic-bezier(0.215,0.61,0.355,1);
  --ease-out-quart:cubic-bezier(0.165,0.84,0.44,1); --ease-in-out:cubic-bezier(0.65,0,0.35,1);
  --dur-fast:150ms; --dur-hover:250ms; --dur-short:400ms; --dur-reveal:600ms; --dur-cinema:700ms;
}

/* ============================================================
   BASE
   ============================================================ */
body{font-family:var(--font-body);font-size:var(--text-base);line-height:var(--leading-relaxed);
  color:var(--color-ink);background:var(--color-bg);-webkit-font-smoothing:antialiased;}
h1,h2,h3,h4,.entry-title,.site-title{font-family:var(--font-display);font-weight:600;
  line-height:1.1;letter-spacing:var(--tracking-tight);color:var(--color-ink);}
h1{font-size:var(--text-3xl);line-height:1.04;font-weight:700;}
h2{font-size:var(--text-2xl);} h3{font-size:var(--text-xl);font-weight:600;}
/* CJK headings: kill negative tracking, loosen leading */
:lang(zh) h1,:lang(zh) h2,:lang(zh) h3,:lang(zh) .cjk{letter-spacing:0;line-height:var(--leading-cjk-head);}
:lang(zh) p,:lang(zh) .prose-cjk{line-height:var(--leading-cjk-body);max-width:38em;}
p{text-wrap:pretty;color:var(--color-ink-mid);}
a{color:inherit;}
code,pre{font-family:var(--font-mono);font-size:var(--text-sm);}

/* eyebrow / kicker — VRV: mono, accent, wide-tracked uppercase (latin); CJK keeps grotesk + label tracking */
.eyebrow{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:500;letter-spacing:var(--tracking-widest);
  text-transform:uppercase;color:var(--color-accent);}
.eyebrow-cjk{font-family:var(--font-mono);font-size:var(--text-sm);font-weight:500;letter-spacing:var(--tracking-cjk-label);color:var(--color-accent);}

:focus-visible{outline:2px solid var(--color-focus-ring);outline-offset:3px;}

/* ============================================================
   BUTTONS — VRV: rounded pills, indigo solid w/ dark text, subtle lift.
   Secondary = transparent + border, surface fill on hover. No uppercase/wide-tracking.
   ============================================================ */
/* Secondary（默认）：透明底 + 强边框、ink 文字，hover 抬升面填充。 */
.button,button,input[type="submit"],.wp-block-button__link,.btn,.btn-secondary{
  border-radius:var(--radius-sm)!important;font-family:var(--font-body);font-size:15px;font-weight:600;
  letter-spacing:0;text-transform:none;cursor:pointer;text-decoration:none;
  background:transparent;color:var(--color-ink);border:var(--hairline-strong);padding:13px 22px;
  transition:background-color var(--dur-hover) var(--ease-out-cubic),color var(--dur-hover) var(--ease-out-cubic),border-color var(--dur-hover) var(--ease-out-cubic),transform var(--dur-hover) var(--ease-out-cubic);}
.button:hover,.wp-block-button__link:hover,.btn:hover,.btn-secondary:hover{background:var(--color-bg-inset);color:var(--color-ink);border-color:var(--color-rule-strong);}
/* Primary / 关键转化：填充靛蓝 accent，深色 on-accent 文字；hover 提亮 + 微抬升。 */
.btn-solid,.btn-primary,.wc-proceed-to-checkout .checkout-button{
  background:var(--color-accent)!important;color:var(--color-on-accent)!important;border-color:var(--color-accent)!important;font-weight:700;}
.btn-solid:hover,.btn-primary:hover,.wc-proceed-to-checkout .checkout-button:hover{
  background:var(--color-accent-hover)!important;color:var(--color-on-accent)!important;border-color:var(--color-accent-hover)!important;transform:translateY(-1px);}
/* 锚点按钮/文字链去掉浏览器与 GP 默认下划线（.link 下划线由 ::after 动画绘制）*/
a.btn,a.button,.btn,.button,.wp-block-button__link,.btn-solid,.btn-secondary,.btn-light,.link,.site-main a.link{text-decoration:none!important;}

/* Card — VRV: filled elevated surface, rounded, soft border; hover → accent border + lift. */
.card{background:var(--color-bg-alt);border:var(--hairline-strong);border-radius:var(--radius-card);padding:var(--space-6);
  transition:border-color var(--dur-hover) var(--ease-out-cubic),transform var(--dur-hover) var(--ease-out-cubic);}
.card:hover{border-color:var(--color-accent);transform:translateY(-2px);}
.card.is-alt{background:var(--color-bg-inset);}
.card__icon{color:var(--color-accent);width:30px;height:30px;margin-bottom:var(--space-4);}

/* hairline underline link */
.link{position:relative;text-decoration:none;color:var(--color-accent);}
.link::after{content:'';position:absolute;left:0;right:0;bottom:-2px;height:1px;background:currentColor;
  transform:scaleX(0);transform-origin:right;transition:transform var(--dur-short) var(--ease-out-quart);}
.link:hover::after{transform:scaleX(1);transform-origin:left;}

/* ============================================================
   LAYOUT RHYTHM — banded sections via elevated surfaces (all-dark).
   ============================================================ */
.site-content{background:var(--color-bg);}
/* GeneratePress separate-containers：内容盒透明，露出 VRV 暗底（修 WC/账户/默认页白底；
   营销 page-templates 走 .sb-fullbleed 自绘 section band，不受影响）。 */
.inside-article,.content-area,.site-main,.entry-content,.woocommerce .entry-content{background:transparent!important;}
.inside-article{box-shadow:none;border:0;}
.separator,hr{border:0;border-top:var(--hairline);}
.deep-section{background:var(--color-bg-deep);color:var(--color-ink-inverse);}
.deep-section h1,.deep-section h2,.deep-section h3{color:var(--color-ink-inverse);}

/* scroll reveal (paired with inc/scroll-reveal.js) */
.reveal{opacity:0;transform:translateY(24px);
  transition:opacity var(--dur-cinema) var(--ease-out-expo),transform var(--dur-cinema) var(--ease-out-expo);}
.reveal.is-in-view{opacity:1;transform:none;}

/* ============================================================
   WOOCOMMERCE — recolor/retype only. Rounded, indigo CTAs, dark surfaces.
   ============================================================ */
.woocommerce .button,.woocommerce a.button,.woocommerce button.button,
.woocommerce #respond input#submit,.woocommerce input.button{
  border-radius:var(--radius-sm)!important;background:transparent;color:var(--color-ink);border:var(--hairline-strong);
  text-transform:none;letter-spacing:0;font-weight:600;box-shadow:none!important;}
.woocommerce .button.alt,.woocommerce #respond input#submit.alt,
.woocommerce a.button.alt,.single_add_to_cart_button,.checkout-button{
  background:var(--color-accent)!important;color:var(--color-on-accent)!important;border-color:var(--color-accent)!important;}
.woocommerce .button.alt:hover,.woocommerce a.button.alt:hover,
.single_add_to_cart_button:hover,.checkout-button:hover{
  background:var(--color-accent-hover)!important;color:var(--color-on-accent)!important;border-color:var(--color-accent-hover)!important;}
.woocommerce .price,.woocommerce-Price-amount{font-family:var(--font-display);font-weight:600;color:var(--color-ink);}
.woocommerce-info,.woocommerce-message,.woocommerce-error{border-top:3px solid var(--color-accent);
  background:var(--color-bg-alt);border-radius:var(--radius-sm);box-shadow:none;color:var(--color-ink);}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea{
  border-radius:var(--radius-sm)!important;background:var(--color-bg-inset);border:var(--hairline-strong);color:var(--color-ink);}
.woocommerce table.shop_table{border-radius:var(--radius)!important;}
.woocommerce-subscription .price{color:var(--color-ink);}

/* My Account → hairline nav, no boxes */
.woocommerce-MyAccount-navigation ul{list-style:none;margin:0;padding:0;border-top:var(--hairline);}
.woocommerce-MyAccount-navigation li{border-bottom:var(--hairline);}
.woocommerce-MyAccount-navigation li a{display:block;padding:16px 0;font-size:14px;letter-spacing:0.02em;text-decoration:none;color:var(--color-ink-mid);}

/* ============================================================
   SOCIAL LOGIN + single-column auth (logged-out my-account)
   ============================================================ */
.woocommerce-account:not(.logged-in) .woocommerce{max-width:360px;margin:0 auto;}
.sb-social{margin:0 0 4px;}
.sb-social__btn{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;height:46px;
  border:var(--hairline-strong);background:var(--color-bg-inset);color:var(--color-ink);text-decoration:none;
  font-size:14px;letter-spacing:.01em;margin-bottom:10px;border-radius:var(--radius-sm);transition:background .18s,border-color .18s;}
.sb-social__btn:hover{background:var(--color-bg-alt);border-color:var(--color-accent);}
.sb-social__btn:hover svg path{fill:var(--color-ink);}           /* GitHub 标随浅色 */
.sb-social__btn--google:hover svg path{fill:initial;}            /* Google 四色不变 */
.sb-social__divider{display:flex;align-items:center;gap:10px;color:var(--color-ink-mid);font-size:12px;margin:18px 0;}
.sb-social__divider::before,.sb-social__divider::after{content:"";flex:1;height:1px;background:var(--color-rule-strong);}
.sb-social-error{border-top:3px solid var(--color-accent);background:var(--color-bg-alt);padding:12px 14px;font-size:13px;margin-bottom:16px;border-radius:var(--radius-sm);color:var(--color-ink);}
.sb-auth-tabs{display:flex;border-bottom:1px solid var(--color-rule-strong);margin-bottom:18px;}
.sb-auth-tabs button{flex:1;background:none;border:0;padding:13px 0;font-size:14px;color:var(--color-ink-mid);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;}
.sb-auth-tabs button.is-active{color:var(--color-ink);font-weight:600;border-bottom-color:var(--color-accent);}
.woocommerce-account:not(.logged-in) .u-column1,
.woocommerce-account:not(.logged-in) .u-column2{width:100%!important;float:none!important;margin:0!important;}
.woocommerce-account:not(.logged-in) .u-column2{display:none;}
.woocommerce-account:not(.logged-in) .col2-set{display:block!important;}

/* ============================================================
   FluentCRM inline subscribe form → underline input + indigo CTA
   ============================================================ */
.fc_form input[type="email"],.fc_form input[type="text"]{
  border:0;border-bottom:1px solid var(--color-rule-strong);background:transparent;border-radius:0;
  padding:14px 4px;font-family:var(--font-body);font-size:17px;color:var(--color-ink);}
.fc_form button[type="submit"]{background:var(--color-accent);color:var(--color-on-accent);border:0;border-radius:var(--radius-sm);
  text-transform:none;letter-spacing:0;font-weight:700;padding:14px 28px;}

@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;}}
