/*
 * FinTiger theme: minimal. Ink on white, one orange for actions and links, greys for structure. Loaded
 * after Bootswatch Simplex (layout/css.php) and overrides it through Bootstrap 5.3's CSS variables. Page
 * templates use the same tokens (var(--ft-*, fallback)). Design notes: docs/DESIGN_SYSTEM.md.
 */
:root {
    /* Palette (contrast on white: text 16.8:1, link 5.0:1, button text 4.75:1, muted 5.1:1) */
    --ft-text: #1d1d1f;
    --ft-heading: #1d1d1f;
    --ft-muted: #6e6e73;
    --ft-faint: #737373;          /* small labels and meta: 4.7:1 on white, 4.5:1 on --ft-subtle */
    --ft-accent: #eb5d1e;         /* brand orange: borders, focus, highlights */
    --ft-action: #c9480f;         /* buttons (white text AA) */
    --ft-action-hover: #b03d0b;
    --ft-link: #c2470f;
    --ft-link-hover: #8f3409;
    --ft-line: #e8e8ed;
    --ft-line-strong: #d2d2d7;
    --ft-surface: #ffffff;
    --ft-subtle: #fafafa;
    --ft-tint: #fafafa;
    --ft-radius: 12px;
    --ft-radius-sm: 8px;
    --ft-font: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;

    --bs-body-font-family: var(--ft-font);
    --bs-body-font-size: 1rem;
    --bs-body-line-height: 1.6;
    --bs-body-color: var(--ft-text);
    --bs-body-color-rgb: 29, 29, 31;
    --bs-body-bg: var(--ft-surface);
    --bs-emphasis-color: var(--ft-text);
    --bs-heading-color: var(--ft-heading);
    --bs-secondary-color: var(--ft-muted);
    --bs-tertiary-bg: var(--ft-subtle);
    --bs-secondary-bg: var(--ft-subtle);
    --bs-primary: var(--ft-action);
    --bs-primary-rgb: 201, 72, 15;
    --bs-danger: var(--ft-action);
    --bs-danger-rgb: 201, 72, 15;
    --bs-link-color: var(--ft-link);
    --bs-link-color-rgb: 194, 71, 15;
    --bs-link-hover-color: var(--ft-link-hover);
    --bs-link-hover-color-rgb: 143, 52, 9;
    --bs-border-color: var(--ft-line);
    --bs-border-color-translucent: rgba(0, 0, 0, .08);
    --bs-border-radius: var(--ft-radius-sm);
    --bs-border-radius-lg: var(--ft-radius);
    --bs-focus-ring-color: rgba(235, 93, 30, .25);
}

body {
    font-family: var(--ft-font);
    color: var(--ft-text);
    -webkit-font-smoothing: antialiased;
    text-rendering: optimizeLegibility;
}

/* Type: one family, a short scale, tight headings */
h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
    font-family: var(--ft-font);
    color: var(--ft-heading);
    font-weight: 700;
    letter-spacing: -.015em;
    line-height: 1.25;
}
h1, .h1 { font-size: clamp(1.75rem, 1.3rem + 1.6vw, 2.5rem); }
h2, .h2 { font-size: clamp(1.35rem, 1.15rem + .7vw, 1.75rem); }
h3, .h3 { font-size: 1.2rem; }
h4, .h4 { font-size: 1.05rem; }
.lead { font-size: 1.125rem; color: var(--ft-muted); font-weight: 400; }
.text-muted, .text-secondary { color: var(--ft-muted) !important; }
small, .small { font-size: .875rem; }
hr { border-color: var(--ft-line); opacity: 1; }

a {
    color: var(--ft-link);
    text-decoration: none;
}
a:hover { color: var(--ft-link-hover); text-decoration: underline; text-underline-offset: 3px; }
/* Links inside running text: ink with a grey underline, orange on hover (rows of orange links were noisy).
   Standalone links and buttons keep the orange. */
p a:not(.btn):not([style*="background"]), li a:not(.btn):not(.nav-link):not(.dropdown-item):not([style*="background"]), td a:not(.btn):not([style*="background"]), .faq a {
    color: var(--ft-text) !important; /* templates set link colours inline */
    text-decoration: underline;
    text-decoration-color: var(--ft-line-strong);
    text-decoration-thickness: 1px;
    text-underline-offset: 3px;
}
p a:not(.btn):not([style*="background"]):hover, li a:not(.btn):not(.nav-link):not([style*="background"]):hover, td a:not(.btn):not([style*="background"]):hover, .faq a:hover {
    color: var(--ft-link) !important;
    text-decoration-color: currentColor;
}
.btn, .nav-link, .navbar-brand, .card a.stretched-link, a.text-decoration-none { text-decoration: none !important; }

/* Header: white, hairline, real logo */
body { padding-top: 64px; }
.navbar.fixed-top {
    background: rgba(255, 255, 255, .92) !important;
    -webkit-backdrop-filter: saturate(180%) blur(12px);
    backdrop-filter: saturate(180%) blur(12px);
    border-width: 0 0 1px !important; /* Simplex draws a 1px box around .navbar */
    border-color: var(--ft-line) !important;
    box-shadow: none;
    padding-top: .5rem;
    padding-bottom: .5rem;
    min-height: 64px;
}
.navbar .navbar-brand { display: flex; align-items: center; padding: 0; margin-right: 1.5rem; }
.navbar .navbar-brand img { height: 30px; width: auto; display: block; }
.navbar .nav-link,
.navbar-dark .navbar-nav .nav-link {
    color: var(--ft-text) !important;
    font-size: .95rem;
    font-weight: 500;
    padding: .5rem .85rem !important;
    border-radius: var(--ft-radius-sm);
}
.navbar .nav-link:hover, .navbar .nav-link:focus { background: var(--ft-subtle); color: var(--ft-text) !important; }
.navbar .navbar-toggler { border: 1px solid var(--ft-line); border-radius: var(--ft-radius-sm); padding: .35rem .55rem; }
.navbar .navbar-toggler:focus { box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color); }
.navbar-dark .navbar-toggler-icon {
    background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 30 30'%3e%3cpath stroke='rgba%2838, 32, 28, 0.85%29' stroke-linecap='round' stroke-miterlimit='10' stroke-width='2' d='M4 7h22M4 15h22M4 23h22'/%3e%3c/svg%3e");
}
@media (max-width: 991.98px) {
    .navbar .navbar-collapse { padding: .5rem 0 .75rem; }
}

/* Buttons: one action colour, calm shape, no shouting */
.btn {
    font-family: var(--ft-font);
    font-weight: 600;
    text-transform: none;
    letter-spacing: 0;
    border-radius: var(--ft-radius-sm);
    box-shadow: none !important;
    transition: background-color .15s ease, border-color .15s ease, color .15s ease;
}
.btn.shadow { box-shadow: none !important; }
.btn-primary, .btn-danger {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--ft-action);
    --bs-btn-border-color: var(--ft-action);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--ft-action-hover);
    --bs-btn-hover-border-color: var(--ft-action-hover);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--ft-action-hover);
    --bs-btn-active-border-color: var(--ft-action-hover);
    --bs-btn-disabled-color: #fff;
    --bs-btn-disabled-bg: var(--ft-action);
    --bs-btn-disabled-border-color: var(--ft-action);
    --bs-btn-focus-shadow-rgb: 235, 93, 30;
    background-image: none;
    border-color: var(--bs-btn-border-color) !important; /* Simplex sets a darker literal border */
}
.btn-primary:hover, .btn-danger:hover { border-color: var(--bs-btn-hover-border-color) !important; }
.btn-outline-primary, .btn-outline-danger, .btn-outline-dark, .btn-outline-secondary, .btn-light, .btn-secondary, .btn-info {
    --bs-btn-color: var(--ft-text);
    --bs-btn-bg: var(--ft-surface);
    --bs-btn-border-color: var(--ft-line-strong);
    --bs-btn-hover-color: var(--ft-text);
    --bs-btn-hover-bg: var(--ft-subtle);
    --bs-btn-hover-border-color: var(--ft-line-strong);
    --bs-btn-active-color: var(--ft-text);
    --bs-btn-active-bg: var(--ft-subtle);
    --bs-btn-active-border-color: var(--ft-line-strong);
    --bs-btn-focus-shadow-rgb: 235, 93, 30;
    background-image: none;
}
/* Simplex also sets literal colours on some of these (.btn-outline-secondary is #bbb, 1.9:1) */
.btn-outline-primary, .btn-outline-danger, .btn-outline-dark, .btn-outline-secondary, .btn-light, .btn-secondary, .btn-info {
    color: var(--ft-text) !important;
    border-color: var(--ft-line-strong) !important;
    background-color: var(--ft-surface) !important;
}
.btn-outline-primary:hover, .btn-outline-danger:hover, .btn-outline-dark:hover, .btn-outline-secondary:hover,
.btn-light:hover, .btn-secondary:hover, .btn-info:hover { background-color: var(--ft-subtle) !important; }
.btn-link { --bs-btn-color: var(--ft-link); --bs-btn-hover-color: var(--ft-link-hover); font-weight: 500; }
.btn-lg { font-size: 1rem !important; padding: .7rem 1.4rem !important; border-radius: 10px; }

/* Surfaces: flat, hairline borders, generous radius */
.card {
    --bs-card-border-color: var(--ft-line);
    --bs-card-border-radius: var(--ft-radius);
    --bs-card-inner-border-radius: calc(var(--ft-radius) - 1px);
    --bs-card-cap-bg: var(--ft-subtle);
    box-shadow: none;
}
.shadow, .shadow-sm { box-shadow: none !important; }
.shadow-lg { box-shadow: 0 8px 24px rgba(0, 0, 0, .06) !important; }
.bg-light { background-color: var(--ft-subtle) !important; }
.bg-dark:not(.navbar) { background-color: var(--ft-text) !important; }
/* .badge-primary is Bootstrap 4 markup that Bootstrap 5 does not style (it rendered white on white) */
.badge.bg-primary, .badge.bg-danger, .badge.badge-primary, .badge.badge-secondary, .badge.badge-light { background-color: var(--ft-subtle) !important; color: var(--ft-text); border: 1px solid var(--ft-line); font-weight: 600; }
.alert { border-radius: var(--ft-radius); border-color: var(--ft-line); }

/* Tables: quiet rules, readable numbers */
.table {
    --bs-table-border-color: var(--ft-line);
    --bs-table-striped-bg: var(--ft-subtle);
    --bs-table-hover-bg: var(--ft-tint);
    font-variant-numeric: tabular-nums;
}
.table > thead th { font-size: .8rem; font-weight: 600; color: var(--ft-muted); text-transform: none; letter-spacing: .01em; }

/* Forms */
.form-control, .form-select {
    border-color: var(--ft-line-strong);
    border-radius: var(--ft-radius-sm);
    color: var(--ft-text);
}
.form-control:focus, .form-select:focus {
    border-color: var(--ft-accent);
    box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color);
}
.form-control::placeholder { color: #a1a1a6; }

/* Accordion (FAQs) */
.accordion {
    --bs-accordion-border-color: var(--ft-line);
    --bs-accordion-active-bg: var(--ft-tint);
    --bs-accordion-active-color: var(--ft-text);
    --bs-accordion-btn-focus-box-shadow: 0 0 0 .2rem var(--bs-focus-ring-color);
}

/* Footer (layout/footer_body.php) */
.ft-footer {
    margin-top: 4rem;
    padding: 2.5rem 0 2rem;
    border-top: 1px solid var(--ft-line);
    background: var(--ft-subtle);
    color: var(--ft-muted);
    font-size: .875rem;
}
.ft-footer .ft-footer-brand img { height: 26px; width: auto; }
.ft-footer .ft-footer-tag { margin: .5rem 0 0; }
.ft-footer nav a {
    color: var(--ft-text);
    margin: 0 1.25rem .5rem 0;
    display: inline-block;
    text-decoration: none;
}
.ft-footer nav a:hover { color: var(--ft-link); text-decoration: underline; }
.ft-footer .ft-footer-partner { margin: 1.5rem 0 .75rem; }
.ft-footer .ft-footer-partner a { text-decoration: underline; text-underline-offset: 3px; }
.ft-footer .ft-footer-legal { font-size: .78rem; color: var(--ft-muted); margin: 0; }

::selection { background: rgba(235, 93, 30, .18); color: var(--ft-text); }
