:root{--orange:#c25510 !important;--orange-dark:#a34608 !important}.btn-primary:hover{background:#d66a1c}
.contact-error { color: #a12622; margin-bottom: 1rem; }
.contact-error ul { margin: .4rem 0 0 1.2rem; }
.field-error { color: #a12622; font-size: .85rem; }
.form-group [aria-invalid="true"], .form-group [aria-invalid="true"]:focus { border-color: #a12622; }
/* Indent the SMS terms to line up with the label text after the checkbox. */
.sms-consent-terms { margin-left: calc(13px + .6rem); font-size: .82rem; line-height: 1.5; color: var(--muted); }
/* Home.razor makes section links blue, so they disappear on the blue contact card. */
.contact-info-card .contact-method a:not([class]),.contact-info-card .contact-method a:not([class]):hover { color: inherit; }

/* Cookie Banner Styles */
        .cookie-banner {
            position: fixed;
            bottom: 0;
            left: 0;
            right: 0;
            background: #0f172a;
            color: #f8fafc;
            padding: 1.5rem 2rem;
            display: flex;
            justify-content: space-between;
            align-items: center;
            z-index: 900; /* below the success modal (1000) so it never overlays dialogs */
            transform: translateY(100%);
            visibility: hidden; /* keeps the off-screen banner out of the tab order */
            /* visibility flips only after the slide-out finishes */
            transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s 0.4s;
            font-family: 'Figtree', sans-serif;
            box-shadow: 0 -4px 20px rgba(0,0,0,0.15);
        }

            .cookie-banner.show {
                transform: translateY(0);
                visibility: visible;
                transition: transform 0.4s cubic-bezier(0.16, 1, 0.3, 1), visibility 0s;
            }

        .cookie-text {
            font-size: 0.95rem;
            line-height: 1.6;
            flex: 1;
        }

        .cookie-actions {
            display: flex;
            gap: 0.75rem;
            margin-left: 2rem;
        }

            .cookie-text a {
                /* vivid brand orange: the AA --orange (#c25510) only hits ~3.9:1
                   on the dark cookie bar; --orange-brand clears 4.5. */
                color: var(--orange-brand, #ff7d27);
                text-decoration: underline;
                font-weight: 600;
            }

                .cookie-text a:hover {
                    text-decoration: underline;
                }

        .cookie-btn {
            background: #f8fafc;
            color: #0f172a;
            border: 2px solid #f8fafc;
            padding: 0.75rem 1.5rem;
            border-radius: 6px;
            cursor: pointer;
            flex: 1;
            font-weight: 600;
            min-width: 195px;
            white-space: nowrap;
            transition: background 0.2s, color 0.2s;
        }

            .cookie-btn:hover {
                background: transparent;
                color: #f8fafc;
            }

        .cookie-settings-btn {
            position: fixed;
            left: 1rem;
            bottom: 1rem;
            z-index: 898;
            border: 1px solid #64748b;
            border-radius: 999px;
            background: #0f172a;
            color: #f8fafc;
            padding: 0.55rem 0.9rem;
            cursor: pointer;
            font: 600 0.8rem 'Figtree', sans-serif;
        }

            .cookie-settings-btn:hover {
                background: #1e293b;
            }

            .cookie-settings-btn[hidden] {
                display: none;
            }

        /* On phones the banner must leave the hero CTA visible, so it keeps all the text
           but uses small type and one row of buttons to stay under about 20% of the screen. */
        @media (max-width: 768px) {
            .cookie-banner {
                flex-direction: column;
                align-items: stretch;
                gap: 0.6rem;
                padding: 0.75rem 1rem;
                border-top: 1px solid #1e293b;
            }

            .cookie-text br {
                display: none;
            }

            .cookie-text strong {
                margin-right: 0.3em;
            }

            .cookie-actions {
                gap: 0.5rem;
                margin-left: 0;
            }

            .cookie-btn {
                min-width: 0;
                min-height: 44px;
                padding: 0.5rem;
                font-size: 0.85rem;
                white-space: normal;
            }
        }

        @media (max-width: 576px) {
            .cookie-text {
                font-size: 0.75rem;
                line-height: 1.45;
            }
        }
