/* Home forecast: 7-day strip and map of Spain. Mobile first; same palette and type as the rest of the site. */
.observatory-home .home-weather{display:grid;gap:14px;min-width:0;width:100%}
.week-panel,.weather-map{background:#fffefa;border:1px solid #dfe2d7;border-radius:18px;box-shadow:0 8px 20px -14px #273d2e2b}
.week-panel{padding:6px 0 8px;position:relative;min-width:0}
.week-head{padding:0 124px 0 14px;min-height:38px;display:flex;align-items:center}
.week-head h2{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.week-head h2,.map-head h2{font-size:17px;line-height:1.25;letter-spacing:-.4px;font-weight:560;margin:0;color:var(--ink)}
.week-head h2 a{color:#984629;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.week-scroll{display:flex;gap:6px;list-style:none;margin:0;padding:2px 14px 4px;overflow-x:auto;scroll-snap-type:x proximity;scroll-padding:14px;-webkit-overflow-scrolling:touch;scrollbar-width:none}
.week-scroll::-webkit-scrollbar{display:none}
.week-scroll li{flex:0 0 74px;scroll-snap-align:start}
.week-day{display:grid;justify-items:center;gap:2px;padding:9px 4px 8px;min-height:44px;border-radius:13px;background:#f4f4ec;color:var(--ink);text-decoration:none}
.week-day.is-today{background:#40513e;color:#faf9f5}
.week-day.is-today .week-min,.week-day.is-today .week-rain{color:#dfe5d6}
.week-day.is-today .weather-icon{color:#f6d9a2}
.week-name{font-size:12px;font-weight:600;white-space:nowrap}
.week-day .weather-icon{display:flex;height:28px;align-items:center}
.week-day .weather-icon svg{width:26px;height:26px}
.week-max{font-size:19px;line-height:1.1;font-weight:600;letter-spacing:-.4px}
.week-min{font-size:13px;color:#5d6b57;line-height:1.2}
.week-rain{display:inline-flex;align-items:center;gap:2px;font-size:11px;color:#3f6480;line-height:1.3}
.week-empty{padding:0 14px 6px;margin:0;font-size:13px;color:#5d6b57}
.week-locate[hidden]{display:none}
.week-locate{position:absolute;top:3px;right:8px;justify-content:center;min-width:44px;display:inline-flex;align-items:center;gap:4px;min-height:44px;padding:0 6px;border:0;background:none;color:#984629;font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}
.week-locate[aria-disabled="true"]{opacity:.6;cursor:progress}
.is-locating .week-scroll{opacity:.55;transition:opacity .2s}
/* Over the strip, so that a message never moves the map below. */
.week-status{position:absolute;left:10px;right:10px;bottom:10px;margin:0;padding:7px 10px;pointer-events:none;border-radius:10px;background:#292e29;color:#faf9f5;font-size:12px;line-height:1.4}
/* Stays rendered when empty: live regions must exist before their text arrives. */
.week-status:empty{padding:0;opacity:0}
.weather-map{padding:12px 10px 11px;min-width:0}
.map-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;padding:0 4px 4px}
.map-head p{margin:1px 0 0;font-size:11.5px;line-height:1.35;color:#5d6b57}
.map-head p:first-letter{text-transform:uppercase}
.map-days{display:flex;flex:none;gap:2px;padding:2px;border-radius:12px;background:#eeefe7}
.map-days button{min-height:44px;min-width:62px;padding:0 8px;border:0;border-radius:10px;background:transparent;color:#40513e;font:inherit;font-size:12px;font-weight:600;cursor:pointer}
.map-days button[aria-pressed="true"]{background:#40513e;color:#faf9f5}
.map-canvas{position:relative;width:100%}
.map-canvas>svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.map-land{fill:#e3e8d8;stroke:#b8c4a6;stroke-width:.8;stroke-linejoin:round}
.map-neighbour{fill:#f2f2ea;stroke:#dfe2d7;stroke-width:.6}
.map-inset{fill:none;stroke:#cfd5c4;stroke-width:.8;stroke-dasharray:2 3}
.map-pins{position:absolute;inset:0;list-style:none;margin:0;padding:0}
.map-pin{position:absolute;transform:translate(-50%,-50%)}
.map-pin a{display:flex;flex-direction:column;align-items:center;min-width:46px;padding:2px 3px 1px;border-radius:9px;background:#fffefae6;color:var(--ink);text-decoration:none;box-shadow:0 1px 3px #273d2e29;line-height:1}
.map-value{display:inline-flex;align-items:center;gap:2px}
.map-value b{font-size:14px;font-weight:650;letter-spacing:-.3px}
.map-value .weather-icon{display:flex;position:static}
.map-value .weather-icon svg{width:17px;height:17px}
.map-pin small{font-size:10.5px;line-height:1.2;color:#4d5a47;white-space:nowrap;margin-top:1px}
[data-active-day="0"] [data-day="1"],[data-active-day="1"] [data-day="0"]{display:none}
.map-summary{margin:8px 4px 0;font-size:13px;line-height:1.5;color:#40513e}
.map-note{margin:5px 4px 0;font-size:11px;line-height:1.45;color:#5d6b57}
.map-note a{color:inherit;text-decoration:underline}
.week-day:focus-visible,.map-pin a:focus-visible,.map-days button:focus-visible,.week-locate:focus-visible,.week-scroll:focus-visible{outline:2px solid #984629;outline-offset:2px}
.studio-band{padding:18px 0 8px}
.observatory-home .studio-band .sky-studio{max-width:640px;margin:0 auto}

@media(max-width:700px){
 .observatory-home .atelier-hero{padding-top:6px;padding-bottom:18px}
 /* observatory.css sorts these for the old hero; the DOM order is now the right one. */
 .observatory-home .atelier-hero h1,.observatory-home .atelier-eyebrow,.observatory-home .atelier-lead,.observatory-home .hero-search-group,.observatory-home .atelier-popular{order:0}
 .observatory-home .atelier-eyebrow{display:none}
 .observatory-home .atelier-hero h1{font-size:clamp(20px,6.15vw,30px);line-height:1.15;letter-spacing:-.7px;margin:0 0 8px;text-align:left;white-space:normal}
 .observatory-home .atelier-hero h1 br{display:none}
 .observatory-home .atelier-hero h1 em{display:inline;letter-spacing:-.5px;white-space:nowrap}
 .observatory-home .home-weather{gap:10px;margin-bottom:18px}
 .observatory-home .atelier-lead{text-align:left}
 .observatory-home .atelier-lead br{display:none}
 .observatory-home .studio-band{padding-top:6px}
}
@media(max-width:345px){
 .map-pin a{min-width:40px;padding:1px 2px}
 .map-value b{font-size:12.5px}
 .map-value .weather-icon svg{width:14px;height:14px}
 .map-pin small{font-size:10.5px;letter-spacing:-.2px}
 .week-scroll li{flex-basis:68px}
 .week-head{padding-right:54px}
 .week-locate span{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
}
@media(min-width:701px){
 /* The DOM keeps the reading order (title, forecast, search); the grid places the forecast on the right. */
 .observatory-home .atelier-hero{min-height:0;align-items:start;row-gap:0;grid-template-rows:repeat(7,auto) 1fr}
 .observatory-home .atelier-copy{display:contents;animation:none}
 .observatory-home .atelier-copy>*{grid-column:1}
 .observatory-home .atelier-copy>.home-weather{grid-column:2;grid-row:1/-1}
 .observatory-home .atelier-hero h1{font-size:clamp(38px,5.4vw,84px);letter-spacing:-.04em;white-space:normal}
 .observatory-home .atelier-hero h1 em{letter-spacing:-.035em;white-space:normal}
}
@media(min-width:1000px){
 .map-pin a{min-width:62px;padding:4px 6px 3px}
 .map-value b{font-size:17px}
 .map-value .weather-icon svg{width:21px;height:21px}
 .map-summary{font-size:14px}
 .map-pin small{font-size:11px}
}
@media(min-width:1200px){
 .week-scroll li{flex:1 1 0;min-width:0}
}
