/* ================================================================
   Inquiry Forms Plugin — style.css  v4 (definitive)
   Export  : #c01d24 red   |  Domestic : #c01d24 red
   RULE: every colour-bearing rule is double-scoped under BOTH
         .ifp-wrapper AND .ifp-export / .ifp-domestic so there
         is zero chance of colour bleed between the two forms.
================================================================ */

/* ── Reset ─────────────────────────────────────────────────── */
.ifp-wrapper *, .ifp-wrapper *::before, .ifp-wrapper *::after {
    box-sizing: border-box; margin: 0; padding: 0;
}

/* ── Wrapper ────────────────────────────────────────────────── */
.ifp-wrapper {
    width: 100%; max-width: 780px; margin: 0 auto;
    font-family: 'Segoe UI', system-ui, -apple-system, sans-serif;
    font-size: 15px; color: #1a1a2e;
}

/* ── Card ───────────────────────────────────────────────────── */
.ifp-card { background: #fff; border-radius: 16px; overflow: hidden; }
.ifp-wrapper.ifp-export  .ifp-card { box-shadow: 0 4px 6px rgba(0,0,0,.04), 0 12px 40px rgba(192,29,36,.09); }
.ifp-wrapper.ifp-domestic .ifp-card { box-shadow: 0 4px 6px rgba(0,0,0,.04), 0 12px 40px rgba(192,29,36,.09); }

/* ── Header banner ──────────────────────────────────────────── */
.ifp-header { padding: 36px 40px 32px; text-align: center; position: relative; }
.ifp-header::after {
    content: ''; position: absolute; bottom: -1px; left: 0; right: 0;
    height: 24px; background: #fff; border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.ifp-wrapper.ifp-export  .ifp-header { background: linear-gradient(135deg, #c01d24 0%, #9b1219 100%); }
.ifp-wrapper.ifp-domestic .ifp-header { background: linear-gradient(135deg, #c01d24 0%, #9b1219 100%); }

.ifp-header-icon {
    display: inline-flex; align-items: center; justify-content: center;
    width: 52px; height: 52px; background: rgba(255,255,255,.18);
    border-radius: 50%; margin-bottom: 14px;
}
.ifp-header-icon svg { width: 26px; height: 26px; stroke: #fff; }
.ifp-title    { font-size: 1.6rem; font-weight: 700; color: #fff; letter-spacing: -.3px; line-height: 1.2; margin-bottom: 8px; }
.ifp-subtitle { font-size: .9rem; color: rgba(255,255,255,.82); line-height: 1.5; }

/* ── Alerts ─────────────────────────────────────────────────── */
.ifp-alert { margin: 0 40px 4px; padding: 14px 18px; border-radius: 10px; font-size: .9rem; font-weight: 500; line-height: 1.5; }
.ifp-alert-success { background: #ecfdf5; color: #065f46; border: 1px solid #6ee7b7; }
.ifp-alert-error   { background: #fff8f8; color: #9b1219;  border: 1px solid #fca5a5; }

/* ── Form body ──────────────────────────────────────────────── */
.ifp-wrapper form { padding: 32px 40px 40px; display: flex; flex-direction: column; gap: 20px; }

/* ── Grid row ───────────────────────────────────────────────── */
.ifp-row-2 { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }

/* ── Field & Label ──────────────────────────────────────────── */
.ifp-field { display: flex; flex-direction: column; gap: 6px; }
.ifp-label { font-size: .82rem; font-weight: 600; color: #444; letter-spacing: .3px; text-transform: uppercase; display: flex; align-items: center; gap: 5px; }
.ifp-opt { font-weight: 400; color: #999; text-transform: none; font-size: .8rem; }

/* Required asterisk — scoped to each form type */
.ifp-wrapper.ifp-export   .ifp-req { color: #c01d24 !important; font-size: .95rem; }
.ifp-wrapper.ifp-domestic .ifp-req { color: #c01d24 !important; font-size: .95rem; }

/* ── Base input ─────────────────────────────────────────────── */
.ifp-input {
    width: 100%; padding: 11px 14px;
    border: 1.5px solid #e2e2e8; border-radius: 10px;
    background: #fafafa; font-size: .93rem; color: #1a1a2e;
    outline: none; appearance: none; -webkit-appearance: none;
    transition: border-color .2s, box-shadow .2s, background .2s;
    line-height: 1.4;
}
.ifp-input::placeholder { color: #c4c4d0; font-size: .9rem; }

/* Focus ring — RED for export */
.ifp-wrapper.ifp-export .ifp-input:focus {
    border-color: #c01d24 !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(192,29,36,.12) !important;
}
/* Focus ring — BLUE for domestic */
.ifp-wrapper.ifp-domestic .ifp-input:focus {
    border-color: #c01d24 !important;
    background: #fff !important;
    box-shadow: 0 0 0 3px rgba(26,111,196,.12) !important;
}

/* Error state */
.ifp-wrapper.ifp-export   .ifp-input.has-error { border-color: #c01d24 !important; background: #fff8f8 !important; }
.ifp-wrapper.ifp-domestic .ifp-input.has-error { border-color: #c01d24 !important; background: #fff8f8 !important; }

/* Inline error message */
.ifp-error { display: none; font-size: .78rem; font-weight: 500; padding-left: 2px; }
.ifp-error.visible { display: block; }
.ifp-wrapper.ifp-export   .ifp-error { color: #c01d24; }
.ifp-wrapper.ifp-domestic .ifp-error { color: #c01d24; }

/* ── Select ─────────────────────────────────────────────────── */
.ifp-select-wrap { position: relative; }
.ifp-select { padding-right: 32px; cursor: pointer; }
.ifp-select-arrow { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 12px; color: #aaa; pointer-events: none; }

/* ── Textarea ───────────────────────────────────────────────── */
.ifp-textarea { resize: vertical; min-height: 110px; padding-top: 12px; line-height: 1.6; }

/* ── Phone row ──────────────────────────────────────────────── */
.ifp-phone-row { display: flex; gap: 10px; align-items: stretch; }
.ifp-dial-badge {
    display: flex; align-items: center; gap: 7px; padding: 0 14px;
    min-width: 92px; flex-shrink: 0; border: 1.5px solid #e2e2e8;
    border-radius: 10px; background: #fafafa; font-size: .88rem;
    font-weight: 600; color: #555; white-space: nowrap; user-select: none;
}
.ifp-wrapper.ifp-export   .ifp-phone-row:focus-within .ifp-dial-badge { border-color: #c01d24; }
.ifp-wrapper.ifp-domestic .ifp-phone-row:focus-within .ifp-dial-badge { border-color: #c01d24; }
.ifp-flag { font-size: 1.25rem; line-height: 1; }
.ifp-phone-input { flex: 1; padding-left: 14px; }

/* ================================================================
   SUBMIT BUTTONS — theme-proof
   Selectors intentionally verbose to beat any theme specificity.
================================================================ */
.ifp-wrapper .ifp-card form .ifp-submit-wrap .ifp-btn,
.ifp-wrapper .ifp-card form button.ifp-btn {
    display: inline-flex !important; align-items: center !important;
    justify-content: center !important; gap: 10px !important;
    width: 100% !important; padding: 13px 32px !important;
    border: none !important; border-radius: 10px !important;
    font-size: .97rem !important; font-weight: 600 !important;
    letter-spacing: .2px !important; cursor: pointer !important;
    text-decoration: none !important; text-transform: none !important;
    line-height: normal !important; box-sizing: border-box !important;
    background-image: none !important;
    transition: background-color .2s, transform .15s, box-shadow .2s !important;
    appearance: none; -webkit-appearance: none;
}

/* Export — RED button */
.ifp-wrapper.ifp-export .ifp-card form .ifp-submit-wrap .ifp-btn-export,
.ifp-wrapper.ifp-export .ifp-card form button.ifp-btn-export {
    background-color: #c01d24 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(192,29,36,.35) !important;
}
.ifp-wrapper.ifp-export .ifp-card form .ifp-submit-wrap .ifp-btn-export:hover,
.ifp-wrapper.ifp-export .ifp-card form button.ifp-btn-export:hover {
    background-color: #a0171d !important;
    color: #ffffff !important;
    box-shadow: 0 6px 20px rgba(192,29,36,.45) !important;
    transform: translateY(-1px) !important;
}
.ifp-wrapper.ifp-export .ifp-card form .ifp-submit-wrap .ifp-btn-export:active {
    background-color: #8f1219 !important;
    transform: translateY(0) !important;
}

/* Domestic — BLUE button */
.ifp-wrapper.ifp-domestic .ifp-card form .ifp-submit-wrap .ifp-btn-domestic,
.ifp-wrapper.ifp-domestic .ifp-card form button.ifp-btn-domestic {
    background-color: #c01d24 !important;
    color: #ffffff !important;
    box-shadow: 0 4px 14px rgba(192,29,36,.35) !important;
}
.ifp-wrapper.ifp-domestic .ifp-card form .ifp-submit-wrap .ifp-btn-domestic:hover,
.ifp-wrapper.ifp-domestic .ifp-card form button.ifp-btn-domestic:hover {
    background-color: #a0171d !important;
    color: #ffffff !important;
    box-shadow: 0 6px 20px rgba(192,29,36,.45) !important;
    transform: translateY(-1px) !important;
}
.ifp-wrapper.ifp-domestic .ifp-card form .ifp-submit-wrap .ifp-btn-domestic:active {
    background-color: #8f1219 !important;
    transform: translateY(0) !important;
}

/* Disabled */
.ifp-wrapper .ifp-card form .ifp-submit-wrap .ifp-btn:disabled {
    opacity: .7 !important; cursor: not-allowed !important; transform: none !important; box-shadow: none !important;
}
/* SVG icon */
.ifp-wrapper .ifp-card form .ifp-submit-wrap .ifp-btn svg {
    stroke: #ffffff !important; fill: none !important;
}

/* Button inner spans */
.ifp-btn-text, .ifp-btn-loading { display: flex; align-items: center; gap: 8px; }

/* ── Spinner ────────────────────────────────────────────────── */
.ifp-spinner {
    display: inline-block; width: 18px; height: 18px; border-radius: 50%;
    border: 2.5px solid rgba(255,255,255,.35); border-top-color: #fff;
    animation: ifp-spin .7s linear infinite;
}
@keyframes ifp-spin { to { transform: rotate(360deg); } }

/* ── Responsive ─────────────────────────────────────────────── */
@media (max-width: 600px) {
    .ifp-header        { padding: 28px 24px 26px; }
    .ifp-wrapper form  { padding: 24px 20px 28px; gap: 16px; }
    .ifp-row-2         { grid-template-columns: 1fr; }
    .ifp-alert         { margin: 0 20px 4px; }
    .ifp-title         { font-size: 1.35rem; }
}
