/* Imagery is scoped to Praesidium; product captures and editorial mockups are documented. */
.praesidium-page .benefit-artwork {
  padding: 0;
  min-height: 0;
  background: #fafaf8;
  isolation: isolate;
}
.benefit-artwork::before,
.benefit-artwork::after { display: none; }
.benefit-reminder__photo {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: 72% 36%;
}
.praesidium-page .benefit-artwork--trainer-photo {
  place-items: center;
  padding: clamp(0.42rem, 0.9vw, 0.62rem);
  background: linear-gradient(145deg, #f0f8f3, #fcfdfb);
}
.benefit-trainer__photo {
  display: block;
  width: auto;
  height: 100%;
  max-width: 100%;
  min-height: 0;
  aspect-ratio: 2 / 3;
  object-fit: contain;
  border-radius: 20px;
  box-shadow: 0 12px 28px #324b3620;
}
.benefit-reminder__notification {
  position: absolute;
  left: 5%;
  bottom: 7%;
  width: 90%;
  aspect-ratio: 795 / 273;
  overflow: hidden;
  border-radius: 18px;
  background: #252525;
  box-shadow: 0 10px 25px #0003;
}
.benefit-reminder__notification img {
  position: absolute;
  width: 155.975%;
  max-width: none;
  left: -28.176%;
  top: -68.132%;
}
.benefit-card__image--artwork {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: contain;
  background: transparent;
  border: 0;
  border-radius: 0;
  box-shadow: none;
  transform: none;
}
.benefit-rail--trainer .benefit-card,
.benefit-rail--staff .benefit-card:has(.benefit-artwork) {
  grid-template-rows: minmax(0, 1fr) auto;
}
.benefit-rail--trainer .benefit-card__media--trainer-phone { min-height: 0; }
.benefit-rail--trainer .benefit-card__body {
  gap: 0.45rem;
  padding: clamp(0.8rem, 1.1vw, 1rem);
}
.benefit-rail--trainer .benefit-card h4 {
  font-size: clamp(1.12rem, 1.7vw, 1.65rem);
  line-height: 1.07;
}
.benefit-rail--trainer .benefit-card__short { font-size: 0.88rem; line-height: 1.34; }
.benefit-rail--trainer .benefit-card__long { font-size: 0.8rem; line-height: 1.4; }
.praesidium-page .function-archive-card__media--artwork {
  padding: 0;
  overflow: hidden;
  background: #fafaf8;
}
.function-archive-card__media--artwork img {
  max-width: 100%;
  filter: none;
}
.praesidium-page .module-visual--artwork {
  aspect-ratio: 3 / 2;
  min-height: 0;
  width: 100%;
  background: #fafaf8;
  border-radius: 26px;
  box-shadow: none;
}
.module-visual--artwork::before,
.module-visual--artwork::after { display: none; }
.module-visual--artwork > img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
}
/* A single architectural scene replaces the former four summary cards. */
.operating-map {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(280px, 340px);
  max-width: 1400px;
  margin: 2.5rem auto;
  overflow: hidden;
  border: 1px solid #dde3df;
  border-radius: 24px;
  background: #fff;
  text-align: left;
}
.operating-map__stage {
  position: relative;
  display: grid;
  align-content: start;
  min-width: 0;
  background: #fff;
}
.operating-map__viewport {
  position: relative;
  aspect-ratio: 8 / 5;
  min-width: 0;
  overflow: hidden;
  isolation: isolate;
}
.operating-map__model {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: contain;
  transform: translate3d(var(--map-pan-x, 0%), var(--map-pan-y, 0%), 0) scale(var(--map-zoom, 1));
  transform-origin: center;
  transition: transform 560ms cubic-bezier(0.22, 1, 0.36, 1);
}
.operating-map[data-map-focus='entry'] { --map-zoom: 1.7; --map-pan-x: 30%; --map-pan-y: 3%; }
.operating-map[data-map-focus='training'] { --map-zoom: 1.55; --map-pan-x: -1%; --map-pan-y: -2%; }
.operating-map[data-map-focus='return'] { --map-zoom: 1.8; --map-pan-x: -36%; --map-pan-y: -8%; }
.operating-map__tabs {
  display: flex;
  justify-content: center;
  gap: 0.75rem;
  padding: 0.85rem 1rem;
  border-top: 1px solid #edf0eb;
  background: #fff;
}
.operating-map__tab {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1 1 0;
  max-width: 150px;
  gap: 0.5rem;
  min-height: 44px;
  padding: 5px 15px 5px 6px;
  border: 1px solid #c6cec7;
  border-radius: 30px;
  color: #202820;
  background: #fff;
  box-shadow: 0 5px 14px #22332218;
  font-family: inherit;
  font-size: 0.8rem;
  font-weight: 700;
  line-height: 1.1;
  cursor: pointer;
  transition: background 150ms, color 150ms, box-shadow 150ms;
}
.operating-map__tab b {
  display: grid;
  place-items: center;
  width: 30px;
  height: 30px;
  border-radius: 50%;
  background: #eef1ed;
  color: #303a2f;
  font-size: 0.68rem;
  letter-spacing: 0.02em;
}
.operating-map__tab.is-active { color: #fff; background: #1d2922; border-color: #1d2922; box-shadow: 0 5px 18px #20352740; }
.operating-map__tab.is-active b { background: #dfe7bd; color: #1e2c21; }
.operating-map__tab:focus-visible,
.operating-map__reset:focus-visible,
.operating-map__panel:focus-visible { outline: 3px solid #708544; outline-offset: 5px; }
.operating-map__reset {
  position: absolute;
  top: 12px;
  right: 12px;
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  min-height: 44px;
  padding: 0.5rem 0.85rem;
  border: 1px solid #dce2da;
  border-radius: 24px;
  background: #fffffff2;
  color: #26362b;
  box-shadow: 0 4px 15px #20352712;
  font: inherit;
  font-size: 0.72rem;
  font-weight: 700;
  cursor: pointer;
}
.operating-map__reset[hidden] { display: none; }
.operating-map__hint {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 20px;
  text-align: center;
  color: #637164;
  font-size: 0.75rem;
  pointer-events: none;
  transition: opacity 150ms;
}
.operating-map[data-map-focus] .operating-map__hint { opacity: 0; }
.operating-map__details { border-left: 1px solid #e6eae7; background: #f8faf8; }
.operating-map__panel { padding: 2rem 1.5rem; }
.operating-map__panel[hidden] { display: none; }
.operating-map__eyebrow { color: #5b6b5d; font-size: 0.65rem; font-weight: 800; letter-spacing: 0.1em; text-transform: uppercase; }
.operating-map__panel h3 { font-size: clamp(1.4rem, 2.3vw, 2rem); line-height: 1.05; letter-spacing: -0.04em; margin: 1rem 0; }
.operating-map__panel p { font-size: 0.88rem; line-height: 1.55; color: #4f5e54; }
.operating-map__evidence {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  grid-template-rows: minmax(0, 1fr);
  place-items: center;
  height: 225px;
  margin: 1.5rem 0 1.1rem;
  overflow: hidden;
  border-radius: 12px;
}
.operating-map__evidence img { display: block; min-width: 0; min-height: 0; max-width: 100%; max-height: 100%; width: auto; height: 100%; object-fit: contain; border-radius: 10px; }
.operating-map__evidence--phone img { border-radius: 0; }
.operating-map__evidence--device { background: #fafaf8; }
.operating-map__evidence--device img { width: 100%; height: auto; border-radius: 0; }
.operating-map__panel a { display: inline-block; color: #26362b; font-size: 0.78rem; font-weight: 800; text-underline-offset: 4px; }
@media (max-width: 1100px) {
  .operating-map { grid-template-columns: minmax(0, 1fr) 290px; }
  .operating-map__tab { padding-right: 8px; gap: 0.3rem; font-size: 0.7rem; }
  .operating-map__panel { padding: 1.5rem 1.1rem; }
}
@media (max-width: 980px) {
  .benefit-rail--staff .benefit-card:has(.benefit-artwork) .benefit-card__body { gap: 0.45rem; padding: 0.9rem; }
  .benefit-rail--staff .benefit-card:has(.benefit-artwork) h4 { font-size: 1.32rem; line-height: 1.08; }
  .benefit-rail--staff .benefit-card:has(.benefit-artwork) .benefit-card__short,
  .benefit-rail--trainer .benefit-card__short { font-size: 0.83rem; line-height: 1.34; }
  .benefit-rail--trainer .benefit-card h4 { font-size: 1.22rem; }
  .operating-map { grid-template-columns: minmax(0, 1fr); }
  .operating-map__stage { min-height: 0; }
  .operating-map__model { padding: 0; }
  .operating-map__details { border-left: 0; border-top: 1px solid #e6eae7; }
  .operating-map__hint { bottom: 9px; font-size: 0.65rem; }
  .operating-map__panel { display: grid; grid-template-columns: 1fr minmax(140px, 33%); column-gap: 1.5rem; padding: 1.4rem; }
  .operating-map__panel > :not(.operating-map__evidence) { grid-column: 1; }
  .operating-map__evidence { grid-column: 2; grid-row: 1 / span 4; height: 220px; margin: 0; }
}
@media (min-width: 981px) and (max-height: 850px) {
  .benefit-rail__sticky { padding-block: 1.1rem; gap: 0.8rem; }
  .benefit-rail__copy h3 { font-size: clamp(2.25rem, 4vw, 3.5rem); }
  .benefit-rail--staff .benefit-card:has(.benefit-artwork) .benefit-card__body { gap: 0.4rem; padding: 0.9rem 1rem; }
  .benefit-rail--staff .benefit-card:has(.benefit-artwork) h4 { font-size: 1.5rem; }
  .benefit-rail--staff .benefit-card:has(.benefit-artwork) .benefit-card__short { font-size: 0.9rem; }
  .benefit-rail--staff .benefit-card:has(.benefit-artwork) .benefit-card__long { font-size: 0.82rem; line-height: 1.4; }
}
@media (max-width: 540px) {
  .operating-map { border-radius: 17px; }
  .operating-map__tabs { gap: 0.5rem; padding: 0.65rem 0.75rem; }
  .operating-map__reset { width: 44px; padding: 0; justify-content: center; border-radius: 50%; top: 10px; right: 10px; }
  .operating-map__reset-label { display: none; }
  .operating-map__tab { flex-direction: column; gap: 4px; min-width: 0; min-height: 56px; padding: 5px 7px 7px; border-radius: 14px; font-size: 0.7rem; }
  .operating-map__tab b { width: 24px; height: 24px; font-size: 0.61rem; }
  .operating-map__panel { display: block; padding: 1.35rem; }
  .operating-map__panel h3 { max-width: 270px; font-size: 1.65rem; }
  .operating-map__evidence { height: 235px; margin: 1.2rem 0; }
  .operating-map__hint { font-size: 0.72rem; bottom: 4px; }
}
@media (max-width: 480px) and (max-height: 760px) {
  .benefit-rail__sticky { padding-block: 0.9rem; gap: 0.7rem; }
  .benefit-rail__copy h3 { font-size: 1.85rem; }
  .benefit-rail__copy p { font-size: 0.9rem; line-height: 1.4; }
  .benefit-rail__top { gap: 0.8rem; }
}
@media (max-width: 980px) and (max-height: 600px) {
  .operating-map__viewport {
    width: 100%;
    max-width: calc(160svh - 288px);
    justify-self: center;
  }
  .operating-map__reset { width: 44px; padding: 0; justify-content: center; border-radius: 50%; }
  .operating-map__reset-label { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .operating-map__tab,
  .operating-map__model,
  .operating-map__hint { transition: none; }
}

/* Short viewports keep the horizontal story without squeezing its images or copy. */
@media (max-width: 900px) and (max-height: 700px) {
  .benefit-rail { min-height: auto !important; }
  .benefit-rail__sticky {
    position: relative;
    top: auto;
    height: auto;
    min-height: 0;
    overflow: visible;
  }
  .benefit-rail__viewport {
    overflow-x: auto;
    overscroll-behavior-x: contain;
    scroll-snap-type: x mandatory;
    padding-bottom: 0.5rem;
  }
  .benefit-track { height: auto; transform: none !important; transition: none; }
  .benefit-rail .benefit-card {
    height: auto;
    min-height: 0;
    grid-template-rows: 270px auto;
  }
  .benefit-rail .benefit-card__media {
    height: 270px;
    min-height: 0;
    grid-template-rows: minmax(0, 1fr);
    overflow: hidden;
  }
  .benefit-rail .benefit-card h4 { font-size: 1.25rem; line-height: 1.12; }
  .benefit-rail .benefit-card__short { font-size: 1rem; line-height: 1.4; }
  .benefit-rail .benefit-card__long { font-size: 0.875rem; line-height: 1.45; }
}
