/* =====================================================================
   Contact page redesign — "Get In Touch" (India Village Restaurant)
   Premium two-panel layout (dark info aside + white form card) + styled
   map. Multi-device responsive. Namespaced .ivc-* so nothing else changes.
   Theme: orange --theme-color with charcoal/ink accents.
   ===================================================================== */

:root {
    --ivc-ink: #1b1712;
    --ivc-ink-2: #2a2016;
    --ivc-accent: var(--theme-color, #f0592b);
    --ivc-gold: #e0a53c;
    --ivc-line: #ece3d6;
    --ivc-danger: #d64541;
}

/* ---------- section shell ---------- */
.ivc-section { padding: 90px 0; background: #faf6f0; }
.ivc-grid {
    display: grid;
    grid-template-columns: 0.9fr 1.1fr;
    gap: 0;
    border-radius: 26px;
    overflow: hidden;
    box-shadow: 0 40px 90px -50px rgba(27, 23, 18, .55);
    background: #fff;
}

/* ---------- left: info panel ---------- */
.ivc-info {
    position: relative;
    padding: 54px 46px;
    color: #f4ece0;
    background:
        radial-gradient(120% 90% at 100% 0%, rgba(240, 89, 43, .22), transparent 55%),
        linear-gradient(160deg, var(--ivc-ink) 0%, var(--ivc-ink-2) 100%);
    overflow: hidden;
}
.ivc-info::after {
    content: "";
    position: absolute;
    right: -70px; bottom: -70px;
    width: 220px; height: 220px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(224, 165, 60, .18), transparent 70%);
    pointer-events: none;
}
.ivc-eyebrow {
    display: inline-flex; align-items: center; gap: 8px;
    font-size: 12px; letter-spacing: 3px; text-transform: uppercase;
    color: var(--ivc-gold); font-weight: 700; margin-bottom: 14px;
}
.ivc-eyebrow::before { content: ""; width: 26px; height: 2px; background: var(--ivc-accent); display: inline-block; }
.ivc-title { color: #fff; font-size: clamp(26px, 3vw, 38px); line-height: 1.15; margin: 0 0 14px; }
.ivc-lead { color: #d7cbba; font-size: 15px; line-height: 1.7; margin-bottom: 30px; max-width: 46ch; }

.ivc-contacts { list-style: none; margin: 0 0 26px; padding: 0; }
.ivc-contacts li { display: flex; gap: 16px; align-items: flex-start; padding: 14px 0; border-bottom: 1px solid rgba(255, 255, 255, .08); }
.ivc-contacts li:last-child { border-bottom: 0; }
.ivc-ic {
    flex: 0 0 46px; width: 46px; height: 46px; border-radius: 13px;
    display: grid; place-items: center; font-size: 18px; color: #fff;
    background: linear-gradient(135deg, var(--ivc-accent), #c53d12);
    box-shadow: 0 12px 24px -12px rgba(240, 89, 43, .8);
}
.ivc-ct-label { font-size: 11px; letter-spacing: 2px; text-transform: uppercase; color: var(--ivc-gold); margin-bottom: 3px; }
.ivc-ct-val, .ivc-ct-val a { color: #f4ece0; font-size: 15px; line-height: 1.5; text-decoration: none; word-break: break-word; }
.ivc-ct-val a:hover { color: var(--ivc-accent); }

.ivc-social { display: flex; gap: 12px; margin-top: 6px; }
.ivc-social a {
    width: 42px; height: 42px; border-radius: 50%; display: grid; place-items: center;
    color: #f4ece0; border: 1px solid rgba(255, 255, 255, .18); transition: .25s ease;
}
.ivc-social a:hover { background: var(--ivc-accent); border-color: var(--ivc-accent); color: #fff; transform: translateY(-3px); }

.ivc-trust {
    margin-top: 26px; display: flex; align-items: center; gap: 10px;
    font-size: 12.5px; color: #cdbfad;
    background: rgba(224, 165, 60, .12); border: 1px solid rgba(224, 165, 60, .25);
    border-radius: 12px; padding: 11px 14px;
}
.ivc-trust i { color: var(--ivc-gold); font-size: 16px; }

/* ---------- right: form card ---------- */
.ivc-formcard { padding: 54px 46px; background: #fff; }
.ivc-form-eyebrow { color: var(--ivc-accent); font-weight: 700; letter-spacing: 2px; text-transform: uppercase; font-size: 12px; margin-bottom: 8px; }
.ivc-form-title { color: var(--ivc-ink); font-size: clamp(22px, 2.4vw, 30px); margin: 0 0 26px; }

.ivc-form .ivc-field { position: relative; margin-bottom: 20px; }
.ivc-form label.ivc-lbl { display: block; font-size: 12.5px; font-weight: 600; color: #6a5f52; margin-bottom: 7px; }
.ivc-form label.ivc-lbl .req { color: var(--ivc-accent); }
.ivc-form .form-control,
.ivc-form .form-select {
    width: 100%;
    background: #faf7f2;
    border: 1.5px solid var(--ivc-line);
    border-radius: 13px;
    padding: 14px 16px 14px 46px;
    font-size: 15px; color: var(--ivc-ink);
    transition: border-color .2s, box-shadow .2s, background .2s;
    height: auto;
}
.ivc-form textarea.form-control { padding-left: 46px; min-height: 130px; resize: vertical; }
.ivc-form .form-control:focus,
.ivc-form .form-select:focus {
    outline: none; background: #fff;
    border-color: var(--ivc-accent);
    box-shadow: 0 0 0 4px rgba(240, 89, 43, .12);
}
.ivc-form .form-control::placeholder { color: #a99e8f; }
.ivc-form .ivc-fi {
    position: absolute; left: 16px; top: 42px; color: var(--ivc-accent);
    font-size: 16px; pointer-events: none;
}
.ivc-form .ivc-field.ivc-noicon .form-control,
.ivc-form .ivc-field.ivc-noicon .form-select { padding-left: 16px; }

/* validation (Contactus.js toggles .is-invalid) */
.ivc-form .form-control.is-invalid,
.ivc-form .form-select.is-invalid {
    border-color: var(--ivc-danger);
    background: #fdf3f2;
    box-shadow: 0 0 0 4px rgba(214, 69, 65, .1);
}
.ivc-form .form-control.is-invalid ~ .ivc-fi,
.ivc-form .form-select.is-invalid ~ .ivc-fi { color: var(--ivc-danger); }
.ivc-err { display: none; color: var(--ivc-danger); font-size: 12px; margin-top: 6px; }
.ivc-form .form-control.is-invalid ~ .ivc-err,
.ivc-form .form-select.is-invalid ~ .ivc-err { display: block; }

/* honeypot — hidden from humans, catches bots */
.ivc-hp { position: absolute !important; left: -9999px !important; top: -9999px !important; width: 1px; height: 1px; opacity: 0; pointer-events: none; }

.ivc-rows { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }

/* buttons + security note */
.ivc-actions { margin-top: 8px; }
.ivc-form .th-btn { border-radius: 13px; }
.ivc-secnote {
    display: flex; align-items: flex-start; gap: 9px;
    margin-top: 16px; font-size: 12px; color: #7c7164; line-height: 1.5;
}
.ivc-secnote i { color: #1e9e63; font-size: 15px; margin-top: 1px; }
#captchaContainer { margin-bottom: 14px; }
.ivc-form .form-messages { min-height: 0; }

/* ---------- map ---------- */
.ivc-map-section { padding: 0 0 90px; background: #faf6f0; }
.ivc-map {
    border-radius: 22px; overflow: hidden; margin: 0 auto; max-width: 1290px;
    box-shadow: 0 30px 70px -40px rgba(27, 23, 18, .5);
    border: 6px solid #fff; line-height: 0;
}
.ivc-map iframe { width: 100%; height: 420px; border: 0; display: block; }

/* ---------- responsive ---------- */
@media (max-width: 991.98px) {
    .ivc-section { padding: 60px 0; }
    .ivc-grid { grid-template-columns: 1fr; border-radius: 20px; }
    .ivc-info, .ivc-formcard { padding: 40px 30px; }
    .ivc-map-section { padding: 0 0 60px; }
    .ivc-map iframe { height: 340px; }
}
@media (max-width: 575.98px) {
    .ivc-section { padding: 44px 0; }
    .ivc-info, .ivc-formcard { padding: 32px 22px; }
    .ivc-rows { grid-template-columns: 1fr; }
    .ivc-map { border-radius: 16px; border-width: 4px; }
    .ivc-map iframe { height: 280px; }
    .ivc-contacts li { padding: 12px 0; }
}
