/* V19: encaje de promociones. Mantiene la identidad de Aura y Dental. */
.aura-v18 .promotion-stage {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  min-height: 0;
}
.aura-v18 .promotion-slide {
  /* Las campañas comparten una celda y aportan su altura real al carrusel. */
  position: relative;
  inset: auto;
  grid-area: 1 / 1;
  grid-template-columns: minmax(0, .95fr) minmax(0, 1.05fr);
  grid-template-rows: auto;
  width: 100%;
  min-width: 0;
  transform: none;
}
.aura-v18 .promotion-visual {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  align-content: center;
  justify-items: center;
  min-width: 0;
  min-height: 0;
  width: 100%;
  padding: clamp(16px, 2vw, 28px);
  background: #fbf5ef;
}
.aura-v18 .promotion-visual img {
  min-width: 0;
  width: 100%;
  height: clamp(300px, 36vw, 490px);
  object-fit: contain;
  object-position: center;
}
.aura-v18 .promotion-visual::after { display: none; }
.aura-v18 .promotion-visual .promo-enlarge-hint,
.dental-promotions-page .dental-promotion-media .promo-enlarge-hint {
  position: static;
  min-width: 0;
  max-width: 100%;
  margin-top: 12px;
  padding: 8px 14px;
  font-size: 10px;
  letter-spacing: .02em;
  opacity: 1;
  transform: none;
  box-shadow: none;
}
.aura-v18 .promotion-copy {
  min-width: 0;
  padding: clamp(26px, 3.4vw, 46px);
  overflow-wrap: anywhere;
}
.aura-v18 .promotion-copy h3 {
  margin: 14px 0 18px;
  font-size: clamp(26px, 2.8vw, 40px);
  line-height: 1.18;
  letter-spacing: -.035em;
}
.aura-v18 .promotion-copy p { font-size: 14px; line-height: 1.8; }
.aura-v18 .promotion-copy .button {
  max-width: 100%;
  margin-top: 24px;
  white-space: normal;
  text-align: center;
}
.slider-controls [data-promo-toggle] {
  width: auto;
  min-width: 86px;
  padding-inline: 14px;
  border-radius: 999px;
  font-size: 12px;
}
.promotion-dot { position: relative; }
.promotion-dot::before { content: ""; position: absolute; inset: -16px -5px; }
.promotion-dots { gap: 14px; padding-block: 12px; }

/* Las ventanas permiten leer y alcanzar la reserva en pantallas bajas. */
.aura-v18 .promo-dialog { max-height: calc(100svh - 24px); overflow-y: auto; }
.aura-v18 .promo-dialog[open] { grid-template-columns: minmax(0, .9fr) minmax(0, 1.1fr); }
.aura-v18 .promo-dialog-visual {
  min-height: 0;
  aspect-ratio: 4 / 5;
  margin: 20px;
  background-size: contain;
  background-repeat: no-repeat;
}
.aura-v18 .promo-dialog-copy { min-width: 0; padding: 36px 28px; overflow-wrap: anywhere; }
.aura-v18 .promo-dialog-copy h2 { font-size: clamp(25px, 2.8vw, 34px); line-height: 1.2; }
.aura-v18 .promo-dialog-copy .button { max-width: 100%; white-space: normal; }

.dental-promotions-page .dental-promotion-card {
  display: flex;
  flex-direction: column;
  min-width: 0;
}
.dental-promotions-page .dental-promotion-media {
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  justify-items: center;
  width: 100%;
  min-width: 0;
  padding: 16px;
  aspect-ratio: auto;
  background: #f8fafb;
}
.dental-promotions-page .dental-promotion-media img {
  width: 100%;
  height: clamp(280px, 38vw, 420px);
  object-fit: contain;
  object-position: center;
}
.dental-promotions-page .dental-promotion-media > span {
  position: static;
  grid-row: 1;
  justify-self: start;
  margin-bottom: 12px;
  font-size: 9px;
  letter-spacing: .06em;
}
.dental-promotions-page .dental-promotion-media::after { display: none; }
.dental-promotions-page .dental-promotion-copy {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  flex: 1;
  min-width: 0;
  padding: clamp(22px, 2.5vw, 30px);
  overflow-wrap: anywhere;
}
.dental-promotions-page .dental-promotion-copy h2 { font-size: clamp(25px, 2.4vw, 34px); line-height: 1.2; }
.dental-promotions-page .dental-promotion-copy p { min-height: 0; }
.dental-promotions-page .dental-promotion-copy .button { margin-top: auto; max-width: 100%; white-space: normal; }
.dental-welcome-promo { overflow-y: auto; overscroll-behavior: contain; }
.dental-welcome-image img { height: min(68svh, 650px); object-fit: contain; }

@media (max-width: 760px) {
  .aura-v18 .promotion-stage { margin-top: 28px; border-radius: 24px; }
  .aura-v18 .promotion-slide { grid-template-columns: minmax(0, 1fr); grid-template-rows: auto 1fr; }
  .aura-v18 .promotion-visual { padding: 16px 14px 12px; }
  .aura-v18 .promotion-visual img { height: min(36svh, 280px); min-height: 180px; }
  .aura-v18 .promotion-copy { padding: 26px 24px 30px; }
  .aura-v18 .promotion-copy h3 { font-size: clamp(25px, 6.6vw, 34px); }
  .aura-v18 .promotion-copy .button { min-height: 48px; }
  .aura-v18 .promo-dialog[open] { grid-template-columns: minmax(0, 1fr); }
  .aura-v18 .promo-dialog-visual { width: calc(100% - 32px); height: min(35svh, 260px); aspect-ratio: auto; margin: 16px auto 0; }
  .aura-v18 .promo-dialog-copy { padding: 24px; }
  .aura-v18 .promo-dialog-copy h2 { font-size: 27px; }
  .dental-promotions-page .dental-promotion-media img { height: min(38svh, 310px); min-height: 200px; }
  .dental-promotions-page .dental-promotion-copy h2 { font-size: 26px; }
}
@media (prefers-reduced-motion: reduce) {
  .promotion-slide, .promotion-viewer-stage img { animation: none; transition: none; }
}
