/* =========================================================
   Humildad Marchena — main.css
   Tema cofrade · granate, oro viejo, marfil
   100% responsive, accesible, sin dependencias externas
   ========================================================= */

/* ---------- Tokens de diseño ---------- */
:root {
	--burgundy: hsl(350 60% 18%);
	--burgundy-deep: hsl(350 60% 18%);
	--burgundy-light: hsl(350 60% 18%);

	--gold: hsl(40 55% 48%);
	--gold-light: hsl(42 65% 65%);
	--gold-deep: hsl(36 50% 32%);

	--ivory: hsl(38 40% 94%);
	--parchment: hsl(40 35% 88%);
	--background: hsl(36 30% 96%);
	--foreground: hsl(0 25% 12%);
	--muted-fg: hsl(0 15% 35%);
	--border: hsl(40 25% 80%);

	--gradient-gold: linear-gradient(180deg, hsl(42 65% 65%) 0%, hsl(40 55% 42%) 100%);
	--gradient-overlay: linear-gradient(180deg, hsl(0 25% 8% / 0.1) 0%, hsl(0 25% 8% / 0.85) 100%);

	--shadow-soft: 0 4px 20px -4px hsl(0 25% 12% / 0.15);
	--shadow-frame: 0 0 0 1px hsl(40 55% 48% / 0.3), 0 8px 30px -8px hsl(0 25% 12% / 0.25);

	--container-max: 1200px;
	--font-display: 'Cinzel', 'Trajan Pro', Georgia, serif;
	--font-serif: 'Cormorant Garamond', Georgia, serif;
}

/* ---------- Reset ligero ---------- */
*,
*::before,
*::after { box-sizing: border-box; }

html {
	scroll-behavior: smooth;
	-webkit-text-size-adjust: 100%;
	overflow-x: hidden;
}

body {
	margin: 0;
	background: var(--background);
	color: var(--foreground);
	font-family: var(--font-serif);
	font-size: 17px;
	line-height: 1.65;
	overflow-x: hidden;
	background-image:
		radial-gradient(hsl(40 30% 80% / 0.15) 1px, transparent 1px),
		radial-gradient(hsl(40 30% 80% / 0.10) 1px, transparent 1px);
	background-size: 24px 24px, 12px 12px;
	background-position: 0 0, 6px 6px;
}

img {
	max-width: 100%;
	height: auto;
	display: block;
}

a { color: var(--burgundy); text-decoration: none; transition: color .3s; }
a:hover { color: var(--gold-deep); }

h1, h2, h3, h4, h5 {
	font-family: var(--font-display);
	letter-spacing: 0.02em;
	margin: 0 0 .6em;
}

p { margin: 0 0 1em; }

.screen-reader-text {
	border: 0; clip: rect(1px, 1px, 1px, 1px); -webkit-clip-path: inset(50%); clip-path: inset(50%);
	height: 1px; width: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; word-wrap: normal !important;
}

.hm-skip-link {
	position: absolute; top: -100px; left: 8px; background: var(--burgundy-deep); color: var(--ivory);
	padding: .8rem 1.2rem; z-index: 9999; font-family: var(--font-display);
}
.hm-skip-link:focus { top: 8px; color: var(--ivory); }

/* ---------- Container ---------- */
.hm-container {
	width: 100%;
	max-width: var(--container-max);
	margin: 0 auto;
	padding: 0 1rem;
}
@media (min-width: 640px)  { .hm-container { padding: 0 1.5rem; } }
@media (min-width: 1024px) { .hm-container { padding: 0 2rem; } }

/* ---------- Filete dorado ---------- */
.hm-gold-rule {
	position: relative;
	height: 1px;
	width: 100%;
	background: linear-gradient(90deg, transparent 0%,
		hsl(40 55% 48% / .6) 20%, hsl(42 65% 65% / .9) 50%,
		hsl(40 55% 48% / .6) 80%, transparent 100%);
	margin: 2rem 0;
}
.hm-gold-rule::before, .hm-gold-rule::after {
	content: ''; position: absolute; top: 50%;
	width: 6px; height: 6px; background: var(--gold);
	transform: translateY(-50%) rotate(45deg);
}
.hm-gold-rule::before { left: calc(50% - 60px); }
.hm-gold-rule::after  { left: calc(50% + 54px); }

/* ---------- Marco ornamental ---------- */
.hm-ornate-frame {
	position: relative;
	padding: .75rem;
	background:
		linear-gradient(var(--burgundy-deep), var(--burgundy-deep)) padding-box,
		var(--gradient-gold) border-box;
	border: 2px solid transparent;
	box-shadow: var(--shadow-frame);
}

/* =========================================================
   HEADER
   ========================================================= */
.hm-header { position: relative; z-index: 50; }
.hm-header__top-rule    { height: 6px; background: var(--gradient-gold); }
.hm-header__bottom-rule { height: 4px; background: var(--gradient-gold); }

.hm-header__damask {
	position: relative;
	background-color: var(--burgundy);
	background-image:
		repeating-linear-gradient(45deg,  hsl(350 60% 18% / .04) 0 2px, transparent 2px 8px),
		repeating-linear-gradient(-45deg, hsl(350 60% 18% / .04) 0 2px, transparent 2px 8px);
	overflow: visible;
}
.hm-header__damask-overlay {
	position: absolute; inset: 0; pointer-events: none;
	background: linear-gradient(to bottom, hsl(350 60% 20% / .4), transparent, hsl(350 60% 20% / .6));
}

.hm-header__inner {
	position: relative;
	padding: 2rem 1rem;
	display: flex;
	justify-content: center;
}
@media (min-width: 768px) { .hm-header__inner { padding: 3rem 1.5rem; } }

.hm-header__brand {
	display: flex; flex-direction: column; align-items: center;
	gap: .8rem; text-align: center; color: var(--ivory);
	max-width: 100%;
}
.hm-header__brand:hover { color: var(--gold-light); }

.hm-header__logo {
	height: 80px; width: auto; opacity: .95;
	filter: invert(1) sepia(1) saturate(3) hue-rotate(0deg) brightness(.9);
}
@media (min-width: 640px) { .hm-header__logo { height: 100px; } }
@media (min-width: 768px) { .hm-header__logo { height: 112px; } }

.hm-header__location {
	font-family: var(--font-display);
	color: hsl(42 65% 65% / .85);
	font-size: .65rem; text-transform: uppercase;
	letter-spacing: .35em; margin: 0 0 .5rem;
}
@media (min-width: 768px) { .hm-header__location { font-size: .75rem; letter-spacing: .45em; } }

.hm-header__title {
	font-family: var(--font-display);
	color: var(--ivory);
	font-size: 1rem; line-height: 1.2;
	text-transform: uppercase; letter-spacing: .08em;
	margin: 0; word-wrap: break-word;
}
@media (min-width: 640px) { .hm-header__title { font-size: 1.25rem; letter-spacing: .12em; } }
@media (min-width: 768px) { .hm-header__title { font-size: 1.875rem; } }
@media (min-width: 1024px){ .hm-header__title { font-size: 2.25rem; } }

.hm-header__tagline {
	margin: .6rem 0 0;
	font-family: var(--font-serif); font-style: italic;
	color: hsl(38 40% 94% / .75); font-size: .85rem;
}
@media (min-width: 768px) { .hm-header__tagline { font-size: 1rem; } }

/* =========================================================
   NAV
   ========================================================= */
.hm-nav {
	position: relative;
	z-index: 80;
	border-top: 1px solid hsl(40 55% 48% / .3);
	background: hsl(350 60% 20% / .65);
	-webkit-backdrop-filter: blur(4px);
	backdrop-filter: blur(4px);
}
.hm-nav__container {
	display: flex; align-items: center; justify-content: center;
	padding: 0 .5rem;
}
.hm-nav__menu { width: 100%; }

.hm-nav__list {
	display: flex; align-items: center; justify-content: flex-start;
	flex-wrap: nowrap;
	gap: .25rem;
	list-style: none; margin: 0; padding: 0;
	overflow-x: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
	white-space: nowrap;
}
.hm-nav__list::-webkit-scrollbar { display: none; }
@media (min-width: 768px) {
	/* En tablet/escritorio el menú no necesita scroll horizontal y debe permitir
	   que los submenús absolutos sobresalgan por debajo de la barra. */
	.hm-nav__list {
		justify-content: center;
		flex-wrap: wrap;
		overflow-x: visible;
		overflow-y: visible;
	}
}

/* Cada item del menú: position:relative para anclar el submenú absoluto */
.hm-nav__item {
	position: relative;
	display: flex;
	align-items: center;
	flex-shrink: 0;
}

.hm-nav__link {
	position: relative;
	display: inline-block;
	padding: .85rem 1rem;
	font-family: var(--font-display);
	font-size: .8rem;
	text-transform: uppercase;
	letter-spacing: .15em;
	color: hsl(38 40% 94% / .92);
	transition: color .3s;
}
@media (min-width: 768px) {
	.hm-nav__link { padding: .85rem 1.25rem; font-size: .85rem; letter-spacing: .18em; }
}
.hm-nav__link::after {
	content: ''; position: absolute; left: 50%; transform: translateX(-50%);
	bottom: .4rem; height: 1px; width: 0;
	background: var(--gold-light); transition: width .5s;
}
.hm-nav__link:hover,
.hm-nav__link--active { color: var(--gold-light); }
.hm-nav__link:hover::after,
.hm-nav__link--active::after { width: 2rem; }

/* Menú móvil — toggle (cuando hay muchos elementos) */
.hm-nav__toggle {
	display: none;
	background: transparent; border: none; cursor: pointer;
	padding: .8rem; color: var(--ivory);
}
.hm-nav__toggle-bar {
	display: block; width: 22px; height: 2px;
	background: currentColor; margin: 4px 0; transition: transform .3s;
}

/* Caret y botón "+" para submenús */
.hm-nav__caret {
	display: inline-block;
	margin-left: .25rem;
	font-size: .8em;
	transition: transform .3s;
}
.hm-nav__item.is-open > .hm-nav__link .hm-nav__caret { transform: rotate(180deg); }

.hm-nav__submenu-toggle {
	display: inline-flex; align-items: center; justify-content: center;
	width: 36px; height: 36px;
	margin-left: -.25rem;
	background: transparent; border: none; cursor: pointer;
	color: hsl(38 40% 94% / .8);
	font-family: var(--font-display);
	font-size: 1.25rem; line-height: 1;
}
.hm-nav__submenu-toggle:hover,
.hm-nav__submenu-toggle:focus-visible { color: var(--gold-light); outline: none; }
@media (min-width: 768px) {
	/* En escritorio/tablet el menú se abre al pasar el ratón; ocultamos el "+". */
	.hm-nav__submenu-toggle { display: none; }
}

/* =========================================================
   SUBMENÚS DESPLEGABLES
   ---------------------------------------------------------
   - Escritorio (≥768px): aparecen al pasar el ratón (hover)
     o al recibir foco con teclado.
   - Móvil/táctil (<768px): aparecen al pulsar el botón "+".
   ========================================================= */
.hm-nav__submenu {
	list-style: none;
	margin: 0;
	padding: 0;
	display: none;
	background: var(--burgundy-deep);
	border: 1px solid hsl(40 55% 48% / .35);
	border-top: 2px solid var(--gold);
	min-width: 240px;
	box-shadow: 0 14px 30px -10px hsl(0 25% 8% / .55);
}
.hm-nav__submenu .hm-nav__submenu {
	border-top: 1px solid hsl(40 55% 48% / .25);
}

@media (min-width: 768px) {
	/* Submenú flotante absoluto bajo el item padre */
	.hm-nav__item--has-children > .hm-nav__submenu {
		position: absolute;
		top: 100%;
		left: 0;
		z-index: 999;
	}
	/* Apertura por hover, focus dentro o estado abierto manual */
	.hm-nav__item--has-children:hover > .hm-nav__submenu,
	.hm-nav__item--has-children:focus-within > .hm-nav__submenu,
	.hm-nav__item--has-children.is-open > .hm-nav__submenu {
		display: block;
	}
	/* Submenús anidados (3er nivel y más) → se abren al lado */
	.hm-nav__item--has-children-sub > .hm-nav__submenu {
		top: 0;
		left: 100%;
	}
	.hm-nav__item--has-children-sub:hover > .hm-nav__submenu,
	.hm-nav__item--has-children-sub:focus-within > .hm-nav__submenu {
		display: block;
	}
}

/* Móvil: el submenú se despliega DEBAJO al pulsar el botón "+" */
@media (max-width: 767.98px) {
	.hm-nav__item--has-children { flex-wrap: wrap; }
	.hm-nav__item.is-open > .hm-nav__submenu { display: block; }
	.hm-nav__submenu {
		flex-basis: 100%;
		width: 100%;
		min-width: 0;
		box-shadow: none;
		border-left: none;
		border-right: none;
	}
}

.hm-nav__submenu > .hm-nav__item { display: block; width: 100%; }
.hm-nav__submenu > .hm-nav__item > .hm-nav__sublink,
.hm-nav__submenu > .hm-nav__item > .hm-nav__submenu-toggle { width: 100%; box-sizing: border-box; }
.hm-nav__sublink {
	display: block;
	width: 100%;
	box-sizing: border-box;
	padding: .8rem 1.1rem;
	font-family: var(--font-display);
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .15em;
	color: hsl(38 40% 94% / .92);
	border-bottom: 1px solid hsl(40 55% 48% / .15);
	transition: background .25s, color .25s;
}
.hm-nav__sublink:hover,
.hm-nav__item--active > .hm-nav__sublink {
	background: hsl(350 60% 22% / .55);
	color: var(--gold-light);
}
.hm-nav__sublink::after { display: none; }
.hm-nav__item--has-children-sub > .hm-nav__sublink::after {
	content: '›';
	display: none;
	float: right;
	color: var(--gold-light);
}
@media (min-width: 768px) {
	.hm-nav__item--has-children-sub > .hm-nav__sublink::after { display: inline; }
}

/* =========================================================
   CARRUSEL
   ========================================================= */
.hm-carousel {
	position: relative;
	z-index: 1;
	overflow: hidden;
	background: var(--burgundy-deep);
	border-bottom: 1px solid hsl(40 55% 48% / .3);
}
.hm-carousel__viewport {
	position: relative;
	height: 45vh;
	min-height: 280px;
	max-height: 600px;
}
@media (min-width: 640px) { .hm-carousel__viewport { height: 50vh; min-height: 360px; } }
@media (min-width: 1024px){ .hm-carousel__viewport { height: 55vh; min-height: 420px; } }

.hm-carousel__slide {
	position: absolute; inset: 0;
	opacity: 0; transition: opacity 1s ease-in-out;
	pointer-events: none;
}
.hm-carousel__slide.is-active {
	opacity: 1; pointer-events: auto;
}
.hm-carousel__link {
	position: absolute; inset: 0; z-index: 4;
}
.hm-carousel__image {
	position: absolute; inset: 0;
	width: 100%; height: 100%;
	object-fit: cover; object-position: center;
}
.hm-carousel__overlay {
	position: absolute; inset: 0;
	background: var(--gradient-overlay);
}
.hm-carousel__overlay::after {
	content: ''; position: absolute; inset: 0;
	background: linear-gradient(to right, hsl(350 60% 20% / .75), transparent, hsl(350 60% 20% / .4));
}
.hm-carousel__caption {
	position: relative; z-index: 2;
	height: 100%;
	display: flex; align-items: flex-end;
	padding-bottom: 2rem;
	color: var(--ivory);
}
@media (min-width: 768px) { .hm-carousel__caption { padding-bottom: 3rem; } }

.hm-carousel__eyebrow {
	font-family: var(--font-display);
	color: var(--gold-light);
	font-size: .65rem; text-transform: uppercase;
	letter-spacing: .35em; margin: 0 0 .6rem;
}
@media (min-width: 768px) { .hm-carousel__eyebrow { font-size: .85rem; letter-spacing: .4em; } }

.hm-carousel__title {
	font-family: var(--font-display);
	color: var(--ivory);
	font-size: 1.25rem; line-height: 1.2;
	text-transform: uppercase; letter-spacing: .04em;
	margin: 0 0 .5rem;
	max-width: 38rem;
}
@media (min-width: 640px) { .hm-carousel__title { font-size: 1.875rem; } }
@media (min-width: 1024px){ .hm-carousel__title { font-size: 3rem; } }

.hm-carousel__subtitle {
	font-family: var(--font-serif); font-style: italic;
	color: hsl(38 40% 94% / .85);
	font-size: .9rem; max-width: 38rem;
}
@media (min-width: 768px) { .hm-carousel__subtitle { font-size: 1.125rem; } }

.hm-carousel__nav {
	position: absolute; top: 50%; transform: translateY(-50%);
	width: 44px; height: 44px;
	display: none; place-items: center;
	background: hsl(350 55% 28% / .6); color: var(--ivory);
	border: 1px solid hsl(40 55% 48% / .4);
	cursor: pointer; transition: background .3s;
	z-index: 5;
}
.hm-carousel__nav:hover { background: var(--burgundy); }
.hm-carousel__nav svg { width: 22px; height: 22px; }
.hm-carousel__nav--prev { left: 1rem; }
.hm-carousel__nav--next { right: 1rem; }
@media (min-width: 640px) { .hm-carousel__nav { display: none; } }

.hm-carousel__dots {
	display: none;
	position: absolute; left: 50%; transform: translateX(-50%);
	bottom: 1rem; gap: .5rem; z-index: 5;
}
.hm-carousel__dot {
	width: 8px; height: 8px;
	background: hsl(38 40% 94% / .5);
	border: none; cursor: pointer;
	transition: width .3s, background .3s;
	padding: 0;
}
.hm-carousel__dot.is-active {
	width: 32px; background: var(--gold-light);
}

/* =========================================================
   GRID PRINCIPAL (contenido + sidebar)
   ========================================================= */
.hm-main { padding: 2.5rem 0; }
@media (min-width: 768px) { .hm-main { padding: 4rem 0; } }

.hm-grid {
	display: grid;
	gap: 2.5rem;
}
@media (min-width: 1024px) {
	.hm-grid {
		grid-template-columns: 8fr 4fr;
		gap: 3.5rem;
	}
}

.hm-content { min-width: 0; }

/* =========================================================
   ARTÍCULOS
   ========================================================= */
.hm-article { margin-bottom: 3rem; }
.hm-article:last-child { margin-bottom: 0; }

.hm-article__header { margin-bottom: 1.25rem; }

.hm-article__meta {
	display: flex; flex-wrap: wrap; align-items: center;
	gap: .5rem .75rem;
	margin-bottom: .75rem;
	font-family: var(--font-display);
	font-size: .65rem; text-transform: uppercase;
	letter-spacing: .25em;
}
@media (min-width: 640px) { .hm-article__meta { font-size: .75rem; letter-spacing: .3em; } }

.hm-article__category {
	color: var(--burgundy); font-weight: 600;
}
.hm-article__rule {
	display: none; height: 1px; width: 2rem;
	background: hsl(40 55% 48% / .5);
}
@media (min-width: 640px) { .hm-article__rule { display: inline-block; } }

.hm-article__date { color: var(--muted-fg); }

.hm-article__title {
	font-family: var(--font-display);
	color: var(--burgundy-deep);
	font-size: 1.25rem; line-height: 1.2;
	text-transform: uppercase; letter-spacing: .03em;
	margin: 0;
	word-wrap: break-word;
}
.hm-article__title a { color: inherit; }
.hm-article__title a:hover { color: var(--burgundy); }
@media (min-width: 640px) { .hm-article__title { font-size: 1.5rem; } }
@media (min-width: 768px) { .hm-article__title { font-size: 1.75rem; } }

.hm-article__image { margin: 0 0 1.5rem; max-width: 48rem; }

.hm-article__excerpt,
.hm-article__content {
	font-family: var(--font-serif);
	font-size: 1rem; line-height: 1.75;
	color: hsl(0 25% 12% / .88);
}
@media (min-width: 640px) {
	.hm-article__excerpt,
	.hm-article__content { font-size: 1.05rem; line-height: 1.8; }
}

.hm-prose h2,
.hm-prose h3 { color: var(--burgundy-deep); margin-top: 2rem; }
.hm-prose img { margin: 1.5rem 0; }
.hm-prose ul, .hm-prose ol { padding-left: 1.5rem; }

.hm-drop-cap p:first-of-type::first-letter {
	font-family: var(--font-display); font-weight: 600;
	float: left; font-size: 3.4rem; line-height: .9;
	padding: .25rem .6rem 0 0; color: var(--burgundy);
}
@media (max-width: 480px) {
	.hm-drop-cap p:first-of-type::first-letter { float: none; font-size: 1.6rem; padding: 0; color: inherit; }
}

.hm-article__readmore {
	margin-top: 1.5rem;
	display: flex; align-items: center; gap: 1rem;
}
.hm-readmore {
	font-family: var(--font-display);
	font-size: .7rem; text-transform: uppercase; letter-spacing: .22em;
	color: var(--burgundy);
	border-bottom: 1px solid hsl(40 55% 48% / .4);
	padding-bottom: 2px; flex-shrink: 0;
}
.hm-readmore:hover { color: var(--gold-deep); border-color: var(--gold); }
.hm-readmore__rule {
	flex: 1; height: 1px;
	background: linear-gradient(to right, hsl(40 55% 48% / .3), transparent);
}

/* =========================================================
   SIDEBAR
   ========================================================= */
.hm-sidebar {
	display: flex; flex-direction: column;
	gap: 2rem;
}

.hm-sidebar-card { background: transparent; }
.hm-sidebar-card__title {
	display: flex; align-items: center; gap: .65rem;
	background: var(--burgundy); color: var(--ivory);
	padding: .65rem 1rem;
	border-bottom: 2px solid var(--gold);
}
.hm-sidebar-card__title h4 {
	margin: 0;
	font-family: var(--font-display);
	font-size: .85rem; text-transform: uppercase; letter-spacing: .2em;
}

/* Banner reutilizable */
.hm-banner {
	display: block; padding: 1.5rem;
	color: var(--ivory); text-align: center;
	border: 1px solid hsl(40 55% 48% / .3);
	transition: background .4s, box-shadow .3s;
}
.hm-banner--burgundy {
	background: linear-gradient(135deg, var(--burgundy), var(--burgundy-deep));
}
.hm-banner--burgundy:hover { background: linear-gradient(135deg, var(--burgundy-light), var(--burgundy)); color: var(--ivory); }

.hm-banner--parchment {
	background: linear-gradient(135deg, var(--parchment), var(--ivory));
	color: var(--burgundy-deep);
}
.hm-banner--parchment:hover { box-shadow: var(--shadow-soft); color: var(--burgundy-deep); }

.hm-banner--ivory {
	background: var(--ivory);
	color: var(--burgundy-deep);
}
.hm-banner--ivory:hover { background: var(--parchment); color: var(--burgundy-deep); }

/* ---------- Banner en modo IMAGEN ----------
 * La imagen subida en Medios puede tener cualquier tamaño y aquí se ajusta de forma
 * responsiva al ancho del sidebar manteniendo proporción.            */
.hm-banner--image {
	display: block;
	padding: 0;
	border: 1px solid hsl(40 55% 48% / .35);
	background: transparent;
	overflow: hidden;
	line-height: 0;
	transition: box-shadow .3s, transform .3s;
}
.hm-banner--image img {
	display: block;
	width: 100%;
	height: auto;
	max-width: 100%;
}
.hm-banner--image:hover {
	box-shadow: var(--shadow-soft);
}

.hm-banner__heading {
	font-family: var(--font-display);
	font-size: 1.25rem; text-transform: uppercase; letter-spacing: .18em;
	margin: 0;
}
.hm-banner__subtext {
	font-family: var(--font-serif); font-style: italic;
	font-size: .95rem; margin: 0;
}
.hm-banner__cta {
	margin: .75rem 0 0;
	font-size: .7rem; text-transform: uppercase; letter-spacing: .3em;
	opacity: .8;
}
.hm-banner .hm-gold-rule { margin: .8rem auto; max-width: 60%; }

/* Widgets nativos de WP en la sidebar */
.hm-sidebar .widget {
	background: var(--ivory);
	border: 1px solid hsl(40 25% 80% / .8);
}
.hm-sidebar .widget ul { list-style: none; padding: 0; margin: 0; }
.hm-sidebar .widget li {
	padding: .6rem 1rem;
	border-bottom: 1px solid hsl(40 25% 80% / .5);
	font-family: var(--font-serif);
}
.hm-sidebar .widget li:last-child { border-bottom: none; }
.hm-sidebar .widget a { color: var(--burgundy-deep); }
.hm-sidebar .widget a:hover { color: var(--burgundy); }

/* =========================================================
   FOOTER
   ========================================================= */
.hm-footer { margin-top: 4rem; }
.hm-footer__rule-top    { height: 4px; background: var(--gradient-gold); }
.hm-footer__rule-bottom { height: 6px; background: var(--gradient-gold); }

.hm-footer__damask {
	background-color: var(--burgundy);
	background-image:
		repeating-linear-gradient(45deg,  hsl(350 60% 18% / .04) 0 2px, transparent 2px 8px),
		repeating-linear-gradient(-45deg, hsl(350 60% 18% / .04) 0 2px, transparent 2px 8px);
	color: var(--ivory);
}
.hm-footer__inner { padding: 3rem 1rem; }
@media (min-width: 768px) { .hm-footer__inner { padding: 3.5rem 1.5rem; } }

.hm-footer__widgets {
	display: grid; gap: 2.5rem;
}
@media (min-width: 768px) {
	.hm-footer__widgets { grid-template-columns: repeat(3, 1fr); }
}

.hm-footer-widget__title {
	font-family: var(--font-display);
	color: var(--gold-light);
	font-size: .85rem; text-transform: uppercase; letter-spacing: .3em;
	margin: 0 0 1rem;
}
.hm-footer-widget p, .hm-footer-widget li {
	font-family: var(--font-serif);
	color: hsl(38 40% 94% / .8);
	line-height: 1.65;
}
.hm-footer-widget a { color: hsl(38 40% 94% / .85); }
.hm-footer-widget a:hover { color: var(--gold-light); }

.hm-footer__copyright {
	text-align: center;
	font-family: var(--font-serif); font-style: italic;
	font-size: .8rem; color: hsl(38 40% 94% / .6);
	margin: 0;
}

/* =========================================================
   PAGINACIÓN, FORMS Y MISC
   ========================================================= */
.hm-pagination {
	margin-top: 3rem; display: flex; justify-content: center;
}
.hm-pagination .nav-links { display: flex; gap: .5rem; flex-wrap: wrap; justify-content: center; }
.hm-pagination .page-numbers {
	font-family: var(--font-display);
	padding: .5rem .9rem; color: var(--burgundy);
	border: 1px solid hsl(40 55% 48% / .4);
	font-size: .85rem;
}
.hm-pagination .page-numbers.current,
.hm-pagination .page-numbers:hover {
	background: var(--burgundy); color: var(--ivory);
}

.hm-searchform { display: flex; gap: .5rem; }
.hm-searchform input[type="search"] {
	flex: 1; padding: .6rem .8rem;
	font-family: var(--font-serif); font-size: 1rem;
	border: 1px solid var(--border); background: var(--ivory);
}
.hm-searchform button {
	background: var(--burgundy); color: var(--ivory);
	border: none; cursor: pointer;
	padding: .6rem 1rem;
	font-family: var(--font-display);
	font-size: .75rem; text-transform: uppercase; letter-spacing: .2em;
}
.hm-searchform button:hover { background: var(--burgundy-deep); }


/* Imágenes alineadas de WP */
.alignleft  { float: left;  margin: .5rem 1.5rem 1rem 0; max-width: 50%; }
.alignright { float: right; margin: .5rem 0 1rem 1.5rem; max-width: 50%; }
.aligncenter { display: block; margin: 1rem auto; }
@media (max-width: 640px) {
	.alignleft, .alignright { float: none; margin: 1rem 0; max-width: 100%; }
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { animation-duration: 0.01ms !important; transition-duration: 0.01ms !important; }
	.hm-carousel__slide { transition: none; }
}

/* =========================================================
   SIDEBAR — TITULAR (imagen con marco y caption)
   ========================================================= */
.hm-sidebar-titular { display: block; }
.hm-sidebar-titular .hm-ornate-frame { position: relative; padding: .6rem; }
.hm-sidebar-titular img { width: 100%; height: auto; display: block; }
.hm-sidebar-titular__caption {
	position: absolute; left: .6rem; right: .6rem; bottom: .6rem;
	background: linear-gradient(to top, var(--burgundy-deep) 30%, hsl(350 60% 20% / .75) 70%, transparent);
	color: var(--ivory);
	padding: 3rem 1rem 1rem;
}
.hm-sidebar-titular__eyebrow {
	font-family: var(--font-display);
	color: hsl(42 65% 65% / .9);
	font-size: .6rem; text-transform: uppercase; letter-spacing: .35em;
	margin: 0 0 .25rem;
}
.hm-sidebar-titular__title {
	font-family: var(--font-display);
	color: var(--gold-light);
	font-size: 1rem; text-transform: uppercase; letter-spacing: .12em;
	margin: 0;
}

/* =========================================================
   CABECERA DE SECCIÓN (Más recientes / Buscar)
   ========================================================= */
.hm-section-head { margin: 0 0 2rem; text-align: left; }
.hm-section-head__eyebrow {
	font-family: var(--font-display);
	color: var(--burgundy);
	font-size: .7rem; text-transform: uppercase; letter-spacing: .3em;
	margin: 0 0 .35rem;
}
.hm-section-head__title {
	font-family: var(--font-display);
	color: var(--burgundy-deep);
	font-size: 1.5rem; text-transform: uppercase; letter-spacing: .08em;
	margin: 0 0 .9rem;
}
@media (min-width: 768px) { .hm-section-head__title { font-size: 1.875rem; } }
.hm-section-head .hm-gold-rule { margin: .25rem 0 0; max-width: 220px; }
.hm-section-head .hm-gold-rule::before { left: 0; }
.hm-section-head .hm-gold-rule::after  { left: 110px; }

/* =========================================================
   FOOTER — menú, dirección y listas de widgets
   ========================================================= */
.hm-footer__menu,
.hm-footer-widget__list {
	list-style: none; padding: 0; margin: 0;
}
.hm-footer__menu li,
.hm-footer-widget__list li {
	padding: .35rem 0;
	font-family: var(--font-serif);
	color: hsl(38 40% 94% / .8);
	line-height: 1.5;
}
.hm-footer__menu a {
	color: hsl(38 40% 94% / .85);
	border-bottom: 1px solid transparent;
	transition: color .3s, border-color .3s;
}
.hm-footer__menu a:hover {
	color: var(--gold-light);
	border-color: hsl(42 65% 65% / .5);
}
.hm-footer-widget__address {
	font-style: normal;
	font-family: var(--font-serif);
	color: hsl(38 40% 94% / .85);
	line-height: 1.7;
}
.hm-footer-widget__address a {
	color: var(--gold-light);
	border-bottom: 1px dotted hsl(42 65% 65% / .4);
}
.hm-footer-widget__address a:hover { color: var(--ivory); }
.hm-footer-widget__muted { color: hsl(38 40% 94% / .65); }

/* Enlace "Ver todas las entradas" en home */
.hm-more-link {
	margin: 2rem 0 0;
	text-align: right;
	font-family: var(--font-display);
	font-size: .8rem;
	letter-spacing: .2em;
	text-transform: uppercase;
}
.hm-more-link a {
	color: var(--burgundy);
	border-bottom: 1px solid hsl(40 55% 48% / .4);
	padding-bottom: 2px;
}
.hm-more-link a:hover { color: var(--burgundy-deep); border-color: var(--gold); }

/* Asegurar que los widgets nativos del sidebar mantienen estilo de tarjeta */
.hm-sidebar > .widget {
	margin: 0;
}

/* =========================================================
   Ajustes finales — prioridad del menú, móvil y carrusel
   ========================================================= */
.hm-header,
.hm-header__damask,
.hm-nav,
.hm-nav__container,
.hm-nav__list,
.hm-nav__item {
	overflow: visible;
}

/* El menú siempre queda por encima del carrusel. */
.hm-header { z-index: 9999; }
.hm-nav { z-index: 10000; }
.hm-nav__menu { position: relative; z-index: 10001; }
.hm-nav__submenu { z-index: 10002; }
.hm-carousel { z-index: 0; }
.hm-carousel__nav,
.hm-carousel__dots { display: none !important; }

@media (max-width: 767.98px) {
	.hm-nav__container {
		justify-content: flex-start;
		padding: .35rem 1rem;
	}
	.hm-nav__toggle {
		display: inline-flex;
		flex-direction: column;
		align-items: center;
		justify-content: center;
		border: 1px solid hsl(40 55% 48% / .35);
		border-radius: 8px;
		background: hsl(350 60% 20% / .35);
	}
	.hm-nav__menu {
		display: none;
		position: absolute;
		left: 0;
		right: 0;
		top: 100%;
		z-index: 10001;
		background: var(--burgundy-deep);
		border-top: 1px solid hsl(40 55% 48% / .35);
		box-shadow: 0 18px 40px -18px hsl(0 25% 8% / .75);
	}
	.hm-nav__menu.is-open { display: block; }
	.hm-nav__list {
		display: block;
		overflow: visible;
		white-space: normal;
		padding: .35rem 0;
	}
	.hm-nav__item {
		display: flex;
		width: 100%;
		border-bottom: 1px solid hsl(40 55% 48% / .12);
	}
	.hm-nav__link,
	.hm-nav__sublink {
		flex: 1;
		width: auto;
		padding: .9rem 1.15rem;
		white-space: normal;
	}
	.hm-nav__submenu-toggle {
		width: 48px;
		height: auto;
		min-height: 48px;
		margin-left: 0;
		border-left: 1px solid hsl(40 55% 48% / .18);
	}
	.hm-nav__submenu {
		background: hsl(350 60% 16%);
	}
	.hm-nav__submenu .hm-nav__sublink { padding-left: 1.75rem; }
	.hm-nav__submenu .hm-nav__submenu .hm-nav__sublink { padding-left: 2.35rem; }
}

/* =========================================================
   v1.3.2 — Cabecera compacta tipo referencia
   ---------------------------------------------------------
   El título, descripción, colores y tamaño del escudo se editan desde:
   Apariencia > Personalizar > Identidad del sitio / Cabecera Hermandad.
   ========================================================= */
.hm-header {
	background: hsl(0 0% 100%);
}
.hm-header__panel {
	position: relative;
	z-index: 10000;
	max-width: var(--container-max);
	margin: 1.1rem auto 0;
	background:
		linear-gradient(90deg, hsl(0 0% 100%) 0%, hsl(38 40% 94% / .92) 48%, hsl(0 0% 100% / .72) 100%);
	border-left: 1px solid hsl(40 25% 80% / .65);
	border-right: 1px solid hsl(40 25% 80% / .65);
	box-shadow: 0 10px 24px -18px hsl(0 25% 12% / .45);
}
.hm-header__inner {
	padding: .75rem 1rem .65rem;
	justify-content: flex-start;
}
.hm-header__brand {
	width: 100%;
	flex-direction: row;
	justify-content: flex-start;
	align-items: center;
	gap: 1.4rem;
	text-align: left;
	color: var(--burgundy-deep);
}
.hm-header__brand:hover { color: var(--burgundy); }
.hm-header__logo {
	height: var(--hm-header-logo-height, 116px);
	max-height: 132px;
	width: auto;
	filter: none;
	object-fit: contain;
	flex: 0 0 auto;
}
.hm-header__title {
	color: var(--hm-header-title-color, var(--burgundy-deep));
	font-size: clamp(1.35rem, 3vw, var(--hm-header-title-size, 34px));
	line-height: 1.05;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.hm-header__tagline {
	margin: .15rem 0 0;
	font-family: var(--font-serif);
	font-style: normal;
	font-weight: 600;
	color: var(--hm-header-tagline-color, var(--gold-deep));
	font-size: clamp(.95rem, 1.7vw, var(--hm-header-tagline-size, 18px));
	line-height: 1.2;
}
.hm-nav {
	border-top: none;
	background: var(--burgundy);
	-webkit-backdrop-filter: none;
	backdrop-filter: none;
}
.hm-nav__container { padding: 0 .6rem; }
.hm-nav__list {
	justify-content: center;
	gap: 0;
}
.hm-nav__link {
	padding: .68rem .9rem;
	font-size: .72rem;
	letter-spacing: .08em;
}
@media (min-width: 768px) {
	.hm-nav__link { padding: .72rem 1rem; font-size: .76rem; letter-spacing: .09em; }
}

@media (max-width: 767.98px) {
	.hm-header__panel { margin-top: 0; }
	.hm-header__inner { padding: .8rem 1rem; }
	.hm-header__brand { gap: .85rem; align-items: center; }
	.hm-header__logo { height: min(72px, var(--hm-header-logo-height, 116px)); }
	.hm-header__title { font-size: 1rem; line-height: 1.15; }
	.hm-header__tagline { font-size: .82rem; }
	.hm-nav__container { padding: .35rem 1rem; }
}

/* =========================================================
   v1.3.2 — Desplegables ajustados al contenido
   ========================================================= */
@media (min-width: 768px) {
	.hm-nav__submenu {
		width: max-content;
		min-width: max-content;
		max-width: min(360px, calc(100vw - 2rem));
		white-space: nowrap;
	}
	.hm-nav__sublink {
		padding: .7rem .95rem;
		letter-spacing: .08em;
	}
}

/* =========================================================
   v1.3.2 — Módulo de entradas tipo "Vida de Hermandad"
   ========================================================= */
.hm-content--home {
	background: hsl(40 35% 88% / .68);
	border: 1px solid hsl(40 25% 80% / .65);
	padding: .7rem;
}
.hm-news-section-head {
	background: var(--burgundy-deep);
	border-radius: 8px 8px 0 0;
	padding: .55rem 1rem;
	margin: 0 0 1rem;
}
.hm-news-section-head h2 {
	margin: 0;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: 1.45rem;
	line-height: 1.1;
	letter-spacing: .02em;
	text-transform: none;
}
.hm-news-grid {
	display: grid;
	grid-template-columns: 1fr;
	gap: 1.6rem 1.25rem;
}
@media (min-width: 720px) {
	.hm-news-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
.hm-news-card {
	min-width: 0;
}
.hm-news-card__title {
	margin: 0 0 .75rem;
	font-family: var(--font-display);
	font-size: 1rem;
	line-height: 1.25;
	letter-spacing: .02em;
	text-transform: none;
	color: var(--burgundy-deep);
}
.hm-news-card__title a { color: inherit; }
.hm-news-card__title a:hover { color: var(--burgundy); }
.hm-news-card__image {
	display: block;
	aspect-ratio: 3 / 2;
	overflow: hidden;
	margin: 0 0 .65rem;
	background: var(--parchment);
}
.hm-news-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 35%;
}
.hm-news-card__excerpt {
	font-family: Georgia, 'Times New Roman', serif;
	font-size: .93rem;
	line-height: 1.55;
	color: hsl(0 25% 12% / .88);
}
.hm-news-card__excerpt p { margin: 0; }
.hm-news-card__more {
	display: block;
	margin-top: .6rem;
	text-align: right;
	font-family: var(--font-serif);
	font-size: .9rem;
	color: var(--burgundy);
}
.hm-news-card__more:hover { color: var(--gold-deep); }

/* =========================================================
   v1.3.3 — Header y menú a ancho completo
   ---------------------------------------------------------
   La cabecera recupera el ancho total de la web, igual que el carrusel. El
   contenido interno sigue centrado mediante .hm-container para conservar lectura.
   ========================================================= */
.hm-header__panel {
	max-width: none;
	width: 100%;
	margin: 0;
	border-left: 0;
	border-right: 0;
}
.hm-nav {
	width: 100%;
}

/* =========================================================
   v1.3.3 — Calendario de actos
   ========================================================= */
.hm-events-list {
	background: var(--ivory);
	border: 1px solid hsl(40 25% 80% / .8);
}
.hm-event {
	display: grid;
	grid-template-columns: 58px minmax(0, 1fr);
	gap: .85rem;
	align-items: center;
	padding: .85rem 1rem;
	color: var(--foreground);
	border-bottom: 1px solid hsl(40 25% 80% / .55);
	transition: background .25s, color .25s;
}
.hm-event:last-child { border-bottom: none; }
a.hm-event:hover {
	background: hsl(40 35% 88% / .55);
	color: var(--burgundy-deep);
}
.hm-event--featured {
	background: hsl(40 55% 48% / .10);
}
.hm-event__date {
	display: grid;
	place-items: center;
	min-height: 58px;
	background: var(--burgundy);
	color: var(--ivory);
	border-bottom: 3px solid var(--gold);
	text-align: center;
	font-family: var(--font-display);
	text-transform: uppercase;
}
.hm-event__date strong {
	display: block;
	font-size: 1.35rem;
	line-height: 1;
	letter-spacing: 0;
}
.hm-event__date em {
	display: block;
	margin-top: .2rem;
	font-style: normal;
	font-size: .65rem;
	letter-spacing: .14em;
}
.hm-event__body {
	min-width: 0;
	display: block;
}
.hm-event__title {
	display: block;
	font-family: var(--font-display);
	font-size: .9rem;
	line-height: 1.25;
	color: var(--burgundy-deep);
}
.hm-event__meta {
	display: block;
	margin-top: .25rem;
	font-family: var(--font-serif);
	font-size: .9rem;
	line-height: 1.35;
	color: var(--muted-fg);
}
.hm-events-empty {
	margin: 0;
	padding: 1rem;
	background: var(--ivory);
	border: 1px solid hsl(40 25% 80% / .8);
	color: var(--muted-fg);
}

/* =========================================================
   v1.3.3 — Widget / área de formulario de contacto
   ========================================================= */
.hm-contact-page-area {
	margin-top: 2.5rem;
	padding-top: 2rem;
	border-top: 1px solid hsl(40 25% 80% / .75);
}
.hm-contact-widget-area {
	background: var(--ivory);
	border: 1px solid hsl(40 25% 80% / .8);
	padding: 1.25rem;
}
.hm-contact-form {
	display: grid;
	gap: 1rem;
}
.hm-contact-form__field {
	margin: 0;
}
.hm-contact-form label {
	display: block;
	margin-bottom: .35rem;
	font-family: var(--font-display);
	font-size: .72rem;
	letter-spacing: .16em;
	text-transform: uppercase;
	color: var(--burgundy-deep);
}
.hm-contact-form input,
.hm-contact-form textarea {
	width: 100%;
	border: 1px solid var(--border);
	background: hsl(0 0% 100%);
	color: var(--foreground);
	font-family: var(--font-serif);
	font-size: 1rem;
	line-height: 1.45;
	padding: .75rem .85rem;
}
.hm-contact-form textarea {
	min-height: 150px;
	resize: vertical;
}
.hm-contact-form input:focus,
.hm-contact-form textarea:focus {
	outline: 2px solid hsl(40 55% 48% / .35);
	border-color: var(--gold);
}
.hm-contact-form__hp {
	position: absolute;
	left: -9999px;
	height: 1px;
	overflow: hidden;
}
.hm-contact-form__submit {
	justify-self: start;
	border: 0;
	background: var(--burgundy);
	color: var(--ivory);
	cursor: pointer;
	padding: .8rem 1.2rem;
	font-family: var(--font-display);
	font-size: .78rem;
	letter-spacing: .18em;
	text-transform: uppercase;
	transition: background .25s, color .25s;
}
.hm-contact-form__submit:hover,
.hm-contact-form__submit:focus-visible {
	background: var(--burgundy-deep);
	color: var(--gold-light);
}
.hm-contact-status {
	margin: 0 0 1rem;
	padding: .75rem .9rem;
	font-family: var(--font-serif);
}
.hm-contact-status--ok {
	background: hsl(120 35% 92%);
	color: hsl(120 50% 22%);
}
.hm-contact-status--error {
	background: hsl(0 55% 94%);
	color: hsl(0 55% 30%);
}
@media (max-width: 640px) {
	.hm-contact-widget-area { padding: 1rem; }
	.hm-contact-form__submit { width: 100%; }
}

/* =========================================================
   v1.3.6 — Blog, banners en páginas, cookies y navegación de actos
   ========================================================= */
.hm-content--blog .hm-news-section-head h1 {
	margin: 0;
	color: var(--ivory);
	font-family: var(--font-display);
	font-size: 1.45rem;
	line-height: 1.1;
	letter-spacing: .02em;
	text-transform: none;
}
.hm-news-grid--blog {
	grid-template-columns: 1fr;
	gap: 2rem;
}
@media (min-width: 720px) {
	.hm-news-grid--blog { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (min-width: 1100px) {
	.hm-news-grid--blog { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
.hm-news-section-head--blog {
	border-bottom: 2px solid var(--gold);
	padding-bottom: .5rem;
	margin-bottom: 1.5rem;
}
.hm-news-section-head--blog .hm-breadcrumbs {
	font-family: var(--font-display);
	font-size: .7rem;
	letter-spacing: .25em;
	text-transform: uppercase;
	color: var(--burgundy);
	margin: 0 0 .5rem;
}
.hm-news-section-head--blog .hm-breadcrumbs a { color: inherit; text-decoration: none; }
.hm-news-section-head--blog .hm-breadcrumbs a:hover { color: var(--gold-deep); }
.hm-news-section-head--blog h1 {
	font-family: var(--font-display);
	font-size: clamp(1.6rem, 3vw, 2.4rem);
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--burgundy-deep);
	margin: 0;
}

/* .hm-page-banner: estilos definidos más abajo (idéntico al sidebar). */
.hm-contact-form--shortcode {
	background: var(--ivory);
	border: 1px solid hsl(40 25% 80% / .8);
	padding: 1.25rem;
	margin: 1.5rem 0;
}
.hm-contact-form__title {
	margin: 0 0 .5rem;
	color: var(--burgundy-deep);
	font-size: 1.25rem;
}

.hm-events-nav {
	display: flex;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	padding: .75rem;
	background: var(--ivory);
	border: 1px solid hsl(40 25% 80% / .8);
	border-top: 0;
}
.hm-events-nav__button {
	width: 2rem;
	height: 2rem;
	border: 1px solid hsl(40 55% 48% / .45);
	background: var(--burgundy);
	color: var(--ivory);
	cursor: pointer;
	font-size: 1.2rem;
	line-height: 1;
}
.hm-events-nav__button:hover,
.hm-events-nav__button:focus-visible {
	background: var(--burgundy-deep);
	color: var(--gold-light);
}
.hm-events-nav__button:disabled {
	cursor: not-allowed;
	opacity: .45;
}
.hm-events-nav__status {
	min-width: 3.5rem;
	text-align: center;
	font-family: var(--font-display);
	font-size: .75rem;
	letter-spacing: .12em;
	color: var(--burgundy-deep);
}

.hm-cookie {
	position: fixed;
	z-index: 11000;
	left: 0;
	right: 0;
	bottom: 0;
	padding: 1rem;
	background: linear-gradient(to top, hsl(0 25% 8% / .45), transparent);
}
.hm-cookie__panel {
	max-width: var(--container-max);
	margin: 0 auto;
	display: grid;
	gap: 1rem;
	align-items: center;
	padding: 1rem;
	background: var(--ivory);
	border: 1px solid hsl(40 55% 48% / .45);
	box-shadow: 0 18px 45px -20px hsl(0 25% 8% / .6);
}
@media (min-width: 768px) {
	.hm-cookie__panel { grid-template-columns: minmax(0, 1fr) auto; }
}
.hm-cookie__title {
	margin: 0 0 .35rem;
	font-size: 1rem;
	color: var(--burgundy-deep);
}
.hm-cookie__text {
	margin: 0;
	font-size: .95rem;
	line-height: 1.45;
	color: var(--foreground);
}
.hm-cookie__options {
	margin-top: .75rem;
	display: grid;
	gap: .4rem;
	font-family: var(--font-serif);
	font-size: .95rem;
}
.hm-cookie__actions {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	justify-content: flex-start;
}
@media (min-width: 768px) {
	.hm-cookie__actions { justify-content: flex-end; }
}
.hm-cookie__button {
	border: 0;
	background: var(--burgundy);
	color: var(--ivory);
	cursor: pointer;
	padding: .7rem .9rem;
	font-family: var(--font-display);
	font-size: .72rem;
	letter-spacing: .14em;
	text-transform: uppercase;
}
.hm-cookie__button:hover,
.hm-cookie__button:focus-visible {
	background: var(--burgundy-deep);
	color: var(--gold-light);
}
.hm-cookie__button--ghost {
	background: transparent;
	color: var(--burgundy-deep);
	border: 1px solid hsl(40 55% 48% / .45);
}
.hm-cookie__button--ghost:hover,
.hm-cookie__button--ghost:focus-visible {
	background: var(--parchment);
	color: var(--burgundy-deep);
}
@media (max-width: 640px) {
	.hm-cookie { padding: .75rem; }
	.hm-cookie__button { flex: 1 1 auto; }
}

/* ============================================================
 * v1.3.7 — Ajustes
 * ============================================================ */

/* Calendario: el atributo [hidden] tiene que prevalecer sobre `display: grid`. */
.hm-event[hidden] { display: none !important; }

/* Banner insertado en una página mediante shortcode [hm_banner id="..."].
 * Debe verse EXACTAMENTE igual que el de la barra lateral: cabecera granate
 * encima y contenido (imagen o tarjeta) debajo, ocupando todo el ancho del
 * propio banner. Forzamos display block para protegernos de reglas globales
 * de `.entry-content` (flex, grid, floats, etc.).                           */
.hm-page-banner {
	display: inline-block !important;
	float: none !important;
	clear: both;
	margin: 1.5rem 0;
	width: -moz-max-content;
	width: max-content;
	max-width: 100%;
	background: transparent;
	vertical-align: top;
}
.hm-page-banner > * {
	display: block;
	max-width: 100%;
	float: none;
}
.hm-page-banner .hm-sidebar-card__title {
	display: flex;
	align-items: center;
	gap: .65rem;
	background: var(--burgundy);
	color: var(--ivory);
	padding: .65rem 1rem;
	border-bottom: 2px solid var(--gold);
	margin: 0;
}
.hm-page-banner .hm-sidebar-card__title h4 {
	margin: 0;
	font-family: var(--font-display);
	font-size: .85rem;
	text-transform: uppercase;
	letter-spacing: .2em;
	color: var(--ivory);
}
.hm-page-banner .hm-banner { margin: 0; }
/* La imagen manda: el banner se ajusta a su tamaño natural sin huecos
 * en blanco, ya sea vertical u horizontal. Si la imagen es más ancha
 * que el contenedor padre, escala manteniendo proporción.            */
.hm-page-banner .hm-banner--image {
	display: block;
	line-height: 0;
	font-size: 0;
}
.hm-page-banner .hm-banner--image img {
	display: block;
	width: auto;
	height: auto;
	max-width: 100%;
}

/* ============================================================
 * v1.4.0 — Página de Boletines (grid 3x3)
 * ============================================================ */
.hm-bulletins {
	margin: 2rem 0;
}
.hm-bulletins__grid {
	display: grid;
	gap: 1.75rem;
	grid-template-columns: 1fr;
	align-items: start; /* v1.4.8 — evita que las celdas se estiren a la altura de la fila */
}
@media (min-width: 600px) {
	.hm-bulletins__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (min-width: 900px) {
	.hm-bulletins__grid { grid-template-columns: repeat(3, 1fr); }
}
/* v1.4.8 — encuadrar el banner exactamente a la foto, sin huecos en blanco
 * arriba ni abajo. La tarjeta sólo contiene la cabecera granate + imagen. */
.hm-bulletins__item {
	display: block;
	align-self: start;
	line-height: 0;
	font-size: 0;
}
.hm-bulletins__item .hm-page-banner {
	display: block !important;
	width: 100%;
	max-width: 100%;
	margin: 0;
	padding: 0;
	line-height: 0;
	font-size: 0;
	background: transparent;
	border: 0;
}
.hm-bulletins__item .hm-page-banner > * { margin: 0; }
.hm-bulletins__item .hm-banner,
.hm-bulletins__item .hm-banner--image {
	display: block;
	margin: 0;
	padding: 0;
	border: 0;
	background: transparent;
	line-height: 0;
	font-size: 0;
}
.hm-bulletins__item .hm-banner--image img {
	display: block;
	width: 100%;
	height: auto;
	margin: 0;
	vertical-align: top;
}
.hm-bulletins__pagination {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	justify-content: center;
	margin-top: 2rem;
}
.hm-bulletins__pagination a,
.hm-bulletins__pagination span {
	padding: .55rem .9rem;
	border: 1px solid hsl(40 55% 48% / .45);
	font-family: var(--font-display);
	font-size: .75rem;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: var(--burgundy-deep);
	background: var(--ivory);
	text-decoration: none;
}
.hm-bulletins__pagination .current,
.hm-bulletins__pagination a:hover {
	background: var(--burgundy);
	color: var(--ivory);
}
.hm-bulletins__empty {
	text-align: center;
	font-family: var(--font-serif);
	font-style: italic;
	color: var(--burgundy-deep);
	padding: 3rem 1rem;
}


/* =========================================================
   CARRUSEL SHORTCODE [hm_image_carousel]
   ========================================================= */
/* El contenedor se ajusta al tamaño real de la foto activa: la diapositiva activa va
   en flujo normal (position: relative) y dicta el alto; las demás se apilan absolutas
   encima con la misma caja. Así NUNCA hay bandas vacías sobre/bajo la imagen. */
.hm-shortcode-carousel { position: relative; overflow: hidden; margin: 1.5rem auto; border: 1px solid hsl(40 55% 48% / .35); background: transparent; max-width: 100%; }
.hm-shortcode-carousel__track { position: relative; width: 100%; }
.hm-shortcode-carousel__slide { position: absolute; inset: 0; opacity: 0; transition: opacity .6s ease; display: flex; align-items: center; justify-content: center; }
.hm-shortcode-carousel__slide.is-active { opacity: 1; z-index: 1; position: relative; inset: auto; }
.hm-shortcode-carousel__slide img { display: block; max-width: 100%; max-height: min(80vh, 720px); width: auto; height: auto; margin: 0 auto; }
/* Si el contenedor es más estrecho que la foto, recortamos enfocando al centro. */
.hm-shortcode-carousel.is-cropped .hm-shortcode-carousel__slide.is-active { width: 100%; height: min(80vh, 720px); }
.hm-shortcode-carousel.is-cropped .hm-shortcode-carousel__slide img { width: 100%; height: 100%; object-fit: cover; object-position: center; max-height: none; }
.hm-shortcode-carousel__caption { position: absolute; left: 0; right: 0; bottom: 0; padding: .8rem 1rem; background: linear-gradient(0deg, hsla(0,0%,0%,.65), transparent); color: #fff; font-family: var(--font-display, Cinzel, serif); font-size: .9rem; letter-spacing: .08em; z-index: 2; }
.hm-shortcode-carousel__btn { position: absolute; top: 50%; transform: translateY(-50%); z-index: 5; background: hsl(350 55% 22% / .8); color: #f5e8c2; border: 1px solid hsl(40 55% 48% / .55); width: 42px; height: 42px; cursor: pointer; font-size: 1.4rem; line-height: 1; display: flex; align-items: center; justify-content: center; transition: background .25s; }
.hm-shortcode-carousel__btn:hover { background: hsl(350 60% 22% / .95); }
.hm-shortcode-carousel__btn--prev { left: .6rem; }
.hm-shortcode-carousel__btn--next { right: .6rem; }
.hm-shortcode-carousel__dots { position: absolute; bottom: .6rem; left: 50%; transform: translateX(-50%); display: flex; gap: .35rem; z-index: 5; }
.hm-shortcode-carousel__dot { width: 9px; height: 9px; border-radius: 50%; border: 1px solid #f5e8c2; background: transparent; padding: 0; cursor: pointer; }
.hm-shortcode-carousel__dot.is-active { background: #f5e8c2; }
@media (max-width: 600px) { .hm-shortcode-carousel__btn { width: 36px; height: 36px; font-size: 1.2rem; } }

/* ============================================================
   STICKY BAR — barra fija al hacer scroll (logo + título + menú)
   ============================================================ */
.hm-stickybar {
	position: fixed;
	top: 0; left: 0; right: 0;
	z-index: 9998;
	background: linear-gradient(180deg, #3a1118 0%, #2e0d13 100%);
	border-bottom: 2px solid var(--gold, #b8923a);
	box-shadow: 0 4px 18px rgba(0,0,0,.25);
	transform: translateY(-110%);
	transition: transform .35s ease, opacity .35s ease;
	opacity: 0;
	pointer-events: none;
}
.hm-stickybar.is-visible {
	transform: translateY(0);
	opacity: 1;
	pointer-events: auto;
}
.hm-stickybar__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: .85rem;
	min-height: 60px;
	padding: .35rem 1rem;
	flex-wrap: nowrap;
}
.hm-stickybar__brand {
	display: flex;
	align-items: center;
	gap: .6rem;
	text-decoration: none;
	color: #f5ecd6;
	min-width: 0;
	flex: 0 1 auto;
	max-width: 55%;
}
.hm-stickybar__logo {
	height: 42px;
	width: auto;
	display: block;
	flex-shrink: 0;
}
.hm-stickybar__title {
	font-family: 'Cinzel', serif;
	font-size: clamp(.62rem, 1.05vw, .9rem);
	line-height: 1.15;
	letter-spacing: .05em;
	color: #f5ecd6;
	white-space: normal;
	overflow: visible;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow-wrap: anywhere;
	word-break: break-word;
}
.hm-stickybar__menu {
	flex: 1 1 auto;
	display: flex;
	justify-content: flex-end;
	min-width: 0;
}
.hm-stickybar__menu .hm-nav__list {
	display: flex;
	flex-wrap: nowrap;
	overflow: visible;
	margin: 0; padding: 0; list-style: none;
	gap: .15rem;
	align-items: center;
}
.hm-stickybar__menu .hm-nav__link,
.hm-stickybar__menu .hm-nav__sublink {
	color: #f5ecd6;
	text-decoration: none;
	padding: .55rem .7rem;
	font-family: 'Cinzel', serif;
	font-size: clamp(.66rem, .82vw, .78rem);
	letter-spacing: .12em;
	text-transform: uppercase;
	white-space: nowrap;
	display: block;
}
.hm-stickybar__menu .hm-nav__link:hover,
.hm-stickybar__menu .hm-nav__sublink:hover {
	color: #e6c97a;
	background: rgba(0,0,0,.15);
}
.hm-stickybar__menu .hm-nav__item { position: relative; }
.hm-stickybar__menu .hm-nav__submenu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: #3a1118;
	border: 1px solid rgba(184,146,58,.4);
	margin: 0; padding: .35rem 0; list-style: none;
	display: none;
	z-index: 10000;
	box-shadow: 0 6px 18px rgba(0,0,0,.35);
}
.hm-stickybar__menu .hm-nav__item:hover > .hm-nav__submenu,
.hm-stickybar__menu .hm-nav__item.is-open > .hm-nav__submenu {
	display: block;
}
.hm-stickybar__menu .hm-nav__submenu .hm-nav__submenu {
	top: 0; left: 100%;
}
.hm-stickybar__toggle {
	display: none;
	background: transparent;
	border: 1px solid rgba(245,236,214,.4);
	width: 40px; height: 40px;
	cursor: pointer;
	padding: 0;
	align-items: center; justify-content: center;
	flex-direction: column;
	gap: 4px;
	flex-shrink: 0;
}
.hm-stickybar__toggle span {
	display: block; width: 20px; height: 2px; background: #f5ecd6;
}

@media (max-width: 900px) {
	.hm-stickybar__toggle { display: inline-flex; }
	.hm-stickybar__menu {
		position: absolute;
		top: 100%; left: 0; right: 0;
		background: #3a1118;
		border-top: 1px solid rgba(184,146,58,.4);
		max-height: 70vh;
		overflow-y: auto;
		display: none;
		padding: .5rem 0;
	}
	.hm-stickybar__menu.is-open { display: block; }
	.hm-stickybar__menu .hm-nav__list {
		flex-direction: column;
		gap: 0;
		overflow: visible;
	}
	.hm-stickybar__menu .hm-nav__submenu {
		position: static;
		display: none;
		border: 0;
		background: rgba(0,0,0,.2);
		padding-left: 1rem;
		box-shadow: none;
	}
	.hm-stickybar__menu .hm-nav__item.is-open > .hm-nav__submenu { display: block; }
	.hm-stickybar__title { max-width: 60vw; font-size: clamp(.6rem, 2.4vw, .78rem); -webkit-line-clamp: 2; }
	.hm-stickybar__logo { height: 36px; }
	.hm-stickybar__brand { max-width: 70%; }
}

body.hm-has-stickybar { /* reservado para futuros offsets si se necesitan */ }

/* ============================================================
   v1.5.2 — Portada con entrada destacada (hero)
   ============================================================ */
.hm-content--featured .hm-hero-card {
	position: relative;
	display: grid;
	grid-template-rows: auto auto;
	margin: 0 0 2.25rem;
	background: #fbf6e8;
	border: 1px solid rgba(184,146,58,.35);
	box-shadow: 0 10px 30px -12px rgba(0,0,0,.35);
	overflow: hidden;
}
.hm-hero-card__media {
	position: relative;
	display: block;
	width: 100%;
	aspect-ratio: 16 / 8;
	background: #3a1118;
	overflow: hidden;
	text-decoration: none;
}
.hm-hero-card__media img {
	width: 100%; height: 100%;
	object-fit: cover;
	display: block;
	transition: transform .6s ease;
}
.hm-hero-card__media:hover img { transform: scale(1.04); }
.hm-hero-card__placeholder {
	position: absolute; inset: 0;
	background: linear-gradient(135deg,#3a1118 0%,#3a1118 100%);
}
.hm-hero-card__shade {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.78) 100%);
	pointer-events: none;
}
.hm-hero-card__overlay {
	position: absolute; left: 0; right: 0; bottom: 0;
	padding: 1.5rem clamp(1rem, 3vw, 2.5rem);
	color: #f5ecd6;
}
.hm-hero-card__eyebrow {
	font-family: 'Cinzel', serif;
	font-size: .68rem; letter-spacing: .28em; text-transform: uppercase;
	margin: 0 0 .55rem; color: #e6c97a;
}
.hm-hero-card__title {
	font-family: 'Cinzel', serif;
	font-size: clamp(1.35rem, 2.4vw, 2.2rem);
	line-height: 1.15; margin: 0 0 .55rem;
	color: #fffaf0; text-shadow: 0 2px 12px rgba(0,0,0,.55);
}
.hm-hero-card__date {
	margin: 0; font-family: 'Cormorant Garamond', Georgia, serif;
	font-style: italic; font-size: .95rem;
	color: rgba(245,236,214,.85);
}
.hm-hero-card__excerpt {
	padding: 1.25rem clamp(1rem, 3vw, 2.25rem) 1.5rem;
	font-family: 'Cormorant Garamond', Georgia, serif;
	font-size: 1.05rem; line-height: 1.65; color: #2a1a1d;
}
.hm-hero-card__excerpt p { margin: 0 0 .85rem; }
.hm-hero-card__more {
	display: inline-block;
	font-family: 'Cinzel', serif;
	font-size: .72rem; letter-spacing: .22em; text-transform: uppercase;
	color: var(--burgundy, #3a1118);
	text-decoration: none;
	border-bottom: 1px solid rgba(184,146,58,.55);
	padding-bottom: 2px;
}
.hm-hero-card__more:hover { color: var(--gold-deep, #7b6a36); }

.hm-news-section-head--sub { margin-top: .5rem; margin-bottom: 1rem; }
.hm-news-section-head--sub h3 {
	font-family: 'Cinzel', serif;
	font-size: 1.05rem; letter-spacing: .18em; text-transform: uppercase;
	color:  #ffffff;
	margin: 0; padding-bottom: .35rem;
	border-bottom: 1px solid rgba(184,146,58,.4);
}
.hm-news-grid--secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 720px) {
	.hm-news-grid--secondary { grid-template-columns: 1fr; }
	.hm-hero-card__media { aspect-ratio: 16 / 10; }
}
@media (min-width: 1100px) {
	.hm-news-grid--secondary { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* v1.5.2 — Aseguramos que los submenús de la barra fija floten por encima */
.hm-stickybar,
.hm-stickybar__inner,
.hm-stickybar__menu { overflow: visible; }
.hm-stickybar__menu .hm-nav__submenu { z-index: 10001; }

/* ============================================================
   v1.5.3 — Ajustes finales
   • Tono burdeos unificado (oscuro) en toda la web
   • Corrección de submenús que se salían de su casilla
   ============================================================ */

/* Permitir que las palabras largas se ajusten dentro de cada celda del submenú */
.hm-nav__submenu {
	max-width: min(420px, calc(100vw - 1rem));
}
.hm-nav__sublink {
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
	hyphens: auto;
	line-height: 1.35;
}

/* Mismo tratamiento en la barra fija */
.hm-stickybar__menu .hm-nav__submenu {
	max-width: min(360px, calc(100vw - 1rem));
}
.hm-stickybar__menu .hm-nav__sublink {
	white-space: normal;
	overflow-wrap: anywhere;
	word-break: break-word;
	line-height: 1.3;
}
