/*
Theme Name: Copperbridge
Theme URI: https://copperbridge.org/
Author: Luis Rocamora
Author URI: https://copperbridge.org/
Description: Plantilla inicial de WordPress para Copperbridge Foundation — "Dialogue Through the Arts". Réplica fiel del diseño original: tipografías Bodoni Moda / Poiret One / Work Sans, paleta cobre-verdigris, degradados, espina central ("spine") y animaciones suaves de scroll. Incluye tipos de contenido personalizados (Exposiciones con cuadrícula de temporales en la portada y estados por fechas, Espacios, Viajes y Eventos con agenda), bloque Gutenberg «Agenda Copperbridge» (vista previa real en el editor), widget «Próximos eventos» con zona propia en el pie, exportación WXR con menús incluidos, copia de seguridad de los ajustes del Personalizador, patrones de bloques propios (hero de portada y cabecera de página interior incluidos), estilos del editor de marca y todas las secciones editables desde el Personalizador de WordPress (tamaño de los logos, degradado de las fotos, footer completo). Menú móvil rediseñado con panel cómodo y filas numeradas, avisos de newsletter ocultables en móvil/tablet y respaldo elegante para imágenes que no cargan. Sin dependencias de plugins.
Version: 2.8.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: copperbridge
Tags: one-column, custom-logo, custom-menu, featured-images, translation-ready
*/

/*--------------------------------------------------------------
>>> TABLA DE CONTENIDOS
----------------------------------------------------------------
1.  Variables y base
2.  Accesibilidad (screen readers, focus)
3.  Navegación
4.  Espina central (spine) y pilares (piers)
5.  Hero
6.  Misión
7.  Exposición actual
7b. Exposiciones temporales (cuadrícula, v2.1.0)
8.  Espacios (locations)
9.  Viajes
10. Eventos (agenda)
11. Apoyo (CTA)
12. Footer
13. Animaciones de scroll (reveal)
14. Plantillas de contenido (blog, páginas, single, 404)
15. Utilidades de WordPress (alignments, captions, etc.)
16. Patrones de bloques «Copperbridge»
17. Impresión (@media print)
17b. Responsive 100% — móvil y tablet (v2.7.0): hero svh, táctil 44 px,
     tipografía fluida, tablas con scroll propio y formularios sin zoom iOS.
17c. Móvil (v2.8.0): menú de las tres líneas rediseñado (panel de vidrio
     con filas numeradas), respaldo elegante para imágenes rotas y
     ocultado de pop-ups de newsletter en pantallas pequeñas.
Notas: 10a (tipos de evento y filtro), 10b (agenda en páginas — shortcode),
10c (detalles de marca), 10d (patrón de viajes), 10e (espacios en páginas —
shortcode [cb_locations]), 10f (patrón «exposición destacada»), 10g (patrón
«hero de portada», v1.9.0), 10h (widget «próximos eventos» y zona del pie,
v1.9.0), 10i (patrón «cabecera de página interior», v2.0.0) y 10j (bloque
«Agenda Copperbridge», v2.0.0) van justo después de la sección 10.
--------------------------------------------------------------*/

/* 1. VARIABLES Y BASE
-------------------------------------------------------------- */
:root{
  --copper:#B8733A; --copper-deep:#8A4B23; --copper-light:#D99A5F;
  --verdigris:#4F8577; --verdigris-deep:#2F5049;
  --ink:#1C2321; --paper:#F1E9DA; --paper-2:#E7DBC4;
  --flame:#E2572B;
  --display:'Bodoni Moda',serif; --deco:'Poiret One',cursive; --body:'Work Sans',sans-serif;
  /* v2.7.0 — intensidad del degradado de las fotos (0 = casi naturales,
     .62 = por defecto «un poquito menos», 1 = duotono completo). La controla
     el Personalizador → Estilo — degradado de las fotos, en vivo. */
  --cb-tint:.62;
  /* v2.8.0 — altura de los logos (Personalizador → Estilo — tamaño de los
     logos). El Personalizador las reescribe en vivo; estos son los valores
     por defecto de la marca (34 px cabecera · 30 px pie). */
  --cb-logo-h:34px;
  --cb-logo-f:30px;
}
*{box-sizing:border-box; margin:0; padding:0;}
html{scroll-behavior:smooth;}
body{background:var(--paper); color:var(--ink); font-family:var(--body); overflow-x:hidden; -webkit-font-smoothing:antialiased;}
a{color:inherit; text-decoration:none;}
img{max-width:100%; display:block; height:auto;}
.wrap{max-width:1200px; margin:0 auto; padding:0 40px;}
@media(max-width:640px){.wrap{padding:0 20px;}}

/* 2. ACCESIBILIDAD
-------------------------------------------------------------- */
.screen-reader-text{border:0; clip:rect(1px,1px,1px,1px); clip-path:inset(50%); height:1px; width:1px; margin:-1px; overflow:hidden; padding:0; position:absolute !important; word-wrap:normal !important;}
.screen-reader-text:focus{background-color:var(--paper); clip:auto !important; clip-path:none; color:var(--ink); display:block; font-size:1em; height:auto; left:5px; line-height:normal; padding:15px 23px 14px; text-decoration:none; top:5px; width:auto; z-index:100000;}
.skip-link{position:absolute; left:-9999px; top:0; z-index:999999;}
.skip-link:focus-visible{left:8px; top:8px; background:var(--ink); color:var(--paper); padding:10px 18px; border-radius:2px;}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible{outline:2px solid var(--copper-light); outline-offset:3px; border-radius:2px;}

/* 3. NAVEGACIÓN
-------------------------------------------------------------- */
nav.site-nav{
  position:sticky; top:0; z-index:50; background:rgba(28,35,33,.92); backdrop-filter:blur(6px);
  color:var(--paper); padding:18px 0;
}
nav.site-nav .wrap{display:flex; align-items:center; justify-content:space-between;}
/* v2.8.0: la altura la controla el Personalizador (Estilo — tamaño de los
   logos) a través de --cb-logo-h; el ancho se ajusta solo. */
.nav-mark img{height:var(--cb-logo-h,34px); width:auto; display:block;}
.nav-mark .custom-logo{height:var(--cb-logo-h,34px); width:auto;}
.custom-logo-link{display:block; line-height:0;}
.site-nav .custom-logo-link img.custom-logo{height:var(--cb-logo-h,34px); width:auto; display:block;}
.nav-links{display:flex; gap:30px; font-size:13px; letter-spacing:.04em; text-transform:uppercase;}
.nav-links a{opacity:.85; transition:opacity .2s, color .2s;}
.nav-links a:hover, .nav-links .current-menu-item > a{opacity:1; color:var(--copper-light);}
.nav-cta{background:var(--flame); color:#fff; padding:9px 20px; border-radius:2px; font-size:13px; letter-spacing:.05em; text-transform:uppercase; transition:background .2s, transform .2s;}
.nav-cta:hover{background:#c94a22; transform:translateY(-1px); color:#fff;}
.nav-burger{display:none; flex-direction:column; gap:5px; background:none; border:none; padding:6px; cursor:pointer;}
.nav-burger span{width:22px; height:2px; background:var(--paper); display:block; transition:transform .25s, opacity .25s;}
.nav-burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger[aria-expanded="true"] span:nth-child(2){opacity:0;}
.nav-burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
/* v2.8.0 — Menú móvil rediseñado: panel de vidrio que baja bajo la barra,
   filas numeradas (01, 02…) al estilo de los viajes de la portada, cómodas
   (≥52 px de alto, tipografía 15 px), con flecha al final y la página
   actual resaltada. Se abre con las tres líneas y se cierra con la X, con
   un toque fuera del panel o con la tecla Escape. */
@media(max-width:900px){
  .nav-links{
    display:flex; flex-direction:column; gap:0;
    position:absolute; top:100%; left:3px; right:0;
    background:rgba(28,35,33,.97); -webkit-backdrop-filter:blur(10px); backdrop-filter:blur(10px);
    max-height:0; overflow:hidden; visibility:hidden; padding:0;
    border-bottom-left-radius:8px; border-bottom-right-radius:8px;
    box-shadow:0 28px 48px -20px rgba(0,0,0,.55);
    counter-reset:cb-nav;
    transition:max-height .38s cubic-bezier(.33,0,.2,1), padding .38s cubic-bezier(.33,0,.2,1), visibility 0s linear .38s;
  }
  .nav-links.open{
    max-height:560px; visibility:visible; padding:10px 0 14px;
    border-top:1px solid rgba(241,233,218,.14);
    transition:max-height .38s cubic-bezier(.33,0,.2,1), padding .38s cubic-bezier(.33,0,.2,1), visibility 0s linear 0s;
  }
  .nav-links > li, .nav-links > a{display:block; counter-increment:cb-nav;}
  .nav-links a{
    display:flex; align-items:center; gap:14px;
    min-height:52px; padding:15px 24px 15px 26px;
    font-size:15px; letter-spacing:.09em; opacity:1;
    border-bottom:1px solid rgba(241,233,218,.08);
    transition:background .2s, color .2s;
  }
  .nav-links > li:last-child a, .nav-links > a:last-child{border-bottom:none;}
  .nav-links a::before{
    content:counter(cb-nav, decimal-leading-zero);
    flex:none; width:28px;
    font-family:var(--deco); font-size:13px; letter-spacing:.16em;
    color:var(--copper); opacity:.75;
  }
  .nav-links a::after{
    content:'→'; margin-left:auto; flex:none;
    font-size:14px; color:var(--paper);
    opacity:0; transform:translateX(-6px);
    transition:opacity .2s, transform .2s;
  }
  .nav-links a:hover{background:rgba(241,233,218,.05); color:var(--copper-light); opacity:1;}
  .nav-links a:hover::after, .nav-links a:focus-visible::after{opacity:.7; transform:none;}
  .nav-links .current-menu-item > a{color:var(--copper-light); opacity:1;}
  .nav-links .current-menu-item > a::before{color:var(--copper-light); opacity:1;}
  .nav-links .current-menu-item > a::after{opacity:.5; transform:none;}
  .nav-burger{display:flex;}
}

/* v2.8.0 — Velo tras el panel abierto: un toque fuera y se cierra
   (main.js también escucha Escape y recoge el panel al agrandar). */
@keyframes cb-fade{from{opacity:0;} to{opacity:1;}}
body.nav-open::after{
  content:''; position:fixed; inset:0; z-index:40;
  background:rgba(28,35,33,.45);
  animation:cb-fade .25s ease;
}
@media(min-width:901px){body.nav-open::after{content:none;}}

/* 4. ESPINA CENTRAL (SPINE) Y PILARES
-------------------------------------------------------------- */
.page{position:relative;}
.spine{position:absolute; top:0; bottom:0; left:0; width:5px; z-index:5; pointer-events:none;
  background:linear-gradient(180deg, var(--copper) 0%, var(--copper-light) 25%, var(--verdigris) 65%, var(--verdigris-deep) 100%);
}
@media(max-width:640px){.spine{width:3px;}}
.pier{position:relative;}
.pier::before{
  content:attr(data-pier); position:absolute; left:0; top:52px; z-index:6;
  width:13px; height:13px; border-radius:50%; background:var(--pier-color, var(--copper));
  box-shadow:0 0 0 4px var(--paper); transform:translateX(-4px);
  font-size:0;
}
.pier::after{
  content:attr(data-pier); position:absolute; left:26px; top:48px; z-index:6;
  font-family:var(--deco); font-size:11px; letter-spacing:.2em; text-transform:uppercase;
  color:var(--pier-label, var(--pier-color, var(--copper)));
}
@media(max-width:640px){.pier::after{display:none;}}

/* 5. HERO
-------------------------------------------------------------- */
.hero{
  position:relative; min-height:92vh; display:flex; align-items:flex-end;
  padding-bottom:64px; overflow:hidden; background:var(--ink);
}
.hero-photo{
  position:absolute; inset:0; z-index:0;
  background-position:center 30%; background-size:cover;
  /* v2.7.0 — el filtro escala con el deslizador: menos tinte = más color real */
  filter: grayscale(calc(var(--cb-tint,.62) + (1 - var(--cb-tint,.62))*.4)) contrast(1.08);
}
.hero-tint{
  position:absolute; inset:0; z-index:1;
  background: linear-gradient(150deg, var(--copper) 0%, var(--verdigris) 100%);
  mix-blend-mode: color; opacity:var(--cb-tint,.62);
}
.hero-scrim{
  position:absolute; inset:0; z-index:2;
  background: linear-gradient(180deg, rgba(28,35,33,.05) 0%, rgba(28,35,33,.92) 82%);
}
.hero .wrap{width:100%; position:relative; z-index:3;}
.hero-eyebrow{
  font-family:var(--deco); color:var(--copper-light); letter-spacing:.35em; text-transform:uppercase; font-size:12px; margin-bottom:18px; display:block;
}
.hero h1{
  font-family:var(--display); color:var(--paper); font-weight:700;
  font-size:clamp(44px,8vw,104px); line-height:.95; letter-spacing:-.01em; max-width:900px;
}
.hero-meta{display:flex; gap:36px; margin-top:32px; flex-wrap:wrap;}
.hero-meta div{color:var(--paper-2); font-size:14px;}
.hero-meta strong{display:block; font-family:var(--display); color:var(--paper); font-size:18px; margin-bottom:2px;}
.hero-arch{position:absolute; bottom:0; left:0; width:100%; z-index:1; opacity:.9;}

/* 6. MISIÓN
-------------------------------------------------------------- */
.mission{background:var(--verdigris-deep); color:var(--paper); padding:56px 0;}
.mission p{
  font-family:var(--display); font-style:italic; font-weight:400;
  font-size:clamp(20px,2.6vw,30px); line-height:1.4; max-width:820px;
}
.mission .sig{margin-top:20px; font-family:var(--deco); font-size:12px; letter-spacing:.25em; text-transform:uppercase; color:var(--copper-light);}

/* 7. EXPOSICIÓN ACTUAL
-------------------------------------------------------------- */
.shead{margin-bottom:8px;}
.shead h2{font-family:var(--display); font-weight:700; font-size:clamp(30px,4vw,44px);}
.slede{color:#4a4642; max-width:520px; margin:14px 0 42px; font-size:15px;}
.exhibit{padding:100px 0 90px;}
.exhibit-grid{display:grid; grid-template-columns:1.1fr 1fr; gap:56px; align-items:center;}
.exhibit-img{aspect-ratio:4/5; border-radius:4px; position:relative; overflow:hidden; background:linear-gradient(150deg,var(--copper) 0%,var(--verdigris) 100%);}
.exhibit-img img{width:100%; height:100%; object-fit:cover; filter:grayscale(calc(var(--cb-tint,.62) + (1 - var(--cb-tint,.62))*.4)) contrast(1.08);}
.exhibit-img::after{content:''; position:absolute; inset:0; background:linear-gradient(150deg,var(--copper) 0%,var(--verdigris) 100%); mix-blend-mode:color; opacity:var(--cb-tint,.62); pointer-events:none;}
.exhibit-copy .tag{font-family:var(--deco); text-transform:uppercase; letter-spacing:.25em; font-size:12px; color:var(--copper-deep); margin-bottom:16px; display:block;}
.exhibit-copy h3{font-family:var(--display); font-weight:700; font-size:clamp(28px,4vw,46px); line-height:1.05; margin-bottom:18px;}
.exhibit-copy p{color:#4a4642; font-size:15.5px; max-width:440px; margin-bottom:26px;}
@media(max-width:800px){.exhibit-grid{grid-template-columns:1fr;}}

/* 7b. EXPOSICIONES TEMPORALES — CUADRÍCULA (v2.1.0)
-------------------------------------------------------------- */
.exg{padding:100px 0 90px;}
.exg-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:56px 28px;}
.exg-card{position:relative; display:grid; grid-template-columns:1fr auto; align-items:end; column-gap:10px;}
.exg-img{grid-column:1 / -1; aspect-ratio:4/5; border-radius:4px; overflow:hidden; position:relative; background:linear-gradient(150deg,var(--copper) 0%,var(--verdigris) 100%);}
.exg-img img{width:100%; height:100%; object-fit:cover; filter:grayscale(calc(var(--cb-tint,.62) + (1 - var(--cb-tint,.62))*.4)) contrast(1.08); transition:transform .5s ease, filter .5s ease;}
.exg-img::after{content:''; position:absolute; inset:0; background:linear-gradient(150deg,var(--copper) 0%,var(--verdigris) 100%); mix-blend-mode:color; opacity:var(--cb-tint,.62); pointer-events:none; transition:opacity .5s ease;}
.exg-card:nth-child(even) .exg-img::after{background:linear-gradient(150deg,var(--verdigris) 0%,var(--copper) 100%);}
.exg-card:hover .exg-img img{transform:scale(1.05);}
.exg-card:hover .exg-img::after{opacity:calc(var(--cb-tint,.62)*.8);}
.exg-badge{position:absolute; top:14px; left:14px; z-index:3; font-family:var(--body); font-size:10px; font-weight:600; letter-spacing:.18em; text-transform:uppercase; padding:7px 12px; border-radius:999px; color:var(--paper); background:var(--copper); box-shadow:0 6px 18px rgba(28,35,33,.35);}
.exg-badge--soon{background:var(--verdigris);}
.exg-badge--past{background:rgba(28,35,33,.88); color:var(--paper-2); box-shadow:none;}
.exg-body{display:flex; flex-direction:column; gap:6px; padding:18px 0 2px; min-width:0;}
.exg-artist{font-family:var(--deco); font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:var(--copper-deep);}
.exg-body h4{font-family:var(--display); font-weight:700; font-size:22px; line-height:1.15; transition:color .25s;}
.exg-card:hover .exg-body h4{color:var(--copper-deep);}
.exg-dates{font-size:13px; color:#4a4642; letter-spacing:.02em;}
.exg-dates::before{content:''; display:inline-block; width:22px; height:1px; background:var(--copper); vertical-align:middle; margin-right:9px;}

/* 7c. PISTA PARA EDITORES — marcos sin imagen destacada (v2.2.0)
   El visitante ve el degradado de marca; quien puede editar la entrada
   ve además una etiqueta que señala el panel «Imagen destacada». */
/* v2.3.0: <img> de respaldo (primera imagen del texto) dentro de los marcos */
.cb-cover-auto{display:block;}
.cb-media-hint{position:absolute; inset:0; z-index:4; display:flex; align-items:center; justify-content:center; padding:8%; pointer-events:none;}
.cb-media-hint__box{display:flex; flex-direction:column; align-items:center; gap:8px; max-width:300px; padding:14px 18px; border:1px dashed rgba(241,233,218,.7); border-radius:4px; background:rgba(28,35,33,.72); color:var(--paper); font-family:var(--body); font-size:11.5px; line-height:1.55; letter-spacing:.05em; text-align:center;}
.cb-media-hint__box svg{color:var(--copper-light); opacity:.9; flex-shrink:0;}
.exg-arrow{font-family:var(--display); font-size:20px; color:var(--copper); opacity:0; transform:translateX(-8px); transition:opacity .3s, transform .3s; padding-bottom:3px;}
.exg-card:hover .exg-arrow, .exg-card:focus-visible .exg-arrow{opacity:1; transform:none;}
.exg-more{margin-top:44px;}
.exg-more a{font-family:var(--deco); letter-spacing:.2em; text-transform:uppercase; font-size:12px; color:var(--copper-deep); border-bottom:1px solid var(--copper-light); padding-bottom:5px; transition:color .25s, border-color .25s;}
.exg-more a:hover, .exg-more a:focus-visible{color:var(--verdigris-deep); border-color:var(--verdigris);}
.exg-more span{display:inline-block; transition:transform .25s;}
.exg-more a:hover span{transform:translateX(4px);}
.cb-exhibits-shortcode{margin:56px 0;}
.cb-archive-exg{margin:8px 0 40px;}
/* Variantes de contexto: la ficha de la exposición (single) muestra el
   estado y las fechas dentro del page-hero oscuro. */
.post-meta .exg-badge{position:static; display:inline-block; box-shadow:none; font-size:9px; padding:5px 10px;}
.post-meta .exg-dates{color:#cfc9bd; display:inline-flex; align-items:center; font-size:12.5px;}
.post-meta .exg-dates::before{background:var(--copper-light);}
@media(max-width:1000px){.exg-grid{grid-template-columns:repeat(2,1fr); gap:44px 20px;}}
@media(max-width:640px){.exg-grid{grid-template-columns:1fr; gap:36px;}.exg{padding:72px 0 64px;}}
@media (prefers-reduced-motion: reduce){
  .exg-img img, .exg-img::after, .exg-arrow, .exg-body h4, .exg-more span, .exg-more a{transition:none;}
  .exg-card:hover .exg-img img{transform:none;}
}

/* 8. ESPACIOS (LOCATIONS)
-------------------------------------------------------------- */
.locations{background:var(--paper-2); padding:100px 0;}
.loc-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--ink);}
.loc-card{background:var(--ink); color:var(--paper); aspect-ratio:1/1; padding:24px; position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:flex-end; transition:transform .3s;}
.loc-card img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; filter:grayscale(calc(var(--cb-tint,.62) + (1 - var(--cb-tint,.62))*.4)) contrast(1.08); opacity:.85; transition:opacity .3s, transform .5s;}
.loc-card:hover img{transform:scale(1.06);}
.loc-card::before{content:''; position:absolute; inset:0; z-index:1; mix-blend-mode:color; opacity:var(--cb-tint,.62);
  background:linear-gradient(150deg,var(--copper) 0%,var(--verdigris) 100%);}
.loc-card:nth-child(even)::before{background:linear-gradient(150deg,var(--verdigris) 0%,var(--copper) 100%);}
.loc-card::after{content:''; position:absolute; inset:0; z-index:2; background:linear-gradient(180deg,transparent 35%, var(--ink) 100%);}
.loc-card h4{font-family:var(--display); font-size:20px; position:relative; z-index:3;}
.loc-card span{font-family:var(--deco); font-size:11px; letter-spacing:.15em; text-transform:uppercase; color:var(--copper-light); position:relative; z-index:3; margin-top:4px; display:block;}
@media(max-width:800px){.loc-grid{grid-template-columns:repeat(2,1fr);}}

/* 9. VIAJES
-------------------------------------------------------------- */
.travel{padding:100px 0;}
.travel-list{display:flex; flex-direction:column; border-top:1px solid var(--paper-2);}
.travel-row{display:grid; grid-template-columns:80px 1fr auto; align-items:center; gap:24px; padding:26px 0; border-bottom:1px solid var(--paper-2); transition:padding-left .25s, background .25s; cursor:pointer;}
.travel-row:hover{padding-left:12px; background:rgba(184,115,58,.05);}
.travel-row .tnum{font-family:var(--deco); color:var(--verdigris); font-size:13px;}
.travel-row h4{font-family:var(--display); font-size:24px; font-weight:700;}
.travel-row p{font-size:13px; color:#6b6660; margin-top:2px;}
.travel-row .arrow{font-family:var(--display); font-size:20px; color:var(--copper); transition:transform .25s;}
.travel-row:hover .arrow{transform:translateX(6px);}
@media(max-width:640px){.travel-row{grid-template-columns:48px 1fr auto; gap:14px;}}

/* 10. EVENTOS (AGENDA)
-------------------------------------------------------------- */
.events{padding:100px 0;}
.event-list{display:flex; flex-direction:column; border-top:1px solid var(--paper-2);}
.event-row{display:grid; grid-template-columns:84px 1fr auto; align-items:center; gap:24px; padding:22px 0; border-bottom:1px solid var(--paper-2); transition:padding-left .25s, background .25s; cursor:pointer;}
.event-row:hover{padding-left:12px; background:rgba(226,87,43,.05);}
.ev-date{display:flex; flex-direction:column; line-height:1.05; border-right:1px solid var(--paper-2); padding-right:18px;}
.ev-date strong{font-family:var(--display); font-size:27px; font-weight:700; color:var(--copper-deep);}
.ev-date em{font-family:var(--deco); font-style:normal; text-transform:uppercase; letter-spacing:.18em; font-size:10px; color:var(--verdigris-deep); margin-top:4px;}
.ev-date .ev-year{color:#a39d93; font-size:9px; letter-spacing:.14em;}
.event-row h4{font-family:var(--display); font-size:21px; font-weight:700;}
.event-row p{font-size:13px; color:#6b6660; margin-top:3px;}
.event-row .arrow{font-family:var(--display); font-size:20px; color:var(--flame); transition:transform .25s;}
.event-row:hover .arrow{transform:translateX(6px); color:var(--copper);}
.event-row h4{transition:color .25s;}
.event-row:hover h4{color:var(--copper-deep);}
.event-row .arrow{transition:transform .25s, color .25s;}
@media(max-width:640px){.event-row{grid-template-columns:56px 1fr auto; gap:14px; padding:18px 0;} .ev-date{padding-right:12px;} .event-row h4{font-size:18px;}}

/* 10a. TIPOS DE EVENTO (v1.7.0)
   Chip con el tipo (p. ej. «Opening») dentro de cada fila de la agenda
   y fila de chips de filtro en el archivo /events/. */
.ev-type{display:inline-block; align-self:flex-start; margin-top:7px; padding:3px 11px; border:1px solid rgba(226,87,43,.35); border-radius:999px; font-family:var(--deco); font-style:normal; text-transform:uppercase; letter-spacing:.16em; font-size:9.5px; line-height:1.5; color:var(--flame); transition:background .25s, color .25s;}
.event-row:hover .ev-type{background:var(--flame); color:#fff;}
.ev-filter{display:flex; flex-wrap:wrap; gap:10px; margin:0 0 30px;}
.ev-filter .chip{display:inline-block; padding:7px 16px; border:1px solid var(--paper-2); border-radius:999px; font-family:var(--deco); text-transform:uppercase; letter-spacing:.14em; font-size:10.5px; color:var(--ink); text-decoration:none; transition:border-color .25s, background .25s, color .25s, transform .25s;}
.ev-filter .chip:hover{border-color:var(--copper); color:var(--copper-deep); transform:translateY(-1px);}
.ev-filter .chip.is-active{background:var(--copper); border-color:var(--copper); color:#fff;}
.ev-filter .chip:focus-visible{outline:2px solid var(--flame); outline-offset:2px;}
@media(max-width:640px){.ev-filter{gap:8px; margin-bottom:22px;} .ev-filter .chip{padding:6px 13px; font-size:9.5px;}}

/* 10b. AGENDA EN PÁGINAS (shortcode [cb_events] y patrones)
   El shortcode hereda .event-list/.event-row de arriba; aquí solo el
   envoltorio y el título/enlace opcional del propio shortcode. */
.cb-events-shortcode{margin:28px 0;}
.cb-events-shortcode .cb-sc-title{font-family:var(--display); font-weight:700; font-size:clamp(26px,3.4vw,38px); margin-bottom:10px;}
.cb-events-shortcode .cb-sc-more{margin-top:22px;}
.cb-pattern-agenda h2{font-family:var(--display); font-weight:700;}

/* 10e. ESPACIOS EN PÁGINAS (shortcode [cb_locations], v1.8.0)
   La cuadrícula hereda .loc-grid/.loc-card de la portada; el envoltorio
   limita el ancho y centra como el resto del contenido editorial. */
.cb-locations-shortcode{margin:28px 0;}
.cb-locations-shortcode .cb-sc-title{font-family:var(--display); font-weight:700; font-size:clamp(26px,3.4vw,38px); margin-bottom:10px;}
.cb-locations-shortcode .cb-sc-more{margin-top:22px;}
.cb-locations-shortcode .loc-grid{padding:0 24px;}

/* 10f. PATRÓN «EXPOSICIÓN DESTACADA» (v1.8.0)
   Dos columnas como la sección «Now Showing» de la portada: imagen
   vertical con tinte de marca a la izquierda (duotono del bloque de
   imagen) y etiqueta + título + botón a la derecha. */
.cb-pattern-exhibit{padding:12px 0 4px;}
.cb-pattern-exhibit .wp-block-columns{gap:56px; align-items:center;}
.cb-pattern-exhibit .wp-block-image{border-radius:4px; overflow:hidden; box-shadow:0 22px 44px -22px rgba(28,35,33,.45); margin:0;}
.cb-pattern-exhibit .wp-block-image img{display:block; aspect-ratio:4/5; object-fit:cover; transition:transform .5s ease;}
.cb-pattern-exhibit:hover .wp-block-image img{transform:scale(1.025);}
.cb-pattern-exhibit-copy > * + *{margin-top:14px;}
.cb-pattern-exhibit-copy h2{font-family:var(--display); font-weight:700; line-height:1.08;}
.cb-pattern-exhibit-copy .wp-block-buttons{margin-top:26px;}
@media(max-width:781px){
  .cb-pattern-exhibit .wp-block-columns{gap:28px;}
  .cb-pattern-exhibit-copy h2{font-size:clamp(28px,7vw,38px) !important;}
}
@media(prefers-reduced-motion:reduce){.cb-pattern-exhibit .wp-block-image img{transition:none;}}

/* 10g. PATRÓN «HERO DE PORTADA» (v1.9.0)
   El cover del patrón replica el hero del diseño original: foto con tinte
   de marca y velo de tinta, antetítulo Poiret, titular Bodoni gigante y
   los tres datos (entrada, fechas, dirección) en fila. */
.cb-pattern-hero{min-height:86vh;}
.cb-pattern-hero .wp-block-cover__inner-container{width:100%; max-width:1200px; text-align:left;}
.cb-pattern-hero .cb-hero-eyebrow{color:var(--copper-light) !important; letter-spacing:.35em; font-size:12px; margin-bottom:18px !important;}
.cb-pattern-hero h1{font-family:var(--display); font-weight:700; color:var(--paper); font-size:clamp(44px,8vw,104px); line-height:.95; letter-spacing:-.01em; max-width:900px; margin:0;}
.cb-pattern-hero .cb-hero-meta{gap:36px; margin-top:32px;}
.cb-pattern-hero .cb-hero-meta p{color:var(--paper-2); font-size:14px; margin:0;}
.cb-pattern-hero .cb-hero-meta strong{display:block; font-family:var(--display); color:var(--paper); font-size:18px; margin-bottom:2px; font-weight:700;}
.cb-pattern-hero .cb-hero-buttons{margin-top:36px;}
.cb-pattern-hero .wp-block-button__link{background:var(--copper) !important; color:var(--paper) !important; border-radius:2px; font-size:13px; letter-spacing:.06em; text-transform:uppercase; font-weight:600; padding:13px 28px; transition:background .25s, transform .25s;}
.cb-pattern-hero .wp-block-button__link:hover{background:var(--copper-deep) !important; transform:translateY(-2px);}
@media(max-width:640px){
  .cb-pattern-hero{min-height:74vh;}
  .cb-pattern-hero .cb-hero-meta{gap:18px;}
}
@media(prefers-reduced-motion:reduce){.cb-pattern-hero .wp-block-button__link{transition:none;}}

/* 10h. WIDGET «PRÓXIMOS EVENTOS» Y ZONA «AGENDA DEL PIE» (v1.9.0)
   Filas compactas (fecha Bodoni + título + flecha) válidas sobre fondo
   claro en cualquier barra lateral; en la zona propia del pie (oscura)
   la tira se separa del resto con hairline y la flecha avanza al hover. */
.cbw-list{list-style:none; padding:0; margin:0;}
.cbw-item + .cbw-item{border-top:1px solid rgba(28,35,33,.12);}
.cbw-item a{display:grid; grid-template-columns:56px 1fr 20px; align-items:center; gap:14px; padding:12px 2px; color:inherit; transition:background .2s, padding-left .2s;}
.cbw-item a:hover{background:rgba(184,115,58,.06); padding-left:10px;}
.cbw-date{text-align:center; line-height:1;}
.cbw-date strong{display:block; font-family:var(--display); font-weight:700; font-size:20px; color:var(--copper-deep);}
.cbw-date em{display:block; font-family:var(--deco); font-style:normal; text-transform:uppercase; letter-spacing:.14em; font-size:10px; margin-top:3px; color:#6b6660;}
.cbw-title{display:block; font-family:var(--display); font-weight:700; font-size:15px; line-height:1.25;}
.cbw-place{display:block; font-size:12px; color:#6b6660; margin-top:2px;}
.cbw-arrow{font-family:var(--display); font-size:16px; color:var(--verdigris-deep); opacity:0; transform:translateX(-6px); transition:opacity .2s, transform .2s;}
.cbw-item a:hover .cbw-arrow, .cbw-item a:focus-visible .cbw-arrow{opacity:1; transform:translateX(0);}

/* Zona propia del pie: tira separada del resto del footer. */
.site-footer .cb-foot-widget{padding:44px 0 46px; margin-bottom:52px; border-bottom:1px solid rgba(241,233,218,.12);}
.site-footer .cb-foot-widget .widget-title{font-family:var(--deco); text-transform:uppercase; letter-spacing:.2em; font-size:11px; color:var(--verdigris); margin:0 0 20px;}
.site-footer .cbw-item + .cbw-item{border-top-color:rgba(241,233,218,.1);}
.site-footer .cbw-item a{color:var(--paper-2);}
.site-footer .cbw-item a:hover{background:rgba(217,154,95,.08);}
.site-footer .cbw-date strong{color:var(--copper-light);}
.site-footer .cbw-date em{color:rgba(241,233,218,.45);}
.site-footer .cbw-title{color:var(--paper);}
.site-footer .cbw-place{color:rgba(241,233,218,.5);}
.site-footer .cbw-arrow{color:var(--copper-light);}
@media(prefers-reduced-motion:reduce){.cbw-item a, .cbw-arrow{transition:none;}}

/* 10i. PATRÓN «CABECERA DE PÁGINA INTERIOR» (v2.0.0)
   La banda de arranque de las páginas del tema (page-hero) como pieza
   insertable: degradado verdigris→tinta, miga Poiret en cobre claro,
   titular Bodoni y texto de presentación — ideal para páginas interiores. */
.cb-pattern-pagehero{position:relative; overflow:hidden; color:var(--paper); padding:88px 48px; background:linear-gradient(135deg, var(--verdigris-deep), var(--ink) 75%) !important;}
.cb-pattern-pagehero::after{content:''; position:absolute; inset:0; background:linear-gradient(150deg, var(--copper) 0%, var(--verdigris) 100%); mix-blend-mode:color; opacity:.35; pointer-events:none;}
.cb-pattern-pagehero > *{position:relative; z-index:2; max-width:820px; margin-left:auto; margin-right:auto; text-align:left;}
.cb-pattern-pagehero .cb-ph-crumb{color:var(--copper-light) !important; letter-spacing:.25em; margin-bottom:14px !important;}
.cb-pattern-pagehero h1{color:var(--paper); font-size:clamp(34px,5vw,60px); line-height:1.02; margin:0;}
.cb-pattern-pagehero .cb-ph-lede{color:var(--paper-2); font-size:15.5px; margin:18px auto 0; max-width:560px;}
@media(max-width:640px){.cb-pattern-pagehero{padding:56px 22px;} .cb-pattern-pagehero h1{font-size:clamp(30px,8vw,40px);}}

/* 10j. BLOQUE «AGENDA COPPERBRIDGE» (v2.0.0)
   El envoltorio del bloque: mismo aire editorial que el shortcode y la
   guía de estado vacío que el servidor devuelve en el editor. Las filas
   heredan .event-list/.event-row de la sección 10. */
.cb-agenda-block{margin:28px 0;}
.cb-agenda-block .cb-sc-more{margin-top:22px;}
.cb-agenda-empty{border:1px dashed var(--paper-2); background:rgba(231,219,196,.35); padding:34px 30px; text-align:center;}
.cb-agenda-empty .cb-ae-title{font-family:var(--display); font-weight:700; font-size:20px; margin:0 0 8px;}
.cb-agenda-empty p{font-size:13.5px; color:#6b6660; margin:0; line-height:1.6;}
.cb-agenda-hint{margin:14px 0 0; font-size:12.5px; color:#6b6660; font-style:italic;}
.cb-agenda-block.alignwide .event-list, .cb-agenda-block.alignfull .event-list{padding:0 24px;}

/* 10d. PATRÓN «LISTA DE VIAJES NUMERADA» (v1.7.0)
   Filas 01/02/03 con línea superior, número Bodoni en cobre y
   flecha que aparece al pasar el ratón — como la portada. */
.cb-pattern-travel h2{font-family:var(--display); font-weight:700;}
.cb-pattern-travel-row{display:grid; grid-template-columns:72px 1fr auto; align-items:center; gap:24px; padding:20px 0; border-top:1px solid var(--paper-2); transition:background .25s, padding-left .25s;}
.cb-pattern-travel-row:last-of-type{border-bottom:1px solid var(--paper-2);}
.cb-pattern-travel-row:hover{background:rgba(79,133,119,.06); padding-left:10px;}
.cb-pattern-travel-row .cb-pattern-tnum{font-family:var(--display); font-size:26px; font-weight:700; color:var(--copper); margin:0;}
.cb-pattern-travel-row h4{font-family:var(--display); font-size:21px; font-weight:700; margin:0;}
.cb-pattern-travel-row h4 + p{font-size:13px; color:#6b6660; margin:3px 0 0;}
.cb-pattern-travel-row::after{content:"→"; font-family:var(--display); font-size:19px; color:var(--verdigris-deep); opacity:0; transform:translateX(-8px); transition:opacity .25s, transform .25s;}
.cb-pattern-travel-row:hover::after{opacity:1; transform:translateX(0);}
@media(max-width:640px){.cb-pattern-travel-row{grid-template-columns:44px 1fr; gap:14px;} .cb-pattern-travel-row::after{display:none;} .cb-pattern-travel-row .cb-pattern-tnum{font-size:20px;} .cb-pattern-travel-row h4{font-size:18px;}}

/* 10c. DETALLES DE MARCA
   Selección de texto con tinte cobre, filas con foco visible
   para teclado y subrayados animados en los enlaces del footer. */
::selection{background:var(--copper); color:#fff;}
::-moz-selection{background:var(--copper); color:#fff;}
.event-row:focus-visible, .travel-row:focus-visible, .loc-card:focus-visible{outline:2px solid var(--flame); outline-offset:-2px;}
.foot-grid a{position:relative; transition:color .25s;}
.foot-grid a::after{content:""; position:absolute; left:0; bottom:-3px; width:0; height:1px; background:var(--copper-light); transition:width .3s ease;}
.foot-grid a:hover{color:var(--paper);}
.foot-grid a:hover::after{width:100%;}

/* 11. APOYO (CTA)
-------------------------------------------------------------- */
.support{
  background: linear-gradient(135deg, var(--copper-deep), var(--ink) 75%);
  color:var(--paper); padding:110px 0; text-align:center; position:relative; overflow:hidden;
}
.support h2{font-family:var(--display); font-weight:700; font-size:clamp(32px,5vw,58px); max-width:700px; margin:0 auto 20px;}
.support p{max-width:520px; margin:0 auto 36px; color:var(--paper-2); font-size:15.5px;}
.support .btns{display:flex; gap:16px; justify-content:center; flex-wrap:wrap;}

/* 11b. BOTONES
-------------------------------------------------------------- */
.btn{display:inline-block; padding:13px 28px; font-size:13px; letter-spacing:.06em; text-transform:uppercase; border-radius:2px; font-weight:600; transition:background .25s, transform .25s, color .25s, border-color .25s;}
.btn:hover{transform:translateY(-2px);}
.btn-primary{background:var(--ink); color:var(--paper);}
.btn-primary:hover{background:var(--copper-deep); color:var(--paper);}
.btn-outline{border:1px solid var(--ink); color:var(--ink);}
.btn-outline:hover{background:var(--ink); color:var(--paper);}
.btn-flame{background:var(--flame); color:#fff;}
.btn-flame:hover{background:#c94a22; color:#fff;}
.btn-ghost{border:1px solid var(--paper-2); color:var(--paper);}
.btn-ghost:hover{background:var(--paper); color:var(--ink);}

/* 12. FOOTER
-------------------------------------------------------------- */
footer.site-footer{background:var(--ink); color:var(--paper-2); padding:64px 0 32px;}
.foot-grid{display:grid; grid-template-columns:1.4fr 1fr 1fr 1fr; gap:40px; padding-bottom:48px; border-bottom:1px solid rgba(241,233,218,.12);}
.foot-mark{font-family:var(--display); font-size:22px; color:var(--paper); margin-bottom:12px;}
.foot-mark span{color:var(--copper-light);}
.foot-brand img{height:var(--cb-logo-f,30px); width:auto; margin-bottom:14px;}
.foot-brand .custom-logo-link img.custom-logo{height:var(--cb-logo-f,30px); width:auto; display:block; margin-bottom:14px;}
.foot-grid p{font-size:13px; line-height:1.7; max-width:280px;}
.foot-col h5{font-family:var(--deco); text-transform:uppercase; letter-spacing:.2em; font-size:11px; color:var(--verdigris); margin-bottom:14px;}
.foot-col h5.foot-h-hidden{display:none;}
.foot-col a{display:block; font-size:13.5px; margin-bottom:9px; opacity:.85; transition:opacity .2s, color .2s;}
.foot-col a:hover, .foot-col .current-menu-item a{opacity:1; color:var(--copper-light);}
/* v2.7.0 — redes sociales del pie (Personalizador → Footer): solo se
   muestran las que tengan URL; botones redondos de 44 px táctiles. */
.foot-social{display:flex; gap:10px; margin-top:18px; flex-wrap:wrap;}
.foot-social a{display:inline-flex; align-items:center; justify-content:center; width:44px; height:44px; border:1px solid rgba(241,233,218,.18); border-radius:50%; color:var(--paper-2); opacity:1; transition:color .25s, border-color .25s, transform .25s, background .25s;}
.foot-social a:hover{color:var(--paper); border-color:var(--copper-light); background:rgba(184,115,58,.18); transform:translateY(-2px);}
.foot-social a:focus-visible{outline:2px solid var(--copper-light); outline-offset:3px;}
.foot-social svg{width:18px; height:18px; display:block; fill:currentColor;}
.foot-bottom{display:flex; justify-content:space-between; padding-top:28px; font-size:12px; opacity:.75; flex-wrap:wrap; gap:12px;}
.foot-bottom a{color:var(--paper-2); text-decoration:none; border-bottom:1px dotted rgba(241,233,218,.4); transition:color .2s, border-color .2s;}
.foot-bottom a:hover{color:var(--copper-light); border-color:var(--copper-light);}
.foot-bottom a:focus-visible{outline:2px solid var(--copper-light); outline-offset:3px; border-radius:2px;}
.foot-contact{display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap;}
@media(max-width:800px){.foot-grid{grid-template-columns:1fr 1fr;}}

/* 13. ANIMACIONES DE SCROLL (REVEAL)
-------------------------------------------------------------- */
.reveal{opacity:0; transform:translateY(18px); transition:opacity .7s cubic-bezier(.22,.61,.36,1), transform .7s cubic-bezier(.22,.61,.36,1);}
.reveal.in{opacity:1; transform:none;}
.reveal.d1{transition-delay:.1s;}
.reveal.d2{transition-delay:.2s;}
.reveal.d3{transition-delay:.3s;}
@media(prefers-reduced-motion:reduce){
  .reveal{opacity:1; transform:none; transition:none;}
  html{scroll-behavior:auto;}
  .btn, .loc-card img, .travel-row .arrow, .event-row .arrow, .ev-type, .ev-filter .chip, .cb-pattern-travel-row, .cb-pattern-travel-row::after{transition:none;}
  .event-row{transition:none;}
  .foot-grid a::after{transition:none;}
}

/* 14. PLANTILLAS DE CONTENIDO (BLOG, PÁGINAS, SINGLE, 404)
-------------------------------------------------------------- */
.page-hero{
  position:relative; padding:140px 0 80px; background:linear-gradient(135deg, var(--verdigris-deep), var(--ink) 75%);
  color:var(--paper); overflow:hidden;
}
.page-hero::after{
  content:''; position:absolute; inset:0;
  background:linear-gradient(150deg, var(--copper) 0%, var(--verdigris) 100%);
  mix-blend-mode:color; opacity:.35;
}
.page-hero .wrap{position:relative; z-index:2;}
.page-hero .crumb{font-family:var(--deco); text-transform:uppercase; letter-spacing:.25em; font-size:11px; color:var(--copper-light); display:block; margin-bottom:14px;}
.page-hero h1{font-family:var(--display); font-weight:700; font-size:clamp(34px,5vw,60px); line-height:1.02; max-width:820px;}
.page-hero .slede{color:var(--paper-2); max-width:560px; margin:18px 0 0; font-size:15.5px;}
.content-area{padding:90px 0;}
.narrow{max-width:820px; margin:0 auto;}
.entry-content{font-size:16px; line-height:1.75; color:#2a2b28;}
.entry-content > * + *{margin-top:1.15em;}
.entry-content h2{font-family:var(--display); font-weight:700; font-size:clamp(26px,3.4vw,36px); line-height:1.1; margin-top:1.6em;}
.entry-content h3{font-family:var(--display); font-weight:700; font-size:clamp(20px,2.6vw,26px); margin-top:1.5em;}
.entry-content h4{font-family:var(--display); font-weight:600; font-size:19px; margin-top:1.4em;}
.entry-content a{color:var(--copper-deep); text-decoration:underline; text-underline-offset:3px; transition:color .2s;}
.entry-content a:hover{color:var(--flame);}
.entry-content blockquote{border-left:3px solid var(--copper); padding:6px 0 6px 24px; font-family:var(--display); font-style:italic; font-size:1.25em; color:#3d3f3b; margin:1.5em 0;}
.entry-content ul, .entry-content ol{padding-left:24px;}
.entry-content ul{list-style:disc;}
.entry-content ol{list-style:decimal;}
.entry-content li + li{margin-top:.4em;}
.entry-content img{border-radius:4px;}
.entry-content figcaption, .wp-caption-text{font-size:12.5px; color:#7b766e; margin-top:8px; text-align:center; font-style:italic;}
.entry-content table{width:100%; border-collapse:collapse; font-size:14.5px;}
.entry-content th, .entry-content td{border:1px solid var(--paper-2); padding:10px 14px; text-align:left;}
.entry-content th{background:var(--paper-2); font-family:var(--deco); letter-spacing:.08em; text-transform:uppercase; font-size:11px;}
.featured-hero-img{margin-top:34px; border-radius:4px; overflow:hidden; aspect-ratio:16/8; background:var(--ink); position:relative;}
.featured-hero-img.cb-no-photo{background:linear-gradient(150deg,var(--copper) 0%,var(--verdigris) 100%);}
.featured-hero-img img{width:100%; height:100%; object-fit:cover;}
/* v2.5.0 — la foto que viene del texto se muestra entera: su proporción real, sin recorte de portada */
.featured-hero-img.cb-hero-auto{aspect-ratio:auto; display:flex; justify-content:center; align-items:center;}
.featured-hero-img.cb-hero-auto img{width:auto; height:auto; max-width:100%; max-height:82vh; object-fit:contain;}
.post-meta{display:flex; gap:22px; flex-wrap:wrap; font-size:12.5px; color:#7b766e; margin-top:10px;}
.post-meta .pm-item{display:flex; align-items:center; gap:7px;}
.post-card-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
@media(max-width:960px){.post-card-grid{grid-template-columns:repeat(2,1fr);}}
@media(max-width:640px){.post-card-grid{grid-template-columns:1fr;}}
.post-card{background:#fff; border-radius:4px; overflow:hidden; display:flex; flex-direction:column; transition:transform .3s, box-shadow .3s; border:1px solid rgba(28,35,33,.06);}
.post-card:hover{transform:translateY(-4px); box-shadow:0 18px 40px -18px rgba(28,35,33,.28);}
.post-card .pc-img{aspect-ratio:4/3; background:linear-gradient(150deg,var(--copper),var(--verdigris)); overflow:hidden; position:relative;}
.post-card .pc-img img{width:100%; height:100%; object-fit:cover; filter:grayscale(calc(var(--cb-tint,.62) + (1 - var(--cb-tint,.62))*.4)) contrast(1.08); transition:transform .5s;}
.post-card:hover .pc-img img{transform:scale(1.05);}
.post-card .pc-body{padding:22px 22px 26px; display:flex; flex-direction:column; gap:10px; flex:1;}
.post-card .pc-tag{font-family:var(--deco); text-transform:uppercase; letter-spacing:.2em; font-size:10.5px; color:var(--copper-deep);}
.post-card h3{font-family:var(--display); font-weight:700; font-size:21px; line-height:1.15;}
.post-card h3 a:hover{color:var(--copper-deep);}
.post-card .pc-excerpt{font-size:13.5px; color:#5c5952; line-height:1.6; margin:0;}
.post-card .pc-more{margin-top:auto; font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--verdigris-deep);}
.post-card .pc-more:hover{color:var(--flame);}
.back-link{display:inline-flex; align-items:center; gap:8px; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; color:var(--verdigris-deep); margin-bottom:34px;}
.back-link:hover{color:var(--flame);}
.pagination{display:flex; gap:10px; margin-top:56px; flex-wrap:wrap;}
.pagination .page-numbers{padding:9px 16px; border:1px solid var(--paper-2); font-size:13px; border-radius:2px; transition:background .2s, color .2s;}
.pagination .page-numbers.current, .pagination .page-numbers:hover{background:var(--ink); color:var(--paper);}
.empty-state{
  border:1.5px dashed var(--copper-light); border-radius:4px; padding:44px 32px; text-align:center;
  background:rgba(184,115,58,.04);
}
.empty-state .es-title{font-family:var(--display); font-size:22px; font-weight:700; margin-bottom:8px;}
.empty-state p{font-size:14px; color:#5c5952; max-width:420px; margin:0 auto 18px;}
.empty-state .btn-primary{background:var(--copper-deep);}
.error-404 .num{font-family:var(--display); font-weight:700; font-size:clamp(80px,16vw,180px); line-height:1; color:var(--copper); opacity:.9;}
.error-404 p{font-size:15.5px; color:#4a4642; max-width:420px; margin:14px 0 30px;}

/* Archivos de contenido (CPT y blog) */
.locations-archive{padding:0;}
.locations-archive .loc-grid{margin-top:0;}
.locations-archive .empty-state{margin:90px auto; max-width:640px;}
.travel-archive .travel-list{margin-top:0;}
.comment-list .children{list-style:none; margin-top:18px; padding-left:22px; display:flex; flex-direction:column; gap:18px;}
.comment-list .children .comment{border-left:2px solid var(--copper-light);}
.comment-list .avatar{border-radius:50%; margin-right:10px;}
.comment-list .comment .comment-content p{font-size:14px; line-height:1.6;}
.comment-form p.form-submit{margin:0;}
.comment-form .logged-in-as, .comment-form .comment-notes{font-size:12.5px; color:#7b766e;}
.comment-form .logged-in-as a, .comment-form .comment-notes a{color:var(--copper-deep);}
.no-comments{font-size:13px; color:#7b766e; font-style:italic; margin-top:18px;}

/* Comentarios */
.comments-area{margin-top:70px; border-top:1px solid var(--paper-2); padding-top:44px;}
.comments-area h2{font-family:var(--display); font-size:26px; font-weight:700; margin-bottom:26px;}
.comment-list{list-style:none; padding:0; display:flex; flex-direction:column; gap:22px;}
.comment-list .comment{background:#fff; border:1px solid rgba(28,35,33,.06); border-radius:4px; padding:20px 24px;}
.comment-list .comment .comment-meta{display:flex; justify-content:space-between; font-size:12px; color:#7b766e; margin-bottom:8px; flex-wrap:wrap; gap:8px;}
.comment-list .comment .comment-author{font-family:var(--display); font-size:15px; color:var(--ink); font-weight:700;}
.comment-list .comment p{font-size:14px; line-height:1.6;}
.comment-reply-link{font-size:12px; letter-spacing:.06em; text-transform:uppercase; font-weight:600; color:var(--verdigris-deep);}
.comment-form{display:flex; flex-direction:column; gap:16px; margin-top:30px;}
.comment-form p label{display:block; font-size:12.5px; letter-spacing:.06em; text-transform:uppercase; font-family:var(--deco); margin-bottom:7px; color:var(--verdigris-deep);}
.comment-form input[type=text], .comment-form input[type=email], .comment-form input[type=url], .comment-form textarea{
  width:100%; padding:12px 16px; border:1px solid var(--paper-2); background:#fff; border-radius:2px;
  font-family:var(--body); font-size:14.5px; color:var(--ink); transition:border-color .2s;
}
.comment-form input:focus, .comment-form textarea:focus{border-color:var(--copper); outline:none;}
.comment-form .submit{align-self:flex-start; cursor:pointer; font-family:var(--body);}

/* Formulario de búsqueda */
.search-form{display:flex; max-width:420px;}
.search-form .search-field{flex:1; padding:12px 16px; border:1px solid var(--paper-2); border-right:none; background:#fff; border-radius:2px 0 0 2px; font-family:var(--body); font-size:14.5px;}
.search-form .search-submit{padding:12px 22px; background:var(--ink); color:var(--paper); border:none; border-radius:0 2px 2px 0; font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:600; cursor:pointer; font-family:var(--body); transition:background .2s;}
.search-form .search-submit:hover{background:var(--copper-deep);}

/* 15. UTILIDADES DE WORDPRESS
-------------------------------------------------------------- */
.alignleft{float:left; margin:0.4em 1.4em 0.8em 0;}
.alignright{float:right; margin:0.4em 0 0.8em 1.4em;}
.aligncenter{margin-left:auto; margin-right:auto;}
.alignwide{margin-left:-60px; margin-right:-60px; max-width:calc(100% + 120px);}
.alignfull{margin-left:calc(50% - 50vw); margin-right:calc(50% - 50vw); max-width:100vw;}
@media(max-width:960px){.alignwide{margin-left:0; margin-right:0; max-width:100%;}}
.wp-caption{max-width:100%;}
.sticky{border-left:3px solid var(--copper); padding-left:20px; background:rgba(184,115,58,.04);}
.bypostauthor > article .comment-author{color:var(--copper-deep);}
.wp-block-image figcaption{margin-top:8px;}
.entry-content .wp-block-button__link{background:var(--ink); color:var(--paper); border-radius:2px; font-size:13px; letter-spacing:.06em; text-transform:uppercase; font-weight:600; padding:13px 28px; transition:background .2s, transform .2s;}
.entry-content .wp-block-button__link:hover{background:var(--copper-deep); transform:translateY(-2px);}

/* 16. PATRONES DE BLOQUES «COPPERBRIDGE»
   (se insertan desde el editor: categoría Copperbridge en el botón «+»)
-------------------------------------------------------------- */
.cb-pattern-card{background:#fff; border:1px solid rgba(28,35,33,.08); border-radius:4px; overflow:hidden;}
.cb-pattern-card .wp-block-cover{min-height:300px;}
.cb-pattern-card .wp-block-cover img{filter:grayscale(1) contrast(1.08); transition:transform .5s;}
.cb-pattern-card:hover .wp-block-cover img{transform:scale(1.05);}
.cb-pattern-card-body{padding:22px 24px 28px; display:flex; flex-direction:column; gap:10px;}
.cb-pattern-eyebrow{font-family:var(--deco) !important; text-transform:uppercase; letter-spacing:.25em; font-size:11px; color:var(--copper-deep); margin:0 !important;}
.cb-pattern-card-body h3{font-family:var(--display); font-weight:700; font-size:22px; line-height:1.15;}
.cb-pattern-card-body p:last-child{font-size:13.5px; color:#5c5952; line-height:1.6;}

.cb-pattern-quote{padding:64px 40px; border-left:4px solid var(--copper-light);}
.cb-pattern-quote blockquote{border:none; padding:0; margin:0;}
.cb-pattern-quote blockquote p{font-family:var(--display); font-style:italic; font-size:clamp(20px,2.6vw,28px); line-height:1.45; color:var(--paper);}
.cb-pattern-quote blockquote cite{display:block; margin-top:18px; font-family:var(--deco); font-style:normal; font-size:13px; letter-spacing:.25em; text-transform:uppercase; color:var(--copper-light);}

.cb-pattern-cta{background:var(--ink); color:var(--paper); padding:88px 40px; text-align:center;}
.cb-pattern-cta h2{font-family:var(--display); font-weight:700; font-size:clamp(30px,4.4vw,48px); color:var(--paper); margin-bottom:16px;}
.cb-pattern-cta p{color:var(--paper-2); font-size:15.5px; max-width:560px; margin:0 auto 34px;}
.cb-pattern-btn-flame .wp-block-button__link{background:var(--flame) !important; color:#fff !important; border-radius:2px; font-size:13px; letter-spacing:.06em; text-transform:uppercase; font-weight:600; padding:13px 28px; transition:background .25s, transform .25s;}
.cb-pattern-btn-flame .wp-block-button__link:hover{background:#c94a22 !important; transform:translateY(-2px);}
.cb-pattern-btn-ghost .wp-block-button__link{color:var(--paper) !important; border:1px solid var(--paper-2) !important; background:transparent !important; border-radius:2px; font-size:13px; letter-spacing:.06em; text-transform:uppercase; font-weight:600; padding:13px 28px; transition:background .25s, color .25s;}
.cb-pattern-btn-ghost .wp-block-button__link:hover{background:var(--paper) !important; color:var(--ink) !important;}

/* Búsqueda: bloque «buscar otra vez» en la página de resultados */
.search-again{margin-bottom:48px; padding:26px 28px; background:var(--paper-2); border:1px solid rgba(28,35,33,.08); border-radius:4px;}
.search-again .sa-label{font-family:var(--deco); text-transform:uppercase; letter-spacing:.25em; font-size:11px; color:var(--copper-deep); margin-bottom:12px;}
.search-again .search-form{max-width:520px;}
.empty-state .es-links{display:flex; gap:12px; flex-wrap:wrap; justify-content:center; margin-top:24px;}

/* ============================================================
   Bloque dinámico «Tarjeta Copperbridge» (copperbridge/card)
   Reutiliza .loc-card (degradado, tinte B/N, hover) y añade
   solo lo específico del bloque suelto dentro del contenido.
   ============================================================ */
figure.loc-card, a.loc-card.cb-card{margin:0; text-decoration:none;}
figure.loc-card h4, figure.loc-card span{color:var(--paper);}
.loc-grid figure.loc-card{margin:0;}
.loc-card.cb-card{max-width:480px;}
.alignwide .loc-card.cb-card, .alignfull .loc-card.cb-card{max-width:none;}
.loc-card.cb-tint-verdigris::before{background:linear-gradient(150deg,var(--verdigris) 0%,var(--copper) 100%);}
.cb-card-placeholder{position:absolute; inset:0; z-index:0; display:flex; align-items:center; justify-content:center; background:var(--paper-2); font-family:var(--deco); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:var(--copper-deep); text-align:center; padding:12px;}
.cb-card-hint{margin:10px 0 0; font-size:12px; color:#7b766e; font-style:italic;}

/* Tarjeta suelta en el contenido: limitada en columna normal,
   a pleno ancho con alineaciones wide/full del editor. */
.cb-card-block{max-width:100%;}
.cb-card-block .loc-card{aspect-ratio:1/1;}

/* 17b. RESPONSIVE 100% — MÓVIL Y TABLET (v2.7.0)
   Auditoría completa de teléfonos y tablets: hero con altura de navegador
   móvil real (svh), botones táctiles de 44 px, tipografía fluida, tablas
   con desplazamiento propio y formularios que no hacen zoom en iOS.
-------------------------------------------------------------- */
/* Hero: en navegadores de móvil la barra superior come viewport; 92svh
   es la altura visible real (con fallback a 92vh si no se soporta). */
@supports (height: 1svh){
  .hero{min-height:92svh;}
}
/* Botón del menú: objetivo táctil de 44 × 44 px. */
.nav-burger{padding:10px; min-width:44px; min-height:44px; justify-content:center; align-items:center; border-radius:4px;}

/* (v2.8.0) El menú móvil rediseñado vive en la sección 3: panel de vidrio
   con filas numeradas y ≥52 px por fila. Aquí no queda nada más que añadir. */

@media(max-width:768px){
  /* Formularios a 16 px: iOS/Android no hacen zoom automático al enfocar. */
  .comment-form input[type=text], .comment-form input[type=email],
  .comment-form input[type=url], .comment-form textarea,
  .search-form .search-field, .search-form .search-submit{font-size:16px;}
}

@media(max-width:640px){
  /* Hero: menos aire, antetítulo más compacto, datos más cercanos. */
  .hero{padding-bottom:44px;}
  .hero-eyebrow{letter-spacing:.22em; font-size:11px; margin-bottom:12px;}
  .hero h1{font-size:clamp(38px, 11vw, 48px);}
  .hero-meta{gap:20px; margin-top:26px;}
  .hero-meta div{font-size:13px;}
  .hero-meta strong{font-size:16px;}

  /* Secciones: aire proporcional al pantallazo. */
  .exhibit, .travel, .events{padding:64px 0 60px;}
  .locations{padding:64px 0;}
  .exhibit-grid{gap:32px;}
  .mission{padding:44px 0;}
  .support{padding:72px 0;}

  /* Viajes y agenda: tipografía contenida. */
  .travel-row h4{font-size:19px;}
  .event-row h4{font-size:17px;}

  /* Cabeceras de páginas interiores. */
  .page-hero{padding:96px 0 56px;}
  .content-area{padding:60px 0;}

  /* Pie: en pantallas pequeñas, una sola columna. */
  .foot-grid{grid-template-columns:1fr; gap:30px;}
  .foot-bottom{flex-direction:column; gap:8px; align-items:flex-start;}
}

@media(max-width:400px){
  /* Teléfonos muy pequeños: el titular baja de mínimo. */
  .hero h1{font-size:clamp(32px, 12.5vw, 38px);}
  .nav-cta{padding:8px 14px; font-size:12px;}
}

/* Tablets en vertical (641–1000): la cuadrícula de temporales pasa a 2,
   los espacios a 2 y el hero gana aire lateral para los tres datos. */
@media(min-width:641px) and (max-width:1000px){
  .hero-meta{gap:26px;}
  .exhibit-grid{gap:40px;}
}

/* Tablas del contenido: nunca rompen el ancho — se desplazan solas. */
@media(max-width:820px){
  .entry-content table{display:block; overflow-x:auto; -webkit-overflow-scrolling:touch;}
}

/* 17c. IMÁGENES ROTAS Y AVISOS DE NEWSLETTER EN MÓVIL (v2.8.0)
   Cuando una foto no llega a cargar (formato HEIC de iPhone, URL externa
   caída, archivo renombrado…), main.js la detecta y pone la clase
   .cb-broken: el marco muestra el degradado de la marca en vez del icono
   roto del navegador. Quien puede editar ve además una pista de cómo
   arreglarla. Y si en móvil/tablet aparece un pop-up de suscripción de
   algún plugin o del hosting, el ajuste «Móvil y tablet» del
   Personalizador lo oculta en pantallas pequeñas.
-------------------------------------------------------------- */
img.cb-broken{display:none !important;}
.cb-img-fallback{background:linear-gradient(150deg,var(--copper) 0%,var(--verdigris) 100%);}

/* Cabecera de ficha sin foto (la tira fina oscura de antes no existe más):
   el marco mantiene su proporción 2:1 y luce el degradado con un icono
   de cámara discreto. */
.featured-hero-img.cb-img-fallback{aspect-ratio:16/8; min-height:200px; display:flex; align-items:center; justify-content:center;}
.featured-hero-img.cb-img-fallback.cb-hero-auto{aspect-ratio:16/8;}
.featured-hero-img.cb-img-fallback::after{
  content:''; width:52px; height:52px; opacity:.55; flex:none;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23F1E9DA" stroke-width="1.3" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="1.6"/><path d="M4 18l5.2-5.2a1.5 1.5 0 0 1 2.1 0L16 17.5"/><path d="M14.5 16l2.3-2.3a1.5 1.5 0 0 1 2.1 0L21 16.5"/></svg>') center/contain no-repeat;
}

/* Pista para editores en imágenes rotas (mismo aire que .cb-media-hint). */
.cb-broken-hint{
  position:absolute; inset:auto 14px 14px 14px; z-index:5;
  display:flex; align-items:center; gap:8px;
  padding:10px 14px; border:1px dashed rgba(241,233,218,.7); border-radius:4px;
  background:rgba(28,35,33,.82); color:var(--paper);
  font-family:var(--body); font-size:11.5px; line-height:1.55;
  letter-spacing:.05em; text-align:left;
}
.cb-broken-hint::before{
  content:''; flex:none; width:18px; height:18px; opacity:.9;
  background:url('data:image/svg+xml;utf8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke="%23D99A5F" stroke-width="1.6" stroke-linecap="round" stroke-linejoin="round"><rect x="3" y="4" width="18" height="16" rx="2"/><circle cx="9" cy="10" r="1.6"/><path d="M4 18l5.2-5.2a1.5 1.5 0 0 1 2.1 0L16 17.5"/><path d="M14.5 16l2.3-2.3a1.5 1.5 0 0 1 2.1 0L21 16.5"/></svg>') center/contain no-repeat;
}
/* Imagen rota dentro del texto (fuera de los marcos): la pista va detrás. */
figure.cb-text-broken{position:relative;}
.cb-text-broken .cb-broken-hint{position:static; margin-top:10px; max-width:520px;}

/* Ajuste «Ocultar avisos de newsletter/suscripción en móvil y tablet»
   (Personalizador → Móvil y tablet, activado por defecto). Los pop-ups
   que se insertan a nivel del <body> los caza main.js; estos selectores
   cubren los plugins de newsletter más habituales. Solo pantallas ≤1024. */
@media (max-width:1024px){
  body.cb-hide-optins div[id^="om-"],
  body.cb-hide-optins [class*="newsletter-popup"],
  body.cb-hide-optins [id*="newsletter-popup"],
  body.cb-hide-optins [class*="newsletter-modal"],
  body.cb-hide-optins [id*="newsletter-modal"],
  body.cb-hide-optins [class*="newsletter-overlay"],
  body.cb-hide-optins [class*="popup-newsletter"],
  body.cb-hide-optins [class*="subscribe-popup"],
  body.cb-hide-optins [id*="subscribe-popup"],
  body.cb-hide-optins [class*="optin-overlay"],
  body.cb-hide-optins [id*="optin-overlay"]{display:none !important;}
}

/* 18. IMPRESIÓN (@media print)
   Versión papel de la marca: tinta sobre blanco, sin navegación,
   sin espina ni degradados, con las URL visibles tras los enlaces
   del contenido — útil para dossieres y prensa.
-------------------------------------------------------------- */
@media print{
  /* Elementos puramente de pantalla: fuera. */
  .spine, .site-nav, .nav-cta, .nav-burger, footer.site-footer,
  .hero-arch, .hero-tint, .hero-scrim, .skip-link,
  .pagination, .search-again, .cb-card-hint, body.nav-open::after,
  .cb-broken-hint, .featured-hero-img.cb-img-fallback::after{display:none !important;}

  /* Base papel. */
  body{background:#fff !important; color:#1C2321; font-size:12pt;}
  .page{padding:0;}
  .wrap{max-width:100%;}

  /* Hero: se conserva la foto pero sin capas de color. */
  .hero{min-height:auto; padding:24px 0 34px; background:#fff !important; color:#1C2321;}
  .hero-photo{position:static; height:34mm; opacity:.92;}
  .hero-tint, .hero-scrim{opacity:0;}
  .hero h1{color:#1C2321; font-size:26pt;}
  .hero-meta{border-top:1px solid #999; padding-top:8pt;}
  .hero-meta strong{color:#8A4B23;}

  /* Bandas de color → gris muy claro para no gastar tinta. */
  .mission, .support, .page-hero, .cb-pattern-cta{background:#f2f0ec !important; color:#1C2321; padding:26pt 0;}
  .mission p, .support h2, .support p, .page-hero h1{color:#1C2321;}

  /* Secciones: sin padding exagerado y sin líneas dobles. */
  .exhibit, .locations, .travel, .events{padding:26pt 0;}

  /* Las animaciones de scroll, impresas: elementos visibles. */
  .reveal{opacity:1 !important; transform:none !important;}

  /* Tarjetas de espacios: en papel van en cuadrícula 3×2 sin recorte. */
  .loc-grid{background:#fff; gap:10pt;}
  .loc-card{break-inside:avoid; page-break-inside:avoid;}
  .loc-card img{filter:grayscale(1);}
  .loc-card::before{opacity:.18;}

  /* Listas de viajes y agenda: algoritmo de salto de página amable. */
  .travel-row, .event-row, .post-card, .comment-item{break-inside:avoid; page-break-inside:avoid;}

  /* Enlaces del contenido: la URL se imprime entre paréntesis. */
  .site-main a[href^="http"]::after{content:" (" attr(href) ")"; font-size:8.5pt; color:#555; word-break:break-all;}
  .site-main a{text-decoration:none; color:#1C2321;}

  /* Imágenes y detalles finales. */
  img{max-width:100%;}
  .btn{display:none;}
  .empty-state{border:1px dashed #999; padding:10pt;}
  .entry-content{font-size:11.5pt; line-height:1.55;}
  h1, h2, h3, h4{page-break-after:avoid;}
}
