/* Shared lore-card standards. Artwork stays whole; captions may grow with text. */
.theme-military {
  --lore-card-gap: 22px;
  --lore-card-padding: 18px;
  --lore-card-heading-size: 25px;
  --lore-card-heading-height: 2.24em;
}

.theme-military .dispatch-side,
.theme-military .pay-team-grid {
  display: grid;
  gap: var(--lore-card-gap);
  align-items: stretch;
  grid-auto-rows: 1fr;
  min-width: 0;
}

.theme-military .dispatch-side article,
.theme-military .lore-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: auto minmax(0, 1fr);
  align-items: stretch;
  align-content: stretch;
  gap: 18px;
  padding: var(--lore-card-padding);
  min-width: 0;
  border-radius: 2px;
  background: var(--sand);
  color: var(--barracks);
}

/* Image buttons and native video controls occupy the same square footprint. */
.theme-military .dispatch-side article > .artwork-open,
.theme-military .dispatch-side article > video,
.theme-military .lore-card > .lore-card-media {
  display: block;
  width: 100%;
  height: auto;
  min-width: 0;
  aspect-ratio: 1;
  object-fit: contain;
  background: var(--barracks);
  border-radius: 1px;
  overflow: hidden;
}

.theme-military .dispatch-side .artwork-open > img,
.theme-military .lore-card-media > img {
  display: block;
  width: 100%;
  height: 100%;
  aspect-ratio: 1;
  object-fit: contain;
}

.theme-military .dispatch-side article > div {
  display: grid;
  grid-template-rows: auto minmax(var(--lore-card-heading-height), 1fr) auto;
  align-content: start;
  align-items: start;
  row-gap: 10px;
  min-width: 0;
  min-height: 137px;
  padding: 0;
}

.theme-military .dispatch-side h3,
.theme-military .lore-card h3 {
  margin: 0;
  min-height: var(--lore-card-heading-height);
  font-family: var(--display);
  font-size: var(--lore-card-heading-size);
  font-weight: 400;
  line-height: 1.12;
  letter-spacing: -.015em;
  overflow-wrap: break-word;
  text-wrap: balance;
}

.theme-military .dispatch-side time,
.theme-military .lore-card-kicker {
  margin: 0;
  font-family: var(--body);
  font-size: 15px;
  font-weight: 500;
  line-height: 1.5;
  color: var(--muted);
}

.theme-military .dispatch-side .plain-link,
.theme-military .lore-card .plain-link {
  display: inline-flex;
  align-items: center;
  justify-self: start;
  align-self: end;
  min-height: 44px;
  margin: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.5;
}

.theme-military .pay-team-section {
  background: var(--sky);
}

.theme-military .pay-team-grid {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.theme-military .lore-card:nth-child(even) {
  background: var(--paper);
}

.theme-military .lore-card-copy {
  display: grid;
  grid-template-rows: auto minmax(var(--lore-card-heading-height), auto) 1fr auto;
  align-items: start;
  gap: 12px;
  min-width: 0;
}

.theme-military .lore-card-copy > p:not(.lore-card-kicker) {
  margin: 0;
  font-size: 18px;
  line-height: 1.7;
  color: var(--barracks);
}

/* Use available section width, including beside the desktop field index. */
.theme-military .dispatches,
.theme-military .pay-team-section {
  container-type: inline-size;
}

@container (max-width: 640px) {
  .theme-military .pay-team-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

@media (max-width: 700px) {
  .theme-military {
    --lore-card-gap: 20px;
    --lore-card-padding: 16px;
  }

  .theme-military .dispatch-side,
  .theme-military .pay-team-grid {
    grid-template-columns: minmax(0, 1fr);
  }
}

.theme-military .pay-team-intro { max-width:65ch; margin:0 0 30px; font-size:18px; line-height:1.7; }

/* A typographic recruitment poster links to PA McStackers' original call-up. */
.theme-military .lore-card > .pay-team-callup {
 display:flex; flex-direction:column; align-items:center; justify-content:center;
 gap:20px; padding:clamp(18px,3vw,34px); background:var(--barracks); color:var(--paper);
 border:8px double var(--teal); text-align:center; text-decoration:none;
}
.theme-military .callup-eyebrow {font-size:14px;line-height:1.4;color:var(--teal);font-weight:600;}
.theme-military .callup-name {font-size:clamp(20px,2.3vw,30px);font-family:var(--display);line-height:1.2;}
.theme-military .pay-team-callup strong {font-family:var(--display);font-size:clamp(48px,7vw,92px);font-weight:400;line-height:.98;}
.theme-military .pay-team-callup strong span {color:var(--teal);}
.theme-military .callup-footer {border-top:1px solid var(--teal);padding-top:16px;font-size:18px;font-weight:600;line-height:1.4;}
.theme-military .pay-team-callup:hover {background:#304536;}
@media(max-width:700px){
 .theme-military .lore-card > .pay-team-callup{gap:18px;padding:22px;}
 .theme-military .callup-name{font-size:24px;}
 .theme-military .pay-team-callup strong{font-size:clamp(48px,13vw,76px);}
}
