/**
 * نور marketing widgets — layout & color only; typography inherits Elementor globals.
 *
 * @package NoorHospital
 */

/* -------------------------------------------------------------------------
   Shared
   ------------------------------------------------------------------------- */

.noor-marketing {
  direction: rtl;
  box-sizing: border-box;
}

.noor-marketing *,
.noor-marketing *::before,
.noor-marketing *::after {
  box-sizing: inherit;
}

.noor-marketing__container {
  width: 100%;
  max-width: var(--noor-content-max-width, 1140px);
  margin-inline: auto;
  padding-inline: clamp(1rem, 4vw, 2rem);
}

.noor-marketing__icon {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
}

.noor-marketing__icon svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

/* Font Awesome / Elementor icon packs */
.noor-marketing__icon i,
.noor-marketing__icon .e-font-icon-svg {
  width: 1em;
  height: 1em;
  font-size: 1em;
  line-height: 1;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

/* -------------------------------------------------------------------------
   Elementor canvas: width, overflow, typography
   ------------------------------------------------------------------------- */

.elementor-editor .elementor-widget[class*="elementor-widget-noor_"],
.elementor .elementor-widget[class*="elementor-widget-noor_"] {
  width: 100%;
  max-width: 100%;
}

.elementor-editor .elementor-widget[class*="elementor-widget-noor_"] > .elementor-widget-container,
.elementor .elementor-widget[class*="elementor-widget-noor_"] > .elementor-widget-container {
  max-width: none;
  width: 100%;
}

/* Full-width sections: block roots span the widget container */
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-home-hero,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-about-hero,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-home-stats,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-home-services,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-home-bento,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-home-doctors,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-home-posts,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-about-mv,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-about-ceo,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-about-team,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-about-gallery,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-marketing-footer,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-dept-equipment,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-dept-specialists,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-dept-prep,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-contact-gf,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-contact-info,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-contact-map,
.elementor .elementor-widget[class*="elementor-widget-noor_"] .noor-video-playlist {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

/* Inherit Site Settings typography (kit) inside marketing blocks */
.noor-marketing {
  font-family: var(--e-global-typography-text-font-family, inherit);
  font-size: var(--e-global-typography-text-font-size, inherit);
  font-weight: var(--e-global-typography-text-font-weight, inherit);
  line-height: var(--e-global-typography-text-line-height, 1.65);
}

.noor-marketing h1,
.noor-marketing h2,
.noor-marketing h3,
.noor-marketing h4,
.noor-marketing h5,
.noor-marketing h6 {
  font-family: var(--e-global-typography-primary-font-family, inherit);
  font-weight: var(--e-global-typography-primary-font-weight, 600);
  /* Sizes stay component-controlled via clamp/rem for hierarchy */
}

.noor-marketing :is(h1, h2, h3, h4, h5, h6):last-child {
  margin-bottom: 0;
}

/* Exclude playlist row thumbs: they must fill a fixed aspect box (object-fit: cover). */
.noor-marketing img:not(.noor-video-playlist__item-thumb) {
  max-width: 100%;
  height: auto;
  display: block;
}

/* Grids / flex: allow shrinking inside narrow columns (prevents horizontal scroll) */
.noor-marketing .noor-home-bento__grid,
.noor-marketing .noor-home-services__swiper,
.noor-marketing .noor-home-doctors__grid,
.noor-marketing .noor-home-doctors__swiper,
.noor-marketing .noor-dept-specialists__grid,
.noor-marketing .noor-home-posts__grid,
.noor-marketing .noor-home-stats__grid,
.noor-marketing .noor-about-mv__grid,
.noor-marketing .noor-about-team__grid,
.noor-marketing .noor-about-gallery__grid,
.noor-marketing .noor-marketing-footer__grid {
  min-width: 0;
}

.noor-marketing .noor-home-bento__grid > *,
.noor-marketing .noor-home-services__swiper .swiper-slide,
.noor-marketing .noor-home-doctors__grid > *,
.noor-marketing .noor-home-doctors__swiper .swiper-slide,
.noor-marketing .noor-dept-specialists__grid > *,
.noor-marketing .noor-about-team__grid > * {
  min-width: 0;
}

/* Rich text (CEO): spacing + lists RTL */
.noor-about-ceo__body {
  font-size: var(--e-global-typography-text-font-size, 1.125rem);
  line-height: var(--e-global-typography-text-line-height, 1.75);
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
}

.noor-about-ceo__body :where(ul, ol) {
  padding-inline: 1.25rem 0;
  margin: 0 0 1rem;
}

.noor-about-ceo__body :where(li + li) {
  margin-top: 0.5rem;
}

/* WYSIWYG links inside CEO block */
.noor-about-ceo__body a {
  color: var(--noor-color-secondary);
  text-decoration: none;
}

.noor-about-ceo__body a:hover {
  color: var(--noor-color-primary);
  text-decoration: none;
}

/* -------------------------------------------------------------------------
   Top nav (in-flow, RTL; WP menu; mobile drawer from left, 320px + dim overlay)
   ------------------------------------------------------------------------- */

.elementor-widget-noor_home_top_nav,
.elementor-widget-noor_home_top_nav .elementor-widget-container {
  direction: rtl;
}

/*
 * نوار چسبان: overflow:hidden روی سکشن/ستون/ظرف ویجت، position:sticky را غیرفعال می‌کند.
 * کلاس noor-home-top-nav-widget--sticky روی wrapper ویجت در PHP اضافه می‌شود.
 */
.elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--sticky,
.elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--sticky .elementor-widget-container {
  overflow: visible !important;
}

.elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--sticky {
  align-self: flex-start;
  width: 100%;
  max-width: 100%;
}

.elementor-section:has(.noor-home-top-nav-widget--sticky),
.elementor-section:has(.noor-home-top-nav--sticky),
.elementor-column:has(.noor-home-top-nav-widget--sticky),
.elementor-column:has(.noor-home-top-nav--sticky),
.elementor-inner-section:has(.noor-home-top-nav--sticky) {
  overflow: visible !important;
}

.elementor-section:has(.noor-home-top-nav--sticky) > .elementor-container {
  overflow: visible !important;
}

/* کانتینرهای فلکس (المنتور ۳.۱۶+) */
.e-con:has(.noor-home-top-nav-widget--sticky),
.e-con:has(.noor-home-top-nav--sticky) {
  overflow: visible !important;
}

/* هدر تم‌بیلدر: والدهای المنتور اغلب overflow:hidden دارند و sticky را خنثی می‌کنند */
.elementor-location-header:has(.noor-home-top-nav-widget--sticky),
.elementor-location-header:has(.noor-home-top-nav-widget--sticky) .e-con,
.elementor-location-header:has(.noor-home-top-nav-widget--sticky) .e-con-inner,
.elementor-location-header:has(.noor-home-top-nav-widget--sticky) .e-parent,
.elementor-location-header:has(.noor-home-top-nav-widget--sticky) .elementor-section,
.elementor-location-header:has(.noor-home-top-nav-widget--sticky) .elementor-container,
header[data-elementor-type="header"]:has(.noor-home-top-nav-widget--sticky),
header[data-elementor-type="header"]:has(.noor-home-top-nav-widget--sticky) .e-con,
header[data-elementor-type="header"]:has(.noor-home-top-nav-widget--sticky) .elementor-section {
  overflow: visible !important;
}

.noor-home-top-nav {
  --noor-top-nav-icon-btn: 2.5rem;
  --noor-top-nav-icon-inner: 1.375rem;
  /* × in drawer: slightly larger than hamburger SVG so it matches visual weight */
  --noor-top-nav-close-icon: calc(1.625rem + 3px);
  position: relative;
  z-index: 50;
  width: 100%;
  padding-block: 1rem;
  padding-inline: clamp(1rem, 3vw, 1.5rem);
  border-bottom: 1px solid transparent;
  transition: box-shadow 0.2s ease;
  direction: rtl;
  unicode-bidi: isolate;
}

/* Content → «نوار چسبان»: stays under viewport top while scrolling */
.noor-home-top-nav--sticky {
  position: sticky;
  top: 0;
  z-index: 100;
}

body.admin-bar .noor-home-top-nav--sticky {
  top: 32px;
}

@media (max-width: 782px) {
  body.admin-bar .noor-home-top-nav--sticky {
    top: 46px;
  }
}

.noor-home-top-nav--home {
  background-color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(20px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.noor-home-top-nav--about {
  background-color: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(12px);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
}

.noor-home-top-nav__inner {
  position: relative;
  z-index: 2;
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  max-width: min(100%, 96rem);
  margin-inline: auto;
}

.noor-home-top-nav__brand {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  min-width: 0;
}

.noor-home-top-nav__logo-link {
  display: inline-flex;
  flex-shrink: 0;
  line-height: 0;
  text-decoration: none;
}

.noor-home-top-nav__logo-img {
  display: block;
  width: auto;
  height: auto;
  max-height: 2.75rem;
  object-fit: contain;
}

.noor-home-top-nav__logo {
  margin: 0;
  font-size: clamp(1.125rem, 2vw, 1.25rem);
  font-weight: 900;
  letter-spacing: -0.02em;
  color: #1e3a8a;
  text-transform: uppercase;
}

.noor-home-top-nav__center {
  flex: 1 1 auto;
  display: flex;
  justify-content: center;
  min-width: 0;
}

.noor-home-top-nav__center--desktop .noor-home-top-nav__nav {
  display: flex;
  justify-content: center;
}

.noor-home-top-nav__editor-hint {
  margin: 0;
  font-size: 0.8125rem;
  color: var(--noor-color-on-surface-variant, #64748b);
}

.noor-home-top-nav__menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.noor-home-top-nav__menu a {
  display: inline-block;
  font-size: 0.875rem;
  font-weight: 700;
  letter-spacing: -0.01em;
  color: var(--noor-color-on-surface-variant);
  text-decoration: none;
  border-bottom: 2px solid transparent;
  padding-block: 0.25rem;
  transition: color 0.2s ease, border-color 0.2s ease;
}

.noor-home-top-nav__menu a:hover,
.noor-home-top-nav__menu a:focus-visible {
  color: var(--noor-color-primary);
}

.noor-home-top-nav__menu .current-menu-item > a,
.noor-home-top-nav__menu .current-menu-ancestor > a {
  color: var(--noor-color-primary);
  border-bottom-color: var(--noor-color-primary);
}

/* Desktop: horizontal + dropdowns (RTL: items flow right-to-left) */
.noor-home-top-nav__menu--desktop {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: clamp(1rem, 3vw, 2rem);
  direction: rtl;
}

.noor-home-top-nav__menu--desktop > li {
  position: relative;
}

/* Desktop dropdowns: centered under parent, slide/fade */
.noor-home-top-nav__menu--desktop .sub-menu {
  --noor-nav-dd-gap: 0.75rem;
  position: absolute;
  z-index: 30;
  display: block;
  min-width: 12rem;
  margin: 0;
  padding: 0.5rem 0;
  list-style: none;
  background: var(--noor-color-surface-container-lowest, #fff);
  border-radius: 0.375rem;
  box-shadow: 0 10px 30px rgba(0, 0, 0, 0.1);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.22s ease, transform 0.22s ease, visibility 0.22s ease;
}

/* Gap below parent: invisible ::before keeps hover path so the menu does not vanish mid-move */
.noor-home-top-nav__menu--desktop > li > .sub-menu {
  top: calc(100% + var(--noor-nav-dd-gap));
  left: 50%;
  right: auto;
  inset-inline-start: auto;
  transform: translate(-50%, -10px);
}

.noor-home-top-nav__menu--desktop > li > .sub-menu::before {
  content: "";
  position: absolute;
  inset-inline: 0;
  bottom: 100%;
  height: var(--noor-nav-dd-gap);
  pointer-events: auto;
}

.noor-home-top-nav__menu--desktop .sub-menu a {
  display: block;
  padding: 0.35rem 1rem;
  border-bottom: none;
  font-weight: 600;
  font-size: 0.8125rem;
}

.noor-home-top-nav__menu--desktop li:hover > .sub-menu,
.noor-home-top-nav__menu--desktop li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.noor-home-top-nav__menu--desktop > li:hover > .sub-menu,
.noor-home-top-nav__menu--desktop > li:focus-within > .sub-menu {
  transform: translate(-50%, 0);
}

.noor-home-top-nav__menu--desktop .sub-menu .sub-menu {
  top: 0;
  left: auto;
  right: auto;
  inset-inline-start: 100%;
  transform: translateY(-8px);
  padding: 0.5rem 0;
}

.noor-home-top-nav__menu--desktop .sub-menu li:hover > .sub-menu,
.noor-home-top-nav__menu--desktop .sub-menu li:focus-within > .sub-menu {
  transform: translateY(0);
}

.noor-home-top-nav__end {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.75rem;
  flex-shrink: 0;
}

.noor-home-top-nav__actions {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 1rem;
}

@media (max-width: 767px) {
  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav__actions--toolbar {
    display: none;
  }
}

@media (max-width: 1023px) {
  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav__actions--toolbar {
    display: none;
  }
}

.noor-home-top-nav__btn {
  display: inline-block;
  padding: 0.5rem 1.25rem;
  border-radius: 0.375rem;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  border: none;
  cursor: pointer;
  background: var(--noor-color-primary);
  color: var(--noor-color-on-primary);
  transition: opacity 0.15s ease;
}

.noor-home-top-nav__btn:hover {
  opacity: 0.92;
}

.noor-home-top-nav__lang {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--noor-color-on-surface-variant);
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 0.5rem;
  border-radius: 0.25rem;
  text-decoration: none;
  display: inline-block;
  line-height: inherit;
  font-family: inherit;
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
}

.noor-home-top-nav__lang:hover {
  background: rgba(0, 27, 68, 0.06);
}

.noor-home-top-nav__lang:focus {
  outline: none;
}

.noor-home-top-nav__lang:focus-visible {
  outline: 2px solid var(--noor-color-primary, #1e3a8a);
  outline-offset: 2px;
}

.noor-home-top-nav__sep {
  color: #94a3b8;
  display: none;
}

@media (min-width: 640px) {
  .noor-home-top-nav__sep {
    display: inline;
  }
}

/* Hamburger (mobile) — SVG icon; paired with .noor-home-top-nav__drawer-close */
.noor-home-top-nav__toggle {
  display: none;
  align-items: center;
  justify-content: center;
  box-sizing: border-box;
  width: var(--noor-top-nav-icon-btn);
  height: var(--noor-top-nav-icon-btn);
  min-width: var(--noor-top-nav-icon-btn);
  min-height: var(--noor-top-nav-icon-btn);
  padding: 0;
  border: 1px solid rgba(0, 27, 68, 0.14);
  border-radius: 0.5rem;
  background: transparent;
  cursor: pointer;
  flex-shrink: 0;
  color: var(--noor-color-primary);
  line-height: 0;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
}

.noor-home-top-nav__toggle:hover {
  background: rgba(0, 27, 68, 0.05);
  border-color: rgba(0, 27, 68, 0.22);
}

.noor-home-top-nav__toggle-icon {
  display: block;
  width: var(--noor-top-nav-icon-inner);
  height: var(--noor-top-nav-icon-inner);
  flex-shrink: 0;
  pointer-events: none;
}

.noor-home-top-nav__toggle .noor-home-top-nav__toggle-bar {
  transform-box: fill-box;
  transform-origin: center;
  transition: transform 0.22s ease, opacity 0.2s ease;
}

.noor-home-top-nav__toggle:focus {
  outline: none;
}

.noor-home-top-nav__toggle:focus-visible {
  outline: 2px solid var(--noor-color-primary, #1e3a8a);
  outline-offset: 2px;
}

.noor-home-top-nav--drawer-open .noor-home-top-nav__toggle-bar--1 {
  transform: translate(0, 5.75px) rotate(45deg);
}

.noor-home-top-nav--drawer-open .noor-home-top-nav__toggle-bar--2 {
  opacity: 0;
}

.noor-home-top-nav--drawer-open .noor-home-top-nav__toggle-bar--3 {
  transform: translate(0, -5.75px) rotate(-45deg);
}

/*
 * Backdrop: full viewport. Drawer: full height, min width 50vw (و حداقل ۳۲۰px تا موبایل‌های باریک).
 * z-index بالا + انتقال به body در JS تا روی اسلایدر/المنتور و کل صفحه باشد.
 */
.noor-home-top-nav__backdrop {
  position: fixed;
  inset: 0;
  /* فقط inset — 100vw اغلب باعث اسکرول افقی به‌خاطر عرض scrollbar می‌شود */
  z-index: 500100;
  background: rgba(0, 0, 0, 0.4);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity 0.28s ease, visibility 0.28s ease;
}

.noor-home-top-nav--drawer-open .noor-home-top-nav__backdrop,
body.noor-home-top-nav-drawer-open .noor-home-top-nav__backdrop {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.noor-home-top-nav--drawer-open {
  z-index: 500000;
  position: relative;
}

.noor-home-top-nav__drawer {
  position: fixed;
  top: 0;
  bottom: 0;
  left: 0;
  right: auto;
  z-index: 500200;
  /* 100% = عرض viewport برای fixed؛ از 100vw پرهیز می‌شود. حداقل نیم عرض، حداقل ۳۲۰px تا جا بشود */
  box-sizing: border-box;
  width: min(100%, max(50vw, 320px));
  max-width: 100%;
  height: 100vh;
  height: 100dvh;
  min-height: 100vh;
  min-height: -webkit-fill-available;
  max-height: none;
  margin: 0;
  padding: 0;
  background: var(--noor-color-surface-container-lowest, #fff);
  overflow: hidden;
  overflow-y: hidden;
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.12);
  transform: translate3d(-100%, 0, 0);
  visibility: hidden;
  transition: transform 0.32s ease, visibility 0.32s ease;
  direction: rtl;
  contain: layout paint;
}

.noor-home-top-nav--drawer-open .noor-home-top-nav__drawer,
body.noor-home-top-nav-drawer-open .noor-home-top-nav__drawer {
  transform: translate3d(0, 0, 0);
  visibility: visible;
}

.noor-home-top-nav__drawer-inner {
  position: relative;
  display: flex;
  flex-direction: column;
  min-height: 100%;
  height: 100%;
  padding: 1rem 1.25rem 1.5rem;
  padding-top: max(1rem, env(safe-area-inset-top, 0px));
  box-sizing: border-box;
}

.noor-home-top-nav__drawer-close {
  position: absolute;
  top: max(0.75rem, env(safe-area-inset-top, 0px));
  inset-inline-start: max(0.75rem, env(safe-area-inset-left, 0px));
  z-index: 5;
  box-sizing: border-box;
  width: var(--noor-top-nav-icon-btn);
  height: var(--noor-top-nav-icon-btn);
  min-width: var(--noor-top-nav-icon-btn);
  min-height: var(--noor-top-nav-icon-btn);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  border: 1px solid rgba(0, 27, 68, 0.14);
  border-radius: 0.5rem;
  background: rgba(255, 255, 255, 0.95);
  color: var(--noor-color-primary);
  cursor: pointer;
  line-height: 1;
  transition: background-color 0.15s ease, border-color 0.15s ease;
}

.noor-home-top-nav__drawer-close:hover {
  background: rgba(0, 27, 68, 0.04);
  border-color: rgba(0, 27, 68, 0.22);
}

.noor-home-top-nav__drawer-close-icon {
  font-size: var(--noor-top-nav-close-icon);
  font-weight: 500;
  line-height: 1;
}

.noor-home-top-nav__brand--drawer {
  flex-shrink: 0;
  justify-content: center;
  text-align: center;
  margin-block-end: 2rem;
  margin-block-start: 2.5rem;
  gap: 1rem;
}

.noor-home-top-nav__brand--drawer .noor-home-top-nav__logo-img {
  max-height: 3.25rem;
}

.noor-home-top-nav__nav--drawer {
  flex: 1 1 auto;
  min-height: 0;
  overflow-y: auto;
  margin-inline: -0.25rem;
  padding-inline: 0.25rem;
}

.noor-home-top-nav__nav--drawer .noor-home-top-nav__menu--drawer {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
}

.noor-home-top-nav__menu--drawer > li > a {
  display: block;
  padding: 0.85rem 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.35);
  font-size: 1rem;
}

/* Drawer: parent row + chevron; submenus collapsed until opened (JS adds toggle) */
.noor-home-top-nav__menu--drawer li.menu-item-has-children {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}

.noor-home-top-nav__menu--drawer li.menu-item-has-children > a {
  flex: 1 1 auto;
  min-width: 0;
  border-bottom: 1px solid rgba(148, 163, 184, 0.35);
}

.noor-home-top-nav__drawer-submenu-toggle {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  margin: 0;
  padding: 0;
  border: none;
  border-radius: 0.375rem;
  background: transparent;
  color: var(--noor-color-primary, #001b44);
  cursor: pointer;
  -webkit-tap-highlight-color: transparent;
  transition: background-color 0.15s ease, transform 0.2s ease;
}

.noor-home-top-nav__drawer-submenu-toggle:hover {
  background: rgba(0, 27, 68, 0.06);
}

.noor-home-top-nav__drawer-submenu-toggle:focus {
  outline: none;
}

.noor-home-top-nav__drawer-submenu-toggle:focus-visible {
  outline: 2px solid var(--noor-color-primary, #1e3a8a);
  outline-offset: 2px;
}

/* SVG: ∨ = open (down); −90° = closed (side), reads as › in RTL rows next to label */
.noor-home-top-nav__drawer-submenu-chevron {
  display: block;
  width: 17px;
  height: 17px;
  flex-shrink: 0;
  transform: rotate(-90deg);
  transform-origin: center;
  transition: transform 0.22s ease;
}

.noor-home-top-nav__menu--drawer li.menu-item-has-children.is-submenu-open > .noor-home-top-nav__drawer-submenu-toggle .noor-home-top-nav__drawer-submenu-chevron {
  transform: rotate(0deg);
}

.noor-home-top-nav__menu--drawer .sub-menu {
  position: static;
  flex: 1 1 100%;
  width: 100%;
  display: none;
  padding-inline-start: 1rem;
  margin: 0;
  margin-block: 0.15rem 0.35rem;
  box-shadow: none;
  background: transparent;
  list-style: none;
  overflow: hidden;
  animation: noor-nav-drawer-submenu-open 0.22s ease;
}

.noor-home-top-nav__menu--drawer li.menu-item-has-children.is-submenu-open > .sub-menu {
  display: block;
}

@keyframes noor-nav-drawer-submenu-open {
  from {
    opacity: 0;
    transform: translateY(-6px);
  }

  to {
    opacity: 1;
    transform: translateY(0);
  }
}

.noor-home-top-nav__menu--drawer .sub-menu a {
  padding: 0.45rem 0;
  border-bottom: none;
  font-weight: 600;
  font-size: 0.9375rem;
}

.noor-home-top-nav__menu--drawer .sub-menu a::before {
  content: "-";
  margin-inline-end: 0.35em;
  opacity: 0.75;
}

.noor-home-top-nav__drawer-actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0.75rem;
  margin-top: 0.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}

.noor-home-top-nav__drawer-actions .noor-home-top-nav__sep {
  display: none;
}

.noor-home-top-nav__drawer-actions .noor-home-top-nav__btn {
  display: block;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

.noor-home-top-nav__drawer-actions .noor-home-top-nav__lang {
  display: block;
  width: 100%;
  text-align: center;
  box-sizing: border-box;
}

.noor-home-top-nav__drawer-social {
  flex-shrink: 0;
  margin-top: auto;
  padding-top: 1.5rem;
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 1rem 1.5rem;
}

.noor-home-top-nav__drawer-social-link {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--noor-color-primary);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease, opacity 0.2s ease;
}

.noor-home-top-nav__drawer-social-link:hover,
.noor-home-top-nav__drawer-social-link:focus-visible {
  border-bottom-color: currentColor;
  opacity: 0.9;
}

/* نقطهٔ قطع ۷۶۸px (پیش‌فرض) — کلاس روی wrapper ویجت از PHP */
@media (max-width: 767px) {
  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav__center--desktop {
    display: none;
  }

  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav__toggle {
    display: inline-flex;
  }

  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav--drawer-open .noor-home-top-nav__toggle {
    position: fixed;
    top: max(0.5rem, env(safe-area-inset-top, 0px));
    inset-inline-end: max(0.75rem, env(safe-area-inset-right, 0px));
    z-index: 500300;
    width: var(--noor-top-nav-icon-btn);
    height: var(--noor-top-nav-icon-btn);
    min-width: var(--noor-top-nav-icon-btn);
    min-height: var(--noor-top-nav-icon-btn);
    background: #fff !important;
    border: 1px solid rgba(0, 27, 68, 0.12) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08) !important;
  }

  body.admin-bar .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav--drawer-open .noor-home-top-nav__toggle {
    top: calc(32px + max(0.5rem, env(safe-area-inset-top, 0px)));
  }

  @media (max-width: 782px) {
    body.admin-bar .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav--drawer-open .noor-home-top-nav__toggle {
      top: calc(46px + max(0.5rem, env(safe-area-inset-top, 0px)));
    }
  }
}

@media (max-width: 1023px) {
  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav__center--desktop {
    display: none;
  }

  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav__toggle {
    display: inline-flex;
  }

  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav--drawer-open .noor-home-top-nav__toggle {
    position: fixed;
    top: max(0.5rem, env(safe-area-inset-top, 0px));
    inset-inline-end: max(0.75rem, env(safe-area-inset-right, 0px));
    z-index: 500300;
    width: var(--noor-top-nav-icon-btn);
    height: var(--noor-top-nav-icon-btn);
    min-width: var(--noor-top-nav-icon-btn);
    min-height: var(--noor-top-nav-icon-btn);
    background: #fff !important;
    border: 1px solid rgba(0, 27, 68, 0.12) !important;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.08) !important;
  }

  body.admin-bar .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav--drawer-open .noor-home-top-nav__toggle {
    top: calc(32px + max(0.5rem, env(safe-area-inset-top, 0px)));
  }

  @media (max-width: 782px) {
    body.admin-bar .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav--drawer-open .noor-home-top-nav__toggle {
      top: calc(46px + max(0.5rem, env(safe-area-inset-top, 0px)));
    }
  }
}

@media (min-width: 768px) {
  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav__backdrop,
  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav__drawer {
    display: none !important;
  }

  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-768 .noor-home-top-nav__toggle {
    display: none !important;
  }
}

@media (min-width: 1024px) {
  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav__backdrop,
  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav__drawer {
    display: none !important;
  }

  .elementor-widget-noor_home_top_nav.noor-home-top-nav-widget--bp-1024 .noor-home-top-nav__toggle {
    display: none !important;
  }
}

/* -------------------------------------------------------------------------
   Home hero (Style tab vars — class-widget-home-hero.php)
   ------------------------------------------------------------------------- */

.noor-home-hero {
  --noor-hero-section-bg: var(--noor-color-surface-container);
  --noor-hero-overlay-start: var(--noor-color-surface);
  --noor-hero-overlay-mid: rgba(246, 250, 255, 0.65);
  --noor-hero-badge-bg: var(--noor-color-secondary-container);
  --noor-hero-badge-text: var(--noor-color-on-secondary-container, #004f6d);
  --noor-hero-title: var(--noor-color-primary);
  --noor-hero-title-accent: var(--noor-color-secondary);
  --noor-hero-desc: var(--noor-color-on-surface-variant);
  --noor-hero-btn-primary-bg: var(--noor-color-primary);
  --noor-hero-btn-primary-text: var(--noor-color-on-primary);
  --noor-hero-btn-secondary-bg: var(--noor-color-surface-container-lowest);
  --noor-hero-btn-secondary-text: var(--noor-color-primary);
  --noor-hero-btn-secondary-border: rgba(196, 198, 210, 0.35);
  --noor-hero-slider-arrow: var(--noor-color-primary);
  --noor-hero-bullet-inactive: rgba(0, 27, 68, 0.25);
  --noor-hero-bullet-active: var(--noor-color-primary);
  --noor-hero-content-align: right;
  --noor-hero-content-vertical: center;
  --noor-hero-actions-justify: flex-end;

  position: relative;
  /* Fallback until Elementor «پوسته» → حداقل ارتفاع (same idea as about hero). */
  min-height: min(870px, 100vh);
  display: flex;
  /* Stretch slide to full section height so background + image layer fill min-height */
  align-items: stretch;
  overflow: hidden;
  background-color: var(--noor-hero-section-bg);
}

.noor-home-hero > .noor-home-hero__slide {
  flex: 1 0 auto;
  width: 100%;
}

.noor-home-hero__slide {
  position: relative;
  width: 100%;
  display: flex;
  align-items: var(--noor-hero-content-vertical);
  /* Match section min-height from Elementor (like single-root about hero). */
  min-height: inherit;
  box-sizing: border-box;
}

.noor-home-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  min-height: 100%;
  height: 100%;
}

.noor-home-hero__bg img {
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.noor-home-hero__bg-fallback {
  width: 100%;
  height: 100%;
  min-height: 100%;
  object-fit: cover;
  object-position: center;
  display: block;
}

.noor-home-hero__bg-video-wrap,
.noor-home-hero__bg-video {
  width: 100%;
  height: 100%;
  min-height: 100%;
}

.noor-home-hero__bg-video-wrap {
  position: absolute;
  inset: 0;
  overflow: hidden;
}

.noor-home-hero__bg-video {
  position: absolute;
  inset: 0;
  display: block;
  border: 0;
  object-fit: cover;
  object-position: center;
}

.noor-home-hero__bg-video--aparat {
  pointer-events: none;
}

.noor-home-hero__overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(
    to left,
    var(--noor-hero-overlay-start) 0%,
    var(--noor-hero-overlay-mid) 45%,
    transparent 100%
  );
}

.noor-home-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  text-align: right;
  padding-block: clamp(4rem, 12vw, 8rem);
}

.noor-home-hero .noor-marketing__container {
  max-width: 100%;
}

.noor-home-hero__content {
  max-width: 100%;
  margin-inline-start: auto;
  margin-inline-end: 0;
  text-align: var(--noor-hero-content-align);
}

.noor-home-hero[style*="--noor-hero-content-align: center"] .noor-home-hero__content {
  margin-inline-start: auto;
  margin-inline-end: auto;
}

.noor-home-hero[style*="--noor-hero-content-align: left"] .noor-home-hero__content {
  margin-inline-start: 0;
  margin-inline-end: auto;
}

.noor-home-hero__badge {
  display: inline-block;
  padding: 0.25rem 1rem;
  border-radius: 999px;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  background: var(--noor-hero-badge-bg);
  color: var(--noor-hero-badge-text);
  margin-bottom: 1.5rem;
}

.noor-home-hero__title {
  margin: 0 0 1.5rem;
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 1.1;
  font-weight: 900;
  color: var(--noor-hero-title);
}

.noor-home-hero__accent {
  color: var(--noor-hero-title-accent);
}

.noor-home-hero__text {
  margin: 0 0 2.5rem;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.65;
  color: var(--noor-hero-desc);
  max-width: 100%;
  margin-inline-start: 0;
}

.noor-home-hero__actions {
  display: flex;
  flex-direction: row;
  direction: ltr;
  flex-wrap: wrap;
  gap: 1rem;
  justify-content: var(--noor-hero-actions-justify);
}

.noor-home-hero__btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  border-radius: 0.5rem;
  font-size: 1.125rem;
  font-weight: 700;
  text-decoration: none;
  border: 2px solid transparent;
  cursor: pointer;
  transition: transform 0.2s ease, background 0.2s ease, color 0.2s ease;
}

.noor-home-hero__btn--primary {
  background: var(--noor-hero-btn-primary-bg);
  color: var(--noor-hero-btn-primary-text);
  box-shadow: 0 12px 40px rgba(0, 27, 68, 0.2);
}

.noor-home-hero__btn--primary:hover {
  transform: scale(1.02);
}

.noor-home-hero__btn--ghost {
  background: var(--noor-hero-btn-secondary-bg);
  color: var(--noor-hero-btn-secondary-text);
  border-color: var(--noor-hero-btn-secondary-border);
}

.noor-home-hero__btn--ghost:hover {
  background: var(--noor-color-surface-container-low);
}

/* Slider: same markup as Image Carousel; e-swiper styles .elementor-swiper-button */
/* Absolute swiper fills the hero min-height box so wrapper/slides get a real height (image + cover fill). */
.noor-home-hero--slider {
  padding: 0;
}

.noor-home-hero--slider .noor-home-hero__swiper {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  z-index: 0;
}

.noor-home-hero--slider .noor-home-hero__swiper .swiper-wrapper {
  height: 100%;
  align-items: stretch;
}

.noor-home-hero--slider .swiper-slide.noor-home-hero__slide {
  height: 100%;
  min-height: 100%;
  box-sizing: border-box;
}

/* Above slide content; core e-swiper uses z-index:1 */
.noor-home-hero--slider .noor-home-hero__swiper .elementor-swiper-button {
  z-index: 5;
  color: var(--noor-hero-slider-arrow, rgba(0, 27, 68, 0.85));
}

.noor-home-hero--slider .noor-home-hero__swiper .elementor-swiper-button svg {
  fill: currentColor;
}

.noor-home-hero--slider .noor-home-hero__swiper .swiper-pagination {
  z-index: 5;
  bottom: clamp(1rem, 3vw, 2rem) !important;
}

.noor-home-hero--slider .noor-home-hero__swiper .swiper-pagination .swiper-pagination-bullet {
  background: var(--noor-hero-bullet-inactive);
  opacity: 1;
}

.noor-home-hero--slider .noor-home-hero__swiper .swiper-pagination .swiper-pagination-bullet-active {
  background: var(--noor-hero-bullet-active);
}

/* -------------------------------------------------------------------------
   Accordion / FAQ (class-widget-accordion-faq.php)
   ------------------------------------------------------------------------- */

.elementor-widget-noor_accordion_faq .elementor-widget-container {
  background: transparent;
}

.noor-accordion-faq {
  --noor-acc-hover-ms: 200ms;
  display: flex;
  flex-direction: column;
  gap: var(--noor-acc-gap, 12px);
  width: 100%;
  background: transparent;
  /* Elementor columns often use text-align: center; do not inherit into titles/body copy. */
  text-align: start;
  unicode-bidi: isolate;
}

.noor-accordion-faq__card {
  background: #fff;
  border: none;
  border-radius: 8px;
  box-shadow: 0 4px 20px rgba(0, 27, 68, 0.08);
  outline: none;
  overflow: hidden;
  transition:
    background-color var(--noor-acc-hover-ms, 200ms) ease,
    box-shadow var(--noor-acc-hover-ms, 200ms) ease,
    border-color var(--noor-acc-hover-ms, 200ms) ease;
}

.noor-accordion-faq__item.is-open .noor-accordion-faq__card {
  border: none;
  outline: none;
}

/* Row chrome (colors from Elementor) lives here — not on <button>, so kit `button:focus` cannot paint the bar pink. */
.noor-accordion-faq__header-shell {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  cursor: pointer;
  transition:
    background-color var(--noor-acc-hover-ms, 200ms) ease,
    background-image var(--noor-acc-hover-ms, 200ms) ease,
    border-color var(--noor-acc-hover-ms, 200ms) ease;
}

.noor-accordion-faq__header {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  gap: 1rem;
  width: 100%;
  max-width: 100%;
  margin: 0;
  padding: 0;
  border: none;
  /* Block theme / Elementor global <button> skins (pink/purple blocks in editor). */
  appearance: none;
  -webkit-appearance: none;
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none;
  cursor: pointer;
  text-align: start;
  font: inherit;
  color: inherit;
  -webkit-tap-highlight-color: transparent;
  outline: none;
  transition: color var(--noor-acc-hover-ms, 200ms) ease;
}

.noor-accordion-faq__header:focus,
.noor-accordion-faq__header:focus-visible,
.noor-accordion-faq__header:active {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none;
}

.noor-accordion-faq__header:focus-visible {
  outline: 2px solid var(--noor-color-primary, #001b44);
  outline-offset: 2px;
}

.noor-accordion-faq__title-wrap {
  flex: 1 1 0%;
  min-width: 0;
  max-width: 100%;
  margin: 0;
  padding: 0;
  display: block;
  overflow: hidden;
  text-align: start;
}

.noor-accordion-faq__title {
  margin: 0;
  padding: 0;
  font-weight: 700;
  font-size: 1.05rem;
  line-height: 1.3;
  color: #001b44;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  max-width: 100%;
  text-align: start;
}

.noor-accordion-faq__toggle {
  flex: 0 0 auto;
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  border: none;
  border-radius: 50%;
  box-shadow: none;
  outline: none;
  width: 40px;
  height: 40px;
  min-width: 40px;
  min-height: 40px;
  padding: 0;
  background: #e8f0ff;
  --noor-acc-toggle-icon: #001b44;
  --noor-acc-toggle-bar: 2px;
  transition:
    background-color var(--noor-acc-hover-ms, 200ms) ease,
    transform 0.3s ease;
}

.noor-accordion-faq__icon {
  display: block;
  flex: 0 0 auto;
  width: 14px;
  height: 14px;
  min-width: 12px;
  min-height: 12px;
  position: relative;
  transition: transform 0.3s ease;
}

.noor-accordion-faq__icon::before,
.noor-accordion-faq__icon::after {
  content: "";
  position: absolute;
  background: var(--noor-acc-toggle-icon, currentColor);
  border-radius: 1px;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

.noor-accordion-faq__icon::before {
  width: 100%;
  height: var(--noor-acc-toggle-bar, 2px);
}

.noor-accordion-faq__icon::after {
  width: var(--noor-acc-toggle-bar, 2px);
  height: 100%;
}

.noor-accordion-faq__item.is-open .noor-accordion-faq__icon {
  transform: rotate(45deg);
}

.noor-accordion-faq__panel {
  display: grid;
  grid-template-rows: 0fr;
  transition: grid-template-rows 0.35s ease;
}

.noor-accordion-faq__item.is-open .noor-accordion-faq__panel {
  grid-template-rows: 1fr;
}

.noor-accordion-faq__panel-inner {
  min-height: 0;
  overflow: hidden;
}

.noor-accordion-faq__content {
  padding: 0 20px 20px;
  font-size: 0.95rem;
  line-height: 1.7;
  color: #334155;
  background-color: transparent;
  text-align: start;
}

/* TinyMCE / theme sometimes paints <p> blocks; keep answer area clean by default. */
.noor-accordion-faq__content p,
.noor-accordion-faq__content div {
  background-color: transparent;
}

.noor-accordion-faq__content p:last-child {
  margin-bottom: 0;
}

.noor-accordion-faq__content a {
  color: var(--noor-color-primary, #001b44);
  text-decoration: underline;
  text-underline-offset: 2px;
}

@media (max-width: 767px) {
  .noor-accordion-faq__header {
    gap: 0.75rem;
  }

  .noor-accordion-faq__title {
    font-size: 1rem;
  }
}

/* -------------------------------------------------------------------------
   Bento
   ------------------------------------------------------------------------- */

.elementor-widget-noor_home_bento,
.elementor-widget-noor_home_bento .elementor-widget-container {
  margin-block: 0;
}

.noor-home-bento {
  margin: 0;
  padding: 0;
  /* Style tab overrides (see class-widget-home-bento.php) */
  --noor-bento-feature-bg: var(--noor-color-surface-container-low);
  --noor-bento-feature-title: var(--noor-color-primary);
  --noor-bento-feature-text: var(--noor-color-on-surface-variant);
  --noor-bento-feature-link: var(--noor-color-primary);
  --noor-bento-feature-deco: var(--noor-color-primary);
  --noor-bento-card-bg: var(--noor-color-surface-container-lowest);
  --noor-bento-card-border: rgba(196, 198, 210, 0.25);
  --noor-bento-card-title: var(--noor-color-primary);
  --noor-bento-card-text: var(--noor-color-on-surface-variant);
  --noor-bento-icon-secondary: var(--noor-color-secondary);
  --noor-bento-icon-tertiary: var(--noor-color-tertiary);
  --noor-bento-card-icon-size: 2.5rem;
}

/* Bento: use full width of the column/section (do not cap like global marketing container) */
.noor-home-bento .noor-marketing__container {
  width: 100%;
  max-width: none;
  margin-inline: 0;
  padding-inline: 0;
}

/*
 * Grid uses LTR column flow so the large card + small cards fill left→right.
 * Parent .noor-marketing is RTL; without this, auto-placement starts on the
 * inline-start side and leaves half the row empty.
 */
.noor-home-bento__grid {
  display: grid;
  width: 100%;
  grid-template-columns: 1fr;
  gap: 1.5rem;
  align-items: stretch;
  direction: ltr;
}

.noor-home-bento__grid > * {
  direction: rtl;
  unicode-bidi: isolate;
}

@media (min-width: 768px) {
  .noor-home-bento__grid {
    grid-template-columns: repeat(4, 1fr);
  }

  .noor-home-bento__feature {
    grid-column: span 2;
  }

  /* Only the large card: span the full 4-column row */
  .noor-home-bento--feature-only .noor-home-bento__feature {
    grid-column: 1 / -1;
  }

  /* Large + one small: 3 + 1 columns (no empty track) */
  .noor-home-bento--one-small .noor-home-bento__feature {
    grid-column: span 3;
  }

  .noor-home-bento--one-small .noor-home-bento__card {
    grid-column: span 1;
  }
}

.noor-home-bento__feature {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  align-self: stretch;
  margin: 0;
  padding: clamp(1.25rem, 3vw, 2.5rem);
  border-radius: 0.75rem;
  overflow: hidden;
  min-height: 0;
  min-width: 0;
  background: var(--noor-bento-feature-bg);
}

.noor-home-bento__feature-title {
  position: relative;
  z-index: 1;
  margin: 0 0 1rem;
  width: 100%;
  max-width: 100%;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--noor-bento-feature-title);
}

.noor-home-bento__feature-text {
  position: relative;
  z-index: 1;
  margin: 0 0 1.5rem;
  width: 100%;
  max-width: 100%;
  font-size: 1rem;
  line-height: 1.7;
  color: var(--noor-bento-feature-text);
  flex: 1 1 auto;
}

.noor-home-bento__feature-link {
  position: relative;
  z-index: 1;
  display: inline-flex;
  align-items: center;
  align-self: start; /* inline-start: right in RTL */
  gap: 0.5rem;
  margin-top: auto;
  font-weight: 700;
  color: var(--noor-bento-feature-link);
  text-decoration: none;
}

.noor-home-bento__feature-link .noor-marketing__icon {
  display: inline-flex;
  transition: transform 0.22s ease;
}

.noor-home-bento__feature-link:hover .noor-marketing__icon,
.noor-home-bento__feature-link:focus-visible .noor-marketing__icon {
  transform: translateX(-0.35rem);
}

/*
 * Watermark on physical left: parent is direction:rtl — avoid inset-inline-* here;
 * logical `inset-inline-start/end: auto` was resolving to inline-start (right in RTL).
 */
.noor-home-bento__feature-deco {
  position: absolute;
  z-index: 0;
  left: -0.75rem;
  right: auto;
  bottom: -1.25rem;
  top: auto;
  font-size: clamp(6rem, 22vw, 11rem);
  line-height: 1;
  opacity: 0.06;
  color: var(--noor-bento-feature-deco);
  pointer-events: none;
  max-width: 55%;
}

.noor-home-bento__feature-deco svg,
.noor-home-bento__feature-deco .elementor-icon,
.noor-home-bento__feature-deco .e-font-icon-svg {
  width: 1em;
  height: 1em;
  display: block;
}

.noor-home-bento__card {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  align-self: stretch;
  height: 100%;
  min-height: 0;
  min-width: 0;
  padding: 2rem;
  border-radius: 0.75rem;
  background: var(--noor-bento-card-bg);
  border: 1px solid var(--noor-bento-card-border);
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.2s ease;
}

.noor-home-bento__card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.08);
}

.noor-home-bento__card-icon {
  font-size: var(--noor-bento-card-icon-size);
  margin-bottom: 1.5rem;
  flex-shrink: 0;
  align-self: start; /* inline-start: right in RTL */
  color: var(--noor-bento-icon-secondary);
}

.noor-home-bento__card-icon--tertiary {
  color: var(--noor-bento-icon-tertiary);
}

.noor-home-bento__card-title {
  margin: 0 0 0.5rem;
  width: 100%;
  max-width: 100%;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--noor-bento-card-title);
}

.noor-home-bento__card-text {
  margin: 0;
  width: 100%;
  max-width: 100%;
  flex: 1 1 auto;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--noor-bento-card-text);
}

/* -------------------------------------------------------------------------
   Services (Swiper; Style tab: --noor-svc-* on .noor-home-services)
   ------------------------------------------------------------------------- */

.noor-home-services {
  --noor-svc-bg: var(--noor-color-surface-container-low);
  --noor-svc-title: var(--noor-color-primary);
  --noor-svc-desc: var(--noor-color-on-surface-variant);
  --noor-svc-card-title: var(--noor-color-primary);
  --noor-svc-card-text: var(--noor-color-on-surface-variant);
  --noor-svc-nav: var(--noor-color-primary);
  --noor-svc-nav-border: rgba(0, 27, 68, 0.2);

  padding-block: clamp(2rem, 4vw, 4.5rem);
  background: var(--noor-svc-bg);
  overflow: hidden;
}

.noor-home-services__head {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: clamp(1.25rem, 3vw, 2rem);
}

/* RTL: DOM order intro → nav → row places intro on the right, arrows on the left */
@media (min-width: 768px) {
  .noor-home-services__head {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    gap: 2rem;
  }
}

.noor-home-services__intro {
  text-align: right;
  max-width: 42rem;
  min-width: 0;
}

.noor-home-services__title {
  margin: 0 0 1rem;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 900;
  color: var(--noor-svc-title);
}

.noor-home-services__desc {
  margin: 0;
  line-height: 1.75;
  color: var(--noor-svc-desc);
}

.noor-home-services__nav-wrap {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
  flex-direction: row-reverse;
}

.noor-home-services__nav-btn {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  border: 1px solid var(--noor-svc-nav-border);
  background: transparent;
  color: var(--noor-svc-nav);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.noor-home-services__nav-btn:hover {
  background: var(--noor-color-primary);
  color: var(--noor-color-on-primary);
  border-color: var(--noor-color-primary);
}

/* Elementor / kit accent can paint buttons pink on :focus — keep default look + visible ring */
.noor-home-services__nav-btn:focus {
  outline: none;
}

.noor-home-services__nav-btn:focus:not(:hover) {
  background: transparent;
  color: var(--noor-svc-nav);
  border-color: var(--noor-svc-nav-border);
  box-shadow: none;
}

.noor-home-services__nav-btn:focus-visible {
  outline: 2px solid var(--noor-color-primary);
  outline-offset: 3px;
}

.noor-home-services__nav-btn:focus-visible:not(:hover) {
  background: transparent;
  color: var(--noor-svc-nav);
  border-color: var(--noor-svc-nav-border);
}

.noor-home-services__swiper {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.noor-home-services__swiper .swiper-wrapper {
  align-items: stretch;
}

.noor-home-services__slide {
  height: auto;
  display: flex;
  box-sizing: border-box;
}

/* Card height follows content; image box uses one shared aspect ratio (landscape) for all services */
.noor-home-services__card {
  display: flex;
  flex-direction: column;
  width: 100%;
  height: 100%;
  min-height: 0;
  text-decoration: none;
  color: inherit;
  border-radius: 0.25rem;
}

.noor-home-services__media {
  aspect-ratio: 16 / 9;
  border-radius: 1rem;
  overflow: hidden;
  margin-bottom: 1rem;
  flex-shrink: 0;
}

.noor-home-services__media img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.noor-home-services__card:hover .noor-home-services__media img {
  transform: scale(1.08);
}

.noor-home-services__item-title {
  margin: 0 0 0.375rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--noor-svc-card-title);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 2;
  overflow: hidden;
  line-clamp: 2;
}

.noor-home-services__item-text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.6;
  color: var(--noor-svc-card-text);
  display: -webkit-box;
  -webkit-box-orient: vertical;
  -webkit-line-clamp: 3;
  overflow: hidden;
  line-clamp: 3;
}

.noor-home-services__empty {
  margin: 0;
  text-align: center;
  color: var(--noor-svc-desc);
}

/* -------------------------------------------------------------------------
   Doctors
   ------------------------------------------------------------------------- */

.noor-home-doctors {
  --noor-home-doctors-bg: transparent;
  padding-block: clamp(4rem, 10vw, 8rem);
  background: var(--noor-home-doctors-bg);
}

.noor-home-doctors__head {
  text-align: center;
  margin-bottom: clamp(3rem, 6vw, 5rem);
}

.noor-home-doctors__title {
  margin: 0 0 1rem;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 900;
  color: var(--noor-color-primary);
}

.noor-home-doctors__subtitle {
  margin: 0;
  color: var(--noor-color-on-surface-variant);
}

.noor-home-doctors__head-desc {
  margin-top: 1rem;
}

.noor-home-doctors__head-desc--classic {
  text-align: right;
}

.noor-home-doctors__head-desc--showcase {
  text-align: right;
}

.noor-home-doctors__section-desc {
  margin: 0 0 0.5rem;
  line-height: 1.65;
  color: var(--noor-color-on-surface-variant);
}

.noor-home-doctors__section-link {
  display: inline-block;
  font-size: 0.9375rem;
  font-weight: 700;
  color: var(--noor-color-primary);
  text-decoration: none;
  border-bottom: 1px solid transparent;
  transition: border-color 0.2s ease, color 0.2s ease;
}

.noor-home-doctors__section-link:hover {
  border-bottom-color: var(--noor-color-primary);
}

/* Classic «برگزیده»: سرتیتر و متن کارت راست‌چین — فاصله عمودی کمتر */
.noor-home-doctors--layout-classic.noor-home-doctors {
  padding-block: clamp(2.25rem, 5vw, 4.5rem);
}

.noor-home-doctors--layout-classic .noor-home-doctors__head {
  text-align: right;
  margin-bottom: clamp(1.25rem, 3vw, 2.25rem);
}

.noor-home-doctors--layout-classic .noor-home-doctors__head-desc {
  margin-top: 0.5rem;
}

.noor-home-doctors--layout-classic .noor-home-doctors__title,
.noor-home-doctors--layout-classic .noor-home-doctors__subtitle {
  text-align: right;
}

.noor-home-doctors__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) {
  .noor-home-doctors__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .noor-home-doctors__grid:not(.noor-home-doctors__grid--few) {
    grid-template-columns: repeat(4, 1fr);
  }
}

/* Fewer than four classic cards: center the row instead of pinning to one grid column */
.noor-home-doctors__grid.noor-home-doctors__grid--few {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  align-items: stretch;
  gap: 2rem;
}

.noor-home-doctors__grid--few .noor-home-doctors__card-wrap {
  flex: 1 1 100%;
  max-width: 22rem;
  margin-inline: auto;
}

@media (min-width: 768px) {
  .noor-home-doctors__grid--few .noor-home-doctors__card-wrap {
    flex: 0 1 calc(50% - 1rem);
    max-width: 22rem;
  }
}

@media (min-width: 1024px) {
  .noor-home-doctors__grid--few .noor-home-doctors__card-wrap {
    flex: 0 1 calc(33.333% - 1.34rem);
    max-width: 22rem;
  }
}

.noor-home-doctors__card-wrap {
  position: relative;
  padding-top: 0;
}

.noor-home-doctors__card {
  position: relative;
  background: #fff;
  border-radius: 0.75rem;
  padding: 2rem;
  border: 1px solid rgba(196, 198, 210, 0.2);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.3s ease;
}

/* Classic «برگزیده»: photo centered, متن راست‌چین */
.noor-home-doctors__card--classic {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  text-align: right;
  padding-top: 0.75rem;
}

.noor-home-doctors__card--classic .noor-home-doctors__avatar {
  position: static;
  inset-inline-start: auto;
  align-self: center;
  width: clamp(7.5rem, 20vw, 9rem);
  height: clamp(7.5rem, 20vw, 9rem);
  margin: 0 auto 1.25rem;
  border-radius: 999px;
  overflow: hidden;
  border: 4px solid var(--noor-color-surface-container-low, #fff);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
  flex-shrink: 0;
}

.noor-home-doctors__card:hover {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.1);
}

.noor-home-doctors__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.noor-home-doctors__body {
  margin-top: 0;
  width: 100%;
  text-align: right;
}

.noor-home-doctors__name {
  margin: 0 0 0.25rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--noor-color-primary);
}

.noor-home-doctors__role {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--noor-color-secondary);
}

.noor-home-doctors__card--classic .noor-home-doctors__role {
  margin-bottom: 0.5rem;
}

.noor-home-doctors__bio {
  margin: 0 0 1.5rem;
  font-size: 0.75rem;
  line-height: 1.65;
  color: var(--noor-color-on-surface-variant);
}

.noor-home-doctors__card--classic .noor-home-doctors__bio {
  margin: 0 0 1rem;
  line-height: 1.6;
}

.noor-home-doctors__cta {
  display: block;
  width: 100%;
  padding: 0.5rem;
  border-radius: 0.5rem;
  text-align: center;
  font-size: 0.75rem;
  font-weight: 700;
  text-decoration: none;
  background: var(--noor-color-surface-container);
  color: var(--noor-color-primary);
  transition: background 0.2s ease, color 0.2s ease;
}

.noor-home-doctors__cta:hover {
  background: var(--noor-color-primary);
  color: var(--noor-color-on-primary);
}

.noor-home-doctors__empty {
  text-align: center;
  padding: 2rem;
  color: var(--noor-color-on-surface-variant);
}

/* Doctors — slider (more than four cards); RTL: intro right, nav left */
.noor-home-doctors--slider .noor-home-doctors__head-row {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

.noor-home-doctors--slider.noor-home-doctors--layout-classic .noor-home-doctors__head-row {
  margin-bottom: clamp(1rem, 3vw, 1.75rem);
}

@media (min-width: 768px) {
  .noor-home-doctors--slider .noor-home-doctors__head-row {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    gap: 2rem;
  }
}

.noor-home-doctors--slider .noor-home-doctors__intro {
  min-width: 0;
}

.noor-home-doctors--slider .noor-home-doctors__intro--classic {
  text-align: right;
  flex: 1;
}

.noor-home-doctors--slider.noor-home-doctors--layout-classic .noor-home-doctors__title,
.noor-home-doctors--slider.noor-home-doctors--layout-classic .noor-home-doctors__subtitle {
  text-align: right;
}

.noor-home-doctors--slider .noor-home-doctors__intro--showcase {
  text-align: right;
  flex: 1;
}

.noor-home-doctors__nav-wrap {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
  flex-direction: row-reverse;
}

.noor-home-doctors__nav-btn {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 27, 68, 0.2);
  background: transparent;
  color: var(--noor-color-primary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.noor-home-doctors__nav-btn:hover {
  background: var(--noor-color-primary);
  color: var(--noor-color-on-primary);
  border-color: var(--noor-color-primary);
}

.noor-home-doctors__nav-btn:focus {
  outline: none;
}

.noor-home-doctors__nav-btn:focus:not(:hover) {
  background: transparent;
  color: var(--noor-color-primary);
  border-color: rgba(0, 27, 68, 0.2);
  box-shadow: none;
}

.noor-home-doctors__nav-btn:focus-visible {
  outline: 2px solid var(--noor-color-primary);
  outline-offset: 3px;
}

.noor-home-doctors__nav-btn:focus-visible:not(:hover) {
  background: transparent;
  color: var(--noor-color-primary);
  border-color: rgba(0, 27, 68, 0.2);
}

.noor-home-doctors__swiper {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.noor-home-doctors__swiper .swiper-wrapper {
  align-items: stretch;
}

.noor-home-doctors__swiper .swiper-slide {
  height: auto;
  display: flex;
  box-sizing: border-box;
}

.noor-home-doctors__swiper .swiper-slide > .noor-home-doctors__card-wrap,
.noor-home-doctors__swiper .swiper-slide > .noor-dept-specialists__cell {
  width: 100%;
  min-width: 0;
}

/* -------------------------------------------------------------------------
   Stats
   ------------------------------------------------------------------------- */

.noor-home-stats {
  --noor-stats-value-color: #fff;
  --noor-stats-label-color: rgba(255, 255, 255, 0.75);
  --noor-stats-glow-1: var(--noor-color-secondary-container);
  --noor-stats-glow-2: #88f9b0;

  position: relative;
  padding-block: clamp(3rem, 8vw, 6rem);
  background: var(--noor-color-primary);
  color: var(--noor-color-on-primary);
  overflow: hidden;
}

.noor-home-stats__glow {
  position: absolute;
  inset: 0;
  pointer-events: none;
  opacity: 0.12;
}

.noor-home-stats__glow::before,
.noor-home-stats__glow::after {
  content: "";
  position: absolute;
  width: 24rem;
  height: 24rem;
  border-radius: 999px;
  filter: blur(48px);
}

.noor-home-stats__glow::before {
  top: 0;
  right: 0;
  background: var(--noor-stats-glow-1);
  transform: translate(40%, -40%);
}

.noor-home-stats__glow::after {
  bottom: 0;
  left: 0;
  background: var(--noor-stats-glow-2);
  transform: translate(-40%, 40%);
}

.noor-home-stats__grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  column-gap: clamp(2rem, 5vw, 3rem);
  row-gap: clamp(2rem, 5vw, 3rem);
  text-align: center;
}

@media (min-width: 768px) {
  .noor-home-stats__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.noor-home-stats__value {
  margin: 0 0 0.5rem;
  font-size: clamp(2.5rem, 5vw, 3.75rem);
  font-weight: 900;
  line-height: 1;
  color: var(--noor-stats-value-color);
}

.noor-home-stats__value-inner {
  display: inline-block;
  min-height: 1em;
  font: inherit;
  color: inherit;
  line-height: inherit;
}

.noor-home-stats__label {
  margin: 0;
  font-size: 0.875rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--noor-stats-label-color);
}

/* -------------------------------------------------------------------------
   Latest posts (home strip)
   ------------------------------------------------------------------------- */

.noor-home-posts {
  padding-top: clamp(2rem, 4vw, 3.5rem);
  padding-bottom: clamp(4rem, 10vw, 8rem);
}

/* RTL: DOM order title → link; row places first item on inline-start (right), link on the left */
.noor-home-posts__head {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(2rem, 4vw, 4rem);
  flex-wrap: wrap;
}

.noor-home-posts__title {
  margin: 0;
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 900;
  color: var(--noor-color-primary);
}

.noor-home-posts__all {
  font-weight: 700;
  color: var(--noor-color-secondary);
  text-decoration: none;
}

.noor-home-posts__all:hover {
  text-decoration: none;
}

.noor-home-posts__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) {
  .noor-home-posts__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.noor-home-posts__article {
  text-align: right;
  cursor: pointer;
}

.noor-home-posts__thumb {
  aspect-ratio: 16 / 9;
  border-radius: 0.75rem;
  overflow: hidden;
  margin-bottom: 1.5rem;
  background: var(--noor-color-surface-container-high);
}

.noor-home-posts__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.noor-home-posts__article:hover .noor-home-posts__thumb img {
  transform: scale(1.05);
}

.noor-home-posts__time {
  font-size: 0.75rem;
  color: #94a3b8;
  font-weight: 600;
}

.noor-home-posts__article-title {
  margin: 0.5rem 0 0.75rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--noor-color-primary);
  transition: color 0.2s ease;
}

.noor-home-posts__article:hover .noor-home-posts__article-title {
  color: var(--noor-color-secondary);
}

.noor-home-posts__excerpt {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--noor-color-on-surface-variant);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.noor-home-posts__link {
  text-decoration: none;
  color: inherit;
}

/* -------------------------------------------------------------------------
   Footer (marketing)
   ------------------------------------------------------------------------- */

.noor-marketing-footer {
  --noor-mf-brand-title: #1e3a8a;
  --noor-mf-brand-text: #64748b;
  --noor-mf-heading: var(--noor-color-primary);
  --noor-mf-link: #64748b;
  --noor-mf-contact: #64748b;
  --noor-mf-copy: #94a3b8;

  padding-block: 3rem 2rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
}

.noor-marketing-footer--home {
  background: #f8fafc;
}

.noor-marketing-footer--about {
  background: #f8fafc;
}

.noor-marketing-footer__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2.5rem;
  row-gap: 2.5rem;
  column-gap: clamp(2rem, 5vw, 4rem);
  text-align: right;
  align-items: start;
}

@media (min-width: 768px) {
  .noor-marketing-footer__grid {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: clamp(2.5rem, 6vw, 5rem);
    row-gap: 2.5rem;
  }
}

.noor-marketing-footer__col {
  min-width: 0;
}

.noor-marketing-footer__icons--under-contact {
  margin-top: 1.25rem;
}

.noor-marketing-footer__logo-wrap {
  margin-bottom: 1rem;
  line-height: 0;
}

.noor-marketing-footer__logo {
  display: block;
  height: auto;
}

.noor-marketing-footer__brand {
  margin: 0 0 1rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--noor-mf-brand-title);
}

.noor-marketing-footer__text {
  margin: 0 0 1.5rem;
  font-size: 0.875rem;
  line-height: 1.75;
  color: var(--noor-mf-brand-text);
}

.noor-marketing-footer__icons {
  display: flex;
  gap: 1rem;
  flex-wrap: wrap;
}

.noor-marketing-footer__icons a {
  color: #94a3b8;
  transition: color 0.2s ease;
}

.noor-marketing-footer__icons a:hover {
  color: var(--noor-color-primary);
}

.noor-marketing-footer__heading {
  margin: 0 0 1.5rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--noor-mf-heading);
}

.noor-marketing-footer__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.noor-marketing-footer__list li + li {
  margin-top: 0.75rem;
}

.noor-marketing-footer__list a {
  font-size: 0.875rem;
  color: var(--noor-mf-link);
  text-decoration: none;
  transition: color 0.2s ease;
}

.noor-marketing-footer__list a:hover {
  color: var(--noor-color-primary);
}

.noor-marketing-footer__contact-line {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  margin-bottom: 1rem;
  font-size: 0.875rem;
  color: var(--noor-mf-contact);
}

.noor-marketing-footer__bottom {
  margin-top: 3rem;
  padding-top: 2rem;
  border-top: 1px solid rgba(148, 163, 184, 0.35);
  text-align: center;
  font-size: 0.75rem;
  color: var(--noor-mf-copy);
}

.noor-marketing-footer__copyright {
  margin: 0;
  font-size: inherit;
  line-height: 1.65;
  color: inherit;
}

.noor-marketing-footer__copyright a {
  color: var(--noor-color-secondary);
  text-decoration: none;
  transition: color 0.2s ease;
}

.noor-marketing-footer__copyright a:hover {
  color: var(--noor-color-primary);
  text-decoration: none;
}

@media (min-width: 768px) {
  .noor-marketing-footer__bottom--rtl {
    text-align: right;
  }
}

/* -------------------------------------------------------------------------
   FAB
   ------------------------------------------------------------------------- */

.noor-home-fab {
  position: fixed;
  bottom: 2rem;
  /* RTL: inline-start is physical right — matches former right: 2rem */
  inset-inline-start: 2rem;
  z-index: 90;
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 999px;
  background: var(--noor-color-primary);
  color: var(--noor-color-on-primary);
  border: none;
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 12px 32px rgba(0, 27, 68, 0.35);
  transition: transform 0.2s ease, background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease;
  text-decoration: none;
}

.noor-home-fab:hover {
  transform: scale(1.08);
}

.noor-home-fab svg {
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.noor-home-fab-modal {
  position: fixed;
  bottom: 6.5rem;
  inset-inline-start: 1.5rem;
  z-index: 120;
  width: min(calc(100vw - 3rem), 360px);
  opacity: 0;
  visibility: hidden;
  transform: translateY(10px) scale(0.98);
  transform-origin: bottom center;
  transition: opacity 0.24s ease, visibility 0.24s ease, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}

.noor-home-fab-modal.is-open {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}

.noor-home-fab-modal[hidden] {
  display: none !important;
}

.noor-home-fab-modal__panel {
  position: relative;
  margin: 0;
  width: 100%;
  max-width: none;
  background: #fff;
  border-radius: 16px;
  box-shadow: 0 18px 44px rgba(2, 6, 23, 0.24);
  border: 1px solid rgba(148, 163, 184, 0.22);
  padding: 1.1rem;
  z-index: 1;
}

.noor-home-fab-modal__close {
  position: absolute;
  top: 8px;
  inset-inline-end: 8px;
  width: 30px;
  height: 30px;
  border-radius: 8px;
  border: 1px solid rgba(148, 163, 184, 0.35);
  background: #fff;
  color: #334155;
  cursor: pointer;
  line-height: 1;
  font-size: 20px;
}

.noor-home-fab-modal__title {
  margin: 0 0 0.5rem;
  padding-inline-end: 2rem;
  color: #0f172a;
  font-size: 1.1rem;
  line-height: 1.4;
}

.noor-home-fab-modal__desc {
  margin: 0 0 0.9rem;
  color: #475569;
  font-size: 0.92rem;
  line-height: 1.8;
}

.noor-home-fab-modal__desc p {
  margin: 0 0 0.45rem;
}

.noor-home-fab-modal__desc p:last-child {
  margin-bottom: 0;
}

.noor-home-fab-modal__links {
  margin: 0;
  padding: 0;
  list-style: none;
  display: grid;
  gap: 0.6rem;
}

.noor-home-fab-modal__link {
  display: flex;
  align-items: center;
  gap: 0.65rem;
  padding: 0.7rem 0.8rem;
  border-radius: 12px;
  text-decoration: none;
  color: #0f172a;
  background: #f8fafc;
  border: 1px solid #e2e8f0;
  transition: background-color 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}

.noor-home-fab-modal__link:hover {
  background: #eff6ff;
  border-color: #bfdbfe;
}

.noor-home-fab-modal__link-copy {
  display: flex;
  flex-direction: column;
  gap: 0.15rem;
  min-width: 0;
}

.noor-home-fab-modal__link-main {
  display: block;
  font-weight: 700;
  font-size: 0.9rem;
  line-height: 1.5;
}

.noor-home-fab-modal__link-meta {
  display: block;
  font-size: 0.78rem;
  color: #64748b;
  line-height: 1.5;
}

.noor-home-fab-modal__link-icon {
  width: 1.1rem;
  min-width: 1.1rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}

.noor-home-fab-modal__link-icon svg {
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.noor-home-fab-modal__qr-wrap {
  margin-top: 0.85rem;
}

.noor-home-fab-modal__qr-desktop {
  display: grid;
  justify-items: start;
  gap: 0.45rem;
}

.noor-home-fab-modal__qr-title {
  margin: 0;
  font-size: 0.85rem;
  color: #475569;
  font-weight: 600;
}

.noor-home-fab-modal__qr-image {
  display: block;
  width: 120px;
  height: 120px;
  border-radius: 10px;
  border: 1px solid #e2e8f0;
  background: #fff;
}

.noor-home-fab-modal__qr-mobile-link {
  display: none;
  align-items: center;
  justify-content: center;
  width: 100%;
  padding: 0.65rem 0.85rem;
  border-radius: 10px;
  text-decoration: none;
  color: #0f172a;
  background: #eff6ff;
  border: 1px solid #bfdbfe;
  font-size: 0.9rem;
  font-weight: 600;
}

body.noor-home-fab-modal-open {
  overflow: auto;
}

@media (max-width: 1024px) {
  .noor-home-fab-modal__qr-desktop {
    display: none;
  }

  .noor-home-fab-modal__qr-mobile-link {
    display: inline-flex;
  }
}

@media (max-width: 767px) {
  .noor-home-fab-modal {
    bottom: 5.6rem;
    inset-inline-start: 1rem;
    width: min(calc(100vw - 2rem), 360px);
  }
}

/* -------------------------------------------------------------------------
   About: hero
   ------------------------------------------------------------------------- */

.noor-about-hero {
  position: relative;
  min-height: min(819px, 92vh);
  display: flex;
  align-items: center;
  /* Clip پوسته + overlay + لایه تصویر به یک گردی مشترک */
  overflow: hidden;
  background: var(--noor-color-primary);
  color: #fff;
  isolation: isolate;
}

.noor-about-hero__bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  background-size: cover;
  background-repeat: no-repeat;
  background-position: center center;
  overflow: hidden;
  box-sizing: border-box;
  opacity: 0.4;
  pointer-events: none;
}

.noor-about-hero__inner {
  position: relative;
  z-index: 1;
  width: 100%;
  text-align: right;
  padding-block: clamp(4rem, 10vw, 7rem);
}

.noor-about-hero__content {
  max-width: 48rem;
  width: 100%;
  margin-inline: auto;
  box-sizing: border-box;
}

.noor-about-hero__badge {
  display: inline-block;
  padding: 0.25rem 1rem;
  border-radius: 999px;
  font-size: 0.875rem;
  font-weight: 700;
  background: var(--noor-color-secondary-container);
  color: var(--noor-color-on-secondary-container, #004f6d);
  margin-bottom: 1.5rem;
}

.noor-about-hero__title {
  display: inline-block;
  max-width: 100%;
  margin: 0 0 2rem;
  font-size: clamp(2.5rem, 6vw, 4.5rem);
  line-height: 1.1;
  font-weight: 900;
  color: #fff;
}

.noor-about-hero__text {
  margin: 0 0 2.5rem;
  font-size: clamp(1.05rem, 2vw, 1.25rem);
  line-height: 1.75;
  color: rgba(219, 234, 254, 0.85);
  max-width: 42rem;
  width: 100%;
  box-sizing: border-box;
}

.noor-about-hero__btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 1rem 2rem;
  border-radius: 0.75rem;
  font-weight: 700;
  background: #fff;
  color: var(--noor-color-primary);
  text-decoration: none;
  transition: background-color 0.2s ease, color 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}

.noor-about-hero__btn:hover {
  background: #eff6ff;
}

/* -------------------------------------------------------------------------
   Mission / Vision
   ------------------------------------------------------------------------- */

.noor-about-mv {
  /* Outer padding: use Style → بخش (پدینگ بخش) in Elementor — avoid huge fixed band */
  padding-block: 0;
  background: var(--noor-color-surface-container-low);
}

/* Tighter than global .noor-marketing__container; override with widget Style → فاصله کناره‌های ظرف */
.noor-about-mv .noor-marketing__container {
  padding-inline: clamp(0px, 2vw, 1rem);
}

.noor-about-mv__grid {
  display: grid;
  grid-template-columns: 1fr;
  align-items: stretch;
  gap: 1.25rem;
}

/*
 * Two columns only at desktop (Elementor default: tablet ≤1024px, desktop from 1025px).
 * At 992–1024px our old breakpoint still looked “tablet” in the editor but stayed 2-col.
 */
@media (min-width: 1025px) {
  .noor-about-mv__grid {
    grid-template-columns: repeat(12, 1fr);
  }

  .noor-about-mv__mission {
    grid-column: span 4;
  }

  .noor-about-mv__vision {
    grid-column: span 8;
  }
}

.noor-about-mv__mission {
  background: var(--noor-color-surface-container-lowest);
  padding: 1.75rem;
  border-radius: 1rem;
  border: 1px solid rgba(196, 198, 210, 0.28);
  box-shadow:
    0 1px 2px rgba(0, 27, 68, 0.06),
    0 12px 28px -16px rgba(0, 27, 68, 0.12);
}

.noor-about-mv__icon-wrap {
  width: 4rem;
  height: 4rem;
  border-radius: 999px;
  background: var(--noor-color-primary-container);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
  color: var(--noor-color-on-primary-container, #7999dc);
  font-size: 1.75rem;
}

.noor-about-mv__icon-wrap svg {
  display: block;
  width: 1em;
  height: 1em;
  fill: currentColor;
}

.noor-about-mv__mission-title {
  margin: 0 0 1rem;
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--noor-color-primary);
}

.noor-about-mv__mission-text {
  margin: 0;
  line-height: 1.75;
  color: var(--noor-color-on-surface-variant);
}

.noor-about-mv__vision {
  position: relative;
  background: linear-gradient(
    155deg,
    var(--noor-color-primary) 0%,
    var(--noor-color-primary-container, #002f6c) 55%,
    #001530 100%
  );
  color: #fff;
  padding: 2rem;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid rgba(255, 255, 255, 0.1);
  box-shadow:
    0 20px 40px -20px rgba(0, 16, 40, 0.55),
    inset 0 1px 0 rgba(255, 255, 255, 0.08);
}

.noor-about-mv__vision-inner {
  position: relative;
  z-index: 1;
  min-width: 0;
}

.noor-about-mv__vision-title {
  margin: 0 0 1.5rem;
  font-size: clamp(1.5rem, 3vw, 1.875rem);
  font-weight: 700;
}

.noor-about-mv__vision-text {
  margin: 0 0 2rem;
  font-size: clamp(1rem, 2vw, 1.25rem);
  line-height: 1.75;
  color: rgba(219, 234, 254, 0.75);
}

.noor-about-mv__vision-stats-stack {
  margin: 0;
  min-width: 0;
  max-width: 100%;
}

.noor-about-mv__vision-stats-lead {
  margin: 0 0 0.75rem;
  font-size: clamp(1rem, 1.75vw, 1.125rem);
  font-weight: 600;
  line-height: 1.45;
  color: rgba(255, 255, 255, 0.92);
}

.noor-about-mv__stats {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.25rem 1.5rem;
  padding-top: 1.75rem;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  width: 100%;
  min-width: 0;
  justify-items: start;
}

.noor-about-mv__stat-cell {
  min-width: 0;
  max-width: 100%;
}

.noor-about-mv__stat-val {
  font-size: clamp(1.75rem, 3vw, 2.25rem);
  font-weight: 900;
  color: var(--noor-color-secondary-container);
  margin-bottom: 0.5rem;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.noor-about-mv__stat-label {
  font-size: 0.875rem;
  opacity: 0.65;
  overflow-wrap: anywhere;
  word-break: break-word;
}

.noor-about-mv__blob {
  position: absolute;
  bottom: -5rem;
  inset-inline-start: -5rem;
  width: 16rem;
  height: 16rem;
  border-radius: 999px;
  background: rgba(83, 196, 253, 0.12);
  filter: blur(40px);
  pointer-events: none;
  transition: background 0.3s ease;
}

.noor-about-mv__vision:hover .noor-about-mv__blob {
  background: rgba(83, 196, 253, 0.22);
}

/* -------------------------------------------------------------------------
   CEO message
   ------------------------------------------------------------------------- */

.noor-about-ceo {
  padding-block: clamp(3rem, 8vw, 6rem);
  background: #fff;
  overflow: hidden;
}

.noor-about-ceo__row {
  display: flex;
  flex-direction: column-reverse;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: center;
  min-width: 0;
}

.noor-about-ceo__col {
  min-width: 0;
  max-width: 100%;
}

@media (min-width: 768px) {
  .noor-about-ceo__row {
    flex-direction: row-reverse;
    align-items: center;
  }

  .noor-about-ceo__col {
    width: 50%;
    flex: 1 1 0;
    min-width: 0;
  }
}

.noor-about-ceo__visual {
  position: relative;
  width: 100%;
}

.noor-about-ceo__frame {
  position: absolute;
  top: -2.5rem;
  right: -2.5rem;
  width: 100%;
  height: 100%;
  border: 2px solid rgba(0, 47, 108, 0.2);
  border-radius: 0.75rem;
  transform: translate(1rem, 1rem);
  pointer-events: none;
}

.noor-about-ceo__img {
  position: relative;
  z-index: 1;
  width: 100%;
  display: block;
  border-radius: 0.75rem;
  box-shadow: 0 20px 50px rgba(0, 0, 0, 0.15);
  /* filter: grayscale — کنترل در تب استایل ویجت (یا مقدار پیش‌فرض هنگام تولید CSS المنتور) */
  filter: grayscale(1);
  transition: filter 0.45s ease, box-shadow 0.3s ease;
  object-fit: cover;
}

.noor-about-ceo__content {
  text-align: right;
  width: 100%;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
}

.noor-about-ceo__quote-icon {
  font-size: 4rem;
  line-height: 1;
  color: rgba(0, 47, 108, 0.25);
  margin-bottom: 1rem;
  flex-shrink: 0;
  align-self: start;
}

.noor-about-ceo__title {
  margin: 0 0 2rem;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 900;
  line-height: 1.25;
  color: var(--noor-color-primary);
}

.noor-about-ceo__body {
  font-size: 1.125rem;
  line-height: 1.75;
  color: var(--noor-color-on-surface-variant);
  overflow-wrap: anywhere;
  word-break: break-word;
  max-width: 100%;
  min-width: 0;
}

.noor-about-ceo__body p {
  margin: 0 0 1.5rem;
}

.noor-about-ceo__body p:last-child {
  margin-bottom: 0;
}

.noor-about-ceo__name {
  margin: 2.5rem 0 0.25rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--noor-color-primary);
}

.noor-about-ceo__role {
  margin: 0;
  font-weight: 600;
  color: var(--noor-color-secondary);
}

/* -------------------------------------------------------------------------
   Management team
   ------------------------------------------------------------------------- */

.noor-about-team {
  padding-block: clamp(3rem, 8vw, 6rem);
  background: var(--noor-color-surface-container);
}

.noor-about-team__head {
  text-align: center;
  margin-bottom: 4rem;
}

.noor-about-team__title {
  margin: 0 0 1rem;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 900;
  color: var(--noor-color-primary);
}

.noor-about-team__subtitle {
  margin: 0 auto;
  max-width: 42rem;
  color: var(--noor-color-on-surface-variant);
}

.noor-about-team__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 640px) {
  .noor-about-team__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .noor-about-team__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.noor-about-team__card {
  background: var(--noor-color-surface-container-lowest);
  border-radius: 0.75rem;
  overflow: hidden;
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.5s ease;
}

.noor-about-team__card:hover {
  box-shadow: 0 16px 40px rgba(0, 0, 0, 0.12);
}

.noor-about-team__photo {
  height: 20rem;
  overflow: hidden;
  position: relative;
}

.noor-about-team__photo img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.5s ease;
}

.noor-about-team__card:hover .noor-about-team__photo img {
  transform: scale(1.08);
}

.noor-about-team__photo::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--noor-color-primary);
  opacity: 0;
  transition: opacity 0.3s ease;
}

.noor-about-team__card:hover .noor-about-team__photo::after {
  opacity: 0.2;
}

.noor-about-team__body {
  padding: 1.5rem;
  text-align: right;
}

.noor-about-team__name {
  margin: 0 0 0.25rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--noor-color-primary);
}

.noor-about-team__role {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--noor-color-secondary);
}

.noor-about-team__social {
  display: flex;
  gap: 0.75rem;
  justify-content: flex-end;
}

.noor-about-team__social a {
  color: #94a3b8;
  transition: color 0.2s ease;
}

.noor-about-team__social a:hover {
  color: var(--noor-color-primary);
}

/* شورای مدیریت — اسلایدر (بیش از ۴ عضو) */
.noor-about-team--slider .noor-about-team__head-row {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  margin-bottom: clamp(1.5rem, 4vw, 2.5rem);
}

@media (min-width: 768px) {
  .noor-about-team--slider .noor-about-team__head-row {
    flex-direction: row;
    justify-content: space-between;
    align-items: flex-end;
    gap: 2rem;
  }
}

.noor-about-team--slider .noor-about-team__head {
  flex: 1;
  min-width: 0;
}

.noor-about-team__nav-wrap {
  display: flex;
  gap: 0.5rem;
  flex-shrink: 0;
  flex-direction: row-reverse;
}

.noor-about-team__nav-btn {
  width: 3.25rem;
  height: 3.25rem;
  border-radius: 999px;
  border: 1px solid rgba(0, 27, 68, 0.2);
  background: transparent;
  color: var(--noor-color-primary);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  transition: background 0.2s ease, color 0.2s ease, border-color 0.2s ease;
  -webkit-tap-highlight-color: transparent;
}

.noor-about-team__nav-btn:hover {
  background: var(--noor-color-primary);
  color: var(--noor-color-on-primary);
  border-color: var(--noor-color-primary);
}

.noor-about-team__nav-btn:focus {
  outline: none;
}

.noor-about-team__nav-btn:focus-visible {
  outline: 2px solid var(--noor-color-primary);
  outline-offset: 3px;
}

.noor-about-team__swiper {
  width: 100%;
  min-width: 0;
  overflow: hidden;
}

.noor-about-team__swiper .swiper-wrapper {
  align-items: stretch;
}

.noor-about-team__swiper .swiper-slide {
  height: auto;
  display: flex;
  box-sizing: border-box;
}

.noor-about-team__swiper .swiper-slide .noor-about-team__card {
  width: 100%;
  min-width: 0;
}

/* -------------------------------------------------------------------------
   Gallery
   ------------------------------------------------------------------------- */

.noor-about-gallery {
  padding-block: clamp(3rem, 8vw, 6rem);
  background: #fff;
}

/* بالا: لینک چپ، عنوان/توضیح راست؛ پایین: گرید تمام‌عرض */
.noor-about-gallery__layout {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: clamp(1.5rem, 4vw, 2.5rem);
}

.noor-about-gallery__top {
  display: flex;
  flex-direction: row;
  justify-content: space-between;
  align-items: flex-end;
  flex-wrap: wrap;
  gap: 1rem 1.5rem;
  width: 100%;
  /* جهت ثابت برای چیدمان «لینک چپ / متن راست» حتی در صفحه RTL */
  direction: ltr;
}

.noor-about-gallery__top--no-link {
  justify-content: flex-end;
}

.noor-about-gallery__top--intro-empty {
  justify-content: flex-start;
}

.noor-about-gallery__intro {
  direction: rtl;
  text-align: right;
  flex: 0 1 auto;
  min-width: min(100%, 40rem);
  max-width: 100%;
}

.noor-about-gallery__title {
  margin: 0 0 1rem;
  font-size: clamp(1.75rem, 4vw, 2.25rem);
  font-weight: 900;
  color: var(--noor-color-primary);
}

.noor-about-gallery__desc {
  margin: 0;
  color: var(--noor-color-on-surface-variant);
}

.noor-about-gallery__more-wrap {
  flex-shrink: 0;
  text-align: left;
}

.noor-about-gallery__more {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-weight: 600;
  font-size: 1rem;
  color: var(--noor-color-primary);
  text-decoration: underline;
  text-underline-offset: 0.2em;
  transition: color 0.2s ease, gap 0.2s ease;
}

.noor-about-gallery__more:hover {
  gap: 0.65rem;
}

.noor-about-gallery__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1rem;
  grid-auto-rows: 250px;
  width: 100%;
  max-width: 100%;
  min-width: 0;
}

@media (min-width: 768px) {
  .noor-about-gallery__grid {
    grid-template-columns: repeat(4, 1fr);
    grid-template-rows: repeat(2, 250px);
  }

  .noor-about-gallery__cell--hero {
    grid-column: 1 / span 2;
    grid-row: 1 / span 2;
  }

  .noor-about-gallery__cell--wide {
    grid-column: 3 / span 2;
    grid-row: 1;
  }

  .noor-about-gallery__cell--a {
    grid-column: 3;
    grid-row: 2;
  }

  .noor-about-gallery__cell--b {
    grid-column: 4;
    grid-row: 2;
  }
}

.noor-about-gallery__cell {
  border-radius: 0.75rem;
  overflow: hidden;
}

.noor-about-gallery__cell img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.7s ease;
}

.noor-about-gallery__cell:hover img {
  transform: scale(1.05);
}

/* -------------------------------------------------------------------------
   Department page — تجهیزات پیشرفته
   ------------------------------------------------------------------------- */

.noor-dept-equipment {
  --noor-dept-eq-bg: var(--noor-color-surface-container-low);
  --noor-dept-eq-title: var(--noor-color-primary);

  padding-block: clamp(3rem, 8vw, 6rem);
  background: var(--noor-dept-eq-bg);
}

.noor-dept-equipment__head {
  text-align: center;
  margin-bottom: clamp(2rem, 5vw, 4rem);
}

.noor-dept-equipment__section-title {
  margin: 0 0 1rem;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--noor-dept-eq-title);
}

.noor-dept-equipment__section-sub {
  margin: 0 auto;
  max-width: 42rem;
  color: var(--noor-color-on-surface-variant);
  line-height: 1.7;
}

.noor-dept-equipment__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  align-items: stretch;
}

/* Tablet: two cards per row; desktop: three per row. */
@media (min-width: 768px) {
  .noor-dept-equipment__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (min-width: 1024px) {
  .noor-dept-equipment__grid {
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }
}

.noor-dept-equipment__card-body {
  min-width: 0;
}

.noor-dept-equipment__card--icon-side {
  display: flex;
  flex-direction: row;
  align-items: flex-start;
  gap: 1.25rem;
}

.noor-dept-equipment__card--icon-side .noor-dept-equipment__icon-wrap {
  margin-bottom: 0;
  flex-shrink: 0;
}

.noor-dept-equipment__card--icon-side .noor-dept-equipment__card-body {
  flex: 1;
}

.noor-dept-equipment__card--icon-end {
  flex-direction: row-reverse;
}

.noor-dept-equipment__card {
  background: var(--noor-color-surface-container-lowest);
  border: 1px solid rgba(196, 198, 210, 0.2);
  border-radius: 0.75rem;
  padding: 2rem;
  box-shadow: 0 1px 2px rgba(0, 0, 0, 0.04);
  transition: box-shadow 0.25s ease, transform 0.25s ease;
}

.noor-dept-equipment__card:hover {
  box-shadow: 0 16px 40px rgba(0, 27, 68, 0.1);
}

.noor-dept-equipment__icon-wrap {
  width: 4rem;
  height: 4rem;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 2rem;
  font-size: 1.75rem;
  transition: background 0.2s ease, color 0.2s ease;
}

.noor-dept-equipment__icon-wrap--primary {
  background: var(--noor-color-surface-container-high);
  color: var(--noor-color-primary);
}

.noor-dept-equipment__card:hover .noor-dept-equipment__icon-wrap--primary {
  background: var(--noor-color-primary);
  color: var(--noor-color-on-primary);
}

.noor-dept-equipment__icon-wrap--secondary {
  background: var(--noor-color-secondary-container);
  color: var(--noor-color-secondary);
}

.noor-dept-equipment__card:hover .noor-dept-equipment__icon-wrap--secondary {
  background: var(--noor-color-secondary);
  color: var(--noor-color-on-secondary);
}

.noor-dept-equipment__icon-wrap--tertiary {
  background: var(--noor-color-surface-container-low);
  color: var(--noor-color-tertiary);
}

.noor-dept-equipment__card:hover .noor-dept-equipment__icon-wrap--tertiary {
  background: var(--noor-color-tertiary);
  color: var(--noor-color-on-tertiary);
}

.noor-dept-equipment__card-title {
  margin: 0 0 1rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--noor-color-primary);
}

.noor-dept-equipment__card-text {
  margin: 0 0 1.5rem;
  line-height: 1.7;
  color: var(--noor-color-on-surface-variant);
}

.noor-dept-equipment__bullets {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
  direction: rtl;
}

.noor-dept-equipment__bullet {
  display: flex;
  flex-direction: row;
  align-items: center;
  gap: 0.5rem;
  width: 100%;
  font-size: 0.875rem;
  color: var(--noor-color-on-surface-variant);
  justify-content: flex-start;
}

.noor-dept-equipment__bullet-icon {
  flex-shrink: 0;
  color: var(--noor-color-secondary);
}

/* -------------------------------------------------------------------------
   Department page — متخصصین برجسته (v2)
   ------------------------------------------------------------------------- */

.noor-dept-specialists {
  --noor-dept-sp-bg: var(--noor-color-surface);

  padding-block: clamp(3rem, 8vw, 6rem);
  background: var(--noor-dept-sp-bg);
  overflow: hidden;
}

.noor-dept-specialists__head {
  text-align: right;
  margin-bottom: clamp(2rem, 4vw, 4rem);
}

.noor-dept-specialists__title {
  margin: 0 0 1rem;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--noor-color-primary);
}

.noor-dept-specialists__subtitle {
  margin: 0;
  color: var(--noor-color-on-surface-variant);
  line-height: 1.65;
}

.noor-dept-specialists__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
}

@media (min-width: 768px) {
  .noor-dept-specialists__grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (min-width: 1024px) {
  .noor-dept-specialists__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.noor-dept-specialists__cell {
  position: relative;
  padding-top: 2.5rem;
  min-width: 0;
}

/* Showcase grid/slider: smaller photo than classic — fits four columns without dominating the card */
.noor-dept-specialists__card {
  position: relative;
  background: var(--noor-color-surface-container);
  border-radius: 0.75rem;
  padding: 4rem 1.5rem 1.5rem;
  text-align: center;
}

.noor-dept-specialists__avatar {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translate(-50%, -40%);
  width: 6rem;
  height: 6rem;
  border-radius: 999px;
  overflow: hidden;
  border: 4px solid var(--noor-color-surface-container-lowest);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);
}

.noor-dept-specialists__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.noor-dept-specialists__name {
  margin: 0 0 0.25rem;
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--noor-color-primary);
}

.noor-dept-specialists__role {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--noor-color-secondary);
}

.noor-dept-specialists__profile {
  display: inline-flex;
  flex-direction: row-reverse;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--noor-color-primary);
  text-decoration: none;
  transition: gap 0.2s ease;
}

.noor-dept-specialists__profile:hover {
  gap: 1rem;
}

.noor-dept-specialists__profile-icon {
  font-size: 0.875rem;
}

/* -------------------------------------------------------------------------
   Department page — آمادگی پیش از مراجعه
   ------------------------------------------------------------------------- */

.noor-dept-prep {
  --noor-dept-prep-bg: var(--noor-color-surface-container-high);

  position: relative;
  padding-block: clamp(3rem, 8vw, 6rem);
  background: var(--noor-dept-prep-bg);
  overflow: hidden;
}

.noor-dept-prep__deco {
  position: absolute;
  top: 0;
  right: 0;
  width: 33%;
  height: 100%;
  background: rgba(0, 27, 68, 0.04);
  transform: skewX(-12deg) translateX(25%);
  pointer-events: none;
  z-index: 0;
}

.noor-dept-prep__layout {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 2.5rem;
}

@media (min-width: 1024px) {
  .noor-dept-prep__layout {
    flex-direction: row;
    gap: 3rem;
    align-items: flex-start;
  }

  .noor-dept-prep__col--intro {
    flex: 0 0 32%;
    max-width: 32%;
  }

  .noor-dept-prep__col--tips {
    flex: 1 1 auto;
    min-width: 0;
  }
}

.noor-dept-prep__title {
  margin: 0 0 1.5rem;
  font-size: clamp(1.5rem, 3vw, 2rem);
  font-weight: 900;
  color: var(--noor-color-primary);
}

.noor-dept-prep__lead {
  margin: 0 0 2rem;
  line-height: 1.75;
  color: var(--noor-color-on-surface-variant);
}

/* RTL: icon first in DOM → sits on the right; text block fills remainder, right-aligned */
.noor-dept-prep__contact {
  display: flex;
  flex-direction: row;
  align-items: center;
  justify-content: flex-start;
  gap: 1rem;
  padding: 1.5rem;
  background: var(--noor-color-surface-container-lowest);
  border-radius: 0.75rem;
  box-shadow: 0 8px 28px rgba(0, 27, 68, 0.08);
  width: 100%;
  box-sizing: border-box;
  text-decoration: none;
  color: inherit;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}

a.noor-dept-prep__contact {
  cursor: pointer;
}

.noor-dept-prep__contact-text {
  flex: 1;
  min-width: 0;
  text-align: right;
}

.noor-dept-prep__contact-label {
  margin: 0 0 0.25rem;
  font-weight: 700;
  color: var(--noor-color-primary);
}

.noor-dept-prep__contact-phone {
  margin: 0;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--noor-color-secondary);
}

.noor-dept-prep__contact-icon {
  font-size: 2.5rem;
  color: var(--noor-color-secondary);
  flex-shrink: 0;
}

.noor-dept-prep__tips {
  display: grid;
  grid-template-columns: 1fr;
  gap: 1.5rem;
}

@media (min-width: 768px) {
  .noor-dept-prep__tips {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.noor-dept-prep__tip {
  padding: 1.5rem;
  background: rgba(255, 255, 255, 0.85);
  backdrop-filter: blur(8px);
  border-radius: 0.75rem;
  border-inline-end: 4px solid var(--noor-color-primary);
}

.noor-dept-prep__tip--primary {
  border-inline-end-color: var(--noor-color-primary);
}

.noor-dept-prep__tip--secondary {
  border-inline-end-color: var(--noor-color-secondary);
}

.noor-dept-prep__tip--tertiary {
  border-inline-end-color: var(--noor-color-tertiary-container);
}

.noor-dept-prep__tip--error {
  border-inline-end-color: var(--noor-color-error);
}

.noor-dept-prep__tip-title {
  margin: 0 0 0.5rem;
  font-weight: 700;
  color: var(--noor-color-primary);
}

.noor-dept-prep__tip-text {
  margin: 0;
  font-size: 0.875rem;
  line-height: 1.65;
  color: var(--noor-color-on-surface-variant);
}

/* -------------------------------------------------------------------------
   Elementor kit “Accent” / generic button rules (often pink) — force Noor chrome
   Root cause: body.elementor-kit-* { --e-global-color-accent: #… } and late
   CSS targeting `button` / `.elementor-button` with that variable.
   ------------------------------------------------------------------------- */

.noor-marketing .noor-home-services__nav-btn,
.noor-marketing .noor-home-doctors__nav-btn,
.noor-marketing .noor-about-team__nav-btn {
  -webkit-appearance: none !important;
  appearance: none !important;
  box-sizing: border-box !important;
  width: 3.5rem !important;
  height: 3.5rem !important;
  min-width: 3.5rem !important;
  min-height: 3.5rem !important;
  padding: 0 !important;
  line-height: 1 !important;
  border-radius: 999px !important;
  background-color: transparent !important;
  background-image: none !important;
  color: var(--noor-color-primary) !important;
  border: 1px solid rgba(0, 27, 68, 0.2) !important;
  box-shadow: none !important;
  filter: none !important;
}

.noor-marketing .noor-home-services__nav-btn {
  color: var(--noor-svc-nav) !important;
  border-color: var(--noor-svc-nav-border) !important;
}

.noor-marketing .noor-home-services__nav-btn:hover,
.noor-marketing .noor-home-doctors__nav-btn:hover,
.noor-marketing .noor-about-team__nav-btn:hover {
  background-color: var(--noor-color-primary) !important;
  color: var(--noor-color-on-primary) !important;
  border-color: var(--noor-color-primary) !important;
}

.noor-marketing .noor-home-services__nav-btn:focus,
.noor-marketing .noor-home-doctors__nav-btn:focus,
.noor-marketing .noor-about-team__nav-btn:focus,
.noor-marketing .noor-home-services__nav-btn:active,
.noor-marketing .noor-home-doctors__nav-btn:active,
.noor-marketing .noor-about-team__nav-btn:active {
  outline: none !important;
}

.noor-marketing .noor-home-services__nav-btn:focus:not(:hover),
.noor-marketing .noor-home-services__nav-btn:focus-visible:not(:hover),
.noor-marketing .noor-home-doctors__nav-btn:focus:not(:hover),
.noor-marketing .noor-home-doctors__nav-btn:focus-visible:not(:hover),
.noor-marketing .noor-about-team__nav-btn:focus:not(:hover),
.noor-marketing .noor-about-team__nav-btn:focus-visible:not(:hover) {
  background-color: transparent !important;
  color: var(--noor-color-primary) !important;
  border-color: rgba(0, 27, 68, 0.2) !important;
  box-shadow: none !important;
}

.noor-marketing .noor-home-services__nav-btn:focus:not(:hover),
.noor-marketing .noor-home-services__nav-btn:focus-visible:not(:hover) {
  color: var(--noor-svc-nav) !important;
  border-color: var(--noor-svc-nav-border) !important;
}

.noor-marketing .noor-home-services__nav-btn:focus-visible,
.noor-marketing .noor-home-doctors__nav-btn:focus-visible,
.noor-marketing .noor-about-team__nav-btn:focus-visible {
  outline: 2px solid var(--noor-color-primary) !important;
  outline-offset: 3px !important;
}

/* Home hero / carousels: .elementor-swiper-button is a div, still picks up kit fills */
.noor-marketing .elementor-swiper-button {
  background-color: transparent !important;
  background-image: none !important;
  border: none !important;
  box-shadow: none !important;
}

.noor-home-hero--slider .noor-home-hero__swiper .elementor-swiper-button {
  color: var(--noor-hero-slider-arrow, rgba(0, 27, 68, 0.85)) !important;
}

.noor-marketing .elementor-swiper-button:hover,
.noor-marketing .elementor-swiper-button:focus,
.noor-marketing .elementor-swiper-button:focus-visible,
.noor-marketing .elementor-swiper-button:active {
  background-color: transparent !important;
  background-image: none !important;
  box-shadow: none !important;
}

.noor-marketing .elementor-swiper-button:focus-visible {
  outline: 2px solid var(--noor-color-primary) !important;
  outline-offset: 2px !important;
}

/*
 * Top nav: hamburger + drawer close — override kit (pink) but keep a clear Noor outline
 * (transparent fill + navy border; drawer close matches on white panel).
 */
.elementor-widget-noor_home_top_nav .noor-home-top-nav__toggle,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-close,
.noor-home-top-nav__toggle,
.noor-home-top-nav__drawer-close {
  background-color: transparent !important;
  background-image: none !important;
  color: var(--noor-color-primary) !important;
  border: 1px solid rgba(0, 27, 68, 0.14) !important;
  border-radius: 0.5rem !important;
  box-shadow: none !important;
  outline-color: var(--noor-color-primary) !important;
}

.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-close,
.noor-home-top-nav__drawer-close {
  background-color: rgba(255, 255, 255, 0.96) !important;
}

.elementor-widget-noor_home_top_nav .noor-home-top-nav__toggle:hover,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-close:hover,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__toggle:focus,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-close:focus,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__toggle:focus-visible,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-close:focus-visible,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__toggle:active,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-close:active,
.noor-home-top-nav__toggle:hover,
.noor-home-top-nav__drawer-close:hover,
.noor-home-top-nav__toggle:focus,
.noor-home-top-nav__drawer-close:focus,
.noor-home-top-nav__toggle:focus-visible,
.noor-home-top-nav__drawer-close:focus-visible,
.noor-home-top-nav__toggle:active,
.noor-home-top-nav__drawer-close:active {
  background-color: rgba(0, 27, 68, 0.06) !important;
  background-image: none !important;
  border-color: rgba(0, 27, 68, 0.26) !important;
  box-shadow: none !important;
  color: var(--noor-color-primary) !important;
}

.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-close:hover,
.noor-home-top-nav__drawer-close:hover,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-close:focus-visible,
.noor-home-top-nav__drawer-close:focus-visible {
  background-color: rgba(0, 27, 68, 0.05) !important;
}

/* Drawer submenu chevron (<button>): kit often paints generic buttons with Accent (pink) */
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-submenu-toggle,
.noor-home-top-nav__drawer-submenu-toggle {
  background-color: transparent !important;
  background-image: none !important;
  color: var(--noor-color-primary) !important;
  border: none !important;
  box-shadow: none !important;
  filter: none !important;
  outline-color: var(--noor-color-primary) !important;
}

.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-submenu-toggle:hover,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-submenu-toggle:focus,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-submenu-toggle:focus-visible,
.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-submenu-toggle:active,
.noor-home-top-nav__drawer-submenu-toggle:hover,
.noor-home-top-nav__drawer-submenu-toggle:focus,
.noor-home-top-nav__drawer-submenu-toggle:focus-visible,
.noor-home-top-nav__drawer-submenu-toggle:active {
  background-color: rgba(0, 27, 68, 0.06) !important;
  background-image: none !important;
  color: var(--noor-color-primary) !important;
  border: none !important;
  box-shadow: none !important;
}

.elementor-widget-noor_home_top_nav .noor-home-top-nav__drawer-submenu-toggle:focus-visible,
.noor-home-top-nav__drawer-submenu-toggle:focus-visible {
  outline: 2px solid var(--noor-color-primary) !important;
  outline-offset: 2px !important;
}

/* Primary CTA in toolbar: kit sometimes adds accent outline/border on <a class="button"> */
.elementor-widget-noor_home_top_nav .noor-home-top-nav__btn {
  border: none !important;
  box-shadow: none !important;
  outline-color: var(--noor-color-primary) !important;
}

/* Match editor / RTL: parent sections often set text-align: center on the front end only. */
.elementor-widget-noor_accordion_faq .noor-accordion-faq {
  text-align: start !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__header-shell,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__panel,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__panel-inner {
  text-align: start !important;
}

.elementor-widget-noor_accordion_faq button.noor-accordion-faq__header {
  text-align: start !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__content {
  text-align: start !important;
}

/* FAQ accordion: no kit accent (pink) ring on card/container/button; stable toggle size */
.elementor-widget-noor_accordion_faq > .elementor-widget-container {
  border: none !important;
  outline: none !important;
  box-shadow: none !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__card,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__item.is-open .noor-accordion-faq__card {
  border: none !important;
  border-color: transparent !important;
  outline: none !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__header-shell {
  display: flex !important;
  flex-direction: column !important;
  align-items: stretch !important;
  width: 100% !important;
  max-width: 100% !important;
  cursor: pointer !important;
}

.elementor-widget-noor_accordion_faq button.noor-accordion-faq__header {
  display: flex !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
  align-items: center !important;
  justify-content: space-between !important;
  width: 100% !important;
  max-width: 100% !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  background-color: transparent !important;
  background-image: none !important;
}

.elementor-widget-noor_accordion_faq button.noor-accordion-faq__header:focus,
.elementor-widget-noor_accordion_faq button.noor-accordion-faq__header:active {
  outline: none !important;
  box-shadow: none !important;
  background-color: transparent !important;
  background-image: none !important;
  filter: none !important;
}

.elementor-widget-noor_accordion_faq button.noor-accordion-faq__header:focus-visible {
  outline: 2px solid var(--noor-color-primary, #001b44) !important;
  outline-offset: 2px !important;
  background-color: transparent !important;
  background-image: none !important;
}

/* Higher specificity than `body.elementor-kit-* button` for kit padding/min-height/margins. */
.elementor-widget-noor_accordion_faq .noor-accordion-faq button.noor-accordion-faq__header {
  box-sizing: border-box !important;
  min-height: 0 !important;
  min-block-size: 0 !important;
  line-height: 1.25 !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__title-wrap {
  flex: 1 1 0% !important;
  min-width: 0 !important;
  max-width: 100% !important;
  margin: 0 !important;
  padding: 0 !important;
  display: block !important;
  overflow: hidden !important;
  text-align: start !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__title,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__header :where(h1, h2, h3, h4, h5, h6).noor-accordion-faq__title {
  margin-block: 0 !important;
  margin-inline: 0 !important;
  padding: 0 !important;
  overflow: hidden !important;
  text-overflow: ellipsis !important;
  white-space: nowrap !important;
  max-width: 100% !important;
  text-align: start !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__toggle {
  flex: 0 0 auto !important;
  min-width: 2.5rem !important;
  min-height: 2.5rem !important;
  max-width: none !important;
  border: none !important;
  box-shadow: none !important;
  outline: none !important;
  padding: 0 !important;
  background-image: none !important;
}

/* Closed row: force kit-safe default fill. Open row: Style → حالت باز can set color. */
.elementor-widget-noor_accordion_faq .noor-accordion-faq__item:not(.is-open) .noor-accordion-faq__toggle {
  background-color: #e8f0ff !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__icon {
  flex-shrink: 0 !important;
  min-width: 12px !important;
  min-height: 12px !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__item:not(.is-open) .noor-accordion-faq__toggle:hover,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__item:not(.is-open) .noor-accordion-faq__toggle:focus,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__item:not(.is-open) .noor-accordion-faq__toggle:focus-visible,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__item:not(.is-open) .noor-accordion-faq__toggle:active {
  background-color: #d8e8ff !important;
  background-image: none !important;
  box-shadow: none !important;
  outline: none !important;
}

.elementor-widget-noor_accordion_faq .noor-accordion-faq__item.is-open .noor-accordion-faq__toggle:focus,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__item.is-open .noor-accordion-faq__toggle:focus-visible,
.elementor-widget-noor_accordion_faq .noor-accordion-faq__item.is-open .noor-accordion-faq__toggle:active {
  background-image: none !important;
  box-shadow: none !important;
  outline: none !important;
}

/* -------------------------------------------------------------------------
   Contact page widgets
   ------------------------------------------------------------------------- */

/*
 * Contact Gravity Form — matches hospital contact mockup (navy + light blue).
 * Scoped to .noor-contact-gf only; works with GF theme framework + legacy markup.
 */
.noor-contact-gf {
  --noor-gf-navy: #002f6c;
  --noor-gf-input-bg: #eaf5ff;
  --noor-gf-input-border: transparent;
  --noor-gf-radius: 0.75rem; /* card outer corners */
  --noor-gf-control-radius: 0.375rem; /* inputs + submit — subtle, not pill */
  --noor-gf-focus: rgba(0, 47, 108, 0.25);
}

.noor-contact-gf__box {
  border-radius: var(--noor-gf-radius);
  box-shadow: 0 1px 2px rgba(17, 29, 37, 0.06);
  background: #fff;
  padding: clamp(1.25rem, 3vw, 2rem);
}

.noor-contact-gf__heading {
  margin: 0 0 1.25rem;
  font-weight: 700;
  font-size: clamp(1.375rem, 2.5vw, 1.75rem);
  color: var(--noor-gf-navy);
  text-align: start;
  line-height: 1.3;
}

.noor-contact-gf__inner {
  min-width: 0;
}

.noor-contact-gf__inner .gform_wrapper {
  margin: 0;
}

/* Gravity Forms theme (foundation / orbital): tune spacing */
.noor-contact-gf .gform_wrapper.gform-theme--foundation {
  --gf-form-gap-y: 1.125rem;
  --gf-form-gap-x: 1rem;
  --gf-form-footer-margin-y-start: 1.25rem;
  --gf-field-gap-y: 0.5rem;
}

.noor-contact-gf .gform_heading,
.noor-contact-gf .gform_title,
.noor-contact-gf .gform_description {
  margin-block-end: 1rem;
}

/* Labels */
.noor-contact-gf .gfield_label,
.noor-contact-gf .gform-field-label,
.noor-contact-gf legend.gfield_label {
  font-weight: 600;
  color: #1a2b3c;
  margin-block-end: 0.35rem !important;
}

/* Inputs: light blue fill, soft radius, no harsh borders */
.noor-contact-gf .gform_wrapper input[type="text"],
.noor-contact-gf .gform_wrapper input[type="email"],
.noor-contact-gf .gform_wrapper input[type="tel"],
.noor-contact-gf .gform_wrapper input[type="url"],
.noor-contact-gf .gform_wrapper input[type="number"],
.noor-contact-gf .gform_wrapper input[type="password"],
.noor-contact-gf .gform_wrapper input.gform-text-input-reset,
.noor-contact-gf .gform_wrapper select,
.noor-contact-gf .gform_wrapper textarea {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  padding: 0.75rem 1rem !important;
  border: 1px solid var(--noor-gf-input-border) !important;
  border-radius: var(--noor-gf-control-radius) !important;
  background-color: var(--noor-gf-input-bg) !important;
  color: #1a2b3c !important;
  font: inherit;
  line-height: 1.45;
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.noor-contact-gf .gform_wrapper textarea {
  min-block-size: 8rem;
  resize: vertical;
}

/* Select / dropdown: align like text inputs + custom chevron (works across LTR/RTL) */
.noor-contact-gf .gform_wrapper select:not([multiple]) {
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  min-height: 2.875rem;
  line-height: 1.45 !important;
  padding-block: 0.75rem !important;
  padding-inline: 1rem 2.35rem !important;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23002f6c' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-size: 0.75rem 0.75rem;
}

.noor-contact-gf .gform_wrapper select:not([multiple]):where(:dir(ltr)) {
  background-position: calc(100% - 0.75rem) 50%;
}

.noor-contact-gf .gform_wrapper select:not([multiple]):where(:dir(rtl)) {
  background-position: 0.75rem 50%;
}

/* Multi-select: no faux chevron; keep padding symmetric */
.noor-contact-gf .gform_wrapper select[multiple] {
  min-height: 6.5rem;
  padding-inline: 1rem !important;
  padding-block: 0.5rem !important;
  background-image: none !important;
  line-height: 1.5 !important;
}

.noor-contact-gf .gform_wrapper input:focus,
.noor-contact-gf .gform_wrapper select:focus,
.noor-contact-gf .gform_wrapper textarea:focus {
  outline: none !important;
  border-color: rgba(0, 47, 108, 0.35) !important;
  box-shadow: 0 0 0 3px var(--noor-gf-focus) !important;
}

/*
 * Single-file upload: light-blue shell is only the native file row; Gravity’s
 * `.gform_fileupload_rules` (e.g. «فایل های مجاز») stays below on the normal canvas.
 */
.noor-contact-gf .gform-theme--framework .ginput_container_fileupload:not(:has(.gform_fileupload_multifile)) input[type="file"] {
  --gf-ctrl-file-btn-font-size: 0.75rem;
  --gf-ctrl-file-btn-line-height: 1.15;
  --gf-ctrl-file-btn-padding-x: 0.45rem;
  --gf-ctrl-file-btn-margin-x: 0 0.35rem;
}

.noor-contact-gf .ginput_container_fileupload:not(:has(.gform_fileupload_multifile)) {
  display: flex;
  flex-direction: column;
  gap: 0.35rem;
  padding: 0;
  border: none;
  background: transparent;
  box-sizing: border-box;
}

.noor-contact-gf .ginput_container_fileupload:not(:has(.gform_fileupload_multifile)) > input[type="file"] {
  width: 100%;
  max-width: 100%;
  box-sizing: border-box;
  height: 2.125rem !important;
  min-height: 0 !important;
  max-height: 2.25rem !important;
  padding: 3px !important;
  margin: 0;
  border: 1px solid rgba(0, 47, 108, 0.12) !important;
  border-radius: var(--noor-gf-control-radius) !important;
  background-color: var(--noor-gf-input-bg) !important;
  background-image: none !important;
  color: #1a2b3c !important;
  font-size: 0.75rem !important;
  line-height: normal !important;
  cursor: pointer;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
  vertical-align: middle;
}

.noor-contact-gf .ginput_container_fileupload:not(:has(.gform_fileupload_multifile)) > input[type="file"]:focus {
  outline: none !important;
  border-color: rgba(0, 47, 108, 0.35) !important;
  box-shadow: 0 0 0 3px var(--noor-gf-focus) !important;
}

.noor-contact-gf .ginput_container_fileupload:not(:has(.gform_fileupload_multifile)) > .gform_fileupload_rules {
  margin: 0;
  padding: 0;
}

.noor-contact-gf .ginput_container_fileupload:not(:has(.gform_fileupload_multifile)) > input[type="file"]::file-selector-button {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box !important;
  block-size: 100% !important;
  max-block-size: 2.25rem !important;
  margin-inline: 0 0.35rem !important;
  margin-block: 0 !important;
  padding-block: 0 !important;
  padding-inline: 0.45rem !important;
  border: none !important;
  border-radius: calc(var(--noor-gf-control-radius) - 1px) !important;
  background: var(--noor-gf-navy) !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  cursor: pointer;
  inset-block-start: 0 !important;
}

.noor-contact-gf .ginput_container_fileupload:not(:has(.gform_fileupload_multifile)) > input[type="file"]::file-selector-button:hover {
  background: #003d8a !important;
}

/* WebKit legacy */
.noor-contact-gf .ginput_container_fileupload:not(:has(.gform_fileupload_multifile)) > input[type="file"]::-webkit-file-upload-button {
  -webkit-appearance: none;
  appearance: none;
  box-sizing: border-box !important;
  height: 100% !important;
  max-height: 2.25rem !important;
  margin-inline-end: 0.35rem !important;
  padding-block: 0 !important;
  padding-inline: 0.45rem !important;
  border: none !important;
  border-radius: calc(var(--noor-gf-control-radius) - 1px) !important;
  background: var(--noor-gf-navy) !important;
  color: #fff !important;
  font-family: inherit !important;
  font-size: 0.75rem !important;
  font-weight: 600 !important;
  line-height: 1.15 !important;
  cursor: pointer;
}

/* Multi-file: drop zone + “select files” */
.noor-contact-gf .ginput_container_fileupload .gform_drop_area {
  margin: 0;
  padding: 1.25rem 1rem !important;
  border: 1px dashed rgba(0, 47, 108, 0.25) !important;
  border-radius: var(--noor-gf-control-radius) !important;
  background: var(--noor-gf-input-bg) !important;
  text-align: center;
  box-sizing: border-box;
}

.noor-contact-gf .gform_drop_instructions {
  display: block;
  margin-block-end: 0.75rem;
  color: #1a2b3c;
  font-size: 0.9375rem;
}

.noor-contact-gf .ginput_container_fileupload .gform_button_select_files,
.noor-contact-gf .ginput_container_fileupload .button.gform_button_select_files {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  padding: 0.65rem 1.15rem !important;
  border: none !important;
  border-radius: var(--noor-gf-control-radius) !important;
  background: var(--noor-gf-navy) !important;
  color: #fff !important;
  font: inherit;
  font-weight: 600 !important;
  cursor: pointer;
  line-height: 1.3;
  box-shadow: 0 1px 2px rgba(0, 47, 108, 0.15);
}

.noor-contact-gf .ginput_container_fileupload .gform_button_select_files:hover {
  background: #003d8a !important;
}

/* File list previews under multifile */
.noor-contact-gf .ginput_container_fileupload .ginput_preview {
  margin-block-start: 0.5rem;
  padding: 0.5rem 0.65rem;
  border-radius: var(--noor-gf-control-radius);
  background: #f6fbff;
  font-size: 0.875rem;
}

.noor-contact-gf .ginput_container_fileupload .gform_delete_file {
  margin-inline-start: 0.35rem;
  vertical-align: middle;
}

/* Submit: navy pill, optional send icon */
.noor-contact-gf .gform_footer,
.noor-contact-gf .gform_page_footer {
  justify-content: start; /* inline-start: correct side in RTL + LTR */
  margin-block-start: 1.25rem !important;
}

.noor-contact-gf .gform_footer input[type="submit"],
.noor-contact-gf .gform_footer button[type="submit"],
.noor-contact-gf .gform_page_footer input[type="submit"],
.noor-contact-gf .gform_page_footer button[type="submit"] {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 0.5rem;
  padding: 0.75rem 1.5rem !important;
  border: none !important;
  border-radius: var(--noor-gf-control-radius) !important;
  background: var(--noor-gf-navy) !important;
  color: #fff !important;
  font-family: inherit;
  font-size: inherit;
  font-weight: 600 !important;
  cursor: pointer;
  box-shadow: 0 1px 2px rgba(0, 47, 108, 0.2);
  transition: background 0.15s ease, transform 0.1s ease;
}

.noor-contact-gf .gform_footer input[type="submit"]:hover,
.noor-contact-gf .gform_footer button[type="submit"]:hover,
.noor-contact-gf .gform_page_footer input[type="submit"]:hover,
.noor-contact-gf .gform_page_footer button[type="submit"]:hover {
  background: #003d8a !important;
}

.noor-contact-gf .gform_footer input[type="submit"]::after,
.noor-contact-gf .gform_footer button[type="submit"]::after,
.noor-contact-gf .gform_page_footer input[type="submit"]::after,
.noor-contact-gf .gform_page_footer button[type="submit"]::after {
  content: "";
  display: inline-block;
  inline-size: 1.1em;
  block-size: 1.1em;
  flex-shrink: 0;
  background-color: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M2.01 21L23 12 2.01 3 2 10l15 2-15 2z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='black' d='M2.01 21L23 12 2.01 3 2 10l15 2-15 2z'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Validation / notices */
.noor-contact-gf .gfield_description,
.noor-contact-gf .gform_fileupload_rules,
.noor-contact-gf .instruction {
  font-size: 0.875rem;
  color: #4a5568;
}

.noor-contact-gf .gfield_error .gfield_label,
.noor-contact-gf .gfield_error legend {
  color: #b42318;
}

.noor-contact-gf .gfield_validation_message,
.noor-contact-gf .validation_message {
  border-radius: var(--noor-gf-control-radius);
}

/* Legacy markup (gravity-theme / legacy wrapper) */
.noor-contact-gf .gform_legacy_markup_wrapper ul.gform_fields,
.noor-contact-gf .gform_wrapper ul.gform_fields {
  list-style: none;
  margin: 0;
  padding: 0;
}

.noor-contact-gf .gform_legacy_markup_wrapper .gfield,
.noor-contact-gf .gravity-theme .gfield {
  margin-bottom: 1rem;
}

.noor-contact-gf .gform_legacy_markup_wrapper .gfield:last-child,
.noor-contact-gf .gravity-theme .gfield:last-child {
  margin-bottom: 0;
}

.noor-contact-gf__notice {
  margin: 0;
  padding: 1rem;
  background: #fff3cd;
  border-radius: 0.5rem;
  color: #664d03;
}

/* Contact info stack */
.noor-contact-info {
  display: flex;
  flex-direction: column;
  gap: 2rem;
}

.noor-contact-info__address {
  position: relative;
  overflow: hidden;
  border-radius: 0.75rem;
  padding: 2rem;
  background: #002f6c;
  color: #fff;
}

.noor-contact-info__address-inner {
  position: relative;
  z-index: 1;
}

.noor-contact-info__address-deco {
  position: absolute;
  inset-inline-end: -3rem;
  inset-block-end: -3rem;
  width: 12rem;
  height: 12rem;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.06);
  filter: blur(24px);
  pointer-events: none;
  z-index: 0;
  transition: background 0.7s ease;
}

.noor-contact-info__address:hover .noor-contact-info__address-deco {
  background: rgba(255, 255, 255, 0.12);
}

.noor-contact-info__address-title {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin: 0 0 1rem;
  font-size: 1.25rem;
  font-weight: 700;
}

.noor-contact-info__address-icon {
  font-size: 1.5rem;
  color: #a8c8ff;
}

.noor-contact-info__address-body {
  margin: 0 0 1rem;
  font-size: 1.0625rem;
  line-height: 1.65;
  opacity: 0.92;
}

.noor-contact-info__postal {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.5rem 0.75rem;
  padding-top: 1rem;
  border-top: 1px solid rgba(255, 255, 255, 0.12);
  font-size: 0.9375rem;
}

.noor-contact-info__postal-icon {
  color: #a8c8ff;
}

.noor-contact-info__postal-value {
  font-variant-numeric: tabular-nums;
}

.noor-contact-info__rows {
  display: flex;
  flex-direction: column;
  gap: 1.5rem;
  padding: 2rem;
  border-radius: 0.75rem;
  background: #eaf5ff;
}

.noor-contact-info__row {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  text-decoration: none;
  color: inherit;
  transition: opacity 0.2s ease;
}

a.noor-contact-info__row:hover {
  opacity: 0.92;
}

.noor-contact-info__row-main {
  display: flex;
  align-items: center;
  gap: 1rem;
  min-width: 0;
}

.noor-contact-info__row-icon {
  flex-shrink: 0;
  width: 3rem;
  height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 0.5rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(17, 29, 37, 0.06);
  font-size: 1.25rem;
  color: #00658b;
}

.noor-contact-info__row-text {
  min-width: 0;
}

.noor-contact-info__row-label {
  margin: 0 0 0.25rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #434750;
  line-height: 1.3;
}

.noor-contact-info__row-value {
  margin: 0;
  font-size: 1.25rem;
  font-weight: 700;
  color: #001b44;
  word-break: break-word;
}

.noor-contact-info__row-chevron {
  flex-shrink: 0;
  opacity: 0;
  transition: opacity 0.2s ease;
  color: #c4c6d2;
}

.noor-contact-info__row:hover .noor-contact-info__row-chevron,
.noor-contact-info__row:focus-within .noor-contact-info__row-chevron {
  opacity: 1;
}

.noor-contact-info__social {
  border-radius: 0.75rem;
  padding: 2rem;
  background: #ddeaf5;
}

.noor-contact-info__social-title {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  margin: 0 0 1.5rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #434750;
}

.noor-contact-info__social-title-bar {
  width: 0.25rem;
  height: 1rem;
  border-radius: 999px;
  background: #00658b;
}

.noor-contact-info__social-links {
  display: flex;
  flex-wrap: wrap;
  gap: 1rem;
}

.noor-contact-info__social--wide .noor-contact-info__social-links {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.noor-contact-info__social-link {
  display: flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
  border-radius: 0.75rem;
  background: #fff;
  color: #001b44;
  font-weight: 700;
  box-shadow: 0 1px 2px rgba(17, 29, 37, 0.06);
  transition: box-shadow 0.2s ease, background-color 0.2s ease, color 0.2s ease;
}

.noor-contact-info__social--wide .noor-contact-info__social-link {
  justify-content: space-between;
  padding: 0.75rem 1.25rem;
  min-height: 3rem;
}

.noor-contact-info__social--circle .noor-contact-info__social-links {
  justify-content: flex-start;
}

.noor-contact-info__social--circle .noor-contact-info__social-link {
  width: 3.5rem;
  height: 3.5rem;
  border-radius: 50%;
  padding: 0;
}

.noor-contact-info__social-link-icon {
  color: #00658b;
  transition: transform 0.2s ease;
}

.noor-contact-info__social-link:hover .noor-contact-info__social-link-icon {
  transform: scale(1.1);
}

/* Contact map */
.noor-contact-map__frame {
  position: relative;
  isolation: isolate;
  overflow: hidden;
  border-radius: 1rem;
  min-height: 450px;
  box-shadow: 0 25px 50px -12px rgba(17, 29, 37, 0.2);
  background: #cbd5e1;
}

.noor-contact-map__embed {
  position: absolute;
  inset: 0;
  z-index: 0;
}

.noor-contact-map__embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  display: block;
}

.noor-contact-map__placeholder {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 1.5rem;
  text-align: center;
  background: repeating-linear-gradient(
    -45deg,
    #e2e8f0,
    #e2e8f0 10px,
    #f1f5f9 10px,
    #f1f5f9 20px
  );
  color: #475569;
  font-weight: 600;
}

.noor-contact-map__scrim {
  --noor-map-scrim-color: rgba(0, 27, 68, 0.05);
  position: absolute;
  inset: 0;
  z-index: 1;
  pointer-events: none;
  background-image:
    linear-gradient(var(--noor-map-scrim-color) 1px, transparent 1px),
    linear-gradient(90deg, var(--noor-map-scrim-color) 1px, transparent 1px);
  background-size: 40px 40px;
}

.noor-contact-map__card {
  position: absolute;
  z-index: 3;
  inset-inline-end: 3rem;
  inset-block-start: 3rem;
  max-width: 20rem;
  padding: 1.5rem;
  border-radius: 0.75rem;
  background: rgba(255, 255, 255, 0.9);
  -webkit-backdrop-filter: blur(10px);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.35);
  box-shadow: 0 20px 40px rgba(17, 29, 37, 0.15);
}

.noor-contact-map__card-head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1rem;
}

.noor-contact-map__card-icon {
  flex-shrink: 0;
  width: 2.5rem;
  height: 2.5rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border-radius: 999px;
  background: #001b44;
  color: #fff;
  font-size: 1.125rem;
}

.noor-contact-map__card-title {
  margin: 0;
  font-size: 1rem;
  font-weight: 700;
  color: #001b44;
}

.noor-contact-map__card-text {
  margin: 0 0 1rem;
  font-size: 0.875rem;
  line-height: 1.6;
  color: #434750;
}

.noor-contact-map__card-link {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  font-size: 0.875rem;
  font-weight: 700;
  color: #00658b;
  text-decoration: none;
}

.noor-contact-map__card-link:hover {
  text-decoration: underline;
}

.noor-contact-map__marker {
  --noor-map-marker-ring: rgba(0, 27, 68, 0.35);
  position: absolute;
  z-index: 2;
  inset-block-start: 50%;
  inset-inline-start: 50%;
  transform: translate(-50%, -50%);
  pointer-events: none;
  display: flex;
  align-items: center;
  justify-content: center;
}

.noor-contact-map__marker-ping {
  position: absolute;
  width: 6rem;
  height: 6rem;
  border-radius: 50%;
  background: var(--noor-map-marker-ring);
  opacity: 0.25;
  animation: noor-contact-map-ping 2s cubic-bezier(0, 0, 0.2, 1) infinite;
}

.noor-contact-map__marker-ring {
  position: absolute;
  width: 3rem;
  height: 3rem;
  border-radius: 50%;
  background: var(--noor-map-marker-ring);
  opacity: 0.45;
}

.noor-contact-map__marker-pin {
  position: relative;
  z-index: 1;
  width: 2rem;
  height: 2rem;
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  background: #001b44;
  color: #fff;
  font-size: 0.75rem;
  border: 2px solid #fff;
  box-shadow: 0 4px 12px rgba(17, 29, 37, 0.2);
}

@keyframes noor-contact-map-ping {
  0% {
    transform: scale(0.85);
    opacity: 0.35;
  }
  75%,
  100% {
    transform: scale(1.35);
    opacity: 0;
  }
}

@media (max-width: 767px) {
  .noor-contact-info__social--wide .noor-contact-info__social-links {
    grid-template-columns: 1fr;
  }

  .noor-contact-map__card {
    inset-inline-end: 1rem;
    inset-inline-start: 1rem;
    max-width: none;
    inset-block-start: 1rem;
  }
}

/* -------------------------------------------------------------------------
   Video playlist (YouTube / Aparat / uploads)
   ------------------------------------------------------------------------- */

.noor-video-playlist {
  --noor-vp-accent: #001b44;
  --noor-vp-accent-soft: rgba(0, 27, 68, 0.12);
  --noor-vp-border: rgba(0, 27, 68, 0.1);
  --noor-vp-shadow: 0 12px 40px rgba(17, 29, 37, 0.08);
  padding-block: clamp(1.5rem, 4vw, 2.75rem);
  max-width: 100%;
  overflow-x: clip;
}

/* Front + editor: pin Elementor selection accent if it leaks onto this widget */
.elementor-widget-noor_video_playlist.elementor-widget {
  --e-p-border-widget: var(--noor-color-primary, #001b44);
  --e-p-border-widget-hover: var(--noor-color-primary-container, #002f6c);
  --e-p-border-widget-invert: #ffffff;
}

.noor-video-playlist__inner {
  max-width: min(var(--noor-content-max-width, 1140px), 100%);
}

.noor-video-playlist__head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 1rem;
  flex-wrap: wrap;
  margin-bottom: 1.25rem;
  padding-bottom: 0.75rem;
  border-bottom: 2px solid var(--noor-vp-accent-soft);
}

.noor-video-playlist__title {
  margin: 0;
  font-size: clamp(1.15rem, 2.5vw, 1.5rem);
  font-weight: 700;
  color: var(--noor-vp-accent);
  letter-spacing: -0.02em;
}

.noor-video-playlist__count {
  font-size: 0.9rem;
  font-weight: 600;
  color: #475569;
  white-space: nowrap;
}

.noor-video-playlist__layout {
  display: flex;
  flex-direction: row;
  gap: clamp(0.75rem, 2vw, 1.5rem);
  /* flex-start: list height = content; player keeps 16:9 (no empty strip in sidebar) */
  align-items: flex-start;
  min-width: 0;
  width: 100%;
  max-width: 100%;
}

/* چیدمان پلیر/لیست و ترتیب با Elementor → استایل → چیدمان (selectors در CSS صفحه) */

.noor-video-playlist__list,
.noor-video-playlist__stage {
  order: 0;
}

.noor-video-playlist__list {
  flex: 0 0 min(100%, 26rem);
  align-self: flex-start;
  width: 100%;
  min-height: 0;
  height: fit-content;
  max-height: min(30rem, 62vh);
  overflow-x: hidden;
  overflow-y: auto;
  border-radius: 1rem;
  border: 1px solid var(--noor-vp-border);
  box-shadow: var(--noor-vp-shadow);
  scrollbar-width: thin;
  scrollbar-color: var(--noor-vp-accent-soft) transparent;
  /* Match Elementor canvas (editor) when parent is white on the front end */
  background: #f6f8fb;
  display: flex;
  flex-direction: column;
  gap: 0.45rem;
  /* Padding from Elementor → لیست کناری (avoid double padding with theme) */
  padding: 0;
}

/* چیدمان بندانگشتی/متن: کلاس‌های واکنش‌گرا noor-vpitem(-tablet|-mobile)--row|column */
.noor-video-playlist__item {
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  gap: 0.5rem;
  padding: 0.625rem 0.75rem;
  margin: 0;
  border: 1px solid var(--noor-vp-border);
  border-radius: 0.75rem;
  background: #fff;
  box-shadow: 0 1px 2px rgba(17, 29, 37, 0.04);
  cursor: pointer;
  text-align: inherit;
  font: inherit;
  color: inherit;
  transition: background 0.15s ease, border-color 0.15s ease, box-shadow 0.15s ease;
  -webkit-tap-highlight-color: transparent;
  user-select: none;
}

/* Native <button> defaults (padding, font, flex quirks) no longer apply — item is a div[role="button"] */
.noor-video-playlist__item[role='button'] {
  appearance: none;
  -webkit-appearance: none;
}

.noor-video-playlist__item:hover {
  background: #fafbfc;
  border-color: rgba(0, 27, 68, 0.12);
  box-shadow: 0 2px 6px rgba(17, 29, 37, 0.06);
}

.noor-video-playlist__item:focus {
  outline: none;
}

.noor-video-playlist__item:focus-visible {
  outline: 2px solid var(--noor-vp-accent);
  outline-offset: 2px;
}

.noor-video-playlist__item.is-active {
  background: #eef2f7;
  border-color: rgba(0, 27, 68, 0.1);
  box-shadow: 0 1px 3px rgba(0, 27, 68, 0.06);
}

.noor-video-playlist__item.is-active::before {
  content: '';
  position: absolute;
  inset-inline-start: 0;
  top: 0.55rem;
  bottom: 0.55rem;
  width: 3px;
  border-radius: 2px;
  background: var(--noor-vp-accent);
  pointer-events: none;
}

.noor-video-playlist__item-main {
  flex: 0 0 auto;
  min-width: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  gap: 0.2rem;
  text-align: start;
  padding-inline: 0.15rem;
}

@media (min-width: 1025px) {
  .elementor-widget-noor_video_playlist.noor-vpitem--row .noor-video-playlist__item {
    flex-direction: row;
    align-items: center;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem--row .noor-video-playlist__item-main {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
    align-self: center;
    padding-inline: 0.2rem 0.35rem;
  }

  /* Sizing from Elementor → ردیف‌های ویدیو (theme must not set width/flex-basis — higher specificity was blocking panel CSS) */
  .elementor-widget-noor_video_playlist.noor-vpitem--row .noor-video-playlist__item-thumb-wrap {
    align-self: center;
    width: auto;
    min-width: 0;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem--column .noor-video-playlist__item {
    flex-direction: column;
    align-items: stretch;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem--column .noor-video-playlist__item-thumb-wrap {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    align-self: stretch;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .elementor-widget-noor_video_playlist.noor-vpitem-tablet--row .noor-video-playlist__item,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-tablet--']).noor-vpitem--row .noor-video-playlist__item {
    flex-direction: row;
    align-items: center;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem-tablet--row .noor-video-playlist__item-main,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-tablet--']).noor-vpitem--row .noor-video-playlist__item-main {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
    align-self: center;
    padding-inline: 0.2rem 0.35rem;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem-tablet--row .noor-video-playlist__item-thumb-wrap,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-tablet--']).noor-vpitem--row .noor-video-playlist__item-thumb-wrap {
    align-self: center;
    width: auto;
    min-width: 0;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem-tablet--column .noor-video-playlist__item,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-tablet--']).noor-vpitem--column .noor-video-playlist__item {
    flex-direction: column;
    align-items: stretch;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem-tablet--column .noor-video-playlist__item-thumb-wrap,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-tablet--']).noor-vpitem--column .noor-video-playlist__item-thumb-wrap {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    align-self: stretch;
  }
}

@media (max-width: 767px) {
  .elementor-widget-noor_video_playlist.noor-vpitem-mobile--row .noor-video-playlist__item,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']).noor-vpitem-tablet--row .noor-video-playlist__item,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']):not([class*='noor-vpitem-tablet--']).noor-vpitem--row .noor-video-playlist__item {
    flex-direction: row;
    align-items: center;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem-mobile--row .noor-video-playlist__item-main,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']).noor-vpitem-tablet--row .noor-video-playlist__item-main,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']):not([class*='noor-vpitem-tablet--']).noor-vpitem--row .noor-video-playlist__item-main {
    flex: 1 1 auto;
    min-width: 0;
    justify-content: center;
    align-self: center;
    padding-inline: 0.15rem 0.3rem;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem-mobile--row .noor-video-playlist__item-thumb-wrap,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']).noor-vpitem-tablet--row .noor-video-playlist__item-thumb-wrap,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']):not([class*='noor-vpitem-tablet--']).noor-vpitem--row .noor-video-playlist__item-thumb-wrap {
    align-self: center;
    width: auto;
    min-width: 0;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem-mobile--column .noor-video-playlist__item,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']).noor-vpitem-tablet--column .noor-video-playlist__item,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']):not([class*='noor-vpitem-tablet--']).noor-vpitem--column .noor-video-playlist__item {
    flex-direction: column;
    align-items: stretch;
  }

  .elementor-widget-noor_video_playlist.noor-vpitem-mobile--column .noor-video-playlist__item-thumb-wrap,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']).noor-vpitem-tablet--column .noor-video-playlist__item-thumb-wrap,
  .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']):not([class*='noor-vpitem-tablet--']).noor-vpitem--column .noor-video-playlist__item-thumb-wrap {
    flex: 0 0 auto;
    width: 100%;
    max-width: none;
    align-self: stretch;
  }
}

/*
 * Elementor control «حداکثر عرض بندانگشتی» targets the thumb in all modes; in column/stacked
 * layout that becomes a % of the card and looks like a skinny centered thumb. Reset there only.
 */
@media (min-width: 1025px) {
  .elementor .elementor-widget-noor_video_playlist.noor-vpitem--column .noor-video-playlist__item-thumb-wrap,
  .elementor .elementor-widget-noor_video_playlist:not([class*='noor-vpitem--']) .noor-video-playlist__item-thumb-wrap {
    max-width: none !important;
    flex: 0 0 auto !important;
    width: 100%;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  .elementor .elementor-widget-noor_video_playlist.noor-vpitem-tablet--column .noor-video-playlist__item-thumb-wrap,
  .elementor .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-tablet--']).noor-vpitem--column .noor-video-playlist__item-thumb-wrap,
  .elementor .elementor-widget-noor_video_playlist:not([class*='noor-vpitem--']) .noor-video-playlist__item-thumb-wrap {
    max-width: none !important;
    flex: 0 0 auto !important;
    width: 100%;
  }
}

@media (max-width: 767px) {
  .elementor .elementor-widget-noor_video_playlist.noor-vpitem-mobile--column .noor-video-playlist__item-thumb-wrap,
  .elementor .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']).noor-vpitem-tablet--column .noor-video-playlist__item-thumb-wrap,
  .elementor .elementor-widget-noor_video_playlist:not([class*='noor-vpitem-mobile--']):not([class*='noor-vpitem-tablet--']).noor-vpitem--column .noor-video-playlist__item-thumb-wrap,
  .elementor .elementor-widget-noor_video_playlist:not([class*='noor-vpitem--']) .noor-video-playlist__item-thumb-wrap {
    max-width: none !important;
    flex: 0 0 auto !important;
    width: 100%;
  }
}

.noor-video-playlist__item-duration {
  font-size: 0.75rem;
  font-weight: 600;
  color: #64748b;
  font-variant-numeric: tabular-nums;
}

.noor-video-playlist__item-title {
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.4;
  color: #0f172a;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.noor-video-playlist__item-thumb-wrap {
  position: relative;
  flex: 0 0 auto;
  width: 100%;
  max-width: none;
  aspect-ratio: 16 / 9;
  border-radius: 0.6rem;
  overflow: hidden;
  background: #0a1628;
  align-self: stretch;
  box-shadow: inset 0 0 0 1px rgba(0, 27, 68, 0.06);
}

.noor-video-playlist__item-thumb {
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  max-height: none;
  object-fit: cover;
  object-position: center;
  display: block;
}

/*
 * Elementor frontend loads `.elementor img { height: auto; max-width: 100%; }` which wins over
 * a single class on the img and breaks 16:9 cover in the playlist. Editor canvas often looks
 * correct due to load order / iframe. Beat it with wrapper + img specificity.
 */
.elementor .noor-video-playlist img.noor-video-playlist__item-thumb {
  width: 100% !important;
  height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover;
  object-position: center;
  vertical-align: top;
}

.elementor .noor-video-playlist .noor-video-playlist__iframe,
.elementor .noor-video-playlist .noor-video-playlist__video {
  width: 100% !important;
  height: 100% !important;
  min-width: 100%;
  min-height: 100%;
  max-width: none !important;
}

/* Front end: avoid Elementor / kit magenta ring bleeding around the whole widget */
body:not(.elementor-editor-active) .elementor-widget-noor_video_playlist.elementor-element {
  outline: none;
}

body:not(.elementor-editor-active) .elementor-widget-noor_video_playlist.elementor-element:focus-within {
  outline: none;
  box-shadow: none;
}

.noor-video-playlist__item-thumb--placeholder {
  display: block;
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #1e3a5f 0%, #0a1628 100%);
}

.noor-video-playlist__item-play-icon {
  position: absolute;
  inset: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
  background: rgba(0, 0, 0, 0.35);
  pointer-events: none;
  transition: background 0.15s ease;
}

.noor-video-playlist__item:is(:hover, .is-active) .noor-video-playlist__item-play-icon {
  background: rgba(0, 27, 68, 0.45);
}

.noor-video-playlist__stage {
  flex: 1 1 55%;
  min-width: 0;
  max-width: 100%;
  display: flex;
  flex-direction: column;
  justify-content: flex-start;
  align-items: stretch;
}

/* One clip: hide sidebar (class from PHP; :only-child breaks with whitespace text nodes) */
.noor-video-playlist__list--single {
  display: none;
}

.noor-video-playlist__layout:has(.noor-video-playlist__list--single) .noor-video-playlist__stage {
  flex: 1 1 100%;
  max-width: 100%;
}

/*
 * Player: strict 16:9 from width only. A min-height here fought aspect-ratio and left
 * extra letterboxing inside the embed.
 */
.noor-video-playlist__stage-surface {
  position: relative;
  width: 100%;
  flex: 0 0 auto;
  aspect-ratio: 16 / 9;
  max-width: 100%;
  min-width: 0;
  background: #0a1628;
  border-radius: 1rem;
  overflow: hidden;
  border: 1px solid var(--noor-vp-border);
  box-shadow: var(--noor-vp-shadow);
}

.noor-video-playlist__iframe,
.noor-video-playlist__video {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  min-width: 100%;
  min-height: 100%;
  border: 0;
  display: block;
}

.noor-video-playlist__video {
  background: #000;
}
