/* ═══════════════════════════════════════════════════════════════════
   Cofradía Virgen del Rosell — hoja de estilos del tema
   Tokens del diseño de Claude Design (octubre 2026)
   ═══════════════════════════════════════════════════════════════════ */

:root {
	--cr-bg: #faf7f2;        /* marfil */
	--cr-bg2: #f1ece4;       /* piedra */
	--cr-bg3: #fffdf9;       /* papel */
	--cr-ink: #1c1917;
	--cr-ink2: #4a433d;
	--cr-mute: #6b6259;
	--cr-line: #e2d9cb;
	--cr-line2: #d9cfbf;
	--cr-line3: #ddd3c4;
	--cr-red: #b0252b;
	--cr-red2: #8a1c21;
	--cr-red-oscuro: #6e1a1e;
	--cr-gold: #c9a84c;
	--cr-gold2: #e8cf86;
	--cr-serif: 'Cormorant Garamond', Georgia, 'Times New Roman', serif;
	--cr-sans: 'Source Sans 3', system-ui, -apple-system, 'Segoe UI', sans-serif;
	--cr-pad: clamp(20px, 5vw, 80px);
	--cr-wrap: 1180px;
	--cr-sec: clamp(64px, 8vw, 128px);
}

/* ───────────── Base ───────────── */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
html.cr-menu-abierto { overflow: hidden; }
body { margin: 0; background: var(--cr-bg); color: var(--cr-ink); font-family: var(--cr-sans); font-size: 18px; line-height: 1.6; -webkit-font-smoothing: antialiased; }
img { max-width: 100%; height: auto; }
a { color: var(--cr-red); text-underline-offset: 3px; }
a:hover { color: var(--cr-red2); }
:focus-visible { outline: 3px solid var(--cr-gold); outline-offset: 3px; }
h1, h2, h3, h4 { font-family: var(--cr-serif); font-weight: 600; line-height: 1.15; margin: 0; text-wrap: balance; }
p { margin: 0; }
ul, ol { margin: 0; padding: 0; }
button { font: inherit; }
.cr-saltar { position: absolute; left: -999px; top: 8px; background: var(--cr-ink); color: #fff; padding: 10px 16px; z-index: 100; }
.cr-saltar:focus { left: 8px; }
.cr-main { min-height: 40vh; }

/* ───────────── Utilidades ───────────── */
.cr-wrap { max-width: var(--cr-wrap); margin: 0 auto; }
.cr-wrap--estrecho { max-width: 40em; }
.cr-wrap--agenda { max-width: 1000px; }
.cr-seccion { padding: var(--cr-sec) var(--cr-pad); }
.cr-seccion--sin-arriba { padding-top: 0; }
.cr-seccion--sin-abajo { padding-bottom: 0; }
.cr-centrado { text-align: center; }
.cr-mute { color: var(--cr-mute); }
.cr-eyebrow { margin: 0 0 12px; color: var(--cr-red); font-size: 14px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; }
.cr-kicker { margin: 0 0 6px; color: var(--cr-mute); font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cr-h2 { font-weight: 500; font-size: clamp(32px, 3.4vw, 50px); line-height: 1.1; }
.cr-h3 { font-weight: 600; font-size: clamp(28px, 2.4vw, 34px); line-height: 1.15; }
.cr-enlace { font-weight: 600; color: var(--cr-red); text-decoration: underline; text-underline-offset: 3px; }
.cr-rombo { display: inline-block; width: 8px; height: 8px; background: var(--cr-gold); transform: rotate(45deg); flex: none; }
.cr-filete-oro { height: 4px; border-top: 1px solid var(--cr-gold); border-bottom: 1px solid var(--cr-gold); opacity: .7; }
.cr-filete-oro--grueso { height: 5px; opacity: 1; margin-top: 2px; }
.cr-placeholder { background: repeating-linear-gradient(135deg, #ece5d9 0 10px, #e5ddcf 10px 20px); border: 1px solid var(--cr-line); display: flex; align-items: center; justify-content: center; min-height: 220px; width: 100%; height: 100%; }
.cr-placeholder span { font-family: ui-monospace, Menlo, Consolas, monospace; font-size: 13px; color: var(--cr-ink2); background: var(--cr-bg); padding: 6px 10px; }
.cr-aviso { background: var(--cr-bg2); border: 1px solid var(--cr-line); padding: 20px 24px; max-width: 40em; }
.cr-email { overflow-wrap: anywhere; }
.cr-botones { display: flex; flex-wrap: wrap; gap: 14px; }

/* Botones */
.cr-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 22px; border-radius: 2px; font-weight: 600; font-size: 17px; text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: background .15s, color .15s, border-color .15s; }
.cr-btn--primario { background: var(--cr-red); border-color: var(--cr-red); color: #fff; }
.cr-btn--primario:hover { background: var(--cr-red2); border-color: var(--cr-red2); color: #fff; }
.cr-btn--borde { background: transparent; border-color: var(--cr-red); color: var(--cr-red); }
.cr-btn--borde:hover { background: var(--cr-red); color: #fff; }
.cr-btn--grande { min-height: 56px; padding: 0 30px; font-size: 18px; }
.cr-btn--bloque { display: flex; width: 100%; min-height: 56px; font-size: 18px; }

/* ───────────── Cabecera ───────────── */
.cr-header { background: var(--cr-bg); border-bottom: 1px solid var(--cr-line); padding: 0 clamp(20px, 4vw, 64px); position: relative; }
.cr-header__wrap { max-width: 1312px; margin: 0 auto; display: flex; align-items: center; gap: 28px; padding: 20px 0; }
.cr-header__logo { flex: none; display: block; }
.cr-header__logo img { height: 108px; width: auto; display: block; }
.cr-header__cuerpo { flex: 1; min-width: 0; display: flex; flex-direction: column; gap: 12px; }
.cr-header__fila { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; }
.cr-header__nombre { text-decoration: none; color: var(--cr-ink); display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cr-header__titulo { font-family: var(--cr-serif); font-size: 27px; font-weight: 600; line-height: 1.15; }
.cr-header__ciudad { font-size: 14px; font-weight: 600; letter-spacing: .22em; text-transform: uppercase; color: var(--cr-mute); }
.cr-header__corto, .cr-header__ciudad-corta { display: none; }
.cr-header__tel { font-size: 15px; color: var(--cr-mute); white-space: nowrap; }
.cr-nav { display: flex; align-items: center; justify-content: space-between; gap: 20px; }
.cr-nav__lista { list-style: none; display: flex; flex-wrap: wrap; gap: clamp(16px, 2vw, 30px); }
.cr-nav__lista a { display: block; font-size: 17px; font-weight: 600; color: var(--cr-ink); text-decoration: none; padding: 8px 0; border-bottom: 2px solid transparent; }
.cr-nav__lista a:hover { color: var(--cr-red); }
.cr-nav__lista .current-menu-item > a, .cr-nav__lista .current-menu-ancestor > a, .cr-nav__lista .current_page_item > a, .cr-nav__lista .current_page_ancestor > a, .cr-nav__lista .current-menu-parent > a { border-bottom-color: var(--cr-red); }
.cr-nav__cta { flex: none; }
.cr-menu-btn { display: none; flex: none; width: 52px; height: 52px; border: 1px solid var(--cr-line2); background: var(--cr-bg3); border-radius: 2px; flex-direction: column; align-items: center; justify-content: center; gap: 5px; cursor: pointer; padding: 0; }
.cr-menu-btn span { display: block; width: 22px; height: 2px; background: var(--cr-ink); }
.cr-menu-movil { position: fixed; inset: 0; z-index: 50; background: var(--cr-bg); padding: 12px 20px 40px; display: flex; flex-direction: column; overflow: auto; }
.cr-menu-movil[hidden] { display: none; }
.cr-menu-movil__cab { display: flex; align-items: center; gap: 14px; padding-bottom: 12px; border-bottom: 1px solid var(--cr-line); }
.cr-menu-movil__cab img { height: 60px; width: auto; }
.cr-menu-movil__cab span { flex: 1; font-family: var(--cr-serif); font-size: 22px; font-weight: 600; }
.cr-menu-cerrar { width: 52px; height: 52px; border: 1px solid var(--cr-line2); background: var(--cr-bg3); border-radius: 2px; position: relative; cursor: pointer; }
.cr-menu-cerrar span { position: absolute; left: 13px; top: 24px; width: 24px; height: 2px; background: var(--cr-ink); transform: rotate(45deg); }
.cr-menu-cerrar span + span { transform: rotate(-45deg); }
.cr-menu-movil__lista { list-style: none; display: flex; flex-direction: column; margin-top: 8px; }
.cr-menu-movil__lista a { display: block; font-family: var(--cr-serif); font-size: 29px; font-weight: 600; color: var(--cr-ink); text-decoration: none; padding: 12px 0; border-bottom: 1px solid var(--cr-line); }
.cr-menu-movil__cta { margin-top: 28px; min-height: 58px; font-size: 19px; }
.cr-menu-movil__tel { margin-top: 28px; display: flex; flex-direction: column; gap: 4px; font-size: 17px; }
.cr-menu-movil__tel a { color: var(--cr-ink); }

@media (max-width: 999px) {
	.cr-header { padding: 12px 20px; }
	.cr-header__wrap { gap: 14px; padding: 0; }
	.cr-header__logo img { height: 60px; }
	.cr-header__cuerpo { gap: 0; }
	.cr-header__fila { align-items: center; gap: 14px; }
	.cr-header__titulo, .cr-header__ciudad, .cr-header__tel, .cr-filete-oro:not(.cr-filete-oro--grueso), .cr-nav { display: none; }
	.cr-header__corto { display: block; font-family: var(--cr-serif); font-size: 22px; font-weight: 600; line-height: 1.1; }
	.cr-header__ciudad-corta { display: block; font-size: 13px; color: var(--cr-mute); line-height: 1.3; }
	.cr-menu-btn { display: flex; }
}
@media (min-width: 1000px) { .cr-menu-movil { display: none !important; } }

/* ───────────── Pie ───────────── */
.cr-footer { background: var(--cr-red-oscuro); color: #f6eee9; padding: clamp(56px, 6vw, 88px) var(--cr-pad) 0; }
.cr-footer__cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); gap: clamp(40px, 4vw, 64px); }
.cr-footer__marca { display: flex; flex-direction: column; gap: 16px; align-items: flex-start; }
.cr-footer__marca img { height: 120px; width: auto; filter: brightness(0) invert(1); }
.cr-footer__nombre { font-family: var(--cr-serif); font-weight: 600; font-size: 23px; line-height: 1.25; }
.cr-footer__lema { font-family: var(--cr-serif); font-style: italic; font-size: 22px; color: var(--cr-gold2); }
.cr-footer__kicker { margin: 0 0 8px; font-size: 14px; font-weight: 700; letter-spacing: .18em; text-transform: uppercase; color: var(--cr-gold2); }
.cr-footer__contacto { display: flex; flex-direction: column; gap: 12px; font-size: 16px; }
.cr-footer__contacto a { color: #fff; }
.cr-footer__tel { margin-top: 8px; font-size: 18px; }
.cr-footer__sede { color: #ecd9d4; }
.cr-footer__lista { list-style: none; display: flex; flex-direction: column; gap: 6px; }
.cr-footer__lista a { color: #fff; text-decoration: none; font-size: 17px; padding: 3px 0; display: inline-block; }
.cr-footer__lista a:hover { text-decoration: underline; color: #fff; }
.cr-footer__legal { list-style: none; display: flex; flex-wrap: wrap; gap: 4px 18px; margin-top: 16px; padding-top: 16px; border-top: 1px solid rgba(255,255,255,.25); font-size: 15px; }
.cr-footer__legal a { color: #ecd9d4; }
.cr-footer__copy { margin-top: clamp(48px, 5vw, 72px); padding: 22px 0 28px; border-top: 1px solid rgba(255,255,255,.25); font-size: 15px; color: #ecd9d4; }

/* ───────────── Portada ───────────── */
.cr-portada-hero { padding: clamp(40px, 5vw, 80px) var(--cr-pad) 0; text-align: center; }
.cr-portada-hero__texto { max-width: 1000px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; gap: 22px; }
.cr-eyebrow--lineas { display: flex; align-items: center; gap: 14px; margin: 0; letter-spacing: .2em; }
.cr-eyebrow--lineas span { width: 40px; height: 1px; background: var(--cr-gold); }
.cr-portada-hero__titulo { font-weight: 500; font-size: clamp(38px, 4.8vw, 72px); line-height: 1.05; }
.cr-lema { font-family: var(--cr-serif); font-style: italic; font-size: clamp(24px, 2.2vw, 32px); color: var(--cr-red); display: flex; align-items: center; gap: 14px; }
.cr-portada-hero .cr-botones { justify-content: center; margin-top: 6px; }
.cr-tallas { max-width: 1180px; margin: clamp(36px, 4vw, 64px) auto 0; }
.cr-tallas img { width: 100%; height: auto; display: block; }
.cr-tallas__nombres { display: grid; grid-template-columns: 178fr 167fr 173fr 217fr 172fr; padding: 14px 0 0; font-family: var(--cr-serif); font-weight: 600; font-size: clamp(13px, 1.45vw, 20px); line-height: 1.2; letter-spacing: .04em; }
.cr-tallas__nombres .es-virgen { color: var(--cr-red); }

.cr-presenta { display: flex; flex-wrap: wrap; gap: clamp(24px, 5vw, 80px); align-items: start; }
.cr-presenta__titulo { flex: 1 1 340px; }
.cr-presenta__texto { flex: 1.4 1 420px; font-size: clamp(18px, 1.45vw, 21px); line-height: 1.65; }
.cr-presenta__texto p { margin-bottom: 20px; text-wrap: pretty; }

.cr-tarjetas { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 440px), 1fr)); gap: clamp(20px, 2.5vw, 36px); }
.cr-tarjeta { text-decoration: none; color: var(--cr-ink); background: var(--cr-bg2); display: flex; flex-direction: column; border: 1px solid var(--cr-line); transition: border-color .15s; }
.cr-tarjeta:hover { border-color: var(--cr-red); color: var(--cr-ink); }
.cr-tarjeta__img { height: clamp(340px, 34vw, 480px); display: flex; align-items: flex-end; justify-content: center; padding: 36px 24px 0; border-bottom: 1px solid var(--cr-line); overflow: hidden; }
.cr-tarjeta__img img { height: 100%; width: auto; display: block; object-fit: contain; object-position: bottom; }
.cr-tarjeta__img--santos { padding: 36px 20px 0; }
.cr-santos-fila { display: flex; align-items: flex-end; justify-content: center; gap: 2%; height: 100%; width: 100%; }
.cr-santos-fila img { height: auto; max-height: 100%; width: 23%; object-fit: contain; object-position: bottom; }
.cr-tarjeta__cuerpo { padding: clamp(24px, 2.6vw, 40px); }
.cr-tarjeta__titulo { margin-bottom: 10px; font-size: clamp(30px, 2.6vw, 38px); line-height: 1.1; }
.cr-tarjeta__texto { margin-bottom: 18px; color: var(--cr-ink2); text-wrap: pretty; }
.cr-tarjeta__cuerpo .cr-eyebrow { margin-bottom: 8px; }

.cr-cab-seccion { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 12px 24px; padding-bottom: 20px; border-bottom: 1px solid var(--cr-ink); }

/* Filas de evento */
.cr-evento { display: grid; grid-template-columns: clamp(72px, 9vw, 120px) minmax(0, 1fr); gap: clamp(16px, 3vw, 48px); align-items: center; padding: clamp(20px, 2.4vw, 32px) 0; border-bottom: 1px solid var(--cr-line); }
.cr-evento--home:hover { background: var(--cr-bg2); }
.cr-evento__cuerpo { display: flex; flex-direction: column; gap: 6px; }
.cr-evento__titulo { font-family: var(--cr-serif); font-weight: 600; font-size: clamp(24px, 2.2vw, 31px); line-height: 1.15; color: var(--cr-ink); text-decoration: none; }
.cr-evento__titulo:hover { color: var(--cr-red); text-decoration: underline; }
.cr-evento__meta { color: var(--cr-mute); font-size: 17px; }
.cr-evento__desc { color: var(--cr-mute); font-size: 17px; line-height: 1.5; }
.cr-fecha { text-align: center; line-height: 1; }
.cr-fecha__dia { display: block; font-family: var(--cr-serif); font-weight: 600; font-size: clamp(48px, 5.2vw, 72px); color: var(--cr-red); }
.cr-fecha__mes { display: block; font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-top: 6px; }
.cr-fecha__anio { display: block; font-size: 13px; color: var(--cr-mute); margin-top: 4px; }
.cr-evento--agenda { grid-template-columns: clamp(84px, 9vw, 112px) minmax(0, 1fr); gap: clamp(18px, 3vw, 40px); align-items: start; padding: clamp(22px, 2.4vw, 30px) 0; }
.cr-evento--agenda .cr-fecha { background: var(--cr-bg3); border: 1px solid var(--cr-line2); padding: 12px 4px 10px; }
.cr-evento--agenda .cr-fecha__dia { font-size: clamp(42px, 4vw, 52px); }
.cr-evento--agenda .cr-evento__meta { font-weight: 600; color: var(--cr-ink2); }
.cr-evento--pasado { grid-template-columns: clamp(72px, 8vw, 96px) minmax(0, 1fr); gap: clamp(16px, 3vw, 32px); padding: 18px 0; border-bottom-color: var(--cr-line3); align-items: start; }
.cr-evento--pasado .cr-fecha { color: var(--cr-mute); }
.cr-evento--pasado .cr-fecha__dia { font-size: 38px; color: var(--cr-mute); }
.cr-evento--pasado .cr-fecha__mes { font-size: 13px; margin-top: 4px; }
.cr-evento--pasado .cr-evento__titulo { font-size: 23px; color: var(--cr-ink2); }
.cr-evento--pasado .cr-evento__meta { font-size: 16px; }

/* Banda de festividades */
.cr-banda-fest { background: var(--cr-bg2); border-top: 1px solid var(--cr-line); border-bottom: 1px solid var(--cr-line); padding: clamp(56px, 6vw, 96px) var(--cr-pad); }
.cr-banda-fest__cab { text-align: center; margin-bottom: clamp(32px, 4vw, 56px); }
.cr-banda-fest__cab .cr-eyebrow { margin-bottom: 10px; }
.cr-banda-fest__grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 230px), 1fr)); border-top: 4px double var(--cr-gold); border-bottom: 4px double var(--cr-gold); }
.cr-banda-fest__item { padding: 28px 24px; text-align: center; display: flex; flex-direction: column; gap: 8px; border-left: 1px solid var(--cr-line2); margin-left: -1px; }
.cr-banda-fest__dia { font-family: var(--cr-serif); font-weight: 600; font-size: clamp(40px, 3.6vw, 52px); color: var(--cr-red); line-height: 1; }
.cr-banda-fest__dia--mes, .cr-fest__dia--mes { font-size: clamp(34px, 3vw, 44px); text-transform: lowercase; }
.cr-banda-fest__mes { font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; }
.cr-banda-fest__nombre { font-family: var(--cr-serif); font-weight: 600; font-size: 23px; line-height: 1.2; margin-top: 6px; text-wrap: balance; }
.cr-banda-fest .cr-centrado { margin-top: 32px; }

/* Contacto en portada */
.cr-contacto-home { display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 72px); }
.cr-contacto-home__datos { flex: 1 1 380px; display: flex; flex-direction: column; gap: 22px; align-items: flex-start; }
.cr-lista-correos { display: flex; flex-direction: column; gap: 6px; font-size: 17px; }
.cr-telefonos { font-family: var(--cr-serif); font-weight: 600; font-size: 21px; }
.cr-telefonos a { color: var(--cr-ink); text-decoration: none; }
.cr-telefonos a:hover { color: var(--cr-red); text-decoration: underline; }
.cr-telefonos--grandes { font-size: 26px; display: flex; flex-wrap: wrap; gap: 4px 24px; }
.cr-contacto-home__mapa { flex: 1.4 1 420px; min-height: 360px; border: 1px solid var(--cr-line); }
.cr-contacto-home__mapa iframe, .cr-mapa-ancho iframe { width: 100%; height: 100%; min-height: 360px; border: 0; display: block; }

/* ───────────── Cabecera de página ───────────── */
.cr-hero { background: var(--cr-bg2); border-bottom: 1px solid var(--cr-line); padding: clamp(28px, 3vw, 48px) var(--cr-pad) clamp(40px, 5vw, 80px); }
.cr-hero--estrecha { padding-bottom: clamp(40px, 5vw, 72px); }
.cr-breadcrumb { margin: 0 0 clamp(24px, 3vw, 48px); font-size: 15px; color: var(--cr-mute); }
.cr-breadcrumb a { color: var(--cr-mute); }
.cr-breadcrumb span[aria-hidden] { padding: 0 6px; }
.cr-hero__cuerpo { display: flex; flex-wrap: wrap; gap: clamp(28px, 5vw, 72px); align-items: center; }
.cr-hero__texto { flex: 1 1 420px; display: flex; flex-direction: column; gap: 18px; }
.cr-hero__texto .cr-eyebrow { margin: 0; }
.cr-hero__titulo { font-weight: 500; font-size: clamp(46px, 5.6vw, 84px); line-height: 1; }
.cr-hero__sub { font-size: clamp(19px, 1.6vw, 23px); line-height: 1.5; color: var(--cr-ink2); max-width: 34em; text-wrap: pretty; }
.cr-hero--estrecha .cr-hero__titulo { margin-bottom: 14px; }
.cr-hero--estrecha .cr-breadcrumb { margin-bottom: clamp(24px, 3vw, 40px); }
.cr-hero__img { flex: 1 1 380px; min-width: 0; }
.cr-hero__marco { aspect-ratio: 4 / 3; background: var(--cr-bg); border: 1px solid var(--cr-line); position: relative; overflow: hidden; }
.cr-hero__marco img { position: absolute; bottom: 0; left: 50%; transform: translateX(-50%); height: 90%; width: auto; max-width: none; }
.cr-hero__marco--foto img { position: static; transform: none; width: 100%; height: 100%; object-fit: cover; }
.cr-hero__marco.cr-placeholder { aspect-ratio: 4 / 3; min-height: 0; background: repeating-linear-gradient(135deg, #ece5d9 0 10px, #e5ddcf 10px 20px); }
.cr-hero--santos { padding-bottom: 0; }
.cr-hero--santos .cr-hero__cuerpo { align-items: flex-end; }
.cr-hero--santos .cr-hero__texto { padding-bottom: clamp(40px, 5vw, 80px); }
.cr-hero__santos { flex: 1 1 380px; height: clamp(260px, 30vw, 420px); }
.cr-hero__santos .cr-santos-fila img:nth-child(3) { width: 27%; }
.cr-hero--legal { background: transparent; padding-bottom: clamp(32px, 4vw, 56px); }
.cr-hero__titulo--legal { font-size: clamp(42px, 4.6vw, 64px); line-height: 1.05; margin-bottom: 12px; }
.cr-hero--evento { padding-bottom: clamp(40px, 5vw, 72px); }
.cr-volver { display: inline-flex; align-items: center; min-height: 44px; font-weight: 600; }
.cr-hero-evento { display: flex; flex-wrap: wrap; gap: clamp(20px, 3vw, 40px); align-items: center; margin-top: clamp(16px, 2.4vw, 32px); }
.cr-fecha--grande { flex: none; background: var(--cr-bg3); border: 1px solid var(--cr-line2); padding: 16px 22px 14px; }
.cr-fecha--grande .cr-fecha__dia { font-size: clamp(60px, 6vw, 84px); }
.cr-fecha--grande .cr-fecha__mes { font-size: 15px; margin-top: 8px; }
.cr-hero__titulo--evento { font-size: clamp(40px, 4.6vw, 68px); line-height: 1.05; }

/* ───────────── Prosa (contenido del editor) ───────────── */
.cr-articulo { padding: clamp(48px, 6vw, 96px) var(--cr-pad) clamp(64px, 8vw, 120px); }
.cr-articulo--legal { padding-top: clamp(40px, 5vw, 64px); }
.cr-prosa { max-width: 40em; margin: 0 auto; font-size: 18px; line-height: 1.7; }
.cr-prosa--izq { margin: 0; }
.cr-prosa--intro { margin: 0 0 clamp(24px, 3vw, 40px); }
.cr-prosa > * { margin-top: 0; margin-bottom: 20px; }
.cr-prosa > *:last-child { margin-bottom: 0; }
.cr-prosa p { text-wrap: pretty; }
.cr-prosa h2 { margin: 48px 0 16px; font-size: clamp(30px, 2.8vw, 40px); }
.cr-prosa h3 { margin: 40px 0 12px; font-size: clamp(25px, 2vw, 29px); line-height: 1.2; }
.cr-prosa h4 { margin: 32px 0 10px; font-size: 22px; }
.cr-prosa > h2:first-child, .cr-prosa > h3:first-child { margin-top: 0; }
.cr-prosa ul, .cr-prosa ol { padding-left: 1.4em; }
.cr-prosa li { margin-bottom: 8px; }
.cr-prosa strong { font-weight: 700; }
.cr-prosa .is-style-entradilla, .cr-prosa > p:first-child:not(.has-text-align-center) { font-family: var(--cr-serif); font-size: clamp(24px, 2vw, 28px); line-height: 1.45; font-weight: 500; margin-bottom: 28px; }
.cr-prosa > p:first-child:not(.is-style-entradilla) ~ p { font-family: var(--cr-sans); }
.cr-prosa blockquote, .cr-prosa .wp-block-quote { margin: 48px 0; padding: 32px 0; border: 0; border-top: 1px solid var(--cr-gold); border-bottom: 1px solid var(--cr-gold); text-align: center; }
.cr-prosa blockquote::before { content: ''; display: block; width: 8px; height: 8px; background: var(--cr-gold); transform: rotate(45deg); margin: 0 auto 20px; }
.cr-prosa blockquote p { font-family: var(--cr-serif); font-style: italic; font-weight: 500; font-size: clamp(26px, 2.4vw, 34px); line-height: 1.3; color: var(--cr-ink); text-wrap: balance; margin: 0; }
.cr-prosa blockquote cite { display: block; margin-top: 16px; font-style: normal; font-size: 15px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--cr-mute); }
.cr-prosa figure { margin: 0 0 20px; }
.cr-prosa figure img { display: block; width: 100%; height: auto; }
.cr-prosa figcaption { margin-top: 14px; font-size: 16px; color: var(--cr-mute); line-height: 1.5; }
.cr-prosa .alignwide, .cr-prosa .alignfull { width: min(var(--cr-wrap), calc(100vw - 2 * var(--cr-pad))); max-width: none; margin-left: 50%; transform: translateX(-50%); margin-top: clamp(40px, 5vw, 72px); margin-bottom: clamp(40px, 5vw, 72px); }
.cr-prosa .alignwide figcaption, .cr-prosa .alignfull figcaption { max-width: 40em; margin-left: auto; margin-right: auto; }
.cr-prosa .wp-block-gallery { gap: clamp(12px, 1.6vw, 24px); }
.cr-prosa .wp-block-gallery figcaption { font-size: 15px; }
.cr-prosa .wp-block-gallery.alignwide::before, .cr-prosa .wp-block-gallery.alignfull::before { display: none; }
.cr-prosa .wp-block-image img { border: 1px solid var(--cr-line); }
.cr-prosa .wp-block-table table { width: 100%; border-collapse: collapse; }
.cr-prosa .wp-block-table td, .cr-prosa .wp-block-table th { border-bottom: 1px solid var(--cr-line); padding: 10px 8px; text-align: left; vertical-align: top; }
.cr-prosa .wp-block-buttons .wp-block-button__link { background: var(--cr-red); color: #fff; border-radius: 2px; font-weight: 600; }
.cr-prosa hr { border: 0; border-top: 4px double var(--cr-gold); margin: 40px auto; width: 120px; }

/* ───────────── Los Cuatro Santos ───────────── */
.cr-indice { border-bottom: 1px solid var(--cr-line); padding: 0 var(--cr-pad); }
.cr-indice .cr-wrap { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 6px clamp(16px, 3vw, 40px); padding: 18px 0; }
.cr-indice a { font-family: var(--cr-serif); font-weight: 600; font-size: clamp(20px, 1.8vw, 24px); color: var(--cr-ink); text-decoration: none; padding: 8px 4px; display: inline-flex; align-items: center; gap: 12px; }
.cr-indice a:hover { color: var(--cr-red); }
.cr-indice .cr-rombo { width: 7px; height: 7px; }
.cr-santos { padding: clamp(40px, 5vw, 80px) var(--cr-pad) clamp(64px, 8vw, 120px); }
.cr-santos__intro { margin-bottom: clamp(24px, 3vw, 40px); }
.cr-santo { max-width: var(--cr-wrap); margin: 0 auto; display: flex; flex-wrap: wrap; gap: clamp(28px, 5vw, 80px); align-items: center; padding: clamp(40px, 5vw, 72px) 0; border-bottom: 1px solid var(--cr-line); scroll-margin-top: 20px; }
.cr-santo--inverso { flex-direction: row-reverse; }
.cr-santo__img { flex: 1 1 360px; background: var(--cr-bg2); border: 1px solid var(--cr-line); height: clamp(420px, 44vw, 620px); display: flex; align-items: flex-end; justify-content: center; padding-top: 40px; overflow: hidden; }
.cr-santo__img img { height: 92%; width: auto; display: block; object-fit: contain; object-position: bottom; }
.cr-santo__img .cr-placeholder { min-height: 100%; }
.cr-santo__texto { flex: 1.2 1 400px; display: flex; flex-direction: column; gap: 14px; }
.cr-santo__texto .cr-eyebrow { margin: 0; }
.cr-santo__nombre { font-weight: 500; font-size: clamp(40px, 4vw, 60px); line-height: 1; }
.cr-santo__fechas { font-family: var(--cr-serif); font-style: italic; font-size: 22px; color: var(--cr-mute); }
.cr-santo__cuerpo { line-height: 1.7; max-width: 36em; }
.cr-santo__cuerpo p { margin-bottom: 14px; text-wrap: pretty; }
.cr-santo__fest { margin-top: 10px; padding-top: 16px; border-top: 4px double var(--cr-gold); display: flex; flex-wrap: wrap; gap: 4px 12px; align-items: baseline; }
.cr-santo__fest .cr-kicker { margin: 0; }
.cr-santo__fest strong { font-family: var(--cr-serif); font-weight: 600; font-size: 24px; }

/* ───────────── Festividades ───────────── */
.cr-fest-lista { display: flex; flex-direction: column; gap: clamp(20px, 2.4vw, 32px); }
.cr-fest { display: flex; flex-wrap: wrap; background: var(--cr-bg3); border: 1px solid var(--cr-line); }
.cr-fest__fecha { flex: 0 0 clamp(150px, 15vw, 200px); display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 28px 16px; border-right: 1px solid var(--cr-line); background: var(--cr-bg2); line-height: 1; }
.cr-fest__dia { font-family: var(--cr-serif); font-weight: 600; font-size: clamp(52px, 5vw, 68px); color: var(--cr-red); }
.cr-fest__mes { font-size: 14px; font-weight: 700; letter-spacing: .16em; text-transform: uppercase; margin-top: 8px; }
.cr-fest__rango { font-size: 15px; color: var(--cr-mute); margin-top: 8px; line-height: 1.3; }
.cr-fest__cuerpo { flex: 1 1 320px; padding: clamp(24px, 2.6vw, 40px); display: flex; flex-direction: column; gap: 10px; justify-content: center; }
.cr-fest__nombre { font-size: clamp(28px, 2.6vw, 38px); line-height: 1.1; }
.cr-fest__desc { line-height: 1.65; max-width: 36em; }
.cr-fest__desc p { margin-bottom: 10px; text-wrap: pretty; }
.cr-fest__desc p:last-child { margin-bottom: 0; }
.cr-fest__lugar { margin-top: 4px; font-size: 16px; color: var(--cr-mute); }
.cr-fest__img { flex: 1 1 280px; min-height: 220px; }
.cr-fest__img img { width: 100%; height: 100%; object-fit: cover; display: block; }
@media (max-width: 599px) { .cr-fest__fecha { flex-basis: 100%; border-right: 0; border-bottom: 1px solid var(--cr-line); padding: 20px; } }

/* ───────────── Hazte hermano ───────────── */
.cr-hermano { display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 80px); align-items: flex-start; }
.cr-hermano__texto { flex: 999 1 480px; }
.cr-hermano__texto h2 { margin: 0 0 12px; font-size: clamp(28px, 2.4vw, 34px); }
.cr-hermano__texto p { margin-bottom: 24px; }
.cr-hermano__texto > p:first-child { font-family: var(--cr-sans); font-size: 18px; line-height: 1.7; font-weight: 400; }
.cr-caja-doble { flex: 1 1 380px; background: var(--cr-bg2); border: 1px solid var(--cr-line); padding: 6px; }
.cr-caja-doble__int { border: 3px double var(--cr-gold); padding: clamp(24px, 2.6vw, 36px); }
.cr-caja-doble__int .cr-h3 { margin-bottom: 24px; line-height: 1.1; }
.cr-pasos { list-style: none; display: flex; flex-direction: column; gap: 22px; }
.cr-pasos li { display: grid; grid-template-columns: 44px minmax(0, 1fr); gap: 14px; }
.cr-pasos li + li { padding-top: 22px; border-top: 1px solid var(--cr-line3); }
.cr-pasos__num { font-family: var(--cr-serif); font-weight: 600; font-size: 44px; line-height: .9; color: var(--cr-red); }
.cr-pasos strong { display: block; font-size: 19px; }
.cr-pasos span:not(.cr-pasos__num) { color: var(--cr-ink2); line-height: 1.55; }
.cr-pdf { background: #e6dfd3; border: 1px solid var(--cr-line2); margin-top: 24px; }
.cr-pdf__barra { background: #2b2522; color: #efe8de; display: flex; justify-content: space-between; gap: 12px; padding: 10px 18px; font-size: 15px; }
.cr-pdf__barra span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.cr-pdf__barra a { color: #fff; flex: none; }
.cr-pdf__visor { display: block; width: 100%; height: min(80vh, 900px); border: 0; background: #e6dfd3; }
@media (max-width: 599px) { .cr-pdf__visor { height: 70vh; } }

/* ───────────── Contacto ───────────── */
.cr-contacto { display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 80px); align-items: flex-start; }
.cr-contacto__datos { flex: 1 1 400px; display: flex; flex-direction: column; gap: 28px; }
.cr-contacto__datos .cr-h3 { margin-bottom: 14px; }
.cr-contacto__bloque { padding-top: 24px; border-top: 1px solid var(--cr-line); }
.cr-contacto__bloque--oro { border-top: 4px double var(--cr-gold); }
.cr-dl { display: flex; flex-direction: column; gap: 16px; }
.cr-dl > div + div { padding-top: 16px; border-top: 1px solid var(--cr-line); }
.cr-dl dt { font-weight: 600; }
.cr-dl dd { margin: 2px 0 0; font-size: 17px; }
.cr-form { flex: 1.2 1 440px; background: var(--cr-bg3); border: 1px solid var(--cr-line); padding: clamp(24px, 3vw, 44px); display: flex; flex-direction: column; gap: 20px; scroll-margin-top: 20px; }
.cr-form label { display: flex; flex-direction: column; gap: 6px; font-weight: 600; }
.cr-form input[type=text], .cr-form input[type=email], .cr-form textarea { min-height: 56px; padding: 0 16px; font: inherit; font-weight: 400; border: 1px solid #8f8476; border-radius: 2px; background: #fff; color: var(--cr-ink); width: 100%; }
.cr-form textarea { padding: 14px 16px; resize: vertical; }
.cr-form input:focus, .cr-form textarea:focus { border-color: var(--cr-red); outline: 3px solid var(--cr-gold); outline-offset: 2px; }
.cr-form__check { flex-direction: row !important; gap: 14px !important; align-items: flex-start; font-size: 17px; line-height: 1.5; font-weight: 400 !important; cursor: pointer; }
.cr-form__check input { width: 24px; height: 24px; margin: 1px 0 0; flex: none; accent-color: var(--cr-red); }
.cr-form button { align-self: flex-start; padding: 0 40px; }
.cr-form__hp { position: absolute; left: -9999px; }
.cr-form__aviso { padding: 14px 18px; border: 1px solid; font-size: 17px; }
.cr-form__aviso--ok { background: #eef5e9; border-color: #9fc48e; color: #1f4d12; }
.cr-form__aviso--error { background: #f6e6e4; border-color: #d99a95; color: var(--cr-red2); }
.cr-mapa-ancho { height: clamp(300px, 32vw, 460px); border-top: 1px solid var(--cr-line); }
.cr-mapa-ancho .cr-placeholder { border: 0; }

/* ───────────── Agenda y ficha de evento ───────────── */
.cr-agenda-mes { margin-bottom: clamp(40px, 5vw, 64px); }
.cr-agenda-mes__titulo { padding-bottom: 12px; border-bottom: 1px solid var(--cr-ink); font-size: clamp(28px, 2.6vw, 36px); }
.cr-pasados { background: var(--cr-bg2); border: 1px solid var(--cr-line); padding: clamp(24px, 3vw, 40px); margin-top: clamp(24px, 4vw, 48px); }
.cr-pasados__titulo { padding-bottom: 12px; border-bottom: 1px solid #b9ad9c; font-size: clamp(26px, 2.4vw, 32px); color: var(--cr-ink2); }
.cr-evento-ficha { display: flex; flex-wrap: wrap; gap: clamp(32px, 5vw, 72px); align-items: flex-start; }
.cr-evento-ficha__cuerpo { flex: 999 1 520px; min-width: 0; }
.cr-evento-ficha__foto { margin: 0 0 32px; border: 1px solid var(--cr-line); }
.cr-evento-ficha__foto img { display: block; width: 100%; height: auto; }
.cr-evento-ficha__lado { flex: 1 1 320px; background: var(--cr-bg2); border: 1px solid var(--cr-line); padding: clamp(24px, 2.6vw, 36px); display: flex; flex-direction: column; gap: 18px; }
.cr-dato { display: flex; flex-direction: column; gap: 2px; }
.cr-dato + .cr-dato { padding-top: 16px; border-top: 1px solid var(--cr-line3); }
.cr-dato .cr-kicker { margin: 0; font-size: 13px; }
.cr-dato strong { font-size: 19px; font-weight: 600; }
.cr-dato .cr-mute { font-size: 16px; }
.cr-evento-ficha__lado .cr-btn { margin-top: 8px; }
.cr-evento-ficha__lado .cr-centrado { display: flex; justify-content: center; min-height: 44px; align-items: center; }

/* ───────────── Listados genéricos ───────────── */
.cr-entrada { padding: 24px 0; border-bottom: 1px solid var(--cr-line); display: flex; flex-direction: column; gap: 6px; }
.cr-entrada__titulo { font-family: var(--cr-serif); font-weight: 600; font-size: 28px; color: var(--cr-ink); text-decoration: none; }
.cr-entrada__titulo:hover { color: var(--cr-red); }
.pagination { margin-top: 32px; }
.pagination .nav-links { display: flex; flex-wrap: wrap; gap: 8px 16px; }
.screen-reader-text { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }

/* ───────────── Móvil ───────────── */
@media (max-width: 599px) {
	body { font-size: 17px; }
	.cr-btn--grande { width: 100%; }
	.cr-hero__cuerpo { gap: 28px; }
	.cr-santo--inverso { flex-direction: row; }
	.cr-santo__img { height: auto; aspect-ratio: 3 / 4; }
}
@media print {
	.cr-header, .cr-footer, .cr-menu-movil, .cr-btn { display: none !important; }
}

/* ───────────── Cookies y protección de datos ───────────── */
.cr-cookies { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 60; margin: 0 auto; max-width: 720px; background: var(--cr-bg3); color: var(--cr-ink); border: 1px solid var(--cr-line2); border-top: 4px double var(--cr-gold); box-shadow: 0 8px 30px rgba(28,25,23,.18); padding: 20px 24px; display: flex; flex-wrap: wrap; gap: 16px 24px; align-items: center; font-size: 16px; line-height: 1.5; }
.cr-cookies[hidden] { display: none; }
.cr-cookies__texto { flex: 1 1 320px; }
.cr-cookies__texto strong { display: block; font-family: var(--cr-serif); font-size: 22px; margin-bottom: 4px; }
.cr-cookies__texto p { margin: 0; }
.cr-cookies__botones { display: flex; flex-wrap: wrap; gap: 10px; }
.cr-cookies .cr-btn { min-height: 48px; }
.cr-mapa { width: 100%; height: 100%; min-height: 360px; }
.cr-mapa iframe { width: 100%; height: 100%; min-height: 360px; border: 0; display: block; }
.cr-mapa__aviso { height: 100%; min-height: 360px; background: repeating-linear-gradient(135deg, #ece5d9 0 10px, #e5ddcf 10px 20px); display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 14px; padding: 24px; text-align: center; }
.cr-mapa__aviso p { margin: 0; max-width: 32em; background: var(--cr-bg); padding: 8px 12px; font-size: 16px; }
.cr-mapa__enlace { font-size: 16px; }
.cr-rgpd { margin-top: 8px; font-size: 14px; line-height: 1.5; color: var(--cr-mute); }
.cr-caja-doble__int .cr-rgpd { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--cr-line3); }
