.forecast-page{max-width:1450px}.forecast-search-card{position:relative;margin-bottom:22px}.forecast-search-label{display:block;font-weight:800;color:#163453;margin-bottom:10px}.forecast-search-wrap{display:flex;align-items:center;gap:10px;border:1px solid #cbd9e6;border-radius:16px;background:#fff;padding:7px 8px 7px 15px;box-shadow:0 8px 28px rgba(7,35,66,.07)}.forecast-search-wrap:focus-within{border-color:#4084b9;box-shadow:0 0 0 4px rgba(64,132,185,.13)}.forecast-search-icon{font-size:27px;color:#52718d;line-height:1}.forecast-search-input{flex:1;min-width:0;border:0;outline:0;background:transparent;font:inherit;font-size:17px;padding:11px 2px;color:#102d48}.forecast-geo-button{border:0;border-radius:12px;background:#e8f2f9;color:#17476b;padding:11px 14px;font-weight:800;cursor:pointer;white-space:nowrap}.forecast-geo-button:hover{background:#d8eaf6}.forecast-geo-button:disabled{opacity:.6;cursor:wait}.forecast-search-results{position:absolute;z-index:30;top:104px;left:24px;right:24px;max-height:360px;overflow:auto;background:#fff;border:1px solid #d4e0ea;border-radius:15px;box-shadow:0 18px 45px rgba(7,35,66,.18);padding:7px}.forecast-result{display:flex;width:100%;align-items:center;justify-content:space-between;gap:15px;border:0;background:#fff;border-radius:10px;padding:12px 13px;text-align:left;cursor:pointer;color:#183b59}.forecast-result:hover,.forecast-result:focus{background:#edf6fc;outline:0}.forecast-result strong{font-size:15px}.forecast-result span{font-size:12px;color:#6d8294}.forecast-search-status{min-height:20px;margin:7px 3px 0;color:#678096;font-size:13px}.forecast-quick{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}.forecast-quick-button{border:1px solid #cfdeea;background:#f7fbfe;color:#265473;border-radius:999px;padding:7px 11px;cursor:pointer;font-weight:700;font-size:13px}.forecast-quick-button:hover{background:#e8f3fa}.forecast-main-card{overflow:hidden}.forecast-heading-row{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.forecast-kicker,.forecast-section-kicker{margin:0 0 4px;text-transform:uppercase;letter-spacing:.1em;font-size:11px;font-weight:900;color:#4b799b}.forecast-heading-row h2{margin:0;font-size:clamp(25px,4vw,37px);color:#0c3150}.forecast-updated{font-size:13px;color:#6a8294;padding-top:8px;white-space:nowrap}.forecast-loading{padding:40px 15px;text-align:center;color:#526d82;font-weight:700}.forecast-error{padding:18px;background:#fff4d6;border-radius:14px;color:#6f4b00}.forecast-overview{display:flex;align-items:center;justify-content:space-between;gap:28px;padding:20px 24px;margin:8px 0 30px;border-radius:20px;background:linear-gradient(125deg,#e9f5fc,#f8fbfd);border:1px solid #d5e8f3}.forecast-overview-main{display:flex;align-items:center;gap:18px}.forecast-overview-icon{width:94px;height:90px;display:flex;align-items:center;justify-content:center}.forecast-overview-label{margin:0;color:#55758c;font-size:13px;font-weight:800}.forecast-overview-temp{font-size:50px;line-height:1;font-weight:900;color:#103652}.forecast-overview-range{margin:6px 0 0;color:#4f6f85;font-weight:700}.forecast-overview-metrics{display:grid;grid-template-columns:repeat(5,minmax(115px,1fr));gap:10px;flex:1;max-width:650px}.forecast-overview-metrics div{padding:12px 14px;border-radius:14px;background:rgba(255,255,255,.72);border:1px solid rgba(199,220,233,.8)}.forecast-overview-metrics span{display:block;font-size:11px;color:#718798;margin-bottom:3px}.forecast-overview-metrics strong{font-size:16px;color:#173e5b}.forecast-section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin:4px 0 13px}.forecast-section-title{font-size:20px;margin:0;color:#173a57}.forecast-scroll-hint{font-size:12px;color:#7890a1}.hourly-forecast{display:flex;flex-direction:column;gap:20px}.hour-day-row{border:1px solid #d4e2ec;border-radius:18px;background:#fff;overflow:hidden;box-shadow:0 7px 22px rgba(7,35,66,.055)}.hour-day-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 17px;background:#eaf3f8;border-bottom:1px solid #d7e4ed}.hour-day-heading h4{margin:0;text-transform:capitalize;font-size:17px;color:#153d5a}.hour-day-heading span{font-size:11px;color:#668094}.hour-day-scroll{display:flex;align-items:stretch;gap:0;overflow-x:auto;padding:0;scroll-snap-type:x proximity;-webkit-overflow-scrolling:touch}.hour-card{flex:0 0 126px;scroll-snap-align:start;background:#fff;border-right:1px solid #e2ebf1;padding:14px 10px 15px;text-align:center}.hour-card:last-child{border-right:0}.hour-card:hover{background:#f6fafc}.hour-time{font-weight:900;color:#234c69;font-size:14px}.hour-icon{height:58px;display:flex;align-items:center;justify-content:center;margin:4px 0}.hour-temp{font-size:26px;font-weight:900;color:#102f49;margin-bottom:8px}.hour-stat{padding:5px 0;border-top:1px solid #edf2f5;line-height:1.25}.hour-stat span{display:block;font-size:9px;text-transform:uppercase;letter-spacing:.06em;color:#8798a4}.hour-stat strong{font-size:11px;color:#4e687a}.hour-gust strong{color:#92563e}.forecast-days-title{margin-top:34px}.forecast-grid{display:grid;grid-template-columns:repeat(6,minmax(135px,1fr));gap:12px}.forecast-day{background:#fff;border:1px solid #dce7ef;border-radius:17px;padding:15px 12px;text-align:center;box-shadow:0 7px 20px rgba(7,35,66,.06)}.forecast-day h4{min-height:39px;margin:0;text-transform:capitalize;font-size:14px;color:#284c66}.forecast-symbol{height:62px;display:flex;align-items:center;justify-content:center;margin:5px 0}.forecast-temperature{display:flex;justify-content:center;gap:8px;align-items:baseline;font-size:18px}.forecast-temperature span{color:#5f7788}.forecast-temperature strong{font-size:23px;color:#153a56}.forecast-values{display:grid;grid-template-columns:1fr 1fr;gap:4px 8px;margin-top:9px;font-size:10px;color:#5b7385;text-align:left}.forecast-values span{white-space:nowrap}.source-note{margin-top:22px}.forecast-no-trend{grid-column:1/-1;margin:0;padding:18px;border-radius:14px;background:#f5f9fc;color:#60798d;text-align:center}.weather-svg{display:block;width:52px;height:52px;overflow:visible}.weather-svg--hero{width:90px;height:90px}.weather-svg--hourly{width:54px;height:54px}.weather-svg--daily{width:60px;height:60px}.wx-sun{fill:#f7b928}.wx-rays{fill:none;stroke:#f7b928;stroke-width:3.2;stroke-linecap:round}.wx-moon{fill:#f1d273;stroke:#d6ad38;stroke-width:1}.wx-cloud{fill:#b9c7d1;stroke:#8fa2b0;stroke-width:1}.wx-cloud-small{transform:translate(3px,2px) scale(.88);transform-origin:center}.wx-rain{fill:none;stroke:#338fc5;stroke-width:3;stroke-linecap:round}.wx-snow{fill:none;stroke:#70b7da;stroke-width:2;stroke-linecap:round}.wx-bolt{fill:#f1b51d;stroke:#ce8a00;stroke-width:.8}.wx-fog{fill:none;stroke:#9aaab4;stroke-width:4;stroke-linecap:round}
@media(max-width:1150px){.forecast-overview{align-items:flex-start}.forecast-overview-metrics{grid-template-columns:repeat(3,minmax(120px,1fr))}}
@media(max-width:1050px){.forecast-grid{grid-template-columns:repeat(3,minmax(135px,1fr))}.forecast-overview{display:block}.forecast-overview-metrics{max-width:none;margin-top:14px}}
@media(max-width:700px){.forecast-search-card{padding:16px}.forecast-search-wrap{display:grid;grid-template-columns:auto 1fr;padding:6px 10px}.forecast-search-icon{grid-row:1}.forecast-search-input{grid-column:2;padding:10px 0;font-size:16px}.forecast-geo-button{grid-column:1/3;width:100%}.forecast-search-results{top:126px;left:16px;right:16px}.forecast-result{align-items:flex-start;flex-direction:column;gap:2px}.forecast-quick{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.forecast-quick-button{flex:0 0 auto}.forecast-heading-row{display:block}.forecast-updated{padding-top:5px}.forecast-overview{display:block;padding:17px}.forecast-overview-main{justify-content:center}.forecast-overview-metrics{grid-template-columns:repeat(2,1fr);margin-top:14px}.forecast-overview-metrics div{padding:9px 6px;text-align:center}.forecast-overview-metrics strong{font-size:13px}.forecast-section-heading{align-items:flex-start}.forecast-scroll-hint{display:none}.forecast-grid{display:flex;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x proximity}.forecast-day{flex:0 0 145px;scroll-snap-align:start}.hour-card{flex-basis:116px}.hour-day-heading{padding:10px 12px}.hour-day-heading h4{font-size:15px}.hour-day-heading span{display:none}}
@media(max-width:440px){.forecast-overview-main{gap:8px}.forecast-overview-icon{width:76px}.weather-svg--hero{width:74px;height:74px}.forecast-overview-temp{font-size:43px}.forecast-overview-metrics{grid-template-columns:1fr}.forecast-overview-metrics div{display:flex;align-items:center;justify-content:space-between;text-align:left}.forecast-overview-metrics span{margin:0}.forecast-overview-metrics strong{font-size:14px}}

/* Sprint 8.2 — lecture du vent et tendance barométrique */
.wind-badge{display:inline-flex;align-items:center;justify-content:center;min-height:22px;padding:3px 7px;border-radius:999px;font-weight:850;line-height:1.1;white-space:nowrap;border:1px solid transparent}.wind-level--light{color:#536875;background:#edf1f4;border-color:#dbe2e7}.wind-level--moderate{color:#247044;background:#e7f5ec;border-color:#c9e8d5}.wind-level--sustained{color:#98510c;background:#fff0dc;border-color:#f4d1a5}.wind-level--strong{color:#a52525;background:#fde8e8;border-color:#f2bcbc}.wind-level--unknown{color:#748591;background:#f1f4f6;border-color:#e0e6ea}.pressure-trend{display:inline-block;margin-left:3px;font-size:14px;font-weight:950;vertical-align:baseline}.pressure-trend--up{color:#b16a12}.pressure-trend--down{color:#3278a6}.pressure-trend--stable{color:#72818b}.forecast-overview-metrics .wind-badge{font-size:13px}.hour-stat .wind-badge{font-size:10px;min-height:19px;padding:2px 5px}.forecast-values .wind-badge{font-size:9px;min-height:18px;padding:2px 5px}.forecast-values span{display:flex;align-items:center;gap:3px}

/* Sprint 8.2.1 — flèche de direction du vent */
.wind-badge{gap:5px}
.wind-arrow{display:inline-block;width:15px;height:15px;flex:0 0 15px;overflow:visible;transform-origin:50% 50%;transition:transform .2s ease;color:currentColor}
.wind-arrow path{fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.wind-direction{display:inline-flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;color:#274e69}
.wind-direction .wind-arrow{width:19px;height:19px;flex-basis:19px}
.hour-stat .wind-arrow{width:13px;height:13px;flex-basis:13px}
.forecast-values .wind-arrow{width:12px;height:12px;flex-basis:12px}

/* Affichage des publicités selon la largeur de l'écran */

.ads-desktop{
    display:block !important;
}

.ads-mobile{
    display:none !important;
}

@media screen and (max-width:768px){

    .ads-desktop{
        display:none !important;
    }

    .ads-mobile{
        display:block !important;
    }
}

/* ===== Footer ===== */

.site-footer h2,
.site-footer p{
    color:#fff;
}

/* Les boutons du footer utilisent le même style que la page d'accueil */
.site-footer .social-links{
    justify-content:center;
}

.site-footer .social-button{
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.32);
    color:#fff;
}

.site-footer .social-button:hover{
    background:rgba(255,255,255,.20);
}