/* =============================================
   سازگاری دستگاه — فقط تکمیل style.css
   (بدون overrideهای سراسری که layout را خراب می‌کنند)
   ============================================= */

html {
  overflow-x: clip;
  max-width: 100%;
  -webkit-text-size-adjust: 100%;
}

body {
  overflow-x: clip;
  max-width: 100%;
}

#main-content,
.page-category,
.page-portfolio-hub,
.cat-main,
.port-hub-gallery,
.cat-hero,
.cat-hero__inner {
  max-width: 100%;
  min-width: 0;
}

.site-header-inner {
  min-width: 0;
  max-width: 100%;
}

.site-header-inner .logo,
.site-header-inner .site-header-actions,
.site-header-inner .navbar-end {
  min-width: 0;
}

/* safe-area — فقط padding اضافه، بدون تغییر ساختار */
.site-header-wrap {
  padding-top: max(0.75rem, env(safe-area-inset-top, 0px));
  padding-left: max(clamp(0.75rem, 2.5vw, 1.5rem), env(safe-area-inset-left, 0px));
  padding-right: max(clamp(0.75rem, 2.5vw, 1.5rem), env(safe-area-inset-right, 0px));
}

footer.site-footer {
  padding-bottom: max(1.25rem, env(safe-area-inset-bottom, 0px));
}

.hanan-loader {
  padding:
    env(safe-area-inset-top, 0px)
    env(safe-area-inset-right, 0px)
    env(safe-area-inset-bottom, 0px)
    env(safe-area-inset-left, 0px);
}

body.loaded #partners .partners-strip.is-ready .partner-logo,
#partners .partners-strip.is-ready .partner-logo {
  opacity: 1 !important;
  visibility: visible !important;
}

body.loaded #partners .partners-strip.is-ready .partner-logo-img,
#partners .partners-strip.is-ready .partner-logo-img {
  opacity: 1 !important;
  visibility: visible !important;
}

/* ── موبایل ── */
@media (max-width: 900px) {
  body.loaded #partners .partners-strip,
  body.loaded #partners .partners-strip .partner-logo,
  body.loaded #partners .partners-strip .partner-logo-img {
    opacity: 1 !important;
    visibility: visible !important;
  }

  body.loaded .portfolio-grid.visible > .portfolio-item,
  body.loaded .cat-grid.visible > .portfolio-item,
  body.loaded .honors-grid.visible > .honor-item,
  body.loaded .team-grid.visible > .team-card,
  body.loaded .stagger-children.visible > *,
  body.loaded .stagger-children > .reveal.visible,
  body.loaded .reveal.visible {
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .site-header-wrap,
  .site-header-inner {
    overflow: visible;
  }

  .site-header-inner {
    background: #000;
    border-radius: 14px;
    padding-inline: 0.85rem;
    box-sizing: border-box;
  }

  .site-header-inner .nav-pill .nav-drawer {
    z-index: 1200;
  }

  .nav-drawer {
    height: 100dvh;
    max-height: 100dvh;
  }

  .nav-drawer:not(.open) {
    visibility: hidden;
    pointer-events: none;
  }

  [dir="rtl"] .nav-drawer:not(.open) {
    transform: translate3d(100%, 0, 0);
  }

  [dir="ltr"] .nav-drawer:not(.open) {
    transform: translate3d(-100%, 0, 0);
  }

  body.nav-open {
    overflow: hidden;
    touch-action: none;
  }

  input,
  select,
  textarea {
    font-size: max(16px, 1em);
  }

  .nav-toggle,
  .lang-btn,
  .portfolio-filter,
  .portfolio-load-more,
  .btn-primary,
  .btn-outline,
  .nav-cta-mobile,
  .theme-toggle {
    min-height: 44px;
  }

  .hero-badge {
    letter-spacing: 0.1em;
    max-width: 100%;
  }

  .hero-title,
  .hero-subtitle {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .contact-link {
    overflow-wrap: anywhere;
    word-break: break-word;
  }

  .portfolio-filters {
    flex-wrap: nowrap;
    justify-content: flex-start;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    padding-bottom: 0.35rem;
    margin-inline: 0;
    padding-inline: 0;
    max-width: 100%;
  }

  .page-portfolio-hub .portfolio-filters,
  .page-category .cat-nav {
    margin-inline: -0.25rem;
    padding-inline: 0.25rem;
  }

  .cat-hero {
    min-height: auto;
    padding-top: calc(env(safe-area-inset-top, 0px) + 5.5rem);
    padding-bottom: 2rem;
  }

  .page-portfolio-hub .cat-hero {
    min-height: auto;
  }

  .cat-hero__title {
    font-size: clamp(1.65rem, 7.5vw, 2.35rem);
    overflow-wrap: anywhere;
  }

  .cat-hero__subline,
  .cat-hero__intro {
    font-size: 0.9rem;
    overflow-wrap: anywhere;
  }

  .cat-hero__meta {
    flex-wrap: wrap;
    gap: 0.75rem;
  }

  .cat-hero__count {
    width: 100%;
    text-align: center;
  }

  .cat-main {
    padding-inline: 1rem;
    padding-bottom: 3.5rem;
  }

  .cat-grid-header {
    flex-direction: column;
    align-items: flex-start;
  }

  .cat-grid-header h2,
  .cat-grid-header__desc {
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  .lightbox {
    padding:
      max(0.75rem, env(safe-area-inset-top))
      max(0.75rem, env(safe-area-inset-right))
      max(0.75rem, env(safe-area-inset-bottom))
      max(0.75rem, env(safe-area-inset-left));
  }

  .lightbox-media {
    max-height: min(72vh, calc(100dvh - 7rem));
  }

  .partners-wrap,
  .brand-carousel-section,
  #partners .partners-strip {
    overflow-x: clip;
    max-width: 100%;
  }

  .portfolio-filters::-webkit-scrollbar {
    display: none;
  }

  .orb-1 {
    width: min(280px, 70vw);
    height: min(280px, 70vw);
  }

  .orb-2 {
    width: min(220px, 55vw);
    height: min(220px, 55vw);
  }

  .orb-3 {
    width: min(180px, 45vw);
    height: min(180px, 45vw);
  }
}

.port-media.media-load-failed,
.honor-media.media-load-failed,
.partner-logo-img.media-load-failed {
  opacity: 0.35;
}

@media (max-width: 900px) and (hover: none) {
  .portfolio-item:hover,
  .portfolio-item.fx-shine:hover,
  .team-card:hover,
  .service-card:hover,
  .honor-item:hover,
  .brand-carousel__card:hover,
  .partner-logo:hover,
  .fx-tilt {
    transform: none !important;
    box-shadow: inherit !important;
  }
}

@media (max-width: 480px) {
  .portfolio-grid,
  .cat-grid {
    grid-template-columns: 1fr;
    gap: 10px;
  }

  .cat-grid .portfolio-item,
  .portfolio-grid .portfolio-item {
    aspect-ratio: 1 / 1;
    border-radius: var(--radius-md);
  }

  .hero-stats {
    gap: 0.85rem 1rem;
  }

  .stat-num {
    font-size: 1.35rem;
  }

  .team-grid {
    grid-template-columns: 1fr;
  }

  .team-card.ceo {
    grid-column: span 1;
  }
}

@media (max-width: 380px) {
  .honor-item,
  .honor-placeholder,
  .honor-info {
    width: 56px;
  }

  .honor-placeholder {
    height: 56px;
  }

  .hanan-logo-svg--header {
    height: 1.8rem;
  }

  .site-header-inner {
    min-height: 3rem;
  }
}

/* موبایل افقی */
@media (max-width: 900px) and (max-height: 520px) and (orientation: landscape) {
  .hero {
    min-height: auto;
    padding: 4.5rem 1.25rem 1.5rem;
  }

  .hero-stats {
    grid-template-columns: repeat(4, 1fr);
    margin-top: 1.25rem;
    padding-top: 1rem;
  }

  .stat-item:nth-child(2)::after {
    display: block;
  }

  .hero-scroll-cue {
    display: none;
  }
}

/* ── پنل ادمین ── */
.admin-page #login-screen {
  min-height: 100dvh;
  padding:
    max(1rem, env(safe-area-inset-top, 0px))
    max(1rem, env(safe-area-inset-right, 0px))
    max(1rem, env(safe-area-inset-bottom, 0px))
    max(1rem, env(safe-area-inset-left, 0px));
}

.admin-page .admin-header {
  padding-top: max(1rem, env(safe-area-inset-top, 0px));
  padding-left: max(1rem, env(safe-area-inset-left, 0px));
  padding-right: max(1rem, env(safe-area-inset-right, 0px));
}

.admin-page .admin-body {
  padding-bottom: max(2rem, env(safe-area-inset-bottom, 0px));
}

@media (max-width: 700px) {
  .admin-page .portfolio-row {
    flex-direction: column;
    align-items: stretch;
    gap: 0.75rem;
  }

  .admin-page .row-actions {
    justify-content: flex-end;
  }
}
