.contact-page-shell,
.news-page-shell { min-height:100vh; padding-top:calc(var(--header-h) + clamp(1.6rem,4vw,3.2rem)); padding-bottom:clamp(3rem,7vw,6rem); }
.contact-page { display:grid; }
.contact-page__grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:clamp(1rem,2.5vw,2rem); align-items:stretch; }
.contact-card { position:relative; height:100%; border:1px solid var(--line); border-radius:1.6rem; background:color-mix(in srgb,var(--bg-card) 92%,transparent); padding:clamp(1.1rem,2.2vw,1.7rem); box-shadow:0 0 2.2rem rgba(0,0,0,.07); overflow:hidden; }
.contact-card::before { content:""; position:absolute; inset:0 0 auto; height:2px; background:var(--grad-path); }
.contact-card__title-wrap { display:flex; align-items:center; min-height:2rem; margin-bottom:.9rem; }
.contact-card__title-wrap h2 { margin:0; font-size:1.08rem; }
.contact-form { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:.75rem 1rem; align-content:start; }
.contact-field { display:grid; grid-template-rows:auto 3.15rem auto auto; gap:.32rem; min-width:0; align-content:start; }
.contact-field--full { grid-column:1/-1; }
.contact-field > span { font-weight:750; font-size:.82rem; }
.contact-field input,.contact-field select,.contact-field textarea { width:100%; min-width:0; border:1px solid var(--line-strong); background:var(--bg); color:var(--text); border-radius:1rem; padding:.75rem .95rem; font:inherit; transition:border-color .2s,box-shadow .2s; }
.contact-field textarea { resize:vertical; min-height:6.4rem; max-height:10rem; line-height:1.9; }
.contact-field--full:has(textarea) { grid-template-rows:auto auto auto auto; }
.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus { outline:0; border-color:var(--c-gold); box-shadow:0 0 0 3px color-mix(in srgb,var(--c-gold) 10%,transparent); }
.contact-field.is-invalid input,.contact-field.is-invalid select,.contact-field.is-invalid textarea,.contact-field.is-invalid .contact-mobile-shell { border-color:var(--c-spark); }
.contact-field__hint { color:var(--text-faint); font-size:.68rem; min-height:1rem; }
.contact-field__error { color:var(--c-spark); min-height:1rem; font-size:.69rem; font-weight:700; }
.contact-mobile-shell { display:flex; align-items:center; width:100%; min-width:0; height:3.15rem; padding-inline:.95rem; border:1px solid var(--line-strong); background:var(--bg); border-radius:1rem; color:var(--text); font-family:var(--font-brand),"Vazirmatn","Vazir",sans-serif!important; transition:border-color .2s,box-shadow .2s; }
.contact-mobile-shell:focus-within { border-color:var(--c-gold); box-shadow:0 0 0 3px color-mix(in srgb,var(--c-gold) 10%,transparent); }
.contact-mobile-prefix { flex:0 0 auto; font:inherit; font-weight:700; user-select:none; pointer-events:none; }
.contact-mobile-shell input { flex:1 1 auto; width:auto; height:100%; min-width:0; border:0!important; border-radius:0; background:transparent; padding:.75rem .22rem .75rem 0; box-shadow:none!important; font-family:inherit!important; text-align:left; }
.contact-mobile-shell input:focus { outline:0; }
.contact-honeypot { position:absolute!important; inline-size:1px!important; block-size:1px!important; overflow:hidden!important; clip-path:inset(50%)!important; white-space:nowrap!important; }
.contact-form__submit { grid-column:1/-1; min-height:3.05rem; margin-top:.1rem; }
.contact-form__status { grid-column:1/-1; min-height:1.25rem; margin:0; font-weight:750; font-size:.78rem; }
.contact-form__status.is-ok { color:var(--c-growth); }.contact-form__status.is-error { color:var(--c-spark); }
.contact-card--info { display:flex; flex-direction:column; }
.contact-live-map { position:relative; aspect-ratio:16/9; border:1px solid var(--line); border-radius:1.1rem; overflow:hidden; background:var(--bg-soft); }
.contact-live-map iframe { width:100%; height:100%; border:0; display:block; filter:saturate(.9) contrast(.98); }
.contact-direct-grid { display:contents; }
.contact-info-row { display:flex; align-items:center; justify-content:space-between; gap:1rem; padding:.72rem 0; border-top:1px solid var(--line); }
.contact-info-row__label { color:var(--text-faint); font-size:.75rem; }
.contact-info-row a { color:var(--text); font-weight:750; overflow-wrap:anywhere; }
.contact-info-row a:hover { color:var(--c-gold); }
.contact-socials { display:flex; flex-wrap:wrap; gap:.48rem; padding:.72rem 0; border-top:1px solid var(--line); }
.contact-social { width:2.35rem; height:2.35rem; display:grid; place-items:center; border:1px solid var(--line); border-radius:.75rem; background:var(--bg-soft); color:var(--text); transition:transform .2s,border-color .2s,color .2s; }
.contact-social:hover { transform:translateY(-2px); border-color:color-mix(in srgb,var(--c-gold) 55%,var(--line)); color:var(--c-gold); }
.contact-social img,.contact-social svg { width:1.1rem; height:1.1rem; object-fit:contain; display:block; }.contact-social svg{fill:currentColor}
.contact-info-row--phone { order:1; }
.contact-socials { order:2; }
.contact-info-row--email { order:3; }
.contact-info-row--address { order:4; display:none; }
.contact-map-actions { order:5; }
.contact-map-actions { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:.45rem; padding-top:.72rem; border-top:1px solid var(--line); margin-top:auto; }
.contact-map-actions .nav-app { min-width:0; display:flex; flex-direction:column; align-items:center; gap:.28rem; padding:.55rem .3rem; border:1px solid var(--line); border-radius:.8rem; background:var(--bg-soft); color:var(--text-dim); font-size:.66rem; transition:border-color .2s,color .2s,transform .2s; }
.contact-map-actions .nav-app:hover { border-color:var(--c-gold); color:var(--c-gold); transform:translateY(-2px); }
.contact-map-actions .nav-app__icon { display:grid; place-items:center; width:1.55rem; height:1.55rem; border-radius:.5rem; background:var(--bg-card); font-weight:900; }
.contact-empty { display:grid; place-items:center; height:100%; color:var(--text-faint); }
@media (max-width:920px){.contact-page__grid{grid-template-columns:1fr}.contact-form{grid-template-columns:1fr}.contact-field--full,.contact-form__submit,.contact-form__status{grid-column:auto}.contact-card{height:auto}}
@media (max-width:560px){.contact-map-actions{grid-template-columns:repeat(3,1fr)}.contact-card{border-radius:1.15rem}}


/* R207 — نسخهٔ موبایل Web App تماس: اطلاعات ارتباطی مقدم بر فرم و بدون نقشهٔ زنده */
@media (max-width:767px) {
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-page-shell {
    padding-top: calc(var(--mwa-header-h, var(--header-h)) + .55rem);
    padding-bottom: 1rem;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-page__grid {
    display:flex;
    flex-direction:column;
    gap:.75rem;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-card--info { order:-1; }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-card--form { order:2; }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-card--info .contact-card__title-wrap,
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-live-map { display:none!important; }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-card--info {
    display:flex;
    flex-direction:column;
    padding:1rem;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-socials {
    order:1;
    border-top:0;
    padding:0 0 .7rem;
    justify-content:flex-start;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-direct-grid {
    order:2;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:.55rem;
    padding:.1rem 0 .7rem;
    border-top:1px solid var(--line);
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-direct-grid .contact-info-row {
    min-width:0;
    display:grid;
    align-content:start;
    gap:.25rem;
    padding:.7rem .7rem .55rem;
    border:1px solid var(--line);
    border-radius:.85rem;
    background:var(--bg-soft);
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-direct-grid .contact-info-row a,
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-direct-grid .contact-info-row > span:last-child {
    font-size:.76rem;
    line-height:1.7;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-info-row--address {
    order:3;
    display:grid;
    justify-content:stretch;
    gap:.3rem;
    padding:.75rem 0;
    border-top:1px solid var(--line);
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-info-row--address > span:last-child {
    color:var(--text-dim);
    font-size:.78rem;
    line-height:1.9;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-map-actions {
    order:4;
    margin-top:0;
    grid-template-columns:repeat(5,minmax(0,1fr));
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-map-actions .nav-app { font-size:.58rem; padding:.5rem .15rem; }
}

/* R209 — one real contact form: desktop grid / Web App modal. */
.contact-form-modal { display:contents; }
.contact-form-modal__backdrop,
.contact-form-modal__close,
.contact-form-open { display:none; }

@media (max-width:767px) {
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page {
    min-height:100dvh;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page #footer { display:none!important; }

  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-page-shell {
    min-height:100dvh;
    padding-bottom:.75rem;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-page__grid { display:block; }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-card--info {
    width:100%;
    height:auto;
  }

  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-open {
    order:5;
    display:flex;
    align-items:center;
    justify-content:center;
    width:100%;
    min-height:3rem;
    margin-top:.75rem;
  }

  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-modal {
    position:fixed;
    inset:0;
    z-index:1250;
    display:none;
    place-items:center;
    padding:.8rem;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-modal.is-open { display:grid; }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-modal__backdrop {
    display:block;
    position:absolute;
    inset:0;
    border:0;
    background:rgba(7,9,13,.62);
    -webkit-backdrop-filter:blur(8px);
    backdrop-filter:blur(8px);
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-modal .contact-card--form {
    position:relative;
    z-index:1;
    width:min(31rem,100%);
    height:min(82dvh,42rem);
    max-height:min(82dvh,42rem);
    display:flex;
    flex-direction:column;
    overflow:hidden;
    overscroll-behavior:none;
    padding:1rem;
    border-radius:1.15rem;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-modal .contact-card__title-wrap {
    display:flex!important;
    align-items:center;
    justify-content:space-between;
    gap:.8rem;
    margin-bottom:.7rem;
  }

  /* R247 — the contact modal itself is stationary; only its form body scrolls. */
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-modal .contact-card__title-wrap {
    flex:0 0 auto;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-modal #hasht-contact-form {
    flex:1 1 auto;
    min-height:0;
    overflow-x:hidden;
    overflow-y:auto;
    overscroll-behavior-y:contain;
    -webkit-overflow-scrolling:touch;
    scrollbar-gutter:stable;
    padding-inline:.08rem;
    padding-bottom:max(.25rem,env(safe-area-inset-bottom));
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-form-modal__close {
    display:grid;
    place-items:center;
    width:2rem;
    height:2rem;
    padding:0;
    border:0;
    background:transparent;
    color:var(--text-dim);
    font:inherit;
    font-size:1.35rem;
    line-height:1;
    cursor:pointer;
  }
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page.contact-form-modal-open { overflow:hidden!important; }
}


/* R238 — social brand visibility in dark mode. */
html[data-theme="dark"] body.hasht-contact-page .contact-social {
  color:#f7f8fb;
  border-color:color-mix(in srgb,#fff 22%,var(--line));
}
html[data-theme="dark"] body.hasht-contact-page .contact-social img {
  filter:brightness(0) invert(1);
  opacity:.96;
}
html[data-theme="dark"] body.hasht-contact-page .contact-social:hover,
html[data-theme="dark"] body.hasht-contact-page .contact-social:focus-visible {
  color:var(--c-gold);
}
html[data-theme="dark"] body.hasht-contact-page .contact-social:hover img,
html[data-theme="dark"] body.hasht-contact-page .contact-social:focus-visible img {
  opacity:1;
}

/* R259 — registered map link fallback + numeric typography parity. */
.contact-phone-number{
  font-family:var(--font,"Vazir","Vazirmatn Variable","Vazirmatn",Tahoma,Arial,sans-serif)!important;
  font-language-override:"FAR";
  font-feature-settings:"locl" 1;
}
.contact-live-map__external{
  width:100%;height:100%;display:grid;place-items:center;padding:1.25rem;
  color:var(--c-gold);background:var(--bg-soft);text-align:center;text-decoration:none;
  font-family:var(--font,"Vazir","Vazirmatn Variable","Vazirmatn",Tahoma,Arial,sans-serif);
  font-weight:800;line-height:1.9;
}

/* R259 — the contact map remains visible in mobile WebApp mode. */
@media (max-width:767px){
  html[data-mobile-site-mode="webapp"] body.hasht-contact-page .contact-live-map{
    display:block!important;
  }
}

/* R275 — centered mobile contact card with consistent breathing room between information groups. */
@media (max-width:820px){
  body.hasht-contact-page .contact-page{display:grid;justify-items:center;width:100%}
  body.hasht-contact-page .contact-page__grid{width:100%;display:grid!important;grid-template-columns:minmax(0,1fr)!important;justify-items:center;gap:1rem}
  body.hasht-contact-page .contact-card--info{
    width:min(100%,34rem)!important;
    max-width:34rem;
    margin-inline:auto!important;
    padding:1rem!important;
    display:flex!important;
    flex-direction:column;
    gap:.82rem!important;
    height:auto!important;
    align-self:start;
  }
  body.hasht-contact-page .contact-card--info .contact-card__title-wrap{margin:0 0 .1rem!important;padding:0!important}
  body.hasht-contact-page .contact-card--info .contact-live-map{margin:0!important}
  body.hasht-contact-page .contact-card--info .contact-direct-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem!important;padding:0!important;border:0!important;width:100%}
  body.hasht-contact-page .contact-card--info .contact-direct-grid .contact-info-row{margin:0!important;padding:.72rem!important;gap:.3rem!important;border:1px solid var(--line)!important;border-radius:.85rem!important;background:var(--bg-soft)!important;align-content:start}
  body.hasht-contact-page .contact-card--info .contact-socials{margin:0!important;padding:.1rem 0!important;border:0!important;gap:.55rem!important;justify-content:flex-start}
  body.hasht-contact-page .contact-card--info .contact-info-row--address{margin:0!important;padding:.72rem 0!important;gap:.38rem!important;border-top:1px solid var(--line)!important;border-bottom:0!important}
  body.hasht-contact-page .contact-card--info .contact-map-actions{margin:0!important;padding:.72rem 0 0!important;gap:.5rem!important;border-top:1px solid var(--line)!important;width:100%}
  body.hasht-contact-page .contact-card--info .contact-form-open{margin-top:.08rem!important}
}
@media (max-width:480px){
  body.hasht-contact-page .contact-card--info{width:calc(100% - .7rem)!important;padding:.9rem!important;gap:.75rem!important}
  body.hasht-contact-page .contact-card--info .contact-direct-grid{grid-template-columns:1fr;gap:.55rem!important}
  body.hasht-contact-page .contact-card--info .contact-map-actions{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
