/* Secciones del CMS (se cargan en las páginas administradas desde el panel) */
.cms-angosto { max-width: 820px; }
.cms-rico { overflow-wrap: anywhere; }
.cms-rico > :last-child { margin-bottom: 0; }
.cms-rico h2 { font-size: var(--texto-xl); margin-top: var(--esp-6); }
.cms-rico > h2:first-child { margin-top: 0; }
.cms-rico h3 { font-size: var(--texto-lg); margin-top: var(--esp-5); }
.cms-rico h4 { margin-top: var(--esp-4); }
.cms-rico blockquote { margin: var(--esp-4) 0; padding: var(--esp-2) var(--esp-4); border-left: 4px solid var(--color-primario); background: var(--color-fondo-claro); border-radius: 0 var(--radio-sm) var(--radio-sm) 0; }
.cms-rico blockquote > :last-child { margin-bottom: 0; }
.cms-rico li { margin-bottom: var(--esp-1); }

.hero__etiqueta { color: #7fe07f; }
.hero__inner:not(:has(.hero__visual)) { grid-template-columns: 1fr; }

@media (min-width: 900px) { .cms-imgtexto--izq > img { order: -1; } }
.panel__imagen { border-radius: var(--radio-sm); margin-bottom: var(--esp-3); width: 100%; aspect-ratio: 16 / 10; object-fit: cover; }
.panel .boton { margin-top: var(--esp-3); }
.panel h2 { font-size: var(--texto-xl); }
.contacto__titulo { font-size: 1.5rem; }
.contacto--sola { grid-template-columns: 1fr !important; max-width: 720px; }
.linea__contador { font-size: .8125rem; }

.cta--oscuro { background: var(--color-oscuro); }
.cta--claro { background: var(--color-fondo-verde); color: var(--color-texto); }
.cta--claro h2 { color: var(--color-texto); }
.cta--claro p { color: var(--color-texto-suave); }
.cta__img { border-radius: var(--radio); max-height: 180px; width: auto; }
@media (min-width: 768px) { .cta--con-imagen { grid-template-columns: auto 1fr auto; } }
.cta > .boton { justify-self: start; }

.cms-faq { display: grid; gap: var(--esp-2); }
.cms-faq__item { background: #fff; border: 1px solid var(--color-borde); border-radius: var(--radio); }
.cms-faq__pregunta { cursor: pointer; padding: var(--esp-3) var(--esp-4); font-weight: 500; list-style-position: inside; }
.cms-faq__item[open] > .cms-faq__pregunta { color: var(--color-primario-oscuro); border-bottom: 1px solid var(--color-borde); }
.cms-faq__respuesta { padding: var(--esp-3) var(--esp-4); color: var(--color-texto-suave); }

.cms-galeria { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--esp-3); grid-template-columns: repeat(2, 1fr); }
@media (min-width: 768px) { .cms-galeria--3 { grid-template-columns: repeat(3, 1fr); } .cms-galeria--4 { grid-template-columns: repeat(4, 1fr); } }
.cms-galeria__btn { display: block; width: 100%; padding: 0; border: 0; background: var(--color-fondo-claro); border-radius: var(--radio); overflow: hidden; cursor: zoom-in; }
.cms-galeria__btn img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; transition: transform var(--transicion); }
.cms-galeria__btn:hover img { transform: scale(1.03); }
.cms-visor { border: 0; padding: 0; background: transparent; max-width: 94vw; max-height: 94vh; overflow: visible; }
.cms-visor::backdrop { background: rgba(20, 24, 29, 0.85); }
.cms-visor__img { max-width: 94vw; max-height: 88vh; border-radius: var(--radio-sm); background: #fff; }
.cms-visor__cerrar { position: absolute; top: -44px; right: 0; width: 40px; height: 40px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #fff; color: var(--color-texto); }
.cms-visor__cerrar .icono { width: 20px; height: 20px; }

.cms-testimonios { list-style: none; padding: 0; margin: 0; display: grid; gap: var(--esp-5); }
@media (min-width: 768px) { .cms-testimonios { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .cms-testimonios { grid-template-columns: repeat(3, 1fr); } }
.cms-testimonio { margin: 0; height: 100%; background: #fff; border: 1px solid var(--color-borde); border-radius: var(--radio); padding: var(--esp-5); display: flex; flex-direction: column; gap: var(--esp-4); }
.cms-testimonio__texto { margin: 0; flex: 1; font-style: italic; }
.cms-testimonio__texto p { margin: 0; }
.cms-testimonio__pie { display: flex; align-items: center; gap: var(--esp-3); font-size: var(--texto-sm); }
.cms-testimonio__pie span { display: block; font-size: var(--texto-xs); }
.cms-testimonio__foto { width: 48px; height: 48px; border-radius: 50%; object-fit: cover; }

.cms-separador--s { height: var(--esp-4); }
.cms-separador--m { height: var(--esp-6); }
.cms-separador--l { height: var(--esp-8); }
.cms-separador:has(hr) { display: flex; align-items: center; }
.cms-separador .contenedor { width: 100%; }
.cms-separador__linea { border: 0; border-top: 1px solid var(--color-borde); margin: 0; }
.cms-cargando { padding-block: var(--seccion-y); }

/* ---------- Pantallas anchas ---------- */
@media (min-width: 1280px) {
  .cms-galeria { grid-template-columns: repeat(3, 1fr); }
  .cms-galeria--3 { grid-template-columns: repeat(4, 1fr); }
  .cms-galeria--4 { grid-template-columns: repeat(5, 1fr); }
  .cms-testimonios { gap: var(--esp-6); }
}
@media (min-width: 1600px) {
  .cms-galeria--2 { grid-template-columns: repeat(3, 1fr); }
  .cms-galeria--4 { grid-template-columns: repeat(6, 1fr); }
  .cms-testimonios { grid-template-columns: repeat(4, 1fr); }
}
.cms-faq { max-width: 960px; }
