/* Hide Alpine.js x-cloak elements before Alpine initializes to prevent FOUC */
[x-cloak] { display: none !important; }

:root { /* Primary Colors - Brand Kit 2025 */
    --clover-purple: #3c78fd;    /* Primary blue */
    --law-navy: #1A2332;
    --paper-white: #F8F9FA;
    --leaf-green: #5B7D52;
    --petal-accent: #3c78fd;     /* accent — was purple #7200fc, now brand blue (name kept for compat) */
    --parchment: #F7F5F0;
    --neutral-gray: #58585a;     /* Brand gray */
    --gradient-cyan: #00ffff;    /* Gradient start */
    --gradient-purple: #3c78fd;  /* gradient end — was purple #7200fc, now brand blue (gradient is cyan→blue) */

    /* Bootstrap overrides */
    --bs-primary: var(--clover-purple);
    --bs-primary-rgb: 60, 120, 253;
    --bs-secondary: var(--leaf-green);
    --bs-secondary-rgb: 91, 125, 82;
    --bs-dark: var(--law-navy);
    --bs-dark-rgb: 26, 35, 50;
    --bs-light: var(--parchment);
    --bs-light-rgb: 247, 245, 240;
}

/* Font display optimization - prevent Flash of Invisible Text */
@font-face {
    font-family: 'bootstrap-icons';
    font-display: swap;
}

body {
    font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    background-color: var(--paper-white);
}

h1, h2, h3, h4, h5, h6 {
    font-family: 'Playfair Display', Georgia, serif;
}

/* Fix Chrome v136+ H1UserAgentFontSizeInSection deprecation warning
 * Explicitly define h1 size regardless of sectioning element nesting
 * See: https://developer.mozilla.org/en-US/blog/h1-element-styles/
 * This ensures consistent h1 rendering as browsers phase out legacy nested sizing
 */
h1 {
    margin-block: 0.67em;
    font-size: 2em;
}

.logo {
    font-family: 'Playfair Display', Georgia, serif;
    font-size: 2.5rem;
    color: var(--clover-purple);
    font-weight: 500;
    text-decoration: none;
    display: inline-block;
    line-height: 1;
    position: relative;
}

.logo-accent {
    color: var(--petal-accent);
    font-style: italic;
}

.navbar {
    background-color: var(--law-navy);
}

.navbar-dark .navbar-nav .nav-link {
    color: rgba(255, 255, 255, 0.8);
}

.navbar-dark .navbar-nav .nav-link:hover, .navbar-dark .navbar-nav .nav-link.active {
    color: white;
}

.navbar-dark .navbar-nav .nav-link.active::after {
    content: '';
    display: block;
    width: 100%;
    height: 2px;
    background-color: var(--petal-accent);
    margin-top: 2px;
}

.btn-primary {
    background-color: var(--clover-purple);
    border-color: var(--clover-purple);
}

.btn-primary:hover {
    background-color: #2b5fd9;
    border-color: #2b5fd9;
}

.form-control:focus {
    border-color: var(--clover-purple);
    box-shadow: 0 0 0 0.25rem rgba(60, 120, 253, 0.25);
}

.bg-gradient-primary {
    background: linear-gradient(90deg, var(--gradient-cyan) 0%, var(--gradient-purple) 100%);
}

.dropdown-menu {
    min-width: 0;
}
