:root {
    --paper:#F7F7F5;
    --ink:#111214;
    --red:#E21D2B;
    --red-dark:#9F1420;
    --grey:#666A70;
    --line:rgba(17,18,20,.15);
    --display:'Anton',sans-serif;
    --body:'Inter',sans-serif;
    --mono:'JetBrains Mono',monospace
}
* {
    box-sizing:border-box
}
html {
    scroll-behavior:smooth
}
body {
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:var(--body)
}
a {
    color:inherit
}
button,input,textarea {
    font:inherit
}
:focus-visible {
    outline:2px solid var(--red);
    outline-offset:3px
}
.wrap {
    max-width:1180px;
    margin:0 auto;
    padding:0 clamp(1.25rem,4vw,2.5rem)
}
header {
    border-bottom:3px solid var(--red);
    padding:1rem 0
}
.header-row {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem
}
.brand {
    display:flex;
    align-items:center;
    gap:.75rem;
    text-decoration:none
}
.badge {
    width:44px;
    height:44px;
    border-radius:50%;
    background:var(--ink);
    color:var(--paper);
    display:grid;
    place-items:center;
    font: .86rem var(--display);
    position:relative;
    overflow:hidden
}
.badge:after {
    content:'';
    position:absolute;
    background:var(--red);
    width:150%;
    height:32%;
    transform:rotate(-16deg)
}
.badge span {
    position:relative;
    z-index:1
}
.brand-name {
    font:1.3rem var(--display);
    letter-spacing:.02em
}
.brand-tag {
    display:block;
    color:var(--grey);
    font:.62rem var(--mono);
    letter-spacing:.1em
}
.back {
    font:700 .75rem var(--mono);
    text-transform:uppercase;
    text-decoration:none
}
.back:hover {
    color:var(--red)
}
.intro {
    padding:clamp(3rem,8vw,6rem) 0 2.5rem;
    border-bottom:1px solid var(--line)
}
.kicker {
    color:var(--red);
    font:.72rem var(--mono);
    letter-spacing:.16em;
    text-transform:uppercase
}
.intro h1 {
    font:clamp(2.7rem,7vw,5.5rem) var(--display);
    text-transform:uppercase;
    line-height:.95;
    margin:.6rem 0 .8rem
}
.intro p {
    max-width:650px;
    color:var(--grey);
    line-height:1.6
}
.toolbar {
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:1rem;
    flex-wrap:wrap;
    padding:1.5rem 0
}
.tabs,.sort {
    display:flex;
    border:1px solid var(--line);
    border-radius:4px;
    overflow:hidden
}
.tabs button,.sort button {
    border:0;
    background:transparent;
    padding:.65rem .9rem;
    font:700 .7rem var(--mono);
    letter-spacing:.06em;
    text-transform:uppercase;
    cursor:pointer
}
.tabs button.active,.sort button.active {
    background:var(--ink);
    color:var(--paper)
}
.status {
    color:var(--grey);
    font:.68rem var(--mono);
    letter-spacing:.05em;
    text-transform:uppercase;
    margin:.2rem 0 1.5rem
}
.news-list {
    display:grid;
    gap:1rem
}
.news-item {
    display:grid;
    grid-template-columns:170px 1fr;
    gap:1.25rem;
    border-top:1px solid var(--line);
    padding:1.25rem 0
}
.news-image {
    min-height:120px;
    background:linear-gradient(135deg,var(--red-dark),var(--red));
    color:var(--paper);
    display:grid;
    place-items:center;
    font:.65rem var(--mono);
    text-transform:uppercase;
    text-align:center;
    padding:.75rem
}
.news-image img {
    width:100%;
    height:100%;
    object-fit:cover
}
.news-category {
    color:var(--red-dark);
    font:.64rem var(--mono);
    letter-spacing:.08em;
    text-transform:uppercase
}
.news-item h2 {
    font-size:1.25rem;
    line-height:1.2;
    margin:.35rem 0
}
.news-item p {
    color:var(--grey);
    line-height:1.55;
    margin:.35rem 0
}
.byline {
    font:.65rem var(--mono);
    color:var(--grey);
    text-transform:uppercase;
    margin-top:.8rem
}
.photo-list {
    display:grid;
    grid-template-columns:repeat(12,1fr);
    grid-auto-rows:clamp(120px,11vw,170px);
    gap:1rem
}
.photo-item {
    position:relative;
    min-height:0;
    background:var(--ink);
    color:var(--paper);
    overflow:hidden;
    margin:0;
    cursor:zoom-in
}
.photo-item:nth-child(6n+1) {
    grid-column:span 7;
    grid-row:span 3
}
.photo-item:nth-child(6n+2) {
    grid-column:span 5;
    grid-row:span 2
}
.photo-item:nth-child(6n+3) {
    grid-column:span 5;
    grid-row:span 3
}
.photo-item:nth-child(6n+4) {
    grid-column:span 7;
    grid-row:span 2
}
.photo-item:nth-child(6n+5) {
    grid-column:span 4;
    grid-row:span 2
}
.photo-item:nth-child(6n+6) {
    grid-column:span 8;
    grid-row:span 2
}
.photo-item img {
    position:absolute;
    inset:0;
    width:100%;
    height:100%;
    object-fit:cover;
    transition:transform .45s cubic-bezier(.2,.7,.2,1)
}
.photo-item:hover img {
    transform:scale(1.035)
}
.photo-item: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;
    inset:auto 0 0;
    padding:2.8rem .9rem .8rem;
    background:none
}
.photo-caption strong {
    display:block;
    font-size:.95rem;
    line-height:1.25
}
.photo-caption span {
    display:block;
    color:#D5D7D9;
    font:.62rem var(--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-item:hover .photo-zoom,.photo-item: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
}
.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(--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
}
.hidden {
    display:none!important
}
footer {
    margin-top:5rem;
    background:var(--ink);
    color:#bbb;
    padding:1.75rem 0;
    font:.7rem var(--mono);
    letter-spacing:.05em;
    text-transform:uppercase
}
@media(max-width:760px) {
    .photo-list {
        grid-template-columns:1fr 1fr;
        grid-auto-rows:160px
    }
    .photo-item:nth-child(n) {
        grid-column:span 1;
        grid-row:span 2
    }
    .photo-item:nth-child(4n+1) {
        grid-column:span 2;
        grid-row:span 2
    }
}
@media(max-width:620px) {
    .news-item {
        grid-template-columns:1fr
    }
    .news-image {
        min-height:150px
    }
    .toolbar {
        align-items:stretch
    }
    .tabs,.sort {
        width:100%
    }
    .tabs button,.sort button {
        flex:1
    }
    .photo-list {
        grid-template-columns:1fr;
        grid-auto-rows:260px
    }
    .photo-item:nth-child(n) {
        grid-column:span 1;
        grid-row:span 1
    }
    .photo-zoom {
        opacity:1
    }
}
/* V4 — fotos clickeables */
.photo-item {
    cursor:zoom-in
}
.photo-item img {
    cursor:zoom-in
}
.photo-zoom {
    opacity:.85
}
.photo-item:hover .photo-zoom {
    opacity:1
}
/* V5 — noticias ampliables */
body.modal-open {
    overflow:hidden
}
.news-item-clickable {
    position:relative;
    cursor:pointer;
    transition:background .2s ease,transform .2s ease,box-shadow .2s ease;
    padding:1.25rem .75rem;
    border-radius:8px
}
.news-item-clickable:hover {
    background:#fff;
    box-shadow:0 8px 28px rgba(17,18,20,.08);
    transform:translateY(-1px)
}
.news-item-clickable:focus-visible {
    outline:2px solid var(--red);
    outline-offset:3px
}
.news-content {
    min-width:0
}
.news-read-more {
    display:inline-flex;
    align-items:center;
    gap:.45rem;
    margin-top:.8rem;
    color:var(--red);
    font:700 .68rem var(--mono);
    letter-spacing:.07em;
    text-transform:uppercase
}
.news-item-clickable:hover .news-read-more {
    gap:.7rem
}
.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(--red);
    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(--mono);
    letter-spacing:.1em;
    text-transform:uppercase
}
.article-modal-title {
    margin:0
}
#articleModalTitle {
    font:clamp(2rem,5vw,4rem) var(--display);
    line-height:.98;
    text-transform:uppercase;
    max-width:780px;
    margin:.8rem 0 .7rem
}
.article-modal-meta-row {
    display:flex;
    align-items:center;
    gap:.75rem;
    padding-bottom:1.2rem;
    border-bottom:1px solid var(--line)
}
.article-modal-meta-row .article-modal-meta {
    flex:1;
    padding-bottom:0;
    border-bottom:0
}
.article-share {
    flex:0 0 auto;
    border:1px solid var(--ink);
    background:var(--ink);
    color:var(--paper);
    padding:.65rem .85rem;
    font:700 .62rem var(--mono);
    letter-spacing:.05em;
    text-transform:uppercase;
    cursor:pointer;
    white-space:nowrap
}
.article-share:hover {
    background:var(--red);
    border-color:var(--red)
}
.article-share:focus-visible {
    outline:2px solid var(--red);
    outline-offset:2px
}
.article-modal-meta {
    color:var(--grey);
    font:.65rem var(--mono);
    letter-spacing:.05em;
    text-transform:uppercase;
    padding-bottom:1.2rem;
    border-bottom:1px solid var(--line)
}
.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;
    max-height:none;
    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(--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(--red);
    background:rgba(226,29,43,.06);
    font-weight:600
}
.article-modal-body a {
    color:var(--red-dark);
    font-weight:700
}
@media(max-width:620px) {
    .news-item-clickable {
        padding:.9rem 0
    }
    .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-image-wrap {
        max-height:none
    }
    .article-modal-image {
        max-height:none;
        width:100%;
        height:auto
    }
    .article-modal-bajada {
        font-size:1rem
    }
    .article-modal-body {
        font-size:.96rem;
        line-height:1.7
    }
    .article-modal-meta-row {
        align-items:flex-start
    }
    .article-share {
        padding:.58rem .7rem;
        font-size:.58rem
    }
}
/* V6 — archivo fotografico agrupado por fecha/evento */
.photo-groups {
    display:grid;
    gap:2.5rem
}
.photo-group {
    border-top:3px solid var(--ink);
    padding-top:1rem
}
.photo-group-head {
    display:flex;
    justify-content:space-between;
    align-items:end;
    gap:1rem;
    margin-bottom:1rem
}
.photo-group-kicker {
    font:700 .62rem var(--mono);
    letter-spacing:.12em;
    text-transform:uppercase;
    color:var(--red)
}
.photo-group-title {
    font:clamp(1.4rem,3vw,2.2rem) var(--display);
    text-transform:uppercase;
    line-height:1;
    margin:.25rem 0
}
.photo-group-meta {
    font:.62rem var(--mono);
    color:var(--grey);
    text-transform:uppercase;
    text-align:right
}
.photo-group .photo-list {
    margin:0
}
.photo-filters {
    display:grid;
    grid-template-columns:1.2fr 1fr 1fr auto;
    gap:.75rem;
    align-items:end;
    margin:0 0 1.5rem;
    padding:1rem;
    background:#fff;
    border:1px solid var(--line);
    border-radius:6px
}
.photo-filter {
    display:grid;
    gap:.35rem
}
.photo-filter label {
    font:700 .58rem var(--mono);
    text-transform:uppercase;
    letter-spacing:.08em;
    color:var(--grey)
}
.photo-filter select,.photo-filter input {
    width:100%;
    border:1px solid var(--line);
    background:var(--paper);
    padding:.65rem .7rem;
    border-radius:4px;
    font:500 .75rem var(--body);
    color:var(--ink)
}
.photo-filter-reset {
    border:1px solid var(--ink);
    background:var(--ink);
    color:#fff;
    padding:.65rem .8rem;
    border-radius:4px;
    text-decoration:none;
    font:700 .65rem var(--mono);
    text-transform:uppercase;
    cursor:pointer
}
.photo-empty {
    padding:2rem;
    border:1px dashed var(--line);
    color:var(--grey);
    text-align:center
}
.photo-group + .photo-group {
    margin-top:.5rem
}
@media(max-width:800px) {
    .photo-filters {
        grid-template-columns:1fr 1fr
    }
    .photo-filter-reset {
        width:100%
    }
}
@media(max-width:620px) {
    .photo-group-head {
        align-items:start;
        flex-direction:column
    }
    .photo-group-meta {
        text-align:left
    }
    .photo-filters {
        grid-template-columns:1fr
    }
}
/* FASE 10 — archivo fotográfico: grupos horizontales y footer sin solapamientos */
.photo-list.photo-list-groups .photo-group {
    order:initial;
}
.photo-list.photo-list-groups {
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    grid-auto-rows:auto;
    align-items:start;
    gap:2rem;
    overflow:visible;
}
.photo-list.photo-list-groups .photo-group {
    min-width:0;
    height:auto;
    overflow:hidden;
}
.photo-list.photo-list-groups .photo-group .photo-list {
    display:flex;
    gap:.75rem;
    overflow-x:auto;
    overflow-y:hidden;
    padding:0 0 .35rem;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
    grid-template-columns:none;
    grid-auto-rows:none;
}
.photo-list.photo-list-groups .photo-group .photo-item {
    flex:0 0 clamp(190px,18vw,260px);
    width:clamp(190px,18vw,260px);
    height:clamp(150px,13vw,205px);
    min-height:0;
    grid-column:auto!important;
    grid-row:auto!important;
    scroll-snap-align:start;
}
.photo-list.photo-list-groups .photo-group .photo-item img {
    width:100%;
    height:100%;
}
.photo-list.photo-list-groups .photo-group-head {
    min-height:4.2rem;
}
@media(max-width:900px) {
    .photo-list.photo-list-groups {
        grid-template-columns:1fr;
    }
    .photo-list.photo-list-groups .photo-group .photo-item {
        flex-basis:clamp(210px,38vw,280px);
        width:clamp(210px,38vw,280px);
        height:clamp(160px,25vw,210px);
    }
}
@media(max-width:620px) {
    .photo-list.photo-list-groups {
        gap:1.5rem;
    }
    .photo-list.photo-list-groups .photo-group .photo-item {
        flex-basis:78vw;
        width:78vw;
        height:58vw;
        max-height:260px;
    }
}
/* FASE 11 — grupos de fotos a ancho completo + galería por evento */
.photo-list.photo-list-groups {
    display:grid;
    grid-template-columns:1fr;
    gap:2.25rem;
    overflow:visible;
}
.photo-list.photo-list-groups .photo-group {
    width:100%;
    min-width:0;
    border:1px solid var(--line);
    border-top:4px solid var(--ink);
    background:#fff;
    padding:1.15rem;
    cursor:pointer;
    transition:transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}
.photo-list.photo-list-groups .photo-group:hover,
.photo-list.photo-list-groups .photo-group:focus-within {
    transform:translateY(-2px);
    border-top-color:var(--red);
    box-shadow:0 12px 30px rgba(17,18,20,.09);
}
.photo-list.photo-list-groups .photo-group-head {
    min-height:auto;
    margin-bottom:1rem;
}
.photo-group-head-clickable {
    display:flex;
    justify-content:space-between;
    align-items:flex-end;
    gap:1rem;
    width:100%;
}
.photo-group-open-label {
    font:700 .62rem var(--mono);
    letter-spacing:.08em;
    text-transform:uppercase;
    color:var(--red-dark);
    white-space:nowrap;
}
.photo-list.photo-list-groups .photo-group .photo-list {
    display:flex;
    gap:.8rem;
    width:100%;
    overflow-x:auto;
    overflow-y:hidden;
    padding:0 0 .5rem;
    scroll-snap-type:x proximity;
    scrollbar-width:thin;
}
.photo-list.photo-list-groups .photo-group .photo-item {
    flex:0 0 clamp(210px,22vw,300px);
    width:clamp(210px,22vw,300px);
    height:clamp(155px,15vw,220px);
    min-height:0;
    margin:0;
    grid-column:auto!important;
    grid-row:auto!important;
    scroll-snap-align:start;
    cursor:zoom-in;
}
.photo-list.photo-list-groups .photo-group .photo-item img {
    width:100%;
    height:100%;
    object-fit:cover;
}
.photo-group-gallery-hint {
    margin:.75rem 0 0;
    color:var(--grey);
    font:.62rem var(--mono);
    text-transform:uppercase;
    letter-spacing:.06em;
}
.group-gallery {
    position:fixed;
    inset:0;
    z-index:120;
    background:rgba(8,9,11,.96);
    display:none;
    align-items:center;
    justify-content:center;
    padding:clamp(1rem,3vw,2rem);
}
.group-gallery.open {
    display:flex;
}
.group-gallery-panel {
    position:relative;
    width:min(1500px,96vw);
    height:min(94vh,1000px);
    display:grid;
    grid-template-rows:auto 1fr auto;
    gap:1rem;
    color:#fff;
}
.group-gallery-close {
    position:absolute;
    right:0;
    top:0;
    width:42px;
    height:42px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:50%;
    background:rgba(0,0,0,.4);
    color:#fff;
    font-size:1.8rem;
    line-height:1;
    cursor:pointer;
    z-index:3;
}
.group-gallery-header {
    padding-right:3.5rem;
}
.group-gallery-kicker {
    font:700 .62rem var(--mono);
    letter-spacing:.12em;
    text-transform:uppercase;
    color:#ff5260;
}
.group-gallery-title {
    font:clamp(1.6rem,3.2vw,3rem) var(--display);
    line-height:.98;
    text-transform:uppercase;
    margin:.25rem 0;
}
.group-gallery-meta {
    font:.65rem var(--mono);
    color:#b9bdc1;
    text-transform:uppercase;
}
.group-gallery-stage {
    position:relative;
    min-height:0;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#050506;
    border:1px solid rgba(255,255,255,.1);
    overflow:hidden;
}
.group-gallery-image {
    display:block;
    max-width:100%;
    max-height:100%;
    width:auto;
    height:auto;
    object-fit:contain;
}
.group-gallery-nav {
    position:absolute;
    top:50%;
    transform:translateY(-50%);
    width:46px;
    height:46px;
    border:1px solid rgba(255,255,255,.35);
    border-radius:50%;
    background:rgba(0,0,0,.45);
    color:#fff;
    font-size:1.5rem;
    cursor:pointer;
    z-index:2;
}
.group-gallery-prev {
    left:1rem
}
.group-gallery-next {
    right:1rem
}
.group-gallery-caption {
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    padding:3rem 1rem 1rem;
    background:linear-gradient(transparent,rgba(0,0,0,.85));
    font-size:.9rem;
    font-weight:700;
}
.group-gallery-caption span {
    display:block;
    margin-top:.25rem;
    color:#c5c8cb;
    font:.62rem var(--mono);
    text-transform:uppercase;
    font-weight:500;
}
.group-gallery-thumbs {
    display:flex;
    gap:.5rem;
    overflow-x:auto;
    padding:.1rem 0 .35rem;
    scrollbar-width:thin;
}
.group-gallery-thumb {
    flex:0 0 76px;
    width:76px;
    height:58px;
    border:2px solid transparent;
    padding:0;
    background:#111;
    cursor:pointer;
    opacity:.7;
}
.group-gallery-thumb.active {
    border-color:#fff;
    opacity:1;
}
.group-gallery-thumb img {
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
}
@media(max-width:620px) {
    .photo-list.photo-list-groups .photo-group {
        padding:.85rem;
    }
    .photo-group-head-clickable {
        align-items:flex-start;
        flex-direction:column;
        gap:.5rem;
    }
    .photo-list.photo-list-groups .photo-group .photo-item {
        flex-basis:78vw;
        width:78vw;
        height:58vw;
        max-height:260px;
    }
    .group-gallery-panel {
        width:100%;
        height:94vh;
    }
    .group-gallery-nav {
        width:40px;
        height:40px;
    }
    .group-gallery-prev {
        left:.5rem
    }
    .group-gallery-next {
        right:.5rem
    }
    .group-gallery-thumbs {
        gap:.35rem
    }
    .group-gallery-thumb {
        flex-basis:64px;
        width:64px;
        height:50px;
    }
}
/* ---------- Imágenes secundarias dentro de noticias ---------- */
/* ---------- Textura editorial sutil, sin degradados ---------- */
: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
}
.intro,.toolbar,.news-item-clickable,.photo-list.photo-list-groups .photo-group {
    background-image:var(--texture-paper);
    background-size:24px 24px
}
.tabs .active {
    background-image:var(--texture-red);
    background-size:28px 28px
}
/* Logo oficial EMG */
.brand-logo {
    display:block;
    width:90px;
    height:90px;
    object-fit:contain;
    object-position:center;
}
@media(max-width:640px) {
    .brand-logo {
        width:72px;
        height:72px
    }
}
/* FASE 14 — logo oficial */
.brand-logo {
    width:min(250px,42vw);
    height:auto;
    max-height:58px;
    object-fit:contain
}
@media(max-width:640px) {
    .brand-logo {
        width:min(210px,58vw);
        height:auto;
        max-height:50px
    }
}
.archive-header-actions {
    display:flex;
    align-items:center;
    gap:1rem
}
.archive-header-actions .social-nav {
    display:flex;
    align-items:center;
    gap:.45rem
}
.archive-header-actions .social-nav a {
    width:32px;
    height:32px;
    border:1px solid var(--line);
    display:grid;
    place-items:center;
    border-radius:50%;
    text-decoration:none;
    background:rgba(247,247,245,.78);
    transition:.18s
}
.archive-header-actions .social-nav a:hover {
    background:var(--red);
    border-color:var(--red);
    color:#fff
}
.archive-header-actions .social-nav svg {
    width:16px;
    height:16px;
    fill:none;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round
}
@media(max-width:620px) {
    .archive-header-actions {
        width:auto;
        gap:.55rem
    }
    .archive-header-actions .back {
        font-size:.62rem
    }
}
/* 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;
}
