/* doc-project | css/scene-banner.css | Dessine et anime le bandeau horizontal illustrant l’arrivée du camion, la fumée, les clients et les véhicules. | Expose: scène décorative responsive, camion, personnages, voitures, nuages, oiseaux et animations CSS | Dépend de: index.php et variables graphiques de css/home.css | Impacte: narration visuelle, identité de marque, animation décorative et respect de la réduction des mouvements | Tables: aucune */

.pizza-scene {
    position: relative;
    height: 180px;
    margin: 0 0 4rem;
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: #bce7ff;
    box-shadow: 0 20px 45px rgba(0, 0, 0, 0.24);
}

.pizza-scene__sky {
    position: absolute;
    inset: 0;
    overflow: hidden;
    background:
        linear-gradient(180deg, #8fd4f5 0%, #d8f2ff 67%, #79a84e 68%, #467832 100%);
}

.pizza-scene__sun {
    position: absolute;
    top: 18px;
    right: 8%;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #ffd15a;
    box-shadow: 0 0 28px rgba(255, 209, 90, 0.7);
}

.pizza-scene__cloud {
    position: absolute;
    display: flex;
    align-items: flex-end;
    animation: scene-cloud 24s linear infinite;
}

.pizza-scene__cloud i {
    display: block;
    width: 45px;
    height: 24px;
    margin-right: -14px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.9);
}

.pizza-scene__cloud i:nth-child(2) {
    width: 58px;
    height: 34px;
}

.pizza-scene__cloud--one {
    top: 20px;
    left: -150px;
}

.pizza-scene__cloud--two {
    top: 58px;
    left: -280px;
    transform: scale(0.7);
    animation-delay: -11s;
}

.pizza-scene__birds {
    position: absolute;
    color: rgba(39, 66, 82, 0.85);
    font-family: Georgia, serif;
    font-size: 23px;
    letter-spacing: 3px;
    animation: scene-birds 18s linear infinite;
}

.pizza-scene__birds--one {
    top: 35px;
    left: -80px;
}

.pizza-scene__birds--two {
    top: 70px;
    left: -180px;
    font-size: 17px;
    animation-delay: -8s;
}

.pizza-scene__road {
    position: absolute;
    right: 0;
    bottom: 0;
    left: 0;
    height: 53px;
    background: #343434;
    border-top: 4px solid #d9d1ba;
}

.pizza-scene__road-line {
    position: absolute;
    bottom: 23px;
    width: 80px;
    height: 5px;
    border-radius: 5px;
    background: #f4d35e;
}

.pizza-scene__road-line--one { left: 8%; }
.pizza-scene__road-line--two { left: 45%; }
.pizza-scene__road-line--three { right: 8%; }

.pizza-scene__tree {
    position: absolute;
    bottom: 49px;
    width: 12px;
    height: 45px;
    border-radius: 5px;
    background: #6a3b1d;
}

.pizza-scene__tree::before,
.pizza-scene__tree::after {
    position: absolute;
    content: "";
    border-radius: 50%;
    background: #397332;
}

.pizza-scene__tree::before {
    top: -33px;
    left: -21px;
    width: 55px;
    height: 55px;
}

.pizza-scene__tree::after {
    top: -14px;
    left: -30px;
    width: 70px;
    height: 43px;
}

.pizza-scene__tree--one { left: 5%; }
.pizza-scene__tree--two { right: 4%; transform: scale(0.8); }

.pizza-scene__truck {
    position: absolute;
    z-index: 4;
    bottom: 29px;
    left: 50%;
    width: 205px;
    height: 82px;
    transform: translateX(-50%);
    animation: scene-truck-arrival 13s ease-in-out infinite;
}

.pizza-scene__truck-body {
    position: absolute;
    bottom: 11px;
    left: 0;
    display: grid;
    width: 145px;
    height: 60px;
    place-content: center;
    border: 3px solid #3a170e;
    border-radius: 8px 4px 4px 8px;
    background: linear-gradient(135deg, #ff861f, #d8450c);
    color: #fff7e5;
    text-align: center;
}

.pizza-scene__truck-body strong {
    font-family: Georgia, serif;
    font-size: 14px;
}

.pizza-scene__truck-body small {
    font-size: 9px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.pizza-scene__truck-cabin {
    position: absolute;
    right: 0;
    bottom: 11px;
    width: 65px;
    height: 49px;
    border: 3px solid #3a170e;
    border-radius: 4px 12px 5px 3px;
    background: #ec5d17;
}

.pizza-scene__truck-cabin i {
    position: absolute;
    top: 7px;
    right: 8px;
    width: 39px;
    height: 20px;
    border: 2px solid #3a170e;
    border-radius: 3px 8px 3px 3px;
    background: #a9e1f5;
}

.pizza-scene__chimney {
    position: absolute;
    top: 0;
    left: 23px;
    width: 17px;
    height: 27px;
    border: 3px solid #3a170e;
    border-radius: 4px 4px 0 0;
    background: #5d382a;
}

.pizza-scene__wheel,
.pizza-scene__car-wheel {
    position: absolute;
    bottom: 0;
    width: 27px;
    height: 27px;
    border: 6px solid #171717;
    border-radius: 50%;
    background: #c8c8c8;
    animation: scene-wheel 0.7s linear infinite;
}

.pizza-scene__wheel--rear { left: 30px; }
.pizza-scene__wheel--front { right: 18px; }

.pizza-scene__smoke {
    position: absolute;
    top: -2px;
    left: 27px;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: rgba(245, 245, 245, 0.8);
    animation: scene-smoke 2.5s ease-out infinite;
}

.pizza-scene__smoke--two { animation-delay: -0.8s; }
.pizza-scene__smoke--three { animation-delay: -1.6s; }

.pizza-scene__customer {
    position: absolute;
    z-index: 3;
    bottom: 43px;
    width: 30px;
    height: 58px;
}

.pizza-scene__person-head {
    position: absolute;
    top: 0;
    left: 8px;
    width: 17px;
    height: 17px;
    border-radius: 50%;
    background: #d99055;
}

.pizza-scene__person-body {
    position: absolute;
    top: 16px;
    left: 5px;
    width: 23px;
    height: 31px;
    border-radius: 8px 8px 3px 3px;
    background: #315d87;
}

.pizza-scene__person-arm {
    position: absolute;
    top: 21px;
    right: -5px;
    width: 18px;
    height: 7px;
    border-radius: 6px;
    background: #d99055;
    transform: rotate(-20deg);
}

.pizza-scene__customer--arrival {
    left: -50px;
    animation: scene-person-arrival 13s ease-in-out infinite;
}

.pizza-scene__customer--departure {
    left: 54%;
    animation: scene-person-departure 13s ease-in-out infinite;
}

.pizza-scene__pizza-box {
    position: absolute;
    top: 24px;
    right: -28px;
    width: 32px;
    height: 9px;
    padding-top: 1px;
    border: 1px solid #9d3d19;
    border-radius: 2px;
    background: #f6c46c;
    color: #8d2e10;
    font-size: 5px;
    font-weight: 900;
    text-align: center;
}

.pizza-scene__car {
    position: absolute;
    z-index: 3;
    bottom: 25px;
    width: 105px;
    height: 48px;
}

.pizza-scene__car-body {
    position: absolute;
    right: 0;
    bottom: 7px;
    left: 0;
    height: 27px;
    border: 3px solid #352018;
    border-radius: 14px 17px 6px 6px;
    background: #f1a31d;
}

.pizza-scene__car-roof {
    position: absolute;
    top: 4px;
    left: 24px;
    width: 55px;
    height: 25px;
    border: 3px solid #352018;
    border-radius: 16px 16px 3px 3px;
    background: #a9e1f5;
}

.pizza-scene__car-wheel {
    width: 22px;
    height: 22px;
    border-width: 5px;
}

.pizza-scene__car-wheel--rear { left: 15px; }
.pizza-scene__car-wheel--front { right: 14px; }

.pizza-scene__car--arrival {
    left: -130px;
    animation: scene-car-arrival 15s ease-in-out infinite;
}

.pizza-scene__car--departure {
    left: 56%;
    animation: scene-car-departure 15s ease-in-out infinite;
}

.pizza-scene__pizza-box--car {
    top: 0;
    right: 13px;
}

@keyframes scene-truck-arrival {
    0% { transform: translateX(calc(-50% - 900px)); }
    24%, 86% { transform: translateX(-50%); }
    100% { transform: translateX(calc(-50% + 900px)); }
}

@keyframes scene-smoke {
    0% { opacity: 0; transform: translate(0, 0) scale(0.5); }
    25% { opacity: 0.8; }
    100% { opacity: 0; transform: translate(20px, -58px) scale(2.4); }
}

@keyframes scene-wheel {
    to { transform: rotate(360deg); }
}

@keyframes scene-person-arrival {
    0%, 18% { transform: translateX(0); }
    38%, 68% { transform: translateX(calc(50vw - 170px)); }
    82%, 100% { transform: translateX(calc(100vw + 80px)); }
}

@keyframes scene-person-departure {
    0%, 48% { opacity: 0; transform: translateX(0); }
    54% { opacity: 1; }
    100% { opacity: 1; transform: translateX(calc(50vw + 220px)); }
}

@keyframes scene-car-arrival {
    0%, 10% { transform: translateX(0); }
    35%, 62% { transform: translateX(calc(50vw - 180px)); }
    78%, 100% { transform: translateX(calc(100vw + 180px)); }
}

@keyframes scene-car-departure {
    0%, 54% { opacity: 0; transform: translateX(0); }
    60% { opacity: 1; }
    100% { opacity: 1; transform: translateX(calc(50vw + 240px)); }
}

@keyframes scene-cloud {
    from { transform: translateX(0); }
    to { transform: translateX(calc(100vw + 500px)); }
}

@keyframes scene-birds {
    from { transform: translateX(0) translateY(0); }
    50% { transform: translateX(55vw) translateY(-8px); }
    to { transform: translateX(calc(100vw + 220px)) translateY(3px); }
}

@media (max-width: 767.98px) {
    .pizza-scene {
        height: 145px;
        margin-bottom: 3rem;
        border-radius: 18px;
    }

    .pizza-scene__truck {
        bottom: 25px;
        transform: translateX(-50%) scale(0.76);
    }

    .pizza-scene__tree {
        transform: scale(0.72);
        transform-origin: bottom;
    }

    .pizza-scene__customer {
        transform: scale(0.8);
        transform-origin: bottom;
    }
}

@media (prefers-reduced-motion: reduce) {
    .pizza-scene *,
    .pizza-scene *::before,
    .pizza-scene *::after {
        animation: none !important;
    }

    .pizza-scene__truck {
        transform: translateX(-50%);
    }

    .pizza-scene__customer--arrival {
        left: 27%;
    }

    .pizza-scene__customer--departure {
        left: 65%;
    }

    .pizza-scene__car--arrival {
        left: 10%;
    }

    .pizza-scene__car--departure {
        left: 77%;
    }
}