/* ==========================================================================
   Family's Pizzas Antioquia — Cómo pedir
   ========================================================================== */

.pw-steps {
    position: relative;
    overflow: hidden;

    color: var(--pw-white);

    background:
        linear-gradient(
            135deg,
            var(--pw-red) 0%,
            #9f1010 48%,
            var(--pw-red-dark) 100%
        );
}


/* ==========================================================================
   Contenedor
   ========================================================================== */

.pw-steps .pw-container {
    width:
        min(
            100% - 48px,
            1380px
        );
}


/* ==========================================================================
   Layout
   ========================================================================== */

.pw-steps__layout {
    min-height: 710px;

    display: grid;

    grid-template-columns:
        minmax(560px, 650px)
        minmax(520px, 620px);

    align-items: center;

    justify-content: center;

    gap:
        clamp(
            30px,
            4vw,
            70px
        );
}


/* ==========================================================================
   Imagen del chef
   ========================================================================== */

.pw-steps__visual {
    position: relative;

    align-self: stretch;

    width: 100%;
    height: 710px;

    margin: 0;

    overflow: visible;
}


.pw-steps__visual img {
    position: absolute;

    right: 50%;
    bottom: -55px;

    z-index: 1;

    width: auto;
    max-width: none;

    height: 680px;
    max-height: none;

    display: block;

    object-fit: contain;

    object-position:
        center
        bottom;

    transform:
        translateX(50%)
        scale(1.12);

    transform-origin:
        center
        bottom;
}


/* ==========================================================================
   Contenido
   ========================================================================== */

.pw-steps__content {
    position: relative;

    z-index: 3;

    width: 100%;
    max-width: 620px;

    padding-block: 70px;
}


/* ==========================================================================
   Encabezado
   ========================================================================== */

.pw-steps__heading {
    margin:
        0
        0
        30px
        34px;
}


.pw-steps__eyebrow {
    display: block;

    margin-bottom: 10px;

    color:
        var(--pw-yellow);

    font-family:
        var(--pw-font-heading);

    font-size:
        clamp(
            1.1rem,
            1.35vw,
            1.3rem
        );

    font-weight: 700;

    line-height: 1.2;

    letter-spacing: -0.015em;
}


.pw-steps__heading h2 {
    max-width: 590px;

    margin: 0;

    color:
        var(--pw-white);

    font-family:
        var(--pw-font-heading);

    font-size:
        clamp(
            3rem,
            4.2vw,
            4.25rem
        );

    font-weight: 800;

    line-height: 1.1;

    letter-spacing: -0.03em;
}


.pw-steps__heading h2 span {
    display: block;
}


/* ==========================================================================
   Lista de pasos
   ========================================================================== */

.pw-steps__list {
    display: grid;

    gap: 10px;

    margin: 0;

    padding: 0;

    list-style: none;
}


.pw-step {
    position: relative;

    min-height: 112px;

    display: grid;

    grid-template-columns:
        74px
        minmax(0, 1fr);

    align-items: center;

    gap: 20px;

    padding:
        17px
        34px;

    border:
        2px
        solid
        transparent;

    border-radius: 18px;

    background:
        transparent;

    transition:
        border-color 0.25s ease,
        background-color 0.25s ease,
        box-shadow 0.25s ease,
        transform 0.25s ease;
}


.pw-step:hover {
    border-color:
        rgba(255, 179, 0, 0.82);

    background:
        rgba(255, 255, 255, 0.055);

    box-shadow:
        0 14px 32px
        rgba(70, 0, 0, 0.18);

    transform:
        translateX(6px);
}


/* ==========================================================================
   Número semántico oculto visualmente
   ========================================================================== */

.pw-step__number {
    position: absolute;

    width: 1px;
    height: 1px;

    overflow: hidden;

    clip:
        rect(0 0 0 0);

    clip-path:
        inset(50%);

    white-space: nowrap;
}


/* ==========================================================================
   Iconos
   ========================================================================== */

.pw-step__icon {
    width: 68px;
    height: 68px;

    display: block;

    object-fit: contain;

    /*
     * Convierte los iconos monocromáticos
     * al amarillo corporativo de Family's.
     */
    filter:
        brightness(0)
        saturate(100%)
        invert(76%)
        sepia(96%)
        saturate(1515%)
        hue-rotate(359deg)
        brightness(101%)
        contrast(104%);

    transition:
        transform 0.25s ease,
        filter 0.25s ease;
}


.pw-step:hover
.pw-step__icon {
    transform:
        scale(1.08);
}


/* ==========================================================================
   Textos
   ========================================================================== */

.pw-step__text {
    min-width: 0;
}


.pw-step h3 {
    margin: 0;

    color:
        var(--pw-yellow);

    font-family:
        var(--pw-font-heading);

    font-size:
        clamp(
            1.7rem,
            2vw,
            2.15rem
        );

    font-weight: 700;

    line-height: 1.12;

    letter-spacing: -0.025em;
}


.pw-step p {
    max-width: 470px;

    margin:
        8px
        0
        0;

    color:
        var(--pw-white);

    font-family:
        var(--pw-font-body);

    font-size:
        clamp(
            1.05rem,
            1.3vw,
            1.25rem
        );

    font-weight: 500;

    line-height: 1.4;

    letter-spacing: -0.012em;
}


/* ==========================================================================
   Pantallas medianas
   ========================================================================== */

@media (max-width: 1100px) {

    .pw-steps .pw-container {
        width:
            min(
                100% - 40px,
                1040px
            );
    }


    .pw-steps__layout {
        min-height: 650px;

        grid-template-columns:
            minmax(410px, 0.9fr)
            minmax(460px, 1.1fr);

        gap: 20px;
    }


    .pw-steps__visual {
        height: 650px;
    }


    .pw-steps__visual img {
        height: 620px;

        transform:
            translateX(50%)
            scale(1.2);
    }


    .pw-steps__content {
        padding-block: 55px;
    }


    .pw-steps__heading {
        margin-left: 24px;
    }


    .pw-step {
        padding-inline: 24px;
    }
}


/* ==========================================================================
   Tabletas
   ========================================================================== */

@media (max-width: 850px) {

    .pw-steps .pw-container {
        width:
            min(
                100% - 32px,
                650px
            );
    }


    .pw-steps__layout {
        min-height: auto;

        grid-template-columns:
            1fr;

        gap: 0;

        padding-top: 58px;
    }


    .pw-steps__content {
        max-width: 650px;

        margin-inline: auto;

        padding:
            0
            0
            48px;

        order: 1;
    }


    .pw-steps__visual {
        width:
            min(
                100%,
                600px
            );

        height: 570px;

        margin-inline: auto;

        order: 2;
    }


    .pw-steps__visual img {
        height: 550px;

        transform:
            translateX(50%)
            scale(1.16);
    }


    .pw-steps__heading {
        margin:
            0
            0
            28px;

        text-align: center;
    }


    .pw-steps__heading h2 {
        margin-inline: auto;
    }
}


/* ==========================================================================
   Móviles
   ========================================================================== */

@media (max-width: 580px) {

    .pw-steps .pw-container,
    .pw-steps__layout {
        width:
            min(
                100% - 24px,
                480px
            );
    }


    .pw-steps__layout {
        padding-top: 42px;
    }


    .pw-steps__content {
        padding-bottom: 30px;
    }


    .pw-steps__heading {
        margin-bottom: 24px;
    }


    .pw-steps__eyebrow {
        margin-bottom: 8px;

        font-size: 1rem;

        line-height: 1.2;

        letter-spacing: -0.01em;
    }


    .pw-steps__heading h2 {
        font-size:
            clamp(
                2.25rem,
                10.5vw,
                3rem
            );

        font-weight: 800;

        line-height: 1.1;

        letter-spacing: -0.03em;
    }


    .pw-steps__list {
        gap: 10px;
    }


    .pw-step {
        min-height: 0;

        grid-template-columns:
            55px
            minmax(0, 1fr);

        align-items: start;

        gap: 14px;

        padding:
            18px
            14px;

        border-width: 1.5px;

        border-radius: 15px;
    }


    .pw-step:hover {
        transform:
            translateY(-2px);
    }


    .pw-step__icon {
        width: 52px;
        height: 52px;
    }


    .pw-step h3 {
        font-size: 1.4rem;

        font-weight: 700;

        line-height: 1.12;

        letter-spacing: -0.02em;
    }


    .pw-step p {
        margin-top: 6px;

        font-size: 0.96rem;

        font-weight: 500;

        line-height: 1.42;

        letter-spacing: -0.008em;
    }


    .pw-steps__visual {
        width:
            calc(
                100% + 24px
            );

        height: 450px;

        margin-left: -12px;
    }


    .pw-steps__visual img {
        height: 430px;

        transform:
            translateX(50%)
            scale(1.12);
    }
}


/* ==========================================================================
   Teléfonos pequeños
   ========================================================================== */

@media (max-width: 390px) {

    .pw-steps .pw-container,
    .pw-steps__layout {
        width:
            calc(
                100% - 18px
            );
    }


    .pw-steps__heading h2 {
        font-size: 2.15rem;
    }


    .pw-step {
        grid-template-columns:
            48px
            minmax(0, 1fr);

        gap: 11px;

        padding-inline: 11px;
    }


    .pw-step__icon {
        width: 46px;
        height: 46px;
    }


    .pw-step h3 {
        font-size: 1.28rem;
    }


    .pw-step p {
        font-size: 0.9rem;

        line-height: 1.4;
    }


    .pw-steps__visual {
        height: 390px;
    }


    .pw-steps__visual img {
        height: 370px;

        transform:
            translateX(50%)
            scale(1.08);
    }
}


/* ==========================================================================
   Accesibilidad
   ========================================================================== */

@media (prefers-reduced-motion: reduce) {

    .pw-step,
    .pw-step__icon {
        transition: none;
    }


    .pw-step:hover,
    .pw-step:hover
    .pw-step__icon {
        transform: none;
    }
}