/* Contact page: native Astra header/footer and existing WPForms delivery. */
body.page-template-default .site-content > .ast-container:has(.di-contact-page) {
    display: block;
    width: 100%;
    max-width: none;
    padding: 0;
}
.di-contact-page#primary { display: block; width: 100%; max-width: none; float: none; margin: 0; padding: 0; }
.di-contact-page {
    --di-contact-ink: #242a56;
    --di-contact-blue: #5669c5;
    --di-contact-copy: #4e5875;
    --di-contact-line: #dfe3f4;
    width: 100%;
    overflow: hidden;
    color: var(--di-contact-copy);
    font-family: inherit;
}
.di-contact-page * { box-sizing: border-box; }
.di-contact-wrap { width: min(1180px, calc(100% - 48px)); margin-inline: auto; }
.di-contact-hero {
    padding: clamp(58px, 6vw, 82px) 0 clamp(62px, 6vw, 82px);
    background: linear-gradient(145deg, #f7f8fe 0%, #edf0fc 100%);
}
.di-contact-hero-inner { display: grid; grid-template-columns: minmax(0, 1fr) 310px; align-items: end; gap: clamp(32px, 6vw, 90px); }
.di-contact-kicker { margin: 0 0 18px; color: var(--di-contact-blue); font-size: 12px; font-weight: 800; letter-spacing: .14em; line-height: 1.4; }
.di-contact-hero h1 { max-width: 820px; margin: 0 0 26px; color: var(--di-contact-ink); font-size: clamp(50px, 6.9vw, 92px); line-height: 1.02; letter-spacing: -.055em; }
.di-contact-lead { max-width: 720px; margin: 0; font-size: clamp(19px, 2vw, 23px); line-height: 1.58; }
.di-contact-hero-cta { display: inline-flex; align-items: center; justify-content: center; gap: 24px; min-height: 52px; margin-top: 26px; padding: 12px 21px; border-radius: 10px; background: var(--di-contact-blue); color: #fff !important; font-size: 16px; font-weight: 750; line-height: 1.4; text-decoration: none !important; }
.di-contact-hero-cta:hover { background: #4559b2; color: #fff !important; }
.di-contact-topics { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 22px; }
.di-contact-topics span { padding: 8px 14px; border: 1px solid #cfd6f2; border-radius: 100px; background: #fff; color: var(--di-contact-ink); font-size: 13px; font-weight: 700; line-height: 1.2; }
.di-contact-hero-aside { position: relative; min-height: 230px; padding: 30px; display: flex; align-items: end; border-radius: 24px; background: var(--di-contact-ink); color: #fff; box-shadow: 0 22px 48px rgba(36,42,86,.15); }
.di-contact-hero-aside p { position: relative; z-index: 1; margin: 0; color: #fff; font-size: 20px; font-weight: 700; line-height: 1.45; }
.di-contact-aside-symbol { position: absolute; top: 8px; right: 25px; color: #a5b2ff; font-size: 105px; line-height: 1; font-weight: 300; }
.di-contact-body { padding: clamp(52px, 6vw, 88px) 0 clamp(70px, 8vw, 110px); background: #fff; }
.di-contact-layout { display: grid; grid-template-columns: minmax(0, 1.52fr) minmax(300px, .85fr); align-items: start; gap: clamp(24px, 4vw, 50px); }
.di-contact-form-card { padding: clamp(27px, 4.5vw, 54px); border: 1px solid var(--di-contact-line); border-radius: 26px; background: #fff; box-shadow: 0 16px 45px rgba(36,42,86,.07); }
.di-contact-form-card h2, .di-contact-call-card h2 { margin: 0 0 14px; color: var(--di-contact-ink); font-size: clamp(29px, 3vw, 39px); line-height: 1.14; letter-spacing: -.035em; }
.di-contact-form-intro { max-width: 570px; margin: 0 0 24px; font-size: 16px; line-height: 1.65; }
.di-contact-form-fields { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 18px 16px; }
.di-contact-field { min-width: 0; }
.di-contact-field-full { grid-column: 1 / -1; }
.di-contact-field label { display: block; margin: 0 0 8px; color: var(--di-contact-ink); font-size: 14px; font-weight: 700; }
.di-contact-optional { color: #69738f; font-size: 12px; font-weight: 500; }
.di-contact-field input, .di-contact-field select, .di-contact-field textarea { width: 100%; max-width: none; min-height: 50px; margin: 0; padding: 12px 14px; border: 1px solid #ccd4ee; border-radius: 10px; background: #f9faff; color: var(--di-contact-ink); font-size: 16px; box-shadow: none; }
.di-contact-field textarea { min-height: 150px; resize: vertical; }
.di-contact-field input:focus, .di-contact-field select:focus, .di-contact-field textarea:focus { border-color: var(--di-contact-blue); outline: 3px solid #d7ddff; outline-offset: 1px; }
.di-contact-hp { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
.di-contact-consent { display: flex; align-items: start; gap: 11px; margin: 20px 0 22px; color: var(--di-contact-copy); font-size: 14px; line-height: 1.5; cursor: pointer; }
.di-contact-consent input { flex: none; width: 18px; height: 18px; margin: 2px 0 0; accent-color: var(--di-contact-blue); }
.di-contact-submit { display: inline-flex; align-items: center; justify-content: center; gap: 18px; min-height: 52px; padding: 12px 28px; border: 0; border-radius: 10px; background: var(--di-contact-blue); color: #fff; font-size: 16px; font-weight: 750; line-height: 1.35; cursor: pointer; }
.di-contact-submit:hover, .di-contact-submit:focus-visible { background: #4559b2; color: #fff; }
.di-contact-feedback { padding: 15px 18px; margin: 0 0 22px; border: 1px solid #efc5bb; border-radius: 10px; background: #fff3f0; color: #803e30; font-size: 15px; }
.di-contact-feedback-success { border-color: #b9d5c6; background: #eaf7ef; color: #20573a; }
.di-contact-page .wpforms-container { margin: 0 !important; }
.di-contact-page .wpforms-form { max-width: none; }
.di-contact-page .wpforms-form .wpforms-field-container { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 16px; row-gap: 18px; }
.di-contact-page .wpforms-form .wpforms-field { min-width: 0; padding: 0; }
.di-contact-page .wpforms-form .wpforms-field-textarea,
.di-contact-page .wpforms-form .wpforms-field-checkbox,
.di-contact-page .wpforms-form .wpforms-field-html { grid-column: 1 / -1; }
.di-contact-page .wpforms-form .wpforms-field-label { margin: 0 0 8px; color: var(--di-contact-ink); font-size: 14px; font-weight: 700; }
.di-contact-page .wpforms-form input[type="text"],
.di-contact-page .wpforms-form input[type="email"],
.di-contact-page .wpforms-form input[type="number"],
.di-contact-page .wpforms-form input[type="url"],
.di-contact-page .wpforms-form textarea,
.di-contact-page .wpforms-form select { width: 100%; max-width: none; min-height: 50px; border: 1px solid #ccd4ee; border-radius: 10px; background: #f9faff; color: var(--di-contact-ink); font-size: 16px; box-shadow: none; }
.di-contact-page .wpforms-form textarea { min-height: 150px; resize: vertical; }
.di-contact-page .wpforms-form input:focus,
.di-contact-page .wpforms-form textarea:focus,
.di-contact-page .wpforms-form select:focus { border-color: var(--di-contact-blue); outline: 3px solid #d7ddff; outline-offset: 1px; }
.di-contact-page .wpforms-form .wpforms-submit-container { padding: 22px 0 0; }
.di-contact-page .wpforms-form button[type="submit"] { min-height: 52px; padding: 12px 28px; border: 0; border-radius: 10px; background: var(--di-contact-blue); color: #fff; font-size: 16px; font-weight: 750; line-height: 1.35; cursor: pointer; }
.di-contact-page .wpforms-form button[type="submit"]:hover,
.di-contact-page .wpforms-form button[type="submit"]:focus-visible { background: #4559b2; color: #fff; }
.di-contact-page .wpforms-confirmation-container-full { padding: 22px; border-radius: 12px; border-color: #cbd4f5; background: #eef2ff; color: var(--di-contact-ink); }
.di-contact-privacy { margin: 16px 0 0; font-size: 13px; line-height: 1.55; }
.di-contact-form-unavailable { padding: 18px; border-radius: 10px; background: #f2f4fc; }
.di-contact-side { display: grid; gap: 22px; }
.di-contact-call-card { padding: clamp(27px, 3.5vw, 40px); border-radius: 24px; background: var(--di-contact-ink); color: #e8ecff; }
.di-contact-call-card .di-contact-kicker { color: #aebaff; }
.di-contact-call-card h2 { color: #fff; }
.di-contact-call-card p:not(.di-contact-kicker) { margin: 0 0 23px; color: #e8ecff; font-size: 16px; line-height: 1.65; }
.di-contact-call-link { display: inline-flex; align-items: center; gap: 13px; padding: 13px 17px; border-radius: 10px; background: #fff; color: var(--di-contact-ink) !important; font-weight: 750; line-height: 1.4; text-decoration: none !important; }
.di-contact-call-link:hover { background: #e9edff; color: var(--di-contact-ink) !important; }
.di-contact-expectations { padding: 26px 28px; border: 1px solid var(--di-contact-line); border-radius: 20px; background: #f7f8fe; }
.di-contact-expectations h3 { margin: 0 0 18px; color: var(--di-contact-ink); font-size: 20px; line-height: 1.3; }
.di-contact-expectations ol { display: grid; gap: 16px; margin: 0; padding: 0; list-style: none; }
.di-contact-expectations li { display: flex; gap: 12px; color: var(--di-contact-copy); font-size: 14px; line-height: 1.5; }
.di-contact-expectations li span { flex: none; color: var(--di-contact-blue); font-size: 12px; font-weight: 800; }
@media (max-width: 850px) {
    .di-contact-hero-inner, .di-contact-layout { grid-template-columns: 1fr; }
    .di-contact-hero-aside { display: none; }
    .di-contact-side { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 620px) {
    .di-contact-wrap { width: min(100% - 32px, 480px); }
    .di-contact-hero { padding: 56px 0 64px; }
    .di-contact-hero h1 { font-size: clamp(48px, 13vw, 64px); }
    .di-contact-body { padding-top: 30px; }
    .di-contact-form-card { padding: 25px 20px; border-radius: 19px; }
    .di-contact-page .wpforms-form .wpforms-field-container, .di-contact-side, .di-contact-form-fields { grid-template-columns: 1fr; }
    .di-contact-page .wpforms-form button[type="submit"], .di-contact-submit { width: 100%; }
}
