/* Atlas de Ibiza — páginas «Cuándo ir» (hub + 12 meses). Solo se carga en esas páginas.
   Cada estación toma dos colores de la paleta de la casa: invierno = mar, primavera = olivo y buganvilla,
   verano = terracota y arena, otoño = ocre y terracota. Todo con tokens: el modo oscuro sale solo. */
.m-winter,.s-winter{--mc:var(--accent);--mc2:var(--lav);--mc-ink:var(--accent-ink)}
.m-spring,.s-spring{--mc:var(--olive);--mc2:var(--bougain);--mc-ink:color-mix(in oklch,var(--olive),var(--ink) 32%)}
.m-summer,.s-summer{--mc:var(--terra);--mc2:var(--sand);--mc-ink:var(--terra-ink)}
.m-autumn,.s-autumn{--mc:var(--ochre);--mc2:var(--terra);--mc-ink:color-mix(in oklch,var(--ochre),var(--ink) 38%)}

/* ——— cabecera del mes ——— */
.mo-hero{position:relative;overflow:clip;padding-block:clamp(.5rem,2vw,1.5rem) 0;background:radial-gradient(70% 80% at 88% 30%,color-mix(in oklch,var(--mc) 16%,transparent),transparent 70%),linear-gradient(180deg,var(--surface-2),transparent 85%)}
.mo-hero[data-plate]::after{content:attr(data-plate);position:absolute;inset-block-start:-.08em;inset-inline-end:-.02em;font:400 clamp(9rem,6rem + 18vw,22rem)/1 var(--ff-display);color:var(--mc);opacity:.07;pointer-events:none;letter-spacing:-.04em;animation:mo-fade 1.4s ease .2s both}
.mo-hero-in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(1rem,4vw,4rem);align-items:center;padding-block-end:clamp(1.5rem,3vw,2.5rem)}
@media (max-width:860px){.mo-hero-in,.mo-hero .mw-layout{grid-template-columns:minmax(0,1fr)}.mo-dial{inline-size:min(100%,340px)}}
.mo-hero.hub .wrap{position:relative;z-index:1;padding-block-end:clamp(1.5rem,3vw,2.5rem)}
.mo-hero.hub .mw-legend{margin-block-start:1.6rem}.mw-hint{margin-block-start:.6rem;max-inline-size:44ch}
.mo-eyebrow{color:var(--mc-ink);animation:wipe .9s var(--ease) both}.mo-eyebrow span{font-weight:700}
.mo-title{font-size:clamp(2.3rem,1.1rem + 5vw,5.2rem);line-height:.98;letter-spacing:-.02em;margin:.1em 0 .35em;max-inline-size:13ch;overflow-wrap:break-word;hyphens:auto}
.mo-hub .mo-title{max-inline-size:16ch}
.mo-title .w{display:inline-block;overflow:clip;overflow-clip-margin:.08em;padding-block-end:.08em;margin-block-end:-.08em;vertical-align:top}
.mo-title .w>span{display:inline-block;animation:wordup .9s cubic-bezier(.2,.85,.25,1) both;animation-delay:calc(.08s + var(--i) * .07s)}
.mo-title em{font-style:normal;color:var(--mc-ink);background:linear-gradient(transparent 64%,color-mix(in oklch,var(--mc2) 55%,transparent) 64% 92%,transparent 92%) no-repeat;background-size:0 100%;animation:mark .7s var(--ease) .75s forwards}
.mo-char{font-size:clamp(1.08rem,1.6vw,1.3rem);color:var(--ink);max-inline-size:44ch;animation:rise .8s var(--ease) .45s both}
.mo-hero.hub .lead{animation:rise .8s var(--ease) .45s both}
.mo-kpis{display:flex;flex-wrap:wrap;gap:1rem 2.4rem;margin:1.6rem 0 0;padding-block-start:1.1rem;border-block-start:1px solid var(--line);animation:rise .8s var(--ease) .6s both}
.mo-kpis div{display:flex;flex-direction:column}.mo-kpis dt{font:500 .7rem/1 var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);order:2;margin-block-start:.4rem}
.mo-kpis dd{margin:0;font:400 clamp(2rem,3.6vw,2.8rem)/1 var(--ff-display);font-variant-numeric:tabular-nums}.mo-kpis small{font:500 .78rem var(--ff-mono);color:var(--muted);margin-inline-start:.3rem}
@keyframes mo-fade{from{opacity:0}}

/* reloj de luz: el arco del día se dibuja y el sol sube de la salida al mediodía */
.mo-dial{margin:0;justify-self:center;inline-size:min(100%,430px)}
.dial{inline-size:100%;block-size:auto;overflow:visible}
.dial-face{fill:var(--surface);stroke:var(--line)}
.dial-night{fill:none;stroke:color-mix(in oklch,var(--night) 35%,var(--line));stroke-width:3;stroke-dasharray:.004 .012;stroke-linecap:round}
.dial-ticks path{stroke:var(--muted);stroke-width:1.4;opacity:.7}
.dial-h text{font:500 12px var(--ff-mono);fill:var(--muted)}
.dial-day{fill:none;stroke:var(--mc);stroke-width:14;stroke-linecap:round;stroke-dasharray:1;animation:draw 1.5s cubic-bezier(.5,0,.2,1) .25s both}
.dial-orbit{fill:none;stroke:none}
.dial-sun{transform-box:fill-box;transform-origin:50% 50%;transform:rotate(var(--a1));animation:mo-sun 1.7s cubic-bezier(.3,.7,.2,1) .25s both}
.dial-sun circle:not(.dial-orbit){fill:var(--sand);stroke:var(--night);stroke-width:2}.dial-sun .halo{fill:var(--sand);stroke:none;opacity:.35}
@keyframes mo-sun{from{transform:rotate(var(--a0))}}
.dial-t{font:600 15px var(--ff-mono);fill:var(--ink)}
.dial-big{font:400 64px var(--ff-display);fill:var(--ink);letter-spacing:-.02em}
.dial-sub{font:500 12px var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;fill:var(--muted)}
.mo-dial figcaption{display:flex;justify-content:space-between;gap:1rem;font:500 .72rem/1.4 var(--ff-mono);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-block-start:.2rem;animation:mo-fade .8s ease 1.4s both}

/* tira de los 12 meses (índice de láminas) */
.mo-strip{position:relative;z-index:1;border-block:1px solid var(--line);background:color-mix(in srgb,var(--bg) 70%,transparent)}
.mo-strip ol{list-style:none;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(12,1fr);inline-size:min(1240px,100% - 2*clamp(16px,4vw,44px))}
.mo-strip a{display:block;text-align:center;padding:.75rem 0 .65rem;font:500 .72rem/1 var(--ff-mono);letter-spacing:.08em;text-transform:uppercase;text-decoration:none;color:var(--muted);border-block-start:3px solid color-mix(in oklch,var(--mc) 40%,transparent);transition:background .2s,color .2s}
.mo-strip a:hover{background:color-mix(in oklch,var(--mc) 12%,transparent);color:var(--ink)}
.mo-strip a[aria-current]{background:var(--mc-ink);color:var(--bg);border-block-start-color:var(--mc);font-weight:700}
@media (max-width:560px){.mo-strip ol{grid-template-columns:repeat(6,1fr)}.mo-strip a{padding:.7rem 0}}

/* ——— instrumentos ——— */
.mo-gauges-sec{padding-block:clamp(2.5rem,5vw,4.5rem)}
.mo-gauges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
@media (max-width:1060px){.mo-gauges{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:580px){.mo-gauges{grid-template-columns:1fr}}
.gauge{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1.1rem 1.2rem 1.2rem;display:flex;flex-direction:column;gap:.8rem}
.gauge header{display:flex;justify-content:space-between;align-items:center;gap:.5rem}
.gauge h3{font:600 .74rem/1 var(--ff-mono);letter-spacing:.14em;text-transform:uppercase;margin:0;color:var(--muted)}
.g-tag{font:600 .7rem/1 var(--ff-mono);letter-spacing:.06em;padding:.35rem .5rem;border-radius:4px;background:var(--accent-soft);color:var(--accent-ink)}
.g-tag.sea-warm{background:color-mix(in oklch,var(--terra) 16%,var(--surface));color:var(--terra-ink)}
.g-tag.sea-cold{background:color-mix(in oklch,var(--lav) 30%,var(--surface));color:var(--ink)}
.g-body{display:flex;align-items:center;gap:1rem;flex:1}
.g-num{margin:0;display:grid;gap:.35rem;min-inline-size:0}
.g-num strong{font:400 clamp(2.4rem,4vw,3.2rem)/1 var(--ff-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}.g-num strong span{font:500 .9rem var(--ff-mono);margin-inline-start:.2rem;color:var(--muted)}
.g-num small{font-size:.82rem;color:var(--muted);line-height:1.35}
.g-svg{flex:none;block-size:auto}
.thermo{inline-size:70px}.tank{inline-size:118px}.ring{inline-size:104px}
.th-tube{fill:var(--surface-2);stroke:var(--line);stroke-width:1.5}.th-bulb-bg{fill:var(--surface-2);stroke:var(--line);stroke-width:1.5}
.th-fill,.th-bulb{fill:var(--terra)}
.th-fill{transform-box:fill-box;transform-origin:50% 100%;transition:transform 1.3s cubic-bezier(.3,.8,.2,1) .2s}
.th-min{stroke:var(--accent);stroke-width:3;stroke-linecap:round;transition:opacity .5s ease 1.2s}
.th-scale path{stroke:var(--muted)}.th-scale text{font:500 11px var(--ff-mono);fill:var(--muted)}
.tk-glass{fill:color-mix(in oklch,var(--accent) 5%,var(--surface));stroke:var(--line);stroke-width:1.5}
.tk-water{transform:translateY(var(--lvl));transition:transform 1.6s cubic-bezier(.3,.8,.2,1) .15s}
.tk-w1{fill:var(--accent);opacity:.82;animation:mo-wave 5s linear infinite}
.tk-w2{fill:var(--accent);opacity:.32;animation:mo-wave 8s linear infinite reverse}
@keyframes mo-wave{to{transform:translateX(-50px)}}
.tk-scale path{stroke:var(--muted)}.tk-scale text{font:500 11px var(--ff-mono);fill:var(--muted);paint-order:stroke;stroke:var(--surface);stroke-width:3px}
.rain-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(7,16px);gap:4px;flex:none}
.rain-grid>i{inline-size:16px;block-size:16px;border-radius:4px;background:var(--surface-2);display:grid;place-items:center}
.rain-grid>i.wet{background:color-mix(in oklch,var(--accent) 20%,var(--surface))}
.rain-grid svg{inline-size:12px;block-size:14px;fill:var(--accent);transition:transform .6s cubic-bezier(.3,1.4,.5,1),opacity .4s;transition-delay:calc(.2s + var(--i) * 22ms)}
.rg-bg{fill:none;stroke:var(--surface-2);stroke-width:10}
.rg-fg{fill:none;stroke:var(--ochre);stroke-width:10;stroke-linecap:round;stroke-dasharray:var(--p) 100;transform-box:fill-box;transform-origin:center;transform:rotate(-90deg);transition:stroke-dasharray 1.5s cubic-bezier(.3,.8,.2,1) .2s}
.rg-ray{stroke:var(--ochre);stroke-width:3;stroke-linecap:round;transition:opacity .4s,transform .5s;transition-delay:calc(.5s + var(--i) * 40ms);transform-box:fill-box;transform-origin:center}
.rg-sun{fill:var(--sand);stroke:var(--ochre);stroke-width:2}
/* estado inicial (solo si months.js observa la entrada) */
.mo-io [data-mo-anim]:not(.in) .th-fill{transform:scaleY(0)}
.mo-io [data-mo-anim]:not(.in) .th-min{opacity:0}
.mo-io [data-mo-anim]:not(.in) .tk-water{transform:translateY(232px)}
.mo-io [data-mo-anim]:not(.in) .rain-grid svg{transform:translateY(-16px);opacity:0}
.mo-io [data-mo-anim]:not(.in) .rg-fg{stroke-dasharray:0 100}
.mo-io [data-mo-anim]:not(.in) .rg-ray{opacity:0;transform:scale(.3)}
.mo-io [data-mo-anim]:not(.vis) .tk-w1,.mo-io [data-mo-anim]:not(.vis) .tk-w2{animation-play-state:paused}

/* ——— climograma ——— */
.yc-wrap{overflow-x:auto;overscroll-behavior-x:contain;-webkit-overflow-scrolling:touch;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem 1rem .6rem}
.ychart{inline-size:100%;min-inline-size:600px;block-size:auto;display:block}
.yc-band{fill:color-mix(in oklch,var(--mc) 15%,transparent)}
.yc-grid{stroke:var(--line);stroke-dasharray:4 5}.yc-axis{font:500 12px var(--ff-mono);fill:var(--muted);stroke:var(--surface);stroke-width:3px;paint-order:stroke;pointer-events:none}
.yc-hit{fill:transparent;transition:fill .2s}.yc-col:hover .yc-hit,.yc-col:focus-visible .yc-hit{fill:color-mix(in oklch,var(--ink) 5%,transparent)}.yc-col{outline:0}
.yc-rain{fill:color-mix(in oklch,var(--accent) 28%,var(--surface));transform-box:fill-box;transform-origin:50% 100%;transition:transform .8s cubic-bezier(.3,.8,.2,1);transition-delay:calc(var(--i) * 45ms)}
.yc-col.on .yc-rain{fill:var(--accent)}
.yc-m{font:500 13px var(--ff-mono);letter-spacing:.06em;text-transform:uppercase;fill:var(--muted)}.yc-col.on .yc-m{fill:var(--ink);font-weight:700}
.yc-line{fill:none;stroke-width:3;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;transition:stroke-dashoffset 1.8s cubic-bezier(.5,0,.2,1) .3s}
.yc-line.air{stroke:var(--terra)}.yc-line.sea{stroke:var(--accent)}
.yc-dot{stroke:var(--surface);stroke-width:2;transition:opacity .4s,transform .5s cubic-bezier(.3,1.5,.5,1);transition-delay:calc(.4s + var(--i) * 120ms);transform-box:fill-box;transform-origin:center}
.yc-dot.air{fill:var(--terra)}.yc-dot.sea{fill:var(--accent)}
.yc-dot.air-v,.yc-dot.sea-v{font:700 14px var(--ff-mono);stroke:var(--surface);stroke-width:4px;paint-order:stroke;transition:opacity .5s ease 1.9s}
.yc-dot.air-v{fill:var(--terra-ink)}.yc-dot.sea-v{fill:var(--accent-ink)}
.mo-io [data-mo-anim]:not(.in) .yc-line{stroke-dashoffset:1}
.mo-io [data-mo-anim]:not(.in) .yc-rain{transform:scaleY(0)}
.mo-io [data-mo-anim]:not(.in) .yc-dot{opacity:0;transform:scale(0)}
.yc-key{list-style:none;padding:0;margin:.7rem 0 0;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-family:var(--ff-mono);color:var(--muted)}
.yc-key li::before,.mw-legend li::before{content:"";display:inline-block;inline-size:18px;block-size:4px;border-radius:2px;margin-inline-end:.45rem;vertical-align:middle;background:var(--terra)}
.yc-key .k-sea::before{background:var(--accent)}.yc-key .k-rain::before{block-size:12px;inline-size:10px;background:color-mix(in oklch,var(--accent) 28%,var(--surface))}

/* ——— consejos ——— */
.mo-tips{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:1rem}
.mo-tips li{display:grid;grid-template-columns:auto 1fr;gap:.9rem;align-items:start;padding:1.1rem 1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i) * 80ms)}
.mo-tips svg{inline-size:42px;block-size:42px;padding:9px;border-radius:50%;background:color-mix(in oklch,var(--mc) 16%,var(--surface));color:var(--mc-ink)}
.mo-tips p{margin:0;line-height:1.5}.mo-tips a{font-weight:600;color:var(--accent-ink);white-space:nowrap}
.mo-tips .tip-guide a{white-space:normal}.mo-tips .tip-guide svg{min-inline-size:42px}
.mo-io .mo-tips:not(.in) li{opacity:0;transform:translateY(18px)}

/* ——— fiestas: calendario, mapa y lista ——— */
.fest-layout{display:grid;grid-template-columns:minmax(280px,380px) minmax(0,1fr);gap:clamp(1.2rem,3vw,2.5rem);align-items:start}
.fest-side{display:grid;gap:1.2rem;position:sticky;inset-block-start:90px}
@media (max-width:900px){.fest-layout{grid-template-columns:minmax(0,1fr)}.fest-side{position:static;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr))}}
.cal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:1rem}
.cal-wd,.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-wd span{font:600 .68rem/1 var(--ff-mono);text-transform:uppercase;color:var(--muted);text-align:center;padding-block-end:.5rem}
.cal-grid{list-style:none;margin:0;padding:0}
.cal-grid li{aspect-ratio:1;border-radius:6px;background:var(--surface-2);font:500 .8rem var(--ff-mono);color:var(--muted);position:relative;transition:transform .45s cubic-bezier(.3,1.5,.5,1),opacity .3s;transition-delay:calc(var(--i) * 14ms)}
.cal-grid li>*{position:absolute;inset:0;display:grid;place-items:center;text-decoration:none;color:inherit;border-radius:inherit}
.cal-grid li.blank{background:none}
.cal-grid li.hol{background:repeating-linear-gradient(135deg,var(--surface-2) 0 4px,color-mix(in oklch,var(--mc) 22%,var(--surface-2)) 4px 6px);color:var(--ink);font-weight:700}
.cal-grid li.ev{background:var(--mc-ink);color:var(--bg);font-weight:700}
.cal-grid li.ev a:hover,.cal-grid li.ev a:focus-visible{box-shadow:0 0 0 2px var(--mc2)}
.cal-n{position:absolute;inset:auto 2px 2px auto!important;display:flex!important;gap:2px}
.cal-n b::after{content:attr(data-n)}
.cal-n b{font:700 .55rem/1 var(--ff-mono);min-inline-size:.95rem;block-size:.95rem;display:grid;place-items:center;border-radius:99px;background:var(--bg);color:var(--ink)}
.cal-grid li .d{position:static}
.cal-key{display:flex;align-items:center;gap:.4rem;margin:.8rem 0 0}.cal-key span{display:inline-block;inline-size:14px;block-size:14px;border-radius:4px;margin-inline-start:.6rem}.cal-key span:first-child{margin-inline-start:0}
.cal-key .k-ev{background:var(--mc-ink)}.cal-key .k-hol{background:repeating-linear-gradient(135deg,var(--surface-2) 0 3px,color-mix(in oklch,var(--mc) 40%,var(--surface-2)) 3px 5px);border:1px solid var(--line)}
.mo-io [data-mo-anim]:not(.in) .cal-grid li:not(.blank){opacity:0;transform:scale(.4)}
.fest-map{margin:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:.9rem;overflow:hidden}
.fest-map .eyebrow{margin-block-end:.6rem}
.fest-map .isle-map{border-radius:var(--r);--erase:var(--map-sea)}
.fpin .fp-ring{fill:var(--mc);opacity:.25}
.fpin .fp-dot{fill:var(--mc-ink);stroke:var(--surface);stroke-width:4}
.fpin .fp-n{font:700 22px var(--ff-mono);fill:var(--bg)}.fpin .fp-n.multi{font-size:14px;letter-spacing:-.05em}
.fpin .fp-l{font:700 30px var(--ff);fill:var(--map-ink);paint-order:stroke;stroke:var(--map-land-a);stroke-width:7px;stroke-linejoin:round}
.anim .fpin{transform-box:fill-box;transform-origin:center;animation:pop .6s var(--ease) both;animation-delay:calc(2.3s + var(--j) * .16s)}
.fest-list{list-style:none;margin:0;padding:0;display:grid;gap:1rem}
.fest{display:grid;grid-template-columns:86px minmax(0,1fr);gap:1.1rem;padding:1.2rem;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);scroll-margin-block-start:100px;transition:opacity .6s var(--ease),transform .6s var(--ease),border-color .3s;transition-delay:calc(var(--i) * 90ms)}
.fest:target{border-color:var(--mc);box-shadow:0 0 0 2px var(--mc)}
.fest-date{display:grid;justify-items:center;align-content:start;gap:.2rem;padding:.8rem .4rem;border-radius:var(--r);background:color-mix(in oklch,var(--mc) 12%,var(--surface));color:var(--mc-ink);text-align:center;position:relative}
.fest-date b{position:absolute;inset-block-start:-.55rem;inset-inline-start:-.55rem;font:700 .72rem/1 var(--ff-mono);inline-size:1.6rem;block-size:1.6rem;display:grid;place-items:center;border-radius:50%;background:var(--mc-ink);color:var(--bg)}
.fest-date strong{font:400 2.6rem/1 var(--ff-display)}.fest-date span{font:600 .68rem/1 var(--ff-mono);letter-spacing:.1em;text-transform:uppercase}
.fest-kind{font:600 .7rem/1 var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--mc-ink);margin:0 0 .5rem}
.fest h3{font-size:clamp(1.25rem,2vw,1.55rem);margin-block-end:.4rem}
.fest-body>p:not(.fest-kind){color:color-mix(in srgb,var(--ink) 88%,var(--muted));margin-block-end:.8rem}
.fest-facts{display:grid;gap:.35rem;margin:0;font-size:.86rem}.fest-facts div{display:grid;grid-template-columns:5.5rem 1fr;gap:.6rem}
.fest-facts dt{font:600 .68rem/1.6 var(--ff-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.fest-facts dd{margin:0}
.fest-facts a{color:var(--accent-ink);overflow-wrap:anywhere}
.mo-io .fest-layout:not(.in) .fest{opacity:0;transform:translateY(22px)}
@media (max-width:480px){.fest{grid-template-columns:minmax(0,1fr)}.fest-date{grid-auto-flow:column;justify-content:start;align-items:baseline;gap:.5rem;padding:.6rem 1rem}.fest-facts div{grid-template-columns:1fr;gap:0}}

/* ——— experiencias ——— */
.mo-cats{margin:0 0 1rem}.mo-cats .pill{gap:.45rem}.mo-cats .pill b{font:700 .74rem var(--ff-mono);color:var(--muted)}
.mo-cats .glyph{inline-size:16px;block-size:16px;color:var(--accent-ink)}
.mo-more{columns:4 220px;column-gap:2rem;margin:1rem 0 1.5rem}.mo-more>div{break-inside:avoid;margin-block-end:1.4rem}
.mo-more-h{margin-block-start:2.5rem}
.mo-more h4{font:600 .72rem/1.3 var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin:0 0 .5rem}
.mo-more ul,.mo-names{list-style:none;margin:0;padding:0;display:grid;gap:.35rem;font-size:.93rem}
.mo-more a,.mo-names a{text-decoration:none;color:var(--ink)}.mo-more a:hover,.mo-names a:hover{text-decoration:underline;color:var(--accent-ink)}
.mo-names{display:block;columns:3 220px;column-gap:2rem}.mo-names li{break-inside:avoid;margin-block-end:.35rem}
.mo-fold{border-block-start:1px solid var(--line);padding-block:1rem}.mo-fold:last-child{border-block-end:1px solid var(--line)}
.mo-fold summary{cursor:pointer;font:600 1.05rem var(--ff);min-block-size:44px;display:flex;align-items:center}

/* fuentes */
.mo-src{margin-block-start:2.5rem;padding:1.4rem 1.5rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.mo-src h2{font-size:1.25rem}.mo-src ul{padding-inline-start:1.1em;display:grid;gap:.5rem}.mo-src a{color:var(--accent-ink)}

/* anterior / siguiente */
.mo-pn{display:grid;grid-template-columns:1fr auto 1fr;gap:1rem;align-items:stretch;margin-block:var(--space-l) 2rem}
.mo-pn-a{display:grid;gap:.3rem;padding:1.3rem 1.4rem;border:1px solid var(--line);border-block-start:5px solid var(--mc);border-radius:var(--r-lg);background:var(--surface);text-decoration:none;transition:transform .35s var(--ease),box-shadow .35s}
.mo-pn-a:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}
.mo-pn-a small{font:600 .72rem var(--ff-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.mo-pn-a strong{font:400 clamp(1.7rem,3vw,2.4rem)/1 var(--ff-display);color:var(--mc-ink)}
.mo-pn-a span{font:500 .82rem var(--ff-mono);color:var(--muted)}
.mo-pn-a.next{text-align:end}
.mo-pn-all{align-self:center;font:600 .85rem var(--ff-mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink);text-decoration:none;padding:.8rem 1rem;border:1px solid var(--line);border-radius:999px;min-block-size:44px;display:inline-flex;align-items:center}
.mo-pn-all:hover{border-color:var(--ink)}
@media (max-width:640px){.mo-pn{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.mo-pn-a strong{font-size:1.5rem;overflow-wrap:anywhere}}
@media (max-width:420px){.mo-pn{grid-template-columns:minmax(0,1fr)}.mo-pn-a.next{text-align:start}.mo-pn-all{grid-row:auto}}
@media (max-width:640px){.mo-pn-all{grid-column:1/-1;grid-row:2;justify-self:center}}

/* ——— hub: la rueda ——— */
.mw-sec{padding-block:clamp(2.5rem,5vw,4.5rem)}
.mw-layout{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(1.5rem,4vw,3.5rem);align-items:center}
@media (max-width:960px){.mw-layout{grid-template-columns:1fr}}
.mw{position:relative;container-type:inline-size;max-inline-size:660px;margin-inline:auto;inline-size:100%}
.mw-svg{inline-size:100%;block-size:auto;display:block;overflow:visible}
.mw-grid{fill:none;stroke:var(--line);stroke-dasharray:3 6}.mw-gt{font:500 12px var(--ff-mono);fill:var(--muted)}
.mw-seg{outline:0;cursor:pointer}
.mw-hit{fill:transparent}
.mw-ring{fill:var(--mc2);opacity:.75}
.mw-bar{fill:var(--mc);opacity:.78;transform-origin:320px 320px;transition:transform .7s cubic-bezier(.3,1.25,.4,1),opacity .4s,fill .3s;transition-delay:calc(var(--i) * 55ms)}
.mw-air{fill:var(--ink);stroke:var(--surface);stroke-width:2.5;transition:opacity .4s ease;transition-delay:calc(.7s + var(--i) * 55ms)}
.mw-l{font:600 15px var(--ff-mono);letter-spacing:.08em;text-transform:uppercase;fill:var(--muted);transition:fill .2s}
.mw-seg:hover .mw-bar,.mw-seg:focus-visible .mw-bar,.mw-seg.on .mw-bar{opacity:1;transform:scale(1.035);transition-delay:0s}
.mw-seg:hover .mw-l,.mw-seg:focus-visible .mw-l,.mw-seg.on .mw-l{fill:var(--ink)}
.mw-seg:focus-visible .mw-hit{stroke:var(--accent);stroke-width:2}
.mo-io .mw:not(.in) .mw-bar{transform:scale(.55);opacity:0}
.mo-io .mw:not(.in) .mw-air{opacity:0}
.mw-info{position:absolute;inset-block-start:50%;inset-inline-start:50%;transform:translate(-50%,-50%);inline-size:37%;text-align:center;display:grid;justify-items:center;gap:.3rem}
.mw-season{font:600 .66rem/1 var(--ff-mono);letter-spacing:.14em;text-transform:uppercase;color:var(--mc-ink);margin:0}
.mw-name{font:400 clamp(1.5rem,5.4cqi,2.6rem)/1 var(--ff-display);margin:0;color:var(--ink)}
.mw-char{font-size:clamp(.78rem,2.3cqi,.98rem);line-height:1.38;color:var(--muted);margin:0}
.mw-stats{display:flex;gap:.9rem;margin:.2rem 0 .3rem}.mw-stats div{display:grid}.mw-stats dt{font:500 .58rem/1 var(--ff-mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);order:2;margin-block-start:.2rem}.mw-stats dd{margin:0;font:400 1.25rem/1 var(--ff-display)}
.mw-go{min-block-size:40px;font-size:.8rem}
.mw-info.swap>*{animation:mo-swap .35s var(--ease) both}
@keyframes mo-swap{from{opacity:0;transform:translateY(6px)}}
/* centro de la rueda: solo cuando la ficha del mes va debajo */
.mw-center{display:none}.mw-center text{font:400 92px var(--ff-display);fill:var(--mc-ink)}.mw-center .sub{font:600 17px var(--ff-mono);letter-spacing:.12em;text-transform:uppercase;fill:var(--muted)}
@container (max-width:540px){.mw-center{display:inline}.mw-info{position:static;transform:none;inline-size:auto;margin-block-start:1rem}.mw-name{font-size:2rem}.mw-char{font-size:.95rem}}
.mw-aside{display:grid;gap:1.2rem}
.mw-legend{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.4rem 1.4rem;font-family:var(--ff-mono);color:var(--muted)}
.mw-legend .k-bar::before{background:linear-gradient(90deg,var(--accent),var(--olive),var(--terra),var(--ochre));block-size:8px}
.mw-legend .k-air::before{inline-size:10px;block-size:10px;border-radius:50%;background:var(--ink)}
.mo-quick{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,240px),1fr));gap:1rem}
.mo-quick .q-card{transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i) * 90ms)}.mo-io .mo-quick:not(.in) .q-card{opacity:0;transform:translateY(18px)}
.q-card{padding:1.1rem 1.2rem;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
.q-card svg{color:var(--accent-ink);margin-block-end:.4rem}.q-card h3{font-size:1.2rem;margin-block-end:.2rem}.q-card .chips{margin:.7rem 0 0;gap:.35rem}
.q-card .pill{min-block-size:36px;padding:.4rem .8rem;font-size:.84rem;border-color:color-mix(in oklch,var(--mc) 50%,var(--line))}
.q-card .pill:hover{background:color-mix(in oklch,var(--mc) 14%,var(--surface))}

/* tarjetas de los meses */
.mo-cards{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:1rem}
.mo-cards li{transition:opacity .6s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i) * 50ms)}
.mo-cards a{display:grid;gap:.5rem;block-size:100%;padding:1.2rem 1.25rem 1.1rem;background:var(--surface);border:1px solid var(--line);border-block-start:5px solid var(--mc);border-radius:var(--r-lg);text-decoration:none;transition:transform .35s var(--ease),box-shadow .35s,border-color .3s}
.mo-cards a:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg);border-color:var(--mc)}
.mc-n{font:600 .7rem/1 var(--ff-mono);letter-spacing:.14em;color:var(--mc-ink)}
.mo-cards strong{font:400 1.9rem/1 var(--ff-display)}
.mc-char{font-size:.88rem;color:var(--muted);line-height:1.45}
.mc-bars{display:grid;gap:4px;margin-block-start:.2rem}.mc-bars i{display:block;block-size:6px;border-radius:3px;background:var(--terra);inline-size:calc(var(--v) * 100%);transform-origin:left;transition:transform .9s var(--ease) .2s}.mc-bars i.sea{background:var(--accent)}
.mc-stats{font:500 .76rem var(--ff-mono);color:var(--ink)}
.mo-io .mo-cards:not(.in) li{opacity:0;transform:translateY(20px)}
.mo-io .mo-cards:not(.in) .mc-bars i{transform:scaleX(0)}
.mo-table th[scope=row] a{font-weight:600;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem}
.mo-table th[scope=row] a::before{content:"";inline-size:10px;block-size:10px;border-radius:50%;background:var(--mc)}
.mo-table td{font-family:var(--ff-mono);font-variant-numeric:tabular-nums;white-space:nowrap}

/* movimiento reducido: estado final, sin bucles */
@media (prefers-reduced-motion:reduce){
  .mo-title .w>span,.mo-eyebrow,.mo-char,.mo-kpis,.mo-hero[data-plate]::after,.dial-day,.dial-sun,.mo-dial figcaption,.mo-hero.hub .lead{animation:none}
  .mo-title em{animation:none;background-size:100% 100%}
  .tk-w1,.tk-w2{animation:none}
}

/* oscuro: el subrayado del mes, más tenue (al 55 % sobre noche quedaba color barro) */
:root[data-theme="dark"] .mo-title em{background-image:linear-gradient(transparent 64%,color-mix(in oklch,var(--mc2) 26%,transparent) 64% 92%,transparent 92%)}
@media (prefers-color-scheme:dark){:root:not([data-theme="light"]) .mo-title em{background-image:linear-gradient(transparent 64%,color-mix(in oklch,var(--mc2) 26%,transparent) 64% 92%,transparent 92%)}}

/* Consejos del mes + el año de un vistazo en una sola sección (24-10-2026): menos scroll y las experiencias suben */
.mo-plan-in{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(0,1fr);gap:clamp(1.5rem,3vw,3rem);align-items:start}
.mo-plan-tips .mo-tips{grid-template-columns:repeat(auto-fill,minmax(min(100%,260px),1fr))}
.mo-plan-year{position:sticky;inset-block-start:96px}
.mo-plan-year header{margin-block-end:.8rem}.mo-plan-year h3{margin:.2rem 0 .3rem;font-size:1.35rem}.mo-plan-year p{margin:0}
.mo-plan-year .yc-wrap{padding:.7rem .7rem .5rem}
.mo-plan-year .ychart{min-inline-size:0}
@media (max-width:980px){.mo-plan-in{grid-template-columns:minmax(0,1fr)}.mo-plan-year{position:static}.mo-plan-year .ychart{min-inline-size:520px}}

/* ——— móvil: el año entero cabe sin desplazarse (climograma estrecho: 300 × 250, inicial del mes), tablas compactas, objetivos táctiles de 44 px ——— */
.ychart.yc-narrow{display:none}
@media (max-width:600px){
  .ychart.yc-wide{display:none}
  .ychart.yc-narrow,.mo-plan-year .ychart.yc-narrow{display:block;min-inline-size:0;inline-size:100%;max-inline-size:480px;margin-inline:auto}
  .yc-wrap{overflow-x:visible}
  .yc-narrow .yc-m{font-size:12px;letter-spacing:0}
  .yc-narrow .yc-axis{font-size:11px}
  .yc-narrow .yc-dot.air-v,.yc-narrow .yc-dot.sea-v{font-size:13px}
}
@media (max-width:640px){
  .mo-table{min-inline-size:0;font-size:.84rem}
  .mo-table th,.mo-table td{padding:.7rem .65rem}
  .mo-table thead th{white-space:nowrap}
  .mo-table thead th:first-child{position:sticky;inset-inline-start:0;z-index:1;background:var(--surface-2)}
  .mo-table tbody th[scope=row],.mo-table thead th:first-child{min-inline-size:0}
  /* sombra a la derecha mientras quedan columnas por ver (desaparece al llegar al final) */
  .cmp-scroll:has(.mo-table){background:linear-gradient(to left,var(--surface) 30%,transparent) right center/36px 100% no-repeat local,linear-gradient(to left,color-mix(in srgb,var(--ink) 18%,transparent),transparent) right center/14px 100% no-repeat scroll,var(--surface)}
}
@media (pointer:coarse){.q-card .pill{min-block-size:44px}}
@media (max-width:640px){.mw-stats dt{font-size:.68rem}.mw-season{font-size:.7rem}}

/* enlace a «Ibiza este mes» en el hub y en cada mes */
.mo-nowlink{margin:.9rem 0 0;font-weight:600}.mo-nowlink a{color:var(--mc-ink);text-underline-offset:.2em}
