/* saltouruguay.com — PORTADA: lo que se suma a study.css. Familia de Study/Live, ultra moderna y vibrante,
   con un guiño art déco / Dieste: abanico radial detrás del nombre, bóvedas de ladrillo que ondulan, marcos achaflanados. */
.hm{--acc:#4FE3C1;--acc-text:#4FE3C1;--acc2:#FFB020;--acc2-text:#FFB020;--acc3:#B79CFF;--acc3-text:#B79CFF;--lime:#B4F03A;--citrus:#FF8A3D;--f-deco:'Big Shoulders','Bricolage Grotesque',Impact,sans-serif}
@property --hm-h{syntax:"<number>";inherits:true;initial-value:0}
.c-visit{--c:#4FE3C1}.c-study{--c:#B79CFF}.c-grow{--c:#FFB020}.c-live{--c:#B4F03A}
.c-musica{--c:#FF6B9A}.c-teatro{--c:#B79CFF}.c-arte{--c:#4FE3C1}.c-charlas{--c:#5B9BFF}.c-ferias{--c:#FFB020}.c-deporte{--c:#B4F03A}.c-familia{--c:#FF8A3D}.c-turismo{--c:#7CE7FF}.c-otros{--c:#C9D1E4}

/* ---------- portada ---------- */
.hm-hero{position:relative;isolation:isolate;min-height:100svh;display:flex;flex-direction:column;justify-content:center;padding:calc(var(--nav-h) + clamp(24px,6vh,72px)) 0 clamp(72px,10vh,110px);overflow:hidden}
.hm-hero::before{content:none}
.hm-hero::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;opacity:.06;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
.aurora{position:absolute;inset:-10%;z-index:-3;pointer-events:none;--hm-h:0;animation:hm-hue 36s linear infinite;
  background:radial-gradient(60vw 55vh at 18% 12%,hsl(calc(170 + var(--hm-h)) 78% 62% / .28),transparent 62%),
             radial-gradient(52vw 48vh at 86% 24%,hsl(calc(40 + var(--hm-h)) 100% 60% / .26),transparent 60%),
             radial-gradient(64vw 44vh at 55% 106%,hsl(calc(265 + var(--hm-h)) 90% 74% / .24),transparent 62%),
             radial-gradient(40vw 40vh at 40% 55%,hsl(calc(90 + var(--hm-h)) 85% 60% / .12),transparent 60%)}
@keyframes hm-hue{from{--hm-h:0}to{--hm-h:360}}
.sunburst{position:absolute;left:50%;top:44%;width:180vmax;height:180vmax;translate:-50% -50%;z-index:-2;pointer-events:none;opacity:.55;
  background:repeating-conic-gradient(from 0deg,rgba(255,176,32,.11) 0 2.2deg,transparent 2.2deg 9deg);
  -webkit-mask-image:radial-gradient(circle,rgba(0,0,0,.9) 0,rgba(0,0,0,.35) 22%,transparent 46%);mask-image:radial-gradient(circle,rgba(0,0,0,.9) 0,rgba(0,0,0,.35) 22%,transparent 46%);
  animation:hm-spin 140s linear infinite}
@keyframes hm-spin{to{rotate:360deg}}
.vaults{position:absolute;left:0;right:0;bottom:-2%;height:46%;z-index:-1;pointer-events:none;opacity:.9}
.vaults svg{width:100%;height:100%;display:block}
.vaults .row{stroke:var(--acc2);fill:none;stroke-width:1.1;opacity:.55;stroke-dasharray:1200;stroke-dashoffset:0;animation:hm-draw 6s var(--ease) both}
.vaults .row.r2{stroke:var(--acc);opacity:.4;animation-delay:.4s}
.vaults .row.r3{stroke:var(--acc3);opacity:.32;animation-delay:.8s}
.vaults .row.r4{stroke:var(--acc2);opacity:.22;animation-delay:1.2s}
@keyframes hm-draw{from{stroke-dashoffset:1200;opacity:0}60%{opacity:.6}to{stroke-dashoffset:0}}
.vaults .drift{animation:hm-drift 18s ease-in-out infinite alternate}
.vaults .drift.d2{animation-duration:23s;animation-delay:-6s}
.vaults .drift.d3{animation-duration:27s;animation-delay:-11s}
.vaults .drift.d4{animation-duration:31s;animation-delay:-3s}
@keyframes hm-drift{from{transform:translateX(0)}to{transform:translateX(-60px)}}
.hm-wrap{position:relative;z-index:1;text-align:center}
.hm-eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:.7rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-3)}
.hm-eyebrow .dot{width:7px;height:7px;border-radius:50%;background:var(--acc);box-shadow:0 0 0 4px rgba(79,227,193,.16);animation:pulse 4s ease-in-out infinite}
.wordmark{margin-top:clamp(10px,2vh,22px);line-height:.86;font-family:var(--f-deco);font-weight:900;font-variation-settings:"opsz" 72;letter-spacing:.02em;text-transform:uppercase}
.wm{position:relative;display:inline-block;font-size:clamp(5.6rem,21vw,17rem);line-height:.86;
  background:linear-gradient(100deg,var(--acc) 0%,#E8FF7A 35%,var(--acc2) 62%,var(--citrus) 100%);background-size:220% 100%;-webkit-background-clip:text;background-clip:text;color:transparent;
  animation:hm-shift 9s ease-in-out infinite alternate;filter:drop-shadow(0 18px 40px rgba(79,227,193,.18))}
@keyframes hm-shift{from{background-position:0% 50%}to{background-position:100% 50%}}
.wm::after{content:attr(data-t);position:absolute;left:.06em;top:.06em;z-index:-1;color:transparent;-webkit-text-stroke:1px rgba(255,176,32,.5);background:none;-webkit-background-clip:initial;background-clip:initial;animation:none;pointer-events:none}
.wm-sub{display:block;margin-top:clamp(8px,1.6vh,16px);font-family:var(--mono);font-weight:500;font-size:clamp(.8rem,1.6vw,1.05rem);letter-spacing:.7em;text-indent:.7em;text-transform:uppercase;color:var(--acc2)}
.wordmark .h1-l{transition:opacity .9s var(--ease),translate .9s var(--ease),font-variation-settings .9s var(--ease)}
.waterline{width:clamp(160px,22vw,240px);height:auto;margin:clamp(14px,2.4vh,26px) auto 0;opacity:.95;color:var(--acc2)}
.waterline svg{display:block;width:100%;height:auto}
.wl-ripple{transform-origin:97px 14.6px;animation:wl-ripple 2.6s ease-out infinite}
.wl-ripple.r2{animation-delay:1.3s}
.wl-ripple.rs{transform-origin:49px 19.5px;animation-duration:2.2s;animation-delay:.6s}
@keyframes wl-ripple{0%{transform:scale(.35);opacity:.8}70%,100%{transform:scale(1.9);opacity:0}}
.tagline{margin:clamp(18px,3vh,30px) auto 0;max-width:34ch;font-size:clamp(1.25rem,1rem + 1.4vw,2rem);font-weight:500;line-height:1.2;letter-spacing:-.02em;color:var(--fg);text-wrap:balance}
.hm-lede{margin:14px auto 0;max-width:56ch;font-size:clamp(1rem,.95rem + .3vw,1.12rem);line-height:1.6;color:var(--fg-2)}
.hm-cta{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-top:clamp(22px,3.5vh,34px)}
.hm-map{position:absolute;right:clamp(16px,4vw,56px);bottom:clamp(18px,4vh,40px);width:clamp(64px,7vw,96px);z-index:1;opacity:.85}
.hm-map svg{display:block;width:100%;height:auto;overflow:visible}
.map-ref{font-family:var(--mono);font-size:6.5px;letter-spacing:.04em;fill:var(--fg-3)}
.map-salto{font-family:var(--mono);font-size:8px;font-weight:600;letter-spacing:.2em;fill:var(--fg)}
.map-pulse{transform-origin:9.2px 25.8px;animation:map-pulse 2.6s ease-out infinite}
@keyframes map-pulse{0%{transform:scale(1);opacity:.8}70%,100%{transform:scale(2.6);opacity:0}}
.hm-scroll{position:absolute;left:50%;bottom:clamp(14px,3vh,28px);translate:-50% 0;z-index:1;font-size:.6rem;letter-spacing:.24em;text-transform:uppercase;color:var(--fg-3);text-decoration:none;display:flex;flex-direction:column;align-items:center;gap:8px}
.hm-scroll i{width:1px;height:34px;background:linear-gradient(var(--acc2),transparent);animation:hm-fall 2.2s ease-in-out infinite}
@keyframes hm-fall{0%{transform:scaleY(0);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}51%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
@media (max-height:760px){.hm-scroll{display:none}}
@media (max-width:760px){.hm-map{display:none}.hm-scroll{display:none}.wm{font-size:clamp(5.2rem,26vw,9rem)}.hm-lede{font-size:.98rem;max-width:34ch}}

/* ---------- cinta ---------- */
.ticker{overflow:hidden;border-top:1px solid var(--ln);border-bottom:1px solid var(--ln);background:var(--bg-2);padding:12px 0}
.ticker-track{display:flex;gap:0;width:max-content;animation:hm-marquee 60s linear infinite}
.ticker:hover .ticker-track{animation-play-state:paused}
.ticker-track span{display:inline-flex;align-items:center;gap:22px;padding:0 22px;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--fg-2);white-space:nowrap}
.ticker-track span::after{content:"";width:6px;height:6px;border-radius:50%;background:var(--acc2)}
.ticker-track span:nth-child(3n)::after{background:var(--acc)}
.ticker-track span:nth-child(3n+1)::after{background:var(--acc3)}
@keyframes hm-marquee{to{transform:translateX(-50%)}}

/* ---------- puertas ---------- */
.hm-doors{padding-top:clamp(48px,7vw,96px)!important}
.doors-4{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(12px,1.6vw,22px)}
.door{position:relative;display:flex;flex-direction:column;gap:10px;text-decoration:none;color:var(--fg);transition:transform .35s var(--ease)}
.door-frame{position:relative;display:block;aspect-ratio:1/1;background:linear-gradient(135deg,var(--c),color-mix(in srgb,var(--c) 40%,#0B0E17));padding:3px;
  clip-path:polygon(18px 0,calc(100% - 18px) 0,100% 18px,100% calc(100% - 18px),calc(100% - 18px) 100%,18px 100%,0 calc(100% - 18px),0 18px);transition:transform .5s var(--ease)}
.door-frame::before{content:"";position:absolute;inset:8px;z-index:2;pointer-events:none;border:1px solid color-mix(in srgb,var(--c) 70%,#fff 0%);opacity:.8;
  clip-path:polygon(14px 0,calc(100% - 14px) 0,100% 14px,100% calc(100% - 14px),calc(100% - 14px) 100%,14px 100%,0 calc(100% - 14px),0 14px)}
.door-frame img{width:100%;height:100%;object-fit:cover;display:block;background:#1a2036;
  clip-path:polygon(16px 0,calc(100% - 16px) 0,100% 16px,100% calc(100% - 16px),calc(100% - 16px) 100%,16px 100%,0 calc(100% - 16px),0 16px);transition:transform .8s var(--ease),filter .5s}
.door-frame::after{content:"";position:absolute;left:0;right:0;bottom:0;height:45%;z-index:1;background:linear-gradient(to top,rgba(11,14,23,.75),transparent);pointer-events:none}
.door-n{position:absolute;left:18px;top:14px;z-index:3;font-size:.68rem;letter-spacing:.2em;color:#0B0E17;background:var(--c);padding:3px 8px;clip-path:polygon(6px 0,100% 0,calc(100% - 6px) 100%,0 100%)}
.door-name{margin-top:6px;font-size:clamp(1.5rem,1.2rem + 1.2vw,2.1rem);font-weight:600;letter-spacing:-.02em;line-height:1;color:var(--fg)}
.door-sub{font-size:.9rem;color:var(--fg-2);line-height:1.45}
.door-go{margin-top:auto;font-size:.66rem;letter-spacing:.16em;text-transform:uppercase;color:var(--c)}
.door .float{animation:hm-bob 7s ease-in-out infinite}
.door:nth-child(2) .float{animation-delay:-1.8s}.door:nth-child(3) .float{animation-delay:-3.6s}.door:nth-child(4) .float{animation-delay:-5.4s}
@keyframes hm-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}
.door-glow{position:absolute;inset:0;aspect-ratio:1/1;z-index:-1;border-radius:24px;box-shadow:0 30px 70px -30px var(--c);opacity:.55;transition:opacity .4s}
@media (hover:hover){
  .door:hover{transform:translateY(-6px)}
  .door:hover .door-frame img{transform:scale(1.06)}
  .door:hover .door-glow{opacity:1}
  .door:hover .door-name{color:var(--c)}
}
@media (max-width:900px){.doors-4{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:420px){.doors-4{gap:10px}.door-name{font-size:1.35rem}.door-sub{font-size:.82rem}}

/* ---------- cifras ---------- */
.hm-cifras .stats{margin-top:0}
.hm .stat.s-lime{background:var(--lime);border-color:var(--lime);color:var(--on-acc)} .hm .stat.s-lime .mono{color:rgba(11,14,23,.75)} .hm .stat.s-lime::before{background:rgba(11,14,23,.25)}

/* ---------- próximos eventos ---------- */
.hm-events{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,230px),1fr));gap:14px}
.hm-events .ev{display:flex;flex-direction:column;gap:6px;padding:18px 20px 20px;background:var(--bg-2);border:1px solid var(--ln);border-top:3px solid var(--c,var(--acc));border-radius:14px;color:var(--fg);text-decoration:none;transition:transform .2s var(--ease),border-color .2s}
.hm-events .ev:hover{transform:translateY(-3px);border-color:var(--c,var(--acc))}
.ev-when{font-size:.64rem;letter-spacing:.14em;text-transform:uppercase;color:var(--c,var(--acc))}
.ev-date{display:flex;align-items:baseline;gap:8px}
.ev-date b{font-size:2rem;font-weight:500;line-height:1;letter-spacing:-.03em}
.ev-date .mono{font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--fg-3)}
.ev-title{font-size:1.02rem;font-weight:600;line-height:1.3}
.ev-place{font-size:.84rem;color:var(--fg-2)}
.hm-more{margin-top:18px}

/* ---------- quién está detrás ---------- */
.hm-about{padding-top:0!important}
.about-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:clamp(22px,3vw,36px);background:var(--bg-2);border:1px solid var(--ln);border-radius:16px}
.about-box p{font-size:1rem;line-height:1.6;color:var(--fg-2);max-width:62ch}
.about-box p strong{color:var(--fg)}
@media (max-width:760px){.about-box{grid-template-columns:1fr}}

/* ---------- reducir movimiento ---------- */
@media (prefers-reduced-motion:reduce){
  .aurora,.sunburst,.vaults .row,.vaults .drift,.wm,.ticker-track,.door .float,.hm-scroll i,.map-pulse,.wl-ripple,.hm-eyebrow .dot{animation:none!important}
  .vaults .row{stroke-dashoffset:0;opacity:.5}
}

/* ---------- ajustes ---------- */
.wm{display:block;width:max-content;max-width:100%;margin-inline:auto}
.wm-sub.h1-l{transition-delay:.18s}
[data-depth]{transition:transform .6s var(--ease);will-change:transform}
.vaults .tick{stroke:var(--acc2);stroke-width:1;opacity:.35}
.vaults .tick.r2{stroke:var(--acc)}.vaults .tick.r3{stroke:var(--acc3)}.vaults .tick.r4{opacity:.2}
.deco-rule{display:flex;align-items:center;justify-content:center;gap:14px;color:var(--acc2);opacity:.9}
.deco-rule::before,.deco-rule::after{content:"";height:1px;width:clamp(60px,16vw,220px);background:linear-gradient(90deg,transparent,currentColor)}
.deco-rule::after{background:linear-gradient(90deg,currentColor,transparent)}
.deco-rule i{width:9px;height:9px;rotate:45deg;border:1px solid currentColor;position:relative}
.deco-rule i::before,.deco-rule i::after{content:"";position:absolute;top:50%;width:26px;height:1px;background:currentColor;rotate:-45deg;transform-origin:center}
.deco-rule i::before{right:14px}.deco-rule i::after{left:14px}
.hm-cifras{padding-block:clamp(40px,5vw,72px)!important}
.hm-cifras .kicker{margin-bottom:18px}
.about-a{display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.hm-agenda .sec-h{margin-bottom:clamp(20px,3vw,32px)}
