/* Aeroclub Los Rebeldes — estilos del tema */
:root{
  --ivory:#F7F6F2; --ivory-2:#EFEDE6; --ivory-3:#E6E2D8; --card:#FFFFFF;
  --navy:#102D42; --navy-2:#1B4059; --navy-3:#2C5672;
  --teal:#44B9B2; --teal-600:#2A9A94; --teal-700:#1F7C77; --teal-50:#E8F6F5; --teal-100:#CDEDEA;
  --ink:#102D42; --ink-2:#3A5366; --muted:#6A7A86; --line:rgba(16,45,66,.10); --line-2:rgba(16,45,66,.16);
  --sun:#F3B23E; --sky:#7FB3DD; --rain-1:#CFE4F5; --rain-2:#8DBDE6; --rain-3:#3F83C4;
  --r-sm:10px; --r:16px; --r-lg:24px;
  --shadow:0 1px 2px rgba(16,45,66,.04),0 10px 30px -14px rgba(16,45,66,.18);
  --shadow-lg:0 2px 6px rgba(16,45,66,.05),0 28px 60px -26px rgba(16,45,66,.35);
  --g:20px; --max:1280px;
  --head:"Outfit",system-ui,sans-serif; --body:"Figtree",system-ui,sans-serif; --mono:"IBM Plex Mono",ui-monospace,monospace; --script:"Caveat",cursive;
  --ease:cubic-bezier(.2,.7,.2,1);
}
@media (min-width:1000px){ :root{ --g:40px; } }
*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; scroll-padding-top:84px; -webkit-text-size-adjust:100%; }
body{ margin:0; font-family:var(--body); color:var(--ink); background:var(--ivory); line-height:1.55; font-size:16px; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img,video,canvas{ display:block; max-width:100%; }
a{ color:inherit; }
button{ font:inherit; color:inherit; }
:focus-visible{ outline:2px solid var(--teal-600); outline-offset:3px; border-radius:6px; }
.wrap{ width:100%; max-width:var(--max); margin:0 auto; padding:0 var(--g); }
.ico{ width:20px; height:20px; flex:none; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.ico-fill{ fill:currentColor; stroke:none; }

h1,h2,h3{ font-family:var(--head); margin:0; font-weight:700; line-height:1.04; letter-spacing:-.02em; color:var(--navy); }
.eyebrow{ display:inline-flex; align-items:center; gap:10px; font-size:12px; font-weight:700; letter-spacing:.2em; text-transform:uppercase; color:var(--teal-600); }
.eyebrow--line::after{ content:""; width:36px; height:1.5px; background:currentColor; opacity:.6; }
.h2{ font-size:clamp(32px,4.4vw,52px); }
.accent{ display:block; width:44px; height:3px; border-radius:3px; background:var(--teal); margin:18px 0 0; }
.lead{ font-size:clamp(16.5px,1.4vw,18.5px); color:var(--ink-2); max-width:54ch; margin:0; }
.label{ font-size:11.5px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.link{ display:inline-flex; align-items:center; gap:8px; font-weight:700; color:var(--teal-700); text-decoration:none; }
.link .ico{ width:18px; height:18px; transition:transform .25s var(--ease); }
.link:hover .ico{ transform:translateX(3px); }
.script{ font-family:var(--script); font-weight:500; color:var(--navy); line-height:.9; transform:rotate(-8deg); display:inline-block; }
.script::after{ content:""; display:block; width:38%; height:2.5px; background:var(--teal); border-radius:3px; margin:6px 0 0 auto; transform:rotate(3deg); }

/* ---------- nav ---------- */
.nav{ position:sticky; top:0; z-index:50; background:rgba(247,246,242,.82); backdrop-filter:saturate(1.3) blur(14px); -webkit-backdrop-filter:saturate(1.3) blur(14px); border-bottom:1px solid transparent; transition:border-color .3s, box-shadow .3s; padding-top:env(safe-area-inset-top); }
.nav.is-scrolled{ border-color:var(--line); box-shadow:0 8px 24px -20px rgba(16,45,66,.4); }
.nav__in{ display:flex; align-items:center; gap:28px; height:76px; }
.brand{ display:flex; align-items:center; gap:12px; text-decoration:none; margin-right:auto; }
.brand img{ width:52px; height:52px; border-radius:50%; }
.brand span{ display:none; font-family:var(--head); font-weight:700; font-size:15px; line-height:1.1; color:var(--navy); }
.brand small{ display:block; font-family:var(--body); font-size:11px; letter-spacing:.18em; font-weight:600; color:var(--muted); }
@media (min-width:640px){ .brand span{ display:block; } }
.nav__links{ display:none; gap:6px; }
.nav__links a{ text-decoration:none; font-weight:600; font-size:15px; color:var(--ink-2); padding:8px 12px; border-radius:9px; transition:background .2s,color .2s; }
.nav__links a:hover,.nav__links a.is-active{ color:var(--navy); background:var(--ivory-2); }
.nav__wx{ display:none; align-items:center; gap:10px; padding:8px 14px 8px 12px; border-radius:12px; text-decoration:none; font-weight:600; font-size:14px; color:var(--teal-700); background:var(--teal-50); box-shadow:inset 0 0 0 1px var(--teal-100); transition:background .2s; white-space:nowrap; }
.nav__wx:hover{ background:var(--teal-100); }
.nav__wx b{ font-family:var(--head); color:var(--navy); font-weight:600; }
.nav__menu{ display:grid; place-items:center; width:46px; height:46px; border:0; border-radius:12px; background:var(--ivory-2); cursor:pointer; color:var(--navy); }
@media (min-width:1000px){ .nav__links{ display:flex; } .nav__menu{ display:none; } }
@media (min-width:1240px){ .nav__wx{ display:flex; } }
@media (max-width:999px){ .nav__in{ gap:12px; } }

/* reloj: hora local + UTC (la hora del METAR) */
.clock{ display:flex; align-items:center; gap:10px; padding:6px 14px 6px 7px; border-radius:14px; background:var(--card); box-shadow:inset 0 0 0 1px var(--line), 0 8px 18px -14px rgba(16,45,66,.45); white-space:nowrap; }
.clock__face{ width:32px; height:32px; flex:none; }
.clock__face line{ transform-box:view-box; transform-origin:16px 16px; transition:transform .6s var(--ease); }
.clock__t{ display:flex; flex-direction:column; line-height:1; }
.clock__t b{ font-family:var(--head); font-size:17px; font-weight:700; color:var(--navy); font-variant-numeric:tabular-nums; letter-spacing:-.01em; }
.clock__t small{ margin-top:4px; font-size:9px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.clock__z b{ color:var(--teal-700); }
.clock__sep{ width:1px; height:26px; background:var(--line-2); }
@media (max-width:374px){ .clock__face{ display:none; } .clock{ padding-left:12px; } }
.drawer{ position:fixed; inset:0; z-index:60; pointer-events:none; }
.drawer__scrim{ position:absolute; inset:0; background:rgba(16,45,66,.35); opacity:0; transition:opacity .3s; }
.drawer__panel{ position:absolute; top:0; right:0; bottom:0; width:min(86vw,360px); background:var(--ivory); padding:calc(18px + env(safe-area-inset-top)) 24px 24px; transform:translateX(100%); transition:transform .35s var(--ease); display:flex; flex-direction:column; box-shadow:var(--shadow-lg); }
.drawer.is-open{ pointer-events:auto; }
.drawer.is-open .drawer__scrim{ opacity:1; }
.drawer.is-open .drawer__panel{ transform:none; }
.drawer__top{ display:flex; justify-content:flex-end; margin-bottom:12px; }
.drawer a{ display:flex; justify-content:space-between; align-items:center; padding:16px 2px; font-family:var(--head); font-size:24px; font-weight:600; text-decoration:none; color:var(--navy); border-bottom:1px solid var(--line); }
.drawer .script{ font-size:40px; margin-top:auto; align-self:flex-end; }
.icon-btn{ width:46px; height:46px; border:0; border-radius:12px; display:grid; place-items:center; background:var(--ivory-2); color:var(--navy); cursor:pointer; transition:background .2s; }
.icon-btn:hover{ background:var(--ivory-3); }

/* ---------- hero ---------- */
.hero{ padding:28px 0 0; }
.hero__grid{ display:grid; gap:28px; align-items:center; }
@media (min-width:1000px){ .hero__grid{ grid-template-columns:.9fr 1.1fr; gap:24px; min-height:min(640px,calc(100svh - 190px)); } }
.hero h1{ font-size:clamp(46px,7vw,92px); font-weight:800; line-height:.95; letter-spacing:-.035em; margin-top:18px; max-width:9ch; }
.hero .accent{ width:64px; height:4px; margin-top:24px; }
.hero__sub{ font-family:var(--head); font-size:clamp(20px,2vw,26px); font-weight:500; color:var(--navy-2); margin:22px 0 0; line-height:1.25; max-width:22ch; }
.hero__txt{ margin:16px 0 0; color:var(--ink-2); max-width:44ch; }
.now{ display:inline-flex; align-items:center; gap:12px; margin-top:30px; padding:12px 16px 12px 14px; border-radius:14px; background:var(--card); box-shadow:var(--shadow); text-decoration:none; transition:transform .25s var(--ease), box-shadow .25s var(--ease); }
.now:hover{ transform:translateY(-2px); box-shadow:var(--shadow-lg); }
.now__ar{ width:34px; height:34px; border-radius:50%; background:var(--teal-50); display:grid; place-items:center; color:var(--teal-700); }
.now__ar svg{ width:18px; height:18px; transition:transform 1s var(--ease); }
.now small{ display:block; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--muted); }
.now b{ font-family:var(--head); font-size:17px; font-weight:600; color:var(--navy); }
.now .ico{ color:var(--muted); width:18px; height:18px; }
.hero__media{ position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:4/3.1; background:var(--ivory-3); box-shadow:var(--shadow-lg); isolation:isolate; }
@media (min-width:1000px){ .hero__media{ aspect-ratio:auto; height:100%; min-height:520px; border-radius:28px; } }
.hero__media img,.hero__media video{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.hero__media video{ opacity:0; transition:opacity 1.2s; }
.hero__media video.is-on{ opacity:1; }
.hero__media::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg,rgba(16,45,66,0) 60%,rgba(16,45,66,.35)); pointer-events:none; }
.hero__loc{ position:absolute; left:18px; bottom:16px; z-index:1; display:flex; align-items:center; gap:8px; color:#fff; font-size:12px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.hero__loc .ico{ width:16px; height:16px; }
.hero__sig{ position:absolute; right:22px; top:18px; z-index:1; font-size:clamp(34px,3.6vw,48px); color:#fff; text-shadow:0 2px 20px rgba(16,45,66,.35); }
.hero__sig::after{ background:#fff; }

/* datos */
.facts{ display:grid; grid-template-columns:1fr; margin-top:36px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
@media (min-width:760px){ .facts{ grid-template-columns:repeat(3,1fr); } }
.fact{ display:flex; align-items:center; gap:18px; padding:22px 4px; }
.fact + .fact{ border-top:1px solid var(--line); }
@media (min-width:760px){ .fact{ padding:26px 28px; } .fact:first-child{ padding-left:4px; } .fact + .fact{ border-top:0; border-left:1px solid var(--line); } }
.fact .ico{ width:40px; height:40px; stroke-width:1.4; color:var(--navy); }
.fact b{ display:block; font-family:var(--head); font-size:clamp(30px,3vw,40px); font-weight:700; line-height:1; letter-spacing:-.02em; }
.fact span{ display:block; margin-top:6px; font-size:13.5px; color:var(--muted); line-height:1.35; }
.fact span em{ font-style:normal; font-weight:700; letter-spacing:.12em; text-transform:uppercase; font-size:11.5px; color:var(--ink-2); }

/* ---------- secciones ---------- */
.sec{ padding:84px 0; }
@media (min-width:1000px){ .sec{ padding:120px 0; } }
.club{ display:grid; gap:36px; align-items:center; }
@media (min-width:1000px){ .club{ grid-template-columns:.85fr 1.15fr; gap:64px; } }
.club__txt p{ color:var(--ink-2); margin:22px 0 0; max-width:48ch; }
.acts{ list-style:none; padding:0; margin:30px 0 0; display:grid; gap:0; border-top:1px solid var(--line); }
.acts li{ display:flex; align-items:center; gap:14px; padding:14px 2px; border-bottom:1px solid var(--line); font-weight:600; color:var(--navy); }
.acts .ico{ width:22px; height:22px; color:var(--teal-600); }
.club__photo{ position:relative; border-radius:var(--r-lg); overflow:hidden; aspect-ratio:16/10.5; box-shadow:var(--shadow-lg); }
.club__photo img{ width:100%; height:100%; object-fit:cover; }
.tag{ position:absolute; right:16px; bottom:14px; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#fff; text-shadow:0 1px 8px rgba(0,0,0,.4); }

/* =========================================================
   METEOROLOGÍA
   ========================================================= */
.wx{ background:linear-gradient(180deg,var(--ivory) 0%,#F2F0EA 100%); border-top:1px solid var(--line); }
.wx__head{ display:grid; gap:22px; margin-bottom:28px; }
@media (min-width:1000px){ .wx__head{ grid-template-columns:1fr auto auto; align-items:end; gap:32px; } .wx__brand h2{ white-space:nowrap; } }
.wx__brand{ display:flex; gap:18px; align-items:center; }
.wx__brand img{ width:76px; height:76px; border-radius:50%; flex:none; display:none; }
@media (min-width:1000px){ .wx__brand img{ display:block; } }
.wx__brand h2{ margin-top:8px; }
.wx__brand p{ margin:8px 0 0; font-size:17px; color:var(--navy-2); }
.seg{ display:inline-grid; grid-auto-flow:column; grid-auto-columns:1fr; padding:5px; border-radius:14px; background:var(--card); box-shadow:var(--shadow); position:relative; }
.seg button{ position:relative; z-index:1; border:0; background:transparent; padding:11px 20px; border-radius:10px; font-weight:600; font-size:15px; display:inline-flex; align-items:center; justify-content:center; gap:9px; cursor:pointer; color:var(--ink-2); transition:color .3s; white-space:nowrap; }
.seg button .ico{ width:18px; height:18px; }
.seg button[aria-pressed="true"]{ color:#fff; }
.seg__pill{ position:absolute; z-index:0; top:5px; bottom:5px; left:5px; width:calc(50% - 5px); border-radius:10px; background:var(--navy); transition:transform .4s var(--ease); }
.seg[data-v="tech"] .seg__pill{ transform:translateX(100%); }
.wx__src{ font-size:13px; color:var(--muted); display:grid; gap:4px; }
@media (min-width:1000px){ .wx__src{ border-left:1px solid var(--line-2); padding-left:24px; min-width:250px; } }
.wx__src b{ font-size:11.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--navy); font-weight:700; display:flex; align-items:center; gap:8px; }
.wx__src b::before{ content:""; width:8px; height:8px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 0 rgba(68,185,178,.6); animation:ping 2.4s infinite; }
.wx__src span{ display:flex; gap:7px; align-items:center; }
.wx__src .ico{ width:15px; height:15px; }
@keyframes ping{ 0%{ box-shadow:0 0 0 0 rgba(68,185,178,.55);} 70%{ box-shadow:0 0 0 9px rgba(68,185,178,0);} 100%{ box-shadow:0 0 0 0 rgba(68,185,178,0);} }

.wx__grid{ display:grid; grid-template-columns:minmax(0,1fr); gap:16px; }
@media (min-width:1000px){ .wx__grid{ grid-template-columns:minmax(0,1.9fr) minmax(0,1fr); gap:20px; } }
.wx__grid > *{ min-width:0; }
.stagewrap{ min-width:0; display:flex; flex-direction:column; }
.stagewrap .stage{ flex:1; }
.card{ background:var(--card); border-radius:var(--r-lg); box-shadow:var(--shadow); }

/* escenario: satélite / técnica */
.stage{ position:relative; border-radius:var(--r-lg); overflow:hidden; background:#23372B; box-shadow:var(--shadow-lg); aspect-ratio:4/5; isolation:isolate; }
@media (min-width:640px){ .stage{ aspect-ratio:4/3; } }
@media (min-width:1000px){ .stage{ aspect-ratio:auto; min-height:640px; } }
.view{ position:absolute; inset:0; transition:opacity .4s var(--ease), transform .4s var(--ease); }
.stage[data-v="sat"] .view--tech,.stage[data-v="tech"] .view--sat{ opacity:0; pointer-events:none; transform:scale(1.015); }
.sat img{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
.sat::before{ content:""; position:absolute; inset:0; z-index:1; background:radial-gradient(120% 90% at 50% 50%,rgba(16,45,66,0) 45%,rgba(16,45,66,.45) 100%),linear-gradient(0deg,rgba(16,45,66,.35),rgba(16,45,66,0) 35%); pointer-events:none; }
.sat canvas,.sat svg.layer{ position:absolute; inset:0; width:100%; height:100%; z-index:2; pointer-events:none; }
.sat svg.ui{ z-index:3; }
.rwy-band{ fill:rgba(68,185,178,.28); stroke:rgba(127,227,220,.9); stroke-width:3; }
.rwy-cl{ stroke:#fff; stroke-width:4; stroke-dasharray:22 18; opacity:.85; }
.ring{ fill:none; stroke:rgba(127,227,220,.8); stroke-width:1.5; transform-box:fill-box; transform-origin:center; animation:ring 5s var(--ease) infinite; }
.ring:nth-of-type(2){ animation-delay:1.6s; }
.ring:nth-of-type(3){ animation-delay:3.2s; }
@keyframes ring{ 0%{ transform:scale(.2); opacity:0;} 15%{ opacity:.9;} 100%{ transform:scale(1); opacity:0;} }
.rlabel{ font-family:var(--head); font-weight:800; font-size:17px; fill:#fff; paint-order:stroke; stroke:rgba(16,45,66,.6); stroke-width:4px; text-anchor:middle; dominant-baseline:central; }
.compass{ position:absolute; z-index:4; left:18px; top:18px; width:58px; height:58px; border-radius:50%; background:rgba(16,45,66,.55); backdrop-filter:blur(8px); -webkit-backdrop-filter:blur(8px); box-shadow:inset 0 0 0 1.5px rgba(255,255,255,.7); display:grid; place-items:center; color:#fff; }
.compass svg{ width:40px; height:40px; }
.pill{ position:absolute; z-index:4; transform:translate(0,-50%); display:flex; align-items:center; gap:12px; padding:12px 18px 12px 14px; border-radius:16px; background:rgba(16,45,66,.86); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); color:#fff; box-shadow:0 0 0 1.5px rgba(127,227,220,.75), 0 18px 40px -16px rgba(0,0,0,.6), 0 0 28px -4px rgba(68,185,178,.45); white-space:nowrap; transition:left .6s var(--ease), top .6s var(--ease); }
.pill .ico{ width:30px; height:30px; color:var(--teal); stroke-width:1.8; }
.pill b{ display:block; font-family:var(--head); font-size:clamp(20px,2.2vw,28px); font-weight:600; letter-spacing:-.01em; line-height:1.05; }
.pill small{ display:block; font-size:12.5px; color:rgba(255,255,255,.78); margin-top:2px; }
.compo{ position:absolute; z-index:4; left:16px; bottom:16px; right:16px; max-width:400px; padding:14px 16px; border-radius:16px; background:rgba(16,45,66,.84); backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px); color:#fff; box-shadow:0 0 0 1px rgba(255,255,255,.14); }
.compo__t{ font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.75); }
.compo__g{ display:grid; grid-template-columns:1fr 1fr; margin-top:10px; }
.compo__g > div{ display:flex; gap:12px; align-items:center; }
.compo__g > div + div{ border-left:1px solid rgba(255,255,255,.18); padding-left:14px; }
.compo__g .ico{ width:28px; height:28px; color:var(--teal); stroke-width:1.8; flex:none; }
.compo__g span{ font-size:13px; color:rgba(255,255,255,.8); display:block; }
.compo__g b{ font-family:var(--head); font-size:26px; font-weight:600; line-height:1.05; display:block; }
.compo__g b small{ font-size:15px; font-weight:500; margin-left:3px; }
.compo__g em{ font-style:normal; font-size:12px; color:rgba(255,255,255,.7); display:block; }
.compo-m{ display:none; margin-top:12px; padding:16px 18px; border-radius:var(--r-lg); background:var(--card); box-shadow:var(--shadow); }
.compo-m .compo__t{ color:var(--navy-2); }
.compo-m .compo__g > div + div{ border-color:var(--line-2); }
.compo-m .compo__g span,.compo-m .compo__g em{ color:var(--muted); }
.compo-m .compo__g b{ color:var(--navy); }
@media (max-width:639px){ .sat .compo{ display:none; } .compo-m{ display:block; } }
.attr{ position:absolute; z-index:4; right:10px; bottom:6px; font-size:10px; color:rgba(255,255,255,.6); }
@media (min-width:640px){ .compo{ right:auto; } }

/* vista técnica */
.view--tech{ background:var(--card); display:grid; }
.tech{ display:grid; grid-template-rows:auto 1fr auto; padding:22px; gap:10px; height:100%; }
.tech__t{ display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; }
.tech svg{ width:100%; height:100%; min-height:0; }
.tech__rw{ fill:var(--ivory-2); stroke:var(--line-2); stroke-width:1.5; }
.tech__cl{ stroke:var(--navy); stroke-width:2; stroke-dasharray:14 12; opacity:.35; }
.tech__num{ font-family:var(--head); font-weight:800; font-size:26px; fill:var(--navy); text-anchor:middle; dominant-baseline:central; }
.tech__wind{ stroke:var(--teal-600); stroke-width:5; fill:none; stroke-linecap:round; }
.tech__head{ stroke:var(--navy); stroke-width:4; fill:none; stroke-linecap:round; }
.tech__x{ stroke:#E0913A; stroke-width:4; fill:none; stroke-linecap:round; }
.tech__dash{ stroke:var(--muted); stroke-width:1.5; stroke-dasharray:5 6; fill:none; opacity:.6; }
.tech__lbl{ font-family:var(--body); font-weight:700; font-size:15px; }
.tech__sub{ font-family:var(--body); font-size:13px; fill:var(--muted); }
.tech__tbl{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
.tech__tbl > div{ border-radius:14px; padding:12px 14px; background:var(--ivory); box-shadow:inset 0 0 0 1px var(--line); }
.tech__tbl > div.is-best{ background:var(--teal-50); box-shadow:inset 0 0 0 1.5px var(--teal); }
.tech__tbl h4{ margin:0; font-family:var(--head); font-size:18px; font-weight:700; color:var(--navy); display:flex; justify-content:space-between; align-items:center; }
.tech__tbl h4 span{ font-family:var(--body); font-size:11px; font-weight:700; letter-spacing:.12em; text-transform:uppercase; color:var(--teal-700); }
.tech__tbl p{ margin:6px 0 0; font-size:14px; color:var(--ink-2); display:flex; justify-content:space-between; gap:10px; }
.tech__tbl p b{ font-family:var(--head); font-weight:600; color:var(--navy); }

/* panel lateral */
.side{ display:grid; gap:16px; align-content:start; }
.rosecard{ padding:22px; }
.rosecard__t{ display:flex; justify-content:space-between; align-items:flex-start; }
.rosecard__t .accent{ margin-top:10px; width:36px; }
.rosecard__t .ico{ width:34px; height:34px; color:var(--navy); stroke-width:1.4; }
.rose{ position:relative; margin:10px auto 0; width:100%; max-width:300px; }
.rose svg{ width:100%; height:auto; overflow:visible; }
.rose .tk{ stroke:var(--line-2); stroke-width:1.2; }
.rose .tk.mj{ stroke:var(--navy); stroke-width:2; }
.rose .cd{ font-family:var(--head); font-size:16px; font-weight:700; fill:var(--navy); text-anchor:middle; dominant-baseline:central; }
.rose .dg{ font-family:var(--body); font-size:11px; fill:var(--muted); text-anchor:middle; dominant-baseline:central; }
.rose .rn{ font-family:var(--head); font-weight:800; font-size:17px; fill:#fff; text-anchor:middle; dominant-baseline:central; }
#roseArrow,#nowArrow{ transform-box:view-box; transition:transform 1.2s var(--ease); }
#roseArrow{ transform-origin:150px 150px; }
.rose__read{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); background:var(--navy); color:#fff; border-radius:14px; padding:9px 14px; text-align:center; box-shadow:var(--shadow-lg); }
.rose__read b{ display:block; font-family:var(--head); font-size:24px; font-weight:600; line-height:1.05; }
.rose__read span{ font-size:12px; color:rgba(255,255,255,.8); }
.mets{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.met{ padding:16px; background:var(--card); border-radius:var(--r); box-shadow:var(--shadow); }
.met .k{ display:flex; align-items:center; gap:8px; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--navy-2); }
.met .k .ico{ width:20px; height:20px; color:var(--teal-600); stroke-width:1.6; }
.met .v{ display:block; font-family:var(--head); font-size:clamp(28px,2.6vw,34px); font-weight:700; line-height:1; margin-top:12px; letter-spacing:-.02em; color:var(--navy); transition:opacity .3s; }
.met .v small{ font-size:.55em; font-weight:600; margin-left:3px; letter-spacing:0; }
.met .s{ display:block; margin-top:6px; font-size:13px; color:var(--muted); line-height:1.35; }

/* próximas 12 horas */
.fc{ grid-column:1 / -1; padding:24px 22px 18px; }
.sec-t{ display:flex; justify-content:space-between; align-items:flex-end; gap:16px; flex-wrap:wrap; }
.sec-t h3{ font-size:clamp(24px,2.6vw,32px); }
.sec-t p{ margin:6px 0 0; color:var(--navy-2); font-size:15px; }
.sec-t .accent{ display:inline-block; width:28px; height:3px; margin:0 10px 0 0; vertical-align:middle; }
.fc__scroll{ overflow-x:auto; margin:18px -22px 0; padding:0 22px 8px; scroll-snap-type:x mandatory; scrollbar-width:thin; scrollbar-color:var(--ivory-3) transparent; }
.fc__track{ position:relative; width:max(100%,1180px); }
@media (max-width:640px){ .fc__track{ width:1260px; } }
.fc__line{ position:relative; height:56px; }
.fc__line svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.fc__dot{ position:absolute; width:12px; height:12px; margin:-6px 0 0 -6px; border-radius:50%; background:var(--teal); box-shadow:0 0 0 4px rgba(68,185,178,.18),0 0 14px rgba(68,185,178,.7); }
.fc__cards{ display:grid; grid-template-columns:repeat(12,1fr); gap:10px; }
.hr{ scroll-snap-align:start; border-radius:14px; background:var(--ivory); box-shadow:inset 0 0 0 1px var(--line); padding:14px 8px 12px; text-align:center; display:grid; justify-items:center; gap:6px; }
.hr__t{ font-family:var(--head); font-size:16px; color:var(--navy-2); }
.hr__a{ width:28px; height:28px; color:var(--navy); transition:transform .8s var(--ease); }
.hr__w{ font-family:var(--head); font-size:24px; font-weight:700; line-height:1; color:var(--navy); }
.hr__w small{ font-size:13px; font-weight:600; margin-left:2px; }
.hr__g{ font-size:12px; color:var(--muted); letter-spacing:.04em; }
.hr__r{ font-size:13.5px; font-weight:700; color:var(--navy-2); margin-top:2px; }
.hr__bar{ width:78%; height:5px; border-radius:5px; background:var(--ivory-3); overflow:hidden; }
.hr__bar i{ display:block; height:100%; border-radius:5px; background:var(--c,var(--rain-2)); width:0; transition:width 1s var(--ease); }
.fc__hint{ display:flex; align-items:center; gap:8px; font-size:14px; color:var(--navy-2); margin-top:8px; }
.fc__hint .ico{ width:18px; height:18px; }
.fc__legend{ display:flex; gap:16px; font-size:12.5px; color:var(--muted); align-items:center; flex-wrap:wrap; }
.fc__legend i{ display:inline-block; width:18px; height:5px; border-radius:4px; margin-right:6px; vertical-align:middle; }
@media (min-width:1000px){ .fc__hint{ display:none; } }

.duo{ grid-column:1 / -1; display:grid; gap:16px; }
@media (min-width:1000px){ .duo{ grid-template-columns:1fr 1.25fr; gap:20px; } }
.sun{ padding:24px 22px; }
.sun__wrap{ position:relative; margin-top:6px; }
.sun__wrap svg{ width:100%; height:auto; overflow:visible; }
.sun__lbl{ position:absolute; top:12px; display:flex; gap:10px; align-items:center; }
.sun__lbl .ico{ width:30px; height:30px; stroke-width:1.5; color:var(--navy); }
.sun__lbl small{ display:block; font-size:13px; color:var(--navy-2); }
.sun__lbl b{ display:block; font-family:var(--head); font-size:26px; font-weight:700; line-height:1; color:var(--navy); }
.sun__lbl--r{ right:0; text-align:left; }
.sun__note{ text-align:center; margin:4px 0 0; color:var(--teal-700); font-weight:600; font-size:15px; }
#sunDot,#sunGlow{ transition:cx 1s var(--ease), cy 1s var(--ease); }
.metar{ padding:24px 22px; display:flex; flex-direction:column; gap:14px; }
.ext{ display:inline-flex; align-items:center; gap:8px; padding:9px 12px; border-radius:10px; background:var(--teal-50); color:var(--teal-700); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; white-space:nowrap; transition:background .2s; }
.ext:hover{ background:var(--teal-100); }
.ext .ico{ width:16px; height:16px; }
.metar__raw{ margin:0; padding:18px 20px; border-radius:14px; background:var(--navy); color:#E7F1F7; font-family:var(--mono); font-size:14.5px; line-height:1.7; word-break:break-word; }
.metar__dec{ display:flex; flex-wrap:wrap; gap:8px; }
.metar__dec span{ font-size:13.5px; padding:6px 10px; border-radius:9px; background:var(--ivory); box-shadow:inset 0 0 0 1px var(--line); color:var(--ink-2); }
.metar__dec b{ color:var(--navy); font-weight:700; }
.cat{ font-size:11px; font-weight:800; letter-spacing:.12em; padding:4px 8px; border-radius:6px; background:var(--teal); color:#fff; }
.info{ display:flex; gap:12px; align-items:center; padding:12px 14px; border-radius:12px; background:#EEF4FA; color:var(--navy-2); font-size:14px; }
.info .ico{ width:20px; height:20px; color:var(--navy-2); }

.wx__foot{ margin-top:22px; display:grid; gap:18px; align-items:center; padding:20px 0 0; border-top:1px solid var(--line); }
@media (min-width:1000px){ .wx__foot{ grid-template-columns:auto auto 1fr auto; gap:28px; } }
.wf{ display:flex; gap:14px; align-items:center; }
.wf .ico{ width:40px; height:40px; stroke-width:1.4; color:var(--navy); }
.wf small{ display:block; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--teal-700); }
.wf b{ font-family:var(--head); font-size:20px; font-weight:700; color:var(--navy); }
.mtn{ height:54px; width:100%; color:#C9D3DD; display:none; }
@media (min-width:1000px){ .mtn{ display:block; } .wf + .wf{ border-left:1px solid var(--line-2); padding-left:28px; } }
.wx__foot .script{ font-size:44px; }
.wx__note{ margin-top:14px; display:flex; gap:10px; align-items:center; color:var(--navy-2); font-size:14px; }
.wx__note .ico{ width:18px; height:18px; }
.wx__err{ display:none; margin:0 0 16px; padding:14px 16px; border-radius:12px; background:#FDECEA; color:#8A2D24; font-size:15px; align-items:center; gap:12px; }
.wx__err.is-on{ display:flex; }
.wx__err button{ margin-left:auto; border:0; background:var(--navy); color:#fff; padding:8px 12px; border-radius:9px; font-weight:700; cursor:pointer; }
.sk{ color:transparent !important; background:linear-gradient(90deg,var(--ivory-2),var(--ivory-3),var(--ivory-2)); background-size:200% 100%; animation:sk 1.3s infinite; border-radius:8px; }
@keyframes sk{ to{ background-position:-200% 0; } }

/* ---------- aeroparque ---------- */
.park{ background:var(--card); }
.park__box{ border-radius:28px; background:var(--teal-50); padding:28px 22px; display:grid; gap:28px; }
@media (min-width:1000px){ .park__box{ padding:44px; grid-template-columns:1fr 1fr; gap:40px; } }
.park__txt p{ color:var(--ink-2); margin:20px 0 0; max-width:50ch; }
.coords{ display:grid; gap:10px; }
.coords__t{ display:flex; align-items:center; gap:8px; }
.coords__t .ico{ width:18px; height:18px; color:var(--teal-600); }
.coords__v{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.coords__v div{ background:var(--card); border-radius:12px; padding:14px 12px; text-align:center; font-family:var(--head); font-size:clamp(18px,2vw,24px); font-weight:500; color:var(--navy); box-shadow:inset 0 0 0 1px var(--line); white-space:nowrap; }
.copy{ justify-self:start; display:inline-flex; align-items:center; gap:8px; border:0; background:transparent; padding:6px 2px; font-weight:700; color:var(--teal-700); cursor:pointer; }
.copy .ico{ width:17px; height:17px; }
.spec{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--line); border-radius:16px; overflow:hidden; box-shadow:inset 0 0 0 1px var(--line); margin-top:4px; }
.spec div{ background:var(--card); padding:14px 16px; }
.spec small{ display:block; font-size:11px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; color:var(--muted); }
.spec b{ display:block; margin-top:4px; font-family:var(--head); font-size:19px; font-weight:600; color:var(--navy); }
.park__photo{ grid-column:1 / -1; position:relative; border-radius:20px; overflow:hidden; aspect-ratio:21/7; }
@media (max-width:760px){ .park__photo{ aspect-ratio:4/3; } }
.park__photo img{ width:100%; height:100%; object-fit:cover; object-position:50% 30%; }
.arrive{ grid-column:1 / -1; display:flex; gap:14px; align-items:center; flex-wrap:wrap; padding:16px 18px; border-radius:16px; background:var(--card); box-shadow:inset 0 0 0 1px var(--line); }
.arrive .ico{ width:24px; height:24px; color:var(--teal-600); }
.arrive p{ margin:0; flex:1 1 280px; color:var(--ink-2); }
.arrive p b{ color:var(--navy); }

/* ---------- galería ---------- */
.gal{ display:grid; grid-template-columns:repeat(2,1fr); gap:10px; }
@media (min-width:900px){ .gal{ grid-template-columns:repeat(3,1fr); gap:16px; } }
.gal button{ position:relative; border:0; padding:0; border-radius:16px; overflow:hidden; aspect-ratio:4/3; cursor:zoom-in; background:var(--ivory-2); }
.gal button:first-child{ grid-column:span 2; aspect-ratio:auto; }
@media (min-width:900px){ .gal button:first-child{ grid-column:auto; aspect-ratio:4/3; } }
.gal img{ width:100%; height:100%; object-fit:cover; transition:transform .9s var(--ease); }
.gal button:hover img{ transform:scale(1.05); }
.gal button::after{ content:""; position:absolute; inset:0; background:linear-gradient(0deg,rgba(16,45,66,.45),rgba(16,45,66,0) 45%); }
.gal button span{ position:absolute; z-index:1; left:14px; bottom:12px; font-size:11px; font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:#fff; }
.lb{ border:0; padding:0; margin:0; width:100vw; height:100svh; max-width:none; max-height:none; background:rgba(12,24,34,.96); color:#fff; }
.lb::backdrop{ background:rgba(12,24,34,.9); }
.lb[open]{ display:grid; grid-template-rows:auto 1fr auto; }
.lb__top{ display:flex; justify-content:space-between; align-items:center; padding:14px 16px; font-size:14px; color:rgba(255,255,255,.7); }
.lb__img{ display:grid; place-items:center; min-height:0; padding:0 12px; touch-action:pan-y; }
.lb__img img{ max-width:100%; max-height:100%; object-fit:contain; border-radius:10px; }
.lb__nav{ display:flex; justify-content:center; gap:12px; padding:14px 16px 22px; }
.lb .icon-btn{ background:rgba(255,255,255,.1); color:#fff; }
.lb .icon-btn:hover{ background:rgba(255,255,255,.2); }

/* ---------- footer ---------- */
.foot{ border-top:1px solid var(--line); padding:56px 0 calc(28px + env(safe-area-inset-bottom)); background:var(--ivory); }
.foot__grid{ display:grid; gap:28px; align-items:center; }
@media (min-width:1000px){ .foot__grid{ grid-template-columns:auto auto 1fr auto; gap:36px; } }
.foot__logo{ width:92px; height:92px; border-radius:50%; }
.foot__quote{ font-family:var(--head); font-size:20px; font-style:italic; font-weight:500; color:var(--navy-2); line-height:1.25; }
.foot nav{ display:flex; flex-wrap:wrap; gap:4px 22px; }
.foot nav a{ text-decoration:none; font-weight:600; font-size:14.5px; color:var(--ink-2); }
.foot nav a:hover{ color:var(--navy); }
.foot__contact{ display:inline-flex; align-items:center; gap:8px; font-weight:600; color:var(--navy); text-decoration:none; font-size:14.5px; }
.foot__contact .ico{ width:18px; height:18px; }
.foot__bottom{ margin-top:36px; padding-top:18px; border-top:1px solid var(--line); display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; font-size:13px; color:var(--muted); }
.foot__bottom a{ color:var(--navy); font-weight:600; text-decoration:none; }

/* reveal */
.rv{ opacity:0; transform:translateY(18px); transition:opacity .8s var(--ease), transform .8s var(--ease); transition-delay:var(--d,0ms); }
.rv.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){
  html{ scroll-behavior:auto; }
  *,*::before,*::after{ animation:none !important; transition:none !important; }
  .rv{ opacity:1; transform:none; }
}
