/* V131 — desktop overflow, mobile card visibility and floating-tools layout stability. */

/* Shared text and grid resilience: imported values may be longer than design samples. */
:where(.ia-card,.ia-district-card,.ia-province-card,.archive-card,.feature-card,.stat-card,.latest-card,.popular-card){
  min-width:0;
  height:auto;
  max-height:none;
  isolation:isolate;
}
:where(.ia-card,.ia-district-card,.ia-province-card,.archive-card,.feature-card,.stat-card,.latest-card,.popular-card) :where(h2,h3,h4,p,span,strong,small,em,a){
  min-width:0;
  max-width:100%;
  white-space:normal;
  overflow-wrap:anywhere;
  word-break:normal;
}
:where(.ia-district-card__body,.ia-province-card__body,.archive-card-body,.feature-card__body,.latest-content,.popular-content){
  min-width:0;
  height:auto;
  overflow:visible;
}

/* Card copy must not inherit article-link decorations. */
:where(.ia-card,.ia-district-card,.ia-province-card,.archive-card,.feature-card,.latest-card,.popular-card)
  :where(h2,h3,h4,p,span,strong,small,em){
  text-decoration:none !important;
  text-underline-offset:initial;
}
:where(.ia-card__hit-area,.ia-district-card__cta,.ia-province-card__cta,.archive-card-action,.feature-card__button,.section-head-link){
  text-decoration:none !important;
}

/* Desktop cards grow with content instead of colliding with the next row. */
@media (min-width:1025px){
  :where(.cards-grid,.popular-grid,.latest-grid,.archive-grid,.district-grid,.province-grid,.ia-card-grid,.ia-discovery-grid){
    align-items:stretch;
    grid-auto-rows:auto;
  }
  :where(.ia-card,.ia-district-card,.ia-province-card,.archive-card,.feature-card,.stat-card,.latest-card,.popular-card){
    min-height:0 !important;
    overflow:hidden;
  }
  :where(.ia-district-card__meta,.ia-province-card__meta,.archive-card-meta,.popular-meta){
    position:static !important;
    display:flex;
    flex-wrap:wrap;
    height:auto;
    max-height:none;
    overflow:visible;
  }
  :where(.ia-district-card__footer,.archive-card-footer){
    position:static !important;
    margin-top:auto;
  }
}

/* Mobile/coarse-pointer fallback: cards remain visible even if a reveal/lazy class stalls. */
@media (max-width:782px), (hover:none), (pointer:coarse){
  :where(.ia-district-card,.ia-province-card,.archive-card,.popular-card,.latest-card,[data-discovery-card]){
    opacity:1 !important;
    visibility:visible !important;
    transform:none !important;
    filter:none !important;
    color:var(--ia-text,#0f172a);
    background-color:#fff;
  }
  :where(.ia-district-card__body,.ia-province-card__body,.archive-card-body,.popular-content,.latest-content){
    display:flex !important;
    visibility:visible !important;
    opacity:1 !important;
    color:var(--ia-text,#0f172a);
    background:linear-gradient(180deg,#fff,#f8fafc);
  }
  :where(.ia-district-card__title,.ia-province-card h3,.archive-card-title,.popular-content h3,.latest-content h3,
         .ia-district-card__location,.ia-district-card__meta,.ia-province-card__meta,.archive-card-meta){
    visibility:visible !important;
    opacity:1 !important;
  }
  :where(.ia-district-card__media,.ia-province-card__media,.archive-card-image,.popular-image,.latest-image){
    min-height:132px;
    opacity:1 !important;
    visibility:visible !important;
    background:linear-gradient(135deg,#1d4ed8,#0f766e);
  }
  :where(.ia-district-card__media,.ia-province-card__media,.archive-card-image,.popular-image,.latest-image) img{
    display:block !important;
    width:100%;
    height:100%;
    min-height:132px;
    object-fit:cover;
    opacity:1 !important;
    visibility:visible !important;
  }
}

/* Only real district result cards receive a heart; never menus, hero links or utility cards. */
.ia-favorite-card{top:10px;right:10px;z-index:6;flex:0 0 auto;transform:none !important}
:where(.site-header,.mobile-menu,.nav-menu,.ia-home-journey,.feature-card,.ia-memory-panel,.ia-achievement-panel) > .ia-favorite-card,
:where(.site-header,.mobile-menu,.nav-menu,.ia-home-journey,.feature-card,.ia-memory-panel,.ia-achievement-panel) .ia-favorite-card{
  display:none !important;
}

/* One predictable floating stack. Back-to-top remains clear and clickable. */
.ia-memory-shell,.ia-achievement-shell{
  right:max(14px,env(safe-area-inset-right));
  left:auto;
}
.ia-memory-shell{bottom:calc(82px + env(safe-area-inset-bottom));z-index:9960}
.ia-achievement-shell{bottom:calc(140px + env(safe-area-inset-bottom));z-index:9950}
.ia-back-to-top{
  right:max(16px,env(safe-area-inset-right));
  bottom:calc(16px + env(safe-area-inset-bottom));
  z-index:10020;
}
.ia-memory-panel,.ia-achievement-panel{z-index:2}

@media(max-width:600px){
  .ia-memory-shell{bottom:calc(76px + env(safe-area-inset-bottom))}
  .ia-achievement-shell{bottom:calc(132px + env(safe-area-inset-bottom))}
  .ia-memory-launcher,.ia-achievement-launcher{
    width:48px;
    min-width:48px;
    height:48px;
    min-height:48px;
    padding:0;
    justify-content:center;
    border-radius:16px;
  }
  .ia-memory-launcher>span:nth-child(2),.ia-achievement-launcher>span:nth-child(2){display:none}
  .ia-memory-panel,.ia-achievement-panel{
    position:fixed;
    left:10px;
    right:10px;
    bottom:calc(136px + env(safe-area-inset-bottom));
    width:auto;
    max-height:min(64vh,560px);
  }
}
