/* ============================================================
   STARCO Website v2 — theme tokens
   Exact palette lifted from the v2 Nuxt/Tailwind config
   (tailwind.config.ts → blue / yellow / grey scales).
   The v2 site is lighter and airier than v1: white & pale-blue
   grounds, soft indigo gradient card washes, cube+gold eyebrows,
   rounded-full pill CTAs, ripple-dot connectors.
   ============================================================ */

:root {
  /* blue = primary */
  --b-50:#DEEBFF; --b-100:#D0E3FA; --b-200:#B9D2F7; --b-300:#A1BEF5;
  --b-400:#8AB4F3; --b-500:#73A5F0; --b-600:#4790E5; --b-700:#4469EB;
  --b-800:#2C61E9; --b-900:#1550E6; --b-950:#142474; --b-990:#142355;

  /* yellow = gold accent */
  --y-400:#ffdc00; --y-500:#ffbe00; --y-600:#e29200;

  /* grey */
  --g-50:#f7f7f7; --g-100:#ededed; --g-200:#dfdfdf; --g-300:#c8c8c8;
  --g-400:#acacac; --g-500:#999999; --g-600:#888888; --g-700:#7b7b7b;
  --g-800:#676767; --g-900:#515151; --g-950:#363636;

  --ring-card:#D2D7FA;       /* card hairline ring            */
  --edge:#589AE7;            /* flow-diagram edges            */
  --dot:#4790E5;             /* ripple dot                    */
  --hero-bg:#E9F2FF;         /* hero ground                   */
  --tint-bg:#F4F9FF;         /* pale section ground           */
  --grid-border:#DEEBFF;     /* industry / partner grid lines */

  --font: 'Noto Sans TC','Roboto', -apple-system, 'PingFang TC', sans-serif;

  /* signature soft card wash: indigo glow → white */
  --wash: linear-gradient(0deg, rgba(138,150,243,.10) 10%, rgba(138,150,243,0) 85%),
          linear-gradient(0deg,#fff 0%,#fff 100%);
  --wash-translucent: linear-gradient(0deg, rgba(138,150,243,.10) 10%, rgba(138,150,243,0) 85%),
          linear-gradient(0deg,#ffffffa3 0%,#ffffffa3 100%);
  /* CTA pill */
  --cta-bg: linear-gradient(180deg, rgba(255,255,255,.10), rgba(255,255,255,0)), #142474;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{font-family:var(--font);color:#222;background:#fff;font-size:16px;line-height:1.7;-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit;text-decoration:none}
::selection{background:var(--y-500);color:var(--b-990)}

/* ---- shared primitives ---- */
.wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.eyebrow{display:inline-flex;align-items:center;gap:8px;color:var(--y-500);font-size:1rem;font-weight:500;letter-spacing:.02em;white-space:nowrap}
.eyebrow .cube{width:20px;height:20px}
.sec-title{font-size:2rem;line-height:1.5;font-weight:500;color:#1a1a1a;margin:14px 0 0}
.sec-title b,.sec-title strong{color:var(--b-950);font-weight:700}
.sec-title .navy{color:var(--b-950);font-weight:700}
.sec-desc{font-size:1.125rem;color:var(--g-900);margin:14px 0 0}
.sec-head{text-align:center;display:flex;flex-direction:column;align-items:center}

.cta{display:inline-flex;align-items:center;gap:8px;background:var(--y-500);color:var(--b-990);
  font-size:1.125rem;font-weight:700;border:0;border-radius:999px;padding:14px 32px;cursor:pointer;
  transition:filter .25s ease, transform .25s ease}
.cta:hover{filter:brightness(1.08)}
.cta .arr{transition:transform .25s ease}
.cta:hover .arr{transform:translateX(4px)}

.card{background:var(--wash);border:1px solid var(--ring-card);border-radius:14px}

/* ripple dot connector */
.ripple{position:relative;height:120px;display:flex;justify-content:center}
.ripple .line{position:absolute;top:0;bottom:0;width:2px;background:linear-gradient(180deg,var(--b-300),transparent)}
.ripple .dot{position:absolute;top:18px;width:12px;height:12px;border-radius:50%;background:var(--dot)}
.ripple .dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--dot);
  animation:ripple 1.6s ease infinite}
@keyframes ripple{0%{transform:scale(1);opacity:.5}100%{transform:scale(4.5);opacity:0}}

@media(max-width:768px){
  body{font-size:14px}
  .sec-title{font-size:1.5rem}
}

/* ============================================================
   SHARED CHROME — used by every sub-page (header, dropdown nav,
   footer, breadcrumb, page hero, placeholder). The homepage
   overrides .hdr with its own transparent-over-hero variant.
   ============================================================ */

/* ---- Header (solid, sub-page default) ---- */
.hdr{position:fixed;top:0;left:0;right:0;z-index:40;height:72px;display:flex;align-items:center;
  background:rgba(255,255,255,.97);box-shadow:0 1px 8px rgba(20,35,85,.08);transition:background .3s}
.hdr .row{display:flex;align-items:center;gap:28px;width:100%;max-width:1280px;margin:0 auto;padding:0 24px}
.hdr .logo{height:30px}
.nav{display:flex;align-items:center;gap:6px;font-size:1.0625rem}
.nav>a,.nav .menu>.top{padding:8px 14px;color:#26324f;transition:color .2s;cursor:pointer;display:inline-flex;align-items:center;gap:5px;border-radius:8px}
.nav>a:hover,.nav .menu:hover>.top{color:var(--b-900)}
.nav .caret{font-size:.7em;opacity:.55}
.hdr .right{margin-left:auto;display:flex;align-items:center;gap:14px}
.pill-cta{display:inline-flex;align-items:center;gap:8px;background:var(--y-500);color:var(--b-990);
  border-radius:999px;padding:11px 26px;font-size:1.0625rem;font-weight:700;transition:filter .25s}
.pill-cta:hover{filter:brightness(1.08)}
.icon-btn{width:40px;height:40px;border-radius:999px;display:flex;align-items:center;justify-content:center;background:var(--b-50);color:var(--b-900);font-size:1.1rem}

/* ---- Dropdown menus ---- */
.nav .menu{position:relative}
.nav .menu>.panel{position:absolute;top:100%;left:0;min-width:248px;background:#fff;border:1px solid var(--ring-card);
  border-radius:12px;box-shadow:0 18px 40px rgba(20,35,85,.14);padding:8px;opacity:0;visibility:hidden;
  transform:translateY(8px);transition:.22s;display:flex;flex-direction:column;gap:2px}
.nav .menu:hover>.panel,.nav .menu:focus-within>.panel{opacity:1;visibility:visible;transform:none}
.nav .panel a{display:flex;flex-direction:column;align-items:flex-start;text-align:left;padding:10px 14px;border-radius:8px;color:#26324f;transition:background .18s}
.nav .panel a:hover{background:var(--tint-bg)}
.nav .panel a b{font-weight:500;font-size:1rem;display:flex;align-items:center;gap:8px;color:#142474}
.nav .menu:hover>.panel .top,.nav .panel a:hover b{color:#142474}
.nav .panel a small{color:#8a93ab;font-size:.8rem;margin-top:1px}
.nav .panel .ai{font-size:.6em;font-weight:700;letter-spacing:.04em;color:#7a5c00;background:#FFF3D1;border:1px solid var(--y-400);border-radius:999px;padding:1px 7px}
@media(max-width:980px){.nav{display:none}}

/* ---- Mobile nav ---- */
.burger{display:none;flex-direction:column;gap:5px;background:none;border:0;cursor:pointer;padding:6px}
.burger span{width:24px;height:2px;background:#1a2a5c;transition:.3s}
.burger.x span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger.x span:nth-child(2){opacity:0}
.burger.x span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mnav{position:fixed;top:72px;left:0;right:0;z-index:39;background:#fff;box-shadow:0 12px 30px rgba(20,35,85,.12);
  display:flex;flex-direction:column;padding:8px 0;transform:translateY(-12px);opacity:0;pointer-events:none;transition:.25s;max-height:calc(100vh - 72px);overflow:auto}
.mnav.open{transform:none;opacity:1;pointer-events:auto}
.mnav a{padding:13px 24px;color:#26324f;font-size:1.05rem}
.mnav .grp{padding:13px 24px 4px;font-size:.8rem;letter-spacing:.06em;color:#8a93ab;text-transform:uppercase}
.mnav a.sub{padding-left:38px;font-size:.98rem;color:#445}
.mnav a.cta{margin:10px 24px;justify-content:center;background:var(--cta-bg);color:#fff;border-radius:999px;display:inline-flex;align-items:center;gap:8px}
@media(max-width:980px){.burger{display:flex}}

/* ---- Page hero (sub-pages · Dark War-Room) ---- */
.page-hero{position:relative;padding:148px 0 72px;overflow:hidden;
  background:radial-gradient(130% 130% at 78% 0%,#1A2C5E 0%,#0D1838 58%,#070D20 100%)}
.page-hero .gridbg{position:absolute;inset:0;z-index:1;
  background-image:linear-gradient(rgba(120,160,240,.10) 1px,transparent 1px),linear-gradient(90deg,rgba(120,160,240,.10) 1px,transparent 1px);
  background-size:54px 54px;mask-image:radial-gradient(80% 90% at 75% 10%,#000,transparent 78%);-webkit-mask-image:radial-gradient(80% 90% at 75% 10%,#000,transparent 78%)}
.page-hero .glow{position:absolute;z-index:1;width:480px;height:480px;right:-80px;top:-160px;
  background:radial-gradient(circle,rgba(255,190,0,.18),transparent 60%);pointer-events:none}
.page-hero .wrap{position:relative;z-index:2}
.crumb{display:flex;gap:8px;align-items:center;font-size:.9rem;color:#9fb0d6;margin-bottom:18px;flex-wrap:wrap}
.crumb a{color:#c5d2ee}
.crumb a:hover{color:#fff;text-decoration:underline}
.crumb .sep{opacity:.5}
.page-hero .eyebrow{margin-bottom:6px;color:var(--y-500)}
.page-hero h1{font-size:2.6rem;line-height:1.3;font-weight:700;color:#fff;margin:0}
.page-hero .lede{font-size:1.2rem;color:#c5d2ee;margin:18px 0 0;max-width:680px;line-height:1.8}
@media(max-width:768px){.page-hero h1{font-size:1.9rem}.page-hero{padding:120px 0 56px}}

/* ---- Generic content blocks ---- */
.section{padding:72px 0}
.section.tint{background:var(--tint-bg)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:24px}
@media(max-width:900px){.grid-3{grid-template-columns:1fr;max-width:460px;margin:0 auto}.grid-2{grid-template-columns:1fr}}
.tile{background:var(--wash);border:1px solid var(--ring-card);border-radius:14px;padding:28px;transition:transform .25s,box-shadow .25s}
.tile:hover{transform:translateY(-3px);box-shadow:0 16px 36px rgba(20,35,85,.1)}
.tile .ic{width:56px;height:56px;margin-bottom:16px}
.tile h3{margin:0 0 8px;font-size:1.3rem;font-weight:500;color:var(--b-950)}
.tile p{margin:0;color:var(--g-900);font-size:1.0625rem}

/* ---- "建置中" placeholder ---- */
.wip{max-width:1200px;margin:0 auto;padding:0 24px}
.wip .note{display:flex;gap:14px;align-items:flex-start;background:var(--wash-translucent);
  border:1px dashed var(--b-300);border-radius:14px;padding:22px 26px;color:var(--g-900)}
.wip .note .tag{flex:none;background:#FFF3D1;color:#7a5c00;border:1px solid var(--y-400);border-radius:999px;
  padding:3px 12px;font-size:.8rem;font-weight:700}
.wip .note p{margin:0;line-height:1.7}
.wip .note b{color:var(--b-950)}

/* ---- Footer (shared) ---- */
.site-footer{background:var(--b-990);color:#fff}
.site-footer .inner{max-width:1200px;margin:0 auto;padding:56px 24px 28px;display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:32px}
.site-footer .brand img{height:30px;margin-bottom:24px}
.site-footer .brand p{color:var(--b-200);max-width:280px}
.site-footer .brand .soc{margin-top:24px;display:flex;gap:14px;color:var(--b-300);font-size:.95rem}
.site-footer .col h3{margin:0 0 18px;font-size:1.125rem;font-weight:500;color:#fff}
.site-footer .col a{display:block;color:var(--b-300);margin-bottom:14px}
.site-footer .col a:hover{color:#fff;text-decoration:underline}
.site-footer .bottom{border-top:1px solid #2b3a6b;color:var(--b-300);font-size:.9rem}
.site-footer .bottom .inner{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;padding:18px 24px;grid-template-columns:none}
@media(max-width:860px){.site-footer .inner{grid-template-columns:1fr 1fr}}

/* ---- Section CTA band (shared) ---- */
.cta-band{background:radial-gradient(120% 120% at 80% 30%,#1A2C5E,#0D1838 60%,#080F26);padding:80px 0}
.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.cta-band h2{color:#fff;font-size:1.9rem;font-weight:500;margin:0;line-height:1.4}
.cta-band h2 b{font-weight:700}
.cta-band .eyebrow{color:var(--y-500);margin-bottom:10px}
