/* Shared visual language with Workspace and Client Portal. No seasonal artwork. */
:root {
  /* Dusty blue actions stay distinct from darker text on pale surfaces. */
  --firm-blue: #58758b;
  --firm-blue-hover: #49657b;
  --firm-blue-ink: #304c62;
  --firm-blue-soft: #e9eff3;
  --font-body: Arial, 'Helvetica Neue', 'Microsoft YaHei', sans-serif;
  --font-display: var(--font-body);
  --font-cjk: var(--font-body);
  --navy-ink: var(--firm-blue-ink);
  --text-strong: var(--firm-blue-ink);
  --text-body: #172b45;
  --text-muted: #43536a;
  --gray-600: #43536a;
  --gray-500: #536477;
  --radius-md: 12px;
  --radius-lg: 16px;
  --firm-canvas: #f1f6f8;
  --firm-surface: #fafbfd;
  --firm-header: #e4ecef;
  --firm-shadow: 0 2px 4px rgb(18 40 62 / 8%);
  --firm-canvas-image:
    radial-gradient(circle at 60px calc(100% - 175px), transparent 334px, rgb(179 203 210 / 27%) 335px, transparent 336px),
    radial-gradient(circle at 60px calc(100% - 175px), transparent 389px, rgb(179 203 210 / 8%) 390px, transparent 391px),
    radial-gradient(circle at calc(100% - 10px) 275px, transparent 184px, rgb(179 203 210 / 17%) 185px, transparent 186px),
    radial-gradient(ellipse at 7% 87%, rgb(205 223 230 / 48%), transparent 48%),
    radial-gradient(ellipse at 100% 0%, rgb(225 233 223 / 37%), transparent 55%);
}
html { background: var(--firm-canvas); }
body {
  color: var(--text-body);
  font-family: var(--font-body);
  background: var(--firm-canvas-image) var(--firm-canvas) fixed;
}
/* Preserve actual acronyms (IRS, FBAR, ITIN); remove decorative all-caps. */
h1, h2, h3, h4, button, label, .btn, .eyebrow, .site-nav, .card-link,
.cred b, .footer h4, .site-footer h4, .article-meta, .article-tag {
  font-family: var(--font-body);
  letter-spacing: normal;
  text-transform: none;
}
.site-header { background: rgb(255 255 255 / 94%); border: 0; box-shadow: var(--firm-shadow); }
.site-header .container { gap: 24px; }
.brand, .footer-brand { display: flex; align-items: center; gap: 10px; color: #0a2240; }
.brand > img, .footer-brand > img { width: 38px; height: 38px; flex: 0 0 38px; object-fit: contain; }
.brand .brand-lockup, .footer-brand .brand-lockup { display: grid; gap: 1px; font-family: var(--font-body); letter-spacing: normal; text-transform: none; color: #0a2240; }
.brand .brand-lockup > span, .footer-brand .brand-lockup > span { display: block; font: 400 13px/1.25 var(--font-body); color: #0a2240; letter-spacing: normal; text-transform: none; }
.brand .brand-lockup strong, .footer-brand .brand-lockup strong { display: block; font: 700 15px/1.25 var(--font-body); color: #0a2240; letter-spacing: normal; white-space: nowrap; }
.brand-name-zh { display: none !important; }
html[lang^='zh'] .brand-name-en { display: none !important; }
html[lang^='zh'] .brand-name-zh { display: block !important; }
.site-nav { gap: 20px; }
.site-nav > a:not(.btn):not(.lang-switch) { font-weight: 400; letter-spacing: normal; }
.hero, .contact-merge-hero, .section, .section-alt, .article-hero, .article-body { background: transparent; }
.hero { color: var(--text-body); }
.hero h1, .hero h2, .hero h3, .context-panel h1 { color: var(--text-strong); line-height: 1.18; letter-spacing: normal; }
.hero h1 { font-size: clamp(32px, 4vw, 48px); }
.hero p, .hero .lead, .context-panel .lead { color: var(--text-muted); }
.hero .eyebrow, .eyebrow { color: #536b7e; letter-spacing: normal; }
.hero-inner { padding-block: 68px; }
.home-hero-grid { gap: 48px; }
.hero-service-panel, .card, .form-card, .audience-path-card, .audience .chip,
.testimonial-card, .about-story-panel, .capability-grid article, .safety-card {
  background: var(--firm-surface);
  border: 0;
  border-radius: 16px;
  box-shadow: var(--firm-shadow);
  color: var(--text-body);
}
.hero-service-panel { padding: 24px; }
.hero-service-panel > .eyebrow { margin: -24px -24px 8px; padding: 16px 24px; background: var(--firm-header); border-radius: 16px 16px 0 0; color: var(--firm-blue-ink); }
.hero-service-link { color: var(--text-strong); border-color: #e3e9ee; }
.hero-service-link small { color: var(--text-muted); }
.hero-service-number { color: #667d8d; }
.hero-service-link:hover strong { color: var(--firm-blue-ink); text-decoration: underline; }
.card .ic { color: var(--firm-blue-ink); background: var(--firm-blue-soft); }
.card .card-link { color: var(--firm-blue-ink); letter-spacing: normal; }
.cred-strip { background: rgb(255 255 255 / 60%); border: 0; }
.cred { border-color: #cbd8e2; }
.section { padding-block: 64px; }
.section-head { margin-bottom: 30px; }
/* Distinct surfaces keep long pages easy to scan without hiding the winter canvas. */
.section-alt { background: rgb(216 226 238 / 62%); }
.section-alt + .section-alt { background: transparent; }
.client-feedback { background: rgb(233 229 218 / 48%); }
.cred-strip { background: #e3ebf2; }
.home-service-grid .card > .eyebrow {
  margin: -28px -28px 22px;
  padding: 14px 28px;
  border-radius: 16px 16px 0 0;
  background: var(--firm-header);
  color: var(--firm-blue-ink);
}
.step, .service-family-card, .service-standalone-card, .service-scope,
.featured-article article, .article-list-item {
  background: var(--firm-surface);
  border: 0;
  border-radius: 16px;
  box-shadow: var(--firm-shadow);
}
.step { padding: 24px; }
.service-scope { padding: 28px; }
.step::before { color: #536b7e; }
.step b { letter-spacing: normal; }
.featured-article article, .article-list-item { padding: 28px; }
.article-list-item + .article-list-item { margin-top: 20px; border: 0; }
.service-detail-row, .service-detail-row:first-child, .service-detail-row:last-child {
  padding: 28px;
  background: var(--firm-surface);
  border: 0;
  border-radius: 16px;
  box-shadow: var(--firm-shadow);
}
.service-detail-row + .service-detail-row { margin-top: 24px; }
.form-section legend { padding: 12px 16px; background: var(--firm-header); border-radius: 10px; }
.support-ribbon { background: var(--firm-blue-soft); border: 0; border-radius: 16px; color: var(--text-body); }
.btn { border-radius: 12px; letter-spacing: normal; text-transform: none; box-shadow: var(--firm-shadow); font-weight: 400; }
.btn-primary, .btn-accent { background: var(--firm-blue); color: white; border-color: transparent; box-shadow: 0 3px 8px rgb(18 40 62 / 16%); }
.btn-primary:hover, .btn-accent:hover { background: var(--firm-blue-hover); color: white; }
.btn-secondary, .btn-ghost, .btn-outline-light { background: white; color: var(--firm-blue-ink); border: 1px solid transparent; }
.btn-secondary:hover, .btn-ghost:hover, .btn-outline-light:hover { background: var(--firm-blue-soft); color: var(--firm-blue-ink); }
.field input, .field select, .field textarea, .form-card input:not([type='checkbox']):not([type='radio']), .form-card textarea, .form-card select {
  background: #f5f7fa; border: 1px solid transparent; border-radius: 12px;
  box-shadow: inset 0 2px 5px rgb(18 40 62 / 11%); color: var(--text-body); font: inherit;
}
.field :is(input, select, textarea):focus-visible, .btn:focus-visible { outline: 2px solid var(--firm-blue); outline-offset: 3px; }
.table-wrap { border: 0; border-radius: 16px; box-shadow: var(--firm-shadow); }
thead { background: #eee8dc; color: var(--firm-blue-ink); }
details.faq-item, .faq-list details { background: var(--firm-surface); border-radius: 12px; box-shadow: var(--firm-shadow); border: 0; }
.cta-band { background: var(--firm-header); color: var(--text-body); }
.cta-band h2, .cta-band p { color: var(--firm-blue-ink); }
.site-footer { background: rgb(255 255 255 / 82%); color: var(--text-muted); border: 0; }
.site-footer .footer-main { padding-inline: var(--container-pad-x); }
.site-footer h4, .site-footer a { color: var(--firm-blue-ink); letter-spacing: normal; }
.site-footer p, .site-footer li, .footer-bottom { color: var(--text-muted); }
.footer-bottom { border-color: #d8e2ee; }
.founder-intro { background: var(--firm-surface); color: var(--text-body); box-shadow: var(--firm-shadow); }
.founder-intro .founder-intro-cta { color: var(--firm-blue-ink); }
.founder-intro:hover, .founder-intro:hover .founder-intro-cta { background: white; color: var(--firm-blue-ink); }
.article-hero { color: var(--text-body); border: 0; }
.article-hero h1 { color: var(--text-strong); }
.article-hero .topic-label, .article-hero .article-meta, .breadcrumb, .breadcrumb a,
.contact-rocky-link, .contact-rocky-link:hover, .on-dark-link, .on-dark-link:hover { color: #43536a; }
.article-toc { background: var(--firm-surface); border: 0; border-radius: 16px; box-shadow: var(--firm-shadow); }
.footer-cta:hover { color: var(--firm-blue-ink) !important; }
/* Standalone Rocky and private booking/record screens use the same canvas. */
.context-panel, .context-panel .lead, .capability-grid p, .safety-card p, .prototype-scope { color: var(--text-muted); }
.context-panel .brand { background: transparent; }
.capability-grid h2, .safety-card h2 { color: var(--text-strong); }
.friendly-tagline { background: #e7f0eb; color: #286453; border: 0; }
.context-panel::after { display: none; }
.capability-grid article:hover { background: white; }
.chat-title h2, #chat-title { text-transform: none; letter-spacing: normal; }
.chat-shell { border-radius: 20px; box-shadow: 0 8px 28px rgb(18 40 62 / 14%); }
@media (max-width: 1080px) { .site-nav.open { border-radius: 0 0 16px 16px; box-shadow: 0 6px 14px rgb(18 40 62 / 10%); } }
@media (max-width: 720px) { .hero-inner { padding-block: 44px; } .section { padding-block: 44px; } .home-hero-grid { gap: 28px; } }
@media (max-width: 720px) {
  .step, .featured-article article, .article-list-item,
  .service-detail-row, .service-detail-row:first-child, .service-detail-row:last-child { padding: 22px; }
}
@media (max-width: 380px) { .brand .brand-lockup strong { font-size: 12px; } .brand > img { width: 32px; flex-basis: 32px; } .site-header .container { gap: 10px; } }
@media (forced-colors: active) { body { background: Canvas; } }

/* Show choices before supporting explanation, while keeping the firm palette. */
.usability-compact-hero { padding: 28px 0 20px; }
.usability-compact-hero h1 { margin: 0 0 12px; font-size: clamp(28px, 3vw, 42px); }
.usability-compact-hero p { max-width: 780px; margin: 0; }
.usability-service-choices, .articles-index { padding-top: 20px; }
.usability-service-choices .service-family-grid { grid-template-columns: repeat(auto-fit,minmax(min(280px,100%),1fr)); }
.contact-secondary-links { display: flex; gap: 10px 24px; flex-wrap: wrap; margin-top: 16px !important; font-size: .9rem; }
.contact-secondary-links a { text-decoration: underline; text-underline-offset: 3px; }
.usability-compact-hero .contact-start-actions { margin-top: 20px; }
@media (max-width: 650px) {
  .usability-compact-hero { padding-top: 22px; }
  .usability-compact-hero .contact-start-actions { gap: 10px; }
  .usability-compact-hero .contact-start-actions .btn { width: auto; min-height: 44px; }
  .contact-secondary-links { flex-direction: column; align-items: flex-start; }
}
