:root{--ink:#061426;--ink2:#0c223a;--gold:#c99332;--paper:#f1e4cc;--wine:#762c25;--muted:#554432}*{box-sizing:border-box}body{margin:0;color:#201910;background:var(--paper);font-family:'Cormorant Garamond',serif;font-size:18px}.main-nav{position:relative;z-index:10;background:var(--ink);border-bottom:1px solid rgba(201,147,50,.8);min-height:78px}.brand-logo{display:flex;align-items:center;width:132px;height:76px;color:var(--gold)!important;text-decoration:none}.brand-logo:before{content:"";display:block;width:132px;height:72px;background:url('../img/logo/jois-rivers-logo.png') center/contain no-repeat}.brand-logo>span{display:none}.brand-mark{font-size:43px;line-height:1;transform:rotate(-26deg)}.brand-logo strong{display:block;font-size:29px;font-weight:500;font-style:italic;line-height:.8}.brand-logo small{display:block;font:500 8px 'Montserrat',sans-serif;letter-spacing:2px;margin-top:6px}.nav-link{font-family:Cinzel,serif;text-transform:uppercase;font-size:13px;letter-spacing:.2px;color:#f1e4cc!important;margin-left:22px;padding:29px 0 24px!important;border-bottom:2px solid transparent}.nav-link:hover,.nav-link.active{color:var(--gold)!important;border-bottom-color:var(--gold)}.navbar-toggler{border-color:var(--gold)}.navbar-toggler-icon{filter:sepia(1) saturate(4)}
:root .legacy-nav{display:none}

/* El negro del archivo del logo se integra con el azul del encabezado. */
.brand-logo:before{mix-blend-mode:screen}

/* Logo principal: escala ampliada para que el nombre y el lema sean legibles. */
.main-nav{min-height:112px}.brand-logo{width:108px;height:108px}.brand-logo:before{width:108px;height:108px}

/* El lema se presenta al lado del nombre, no debajo de él. */
.main-nav .brand-logo{width:auto;height:auto;gap:10px}.main-nav .brand-logo:before,.main-nav .brand-logo:after{content:none;display:none}.main-nav .brand-logo>span{display:block}.main-nav .brand-logo .brand-mark{position:relative;display:grid;font-size:0;width:42px;height:54px;place-items:center;transform:rotate(-24deg)}.main-nav .brand-logo .brand-mark:before{content:"✒";display:block;color:#d1a44a;font:46px Georgia,serif;line-height:1;text-shadow:0 1px 1px #241506}.main-nav .brand-logo .brand-mark:after{content:"";position:absolute;width:8px;height:8px;bottom:2px;right:3px;background:#d1a44a;border-radius:50%}.main-nav{min-height:78px}.main-nav .nav-link{margin-left:22px}@media(max-width:650px){.main-nav{min-height:64px}.main-nav .brand-logo{width:auto;height:auto;gap:8px}.main-nav .brand-logo .brand-mark{width:30px;height:42px}.main-nav .brand-logo .brand-mark:before{font-size:33px}.main-nav .brand-logo .brand-mark:after{width:6px;height:6px}}
@media(max-width:650px){.main-nav{min-height:86px}.brand-logo{width:78px;height:82px}.brand-logo:before{width:78px;height:78px}}
.hero-section{position:relative;overflow:hidden;min-height:555px;background:radial-gradient(ellipse at 71% 47%,#fbf1dd 0,#e6d0a9 32%,transparent 62%),linear-gradient(110deg,#061426 0%,#0b2737 35%,#c59b50 62%,#702a26 100%);border-bottom:1px solid #bc8a32}.hero-wrap{min-height:555px;display:grid;grid-template-columns:42% 58%;position:relative}.hero-portrait{position:relative;overflow:hidden;background:#0b1720}.hero-portrait:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 45%,rgba(5,20,35,.2) 100%)}.hero-portrait img{width:100%;height:100%;object-fit:cover;object-position:50% 42%;filter:saturate(.9) contrast(1.05)}.hero-copy{position:relative;z-index:2;align-self:center;justify-self:center;text-align:center;width:min(690px,90%);padding:30px 15px 42px;color:#171d25;text-shadow:0 1px 8px rgba(255,247,225,.35)}.eyebrow{font:500 10px Montserrat,sans-serif;letter-spacing:3px;color:#714329;margin:0 0 12px}.hero-copy h1{font:500 clamp(48px,5.7vw,88px) Cinzel,serif;letter-spacing:.15em;text-transform:uppercase;margin:0 0 12px;padding-left:.15em}.hero-subtitle{font:500 18px Cinzel,serif;letter-spacing:1.1px;line-height:1.45;color:#702c28}.hero-subtitle span{color:var(--gold);padding:0 6px}.flourish{display:flex;align-items:center;justify-content:center;gap:8px;color:#a9782c;margin:17px 0 15px}.flourish span{height:1px;width:86px;background:#c6a36e}.flourish i{font-size:10px}.keywords{font-size:15px;line-height:1.75;margin:0;color:#342719}.keywords b{font:500 16px Cinzel,serif;letter-spacing:1.5px;color:#956824}.keywords i{font-style:normal;color:#bd8129;padding:0 6px}.hero-copy blockquote{font-size:25px;font-style:italic;line-height:1.13;max-width:590px;margin:18px auto 24px}.btn-premium{font:500 13px Cinzel,serif;letter-spacing:1px;border:1px solid #ce9933;border-radius:0;background:var(--ink);color:#f8e7bc;padding:12px 27px;box-shadow:0 3px 8px #77501a}.btn-premium:hover{background:#17304a;color:#fff}.btn-premium i{margin-left:8px}.hero-brush{position:absolute;z-index:1;opacity:.35;filter:blur(1px);transform:rotate(-25deg)}.hero-brush-one{width:420px;height:160px;right:-60px;bottom:14px;background:repeating-linear-gradient(12deg,#d97f1d 0 13px,#0c6080 15px 29px,#9c2e28 31px 39px,transparent 41px 55px)}.hero-brush-two{width:400px;height:70px;right:5%;top:32px;background:repeating-linear-gradient(10deg,#0c6b8a 0 16px,transparent 17px 25px)}
.categories{background:linear-gradient(90deg,#e9d9b9,#fff8e9,#e8d6b5);border-bottom:1px solid #c29a61}.category-card{display:flex;align-items:center;justify-content:center;gap:12px;min-height:118px;padding:17px 12px;border-right:1px solid #c9aa78;transition:background .2s}.category-card:last-child{border-right:0}.category-card:hover{background:rgba(255,255,255,.4)}.category-card>i{font-size:39px;color:#a97620}.category-card:nth-child(2)>i{color:#bf4029}.category-card:nth-child(3)>i{color:#10467d}.category-card:nth-child(4)>i{color:#3e6a24}.category-card:nth-child(5)>i{color:#59245c}.category-card h2{font:600 17px Cinzel,serif;text-transform:uppercase;margin:0}.category-card p{font-size:14px;line-height:1.05;margin:3px 0}.category-card a,.text-link{color:#7e2d25;text-decoration:none;font-size:15px;font-weight:600}.category-card a i,.text-link i{font-size:11px;margin-left:4px}
.showcase-section{background:linear-gradient(120deg,rgba(247,237,216,.95),rgba(240,226,195,.92)),radial-gradient(#9e7e50 1px,transparent 1px);background-size:auto,5px 5px;border-bottom:1px solid #9a794a}.showcase-section>.container-fluid{max-width:1530px}.about-panel{background:linear-gradient(rgba(5,22,39,.93),rgba(4,18,33,.96)),url('../img/hero/artist-statue.png') center/cover;color:#f9ecd5;padding:17px 28px;text-align:center;min-height:280px}.panel-title,.showcase-block h2{margin:0;text-transform:uppercase;font:600 18px Cinzel,serif;letter-spacing:1px}.mini-flourish,.section-flourish{color:#c89435;font-size:16px;margin:3px auto 8px}.about-panel>p:not(.panel-title){font-size:16px;line-height:1.25;margin:15px 0 18px}.outline-gold{display:inline-block;color:#f4d89d;border:1px solid #c89435;padding:7px 17px;font:500 12px Cinzel,serif;letter-spacing:.5px;text-decoration:none}.showcase-block{padding:14px 24px;text-align:center;border-right:1px solid #b99766;min-height:280px}.showcase-block h2{color:#1e1b18}.books,.artwork{display:flex;justify-content:center;gap:11px;margin:12px 0 15px}.book{width:83px;height:128px;box-shadow:3px 4px 6px rgba(50,33,16,.35);display:flex;align-items:center;justify-content:center;padding:8px;color:#f5dc9d;font:500 14px Cinzel,serif;line-height:1.15;text-transform:uppercase}.book-one{background:linear-gradient(145deg,#102d52 12%,#020d1d 13% 75%,#c89024 76%)}.book-two{background:linear-gradient(#ead5a7a6,#d5aa60a1),linear-gradient(135deg,#2e5d62,#c58234)}.book-three{background:linear-gradient(145deg,#0c3845,#152332 54%,#bd7622 55% 59%,#57311d 60%)}.art{width:31%;max-width:104px;height:129px;box-shadow:3px 4px 6px rgba(50,33,16,.28)}.art-one{background:radial-gradient(circle at 52% 35%,#e4a264 0 9%,#1f304b 10% 17%,#d04627 18% 29%,#204b62 30% 42%,#d67022 43% 54%,#263a56 55% 67%,#cf4a27 68% 79%,#172c4b 80%)}.art-two{background:linear-gradient(150deg,#37201f 0 35%,#b26c24 36% 44%,#d2ad63 45% 55%,#46352d 56% 100%)}.art-three{background:linear-gradient(160deg,#2d5a71 0 24%,#d9a34e 25% 39%,#274a60 40% 53%,#78a1a0 54% 69%,#c87929 70%)}.timeline{list-style:none;text-align:left;padding:0 0 0 20px;margin:7px auto 11px;max-width:275px;border-left:1px solid #a47136}.timeline li{position:relative;display:grid;grid-template-columns:48px 1fr;gap:8px;font-size:14px;line-height:1.1;padding:0 0 12px}.timeline li:before{content:"";position:absolute;width:9px;height:9px;left:-25px;top:2px;background:#aa3930;border:1px solid #75441e;border-radius:50%}.timeline li:nth-child(3):before{background:#6a8c46}.timeline b{font:600 15px Cinzel,serif}.timeline span{font-size:14px}
.quote-section{position:relative;padding:17px 10px;text-align:center;color:#f4e6cc;background:linear-gradient(90deg,#071525,#142d42 30%,#271c1a 70%,#071525);overflow:hidden}.quote-section:before,.quote-section:after{content:"";position:absolute;top:0;width:27%;height:100%;opacity:.36;background:repeating-linear-gradient(20deg,#bd721d 0 8px,#0d6390 10px 18px,#8c2d26 20px 27px,transparent 29px 37px)}.quote-section:before{left:0}.quote-section:after{right:0}.quote-section p{position:relative;z-index:1;margin:0;font-size:25px;font-style:italic;line-height:1.05}footer{padding:13px 0;background:#061426;color:#e8d9bd;font-size:13px}footer p{margin:0}.footer-legacy{font:500 12px Cinzel,serif;letter-spacing:3px;color:#cf9b3d}.social-icons{display:flex;gap:13px}.social-icons a{border:1px solid #c89435;border-radius:50%;height:30px;width:30px;display:grid;place-items:center;color:#d7a643;text-decoration:none;font-size:14px}
.showcase-block:last-child{border-right:0};margin:0;border:0}.hero-wrap{grid-template-columns:37% 63%;min-height:500px}.showcase-block{border-right:0;border-bottom:1px solid #b99766}.about-panel{min-height:220px}.category-card{border-bottom:1px solid #c9aa78}.category-card:nth-child(odd){border-right:1px solid #c9aa78}}@media(max-width:650px){.main-nav{min-height:64px}.brand-logo{width:104px;height:62px}.brand-logo:before{width:104px;height:58px}.brand-mark{font-size:30px}.brand-logo strong{font-size:22px}.hero-section,.hero-wrap{min-height:auto}.hero-wrap{display:block}.hero-portrait{height:320px}.hero-copy{width:100%;padding:33px 20px}.hero-copy h1{font-size:44px;letter-spacing:.08em;padding-left:.08em}.hero-subtitle{font-size:14px}.keywords{font-size:14px}.hero-copy blockquote{font-size:22px}.category-card{padding:15px;min-height:100px}.category-card p{font-size:13px}.showcase-block{padding:20px}.quote-section p{font-size:21px}.footer-legacy{letter-spacing:1.5px;text-align:center}}

/* Páginas interiores: se conservan las clases existentes con el mismo lenguaje visual. */
.hero-small{padding:90px 0 62px;color:#f7e7c7;text-align:center;background:linear-gradient(rgba(6,20,38,.9),rgba(15,44,59,.84)),url('../img/hero/artist-statue.png') center 42%/cover}.hero-small h1{font:600 clamp(32px,5vw,55px) Cinzel,serif;text-transform:uppercase;letter-spacing:2px}.timeline-section{padding:50px 0}.section-title{text-align:center;font:600 35px Cinzel,serif;text-transform:uppercase;letter-spacing:2px;color:var(--ink);margin-bottom:10px}.timeline-intro{font:400 15px/1.7 'Cormorant Garamond',serif;color:#4a3520;margin:0 0 28px;text-align:justify;}.section-title{text-align:center;font:600 35px Cinzel,serif;text-transform:uppercase;letter-spacing:2px;color:var(--ink);margin-bottom:35px}.timeline{max-width:800px;margin:auto}.timeline-item{padding:20px;margin:20px 0;border-left:3px solid var(--gold);background:#fffaf0;box-shadow:0 4px 16px rgba(45,27,9,.08)}.book-item,.art-card,.article-card,.press-card,.conference-card{height:100%;padding:22px;background:#fffaf0;box-shadow:0 5px 20px rgba(45,27,9,.12)}.book-item{text-align:center}.book-cover{height:300px;margin-bottom:18px;background:linear-gradient(145deg,#0a2544,#8f3026 57%,#d0922d 58%);box-shadow:3px 5px 8px rgba(0,0,0,.25)}.art-card{padding:0;overflow:hidden}.art-card img{width:100%;transition:transform .35s}.art-card:hover img{transform:scale(1.05)}.art-info{padding:20px}.article-card:hover,.press-card:hover,.conference-card:hover{transform:translateY(-5px)}.article-card,.press-card,.conference-card{transition:transform .25s}.article-card h3,.press-card h3,.conference-card h3{color:var(--ink)}.article-card a,.press-card a{color:#8d3429;font-weight:600;text-decoration:none}.footer-premium{margin-top:50px}.form-control{border-radius:0;border-color:#c9ad7c;background:#fffdf7}.form-control:focus{border-color:var(--gold);box-shadow:0 0 0 .2rem rgba(201,147,50,.2)}


/* ============================================================
   OBRAS — Galería dinámica
   ============================================================ */
.obra-card {
  background: #fffaf0;
  box-shadow: 0 5px 20px rgba(45,27,9,.12);
  transition: transform .28s, box-shadow .28s;
  cursor: pointer;
  position: relative;
  overflow: hidden;
}
.obra-card:hover {
  transform: translateY(-6px);
  box-shadow: 0 14px 32px rgba(45,27,9,.2);
}
.obra-card-img-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 3/4;
  background: linear-gradient(145deg, #0a2544, #8f3026 57%, #d0922d 58%);
}
.obra-card-img-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #f7f0e4;
  display: block;
  transition: transform .35s;
}
.obra-card:hover .obra-card-img-wrap img {
  transform: scale(1.06);
}
.obra-card-overlay {
  position: absolute;
  inset: 0;
  background: linear-gradient(to top, rgba(6,20,38,.78) 0%, transparent 55%);
  opacity: 0;
  transition: opacity .28s;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding-bottom: 22px;
}
.obra-card:hover .obra-card-overlay {
  opacity: 1;
}
.obra-card-overlay span {
  color: #f4d89d;
  font: 500 12px 'Cinzel', serif;
  letter-spacing: 1px;
  border: 1px solid #c89435;
  padding: 6px 16px;
}
.obra-card-body {
  padding: 18px 20px 20px;
  text-align: center;
}
.obra-card-title {
  font: 600 17px 'Cinzel', serif;
  color: var(--ink);
  text-transform: uppercase;
  letter-spacing: .5px;
  margin: 0 0 5px;
}
.obra-card-meta {
  font-size: 13px;
  color: var(--muted);
  margin: 0 0 8px;
}
.obra-card-desc {
  font-size: 15px;
  line-height: 1.35;
  color: #3a2c1e;
  margin: 0;
}

/* Estado vacío */
.obras-empty {
  text-align: center;
  padding: 70px 20px;
  color: var(--muted);
}
.obras-empty i {
  font-size: 52px;
  color: #c9ad7c;
  margin-bottom: 18px;
  display: block;
}
.obras-empty p {
  font: italic 400 22px 'Cormorant Garamond', serif;
}

/* ============================================================
   ADMIN — Botón flotante (FAB)
   ============================================================ */
.admin-fab {
  position: fixed;
  bottom: 30px;
  right: 30px;
  z-index: 999;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  border: 1px solid rgba(201,147,50,.4);
  background: rgba(6,20,38,.72);
  color: rgba(201,147,50,.55);
  font-size: 15px;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background .2s, color .2s, border-color .2s, transform .2s;
  backdrop-filter: blur(6px);
}
.admin-fab:hover {
  background: var(--ink);
  color: var(--gold);
  border-color: var(--gold);
  transform: scale(1.1);
}
.admin-fab.is-logged {
  color: var(--gold);
  border-color: var(--gold);
  background: rgba(6,20,38,.9);
}

/* ============================================================
   ADMIN — Modal base
   ============================================================ */
.admin-modal-content {
  border: 1px solid rgba(201,147,50,.45);
  border-radius: 0;
  background: #faf6ee;
}
.admin-modal-header {
  background: var(--ink);
  border-bottom: 1px solid rgba(201,147,50,.5);
  padding: 18px 24px;
}
.admin-modal-title-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
  color: var(--gold);
  font-family: 'Cinzel', serif;
}
.admin-modal-title-wrap i {
  font-size: 18px;
}
.admin-modal-title-wrap .modal-title {
  font: 600 16px 'Cinzel', serif;
  letter-spacing: .5px;
  color: #f4d89d;
  margin: 0;
}
.admin-modal-subtitle {
  font-size: 15px;
  color: var(--muted);
  margin-bottom: 20px;
}
.admin-modal-footer {
  background: rgba(6,20,38,.05);
  border-top: 1px solid #e2d3b8;
  padding: 12px 20px;
}

/* ============================================================
   ADMIN — Formulario
   ============================================================ */
.admin-label {
  font: 500 12px 'Cinzel', serif;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--ink2);
  display: block;
  margin-bottom: 5px;
}
.admin-required {
  color: #a83222;
}
.admin-input {
  border-radius: 0;
  border-color: #c9ad7c;
  background: #fffdf7;
  font-family: 'Cormorant Garamond', serif;
  font-size: 16px;
}
.admin-input:focus {
  border-color: var(--gold);
  box-shadow: 0 0 0 .2rem rgba(201,147,50,.2);
  background: #fff;
}
.admin-input-prefix {
  background: #f1e4cc;
  border-color: #c9ad7c;
  border-radius: 0;
  color: var(--muted);
}
.admin-eye-btn {
  border: 1px solid #c9ad7c;
  border-left: 0;
  background: #f1e4cc;
  color: var(--muted);
  border-radius: 0;
}
.admin-eye-btn:hover {
  background: #e8d4a4;
  color: var(--ink);
}
.admin-hint {
  color: #8a7058;
  font-size: 13px;
  display: block;
  margin-top: 4px;
}
.admin-error {
  color: #a83222;
  font-size: 13px;
}

/* ============================================================
   ADMIN — Zona de subida de imagen
   ============================================================ */
.admin-upload-zone {
  position: relative;
  border: 2px dashed #c9ad7c;
  background: #fffdf7;
  transition: border-color .2s, background .2s;
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
}
.admin-upload-zone:hover,
.admin-upload-zone.dragover {
  border-color: var(--gold);
  background: #fffbf0;
}
.admin-file-input {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  opacity: 0;
  cursor: pointer;
  z-index: 2;
}
.admin-upload-placeholder {
  text-align: center;
  pointer-events: none;
  padding: 20px;
  color: var(--muted);
}
.admin-upload-placeholder i {
  font-size: 38px;
  color: #c9ad7c;
  display: block;
  margin-bottom: 10px;
}
.admin-upload-placeholder span {
  display: block;
  font-size: 15px;
  margin-bottom: 4px;
}
.admin-upload-placeholder small {
  font-size: 12px;
  color: #a08060;
}
.admin-upload-preview {
  position: relative;
  width: 100%;
  height: 100%;
  min-height: 160px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.admin-upload-preview img {
  max-height: 200px;
  max-width: 100%;
  object-fit: contain;
  display: block;
}
.admin-preview-remove {
  position: absolute;
  top: 6px;
  right: 6px;
  z-index: 3;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  border: none;
  background: rgba(168,50,34,.85);
  color: #fff;
  font-size: 14px;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background .2s;
}
.admin-preview-remove:hover {
  background: #8c2218;
}

/* ============================================================
   ADMIN — Tabs
   ============================================================ */
.admin-tabs .nav-link {
  font: 500 12px 'Cinzel', serif;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--muted);
  border-radius: 0;
  border: 1px solid transparent;
  padding: 8px 18px;
}
.admin-tabs .nav-link.active {
  background: var(--ink);
  color: var(--gold);
  border-color: rgba(201,147,50,.4);
}
.admin-tabs .nav-link:hover:not(.active) {
  color: var(--ink);
  background: #f0e4cc;
}

/* ============================================================
   ADMIN — Lista de gestión
   ============================================================ */
.admin-gestion-item {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 12px 14px;
  border: 1px solid #e2d3b8;
  background: #fffdf7;
  margin-bottom: 10px;
  transition: background .2s;
}
.admin-gestion-item:hover {
  background: #fff8ed;
}
.admin-gestion-thumb {
  width: 52px;
  height: 68px;
  object-fit: contain;
  background: #f5ead8;
  flex-shrink: 0;
  border: 1px solid #d4b87a;
}
.admin-gestion-info {
  flex: 1;
  min-width: 0;
}
.admin-gestion-info strong {
  display: block;
  font: 600 14px 'Cinzel', serif;
  color: var(--ink);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.admin-gestion-info small {
  font-size: 12px;
  color: var(--muted);
}
.admin-gestion-actions {
  display: flex;
  gap: 6px;
  flex-shrink: 0;
}
.admin-btn-del {
  border: 1px solid #c0392b;
  background: transparent;
  color: #c0392b;
  width: 32px;
  height: 32px;
  display: grid;
  place-items: center;
  font-size: 14px;
  cursor: pointer;
  transition: background .2s, color .2s;
  border-radius: 0;
}
.admin-btn-del:hover {
  background: #c0392b;
  color: #fff;
}
.admin-gestion-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--muted);
}
.admin-gestion-empty i {
  font-size: 36px;
  color: #c9ad7c;
  margin-bottom: 12px;
  display: block;
}
.admin-gestion-empty p {
  font: italic 18px 'Cormorant Garamond', serif;
  margin: 0;
}
.admin-logout-btn {
  font: 500 11px 'Cinzel', serif;
  letter-spacing: .5px;
  color: #a83222;
  border: 1px solid #c9ad7c;
  border-radius: 0;
  padding: 6px 16px;
  background: transparent;
}
.admin-logout-btn:hover {
  background: #a83222;
  color: #fff;
  border-color: #a83222;
}

/* ============================================================
   LIGHTBOX
   ============================================================ */
.lightbox-dialog {
  max-width: min(92vw, 900px);
}
.lightbox-content {
  background: #050e18;
  border: 1px solid rgba(201,147,50,.3);
  border-radius: 0;
  position: relative;
}
.lightbox-close {
  position: absolute;
  top: 12px;
  right: 14px;
  z-index: 10;
  background: rgba(168,50,34,.75);
  border: none;
  color: #fff;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  font-size: 16px;
  display: grid;
  place-items: center;
  cursor: pointer;
  transition: background .2s;
}
.lightbox-close:hover {
  background: #8c2218;
}
.lightbox-img {
  display: block;
  max-width: 100%;
  max-height: 80vh;
  object-fit: contain;
  margin: 0 auto;
}
.lightbox-caption {
  text-align: center;
  padding: 14px 20px 18px;
  color: #f4d89d;
  font: italic 500 18px 'Cormorant Garamond', serif;
  letter-spacing: .3px;
  border-top: 1px solid rgba(201,147,50,.2);
  min-height: 30px;
}

/* ============================================================
   ADMIN — Toast de confirmación
   ============================================================ */
.admin-toast-wrap {
  position: fixed;
  bottom: 88px;
  right: 28px;
  z-index: 1100;
}
.admin-toast {
  background: var(--ink);
  color: #f4d89d;
  border: 1px solid rgba(201,147,50,.5);
  border-radius: 0;
  font: 500 13px 'Cinzel', serif;
  letter-spacing: .4px;
  padding: 12px 20px;
  min-width: 220px;
  box-shadow: 0 8px 24px rgba(0,0,0,.35);
}
.admin-toast .toast-body {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0;
}
.admin-toast .toast-body i {
  color: #6abf6a;
  font-size: 16px;
}


/* ============================================================
   PRENSA — Descripción hero y galería de fotos
   ============================================================ */
.press-lead {
  max-width: 680px;
  margin-left: auto;
  margin-right: auto;
  font: italic 400 clamp(16px, 2vw, 21px) 'Cormorant Garamond', serif;
  line-height: 1.55;
  color: #f0ddb8;
  opacity: .92;
}

.press-photo-card {
  cursor: pointer;
  overflow: hidden;
  background: #fffaf0;
  box-shadow: 0 4px 16px rgba(45,27,9,.13);
  transition: transform .28s, box-shadow .28s;
}
.press-photo-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 28px rgba(45,27,9,.22);
}
.press-photo-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--ink2);
}
.press-photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #f7f0e4;
  display: block;
  transition: transform .35s;
}

/* Fotos de arte: se ven completas sin recorte */
#tab-colecciones .press-photo-wrap img,
#tab-acuarelas .press-photo-wrap img,
#tab-retratos .press-photo-wrap img,
.arte-galeria-vista .press-photo-wrap img,
#vista-galeria-coleccion .press-photo-wrap img,
#vista-acuarelas .press-photo-wrap img,
#vista-retratos .press-photo-wrap img {
  object-fit: contain;
  background: #f7f0e4;
}
.press-photo-card:hover .press-photo-wrap img {
  transform: scale(1.06);
}
.press-photo-overlay {
  position: absolute;
  inset: 0;
  background: rgba(6,20,38,.48);
  display: grid;
  place-items: center;
  opacity: 0;
  transition: opacity .28s;
  font-size: 32px;
  color: #f4d89d;
}
.press-photo-card:hover .press-photo-overlay {
  opacity: 1;
}
.press-photo-caption {
  padding: 8px 12px 10px;
  font-size: 13px;
  font-style: italic;
  color: var(--muted);
  margin: 0;
  line-height: 1.3;
}

/* Estado vacío galería de prensa */
.press-empty {
  color: var(--muted);
}
.press-empty-icon {
  font-size: 52px;
  display: block;
  margin-bottom: 14px;
  font-style: normal;
}
.press-empty p {
  font: italic 400 20px 'Cormorant Garamond', serif;
}

/* ============================================================
   ARTE — Tabs de sección
   ============================================================ */
.arte-tabs-wrap {
  background: linear-gradient(90deg, #e9d9b9, #fff8e9, #e8d6b5);
  border-bottom: 1px solid #c29a61;
}

.arte-tabs {
  gap: 0;
  border-bottom: none;
}

.arte-tabs .nav-link {
  font: 600 13px 'Cinzel', serif;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--muted);
  background: transparent;
  border: none;
  border-bottom: 3px solid transparent;
  padding: 18px 32px;
  border-radius: 0;
  transition: color .2s, border-color .2s;
}

.arte-tabs .nav-link:hover:not(.active) {
  color: var(--ink);
  border-bottom-color: #c9ad7c;
}

.arte-tabs .nav-link.active {
  color: var(--ink);
  border-bottom-color: var(--gold);
  background: transparent;
}

@media (max-width: 576px) {
  .arte-tabs .nav-link {
    padding: 14px 18px;
    font-size: 11px;
    letter-spacing: 1px;
  }
}

/* ============================================================
   ARTE — Colecciones
   ============================================================ */
.arte-coleccion-header {
  margin-bottom: 20px;
}

.arte-coleccion-title {
  font: 600 clamp(20px, 2.5vw, 28px) 'Cinzel', serif;
  text-transform: uppercase;
  letter-spacing: 1.5px;
  color: var(--ink);
  margin: 0 0 4px;
}

.arte-coleccion-tecnica {
  font: italic 400 15px 'Cormorant Garamond', serif;
  color: var(--muted);
  margin: 0 0 14px;
}

.arte-coleccion-line {
  height: 2px;
  width: 60px;
  background: var(--gold);
}

.arte-coleccion-empty {
  text-align: center;
  padding: 40px 20px;
  color: var(--muted);
  font: italic 400 18px 'Cormorant Garamond', serif;
}

/* ============================================================
   ARTE — Tarjeta de foto (colecciones, acuarelas, retratos)
   ============================================================ */
.arte-photo-card {
  cursor: pointer;
  overflow: hidden;
  background: #fffaf0;
  box-shadow: 0 4px 16px rgba(45,27,9,.13);
  transition: transform .28s, box-shadow .28s;
}

.arte-photo-card:hover {
  transform: translateY(-5px);
  box-shadow: 0 12px 28px rgba(45,27,9,.22);
}

.arte-photo-wrap {
  position: relative;
  overflow: hidden;
  aspect-ratio: 4/3;
  background: var(--ink2);
}

.arte-photo-wrap img {
  width: 100%;
  height: 100%;
  object-fit: contain;
  background: #f7f0e4;
  display: block;
  transition: transform .35s;
}

.arte-photo-card:hover .arte-photo-wrap img {
  transform: scale(1.06);
}

.arte-photo-overlay {
  position: absolute;
  inset: 0;
  background: rgba(6,20,38,.45);
  display: grid;
  place-items: center;
  opacity: 0;
  transition: opacity .28s;
  font-size: 30px;
  color: #f4d89d;
}

.arte-photo-card:hover .arte-photo-overlay {
  opacity: 1;
}

/* ============================================================
   ARTE — Navegación entre vistas
   ============================================================ */
.arte-nav-card {
  cursor: pointer;
  transition: transform .25s, box-shadow .25s;
}
.arte-nav-card:hover {
  transform: translateY(-5px);
}
.arte-card-link {
  color: #8d3429;
  font-weight: 600;
  font-size: 15px;
  text-decoration: none;
  display: inline-block;
  margin-top: 8px;
}
.arte-back-btn {
  display: inline-flex;
  align-items: center;
  font: 500 12px 'Cinzel', serif;
  letter-spacing: .5px;
  text-transform: uppercase;
  color: var(--muted);
  background: transparent;
  border: 1px solid #c9ad7c;
  padding: 7px 18px;
  cursor: pointer;
  transition: background .2s, color .2s;
}
.arte-back-btn:hover {
  background: var(--ink);
  color: var(--gold);
  border-color: var(--ink);
}
.arte-galeria-empty {
  text-align: center;
  padding: 50px 20px;
  color: var(--muted);
  font: italic 400 20px 'Cormorant Garamond', serif;
}

/* ============================================================
   NAVBAR — Icono de pluma moderna
   ============================================================ */
.main-nav .brand-logo .brand-mark {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 48px;
  transform: none;
  font-size: 0;
}

.main-nav .brand-logo .brand-mark i {
  font-size: 30px;
  color: #d1a44a;
  display: block;
  line-height: 1;
  filter: drop-shadow(0 1px 3px rgba(0,0,0,.3));
}

.main-nav .brand-logo .brand-mark::before,
.main-nav .brand-logo .brand-mark::after {
  content: none;
}

@media (max-width: 650px) {
  .main-nav .brand-logo .brand-mark i {
    font-size: 24px;
  }
}

/* ============================================================
   INDEX — Imágenes reales en Obras y Arte destacados
   ============================================================ */
.book {
  padding: 0;
  overflow: hidden;
}
.book img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.art img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
