/* Shared FFT appearance. Content, photographs and downloadable documents retain their original colors. */
:root {
  color-scheme: light;
  --appearance-canvas: #f7f7f4;
  --appearance-surface: #ffffff;
  --appearance-subtle: #eff1ee;
  --appearance-ink: #202a30;
  --appearance-muted: #606d74;
  --appearance-border: #dce1de;
  --appearance-control-border: #788890;
  --appearance-action: #486b80;
  --appearance-action-hover: #38586b;
  --appearance-action-ink: #ffffff;
  --appearance-gold: #8b681d;
  --appearance-gold-soft: #f1ecdf;
  --appearance-success: #25664d;
  --appearance-success-soft: #e8f1eb;
  --appearance-danger: #a4373e;
  --appearance-danger-soft: #f9e9e8;
  --appearance-shadow: 0 8px 28px rgb(20 30 35 / 8%);
}
:root[data-color-scheme='dark'] {
  color-scheme: dark;
  --appearance-canvas: #121416;
  --appearance-surface: #1a1d20;
  --appearance-subtle: #22272a;
  --appearance-ink: #edf0f1;
  --appearance-muted: #a3adb2;
  --appearance-border: #343a3e;
  --appearance-control-border: #6b797f;
  --appearance-action: #a9c8d8;
  --appearance-action-hover: #c3dce8;
  --appearance-action-ink: #172b36;
  --appearance-gold: #d3b46e;
  --appearance-gold-soft: #302b20;
  --appearance-success: #9bd4b6;
  --appearance-success-soft: #20332b;
  --appearance-danger: #f3a4a9;
  --appearance-danger-soft: #3b2529;
  --appearance-shadow: 0 8px 28px rgb(0 0 0 / 22%);
}
@media (prefers-color-scheme: dark) {
  :root:not([data-color-scheme]) {
    color-scheme: dark;
    --appearance-canvas: #121416; --appearance-surface: #1a1d20; --appearance-subtle: #22272a;
    --appearance-ink: #edf0f1; --appearance-muted: #a3adb2; --appearance-border: #343a3e; --appearance-control-border: #6b797f;
    --appearance-action: #a9c8d8; --appearance-action-hover: #c3dce8; --appearance-action-ink: #172b36;
    --appearance-gold: #d3b46e; --appearance-gold-soft: #302b20;
    --appearance-success: #9bd4b6; --appearance-success-soft: #20332b;
    --appearance-danger: #f3a4a9; --appearance-danger-soft: #3b2529;
  }
}
/* Map legacy components to semantic colors instead of altering media. */
:root {
  --firm-canvas: var(--appearance-canvas); --firm-canvas-image: none;
  --firm-surface: var(--appearance-surface); --firm-header: var(--appearance-subtle);
  --firm-blue: var(--appearance-action); --firm-blue-hover: var(--appearance-action-hover);
  --firm-blue-ink: var(--appearance-action); --firm-blue-soft: var(--appearance-subtle); --firm-shadow: none;
  --text-strong: var(--appearance-ink); --text-body: var(--appearance-ink); --text-muted: var(--appearance-muted);
  --text-on-dark: var(--appearance-ink); --text-on-dark-muted: var(--appearance-muted);
  --ink: var(--appearance-ink); --body: var(--appearance-ink); --text: var(--appearance-ink); --muted: var(--appearance-muted);
  --navy: var(--appearance-ink); --navy-ink: var(--appearance-ink);
  --navy-600: var(--appearance-action); --navy-700: var(--appearance-action); --navy-800: var(--appearance-ink); --navy-900: var(--appearance-ink); --navy-950: var(--appearance-ink);
  --white: var(--appearance-surface); --gray-25: var(--appearance-surface); --gray-50: var(--appearance-subtle); --gray-100: var(--appearance-subtle);
  --gray-200: var(--appearance-border); --gray-300: var(--appearance-border); --gray-500: var(--appearance-muted); --gray-600: var(--appearance-muted);
  --gold-100: var(--appearance-gold-soft); --gold-200: var(--appearance-border); --gold-300: var(--appearance-gold);
  --gold-500: var(--appearance-gold); --gold-600: var(--appearance-gold); --gold-700: var(--appearance-gold);
  --border-subtle: var(--appearance-border); --line: var(--appearance-border);
  --success: var(--appearance-success); --warning-soft: var(--appearance-gold-soft); --danger: var(--appearance-danger); --danger-soft: var(--appearance-danger-soft);
  --surface-soft: var(--appearance-subtle); --color-primary: var(--appearance-action);
  --radius-md: 8px; --radius-lg: 12px;
}
html, body { background: var(--appearance-canvas); color: var(--appearance-ink); }
a { color: var(--appearance-action); }
:is(button, a, summary, input, select, textarea):focus-visible { outline: 2px solid var(--appearance-action); outline-offset: 3px; }
input, select, textarea { accent-color: var(--appearance-action); }
::selection { background: var(--appearance-action); color: var(--appearance-action-ink); }
.site-header { background: var(--appearance-canvas); border-bottom: 1px solid var(--appearance-border); box-shadow: none; }
.site-header .container { gap: 20px; }
.site-header .brand { min-width: 0; }
.brand, .footer-brand, .brand .brand-lockup, .footer-brand .brand-lockup,
.brand .brand-lockup > span, .footer-brand .brand-lockup > span,
.brand .brand-lockup strong, .footer-brand .brand-lockup strong { color: var(--appearance-ink); }
.appearance-control { display: none; }
.appearance-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.appearance-control select { min-height: 40px; max-width: 112px; padding: 8px 6px; border: 1px solid var(--appearance-control-border); border-radius: 8px; background: var(--appearance-surface); color: var(--appearance-ink); font: inherit; box-shadow: none; cursor: pointer; }
.appearance-control--standalone { justify-content: flex-end; margin-bottom: 16px; }
.site-header .header-portal { margin-left: 0; order: 3; flex-shrink: 0; white-space: nowrap; }
.site-header .lang-switch { margin-left: auto; order: 2; text-decoration: none; }
.site-header .nav-toggle { order: 4; }
.site-nav .appearance-control { width: 100%; justify-content: space-between; padding-top: 20px; margin-top: 16px; border-top: 1px solid var(--appearance-border); }
.site-nav .appearance-label { position: static; width: auto; height: auto; overflow: visible; clip-path: none; }
.site-nav { gap: 20px; }
.site-nav a:not(.btn) { color: var(--appearance-muted); }
.site-nav a:not(.btn):hover, .site-nav a[aria-current='page'] { color: var(--appearance-ink); }
.site-nav a[aria-current='page'] { border-bottom-color: var(--appearance-action); }
.site-nav.open, .lang-switch, .chat-language .language-button { background: var(--appearance-surface); box-shadow: none; }
.lang-switch, .chat-language .language-button { border: 1px solid var(--appearance-border); border-radius: 8px; }
.site-header .nav-toggle { width: 44px; min-width: 44px; min-height: 44px; border: 1px solid var(--appearance-border); border-radius: 8px; background: var(--appearance-surface); }
.lang-switch:hover, .chat-language .language-button:hover { background: var(--appearance-subtle); }
.nav-toggle span { background: var(--appearance-ink); }
.hero, .contact-merge-hero, .section, .section-alt, .article-hero, .article-body, .client-feedback { background: transparent; }
.hero h1, .hero h2, .hero h3, .on-dark h1, .on-dark h2, .on-dark h3 { color: var(--appearance-ink); }
.hero p, .hero .lead, .hero .eyebrow, .eyebrow, .step::before, .hero-service-number,
.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: var(--appearance-muted); }
.hero-inner { padding-block: 76px; }
.hero h1 { font-size: clamp(34px, 4.2vw, 54px); line-height: 1.1; letter-spacing: -.025em; }
.section { padding-block: 64px; }
.cred-strip { background: transparent; border-block: 1px solid var(--appearance-border); }
.cred, .hero-service-link { border-color: var(--appearance-border); }
.hero-service-panel, .card, .form-card, .audience-path-card, .audience .chip, .testimonial-card,
.about-story-panel, .capability-grid article, .safety-card, .step, .service-family-card,
.service-standalone-card, .service-scope, .featured-article article, .article-list-item,
.founder-intro, .public-disclosure, .article-toc, details.faq-item, .faq-list details {
  background: var(--appearance-surface); color: var(--appearance-ink); border: 1px solid var(--appearance-border); border-radius: 10px; box-shadow: none;
}
.hero-service-panel > .eyebrow, .home-service-grid .card > .eyebrow { background: transparent; margin: 0 0 20px; padding: 0; border-radius: 0; color: var(--appearance-muted); }
.card .ic { background: transparent; color: var(--appearance-action); }
/* Repeated choices read as one list; only forms and focused content need a panel. */
.home-service-grid .card, .service-family-card, .service-standalone-card {
  background: transparent; border: 0; border-top: 1px solid var(--appearance-border);
  border-radius: 0; padding: 24px 0; box-shadow: none;
}
.home-service-grid { column-gap: 32px; row-gap: 12px; }
.home-service-grid .card h3 { margin-bottom: 12px; }
.home-service-grid .card p { color: var(--appearance-muted); }
.home-service-grid .card .card-link { align-self: flex-start; padding-block: 8px; }
.faq-list details, details.faq-item {
  background: transparent; border: 0; border-bottom: 1px solid var(--appearance-border);
  border-radius: 0; box-shadow: none;
}
.service-detail-row, .service-detail-row:first-child, .service-detail-row:last-child {
  background: transparent; border: 0; border-top: 1px solid var(--appearance-border); border-radius: 0; padding: 28px 0; box-shadow: none;
}
.service-detail-row + .service-detail-row { margin-top: 0; }
.step { background: transparent; border: 0; border-top: 1px solid var(--appearance-border); border-radius: 0; padding-inline: 0; }
.article-list-item, .article-list-item + .article-list-item, .featured-article article { background: transparent; border: 0; border-top: 1px solid var(--appearance-border); border-radius: 0; padding-inline: 0; }
.form-section legend { background: transparent; padding: 0; border-radius: 0; }
.support-ribbon, .cta-band { background: var(--appearance-subtle); border: 0; border-radius: 0; color: var(--appearance-ink); }
.cta-band h2, .cta-band p { color: var(--appearance-ink); }
.site-footer { background: transparent; border-top: 1px solid var(--appearance-border); }
.footer-bottom { border-color: var(--appearance-border); }
.site-footer h4 { color: var(--appearance-ink); }
.founder-intro:hover, .founder-intro:hover .founder-intro-cta, .capability-grid article:hover { background: var(--appearance-subtle); color: var(--appearance-action); }
.founder-intro img, .about-portrait { border-width: 1px; }
.btn { min-height: 44px; border-radius: 8px; box-shadow: none; }
html[lang='zh'] .btn { letter-spacing: normal; }
.btn-primary, .btn-accent, .button-primary, .field-submit, .action-button--primary, .start-chat-button, .send-button, .download-button {
  background: var(--appearance-action); border-color: var(--appearance-action); color: var(--appearance-action-ink); box-shadow: none;
}
.btn-primary:hover, .btn-accent:hover, .button-primary:hover, .field-submit:hover, .action-button--primary:focus-visible,
.start-chat-button:hover, .send-button:hover, .download-button:hover { background: var(--appearance-action-hover); color: var(--appearance-action-ink); }
.btn-secondary, .btn-ghost, .btn-outline-light, .button-secondary, .field-skip,
.action-button, .conversation-reply, .quote-choice-button, .slot-button, .icon-button {
  background: var(--appearance-surface); border-color: var(--appearance-border); color: var(--appearance-action); box-shadow: none;
}
.action-button--primary { background: var(--appearance-action); color: var(--appearance-action-ink); }
.btn-secondary:hover, .btn-ghost:hover, .btn-outline-light:hover, .icon-button:hover,
.quote-choice-button--selected, .quote-service:has(input:checked), .field-card .quote-step-option:has(input:checked) { background: var(--appearance-subtle); color: var(--appearance-action); border-color: var(--appearance-action); }
.field input, .field select, .field textarea, .form-card input:not([type='checkbox']):not([type='radio']),
.form-card textarea, .form-card select, .field-card select, .field-card textarea, .field-card input:not([type='checkbox']):not([type='radio']),
.quote-section-field input, .quote-section-field select, .composer textarea, #slot {
  background: var(--appearance-surface); color: var(--appearance-ink); border: 1px solid var(--appearance-control-border); border-radius: 8px; box-shadow: none;
}
input::placeholder, textarea::placeholder { color: var(--appearance-muted); opacity: 1; }
.field input:not([type='checkbox']):not([type='radio']), .field select,
.form-card input:not([type='checkbox']):not([type='radio']), .form-card select { min-height: 44px; }
.table-wrap { border: 1px solid var(--appearance-border); border-radius: 8px; box-shadow: none; }
thead, .article-copy th, .quote-line-item-table th { background: var(--appearance-subtle); color: var(--appearance-ink); }
.article-copy blockquote, .article-disclaimer, .notice-banner, .notice { background: var(--appearance-subtle); border-color: var(--appearance-border); color: var(--appearance-ink); }
.article-toc { border: 0; border-left: 2px solid var(--appearance-border); border-radius: 0; background: transparent; padding-block: 0; }
.public-disclosure > summary, .article-toc-title { color: var(--appearance-ink); }
/* The dedicated receptionist and booking pages share the same surfaces. */
.chat-shell { border: 1px solid var(--appearance-border); border-radius: 12px; background: var(--appearance-surface); box-shadow: none; }
.chat-header, .composer, .composer-note, .summary-dialog { background: var(--appearance-surface); color: var(--appearance-ink); border-color: var(--appearance-border); }
.chat-log { background: var(--appearance-canvas); }
.chat-controls { flex-wrap: wrap; }
.chat-controls .appearance-control select { max-width: 100px; font-size: 12px; }
.privacy-details, .privacy-strip, .current-quote-summary, .quote-result, .quote-result__extras,
.summary-disclaimer, .prototype-warning, .download-panel, .chat-turnstile-region { background: var(--appearance-subtle); border-color: var(--appearance-border); color: var(--appearance-muted); box-shadow: none; }
.privacy-details summary, .privacy-strip > span, .current-quote-summary summary { color: var(--appearance-muted); }
.message-bubble, .field-card, .resource-card { background: var(--appearance-surface); border-color: var(--appearance-border); color: var(--appearance-ink); }
.message--user .message-bubble { background: var(--appearance-subtle); color: var(--appearance-ink); border-color: var(--appearance-border); }
.message--user .message-bubble strong { color: var(--appearance-ink); }
.message--user .message-meta { color: var(--appearance-muted); }
.friendly-tagline { background: var(--appearance-success-soft); color: var(--appearance-success); }
.inline-notice { background: var(--appearance-gold-soft); color: var(--appearance-gold); border-color: var(--appearance-gold); }
.inline-notice--danger { background: var(--appearance-danger-soft); color: var(--appearance-danger); border-color: var(--appearance-danger); }
.booking-pending-warning, .status.error, .download-status.error { color: var(--appearance-danger); }
.send-button:disabled, .button-primary:disabled, .composer textarea:disabled { background: var(--appearance-subtle); color: var(--appearance-muted); }
.toast, .chat-latest-button { background: var(--appearance-ink); color: var(--appearance-canvas); border-color: var(--appearance-border); }
@media (max-width: 959.98px) {
  .site-nav { max-height: calc(100dvh - 76px); overflow-y: auto; border-bottom: 1px solid var(--appearance-border); }
  .site-nav a:not(.btn) { display: inline-flex; align-items: center; min-height: 44px; }
  .site-nav.open { gap: 8px; border-radius: 0; }
}
@media (min-width: 960px) {
  .site-header .nav-toggle { display: none; }
  body[data-public-navigation='sidebar'] { --public-sidebar-width: 240px; }
  body[data-public-navigation='sidebar'] > main,
  body[data-public-navigation='sidebar'] > .site-footer { margin-left: var(--public-sidebar-width); min-width: 0; }
  .site-header .container { max-width: none; }
  .site-header .site-nav {
    position: fixed; inset: 76px auto 0 0; width: var(--public-sidebar-width);
    display: flex; flex-direction: column; align-items: stretch; gap: 8px;
    padding: 28px 20px; overflow-y: auto;
    background: var(--appearance-canvas); border-right: 1px solid var(--appearance-border);
  }
  .site-nav a:not(.btn), html[lang='zh'] .site-nav a:not(.btn) {
    display: flex; align-items: center; min-height: 48px; padding: 12px 16px;
    font-family: var(--font-body); font-size: 16px; font-weight: 400; letter-spacing: normal;
    border: 0; border-radius: 8px;
  }
  .site-nav a:not(.btn):hover, .site-nav a[aria-current='page'] {
    background: var(--appearance-subtle); color: var(--appearance-ink); border: 0;
  }
  .site-nav > .btn { margin-top: 20px; }
}
@media (max-width: 720px) {
  .hero-inner { padding-block: 44px; }
  .section { padding-block: 44px; }
  .site-header .container { gap: 10px; }
  .appearance-control select { min-height: 44px; max-width: 92px; font-size: 12px; }
  .chat-header { gap: 12px; }
}
@media (max-width: 420px) {
  .site-header .brand .brand-lockup strong { max-width: 155px; font-size: 12px; white-space: normal; }
  .site-header .brand > img { width: 32px; flex-basis: 32px; }
  .site-header .container { gap: 8px; }
  .chat-header { flex-wrap: wrap; }
}
@media (max-width: 600px) {
  .site-header .brand .brand-lockup strong { display: none; }
  .site-header .brand .brand-lockup > span { font-size: 16px; }
  .site-header .header-portal { font-size: 13px; min-height: 44px; padding: 10px 12px; }
}
@media print {
  body[data-public-navigation='sidebar'] > main, body[data-public-navigation='sidebar'] > .site-footer { margin-left: 0; }
  .site-header .site-nav { display: none; }
  :root, :root[data-color-scheme] { color-scheme: light !important; --appearance-canvas: #fff; --appearance-surface: #fff; --appearance-subtle: #f3f3f3; --appearance-ink: #202a30; --appearance-muted: #606d74; --appearance-border: #ccc; --appearance-action: #486b80; --appearance-action-ink: #fff; --appearance-gold: #8b681d; --appearance-gold-soft: #f1ecdf; }
  .appearance-control { display: none; }
}
@media (forced-colors: active) {
  .appearance-control select, .btn, .card, .chat-shell { border: 1px solid ButtonText; }
}
