
/* NoorVista 2.1.131 UI/UX hardening: contact/footer/address/visitor analytics */
:root{--nv-card-border:#bae6fd;--nv-muted:#64748b;--nv-ink:#0f172a;--nv-blue:#0891b2}
/* Contact page quick cards: prevent address wrapping over icons */
.contact-quick-card{overflow:visible!important;align-self:start!important}
.quick-item{display:grid!important;grid-template-columns:56px minmax(0,1fr)!important;align-items:center!important;gap:14px!important;min-height:86px!important;padding:16px 18px!important;overflow:hidden!important}
.quick-item>span:first-child{grid-column:1!important;grid-row:1!important;width:48px!important;height:48px!important;min-width:48px!important;margin:0!important;align-self:center!important;justify-self:center!important;position:static!important;z-index:0!important;opacity:.95!important}
.quick-item>div{grid-column:2!important;min-width:0!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:5px!important;position:relative!important;z-index:1!important;text-align:right!important;line-height:1.85!important;overflow-wrap:anywhere!important}
.quick-item strong{font-size:15px!important;line-height:1.55!important;margin:0!important;color:#075985!important}
.quick-item small,.quick-item a{font-size:14px!important;line-height:1.75!important;white-space:normal!important;text-align:right!important;word-break:normal!important;overflow-wrap:anywhere!important;color:#334155!important}
.quick-item a[dir="ltr"]{direction:rtl!important;unicode-bidi:plaintext!important;text-align:right!important}
/* Address lines */
.nv-address-lines{display:grid!important;gap:8px!important;width:100%!important;max-width:100%!important;white-space:normal!important;line-height:1.8!important;direction:rtl!important;text-align:right!important}
.nv-address-line{display:grid!important;grid-template-columns:auto minmax(0,1fr)!important;gap:7px!important;align-items:start!important;width:100%!important;max-width:100%!important;min-width:0!important;white-space:normal!important;line-height:1.8!important;padding:0!important;margin:0!important;background:none!important;border:0!important;box-shadow:none!important}
.nv-address-label{display:inline-flex!important;align-items:center!important;width:max-content!important;max-width:100%!important;color:#0891b2!important;font-weight:950!important;line-height:1.8!important;white-space:nowrap!important}
.nv-address-text{display:block!important;min-width:0!important;color:inherit!important;font-weight:850!important;line-height:1.9!important;white-space:normal!important;word-break:normal!important;overflow-wrap:anywhere!important}
/* Footer: make multi-address list readable */
.footer .contact-list{display:grid!important;gap:12px!important;margin:14px 0 0!important;padding:0!important;list-style:none!important}
.footer .contact-list li{display:grid!important;grid-template-columns:28px minmax(0,1fr)!important;align-items:start!important;gap:10px!important;min-width:0!important;margin:0!important;color:#e5eef7!important;line-height:1.9!important;overflow:visible!important}
.footer .contact-list li>span:first-child{width:28px!important;min-width:28px!important;height:28px!important;display:grid!important;place-items:center!important;position:static!important;margin-top:2px!important;color:#bae6fd!important;background:transparent!important}
.footer .contact-list li>span:last-child,.footer .contact-list li>a{min-width:0!important;display:block!important;line-height:1.9!important;text-align:right!important;white-space:normal!important;overflow-wrap:anywhere!important;color:#e5eef7!important;direction:rtl!important;unicode-bidi:plaintext!important}
.footer .contact-list .nv-address-lines{gap:6px!important;color:#e5eef7!important}
.footer .contact-list .nv-address-line{grid-template-columns:1fr!important;gap:1px!important;padding:0 0 7px!important;border-bottom:1px dashed rgba(186,230,253,.18)!important}
.footer .contact-list .nv-address-line:last-child{border-bottom:0!important;padding-bottom:0!important}
.footer .contact-list .nv-address-label{font-size:13px!important;color:#22d3ee!important;font-weight:950!important}
.footer .contact-list .nv-address-text{font-size:14px!important;color:#f8fafc!important;font-weight:850!important;line-height:2!important}
.footer .contact-list a[href^="tel:"]{font-weight:950!important;letter-spacing:0!important;text-align:right!important}
.footer-bottom{display:flex!important;gap:16px!important;align-items:center!important;justify-content:space-between!important;flex-wrap:wrap!important;line-height:1.8!important}
@media(max-width:900px){.footer-grid{gap:28px!important}.footer .contact-list li{grid-template-columns:26px minmax(0,1fr)!important}.contact-hero-grid{align-items:start!important}}
@media(max-width:720px){.quick-item{grid-template-columns:48px minmax(0,1fr)!important;min-height:76px!important;padding:13px 14px!important}.quick-item>span:first-child{width:42px!important;height:42px!important;min-width:42px!important}.contact-hero h1{font-size:clamp(30px,9vw,42px)!important}.footer-bottom{justify-content:center!important;text-align:center!important}}
/* Doctor centers empty state */
.doctor-centers-empty,.empty-state,.nv-empty-state,[data-empty-state]{display:flex!important;align-items:center!important;justify-content:center!important;text-align:center!important;min-height:138px!important;padding:28px!important;white-space:normal!important;line-height:2!important;color:#64748b!important;font-weight:850!important}
.doctor-centers-empty p,.empty-state p,.nv-empty-state p,[data-empty-state] p{margin:0!important;max-width:100%!important;white-space:normal!important;line-height:2!important}
/* Visitor analytics page */
.nv-visitor-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:0 0 22px}.nv-visitor-card{background:linear-gradient(180deg,#fff,#f8fcff);border:1px solid #d7eefb;border-radius:24px;padding:18px;box-shadow:0 14px 36px rgba(15,23,42,.06)}.nv-visitor-card small{display:block;color:#64748b;font-weight:900;margin-bottom:8px}.nv-visitor-card strong{font-size:30px;color:#0f172a}.nv-visitor-sections{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.nv-mini-table{width:100%;border-collapse:separate;border-spacing:0 8px}.nv-mini-table th{font-size:12px;color:#64748b;text-align:right;padding:8px}.nv-mini-table td{background:#f8fbff;border-top:1px solid #e0f2fe;border-bottom:1px solid #e0f2fe;padding:12px 10px;font-weight:850}.nv-mini-table td:first-child{border-radius:0 14px 14px 0;border-right:1px solid #e0f2fe}.nv-mini-table td:last-child{border-radius:14px 0 0 14px;border-left:1px solid #e0f2fe}.nv-visitor-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px;flex-wrap:wrap}.nv-visitor-toolbar .btn{min-height:42px;border-radius:14px}@media(max-width:1050px){.nv-visitor-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.nv-visitor-sections{grid-template-columns:1fr}}@media(max-width:620px){.nv-visitor-grid{grid-template-columns:1fr}}



/* NoorVista 2.1.133 — footer/contact/social/visitor hard UI fix */

/* Keep social icons visible as actual icon tiles even if dynamic link is empty */
.social-link {
  position: relative !important;
  overflow: hidden !important;
}
.social-link img {
  display: none !important;
}
.social-link::before {
  content: "" !important;
  width: 23px !important;
  height: 23px !important;
  display: block !important;
  background-repeat: no-repeat !important;
  background-position: center !important;
  background-size: contain !important;
  opacity: 1 !important;
  visibility: visible !important;
  filter: drop-shadow(0 2px 4px rgba(15,23,42,.18));
}
.social-link.whatsapp::before { background-image: url("/assets/icons/social_media/whatsapp.webp") !important; }
.social-link.telegram::before { background-image: url("/assets/icons/social_media/telegram.webp") !important; }
.social-link.instagram::before { background-image: url("/assets/icons/social_media/instagram.webp") !important; }
.social-link.rubika::before { background-image: url("/assets/icons/social_media/rubika.webp") !important; }
.social-link.bale::before { background-image: url("/assets/icons/social_media/bale.webp") !important; }
.social-link.eitaa::before { background-image: url("/assets/icons/social_media/eitaa.webp") !important; }
.social-link.gap::before { background-image: url("/assets/icons/social_media/gap.webp") !important; }
.social-link.igap::before { background-image: url("/assets/icons/social_media/igap.webp") !important; }
.social-link.soroush::before { background-image: url("/assets/icons/social_media/soroush.webp") !important; }
.social-link.nava::before { background-image: url("/assets/icons/social_media/nava.webp") !important; }
.social-link.is-empty-social { opacity: .82 !important; cursor: default !important; }

/* Footer addresses: readable labels, no glued words, no old wording */
.footer .contact-list,
.footer .contact-list ul {
  display: grid !important;
  gap: 13px !important;
  margin: 14px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.footer .contact-list li {
  display: grid !important;
  grid-template-columns: 28px minmax(0,1fr) !important;
  align-items: start !important;
  gap: 10px !important;
  min-width: 0 !important;
  margin: 0 !important;
  line-height: 1.9 !important;
  color: #e5eef7 !important;
}
.footer .contact-list li > span:first-child {
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  display: grid !important;
  place-items: center !important;
  margin-top: 2px !important;
  color: #bae6fd !important;
  background: transparent !important;
}
.footer .nv-address-lines {
  display: grid !important;
  gap: 9px !important;
  width: 100% !important;
}
.footer .nv-address-line {
  display: block !important;
  padding: 0 0 9px !important;
  border-bottom: 1px dashed rgba(186,230,253,.18) !important;
  line-height: 1.9 !important;
}
.footer .nv-address-line:last-child {
  border-bottom: 0 !important;
  padding-bottom: 0 !important;
}
.footer .nv-address-label {
  display: block !important;
  width: auto !important;
  margin: 0 0 2px !important;
  color: #22d3ee !important;
  font-weight: 950 !important;
  font-size: 13px !important;
  line-height: 1.8 !important;
  white-space: nowrap !important;
}
.footer .nv-address-label::after {
  content: ":" !important;
  margin-inline-start: 3px !important;
}
.footer .nv-address-text {
  display: block !important;
  color: #f8fafc !important;
  font-weight: 850 !important;
  font-size: 14px !important;
  line-height: 2 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.footer .contact-list a[href^="tel:"] {
  color: #e0f2fe !important;
  text-align: right !important;
  direction: rtl !important;
  unicode-bidi: plaintext !important;
}

/* Contact page: quick clinic info must stay as a proper card, not a narrow vertical strip */
.contact-hero-grid {
  display: grid !important;
  grid-template-columns: minmax(0, 1.2fr) minmax(320px, 420px) !important;
  gap: 34px !important;
  align-items: center !important;
}
.contact-quick-card {
  width: 100% !important;
  max-width: 430px !important;
  min-width: 0 !important;
  align-self: center !important;
  justify-self: start !important;
  overflow: visible !important;
}
.contact-quick-card h2 {
  text-align: center !important;
  margin-bottom: 20px !important;
}
.quick-item {
  display: grid !important;
  grid-template-columns: 56px minmax(0,1fr) !important;
  align-items: center !important;
  gap: 14px !important;
  min-height: 82px !important;
  padding: 16px 18px !important;
  overflow: hidden !important;
}
.quick-item > span:first-child {
  grid-column: 1 !important;
  width: 48px !important;
  min-width: 48px !important;
  height: 48px !important;
  display: grid !important;
  place-items: center !important;
  border-radius: 16px !important;
  background: #e0f2fe !important;
  color: #075985 !important;
  font-size: 22px !important;
}
.quick-item > span:first-child .nv-inline-icon {
  width: 23px !important;
  height: 23px !important;
  display: block !important;
  background: currentColor !important;
}
.quick-item > div {
  grid-column: 2 !important;
  min-width: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
  text-align: right !important;
  line-height: 1.8 !important;
}
.quick-item strong {
  display: block !important;
  margin: 0 !important;
  color: #075985 !important;
  font-size: 15px !important;
  line-height: 1.6 !important;
}
.quick-item small,
.quick-item a {
  display: block !important;
  color: #334155 !important;
  font-size: 14px !important;
  line-height: 1.85 !important;
  font-weight: 850 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  text-align: right !important;
}
.quick-item a[dir="ltr"],
.quick-item small[dir="ltr"] {
  direction: rtl !important;
  unicode-bidi: plaintext !important;
}
@media (max-width: 980px) {
  .contact-hero-grid {
    grid-template-columns: 1fr !important;
  }
  .contact-quick-card {
    max-width: 560px !important;
    justify-self: center !important;
  }
}
@media (max-width: 640px) {
  .contact-quick-card {
    max-width: 100% !important;
    padding: 20px !important;
    border-radius: 28px !important;
  }
  .quick-item {
    grid-template-columns: 46px minmax(0,1fr) !important;
    min-height: 74px !important;
    padding: 13px 14px !important;
  }
  .quick-item > span:first-child {
    width: 42px !important;
    height: 42px !important;
    min-width: 42px !important;
  }
}

/* Visitor analytics: no cramped scroll-cards; show cards as clear dashboard blocks */
[data-nv-page="visitor-analytics"] .card-body {
  overflow: visible !important;
}
[data-nv-page="visitor-analytics"] .nv-visitor-grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(150px, 1fr)) !important;
  gap: 16px !important;
  margin: 0 0 24px !important;
}
[data-nv-page="visitor-analytics"] .nv-visitor-card {
  overflow: visible !important;
  min-width: 0 !important;
}
[data-nv-page="visitor-analytics"] .nv-visitor-sections {
  display: grid !important;
  grid-template-columns: repeat(2, minmax(320px, 1fr)) !important;
  gap: 18px !important;
  align-items: start !important;
}
[data-nv-page="visitor-analytics"] .nv-visitor-card:has(#pagesTable),
[data-nv-page="visitor-analytics"] .nv-visitor-card:has(#recentTable) {
  grid-column: 1 / -1 !important;
}
[data-nv-page="visitor-analytics"] .nv-mini-table {
  width: 100% !important;
  table-layout: fixed !important;
  border-collapse: separate !important;
  border-spacing: 0 8px !important;
}
[data-nv-page="visitor-analytics"] .nv-mini-table th,
[data-nv-page="visitor-analytics"] .nv-mini-table td {
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  line-height: 1.75 !important;
  vertical-align: middle !important;
}
[data-nv-page="visitor-analytics"] #recentTable th,
[data-nv-page="visitor-analytics"] #recentTable td,
[data-nv-page="visitor-analytics"] #pagesTable th,
[data-nv-page="visitor-analytics"] #pagesTable td {
  font-size: 12.5px !important;
  padding: 10px 8px !important;
}
@media (max-width: 1180px) {
  [data-nv-page="visitor-analytics"] .nv-visitor-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
  }
  [data-nv-page="visitor-analytics"] .nv-visitor-sections {
    grid-template-columns: 1fr !important;
  }
}
@media (max-width: 640px) {
  [data-nv-page="visitor-analytics"] .nv-visitor-grid {
    grid-template-columns: 1fr !important;
  }
}



/* NoorVista 2.1.135 — contact page layout recovery + strict social visibility */
.social-link {
  display: none !important;
}
.social-link.nv-social-visible {
  display: inline-grid !important;
}
.social-link[hidden],
.social-link.is-hidden,
.social-link.is-empty-social {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

body:has(.contact-hero) .contact-hero {
  min-height: auto !important;
  padding: 72px 0 66px !important;
}
body:has(.contact-hero) .contact-hero .container,
body:has(.contact-section) .contact-section .container {
  width: min(1180px, calc(100% - 48px)) !important;
  max-width: 1180px !important;
  margin-inline: auto !important;
}
body:has(.contact-hero) .contact-hero-grid {
  display: grid !important;
  grid-template-columns: minmax(380px, 460px) minmax(0, 1fr) !important;
  gap: 46px !important;
  align-items: center !important;
  direction: ltr !important;
}
body:has(.contact-hero) .contact-quick-card {
  direction: rtl !important;
  width: 100% !important;
  max-width: 460px !important;
  min-width: 380px !important;
  justify-self: stretch !important;
  align-self: start !important;
  padding: 28px !important;
  border-radius: 34px !important;
}
body:has(.contact-hero) .contact-hero-copy {
  direction: rtl !important;
  justify-self: end !important;
  width: 100% !important;
  max-width: 720px !important;
  text-align: right !important;
}
body:has(.contact-hero) .contact-hero-copy h1 {
  font-size: clamp(36px, 4.4vw, 58px) !important;
  line-height: 1.35 !important;
  margin-bottom: 18px !important;
}
body:has(.contact-hero) .contact-hero-copy p {
  font-size: 17px !important;
  line-height: 2.05 !important;
  max-width: 760px !important;
}
body:has(.contact-hero) .contact-quick-card h2 {
  font-size: 23px !important;
  text-align: center !important;
  margin: 0 0 20px !important;
}
body:has(.contact-hero) .contact-quick-card .quick-item {
  display: grid !important;
  grid-template-columns: 54px minmax(0, 1fr) !important;
  gap: 14px !important;
  align-items: center !important;
  width: 100% !important;
  min-height: 82px !important;
  padding: 16px 18px !important;
  margin-bottom: 12px !important;
  border-radius: 20px !important;
  background: #f8fbff !important;
  border: 1px solid #e0f2fe !important;
  overflow: visible !important;
}
body:has(.contact-hero) .contact-quick-card .quick-item > span:first-child {
  grid-column: 1 !important;
  width: 46px !important;
  min-width: 46px !important;
  height: 46px !important;
  border-radius: 16px !important;
  display: grid !important;
  place-items: center !important;
  background: #e0f2fe !important;
  color: #075985 !important;
  margin: 0 !important;
}
body:has(.contact-hero) .contact-quick-card .quick-item > span:first-child .nv-inline-icon {
  width: 22px !important;
  height: 22px !important;
}
body:has(.contact-hero) .contact-quick-card .quick-item > div {
  grid-column: 2 !important;
  min-width: 0 !important;
  width: 100% !important;
  display: block !important;
  text-align: right !important;
}
body:has(.contact-hero) .contact-quick-card .quick-item strong {
  display: block !important;
  margin: 0 0 4px !important;
  color: #075985 !important;
  font-size: 15px !important;
  line-height: 1.65 !important;
}
body:has(.contact-hero) .contact-quick-card .quick-item small,
body:has(.contact-hero) .contact-quick-card .quick-item a {
  display: block !important;
  color: #334155 !important;
  font-weight: 850 !important;
  font-size: 14px !important;
  line-height: 1.9 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  word-break: normal !important;
  text-align: right !important;
  max-width: 100% !important;
}
body:has(.contact-hero) .contact-quick-card .nv-address-lines,
body:has(.contact-hero) .contact-quick-card .nv-address-line,
body:has(.contact-hero) .contact-quick-card .nv-address-text {
  display: block !important;
  width: 100% !important;
  max-width: 100% !important;
  line-height: 1.9 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
body:has(.contact-hero) .contact-quick-card .nv-address-line {
  padding-bottom: 8px !important;
  margin-bottom: 8px !important;
  border-bottom: 1px dashed rgba(8,145,178,.12) !important;
}
body:has(.contact-hero) .contact-quick-card .nv-address-line:last-child {
  margin-bottom: 0 !important;
  padding-bottom: 0 !important;
  border-bottom: 0 !important;
}
body:has(.contact-hero) .contact-quick-card .nv-address-label {
  display: block !important;
  width: auto !important;
  color: #0891b2 !important;
  font-weight: 950 !important;
  margin-bottom: 2px !important;
}
@media (max-width: 980px) {
  body:has(.contact-hero) .contact-hero-grid {
    grid-template-columns: 1fr !important;
    direction: rtl !important;
    gap: 28px !important;
  }
  body:has(.contact-hero) .contact-quick-card {
    min-width: 0 !important;
    max-width: 620px !important;
    justify-self: center !important;
    order: 2 !important;
  }
  body:has(.contact-hero) .contact-hero-copy {
    order: 1 !important;
    justify-self: center !important;
    text-align: center !important;
  }
  body:has(.contact-hero) .contact-hero-copy p {
    text-align: center !important;
    text-align-last: center !important;
  }
}
@media (max-width: 640px) {
  body:has(.contact-hero) .contact-hero .container,
  body:has(.contact-section) .contact-section .container {
    width: min(100% - 24px, 100%) !important;
  }
  body:has(.contact-hero) .contact-hero {
    padding: 46px 0 42px !important;
  }
  body:has(.contact-hero) .contact-quick-card {
    width: 100% !important;
    max-width: none !important;
    padding: 18px !important;
    border-radius: 26px !important;
  }
  body:has(.contact-hero) .contact-quick-card .quick-item {
    grid-template-columns: 46px minmax(0, 1fr) !important;
    min-height: 74px !important;
    padding: 13px 14px !important;
  }
}



/* NoorVista 2.1.136 — generic Sadra brand mark */
.brand-logo.brand-logo-image,
.nv3-brand-logo-image,
.nv-brand-logo-image {
  display: inline-grid !important;
  place-items: center !important;
  overflow: hidden !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
  color: transparent !important;
}
.brand-logo.brand-logo-image img,
.nv3-brand-logo-image img,
.nv-brand-logo-image img {
  width: 100% !important;
  height: 100% !important;
  object-fit: contain !important;
  display: block !important;
}
.brand-logo.brand-logo-image {
  width: 56px !important;
  height: 56px !important;
}
.nv3-brand-logo-image {
  width: 44px !important;
  height: 44px !important;
  min-width: 44px !important;
}
.footer-bottom.nv-footer-centered {
  display: flex !important;
  justify-content: center !important;
  align-items: center !important;
  text-align: center !important;
  gap: 8px !important;
  flex-wrap: wrap !important;
}
.footer-bottom.nv-footer-centered a {
  color: #bae6fd !important;
  font-weight: 900 !important;
}
.nv-address-lines {
  display: grid !important;
  gap: 8px !important;
}
.nv-address-line {
  display: block !important;
  line-height: 2 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.nv-address-label {
  display: inline !important;
  font-weight: 950 !important;
  margin-inline-end: 4px !important;
}
.nv-address-text {
  display: inline !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.home-location-details > span,
.home-location-details > a {
  display: grid !important;
  grid-template-columns: auto 1fr !important;
  gap: 8px 10px !important;
  align-items: center !important;
  text-align: right !important;
}
.home-location-details .nv-info-label {
  color: #075985 !important;
  font-weight: 950 !important;
}



/* NoorVista 2.1.138 — remove duplicate money words + clean contact/footer info */

/* Only one amount-to-words helper should remain */
.nv-money-helper {
  display: none !important;
}

/* Universal clean address rows: no extra nested borders/pills */
.nv-address-lines {
  display: grid !important;
  gap: 7px !important;
  width: 100% !important;
  max-width: 100% !important;
}
.nv-address-line {
  display: block !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  line-height: 2 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}
.nv-address-label {
  display: inline !important;
  width: auto !important;
  padding: 0 !important;
  margin: 0 0 0 6px !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #0891b2 !important;
  font-weight: 950 !important;
  white-space: nowrap !important;
}
.nv-address-text {
  display: inline !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: inherit !important;
  font-weight: 850 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
}

/* Home/contact visit info: remove nested borders around address labels and address content */
.home-location-details .nv-address-lines,
.home-location-details .nv-address-line,
.home-location-details .nv-address-label,
.home-location-details .nv-address-text,
.contact-quick-card .nv-address-lines,
.contact-quick-card .nv-address-line,
.contact-quick-card .nv-address-label,
.contact-quick-card .nv-address-text,
.contact-map-panel .nv-address-lines,
.contact-map-panel .nv-address-line,
.contact-map-panel .nv-address-label,
.contact-map-panel .nv-address-text {
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}

.home-location-details .nv-visit-address,
.contact-quick-card .quick-item {
  overflow: visible !important;
}

.contact-quick-card .quick-item {
  border: 0 !important;
  background: #f8fbff !important;
  box-shadow: inset 0 0 0 1px rgba(224,242,254,.75) !important;
}

/* Footer clinic info rewrite */
.footer .contact-list {
  display: grid !important;
  gap: 12px !important;
  margin: 14px 0 0 !important;
  padding: 0 !important;
  list-style: none !important;
}
.footer .contact-list li,
.footer .contact-list .nv-footer-contact-row {
  display: grid !important;
  grid-template-columns: 28px minmax(0, 1fr) !important;
  gap: 10px !important;
  align-items: start !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
  color: #e5eef7 !important;
  line-height: 2 !important;
}
.footer .contact-list .nv-contact-icon,
.footer .contact-list li > span:first-child {
  width: 28px !important;
  min-width: 28px !important;
  height: 28px !important;
  margin-top: 2px !important;
  display: grid !important;
  place-items: center !important;
  color: #bae6fd !important;
  background: transparent !important;
  border: 0 !important;
  box-shadow: none !important;
}
.footer .contact-list .nv-contact-main {
  min-width: 0 !important;
  display: block !important;
  color: #e5eef7 !important;
  text-align: right !important;
  line-height: 2 !important;
  white-space: normal !important;
  overflow-wrap: anywhere !important;
  text-decoration: none !important;
}
.footer .contact-list .nv-contact-main strong {
  color: #22d3ee !important;
  font-weight: 950 !important;
  margin-inline-end: 4px !important;
}
.footer .contact-list .nv-address-lines {
  gap: 6px !important;
}
.footer .contact-list .nv-address-line {
  display: block !important;
  border: 0 !important;
  padding: 0 !important;
  margin: 0 !important;
  line-height: 2 !important;
}
.footer .contact-list .nv-address-label {
  color: #22d3ee !important;
  font-size: 14px !important;
}
.footer .contact-list .nv-address-text {
  color: #f8fafc !important;
  font-size: 14px !important;
}



/* NoorVista 2.1.139 — appointment slots filters + booking wizard flow */

/* Appointment slots filters: keep status aligned with date-from/date-to row */
body[data-appointment-page="slots"] .nv-appt-filter-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(220px, 1fr)) !important;
  gap: 18px 12px !important;
  align-items: end !important;
}
body[data-appointment-page="slots"] .nv-appt-filter-grid > :is(select,.slot-filter,.nv-appt-jalali-wrap) {
  min-height: 48px !important;
  align-self: end !important;
}
body[data-appointment-page="slots"] #filter_status {
  grid-column: 3 !important;
  grid-row: 2 !important;
}
body[data-appointment-page="slots"] .nv-appt-jalali-wrap:has(#date_from) {
  grid-column: 2 !important;
  grid-row: 2 !important;
}
body[data-appointment-page="slots"] .nv-appt-jalali-wrap:has(#date_to) {
  grid-column: 1 !important;
  grid-row: 2 !important;
}

/* Remove the extra/outside calendar icon; keep the proper input trigger only */
body[data-appointment-page="slots"] .nv-appt-jalali-wrap > i,
body[data-appointment-page="slots"] .nv-appt-jalali-wrap::before,
body[data-appointment-page="slots"] .nv-appt-jalali-wrap > .icon-calendar,
body[data-appointment-page="slots"] .nv-date-field > i,
body[data-appointment-page="slots"] .nv-date-field > .nv-date-icon,
body[data-appointment-page="slots"] .nv-date-field > .nv-date-trigger:not([data-nv-date-primary="1"]):not(:only-of-type) {
  display: none !important;
}
body[data-appointment-page="slots"] .nv-appt-jalali-wrap .nv-date-field > input,
body[data-appointment-page="slots"] .nv-appt-jalali-wrap > input {
  padding-inline-end: 24px !important;
  padding-inline-start: 54px !important;
}

/* Booking wizard selected summary */
.nv-booking-selection-summary {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  align-items: center !important;
  padding: 14px 22px !important;
  background: linear-gradient(135deg, rgba(6,182,212,.11), rgba(124,58,237,.10)) !important;
  border-top: 1px solid rgba(186,230,253,.85) !important;
  border-bottom: 1px solid rgba(186,230,253,.85) !important;
}
.nv-booking-selection-summary[hidden] { display: none !important; }
.nv-booking-summary-chip {
  display: inline-flex !important;
  align-items: center !important;
  gap: 7px !important;
  min-height: 36px !important;
  padding: 7px 12px !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.92) !important;
  border: 1px solid rgba(125,211,252,.85) !important;
  box-shadow: 0 10px 22px rgba(8,145,178,.10) !important;
}
.nv-booking-summary-chip em {
  font-style: normal !important;
  color: #0891b2 !important;
  font-weight: 950 !important;
  font-size: 12px !important;
}
.nv-booking-summary-chip strong {
  color: #0f172a !important;
  font-weight: 950 !important;
  font-size: 13px !important;
}

/* Highlight selected/completed steps more clearly */
.nv-public-booking__progress-item.is-active {
  background: linear-gradient(135deg, #e0f2fe, #ccfbf1) !important;
  border-color: #67e8f9 !important;
  box-shadow: 0 14px 30px rgba(8,145,178,.15) !important;
}
.nv-public-booking__progress-item.is-done {
  background: #f0fdfa !important;
  border-color: #99f6e4 !important;
}

/* Hide insurance block for services without configured insurance */
.nv-booking-insurance-box[hidden],
.nv-booking-insurance-details[hidden] {
  display: none !important;
}

@media (max-width: 900px) {
  body[data-appointment-page="slots"] .nv-appt-filter-grid {
    grid-template-columns: 1fr !important;
  }
  body[data-appointment-page="slots"] #filter_status,
  body[data-appointment-page="slots"] .nv-appt-jalali-wrap:has(#date_from),
  body[data-appointment-page="slots"] .nv-appt-jalali-wrap:has(#date_to) {
    grid-column: auto !important;
    grid-row: auto !important;
  }
}



/* NoorVista 2.1.140 — compact public/staff booking UX */

/* Public booking: less vertical space, progress in one line */
.nv-public-booking__panel {
  width: min(1000px, calc(100vw - 36px)) !important;
  max-height: min(92vh, 760px) !important;
  display: flex !important;
  flex-direction: column !important;
}
.nv-public-booking__header {
  padding: 18px 24px 14px !important;
  min-height: auto !important;
}
.nv-public-booking__header h2 {
  font-size: clamp(22px, 2.4vw, 32px) !important;
  line-height: 1.45 !important;
  margin: 0 !important;
}
.nv-public-booking__header p,
.nv-booking-header-note {
  display: none !important;
}
.nv-public-booking__progress {
  display: grid !important;
  grid-template-columns: repeat(6, minmax(0, 1fr)) !important;
  gap: 8px !important;
  padding: 10px 22px !important;
  align-items: stretch !important;
}
.nv-public-booking__progress-item {
  min-height: 42px !important;
  padding: 7px 8px !important;
  border-radius: 12px !important;
  gap: 6px !important;
  white-space: nowrap !important;
  overflow: hidden !important;
}
.nv-public-booking__progress-item > span:first-child {
  width: 28px !important;
  height: 28px !important;
  min-width: 28px !important;
  border-radius: 10px !important;
  font-size: 13px !important;
}
.nv-public-booking__progress-item > span:last-child {
  font-size: 12px !important;
  font-weight: 950 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
}
.nv-booking-selection-summary {
  padding: 9px 22px !important;
  gap: 8px !important;
}
.nv-booking-summary-chip {
  min-height: 30px !important;
  padding: 5px 10px !important;
}
.nv-booking-summary-chip em,
.nv-booking-summary-chip strong {
  font-size: 12px !important;
}
.nv-public-booking__body {
  padding: 18px 22px 22px !important;
  overflow: auto !important;
}
.nv-booking-step__head {
  margin-bottom: 14px !important;
}
.nv-booking-step__head h3 {
  font-size: 21px !important;
  margin-bottom: 5px !important;
}
.nv-booking-step__head p {
  font-size: 13px !important;
  margin: 0 !important;
}
.nv-booking-card-grid,
.nv-booking-days,
.nv-booking-times {
  gap: 12px !important;
}
.nv-booking-day,
.nv-booking-time,
.nv-booking-choice {
  min-height: 76px !important;
  padding: 14px 16px !important;
}
.nv-booking-months {
  margin-bottom: 12px !important;
}

/* Staff/admin/secretary appointment wizard: compact and easier */
#appointmentFormModal .modal-dialog,
#appointmentFormModal .modal-content {
  max-height: 92vh !important;
}
#appointmentFormModal .modal-body {
  max-height: calc(92vh - 120px) !important;
  overflow: auto !important;
}
#appointmentFormModal .nv-booking-progress,
#appointmentFormModal .nv-wizard-progress {
  gap: 8px !important;
}
#appointmentFormModal .nv-booking-step {
  padding-block: 12px !important;
}
#appointmentFormModal .nv-booking-step-header {
  margin-bottom: 12px !important;
}
#appointmentFormModal .nv-booking-step-title strong {
  font-size: 16px !important;
}
#appointmentFormModal .nv-booking-step-title span {
  font-size: 12px !important;
}
#appointmentFormModal .nv-staff-insurance-box[hidden],
#appointmentFormModal [data-appointment-insurance-details][hidden] {
  display: none !important;
}

@media (max-width: 720px) {
  .nv-public-booking__panel {
    width: 100vw !important;
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }
  .nv-public-booking__progress {
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  }
  .nv-public-booking__progress-item {
    min-height: 38px !important;
  }
}



/* NoorVista 2.1.143 — doctor modal single scroll + username visibility */
body[data-nv-page="doctors"] #doctorModal.modal-overlay,
body[data-nv-page="doctors"] #doctorModal.show,
body[data-nv-page="doctors"] #doctorModal {
  overflow: hidden !important;
  align-items: center !important;
}

body[data-nv-page="doctors"] #doctorModal .modal-container {
  max-height: min(88vh, 760px) !important;
  display: flex !important;
  flex-direction: column !important;
  overflow: hidden !important;
}

body[data-nv-page="doctors"] #doctorModal .modal-header,
body[data-nv-page="doctors"] #doctorModal .modal-footer {
  flex: 0 0 auto !important;
}

body[data-nv-page="doctors"] #doctorModal .modal-body {
  flex: 1 1 auto !important;
  min-height: 0 !important;
  overflow-y: auto !important;
  overflow-x: hidden !important;
  scrollbar-gutter: stable !important;
}

body[data-nv-page="doctors"] #doctorModal #username {
  direction: ltr !important;
  text-align: left !important;
  unicode-bidi: plaintext !important;
  background-color: #fff !important;
}

body[data-nv-page="doctors"] #doctorModal #username::placeholder {
  direction: rtl !important;
  text-align: right !important;
}
