:root {
    --kluch-primary: #003c67;
    --kluch-primary-hover: #002f51;
    --kluch-text: #333333;
    --kluch-light: #fefefe;
    --kluch-border: #dce5eb;
}

.kluch-header,
.kluch-footer,
.kluch-modal-content {
    font-family: "Montserrat", sans-serif;
    color: var(--kluch-text);
}

.kluch-header {
    position: relative;
    z-index: 1020;
    background: rgba(254, 254, 254, .96);
    border-bottom: 1px solid rgba(0, 60, 103, .08);
}

.kluch-header .navbar { padding: 18px 0; }
.kluch-header .navbar-brand img,
.kluch-footer-logo img { width: 154px; height: auto; object-fit: contain; }
.kluch-header .nav-link { color: var(--kluch-text); font-weight: 500; padding: 10px 16px !important; }
.kluch-header .nav-link:hover,
.kluch-header .nav-link:focus,
.kluch-header .nav-link.active { color: var(--kluch-primary); }

.kluch-btn-primary {
    border: 1px solid var(--kluch-primary);
    border-radius: 999px;
    background: var(--kluch-primary);
    color: var(--kluch-light);
    font-weight: 600;
    padding: 11px 24px;
}
.kluch-btn-primary:hover,
.kluch-btn-primary:focus-visible {
    border-color: var(--kluch-primary-hover);
    background: var(--kluch-primary-hover);
    color: var(--kluch-light);
}

.kluch-footer { padding: 64px 0 24px; background: #f5f8fa; border-top: 1px solid rgba(0, 60, 103, .08); }
.kluch-footer-nav,
.kluch-footer-contacts { display: flex; flex-direction: column; gap: 12px; }
.kluch-footer a { color: var(--kluch-text); text-decoration: none; }
.kluch-footer a:hover,
.kluch-footer a:focus { color: var(--kluch-primary); }
.kluch-footer-bottom { display: flex; justify-content: space-between; gap: 20px; margin-top: 48px; padding-top: 20px; border-top: 1px solid var(--kluch-border); font-size: .85rem; }

.kluch-modal-content { border: 0; border-radius: 24px; box-shadow: 0 24px 70px rgba(0, 36, 61, .16); }
.kluch-modal-content .modal-header { align-items: flex-start; padding: 28px 28px 12px; border: 0; }
.kluch-modal-content .modal-title { color: var(--kluch-primary); font-size: clamp(1.55rem, 4vw, 2rem); font-weight: 700; text-transform: none; }
.kluch-modal-content .modal-body { padding: 16px 28px 28px; }
.kluch-request-form .form-label { font-weight: 500; }
.kluch-request-form .form-control { min-height: 52px; border-color: var(--kluch-border); border-radius: 12px; color: var(--kluch-text); }
.kluch-request-form .form-control:focus { border-color: var(--kluch-primary); box-shadow: 0 0 0 .2rem rgba(0, 60, 103, .12); }
.kluch-form-message { margin: 12px 0; padding: 12px 14px; border-radius: 12px; font-size: .9rem; }
.kluch-form-message.is-error { display: block !important; background: #fff1f1; color: #8a2424; }
.kluch-form-message.is-success { display: block !important; background: #edf8f1; color: #1f6a3b; }
.kluch-form-policy { color: #68727a; font-size: .75rem; line-height: 1.5; }
.kluch-form-policy a { color: var(--kluch-primary); }

@media (max-width: 991.98px) {
    .kluch-header .navbar-collapse { padding: 18px 0 4px; }
    .kluch-header .navbar-nav { align-items: stretch !important; }
    .kluch-header .nav-link { padding-left: 0 !important; }
}

@media (max-width: 575.98px) {
    .kluch-header .navbar { padding: 13px 0; }
    .kluch-header .navbar-brand img,
    .kluch-footer-logo img { width: 132px; }
    .kluch-footer { padding-top: 44px; }
    .kluch-footer-bottom { flex-direction: column; margin-top: 36px; }
    .kluch-modal-content .modal-header { padding: 24px 20px 10px; }
    .kluch-modal-content .modal-body { padding: 14px 20px 24px; }
}
