/* ============================================================
   Digitalizando MX
   Preguntas frecuentes premium
============================================================ */


/* ============================================================
   Sección
============================================================ */

.dmxFaq {
    position: relative;
    padding: 150px 0 155px;
    overflow: hidden;

    background:
        linear-gradient(
            180deg,
            #ffffff 0%,
            #f7fbff 52%,
            #ffffff 100%
        );
}

.dmxFaqContainer {
    position: relative;
    z-index: 2;
}


/* ============================================================
   Fondo decorativo
============================================================ */

.dmxFaqBackground {
    position: absolute;
    inset: 0;
    pointer-events: none;
}

.dmxFaqGrid {
    position: absolute;
    inset: 0;

    opacity: 0.2;

    background-image:
        linear-gradient(
            rgba(8, 38, 77, 0.035) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(8, 38, 77, 0.035) 1px,
            transparent 1px
        );

    background-size: 58px 58px;

    -webkit-mask-image:
        linear-gradient(
            to bottom,
            transparent,
            black 18%,
            black 84%,
            transparent
        );

    mask-image:
        linear-gradient(
            to bottom,
            transparent,
            black 18%,
            black 84%,
            transparent
        );
}

.dmxFaqGlow {
    position: absolute;
    border-radius: 50%;
    filter: blur(100px);
}

.dmxFaqGlowOne {
    top: -320px;
    left: -320px;

    width: 850px;
    height: 850px;

    background: rgba(0, 217, 220, 0.08);
}

.dmxFaqGlowTwo {
    right: -360px;
    bottom: -380px;

    width: 900px;
    height: 900px;

    background: rgba(6, 103, 241, 0.08);
}


/* ============================================================
   Encabezado
============================================================ */

.dmxFaqHeader {
    margin-bottom: 82px;
}

.dmxFaqEyebrow {
    display: flex;
    align-items: center;
    gap: 13px;
}

.dmxFaqEyebrow > span {
    width: 48px;
    height: 1px;

    background:
        linear-gradient(
            90deg,
            var(--dmx-blue),
            var(--dmx-cyan)
        );
}

.dmxFaqEyebrow small {
    color: var(--dmx-blue);

    font-size: 10px;
    font-weight: 950;
    letter-spacing: 0.18em;
    text-transform: uppercase;
}

.dmxFaqHeaderGrid {
    margin-top: 27px;

    display: grid;
    grid-template-columns:
        minmax(0, 1.1fr)
        minmax(340px, 0.65fr);

    align-items: end;
    gap: 70px;
}

.dmxFaqHeader h2 {
    max-width: 850px;
    margin: 0;

    color: var(--dmx-ink);

    font-size: clamp(52px, 6vw, 86px);
    line-height: 0.98;
    letter-spacing: -0.068em;
}

.dmxFaqHeader h2 span {
    display: block;
    margin-top: 8px;

    color: transparent;

    background:
        linear-gradient(
            90deg,
            var(--dmx-blue),
            #258bed 48%,
            var(--dmx-cyan)
        );

    -webkit-background-clip: text;
    background-clip: text;
}

.dmxFaqHeader p {
    max-width: 510px;
    margin: 0 0 5px;

    color: var(--dmx-muted);

    font-size: 15px;
    line-height: 1.8;
}


/* ============================================================
   Lista
============================================================ */

.dmxFaqList {
    border-top:
        1px solid rgba(220, 230, 238, 0.98);
}

.dmxFaqItem {
    position: relative;

    border-bottom:
        1px solid rgba(220, 230, 238, 0.98);

    transition:
        background 0.35s ease,
        box-shadow 0.35s ease;
}

.dmxFaqItem::before {
    content: "";

    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;

    width: 3px;

    opacity: 0;

    background:
        linear-gradient(
            to bottom,
            var(--dmx-blue),
            var(--dmx-cyan)
        );

    transform: scaleY(0);
    transform-origin: top;

    transition:
        opacity 0.3s ease,
        transform 0.45s ease;
}

.dmxFaqItem.isOpen {
    background:
        linear-gradient(
            90deg,
            rgba(6, 103, 241, 0.045),
            rgba(0, 217, 220, 0.02),
            transparent 78%
        );
}

.dmxFaqItem.isOpen::before {
    opacity: 1;
    transform: scaleY(1);
}


/* ============================================================
   Encabezado de pregunta
============================================================ */

.dmxFaqQuestionHeading {
    margin: 0;
}

.dmxFaqQuestion {
    width: 100%;

    padding: 34px 22px 34px 0;

    display: grid;
    grid-template-columns:
        120px
        minmax(0, 1fr)
        54px;

    align-items: center;
    gap: 28px;

    color: inherit;

    border: 0;
    background: transparent;

    font: inherit;
    text-align: left;

    cursor: pointer;

    -webkit-appearance: none;
    appearance: none;
}


/* ============================================================
   Número
============================================================ */

.dmxFaqNumber {
    color: rgba(8, 38, 77, 0.17);

    font-size: clamp(36px, 4.2vw, 58px);
    font-weight: 950;
    line-height: 1;
    letter-spacing: -0.065em;

    transition:
        color 0.3s ease,
        transform 0.3s ease;
}


/* ============================================================
   Texto de pregunta
============================================================ */

.dmxFaqQuestionText {
    max-width: 900px;

    color: var(--dmx-ink);

    font-size: clamp(23px, 2.8vw, 38px);
    font-weight: 750;
    line-height: 1.12;
    letter-spacing: -0.045em;

    transition:
        color 0.3s ease,
        transform 0.3s ease;
}


/* ============================================================
   Botón + / —
============================================================ */

.dmxFaqToggle {
    position: relative;

    width: 48px;
    height: 48px;

    display: grid;
    place-items: center;

    border:
        1px solid rgba(6, 103, 241, 0.14);

    border-radius: 50%;

    background: rgba(6, 103, 241, 0.045);

    transition:
        background 0.3s ease,
        border-color 0.3s ease,
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.dmxFaqToggle i {
    position: absolute;

    width: 16px;
    height: 2px;

    border-radius: 999px;

    background: var(--dmx-blue);

    transition:
        transform 0.35s ease,
        background 0.3s ease;
}

.dmxFaqToggle i:last-child {
    transform: rotate(90deg);
}


/* ============================================================
   Estados hover y abierto
============================================================ */

.dmxFaqQuestion:hover .dmxFaqNumber,
.dmxFaqItem.isOpen .dmxFaqNumber {
    color: rgba(6, 103, 241, 0.72);
    transform: translateX(4px);
}

.dmxFaqQuestion:hover .dmxFaqQuestionText,
.dmxFaqItem.isOpen .dmxFaqQuestionText {
    color: var(--dmx-blue);
}

.dmxFaqQuestion:hover .dmxFaqToggle,
.dmxFaqItem.isOpen .dmxFaqToggle {
    border-color: transparent;

    background:
        linear-gradient(
            145deg,
            var(--dmx-blue),
            var(--dmx-cyan)
        );

    box-shadow:
        0 14px 30px rgba(6, 103, 241, 0.18);
}

.dmxFaqQuestion:hover .dmxFaqToggle i,
.dmxFaqItem.isOpen .dmxFaqToggle i {
    background: #ffffff;
}

/*
    Convierte el signo + en —
*/
.dmxFaqItem.isOpen .dmxFaqToggle i:last-child {
    transform: rotate(0deg);
}

.dmxFaqItem.isOpen .dmxFaqToggle {
    transform: rotate(4deg);
}


/* ============================================================
   Respuesta con CSS Grid

   No utiliza:
   - height
   - max-height
   - scrollHeight
   - setTimeout
============================================================ */

.dmxFaqAnswer {
    display: grid;
    grid-template-rows: 0fr;

    opacity: 0;
    visibility: hidden;

    transition:
        grid-template-rows 0.48s
            cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.3s ease,
        visibility 0s linear 0.48s;
}

/*
    El atributo hidden es retirado por el JS.
    Esta regla evita que otro estilo externo interfiera.
*/
.dmxFaqAnswer:not([hidden]) {
    display: grid;
}

.dmxFaqItem.isOpen .dmxFaqAnswer {
    grid-template-rows: 1fr;

    opacity: 1;
    visibility: visible;

    transition:
        grid-template-rows 0.48s
            cubic-bezier(0.22, 1, 0.36, 1),
        opacity 0.34s ease 0.05s,
        visibility 0s linear 0s;
}

.dmxFaqAnswerInner {
    min-height: 0;
    overflow: hidden;

    display: grid;
    grid-template-columns:
        120px
        minmax(0, 1fr)
        54px;

    gap: 28px;

    padding: 0 22px 0 0;

    transition:
        padding-bottom 0.48s
            cubic-bezier(0.22, 1, 0.36, 1);
}

.dmxFaqItem.isOpen .dmxFaqAnswerInner {
    padding-bottom: 39px;
}

.dmxFaqAnswerInner::before,
.dmxFaqAnswerInner::after {
    content: "";
}

.dmxFaqAnswerInner p {
    max-width: 810px;
    margin: 0;

    color: var(--dmx-muted);

    font-size: 15px;
    line-height: 1.82;

    transform: translateY(-10px);

    transition:
        transform 0.42s
            cubic-bezier(0.22, 1, 0.36, 1);
}

.dmxFaqItem.isOpen .dmxFaqAnswerInner p {
    transform: translateY(0);
}


/* ============================================================
   CTA inferior
============================================================ */

.dmxFaqFooter {
    position: relative;

    margin-top: 68px;
    padding: 56px 60px;

    display: grid;
    grid-template-columns:
        minmax(0, 1fr)
        auto;

    align-items: center;
    gap: 50px;

    overflow: hidden;

    border:
        1px solid rgba(255, 255, 255, 0.12);

    border-radius: 34px;

    background:
        radial-gradient(
            circle at 82% 14%,
            rgba(0, 217, 220, 0.17),
            transparent 32%
        ),
        linear-gradient(
            125deg,
            #06162b 0%,
            #082d59 55%,
            #0b4e7d 100%
        );

    box-shadow:
        0 35px 90px rgba(15, 51, 88, 0.22);
}

.dmxFaqFooter::before {
    content: "?";

    position: absolute;
    top: -84px;
    right: 36px;

    color: rgba(255, 255, 255, 0.05);

    font-size: 300px;
    font-weight: 950;
    line-height: 1;
}

.dmxFaqFooterCopy,
.dmxFaqFooterButton {
    position: relative;
    z-index: 2;
}

.dmxFaqFooterEyebrow {
    color: #93efec;

    font-size: 9px;
    font-weight: 950;
    letter-spacing: 0.15em;
    text-transform: uppercase;
}

.dmxFaqFooter h3 {
    max-width: 760px;
    margin: 15px 0 0;

    color: #ffffff;

    font-size: clamp(34px, 4.5vw, 60px);
    line-height: 1;
    letter-spacing: -0.06em;
}

.dmxFaqFooter p {
    max-width: 650px;
    margin: 19px 0 0;

    color: #b5c8d8;

    font-size: 14px;
    line-height: 1.75;
}

.dmxFaqFooterButton {
    min-height: 62px;

    padding: 0 8px 0 23px;

    display: inline-flex;
    align-items: center;
    gap: 18px;

    white-space: nowrap;

    color: #07182f;

    border-radius: 999px;

    background:
        linear-gradient(
            90deg,
            var(--dmx-lime),
            #e2ff89
        );

    font-size: 11px;
    font-weight: 900;
    text-decoration: none;

    box-shadow:
        0 20px 42px rgba(198, 255, 47, 0.17);

    transition:
        transform 0.3s ease,
        box-shadow 0.3s ease;
}

.dmxFaqFooterButton b {
    width: 44px;
    height: 44px;

    display: grid;
    place-items: center;

    color: #ffffff;

    border-radius: 50%;

    background: #07182f;

    transition:
        transform 0.3s ease;
}

.dmxFaqFooterButton:hover {
    transform: translateY(-4px);

    box-shadow:
        0 28px 52px rgba(198, 255, 47, 0.24);
}

.dmxFaqFooterButton:hover b {
    transform: rotate(45deg);
}


/* ============================================================
   Focus accesible
============================================================ */

.dmxFaqQuestion:focus-visible,
.dmxFaqFooterButton:focus-visible {
    outline:
        3px solid rgba(0, 217, 220, 0.45);

    outline-offset: 5px;
}


/* ============================================================
   Compatibilidad con reveal
============================================================ */

.dmxFaqItem.reveal {
    opacity: 0;
    transform: translateY(24px);

    transition:
        opacity 0.75s ease,
        transform 0.75s ease,
        background 0.35s ease;
}

.dmxFaqItem.reveal.isVisible,
.dmxFaqItem.reveal.visible,
.dmxFaqItem.reveal.is-visible,
.dmxFaqItem.reveal.active {
    opacity: 1;
    transform: translateY(0);
}


/* ============================================================
   Tablet
============================================================ */

@media (max-width: 900px) {

    .dmxFaq {
        padding: 120px 0;
    }

    .dmxFaqHeaderGrid {
        grid-template-columns: 1fr;
        align-items: start;
        gap: 24px;
    }

    .dmxFaqHeader p {
        max-width: 680px;
    }

    .dmxFaqQuestion {
        grid-template-columns:
            90px
            minmax(0, 1fr)
            50px;
    }

    .dmxFaqAnswerInner {
        grid-template-columns:
            90px
            minmax(0, 1fr)
            50px;
    }

    .dmxFaqFooter {
        grid-template-columns: 1fr;
        align-items: start;
    }

    .dmxFaqFooterButton {
        width: fit-content;
    }

}


/* ============================================================
   Móvil
============================================================ */

@media (max-width: 650px) {

    .dmxFaq {
        padding: 95px 0;
    }

    .dmxFaqHeader {
        margin-bottom: 60px;
    }

    .dmxFaqHeader h2 {
        font-size: clamp(44px, 13vw, 66px);
    }

    .dmxFaqQuestion {
        grid-template-columns:
            58px
            minmax(0, 1fr)
            44px;

        gap: 18px;

        padding: 27px 0;
    }

    .dmxFaqNumber {
        font-size: 34px;
    }

    .dmxFaqQuestionText {
        font-size: 25px;
    }

    .dmxFaqToggle {
        width: 42px;
        height: 42px;
    }

    .dmxFaqAnswerInner {
        grid-template-columns:
            58px
            minmax(0, 1fr)
            44px;

        gap: 18px;

        padding-right: 0;
    }

    .dmxFaqItem.isOpen .dmxFaqAnswerInner {
        padding-bottom: 31px;
    }

    .dmxFaqAnswerInner p {
        font-size: 14px;
    }

    .dmxFaqFooter {
        margin-top: 54px;
        padding: 43px 31px;

        border-radius: 28px;
    }

    .dmxFaqFooterButton {
        width: 100%;
        justify-content: space-between;
    }

}


/* ============================================================
   Móvil pequeño
============================================================ */

@media (max-width: 460px) {

    .dmxFaq {
        padding: 80px 0;
    }

    .dmxFaqHeader p {
        font-size: 14px;
    }

    .dmxFaqQuestion {
        grid-template-columns:
            42px
            minmax(0, 1fr)
            40px;

        gap: 13px;
    }

    .dmxFaqNumber {
        font-size: 28px;
    }

    .dmxFaqQuestionText {
        font-size: 21px;
    }

    .dmxFaqToggle {
        width: 38px;
        height: 38px;
    }

    .dmxFaqAnswerInner {
        grid-template-columns:
            42px
            minmax(0, 1fr)
            40px;

        gap: 13px;
    }

    .dmxFaqFooter {
        padding: 37px 24px;
    }

}


/* ============================================================
   Movimiento reducido
============================================================ */

@media (prefers-reduced-motion: reduce) {

    .dmxFaqItem,
    .dmxFaqQuestionText,
    .dmxFaqNumber,
    .dmxFaqToggle,
    .dmxFaqToggle i,
    .dmxFaqAnswer,
    .dmxFaqAnswerInner,
    .dmxFaqAnswerInner p,
    .dmxFaqFooterButton,
    .dmxFaqFooterButton b {
        transition: none;
    }

    .dmxFaqItem.reveal {
        opacity: 1;
        transform: none;
    }

}

/*==================================================
CTA entre FAQ y Contacto
==================================================*/

.dmxFaqNext{

    margin-top:70px;

    padding:40px 48px;

    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:40px;

    border:1px solid rgba(220,230,238,.9);
    border-radius:28px;

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f7fbff 100%
        );

    box-shadow:
        0 20px 60px rgba(15,51,88,.08);

}

.dmxFaqNextContent{

    max-width:720px;

}

.dmxFaqNextEyebrow{

    display:inline-block;

    margin-bottom:14px;

    color:var(--dmx-blue);

    font-size:10px;
    font-weight:900;
    letter-spacing:.18em;
    text-transform:uppercase;

}

.dmxFaqNext h3{

    margin:0;

    color:var(--dmx-ink);

    font-size:clamp(34px,4vw,52px);
    line-height:1;
    letter-spacing:-.05em;

}

.dmxFaqNext p{

    margin:18px 0 0;

    color:var(--dmx-muted);

    font-size:15px;
    line-height:1.8;

}

.dmxFaqNextButton{

    flex-shrink:0;

    min-height:62px;

    padding:0 8px 0 24px;

    display:inline-flex;
    align-items:center;
    gap:18px;

    border-radius:999px;

    text-decoration:none;

    color:#07182f;

    font-size:11px;
    font-weight:900;
    letter-spacing:.08em;
    text-transform:uppercase;

    background:
        linear-gradient(
            90deg,
            var(--dmx-lime),
            #e6ff92
        );

    transition:
        transform .3s,
        box-shadow .3s;

    box-shadow:
        0 18px 45px rgba(198,255,47,.18);

}

.dmxFaqNextButton b{

    width:44px;
    height:44px;

    display:grid;
    place-items:center;

    border-radius:50%;

    background:#07182f;

    color:#fff;

    font-size:18px;

    transition:transform .3s;

}

.dmxFaqNextButton:hover{

    transform:translateY(-4px);

    box-shadow:
        0 28px 55px rgba(198,255,47,.25);

}

.dmxFaqNextButton:hover b{

    transform:translateY(3px);

}

@media(max-width:900px){

    .dmxFaqNext{

        padding:36px;

        flex-direction:column;
        align-items:flex-start;

    }

}

@media(max-width:640px){

    .dmxFaqNext{

        margin-top:55px;

        padding:30px 24px;

    }

    .dmxFaqNext h3{

        font-size:34px;

    }

    .dmxFaqNextButton{

        width:100%;
        justify-content:space-between;

    }

}