.page-title{font-size:18px;line-height:1.4;margin:0 0 14px;color:#244535;font-weight:700}
.hero{box-shadow:0 16px 34px #294c3830;transition:box-shadow .5s ease}
.hero:hover{box-shadow:0 22px 46px #294c3842}
.hero-photo{animation:sky-drift 28s ease-in-out infinite alternate}
.hero-shade{animation:light-shift 18s ease-in-out infinite alternate}
.temperature,.condition-line,.weather-advice{animation:rise-in .75s both}.condition-line{animation-delay:.12s}.weather-advice{animation-delay:.22s}
.hour-item{animation:rise-in .5s ease both;transition:background .25s,transform .25s}
.hour-item:hover{background:#e6efe4;transform:translateY(-4px)}
.hour-item:nth-child(2){animation-delay:.04s}.hour-item:nth-child(3){animation-delay:.08s}.hour-item:nth-child(4){animation-delay:.12s}.hour-item:nth-child(5){animation-delay:.16s}.hour-item:nth-child(6){animation-delay:.2s}.hour-item:nth-child(7){animation-delay:.24s}.hour-item:nth-child(8){animation-delay:.28s}.hour-item:nth-child(9){animation-delay:.32s}.hour-item:nth-child(10){animation-delay:.36s}.hour-item:nth-child(11){animation-delay:.4s}.hour-item:nth-child(12){animation-delay:.44s}
.hour-icon svg{transition:transform .35s}.hour-item:hover .hour-icon svg{transform:translateY(-4px) rotate(-8deg)}
.day-row{transition:background .25s,padding .25s}.day-row:hover{padding-left:18px;padding-right:18px}
.temp-range span{animation:range-grow .9s cubic-bezier(.2,.8,.2,1) both;transform-origin:left center}
.detail-item{transition:background .3s}.detail-item:hover{background:#e9f1e8}
.comfort-meter span{animation:meter-pulse 3s ease-in-out infinite alternate}
.compass svg{transition:transform .9s cubic-bezier(.2,.8,.2,1);filter:drop-shadow(0 2px 3px #4c735a44)}
.uv-meter span{transition:left .9s cubic-bezier(.2,.8,.2,1)}
.sun-track span{transition:left .9s ease,top .9s ease;animation:sun-glow 3s ease-in-out infinite alternate}
.editorial-section{padding-bottom:48px}.editorial-copy{display:grid;grid-template-columns:repeat(3,1fr);gap:25px;border-top:1px solid #cbd8cd;padding-top:22px}.editorial-copy p{font-size:13px;line-height:1.9;color:#596f60;margin:0}.editorial-days{display:grid;grid-template-columns:repeat(2,1fr);gap:0 30px;margin-top:26px}.editorial-days p{border-bottom:1px solid #d6e0d8;padding:12px 0;margin:0;font-size:12px;line-height:1.7;color:#627667}.editorial-days strong{color:#344c3a;margin-right:10px}.city-links{padding:28px 0 58px;border-top:1px solid #cbd7ce}.city-links h2{font-size:17px;margin:0 0 18px}.city-links div{display:flex;gap:12px;flex-wrap:wrap}.city-links a{font-size:12px;color:#3e6850;background:#f5f8f4;border:1px solid #d5e0d6;padding:9px 13px;border-radius:4px;text-decoration:none;transition:background .2s,transform .2s}.city-links a:hover{background:#deebdf;transform:translateY(-2px)}
@keyframes sky-drift{from{transform:scale(1.02) translateX(-1%)}to{transform:scale(1.11) translateX(1%)}}
@keyframes light-shift{from{opacity:1}to{opacity:.81}}
@keyframes rise-in{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes range-grow{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@keyframes meter-pulse{from{filter:brightness(1)}to{filter:brightness(1.2)}}
@keyframes sun-glow{from{box-shadow:0 0 0 3px #efc77830}to{box-shadow:0 0 0 8px #efc77820}}
@media(max-width:680px){.editorial-copy,.editorial-days{grid-template-columns:1fr}.editorial-copy{gap:15px}.editorial-days{margin-top:18px}.day-row:hover{padding-left:3px;padding-right:3px}}
@media(prefers-reduced-motion:reduce){.hero-photo,.hero-shade,.temperature,.condition-line,.weather-advice,.hour-item,.temp-range span,.comfort-meter span,.sun-track span{animation:none!important}.day-row,.hour-item,.detail-item,.city-links a{transition:none!important}}
