/* =========================================================
   ONTM MÉTÉO DYNAMIQUE
   ========================================================= */

.ontm-meteo-widget {

    width: 100%;
    max-width: 460px;

    margin: 33px auto;

    font-family:
        -apple-system,
        BlinkMacSystemFont,
        "Segoe UI",
        Roboto,
        Arial,
        sans-serif;

}


/* =========================================================
   CARD
   ========================================================= */

.ontm-meteo-card {

    position: relative;

    overflow: hidden;

    padding: 26px;

    border-radius: 22px;

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            #075985 0%,
            #0369a1 45%,
            #0284c7 100%
        );

    box-shadow:
        0 18px 45px
        rgba(0, 0, 0, 0.16);

    transition:
        transform .3s ease,
        box-shadow .3s ease;

}


.ontm-meteo-card:hover {

    transform: translateY(-2px);

    box-shadow:
        0 22px 55px
        rgba(0, 0, 0, 0.20);

}


/* =========================================================
   HEADER
   ========================================================= */

.ontm-meteo-header {

    display: flex;

    justify-content: space-between;

    align-items: flex-start;

    gap: 15px;

}


.ontm-meteo-small {

    display: block;

    margin-bottom: 5px;

    font-size: 10px;

    font-weight: 700;

    letter-spacing: 1.6px;

    opacity: .7;

}


.ontm-meteo-city {

    margin: 0;

    color: #ffffff;

    font-size: 20px;

    font-weight: 700;

    line-height: 1.2;

}


.ontm-meteo-live {

    display: flex;

    align-items: center;

    gap: 6px;

    font-size: 9px;

    font-weight: 700;

    letter-spacing: .8px;

    opacity: .8;

}


.ontm-meteo-live span {

    width: 7px;

    height: 7px;

    border-radius: 50%;

    background: #4ade80;

    box-shadow:
        0 0 0 4px
        rgba(74, 222, 128, .15);

}


/* =========================================================
   LOADING
   ========================================================= */

.ontm-meteo-loading {

    padding: 35px 0;

    text-align: center;

    font-size: 13px;

    opacity: .75;

    animation:
        ontm-pulse
        1.2s
        infinite;

}


@keyframes ontm-pulse {

    0% {
        opacity: .4;
    }

    50% {
        opacity: 1;
    }

    100% {
        opacity: .4;
    }

}


/* =========================================================
   WEATHER
   ========================================================= */

.ontm-meteo-weather {

    display: flex;

    align-items: center;

    gap: 20px;

    padding: 10px 0 15px;

}


.ontm-meteo-icon {

    display: flex;

    align-items: center;

    justify-content: center;

    width: 76px;

    height: 76px;

    flex-shrink: 0;

    border-radius: 20px;

    background:
        rgba(255, 255, 255, .13);

    font-size: 43px;

}


.ontm-meteo-temp {

    font-size: 60px;

    font-weight: 700;

    line-height: 1;

}


.ontm-meteo-temp sup {

    position: relative;

    top: -28px;

    font-size: 23px;

    font-weight: 400;

    letter-spacing: 0;

}


.ontm-meteo-description {

    margin-top: 7px;

    font-size: 14px;

    opacity: .82;

}


/* =========================================================
   TEMPERATURE RESSENTIE
   ========================================================= */

.ontm-meteo-feels {

    display: flex;

    align-items: center;

    justify-content: space-between;

    padding: 10px 15px;

    border-radius: 14px;

    background:
        rgba(255, 255, 255, .12);

    font-size: 13px;

}


.ontm-meteo-feels strong {

    font-size: 17px;

}


/* =========================================================
   FOOTER
   ========================================================= */

.ontm-meteo-footer {

    display: flex;

    justify-content: space-between;

    gap: 10px;

    margin-top: 15px;

    font-size: 10px;

    opacity: .58;

}


/* =========================================================
   ERROR
   ========================================================= */

.ontm-meteo-error {

    margin-top: 15px;

    padding: 12px;

    border-radius: 10px;

    background:
        rgba(127, 29, 29, .35);

    color: #fee2e2;

    font-size: 12px;

}


/* =========================================================
   ANIMATION UPDATE
   ========================================================= */

.ontm-meteo-widget.ontm-updated
.ontm-meteo-temp {

    animation:
        ontm-temperature-update
        .7s
        ease;

}


@keyframes ontm-temperature-update {

    0% {
        opacity: .35;
        transform: translateY(5px);
    }

    100% {
        opacity: 1;
        transform: translateY(0);
    }

}


/* =========================================================
   MOBILE
   ========================================================= */

@media (max-width: 600px) {

    .ontm-meteo-card {

        padding: 20px;

        border-radius: 18px;

    }


    .ontm-meteo-city {

        font-size: 20px;

    }


    .ontm-meteo-live {

        display: none;

    }


    .ontm-meteo-weather {

        gap: 15px;

        padding: 25px 0 20px;

    }


    .ontm-meteo-icon {

        width: 60px;

        height: 60px;

        font-size: 34px;

        border-radius: 16px;

    }


    .ontm-meteo-temp {

        font-size: 52px;

    }


    .ontm-meteo-temp sup {

        top: -20px;

        font-size: 19px;

    }


    .ontm-meteo-footer {

        flex-direction: column;

    }

}