/* Public editorial shell: adapts legacy components to shared identity.
   App/admin density and their layouts are deliberately independent. */
body.public-site.landing-body {
  --text-main: var(--wesal-ink); --text-muted: var(--wesal-muted);
  --wa-green-ink: var(--wesal-action); --wa-green-rgb: 22,99,71;
  --bg-main: var(--wesal-paper); --bg-card: var(--wesal-surface);
  --bg-primary: var(--wesal-surface); --bg-input: var(--wesal-surface);
  --text-secondary: var(--wesal-muted); --border-control: var(--wesal-control-line);
  --bg-section: var(--wesal-paper); --border-color: var(--wesal-line);
  --wa-green: var(--wesal-action); --wa-green-dark: var(--wesal-action);
  background: var(--wesal-paper); color: var(--wesal-ink);
  font-family: var(--wesal-font); line-height: 1.7;
}
body.public-site.landing-body :is(button,input,select,textarea) { font-family: inherit; }
body.public-site.landing-body :is(a,button,input,select,textarea):focus-visible {
  outline: 3px solid var(--wesal-focus); outline-offset: 4px;
}
body.public-site.landing-body :is(main,section,.landing-container,.pricing-card) { min-width: 0; }
body.public-site.landing-body .landing-header {
  background: var(--wesal-paper); border-bottom: 1px solid var(--wesal-line);
  box-shadow: none; backdrop-filter: none;
}
body.public-site.landing-body .brand-logo-wrapper { background: none; border: 0; box-shadow: none; }
body.public-site.landing-body .landing-header .logo-icon { filter: none; }
body.public-site.landing-body .landing-header .wm-on-light { display: block; }
body.public-site.landing-body .landing-header .wm-on-dark { display: none; }
html.dark-mode body.public-site.landing-body .landing-header .wm-on-light { display: none; }
html.dark-mode body.public-site.landing-body .landing-header .wm-on-dark { display: block; }
body.public-site.landing-body .landing-header :is(.brand-text h2,.brand-text > span,.landing-nav a,.nav-drawer-title) { color: var(--wesal-ink); }
body.public-site.landing-body .landing-nav { background: transparent; border: 0; border-radius: 0; }
body.public-site.landing-body .landing-nav a { border-radius: var(--wesal-control-radius); min-height: var(--wesal-touch); }
body.public-site.landing-body .landing-nav a:is(:hover,.active) { color: var(--wesal-ink); background: var(--wesal-soft); }
body.public-site.landing-body .landing-header :is(.nav-icon-btn,.landing-menu-toggle,.nav-drawer-close) {
  color: var(--wesal-ink); background: var(--wesal-surface);
  border: 1px solid var(--wesal-control-line); box-shadow: none;
  min-width: var(--wesal-touch); min-height: var(--wesal-touch);
}
body.public-site.landing-body .btn { border-radius: var(--wesal-control-radius); min-height: var(--wesal-touch); white-space: normal; }
body.public-site.landing-body :is(.btn-primary,.nav-register-btn) {
  --nav-primary-text: var(--wesal-paper);
  background: var(--wesal-ink); color: var(--wesal-paper); border-color: var(--wesal-ink); box-shadow: none;
}
body.public-site.landing-body :is(.btn-primary,.nav-register-btn):hover { background: var(--wesal-action); color: var(--wesal-paper); }
body.public-site.landing-body .hero-actions .btn-primary { background: var(--wesal-ink); color: var(--wesal-paper); }
body.public-site.landing-body .hero-actions .btn-primary:hover { background: var(--wesal-action); color: var(--wesal-paper); }
body.public-site.landing-body .landing-footer a:hover { color: var(--wesal-action); }
body.public-site.landing-body .nav-login-btn {
  --nav-control-text: var(--wesal-ink); --nav-control-border: var(--wesal-control-line);
  --nav-control-hover: var(--wesal-soft); color: var(--wesal-ink); border-color: var(--wesal-control-line); background: transparent; }
body.public-site.landing-body :is(.about-hero,.about-cta) { background: var(--wesal-hero); color: var(--wesal-on-hero); }
body.public-site.landing-body .about-hero { padding-block: 64px; }
body.public-site.landing-body .about-hero h1 { font-size: clamp(28px,3.6vw,48px); line-height: 1.4; max-width: 1000px; margin-inline: auto; }
body.public-site.landing-body .about-hero p { max-width: 760px; margin-inline: auto; }
body.public-site.landing-body .about-card:hover { transform: none; box-shadow: none; }
body.public-site.landing-body :is(.about-card,.about-value) { border-radius: var(--wesal-panel-radius); }
body.public-site.landing-body .landing-footer { background: var(--wesal-paper); color: var(--wesal-muted); border-top: 1px solid var(--wesal-line); }
body.public-site.landing-body .landing-footer a { color: var(--wesal-ink); text-decoration: underline; text-underline-offset: 4px; }
body.public-site.landing-body .footer-business-contact { display: flex; flex-wrap: wrap; justify-content: center; gap: 12px 24px; font-style: normal; margin-block-end: 24px; }
body.public-site.landing-body .footer-business-contact strong { color: var(--wesal-ink); }
body.public-site.landing-body .footer-business-contact a { min-height: var(--wesal-touch); display: inline-flex; align-items: center; }
body.public-site.landing-body .pricing-section { padding-block-start: 28px; }
body.public-site.landing-body .pricing-section .section-title { margin-block-end: 24px; }
body.public-site.landing-body .pricing-section .section-title p { max-width: 860px; }
body.public-site.landing-body #pricing { scroll-margin-block-start: 90px; }
body.public-site.landing-body .pricing-card { background: var(--wesal-surface); border-color: var(--wesal-line); border-radius: var(--wesal-panel-radius); box-shadow: none; }
body.public-site.landing-body .pricing-card :is(.price,.plan-price) { color: var(--wesal-action); }
body.public-site.landing-body .founding-offer-banner { margin-block: 32px; }
@media(max-width:1650px) {
  body.public-site.landing-body .nav-drawer { background: var(--wesal-surface); color: var(--wesal-ink); }
  body.public-site.landing-body .nav-drawer a { color: var(--wesal-ink); }
}
@media(max-width:600px) {
  body.public-site.landing-body .landing-container { padding-inline: 16px; }
  body.public-site.landing-body .nav-container { gap: 8px; }
  body.public-site.landing-body .about-hero { padding-block: 40px; }
  body.public-site.landing-body .pricing-section .section-title h1 { font-size: 28px; }
  body.public-site.landing-body .pricing-section .section-title { text-align: start; }
  body.public-site.landing-body .footer-business-contact { flex-direction: column; align-items: center; gap: 8px; }
}

/* Component pairs: never inherit a dark foreground onto a light fallback card.
   Legacy important nav rules consume component variables with legacy fallbacks;
   no global on-dark token or dark-mode behavior is changed. */
body.public-site.landing-body :is(.contact-section,.contact-form,.contact-card) {
  background: var(--wesal-surface); color: var(--wesal-ink);
  border-color: var(--wesal-line);
}
body.public-site.landing-body .contact-card:hover { background: var(--wesal-soft); border-color: var(--wesal-control-line); }
body.public-site.landing-body .contact-card .contact-value { color: var(--wesal-muted); }
body.public-site.landing-body .contact-field :is(input,select,textarea) {
  background: var(--wesal-surface); color: var(--wesal-ink); border-color: var(--wesal-control-line);
}
body.public-site.landing-body .contact-field :is(input,textarea)::placeholder { color: var(--wesal-muted); opacity: 1; }
body.public-site.landing-body .contact-consent { color: var(--wesal-ink); }
body.public-site.landing-body .contact-consent a { color: var(--wesal-action); }
body.public-site.landing-body .contact-field [aria-invalid="true"] { border-color: var(--wesal-danger); }
body.public-site.landing-body :is(.btn-primary,.nav-register-btn)::after { display: none; }
body.public-site.landing-body .btn:disabled {
  --nav-control-text: var(--wesal-muted); --nav-primary-text: var(--wesal-muted);
  opacity: 1;
}
/* Short pricing essentials stay visible; secondary allowance detail is optional. */
.public-site .pricing-summary { max-width: 720px; margin: 16px auto; padding-inline-start: 24px; text-align: start; }
.public-site .pricing-summary li { margin-block: 8px; line-height: 1.7; }
.public-site .pricing-explanation { max-width: 720px; margin: 12px auto 24px; text-align: start; }
.public-site .pricing-explanation summary { cursor: pointer; min-height: 44px; padding-block: 10px; font-weight: 600; }
.public-site .pricing-explanation summary:focus-visible { outline: 2px solid currentColor; outline-offset: 4px; }
