/* ============================================================
   EXPLORA TRANSFER (/transporte/) — sección de transporte
   ============================================================ */

/* Hero */
.emt-transfer-hero {
  position: relative;
  background:
    radial-gradient(120% 90% at 85% 0%, rgba(59, 179, 199, 0.28), transparent 55%),
    linear-gradient(135deg, var(--emt-azul-profundo), var(--emt-azul-brillante));
  color: var(--emt-blanco);
  padding-block: var(--emt-spacing-3xl);
  text-align: center;
}
/* Firma serape al pie del hero (como en el resto del sitio) */
.emt-transfer-hero::after {
  content: ""; position: absolute; left: 0; right: 0; bottom: 0; height: 4px;
  background: var(--emt-serape, linear-gradient(90deg, var(--emt-magenta), var(--emt-coral), var(--emt-ambar), var(--emt-turquesa)));
  z-index: 1;
}
.emt-transfer-hero__eyebrow { text-transform: uppercase; letter-spacing: 0.08em; font-size: var(--emt-fs-sm); color: var(--emt-turquesa); margin: 0 0 var(--emt-spacing-sm); }
.emt-transfer-hero__title { font-family: var(--emt-font-display); font-size: var(--emt-fs-3xl); font-weight: var(--emt-fw-black); line-height: var(--emt-lh-tight); margin: 0 0 var(--emt-spacing-md); }
/* Logo Explora Transfer: el original (turquesa + azul marino) no contrasta sobre el
   gradiente del hero; se renderiza en blanco vía filter. */
.emt-transfer-hero__logo { display: block; margin-inline: auto; width: min(380px, 78vw); height: auto; filter: brightness(0) invert(1); }
.emt-transfer-hero__sub { max-width: 62ch; margin: 0 auto var(--emt-spacing-xl); opacity: 0.92; line-height: var(--emt-lh-relaxed); }

/* Secciones */
.emt-transfer-section { padding-block: var(--emt-spacing-3xl); }
.emt-transfer-section--alt { background: var(--emt-gris-claro); }
.emt-transfer-section--dark { background: var(--emt-azul-profundo); color: var(--emt-blanco); }
.emt-transfer-section h2 { font-family: var(--emt-font-display); font-size: var(--emt-fs-2xl); font-weight: var(--emt-fw-bold); color: var(--emt-azul-profundo); margin: 0 0 var(--emt-spacing-md); text-align: center; }
/* Línea serape bajo cada título (mismo lenguaje que Nosotros / .emt-heading) */
.emt-transfer-section h2::after {
  content: ""; display: block; width: 64px; height: 4px; margin: 0.65rem auto 0;
  border-radius: var(--emt-radius-pill);
  background: var(--emt-serape, linear-gradient(90deg, var(--emt-magenta), var(--emt-coral), var(--emt-ambar), var(--emt-turquesa)));
}
.emt-transfer-section--dark h2 { color: var(--emt-blanco); }
.emt-transfer-section__sub { text-align: center; color: var(--emt-color-text-muted); margin: 0 0 var(--emt-spacing-xl); }
.emt-transfer-quienes { max-width: 72ch; margin-inline: auto; text-align: center; }
.emt-transfer-quienes p { line-height: var(--emt-lh-relaxed); font-size: var(--emt-fs-md); color: var(--emt-color-text); margin: 0; }

/* Servicios */
.emt-transfer-servicios { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: var(--emt-spacing-md); }
@media (min-width: 560px)  { .emt-transfer-servicios { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 720px)  { .emt-transfer-servicios { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .emt-transfer-servicios { grid-template-columns: repeat(4, 1fr); } }
.emt-transfer-servicio {
  position: relative;
  background: var(--emt-blanco); border: 1px solid var(--emt-color-border);
  border-radius: var(--emt-radius-md);
  padding: var(--emt-spacing-md) var(--emt-spacing-md) var(--emt-spacing-md) 3.1rem;
  font-weight: var(--emt-fw-medium); color: var(--emt-azul-profundo); text-align: left;
  box-shadow: var(--emt-shadow-sm);
  transition: box-shadow var(--emt-transition-fast), transform var(--emt-transition-fast);
}
.emt-transfer-servicio:hover { box-shadow: var(--emt-shadow-md); transform: translateY(-2px); }
.emt-transfer-servicio::before {
  content: ""; position: absolute; left: 1rem; top: 50%; transform: translateY(-50%);
  width: 1.35rem; height: 1.35rem; border-radius: 50%;
  background-color: var(--emt-turquesa);
  -webkit-mask: no-repeat center / 0.75rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
  mask: no-repeat center / 0.75rem url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E");
}
@supports not (mask: url("")) {
  .emt-transfer-servicio::before { -webkit-mask: none; mask: none; border-radius: 50%; }
}

/* Flotilla */
.emt-transfer-flotilla { display: grid; grid-template-columns: 1fr; gap: var(--emt-spacing-lg); }
@media (min-width: 720px)  { .emt-transfer-flotilla { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .emt-transfer-flotilla { grid-template-columns: repeat(3, 1fr); } }
.emt-flotilla-card {
  border: 1px solid var(--emt-color-border); border-radius: var(--emt-radius-lg);
  background: var(--emt-blanco); display: flex; flex-direction: column; overflow: hidden;
  box-shadow: var(--emt-shadow-sm);
  transition: box-shadow var(--emt-transition-fast), transform var(--emt-transition-fast);
}
.emt-flotilla-card:hover { box-shadow: var(--emt-shadow-md); transform: translateY(-3px); }
.emt-flotilla-card__body { padding: var(--emt-spacing-lg); display: flex; flex-direction: column; gap: var(--emt-spacing-xs); }
.emt-flotilla-card__icon { font-size: 40px; line-height: 1; }
/* Foto real: principal siempre visible; la secundaria aparece al hover/focus. */
.emt-flotilla-card__media { margin: 0; position: relative; aspect-ratio: 3 / 2; overflow: hidden; }
.emt-flotilla-card__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.emt-flotilla-card__img--alt { opacity: 0; transition: opacity 0.35s ease; }
.emt-flotilla-card--foto:hover .emt-flotilla-card__img--alt,
.emt-flotilla-card--foto:focus-within .emt-flotilla-card__img--alt { opacity: 1; }
.emt-flotilla-card__name { font-family: var(--emt-font-display); font-size: var(--emt-fs-md); font-weight: var(--emt-fw-bold); color: var(--emt-azul-profundo); margin: 0; }
.emt-flotilla-card__cap {
  display: inline-block; align-self: flex-start;
  background: rgba(59, 179, 199, 0.12); color: var(--emt-turquesa-tinta, var(--emt-azul-brillante));
  border-radius: var(--emt-radius-pill); padding: 0.2rem 0.7rem;
  font-weight: var(--emt-fw-semibold); font-size: var(--emt-fs-xs); margin: 0;
}
.emt-flotilla-card__feats { color: var(--emt-color-text-muted); font-size: var(--emt-fs-sm); line-height: var(--emt-lh-relaxed); margin: 0; }

/* Clientes (pills sobre fondo azul) */
.emt-transfer-section--dark {
  border-top: 4px solid transparent;
  border-image: var(--emt-serape, linear-gradient(90deg, var(--emt-magenta), var(--emt-coral), var(--emt-ambar), var(--emt-turquesa))) 1;
}
.emt-transfer-clientes { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: var(--emt-spacing-sm) var(--emt-spacing-md); justify-content: center; }
.emt-transfer-clientes li {
  font-weight: var(--emt-fw-medium); font-size: var(--emt-fs-sm);
  border: 1px solid rgba(255, 255, 255, 0.28); border-radius: var(--emt-radius-pill);
  padding: 0.45rem 1.05rem; background: rgba(255, 255, 255, 0.06);
  transition: background var(--emt-transition-fast), border-color var(--emt-transition-fast);
}
.emt-transfer-clientes li:hover { background: rgba(255, 255, 255, 0.14); border-color: var(--emt-turquesa); }

/* Certificaciones */
.emt-transfer-certs { list-style: none; margin: 0 auto; padding: 0; max-width: 70ch; display: grid; gap: var(--emt-spacing-sm); }
.emt-transfer-certs li { padding-left: 1.6em; position: relative; }
.emt-transfer-certs li::before { content: "✔"; position: absolute; left: 0; color: var(--emt-verde); font-weight: var(--emt-fw-bold); }

/* Formulario */
.emt-transfer-form-wrap { max-width: 860px; }
.emt-transfer-form { background: var(--emt-blanco); border: 1px solid var(--emt-color-border); border-radius: var(--emt-radius-lg); padding: var(--emt-spacing-xl); }
.emt-transfer-form__grid { display: grid; grid-template-columns: 1fr; gap: var(--emt-spacing-md); }
@media (min-width: 720px) {
  .emt-transfer-form__grid { grid-template-columns: 1fr 1fr; }
  .emt-transfer-form__grid .emt-field--full { grid-column: 1 / -1; }
}
.emt-transfer-form .emt-field > label, .emt-transfer-form fieldset > legend { display: block; font-weight: var(--emt-fw-semibold); font-size: var(--emt-fs-sm); color: var(--emt-azul-profundo); margin-bottom: 4px; }
.emt-transfer-form input, .emt-transfer-form select, .emt-transfer-form textarea {
  width: 100%; padding: 0.55rem 0.8rem; border: 1px solid var(--emt-color-border); border-radius: var(--emt-radius-md); font-size: var(--emt-fs-base); font-family: var(--emt-font-body); background: #fff;
}
.emt-transfer-form fieldset { border: 0; padding: 0; margin: 0; }
.emt-transfer-form__pax-grid { display: grid; grid-template-columns: 1fr 1fr; gap: var(--emt-spacing-md); }
.emt-transfer-check { display: flex; align-items: flex-start; gap: var(--emt-spacing-sm); font-size: var(--emt-fs-sm); padding: 3px 0; cursor: pointer; }
.emt-transfer-check input { width: auto; margin-top: 3px; }
.emt-transfer-form .emt-field--error input, .emt-transfer-form .emt-field--error textarea { border-color: var(--emt-color-danger); }
.emt-transfer-form__bar { display: flex; gap: var(--emt-spacing-md); align-items: center; justify-content: flex-end; margin-top: var(--emt-spacing-lg); }
.emt-transfer-form__msg { margin-right: auto; font-size: var(--emt-fs-sm); }
.emt-transfer-form__msg.is-ok { color: #4e7a16; font-weight: var(--emt-fw-semibold); }
.emt-transfer-form__msg.is-err { color: var(--emt-color-danger); }

/* Botón "Cotizar" en cada tarjeta de flotilla (alineado al fondo) */
.emt-flotilla-card__body { flex: 1 1 auto; }
.emt-flotilla-card__cta { margin-top: var(--emt-spacing-sm); align-self: flex-start; }

/* Contacto */
.emt-transfer-contacto ul { list-style: none; margin: 0 0 var(--emt-spacing-md); padding: 0; display: grid; gap: var(--emt-spacing-sm); }
.emt-transfer-contacto a { color: var(--emt-azul-brillante); }
.emt-transfer-operado { color: var(--emt-color-text-muted); font-size: var(--emt-fs-sm); font-style: italic; }
.emt-transfer-contacto__cta { margin-top: var(--emt-spacing-lg); }

/* ============================================================
   MODAL DE COTIZACIÓN (<dialog>)
   ============================================================ */
html.emt-modal-open { overflow: hidden; }

.emt-modal {
  width: min(720px, 94vw);
  max-width: min(720px, 94vw);
  max-height: 92vh;
  padding: 0;
  border: 0;
  border-radius: var(--emt-radius-lg);
  background: transparent;
  overflow: visible;
  color: var(--emt-color-text);
}
.emt-modal::backdrop {
  background: rgba(11, 31, 51, 0.55);
  backdrop-filter: blur(2px);
}
/* Fallback para navegadores sin soporte de <dialog> (open sin showModal) */
.emt-modal[open]:not(:modal) {
  position: fixed;
  inset: 0;
  margin: auto;
  z-index: 9999;
  box-shadow: 0 0 0 100vmax rgba(11, 31, 51, 0.55);
}

.emt-modal__panel {
  display: flex;
  flex-direction: column;
  max-height: 92vh;
  background: var(--emt-blanco);
  border-radius: var(--emt-radius-lg);
  overflow: hidden;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
}

.emt-modal__head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--emt-spacing-md);
  padding: var(--emt-spacing-lg) var(--emt-spacing-xl);
  border-bottom: 1px solid var(--emt-color-border);
  background: var(--emt-blanco);
}
.emt-modal__title { font-family: var(--emt-font-display); font-size: var(--emt-fs-xl); font-weight: var(--emt-fw-bold); color: var(--emt-azul-profundo); margin: 0; }
.emt-modal__sub { color: var(--emt-color-text-muted); font-size: var(--emt-fs-sm); margin: 0.35rem 0 0; }
.emt-modal__vehiculo { margin: 0.5rem 0 0; font-size: var(--emt-fs-sm); color: var(--emt-azul-profundo); }
.emt-modal__vehiculo-label { font-weight: var(--emt-fw-semibold); color: var(--emt-azul-brillante); }

.emt-modal__close {
  flex: 0 0 auto;
  width: 2.25rem; height: 2.25rem;
  display: inline-flex; align-items: center; justify-content: center;
  font-size: 1.7rem; line-height: 1;
  color: var(--emt-color-text-muted);
  background: var(--emt-gris-claro);
  border: 0; border-radius: var(--emt-radius-pill);
  cursor: pointer; transition: background 0.2s ease, color 0.2s ease;
}
.emt-modal__close:hover { background: var(--emt-color-border); color: var(--emt-azul-profundo); }

/* El formulario dentro del modal: sin marco propio y con scroll interno. */
.emt-modal .emt-transfer-form {
  border: 0;
  border-radius: 0;
  padding: var(--emt-spacing-xl);
  overflow-y: auto;
  -webkit-overflow-scrolling: touch;
}
.emt-modal .emt-transfer-form__bar {
  position: sticky;
  bottom: calc(-1 * var(--emt-spacing-xl));
  margin-bottom: calc(-1 * var(--emt-spacing-xl));
  padding: var(--emt-spacing-md) 0;
  background: var(--emt-blanco);
}

@media (max-width: 520px) {
  .emt-modal__head { padding: var(--emt-spacing-md) var(--emt-spacing-lg); }
  .emt-modal .emt-transfer-form { padding: var(--emt-spacing-lg); }
}

/* Nota de imágenes de referencia (al pie de la flotilla) */
.emt-transfer-flotilla-nota { margin: var(--emt-spacing-lg) 0 0; font-size: var(--emt-fs-sm); color: var(--emt-color-text-muted); font-style: italic; text-align: center; }

/* Foto de encabezado opcional (elegida en el panel) */
.emt-transfer-hero.has-hero-photo { position: relative; isolation: isolate; }
.emt-transfer-hero .emt-hero-photo { position: absolute; inset: 0; z-index: -2; overflow: hidden; }
.emt-transfer-hero .emt-hero-photo img { width: 100%; height: 100%; object-fit: cover; display: block; }
.emt-transfer-hero.has-hero-photo::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(0,20,40,.55), rgba(0,20,40,.80)); }
