/* Shared Visa / ESTA process cards. Hero and commercial flows are untouched. */
.service-process .service-card {
  height: 392px;
  border-radius: 18px;
}
.service-process .service-card-front {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  padding: 0;
  text-align: left;
  background: #fff;
  border: 1px solid rgba(52,27,71,.1);
  box-shadow: 0 7px 20px rgba(52,27,71,.055);
  border-radius: 18px;
}
.service-process :is(.flip-back,.esta-flip-back),
.visa-page .turn-card .flip-face { border-radius: 18px; }
.service-process .service-card-image {
  width: 100%; height: 150px; min-height: 0;
  flex: 0 0 auto; overflow: hidden;
  border-radius: 18px 18px 0 0;
}
.service-process .service-card-image img {
  display: block; width: 100%; height: 100%; margin: 0;
  border-radius: 0; box-shadow: none; object-fit: contain; transform: none;
}
.service-process .service-card-body {
  position: relative; display: flex; flex: 1; flex-direction: column;
  align-items: stretch; min-width: 0; padding: 30px 16px 15px;
}
.service-process .step-number {
  top: -22px; left: 15px; width: 40px; height: 40px;
  border: 0; box-shadow: none; background: #341b47;
  color: #fff; font-family: "TAN Harmoni", Georgia, serif;
  font-size: 1rem;
}
.service-process .service-card-front h3 {
  min-height: 63px; margin: 0 0 9px;
  font-family: "Archivo ExtraCondensed", "DM Sans", sans-serif;
  color: #341b47; font-size: 1.2rem; line-height: 1.08; letter-spacing: .015em;
}
.service-process .service-card-body > p {
  margin: 0 0 10px; color: #685c69; font-size: .87rem; line-height: 1.42;
}
.service-process .flip-hint {
  width: 100%; margin-top: auto; padding-top: 9px;
  border-top: 1px solid rgba(52,27,71,.08);
  font-size: .74rem; line-height: 1.3; font-weight: 700; letter-spacing: .09em;
}
@media (max-width: 760px) {
  .visa-page .process-grid, .esta-page .esta-process-grid,
  .visa-page .turn-grid { gap: 14px; }
  .service-process .service-card,
  .visa-page .turn-card { height: auto; border-radius: 18px; }
  .service-process :is(.flip-back,.esta-flip-back),
  .visa-page .turn-card .flip-back { border-radius: 0 0 18px 18px; }
  .service-process .service-card-front,
  .visa-page .turn-front {
    display: flex; flex-direction: column; align-items: stretch;
    padding: 0; text-align: left;
    background: #fff; border: 1px solid rgba(52,27,71,.1);
    box-shadow: 0 7px 20px rgba(52,27,71,.055);
  }
  .service-process .service-card-image,
  .visa-page .visa-turns .turn-image {
    width: 100%; height: auto; min-height: 0; aspect-ratio: 4 / 3;
    flex: 0 0 auto; overflow: hidden; border-radius: 18px 18px 0 0;
  }
  .visa-page .visa-process .service-card-image img,
  .esta-page .esta-process .service-card-image img,
  .visa-page .visa-turns .turn-image img {
    display: block; width: 100%; height: 100%; margin: 0;
    object-fit: cover; transform: none; object-position: center 20%;
    border-radius: 0; box-shadow: none;
  }
  .visa-page .process-card:nth-child(2) .card-image img { object-position: center 40%; }
  .visa-page .process-card:nth-child(3) .card-image img { object-position: center 45%; }
  .visa-page .visa-turns .turn-image img { object-position: center 30%; }
  .service-process .service-card-body,
  .visa-page .turn-body { padding: 16px; min-width: 0; }
  .service-process .step-number {
    position: static; flex: 0 0 auto; margin: 0 0 9px;
    width: 38px; height: 38px;
  }
  .service-process .service-card-front h3 { min-height: 0; align-self: stretch; }
  .service-process .service-card-front .flip-hint,
  .visa-page .turn-front .flip-hint { margin-top: 10px; }
  .service-process .service-card-body > p,
  .visa-page .turn-summary { font-size: .87rem; line-height: 1.42; }
  .visa-page .turn-number { position: static; align-self: flex-start; margin: 0 0 9px; }
  .visa-page .turn-card h3 { max-width: 100%; font-size: 1.2rem; line-height: 1.08; }
  .visa-page .turn-front .flip-hint { font-size: .74rem; line-height: 1.3; }
  /* ESTA currently has only one description per step, not separate details.
     Show that same paragraph once; do not offer an empty mobile disclosure. */
  .esta-page .service-card[data-mobile-detail="pending"] { cursor: default; }
  .esta-page .service-card[data-mobile-detail="pending"] .flip-hint,
  .esta-page .service-card[data-mobile-detail="pending"] .esta-flip-back { display: none; }
  .esta-page .requirements-grid {
    display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px;
  }
  .esta-page .requirement-card,
  .esta-page .requirement-card:nth-child(n+4) {
    grid-column: auto; min-height: 152px; padding: 16px 12px;
    display: flex; flex-direction: column; align-items: center; justify-content: center;
    gap: 10px; border: 1px solid rgba(52,27,71,.1); border-radius: 18px;
    background: #fff; box-shadow: 0 7px 20px rgba(52,27,71,.055);
  }
  .esta-page .requirement-card img { width: 72px; height: 72px; margin: 0; object-fit: contain; }
  .esta-page .requirement-card h3 { margin: 0; font-size: 1rem; line-height: 1.15; text-align: center; }
  .esta-page .requirement-card:last-child { grid-column: 1 / -1; flex-direction: row; min-height: 0; }
  :is(.visa-page,.esta-page) .whatsapp-float {
    width: 48px; height: 48px;
    right: calc(10px + env(safe-area-inset-right));
    bottom: calc(12px + env(safe-area-inset-bottom));
  }
  :is(.visa-page,.esta-page) .whatsapp-float svg { width: 26px; height: 26px; }
}
