/* =========================================================
   MOVON · HOME V3 "Operación visible"
   Adaptación a CSS propio de la versión aprobada en Higgsfield
   (movon-assets-package/styles.css), sin Tailwind ni React.
   Solo la HOME usa esta hoja; casos/ y política siguen con styles.css.
   ========================================================= */

:root {
  /* Paleta oficial Brand Sheet V3.1 */
  --movon-petroleum: #1f425a;
  --movon-steel: #213a4b;
  --movon-orange: #c98943;
  --movon-grey: #9fb1bd;
  --movon-paper: #f4f4f1;

  /* Derivados funcionales del V3 (texto y líneas) */
  --movon-ink: #173247;
  --movon-text: #536b7b;
  --movon-text-soft: #4d6575;
  --movon-line: rgb(31 66 90 / 0.18);
  --movon-line-dark: rgb(244 244 241 / 0.22);
  --movon-on-dark: #dbe4e8;
  --movon-orange-light: #efc08b; /* acento sobre petróleo, contraste AA */
  --movon-orange-ink: #8c5d2d;   /* acento sobre blanco roto, contraste AA */

  --font-display: "Montserrat", Arial, sans-serif;
  --font-body: "Inter", Arial, sans-serif;

  --movon-max: 82rem;
  --gutter: clamp(1.25rem, 4.5vw, 4.5rem);
  --wide-pad: max(var(--gutter), calc((100vw - var(--movon-max)) / 2 + 4rem));
  --nav-offset: 6rem;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: var(--nav-offset);
  background: var(--movon-paper);
  color: var(--movon-ink);
  color-scheme: light;
  -webkit-text-size-adjust: 100%;
}

body {
  margin: 0;
  min-height: 100dvh;
  overflow-x: clip;
  background: var(--movon-paper);
  color: var(--movon-ink);
  font-family: var(--font-body);
  line-height: 1.5;
}

img,
video {
  max-width: 100%;
}

a { color: inherit; }

h1, h2, h3 { overflow-wrap: break-word; }

.sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  margin: -1px;
  padding: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  white-space: nowrap;
  border: 0;
}

/* Ids de compatibilidad con enlaces/redirecciones de la HOME anterior. */
.anchor-compat {
  position: absolute;
  width: 0;
  height: 0;
  overflow: hidden;
}

.skip-link {
  position: fixed;
  z-index: 100;
  top: 0.75rem;
  left: 0.75rem;
  padding: 0.75rem 1rem;
  border-radius: 0.55rem;
  background: var(--movon-petroleum);
  color: var(--movon-paper);
  font-weight: 700;
  transform: translateY(calc(-100% - 2rem));
}

.skip-link:focus { transform: none; }

main:focus { outline: none; }

a:focus-visible,
summary:focus-visible,
button:focus-visible {
  outline: 3px solid var(--movon-orange);
  outline-offset: 3px;
}

/* ---------------------------------------------------------
   Navegación flotante
   --------------------------------------------------------- */
.site-nav {
  position: fixed;
  z-index: 40;
  top: 0.75rem;
  right: 1rem;
  left: 1rem;
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: center;
  gap: 1rem;
  min-height: 4.25rem;
  max-width: 92rem;
  margin-inline: auto;
  padding: 0.6rem 0.7rem 0.6rem 1rem;
  border: 1px solid rgb(31 66 90 / 0.12);
  border-radius: 0.85rem;
  background: rgb(244 244 241 / 0.94);
  box-shadow: 0 1rem 3rem rgb(33 58 75 / 0.08);
  -webkit-backdrop-filter: blur(18px);
  backdrop-filter: blur(18px);
  color: var(--movon-ink);
}

.site-nav__brand {
  display: inline-flex;
  align-items: center;
  width: 8.75rem;
}

.site-nav__brand img {
  display: block;
  width: 100%;
  height: auto;
}

.site-nav__links {
  display: flex;
  justify-content: center;
  gap: clamp(0.8rem, 1.8vw, 1.8rem);
  font-size: 0.82rem;
  font-weight: 650;
}

.site-nav__links a {
  padding-block: 0.6rem;
  text-decoration: none;
}

.site-nav__links a[aria-current="page"],
.site-nav__links a:hover {
  text-decoration: underline;
  text-decoration-color: var(--movon-orange);
  text-underline-offset: 0.35rem;
}

.nav-contact {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  justify-content: center;
  padding-inline: 1rem;
  border-radius: 0.65rem;
  background: var(--movon-petroleum);
  color: var(--movon-paper);
  font-size: 0.8rem;
  font-weight: 750;
  text-decoration: none;
  white-space: nowrap;
}

.nav-contact:hover { background: var(--movon-steel); }
.nav-contact:active { transform: translateY(1px); }

.mobile-menu {
  display: none;
  position: relative;
}

.mobile-menu summary {
  min-height: 2.75rem;
  display: inline-flex;
  align-items: center;
  padding: 0 0.65rem;
  color: var(--movon-petroleum);
  font-size: 0.78rem;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}

.mobile-menu summary::-webkit-details-marker { display: none; }

.mobile-menu summary::after {
  content: "";
  width: 0.4rem;
  height: 0.4rem;
  margin-left: 0.45rem;
  border-right: 2px solid currentColor;
  border-bottom: 2px solid currentColor;
  transform: translateY(-0.12rem) rotate(45deg);
}

.mobile-menu[open] summary::after {
  transform: translateY(0.12rem) rotate(-135deg);
}

.mobile-menu nav {
  position: absolute;
  top: calc(100% + 0.65rem);
  left: 50%;
  width: min(18rem, calc(100vw - 2rem));
  transform: translateX(-50%);
  padding: 0.55rem;
  border: 1px solid var(--movon-line);
  border-radius: 0.75rem;
  background: var(--movon-paper);
  box-shadow: 0 1rem 2.5rem rgb(33 58 75 / 0.14);
}

.mobile-menu nav a {
  min-height: 2.8rem;
  display: flex;
  align-items: center;
  padding-inline: 0.75rem;
  border-bottom: 1px solid var(--movon-line);
  color: var(--movon-petroleum);
  font-size: 0.84rem;
  font-weight: 650;
  text-decoration: none;
}

.mobile-menu nav a:last-child { border-bottom: 0; }

.mobile-menu nav a[aria-current="page"] {
  border-left: 3px solid var(--movon-orange);
  font-weight: 750;
}

/* ---------------------------------------------------------
   01 · Hero + scroll-scrub
   Sin JS / con reduced-motion: una pantalla con el poster.
   Con .scrub-on: pista alta y escenario sticky; el JS
   sincroniza el tiempo del film con el avance del scroll.
   --------------------------------------------------------- */
.hero {
  --scrub-distance: 2.2; /* pantallas de scroll que recorre el film (V3: scroll 2.2) */
  position: relative;
  background: var(--movon-petroleum);
  color: var(--movon-paper);
}

.scrub-on .hero {
  height: calc(100svh * (1 + var(--scrub-distance)));
}

.hero__pin {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 100svh;
  overflow: hidden;
  padding: 6.5rem var(--wide-pad) 4rem;
}

.scrub-on .hero__pin {
  position: sticky;
  top: 0;
  height: 100svh;
}

.hero__media {
  position: absolute;
  inset: 0;
  background: var(--movon-petroleum);
}

.hero__media picture,
.hero__poster,
.hero__film {
  position: absolute;
  inset: 0;
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}

.hero__film {
  opacity: 0;
  transition: opacity 0.4s ease;
}

.hero__film.is-ready { opacity: 1; }

/* Legibilidad del texto sobre el film: velo petróleo plano a la izquierda,
   no un degradado decorativo. */
.hero__scrim {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(90deg, rgb(31 66 90 / 0.86) 0%, rgb(31 66 90 / 0.62) 38%, rgb(31 66 90 / 0) 66%),
    linear-gradient(0deg, rgb(31 66 90 / 0.35) 0%, rgb(31 66 90 / 0) 30%);
  pointer-events: none;
}

.hero__progress {
  position: absolute;
  z-index: 3;
  top: 0;
  right: 0;
  left: 0;
  height: 3px;
  background: rgb(244 244 241 / 0.12);
}

.hero__progress span {
  display: block;
  height: 100%;
  background: var(--movon-orange);
  transform: scaleX(var(--scrub-progress, 0));
  transform-origin: left center;
}

html:not(.scrub-on) .hero__progress { display: none; }

.hero__copy {
  position: relative;
  z-index: 2;
  width: min(42rem, 50vw);
}

.hero__kicker {
  max-width: 34ch;
  margin: 0 0 1rem;
  color: #e1b37f;
  font-size: 0.75rem;
  font-weight: 700;
  letter-spacing: 0.09em;
  text-transform: uppercase;
}

.hero__title {
  max-width: 14ch;
  margin: 0;
  color: var(--movon-paper);
  font-family: var(--font-display);
  font-size: clamp(2.75rem, 4.8vw, 4.9rem);
  font-weight: 760;
  line-height: 0.98;
  letter-spacing: -0.055em;
  text-wrap: balance;
}

.hero__body {
  max-width: 42ch;
  margin: 1.4rem 0 0;
  color: #e3e9ec;
  font-size: clamp(0.98rem, 1.15vw, 1.08rem);
  line-height: 1.65;
}

.hero__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  max-width: 43rem;
  gap: 0.7rem 1.4rem;
  margin-top: 1.75rem;
}

.hero-action-primary,
.hero-action-secondary {
  min-height: 3rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.hero-action-primary {
  padding: 0.8rem 1.15rem;
  border: 1px solid var(--movon-paper);
  border-left: 4px solid var(--movon-orange);
  border-radius: 0.55rem;
  background: var(--movon-paper);
  color: var(--movon-petroleum);
  box-shadow: 0 0.7rem 1.8rem rgb(10 31 44 / 0.18);
  font-weight: 800;
  transition: border-left-width 0.2s ease;
}

.hero-action-primary:hover { border-left-width: 8px; }

.hero-action-secondary {
  padding: 0.8rem 0.1rem;
  border-bottom: 2px solid var(--movon-orange);
  color: var(--movon-paper);
  font-weight: 700;
}

.hero-email {
  flex-basis: 100%;
  color: #d8e0e4;
  font-size: 0.8rem;
  text-underline-offset: 0.22rem;
}

/* ---------------------------------------------------------
   Secciones: estructura común
   --------------------------------------------------------- */
.section-shell {
  position: relative;
  max-width: var(--movon-max);
  margin-inline: auto;
  padding: clamp(4.5rem, 7vw, 6.5rem) var(--gutter);
}

.section-heading {
  max-width: 52rem;
  margin-bottom: clamp(2rem, 3.5vw, 3.25rem);
}

.section-heading--compact { max-width: 62rem; }

.section-heading h2,
.digital-copy h2,
.contact-section h2 {
  margin: 0;
  max-width: 17ch;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(2.25rem, 4.8vw, 4.8rem);
  font-weight: 760;
  line-height: 1.02;
  letter-spacing: -0.045em;
  text-wrap: balance;
}

.section-heading--compact h2 { max-width: 22ch; }

.section-heading p,
.digital-copy > p,
.contact-section > div > p:not(.section-kicker) {
  max-width: 62ch;
  margin: 1.35rem 0 0;
  color: var(--movon-text-soft);
  font-size: clamp(1rem, 1.4vw, 1.12rem);
  line-height: 1.7;
}

.section-kicker {
  margin: 0 0 0.8rem;
  color: #925f29;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.editorial-link,
.needs-link,
.team-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.5rem;
  margin-top: 2.5rem;
  color: var(--movon-petroleum);
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3rem;
}

.editorial-link:hover,
.needs-link:hover,
.team-link:hover {
  text-decoration-color: var(--movon-orange);
  text-decoration-thickness: 2px;
}

/* ---------------------------------------------------------
   02 · Caso Micromet
   --------------------------------------------------------- */
.case-layout {
  display: grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(22rem, 0.82fr);
  gap: clamp(1.25rem, 2.8vw, 2.75rem);
  align-items: stretch;
}

.case-layout figure { margin: 0; }

.case-photo,
.case-evidence figure {
  overflow: hidden;
  border: 1px solid var(--movon-line);
  border-radius: 0.8rem;
  background: #fff;
}

.case-photo {
  display: flex;
  flex-direction: column;
}

.case-photo img {
  display: block;
  flex: 1;
  width: 100%;
  min-height: 39rem;
  height: 100%;
  object-fit: cover;
}

.case-layout figcaption {
  padding: 0.9rem 1rem 1rem;
  color: #526978;
  font-size: 0.78rem;
  line-height: 1.45;
}

.case-evidence {
  display: grid;
  align-content: stretch;
  gap: 1.25rem;
}

.case-evidence figure {
  display: flex;
  min-height: 0;
  flex-direction: column;
  align-items: stretch;
  justify-content: center;
  padding: 1.2rem 1.2rem 1rem;
}

/* Las capturas son de pantalla completa de teléfono: se muestra la parte
   superior (formulario de recepción / encabezado del despacho). */
.case-evidence img {
  display: block;
  flex: none;
  width: 13rem;
  max-width: 100%;
  height: 19.5rem;
  margin-inline: auto;
  border-radius: 0.4rem;
  object-fit: cover;
  object-position: top center;
}

.case-evidence figcaption {
  display: grid;
  gap: 0.22rem;
  padding: 1rem 0.25rem 0.15rem;
  text-align: left;
}

.case-evidence figcaption strong {
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: 0.98rem;
  font-weight: 760;
}

.case-evidence figcaption span {
  color: #526978;
  font-size: 0.82rem;
  line-height: 1.5;
}

/* ---------------------------------------------------------
   03 · Dónde necesitás más control
   --------------------------------------------------------- */
.needs-section {
  padding-bottom: clamp(3.25rem, 5vw, 4.75rem);
  border-top: 1px solid var(--movon-line);
}

.needs-list {
  display: grid;
  border-top: 1px solid var(--movon-line);
}

.need-row {
  display: grid;
  grid-template-columns: 5rem minmax(0, 1fr);
  gap: clamp(1rem, 3vw, 3rem);
  align-items: center;
  min-height: 9rem;
  padding: 1.5rem clamp(0rem, 2vw, 2rem);
  border-bottom: 1px solid var(--movon-line);
}

.needs-section .needs-link { margin-top: 1.6rem; }

.need-row--lead {
  min-height: 12rem;
  background: rgb(31 66 90 / 0.045);
}

.need-row img {
  width: 4.2rem;
  height: 4.2rem;
  object-fit: contain;
}

.need-row h3 {
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(1.35rem, 2.4vw, 2.15rem);
  font-weight: 700;
  line-height: 1.15;
  letter-spacing: -0.025em;
}

.need-row p {
  max-width: 60ch;
  margin: 0.55rem 0 0;
  color: var(--movon-text);
  line-height: 1.6;
}

/* ---------------------------------------------------------
   04 · Sistemas digitales (prototipo)
   --------------------------------------------------------- */
.digital-section {
  display: grid;
  grid-template-columns: minmax(18rem, 0.72fr) minmax(34rem, 1.28fr);
  gap: clamp(2.25rem, 5vw, 5rem);
  align-items: center;
  max-width: none;
  padding: clamp(3.5rem, 5.5vw, 5.25rem) var(--wide-pad) clamp(3.75rem, 5.5vw, 5.5rem);
  background:
    linear-gradient(rgb(244 244 241 / 0.9), rgb(244 244 241 / 0.9)),
    url("../img/plates/plate-light.webp") center / cover;
}

.digital-copy {
  position: relative;
  z-index: 2;
  min-width: 0;
}

.digital-copy h2 {
  max-width: 11.5ch;
  font-size: clamp(2.35rem, 4vw, 4.25rem);
}

.digital-icon {
  display: block;
  width: 4.5rem;
  height: 4.5rem;
  margin-bottom: 1.3rem;
  object-fit: contain;
}

.digital-link {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  margin-top: 1.7rem;
  padding: 0 0.9rem;
  border-left: 4px solid var(--movon-orange);
  color: var(--movon-petroleum);
  font-weight: 800;
  text-decoration: none;
}

.digital-link:hover { text-decoration: underline; text-underline-offset: 0.3rem; }

.prototype-column {
  min-width: 0;
  display: grid;
  gap: 0.85rem;
}

.prototype-disclosure {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.8rem;
  align-items: baseline;
  margin: 0;
  padding: 0 0.1rem;
  color: var(--movon-petroleum);
  font-size: 0.78rem;
}

.prototype-disclosure strong {
  color: var(--movon-orange-ink);
  font-weight: 800;
}

.prototype-disclosure span { color: #617787; }

.prototype-stage {
  position: relative;
  min-height: 35rem;
  overflow: hidden;
  border: 1px solid rgb(31 66 90 / 0.14);
  border-radius: 1rem;
  background: var(--movon-petroleum);
  box-shadow: 0 1.8rem 5rem rgb(33 58 75 / 0.16);
}

.prototype-main,
.prototype-side {
  position: absolute;
  margin: 0;
  overflow: hidden;
  border: 1px solid rgb(244 244 241 / 0.16);
  border-radius: 0.65rem;
  background: #fff;
  box-shadow: 0 1.4rem 3.5rem rgb(12 30 42 / 0.28);
}

.prototype-stage img {
  display: block;
  width: 100%;
  height: auto;
}

.prototype-main {
  z-index: 2;
  top: 2rem;
  right: 1.4rem;
  left: 8%;
}

/* Vista móvil "Pendientes por área": recorte superior, delante del maestro. */
.prototype-side {
  z-index: 3;
  bottom: 1.6rem;
  left: 1.2rem;
  width: min(30%, 13.5rem);
  max-height: 64%;
}

.prototype-side img {
  height: 100%;
  object-fit: cover;
  object-position: top center;
}

.prototype-note {
  position: absolute;
  right: 1.4rem;
  bottom: 1rem;
  left: 1.4rem;
  margin: 0;
  color: #d8e0e4;
  font-size: 0.75rem;
  line-height: 1.5;
}

/* ---------------------------------------------------------
   05 · Método
   --------------------------------------------------------- */
.method-section {
  max-width: none;
  padding-inline: var(--wide-pad);
  background:
    linear-gradient(rgb(31 66 90 / 0.88), rgb(31 66 90 / 0.94)),
    url("../img/plates/plate-dark.webp") center / cover;
  color: var(--movon-paper);
}

.section-heading--on-dark h2 { color: var(--movon-paper); }
.section-heading--on-dark p { color: #dce4e8; }

.method-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line-dark);
  border-bottom: 1px solid var(--movon-line-dark);
}

.method-strip li {
  min-height: 17rem;
  padding: 1.5rem 1.2rem 1.8rem;
  border-right: 1px solid rgb(244 244 241 / 0.14);
}

.method-strip li:last-child { border-right: 0; }

.method-strip img {
  display: block;
  width: 3.35rem;
  height: 3.35rem;
  margin-bottom: 3rem;
  object-fit: contain;
  filter: brightness(0) invert(1);
  opacity: 0.88;
}

.method-strip h3 {
  margin: 0;
  color: var(--movon-orange-light);
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 760;
}

.method-strip p {
  margin: 0.7rem 0 0;
  color: #e1e7ea;
  font-size: 0.9rem;
  line-height: 1.6;
}

.method-link {
  display: inline-flex;
  min-height: 3rem;
  align-items: center;
  margin-top: 2rem;
  color: var(--movon-paper);
  font-weight: 800;
  text-decoration-color: var(--movon-orange);
  text-decoration-thickness: 2px;
  text-underline-offset: 0.35rem;
}

/* ---------------------------------------------------------
   06 · Equipo
   --------------------------------------------------------- */
.team-section {
  padding-bottom: clamp(2.75rem, 4vw, 4rem);
  background: var(--movon-paper);
}

.team-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  border-top: 1px solid var(--movon-line);
  border-bottom: 1px solid var(--movon-line);
}

.team-grid article {
  min-width: 0;
  min-height: 17rem;
  padding: clamp(2rem, 5vw, 5rem) clamp(0rem, 4vw, 4rem);
}

.team-grid article:first-child { padding-left: 0; }

.team-grid article + article { border-left: 1px solid var(--movon-line); }

/* Dos columnas: el rol de Marcelo ocupa dos líneas y el de Andrés una. Se
   reserva la misma altura para el rol en ambas, así los nombres arrancan a la
   misma altura. Con subgrid las filas rol / nombre / texto se comparten entre
   columnas; sin subgrid, el rol reserva dos líneas. En una columna fluye libre. */
@media (min-width: 641px) {
  .team-role { min-height: 3em; }

  @supports (grid-template-rows: subgrid) {
    .team-grid { grid-template-rows: auto auto 1fr; }

    .team-grid article {
      display: grid;
      grid-row: span 3;
      grid-template-rows: subgrid;
      row-gap: 0;
    }

    .team-role { min-height: 0; }
  }
}

.team-role {
  margin: 0;
  color: #7f582e;
  font-size: 0.78rem;
  font-weight: 750;
  letter-spacing: 0.08em;
  line-height: 1.5;
  text-transform: uppercase;
}

/* Mismo tamaño para ambos nombres. Escala y tope calculados para que el más
   largo ("Marcelo Olivera") entre en una línea en su columna, incluso cuando
   la sección ya llegó a su ancho máximo (82rem) y el vw sigue creciendo. */
.team-grid h3 {
  max-width: none;
  margin: 2.75rem 0 1rem;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(2.2rem, 3.5vw, 3.5rem);
  font-weight: 760;
  line-height: 0.98;
  letter-spacing: -0.05em;
}

.team-grid article p:not(.team-role) {
  max-width: 44ch;
  margin: 0;
  color: var(--movon-text);
  line-height: 1.65;
}

.team-grid strong {
  color: var(--movon-petroleum);
  font-weight: 650;
}

.team-grid .team-credential {
  margin-top: 0.75rem;
  color: var(--movon-petroleum);
  font-weight: 700;
}

.team-more { margin-top: 1.25rem; }

.team-more summary {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.6rem;
  color: var(--movon-petroleum);
  font-size: 0.88rem;
  font-weight: 750;
  cursor: pointer;
  list-style: none;
}

.team-more summary::-webkit-details-marker { display: none; }

.team-more summary::after {
  content: "+";
  color: var(--movon-orange);
  font-size: 1.25rem;
  font-weight: 500;
  line-height: 1;
}

.team-more[open] summary::after { content: "×"; }

.team-more p { padding-top: 0.25rem; }

.team-section .team-link { margin-top: 1.5rem; }

/* ---------------------------------------------------------
   07 · Preguntas
   --------------------------------------------------------- */
.faq-section {
  max-width: none;
  padding: clamp(3rem, 4.5vw, 4.5rem) var(--wide-pad) clamp(4.5rem, 7vw, 6.5rem);
  background:
    linear-gradient(rgb(244 244 241 / 0.95), rgb(244 244 241 / 0.95)),
    url("../img/plates/plate-light.webp") center / cover;
}

.faq-section .section-heading { margin-bottom: clamp(1.4rem, 2.5vw, 2.2rem); }

.faq-list { border-top: 1px solid var(--movon-line); }
.faq-list details { border-bottom: 1px solid var(--movon-line); }

.faq-list summary {
  position: relative;
  min-height: 5.5rem;
  display: flex;
  align-items: center;
  padding: 1.1rem 4rem 1.1rem 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 2vw, 1.65rem);
  font-weight: 700;
  line-height: 1.25;
  cursor: pointer;
  list-style: none;
}

.faq-list summary::-webkit-details-marker { display: none; }

.faq-list summary::after {
  position: absolute;
  right: 0.8rem;
  content: "+";
  color: var(--movon-orange);
  font-family: var(--font-body);
  font-size: 1.6rem;
  font-weight: 500;
}

.faq-list details[open] summary::after { content: "×"; }

.faq-list details p {
  max-width: 65ch;
  margin: 0;
  padding: 0 0 1.6rem;
  color: var(--movon-text);
  line-height: 1.65;
}

/* ---------------------------------------------------------
   08 · Contacto
   --------------------------------------------------------- */
.contact-section {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(18rem, 0.75fr);
  gap: clamp(3rem, 8vw, 8rem);
  align-items: end;
  max-width: none;
  padding-inline: var(--wide-pad);
  background: var(--movon-petroleum);
  color: var(--movon-paper);
}

.contact-section .section-kicker { color: var(--movon-orange-light); }
.contact-section h2 { color: var(--movon-paper); }
.contact-section > div > p:not(.section-kicker) { color: var(--movon-on-dark); }

.contact-actions {
  display: grid;
  border-top: 1px solid var(--movon-line-dark);
}

.contact-actions a {
  min-height: 4.2rem;
  display: flex;
  align-items: center;
  border-bottom: 1px solid var(--movon-line-dark);
  color: var(--movon-paper);
  text-decoration: none;
}

.contact-actions a:hover { text-decoration: underline; text-underline-offset: 0.3rem; }

.contact-whatsapp {
  font-family: var(--font-display);
  font-size: 1.2rem;
  font-weight: 780;
}

.contact-whatsapp::after {
  margin-left: auto;
  padding-left: 1rem;
  color: var(--movon-orange);
  content: "→";
}

.contact-email,
.contact-phone { font-size: 0.9rem; }

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */
.site-footer {
  display: flex;
  justify-content: space-between;
  gap: 2rem;
  padding: 2.5rem var(--wide-pad);
  background: var(--movon-steel);
  color: var(--movon-on-dark);
}

.site-footer__brand img {
  display: block;
  width: 8rem;
  height: auto;
}

.site-footer__brand p {
  margin: 1rem 0 0;
  font-size: 0.78rem;
}

.site-footer__brand .site-footer__place { margin-top: 0.35rem; }

.site-footer__links {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 0.25rem 1.5rem;
  align-items: flex-end;
  font-size: 0.78rem;
}

.site-footer__links a {
  display: inline-flex;
  min-height: 2.5rem;
  align-items: center;
}

.site-footer__links > span { line-height: 2.5rem; }

.site-footer__links a { text-underline-offset: 0.25rem; }

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */
@media (max-width: 1100px) {
  .digital-section {
    grid-template-columns: minmax(17rem, 0.8fr) minmax(29rem, 1.2fr);
    gap: 2.5rem;
  }

  .digital-copy h2 { font-size: clamp(2.2rem, 4vw, 3.8rem); }
}

@media (max-width: 980px) {
  .site-nav { grid-template-columns: auto 1fr auto; }
  .site-nav__links { display: none; }

  .mobile-menu {
    display: block;
    justify-self: center;
  }

  .hero__copy { width: min(100%, 36rem); }

  .case-layout,
  .digital-section,
  .contact-section { grid-template-columns: 1fr; }

  .case-photo img { min-height: 27rem; }

  .case-evidence { grid-template-columns: 1fr 1fr; }

  .digital-copy { max-width: 42rem; }
  .digital-copy h2 { max-width: 14ch; }

  .prototype-stage { min-height: 36rem; }

  .method-strip { grid-template-columns: 1fr; }

  .method-strip li {
    min-height: auto;
    display: grid;
    grid-template-columns: 4rem 8rem 1fr;
    gap: 1rem;
    align-items: center;
    padding: 1.2rem 0;
    border-right: 0;
    border-bottom: 1px solid rgb(244 244 241 / 0.14);
  }

  .method-strip li:last-child { border-bottom: 0; }
  .method-strip img { margin: 0; }
  .method-strip p { margin: 0; }
}

/* Mobile: clip y poster mobile (encuadre 58 %). */
@media (max-width: 900px) {
  .hero__poster,
  .hero__film { object-position: 58% center; }
}

/* Mobile vertical: el film ocupa el alto que deja el texto y el texto va
   debajo, sobre petróleo plano. Así la zona focal central del film queda
   visible durante todo el scrub y el texto no compite con la imagen. */
@media (max-width: 900px) and (orientation: portrait) {
  .hero__pin {
    flex-direction: column;
    align-items: stretch;
    padding: 0;
  }

  .hero__media {
    position: relative;
    inset: auto;
    flex: 1 1 auto;
    min-height: 34svh;
  }

  .hero__media::after {
    content: "";
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 28%;
    background: linear-gradient(0deg, var(--movon-petroleum), rgb(31 66 90 / 0));
  }

  .hero__scrim { display: none; }

  .hero__copy {
    flex: none;
    width: 100%;
    margin-top: -1.75rem;
    padding: 0 var(--gutter) 2rem;
  }
}

/* Teléfonos bajos: compactar el texto para que entre completo en la pantalla fija. */
@media (max-width: 900px) and (orientation: portrait) and (max-height: 760px) {
  .hero .hero__media { min-height: 24svh; }
  .hero .hero__copy { padding-bottom: 1.25rem; }
  .hero .hero__kicker { margin-bottom: 0.6rem; font-size: 0.68rem; }

  .hero .hero__title {
    max-width: none;
    font-size: clamp(1.9rem, 8.6vw, 2.6rem);
  }

  .hero .hero__body {
    max-width: none;
    margin-top: 0.75rem;
    font-size: 0.9rem;
    line-height: 1.55;
  }

  .hero .hero__actions {
    gap: 0.25rem 1.2rem;
    margin-top: 1rem;
  }

  .hero .hero-action-primary { min-height: 2.9rem; }
  .hero .hero-action-secondary { min-height: 2.75rem; }
}

@media (max-width: 640px) {
  :root { --nav-offset: 5rem; }

  .site-nav {
    top: 0.5rem;
    right: 0.6rem;
    left: 0.6rem;
    gap: 0.25rem;
    min-height: 3.8rem;
    padding-left: 0.75rem;
  }

  .site-nav__brand { width: 6.9rem; }

  .mobile-menu summary {
    min-height: 2.55rem;
    padding-inline: 0.4rem;
    font-size: 0.72rem;
  }

  .nav-contact {
    min-height: 2.55rem;
    padding-inline: 0.75rem;
    font-size: 0.72rem;
  }

  .hero__title {
    max-width: 12ch;
    font-size: clamp(2.25rem, 9.8vw, 3.5rem);
  }

  .hero__body {
    max-width: 32ch;
    margin-top: 1rem;
    font-size: 0.95rem;
  }

  .hero__actions { margin-top: 1.35rem; }
  .hero-action-primary { flex: 1 1 auto; }
  .hero-email { display: none; }

  .section-shell { padding: 4.5rem 1.25rem; }

  .case-photo img { min-height: 20rem; }
  .case-evidence { grid-template-columns: 1fr; }

  .case-evidence figure {
    min-height: auto;
    padding: 1rem;
  }

  .case-evidence img {
    width: 12rem;
    height: 18rem;
  }

  .needs-section { padding-bottom: 3rem; }

  .need-row {
    grid-template-columns: 3.7rem 1fr;
    padding-block: 1.3rem;
  }

  .need-row img {
    width: 3.2rem;
    height: 3.2rem;
  }

  .digital-section {
    grid-template-columns: minmax(0, 1fr);
    padding: 3.25rem 1.25rem 3.5rem;
  }

  .digital-copy h2 {
    max-width: 12ch;
    font-size: clamp(2.25rem, 10vw, 3.25rem);
  }

  .method-section,
  .contact-section,
  .faq-section { padding-inline: 1.25rem; }

  .prototype-stage { min-height: 27rem; }

  .prototype-main {
    top: 1.25rem;
    right: 0.7rem;
    left: 5%;
  }

  .prototype-side {
    bottom: 1.25rem;
    left: 0.7rem;
    width: 38%;
    max-height: 62%;
  }

  .prototype-note {
    right: 1rem;
    left: 1rem;
  }

  .method-strip li { grid-template-columns: 3.4rem 1fr; }
  .method-strip li p { grid-column: 2; }

  .team-section { padding-bottom: 2.5rem; }
  .team-grid { grid-template-columns: 1fr; }

  .team-grid article {
    min-height: auto;
    padding: 2.5rem 0;
  }

  .team-grid article + article {
    border-top: 1px solid var(--movon-line);
    border-left: 0;
  }

  .team-grid h3 { margin-top: 2.2rem; }

  .faq-section { padding-top: 2.75rem; }

  .site-footer {
    flex-direction: column;
    padding: 2rem 1.25rem;
  }

  .site-footer__links { justify-content: flex-start; }
}

@media (max-width: 380px) {
  .site-nav__brand { width: 5.8rem; }
  .nav-contact { padding-inline: 0.6rem; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.001ms !important;
    animation-duration: 0.001ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* =========================================================
   Páginas interiores V3: /soluciones/, /sistemas-digitales/,
   /casos/micromet/, /contacto/
   Comparten la navegación, el footer y los tokens de la HOME.
   ========================================================= */

.interior-hero {
  max-width: var(--movon-max);
  margin-inline: auto;
  padding: clamp(8rem, 11vw, 10rem) var(--gutter) clamp(3.25rem, 5vw, 4.75rem);
}

.interior-hero--dark {
  max-width: none;
  padding-inline: var(--wide-pad);
  background:
    linear-gradient(rgb(31 66 90 / 0.9), rgb(31 66 90 / 0.95)),
    url("../img/plates/plate-dark.webp") center / cover;
  color: var(--movon-paper);
}

.interior-hero h1 {
  max-width: 17ch;
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(2.6rem, 6vw, 5.6rem);
  font-weight: 770;
  line-height: 1;
  letter-spacing: -0.05em;
  text-wrap: balance;
}

.interior-hero--dark h1 { color: var(--movon-paper); }
.interior-hero--dark .section-kicker { color: var(--movon-orange-light); }

.interior-lead {
  max-width: 64ch;
  margin: 1.5rem 0 0;
  color: #516a7a;
  font-size: clamp(1rem, 1.45vw, 1.16rem);
  line-height: 1.7;
}

.interior-hero--dark .interior-lead { color: var(--movon-on-dark); }

.interior-section {
  max-width: var(--movon-max);
  margin-inline: auto;
  padding: clamp(3.5rem, 5.5vw, 5.5rem) var(--gutter);
}

.interior-section--rule { border-top: 1px solid var(--movon-line); }

/* Sección a todo el ancho con fondo propio; el contenido respeta la retícula. */
.interior-band {
  padding: clamp(3.5rem, 5.5vw, 5.5rem) var(--wide-pad);
}

.interior-band--plate {
  background:
    linear-gradient(rgb(244 244 241 / 0.94), rgb(244 244 241 / 0.94)),
    url("../img/plates/plate-light.webp") center / cover;
}

.interior-band--steel {
  background: var(--movon-steel);
  color: var(--movon-paper);
}

.interior-band--petroleum {
  background:
    linear-gradient(rgb(31 66 90 / 0.9), rgb(31 66 90 / 0.95)),
    url("../img/plates/plate-dark.webp") center / cover;
  color: var(--movon-paper);
}

.interior-heading {
  max-width: 58rem;
  margin-bottom: clamp(2rem, 3.5vw, 3rem);
}

.interior-heading h2,
.interior-title {
  max-width: 22ch;
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 760;
  line-height: 1.04;
  letter-spacing: -0.04em;
  text-wrap: balance;
}

.interior-heading p,
.interior-text {
  max-width: 64ch;
  margin: 1rem 0 0;
  color: var(--movon-text);
  line-height: 1.7;
}

.interior-band--steel .interior-heading h2,
.interior-band--petroleum .interior-heading h2,
.interior-band--steel .interior-title,
.interior-band--petroleum .interior-title { color: var(--movon-paper); }

.interior-band--steel .interior-heading p,
.interior-band--petroleum .interior-heading p,
.interior-band--steel .interior-text,
.interior-band--petroleum .interior-text { color: var(--movon-on-dark); }

.interior-band--steel .section-kicker,
.interior-band--petroleum .section-kicker { color: var(--movon-orange-light); }

.mini-label {
  margin: 0 0 0.6rem;
  color: #7f582e;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.interior-band--steel .mini-label,
.interior-band--petroleum .mini-label { color: var(--movon-orange-light); }

.inline-link {
  display: inline-flex;
  min-height: 2.75rem;
  align-items: center;
  gap: 0.45rem;
  margin-top: 1rem;
  color: var(--movon-petroleum);
  font-weight: 800;
  text-decoration-thickness: 1px;
  text-underline-offset: 0.3rem;
}

.inline-link:hover {
  text-decoration-color: var(--movon-orange);
  text-decoration-thickness: 2px;
}

.interior-band--steel .inline-link,
.interior-band--petroleum .inline-link { color: var(--movon-paper); }

/* Frase de cierre de bloque (copy aprobado). */
.closing-quote {
  max-width: 48ch;
  margin: 2rem 0 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(1.1rem, 1.8vw, 1.4rem);
  font-weight: 700;
  line-height: 1.35;
}

.ruled-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line);
}

.ruled-list li {
  padding: 1rem 0;
  border-bottom: 1px solid var(--movon-line);
  color: var(--movon-petroleum);
  font-weight: 650;
  line-height: 1.5;
}

.interior-band--steel .ruled-list,
.interior-band--petroleum .ruled-list { border-color: var(--movon-line-dark); }

.interior-band--steel .ruled-list li,
.interior-band--petroleum .ruled-list li {
  border-color: var(--movon-line-dark);
  color: var(--movon-paper);
}

.tag-line {
  margin: 1.25rem 0 0;
  color: var(--movon-text);
  font-size: 0.9rem;
  line-height: 1.7;
}

.tag-line span {
  display: block;
  color: #7f582e;
  font-size: 0.74rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

/* En las páginas interiores el kicker conserva su estilo dentro de los encabezados
   (en la HOME se deja como en la versión aprobada). */
.interior-page .section-heading .section-kicker,
.interior-page .interior-heading .section-kicker {
  margin: 0 0 0.8rem;
  color: #925f29;
  font-size: 0.78rem;
  line-height: 1.5;
}

.interior-page .section-heading--on-dark .section-kicker,
.interior-page .interior-band--steel .section-kicker,
.interior-page .interior-band--petroleum .section-kicker { color: var(--movon-orange-light); }

/* --- /soluciones/ : tres necesidades en filas editoriales --- */
.need-detail {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line);
}

.need-detail > li {
  display: grid;
  grid-template-columns: minmax(14rem, 0.9fr) minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(1.5rem, 3.5vw, 3.5rem);
  align-items: start;
  padding: clamp(2rem, 3.5vw, 3rem) clamp(0rem, 2vw, 2rem);
  border-bottom: 1px solid var(--movon-line);
}

.need-detail__head img {
  display: block;
  width: 4rem;
  height: 4rem;
  margin-bottom: 1.25rem;
  object-fit: contain;
}

.need-detail__index {
  display: block;
  margin-bottom: 0.5rem;
  color: #7f582e;
  font-size: 0.78rem;
  font-weight: 800;
  letter-spacing: 0.08em;
}

.need-detail h2 {
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.4vw, 2.2rem);
  font-weight: 740;
  line-height: 1.1;
  letter-spacing: -0.03em;
  text-wrap: balance;
}

.need-detail__signal {
  padding-left: 1.1rem;
  border-left: 3px solid var(--movon-grey);
}

.need-detail__signal blockquote {
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 700;
  line-height: 1.3;
}

.need-detail p {
  margin: 0.75rem 0 0;
  color: var(--movon-text);
  line-height: 1.65;
}

.need-detail .mini-label {
  margin: 0 0 0.6rem;
  color: #7f582e;
}

.need-detail .tag-line { margin-top: 1.1rem; }

.need-detail__action > p:first-child {
  margin-top: 0;
  color: var(--movon-ink);
}

.need-detail--lead { background: rgb(31 66 90 / 0.045); }

.capability-list {
  display: grid;
  grid-template-columns: 1fr 1fr;
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line);
}

.capability-list li {
  min-height: 12rem;
  padding: 2rem 2rem 2rem 0;
  border-bottom: 1px solid var(--movon-line);
}

.capability-list li:nth-child(even) {
  padding-left: 2rem;
  border-left: 1px solid var(--movon-line);
}

.capability-list h3 {
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: 1.4rem;
  font-weight: 740;
}

.capability-list p {
  max-width: 46ch;
  margin: 0.8rem 0 0;
  color: var(--movon-text);
  line-height: 1.6;
}

.capability-list .inline-link { margin-top: 0.5rem; }

.standards-note {
  display: flex;
  flex-wrap: wrap;
  gap: 0.25rem 1.5rem;
  align-items: baseline;
  margin-top: 2rem;
  color: var(--movon-text);
  font-size: 0.9rem;
}

.standards-note p { margin: 0; }
.standards-note strong { color: var(--movon-petroleum); }

/* --- /sistemas-digitales/ --- */
.scope-map {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line);
  border-bottom: 1px solid var(--movon-line);
}

.scope-map li {
  display: flex;
  flex-direction: column;
  padding: 1.75rem 1.75rem 1.5rem 0;
}

.scope-map li + li {
  padding-left: 1.75rem;
  border-left: 1px solid var(--movon-line);
}

.scope-map li:last-child {
  padding-right: 1.75rem;
  background: rgb(31 66 90 / 0.045);
}

.scope-map h3 {
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2vw, 1.7rem);
  font-weight: 740;
}

.scope-map p {
  margin: 0.7rem 0 0;
  color: var(--movon-text);
  line-height: 1.6;
}

.scope-map .inline-link {
  margin-top: auto;
  padding-top: 1rem;
}

.criteria-columns {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 5rem);
}

.criteria-columns h3 {
  margin: 0 0 1rem;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: 1.35rem;
  font-weight: 740;
}

.criteria-columns .ruled-list li {
  position: relative;
  padding-left: 1.6rem;
}

.criteria-columns .ruled-list li::before {
  position: absolute;
  left: 0;
  color: var(--movon-orange);
  font-weight: 800;
}

.criteria-yes li::before { content: "+"; }
.criteria-no li::before { content: "–"; }

.criteria-no li {
  color: var(--movon-ink);
  font-weight: 600;
}

.define-strip {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line-dark);
  border-bottom: 1px solid var(--movon-line-dark);
  counter-reset: define;
}

.define-strip li {
  min-height: 13rem;
  padding: 1.5rem 1.2rem 1.8rem;
  border-right: 1px solid rgb(244 244 241 / 0.14);
  counter-increment: define;
}

.define-strip li:first-child { padding-left: 0; }
.define-strip li:last-child { border-right: 0; }

.define-strip li::before {
  display: block;
  margin-bottom: 2.25rem;
  color: rgb(244 244 241 / 0.6);
  font-size: 0.78rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  content: "0" counter(define);
}

.define-strip h3 {
  margin: 0;
  color: var(--movon-orange-light);
  font-family: var(--font-display);
  font-size: 1.15rem;
  font-weight: 760;
}

.define-strip p {
  margin: 0.7rem 0 0;
  color: #e1e7ea;
  font-size: 0.92rem;
  line-height: 1.6;
}

.digital-proof {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 0.85fr);
  gap: clamp(2rem, 5vw, 5rem);
  align-items: center;
}

.digital-proof__shots {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 1rem;
}

.evidence-shot {
  margin: 0;
  padding: 1rem 1rem 0.85rem;
  border: 1px solid var(--movon-line);
  border-radius: 0.8rem;
  background: #fff;
}

.evidence-shot img {
  display: block;
  width: 100%;
  max-width: 13rem;
  height: 19.5rem;
  margin-inline: auto;
  border-radius: 0.4rem;
  object-fit: cover;
  object-position: top center;
}

.evidence-shot figcaption {
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem 0.25rem 0;
  color: #526978;
  font-size: 0.82rem;
  line-height: 1.5;
}

.evidence-shot figcaption strong {
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: 0.98rem;
  font-weight: 760;
}

.prototype-label {
  display: flex;
  flex-wrap: wrap;
  gap: 0.35rem 0.9rem;
  align-items: baseline;
  margin: 0 0 1rem;
  font-size: 0.8rem;
}

.prototype-label strong {
  color: var(--movon-orange-light);
  font-weight: 800;
  letter-spacing: 0.03em;
}

.prototype-label span { color: var(--movon-on-dark); }

.prototype-gallery {
  display: grid;
  grid-template-columns: minmax(0, 1.6fr) minmax(0, 0.62fr);
  gap: 1rem;
  align-items: start;
}

/* Vista móvil a la derecha, ocupando las dos filas; queda fija mientras se
   recorren las capturas de escritorio. */
.prototype-gallery__phone {
  grid-column: 2;
  grid-row: 1 / span 2;
  position: sticky;
  top: 6rem;
}

.prototype-gallery figure {
  margin: 0;
  overflow: hidden;
  border: 1px solid rgb(244 244 241 / 0.16);
  border-radius: 0.7rem;
  background: #fff;
}

.prototype-gallery img {
  display: block;
  width: 100%;
  height: auto;
}


.prototype-gallery figcaption {
  padding: 0.85rem 1rem;
  background: var(--movon-paper);
  color: var(--movon-steel);
  font-size: 0.8rem;
  line-height: 1.5;
}

.prototype-gallery figcaption strong { color: var(--movon-petroleum); }

.prototype-disclaimer {
  max-width: 70ch;
  margin: 1.25rem 0 0;
  color: var(--movon-on-dark);
  font-size: 0.82rem;
  line-height: 1.6;
}

.continuity-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line);
}

.continuity-grid li {
  min-height: 6.5rem;
  padding: 1.3rem 1.3rem 1.3rem 0;
  border-bottom: 1px solid var(--movon-line);
  color: var(--movon-petroleum);
  font-weight: 650;
}

.continuity-grid li:not(:nth-child(3n + 1)) {
  padding-left: 1.3rem;
  border-left: 1px solid var(--movon-line);
}

.continuity-note {
  max-width: 60ch;
  margin: 1.25rem 0 0;
  color: var(--movon-text);
  font-size: 0.85rem;
  line-height: 1.6;
}

/* --- /casos/micromet/ ---
   Usa los mismos bloques que la HOME (section-shell, section-heading, case-layout,
   method-section/method-strip) más estas piezas propias del caso. */
.case-facts {
  display: flex;
  flex-wrap: wrap;
  gap: 0;
  margin: 2.25rem 0 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line);
}

.case-facts li {
  min-width: 12rem;
  padding: 1rem 2rem 0 0;
  color: var(--movon-petroleum);
  font-weight: 650;
}

.case-facts li + li {
  padding-left: 2rem;
  border-left: 1px solid var(--movon-line);
}

.case-facts span {
  display: block;
  margin-bottom: 0.3rem;
  color: #7f582e;
  font-size: 0.72rem;
  font-weight: 800;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.case-step__index {
  margin-right: 0.75rem;
  padding-right: 0.75rem;
  border-right: 1px solid currentColor;
}

.case-step { border-top: 1px solid var(--movon-line); }

.case-step__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, 0.85fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
}

.case-step__grid .section-heading { margin-bottom: 0; }

/* La planilla de inspección es evidencia real: se muestra completa. */
.case-evidence .case-evidence__doc img {
  width: 100%;
  max-width: 19rem;
  height: auto;
  max-height: 32rem;
  object-fit: contain;
}

.case-evidence__doc a { display: block; }

.case-app__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.7fr) minmax(0, 0.7fr);
  gap: clamp(1.25rem, 3vw, 2.5rem);
  align-items: center;
}

.case-app__grid .section-heading { margin-bottom: 0; }

.app-shot {
  margin: 0;
  padding: 0.9rem 0.9rem 1rem;
  border: 1px solid rgb(244 244 241 / 0.16);
  border-radius: 1rem;
  background: var(--movon-paper);
  box-shadow: 0 1.4rem 3.5rem rgb(12 30 42 / 0.28);
}

.app-shot img {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 0.55rem;
}

.app-shot figcaption {
  display: grid;
  gap: 0.2rem;
  padding: 0.9rem 0.2rem 0;
  color: #526978;
  font-size: 0.85rem;
  line-height: 1.45;
}

.app-shot figcaption strong {
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: 1rem;
  font-weight: 760;
}

/* Recorrido con nodos: lleno = digital, hueco = papel. */
.route {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  margin: 0;
  padding: 0;
  list-style: none;
}

.route__node {
  position: relative;
  padding: 2.1rem 1rem 0 0;
}

.route__node::before {
  position: absolute;
  z-index: 1;
  top: 0;
  left: 0;
  width: 0.95rem;
  height: 0.95rem;
  border: 2px solid var(--movon-petroleum);
  border-radius: 50%;
  background: var(--movon-paper);
  content: "";
}

.route__node--digital::before { background: var(--movon-petroleum); }

.route__node:not(:last-child)::after {
  position: absolute;
  top: 0.42rem;
  right: 0;
  left: 0.95rem;
  height: 2px;
  background: var(--movon-grey);
  content: "";
}

.route__node strong {
  display: block;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: 1.1rem;
  font-weight: 740;
}

.route__node span {
  display: block;
  margin-top: 0.35rem;
  color: var(--movon-text);
  font-size: 0.85rem;
  line-height: 1.45;
}

.case-results {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
  gap: clamp(2rem, 6vw, 6rem);
  margin-top: clamp(3rem, 5vw, 4.5rem);
  padding-top: clamp(2rem, 3.5vw, 3rem);
  border-top: 1px solid var(--movon-line);
}

.case-results__audit {
  padding-left: 1.25rem;
  border-left: 4px solid var(--movon-orange);
}

.case-results__quote {
  max-width: 28ch;
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(1.4rem, 2.4vw, 2rem);
  font-weight: 740;
  line-height: 1.2;
  letter-spacing: -0.02em;
}

.case-results__note {
  max-width: 50ch;
  margin: 1rem 0 0;
  color: var(--movon-text);
  line-height: 1.65;
}

.change-list {
  margin: 0;
  padding: 0;
  list-style: none;
  border-top: 1px solid var(--movon-line);
}

.change-list li {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 2.5rem minmax(0, 1fr);
  gap: 1rem;
  align-items: center;
  padding: 1.15rem 0;
  border-bottom: 1px solid var(--movon-line);
}

.change-list__before { color: var(--movon-text); }

.change-list__arrow {
  color: var(--movon-orange);
  font-size: 1.3rem;
  text-align: center;
}

.change-list__after {
  color: var(--movon-petroleum);
  font-weight: 750;
}

.case-continuity {
  border-top: 1px solid var(--movon-line);
}

.case-continuity__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.1fr) minmax(0, 0.9fr);
  gap: clamp(2rem, 6vw, 6rem);
  align-items: end;
}

.case-continuity h2 {
  max-width: 18ch;
  margin: 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 760;
  line-height: 1.04;
  letter-spacing: -0.04em;
  text-wrap: balance;
}

.case-continuity__grid > p {
  max-width: 52ch;
  margin: 0;
  color: var(--movon-text);
  font-size: clamp(1rem, 1.3vw, 1.08rem);
  line-height: 1.7;
}

@media (max-width: 980px) {
  .case-step__grid,
  .case-results,
  .case-continuity__grid { grid-template-columns: 1fr; }

  .case-app__grid { grid-template-columns: 1fr 1fr; }
  .case-app__grid .section-heading { grid-column: 1 / -1; margin-bottom: 1rem; }

  .route { grid-template-columns: 1fr; }

  .route__node { padding: 0 0 1.6rem 2.2rem; }

  .route__node:not(:last-child)::after {
    top: 0.95rem;
    right: auto;
    bottom: 0;
    left: 0.42rem;
    width: 2px;
    height: auto;
  }
}

@media (max-width: 640px) {
  .case-facts { display: grid; }

  .case-facts li,
  .case-facts li + li {
    padding: 0.85rem 0;
    border-left: 0;
    border-bottom: 1px solid var(--movon-line);
  }

  .case-app__grid { gap: 0.75rem; }
  .app-shot { padding: 0.5rem 0.5rem 0.75rem; border-radius: 0.75rem; }
  .app-shot figcaption { font-size: 0.78rem; }

  .change-list li {
    grid-template-columns: 1fr;
    gap: 0.2rem;
  }

  .change-list__arrow {
    width: 1rem;
    text-align: left;
    transform: rotate(90deg);
  }
}

/* --- /contacto/ --- */
.contact-page-grid {
  display: grid;
  grid-template-columns: 1.2fr 0.9fr 0.9fr;
  border-top: 1px solid var(--movon-line);
  border-bottom: 1px solid var(--movon-line);
}

.contact-channel {
  display: flex;
  flex-direction: column;
  min-height: 17rem;
  padding: 2rem;
}

.contact-channel + .contact-channel { border-left: 1px solid var(--movon-line); }

.contact-channel--primary { background: rgb(31 66 90 / 0.045); }

.contact-channel h2 {
  margin: 3rem 0 0;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(1.5rem, 2.6vw, 2.4rem);
  font-weight: 760;
  line-height: 1.08;
  letter-spacing: -0.035em;
}

.contact-channel p:not(.mini-label) {
  margin: 0.9rem 0 0;
  color: var(--movon-text);
  line-height: 1.6;
}

.contact-channel a {
  display: inline-flex;
  align-self: flex-start;
  min-height: 3rem;
  align-items: center;
  margin-top: auto;
  padding-top: 1.25rem;
  color: var(--movon-petroleum);
  font-weight: 800;
  text-underline-offset: 0.3rem;
  overflow-wrap: anywhere;
}

.contact-channel--primary a {
  margin-top: 1.5rem;
  padding: 0 1.15rem;
  border-left: 4px solid var(--movon-orange);
  border-radius: 0.55rem;
  background: var(--movon-petroleum);
  color: var(--movon-paper);
  text-decoration: none;
}

.contact-channel--primary a:hover { background: var(--movon-steel); }

.contact-coverage {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: 1.5rem;
  align-items: start;
}

.contact-coverage svg {
  width: 2.25rem;
  height: 2.25rem;
  fill: none;
  stroke: var(--movon-orange);
  stroke-width: 1.6;
  stroke-linecap: round;
  stroke-linejoin: round;
}

/* --- /politica-de-privacidad.html --- */
.legal { max-width: 52rem; margin-left: max(0px, calc((100% - var(--movon-max)) / 2)); }

.legal section + section {
  margin-top: 2.25rem;
  padding-top: 2.25rem;
  border-top: 1px solid var(--movon-line);
}

.legal h2 {
  margin: 0 0 0.9rem;
  color: var(--movon-petroleum);
  font-family: var(--font-display);
  font-size: clamp(1.3rem, 2vw, 1.6rem);
  font-weight: 740;
  letter-spacing: -0.02em;
}

.legal p,
.legal li {
  color: var(--movon-text);
  line-height: 1.7;
}

.legal p { margin: 0.75rem 0 0; }
.legal ul { margin: 0.75rem 0 0; padding-left: 1.25rem; }
.legal strong { color: var(--movon-petroleum); }

.legal a {
  color: var(--movon-petroleum);
  font-weight: 650;
  text-underline-offset: 0.2rem;
  overflow-wrap: anywhere;
}

/* --- Cierre común de páginas interiores --- */
.interior-cta {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 2rem 3rem;
  align-items: end;
  padding: clamp(4rem, 7vw, 6.5rem) var(--wide-pad);
  background: var(--movon-petroleum);
  color: var(--movon-paper);
}

.interior-cta h2 {
  max-width: 22ch;
  margin: 0;
  color: var(--movon-paper);
  font-family: var(--font-display);
  font-size: clamp(2rem, 4vw, 3.6rem);
  font-weight: 760;
  line-height: 1.04;
  letter-spacing: -0.04em;
  text-wrap: balance;
}

.interior-cta p {
  max-width: 56ch;
  margin: 1rem 0 0;
  color: var(--movon-on-dark);
  line-height: 1.65;
}

.interior-cta__actions {
  display: grid;
  gap: 0.5rem;
  justify-items: start;
}

.interior-cta__actions .hero-action-primary { white-space: nowrap; }
.interior-cta__actions .hero-action-secondary { min-height: 2.75rem; }

@media (max-width: 980px) {
  .need-detail > li { grid-template-columns: 1fr 1fr; }
  .need-detail__head { grid-column: 1 / -1; }

  .scope-map,
  .define-strip { grid-template-columns: 1fr; }

  .scope-map li,
  .scope-map li + li {
    padding: 1.5rem 0;
    border-left: 0;
  }

  .scope-map li + li { border-top: 1px solid var(--movon-line); }
  .scope-map li:last-child { padding-inline: 1rem; }

  .define-strip li,
  .define-strip li:first-child {
    min-height: auto;
    display: grid;
    grid-template-columns: 3rem 10rem minmax(0, 1fr);
    gap: 1rem;
    align-items: baseline;
    padding: 1.1rem 0;
    border-right: 0;
    border-bottom: 1px solid rgb(244 244 241 / 0.14);
  }

  .define-strip li:last-child { border-bottom: 0; }
  .define-strip li::before { margin: 0; }
  .define-strip p { margin: 0; }

  .digital-proof,
  .interior-cta { grid-template-columns: 1fr; }

  .contact-page-grid { grid-template-columns: 1fr; }

  .contact-channel + .contact-channel {
    border-top: 1px solid var(--movon-line);
    border-left: 0;
  }

  .contact-channel { min-height: auto; }
  .contact-channel h2 { margin-top: 1.5rem; }
}

@media (max-width: 640px) {
  .interior-hero { padding: 7.5rem 1.25rem 3.25rem; }
  .interior-hero--dark { padding-inline: 1.25rem; }
  .interior-section { padding: 3.5rem 1.25rem; }

  .interior-band,
  .interior-cta { padding-inline: 1.25rem; }

  .need-detail > li {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    padding-inline: 0;
  }

  .need-detail--lead {
    margin-inline: -1.25rem;
    padding-inline: 1.25rem !important;
  }

  .capability-list { grid-template-columns: 1fr; }

  .capability-list li,
  .capability-list li:nth-child(even) {
    min-height: auto;
    padding: 1.5rem 0;
    border-left: 0;
  }

  .criteria-columns { grid-template-columns: 1fr; }

  .define-strip li,
  .define-strip li:first-child { grid-template-columns: 2.5rem minmax(0, 1fr); }

  .define-strip p { grid-column: 2; }

  .digital-proof__shots { gap: 0.6rem; }
  .evidence-shot { padding: 0.6rem 0.6rem 0.7rem; }
  .evidence-shot img { height: 15rem; }

  .prototype-gallery { grid-template-columns: 1fr; }

  .prototype-gallery__phone {
    position: static;
    grid-column: auto;
    grid-row: auto;
    width: min(100%, 20rem);
    justify-self: center;
  }

  .continuity-grid { grid-template-columns: 1fr; }

  .continuity-grid li,
  .continuity-grid li:not(:nth-child(3n + 1)) {
    min-height: auto;
    padding: 1rem 0;
    border-left: 0;
  }

  .contact-channel { padding: 2rem 0; }

  .contact-channel--primary {
    margin-inline: -1.25rem;
    padding-inline: 1.25rem;
  }

  .interior-cta__actions { width: 100%; }
  .interior-cta__actions .hero-action-primary { width: 100%; }
}
