/* Página Laboratorios: componentes editables basados en el sistema aprobado. */
.cdla-lab-page {
  overflow: hidden;
  gap: 0 !important;
  color: var(--cdla-home-text);
  background: var(--cdla-home-white);
}

.cdla-lab-page .elementor-widget { margin-block-end: 0; }

/* Turismo Médico: mantiene la primera línea del hero completa. */
.cdla-tourism-hero__title .elementor-heading-title {
  max-width: none;
  font-size: clamp(2.25rem, 4.2vw, 3.75rem);
}

.cdla-tourism-hero__title .elementor-heading-title strong {
  display: inline-block;
  white-space: nowrap;
}

/* Pacientes: secciones editoriales, servicios, derechos/deberes y seguros. */
.cdla-patients-services .cdla-lab-laboratories__grid {
  display: grid !important;
  overflow: visible;
  grid-template-columns: repeat(5, minmax(0, 1fr));
}

.cdla-patients-services .cdla-lab-card {
  width: 100% !important;
  min-width: 0 !important;
  flex-basis: auto !important;
}

.cdla-patients-rights {
  padding: 4.5rem 0 5rem !important;
  background: #eef6f8;
}

.cdla-patients-rights__inner { gap: 1.2rem !important; }
.cdla-patients-rights__title .elementor-heading-title { margin: 0; text-align: center; }
.cdla-patients-rights__intro {
  max-width: 52rem;
  margin: 0 auto 1.6rem;
  color: var(--cdla-home-text-muted);
  font-size: .95rem;
  line-height: 1.6;
  text-align: center;
}
.cdla-patients-rights__intro p,
.cdla-patients-duty-item__copy p,
.cdla-patients-insurance__copy p { margin: 0; }

.cdla-patients-duty-row {
  padding: 2rem !important;
  border-radius: var(--cdla-home-radius-card);
  background: var(--cdla-home-white);
  box-shadow: var(--cdla-home-shadow-card);
  gap: 1.5rem !important;
}
.cdla-patients-duty-row__title .elementor-heading-title {
  margin: 0;
  color: var(--cdla-home-teal);
  font-size: 1.6rem;
  font-weight: 700;
}
.cdla-patients-duty-grid {
  display: grid !important;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 1.25rem;
}
.cdla-patients-duty-grid--duties { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cdla-patients-duty-item {
  min-width: 0;
  align-items: flex-start;
  gap: .7rem !important;
}
.cdla-patients-duty-item__icon .elementor-icon { font-size: 1.6rem; }
.cdla-patients-duty-item--right .cdla-patients-duty-item__icon .elementor-icon { color: var(--cdla-home-cyan); }
.cdla-patients-duty-item--duty .cdla-patients-duty-item__icon .elementor-icon { color: var(--cdla-home-orange); }
.cdla-patients-duty-item__copy {
  color: var(--cdla-home-text-muted);
  font-size: .82rem;
  line-height: 1.48;
}

.cdla-patients-insurance {
  padding: 4.5rem 0 5rem !important;
  background: var(--cdla-home-white);
}
.cdla-patients-insurance__inner {
  display: grid !important;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
  gap: 3.5rem !important;
}
.cdla-patients-insurance__image,
.cdla-patients-insurance__image > .elementor-widget-container,
.cdla-patients-insurance__image img { width: 100%; height: 100%; }
.cdla-patients-insurance__image img {
  display: block;
  min-height: 28rem;
  border-radius: var(--cdla-home-radius-card);
  object-fit: cover;
}
.cdla-patients-insurance__content {
  justify-content: center;
  align-items: flex-start;
  gap: 1.2rem !important;
}
.cdla-patients-insurance__title .elementor-heading-title { margin: 0; color: var(--cdla-home-teal); }
.cdla-patients-insurance__copy {
  max-width: 52rem;
  color: var(--cdla-home-text-muted);
  font-size: .95rem;
  line-height: 1.6;
}
.cdla-patients-insurance__list { width: 100%; }
.cdla-patients-insurance__list .elementor-icon-list-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem 1.25rem;
}
.cdla-patients-insurance__list .elementor-icon-list-item { margin: 0; padding: 0; }
.cdla-patients-insurance__list .elementor-icon-list-icon { color: var(--cdla-home-cyan); }
.cdla-patients-insurance__list .elementor-icon-list-text {
  color: var(--cdla-home-teal);
  font-size: .9rem;
  font-weight: 700;
}

/* Médicos: práctica profesional con dos filas equivalentes a Derechos y Deberes. */
.cdla-medicos-practice {
  padding: 4.5rem 0 5rem !important;
  background: #eef6f8;
}
.cdla-medicos-practice__inner { gap: 1.2rem !important; }
.cdla-medicos-practice__title .elementor-heading-title { margin: 0 0 1rem; text-align: center; }
.cdla-medicos-practice__intro {
  max-width: 52rem;
  margin: 0 auto 1.2rem;
  color: var(--cdla-home-text-muted);
  font-size: .95rem;
  line-height: 1.6;
  text-align: center;
}
.cdla-medicos-practice__intro p,
.cdla-medicos-practice__legal-note p { margin: 0; }
.cdla-medicos-practice__rights-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.cdla-medicos-practice__legal-note {
  color: var(--cdla-home-text-muted);
  font-size: .82rem;
  font-style: italic;
  text-align: center;
}
.cdla-medicos-practice-row {
  display: grid !important;
  grid-template-columns: 3rem 1fr;
  gap: 1.25rem !important;
  padding: 2rem !important;
  border-radius: var(--cdla-home-radius-card);
  background: var(--cdla-home-white);
  box-shadow: var(--cdla-home-shadow-card);
}
.cdla-medicos-practice-row__icon .elementor-icon { font-size: 2rem; }
.cdla-medicos-practice-row--rights .cdla-medicos-practice-row__icon .elementor-icon { color: var(--cdla-home-cyan); }
.cdla-medicos-practice-row--duties .cdla-medicos-practice-row__icon .elementor-icon { color: var(--cdla-home-orange); }
.cdla-medicos-practice-row__content { gap: .65rem !important; }
.cdla-medicos-practice-row__heading .elementor-heading-title { margin: 0; color: var(--cdla-home-teal); font-size: 1.35rem; }
.cdla-medicos-practice-row__copy { color: var(--cdla-home-text-muted); font-size: .9rem; line-height: 1.55; }
.cdla-medicos-practice-row__copy p { margin: 0; }
.cdla-medicos-practice__button { align-self: center; margin-top: .6rem; }

.cdla-medicos-relationship--white { background: var(--cdla-home-white); }
.cdla-medicos-relationship__title .elementor-heading-title { margin: 0; color: var(--cdla-home-teal); }
.cdla-medicos-relationship__copy { color: var(--cdla-home-text-muted); font-size: .94rem; line-height: 1.6; }
.cdla-medicos-relationship__copy p { margin: 0 0 1rem; }
.cdla-medicos-relationship__copy p:last-child { margin-bottom: 0; }

/* Médicos: proceso de habilitación. */
.cdla-medicos-process {
  padding: 4.5rem 0 5rem !important;
  background: var(--cdla-home-white);
}
.cdla-medicos-process__inner { align-items: center; gap: 1.25rem !important; text-align: center; }
.cdla-medicos-process__title .elementor-heading-title { margin: 0; }
.cdla-medicos-process__copy { max-width: 52rem; color: var(--cdla-home-text-muted); font-size: .95rem; line-height: 1.6; }
.cdla-medicos-process__copy p,
.cdla-medicos-step__copy p { margin: 0; }
.cdla-medicos-process__grid {
  display: grid !important;
  width: 100%;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 1.5rem;
  margin-top: 1.5rem;
  text-align: left;
}
.cdla-medicos-step {
  min-width: 0;
  padding: 2rem !important;
  border-radius: var(--cdla-home-radius-card);
  background: #eef6f8;
  box-shadow: var(--cdla-home-shadow-card);
  gap: 1rem !important;
}
.cdla-medicos-step__icon .elementor-icon { color: var(--cdla-home-cyan); font-size: 2rem; }
.cdla-medicos-step__title .elementor-heading-title { margin: 0; color: var(--cdla-home-teal); font-size: 1.2rem; line-height: 1.25; }
.cdla-medicos-step__copy { color: var(--cdla-home-text-muted); font-size: .88rem; line-height: 1.5; }
.cdla-medicos-step__button { margin-top: auto; }
.cdla-medicos-process--blue { background: var(--cdla-home-teal); }
.cdla-medicos-process--blue .cdla-medicos-process__title .elementor-heading-title,
.cdla-medicos-process--blue .cdla-medicos-process__copy { color: var(--cdla-home-white); }
.cdla-medicos-documents-list { width: 100%; }
.cdla-medicos-documents-list .elementor-icon-list-items {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: .6rem 1rem;
}
.cdla-medicos-documents-list .elementor-icon-list-item { align-items: flex-start; margin: 0; padding: 0; }
.cdla-medicos-documents-list .elementor-icon-list-icon { padding-top: .42rem; color: var(--cdla-home-cyan); font-size: .38rem; }
.cdla-medicos-documents-list .elementor-icon-list-text { color: var(--cdla-home-text-muted); font-size: .76rem; line-height: 1.35; }

/* Beneficios. */
.cdla-lab-benefits { padding: 2.6rem 0 3rem !important; background: var(--cdla-home-white); }

.cdla-lab-benefits__grid {
  display: grid !important;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 2.2rem;
}

.cdla-lab-benefit { min-width: 0; align-items: flex-start; }
.cdla-lab-benefit__icon { margin-bottom: .8rem; }
.cdla-lab-benefit__icon .elementor-icon { color: var(--cdla-home-teal); font-size: 2rem; }
.cdla-lab-benefit__title .elementor-heading-title { margin: 0 0 .65rem; color: var(--cdla-home-teal); font-size: 1.05rem; font-weight: 700; line-height: 1.15; }
.cdla-lab-benefit__copy { color: var(--cdla-home-text-muted); font-size: .82rem; line-height: 1.5; }
.cdla-lab-benefit__copy p { margin: 0; }

/* Tecnología y precisión. */
.cdla-lab-technology { background: var(--cdla-home-teal); }

.cdla-lab-technology__grid {
  display: grid !important;
  min-height: 32rem;
  grid-template-columns: 1.02fr .98fr;
}

.cdla-lab-technology__content {
  width: min(100%, 41.875rem) !important;
  margin-left: auto;
  padding: 4rem 3.125rem !important;
  justify-content: center;
  align-items: flex-start;
  gap: 1.25rem !important;
}

.cdla-lab-technology__content .elementor-heading-title { margin: 0; }
.cdla-lab-technology__copy { max-width: 38rem; color: var(--cdla-home-white); font-size: .94rem; line-height: 1.6; }
.cdla-lab-technology__copy p { margin: 0; }
.cdla-lab-technology__image,
.cdla-lab-technology__image > .elementor-widget-container,
.cdla-lab-technology__image img { width: 100%; height: 100%; }
.cdla-lab-technology__image img { display: block; min-height: 32rem; object-fit: cover; }

/* UTI Pediátrica y Neonatal: variante editorial con imagen a la izquierda. */
.cdla-uti-neonatal { background: var(--cdla-home-white); }
.cdla-uti-neonatal__content { margin-right: auto; margin-left: 0; }
.cdla-uti-neonatal__title .elementor-heading-title { margin: 0; }
.cdla-uti-neonatal__copy { color: var(--cdla-home-text-muted); }

/* Nuestros laboratorios. */
.cdla-lab-laboratories {
  position: relative;
  overflow: hidden;
  padding: 4.5rem 0 5rem !important;
  background: var(--cdla-home-white);
}

.cdla-lab-laboratories__motif {
  position: absolute !important;
  z-index: 0;
  top: 4rem;
  right: -3.5rem;
  width: 20rem !important;
  opacity: .95;
  pointer-events: none;
}

.cdla-lab-laboratories__motif img { display: block; width: 100%; height: auto; }
.cdla-lab-laboratories__inner { position: relative; z-index: 1; }
.cdla-lab-laboratories__title .elementor-heading-title { margin: 0 0 2.75rem; text-align: center; }

.cdla-lab-laboratories__grid {
  display: flex !important;
  width: 100%;
  overflow-x: auto;
  overflow-y: hidden;
  flex-flow: row nowrap !important;
  gap: 1.6rem;
  padding: .5rem .25rem 1.25rem !important;
  scroll-behavior: smooth;
  scroll-snap-type: x mandatory;
  scrollbar-color: var(--cdla-home-cyan) #dce9ed;
  scrollbar-width: thin;
}

.cdla-lab-laboratories__grid::-webkit-scrollbar { height: .45rem; }
.cdla-lab-laboratories__grid::-webkit-scrollbar-track { border-radius: 999px; background: #dce9ed; }
.cdla-lab-laboratories__grid::-webkit-scrollbar-thumb { border-radius: 999px; background: var(--cdla-home-cyan); }

.cdla-lab-card {
  position: relative;
  width: calc(20.8333% - 1.6667rem) !important;
  min-width: calc(20.8333% - 1.6667rem) !important;
  min-height: 0;
  aspect-ratio: 1 / 1;
  flex: 0 0 calc(20.8333% - 1.6667rem) !important;
  overflow: hidden;
  border-radius: var(--cdla-home-radius-card);
  background: var(--cdla-home-teal);
  box-shadow: var(--cdla-home-shadow-card);
  scroll-snap-align: start;
}

.cdla-lab-card__image,
.cdla-lab-card__image > .elementor-widget-container,
.cdla-lab-card__image img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.cdla-lab-card__image img { object-fit: cover; }

.cdla-lab-card::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  background: linear-gradient(180deg, rgb(0 75 100 / 20%) 12%, rgb(0 75 100 / 94%) 72%);
}

.cdla-lab-card__body {
  position: relative;
  z-index: 2;
  height: 100%;
  min-height: 0;
  padding: 1rem !important;
  justify-content: flex-end;
  align-items: flex-start;
  gap: .9375rem !important;
}

.cdla-lab-card__title .elementor-heading-title { margin: 0; color: var(--cdla-home-white); font-size: 1rem; font-weight: 700; line-height: 1.15; }
.cdla-lab-card__copy,
.cdla-lab-card__button {
  max-height: 0;
  overflow: hidden;
  opacity: 0;
  transform: translateY(.5rem);
  transition: max-height 260ms ease, opacity 180ms ease, transform 260ms ease;
}
.cdla-lab-card__copy { color: var(--cdla-home-white); font-size: .713rem; line-height: 1.35; }
.cdla-lab-card__copy p { margin: 0; }

.cdla-lab-card:hover .cdla-lab-card__copy,
.cdla-lab-card:hover .cdla-lab-card__button,
.cdla-lab-card:focus-within .cdla-lab-card__copy,
.cdla-lab-card:focus-within .cdla-lab-card__button {
  max-height: 12rem;
  opacity: 1;
  transform: translateY(0);
}

/* Resultados en línea. */
.cdla-lab-online {
  position: relative;
  min-height: 27rem;
  overflow: hidden;
  color: var(--cdla-home-white);
  background: var(--cdla-home-teal);
}

.cdla-lab-online::after {
  position: absolute;
  z-index: 1;
  inset: 0;
  content: "";
  background: rgb(0 75 100 / 88%);
}

.cdla-lab-online__background,
.cdla-lab-online__background > .elementor-widget-container,
.cdla-lab-online__background img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
}

.cdla-lab-online__background img { object-fit: cover; }

.cdla-lab-online__content {
  position: relative;
  z-index: 2;
  min-height: 27rem;
  padding-block: 4rem !important;
  align-items: center;
  justify-content: center;
  gap: 1.25rem !important;
  text-align: center;
}

.cdla-lab-online__icon,
.cdla-lab-online__icon .elementor-icon,
.cdla-lab-online__icon .elementor-icon i,
.cdla-lab-online__icon .elementor-icon svg {
  color: var(--cdla-home-white) !important;
  fill: var(--cdla-home-white) !important;
}
.cdla-lab-online__icon .elementor-icon { font-size: 3rem; }
.cdla-lab-online__title .elementor-heading-title { margin: 0; color: var(--cdla-home-white); font-size: clamp(2rem, 3vw, 2.8rem); font-weight: 700; line-height: 1.1; }
.cdla-lab-online__copy { max-width: 50rem; color: var(--cdla-home-white); font-size: .94rem; line-height: 1.55; }
.cdla-lab-online__copy p { margin: 0; }

/* Ubicación y FAQ. */
.cdla-lab-location-faq { padding: 4.5rem 0 5rem !important; background: var(--cdla-home-white); }
.cdla-lab-location-faq__grid { display: grid !important; grid-template-columns: 1fr 1fr; gap: 4rem; }
.cdla-lab-location,
.cdla-lab-faq { gap: 1.5rem !important; }
.cdla-lab-location__map .elementor-widget-container { overflow: hidden; border-radius: var(--cdla-home-radius-card); }
.cdla-lab-location__map iframe { height: 24.5rem; }
.cdla-lab-faq__accordion .elementor-accordion-item { border-width: 0 0 1px; border-color: #d9e3e7; }
.cdla-lab-faq__accordion .elementor-tab-title { padding: 1rem 0; color: var(--cdla-home-teal); font-size: 1rem; font-weight: 700; }
.cdla-lab-faq__accordion .elementor-tab-content { padding: 0 0 1rem; border: 0; color: var(--cdla-home-text-muted); font-size: .9rem; line-height: 1.5; }

@media (max-width: 64rem) {
  .cdla-lab-benefits__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cdla-lab-technology__content { padding-inline: 2rem !important; }
  .cdla-lab-card {
    width: calc(41.6667% - 1.3333rem) !important;
    min-width: calc(41.6667% - 1.3333rem) !important;
    flex-basis: calc(41.6667% - 1.3333rem) !important;
  }
  .cdla-lab-laboratories__motif { width: 15rem !important; }
  .cdla-lab-location-faq__grid { gap: 2.5rem; }
  .cdla-patients-services .cdla-lab-laboratories__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .cdla-patients-duty-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .cdla-patients-insurance__inner { gap: 2.5rem !important; }
  .cdla-medicos-process__grid { grid-template-columns: 1fr; }
  .cdla-medicos-practice__rights-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 47.9375rem) {
  .cdla-tourism-hero__title .elementor-heading-title {
    max-width: 100%;
    font-size: clamp(1.55rem, 7vw, 2.25rem);
  }

  .cdla-lab-benefits { padding-block: 2.5rem !important; }
  .cdla-lab-benefits__grid,
  .cdla-lab-technology__grid,
  .cdla-lab-location-faq__grid { grid-template-columns: 1fr; }
  .cdla-lab-benefits__grid { gap: 2rem; }
  .cdla-lab-benefit { align-items: center; text-align: center; }
  .cdla-patients-services .cdla-lab-laboratories__grid,
  .cdla-patients-duty-grid,
  .cdla-patients-duty-grid--duties,
  .cdla-patients-insurance__inner { grid-template-columns: 1fr; }
  .cdla-patients-duty-row { padding: 1.5rem !important; }
  .cdla-patients-rights,
  .cdla-patients-insurance { padding-block: 3.25rem !important; }
  .cdla-patients-insurance__image img { min-height: 21rem; }
  .cdla-patients-insurance__list .elementor-icon-list-items { grid-template-columns: 1fr; }
  .cdla-medicos-practice,
  .cdla-medicos-process { padding-block: 3.25rem !important; }
  .cdla-medicos-practice-row { grid-template-columns: 1fr; padding: 1.5rem !important; }
  .cdla-medicos-practice__rights-grid { grid-template-columns: 1fr; }
  .cdla-medicos-documents-list .elementor-icon-list-items { grid-template-columns: 1fr; }
  .cdla-lab-technology__content { width: 100% !important; padding: 3rem 1rem !important; }
  .cdla-lab-technology__image { order: -1; }
  .cdla-lab-technology__image img { min-height: 22rem; }
  .cdla-lab-laboratories { padding-block: 3.5rem !important; }
  .cdla-lab-laboratories__motif { right: -4rem; width: 11rem !important; }
  .cdla-lab-card {
    width: 97.5vw !important;
    min-width: 97.5vw !important;
    flex-basis: 97.5vw !important;
  }
  .cdla-lab-card__copy,
  .cdla-lab-card__button {
    max-height: 12rem;
    opacity: 1;
    transform: none;
  }
  .cdla-lab-online,
  .cdla-lab-online__content { min-height: 31rem; }
  .cdla-lab-online__content { padding-block: 3rem !important; }
  .cdla-lab-location-faq { padding-block: 3.5rem !important; }
}
