/* Contact page; typography inherits from the site theme. */
.ct {
    --navy: #0a2a4f;
    --navy-2: #12397a;
    --gold: #f5b83d;
    --text: #58606b;
    --soft: #f8f5ef;
    --line: #eee8dc;
    --ease: cubic-bezier(.22, .8, .24, 1);
    color: var(--text);
    line-height: 1.7;
}
.ct *, .ct *::before, .ct *::after { box-sizing: border-box; }
.ct h1, .ct h2, .ct p, .ct ul { margin: 0; padding: 0; }
.ct ul { list-style: none; }
.ct-wrap { position: relative; max-width: 1240px; margin: 0 auto; padding: 0 20px; }

.ct-hero { position: relative; overflow: hidden; padding: 76px 0 82px; color: #fff; background: linear-gradient(135deg, var(--navy) 0%, var(--navy-2) 100%); }
.ct-hero::before, .ct-hero::after { position: absolute; border-radius: 50%; content: ""; pointer-events: none; }
.ct-hero::before { top: -150px; right: -110px; width: 380px; height: 380px; background: radial-gradient(circle, rgba(245,184,61,.3), transparent 70%); }
.ct-hero::after { bottom: -170px; left: -120px; width: 300px; height: 300px; background: radial-gradient(circle, rgba(255,255,255,.12), transparent 70%); }
.ct-crumb { position: relative; margin-bottom: 14px !important; color: #b9c9e4; font-size: 14px; }
.ct-crumb a { color: #fff; text-decoration: none; }
.ct-crumb a:hover { text-decoration: underline; }
.ct-hero h1 { position: relative; color: #fff; font-size: clamp(34px, 5vw, 52px); font-weight: 800; letter-spacing: -.8px; line-height: 1.15; }
.ct-hero h1::after { display: block; width: 70px; height: 4px; margin-top: 18px; border-radius: 4px; background: var(--gold); content: ""; }
.ct-hero > .ct-wrap > p:last-child { margin-top: 16px; color: #d6e1f3; font-size: 17px; }

.ct-main { padding: 80px 0 90px; background: linear-gradient(180deg, #fbf8f2 0%, #fff 100%); }
.ct-grid { display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); gap: 48px; align-items: start; }
.ct-eyebrow { display: block; margin-bottom: 8px; color: #8a5f00; font-size: 13px; font-weight: 800; letter-spacing: 1.6px; text-transform: uppercase; }
.ct-h2 { color: var(--navy); font-size: clamp(28px, 3.6vw, 40px); font-weight: 800; letter-spacing: -.5px; line-height: 1.15; }
.ct-h2::after { display: block; width: 56px; height: 4px; margin-top: 14px; border-radius: 4px; background: var(--gold); content: ""; }

.ct-list { margin-top: 34px !important; }
.ct-row { display: flex; gap: 20px; padding: 24px 0; border-bottom: 1px solid var(--line); }
.ct-row:first-child { padding-top: 0; }
.ct-ico { display: grid; flex: none; width: 56px; height: 56px; place-items: center; border: 2px solid var(--gold); border-radius: 50%; background: #fff; color: var(--navy); box-shadow: 0 10px 22px rgba(120,90,20,.14); transition: background .4s var(--ease), color .4s var(--ease), transform .4s var(--ease); }
.ct-ico svg { width: 24px; height: 24px; fill: none; stroke: currentColor; stroke-width: 1.8; stroke-linecap: round; stroke-linejoin: round; }
.ct-row:hover .ct-ico { transform: scale(1.06); background: var(--navy); color: var(--gold); }
.ct-label { display: block; margin-bottom: 4px; color: #8a5f00; font-size: 13px; font-weight: 800; letter-spacing: 1.4px; text-transform: uppercase; }
.ct-val { font-size: 16.5px; line-height: 1.65; }
.ct-val strong { display: block; color: var(--navy); font-size: 18px; font-weight: 800; }
.ct-kn { display: block; margin: 2px 0 6px; color: var(--navy-2); font-family: "Noto Sans Kannada", "Nirmala UI", sans-serif; font-size: 16px; font-weight: 600; }
.ct-val a { display: inline-flex; align-items: center; min-height: 28px; padding: 1px 8px; border-radius: 6px; background: transparent; color: var(--navy); font-weight: 700; text-decoration: none; transition: background-color .2s ease, color .2s ease; }
.ct-val a:hover { background: var(--navy); color: #fff; }
.ct-val a:focus-visible { background: var(--navy); color: #fff; }
.ct-phones { display: flex; flex-wrap: wrap; gap: 6px 22px; }

.ct-val a:focus-visible, .ct-map-link:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }

.ct-form-card { padding: clamp(24px, 3vw, 38px); border: 1px solid rgba(10,42,79,.08); border-radius: 26px; background: #fff; box-shadow: 0 18px 48px rgba(10,42,79,.1); }
.ct-form-intro { margin-top: 18px !important; font-size: 15px; }
.ct-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 18px; margin-top: 28px; }
.ct-field { min-width: 0; margin-bottom: 18px; }
.ct-field-wide { grid-column: 1 / -1; }
.ct-field label { display: block; margin-bottom: 6px; color: var(--navy); font-size: 13px; font-weight: 700; }
.ct-field label span { color: #8b929b; font-weight: 500; }
.ct-field input, .ct-field select, .ct-field textarea {
    display: block;
    width: 100%;
    min-height: 48px;
    margin: 0;
    padding: 11px 14px;
    border: 1px solid #dce3eb;
    border-radius: 10px;
    outline: none;
    background-color: #fbfcfe;
    color: #27384a;
    font: inherit;
    font-size: 14px;
    transition: border-color .2s ease, box-shadow .2s ease, background .2s ease;
}
.ct-field textarea { min-height: 116px; resize: vertical; }
.ct-field input::placeholder, .ct-field textarea::placeholder { color: #8b929b; opacity: 1; }
.ct-field input:focus, .ct-field select:focus, .ct-field textarea:focus { border-color: var(--navy-2); background: #fff; box-shadow: 0 0 0 3px rgba(18,57,122,.1); }
.ct-field input.is-invalid, .ct-field textarea.is-invalid, .ct-field select.is-invalid { border-color: #dc3545; }
.ct-field .error { display: block; margin-top: 5px; color: #b42318; font-size: 12px; }
.ct .send-btn { display: inline-flex; min-height: 50px; align-items: center; justify-content: center; gap: 12px; padding: 12px 24px; border: 0; border-radius: 999px; background: var(--navy); color: #fff; cursor: pointer; font: inherit; font-size: 15px; font-weight: 700; transition: transform .3s var(--ease), background .3s, box-shadow .3s; }
.ct .send-btn svg { width: 18px; height: 18px; fill: none; stroke: currentColor; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; }
.ct .send-btn:hover { transform: translateY(-2px); background: var(--navy-2); box-shadow: 0 10px 22px rgba(10,42,79,.2); }
.ct .send-btn:focus-visible { outline: 3px solid var(--gold); outline-offset: 3px; }
.ct .msg { margin-top: 14px; }
.ct .msg .alert { margin: 0; }

.ct-mapwrap { position: relative; margin-top: 76px; }
.ct-mapwrap::before { position: absolute; inset: 18px -18px -18px 18px; border: 2px solid var(--gold); border-radius: 32px; content: ""; pointer-events: none; }
.ct-map { position: relative; min-height: 420px; overflow: hidden; border-radius: 32px; background: linear-gradient(135deg, #dcfbe9, #dff0ff); box-shadow: 0 26px 56px rgba(10,42,79,.16); }
.ct-map iframe { position: absolute; inset: 0; display: block; width: 100%; height: 100%; border: 0; }
.ct-mapwrap-compact { margin-top: 30px; }
.ct-mapwrap-compact::before { inset: 10px -10px -10px 10px; border-width: 1px; border-radius: 20px; }
.ct-mapwrap-compact .ct-map { min-height: 220px; border-radius: 20px; box-shadow: 0 12px 26px rgba(10,42,79,.12); }
.ct-map-link { position: absolute; right: 12px; bottom: 12px; z-index: 1; padding: 8px 12px; border: 1px solid rgba(10,42,79,.1); border-radius: 8px; background: rgba(255,255,255,.96); color: var(--navy); font-size: 13px; font-weight: 700; text-decoration: none; box-shadow: 0 4px 14px rgba(10,42,79,.14); }
.ct-map-link:hover { background: var(--navy); color: #fff; }

@media (max-width: 960px) {
    .ct-main { padding: 60px 0 70px; }
    .ct-grid { grid-template-columns: 1fr; gap: 48px; }
    .ct-mapwrap { margin-top: 30px; }
}
@media (max-width: 560px) {
    .ct-wrap { padding-right: 16px; padding-left: 16px; }
    .ct-hero { padding: 54px 0 60px; }
    .ct-main { padding: 44px 0 56px; }
    .ct-row { gap: 14px; padding: 20px 0; }
    .ct-ico { width: 48px; height: 48px; }
    .ct-ico svg { width: 21px; height: 21px; }
    .ct-val { font-size: 15.5px; }
    .ct-val strong { font-size: 16.5px; }
    .ct-form-card { padding: 22px 18px; border-radius: 20px; }
    .ct-form-grid { grid-template-columns: 1fr; gap: 0; }
    .ct-field-wide { grid-column: auto; }
    .ct-mapwrap-compact { margin: 26px 10px 12px 0; }
    .ct-mapwrap-compact::before { inset: 8px -8px -8px 8px; border-radius: 16px; }
    .ct-mapwrap-compact .ct-map { min-height: 200px; border-radius: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .ct-ico, .ct-val a, .ct-field input, .ct-field select, .ct-field textarea, .ct .send-btn { transition: none; }
    .ct-row:hover .ct-ico, .ct .send-btn:hover { transform: none; }
}
