/* Latest From Hill archive geometry + CTA containment.
   Loaded after live.css. Card width/height remain hard locked; the CTA is
   anchored inside the card body so short/long copy cannot push it outside. */

.updates-archive{
  --archive-card-w:440px;
  --archive-card-h:420px;
  --archive-media-h:226px;
  --archive-fixed-gap:24px;
}

.archive-viewport{
  width:100%;
  height:calc((var(--archive-card-h) * 2) + var(--archive-fixed-gap)) !important;
  min-height:0 !important;
  overflow:hidden !important;
}

.archive-track,
.archive-page{
  width:100% !important;
  min-width:100% !important;
}

.archive-page{
  flex:0 0 100% !important;
  overflow:hidden !important;
}

.archive-grid{
  display:grid !important;
  grid-template-columns:repeat(3,var(--archive-card-w)) !important;
  grid-auto-rows:var(--archive-card-h) !important;
  gap:var(--archive-fixed-gap) !important;
  justify-content:center !important;
  align-items:start !important;
  align-content:start !important;
}

.archive-card{
  box-sizing:border-box !important;
  width:var(--archive-card-w) !important;
  min-width:var(--archive-card-w) !important;
  max-width:var(--archive-card-w) !important;
  height:var(--archive-card-h) !important;
  min-height:var(--archive-card-h) !important;
  max-height:var(--archive-card-h) !important;
  grid-template-rows:var(--archive-media-h) minmax(0,1fr) !important;
  align-self:start !important;
  justify-self:start !important;
  overflow:hidden !important;
}

.archive-card-media{
  box-sizing:border-box !important;
  width:100% !important;
  height:var(--archive-media-h) !important;
  min-height:var(--archive-media-h) !important;
  max-height:var(--archive-media-h) !important;
  overflow:hidden !important;
}

.archive-card-media img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
}

.archive-card-body{
  box-sizing:border-box !important;
  position:relative !important;
  display:block !important;
  width:100% !important;
  height:100% !important;
  min-height:0 !important;
  max-height:none !important;
  padding:20px 23px 52px !important;
  overflow:hidden !important;
}

.archive-card-meta{
  display:block !important;
  margin:0 0 9px !important;
}

.archive-card-body strong{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:2 !important;
  min-height:2.2em !important;
  max-height:2.2em !important;
  margin:0 0 8px !important;
  overflow:hidden !important;
}

.archive-card-text{
  display:-webkit-box !important;
  -webkit-box-orient:vertical !important;
  -webkit-line-clamp:3 !important;
  min-height:0 !important;
  max-height:4.44em !important;
  overflow:hidden !important;
}

.archive-card-cta{
  position:absolute !important;
  left:23px !important;
  right:auto !important;
  bottom:17px !important;
  margin:0 !important;
  padding:0 0 2px !important;
  max-width:calc(100% - 46px) !important;
  white-space:nowrap !important;
  overflow:hidden !important;
  text-overflow:ellipsis !important;
  line-height:1.2 !important;
}

@media (max-width:1499px){
  .updates-archive{
    --archive-card-w:380px;
    --archive-card-h:400px;
    --archive-media-h:216px;
    --archive-fixed-gap:20px;
  }
  .archive-card-body{padding:18px 21px 48px !important}
  .archive-card-cta{left:21px !important;bottom:15px !important;max-width:calc(100% - 42px) !important}
}

@media (max-width:1299px){
  .updates-archive{
    --archive-card-w:360px;
    --archive-card-h:400px;
    --archive-media-h:216px;
    --archive-fixed-gap:20px;
  }
  .archive-grid{
    grid-template-columns:repeat(2,var(--archive-card-w)) !important;
  }
  .archive-viewport{
    height:calc((var(--archive-card-h) * 3) + (var(--archive-fixed-gap) * 2)) !important;
  }
}

@media (max-width:799px){
  .updates-archive{
    --archive-card-w:min(420px,92vw);
    --archive-card-h:420px;
    --archive-media-h:226px;
    --archive-fixed-gap:16px;
  }
  .archive-grid{
    grid-template-columns:var(--archive-card-w) !important;
  }
  .archive-viewport{
    height:calc((var(--archive-card-h) * 6) + (var(--archive-fixed-gap) * 5)) !important;
  }
  .archive-card-body{padding:18px 20px 48px !important}
  .archive-card-cta{left:20px !important;bottom:15px !important;max-width:calc(100% - 40px) !important}
}
