/* ================================================================
   Neeva Contact Page – Elementor Widgets Stylesheet v1.1.0
   ================================================================ */

/* Material Symbols */
.material-symbols-outlined {
    font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
    font-style: normal;
    display: inline-block;
    vertical-align: middle;
    line-height: 1;
}

/* ── Card lift hover ── */
.nc-transition-lift {
    transition: transform 0.3s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.3s ease;
}
.nc-transition-lift:hover { transform: translateY(-8px); }

/* ── Hero buttons ── */
.nc-btn1:hover { box-shadow: 0 20px 25px -5px rgba(254,208,25,.4); opacity: .9; }
.nc-btn2:hover { background: rgba(255,255,255,.1) !important; }

/* ── Service grid image zoom ── */
.nc-svc-card .nc-svc-img { transition: transform 0.5s ease; }
.nc-svc-card:hover .nc-svc-img { transform: scale(1.1); }

/* ── Contact info card hover ── */
.nc-card:hover { box-shadow: 0 10px 25px -5px rgba(0,0,0,.12) !important; }

/* ── WhatsApp block ── */
.nc-wa-block { transition: background-color .3s ease; }
.nc-wa-block:hover { background-color: #0a2060 !important; }
.nc-wa-block a:hover { opacity: .88; }

/* ── FAQ ── */
.nc-faq-btn  { transition: background-color .2s; }
.nc-faq-item { transition: box-shadow .2s; }
.nc-faq-item:hover { box-shadow: 0 4px 6px -1px rgba(0,0,0,.07); }

/* ── CTA buttons ── */
.nc-cta-btn:hover { transform: scale(1.05); box-shadow: 0 10px 20px -5px rgba(0,0,0,.2); }

/* ── Emergency portal hover ── */
.nc-info-col a:hover { opacity: .88; }

/* ================================================================
   FLUENT FORMS – styling inside the widget card
   ================================================================ */

/* Reset and base */
.nc-fluent-form-wrap .ff-el-group { margin-bottom: 20px; }
.nc-fluent-form-wrap .ff-el-form-control,
.nc-fluent-form-wrap .ff-el-form-select,
.nc-fluent-form-wrap textarea.ff-el-form-control {
    width: 100% !important;
    padding: 14px 16px !important;
    background: #faf8ff !important;
    border: 1.5px solid #c6c6d0 !important;
    border-radius: 8px !important;
    font-family: Inter, sans-serif !important;
    font-size: 15px !important;
    color: #131b2e !important;
    transition: border-color .2s, box-shadow .2s !important;
    box-shadow: none !important;
    outline: none !important;
}
.nc-fluent-form-wrap .ff-el-form-control:focus,
.nc-fluent-form-wrap .ff-el-form-select:focus,
.nc-fluent-form-wrap textarea.ff-el-form-control:focus {
    border-color: #fed019 !important;
    box-shadow: 0 0 0 3px rgba(254,208,25,.15) !important;
}

/* Labels */
.nc-fluent-form-wrap .ff-el-input--label label {
    font-family: Inter, sans-serif !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: .06em !important;
    color: #45464f !important;
    margin-bottom: 6px !important;
}

/* Submit button */
.nc-fluent-form-wrap .ff-btn-submit,
.nc-fluent-form-wrap button[type="submit"] {
    width: 100% !important;
    background: #061748 !important;
    color: #fff !important;
    font-family: Montserrat, sans-serif !important;
    font-size: 16px !important;
    font-weight: 700 !important;
    padding: 18px 24px !important;
    border-radius: 8px !important;
    border: none !important;
    cursor: pointer !important;
    transition: background .2s !important;
    letter-spacing: .02em !important;
}
.nc-fluent-form-wrap .ff-btn-submit:hover,
.nc-fluent-form-wrap button[type="submit"]:hover {
    background: #0d2a80 !important;
}

/* Radio / Checkbox */
.nc-fluent-form-wrap .ff-el-form-check-input { accent-color: #fed019; }

/* Step progress bar (if multi-step form) */
.nc-fluent-form-wrap .ff-step-container .ff-step.ff-step-active { background: #fed019 !important; border-color: #fed019 !important; }

/* Error messages */
.nc-fluent-form-wrap .error { color: #ba1a1a !important; font-size: 12px !important; margin-top: 4px !important; }

/* Success message */
.nc-fluent-form-wrap .ff-message-success { background: #f0fdf4 !important; border-left: 4px solid #22c55e !important; padding: 16px !important; border-radius: 6px !important; font-family: Inter, sans-serif !important; }

/* ================================================================
   MAP WIDGET
   ================================================================ */

/* Make iframe fill container perfectly */
.nc-map-col iframe {
    display: block;
    width: 100%;
    height: 100%;
    border: 0;
}

/* Smooth border-radius on map column */
.nc-map-col { overflow: hidden; }

/* Emergency portal button */
.nc-info-col a[href] {
    transition: opacity .2s, background .2s;
}

/* ================================================================
   MOBILE RESPONSIVE
   ================================================================ */

@media (max-width: 1024px) {
    .nc-ci-grid  { grid-template-columns: repeat(2, 1fr) !important; }
    .nc-svc-grid { grid-template-columns: repeat(2, 1fr) !important; }
}

@media (max-width: 768px) {
    /* Reduce section padding */
    .nc-wrap {
        padding-left:   16px !important;
        padding-right:  16px !important;
        padding-top:    60px !important;
        padding-bottom: 60px !important;
    }

    /* Hero */
    .nc-hero-inner { padding: 0 !important; max-width: 100% !important; }
    .nc-hero-h1    { font-size: 28px !important; line-height: 1.2 !important; }
    .nc-hero-desc  { font-size: 16px !important; }

    /* All card grids → 1 column */
    .nc-ci-grid,
    .nc-svc-grid { grid-template-columns: 1fr !important; }

    /* Form + Why — stack vertically */
    .nc-col-left,
    .nc-col-right {
        width: 100% !important;
        flex: 1 1 100% !important;
    }

    /* Map + Info stack */
    .nc-map-col + .nc-info-col,
    .nc-wrap[style*="grid-template-columns:1fr 1fr"],
    .nc-wrap > .nc-map-col,
    .nc-wrap > .nc-info-col {
        width: 100% !important;
    }
    .nc-wrap.nc-map-wrap {
        grid-template-columns: 1fr !important;
        display: flex !important;
        flex-direction: column !important;
    }
    .nc-map-col  { height: 320px !important; }
    .nc-info-col { padding: 32px 20px !important; }

    /* CTA heading */
    .nc-cta-h { font-size: 26px !important; }

    /* FAQ */
    .nc-faq-inner { padding: 0 !important; }

    /* Services */
    .nc-svc-card { height: 200px !important; }
}

@media (max-width: 480px) {
    .nc-hero-h1  { font-size: 22px !important; }
    .nc-cta-h    { font-size: 20px !important; }
    .nc-cta-btn  { padding: 14px 18px !important; font-size: 15px !important; }
    .nc-card     { padding: 20px !important; }
    .nc-map-col  { height: 260px !important; }

    /* Fluent form two-col → single col on small screens */
    .nc-fluent-form-wrap .fluentform .ff-el-group { width: 100% !important; }
}
