/* ============================================================
   Nova Home Healthcare — Public Landing Page
   Theme: White + Blue + Cyan  (layout inspired by dishivahomecare.in)
   ============================================================ */

:root {
    --nv-blue: #0b5ed7;
    --nv-blue-dark: #0a2a5e;
    --nv-navy: #0b2447;
    --nv-cyan: #06b6d4;
    --nv-cyan-soft: #e0f7fd;
    --nv-light: #f5faff;
    --nv-ink: #14213d;
    --nv-muted: #5c6b85;
    --nv-radius: 16px;
    --nv-shadow: 0 10px 30px rgba(11, 36, 71, .08);
}

body.nv-public {
    font-family: "Segoe UI", system-ui, -apple-system, sans-serif;
    color: var(--nv-ink);
    background: #ffffff;
}

/* ---------------- Top bar ---------------- */
.nv-topbar {
    background: var(--nv-navy);
    color: #cfe6ff;
    font-size: .85rem;
    padding: .35rem 0;
}
.nv-topbar a { color: #7fe3f7; text-decoration: none; }

/* ---------------- Navbar ---------------- */
.nv-navbar {
    background: #fff;
    box-shadow: 0 2px 12px rgba(11, 36, 71, .07);
    padding: .6rem 0;
}
.nv-navbar .navbar-brand { font-weight: 800; color: var(--nv-blue-dark); letter-spacing: .5px; }
.nv-navbar .navbar-brand .brand-icon {
    width: 42px; height: 42px; border-radius: 12px;
    background: linear-gradient(135deg, var(--nv-blue), var(--nv-cyan));
    display: inline-flex; align-items: center; justify-content: center;
    color: #fff; font-size: 1.3rem; margin-right: .5rem;
}
.nv-navbar .nav-link { color: var(--nv-ink); font-weight: 600; margin: 0 .35rem; }
.nv-navbar .nav-link:hover, .nv-navbar .nav-link.active { color: var(--nv-blue); }
.btn-nv-primary {
    background: linear-gradient(135deg, var(--nv-blue), var(--nv-cyan));
    color: #fff; border: none; border-radius: 50rem; font-weight: 700;
    padding: .55rem 1.4rem;
}
.btn-nv-primary:hover { color: #fff; filter: brightness(1.08); }
.btn-nv-outline {
    border: 2px solid var(--nv-blue); color: var(--nv-blue);
    border-radius: 50rem; font-weight: 700; padding: .45rem 1.3rem; background: #fff;
}
.btn-nv-outline:hover { background: var(--nv-blue); color: #fff; }
.btn-nv-whatsapp {
    background: #25d366; color: #fff; border-radius: 50rem; font-weight: 700;
    padding: .5rem 1.2rem; border: none;
}
.btn-nv-whatsapp:hover { color: #fff; filter: brightness(1.05); }

/* ---------------- Hero ---------------- */
.nv-hero { background: linear-gradient(180deg, var(--nv-light) 0%, #ffffff 100%); padding: 3rem 0 2rem; }
.nv-hero-card {
    background: #fff; border: 1px solid #e3eefc; border-radius: var(--nv-radius);
    box-shadow: var(--nv-shadow); padding: 2rem; height: 100%;
}
.nv-hero-card h1 { font-weight: 800; color: var(--nv-blue-dark); font-size: 2rem; line-height: 1.25; }
.nv-hero-card .lead { color: var(--nv-muted); font-size: 1rem; }
.nv-trust li { margin-bottom: .45rem; color: var(--nv-ink); font-weight: 600; font-size: .92rem; }
.nv-trust i { color: var(--nv-cyan); margin-right: .4rem; }
.nv-hero-visual {
    border-radius: var(--nv-radius); overflow: hidden; height: 100%; min-height: 320px;
    background: linear-gradient(135deg, var(--nv-blue-dark) 0%, var(--nv-blue) 55%, var(--nv-cyan) 100%);
    position: relative; box-shadow: var(--nv-shadow);
    display: flex; align-items: center; justify-content: center;
}
.nv-hero-visual img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.nv-hero-visual .nv-hero-fallback { text-align: center; color: #fff; padding: 2rem; position: relative; z-index: 1; }
.nv-hero-visual .nv-hero-fallback i { font-size: 4.5rem; opacity: .95; }
.nv-hero-visual .nv-hero-fallback p { font-weight: 700; font-size: 1.15rem; margin-top: 1rem; }

/* ---------------- Stats ---------------- */
.nv-stats { padding: 1.5rem 0 2.5rem; }
.nv-stat {
    text-align: center; padding: 1.2rem .5rem; border-radius: var(--nv-radius);
    background: #fff; border: 1px solid #e6f1fb; box-shadow: 0 6px 18px rgba(11,36,71,.05);
}
.nv-stat i { font-size: 1.7rem; color: var(--nv-cyan); }
.nv-stat .num { font-size: 1.5rem; font-weight: 800; color: var(--nv-blue-dark); }
.nv-stat .lbl { color: var(--nv-muted); font-weight: 600; font-size: .85rem; }

/* ---------------- Section headings ---------------- */
.nv-kicker {
    display: inline-flex; align-items: center; gap: .4rem;
    color: var(--nv-cyan); font-weight: 700; text-transform: uppercase;
    letter-spacing: 1.5px; font-size: .8rem;
}
.nv-section-title { font-weight: 800; color: var(--nv-blue-dark); font-size: 1.9rem; }

/* ---------------- About ---------------- */
.nv-about { padding: 3rem 0; background: var(--nv-light); }
.nv-about-visual {
    border-radius: var(--nv-radius); min-height: 340px; overflow: hidden; position: relative;
    background: linear-gradient(135deg, var(--nv-cyan) 0%, var(--nv-blue) 100%);
    box-shadow: var(--nv-shadow);
    display: flex; align-items: center; justify-content: center; color: #fff;
}
.nv-about-visual img { width: 100%; height: 100%; object-fit: cover; position: absolute; inset: 0; }
.nv-about-visual i { font-size: 5rem; }
.nv-checklist { list-style: none; padding-left: 0; }
.nv-checklist li {
    background: #fff; border: 1px solid #e3eefc; border-radius: 10px;
    padding: .6rem .9rem; margin-bottom: .55rem; font-weight: 600; font-size: .93rem;
}
.nv-checklist i { color: var(--nv-cyan); margin-right: .5rem; }

/* ---------------- Services ---------------- */
.nv-services { padding: 3.5rem 0; }
.nv-service-card {
    background: var(--nv-navy); color: #eaf3ff; border-radius: var(--nv-radius);
    padding: 1.6rem 1.4rem; height: 100%; transition: transform .25s, box-shadow .25s;
    border: 1px solid rgba(6,182,212,.25);
}
.nv-service-card:hover { transform: translateY(-6px); box-shadow: 0 16px 34px rgba(11,36,71,.25); }
.nv-service-card .icon {
    width: 52px; height: 52px; border-radius: 14px; background: rgba(6,182,212,.15);
    color: var(--nv-cyan); display: flex; align-items: center; justify-content: center;
    font-size: 1.5rem; margin-bottom: 1rem; border: 1px solid rgba(6,182,212,.4);
}
.nv-service-card h5 { color: #7fe3f7; font-weight: 700; font-size: 1.05rem; }
.nv-service-card p { color: #b9cdea; font-size: .87rem; margin-bottom: 0; }

/* ---------------- Features (Your Vision, Our Expertise) ---------------- */
.nv-features { padding: 2.5rem 0 3rem; background: var(--nv-light); }
.nv-feature {
    background: #fff; border: 2px solid #dcecfd; border-radius: var(--nv-radius);
    padding: 1.3rem 1.4rem; height: 100%; display: flex; gap: 1rem; align-items: flex-start;
}
.nv-feature .icon {
    flex-shrink: 0; width: 50px; height: 50px; border-radius: 50%;
    background: linear-gradient(135deg, var(--nv-blue), var(--nv-cyan));
    color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.3rem;
}
.nv-feature h5 { font-weight: 800; color: var(--nv-blue-dark); font-size: 1.02rem; }
.nv-feature p { color: var(--nv-muted); font-size: .88rem; margin-bottom: 0; }

/* ---------------- How it works ---------------- */
.nv-steps { background: var(--nv-navy); border-radius: var(--nv-radius); padding: 2.5rem 2rem; color: #eaf3ff; }
.nv-steps h3 { font-weight: 800; color: #fff; }
.nv-step { text-align: center; padding: 1rem .5rem; position: relative; }
.nv-step .icon {
    width: 64px; height: 64px; margin: 0 auto 1rem; border-radius: 16px;
    background: #fff; color: var(--nv-blue); display: flex; align-items: center;
    justify-content: center; font-size: 1.6rem; box-shadow: 0 6px 16px rgba(0,0,0,.25);
}
.nv-step h6 { color: #7fe3f7; font-weight: 700; }
.nv-step p { color: #b9cdea; font-size: .84rem; margin-bottom: 0; }

/* ---------------- Testimonials ---------------- */
.nv-testimonials { padding: 3.5rem 0; }
.nv-testimonial {
    background: #fff; border: 1px solid #e3eefc; border-radius: var(--nv-radius);
    box-shadow: 0 6px 18px rgba(11,36,71,.06); padding: 1.4rem; height: 100%;
}
.nv-testimonial .stars { color: #f5b301; margin-bottom: .5rem; }
.nv-testimonial .who { font-weight: 800; color: var(--nv-blue-dark); font-size: .95rem; }
.nv-testimonial .role { color: var(--nv-muted); font-size: .78rem; }
.nv-testimonial p { color: var(--nv-muted); font-size: .88rem; }

/* ---------------- CTA band ---------------- */
.nv-cta {
    background: linear-gradient(135deg, var(--nv-blue) 0%, var(--nv-cyan) 100%);
    border-radius: var(--nv-radius); color: #fff; padding: 2.2rem 2rem;
}
.nv-cta h3 { font-weight: 800; }
.btn-nv-light { background: #fff; color: var(--nv-blue-dark); border-radius: 50rem; font-weight: 800; padding: .6rem 1.6rem; border: none; }
.btn-nv-light:hover { color: var(--nv-blue); }

/* ---------------- Footer ---------------- */
.nv-footer { background: var(--nv-navy); color: #b9cdea; padding: 3rem 0 1rem; margin-top: 3rem; }
.nv-footer h6 { color: #fff; font-weight: 800; text-transform: uppercase; letter-spacing: 1px; font-size: .9rem; margin-bottom: 1rem; }
.nv-footer a { color: #b9cdea; text-decoration: none; display: inline-block; margin-bottom: .45rem; font-size: .9rem; }
.nv-footer a:hover { color: #7fe3f7; }
.nv-footer .brand { color: #fff; font-weight: 800; font-size: 1.2rem; }
.nv-footer .small-print { border-top: 1px solid rgba(255,255,255,.12); margin-top: 2rem; padding-top: 1rem; font-size: .82rem; text-align: center; }
.nv-footer i { color: var(--nv-cyan); margin-right: .45rem; }

/* ---------------- Responsive ---------------- */
@media (max-width: 991.98px) {
    .nv-hero-card h1 { font-size: 1.6rem; }
    .nv-section-title { font-size: 1.5rem; }
    .nv-hero-visual { min-height: 240px; margin-top: 1rem; }
}

/* ============================================================
   Inner pages (Services / About / FAQ / Contact)
   ============================================================ */

/* Page banner */
.nv-page-hero {
    background: linear-gradient(135deg, var(--nv-navy) 0%, var(--nv-blue) 70%, var(--nv-cyan) 100%);
    color: #fff; padding: 3rem 0 2.5rem; text-align: center;
}
.nv-page-hero h1 { font-weight: 800; font-size: 2.1rem; }
.nv-page-hero p { color: #d6ecff; max-width: 720px; margin: .5rem auto 0; font-size: .95rem; }
.nv-breadcrumb { color: #9fd9ff; font-size: .85rem; margin-bottom: .5rem; }
.nv-breadcrumb a { color: #7fe3f7; text-decoration: none; }

/* Service detail rows */
.nv-service-detail {
    background: #fff; border: 1px solid #e3eefc; border-radius: var(--nv-radius);
    box-shadow: 0 6px 18px rgba(11,36,71,.05); padding: 1.6rem; height: 100%;
}
.nv-service-detail .icon {
    width: 56px; height: 56px; border-radius: 14px;
    background: linear-gradient(135deg, var(--nv-blue), var(--nv-cyan));
    color: #fff; display: flex; align-items: center; justify-content: center;
    font-size: 1.6rem; margin-bottom: 1rem;
}
.nv-service-detail h5 { font-weight: 800; color: var(--nv-blue-dark); }
.nv-service-detail p { color: var(--nv-muted); font-size: .9rem; }
.nv-service-detail ul { padding-left: 0; list-style: none; margin-bottom: 0; }
.nv-service-detail ul li { font-size: .87rem; color: var(--nv-ink); font-weight: 600; margin-bottom: .35rem; }
.nv-service-detail ul li i { color: var(--nv-cyan); margin-right: .4rem; }

/* Mission / Vision */
.nv-mv-card {
    border-radius: var(--nv-radius); padding: 1.8rem; height: 100%;
    background: var(--nv-navy); color: #eaf3ff; border: 1px solid rgba(6,182,212,.3);
}
.nv-mv-card.alt { background: linear-gradient(135deg, var(--nv-blue), var(--nv-cyan)); border: none; }
.nv-mv-card .icon { font-size: 2rem; color: #7fe3f7; }
.nv-mv-card.alt .icon { color: #fff; }
.nv-mv-card h4 { font-weight: 800; color: #fff; margin: .6rem 0; }
.nv-mv-card p { color: #d6ecff; font-size: .92rem; margin-bottom: 0; }

/* Values */
.nv-value {
    background: #fff; border: 1px solid #e3eefc; border-radius: var(--nv-radius);
    padding: 1.3rem; text-align: center; height: 100%;
    box-shadow: 0 6px 18px rgba(11,36,71,.05);
}
.nv-value i { font-size: 1.8rem; color: var(--nv-cyan); }
.nv-value h6 { font-weight: 800; color: var(--nv-blue-dark); margin-top: .6rem; }
.nv-value p { color: var(--nv-muted); font-size: .84rem; margin-bottom: 0; }

/* Team */
.nv-team {
    background: #fff; border: 1px solid #e3eefc; border-radius: var(--nv-radius);
    text-align: center; padding: 1.5rem 1rem; height: 100%;
    box-shadow: 0 6px 18px rgba(11,36,71,.05);
}
.nv-team .avatar {
    width: 84px; height: 84px; border-radius: 50%; margin: 0 auto 1rem;
    background: linear-gradient(135deg, var(--nv-blue), var(--nv-cyan));
    color: #fff; display: flex; align-items: center; justify-content: center; font-size: 2rem;
}
.nv-team h6 { font-weight: 800; color: var(--nv-blue-dark); margin-bottom: .15rem; }
.nv-team .role { color: var(--nv-cyan); font-weight: 700; font-size: .8rem; }
.nv-team p { color: var(--nv-muted); font-size: .82rem; margin-top: .5rem; margin-bottom: 0; }

/* FAQ accordion */
.nv-faq .accordion-item {
    border: 1px solid #e3eefc; border-radius: 12px !important; margin-bottom: .8rem;
    overflow: hidden; box-shadow: 0 4px 14px rgba(11,36,71,.04);
}
.nv-faq .accordion-button {
    font-weight: 700; color: var(--nv-blue-dark); background: #fff; font-size: .97rem;
}
.nv-faq .accordion-button:not(.collapsed) {
    background: var(--nv-cyan-soft); color: var(--nv-blue-dark); box-shadow: none;
}
.nv-faq .accordion-button:focus { box-shadow: none; border-color: #dcecfd; }
.nv-faq .accordion-body { color: var(--nv-muted); font-size: .92rem; }

/* Contact */
.nv-contact-card {
    background: #fff; border: 1px solid #e3eefc; border-radius: var(--nv-radius);
    padding: 1.6rem; text-align: center; height: 100%;
    box-shadow: 0 6px 18px rgba(11,36,71,.05);
}
.nv-contact-card .icon {
    width: 56px; height: 56px; border-radius: 50%; margin: 0 auto 1rem;
    background: linear-gradient(135deg, var(--nv-blue), var(--nv-cyan));
    color: #fff; display: flex; align-items: center; justify-content: center; font-size: 1.5rem;
}
.nv-contact-card h6 { font-weight: 800; color: var(--nv-blue-dark); }
.nv-contact-card p, .nv-contact-card a { color: var(--nv-muted); font-size: .92rem; text-decoration: none; margin-bottom: 0; }
.nv-contact-card a:hover { color: var(--nv-blue); }
.nv-contact-form {
    background: #fff; border: 1px solid #e3eefc; border-radius: var(--nv-radius);
    padding: 1.8rem; box-shadow: var(--nv-shadow);
}
.nv-contact-form .form-control, .nv-contact-form .form-select {
    border-radius: 10px; border-color: #dcecfd; padding: .6rem .9rem; font-size: .93rem;
}
.nv-contact-form .form-control:focus, .nv-contact-form .form-select:focus {
    border-color: var(--nv-cyan); box-shadow: 0 0 0 .2rem rgba(6,182,212,.15);
}
.nv-map {
    border-radius: var(--nv-radius); overflow: hidden; box-shadow: var(--nv-shadow);
    border: 1px solid #e3eefc; min-height: 320px;
}
.nv-map iframe { width: 100%; height: 100%; min-height: 320px; border: 0; display: block; }

/* Price badge on service detail cards */
.nv-price-badge {
    background: var(--nv-cyan-soft); color: var(--nv-blue-dark);
    border: 1px solid #bfeef9; border-radius: 50rem;
    font-weight: 800; font-size: .8rem; padding: .35rem .8rem; white-space: nowrap;
}
.nv-price-badge small { font-weight: 600; color: var(--nv-muted); }
