/* Festina brand design tokens — sourced from festina.com (Playfair Display + Lato, navy #003a63). */

:root {
    /* Palette */
    --festina-navy:   #003a63; /* primary brand accent */
    --festina-black:  #000000;
    --festina-ink:    #1d1d1b; /* body text */
    --festina-muted:  #a8afb9;
    --festina-light:  #f8f9fa;
    --festina-border: #dee2e6;
    --festina-danger: #e51414;

    /* Type */
    --font-heading: "Playfair Display", Georgia, "Times New Roman", serif;
    --font-body:    "Lato", Helvetica, Arial, sans-serif;

    /* Map onto Bootstrap's theming variables where it helps */
    --bs-body-font-family: var(--font-body);
    --bs-body-color: var(--festina-ink);
    --bs-link-color: var(--festina-navy);
    --bs-link-hover-color: #002740;
}

body {
    font-family: var(--font-body);
    color: var(--festina-ink);
}

h1, h2, h3, h4, h5, h6, .font-heading, .display-1, .display-2, .display-3, .display-4, .display-5, .display-6 {
    font-family: var(--font-heading);
}

/* Footer headings use the body font. Each selector must be prefixed with .footer —
   otherwise the bare h2…h6 here override the Playfair rule above for the whole site. */
.footer h1, .footer h2, .footer h3, .footer h4, .footer h5, .footer h6 {
    font-family: var(--font-body);
}

a { color: var(--festina-navy); }
a:hover { color: #002740; }

/* Brand utility classes */
.text-festina-navy { color: var(--festina-navy) !important; }
.text-festina-ink { color: var(--festina-ink) !important; }
.bg-festina-navy   { background-color: var(--festina-navy) !important; }
.border-festina-navy { border-color: var(--festina-navy) !important; }

.bg-festina-muted { background-color: var(--festina-muted) !important; }
.bg-festina-light { background-color: var(--festina-light) !important; }
.bg-festina-ink { background-color: var(--festina-ink) !important; }

/* Navy primary button (Festina uses black + navy; navy for accent CTAs) */
.btn-festina-navy {
    --bs-btn-color: #fff;
    --bs-btn-bg: var(--festina-navy);
    --bs-btn-border-color: var(--festina-navy);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: #002740;
    --bs-btn-hover-border-color: #002740;
    --bs-btn-active-bg: #002740;
    --bs-btn-active-border-color: #002740;
}

.btn-outline-festina-navy {
    --bs-btn-color: var(--festina-navy);
    --bs-btn-bg: transparent;
    --bs-btn-border-color: var(--festina-navy);
    --bs-btn-hover-color: #fff;
    --bs-btn-hover-bg: var(--festina-navy);
    --bs-btn-hover-border-color: var(--festina-navy);
    --bs-btn-active-color: #fff;
    --bs-btn-active-bg: var(--festina-navy);
    --bs-btn-active-border-color: var(--festina-navy);
    --bs-btn-disabled-color: var(--festina-navy);
    --bs-btn-disabled-bg: transparent;
    --bs-btn-disabled-border-color: var(--festina-navy);
    --bs-gradient: none;
}

/* Nav links: brand navy, Lato (inherited from body), bold on hover/active. */
#mainNav .nav-link { color: var(--festina-navy); }
#mainNav .nav-link:hover,
#mainNav .nav-link.active { color: var(--festina-navy); font-weight: 700; }

/* ---- Site search (Algolia autocomplete-theme-classic overrides) ---- */
#search-button { cursor: pointer; }
.aa-Panel { z-index: 2000; }
.aa-Item[aria-selected="true"] { background-color: rgba(0, 58, 99, .06); }
.aa-Item .card-title { font-family: var(--font-heading); }
/* Desktop search: the revealed input is 400px wide (the container stays auto so the
   resting magnifier keeps its place at the far right). */
#siteSearch .aa-Autocomplete, #siteSearch .aa-Form { width: 400px; max-width: 90vw; }
/* rounded-2 corners on the search input (matches Bootstrap .rounded-2). */
.aa-Form { border-radius: var(--bs-border-radius) !important; }
