/* N+ light / ink / gold theme. Replaces the previous dark theme, never stacks on it.
   Keep existing page content, photographs, layout, routes, forms and analytics. */
:root {
  color-scheme: light;
  --brand-ink: #303030;
  --brand-paper: #f8f7f4;
  --brand-gold: #c4a064;
  --brand-gold-text: #806027;
  --brand-rule: #ddd8ce;
  --ink: var(--brand-ink);
  --muted: #65615b;
  --paper: var(--brand-paper);
  --line: var(--brand-rule);
  --blue: var(--brand-ink);
  --portal-navy: var(--brand-ink);
  --portal-gold: var(--brand-gold);
  --portal-paper: var(--brand-paper);
  --portal-muted: #65615b;
  --chat-accent: var(--brand-ink);
  --chat-accent-dark: #171717;
  --chat-accent-hover: #171717;
  --chat-pale: #f5f2ec;
  --chat-ink: var(--brand-ink);
  --chat-muted: #65615b;
  --chat-surface: #ffffff;
  --chat-line: var(--brand-rule);
}
body { color: var(--brand-ink); background: #fff; }
.al-page { --al-ink: var(--brand-ink); --al-accent: var(--brand-ink); --al-rule: var(--brand-rule); --al-muted: var(--brand-paper); }

/* White header, ink type, a small gold + and fine separators. */
.ps-site.portal-site > .ps-header,
.npl-page .ps-header,
.al-page .al-header {
  color: var(--brand-ink); background: #fff;
  border-bottom-color: var(--brand-rule); box-shadow: 0 3px 14px #30303006;
}
.portal-site .ps-header .ps-brand,
.portal-site .ps-header .ps-monogram,
.al-page .al-header .al-brand { color: var(--brand-ink); }
.portal-site .ps-header .ps-brand small,
.al-page .al-header .al-brand small,
.al-page .al-header .al-brand-operator { color: #65615b; }
.portal-site .ps-header .ps-monogram > span { color: var(--brand-gold-text); }
.portal-site .ps-desktop-nav a,
.portal-site .ps-mobile-nav a,
.al-page .al-header nav a { color: var(--brand-ink); }
.portal-site .ps-desktop-nav a:hover,
.portal-site .ps-mobile-nav a:hover,
.al-page .al-header nav a:hover { color: var(--brand-gold-text); }
.portal-site .ps-desktop-nav a::after { background: var(--brand-gold); }
.portal-site .ps-menu-button { color: var(--brand-ink); background: #fff; border-color: #bcb5a8; }
.portal-site .ps-mobile-nav { color: var(--brand-ink); background: #fff; border-color: var(--brand-rule); }
.portal-site .ps-mobile-nav a,
.al-page .al-header nav,
.al-page .al-header nav a { border-color: var(--brand-rule); }
.al-page .al-header nav a + a::before { border-left-color: var(--brand-rule); }
.al-page .al-header .al-mobile-phone,
.al-page .al-header .al-mobile-phone a { color: #65615b; }

/* Light left-hand reading surface and a retained photograph on the right. */
.portal-site .immersive-hero--home .immersive-stage,
.npl-page .npl-hero,
.al-page .al-hero { color: var(--brand-ink); background: var(--brand-paper); }
.portal-site .immersive-hero--home .immersive-stage::after,
.npl-page .npl-hero::after {
  background: linear-gradient(#f8f7f400 76%, #f8f7f4 100%),
    linear-gradient(90deg, #f8f7f4 0%, #f8f7f4fa 34%, #f8f7f4ef 53%, #f8f7f4c7 67%, #f8f7f466 82%, #f8f7f408 100%);
}
.al-page .al-hero::after {
  background: linear-gradient(90deg, #f8f7f4 0%, #f8f7f4f7 34%, #f8f7f4db 55%, #f8f7f499 70%, #f8f7f41a 100%);
}
.portal-site .immersive-hero--home .immersive-copy h1,
.npl-page .npl-hero h1,
.al-page .al-hero h1 { color: var(--brand-ink); text-shadow: none; }
.portal-site .immersive-hero--home :is(.immersive-description,.immersive-assurances),
.npl-page .npl-hero :is(.npl-hero-body,.npl-proof,.npl-actions small,.npl-hero-assurance),
.al-page .al-hero :is(.al-hero-text,.al-hero-proof,.al-contact>small,.al-hero-browse),
.immersive-actions > p { color: var(--brand-ink); }
.portal-site .immersive-hero--home .immersive-eyebrow,
.npl-page .npl-hero p.npl-eyebrow,
.al-page .al-hero p.al-eyebrow { color: var(--brand-gold-text); }
.immersive-assurances i { background: #aaa295; }
.npl-page .npl-hero .npl-proof > div,
.npl-page .npl-hero .npl-hero-assurance > span + span { border-color: #bbb4a8; }
.immersive-diagnostic { color: var(--brand-ink); background: #ffffffb8; border-color: #b7aa93; }
.immersive-diagnostic:hover { background: #fff; }
.al-page .al-hero .al-hero-browse { border-color: #a79d8b; }
.portal-site .ps-masthead-stage { color: var(--brand-ink); background: var(--brand-paper); }
.portal-site .ps-masthead-copy { background: #fff; border-bottom-color: var(--brand-gold); }
.portal-site .cv-hero { background: var(--brand-paper); border-bottom-color: var(--brand-rule); }
.cv-hero::before { background: #f0ece3; }
.cv-sector,
.cv-hero-photo::after { border-color: var(--brand-gold); }

/* Supporting information is read on white/paper, with no leftover white text. */
.portal-site .support-editorial,
.portal-site .arch-support,
.transaction-checks,
.npl-contact-band { color: var(--brand-ink); background: var(--brand-paper); }
.portal-site .support-editorial::before { background: none; }
.portal-site .support-editorial :is(h2,h3),
.portal-site .arch-support :is(h2,h3),
.tc-heading h2,
.tc-bridge > p,
.tc-bridge strong,
.npl-contact-band :is(h2,p,small) { color: var(--brand-ink); }
.portal-site .support-editorial li p,
.portal-site .support-editorial-lead,
.portal-site .support-editorial .support-confidential p,
.arch-support-list p,
.arch-support-note,
.tc-heading > p:last-child { color: #5d5952; }
.portal-site .support-editorial .support-confidential svg { color: #65615b; }
.portal-site .support-editorial li,
.arch-support-list > div { border-color: var(--brand-rule); }
.portal-site .support-editorial h3 svg,
.portal-site .arch-support-list svg,
.arch-support-note svg,
.tc-bridge > svg,
.tc-card-top { color: var(--brand-gold-text); }
.tc-points article { color: var(--brand-ink); background: #fff; border-top-color: var(--brand-gold); }
.portal-site .section-label,
.market-eyebrow,
.portal-site .arch-heading > p,
.portal-site .vlp-heading > p,
.portal-site .company-summary-heading > p,
.portal-site .showcase-heading > div > p,
.portal-site .support-editorial .arch-heading > p,
.portal-site .arch-support .arch-heading > p,
.tc-label { color: var(--brand-gold-text); }
.portal-site .arch-heading > p::before,
.portal-site .arch-support .arch-heading > p::before,
.portal-site .support-editorial .arch-heading > p::before,
.collection-header::after { background: var(--brand-gold); }
.portal-site .showcase-listings,
.npl-page .showcase-listings,
.portal-site .consultation-panel,
.npl-last-contact,
.al-muted { background: var(--brand-paper); }
.portal-site .company-summary-section .company-introduction-label { background: var(--brand-paper); border-top-color: var(--brand-gold); }
.portal-site .consultation-panel { --consult-navy: var(--brand-ink); --consult-gold: var(--brand-gold); }
.portal-site .consultation-panel__inner { border-top-color: var(--brand-gold); }
.cv-home-actions { border-top-color: var(--brand-gold); }
.showcase-all { border-bottom-color: var(--brand-gold); }
.inline-line-cta { background: #fcfbf8; border-color: var(--brand-rule); border-left-color: var(--brand-gold); }
.home-service-seller { color: var(--brand-ink); background: var(--brand-paper); border: 1px solid var(--brand-rule); }
.home-service-seller > p,
.home-service-seller :is(h3,small) { color: var(--brand-ink); }
.home-service-seller .home-service-label { color: var(--brand-gold-text); }
.home-service-seller .home-service-links > a { color: var(--brand-ink); border-top-color: var(--brand-rule); }
.home-service-seller .home-service-links > a:hover { color: var(--brand-ink); background: #f0ece3; }

/* Restore the familiar LINE-green button; official PNG is unchanged. */
a.line-consult { background: #06C755 !important; color: #fff !important; border: 1px solid transparent !important; box-shadow: none !important; }
a.line-consult:hover { background: #05B34C !important; }
a.line-consult:focus-visible { outline: 3px solid #98713a !important; outline-offset: 4px !important; }
.npl-form,
.al-primary { background: var(--brand-ink); color: #fff; border-bottom-color: #74654c; }
.npl-form:hover,
.al-primary:hover { background: #474239; }
.npl-contact-band .npl-form,
.al-page .al-hero .al-primary { color: #fff !important; background: var(--brand-ink); border-bottom-color: #74654c; }
.npl-contact-band .npl-form:hover,
.al-page .al-hero .al-primary:hover { background: #474239; }

/* Footer and chat remain light. Charcoal is type and small controls only. */
.portal-site .ps-footer,
.al-footer { color: var(--brand-ink); background: var(--brand-paper); border-top-color: var(--brand-rule); }
.portal-site .ps-footer :is(.ps-brand,h3,strong,.ps-monogram),
.al-footer .al-brand { color: var(--brand-ink); }
.portal-site .ps-footer :is(p,small,a,span),
.al-footer .al-brand small { color: #65615b; }
.al-footer p,
.al-footer button { color: #65615b; }
.portal-site .ps-footer .ps-monogram > span { color: var(--brand-gold-text); }
.portal-site .ps-footer a:hover { color: var(--brand-ink); }
.portal-site .ps-footer-bottom,
.portal-site .ps-footer > .arch-footer-company,
.portal-site .ps-footer > .portal-footer-bottom { border-color: var(--brand-rule); }
.lead-chat { color: var(--brand-ink); background: #fff; border-color: #bcb5a8; }
.lead-chat__header { color: var(--brand-ink); background: #fff; border-top-color: var(--brand-gold); border-bottom: 1px solid var(--brand-rule); }
.lead-chat__header h2 { color: var(--brand-ink) !important; }
.lead-chat__controls button { color: var(--brand-ink); }
.lead-chat__controls button:hover { background: #f0ece4; }
.lead-chat__description { color: #5d5952; background: var(--brand-paper); border-bottom-color: var(--brand-rule); }
.lead-chat__footer,
.lead-chat__footer a { color: #65615b; }
.is-embedded,
.is-embedded main,
body:has(.conversation),
body:has(.conversation) > main { background: #fff; border-color: var(--brand-rule); }
.input-card { background: var(--brand-paper); border-color: var(--brand-rule); }
.bot-body,
.completion-card,
.choice,
.optional-fields,
.back { border-color: var(--brand-rule); }
.bot-label,
.chat-progress small,
.optional-fields summary > span { color: #70685b; }
.answer-bubble,
.receipt { background: #f6f3ed; border-color: var(--brand-rule); }
.complete-mark { background: #f1e8d6; }
.bot-avatar { color: var(--brand-ink); background: #ede7dc; }
.chat-progress { border-top-color: var(--brand-rule); }
.chat-progress progress,
.chat-progress progress::-webkit-progress-bar { background: #e9e3d8; }
input:not([type=checkbox]):not([type=radio]):not([type=hidden]),
textarea,
select { color: var(--brand-ink); background: #fff; }
:is(a,button,input,textarea,select,summary):focus-visible { outline: 3px solid #98713a; outline-offset: 4px; }
.npl-page .npl-hero :is(a,button):focus-visible { outline-color: #98713a; }

@media (max-width:760px) {
  .portal-site .immersive-hero--home .immersive-stage::after,
  .npl-page .npl-hero::after {
    background: linear-gradient(#f8f7f485 0%, #f8f7f4d9 29%, #f8f7f4f5 50%, #f8f7f4 78%),
      linear-gradient(90deg, #f8f7f4bf 0%, #f8f7f485 100%);
  }
  .al-page .al-hero::after { background: linear-gradient(#f8f7f485 0%, #f8f7f4eb 40%, #f8f7f4 75%); }
}
