/* ═══════════════════════════════════════════════════════════
   هشت — فوتر مینیمال با آیکون‌های ارتباطی
   ═══════════════════════════════════════════════════════════ */

/* فوتر گنبدی: دو گوشهٔ بالا کشیده + هالهٔ نرم به‌جای خط جداکننده */
.site-footer {
  position: relative;
  z-index: 2;
  margin-top: 0;
  background: var(--bg);
  color: var(--text);
  border-start-start-radius: var(--footer-arc);
  border-start-end-radius: var(--footer-arc);
  box-shadow: var(--footer-halo);
  transition:
    background-color var(--theme-dur) var(--ease-out),
    color var(--theme-dur) var(--ease-out),
    box-shadow var(--theme-dur) var(--ease-out);

  --footer-arc: clamp(2rem, 7vw, 5.5rem);
}

/* روشنایی محو روی قوس — انحنا را بدون خط سخت نمایان می‌کند */
.site-footer::before {
  content: "";
  position: absolute;
  inset: 0 0 auto;
  height: var(--footer-arc);
  pointer-events: none;
  border-start-start-radius: inherit;
  border-start-end-radius: inherit;
  background: linear-gradient(to bottom, var(--footer-lip), transparent 75%);
}

.footer__grid {
  display: grid;
  grid-template-columns: minmax(0, 3.5fr) minmax(0, 2fr) minmax(0, 3fr) minmax(0, 3.5fr);
  gap: clamp(2rem, 4vw, 3.5rem);
  padding-block: clamp(3rem, 6vw, 4.5rem);
}

.footer__heading {
  font-size: 0.95rem;
  font-weight: 700;
  margin-bottom: 1.1rem;
  padding-bottom: 0.6rem;
  border-bottom: 1px solid var(--line);
}

.footer__logo {
  height: 3.25rem;
  width: auto;
  margin-bottom: 1rem;
}

.footer__name {
  font-size: 1.05rem;
  font-weight: 800;
  margin-bottom: 0.15rem;
}

.footer__slogan {
  font-size: 0.875rem;
  color: var(--c-gold);
  font-weight: 500;
  margin-bottom: 0.9rem;
}

.footer__about {
  font-size: 0.875rem;
  color: var(--text-faint);
  max-width: 20rem;
  margin-bottom: 1.15rem;
}

/* مجوزها: هم‌عرض متن درباره هشت */
.footer__licenses {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 0.55rem;
  width: 100%;
  max-width: 20rem;
  margin-top: 0.15rem;
  list-style: none;
  padding: 0;
}

.footer__licenses li {
  aspect-ratio: 1;
  width: 100%;
  height: auto;
  max-width: none;
  display: grid;
  place-items: center;
  border-radius: 0.5rem;
  background: var(--logo-plate-bg);
  border: 1px solid var(--logo-plate-border);
  box-shadow: var(--logo-plate-shadow);
  overflow: hidden;
  padding: 0.35rem;
  transition:
    border-color var(--dur) var(--ease-out),
    transform var(--dur) var(--ease-out),
    box-shadow var(--dur) var(--ease-out),
    background-color var(--dur) var(--ease-out);
}

.footer__licenses li:hover {
  border-color: var(--c-gold);
  transform: translateY(-2px);
  box-shadow: var(--logo-plate-shadow-hover);
}

.footer__licenses img {
  width: 100%;
  height: 100%;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  display: block;
}

.footer__licenses .license-link {
  display: grid;
  place-items: center;
  width: 100%;
  height: 100%;
  padding: 0;
  margin: 0;
  border: none;
  background: transparent;
  cursor: pointer;
  color: inherit;
}

.footer__licenses .license-link:focus-visible {
  outline: 2px solid var(--c-gold);
  outline-offset: 2px;
}

.footer__addr-text {
  font-style: normal;
  font-size: 0.9rem;
  line-height: 1.9;
  color: var(--text-dim);
  margin-bottom: 1rem;
}

.footer__nav {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}

.footer__nav a {
  font-size: 0.9rem;
  color: var(--text-dim);
  padding-block: 0.3rem;
  transition: color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

.footer__nav a:hover {
  color: var(--c-gold);
  transform: translateX(-4px);
}

/* تلفن */
.footer__phone {
  display: flex;
  flex-direction: column;
  gap: 0.1rem;
  margin-bottom: 1rem;
}

.footer__phone-label {
  font-size: var(--fs-caption);
  color: var(--text-faint);
}

.footer__phone-num {
  font-size: 1.15rem;
  font-weight: 800;
  color: var(--text);
  letter-spacing: 0.03em;
  transition: color var(--dur) var(--ease-out);
}

.footer__phone:hover .footer__phone-num {
  color: var(--c-gold);
}

/* ردیف هفت شبکه اجتماعی ثابت */
.footer__icons {
  display: flex;
  flex-wrap: wrap;
  gap: 0.55rem;
}

.icon-btn {
  display: grid;
  place-items: center;
  width: 2.55rem;
  height: 2.55rem;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  color: var(--text-dim);
  background: transparent;
  transition:
    color var(--dur) var(--ease-out),
    border-color var(--dur) var(--ease-out),
    background-color var(--dur) var(--ease-out),
    transform var(--dur) var(--ease-out);
}

.icon-btn svg {
  width: 1.15rem;
  height: 1.15rem;
  fill: currentColor;
}


.social-brand-icon{width:1.18rem;height:1.18rem;display:block;object-fit:contain}
.social-brand-icon--mono{filter:brightness(0) saturate(100%);opacity:.78}
html[data-theme="dark"] .social-brand-icon--mono{filter:brightness(0) invert(1);opacity:.8}
.icon-btn:hover .social-brand-icon--mono{filter:brightness(0);opacity:1}
.icon-btn:hover {
  color: var(--on-gold);
  background: var(--c-gold);
  border-color: var(--c-gold);
  transform: translateY(-3px);
}

/* نشانی: دکمه لوکیشن */
.footer__location-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.7rem;
  padding: 0.7rem 1.1rem;
  margin-bottom: 1rem;
  border: 1px solid var(--line-strong);
  border-radius: 999px;
  background: transparent;
  color: var(--text);
  cursor: pointer;
  font-size: 0.9rem;
  font-weight: 600;
  transition:
    border-color var(--dur) var(--ease-out),
    color var(--dur) var(--ease-out),
    transform var(--dur) var(--ease-out);
}

.footer__location-btn svg {
  width: 1.2rem;
  height: 1.2rem;
  fill: var(--c-gold);
  flex-shrink: 0;
}

.footer__location-btn:hover {
  border-color: var(--c-gold);
  color: var(--c-gold);
  transform: translateY(-2px);
}

.footer__map-trigger {
  position: relative;
  display: block;
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius);
  overflow: hidden;
  aspect-ratio: 16 / 9;
  cursor: pointer;
  padding: 0;
  background: var(--bg);
}

.footer__map-trigger iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
  pointer-events: none;
  filter: var(--map-filter, none);
}


/* پیش‌نمایش محلی نقشه؛ اتصال خارجی فقط پس از کلیک کاربر برقرار می‌شود. */
.footer__map-trigger::before {
  content: "⌖  نمایش موقعیت روی نقشه";
  position: absolute;
  inset: 0;
  z-index: 1;
  display: grid;
  place-items: center;
  padding: 1rem;
  color: var(--text-dim);
  font-size: 0.9rem;
  font-weight: 700;
  background:
    radial-gradient(circle at 50% 42%, color-mix(in srgb, var(--c-gold) 18%, transparent), transparent 24%),
    linear-gradient(135deg, var(--bg-soft), var(--bg-card));
}

.footer__map-trigger iframe[data-map-loaded="true"] + * {
  pointer-events: none;
}

.footer__map-trigger::after {
  content: "برای بزرگ‌نمایی کلیک کنید";
  position: absolute;
  inset-inline: 0;
  bottom: 0;
  padding: 0.55rem;
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--c-paper);
  background: linear-gradient(to top, color-mix(in srgb, var(--bg) 85%, transparent), transparent);
  text-align: center;
  opacity: 0;
  transition: opacity var(--dur) var(--ease-out);
}

.footer__map-trigger:hover::after {
  opacity: 1;
}

[data-theme="dark"] {
  --map-filter: grayscale(1) invert(0.9) hue-rotate(180deg) brightness(0.9) contrast(0.92);
}

[data-theme="light"] {
  --map-filter: grayscale(0.85) contrast(0.95);
}

.footer__bar {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 0.5rem 2rem;
  padding-block: 1.4rem;
  border-top: 1px solid var(--line);
  font-size: 0.8rem;
  color: var(--text-faint);
}

.footer__bar-en {
  direction: ltr;
  letter-spacing: 0.06em;
}

@media (max-width: 64rem) {
  .footer__grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 40rem) {
  .footer__grid {
    grid-template-columns: 1fr;
    gap: 2.25rem;
  }
}
.footer__logo{width:auto!important;height:7.5rem!important;object-fit:contain;object-position:center}

/* R149 — official user-supplied Eitaa/Bale/Rubika brand marks inside existing icon buttons. */
.icon-btn .social-brand-icon {
  width: 1.45rem;
  height: 1.45rem;
  display: block;
  object-fit: contain;
  border-radius: .34rem;
}
.icon-btn:hover .social-brand-icon { transform: scale(1.04); }

/* R163 server-rendered CMS shell social fallback. */
.footer__social-letter{display:grid;place-items:center;width:100%;height:100%;font-size:.78rem;font-weight:900;line-height:1}

/* R204 — صفحه تماس فقط نقشه زنده دارد و trigger مودال در فوتر غیرفعال است. */
.hasht-contact-page .footer__map-trigger--static{cursor:default;pointer-events:none}
.hasht-contact-page .footer__map-trigger--static::before,
.hasht-contact-page .footer__map-trigger--static::after{display:none!important}


/* R238 — explicit pending-license state and modal. */
.footer__licenses .footer__licenses-empty--pending {
  grid-column:1/-1; width:100%; min-height:4.5rem; aspect-ratio:auto; padding:0; background:transparent; border-style:dashed;
}
.footer__licenses .footer__licenses-empty--pending:hover { transform:none; box-shadow:none; }
.footer-license-pending-trigger { width:100%; min-height:4.5rem; border:0; background:transparent; color:var(--text-dim); font:inherit; font-weight:800; cursor:pointer; }
.footer-license-pending-trigger:hover,.footer-license-pending-trigger:focus-visible { color:var(--c-gold); outline:none; }
.footer-license-pending-modal__panel { width:min(28rem,calc(100vw - 2rem)); }
.footer-license-pending-modal__body { padding:2rem 1.35rem 2.25rem; text-align:center; }
.footer-license-pending-modal__body p { margin:0; font-size:1rem; font-weight:850; line-height:2; color:var(--text); }

/* R241: a registered license image without a published verification link remains interactive and opens status modal. */
.license-link--pending{appearance:none;-webkit-appearance:none;border:0;padding:0;margin:0;background:transparent;font:inherit;color:inherit;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}
.license-link--pending:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px;border-radius:.35rem}


/* R254 — pending-license status is a true global dialog, including Membership. */
.footer-license-pending-modal { z-index:13050!important; }
.footer-license-pending-modal__panel { isolation:isolate; }
@media (max-width:767px) {
  .footer-license-pending-modal {
    place-items:center!important;
    padding:1rem!important;
  }
  .footer-license-pending-modal .footer-license-pending-modal__panel {
    align-self:center!important;
    width:min(28rem,calc(100vw - 2rem))!important;
    border-radius:1rem!important;
  }
}

/* R259 — footer phone always uses the site font and Persian numeral glyph context. */
.footer__phone-num{
  font-family:var(--font,"Vazir","Vazirmatn Variable","Vazirmatn",Tahoma,Arial,sans-serif)!important;
  font-language-override:"FAR";
  font-feature-settings:"locl" 1;
}

/* R295 — footer map is a non-interactive visual preview; the modal owns interaction. */
.footer__map-trigger.has-map-preview::before { display:none !important; }
.footer__map-trigger.has-map-preview iframe {
  opacity:1;
  visibility:visible;
  pointer-events:none !important;
}
.footer__map-trigger--static { cursor:default; }
.footer__map-trigger--static::after { display:none !important; }

/* ═══════════════════════════════════════════════════════════
   R299 — hierarchical footer flyout navigation
   Parent rows stay in the quick-access column; children open immediately
   on its LEFT edge. Flyout height is clamped to the footer grid and scrolls
   internally instead of increasing/overflowing the footer.
   ═══════════════════════════════════════════════════════════ */
.footer__nav[data-footer-menu-r300] {
  position: relative;
  z-index: 18;
  overflow: visible;
  isolation: isolate;
}

.footer__menu-list {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  width: 100%;
  min-width: 0;
  overflow: visible;
}

.footer__menu-group {
  position: relative;
  width: 100%;
  min-width: 0;
}

.footer__menu-link,
.footer__menu-trigger {
  width: 100%;
  min-height: 2.15rem;
  display: flex;
  align-items: center;
  gap: .55rem;
  padding: .3rem 0;
  border: 0;
  background: transparent;
  color: var(--text-dim);
  font: inherit;
  font-size: .9rem;
  line-height: 1.65;
  text-align: right;
  cursor: pointer;
  transition: color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

.footer__menu-trigger {
  justify-content: flex-start;
}

.footer__menu-trigger > span {
  min-width: 0;
}

.footer__menu-trigger svg {
  width: .95rem;
  height: .95rem;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  opacity: .72;
  transition: transform var(--dur) var(--ease-out), opacity var(--dur) var(--ease-out);
}

.footer__menu-link:hover,
.footer__menu-link:focus-visible,
.footer__menu-trigger:hover,
.footer__menu-trigger:focus-visible,
.footer__menu-group.is-open > .footer__menu-trigger {
  color: var(--c-gold);
  transform: translateX(-4px);
  outline: 0;
}

.footer__menu-group.is-open > .footer__menu-trigger svg {
  transform: translateX(-2px);
  opacity: 1;
}

.footer__submenu {
  --footer-submenu-top: 0px;
  --footer-submenu-max-height: 20rem;
  position: absolute;
  z-index: 120;
  top: var(--footer-submenu-top);
  right: calc(100% + .65rem);
  width: max-content;
  min-width: 13.75rem;
  max-width: min(23rem, 38vw);
  max-height: var(--footer-submenu-max-height);
  padding: .48rem;
  margin: 0;
  display: flex;
  flex-direction: column;
  align-items: stretch;
  overflow-x: hidden;
  overflow-y: auto;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
  border: 1px solid var(--line);
  border-radius: 1rem;
  background: color-mix(in srgb, var(--bg-card, var(--bg)) 96%, transparent);
  box-shadow: 0 16px 42px rgba(7, 15, 32, .16);
  backdrop-filter: blur(16px);
  -webkit-backdrop-filter: blur(16px);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateX(.5rem) scale(.985);
  transform-origin: right top;
  transition:
    opacity 150ms var(--ease-out),
    transform 170ms var(--ease-out),
    visibility 0s linear 170ms;
}

.footer__menu-group.is-open > .footer__submenu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateX(0) scale(1);
  transition-delay: 0s;
}

.footer__submenu a,
.footer__submenu-empty {
  display: block;
  width: 100%;
  min-width: 0;
  padding: .58rem .72rem;
  border-radius: .68rem;
  color: var(--text-dim);
  font-size: .875rem;
  line-height: 1.65;
  text-align: right;
  white-space: normal;
  overflow-wrap: break-word;
  transition: color var(--dur) var(--ease-out), background-color var(--dur) var(--ease-out), transform var(--dur) var(--ease-out);
}

.footer__submenu a:hover,
.footer__submenu a:focus-visible {
  color: var(--c-gold);
  background: var(--bg-soft);
  transform: translateX(-2px);
  outline: 0;
}

.footer__submenu-empty {
  color: var(--text-faint);
}

/* The flyout is intentionally allowed to overlay neighbouring footer columns. */
.footer__grid,
.site-footer {
  overflow: visible;
}

@media (max-width: 820px) {
  .footer__nav[data-footer-menu-r300],
  .footer__menu-list,
  .footer__menu-group {
    overflow: hidden;
  }

  .footer__submenu {
    position: static;
    width: 100%;
    min-width: 0;
    max-width: none;
    max-height: 0;
    padding: 0 .45rem;
    margin: 0;
    border-width: 0;
    border-radius: .8rem;
    box-shadow: none;
    backdrop-filter: none;
    -webkit-backdrop-filter: none;
    opacity: 0;
    visibility: hidden;
    transform: none;
    overflow-y: hidden;
    transition: max-height 220ms var(--ease-out), opacity 160ms var(--ease-out), padding 220ms var(--ease-out), visibility 0s linear 220ms;
  }

  .footer__menu-group.is-open > .footer__submenu {
    max-height: min(18rem, 52vh);
    padding: .35rem .45rem;
    margin-block: .2rem .4rem;
    border-width: 1px;
    overflow-y: auto;
    opacity: 1;
    visibility: visible;
    transition-delay: 0s;
  }

  .footer__menu-trigger svg {
    transform: rotate(-90deg);
  }

  .footer__menu-group.is-open > .footer__menu-trigger svg {
    transform: rotate(90deg);
  }
}

/* R300 — mouse-wheel ownership for tall footer flyouts. */
.footer__nav[data-footer-menu-r300] .footer__submenu {
  touch-action: pan-y;
  scroll-behavior: auto;
  scrollbar-width: thin;
  scrollbar-color: color-mix(in srgb, var(--c-gold) 44%, var(--line)) transparent;
}
.footer__nav[data-footer-menu-r300] .footer__submenu::-webkit-scrollbar { width: .46rem; }
.footer__nav[data-footer-menu-r300] .footer__submenu::-webkit-scrollbar-track { background: transparent; }
.footer__nav[data-footer-menu-r300] .footer__submenu::-webkit-scrollbar-thumb {
  border-radius: 999px;
  background: color-mix(in srgb, var(--c-gold) 42%, var(--line));
}
.footer__nav[data-footer-menu-r300] .footer__submenu:hover::-webkit-scrollbar-thumb {
  background: color-mix(in srgb, var(--c-gold) 66%, var(--line));
}

/* R317 — safe text fallback for a registered license that has no badge image. */
.footer__licenses .license-code-card{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.2rem;text-align:center;padding:.25rem;overflow:hidden}
.footer__licenses .license-code-card strong{font-size:.7rem;line-height:1.45;color:var(--text);font-weight:850}
.footer__licenses .license-code-card span{max-width:100%;font-size:.62rem;line-height:1.35;color:var(--text-dim);direction:ltr;unicode-bidi:plaintext;overflow-wrap:anywhere}
@media (max-width:640px){.footer__licenses{grid-template-columns:repeat(4,minmax(0,1fr));gap:.45rem}.footer__licenses .license-code-card strong{font-size:.64rem}.footer__licenses .license-code-card span{font-size:.56rem}}


/* R330 — footer submenu Hasht custom scrollbar. */
.footer__nav[data-footer-menu-r300] .footer__submenu{scrollbar-width:none;padding-right:1.15rem}
.footer__nav[data-footer-menu-r300] .footer__submenu::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
.footer__submenu-scroll-r330.custom-scroll__rail{position:absolute!important;inset:.45rem .22rem .45rem auto!important;right:.22rem!important;left:auto!important;width:.55rem!important;height:auto!important;z-index:6;pointer-events:auto}
.footer__submenu-scroll-r330 .custom-scroll__thumb{left:50%;right:auto;width:.27rem;min-height:1.8rem;border-radius:999px;background:rgb(var(--smart-scroll-rgb,240,180,41));box-shadow:0 0 .7rem rgba(240,180,41,.28);transform:translate(-50%,0)}
.footer__submenu:hover .footer__submenu-scroll-r330 .custom-scroll__thumb{width:.35rem;box-shadow:0 0 1rem rgba(240,180,41,.48)}
@media(max-width:820px){.footer__nav[data-footer-menu-r300] .footer__submenu{padding-right:1.05rem}.footer__submenu-scroll-r330.custom-scroll__rail{right:.16rem!important}}
