/*
 * FinBedrock 0.1.1 — optional bridge. Load after the legacy plugin CSS, on pilot pages only.
 * Tokens/components do not need this file. Keep the parent wrapper opt-in.
 * The calculator bridge follows the dark tokens (same hook as the calculator's own
 * dark palette). The Picker has no dark palette of its own: its bridge stays light-only.
 */
.fb-ds-v01[data-fb-kadence-bridge] {
  --global-palette1: var(--fb-color-action);
  --global-palette2: var(--fb-color-action-hover);
  --global-palette3: var(--fb-color-heading);
  --global-palette4: var(--fb-color-text);
  --global-palette5: var(--fb-color-muted);
  --global-palette6: var(--fb-color-muted);
  --global-palette7: var(--fb-color-soft);
  --global-palette8: var(--fb-color-page);
  --global-palette9: var(--fb-color-surface);
  --global-palette-highlight: var(--fb-color-action);
  --global-palette-highlight-alt: var(--fb-color-action-hover);
  --global-palette-highlight-alt2: var(--fb-color-on-action);
  --global-palette-btn-bg: var(--fb-color-action);
  --global-palette-btn-bg-hover: var(--fb-color-action-hover);
  --global-palette-btn: var(--fb-color-on-action);
  --global-palette-btn-hover: var(--fb-color-on-action);
  --global-body-font-family: var(--fb-font-sans);
  --global-heading-font-family: var(--fb-font-sans);
}
/* --fbp-primary stays navy (today's #1a3e6e look: filled buttons with white text). */
.fb-ds-v01 .fbp-picker {
  --fbp-primary: var(--fb-color-brand-navy);
  --fbp-accent: var(--fb-color-brand-blue);
  --fbp-border: var(--fb-color-input-border);
  --fbp-radius: var(--fb-radius-control);
  --fbp-gap: var(--fb-space-4);
}
.fb-ds-v01:not(.color-switch-dark .fb-ds-v01):not([data-theme="dark"] .fb-ds-v01) .fbp-picker {
  --fbp-bg-muted: var(--fb-color-page);
  --fbp-text: var(--fb-color-text);
  --fbp-text-muted: var(--fb-color-muted);
  --fbp-success-bg: var(--fb-color-soft);
}
.fb-ds-v01 .fbc-root {
  --fbc-surface: var(--fb-color-surface);
  --fbc-bg: var(--fb-color-page);
  --fbc-fg: var(--fb-color-text);
  --fbc-muted: var(--fb-color-muted);
  --fbc-line: var(--fb-color-border);
  --fbc-brand: var(--fb-color-action);
  --fbc-brand-soft: var(--fb-color-soft);
  --fbc-ok: var(--fb-color-success);
  --fbc-ok-bg: var(--fb-color-success-bg);
  --fbc-bad: var(--fb-color-error);
  --fbc-bad-bg: var(--fb-color-error-bg);
  --fbc-warn-bg: var(--fb-color-warning-bg);
  --fbc-focus: var(--fb-color-focus);
  --fbc-radius: var(--fb-radius-card);
}
.fb-ds-v01 :is(.fbp-picker, .fbc-root) :is(button, input, select, textarea):focus-visible { outline: 3px solid var(--fb-color-focus); outline-offset: 3px; }
.fb-ds-v01 .fbc-root .fbc-field__control { border-color: var(--fb-color-input-border); }
.fb-ds-v01 .fbc-root .fbc-field--invalid .fbc-field__control { border-color: var(--fb-color-error); }

/* Author box (theme template-parts/author-box.php) inside the design system: the name links to the
   author page but reads as a name, not as a link (the wrapper-wide link colour turned it blue). */
.fb-ds-v01 .fb-author-box { background: var(--fb-color-page); border-color: var(--fb-color-border); border-radius: var(--fb-radius-card); }
.fb-ds-v01 .fb-author-box__label { color: var(--fb-color-muted); }
.fb-ds-v01 .fb-author-box__name, .fb-ds-v01 .fb-author-box__name:hover { color: var(--fb-color-heading); }
.fb-ds-v01 .fb-author-box__expertise { color: var(--fb-color-action); background: var(--fb-color-soft); border-radius: var(--fb-radius-pill); }
.fb-ds-v01 .fb-author-box__bio { color: var(--fb-color-muted); font-size: var(--fb-text-md); }
.fb-ds-v01 .fb-author-box__links { margin: var(--fb-space-3) 0 0; font-size: var(--fb-text-sm); }

/* FAQ (theme template-parts/faq.php) inside the design system: same look as .fbds-faq —
   one framed list, semibold questions, the +/− marker in the action colour. */
.fb-ds-v01 .fb-faq { margin: var(--fb-space-12) 0 var(--fb-space-8); padding-top: 0; border-top: 0; }
.fb-ds-v01 .fb-faq__title { margin: 0 0 var(--fb-space-4); }
.fb-ds-v01 .fb-faq__item { border: 1px solid var(--fb-color-border); border-top: 0; background: var(--fb-color-surface); padding: 0 var(--fb-space-5); }
.fb-ds-v01 .fb-faq__item:first-of-type { border-top: 1px solid var(--fb-color-border); border-radius: var(--fb-radius-card) var(--fb-radius-card) 0 0; }
.fb-ds-v01 .fb-faq__item:last-of-type { border-radius: 0 0 var(--fb-radius-card) var(--fb-radius-card); }
.fb-ds-v01 .fb-faq__question { min-height: 44px; padding: var(--fb-space-4) 0; font-size: var(--fb-text-md); color: var(--fb-color-heading); }
.fb-ds-v01 .fb-faq__question:hover { color: var(--fb-color-action); }
.fb-ds-v01 .fb-faq__question::after { color: var(--fb-color-action); }
.fb-ds-v01 .fb-faq__answer { padding: 0 0 var(--fb-space-5); font-size: var(--fb-text-md); color: var(--fb-color-text); }
.fb-ds-v01 .fb-faq__answer :where(p) { margin: 0 0 var(--fb-space-3); }
.fb-ds-v01 .fb-faq__answer :where(p):last-child { margin-bottom: 0; }

/* Newsletter band (template-parts/newsletter-cta.php, guides) and "What to Read Next"
   (template-parts/related-links.php) inside the design system. */
.fb-ds-v01 .fb-newsletter-cta { display: grid; gap: var(--fb-space-2); margin-block: var(--fb-space-8); padding: var(--fb-space-6); border: 0; border-radius: var(--fb-radius-card); background: var(--fb-color-result-bg); color: var(--fb-color-on-result); text-align: left; }
.fb-ds-v01 .fb-newsletter-cta :where(p, h3) { margin: 0; }
.fb-ds-v01 .fb-newsletter-cta__eyebrow { font-size: var(--fb-text-xs); font-weight: var(--fb-weight-bold); letter-spacing: 0.1em; text-transform: uppercase; color: var(--fb-color-brand-sky); }
.fb-ds-v01 .fb-newsletter-cta__title { font-size: var(--fb-text-lg); color: var(--fb-color-on-result); }
.fb-ds-v01 .fb-newsletter-cta__sub { color: var(--fb-color-on-result); opacity: 0.85; }
.fb-ds-v01 .fb-related-posts { margin-block: var(--fb-space-8); padding: 0; border: 0; background: transparent; }
.fb-ds-v01 .fb-related-posts__title { margin: 0 0 var(--fb-space-4); font-size: var(--fb-text-h2); text-transform: none; letter-spacing: 0; color: var(--fb-color-heading); }
.fb-ds-v01 .fb-related-group { margin-block-end: var(--fb-space-4); padding: 0; border: 0; }
.fb-ds-v01 .fb-related-group__label { display: block; margin-block-end: var(--fb-space-2); font-size: var(--fb-text-xs); font-weight: var(--fb-weight-semibold); letter-spacing: 0.06em; text-transform: uppercase; color: var(--fb-color-muted); }
.fb-ds-v01 .fb-related-group__label-link { color: var(--fb-color-action); text-decoration: none; }
.fb-ds-v01 .fb-related-group__label-link::after { content: " →"; }
.fb-ds-v01 .fb-related-group__label-link:hover { text-decoration: underline; }
.fb-ds-v01 .fb-related-group__list { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--fb-space-3); }
.fb-ds-v01 .fb-related-group__item { margin: 0; padding: 0; border: 0; }
.fb-ds-v01 .fb-related-group__link { display: block; height: 100%; padding: var(--fb-space-4); border: 1px solid var(--fb-color-border); border-radius: var(--fb-radius-card); background: var(--fb-color-surface); color: var(--fb-color-heading); font-weight: var(--fb-weight-semibold); text-decoration: none; }
.fb-ds-v01 .fb-related-group__link::before { content: none; }
.fb-ds-v01 .fb-related-group__link:hover { border-color: var(--fb-color-action); color: var(--fb-color-action); }
