:root {
    --paper:#F7F7F5;
    --paper-dim:#E9E9E6;
    --ink:#111214;
    --ink-soft:#1D1F23;
    --sash:#E21D2B;
    --sash-dark:#9F1420;
    --gold:#D5D7D9;
    --grey:#666A70;
    --line:rgba(20,23,28,0.14);
    --line-paper:rgba(245,243,234,0.16);
    --font-display:'Anton', sans-serif;
    --font-body:'Inter', sans-serif;
    --font-mono:'JetBrains Mono', monospace;
}
* {
    box-sizing:border-box;
}
html {
    scroll-behavior:smooth;
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--font-body);
    -webkit-font-smoothing:antialiased;
}
img {
    max-width:100%;
    display:block;
}
button, select, input, textarea {
    font-family:inherit;
}
a {
    color:inherit;
}
:focus-visible {
    outline:2px solid var(--gold);
    outline-offset:2px;
}
.wrap {
    max-width:1180px;
    margin:0 auto;
    padding:0 clamp(1.25rem,4vw,2.5rem);
}
/* ---------- header ---------- */
.site-header {
    position:sticky;
    top:0;
    z-index:40;
    background:var(--paper);
    border-bottom:3px solid var(--sash);
    display:flex;
    align-items:center;
    gap:1.5rem;
    padding:0.75rem clamp(1.25rem,4vw,2.5rem);
    flex-wrap:wrap;
}
.brand {
    display:flex;
    align-items:center;
    gap:0.75rem;
}
.badge {
    width:44px;
    height:44px;
    min-width:44px;
    border-radius:50%;
    background:var(--ink);
    position:relative;
    overflow:hidden;
    display:flex;
    align-items:center;
    justify-content:center;
}
.badge::before {
    content:'';
    position:absolute;
    width:150%;
    height:32%;
    background:var(--sash);
    top:40%;
    left:-25%;
    transform:rotate(-16deg);
}
.badge span {
    position:relative;
    z-index:2;
    font-family:var(--font-display);
    color:var(--paper);
    font-size:0.86rem;
}
.brand-text {
    display:flex;
    flex-direction:column;
    line-height:1.15;
}
.brand-name {
    font-family:var(--font-display);
    font-size:1.15rem;
    letter-spacing:0.02em;
}
.brand-tag {
    font-family:var(--font-mono);
    font-size:0.62rem;
    letter-spacing:0.12em;
    color:var(--grey);
}
.site-nav {
    display:flex;
    gap:1.5rem;
    margin-left:auto;
    font-family:var(--font-mono);
    font-size:0.78rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
}
.site-nav a {
    text-decoration:none;
    color:var(--ink);
    border-bottom:2px solid transparent;
    padding-bottom:2px;
    transition:border-color .15s ease;
}
.site-nav a:hover {
    border-color:var(--sash);
}
/* ---------- ticker ---------- */
.ticker {
    background:var(--sash);
    overflow:hidden;
    border-bottom:1px solid var(--sash-dark);
}
.ticker-track {
    display:flex;
    width:max-content;
    animation:ticker-scroll 32s linear infinite;
}
.ticker-track span {
    display:inline-flex;
    align-items:center;
    white-space:nowrap;
    font-family:var(--font-mono);
    font-size:0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    color:var(--paper);
    padding:0.4rem 1.25rem;
}
.ticker-track span::after {
    content:'●';
    margin-left:1.25rem;
    color:var(--gold);
    font-size:0.5rem;
}
@keyframes ticker-scroll {
    from {
        transform:translateX(0);
    }
    to {
        transform:translateX(-50%);
    }
}
/* ---------- hero / al aire ---------- */
.hero {
    background:var(--ink);
    color:var(--paper);
    padding:clamp(2.5rem,6vw,4rem) 0;
}
.hero-inner {
    max-width:1180px;
    margin:0 auto;
    padding:0 clamp(1.25rem,4vw,2.5rem);
}
.onair-tag {
    display:inline-flex;
    align-items:center;
    gap:0.5rem;
    font-family:var(--font-mono);
    font-size:0.75rem;
    letter-spacing:0.18em;
    color:var(--gold);
    text-transform:uppercase;
    margin-bottom:0.9rem;
}
.dot {
    width:9px;
    height:9px;
    border-radius:50%;
    background:var(--sash);
    box-shadow:0 0 0 0 rgba(193,39,45,0.6);
    animation:pulse 1.8s infinite;
}
@keyframes pulse {
    0% {
        box-shadow:0 0 0 0 rgba(193,39,45,0.55);
    }
    70% {
        box-shadow:0 0 0 10px rgba(193,39,45,0);
    }
    100% {
        box-shadow:0 0 0 0 rgba(193,39,45,0);
    }
}
.hero h1 {
    font-family:var(--font-display);
    font-size:clamp(2.4rem,7vw,4.4rem);
    margin:0 0 0.5rem;
    letter-spacing:0.01em;
    text-transform:uppercase;
}
.hero-hosts {
    font-size:1rem;
    color:#C9CCD2;
    margin:0 0 2rem;
}
.tabs {
    display:inline-flex;
    border:1px solid var(--line-paper);
    border-radius:4px;
    overflow:hidden;
}
.tabs button {
    background:transparent;
    color:var(--paper);
    border:none;
    padding:0.55rem 1rem;
    font-family:var(--font-mono);
    font-size:0.72rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    cursor:pointer;
}
.tabs button.active {
    background:var(--sash);
}
.radio-pane {
    margin-top:2rem;
}
.waveform {
    display:flex;
    align-items:flex-end;
    gap:4px;
    height:64px;
    margin-bottom:1.75rem;
}
.waveform span {
    width:5px;
    background:var(--sash);
    border-radius:2px;
    animation:bar 1.1s ease-in-out infinite;
}
.waveform.paused span {
    animation-play-state:paused;
    height:6px !important;
    background:#3A404B;
}
@keyframes bar {
    0%,100% {
        height:14%;
    }
    50% {
        height:100%;
    }
}
.player-row {
    display:flex;
    align-items:center;
    gap:1.75rem;
    flex-wrap:wrap;
}
.play-btn {
    display:inline-flex;
    align-items:center;
    gap:0.6rem;
    background:var(--sash);
    color:var(--paper);
    border:none;
    border-radius:4px;
    padding:0.85rem 1.4rem;
    font-weight:700;
    font-size:0.95rem;
    cursor:pointer;
    transition:background .15s ease;
}
.play-btn:hover {
    background:#a91f24;
}
.play-btn .tri {
    width:0;
    height:0;
    border-top:7px solid transparent;
    border-bottom:7px solid transparent;
    border-left:11px solid var(--paper);
}
.play-btn.playing .tri {
    width:11px;
    height:14px;
    border:none;
    background:var(--paper);
    border-radius:1px;
}
.listeners {
    font-family:var(--font-mono);
    font-size:0.8rem;
    color:#C9CCD2;
}
.listeners b {
    color:var(--paper);
}
.video-pane {
    margin-top:2rem;
    border:1.5px solid var(--line-paper);
    border-radius:6px;
    padding:0.75rem;
    text-align:center;
    color:#9BA0AA;
}
.youtube-frame-wrap {
    width:100%;
    aspect-ratio:16 / 9;
    background:#050506;
    border-radius:4px;
    overflow:hidden
}
.youtube-frame {
    width:100%;
    height:100%;
    aspect-ratio:16 / 9;
    border:0;
    border-radius:4px;
    background:#050506;
    display:block;
}
.video-pane p {
    margin:0.75rem 0 0.25rem;
    font-size:0.9rem;
}
.video-pane .fine {
    font-family:var(--font-mono);
    font-size:0.68rem;
    letter-spacing:0.06em;
    color:var(--grey);
    text-transform:uppercase;
    margin-top:0.5rem;
}
.youtube-link {
    display:inline-block;
    color:var(--paper);
    font-family:var(--font-mono);
    font-size:0.68rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    margin-top:0.5rem;
}
/* ---------- schedule ---------- */
.schedule {
    padding:clamp(2.5rem,6vw,3.5rem) 0;
    border-bottom:1px solid var(--line);
}
.schedule h2 {
    font-family:var(--font-display);
    font-size:clamp(1.5rem,3.4vw,2rem);
    text-transform:uppercase;
    margin:0 0 1.25rem;
}
.schedule-grid {
    border-top:1px solid var(--line);
}
.schedule-row {
    display:grid;
    grid-template-columns:150px 1fr 1.4fr;
    gap:1rem;
    align-items:center;
    padding:0.85rem 0;
    border-bottom:1px solid var(--line);
}
.schedule-row .time {
    font-family:var(--font-mono);
    font-size:0.82rem;
    color:var(--sash);
    font-weight:700;
}
.schedule-row .show {
    font-weight:700;
}
.schedule-row .desc {
    color:var(--grey);
    font-size:0.9rem;
}
.schedule-note {
    margin-top:1rem;
    font-size:0.85rem;
    color:var(--grey);
}
/* ---------- section heads ---------- */
.section-head {
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    margin-bottom:1.75rem;
}
.eyebrow {
    display:block;
    font-family:var(--font-mono);
    font-size:0.72rem;
    letter-spacing:0.16em;
    text-transform:uppercase;
    color:var(--sash);
    margin-bottom:0.35rem;
}
.section-head h2 {
    font-family:var(--font-display);
    font-size:clamp(1.6rem,3.6vw,2.25rem);
    text-transform:uppercase;
    margin:0;
}
.cta-btn {
    background:var(--ink);
    color:var(--paper);
    border:none;
    border-radius:4px;
    padding:0.65rem 1.1rem;
    font-weight:700;
    font-size:0.85rem;
    cursor:pointer;
}
.cta-btn:hover {
    background:var(--sash);
}
.loading-tag {
    font-family:var(--font-mono);
    font-size:0.68rem;
    color:var(--grey);
    letter-spacing:0.06em;
    text-transform:uppercase;
}
/* ---------- news ---------- */
.news-section {
    padding:clamp(2.5rem,6vw,3.5rem) 0;
    border-bottom:1px solid var(--line);
}
.news-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(280px,1fr));
    gap:1.5rem;
}
.news-card {
    border:1px solid var(--line);
    border-radius:2px;
    background:#fff;
    display:flex;
    flex-direction:column;
    min-width:0;
    height:100%;
}
.news-media {
    height:150px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:linear-gradient(135deg, var(--sash-dark), var(--sash));
    color:var(--paper);
    font-family:var(--font-mono);
    font-size:0.7rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
}
.news-media img {
    width:100%;
    height:100%;
    object-fit:cover;
}
.news-body {
    padding:1.1rem 1.25rem 0;
    display:flex;
    flex:1 1 auto;
    flex-direction:column;
    gap:0.5rem;
    min-width:0;
}
.news-cat {
    align-self:flex-start;
    font-family:var(--font-mono);
    font-size:0.62rem;
    letter-spacing:0.08em;
    text-transform:uppercase;
    background:var(--paper-dim);
    color:var(--sash-dark);
    padding:0.2rem 0.5rem;
    border-radius:2px;
    font-weight:700;
}
.news-title {
    font-family:var(--font-body);
    font-weight:800;
    font-size:1.05rem;
    line-height:1.3;
    margin:0.15rem 0 0;
}
.news-excerpt {
    font-size:0.88rem;
    color:var(--grey);
    margin:0;
    line-height:1.5;
}
.news-full {
    font-size:0.88rem;
    color:var(--ink);
    margin:0.25rem 0 0;
    line-height:1.55;
    display:none;
}
.news-full.open {
    display:block;
}
.read-more {
    align-self:flex-start;
    background:none;
    border:none;
    padding:0;
    margin-top:0.15rem;
    font-family:var(--font-mono);
    font-size:0.7rem;
    letter-spacing:0.06em;
    text-transform:uppercase;
    color:var(--sash);
    cursor:pointer;
    text-decoration:underline;
}
.news-byline {
    margin: auto -1.25rem 0;
    padding:0.72rem 1.25rem;
    border-top:1px solid var(--line);
    background:rgba(17,18,20,.035);
    font-family:var(--font-mono);
    font-size:0.66rem;
    line-height:1.45;
    color:var(--grey);
    text-transform:uppercase;
    letter-spacing:0.045em;
    overflow-wrap:anywhere;
}
/* ---------- photos ---------- */
.photos-section {
    padding:clamp(2.5rem,6vw,3.5rem) 0;
}
.photo-grid {
    display:grid;
    grid-template-columns:repeat(auto-fill, minmax(220px,1fr));
    grid-auto-rows:150px;
    gap:0.9rem;
}
.photo-tile {
    position:relative;
    border-radius:5px;
    overflow:hidden;
    cursor:default;
    display:flex;
    align-items:center;
    justify-content:center;
    color:var(--paper);
}
.photo-grid .photo-tile:nth-of-type(3n+1) {
    grid-row:span 2;
}
.tint-0 {
    background:linear-gradient(160deg, var(--ink), var(--sash-dark));
}
.tint-1 {
    background:linear-gradient(160deg, var(--sash-dark), var(--sash));
}
.tint-2 {
    background:linear-gradient(160deg, #2A2E36, var(--ink));
}
.photo-tile img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
}
.photo-tile .ph-icon {
    opacity:0.55;
}
.photo-caption {
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    padding:0.7rem 0.85rem 0.6rem;
    background:linear-gradient(to top, rgba(20,23,28,0.88), transparent);
    font-size:0.8rem;
    line-height:1.3;
}
.photo-caption .event {
    display:block;
    font-family:var(--font-mono);
    font-size:0.6rem;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--gold);
    margin-bottom:0.15rem;
}
.photo-caption .credit {
    display:block;
    font-family:var(--font-mono);
    font-size:0.6rem;
    color:#C9CCD2;
    margin-top:0.2rem;
}
/* ---------- footer ---------- */
footer {
    background:var(--ink);
    color:#B7BBC3;
    padding:2.75rem 0 2rem;
}
.footer-grid {
    display:flex;
    justify-content:space-between;
    gap:2rem;
    flex-wrap:wrap;
}
footer .brand-name {
    color:var(--paper);
}
footer p {
    font-size:0.85rem;
    line-height:1.6;
    max-width:420px;
}
.footer-meta {
    font-family:var(--font-mono);
    font-size:0.7rem;
    letter-spacing:0.05em;
    line-height:2;
}
.footer-note {
    margin-top:2rem;
    padding-top:1.25rem;
    border-top:1px solid var(--line-paper);
    font-size:0.72rem;
    color:var(--grey);
}
@media (max-width:720px) {
    .site-header {
        gap:0.85rem;
    }
    .site-nav {
        order:3;
        width:100%;
        margin-left:0;
        justify-content:space-between;
    }
    .schedule-row {
        grid-template-columns:90px 1fr;
    }
    .schedule-row .desc {
        grid-column:1 / -1;
        margin-top:-0.35rem;
    }
    .footer-grid {
        flex-direction:column;
    }
}
@media (prefers-reduced-motion: reduce) {
    .ticker-track, .waveform span, .dot {
        animation:none !important;
    }
}
.footer-brand-name {
    font-size:1.1rem;
    text-transform:uppercase;
}
/* ---------- noticia destacada ---------- */
.featured-news {
    background:var(--ink);
    color:var(--paper);
    border-bottom:1px solid var(--line-paper)
}
.featured-news-link {
    display:block;
    text-decoration:none;
    padding:1.1rem 0
}
.featured-content {
    display:grid;
    grid-template-columns:minmax(0,1fr) minmax(260px,34%);
    gap:1.5rem;
    align-items:center
}
.featured-label {
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    font:800 .68rem var(--font-mono);
    letter-spacing:.12em;
    text-transform:uppercase;
    padding:.38rem .65rem;
    margin-bottom:.7rem;
    background:var(--sash);
    color:#fff
}
.featured-label.urgente::before {
    content:'●';
    animation:urgent-pulse 1s ease-in-out infinite
}
.featured-label.novedad {
    background:#D5D7D9;
    color:var(--ink)
}
.featured-category {
    font:.65rem var(--font-mono);
    letter-spacing:.1em;
    text-transform:uppercase;
    color:#c7c9cc
}
.featured-content h2 {
    font:clamp(1.55rem,3vw,2.65rem)/1.02 var(--font-display);
    text-transform:uppercase;
    margin:.35rem 0 .5rem;
    max-width:820px
}
.featured-content p {
    margin:0;
    color:#d4d6d9;
    line-height:1.5;
    max-width:780px
}
.featured-meta {
    display:block;
    margin-top:.7rem;
    color:#9da1a6;
    font:.62rem var(--font-mono);
    text-transform:uppercase
}
.featured-image {
    aspect-ratio:16/9;
    overflow:hidden;
    background:var(--ink-soft)
}
.featured-image img {
    width:100%;
    height:100%;
    object-fit:cover
}
@keyframes urgent-pulse {
    50% {
        opacity:.35
    }
}
/* ---------- galeria profesional ---------- */
.photo-grid {
    display:grid;
    grid-template-columns:repeat(12,1fr);
    grid-auto-rows:clamp(120px,11vw,170px);
    gap:1rem
}
.photo-tile {
    position:relative;
    overflow:hidden;
    background:var(--ink);
    min-height:0;
    cursor:zoom-in
}
.photo-tile:nth-child(6n+1) {
    grid-column:span 7;
    grid-row:span 3
}
.photo-tile:nth-child(6n+2) {
    grid-column:span 5;
    grid-row:span 2
}
.photo-tile:nth-child(6n+3) {
    grid-column:span 5;
    grid-row:span 3
}
.photo-tile:nth-child(6n+4) {
    grid-column:span 7;
    grid-row:span 2
}
.photo-tile:nth-child(6n+5) {
    grid-column:span 4;
    grid-row:span 2
}
.photo-tile:nth-child(6n+6) {
    grid-column:span 8;
    grid-row:span 2
}
.photo-tile img {
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s cubic-bezier(.2,.7,.2,1)
}
.photo-tile:hover img {
    transform:scale(1.035)
}
.photo-tile::after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 45%,rgba(17,18,20,.82));
    pointer-events:none
}
.photo-caption {
    position:absolute;
    z-index:2;
    left:0;
    right:0;
    bottom:0;
    padding:2.8rem 1rem .9rem;
    color:var(--paper);
    font-size:.9rem;
    line-height:1.25
}
.photo-caption .event {
    display:block;
    color:#d5d7d9;
    font:.6rem var(--font-mono);
    letter-spacing:.1em;
    text-transform:uppercase;
    margin-bottom:.25rem
}
.photo-caption .credit {
    display:block;
    color:#c0c3c7;
    font:.58rem var(--font-mono);
    text-transform:uppercase;
    margin-top:.3rem
}
.photo-zoom {
    position:absolute;
    z-index:3;
    top:.75rem;
    right:.75rem;
    width:34px;
    height:34px;
    border:1px solid rgba(255,255,255,.65);
    background:rgba(17,18,20,.45);
    color:#fff;
    border-radius:50%;
    display:grid;
    place-items:center;
    opacity:0;
    transition:opacity .2s;
    cursor:zoom-in
}
.photo-tile:hover .photo-zoom,.photo-tile:focus-within .photo-zoom {
    opacity:1
}
.photo-zoom svg {
    width:15px;
    height:15px
}
.lightbox {
    position:fixed;
    inset:0;
    z-index:100;
    background:rgba(8,9,11,.94);
    display:none;
    align-items:center;
    justify-content:center;
    padding:clamp(1rem,4vw,3rem)
}
.lightbox.open {
    display:flex
}
.lightbox-figure {
    position:relative;
    max-width:min(1400px,96vw);
    max-height:92vh;
    margin:0;
    display:flex;
    flex-direction:column;
    align-items:center
}
.lightbox-image {
    max-width:96vw;
    max-height:78vh;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:0 16px 50px rgba(0,0,0,.45)
}
.lightbox-caption {
    color:#f7f7f5;
    text-align:center;
    margin-top:.8rem;
    font-size:.85rem;
    line-height:1.4
}
.lightbox-caption span {
    display:block;
    color:#aeb2b7;
    font:.6rem var(--font-mono);
    text-transform:uppercase;
    margin-top:.25rem
}
.lightbox-close {
    position:fixed;
    top:1rem;
    right:1rem;
    width:42px;
    height:42px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:50%;
    background:rgba(0,0,0,.25);
    color:#fff;
    font-size:1.5rem;
    cursor:pointer
}
@media(max-width:760px) {
    .featured-content {
        grid-template-columns:1fr
    }
    .featured-image {
        order:-1
    }
    .photo-grid {
        grid-template-columns:1fr 1fr;
        grid-auto-rows:160px
    }
    .photo-tile:nth-child(n) {
        grid-column:span 1;
        grid-row:span 2
    }
    .photo-tile:nth-child(4n+1) {
        grid-column:span 2;
        grid-row:span 2
    }
}
@media(max-width:520px) {
    .photo-grid {
        grid-template-columns:1fr;
        grid-auto-rows:260px
    }
    .photo-tile:nth-child(n) {
        grid-column:span 1;
        grid-row:span 1
    }
    .featured-content h2 {
        font-size:1.7rem
    }
}
/* ---------- destacada expandible ---------- */
.featured-news-card {
    padding:1.25rem 0
}
.featured-read-more {
    display:inline-block;
    margin-top:.8rem;
    border:1px solid rgba(255,255,255,.4);
    background:transparent;
    color:var(--paper);
    padding:.55rem .8rem;
    border-radius:3px;
    font:700 .68rem var(--font-mono);
    letter-spacing:.06em;
    text-transform:uppercase;
    cursor:pointer
}
.featured-read-more:hover {
    background:var(--paper);
    color:var(--ink)
}
.featured-full {
    display:none;
    margin-top:.9rem;
    color:#e2e4e6;
    line-height:1.65;
    max-width:820px
}
.featured-full.open {
    display:block
}
.featured-full p {
    margin:.6rem 0
}
.featured-full h2,.featured-full h3,.featured-full h4 {
    font-family:var(--font-body);
    text-transform:none;
    font-size:1rem;
    margin:1rem 0 .45rem
}
.featured-full a {
    color:inherit;
    text-decoration:underline
}
/* ---------- lightbox portada ---------- */
.lightbox {
    position:fixed;
    inset:0;
    z-index:100;
    background:rgba(8,9,11,.94);
    display:none;
    align-items:center;
    justify-content:center;
    padding:clamp(1rem,4vw,3rem)
}
.lightbox.open {
    display:flex
}
.lightbox[hidden] {
    display:none
}
.lightbox-figure {
    position:relative;
    max-width:min(1400px,96vw);
    max-height:92vh;
    margin:0;
    display:flex;
    flex-direction:column;
    align-items:center
}
.lightbox-image {
    max-width:96vw;
    max-height:78vh;
    width:auto;
    height:auto;
    object-fit:contain;
    box-shadow:0 16px 50px rgba(0,0,0,.45)
}
.lightbox-caption {
    color:#f7f7f5;
    text-align:center;
    margin-top:.8rem;
    font-size:.85rem;
    line-height:1.4
}
.lightbox-caption span {
    display:block;
    color:#aeb2b7;
    font:.6rem var(--font-mono);
    text-transform:uppercase;
    margin-top:.25rem
}
.lightbox-close {
    position:fixed;
    top:1rem;
    right:1rem;
    width:42px;
    height:42px;
    border:1px solid rgba(255,255,255,.45);
    border-radius:50%;
    background:rgba(0,0,0,.25);
    color:#fff;
    font-size:1.5rem;
    cursor:pointer
}
/* =========================
V4 — jerarquía editorial
========================= */
.featured-news {
    position:relative;
    background:#0d0f12;
    color:var(--paper);
    border-top:6px solid var(--sash);
    border-bottom:1px solid #292c31;
    overflow:hidden
}
.featured-news::before {
    content:'NOTICIA DESTACADA';
    position:absolute;
    right:-2rem;
    top:50%;
    transform:translateY(-50%) rotate(-90deg);
    font:700 .62rem var(--font-mono);
    letter-spacing:.24em;
    color:rgba(255,255,255,.16)
}
.featured-news-card {
    position:relative;
    padding:clamp(1.4rem,3vw,2.7rem) 0 clamp(1.6rem,3vw,2.9rem)
}
.featured-label {
    position:relative;
    display:inline-flex;
    align-items:center;
    gap:.55rem;
    padding:.5rem .8rem;
    margin:0 0 1rem;
    background:var(--sash);
    color:#fff;
    font:800 .7rem var(--font-mono);
    letter-spacing:.14em;
    text-transform:uppercase;
    border-left:5px solid #fff;
    box-shadow:8px 8px 0 rgba(226,29,43,.18)
}
.featured-label.urgente {
    background:var(--sash)
}
.featured-label.novedad {
    background:#f1f2ef;
    color:#111;
    border-left-color:var(--sash)
}
.featured-label.urgente::before {
    content:'●';
    animation:urgent-pulse 1s ease-in-out infinite
}
.featured-content {
    grid-template-columns:minmax(0,1.05fr) minmax(330px, .95fr);
    gap:clamp(1.5rem,4vw,3.5rem);
    align-items:stretch
}
.featured-content>div:first-child {
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-width:0
}
.featured-category {
    color:#aeb2b7;
    font-size:.64rem;
    letter-spacing:.16em
}
.featured-content h2 {
    font-size:clamp(2.1rem,5vw,4.7rem);
    line-height:.92;
    letter-spacing:-.025em;
    margin:.5rem 0 .9rem;
    max-width:850px;
    text-wrap:balance
}
.featured-content>div:first-child>p {
    font-size:clamp(.95rem,1.4vw,1.15rem);
    max-width:680px;
    color:#d8dade
}
.featured-image {
    position:relative;
    aspect-ratio:4/3;
    min-height:300px;
    border:1px solid rgba(255,255,255,.15);
    box-shadow:18px 18px 0 rgba(226,29,43,.13)
}
.featured-image::after {
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(90deg,rgba(8,9,11,.18),transparent 45%,rgba(8,9,11,.08));
    pointer-events:none
}
.featured-image img {
    transition:transform .7s cubic-bezier(.2,.7,.2,1)
}
.featured-news-card:hover .featured-image img {
    transform:scale(1.025)
}
.featured-meta {
    padding-top:.8rem;
    border-top:1px solid rgba(255,255,255,.14);
    max-width:680px
}
.featured-read-more {
    align-self:flex-start;
    margin-top:1.1rem;
    border:1px solid rgba(255,255,255,.55);
    background:#fff;
    color:#111;
    padding:.68rem .9rem;
    transition:.2s
}
.featured-read-more:hover {
    background:var(--sash);
    border-color:var(--sash);
    color:#fff
}
.featured-full {
    border-top:1px solid rgba(255,255,255,.14);
    padding-top:.9rem
}
@media(max-width:760px) {
    .featured-content {
        grid-template-columns:1fr
    }
    .featured-image {
        order:-1;
        min-height:0
    }
    .featured-news::before {
        display:none
    }
}
/* =========================
TEXTURAS + FONDO AL AIRE
Sin degradados: patrones SVG sutiles.
========================= */
:root {
    --texture-paper:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='24' height='24' viewBox='0 0 24 24'%3E%3Cg fill='none' stroke='%23d8d8d4' stroke-width='.7' opacity='.42'%3E%3Cpath d='M2 6h4M14 18h5M9 2v3M19 8v4M4 20v2M11 12h2'/%3E%3C/g%3E%3Cg fill='%23c9c9c5' opacity='.28'%3E%3Ccircle cx='17' cy='3' r='.8'/%3E%3Ccircle cx='6' cy='14' r='.7'/%3E%3Ccircle cx='21' cy='21' r='.6'/%3E%3C/g%3E%3C/svg%3E");
    --texture-red:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cg fill='none' stroke='%23a91521' stroke-width='1' opacity='.42'%3E%3Cpath d='M-4 8 8 -4M4 18 18 4M14 32 32 14'/%3E%3C/g%3E%3Cg fill='%23f05a64' opacity='.28'%3E%3Ccircle cx='22' cy='6' r='1'/%3E%3Ccircle cx='5' cy='24' r='.8'/%3E%3C/g%3E%3C/svg%3E");
}
body {
    background-color:var(--paper);
    background-image:var(--texture-paper);
    background-size:24px 24px
}
.site-header,.schedule,.news-section,.photos-section {
    background-color:var(--paper);
    background-image:var(--texture-paper);
    background-size:24px 24px
}
.ticker {
    background-color:var(--sash);
    background-image:var(--texture-red);
    background-size:28px 28px
}
.hero {
    position:relative;
    isolation:isolate;
    background-color:var(--ink);
    background-image:var(--air-bg-image, url('../assets/fondo-emg.jpeg'));
    background-size:cover;
    background-position:var(--air-bg-position, center 42%);
    background-repeat:no-repeat;
    overflow:hidden
}
.hero::before {
    content:'';
    position:absolute;
    inset:0;
    background:rgba(17,18,20,var(--air-overlay-opacity,.72));
    z-index:-1
}
.hero-inner {
    position:relative;
    z-index:1
}
.play-btn,.tabs button.active {
    background-color:var(--sash);
    background-image:var(--texture-red);
    background-size:28px 28px
}
.news-card,.photo-tile {
    background-color:#fff;
    background-image:var(--texture-paper);
    background-size:24px 24px
}
/* Logo oficial EMG */
.brand-logo {
    display:block;
    width:104px;
    height:104px;
    object-fit:contain;
    object-position:center;
}
@media(max-width:640px) {
    .brand-logo {
        width:82px;
        height:82px
    }
}
/* FASE 14 — identidad, redes y programación editable */
.site-header {
    min-height:88px
}
.brand-logo {
    width:min(250px,32vw);
    height:auto;
    max-height:58px;
    object-fit:contain
}
.header-actions {
    display:flex;
    align-items:center;
    gap:1.15rem;
    margin-left:auto
}
.social-nav {
    display:flex;
    align-items:center;
    gap:.45rem
}
.social-nav a {
    width:34px;
    height:34px;
    border:1px solid var(--line);
    display:grid;
    place-items:center;
    border-radius:50%;
    text-decoration:none;
    background:rgba(247,247,245,.78);
    transition:background .18s ease,color .18s ease,border-color .18s ease,transform .18s ease
}
.social-nav a:hover {
    background:var(--sash);
    border-color:var(--sash);
    color:#fff;
    transform:translateY(-1px)
}
.social-nav svg {
    width:17px;
    height:17px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round
}
.social-nav a:nth-child(2) svg {
    stroke-width:2.2
}
.schedule-grid {
    display:grid;
    gap:0
}
.schedule-row {
    display:grid;
    grid-template-columns:minmax(150px,.65fr) minmax(180px,1fr) minmax(260px,2fr);
    gap:1.25rem;
    align-items:center;
    padding:1rem 0;
    border-bottom:1px solid var(--line)
}
.schedule-row.partido {
    border-left:4px solid var(--sash);
    padding-left:1rem;
    background:rgba(226,29,43,.035)
}
.schedule-row .time {
    font-family:var(--font-mono);
    font-size:.78rem;
    color:var(--sash);
    font-weight:800;
    text-transform:uppercase
}
.schedule-row .show {
    font-weight:800
}
.schedule-row .desc {
    color:var(--grey);
    font-size:.9rem
}
.schedule-empty {
    padding:1rem 0;
    color:var(--grey);
    font-size:.9rem
}
@media(max-width:820px) {
    .site-header {
        padding-top:.55rem;
        padding-bottom:.55rem
    }
    .brand-logo {
        width:min(220px,48vw);
        max-height:52px
    }
    .header-actions {
        gap:.65rem
    }
    .social-nav {
        order:0
    }
    .site-nav {
        order:0;
        width:auto;
        margin-left:0
    }
    .schedule-row {
        grid-template-columns:100px 1fr
    }
    .schedule-row .desc {
        grid-column:2
    }
}
@media(max-width:640px) {
    .site-header {
        align-items:center
    }
    .brand-logo {
        width:200px;
        max-width:58vw;
        max-height:48px
    }
    .header-actions {
        width:100%;
        justify-content:space-between
    }
    .site-nav {
        flex:1
    }
    .site-nav a {
        font-size:.68rem
    }
    .social-nav a {
        width:32px;
        height:32px
    }
    .schedule-row {
        grid-template-columns:1fr;
        gap:.35rem
    }
    .schedule-row .desc {
        grid-column:auto
    }
    .schedule-row .time {
        font-size:.7rem
    }
}
/* FASE 15.3 — programación: columnas sincronizadas y espacio reservado */
.schedule-row.programa,
.schedule-row.partido {
    grid-template-columns:minmax(300px, .95fr) minmax(230px, 1fr) minmax(280px, 1.45fr);
    align-items:center;
}
.schedule-row.programa .program-time,
.schedule-row.partido .partido-time {
    display:grid;
    grid-template-columns:minmax(108px, max-content) minmax(112px, max-content);
    align-items:baseline;
    justify-content:start;
    column-gap:.85rem;
    width:100%;
    min-width:0;
    white-space:nowrap;
}
.schedule-row.programa .program-day,
.schedule-row.programa .program-hours,
.schedule-row.partido .partido-date,
.schedule-row.partido .partido-hours {
    white-space:nowrap;
    min-width:0;
}
.schedule-row.programa .program-day,
.schedule-row.partido .partido-date {
    overflow:hidden;
    text-overflow:ellipsis;
}
@media(max-width:1050px) {
    .schedule-row.programa,
    .schedule-row.partido {
        grid-template-columns:minmax(245px, .9fr) minmax(190px, 1fr);
    }
    .schedule-row.programa .desc,
    .schedule-row.partido .desc {
        grid-column:1 / -1;
        margin-top:.05rem;
    }
}
@media(max-width:640px) {
    .schedule-row.programa,
    .schedule-row.partido {
        grid-template-columns:1fr;
        gap:.35rem;
    }
    .schedule-row.programa .desc,
    .schedule-row.partido .desc {
        grid-column:auto;
    }
    .schedule-row.programa .program-time,
    .schedule-row.partido .partido-time {
        width:100%;
        max-width:100%;
        grid-template-columns:max-content max-content;
        column-gap:.7rem;
    }
}
/* Noticias ampliables en la portada */
body.modal-open {
    overflow:hidden
}
.news-card {
    transition:transform .2s ease,box-shadow .2s ease
}
.news-card:hover {
    transform:translateY(-1px);
    box-shadow:0 8px 28px rgba(17,18,20,.08)
}
.read-more {
    position:relative;
    z-index:1
}
.article-modal {
    position:fixed;
    inset:0;
    z-index:200;
    display:none;
    overflow-y:auto;
    -webkit-overflow-scrolling:touch;
    overscroll-behavior:contain;
    height:100dvh;
    padding:1rem 0
}
.article-modal.open {
    display:block
}
.article-modal-backdrop {
    position:absolute;
    inset:0;
    background:rgba(8,9,11,.78);
    backdrop-filter:blur(5px)
}
.article-modal-panel {
    position:relative;
    width:min(900px,calc(100% - 2rem));
    max-height:none;
    min-height:calc(100dvh - 2rem);
    overflow:visible;
    margin:0 auto;
    background:var(--paper);
    color:var(--ink);
    border-top:5px solid var(--sash);
    box-shadow:0 24px 80px rgba(0,0,0,.35);
    padding:clamp(1.4rem,4vw,3rem)
}
.article-modal-close {
    position:sticky;
    float:right;
    top:0;
    z-index:2;
    width:42px;
    height:42px;
    margin:-.4rem -.4rem 0 1rem;
    border:1px solid var(--line);
    border-radius:50%;
    background:var(--paper);
    color:var(--ink);
    font-size:1.5rem;
    line-height:1;
    cursor:pointer
}
.article-modal-category {
    display:inline-flex;
    align-items:center;
    min-height:26px;
    padding:.35rem .6rem;
    background:var(--ink);
    color:var(--paper);
    font:700 .62rem var(--font-mono);
    letter-spacing:.1em;
    text-transform:uppercase
}
#articleModalTitle {
    font:clamp(2rem,5vw,4rem) var(--font-display);
    line-height:.98;
    text-transform:uppercase;
    max-width:780px;
    margin:.8rem 0 .7rem
}
.article-modal-meta-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    border-bottom:1px solid var(--line);
    padding-bottom:1.2rem
}
.article-modal-meta {
    color:var(--grey);
    font:.65rem var(--font-mono);
    letter-spacing:.05em;
    text-transform:uppercase
}
.article-share {
    flex:0 0 auto;
    border:1px solid var(--sash);
    background:var(--sash);
    color:#fff;
    padding:.55rem .8rem;
    border-radius:3px;
    font:700 .65rem var(--font-mono);
    letter-spacing:.06em;
    text-transform:uppercase;
    cursor:pointer
}
.article-share:hover {
    background:var(--sash-dark);
    border-color:var(--sash-dark)
}
.article-modal-image-wrap {
    margin:1.5rem 0 1.4rem;
    background:#111;
    overflow:hidden;
    display:flex;
    justify-content:center;
    align-items:center
}
.article-modal-image {
    display:block;
    width:100%;
    height:auto;
    object-fit:contain
}
.article-modal-bajada {
    font-size:1.08rem;
    font-weight:600;
    line-height:1.6;
    max-width:760px;
    margin:0 0 1.2rem
}
.article-modal-body {
    max-width:760px;
    font-size:1rem;
    line-height:1.78;
    color:#27282b
}
.article-modal-body p {
    margin:0 0 1rem
}
.article-modal-body h2,.article-modal-body h3,.article-modal-body h4 {
    font-family:var(--font-display);
    line-height:1.05;
    text-transform:uppercase;
    margin:1.8rem 0 .8rem
}
.article-modal-body ul,.article-modal-body ol {
    padding-left:1.4rem
}
.article-modal-body blockquote {
    margin:1.5rem 0;
    padding:.9rem 1rem;
    border-left:4px solid var(--sash);
    background:rgba(226,29,43,.06);
    font-weight:600
}
.article-modal-body a {
    color:var(--sash-dark);
    font-weight:700
}
@media(max-width:620px) {
    .article-modal {
        padding:0
    }
    .article-modal-panel {
        width:100%;
        max-height:none;
        min-height:100%;
        margin:0;
        padding:1.25rem 1rem calc(2rem + env(safe-area-inset-bottom, 0px));
        border-top-width:4px
    }
    .article-modal-close {
        margin:-.15rem -.15rem 0 .7rem
    }
    .article-modal-meta-row {
        align-items:flex-start;
        flex-direction:column
    }
    .article-share {
        width:100%
    }
    .article-modal-bajada {
        font-size:1rem
    }
    .article-modal-body {
        font-size:.96rem;
        line-height:1.7
    }
}
/* V38: la noticia abierta se adapta al ancho disponible sin forzar el alto. */
.article-modal-panel {
    min-height:0;
}
.article-modal-image-wrap {
    width:100%;
    max-width:100%;
    background:transparent;
    box-sizing:border-box;
}
.article-modal-image {
    display:block;
    width:auto;
    max-width:100%;
    height:auto;
    max-height:none;
    object-fit:contain;
    margin:0 auto;
}
