/* AITrade101 shared shell — header, nav, dropdown, footer, container, heroes, buttons */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{
  font-family:var(--font-sans,var(--font-main),system-ui,sans-serif);
  background:var(--cream);
  color:var(--ink);
  font-size:18px;
  line-height:1.7;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
body > main{flex:1 0 auto}
img{display:block;max-width:100%;height:auto}
a{color:var(--navy);text-decoration:underline;text-underline-offset:3px}
a:hover{color:var(--navy-hover)}

/* Container aliases: .wrap (home/signup) + .container (guides) */
.wrap,
.container{
  width:100%;
  max-width:var(--container);
  margin-inline:auto;
  padding-inline:var(--gutter);
}
.article{max-width:var(--article);margin-inline:auto}
.form-width{max-width:var(--form);margin-inline:auto}

/* Buttons — navy primary (gold never on primary buttons per brand) */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:48px;padding:14px 22px;border-radius:10px;
  font-family:inherit;font-size:1.05rem;font-weight:600;line-height:1.3;
  text-decoration:none;cursor:pointer;border:1.5px solid transparent;
  transition:background .18s,color .18s,border-color .18s;
}
.btn:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.btn-primary,
.btn-gold{
  background:var(--navy);color:#fff;border-color:var(--navy);
  box-shadow:0 8px 24px rgba(24,49,83,.22);
}
.btn-primary:hover,
.btn-gold:hover{
  background:var(--navy-hover);border-color:var(--navy-hover);color:#fff;filter:none;
  box-shadow:0 10px 28px rgba(24,49,83,.3);
}
.btn-secondary{
  background:transparent;color:var(--navy);border-color:var(--navy);
}
.btn-secondary:hover{background:var(--tint);color:var(--navy-hover);border-color:var(--navy-hover)}
.btn-tertiary{
  background:transparent;color:var(--navy);border-color:transparent;
  text-decoration:underline;text-underline-offset:4px;padding:14px 16px;
}
.btn-wa{
  color:#fff;background:#25d366;border-color:#25d366;
  box-shadow:0 8px 20px rgba(37,211,102,.28);
}
.btn-wa:hover{filter:brightness(1.05);color:#fff}
.btn-sm{
  min-height:38px;padding:8px 15px;font-size:.86rem;
  border:1px solid var(--navy);color:var(--navy);background:transparent;border-radius:10px;
}
.btn-sm:hover{background:var(--tint)}
.btn svg{width:22px;height:22px;flex:none}
.btn-sm svg{width:17px;height:17px}
.btn[aria-disabled="true"]{opacity:.72;pointer-events:none}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;align-items:center}

/* ========== Header (canonical: .top / .top-inner) ========== */
/* Alias: header.nav / .nav-inner for older guides markup */
.top,
header.nav{
  position:sticky;top:0;left:0;right:0;z-index:100;
  background:var(--cream);
  border-bottom:1px solid rgba(24,49,83,.12);
}
.top-inner,
.nav-inner{
  max-width:var(--container);margin:0 auto;padding:var(--header-py) var(--gutter);
  min-height:var(--header-min);display:flex;align-items:center;justify-content:space-between;gap:12px;
}
.brand-cluster{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
.brand{display:inline-flex;align-items:center;text-decoration:none;line-height:0;flex-shrink:0;gap:0;color:var(--navy);font-weight:700}
.brand img{display:block;height:28px;width:auto}
.brand:focus-visible{outline:2px solid var(--navy);outline-offset:2px;border-radius:4px}
.brand .gold{color:var(--navy);background:none;-webkit-background-clip:unset;background-clip:unset}

/* Lang switcher */
.lang-switch,
.lang{
  display:inline-flex;align-items:center;gap:0;flex-shrink:0;
}
.lang-switch a,
.lang a{
  display:inline-flex;align-items:center;justify-content:center;
  min-width:44px;min-height:44px;padding:0 8px;
  font-size:15px;font-weight:600;line-height:1;color:var(--slate);
  text-decoration:none;border-radius:8px;
}
.lang-switch a:hover,
.lang-switch a[aria-current="page"],
.lang a:hover,
.lang a.is-active{color:var(--navy);background:var(--tint)}
.lang-switch a:focus-visible,
.lang a:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.lang-switch .sep,
.lang-sep{color:var(--border);font-weight:400;user-select:none;padding:0 1px;font-size:14px}

/* Hamburger */
.nav-toggle{
  display:block;width:48px;height:48px;border:1px solid var(--border);border-radius:8px;
  background:var(--surface);cursor:pointer;position:relative;flex-shrink:0;margin-left:auto;
  color:var(--navy);font:inherit;
}
.nav-toggle:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.nav-toggle .bar,
.nav-burger span{
  position:absolute;left:12px;right:12px;height:2px;background:var(--ink);border-radius:2px;
  transition:transform .2s,opacity .2s,top .2s;
}
.nav-toggle .bar:nth-child(1),
.nav-burger span:nth-child(1){top:16px}
.nav-toggle .bar:nth-child(2),
.nav-burger span:nth-child(2){top:23px}
.nav-toggle .bar:nth-child(3),
.nav-burger span:nth-child(3){top:30px}
.nav-toggle[aria-expanded="true"] .bar:nth-child(1),
.nav.is-open .nav-burger span:nth-child(1){transform:translateY(7px) rotate(45deg);top:23px}
.nav-toggle[aria-expanded="true"] .bar:nth-child(2),
.nav.is-open .nav-burger span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] .bar:nth-child(3),
.nav.is-open .nav-burger span:nth-child(3){transform:translateY(-7px) rotate(-45deg);top:23px}
.nav-burger{position:relative;display:block;width:18px;height:14px;margin:0 auto}
.nav-toggle-label{display:none}

/* Nav links panel (ul.nav-links OR .nav-panel) */
.nav-links,
.nav-panel{
  display:none;list-style:none;
  position:fixed;top:var(--header-min);left:0;right:0;
  flex-direction:column;align-items:stretch;gap:0;
  background:var(--cream);border-bottom:1px solid var(--border);
  padding:8px 16px 16px;
  box-shadow:0 8px 24px rgba(37,43,51,.06);
  max-height:calc(100vh - var(--header-min));overflow:auto;z-index:99;
}
.nav-links.open,
.nav.is-open .nav-panel{display:flex}
.nav-links a,
.nav-panel a{
  display:inline-flex;align-items:center;min-height:48px;padding:0 12px;
  font-size:17px;font-weight:500;color:var(--ink);text-decoration:none;border-radius:8px;
}
.nav-links a:hover,
.nav-panel a:hover,
.nav-panel a:focus-visible,
.nav-panel a.is-current,
.nav-links a[aria-current="page"]{color:var(--navy);background:var(--tint)}
.nav-links a.nav-cta,
.nav-panel a.nav-cta{
  background:var(--navy);color:#fff!important;font-weight:600;justify-content:center;margin-top:8px;
}
.nav-links a.nav-cta:hover,
.nav-panel a.nav-cta:hover{background:var(--navy-hover);color:#fff!important}

/* Dropdown: 深入指南 */
.nav-dd{position:relative;list-style:none;width:100%}
.nav-dd-btn{
  display:inline-flex;align-items:center;gap:6px;width:100%;
  min-height:48px;padding:0 12px;border:0;border-radius:8px;
  background:transparent;cursor:pointer;
  font:inherit;font-size:17px;font-weight:500;color:var(--ink);text-align:left;
}
.nav-dd-btn:hover{color:var(--navy);background:var(--tint)}
.nav-dd-btn:focus-visible{outline:2px solid var(--navy);outline-offset:2px}
.nav-caret{
  display:inline-block;width:0;height:0;margin-left:2px;
  border-left:4px solid transparent;border-right:4px solid transparent;
  border-top:5px solid currentColor;transition:transform .15s ease;
}
.nav-dd.is-open > .nav-dd-btn .nav-caret{transform:rotate(180deg)}
.nav-dd-menu{
  list-style:none;display:none;flex-direction:column;gap:0;
  padding:0 0 4px 8px;margin:0;
}
.nav-dd-menu a{font-size:16px;min-height:44px;padding:0 12px}
.nav-links.open .nav-dd-menu,
.nav.is-open .nav-dd-menu{display:flex}
.nav-links.open .nav-dd-btn,
.nav.is-open .nav-dd-btn{
  font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--navy);
  min-height:auto;padding:10px 12px 4px;cursor:default;pointer-events:none;
}
.nav-links.open .nav-dd-btn .nav-caret,
.nav.is-open .nav-dd-btn .nav-caret{display:none}

/* Desktop nav */
@media (min-width:960px){
  .nav-toggle{display:none}
  .nav-links,
  .nav-panel{
    display:flex!important;position:static;flex-direction:row;align-items:center;gap:6px;
    background:transparent;border:0;padding:0;box-shadow:none;max-height:none;overflow:visible;
    min-width:0;max-width:none;border-radius:0;
  }
  .nav-links a,
  .nav-panel > a{min-height:40px;padding:0 12px;font-size:15px;white-space:nowrap;border-radius:8px}
  .nav-links a.nav-cta,
  .nav-panel a.nav-cta{margin-top:0;padding:0 16px;border-radius:8px}
  .nav-dd{width:auto}
  .nav-dd-btn{
    width:auto;min-height:40px;padding:0 12px;font-size:15px;
    pointer-events:auto;cursor:pointer;letter-spacing:0;font-weight:500;color:var(--ink);
  }
  .nav-dd-btn .nav-caret{display:inline-block}
  .nav-dd-menu{
    position:absolute;top:calc(100% + 8px);left:0;min-width:220px;
    background:var(--cream);border:1px solid var(--border);border-radius:var(--radius);
    box-shadow:0 12px 32px rgba(37,43,51,.12);padding:8px;z-index:120;display:none;
  }
  .nav-dd.is-open > .nav-dd-menu{display:flex}
  .nav-links.open .nav-dd-menu,
  .nav.is-open .nav-dd-menu{display:none}
  .nav-dd.is-open > .nav-dd-menu{display:flex}
  .nav-links.open .nav-dd-btn,
  .nav.is-open .nav-dd-btn{
    font-size:15px;font-weight:500;color:var(--ink);min-height:40px;padding:0 12px;
    letter-spacing:0;pointer-events:auto;cursor:pointer;
  }
  .nav-dd-menu a{min-height:44px;padding:0 14px;font-size:15px;white-space:nowrap}
  /* Worker nav wraps .nav-panel inside nav.nav — keep flex row */
  nav.nav[data-site-nav]{
    display:flex;align-items:center;flex:0 1 auto;min-width:0;justify-content:flex-end;position:relative;margin:0;
  }
}

/* Worker top-actions (lang+cta) — hide duplicate WA when using shared shell; keep lang near brand via markup change */
.top-actions{display:none}

/* ========== Inner page navy hero band (guides + signup) ========== */
:root{
  --hero-scrim:linear-gradient(90deg, rgba(24,49,83,.94) 0%, rgba(24,49,83,.88) 45%, rgba(24,49,83,.60) 65%, rgba(24,49,83,.40) 100%);
  --hero-image:none;
}
.hero-inner,
.detail-hero{
  background-color:var(--navy);
  color:var(--cream);
  padding:calc(var(--hero-inner-py) + .5rem) 0 var(--hero-inner-py);
  min-height:17.5rem; /* short band but tall enough for full face + shoulders */
  background-image:var(--hero-scrim), var(--hero-image);
  background-size:cover, cover;
  /* Anchor photo toward top-right so cover crop keeps full faces (not mouth-only) */
  background-position:center, right 18%;
  background-repeat:no-repeat;
}
.hero-inner[data-hero="ea"]{--hero-image:url("/assets/section-heroes/ea.jpg?v=20261108hf")}
.hero-inner[data-hero="faq"]{--hero-image:url("/assets/section-heroes/questions.jpg?v=20261108hf")}
.hero-inner[data-hero="outcomes"]{--hero-image:url("/assets/section-heroes/outcomes.jpg?v=20261108hf")}
.hero-inner[data-hero="syllabus"]{--hero-image:url("/assets/section-heroes/syllabus.jpg?v=20261108hf")}
.hero-inner[data-hero="fit"]{--hero-image:url("/assets/section-heroes/fit.jpg?v=20261108hf")}
.hero-inner[data-hero="signup"]{--hero-image:url("/assets/section-heroes/signup.jpg?v=20261108hf")}
@media (max-width:768px){
  .hero-inner,
  .detail-hero{
    --hero-scrim:linear-gradient(90deg, rgba(24,49,83,.92) 0%, rgba(24,49,83,.90) 50%, rgba(24,49,83,.88) 100%);
    min-height:15rem;
    background-position:center, right 12%;
  }
}
.hero-inner .back-home,
.detail-hero .back-home{
  display:inline-flex;align-items:center;gap:6px;
  color:rgba(247,243,234,.92);font-weight:600;text-decoration:none;
  margin-bottom:20px;font-size:16px;
}
.hero-inner .back-home:hover,
.detail-hero .back-home:hover{text-decoration:underline;color:#fff}
.hero-inner h1,
.detail-hero h1{
  color:var(--cream);margin:0 0 16px;max-width:820px;
  font-size:clamp(1.75rem,4vw,2.25rem);line-height:1.3;font-weight:700;
}
.hero-inner .lead,
.hero-inner .intro,
.detail-hero .intro{
  font-size:18px;line-height:1.65;color:rgba(247,243,234,.92);max-width:820px;margin:0;
}
.hero-inner .en{
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;
  color:rgba(180,147,82,.95);margin-bottom:8px;opacity:.95;
}

/* ========== Cards ========== */
.card,
.card-block{
  background:var(--surface);
  border:1px solid var(--border);
  border-radius:var(--radius-card);
  padding:var(--card-pad);
  margin-bottom:var(--gap);
  box-shadow:var(--shadow-card);
  color:var(--ink);
}

/* ========== Footer (navy — shared) ========== */
.footer,
footer.site-footer,
body.shell-public > footer,
body.lovart-public > footer{
  background:var(--navy);
  color:rgba(247,243,234,.88);
  padding:var(--footer-py) 0 calc(var(--footer-py) - .5rem);
  border-top:0;
  margin-top:auto;
}
.footer .brand-foot,
footer .brand-foot{
  font-size:1.2rem;font-weight:700;color:#F7F3EA;margin-bottom:8px;
}
.footer p,
footer > .wrap > p,
footer > .container > p{
  font-size:.95rem;line-height:1.6;max-width:42em;color:rgba(247,243,234,.88);
}
.footer a,
footer a{color:#F7F3EA}
.footer a:hover,
footer a:hover{color:#fff}
.footer-links{
  display:flex;flex-wrap:wrap;gap:8px 16px;margin:14px 0;
}
.footer-links a{text-decoration:none;font-size:.9rem;opacity:.9}
.footer-links a:hover{opacity:1;text-decoration:underline}
.footer .lang,
.footer .lang-switch{margin-top:16px}
.footer .lang a,
.footer .lang-switch a{color:rgba(247,243,234,.75)}
.footer .lang a:hover,
.footer .lang a.is-active,
.footer .lang-switch a:hover,
.footer .lang-switch a[aria-current="page"]{color:#fff;background:rgba(255,255,255,.1)}

/* Hide dark-theme FAB on shell pages */
body.shell-public .fab,
body.lovart-public .fab{display:none}

@media (max-width:768px){
  .cta-row{flex-direction:column;align-items:stretch}
  .cta-row .btn{width:100%}
}
@media (max-width:390px){
  .brand img{height:22px}
  .lang-switch a,
  .lang a{min-width:40px;padding:0 4px;font-size:14px}
}
