/* Contact page and Gravity Forms presentation. */

.ka-contact-page .ka-page-hero {
    position: relative;
    overflow: hidden;
    background:
        radial-gradient(circle at 82% 18%, rgba(95, 242, 201, 0.2), transparent 28rem),
        linear-gradient(132deg, #071a2b 0%, #102f43 100%);
}

.ka-contact-page .ka-page-hero::after {
    position: absolute;
    right: max(4vw, 24px);
    bottom: -70px;
    width: 230px;
    height: 230px;
    border: 34px solid rgba(68, 201, 240, 0.14);
    border-radius: 50%;
    content: "";
}

.ka-contact-page .ka-page-hero .ka-shell {
    position: relative;
    z-index: 1;
}

.ka-contact-page .ka-content-shell {
    width: min(calc(100% - 40px), var(--ka-shell));
    padding-top: clamp(48px, 7vw, 82px);
}

.ka-contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.55fr) minmax(260px, 0.65fr);
    gap: clamp(28px, 5vw, 64px);
    align-items: start;
}

.ka-contact-intro {
    max-width: 720px;
    margin-bottom: 28px;
    color: var(--ka-slate);
    font-size: clamp(1.06rem, 1.8vw, 1.25rem);
}

.ka-contact-form-card,
.ka-contact-card {
    border: 1px solid var(--ka-line);
    border-radius: var(--ka-radius);
    background: var(--ka-white);
    box-shadow: 0 18px 50px rgba(7, 26, 43, 0.08);
}

.ka-contact-form-card {
    padding: clamp(24px, 4.5vw, 48px);
}

.ka-contact-form-card > h2 {
    margin-top: 0;
    font-size: clamp(2rem, 4vw, 3.35rem);
}

.ka-contact-form-card > p {
    max-width: 660px;
    color: var(--ka-slate);
}

.ka-contact-aside {
    display: grid;
    gap: 22px;
    position: sticky;
    top: 104px;
}

.ka-contact-card {
    padding: 26px;
}

.ka-contact-card--accent {
    color: var(--ka-white);
    border-color: var(--ka-ink);
    background: var(--ka-ink);
}

.ka-contact-card h2 {
    margin: 0 0 14px;
    font-size: 1.55rem;
    letter-spacing: -0.02em;
}

.ka-contact-card p,
.ka-contact-card li {
    color: var(--ka-slate);
    font-size: 0.95rem;
}

.ka-contact-card--accent p,
.ka-contact-card--accent a {
    color: #d9e8ec;
}

.ka-contact-card ul {
    margin: 0;
    padding-left: 1.15rem;
}

.ka-contact-card li + li {
    margin-top: 10px;
}

.ka-contact-links {
    display: grid;
    gap: 8px;
}

.ka-contact-links a {
    display: flex;
    min-height: 46px;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 10px 0;
    color: inherit;
    font-weight: 780;
    text-decoration: none;
    border-bottom: 1px solid rgba(217, 225, 223, 0.22);
}

.ka-contact-links a::after {
    color: var(--ka-mint);
    content: "\2192";
}

.ka-contact-links a:hover,
.ka-contact-links a:focus-visible {
    color: var(--ka-mint);
}

.ka-contact-form {
    margin-top: 26px;
}

.ka-contact-form .gform_required_legend {
    margin-bottom: 22px;
    color: var(--ka-slate);
    font-size: 0.88rem;
}

.ka-contact-form .gform_fields {
    row-gap: 24px !important;
}

.ka-contact-form .gfield_label,
.ka-contact-form .gform-field-label {
    color: var(--ka-ink);
    font-weight: 800 !important;
}

.ka-contact-form .gfield_required {
    color: #a93716 !important;
}

.ka-contact-form input[type="text"],
.ka-contact-form input[type="email"],
.ka-contact-form input[type="url"],
.ka-contact-form input[type="file"],
.ka-contact-form select,
.ka-contact-form textarea {
    width: 100%;
    min-height: 50px !important;
    padding: 12px 14px !important;
    color: var(--ka-ink) !important;
    border: 1px solid #a9bbb9 !important;
    border-radius: 10px !important;
    background: var(--ka-white) !important;
    box-shadow: none !important;
}

.ka-contact-form textarea {
    min-height: 170px;
    resize: vertical;
}

.ka-contact-form input[type="file"] {
    padding: 10px !important;
}

.ka-contact-form input:focus,
.ka-contact-form select:focus,
.ka-contact-form textarea:focus {
    outline: 3px solid rgba(68, 201, 240, 0.3) !important;
    outline-offset: 1px;
    border-color: var(--ka-ink) !important;
}

.ka-contact-form .gfield_description,
.ka-contact-form .gform-field-label--type-sub {
    color: var(--ka-slate) !important;
    font-size: 0.88rem !important;
}

.ka-contact-form .ginput_container_consent {
    display: grid;
    grid-template-columns: 24px minmax(0, 1fr);
    gap: 10px;
    align-items: start;
}

.ka-contact-form .ginput_container_consent input {
    width: 22px;
    height: 22px;
    margin-top: 2px;
    accent-color: var(--ka-mint-deep);
}

.ka-contact-form .gform_footer {
    margin-top: 30px !important;
    padding-bottom: 0 !important;
}

.ka-contact-form .gform_button,
.ka-contact-form input[type="submit"] {
    min-height: 50px !important;
    padding: 13px 24px !important;
    color: var(--ka-ink) !important;
    border: 2px solid var(--ka-mint) !important;
    border-radius: 999px !important;
    background: var(--ka-mint) !important;
    box-shadow: none !important;
    font-weight: 850 !important;
    cursor: pointer;
}

.ka-contact-form .gform_button:hover,
.ka-contact-form .gform_button:focus-visible,
.ka-contact-form input[type="submit"]:hover,
.ka-contact-form input[type="submit"]:focus-visible {
    color: var(--ka-white) !important;
    border-color: var(--ka-ink) !important;
    background: var(--ka-ink) !important;
}

.ka-contact-form .gform_validation_errors,
.ka-contact-form .gfield_validation_message,
.ka-contact-form .validation_message {
    color: #78250e !important;
    border-color: #e7a48f !important;
    border-radius: 10px !important;
    background: #fff4ef !important;
}

.ka-contact-form .gform_confirmation_message {
    padding: 24px;
    border: 1px solid #73c8b1;
    border-radius: var(--ka-radius-sm);
    background: #eafbf6;
    color: var(--ka-ink);
    font-size: 1.05rem;
    font-weight: 700;
}

@media (max-width: 820px) {
    .ka-contact-layout { grid-template-columns: 1fr; }
    .ka-contact-aside { position: static; }
}

@media (max-width: 540px) {
    .ka-contact-page .ka-content-shell { width: min(calc(100% - 28px), var(--ka-shell)); }
    .ka-contact-form-card,
    .ka-contact-card { padding: 22px 18px; border-radius: 16px; }
    .ka-contact-page .ka-page-hero::after { display: none; }
    .ka-contact-form .gform_button,
    .ka-contact-form input[type="submit"] { width: 100% !important; }
}

@media (prefers-reduced-motion: reduce) {
    .ka-contact-form * { scroll-behavior: auto !important; transition: none !important; }
}
