.sp-section{padding:clamp(4rem,8vw,7rem) 0;background:#f8f5ef;color:#10233f}.sp-heading{display:flex;justify-content:space-between;align-items:end;gap:2rem;margin-bottom:2.5rem}.sp-heading span,.sp-meta{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:#876a3e;font-weight:700}.sp-heading h1,.sp-heading h2,.sp-detail-heading h1{font-family:Georgia,serif;font-size:clamp(2.2rem,5vw,4.5rem);line-height:1.05;max-width:850px;margin:.7rem 0}.sp-heading p,.sp-detail-heading>p{max-width:650px;color:#596474}.sp-link{color:#805f35;font-weight:700;text-decoration:none}.sp-subtitle{font-family:Georgia,serif;font-size:2rem;margin:3rem 0 1.5rem}.sp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}.sp-card{background:#fff;border-radius:1.2rem;overflow:hidden;box-shadow:0 12px 35px #10233f0c}.sp-card-image{display:block;position:relative;aspect-ratio:4/3;background:#ded6c9;overflow:hidden}.sp-card-image img{width:100%;height:100%;object-fit:cover;transition:transform .5s}.sp-card:hover img{transform:scale(1.04)}.sp-card-image span{position:absolute;left:1rem;top:1rem;background:#10233fe8;color:#fff;border-radius:2rem;padding:.45rem .8rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.1em}.sp-card-body{padding:1.5rem}.sp-card-body h3{font-family:Georgia,serif;font-size:1.55rem;line-height:1.2;margin:.6rem 0}.sp-card-body h3 a{color:inherit;text-decoration:none}.sp-card-body>p:not(.sp-meta){color:#596474;margin-bottom:1rem}.sp-filters{display:flex;gap:1rem;flex-wrap:wrap;margin:2rem 0}.sp-filters a{border:1px solid #b8a987;border-radius:3rem;padding:.65rem 1rem}.sp-detail-heading{padding:3rem 0}.sp-hero{width:100%;max-height:650px;object-fit:cover;border-radius:1.5rem}.sp-content{max-width:800px;margin:3rem auto;line-height:1.8}.sp-content p,.sp-content ul,.sp-content ol{margin:1em 0}.sp-content ul,.sp-content ol{padding-left:2em}.sp-content ul{list-style:disc}.sp-content ol{list-style:decimal}.sp-gallery{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem}.sp-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:1rem}.sp-dialog{position:fixed;inset:0;margin:auto;max-width:95vw;max-height:95vh;background:#0b1829;color:white;padding:1rem;border:0;border-radius:1rem}.sp-dialog::backdrop{background:#07101ce8}.sp-dialog img{display:inline-block;max-width:75vw;max-height:80vh;object-fit:contain}.sp-dialog button{padding:1rem;font-size:1.5rem}.sp-float{position:fixed;right:0;top:43%;z-index:40;display:flex;align-items:center}.sp-float-toggle{writing-mode:vertical-rl;background:#10233f;color:white;padding:1.2rem .75rem;border-radius:.8rem 0 0 .8rem;letter-spacing:.1em;text-transform:uppercase;font-size:.7rem;box-shadow:0 8px 30px #0003}.sp-float-toggle span{color:#d9bd82}.sp-float-panel{width:min(320px,85vw);background:white;border-radius:1rem 0 0 1rem;padding:1rem;box-shadow:0 15px 50px #0003}.sp-float-panel img{width:100%;height:160px;object-fit:cover;border-radius:.7rem}.sp-float-panel h3{font-family:Georgia,serif;font-size:1.4rem;margin:.5rem 0}.sp-float-panel p:not(.sp-meta){font-size:.85rem}.sp-float-top,.sp-float-controls{display:flex;justify-content:space-between;align-items:center;margin-bottom:.6rem}.sp-float-controls{margin-top:1rem;font-size:.8rem}.sp-pagination{margin-top:2rem}@media(max-width:800px){.sp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sp-gallery{grid-template-columns:repeat(2,1fr)}.sp-heading{display:block}.sp-float{top:auto;bottom:5rem}.sp-float-toggle{writing-mode:horizontal-tb;border-radius:2rem 0 0 2rem}.sp-float-panel{position:absolute;right:0;bottom:3rem}.sp-dialog img{max-width:65vw}}@media(max-width:520px){.sp-grid{grid-template-columns:1fr}.sp-card-image{aspect-ratio:16/10}}@media(prefers-reduced-motion:reduce){.sp-card-image img{transition:none}}

/* Espaciado de los encabezados de publicaciones. */
.sp-listing,.sp-detail{padding-top:clamp(2rem,4vw,3.5rem)}
.sp-listing .sp-heading{margin-bottom:1.4rem}
.sp-listing .sp-heading h1,.sp-detail-heading h1{font-size:clamp(2rem,4vw,3.5rem);margin:.45rem 0}
.sp-listing .sp-filters{margin:0 0 1.5rem}
.sp-detail-heading{padding:1.5rem 0 2rem}
@media(max-width:520px){.sp-listing,.sp-detail{padding-top:2rem}}

/* Mantiene completos los afiches verticales y las fotografías horizontales. */
.sp-card-image {
    aspect-ratio: 4 / 5;
    background: #eee9e0;
}
.sp-card-image img {
    object-fit: contain;
}
.sp-card:hover .sp-card-image img {
    transform: none;
}
.sp-hero {
    height: clamp(340px, 70vh, 720px);
    max-height: none;
    object-fit: contain;
    background: #eee9e0;
}
.sp-gallery button {
    overflow: hidden;
    border-radius: 1rem;
    background: #eee9e0;
}
.sp-gallery img {
    object-fit: contain;
}
.sp-float-panel img {
    object-fit: contain;
    background: #eee9e0;
}
@media(max-width:520px) {
    .sp-card-image { aspect-ratio: 4 / 5; }
    .sp-hero { height: min(70vh, 560px); }
}

/* Aviso de novedades: movimiento discreto y tarjeta accesible. */
.sp-float-toggle[aria-expanded="false"] {
    animation: sp-float-attention 4s ease-in-out infinite;
}
.sp-float-toggle span {
    display: inline-block;
    animation: sp-float-sparkle 4s ease-in-out infinite;
}
.sp-float-panel:not([hidden]) {
    animation: sp-float-open .25s ease-out;
}
.sp-float-slide:not([hidden]) {
    display: block;
    color: inherit;
    text-decoration: none;
    border-radius: .75rem;
}
.sp-float-slide .sp-meta { display: block; margin-top: .7rem; }
.sp-float-slide .sp-link { display: inline-block; margin-top: .5rem; }
.sp-float-slide:focus-visible,
.sp-float button:focus-visible { outline: 3px solid #c79b49; outline-offset: 3px; }
@keyframes sp-float-attention {
    0%, 70%, 100% { transform: translateX(0); }
    76%, 88% { transform: translateX(-7px); }
    82%, 94% { transform: translateX(-2px); }
}
@keyframes sp-float-sparkle {
    0%, 70%, 100% { opacity: .7; transform: scale(1); }
    80%, 92% { opacity: 1; transform: scale(1.3); }
}
@keyframes sp-float-open {
    from { opacity: 0; transform: translateX(12px) scale(.98); }
    to { opacity: 1; transform: translateX(0) scale(1); }
}
@media (prefers-reduced-motion: reduce) {
    .sp-float-toggle[aria-expanded="false"], .sp-float-toggle span, .sp-float-panel:not([hidden]) { animation: none; }
}
