:root {
    --brand: #153e75;
    --brand-dark: #0e2d57;
    --ink: #172033;
    --muted: #697386;
    --line: #dce2ea;
    --surface: #ffffff;
    --page: #f5f7fb;
}

* { box-sizing: border-box; }

/*
 * Cross-browser typography
 * ------------------------
 * Keep Arial first on purpose. Some computers have a broken/misnamed local
 * "Inter" font installed, which can make normal text render as pictograms.
 * This web-safe stack avoids that problem in Chrome, Edge, Firefox and Safari.
 */
html,
body,
button,
input,
textarea,
select,
option,
label,
.btn,
.form-control,
.form-label,
.form-text,
.invalid-feedback,
.alert,
.navbar,
.navbar-brand {
    font-family: Arial, Helvetica, "Segoe UI", Tahoma, sans-serif !important;
    font-style: normal;
    font-variant: normal;
    font-synthesis: none;
}

html {
    -webkit-text-size-adjust: 100%;
    text-size-adjust: 100%;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

body {
    margin: 0;
    min-height: 100vh;
    color: var(--ink);
    background:
        radial-gradient(circle at top right, rgba(21, 62, 117, .10), transparent 28rem),
        linear-gradient(180deg, #fbfcff 0%, var(--page) 100%);
    font-family: Arial, Helvetica, "Segoe UI", Tahoma, sans-serif !important;
}

/* Top navigation */
.top-navbar {
    min-height: 76px;
    border-bottom: 1px solid rgba(220, 226, 234, .9);
    box-shadow: 0 8px 28px rgba(31, 45, 75, .06);
    z-index: 1030;
}

.top-navbar .navbar-brand {
    display: inline-flex;
    align-items: center;
    gap: .7rem;
    color: var(--ink);
    text-decoration: none;
}

.brand-mark {
    display: inline-grid;
    place-items: center;
    width: 42px;
    height: 42px;
    border-radius: 12px;
    color: #fff;
    background: linear-gradient(135deg, var(--brand) 0%, #245aa6 100%);
    font-size: 1.15rem;
    font-weight: 900;
    box-shadow: 0 8px 18px rgba(21, 62, 117, .2);
}

.brand-text {
    font-size: 1.08rem;
    letter-spacing: -.02em;
}

.nav-btn {
    min-width: 104px;
    border-radius: 10px;
    padding: .68rem 1rem;
    font-weight: 700;
    transition: transform .2s ease, box-shadow .2s ease, background-color .2s ease, color .2s ease;
}

.nav-btn:hover,
.nav-btn:focus {
    transform: translateY(-1px);
}

.nav-btn-outline {
    color: var(--brand);
    background: #fff;
    border: 1px solid rgba(21, 62, 117, .28);
}

.nav-btn-outline:hover,
.nav-btn-outline:focus {
    color: var(--brand-dark);
    background: rgba(21, 62, 117, .06);
    border-color: rgba(21, 62, 117, .45);
}

.nav-btn-primary {
    color: #fff;
    border: 1px solid transparent;
    background: linear-gradient(135deg, var(--brand) 0%, #245aa6 100%);
    box-shadow: 0 8px 18px rgba(21, 62, 117, .18);
}

.nav-btn-primary:hover,
.nav-btn-primary:focus {
    color: #fff;
    background: linear-gradient(135deg, var(--brand-dark) 0%, #1d4d91 100%);
    box-shadow: 0 10px 22px rgba(21, 62, 117, .23);
}

html { scroll-behavior: smooth; }

.page-shell { min-height: 100vh; }
.form-wrap { max-width: 940px; }

.eyebrow {
    display: inline-block;
    color: var(--brand);
    font-size: .78rem;
    font-weight: 800;
    letter-spacing: .12em;
    text-transform: uppercase;
}

.form-title {
    color: var(--ink);
    font-weight: 800;
    font-size: clamp(1.8rem, 4vw, 2.7rem);
    letter-spacing: -.03em;
}

.form-subtitle {
    color: var(--muted);
    font-size: 1rem;
}

.contact-card {
    background: rgba(255,255,255,.96);
    border: 1px solid rgba(216, 223, 233, .9);
    border-radius: 24px;
    padding: clamp(1.25rem, 4vw, 2.5rem);
    box-shadow: 0 24px 70px rgba(31, 45, 75, .09);
}

.form-label {
    color: #1b2434;
    font-weight: 700;
    font-size: .98rem;
}

.form-label span { color: #c43131; }

.form-control {
    min-height: 54px;
    border: 1px solid var(--line);
    border-radius: 12px;
    padding: .85rem 1rem;
    color: var(--ink);
    background-color: #fff;
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.form-control::placeholder {
    color: #9aa4b2;
    font-family: Arial, Helvetica, "Segoe UI", Tahoma, sans-serif !important;
    opacity: 1;
}

.form-control:focus {
    border-color: rgba(21, 62, 117, .65);
    box-shadow: 0 0 0 .25rem rgba(21, 62, 117, .11);
}

.details-box {
    min-height: 190px;
    resize: vertical;
    line-height: 1.65;
}

.word-counter {
    flex: 0 0 auto;
    color: var(--muted);
    font-size: .85rem;
}

.word-counter.is-near-limit { color: #a16100; }
.word-counter.is-over-limit { color: #b42318; font-weight: 700; }

.submit-btn {
    min-height: 56px;
    border: 0;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--brand) 0%, #245aa6 100%);
    font-weight: 800;
    letter-spacing: .01em;
    box-shadow: 0 12px 24px rgba(21, 62, 117, .22);
    transition: transform .2s ease, box-shadow .2s ease, filter .2s ease;
}

.submit-btn:hover,
.submit-btn:focus {
    background: linear-gradient(135deg, var(--brand-dark) 0%, #1d4d91 100%);
    transform: translateY(-1px);
    box-shadow: 0 14px 28px rgba(21, 62, 117, .25);
}

.privacy-note,
.form-text {
    color: var(--muted);
    font-size: .86rem;
}

.custom-alert {
    border: 0;
    border-radius: 14px;
    box-shadow: 0 12px 30px rgba(31, 45, 75, .06);
}

@media (max-width: 575.98px) {
    .top-navbar { min-height: 68px; }
    .brand-mark { width: 38px; height: 38px; border-radius: 10px; }
    .brand-text { display: none; }
    .nav-btn { min-width: auto; padding: .6rem .78rem; font-size: .9rem; }
    .page-shell { padding-top: 1rem !important; }
    .heading-block { margin-bottom: 1.5rem !important; }
    .contact-card { border-radius: 18px; }
    .form-control { min-height: 52px; }
    .details-box { min-height: 170px; }
}
\n\n/* Security check / CAPTCHA */\n.captcha-panel {\n    padding: 1rem 1.1rem;\n    border: 1px solid var(--line);\n    border-radius: 14px;\n    background: #f8faff;\n}\n\n.captcha-help {\n    color: var(--muted);\n    font-size: .86rem;\n}\n\n.captcha-row {\n    display: flex;\n    align-items: center;\n    gap: .75rem;\n    margin-top: .9rem;\n}\n\n.captcha-question {\n    min-width: 112px;\n    padding: .78rem 1rem;\n    border: 1px dashed rgba(21, 62, 117, .38);\n    border-radius: 10px;\n    background: #fff;\n    color: var(--brand-dark);\n    font-weight: 800;\n    font-size: 1.05rem;\n    text-align: center;\n    letter-spacing: .02em;\n}\n\n.captcha-input {\n    max-width: 150px;\n    min-height: 48px;\n}\n\n.site-footer {\n    border-top: 1px solid rgba(220, 226, 234, .9);\n    background: #fff;\n    color: var(--muted);\n    padding: 1.15rem 0;\n    font-size: .9rem;\n    font-weight: 600;\n}\n\n@media (max-width: 575.98px) {\n    .captcha-row {\n        align-items: stretch;\n    }\n    .captcha-question {\n        min-width: 105px;\n    }\n    .captcha-input {\n        max-width: none;\n        flex: 1 1 auto;\n    }\n}\n