/* Módulo de consultas profesionales - Autor: DiagonalHosting.com
   Integración v1.2.1: el módulo no pinta cabecera, pie, fondo global ni tipografías.
   Hereda el layout, el header, el footer, el fondo y la fuente del tema activo de PrestaShop.
*/
.dhcp-page {
  width: 100%;
}

.dhcp-container {
  max-width: 1200px;
  margin-left: auto;
  margin-right: auto;
}

.dhcp-page-header {
  margin-bottom: 1.8rem;
  text-align: center;
}

.dhcp-intro {
  max-width: 1000px;
  margin: 0 auto 2rem auto;
  line-height: 1.7;
}

.dhcp-filters {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .75rem;
  margin: 0 0 2.4rem 0;
}

.dhcp-filter {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: .6rem 1.1rem;
  border-radius: 999px;
  border: 1px solid currentColor;
  text-decoration: none !important;
  opacity: .9;
  transition: opacity .2s ease, transform .2s ease, box-shadow .2s ease;
}

.dhcp-filter:hover,
.dhcp-filter.is-active {
  opacity: 1;
  transform: translateY(-1px);
}

.dhcp-filter.is-active {
  font-weight: 700;
  box-shadow: 0 8px 18px rgba(0,0,0,.16);
}

.dhcp-group {
  margin-bottom: 3rem;
}

.dhcp-group-title {
  margin: 0 0 1.4rem 0;
  text-align: center;
}

.dhcp-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 2rem;
}

.dhcp-card,
.dhcp-consult-profile,
.dhcp-form-panel,
.dhcp-modal-dialog {
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 12px;
  overflow: hidden;
  background: rgba(0,0,0,.40);
  box-shadow: 0 10px 28px rgba(0,0,0,.18);
}

.dhcp-card {
  display: flex;
  flex-direction: column;
  min-height: 100%;
}

.dhcp-card-image-wrap {
  position: relative;
  aspect-ratio: 4 / 3;
  overflow: hidden;
  background: rgba(255,255,255,.06);
}

.dhcp-card-image,
.dhcp-consult-image,
.dhcp-modal-header img,
.dhcp-profile-gallery img,
.dhcp-consult-gallery img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.dhcp-card-placeholder {
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 4rem;
  font-weight: 700;
  opacity: .55;
}

.dhcp-card-body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 1.5rem;
}

.dhcp-card-title {
  margin: 0 0 1rem 0;
  text-align: center;
}

.dhcp-card-line {
  margin: 0 0 .55rem 0;
  line-height: 1.5;
}

.dhcp-tags {
  display: flex;
  flex-wrap: wrap;
  gap: .45rem;
  margin: .7rem 0 1.1rem 0;
}

.dhcp-tag {
  display: inline-flex;
  align-items: center;
  padding: .28rem .65rem;
  border-radius: 999px;
  border: 1px solid rgba(255,255,255,.18);
  font-size: .85em;
}

.dhcp-card-actions,
.dhcp-modal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: .75rem;
  justify-content: center;
  margin-top: auto;
}

.dhcp-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 132px;
  text-align: center;
  text-decoration: none !important;
  cursor: pointer;
}

.dhcp-empty {
  text-align: center;
  margin: 2rem 0;
}

.dhcp-back {
  display: inline-flex;
  margin-bottom: 1.5rem;
  text-decoration: none !important;
}

.dhcp-consult-layout {
  display: grid;
  grid-template-columns: minmax(260px, 360px) minmax(0, 1fr);
  gap: 2rem;
  align-items: start;
}

.dhcp-consult-profile,
.dhcp-form-panel {
  padding: 1.5rem;
}

.dhcp-consult-image {
  aspect-ratio: 4 / 3;
  border-radius: 10px;
  margin-bottom: 1.2rem;
}

.dhcp-consult-gallery,
.dhcp-profile-gallery {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: .75rem;
  margin-top: 1rem;
}

.dhcp-consult-gallery img,
.dhcp-profile-gallery img {
  aspect-ratio: 1 / 1;
  border-radius: 8px;
}

.dhcp-form-group {
  margin-bottom: 1rem;
}

.dhcp-form-group label {
  display: block;
  margin-bottom: .35rem;
  font-weight: 700;
}

.dhcp-form-group input:not([type="checkbox"]),
.dhcp-form-group select,
.dhcp-form-group textarea {
  width: 100%;
}

.dhcp-form-checkbox {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr);
  gap: .5rem .75rem;
  align-items: start;
}

.dhcp-form-checkbox label {
  margin: 0;
}

.dhcp-form-checkbox .dhcp-privacy {
  grid-column: 2;
  margin: .25rem 0 0 0;
  font-size: .9em;
  opacity: .85;
}

.dhcp-alert ul {
  margin-bottom: 0;
}

.dhcp-modal {
  position: fixed;
  inset: 0;
  z-index: 9999;
  display: none;
  padding: 2rem;
  overflow: auto;
}

.dhcp-modal:target {
  display: block;
}

.dhcp-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(0,0,0,.72);
}

.dhcp-modal-dialog {
  position: relative;
  z-index: 1;
  width: min(920px, 100%);
  margin: 3rem auto;
  padding: 2rem;
}

.dhcp-modal-close {
  position: absolute;
  right: 1rem;
  top: .75rem;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2.4rem;
  height: 2.4rem;
  border-radius: 999px;
  text-decoration: none !important;
  font-size: 2rem;
  line-height: 1;
}

.dhcp-modal-header {
  display: grid;
  grid-template-columns: 140px minmax(0, 1fr);
  gap: 1.25rem;
  align-items: center;
  margin-bottom: 1.5rem;
}

.dhcp-modal-header img {
  aspect-ratio: 1 / 1;
  border-radius: 12px;
}

.dhcp-modal-section {
  margin-top: 1.5rem;
}

.dhcp-modal-section h4 {
  margin: 0 0 .6rem 0;
}

@media (max-width: 991px) {
  .dhcp-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .dhcp-consult-layout {
    grid-template-columns: 1fr;
  }
}

@media (max-width: 575px) {
  .dhcp-grid {
    grid-template-columns: 1fr;
  }

  .dhcp-card-body,
  .dhcp-consult-profile,
  .dhcp-form-panel,
  .dhcp-modal-dialog {
    padding: 1.1rem;
  }

  .dhcp-modal {
    padding: 1rem;
  }

  .dhcp-modal-header {
    grid-template-columns: 1fr;
  }

  .dhcp-modal-header img {
    width: 140px;
    margin: 0 auto;
  }

  .dhcp-consult-gallery,
  .dhcp-profile-gallery {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

.dhcp-profile-gallery a,
.dhcp-consult-gallery a {
  display: block;
  overflow: hidden;
  border-radius: 8px;
  cursor: zoom-in;
}

.dhcp-profile-gallery a img,
.dhcp-consult-gallery a img {
  transition: transform .2s ease, opacity .2s ease;
}

.dhcp-profile-gallery a:hover img,
.dhcp-consult-gallery a:hover img {
  transform: scale(1.04);
  opacity: .92;
}

.dhcp-js-lightbox {
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: none;
  align-items: center;
  justify-content: center;
  padding: 2rem;
  background: rgba(0, 0, 0, .86);
}

.dhcp-js-lightbox.is-open {
  display: flex;
}

.dhcp-js-lightbox img {
  max-width: min(1100px, 96vw);
  max-height: 90vh;
  width: auto;
  height: auto;
  object-fit: contain;
  border-radius: 10px;
  box-shadow: 0 20px 60px rgba(0,0,0,.45);
}

.dhcp-js-lightbox-close {
  position: fixed;
  top: 1rem;
  right: 1.2rem;
  z-index: 1;
  width: 2.8rem;
  height: 2.8rem;
  border: 0;
  border-radius: 999px;
  cursor: pointer;
  font-size: 2rem;
  line-height: 1;
  background: #fff;
  color: #111;
}

.dhcp-lightbox-open {
  overflow: hidden;
}

/* Mantener texto blanco en botones del módulo aunque el tema cambie el color en hover. */
.dhcp-button,
.dhcp-button:visited,
.dhcp-button:hover,
.dhcp-button:focus,
.dhcp-button:active,
.dhcp-button-secondary,
.dhcp-button-secondary:visited,
.dhcp-button-secondary:hover,
.dhcp-button-secondary:focus,
.dhcp-button-secondary:active {
  color: #fff !important;
}

/* v1.2.7: overlay del popup con transparencia para ver la página de fondo. */
.dhcp-modal-overlay {
  background: rgba(0, 0, 0, .68) !important;
  opacity: 1 !important;
}

.dhcp-modal-dialog {
  background: #000 !important;
}
