:root{--meteo-accent:#ba1d41;--meteo-blue:#1e3a5f;--meteo-blue-light:#2d6cb5;--meteo-card-bg:#fff;--meteo-card-border:#e0e0e0;--meteo-text:#1d2327;--meteo-text-muted:#646970;--meteo-radius:12px;--meteo-temp-hot:#e74c3c;--meteo-temp-cold:#3498db;--meteo-rain:#5dade2;--meteo-wind:#27ae60;--meteo-uv:#f39c12;--meteo-snow:#85c1e9}.meteo-page{max-width:1200px;margin:0 auto;padding:0 16px 60px;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif}.meteo-hero{background:linear-gradient(135deg,#1a1a2e 0%,#16213e 40%,#0f3460 100%);border-radius:0 0 var(--meteo-radius) var(--meteo-radius);color:#fff;padding:32px 24px 28px;margin:0 -16px 28px;position:relative;overflow:hidden}.meteo-hero::before{content:'';position:absolute;top:-60px;right:-40px;width:200px;height:200px;background:radial-gradient(circle,rgba(255,255,255,.06) 0%,transparent 70%);border-radius:50%}.meteo-hero__inner{max-width:1200px;margin:0 auto}.meteo-hero__loading{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 0;color:rgba(255,255,255,.7);font-size:14px}.meteo-spinner{width:36px;height:36px;border:3px solid rgba(255,255,255,.2);border-top-color:#fff;border-radius:50%;animation:meteo-spin .8s linear infinite}@keyframes meteo-spin{to{transform:rotate(360deg)}}.meteo-hero__content{animation:meteo-fadeIn .5s ease}@keyframes meteo-fadeIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.meteo-hero__main{display:flex;align-items:center;gap:24px;margin-bottom:24px}.meteo-hero__icon{flex-shrink:0}.meteo-hero__icon svg{width:100px;height:100px;filter:drop-shadow(0 4px 12px rgba(0,0,0,.3))}.meteo-hero__city{font-size:16px;font-weight:500;color:rgba(255,255,255,.7);margin:0 0 4px;text-transform:uppercase;letter-spacing:1px}.meteo-hero__temp{font-size:64px;font-weight:700;line-height:1;margin-bottom:6px}.meteo-hero__desc{font-size:18px;font-weight:500;margin-bottom:4px}.meteo-hero__feels{font-size:14px;color:rgba(255,255,255,.65)}.meteo-hero__stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(110px,1fr));gap:12px}.meteo-hero-stat{background:rgba(255,255,255,.08);backdrop-filter:blur(6px);border-radius:10px;padding:12px 14px;text-align:center;border:1px solid rgba(255,255,255,.08)}.meteo-hero-stat__icon{font-size:20px;margin-bottom:4px}.meteo-hero-stat__value{font-size:18px;font-weight:700;display:block}.meteo-hero-stat__label{font-size:11px;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:.5px}.meteo-hero__updated{text-align:center;font-size:11px;color:rgba(255,255,255,.4);margin-top:16px}.meteo-section{margin-bottom:32px}.meteo-section__inner{max-width:1200px;margin:0 auto}.meteo-section__header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.meteo-section__title{display:flex;align-items:center;gap:8px;font-size:20px;font-weight:700;color:var(--meteo-text);margin:0 0 16px}.meteo-section__header .meteo-section__title{margin-bottom:0}.meteo-section__title svg{color:var(--meteo-accent);flex-shrink:0}.meteo-voir-tout{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:600;color:var(--meteo-accent);text-decoration:none;transition:gap .2s}.meteo-voir-tout:hover{gap:10px}.meteo-map-controls{display:flex;gap:8px;flex-wrap:wrap}.meteo-map-btn{padding:6px 14px;border:1px solid var(--meteo-card-border);border-radius:20px;background:var(--meteo-card-bg);font-size:12px;font-weight:600;color:var(--meteo-text-muted);cursor:pointer;transition:all .2s}.meteo-map-btn:hover{border-color:var(--meteo-blue-light);color:var(--meteo-blue-light)}.meteo-map-btn.active{background:var(--meteo-blue);color:#fff;border-color:var(--meteo-blue)}.meteo-map-wrap{margin-top:14px;border-radius:var(--meteo-radius);overflow:hidden;border:1px solid var(--meteo-card-border);position:relative;background:#e8edf2}.meteo-map-wrap iframe{display:block;width:100%;height:420px;border:none}.meteo-map-blocked{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:#f5f5f5;padding:24px;text-align:center;color:var(--meteo-text-muted);font-size:14px}.meteo-hourly-scroll{display:flex;gap:8px;overflow-x:auto;padding-bottom:8px;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch}.meteo-hourly-scroll::-webkit-scrollbar{height:6px}.meteo-hourly-scroll::-webkit-scrollbar-track{background:#f0f0f0;border-radius:3px}.meteo-hourly-scroll::-webkit-scrollbar-thumb{background:#c0c0c0;border-radius:3px}.meteo-hourly-placeholder{color:var(--meteo-text-muted);font-size:14px;padding:30px;text-align:center;width:100%}.meteo-hour-card{flex:0 0 80px;scroll-snap-align:start;background:var(--meteo-card-bg);border:1px solid var(--meteo-card-border);border-radius:10px;padding:12px 8px;text-align:center;transition:transform .2s,box-shadow .2s;cursor:default}.meteo-hour-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(0,0,0,.08)}.meteo-hour-card--now{background:var(--meteo-blue);color:#fff;border-color:var(--meteo-blue)}.meteo-hour-card--now .meteo-hour-card__precip,.meteo-hour-card--now .meteo-hour-card__wind{color:rgba(255,255,255,.7)}.meteo-hour-card--day-sep{flex:0 0 auto;padding:12px 16px;background:#f8f9fa;border:none;font-weight:700;font-size:12px;color:var(--meteo-accent);text-transform:uppercase;letter-spacing:.5px;display:flex;align-items:center;justify-content:center;writing-mode:vertical-rl;text-orientation:mixed;border-radius:10px}.meteo-hour-card__time{font-size:12px;font-weight:600;margin-bottom:6px}.meteo-hour-card__icon svg{width:32px;height:32px}.meteo-hour-card__temp{font-size:16px;font-weight:700;margin:4px 0}.meteo-hour-card__precip{font-size:10px;color:var(--meteo-rain);font-weight:600}.meteo-hour-card__wind{font-size:10px;color:var(--meteo-text-muted);margin-top:2px}.meteo-daily-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.meteo-day-card{background:var(--meteo-card-bg);border:1px solid var(--meteo-card-border);border-radius:var(--meteo-radius);padding:16px;text-align:center;transition:transform .2s,box-shadow .2s}.meteo-day-card:hover{transform:translateY(-3px);box-shadow:0 6px 16px rgba(0,0,0,.08)}.meteo-day-card--today{border-color:var(--meteo-blue-light);border-width:2px;background:linear-gradient(145deg,#f0f7ff,#fff)}.meteo-day-card__name{font-size:13px;font-weight:700;text-transform:capitalize;margin-bottom:2px;color:var(--meteo-text)}.meteo-day-card__date{font-size:11px;color:var(--meteo-text-muted);margin-bottom:10px}.meteo-day-card__icon svg{width:48px;height:48px}.meteo-day-card__temps{display:flex;justify-content:center;gap:10px;margin:10px 0 8px;font-weight:700}.meteo-day-card__high{color:var(--meteo-temp-hot);font-size:18px}.meteo-day-card__low{color:var(--meteo-temp-cold);font-size:18px}.meteo-day-card__temp-bar{height:4px;border-radius:2px;background:linear-gradient(90deg,var(--meteo-temp-cold),var(--meteo-temp-hot));margin:0 10px 10px;opacity:.5}.meteo-day-card__details{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;font-size:11px;color:var(--meteo-text-muted)}.meteo-day-card__detail{display:inline-flex;align-items:center;gap:3px}.meteo-day-card__detail--rain{color:var(--meteo-rain)}.meteo-day-card__detail--wind{color:var(--meteo-wind)}.meteo-details-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:16px}.meteo-detail-card{background:var(--meteo-card-bg);border:1px solid var(--meteo-card-border);border-radius:var(--meteo-radius);padding:20px;transition:box-shadow .2s}.meteo-detail-card:hover{box-shadow:0 4px 16px rgba(0,0,0,.06)}.meteo-detail-card__header{display:flex;align-items:center;gap:10px;margin-bottom:14px}.meteo-detail-card__icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.meteo-detail-card__icon--wind{background:#e6f9e6}.meteo-detail-card__icon--rain{background:#e0f0ff}.meteo-detail-card__icon--sun{background:#fff7e0}.meteo-detail-card__icon--uv{background:#fff3e0}.meteo-detail-card__icon--atmo{background:#f3e8fd}.meteo-detail-card__icon--air{background:#e0f7f7}.meteo-detail-card__title{font-size:14px;font-weight:700;color:var(--meteo-text)}.meteo-detail-card__rows{display:flex;flex-direction:column;gap:8px}.meteo-detail-row{display:flex;justify-content:space-between;align-items:center;font-size:13px}.meteo-detail-row__label{color:var(--meteo-text-muted)}.meteo-detail-row__value{font-weight:600;color:var(--meteo-text)}.meteo-compass{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;background:#f5f5f5;border-radius:50%;position:relative}.meteo-compass__arrow{transition:transform .4s ease}.meteo-uv-bar{height:8px;border-radius:4px;background:linear-gradient(90deg,#4caf50,#ffeb3b,#ff9800,#f44336,#9c27b0);position:relative;margin-top:6px}.meteo-uv-bar__marker{position:absolute;top:-3px;width:14px;height:14px;background:#fff;border:2px solid #333;border-radius:50%;transform:translateX(-50%);transition:left .4s ease}.meteo-aqi-bar{height:8px;border-radius:4px;background:linear-gradient(90deg,#4caf50,#8bc34a,#ffeb3b,#ff9800,#f44336,#9c27b0);position:relative;margin-top:6px}.meteo-aqi-bar__marker{position:absolute;top:-3px;width:14px;height:14px;background:#fff;border:2px solid #333;border-radius:50%;transform:translateX(-50%);transition:left .4s ease}.meteo-aqi-label{display:inline-block;padding:2px 10px;border-radius:12px;font-size:12px;font-weight:700;color:#fff}.meteo-aqi-label--bon{background:#4caf50}.meteo-aqi-label--correct{background:#8bc34a}.meteo-aqi-label--moyen{background:#ff9800}.meteo-aqi-label--mauvais{background:#f44336}.meteo-aqi-label--tres-mauvais{background:#9c27b0}.meteo-aqi-label--danger{background:#7b1fa2}.meteo-articles-section{padding-top:16px;border-top:1px solid #eaeaea}.meteo-articles-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.meteo-article-card{background:var(--meteo-card-bg);border:1px solid var(--meteo-card-border);border-radius:var(--meteo-radius);overflow:hidden;transition:transform .2s,box-shadow .2s}.meteo-article-card:hover{transform:translateY(-3px);box-shadow:0 6px 20px rgba(0,0,0,.08)}.meteo-article-card__link{text-decoration:none;color:inherit;display:block}.meteo-article-card__feat{aspect-ratio:16/9;overflow:hidden;background:#f0f0f0}.meteo-article-card__img{width:100%;height:100%;object-fit:cover;transition:transform .3s}.meteo-article-card:hover .meteo-article-card__img{transform:scale(1.05)}.meteo-article-card__img--placeholder{display:flex;align-items:center;justify-content:center;color:#ccc}.meteo-article-card__body{padding:14px 16px 16px}.meteo-article-card__title{font-size:15px;font-weight:700;line-height:1.35;margin:0 0 6px;color:var(--meteo-text);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meteo-article-card__excerpt{font-size:13px;color:var(--meteo-text-muted);line-height:1.45;margin:0 0 8px;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.meteo-article-card__time{font-size:11px;color:#999}@media (max-width:600px){.meteo-hero{padding:20px 16px}.meteo-hero__main{flex-direction:column;text-align:center;gap:12px}.meteo-hero__icon svg{width:80px;height:80px}.meteo-hero__temp{font-size:48px}.meteo-hero__stats{grid-template-columns:repeat(2,1fr)}.meteo-map-wrap iframe{height:300px}.meteo-daily-grid{grid-template-columns:repeat(auto-fill,minmax(130px,1fr))}.meteo-details-grid{grid-template-columns:1fr}.meteo-articles-grid{grid-template-columns:1fr}.meteo-map-controls{gap:6px}.meteo-map-btn{font-size:11px;padding:5px 10px}}@media (min-width:601px) and (max-width:900px){.meteo-hero__stats{grid-template-columns:repeat(3,1fr)}.meteo-daily-grid{grid-template-columns:repeat(auto-fill,minmax(140px,1fr))}}@media (min-width:901px){.meteo-hero{padding:40px 48px 36px;margin:0 -16px 36px}.meteo-hero__icon svg{width:120px;height:120px}.meteo-hero__temp{font-size:72px}.meteo-hero__stats{grid-template-columns:repeat(5,1fr)}.meteo-map-wrap iframe{height:500px}}@keyframes meteo-sun-rotate{from{transform:rotate(0deg)}to{transform:rotate(360deg)}}.meteo-hero__icon .sun-rays{animation:meteo-sun-rotate 20s linear infinite;transform-origin:center}