/* Pre-footer CTA band + site footer with the dotted Iran map (province tour). Everything is prefixed `footer`. */

/* ---------- Shared glass (opaque fallback first; translucent frost when backdrop-filter is supported) ---------- */
.footer-glass{--footer-frost:blur(24px) saturate(160%);position:relative;isolation:isolate;background:#0f1e24;box-shadow:0 24px 60px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.14)}
.footer-glass:before{content:"";position:absolute;inset:0;z-index:2;border-radius:inherit;padding:1px;pointer-events:none;background:linear-gradient(180deg,rgba(255,255,255,.22),rgba(255,255,255,.06));-webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);mask-composite:exclude;transition:background .14s var(--ease)}
.footer-glass:after{content:"";position:absolute;inset:0;z-index:0;border-radius:inherit;pointer-events:none;background:linear-gradient(118deg,transparent 22%,rgba(255,255,255,.075) 40%,rgba(255,255,255,.02) 52%,transparent 64%) 0 0/160% 100% no-repeat;-webkit-mask:linear-gradient(180deg,#000,transparent 62%);mask:linear-gradient(180deg,#000,transparent 62%)}
.footer-glass>*{position:relative;z-index:1}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){
  .footer-glass{background:linear-gradient(180deg,rgba(255,255,255,.07),rgba(255,255,255,.02)),rgba(8,19,29,.34);-webkit-backdrop-filter:var(--footer-frost);backdrop-filter:var(--footer-frost)}
}

.footer-sr{position:absolute;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0}
:is(.footer-cta,.footer) :is(a,button):focus{outline:none}
:is(.footer-cta,.footer) :is(a,button):focus-visible{outline:3px solid #2dd4bf;outline-offset:2px}

/* ---------- Part 1: pre-footer CTA band ---------- */
.footer-cta{position:relative;isolation:isolate;padding:96px 0 64px;overflow:clip}
.footer-cta__inner{position:relative;width:var(--container);margin:0 auto}

.footer-cta__panel{z-index:1;display:flex;align-items:center;justify-content:space-between;gap:40px;padding:56px 64px;border-radius:24px}
.footer-cta__text{max-width:600px}
.footer-cta__title{margin:0;color:var(--white);font-size:clamp(24px,2.6vw,34px);font-weight:700;line-height:1.5;text-wrap:balance}
.footer-cta__sub{margin:12px 0 0;color:#a9bdc0;font-size:15px;line-height:1.9;text-wrap:pretty}
.footer-cta__actions{display:flex;align-items:center;gap:12px;flex:none}
.footer-cta__btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:48px;padding:0 24px;border-radius:12px;font-size:15px;font-weight:700;line-height:1.4;text-decoration:none;white-space:nowrap;transition:background-color .14s var(--ease),color .14s var(--ease),box-shadow .14s var(--ease)}
.footer-cta__btn--primary{background:#0db8a8;color:#050d14;box-shadow:0 10px 26px rgba(13,184,168,.22)}
.footer-cta__btn--primary:hover{background:#00d1c1;color:#050d14;box-shadow:0 12px 30px rgba(0,209,193,.3)}
.footer-cta__btn--primary:active{background:#0ea89b}
.footer-cta__btn--ghost{color:var(--white)}
.footer-cta__btn--ghost:hover{color:var(--white);box-shadow:0 24px 60px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.18),inset 0 0 0 1px rgba(0,209,193,.45)}
.footer-cta__btn--ghost:hover:before{background:linear-gradient(180deg,rgba(0,209,193,.7),rgba(0,209,193,.3))}
.footer-cta__btn svg{display:block;width:18px;height:18px;fill:none;stroke:var(--cyan);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}

/* ---------- Part 2: footer ---------- */
.footer{position:relative;isolation:isolate;color:var(--white);overflow:clip}
.footer-inner{width:var(--container);margin:0 auto}
.footer-main{display:grid;grid-template-columns:minmax(0,42fr) minmax(0,58fr);align-items:center;gap:56px;padding:88px 0 72px}

.footer-brand{display:inline-flex;align-items:center;gap:10px;padding:6px 0;border-radius:8px;color:var(--white);text-decoration:none}
.footer-brand:hover{color:var(--white)}

.footer-title{margin:22px 0 0;color:var(--white);font-size:clamp(24px,2.6vw,34px);font-weight:700;line-height:1.55;text-wrap:balance}
.footer-title__hl{color:var(--cyan);text-shadow:0 0 8px rgba(0,209,193,.3),0 0 22px rgba(0,209,193,.14)}
.footer-lead{max-width:46ch;margin:14px 0 0;color:#a9bdc0;font-size:15px;line-height:1.9;text-wrap:pretty}

.footer-contact{margin:28px 0 0;font-style:normal}
.footer-contact__list{display:grid;gap:14px;margin:0;padding:0;list-style:none}
.footer-contact__item{display:flex;align-items:flex-start;gap:12px;color:#a9bdc0;font-size:14px;line-height:1.8}
.footer-contact__icon{display:block;flex:none;width:20px;height:20px;margin-top:2px;fill:none;stroke:var(--cyan-2);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.footer-contact__link{color:var(--white);text-decoration:underline;text-decoration-color:rgba(0,209,193,.45);text-underline-offset:5px;transition:color .14s var(--ease),text-decoration-color .14s var(--ease)}
.footer-contact__link:hover{color:var(--cyan);text-decoration-color:var(--cyan)}

.footer-social{display:flex;flex-wrap:wrap;gap:10px;margin:28px 0 0;padding:0;list-style:none}
.footer-social__link{--footer-frost:blur(16px) saturate(160%);display:grid;place-items:center;width:40px;height:40px;border-radius:50%;color:#a9bdc0;transition:color .14s var(--ease),box-shadow .14s var(--ease)}
.footer-social__link svg{display:block;width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.footer-social__link:hover{color:var(--cyan);box-shadow:0 16px 40px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.16),inset 0 0 0 1px rgba(0,209,193,.5),0 0 18px rgba(0,209,193,.14)}

/* Map */
.footer-map{position:relative;display:flex;justify-content:center;align-items:center;min-width:0}
.footer-map:before{content:"";position:absolute;inset:-6% -4%;z-index:-1;pointer-events:none;background:radial-gradient(ellipse 50% 46% at 42% 34%,rgba(30,80,92,.22),transparent 72%)}
.footer-map__stage{position:relative;width:100%;max-width:calc(600px * 1000 / 907);aspect-ratio:1000/907;-webkit-tap-highlight-color:transparent}
.footer-map__canvas,.footer-map__overlay{position:absolute;inset:0;display:block;width:100%;height:100%}
.footer-map__overlay{overflow:visible;pointer-events:none}
.footer-map__labels{position:absolute;inset:0;pointer-events:none}

.footer-map__hq-halo{transform-box:fill-box;transform-origin:center;animation:footerBreathe 4s ease-in-out infinite}
.footer-map__hq-core{fill:#e6fffb;stroke:var(--cyan);stroke-width:1}
.footer-map__hq-ring{fill:none;stroke:var(--cyan);stroke-width:1;opacity:0;transform-box:fill-box;transform-origin:center}
.footer-map__hq--pulse .footer-map__hq-ring{animation:footerHqPulse 1.6s var(--ease)}
.footer-map__hq--pulse .footer-map__hq-mid{animation:footerHqFlash 1.6s var(--ease)}
@keyframes footerBreathe{0%,100%{transform:scale(.82);opacity:.7}50%{transform:scale(1.14);opacity:1}}
@keyframes footerHqPulse{0%{transform:scale(1);opacity:.9}100%{transform:scale(5.5);opacity:0}}
@keyframes footerHqFlash{0%{transform:scale(1)}30%{transform:scale(1.6)}100%{transform:scale(1)}}
.footer-map__hq-mid{transform-box:fill-box;transform-origin:center}

.footer-map__arc-trace{fill:none;stroke:var(--cyan-2);stroke-width:1;opacity:.28}
.footer-map__arc-glow{fill:none;stroke:var(--cyan);stroke-width:6;stroke-linecap:round;opacity:.22}
.footer-map__arc-tail{fill:none;stroke:var(--cyan);stroke-width:1.5;stroke-linecap:round;opacity:.38}
.footer-map__arc-head{fill:none;stroke:#bffaf3;stroke-width:1.5;stroke-linecap:round}

.footer-map__leader{opacity:0}
.footer-map__leader line{stroke:rgba(230,243,241,.45);stroke-width:1}
.footer-map__leader circle{fill:var(--cyan)}

.footer-map__label{--footer-frost:blur(14px) saturate(160%);position:absolute;left:0;top:0;padding:3px 10px;border-radius:8px;color:var(--white);font-size:12px;line-height:1.7;white-space:nowrap;opacity:0}
.footer-map__hq-label{position:absolute;left:0;top:0;color:var(--muted);font-size:11px;line-height:1.6;white-space:nowrap;text-shadow:0 0 3px var(--navy),0 0 6px var(--navy)}

/* Link columns */
.footer-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:40px;padding:48px 0;border-top:1px solid rgba(185,221,227,.1)}
.footer-col{min-width:0}
.footer-col__title{margin:0 0 18px;color:var(--white);font-size:14px;font-weight:700;line-height:1.6}
.footer-col__toggle{display:none}
.footer-col__list{display:grid;justify-items:start;gap:10px;margin:0;padding:0;list-style:none}
.footer-col__link{position:relative;display:inline-block;color:#a9bdc0;font-size:14px;line-height:1.7;text-decoration:none;transition:color .14s var(--ease)}
.footer-col__link:after{content:"";position:absolute;right:0;bottom:-1px;width:18px;height:1px;background:var(--cyan);transform:scaleX(0);transform-origin:right;transition:transform .24s var(--ease)}
.footer-col__link:hover{color:var(--white)}
.footer-col__link:hover:after,.footer-col__link:focus-visible:after{transform:scaleX(1)}

/* Trust badges */
.footer-badges{display:grid;grid-template-columns:repeat(2,96px);gap:12px;margin:0;padding:0;list-style:none}
.footer-badge{--footer-frost:blur(16px) saturate(160%);display:grid;place-items:center;width:96px;height:96px;border-radius:12px}
.footer-badge{cursor:default}
.footer-badge:hover{box-shadow:0 24px 60px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.18),inset 0 0 0 1px rgba(0,209,193,.4)}
.footer-badge__mark{display:block;width:68px;height:68px;background:#e6f3f1;opacity:.85;-webkit-mask:var(--footer-badge-logo) center/contain no-repeat;mask:var(--footer-badge-logo) center/contain no-repeat;transition:background .3s var(--ease),filter .3s var(--ease)}
.footer-badge__mark--enamad{--footer-badge-logo:url('footer/badges/enamad.webp')}
.footer-badge__mark--chamber{--footer-badge-logo:url('footer/badges/tehran-chamber.webp')}
.footer-badge__mark--informatics{--footer-badge-logo:url('footer/badges/informatics-council.webp')}
.footer-badge__mark--guild{--footer-badge-logo:url('footer/badges/computer-guild.webp')}
.footer-badge:hover .footer-badge__mark{background:var(--cyan);filter:drop-shadow(0 0 8px rgba(0,209,193,.4))}

.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:8px 24px;padding:22px 0 28px;border-top:1px solid rgba(185,221,227,.1);color:var(--muted);font-size:12px;line-height:1.7}
.footer-bottom__copy{margin:0}
.footer-bottom__credit{color:var(--muted);text-decoration:none;transition:color .14s var(--ease)}
.footer-bottom__credit:hover{color:var(--white);text-decoration:underline;text-underline-offset:3px}

/* ---------- Tablet ---------- */
@media (max-width:980px){
  .footer-cta__panel{flex-direction:column;align-items:flex-start;gap:28px;padding:48px 44px}
  .footer-main{grid-template-columns:minmax(0,1fr);gap:44px;padding:72px 0 56px}
  .footer-map{order:-1}
  .footer-map__stage{max-width:calc(485px * 1000 / 907)}
  .footer-links{grid-template-columns:repeat(2,minmax(0,1fr));gap:40px 32px}
}

/* ---------- Mobile ---------- */
@media (max-width:680px){
  .footer-cta{padding:72px 0 48px}
  .footer-cta__panel{--footer-frost:blur(16px) saturate(160%);align-items:stretch;gap:28px;padding:36px 22px;border-radius:20px;text-align:center}
  .footer-cta__text{max-width:none}
  .footer-cta__sub{font-size:14px}
  .footer-cta__actions{flex-direction:column;align-items:stretch;width:100%}
  .footer-cta__btn{width:100%}

  .footer-main{gap:32px;padding:56px 0 40px}
  .footer-map__stage{max-width:none}
  .footer-map__label{font-size:11px;padding:2px 8px}
  .footer-lead{font-size:14px}

  .footer-links{grid-template-columns:minmax(0,1fr);gap:0;padding:8px 0 40px}
  .footer-col:not(.footer-col--badges){border-bottom:1px solid rgba(185,221,227,.1)}
  .footer-col:not(.footer-col--badges) .footer-col__title{margin:0}
  .footer-col:not(.footer-col--badges) .footer-col__label{display:none}
  .footer-col__toggle{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;min-height:52px;margin:0;padding:0;border:0;background:none;color:var(--white);font:inherit;font-size:14px;font-weight:700;text-align:start;cursor:pointer;-webkit-tap-highlight-color:transparent}
  .footer-col__toggle svg{display:block;width:18px;height:18px;fill:none;stroke:var(--cyan);stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;transition:transform .24s var(--ease)}
  .footer-col__toggle[aria-expanded="true"] svg{transform:rotate(180deg)}
  .footer-col:not(.footer-col--badges) .footer-col__panel{display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows .24s var(--ease),visibility 0s linear .24s}
  .footer-col--open .footer-col__panel{grid-template-rows:1fr;visibility:visible;transition:grid-template-rows .24s var(--ease)}
  .footer-col__clip{min-height:0;overflow:hidden}
  .footer-col:not(.footer-col--badges) .footer-col__list{padding:2px 0 20px}
  .footer-col--badges{padding-top:28px}
  .footer-badges{justify-content:start}

  .footer-bottom{flex-direction:column;justify-content:center;text-align:center;gap:4px;padding:20px 0 26px}
}

@media (prefers-reduced-motion:reduce){
  .footer-badge__mark{transition:none}
  .footer-map__hq-halo,.footer-map__hq--pulse .footer-map__hq-ring,.footer-map__hq--pulse .footer-map__hq-mid{animation:none}
  .footer-map__hq-halo{transform:none;opacity:1}
  .footer-cta__btn,.footer-social__link,.footer-col__link,.footer-col__link:after,.footer-col__toggle svg,.footer-contact__link,.footer-col__panel{transition:none!important}
}

/* Pending catalog links retain their normal appearance until destinations are supplied. */
.footer-col__link[data-footer-pending],.footer-col__link[data-footer-pending]:hover{color:#a9bdc0;cursor:default;text-decoration:none;pointer-events:none}
.footer-col__link[data-footer-pending]:after{content:none}
