/* WeatherPro — Weather That Wows */

.weatherpro-widget{
    --wp-bg: rgba(255,255,255,1);
    --wp-text: rgba(33,37,41,1);
    --wp-accent: rgba(13,110,253,1);
    --wp-radius: 16px;
    display: block;
    width: fit-content;
    max-width: 100%;
}

.weatherpro-widget.wp-align-left   { margin-right: auto; }
.weatherpro-widget.wp-align-center { margin-left: auto; margin-right: auto; }
.weatherpro-widget.wp-align-right  { margin-left: auto; }

.weatherpro-widget .wp-card{
    background: var(--wp-bg);
    color: var(--wp-text);
    border-radius: var(--wp-radius);
    padding: 1.5rem 1.75rem;
    font-family: inherit;
    line-height: 1.3;
    min-width: 240px;
}

.weatherpro-widget.wp-shadow .wp-card{
    box-shadow: 0 10px 30px rgba(0,0,0,.12);
}

.weatherpro-widget.wp-blur .wp-card{
    -webkit-backdrop-filter: blur(14px) saturate(1.4);
    backdrop-filter: blur(14px) saturate(1.4);
}

/* main row */
.weatherpro-widget .wp-main{
    display: flex;
    align-items: center;
    gap: 1rem;
}

.weatherpro-widget .wp-icon{
    color: var(--wp-accent);
    flex: 0 0 auto;
    display: inline-flex;
}
.weatherpro-widget .wp-icon svg{ width: 56px; height: 56px; }

.weatherpro-widget .wp-primary{
    display: flex;
    flex-direction: column;
}

.weatherpro-widget .wp-temp{
    font-size: 2.6rem;
    font-weight: 600;
    letter-spacing: -0.02em;
}

.weatherpro-widget .wp-desc{ font-size: .95rem; opacity: .85; }
.weatherpro-widget .wp-loc{ font-size: .85rem; opacity: .6; }

/* meta row */
.weatherpro-widget .wp-meta{
    display: flex;
    gap: 1.25rem;
    margin-top: .9rem;
    font-size: .85rem;
    opacity: .75;
}

/* forecast row */
.weatherpro-widget .wp-forecast{
    display: flex;
    gap: 1.1rem;
    margin-top: 1.1rem;
    padding-top: 1rem;
    border-top: 1px solid rgba(128,128,128,.2);
}

.weatherpro-widget .wp-day{
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: .25rem;
    font-size: .8rem;
}

.weatherpro-widget .wp-day-icon{ color: var(--wp-accent); display: inline-flex; }
.weatherpro-widget .wp-day-icon svg{ width: 24px; height: 24px; }
.weatherpro-widget .wp-day-name{ opacity: .6; }
.weatherpro-widget .wp-day-temp{ font-weight: 500; }

/* attribution (CC-BY 4.0 requirement) */
.weatherpro-widget .wp-attrib{
    display: block;
    margin-top: .9rem;
    font-size: .65rem;
    opacity: .45;
    color: inherit;
    text-decoration: none;
}
.weatherpro-widget .wp-attrib:hover{ opacity: .8; text-decoration: underline; }

/* vertical layout */
.weatherpro-widget.wp-vertical .wp-main{
    flex-direction: column;
    text-align: center;
}
.weatherpro-widget.wp-vertical .wp-primary{ align-items: center; }
.weatherpro-widget.wp-vertical .wp-meta{ justify-content: center; }
.weatherpro-widget.wp-vertical .wp-forecast{ justify-content: center; }
.weatherpro-widget.wp-vertical .wp-attrib{ text-align: center; }

/* compact size */
.weatherpro-widget.wp-compact .wp-card{ padding: 1rem 1.2rem; min-width: 190px; }
.weatherpro-widget.wp-compact .wp-icon svg{ width: 40px; height: 40px; }
.weatherpro-widget.wp-compact .wp-temp{ font-size: 1.9rem; }
.weatherpro-widget.wp-compact .wp-meta{ margin-top: .6rem; gap: .9rem; font-size: .78rem; }
.weatherpro-widget.wp-compact .wp-forecast{ gap: .8rem; margin-top: .8rem; padding-top: .7rem; }

/* show/hide toggles (set as classes on the widget root) */
.weatherpro-widget.wp-hide-wind .wp-el-wind,
.weatherpro-widget.wp-hide-humidity .wp-el-humidity,
.weatherpro-widget.wp-hide-desc .wp-el-desc,
.weatherpro-widget.wp-hide-loc .wp-el-loc,
.weatherpro-widget.wp-hide-forecast .wp-el-forecast{
    display: none;
}

/* hide meta row entirely if both items hidden */
.weatherpro-widget.wp-hide-wind.wp-hide-humidity .wp-meta{ display: none; }

/* error state */
.weatherpro-widget .wp-error{ opacity: .6; font-size: .9rem; }

/* small screens */
@media (max-width: 420px){
    .weatherpro-widget{ width: 100%; }
    .weatherpro-widget .wp-forecast{ flex-wrap: wrap; }
}