/* EMKAN v27 — minimal final layer. The v113 module styles remain the responsive base. */
:root{
  --emkan-cover-duration:1320ms;
  --emkan-cover-step:190ms;
  --emkan-cover-ease:cubic-bezier(.20,.62,.28,1);
}

/* One reveal system for every public cover/card. Preflight class prevents first-paint flash. */
html.emkan-v27-motion body :is(
  .gallery-item,.category-card,.v49-card,.v49-course,.v49-work-card,
  .civil-entry-card,.research-entry,.store-card,.product-card,.person-card,.team-preview,
  .emkan-v147-sample-card,.emkan-v143-service-card
){
  animation:none!important;
  opacity:0!important;
  transform:translateY(8px)!important;
  transition:opacity var(--emkan-cover-duration) var(--emkan-cover-ease),transform var(--emkan-cover-duration) var(--emkan-cover-ease)!important;
  transition-delay:0ms!important;
  will-change:opacity,transform;
}
html.emkan-v27-motion body :is(
  .gallery-item,.category-card,.v49-card,.v49-course,.v49-work-card,
  .civil-entry-card,.research-entry,.store-card,.product-card,.person-card,.team-preview,
  .emkan-v147-sample-card,.emkan-v143-service-card
).is-emkan-v27-visible{
  opacity:1!important;
  transform:translateY(0)!important;
}
html.emkan-v27-motion-fallback body :is(
  .gallery-item,.category-card,.v49-card,.v49-course,.v49-work-card,
  .civil-entry-card,.research-entry,.store-card,.product-card,.person-card,.team-preview,
  .emkan-v147-sample-card,.emkan-v143-service-card
){opacity:1!important;transform:none!important}
@media(prefers-reduced-motion:reduce){
  html body :is(.gallery-item,.category-card,.v49-card,.v49-course,.v49-work-card,.civil-entry-card,.research-entry,.store-card,.product-card,.person-card,.team-preview,.emkan-v147-sample-card,.emkan-v143-service-card){opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
}

/* Assistant is an ordinary nav item, including English. */
html body .primary-nav .nav-list>li>.nav-link.emkan-ai-nav-link,
html body .primary-nav .nav-list>li>.nav-link.emkan-ai-nav-link.is-current{
  display:inline-block!important;color:var(--menu-text)!important;text-decoration:none!important;white-space:nowrap!important;
  font-family:var(--font-en)!important;font-size:clamp(11px,.91vw,14px)!important;font-weight:400!important;line-height:1.25!important;
  letter-spacing:normal!important;text-indent:0!important;padding:0!important;margin:0!important;transform:none!important;
}
:is(html[lang="fa"],html[lang="ar"]) body .primary-nav .nav-list>li>.nav-link.emkan-ai-nav-link,
:is(html[lang="fa"],html[lang="ar"]) body .primary-nav .nav-list>li>.nav-link.emkan-ai-nav-link.is-current{
  font-family:var(--font-fa)!important;font-size:clamp(12px,.94vw,14.5px)!important;letter-spacing:0!important;
}
html body .emkan-ai-nav-star{display:none!important}
html body.emkan-ai-page .emkan-ai-native-search .emkan-search-head{display:none!important}

/* MOBILE/TABLET: restore the proven v113 header flow. Do not impose desktop geometry here. */
@media(max-width:900px){
  html,body{max-width:100%!important;overflow-x:hidden!important}
  html body .page-shell{
    padding-top:max(18px,env(safe-area-inset-top))!important;
    padding-bottom:max(46px,env(safe-area-inset-bottom))!important;
    padding-left:max(16px,env(safe-area-inset-left))!important;
    padding-right:max(16px,env(safe-area-inset-right))!important;
  }
  html body .site-header{position:relative!important;top:auto!important;width:100%!important;max-width:720px!important;margin-inline:auto!important}
  html body .brand-word{font-size:clamp(18px,4.9vw,21px)!important;gap:.22em!important}
  html body .nav-frame{
    margin-top:22px!important;min-height:46px!important;
    display:grid!important;grid-template-columns:48px minmax(0,1fr) 48px!important;
    grid-template-areas:"lang toggle theme" "nav nav nav"!important;
    align-items:center!important;overflow:hidden!important;
  }
  html body .language-button,html body .theme-button{position:static!important;transform:none!important}
  html body .language-button{grid-area:lang!important;justify-self:start!important;margin-left:7px!important;margin-right:0!important}
  html body .theme-button{grid-area:theme!important;justify-self:end!important;margin-right:7px!important;margin-left:0!important}
  html body .mobile-menu-button{grid-area:toggle!important;justify-self:center!important;display:inline-flex!important;width:38px!important;height:38px!important;align-items:center!important;justify-content:center!important}
  html body .primary-nav{
    position:relative!important;inset:auto!important;grid-area:nav!important;width:100%!important;max-height:0!important;overflow:hidden!important;
    padding-inline:0!important;opacity:0!important;transform:none!important;
    transition:max-height .62s cubic-bezier(.22,.61,.36,1),opacity .34s ease!important;
  }
  html body .site-header.is-nav-open .primary-nav{max-height:420px!important;opacity:1!important}
  html body .nav-list{width:100%!important;max-width:none!important;margin:0!important;padding:8px 0 12px!important;display:flex!important;flex-direction:column!important;gap:0!important;direction:inherit!important;border-top:1px solid var(--line)!important}
  html body .nav-list li{width:100%!important;text-align:center!important}
  html body .nav-list li+li{border-top:1px solid var(--line)!important}
  html body .nav-link,html[dir="rtl"] body .nav-link{width:max-content!important;max-width:88%!important;padding:10px 4px!important;font-size:12.5px!important;white-space:normal!important}
  html body .page-shell>main:not(.welcome){position:relative!important;inset:auto!important;clear:both!important;max-width:720px!important;min-width:0!important;margin-left:auto!important;margin-right:auto!important;transform:none!important}
}

/* Phone cover listings: always two compact columns with the title BELOW the image. */
@media(max-width:760px){
  html body :is(
    .gallery-items-container,.category-grid,.category-grid--five,.v74-level2-grid,.v74-sample-grid,
    .v49-grid,.v49-work-grid,.civil-entry-grid,.civil-project-results,.research-index-grid,
    .store-grid,.store-category-grid,.emkan-v147-services-grid,.emkan-v147-samples-grid
  ){
    display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
    gap:18px 10px!important;justify-content:stretch!important;align-items:start!important;
  }
  html body :is(
    .gallery-items-container,.category-grid,.category-grid--five,.v74-level2-grid,.v74-sample-grid,
    .v49-grid,.v49-work-grid,.civil-entry-grid,.civil-project-results,.research-index-grid,
    .store-grid,.store-category-grid,.emkan-v147-services-grid,.emkan-v147-samples-grid
  )>*{width:100%!important;max-width:100%!important;min-width:0!important;margin:0!important;justify-self:stretch!important}

  html body .gallery-item{width:100%!important;max-width:none!important;margin:0!important}
  html body :is(.category-card,.v49-card,.v49-work-card,.civil-entry-card,.research-entry,.store-card,.product-card,.emkan-v147-sample-card,.emkan-v143-service-card){
    position:relative!important;display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;aspect-ratio:auto!important;overflow:visible!important;background:transparent!important;
  }
  html body :is(.category-card){border:0!important}
  html body :is(.img-wrapper,.category-square,.category-media,.v49-card-media,.v49-work-media,.civil-entry-media,.research-index-media,.store-card-media,.product-card-media,.emkan-v147-sample-media,.emkan-v143-service-media){
    position:relative!important;inset:auto!important;display:block!important;width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1!important;overflow:hidden!important;
  }
  html body :is(.img-wrapper,.category-square,.category-media,.v49-card-media,.v49-work-media,.civil-entry-media,.research-index-media,.store-card-media,.product-card-media,.emkan-v147-sample-media,.emkan-v143-service-media)>img{
    width:100%!important;height:100%!important;display:block!important;object-fit:cover!important;
  }
  html body :is(.fixed-caption,.category-caption,.v49-card-copy,.v49-card-caption,.v49-work-caption,.store-card-caption,.product-card-caption,.research-index-title,.emkan-v147-service-caption,.emkan-v147-sample-caption){
    position:static!important;inset:auto!important;display:block!important;width:100%!important;height:auto!important;margin:6px 0 0!important;padding:0!important;background:transparent!important;text-shadow:none!important;overflow:visible!important;pointer-events:auto!important;
  }
  html body .category-caption-line{display:none!important}
  html body .category-caption-text{color:var(--fg)!important;text-shadow:none!important;font-size:10.5px!important;line-height:1.45!important}
  html body :is(.project-title,.v49-card-copy strong,.v49-card-caption strong,.store-card-caption strong,.product-card-caption strong,.research-index-title,.emkan-v147-service-caption,.emkan-v147-sample-caption){font-size:10.5px!important;line-height:1.45!important}
  html body :is(.project-subtitle,.fixed-caption small,.v49-card-copy small,.v49-card-caption small,.store-card-caption small,.product-card-caption small){font-size:9px!important;line-height:1.4!important}
}
@media(max-width:390px){
  html body :is(.gallery-items-container,.category-grid,.category-grid--five,.v74-level2-grid,.v74-sample-grid,.v49-grid,.v49-work-grid,.civil-entry-grid,.civil-project-results,.research-index-grid,.store-grid,.store-category-grid,.emkan-v147-services-grid,.emkan-v147-samples-grid){gap:15px 8px!important}
}

/* Architecture: filter + search stay together above the two-column phone grid. */
@media(max-width:760px){
  html body .projects-layout{display:block!important;width:100%!important;max-width:100%!important;margin-top:clamp(24px,4vh,34px)!important}
  html body .projects-layout .category-panel{position:static!important;display:block!important;width:100%!important;margin:0 0 18px!important;padding:0!important}
  html body .emkan-mobile-filter-row{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:8px 10px!important;width:100%!important;align-items:stretch!important}
  html body .emkan-mobile-filter-row :is(.category-toggle,.project-search){width:100%!important;min-width:0!important;margin:0!important}
  html body .emkan-mobile-filter-row .category-toggle{display:flex!important;min-height:36px!important;padding:0 7px!important;border:0!important;border-bottom:1px solid var(--line)!important;align-items:center!important;justify-content:space-between!important;font-size:11.5px!important}
  html body .emkan-mobile-filter-row .project-search input{width:100%!important;height:36px!important;font-size:10.8px!important}
  html body .projects-layout .category-list{display:block!important;max-height:0!important;overflow:hidden!important;opacity:0!important;margin:0!important;transition:max-height .48s cubic-bezier(.22,.61,.36,1),opacity .28s ease!important}
  html body .projects-layout .category-panel.is-open .category-list{max-height:380px!important;opacity:1!important}
}

/* v27 mobile specificity lock: beats historical !important one-column/absolute-card rules. */
@media(max-width:760px){
  html body main.architecture-main .gallery-items-container,
  html body main.module-main .category-grid,
  html body main.module-main .category-grid.category-grid--five,
  html body main.store-main .store-grid,
  html body main.store-category-main :is(.product-grid,.store-category-grid),
  html body.content-section-page #contentApp#contentApp :is(.v74-level2-grid,.v74-sample-grid,.v49-grid,.v49-work-grid),
  html body main.civil-main :is(.gallery-items-container,.civil-entry-grid),
  html body .research-index-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    width:100%!important;max-width:100%!important;min-width:0!important;
    gap:18px 10px!important;justify-content:stretch!important;align-items:start!important;grid-auto-rows:auto!important;
  }
  html body main.module-main .category-grid>.category-card,
  html body.content-section-page #contentApp#contentApp :is(.v74-level2-grid,.v74-sample-grid,.v49-grid,.v49-work-grid)>.category-card{
    position:relative!important;width:100%!important;max-width:100%!important;min-width:0!important;height:auto!important;aspect-ratio:auto!important;overflow:visible!important;border:0!important;
  }
  html body main.module-main .category-grid>.category-card>.category-square,
  html body.content-section-page #contentApp#contentApp :is(.v74-level2-grid,.v74-sample-grid,.v49-grid,.v49-work-grid)>.category-card>.category-square{
    position:relative!important;inset:auto!important;width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1!important;overflow:hidden!important;
  }
  html body main.module-main .category-grid>.category-card>.category-caption,
  html body.content-section-page #contentApp#contentApp :is(.v74-level2-grid,.v74-sample-grid,.v49-grid,.v49-work-grid)>.category-card>.category-caption{
    position:static!important;inset:auto!important;width:100%!important;height:auto!important;margin:6px 0 0!important;padding:0!important;background:transparent!important;overflow:visible!important;
  }
  html body main.module-main .category-grid>.category-card>.category-caption .category-caption-text,
  html body.content-section-page #contentApp#contentApp :is(.v74-level2-grid,.v74-sample-grid,.v49-grid,.v49-work-grid)>.category-card>.category-caption .category-caption-text{
    color:var(--fg)!important;text-shadow:none!important;font-size:10.5px!important;line-height:1.45!important;
  }
  html body main.module-main .category-grid>.category-card>.category-caption .category-caption-line,
  html body.content-section-page #contentApp#contentApp :is(.v74-level2-grid,.v74-sample-grid,.v49-grid,.v49-work-grid)>.category-card>.category-caption .category-caption-line{display:none!important}
}
@media(max-width:390px){
  html body main.architecture-main .gallery-items-container,
  html body main.module-main .category-grid,
  html body main.module-main .category-grid.category-grid--five,
  html body main.store-main .store-grid,
  html body main.store-category-main :is(.product-grid,.store-category-grid),
  html body.content-section-page #contentApp#contentApp :is(.v74-level2-grid,.v74-sample-grid,.v49-grid,.v49-work-grid){gap:15px 8px!important}
}


/* ======================================================================
   EMKAN v28 — targeted final corrections only
   1) canonical language order AR | FA | EN everywhere
   2) project thumbnail stagger visibility
   3) internal three-column top-gap runtime normalization support
   ====================================================================== */

/* Language rail is physical LTR so DOM order AR, FA, EN never flips in RTL pages. */
html body #languageButton,
html body .language-button{
  direction:ltr!important;
  unicode-bidi:isolate!important;
}
html body #languageButton .language-direct-choice,
html body .language-button .language-direct-choice{
  direction:ltr!important;
}

/* Architecture/Civil single-project thumbnails participate in the same calm reveal system. */
html.emkan-v27-motion body:is(.architect-project-page,.civil-project-page) .vthumb{
  animation:none!important;
  opacity:0!important;
  transform:translateY(8px)!important;
  transition:opacity var(--emkan-cover-duration) var(--emkan-cover-ease),transform var(--emkan-cover-duration) var(--emkan-cover-ease)!important;
  transition-delay:0ms!important;
  will-change:opacity,transform;
}
html.emkan-v27-motion body:is(.architect-project-page,.civil-project-page) .vthumb.is-emkan-v27-visible{
  opacity:1!important;
  transform:translateY(0)!important;
}
html.emkan-v27-motion-fallback body:is(.architect-project-page,.civil-project-page) .vthumb{
  opacity:1!important;
  transform:none!important;
}
@media(prefers-reduced-motion:reduce){
  html body:is(.architect-project-page,.civil-project-page) .vthumb{
    opacity:1!important;transform:none!important;transition:none!important;animation:none!important;
  }
}

/* JS writes only margin-top on the proper internal anchor. Horizontal centring stays untouched. */
html body [data-emkan-v28-grid-gap="1"]{
  scroll-margin-top:32px;
}


/* ===== EMKAN v29 — language rail canonicalization ===== */
html body #languageButton,
html body .language-button,
html body #accountLanguageRail,
html body .account-language-rail{
  direction:ltr!important;
  unicode-bidi:isolate!important;
}
html body #accountLanguageRail [data-account-lang],
html body .account-language-rail [data-account-lang]{
  direction:ltr!important;
  unicode-bidi:isolate!important;
}
