/* MERIDIAN v17 · Content-driven, aligned portal grids.
   Loaded after v16 and all legacy themes. Only public-facing classes. */
body.meridian-portal-v16 .mp-main{
  --mp-section-gap:16px;
}
/* Sections on the same horizontal track are equal-height surfaces. */
body.meridian-portal-v16 .mp-city-layout,
body.meridian-portal-v16 .mp-media-layout,
body.meridian-portal-v16 .mp-republic-layout,
body.meridian-portal-v16 .mp-bottom-layout {
  align-items:stretch;
  grid-auto-flow:row;
}
body.meridian-portal-v16 .mp-city-layout > *,
body.meridian-portal-v16 .mp-media-layout > *,
body.meridian-portal-v16 .mp-republic-layout > *,
body.meridian-portal-v16 .mp-bottom-layout > * {
  min-width:0;
  min-height:0;
}
body.meridian-portal-v16 .mp-panel {
  box-sizing:border-box;
}
/* Equal-height columns, without hiding or trimming content. */
body.meridian-portal-v16 .mp-city-news,
body.meridian-portal-v16 .mp-news-mosaic,
body.meridian-portal-v16 .mp-gallery-module,
body.meridian-portal-v16 .mp-republic,
body.meridian-portal-v16 .mp-popular,
body.meridian-portal-v16 .mp-directory {
  display:flex;
  flex-direction:column;
  height:100%;
}
body.meridian-portal-v16 .mp-city-aside,
body.meridian-portal-v16 .mp-bottom-aside {
  align-self:stretch;
  min-height:0;
}
body.meridian-portal-v16 .mp-city-aside {
  display:grid;
  grid-template-rows:minmax(0,1fr) auto;
  align-content:stretch;
  align-items:stretch;
}
body.meridian-portal-v16 .mp-city-aside > .mp-poll {
  display:flex;
  flex-direction:column;
  min-width:0;
  min-height:0;
}
/* Polls are readable in a panel and have separate inner breathing space. */
body.meridian-portal-v16 .mp-poll .poll-box,
body.meridian-portal-v16 .mp-bottom-poll .poll-box {
  display:flex;
  flex-direction:column;
  flex:1 0 auto;
  padding:18px 20px!important;
  margin:0!important;
  min-width:0;
  border:1px solid #e0eaf5!important;
  border-radius:10px!important;
  background:#f7faff!important;
  box-shadow:none!important;
}
body.meridian-portal-v16 .edition-vote-grid {
  display:grid;
  gap:18px;
  padding:8px 0 24px;
  align-items:stretch;
}
body.meridian-portal-v16 .edition-vote-grid > .poll-box {
  margin:0!important;
  padding:24px!important;
  width:100%;
  border:1px solid var(--mp-border)!important;
  border-radius:var(--mp-radius)!important;
  box-shadow:0 5px 22px rgba(20,60,110,.04)!important;
  background:white!important;
  min-width:0;
}
body.meridian-portal-v16 .mp-city-news-grid {
  flex:1 0 auto;
  min-width:0;
  align-items:stretch;
}
body.meridian-portal-v16 .mp-city-lead,
body.meridian-portal-v16 .mp-city-list {min-width:0;min-height:0}
body.meridian-portal-v16 .mp-city-list {
  display:grid;
  grid-template-rows:repeat(3,minmax(0,1fr));
  gap:12px;
}
body.meridian-portal-v16 .mp-city-list > .edition-card,
body.meridian-portal-v16 .mp-city-lead > .edition-card {
  height:100%;
}
/* Respect full human-written excerpts rather than character/line clamps.
   Grid tracks grow with text, and adjacent modules grow to match. */
body.meridian-portal-v16 .edition-card .edition-content p {
  display:block!important;
  overflow:visible!important;
  -webkit-line-clamp:unset!important;
  -webkit-box-orient:initial!important;
  text-overflow:clip!important;
  white-space:normal;
  overflow-wrap:anywhere;
}
/* Compact horizontal cards keep their full teaser as well. */
body.meridian-portal-v16 .edition-card.edition-horizontal .edition-content p {
  display:block!important;
}
/* The newsletter/gallery column grows to the same bottom edge as the news mosaic. */
body.meridian-portal-v16 .mp-news-mosaic-grid {
  display:grid;
  flex:1 0 auto;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-auto-rows:minmax(min-content,1fr);
  gap:13px;
  align-content:stretch;
  min-width:0;
}
body.meridian-portal-v16 .mp-news-mosaic-grid > .edition-card {
  height:100%;
  min-width:0;
}
body.meridian-portal-v16 .mp-news-mosaic-grid > .edition-card:first-child {
  grid-row:span 2;
}
body.meridian-portal-v16 .mp-gallery-module > .mp-gallery-main {
  display:flex;
  flex:1 1 auto;
  min-height:240px;
  min-width:0;
}
body.meridian-portal-v16 .mp-gallery-main > .edition-album {
  display:flex!important;
  flex-direction:column;
  flex:1 1 auto;
  width:100%;
  min-width:0;
  height:auto;
}
body.meridian-portal-v16 .mp-gallery-main .edition-album-image {
  display:block;
  flex:1 1 auto;
  min-height:210px;
  aspect-ratio:auto!important;
}
body.meridian-portal-v16 .mp-gallery-thumbs {
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:10px;
  width:100%;
  margin-top:12px;
}
body.meridian-portal-v16 .mp-gallery-thumbs .edition-album {
  display:flex;
  flex-direction:column;
  width:100%;
  min-width:0;
}
body.meridian-portal-v16 .mp-gallery-thumbs .edition-album-image {
  display:block;
  aspect-ratio:5/3;
  width:100%;
}
/* Applies to album archives as well as the home-page gallery. */
body.meridian-portal-v16 .edition-album .edition-album-image {
  position:relative;
  display:block;
  width:100%!important;
  max-width:none!important;
  overflow:hidden;
}
body.meridian-portal-v16 .edition-album .edition-album-image > img {
  position:absolute;
  inset:0;
  display:block;
  width:100%!important;
  height:100%!important;
  min-width:100%;
  max-width:none!important;
  object-fit:cover;
  object-position:center;
}
/* The image canvas occupies 100% of card width, including the small tiles. */
body.meridian-portal-v16 .mp-gallery-module .edition-album-image,
body.meridian-portal-v16 .mp-bottom-gallery .edition-album-image {
  width:100%!important;
  max-width:none!important;
  position:relative;
  overflow:hidden;
}
body.meridian-portal-v16 .mp-gallery-module .edition-album-image > img,
body.meridian-portal-v16 .mp-bottom-gallery .edition-album-image > img {
  position:absolute;
  inset:0;
  display:block;
  width:100%!important;
  min-width:100%;
  max-width:none!important;
  height:100%!important;
  object-fit:cover;
  object-position:center;
}
body.meridian-portal-v16 .mp-gallery-module .edition-album-image > .edition-no-image,
body.meridian-portal-v16 .mp-bottom-gallery .edition-album-image > .edition-no-image {
  position:absolute;
  inset:0;
  width:100%;height:100%;
}
body.meridian-portal-v16 .mp-gallery-main .edition-album-info {
  flex:0 0 auto;
}
/* Republic: 2 × 2 news mosaic balances the 3-row Popular column. */
body.meridian-portal-v16 .mp-republic-grid {
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  grid-template-rows:repeat(2,minmax(0,1fr));
  flex:1 0 auto;
  gap:12px;
  align-content:stretch;
  min-width:0;
}
body.meridian-portal-v16 .mp-republic-grid > .edition-card {
  height:100%;
  min-width:0;
}
body.meridian-portal-v16 .mp-republic-grid .edition-card > .edition-cover {
  aspect-ratio:16/8.5;
}
body.meridian-portal-v16 .mp-popular {
  gap:12px;
}
body.meridian-portal-v16 .mp-popular > .edition-card {
  flex:1 0 auto;
  width:100%;
  min-height:0;
}
body.meridian-portal-v16 .mp-popular > .edition-card > .edition-cover {
  min-height:110px;
  align-self:stretch;
  aspect-ratio:auto;
}
body.meridian-portal-v16 .mp-popular > .edition-card .edition-content {
  justify-content:center;
}
/* Other multi-card rows should share cell edges without arbitrary fixed heights. */
body.meridian-portal-v16 .mp-top-stories,
body.meridian-portal-v16 .mp-business-grid,
body.meridian-portal-v16 .mp-topic-grid,
body.meridian-portal-v16 .mp-gallery-thumbs,
body.meridian-portal-v16 .mp-bottom-gallery {
  align-items:stretch;
}
body.meridian-portal-v16 .mp-top-stories > *,
body.meridian-portal-v16 .mp-business-grid > *,
body.meridian-portal-v16 .mp-topic-grid > * {
  height:100%;min-width:0;
}
/* Narrow screens: stacked sections grow naturally; images still fill edge to edge. */
@media(max-width:1020px){
 body.meridian-portal-v16 .mp-city-aside {
   grid-template-columns:repeat(2,minmax(0,1fr));
   grid-template-rows:auto;
   align-items:stretch;
 }
 body.meridian-portal-v16 .mp-media-layout > .mp-panel,
 body.meridian-portal-v16 .mp-republic-layout > .mp-panel,
 body.meridian-portal-v16 .mp-city-layout > .mp-panel {height:auto}
 body.meridian-portal-v16 .mp-gallery-main .edition-album-image{min-height:300px;aspect-ratio:16/8!important}
 body.meridian-portal-v16 .mp-republic-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:720px){
 body.meridian-portal-v16 .mp-city-aside {grid-template-columns:minmax(0,1fr)}
 body.meridian-portal-v16 .mp-gallery-main .edition-album-image{min-height:220px;aspect-ratio:16/10!important}
 body.meridian-portal-v16 .mp-city-list {grid-template-rows:auto;grid-template-columns:repeat(2,minmax(0,1fr))}
 body.meridian-portal-v16 .mp-republic-grid {grid-template-rows:auto}
}
@media(max-width:480px){
 body.meridian-portal-v16 .mp-city-list,
 body.meridian-portal-v16 .mp-news-mosaic-grid,
 body.meridian-portal-v16 .mp-republic-grid {grid-template-columns:minmax(0,1fr);grid-template-rows:auto}
 body.meridian-portal-v16 .mp-news-mosaic-grid > .edition-card:first-child{grid-row:auto}
 body.meridian-portal-v16 .mp-gallery-thumbs{gap:7px}
 body.meridian-portal-v16 .mp-gallery-thumbs .edition-album-info{padding:7px!important}
 body.meridian-portal-v16 .mp-gallery-thumbs .edition-album-info h3{font-size:11px!important}
 body.meridian-portal-v16 .mp-republic-grid .edition-card > .edition-cover{aspect-ratio:16/9}
 body.meridian-portal-v16 .edition-vote-grid > .poll-box{padding:18px!important}
}
