/*
  Ficha de producto con la guia de marca.
 
  Es la primera pagina del sitio maquetada con los colores y las tipografias de
  la guia en lugar de con el tema comprado. Todo lo que hay aqui usa las
  variables de tipografias.css, asi que no repite ni un color a pelo.
 
  Las clases van con prefijo "zh-" para no chocar con Bootstrap ni con el tema,
  que siguen cargados en la pagina.
*/

.zh {
    font-family: var(--mf-cuerpo);
    color: #1c2430;
    font-size: 1.02rem;
    line-height: 1.7;
}

.zh h1,
.zh h2,
.zh h3 {
    font-family: var(--mf-titulos);
    font-weight: 800;
    color: var(--mf-profundo);
    letter-spacing: -0.01em;
    line-height: 1.12;
}

.zh-envoltura {
    max-width: 1100px;
    margin: 0 auto;
    padding: 0 20px;
}

/* Franjas: alternan blanco y el azul muy claro de la guia. */
.zh-franja {
    padding: 62px 0;
}

.zh-franja--clara {
    background: var(--mf-claro);
}

/* ---------- Cabecera ---------- */

.zh-portada {
    display: grid;
    gap: 40px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
}

.zh-portada h1 {
    margin: 0 0 18px;
    font-size: clamp(2.1rem, 5vw, 3.2rem);
    text-transform: uppercase;
}

.zh-entradilla {
    font-weight: 700;
    font-size: 1.1rem;
}

.zh-portada-fotos {
    display: grid;
    gap: 18px;
}

.zh-portada-fotos img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgb(0 64 135 / 14%);
}

/* ---------- Boton ---------- */

.zh-boton {
    display: inline-block;
    margin-top: 26px;
    padding: 15px 40px;
    border-radius: 999px;
    background: var(--mf-profundo);
    color: #fff;
    font-family: var(--mf-titulos);
    font-weight: 700;
    letter-spacing: 0.09em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.2s ease, transform 0.2s ease;
}

.zh-boton:hover,
.zh-boton:focus-visible {
    background: var(--mf-medio);
    color: #fff;
    transform: translateY(-2px);
}

/* ---------- Dos columnas con foto ---------- */

.zh-dos {
    display: grid;
    gap: 44px;
    grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);
    align-items: center;
}

.zh-dos img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgb(0 64 135 / 14%);
}

.zh-dos h2 {
    margin: 0 0 20px;
    font-size: clamp(1.6rem, 3.4vw, 2.3rem);
    text-transform: uppercase;
}

/* La foto va a la derecha o a la izquierda segun la seccion. */
.zh-dos--invertida .zh-dos-foto {
    order: -1;
}

/* ---------- Listas ---------- */

.zh-lista {
    margin: 0;
    padding: 0;
    list-style: none;
}

.zh-lista li {
    position: relative;
    margin-bottom: 13px;
    padding-left: 26px;
}

.zh-lista li::before {
    content: "";
    position: absolute;
    top: 0.62em;
    left: 0;
    width: 9px;
    height: 9px;
    border-radius: 2px;
    background: var(--mf-acento);
}

.zh-lista strong {
    color: var(--mf-profundo);
}

/* Los pasos van numerados: el orden es parte de la informacion. */
.zh-pasos {
    margin: 0;
    padding: 0;
    list-style: none;
    counter-reset: paso;
}

.zh-pasos li {
    position: relative;
    margin-bottom: 15px;
    padding-left: 44px;
    counter-increment: paso;
}

.zh-pasos li::before {
    content: counter(paso);
    position: absolute;
    top: 0;
    left: 0;
    display: grid;
    place-items: center;
    width: 28px;
    height: 28px;
    border-radius: 50%;
    background: var(--mf-acento);
    color: #fff;
    font-family: var(--mf-titulos);
    font-size: 0.88rem;
    font-weight: 700;
}

.zh-consejo {
    margin-top: 24px;
    padding: 16px 20px;
    border-left: 4px solid var(--mf-acento);
    background: var(--mf-claro);
    border-radius: 0 8px 8px 0;
}

/* ---------- Secciones centradas ---------- */

.zh-centrado {
    text-align: center;
}

.zh-centrado h2 {
    margin: 0 0 14px;
    font-size: clamp(1.6rem, 3.4vw, 2.3rem);
    text-transform: uppercase;
}

.zh-colores {
    margin: 0 0 34px;
    font-family: var(--mf-titulos);
    font-size: 1.35rem;
    font-weight: 700;
    color: var(--mf-profundo);
}

.zh-acabados {
    display: grid;
    gap: 24px;
    grid-template-columns: repeat(auto-fit, minmax(240px, 1fr));
    margin-top: 34px;
}

.zh-acabados figure {
    margin: 0;
}

.zh-acabados img {
    width: 100%;
    height: 230px;
    object-fit: cover;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgb(0 64 135 / 14%);
}

.zh-acabados figcaption {
    margin-top: 11px;
    font-family: var(--mf-titulos);
    font-weight: 700;
    color: var(--mf-profundo);
}

/* ---------- Preguntas ---------- */

.zh-preguntas {
    max-width: 780px;
    margin: 0 auto;
}

/*
  Se usa <details> y no un acordeon de JavaScript: la pagina publica no carga JS
  propio y la politica de seguridad no admite codigo en linea. Ademas, asi el
  contenido esta en el HTML y lo lee el buscador aunque este plegado.
*/
.zh-pregunta {
    margin-bottom: 12px;
    border-radius: 10px;
    background: #fff;
    box-shadow: 0 4px 14px rgb(0 64 135 / 8%);
}

.zh-franja--clara .zh-pregunta {
    background: #fff;
}

.zh-pregunta > summary {
    display: flex;
    align-items: center;
    gap: 12px;
    padding: 16px 20px;
    cursor: pointer;
    font-family: var(--mf-titulos);
    font-weight: 700;
    color: var(--mf-profundo);
    list-style: none;
}

.zh-pregunta > summary::-webkit-details-marker {
    display: none;
}

.zh-pregunta > summary::after {
    content: "+";
    margin-left: auto;
    color: var(--mf-acento);
    font-size: 1.4rem;
    line-height: 1;
}

.zh-pregunta[open] > summary::after {
    content: "−";
}

.zh-pregunta-cuerpo {
    padding: 0 20px 18px;
}

/* ---------- Antes y despues ---------- */

.zh-comparativa {
    display: grid;
    gap: 26px;
    grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
    align-items: center;
    margin-top: 34px;
}

.zh-comparativa img {
    width: 100%;
    height: auto;
    border-radius: 10px;
    box-shadow: 0 10px 30px rgb(0 64 135 / 14%);
}

.zh-comparativa figcaption {
    margin-top: 12px;
    font-family: var(--mf-titulos);
    font-weight: 700;
    color: var(--mf-profundo);
    text-align: center;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.zh-flecha {
    color: var(--mf-acento);
    font-size: 2.6rem;
    line-height: 1;
}

/* ---------- Cierre ---------- */

.zh-cierre {
    text-align: center;
}

.zh-cierre p {
    margin: 0 auto;
    max-width: 640px;
    font-family: var(--mf-titulos);
    font-size: 1.3rem;
    font-weight: 700;
    color: var(--mf-profundo);
}

/* ---------- Pantallas estrechas ---------- */

@media (max-width: 860px) {
    .zh-portada,
    .zh-dos {
        grid-template-columns: 1fr;
    }

    /* En una sola columna la foto va siempre debajo del texto: invertirla
       dejaria la imagen antes del titulo que la explica. */
    .zh-dos--invertida .zh-dos-foto {
        order: 0;
    }

    .zh-comparativa {
        grid-template-columns: 1fr;
    }

    .zh-flecha {
        transform: rotate(90deg);
        justify-self: center;
    }

    .zh-franja {
        padding: 44px 0;
    }
}
