/* =========================================================================
   A medida — la página de aterrizaje de los encargos (y de la campaña de
   anuncios de octubre de 2026): portada con las dos vías y la réplica del
   guardabarros, trabajos reales, el proceso con una foto y el asistente.
   Solo se carga en /a-medida/ (la encola page-a-medida.php).
   ========================================================================= */

/* ---- Portada ----
   Texto y botones a la izquierda, la réplica a la derecha y las garantías
   debajo del texto. En móvil: texto, foto y garantías, uno debajo de otro, para
   que la primera pantalla tenga el titular, los dos botones y el principio de
   la foto. */
.am-hero__grid {
  display: grid;
  grid-template-columns: minmax(0, 1.08fr) minmax(0, .92fr);
  grid-template-areas: "txt foto" "gar foto";
  gap: 44px 64px;
  align-items: start;
}
.am-hero__txt { grid-area: txt; }
.am-hero h1 { font-size: clamp(40px, 5.2vw, 68px); text-wrap: balance; }
.am-hero__cta { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.am-hero__cta .btn { font-size: 14px; }

.am-hero__foto { grid-area: foto; margin: 0; align-self: center; }
.am-hero__foto img { width: 100%; height: auto; aspect-ratio: 1; object-fit: cover; border-radius: var(--r-card); background: var(--ink-soft); }
.am-hero__foto figcaption { margin-top: 12px; font-family: var(--font-mono); font-size: 12px; line-height: 1.5; color: var(--on-dark-mut); }

/* Las tres garantías: en fila, separadas por un filete, no en tarjetas. */
.am-garantias {
  grid-area: gar; align-self: end;
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  border-top: 1px solid var(--ink-line);
}
.am-garantias li { padding: 18px 18px 0 0; }
.am-garantias li + li { padding-left: 18px; border-left: 1px solid var(--ink-line); }
.am-garantias strong { display: block; font-family: var(--font-display); font-weight: 700; font-size: 15px; line-height: 1.25; color: var(--on-dark); }
.am-garantias span { display: block; margin-top: 4px; font-size: 13px; line-height: 1.5; color: var(--on-dark-soft); }

/* ---- Trabajos reales ----
   La foto manda; debajo, título y ficha corta. La etiqueta Empresas/Regalo es
   la del portfolio (.work-card__type), para que cada visitante encuentre lo
   suyo de un vistazo. */
.am-obras__grid {
  list-style: none; margin: 34px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 30px 20px;
}
.am-obra figure { margin: 0; }
.am-obra__media .ph { border-radius: var(--r-tile); }
.am-obra figcaption { margin-top: 12px; }
.am-obra__t { display: block; font-weight: 600; font-size: 15px; line-height: 1.3; color: var(--ink); }
.am-obra__m { display: block; margin-top: 5px; font-family: var(--font-mono); font-size: 11px; line-height: 1.4; color: var(--muted-2); }
.am-obras__cta { margin: 38px 0 0; }

/* ---- Proceso ----
   Los seis pasos en dos columnas, con filete arriba, y una foto vertical de la
   fabricación al lado. Los números sí van: el orden es la información. */
.am-proceso__grid {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 300px);
  gap: 44px 80px; align-items: center;
}
.am-pasos {
  list-style: none; margin: 36px 0 0; padding: 0;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); column-gap: 40px;
}
.am-pasos li {
  display: grid; grid-template-columns: 38px minmax(0, 1fr); grid-template-rows: auto 1fr;
  padding: 18px 0 20px; border-top: 1px solid var(--ink-line);
}
.am-pasos__n { grid-row: 1 / span 2; padding-top: 3px; font-family: var(--font-mono); font-size: 13px; color: var(--accent); }
.am-pasos__t { font-family: var(--font-display); font-weight: 700; font-size: 17px; line-height: 1.25; letter-spacing: -.01em; color: var(--on-dark); }
.am-pasos p { margin: 5px 0 0; font-size: 14px; line-height: 1.5; color: var(--on-dark-soft); }

.am-proceso__foto { margin: 0; }
.am-proceso__foto .ph { border-radius: var(--r-card); }
.am-proceso__foto figcaption { margin-top: 12px; font-family: var(--font-mono); font-size: 12px; line-height: 1.5; color: var(--on-dark-mut); }

/* ---- Asistente ----
   Lo que antes iba en estilos en línea, para poder ajustar los rellenos en el
   móvil: con 36 px por lado dentro de la tarjeta, el texto se quedaba en 278 px. */
.am-form { max-width: 760px; margin: 0 auto; overflow: hidden; }
.am-form__stepper { padding: 28px 36px; border-bottom: 1px solid var(--line-3); }
.am-form__stepper .mono { white-space: nowrap; }
.am-form__body { padding: 36px; }
.am-form__nav { padding: 22px 36px; border-top: 1px solid var(--line-3); }
/* «¿Para qué es?»: las dos opciones una debajo de otra, del mismo ancho y con
   esquinas de ficha. En píldoras no cabían juntas: se apilaban con anchos
   distintos y, en el móvil, partidas en dos líneas dentro de la píldora. */
.am-form [role="tablist"].chips { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
.am-form [role="tablist"] .chip { white-space: normal; text-align: left; line-height: 1.45; border-radius: 12px; padding: 13px 16px; }

@media (max-width: 1024px) {
  .am-hero__grid { grid-template-columns: minmax(0, 1fr); grid-template-areas: "txt" "foto" "gar"; gap: 36px; }
  .am-hero__foto { max-width: 560px; }
  .am-proceso__grid { grid-template-columns: minmax(0, 1fr) minmax(0, 250px); gap: 40px 48px; }
}

@media (max-width: 760px) {
  .am-hero__cta .btn { flex: 1 1 100%; }
  .am-garantias { grid-template-columns: minmax(0, 1fr); }
  .am-garantias li, .am-garantias li + li { padding: 14px 0; border-left: 0; }
  .am-garantias li + li { border-top: 1px solid var(--ink-line); }

  .am-obras__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 14px; }
  .am-obra__t { font-size: 14px; }

  .am-proceso__grid { grid-template-columns: minmax(0, 1fr); gap: 36px; }
  .am-pasos { column-gap: 18px; }
  .am-pasos li { display: block; padding: 14px 0 16px; }
  .am-pasos__n { display: block; padding: 0 0 4px; }
  .am-pasos__t { font-size: 16px; }
  .am-proceso__foto { width: 100%; }

  .am-form__stepper { padding: 20px; }
  .am-form__body { padding: 26px 20px; }
  .am-form__nav { padding: 18px 20px; gap: 12px; }
  .am-form__nav .btn:not(.is-hidden) { flex: 1 1 0; justify-content: center; }
}
