/*
 Theme Name:  Cazurreo Child
 Description: Child theme del proyecto Cazurreo — Guía de Turismo de León
 Template:    blocksy
 Version:     2.9.0
 Text Domain: cazurreo-child
*/

/* ============================================================
   CAZURREO — Design System
   ============================================================ */

:root {
	--czr-primary:      #c17f24;
	--czr-primary-dark: #9a601a;
	--czr-primary-light:#f0d9b0;
	--czr-navy:         #0b1e35;
	--czr-navy-mid:     #16375e;
	--czr-bg:           #f7f4ef;
	--czr-bg-card:      #ffffff;
	--czr-text:         #1a1a1a;
	--czr-text-mid:     #444;
	--czr-text-light:   #777;
	--czr-border:       #e8e2d9;
	--czr-radius-sm:    8px;
	--czr-radius:       14px;
	--czr-radius-lg:    20px;
	--czr-shadow-sm:    0 1px 4px rgba(0,0,0,.06);
	--czr-shadow:       0 4px 20px rgba(0,0,0,.08);
	--czr-shadow-lg:    0 12px 40px rgba(0,0,0,.14);
	--czr-transition:   .22s cubic-bezier(.4,0,.2,1);
}

*, *::before, *::after { box-sizing: border-box; }

.czr-container {
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 1.5rem;
}

/* ============================================================
   HERO
   ============================================================ */

.czr-hero {
	position: relative;
	min-height: 92vh;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(150deg, #091929 0%, var(--czr-navy) 45%, #102540 100%);
	overflow: hidden;
	text-align: center;
}

/* Diagonal pattern overlay */
.czr-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(
		-45deg,
		rgba(255,255,255,.018) 0,
		rgba(255,255,255,.018) 1px,
		transparent 1px,
		transparent 48px
	);
	pointer-events: none;
}

/* Gold bottom line */
.czr-hero::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0; right: 0;
	height: 3px;
	background: linear-gradient(90deg, transparent 0%, var(--czr-primary) 40%, var(--czr-primary) 60%, transparent 100%);
}

.czr-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 680px;
	padding: 6rem 1.5rem 8rem;
}

.czr-hero__eyebrow {
	display: inline-block;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .18em;
	color: var(--czr-primary);
	border: 1px solid rgba(193,127,36,.35);
	padding: .35rem 1rem;
	border-radius: 2rem;
	margin-bottom: 1.5rem;
}

.czr-hero__title {
	font-size: clamp(2.8rem, 7vw, 5rem);
	font-weight: 800;
	line-height: 1.08;
	letter-spacing: -.03em;
	color: #fff;
	margin: 0 0 1.1rem;
}

.czr-hero__title em {
	font-style: normal;
	color: var(--czr-primary);
}

.czr-hero__sub {
	font-size: clamp(1rem, 2vw, 1.15rem);
	color: rgba(255,255,255,.6);
	line-height: 1.65;
	margin: 0 0 2.75rem;
}

/* Glass search */
.czr-hero__search {
	display: flex;
	align-items: center;
	background: rgba(255,255,255,.1);
	backdrop-filter: blur(16px);
	-webkit-backdrop-filter: blur(16px);
	border: 1px solid rgba(255,255,255,.18);
	border-radius: 3rem;
	padding: .45rem .45rem .45rem 1.5rem;
	max-width: 540px;
	margin: 0 auto;
	gap: .5rem;
}

.czr-hero__search input {
	flex: 1;
	background: none;
	border: none;
	color: #fff;
	font-size: 1rem;
	outline: none;
	padding: .5rem 0;
	min-width: 0;
}

.czr-hero__search input::placeholder { color: rgba(255,255,255,.45); }

.czr-hero__search button {
	background: var(--czr-primary);
	color: #fff;
	border: none;
	border-radius: 2.5rem;
	padding: .75rem 1.75rem;
	font-size: .9rem;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
	flex-shrink: 0;
	transition: background var(--czr-transition), transform var(--czr-transition);
}

.czr-hero__search button:hover {
	background: var(--czr-primary-dark);
	transform: scale(1.03);
}

/* Scroll hint */
.czr-hero__scroll {
	position: absolute;
	bottom: 2rem;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255,255,255,.3);
	font-size: .7rem;
	letter-spacing: .12em;
	text-transform: uppercase;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .4rem;
	animation: czr-bob 2.2s ease-in-out infinite;
	pointer-events: none;
}

.czr-hero__scroll::after {
	content: '↓';
	font-size: 1rem;
}

@keyframes czr-bob {
	0%, 100% { transform: translateX(-50%) translateY(0); }
	50%       { transform: translateX(-50%) translateY(7px); }
}

/* ============================================================
   ACCESOS
   ============================================================ */

.czr-accesos {
	background: var(--czr-bg-card);
	padding: 3rem 0;
	border-bottom: 1px solid var(--czr-border);
}

.czr-accesos .czr-container {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

@media (min-width: 640px) {
	.czr-accesos .czr-container { grid-template-columns: repeat(4, 1fr); }
}

.czr-acceso {
	position: relative;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: .75rem;
	padding: 2rem 1.25rem;
	border-radius: var(--czr-radius);
	text-align: center;
	text-decoration: none;
	color: #fff;
	font-weight: 700;
	overflow: hidden;
	transition: transform var(--czr-transition), box-shadow var(--czr-transition);
	min-height: 145px;
}

.czr-acceso:hover {
	transform: translateY(-5px);
	box-shadow: var(--czr-shadow-lg);
	color: #fff;
}

.czr-acceso--lugar  { background: linear-gradient(140deg, #1a5c3a 0%, #2f8655 100%); }
.czr-acceso--plan   { background: linear-gradient(140deg, #163670 0%, #2756b0 100%); }
.czr-acceso--local  { background: linear-gradient(140deg, #7a2100 0%, #b53800 100%); }
.czr-acceso--evento { background: linear-gradient(140deg, #481a7a 0%, #7033b8 100%); }

.czr-acceso__icon  { font-size: 2.5rem; line-height: 1; filter: drop-shadow(0 2px 6px rgba(0,0,0,.3)); }
.czr-acceso__label { font-size: .95rem; letter-spacing: .01em; line-height: 1.3; }

/* ============================================================
   SECCIONES
   ============================================================ */

.czr-section       { padding: 4rem 0; }
.czr-section--alt  { background: var(--czr-bg); }

.czr-section__header {
	display: flex;
	align-items: flex-end;
	justify-content: space-between;
	margin-bottom: 2rem;
	flex-wrap: wrap;
	gap: 1rem;
}

.czr-section__title {
	font-size: clamp(1.5rem, 3vw, 2rem);
	font-weight: 800;
	color: var(--czr-text);
	margin: 0;
	letter-spacing: -.025em;
	line-height: 1.15;
	position: relative;
	padding-bottom: .75rem;
}

.czr-section__title::after {
	content: '';
	position: absolute;
	bottom: 0; left: 0;
	width: 2.5rem;
	height: 3px;
	background: var(--czr-primary);
	border-radius: 2px;
}

.czr-section__ver-mas {
	font-size: .875rem;
	font-weight: 600;
	color: var(--czr-primary);
	text-decoration: none;
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	border-bottom: 1px solid transparent;
	transition: border-color var(--czr-transition);
	white-space: nowrap;
}

.czr-section__ver-mas:hover { border-color: var(--czr-primary); }

/* ============================================================
   GRID
   ============================================================ */

.czr-grid {
	display: grid;
	gap: 1.25rem;
	grid-template-columns: 1fr;
}

@media (min-width: 600px)  { .czr-grid--3 { grid-template-columns: repeat(2, 1fr); } }
@media (min-width: 1024px) { .czr-grid--3 { grid-template-columns: repeat(3, 1fr); } }

/* ============================================================
   CARD
   ============================================================ */

.czr-card {
	background: var(--czr-bg-card);
	border-radius: var(--czr-radius);
	box-shadow: var(--czr-shadow-sm);
	border: 1px solid var(--czr-border);
	text-decoration: none;
	color: var(--czr-text);
	overflow: hidden;
	display: flex;
	flex-direction: column;
	transition: transform var(--czr-transition), box-shadow var(--czr-transition);
}

.czr-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--czr-shadow-lg);
	color: var(--czr-text);
	border-color: transparent;
}

.czr-card__thumb {
	overflow: hidden;
	background: linear-gradient(135deg, var(--czr-navy) 0%, var(--czr-navy-mid) 100%);
}

.czr-card__thumb img {
	width: 100%;
	height: 210px;
	object-fit: cover;
	display: block;
	transition: transform .45s ease;
}

.czr-card:hover .czr-card__thumb img { transform: scale(1.06); }

.czr-card__body {
	padding: 1.25rem;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: .4rem;
}

.czr-card__tag {
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--czr-primary);
}

.czr-card__title {
	font-size: 1.05rem;
	font-weight: 700;
	margin: 0;
	line-height: 1.35;
	color: var(--czr-text);
}

.czr-card__excerpt {
	font-size: .875rem;
	color: var(--czr-text-light);
	margin: 0;
	line-height: 1.6;
}

.czr-card__fecha {
	font-size: .78rem;
	font-weight: 700;
	color: var(--czr-primary);
	text-transform: uppercase;
	letter-spacing: .04em;
}

.czr-card__ubicacion, .czr-card__entrada {
	font-size: .84rem;
	color: var(--czr-text-light);
	margin: 0;
}

.czr-card__rango { font-size: .9rem; font-weight: 700; color: var(--czr-text-mid); }
.czr-card__tel   { font-size: .8rem; color: var(--czr-text-light); }

/* ============================================================
   BADGE PATROCINADO
   ============================================================ */

.czr-badge-patrocinado {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	background: linear-gradient(90deg, #b8700e, var(--czr-primary));
	color: #fff;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	padding: .3rem .7rem;
	border-radius: 2rem;
	margin-bottom: .2rem;
}

.czr-card--patrocinado {
	border-color: rgba(193,127,36,.35);
	box-shadow: 0 0 0 2px rgba(193,127,36,.15), var(--czr-shadow);
}

/* ============================================================
   PATROCINADOR SLOT
   ============================================================ */

.czr-patrocinador-slot {
	background: linear-gradient(135deg, #fdf6e8 0%, #fef9f0 100%);
	border-top: 3px solid var(--czr-primary);
	border-bottom: 1px solid rgba(193,127,36,.2);
	padding: 2.5rem 0;
}

.czr-patrocinador-slot__label {
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--czr-primary);
	margin: 0 0 1rem;
	display: flex;
	align-items: center;
	gap: .5rem;
}

.czr-patrocinador-slot__label::before {
	content: '⭐';
	font-size: .9rem;
}

.czr-patrocinador-card {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	background: #fff;
	border-radius: var(--czr-radius);
	box-shadow: var(--czr-shadow);
	border: 1px solid rgba(193,127,36,.2);
	padding: 1.5rem;
	text-decoration: none;
	color: var(--czr-text);
	max-width: 580px;
	transition: box-shadow var(--czr-transition), transform var(--czr-transition);
}

.czr-patrocinador-card:hover {
	box-shadow: var(--czr-shadow-lg);
	transform: translateY(-2px);
	color: var(--czr-text);
}

.czr-patrocinador-card__thumb img {
	width: 96px;
	height: 96px;
	object-fit: cover;
	border-radius: var(--czr-radius-sm);
	flex-shrink: 0;
}

.czr-patrocinador-card__body { display: flex; flex-direction: column; gap: .4rem; }
.czr-patrocinador-card__name { font-size: 1.15rem; font-weight: 700; margin: 0; }
.czr-patrocinador-card__rango { font-size: .9rem; color: var(--czr-text-light); }

.czr-patrocinador-card__cta {
	display: inline-flex;
	align-items: center;
	gap: .35rem;
	font-size: .85rem;
	font-weight: 600;
	color: var(--czr-primary);
	margin-top: .25rem;
}

.czr-patrocinador-card__cta::after { content: '→'; }

/* ============================================================
   CONTADOR
   ============================================================ */

.czr-contador {
	background: var(--czr-navy);
	padding: 2rem 0;
}

.czr-contador .czr-container {
	display: flex;
	flex-wrap: wrap;
	justify-content: center;
	gap: 0;
}

.czr-contador__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 1rem 2.5rem;
	border-right: 1px solid rgba(255,255,255,.1);
}

.czr-contador__item:last-child { border-right: none; }

.czr-contador__num {
	font-size: 2.25rem;
	font-weight: 800;
	color: var(--czr-primary);
	line-height: 1;
	letter-spacing: -.03em;
}

.czr-contador__label {
	font-size: .75rem;
	color: rgba(255,255,255,.55);
	text-transform: uppercase;
	letter-spacing: .1em;
	margin-top: .3rem;
}

@media (max-width: 479px) {
	.czr-contador__item { padding: .75rem 1.5rem; border-right: none; border-bottom: 1px solid rgba(255,255,255,.1); width: 50%; }
}

/* ============================================================
   ACCESOS — 5 columnas
   ============================================================ */

@media (min-width: 900px) {
	.czr-accesos .czr-container { grid-template-columns: repeat(5, 1fr); }
}

.czr-acceso--alojamiento { background: linear-gradient(140deg, #0a4060, #1a6090); }

/* ============================================================
   ZONAS
   ============================================================ */

.czr-zonas-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 1rem;
}

@media (min-width: 640px)  { .czr-zonas-grid { grid-template-columns: repeat(3, 1fr); } }
@media (min-width: 1024px) { .czr-zonas-grid { grid-template-columns: repeat(6, 1fr); } }

.czr-zona-card {
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	text-align: center;
	padding: 1.75rem 1rem;
	border-radius: var(--czr-radius);
	text-decoration: none;
	color: #fff;
	min-height: 110px;
	gap: .5rem;
	transition: transform var(--czr-transition), box-shadow var(--czr-transition);
}

.czr-zona-card:hover {
	transform: translateY(-4px);
	box-shadow: var(--czr-shadow-lg);
	color: #fff;
}

.czr-zona-card__name {
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.3;
}

.czr-zona-card__count {
	font-size: .7rem;
	opacity: .75;
	letter-spacing: .05em;
}

/* ============================================================
   MAPA HOME
   ============================================================ */

.czr-map--home { height: 560px; }

/* Filtros del mapa */
.czr-map-filters {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
	margin-bottom: .75rem;
}

.czr-map-filter {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .5rem 1rem;
	border-radius: 2rem;
	border: 2px solid transparent;
	background: var(--czr-bg);
	color: var(--czr-text-mid);
	font-size: .82rem;
	font-weight: 600;
	cursor: pointer;
	transition: all var(--czr-transition);
	opacity: .5;
}

.czr-map-filter.active { opacity: 1; }

.czr-map-filter--lugar.active       { background: #e8f5ee; border-color: #2f8655; color: #2f8655; }
.czr-map-filter--local.active       { background: #fdf0e8; border-color: #b53800; color: #b53800; }
.czr-map-filter--alojamiento.active { background: #e8eef8; border-color: #2756b0; color: #2756b0; }

/* Marcadores SVG */
.czr-marker-icon { background: none !important; border: none !important; }
.czr-marker-icon svg { filter: drop-shadow(0 3px 6px rgba(0,0,0,.35)); }

/* Control de capas Leaflet */
.leaflet-control-layers {
	border-radius: var(--czr-radius-sm) !important;
	box-shadow: var(--czr-shadow) !important;
	border: 1px solid var(--czr-border) !important;
	font-size: .8rem !important;
}
.leaflet-control-layers-expanded { padding: .6rem .9rem !important; }
.leaflet-control-layers label { margin-bottom: .25rem; cursor: pointer; }
.leaflet-control-layers-selector { margin-right: .4rem; }

/* Popups Leaflet */
.czr-popup-wrap .leaflet-popup-content-wrapper {
	border-radius: var(--czr-radius-sm);
	box-shadow: var(--czr-shadow-lg);
	padding: 0;
	overflow: hidden;
}

.czr-popup-wrap .leaflet-popup-content { margin: 0; }

.czr-popup {
	padding: 1rem;
	min-width: 180px;
	display: flex;
	flex-direction: column;
	gap: .35rem;
}

.czr-popup__type {
	font-size: .65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
}

.czr-popup__title {
	display: block;
	font-size: .95rem;
	font-weight: 700;
	color: var(--czr-text);
	line-height: 1.3;
}

.czr-popup__excerpt {
	font-size: .78rem;
	color: var(--czr-text-light);
	margin: 0;
	line-height: 1.5;
}

.czr-popup__precio {
	font-size: .8rem;
	font-weight: 700;
	color: var(--czr-text-mid);
}

.czr-popup__link {
	font-size: .8rem;
	font-weight: 700;
	color: var(--czr-primary);
	text-decoration: none;
	margin-top: .15rem;
}

.czr-popup__link:hover { text-decoration: underline; }

/* ============================================================
   CTA NEGOCIOS
   ============================================================ */

.czr-cta-negocio {
	background: linear-gradient(135deg, var(--czr-navy) 0%, #0f2a45 100%);
	padding: 4rem 0;
}

.czr-cta-negocio__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 2rem;
	flex-wrap: wrap;
}

.czr-cta-negocio__title {
	font-size: clamp(1.4rem, 3vw, 2rem);
	font-weight: 800;
	color: #fff;
	margin: 0 0 .5rem;
	letter-spacing: -.02em;
}

.czr-cta-negocio__sub {
	font-size: .95rem;
	color: rgba(255,255,255,.6);
	margin: 0;
	max-width: 520px;
	line-height: 1.6;
}

.czr-cta-negocio__btn {
	display: inline-block;
	background: var(--czr-primary);
	color: #fff;
	font-size: 1rem;
	font-weight: 700;
	padding: .9rem 2rem;
	border-radius: 2.5rem;
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
	transition: background var(--czr-transition), transform var(--czr-transition);
}

.czr-cta-negocio__btn:hover {
	background: var(--czr-primary-dark);
	transform: scale(1.04);
	color: #fff;
}

@media (max-width: 639px) {
	.czr-cta-negocio__inner { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   ARCHIVO (archive.php / page-directorio.php)
   ============================================================ */

.czr-archive { padding: 3rem 0 4rem; }
.czr-archive__header { margin-bottom: 2rem; }
.czr-archive__title {
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	margin: 0;
	letter-spacing: -.025em;
}

.czr-no-results { color: var(--czr-text-light); padding: 3rem 0; text-align: center; font-size: 1rem; }

/* ============================================================
   FACETS (FacetWP)
   ============================================================ */

.czr-facets {
	display: flex;
	flex-wrap: wrap;
	gap: 1.25rem;
	background: var(--czr-bg);
	border-radius: var(--czr-radius);
	padding: 1.25rem 1.5rem;
	margin-bottom: 2rem;
	border: 1px solid var(--czr-border);
}

.czr-facet { display: flex; flex-direction: column; gap: .4rem; min-width: 140px; }

.czr-facet__label {
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--czr-text-light);
}

/* ============================================================
   PAGINACIÓN
   ============================================================ */

.czr-pager { margin-top: 2.5rem; text-align: center; }

.czr-pager .facetwp-pager .facetwp-page {
	display: inline-block;
	padding: .45rem .9rem;
	margin: .2rem;
	border-radius: var(--czr-radius-sm);
	cursor: pointer;
	border: 1px solid var(--czr-border);
	color: var(--czr-text-mid);
	font-size: .875rem;
	transition: background var(--czr-transition), color var(--czr-transition), border-color var(--czr-transition);
}

.czr-pager .facetwp-pager .facetwp-page.active,
.czr-pager .facetwp-pager .facetwp-page:hover {
	background: var(--czr-primary);
	color: #fff;
	border-color: var(--czr-primary);
}

/* ============================================================
   ZONAS AD
   ============================================================ */

.czr-ad-zone { width: 100%; text-align: center; margin: 1rem 0; }
.czr-ad-zone:empty { display: none; }
.czr-ad-zone--after_hero { background: rgba(255,255,255,.04); margin: 0; padding: .75rem 0; }
.czr-ad-zone--in_grid { grid-column: 1 / -1; }

/* ============================================================
   MAPA LEAFLET
   ============================================================ */

.czr-map {
	height: 360px;
	border-radius: var(--czr-radius);
	overflow: hidden;
	margin: 2rem 0;
	border: 1px solid var(--czr-border);
}

/* ============================================================
   RESPONSIVE TWEAKS
   ============================================================ */

@media (max-width: 479px) {
	.czr-hero__search {
		flex-direction: column;
		border-radius: var(--czr-radius);
		padding: .75rem 1rem;
	}
	.czr-hero__search input { padding: .25rem 0; }
	.czr-hero__search button { border-radius: var(--czr-radius-sm); padding: .7rem 1rem; }
	.czr-patrocinador-card { flex-direction: column; align-items: flex-start; }
}

/* ============================================================
   SINGLES — LAYOUT BASE
   ============================================================ */

.czr-single { background: var(--czr-bg); min-height: 80vh; }

.czr-single__layout {
	display: grid;
	grid-template-columns: 1fr 320px;
	gap: 2.5rem;
	padding: 2.5rem 0 4rem;
	align-items: start;
}

@media (max-width: 860px) {
	.czr-single__layout {
		grid-template-columns: 1fr;
	}
}

.czr-single__main { min-width: 0; }

.czr-single__content {
	background: var(--czr-bg-card);
	border-radius: var(--czr-radius);
	padding: 2rem 2.25rem;
	border: 1px solid var(--czr-border);
	line-height: 1.75;
	font-size: 1.02rem;
	color: var(--czr-text);
	margin-bottom: 2rem;
}

.czr-single__content p { margin: 0 0 1.1em; }
.czr-single__content h2, .czr-single__content h3 { margin-top: 1.5em; }

.czr-single__section-title {
	font-size: 1.25rem;
	font-weight: 800;
	color: var(--czr-text);
	margin: 0 0 1.25rem;
	letter-spacing: -.02em;
	padding-bottom: .6rem;
	border-bottom: 2px solid var(--czr-border);
}

.czr-related, .czr-gallery, .czr-single__mapa, .czr-servicios { margin-top: 2.25rem; }

/* ============================================================
   SINGLES — HERO
   ============================================================ */

.czr-single-hero {
	position: relative;
	min-height: 420px;
	display: flex;
	align-items: flex-end;
	background: var(--czr-navy) center/cover no-repeat;
}

.czr-single-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(5,12,22,.85) 0%, rgba(5,12,22,.4) 55%, rgba(5,12,22,.1) 100%);
}

.czr-single-hero__content {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 1.5rem 2.75rem;
}

.czr-single-hero__title {
	font-size: clamp(1.9rem, 5vw, 3.25rem);
	font-weight: 800;
	color: #fff;
	margin: .75rem 0 .5rem;
	letter-spacing: -.03em;
	line-height: 1.1;
	text-shadow: 0 2px 12px rgba(0,0,0,.4);
}

.czr-single-hero__zona {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: rgba(255,255,255,.75);
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.2);
	padding: .3rem .85rem;
	border-radius: 2rem;
	text-decoration: none;
	backdrop-filter: blur(4px);
	transition: background var(--czr-transition);
}

.czr-single-hero__zona:hover { background: rgba(255,255,255,.22); color: #fff; }

.czr-plan-hero-badges {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
	margin-bottom: .5rem;
}

/* ============================================================
   BREADCRUMB
   ============================================================ */

.czr-breadcrumb {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .35rem;
	font-size: .75rem;
	margin-bottom: .5rem;
}

.czr-breadcrumb a { color: rgba(255,255,255,.6); text-decoration: none; }
.czr-breadcrumb a:hover { color: #fff; }
.czr-breadcrumb span { color: rgba(255,255,255,.4); }
.czr-breadcrumb span:last-child { color: rgba(255,255,255,.7); }

/* ============================================================
   DATOS RÁPIDOS
   ============================================================ */

.czr-datos {
	background: var(--czr-bg-card);
	border-bottom: 1px solid var(--czr-border);
	padding: 1.25rem 0;
}

.czr-datos .czr-container {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
}

.czr-datos__item {
	display: flex;
	align-items: flex-start;
	gap: .65rem;
	padding: .6rem 1.75rem .6rem 0;
	border-right: 1px solid var(--czr-border);
	margin-right: 1.75rem;
	flex-shrink: 0;
}

.czr-datos__item:last-child { border-right: none; margin-right: 0; }

.czr-datos__icon { font-size: 1.15rem; margin-top: .05rem; flex-shrink: 0; }

.czr-datos__item > div {
	display: flex;
	flex-direction: column;
	gap: .1rem;
}

.czr-datos__item strong {
	font-size: .67rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--czr-text-light);
	line-height: 1.2;
}

.czr-datos__item span,
.czr-datos__item a {
	font-size: .875rem;
	color: var(--czr-text-mid);
	line-height: 1.4;
}

.czr-datos__item a { color: var(--czr-primary); text-decoration: none; }
.czr-datos__item a:hover { text-decoration: underline; }

/* Color accent por tipo */
.czr-datos--lugar    { border-top: 3px solid #2f8655; }
.czr-datos--plan     { border-top: 3px solid #2756b0; }
.czr-datos--local    { border-top: 3px solid #b53800; }
.czr-datos--alojamiento { border-top: 3px solid #1a6090; }
.czr-datos--evento   { border-top: 3px solid #7033b8; }

@media (max-width: 640px) {
	.czr-datos__item { border-right: none; padding: .5rem 0; margin-right: 0; width: 50%; }
}

/* ============================================================
   GALERÍA MASONRY
   ============================================================ */

.czr-gallery__grid {
	columns: 3;
	column-gap: .6rem;
}

@media (max-width: 640px) { .czr-gallery__grid { columns: 2; } }

.czr-gallery__item {
	display: block;
	break-inside: avoid;
	margin-bottom: .6rem;
	border-radius: var(--czr-radius-sm);
	overflow: hidden;
}

.czr-gallery__item img {
	width: 100%;
	height: auto;
	display: block;
	transition: transform .4s ease;
}

.czr-gallery__item:hover img { transform: scale(1.04); }

/* ============================================================
   SIDEBAR
   ============================================================ */

.czr-single__sidebar { min-width: 0; }

.czr-sidebar-sticky {
	position: sticky;
	top: 100px;
	display: flex;
	flex-direction: column;
	gap: 1.25rem;
}

.czr-sidebar-card {
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius);
	padding: 1.25rem;
	display: flex;
	flex-direction: column;
	gap: .75rem;
}

.czr-sidebar-card__label {
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--czr-text-light);
	margin: 0;
}

.czr-sidebar-card__patrocinado {
	font-size: .75rem;
	font-weight: 700;
	color: var(--czr-primary);
	margin: 0;
}

.czr-sidebar-card__rango {
	font-size: .9rem;
	color: var(--czr-text-mid);
	margin: 0;
}

.czr-sidebar-card__fecha {
	font-size: .875rem;
	font-weight: 700;
	color: var(--czr-text);
	margin: 0;
}

.czr-sidebar-card--patrocinado {
	border-color: rgba(193,127,36,.4);
	box-shadow: 0 0 0 2px rgba(193,127,36,.12);
}

.czr-sidebar-card--lugar     { border-top: 3px solid #2f8655; }
.czr-sidebar-card--plan      { border-top: 3px solid #2756b0; }
.czr-sidebar-card--local     { border-top: 3px solid #b53800; }
.czr-sidebar-card--alojamiento { border-top: 3px solid #1a6090; }
.czr-sidebar-card--evento    { border-top: 3px solid #7033b8; }

.czr-sidebar-dato {
	display: flex;
	align-items: center;
	gap: .5rem;
	font-size: .875rem;
	color: var(--czr-text-mid);
}

.czr-sidebar-dato a { color: var(--czr-primary); text-decoration: none; }
.czr-sidebar-dato a:hover { text-decoration: underline; }

.czr-sidebar-precio {
	font-size: 1.5rem;
	font-weight: 800;
	color: var(--czr-text);
	margin: 0;
	letter-spacing: -.02em;
}

/* Mini-cards en sidebar */
.czr-sidebar-mini {
	display: flex;
	align-items: center;
	gap: .75rem;
	text-decoration: none;
	color: var(--czr-text);
	padding: .5rem 0;
	border-bottom: 1px solid var(--czr-border);
	transition: color var(--czr-transition);
}

.czr-sidebar-mini:last-child { border-bottom: none; padding-bottom: 0; }
.czr-sidebar-mini:hover { color: var(--czr-primary); }

.czr-sidebar-mini__thumb {
	width: 52px;
	height: 52px;
	flex-shrink: 0;
	border-radius: var(--czr-radius-sm);
	overflow: hidden;
	background: var(--czr-bg);
}

.czr-sidebar-mini__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.czr-sidebar-mini__title {
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.35;
}

.czr-sidebar-mini--evento { padding: .5rem 0; }
.czr-sidebar-mini--evento .czr-sidebar-mini__title { font-size: .85rem; }

/* ¿Eres el dueño? */
.czr-sidebar-owner {
	background: var(--czr-bg);
	border: 1px dashed var(--czr-border);
	border-radius: var(--czr-radius-sm);
	padding: 1rem 1.25rem;
	font-size: .825rem;
	color: var(--czr-text-light);
}

.czr-sidebar-owner p { margin: 0 0 .4rem; }

.czr-sidebar-owner a {
	font-size: .8rem;
	font-weight: 600;
	color: var(--czr-primary);
	text-decoration: none;
}

.czr-sidebar-owner a:hover { text-decoration: underline; }

/* ============================================================
   BOTONES CTAs
   ============================================================ */

.czr-btn {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: .4rem;
	font-size: .9rem;
	font-weight: 700;
	padding: .7rem 1.4rem;
	border-radius: 2.5rem;
	text-decoration: none;
	border: 2px solid transparent;
	transition: background var(--czr-transition), transform var(--czr-transition), box-shadow var(--czr-transition);
	cursor: pointer;
	line-height: 1.2;
	text-align: center;
}

.czr-btn:hover { transform: translateY(-1px); box-shadow: var(--czr-shadow); }

.czr-btn--block { width: 100%; }

.czr-btn--lg { font-size: 1rem; padding: .9rem 1.6rem; }

.czr-btn--lugar       { background: #2f8655; color: #fff; }
.czr-btn--lugar:hover { background: #256b44; color: #fff; }

.czr-btn--plan        { background: #2756b0; color: #fff; }
.czr-btn--plan:hover  { background: #1e4590; color: #fff; }

.czr-btn--local       { background: #b53800; color: #fff; }
.czr-btn--local:hover { background: #8f2c00; color: #fff; }

.czr-btn--alojamiento       { background: #1a6090; color: #fff; }
.czr-btn--alojamiento:hover { background: #134d73; color: #fff; }

.czr-btn--evento       { background: #7033b8; color: #fff; }
.czr-btn--evento:hover { background: #5a2894; color: #fff; }

.czr-btn--outline {
	background: transparent;
	border-color: var(--czr-border);
	color: var(--czr-text-mid);
}

.czr-btn--outline:hover {
	border-color: var(--czr-text-mid);
	background: var(--czr-bg);
	color: var(--czr-text);
	transform: none;
	box-shadow: none;
}

/* ============================================================
   TAGS POR TIPO (en cards de relacionados)
   ============================================================ */

.czr-card__tag.czr-tag--lugar       { color: #2f8655; }
.czr-card__tag.czr-tag--plan        { color: #2756b0; }
.czr-card__tag.czr-tag--local       { color: #b53800; }
.czr-card__tag.czr-tag--alojamiento { color: #1a6090; }
.czr-card__tag.czr-tag--evento      { color: #7033b8; }

/* ============================================================
   BANNER PATROCINADO (local / alojamiento)
   ============================================================ */

.czr-banner-patrocinado {
	background: linear-gradient(90deg, #9a5a00, var(--czr-primary), #9a5a00);
	color: #fff;
	text-align: center;
	font-size: .78rem;
	font-weight: 700;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: .6rem 1rem;
}

/* ============================================================
   PLAN — BADGES
   ============================================================ */

.czr-badge-dificultad {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	padding: .3rem .8rem;
	border-radius: 2rem;
}

.czr-badge-dificultad--baja  { background: rgba(47,134,85,.9);  color: #fff; }
.czr-badge-dificultad--media { background: rgba(232,130,12,.9); color: #fff; }
.czr-badge-dificultad--alta  { background: rgba(192,57,43,.9);  color: #fff; }

.czr-pill-duracion {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .78rem;
	font-weight: 600;
	padding: .3rem .85rem;
	border-radius: 2rem;
	background: rgba(255,255,255,.15);
	border: 1px solid rgba(255,255,255,.25);
	color: #fff;
	backdrop-filter: blur(4px);
}

.czr-pill-rango {
	display: inline-flex;
	align-items: center;
	font-size: .82rem;
	font-weight: 700;
	padding: .3rem .85rem;
	border-radius: 2rem;
	background: rgba(255,255,255,.15);
	border: 1px solid rgba(255,255,255,.25);
	color: #fff;
	backdrop-filter: blur(4px);
}

/* Lugares relacionados en plan — mini-cards horizontales */
.czr-lugares-rel {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.czr-lugar-mini {
	display: flex;
	align-items: center;
	gap: 1rem;
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius-sm);
	padding: .75rem 1rem;
	text-decoration: none;
	color: var(--czr-text);
	transition: border-color var(--czr-transition), box-shadow var(--czr-transition);
}

.czr-lugar-mini:hover {
	border-color: #2756b0;
	box-shadow: var(--czr-shadow-sm);
	color: var(--czr-text);
}

.czr-lugar-mini__thumb {
	width: 60px;
	height: 60px;
	flex-shrink: 0;
	border-radius: var(--czr-radius-sm);
	overflow: hidden;
	background: var(--czr-bg);
}

.czr-lugar-mini__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.czr-lugar-mini__body { flex: 1; display: flex; flex-direction: column; gap: .15rem; }

.czr-lugar-mini__tag {
	font-size: .65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #2756b0;
}

.czr-lugar-mini__title { font-size: .9rem; font-weight: 600; line-height: 1.3; }

.czr-lugar-mini__arrow { color: #2756b0; font-size: 1.1rem; flex-shrink: 0; }

/* ============================================================
   ALOJAMIENTO — SLIDER HEADER
   ============================================================ */

.czr-slider-header {
	position: relative;
	height: 480px;
	overflow: hidden;
	background: var(--czr-navy);
}

@media (max-width: 640px) { .czr-slider-header { height: 300px; } }

.czr-slider-header__track {
	display: flex;
	height: 100%;
	transition: transform .45s cubic-bezier(.4,0,.2,1);
}

.czr-slider-header__slide {
	flex: 0 0 100%;
	height: 100%;
}

.czr-slider-header__slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.czr-slider-header__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(to top, rgba(5,12,22,.85) 0%, rgba(5,12,22,.3) 55%, rgba(5,12,22,.05) 100%);
	pointer-events: none;
}

.czr-slider-header__meta {
	margin-top: .5rem;
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .5rem;
}

.czr-slider-header__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255,255,255,.15);
	border: none;
	color: #fff;
	font-size: 2rem;
	line-height: 1;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	cursor: pointer;
	backdrop-filter: blur(4px);
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	transition: background var(--czr-transition);
}

.czr-slider-header__btn:hover { background: rgba(255,255,255,.35); }
.czr-slider-header__btn--prev { left: 1rem; }
.czr-slider-header__btn--next { right: 1rem; }

.czr-slider-header .czr-single-hero__content,
.czr-slider-header__overlay .czr-single-hero__content {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 1;
	max-width: 1180px;
	margin: 0 auto;
	padding: 0 1.5rem 2.75rem;
}

/* Posicionar breadcrumb y meta sobre el overlay */
.czr-slider-header .czr-breadcrumb { pointer-events: auto; }

.czr-slider-header__overlay {
	display: flex;
	flex-direction: column;
	justify-content: flex-end;
	padding: 0 1.5rem 2.75rem;
	max-width: 1180px;
	margin: 0 auto;
	height: 100%;
	position: absolute;
	inset: 0;
}

.czr-estrellas {
	font-size: 1.1rem;
	color: var(--czr-primary);
	letter-spacing: .05em;
}

.czr-estrellas--hero { display: block; margin-top: .25rem; }

/* Servicios grid */
.czr-servicios__grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(140px, 1fr));
	gap: .75rem;
}

.czr-servicios__item {
	display: flex;
	align-items: center;
	gap: .5rem;
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius-sm);
	padding: .65rem .9rem;
	font-size: .84rem;
	color: var(--czr-text-mid);
}

.czr-servicios__icon { font-size: 1.1rem; flex-shrink: 0; }

/* ============================================================
   EVENTO — FECHA VISUAL (calendario rasgado)
   ============================================================ */

.czr-evento-fecha-visual {
	display: flex;
	align-items: center;
	gap: 1.25rem;
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-left: 4px solid #7033b8;
	border-radius: var(--czr-radius-sm);
	padding: 1.25rem 1.5rem;
	margin-bottom: 1.75rem;
}

.czr-cal {
	flex-shrink: 0;
	width: 68px;
	border-radius: 8px;
	overflow: hidden;
	box-shadow: var(--czr-shadow);
	border: 1px solid rgba(112,51,184,.2);
}

.czr-cal__tear {
	height: 8px;
	background: #7033b8;
	background-image: repeating-linear-gradient(
		90deg,
		transparent 0, transparent 6px,
		rgba(255,255,255,.3) 6px, rgba(255,255,255,.3) 7px
	);
}

.czr-cal__header {
	background: #7033b8;
	color: #fff;
	font-size: .6rem;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: .12em;
	text-align: center;
	padding: .2rem 0 .35rem;
}

.czr-cal__dia {
	background: #fff;
	text-align: center;
	font-size: 1.9rem;
	font-weight: 900;
	color: var(--czr-text);
	line-height: 1;
	padding: .35rem 0 .45rem;
	letter-spacing: -.03em;
}

.czr-evento-fecha-visual__texto {
	font-size: 1rem;
	font-weight: 700;
	color: var(--czr-text);
	margin: 0 0 .25rem;
	line-height: 1.4;
}

.czr-evento-fecha-visual__ubicacion {
	font-size: .875rem;
	color: var(--czr-text-light);
	margin: 0;
}

/* Badges de entrada */
.czr-badge-entrada {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	padding: .3rem .85rem;
	border-radius: 2rem;
	background: rgba(255,255,255,.15);
	border: 1px solid rgba(255,255,255,.25);
	color: #fff;
	backdrop-filter: blur(4px);
}

.czr-badge-entrada--gratis { background: rgba(47,134,85,.8); border-color: rgba(47,134,85,.5); }

/* Cuenta atrás */
.czr-countdown {
	display: flex;
	gap: .75rem;
	justify-content: center;
	background: linear-gradient(135deg, #481a7a, #7033b8);
	border-radius: var(--czr-radius);
	padding: 1.5rem;
	margin-bottom: 1.75rem;
}

.czr-countdown__item {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .2rem;
	min-width: 64px;
}

.czr-countdown__item span:first-child {
	font-size: 2rem;
	font-weight: 900;
	color: #fff;
	line-height: 1;
	letter-spacing: -.03em;
}

.czr-countdown__item span:last-child {
	font-size: .65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: rgba(255,255,255,.6);
}

/* ============================================================
   SINGLE — TYPE ACCENT BORDERS
   ============================================================ */

.czr-single--lugar     { --czr-tipo: #2f8655; }
.czr-single--plan      { --czr-tipo: #2756b0; }
.czr-single--local     { --czr-tipo: #b53800; }
.czr-single--alojamiento { --czr-tipo: #1a6090; }
.czr-single--evento    { --czr-tipo: #7033b8; }

.czr-single__section-title {
	border-color: var(--czr-tipo, var(--czr-primary));
}

/* ============================================================
   TAGS DE CATEGORÍA (czr_lugar)
   ============================================================ */

.czr-tipo-tag {
	display: inline-flex;
	align-items: center;
	font-size: .72rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: rgba(255,255,255,.8);
	background: rgba(255,255,255,.12);
	border: 1px solid rgba(255,255,255,.2);
	padding: .28rem .75rem;
	border-radius: 2rem;
	text-decoration: none;
	backdrop-filter: blur(4px);
	transition: background var(--czr-transition);
}

.czr-tipo-tag:hover { background: rgba(255,255,255,.25); color: #fff; }

/* ============================================================
   BOTONES DE COMPARTIR
   ============================================================ */

.czr-share { gap: .75rem; }

.czr-share__btns {
	display: flex;
	gap: .5rem;
	flex-wrap: wrap;
}

.czr-share__btn {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .5rem .85rem;
	border-radius: 2rem;
	font-size: .8rem;
	font-weight: 600;
	text-decoration: none;
	border: 1px solid var(--czr-border);
	cursor: pointer;
	transition: background var(--czr-transition), color var(--czr-transition), border-color var(--czr-transition);
	background: var(--czr-bg);
	color: var(--czr-text-mid);
	white-space: nowrap;
}

.czr-share__btn--wa  { background: #e7f7ee; border-color: #25d366; color: #128c47; }
.czr-share__btn--fb  { background: #e8eef8; border-color: #1877f2; color: #1877f2; }

.czr-share__btn--wa:hover  { background: #25d366; color: #fff; }
.czr-share__btn--fb:hover  { background: #1877f2; color: #fff; }
.czr-share__btn--copy:hover { border-color: var(--czr-primary); color: var(--czr-primary); background: var(--czr-bg); }

/* ============================================================
   FECHA DE ACTUALIZACIÓN
   ============================================================ */

.czr-sidebar-updated {
	display: block;
	font-size: .72rem;
	color: var(--czr-text-light);
	margin-top: .5rem;
}

/* ============================================================
   MAPA DE RUTA — marcadores numerados (czr_plan)
   ============================================================ */

.czr-plan-marker { background: none !important; border: none !important; }

.czr-plan-marker__num {
	width: 28px;
	height: 28px;
	background: #2756b0;
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: .78rem;
	border: 2px solid #fff;
	box-shadow: 0 2px 8px rgba(0,0,0,.35);
}

/* ============================================================
   DISPONIBILIDAD — selector de fechas (czr_alojamiento)
   ============================================================ */

.czr-disponibilidad { display: flex; flex-direction: column; gap: .5rem; }

.czr-disponibilidad__row {
	display: flex;
	flex-direction: column;
	gap: .4rem;
}

.czr-disponibilidad__label {
	display: flex;
	flex-direction: column;
	gap: .18rem;
	font-size: .58rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--czr-text-light);
}

.czr-date-input {
	width: 100%;
	padding: .45rem .65rem;
	border: 1.5px solid var(--czr-border);
	border-radius: var(--czr-radius-sm);
	font-size: .83rem;
	color: var(--czr-text);
	background: #fff;
	font-family: inherit;
	cursor: pointer;
	box-sizing: border-box;
	transition: border-color var(--czr-transition);
}

.czr-date-input:focus {
	border-color: #1a6090;
	outline: none;
	box-shadow: 0 0 0 3px rgba(26,96,144,.1);
}

.czr-dispo-heading {
	font-size: .85rem;
	font-weight: 800;
	color: var(--czr-text);
	margin: 0;
	letter-spacing: -.01em;
}

/* ============================================================
   ARCHIVE — CABECERA HERO
   ============================================================ */

.czr-archive-hero {
	background: var(--czr-navy);
	border-bottom: 3px solid var(--czr-tipo, var(--czr-primary));
	padding: 2.25rem 0 1.75rem;
}

.czr-archive-hero .czr-breadcrumb--dark a { color: rgba(255,255,255,.5); }
.czr-archive-hero .czr-breadcrumb--dark span { color: rgba(255,255,255,.35); }
.czr-archive-hero .czr-breadcrumb--dark span:last-child { color: rgba(255,255,255,.7); }

.czr-archive-hero__inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
	margin-top: .75rem;
}

.czr-archive-hero__title {
	font-size: clamp(1.6rem, 4vw, 2.25rem);
	font-weight: 800;
	color: #fff;
	margin: 0 0 .3rem;
	letter-spacing: -.025em;
}

.czr-archive-hero__count {
	font-size: .82rem;
	color: rgba(255,255,255,.45);
	margin: 0;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
}

/* Toggles de vista */
.czr-archive-toggles {
	display: flex;
	gap: .4rem;
	flex-shrink: 0;
}

.czr-toggle-btn {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: .5rem .9rem;
	border-radius: var(--czr-radius-sm);
	border: 1px solid rgba(255,255,255,.18);
	background: rgba(255,255,255,.06);
	color: rgba(255,255,255,.55);
	font-size: .78rem;
	font-weight: 600;
	cursor: pointer;
	transition: all var(--czr-transition);
}

.czr-toggle-btn.active,
.czr-toggle-btn:hover {
	background: rgba(255,255,255,.15);
	color: #fff;
	border-color: rgba(255,255,255,.35);
}

/* ============================================================
   ARCHIVE — DESTACADOS STRIP
   ============================================================ */

.czr-archive-featured {
	margin: 2rem 0 0;
	padding: 1.5rem;
	background: linear-gradient(135deg, #fdf6e8, #fef9f0);
	border: 1px solid rgba(193,127,36,.25);
	border-left: 4px solid var(--czr-primary);
	border-radius: var(--czr-radius);
}

.czr-archive-featured__label {
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--czr-primary);
	margin: 0 0 1rem;
}

.czr-archive-featured__strip {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 1rem;
}

.czr-feat-card {
	display: flex;
	align-items: center;
	gap: .85rem;
	background: #fff;
	border: 1px solid rgba(193,127,36,.2);
	border-radius: var(--czr-radius-sm);
	padding: .75rem;
	text-decoration: none;
	color: var(--czr-text);
	transition: box-shadow var(--czr-transition), transform var(--czr-transition);
}

.czr-feat-card:hover { box-shadow: var(--czr-shadow); transform: translateY(-2px); color: var(--czr-text); }

.czr-feat-card__thumb { width: 56px; height: 56px; flex-shrink: 0; border-radius: 6px; overflow: hidden; }
.czr-feat-card__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.czr-feat-card__body { display: flex; flex-direction: column; gap: .2rem; min-width: 0; }
.czr-feat-card__name { font-size: .9rem; font-weight: 700; line-height: 1.3; }
.czr-feat-card__rango,
.czr-feat-card__tel  { font-size: .78rem; color: var(--czr-text-light); }
.czr-feat-card__cta  { font-size: .75rem; font-weight: 700; color: var(--czr-primary); margin-top: .2rem; }

/* ============================================================
   ARCHIVE — FILTROS Y PÍLDORAS DE ZONA
   ============================================================ */

.czr-archive-filters { margin: 1.75rem 0 1.25rem; display: flex; flex-direction: column; gap: 1rem; }

.czr-zona-pills {
	display: flex;
	flex-wrap: wrap;
	gap: .5rem;
}

.czr-zona-pill {
	padding: .45rem 1rem;
	border-radius: 2rem;
	border: 1.5px solid var(--czr-border);
	background: var(--czr-bg-card);
	color: var(--czr-text-mid);
	font-size: .8rem;
	font-weight: 600;
	cursor: pointer;
	transition: all var(--czr-transition);
	white-space: nowrap;
}

.czr-zona-pill:hover { border-color: var(--czr-tipo, var(--czr-primary)); color: var(--czr-tipo, var(--czr-primary)); }
.czr-zona-pill.active { background: var(--czr-tipo, var(--czr-primary)); border-color: var(--czr-tipo, var(--czr-primary)); color: #fff; }

.czr-zona-pill--cerca {
	border-style: dashed;
	margin-left: .25rem;
}

.czr-zona-pill--cerca:hover {
	border-style: solid;
	border-color: var(--czr-primary);
	color: var(--czr-primary);
}

.czr-zona-pill--cerca.czr-cerca-activo {
	background: var(--czr-primary);
	border-color: var(--czr-primary);
	border-style: solid;
	color: #fff;
}

/* FacetWP colapsable */
.czr-facets-toggle > summary {
	font-size: .82rem;
	font-weight: 600;
	color: var(--czr-text-mid);
	cursor: pointer;
	list-style: none;
	display: inline-flex;
	align-items: center;
	gap: .4rem;
}

.czr-facets-toggle > summary::before { content: '▸'; }
.czr-facets-toggle[open] > summary::before { content: '▾'; }
.czr-facets-toggle .czr-facets { margin-top: .75rem; }

/* ============================================================
   ARCHIVE — GRID Y LISTA
   ============================================================ */

.czr-archive-grid {
	display: grid;
	gap: 1.25rem;
}

/* Vista cuadrícula */
.czr-archive-grid--grid {
	grid-template-columns: repeat(2, 1fr);
}

@media (min-width: 1024px) { .czr-archive-grid--grid { grid-template-columns: repeat(3, 1fr); } }

/* Vista lista */
.czr-archive-grid--list { grid-template-columns: 1fr; }

.czr-archive-grid--list .czr-card {
	flex-direction: row;
	align-items: flex-start;
}

.czr-archive-grid--list .czr-card__thumb {
	width: 140px;
	flex-shrink: 0;
}

.czr-archive-grid--list .czr-card__thumb img {
	height: 140px;
}

.czr-archive-grid--list .czr-card__thumb--evento-date {
	width: 90px;
	min-height: 90px;
}

.czr-archive-grid--list .czr-card__list-extra { display: flex !important; flex-direction: column; gap: .3rem; }

/* En rejilla, ocultar .czr-card__list-extra */
.czr-archive-grid--grid .czr-card__list-extra { display: none; }

/* CTA link en la card */
.czr-card__cta-link {
	display: inline-flex;
	align-items: center;
	font-size: .8rem;
	font-weight: 700;
	color: var(--czr-tipo, var(--czr-primary));
	margin-top: auto;
	padding-top: .5rem;
}

/* Zona tag en card */
.czr-card__zona {
	font-size: .75rem;
	color: var(--czr-text-light);
	margin-top: .15rem;
}

/* Meta row (stars + precio, dificultad + duración) */
.czr-card__meta-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: .4rem;
	margin-top: .1rem;
}

.czr-card__estrellas { color: var(--czr-primary); font-size: .9rem; letter-spacing: .05em; }
.czr-card__duracion  { font-size: .78rem; color: var(--czr-text-light); }

/* Badge difficulty — compact */
.czr-badge-dificultad--sm { font-size: .64rem; padding: .2rem .6rem; }

/* Badge entrada — compact */
.czr-badge-entrada--sm { font-size: .68rem; padding: .25rem .7rem; display: inline-flex; align-items: center; gap: .25rem; border-radius: 2rem; background: rgba(193,127,36,.1); color: var(--czr-primary); font-weight: 700; }
.czr-badge-entrada--gratis.czr-badge-entrada--sm { background: rgba(47,134,85,.1); color: #2f8655; }

/* Badge evento pasado */
.czr-badge-pasado {
	display: inline-flex;
	font-size: .65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	padding: .2rem .6rem;
	border-radius: 2rem;
	background: rgba(100,105,110,.12);
	color: var(--czr-text-light);
	margin-bottom: .2rem;
}

/* Card evento pasado — opacidad reducida */
.czr-card--pasado { opacity: .65; }
.czr-card--pasado:hover { opacity: 1; }

/* Thumb evento sin imagen — calendario */
.czr-card__thumb--evento-date {
	background: linear-gradient(140deg, #481a7a, #7033b8);
	display: flex;
	align-items: center;
	justify-content: center;
	min-height: 120px;
}

.czr-card-cal { text-align: center; }
.czr-card-cal__mes { font-size: .65rem; font-weight: 800; text-transform: uppercase; letter-spacing: .12em; color: rgba(255,255,255,.7); }
.czr-card-cal__dia { font-size: 2.5rem; font-weight: 900; color: #fff; line-height: 1; letter-spacing: -.05em; }

/* ============================================================
   ARCHIVE — MAPA
   ============================================================ */

.czr-archive-map { height: 520px; }

.czr-archive-map-wrap { margin-top: 1.5rem; }

/* ============================================================
   EMPTY STATE
   ============================================================ */

.czr-no-results {
	grid-column: 1 / -1;
	text-align: center;
	padding: 4rem 2rem;
	color: var(--czr-text-light);
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1rem;
}

.czr-map-empty {
	height: 220px;
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--czr-bg);
	border: 1px dashed var(--czr-border);
	border-radius: var(--czr-radius);
	color: var(--czr-text-light);
	font-size: .9rem;
	text-align: center;
	padding: 2rem;
	line-height: 1.6;
}

/* ============================================================
   POST NAV — prev/next entre fichas del mismo tipo
   ============================================================ */

.czr-post-nav {
	background: var(--czr-bg-card);
	border-top: 1px solid var(--czr-border);
	padding: 1.5rem 0;
}

.czr-post-nav .czr-container {
	display: flex;
	justify-content: space-between;
	gap: 1rem;
}

.czr-post-nav__item {
	display: flex;
	align-items: center;
	gap: .85rem;
	text-decoration: none;
	color: var(--czr-text);
	padding: .75rem 1.1rem;
	border-radius: var(--czr-radius);
	border: 1px solid var(--czr-border);
	background: var(--czr-bg);
	flex: 0 1 48%;
	transition: border-color var(--czr-transition), box-shadow var(--czr-transition);
	min-width: 0;
}

.czr-post-nav__item:hover {
	border-color: var(--czr-primary);
	box-shadow: var(--czr-shadow-sm);
	color: var(--czr-text);
}

.czr-post-nav__item--next {
	margin-left: auto;
	flex-direction: row-reverse;
	text-align: right;
}

.czr-post-nav__thumb {
	width: 52px;
	height: 52px;
	flex-shrink: 0;
	border-radius: var(--czr-radius-sm);
	overflow: hidden;
	background: var(--czr-bg);
}

.czr-post-nav__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.czr-post-nav__body {
	display: flex;
	flex-direction: column;
	gap: .2rem;
	min-width: 0;
}

.czr-post-nav__dir {
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--czr-text-light);
}

.czr-post-nav__title {
	font-size: .875rem;
	font-weight: 600;
	line-height: 1.35;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

/* ============================================================
   ORDEN MOBILE — sidebar CTA antes del contenido (local/alojamiento)
   ============================================================ */

@media (max-width: 860px) {
	.czr-single--local .czr-single__sidebar,
	.czr-single--alojamiento .czr-single__sidebar {
		order: -1;
	}
}

/* ============================================================
   CARD PLACEHOLDER — sin imagen
   ============================================================ */

.czr-card__thumb--placeholder {
	background: var(--czr-bg);
	border-bottom: 3px solid var(--czr-ph-color, var(--czr-border));
	height: 210px;
	display: flex;
	align-items: center;
	justify-content: center;
}

.czr-card__thumb--placeholder svg { opacity: .28; }

/* ============================================================
   VALORACIONES
   ============================================================ */

.czr-rating {
	display: flex;
	flex-direction: column;
	gap: .5rem;
}

.czr-rating__stars {
	display: flex;
	gap: .15rem;
}

.czr-rating__star {
	background: none;
	border: none;
	font-size: 1.45rem;
	color: var(--czr-border);
	cursor: pointer;
	padding: 0;
	line-height: 1;
	transition: color var(--czr-transition), transform var(--czr-transition);
}

.czr-rating__star:hover { transform: scale(1.15); }

.czr-rating__star--on,
.czr-rating__star--hover { color: var(--czr-primary); }

.czr-rating[data-voted="1"] .czr-rating__star { cursor: default; }
.czr-rating[data-voted="1"] .czr-rating__star:hover { transform: none; }

.czr-rating__info { font-size: .85rem; color: var(--czr-text-mid); }

.czr-rating__count {
	font-size: .78rem;
	color: var(--czr-text-light);
	margin-left: .25rem;
}

.czr-rating__placeholder {
	font-size: .82rem;
	color: var(--czr-text-light);
	font-style: italic;
}

/* ============================================================
   BOTÓN MI RUTA + CONTADOR
   ============================================================ */

.czr-btn--ruta {
	background: transparent;
	border-color: var(--czr-border);
	color: var(--czr-text-mid);
}

.czr-btn--ruta:hover {
	border-color: var(--czr-primary);
	color: var(--czr-primary);
	transform: none;
	box-shadow: none;
}

.czr-btn--ruta-added {
	background: #e8f5ee;
	border-color: #2f8655;
	color: #2f8655;
}

.czr-ruta-counter {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: var(--czr-primary);
	color: #fff;
	font-size: .65rem;
	font-weight: 800;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	line-height: 1;
	margin-left: .2rem;
	vertical-align: middle;
}

/* ============================================================
   CTA STICKY MOBILE (local + alojamiento)
   ============================================================ */

.czr-mobile-cta-bar {
	display: none;
	position: fixed;
	bottom: 0;
	left: 0;
	right: 0;
	z-index: 999;
	background: var(--czr-bg-card);
	border-top: 1px solid var(--czr-border);
	padding: .75rem 1.25rem;
	box-shadow: 0 -4px 20px rgba(0,0,0,.1);
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
}

@media (max-width: 860px) {
	.czr-mobile-cta-bar { display: flex; }
}

.czr-mobile-cta-bar__precio {
	font-size: 1.05rem;
	font-weight: 800;
	color: var(--czr-text);
	flex-shrink: 0;
}

/* ============================================================
   RECLAMAR FICHA — botón + modal
   ============================================================ */

.czr-reclamar-btn {
	background: none;
	border: none;
	font-size: .8rem;
	font-weight: 600;
	color: var(--czr-primary);
	cursor: pointer;
	padding: 0;
	text-decoration: none;
	display: inline;
}

.czr-reclamar-btn:hover { text-decoration: underline; }

.czr-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: rgba(0,0,0,.55);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 1.5rem;
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}

.czr-modal[hidden] { display: none; }

.czr-modal__box {
	background: var(--czr-bg-card);
	border-radius: var(--czr-radius);
	padding: 2rem;
	max-width: 480px;
	width: 100%;
	position: relative;
	box-shadow: var(--czr-shadow-lg);
	display: flex;
	flex-direction: column;
	gap: 1rem;
}

.czr-modal__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	background: none;
	border: none;
	font-size: 1.4rem;
	color: var(--czr-text-light);
	cursor: pointer;
	line-height: 1;
	padding: .2rem .5rem;
	border-radius: var(--czr-radius-sm);
	transition: background var(--czr-transition), color var(--czr-transition);
}

.czr-modal__close:hover { background: var(--czr-bg); color: var(--czr-text); }

.czr-modal__title {
	font-size: 1.25rem;
	font-weight: 800;
	margin: 0;
	color: var(--czr-text);
}

.czr-modal__desc {
	font-size: .875rem;
	color: var(--czr-text-light);
	margin: 0;
	line-height: 1.65;
}

.czr-modal__fields {
	display: flex;
	flex-direction: column;
	gap: .65rem;
}

.czr-modal__fields label {
	display: flex;
	flex-direction: column;
	gap: .3rem;
	font-size: .75rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: var(--czr-text-light);
}

.czr-modal__input {
	width: 100%;
	padding: .6rem .85rem;
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius-sm);
	font-size: .9rem;
	color: var(--czr-text);
	background: var(--czr-bg);
	outline: none;
	transition: border-color var(--czr-transition);
	resize: vertical;
	font-family: inherit;
}

.czr-modal__input:focus { border-color: var(--czr-primary); }

.czr-reclamar-msg { font-size: .875rem; text-align: center; margin: 0; }

/* ============================================================
   ALERTAS DE AGENDA
   ============================================================ */

.czr-alerta-form select,
.czr-alerta-form input[type="email"] {
	border-radius: var(--czr-radius-sm);
	border: 1px solid var(--czr-border);
	background: var(--czr-bg);
	color: var(--czr-text);
	font-size: .85rem;
	padding: .55rem .7rem;
	width: 100%;
	outline: none;
	transition: border-color var(--czr-transition);
	font-family: inherit;
}

.czr-alerta-form select:focus,
.czr-alerta-form input[type="email"]:focus { border-color: var(--czr-primary); }

.czr-alerta-msg { font-size: .82rem; margin: 0; }

/* ============================================================
   BÚSQUEDA UNIFICADA — page-buscar.php
   ============================================================ */

.czr-search-page { min-height: 70vh; }

.czr-search-page__hero {
	background: var(--czr-navy);
	padding: 3rem 0 2.5rem;
	border-bottom: 3px solid var(--czr-primary);
}

.czr-search-page__eyebrow {
	font-size: .7rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .18em;
	color: var(--czr-primary);
	margin: 0 0 1rem;
}

.czr-search-page__title {
	font-size: clamp(1.8rem, 4vw, 2.75rem);
	font-weight: 800;
	color: #fff;
	margin: 0 0 1.5rem;
	letter-spacing: -.03em;
}

.czr-search-page__input-wrap {
	display: flex;
	align-items: center;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.2);
	border-radius: 3rem;
	padding: .5rem .5rem .5rem 1.5rem;
	max-width: 640px;
	gap: .5rem;
}

.czr-search-page__input {
	flex: 1;
	background: none;
	border: none;
	color: #fff;
	font-size: 1.05rem;
	outline: none;
	padding: .5rem 0;
	min-width: 0;
}

.czr-search-page__input::placeholder { color: rgba(255,255,255,.4); }

.czr-search-page__btn {
	background: var(--czr-primary);
	border: none;
	color: #fff;
	font-size: .9rem;
	font-weight: 700;
	padding: .7rem 1.5rem;
	border-radius: 2.5rem;
	cursor: pointer;
	flex-shrink: 0;
	transition: background var(--czr-transition);
}

.czr-search-page__btn:hover { background: var(--czr-primary-dark); }

.czr-search-results-wrap { padding: 2.5rem 0 4rem; }

.czr-search-loading {
	color: var(--czr-text-light);
	font-size: .9rem;
	text-align: center;
	padding: 3rem;
}

.czr-search-hint {
	text-align: center;
	padding: 3rem 2rem;
	color: var(--czr-text-light);
}

.czr-search-group { margin-bottom: 2.5rem; }

.czr-search-group__title {
	font-size: 1rem;
	font-weight: 800;
	color: var(--czr-text);
	margin: 0 0 1rem;
	padding-bottom: .6rem;
	border-bottom: 2px solid var(--czr-border);
	display: flex;
	align-items: baseline;
	gap: .5rem;
}

.czr-search-group__title span {
	font-size: .8rem;
	font-weight: 600;
	color: var(--czr-text-light);
}

.czr-search-group__list {
	display: grid;
	gap: .6rem;
}

.czr-search-result {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: .8rem 1rem;
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius-sm);
	text-decoration: none;
	color: var(--czr-text);
	transition: border-color var(--czr-transition), box-shadow var(--czr-transition);
}

.czr-search-result:hover {
	border-color: var(--czr-primary);
	box-shadow: var(--czr-shadow-sm);
	color: var(--czr-text);
}

.czr-search-result__thumb {
	width: 52px;
	height: 52px;
	flex-shrink: 0;
	border-radius: var(--czr-radius-sm);
	overflow: hidden;
	background: var(--czr-bg);
}

.czr-search-result__thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}

.czr-search-result__body {
	display: flex;
	flex-direction: column;
	gap: .25rem;
	min-width: 0;
	flex: 1;
}

.czr-search-result__type {
	font-size: .65rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .09em;
	color: var(--czr-primary);
}

.czr-search-result__title {
	font-size: .95rem;
	font-weight: 700;
	line-height: 1.35;
}

.czr-search-result__excerpt {
	font-size: .8rem;
	color: var(--czr-text-light);
	line-height: 1.5;
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
}

/* ============================================================
   TAXONOMÍA ZONA — taxonomy-czr_zona.php
   ============================================================ */

.czr-zona-hero {
	position: relative;
	background: var(--czr-navy);
	padding: 3.5rem 0 3rem;
	border-bottom: 3px solid var(--czr-primary);
	overflow: hidden;
}

.czr-zona-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background-image: repeating-linear-gradient(
		-45deg,
		rgba(255,255,255,.015) 0,
		rgba(255,255,255,.015) 1px,
		transparent 1px,
		transparent 40px
	);
	pointer-events: none;
}

.czr-zona-hero__inner { position: relative; z-index: 1; }

.czr-zona-hero__title {
	font-size: clamp(2rem, 5vw, 3.25rem);
	font-weight: 800;
	color: #fff;
	margin: .75rem 0 .5rem;
	letter-spacing: -.03em;
}

.czr-zona-hero__desc {
	font-size: 1rem;
	color: rgba(255,255,255,.6);
	margin: 0;
	max-width: 600px;
	line-height: 1.65;
}

.czr-zona-hero__count {
	font-size: .78rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .1em;
	color: var(--czr-primary);
	margin: 0 0 .5rem;
}

.czr-zona-tabs {
	background: var(--czr-bg-card);
	border-bottom: 1px solid var(--czr-border);
	position: sticky;
	top: 0;
	z-index: 90;
}

.czr-zona-tabs__list {
	display: flex;
	overflow-x: auto;
	scrollbar-width: none;
	-ms-overflow-style: none;
}

.czr-zona-tabs__list::-webkit-scrollbar { display: none; }

.czr-zona-tab {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	padding: 1rem 1.4rem;
	font-size: .875rem;
	font-weight: 600;
	color: var(--czr-text-mid);
	cursor: pointer;
	border: none;
	background: none;
	border-bottom: 3px solid transparent;
	white-space: nowrap;
	transition: color var(--czr-transition), border-color var(--czr-transition);
}

.czr-zona-tab:hover { color: var(--czr-text); }

.czr-zona-tab.active {
	color: var(--czr-primary);
	border-bottom-color: var(--czr-primary);
}

.czr-zona-tab__count {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 20px;
	height: 20px;
	background: var(--czr-bg);
	border-radius: 2rem;
	font-size: .7rem;
	font-weight: 700;
	padding: 0 .4rem;
	color: var(--czr-text-light);
}

.czr-zona-tab.active .czr-zona-tab__count {
	background: rgba(193,127,36,.15);
	color: var(--czr-primary);
}

.czr-zona-panel { display: none; padding: 2.5rem 0 4rem; }
.czr-zona-panel.active { display: block; }

.czr-zona-map {
	height: 320px;
	margin-bottom: 2.5rem;
	border-radius: var(--czr-radius);
	overflow: hidden;
	border: 1px solid var(--czr-border);
}

/* ============================================================
   MI RUTA — page-mi-ruta.php
   ============================================================ */

.czr-mi-ruta {
	background: var(--czr-bg);
	min-height: 80vh;
}

.czr-mi-ruta__hero {
	background: var(--czr-navy);
	padding: 2.5rem 0 2rem;
	border-bottom: 3px solid var(--czr-primary);
}

.czr-mi-ruta__hero-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.czr-mi-ruta__title {
	font-size: clamp(1.75rem, 4vw, 2.5rem);
	font-weight: 800;
	color: #fff;
	margin: 0;
	letter-spacing: -.025em;
}

.czr-mi-ruta__subtitle {
	font-size: .9rem;
	color: rgba(255,255,255,.55);
	margin: .35rem 0 0;
}

.czr-mi-ruta__actions {
	display: flex;
	gap: .75rem;
	flex-wrap: wrap;
}

.czr-mi-ruta__body {
	padding: 2.5rem 0 5rem;
}

.czr-mi-ruta__layout {
	display: grid;
	grid-template-columns: 1fr 380px;
	gap: 2.5rem;
	align-items: start;
}

@media (max-width: 900px) {
	.czr-mi-ruta__layout { grid-template-columns: 1fr; }
}

.czr-mi-ruta__map-wrap {
	position: sticky;
	top: 100px;
}

.czr-mi-ruta__map {
	height: 460px;
	border-radius: var(--czr-radius);
	overflow: hidden;
	border: 1px solid var(--czr-border);
}

.czr-mi-ruta__map-empty {
	height: 460px;
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	gap: 1rem;
	background: var(--czr-bg);
	border: 1px dashed var(--czr-border);
	border-radius: var(--czr-radius);
	color: var(--czr-text-light);
	font-size: .9rem;
	text-align: center;
	padding: 2rem;
}

.czr-mi-ruta__empty-state {
	text-align: center;
	padding: 4rem 2rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 1.25rem;
}

.czr-mi-ruta__empty-state h2 {
	font-size: 1.35rem;
	font-weight: 800;
	color: var(--czr-text);
	margin: 0;
}

.czr-mi-ruta__empty-state p {
	font-size: .95rem;
	color: var(--czr-text-light);
	max-width: 400px;
	margin: 0;
	line-height: 1.65;
}

.czr-ruta-item {
	display: flex;
	align-items: center;
	gap: 1rem;
	padding: .85rem 1rem;
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius-sm);
	margin-bottom: .6rem;
	transition: border-color var(--czr-transition), box-shadow var(--czr-transition);
}

.czr-ruta-item:hover { border-color: var(--czr-border); box-shadow: var(--czr-shadow-sm); }

.czr-ruta-item__num {
	flex-shrink: 0;
	width: 26px;
	height: 26px;
	background: var(--czr-primary);
	color: #fff;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: .72rem;
	font-weight: 800;
}

.czr-ruta-item__thumb {
	width: 52px;
	height: 52px;
	border-radius: var(--czr-radius-sm);
	overflow: hidden;
	flex-shrink: 0;
	background: var(--czr-bg);
}

.czr-ruta-item__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }

.czr-ruta-item__icon {
	font-size: 1.4rem;
	flex-shrink: 0;
	width: 52px;
	text-align: center;
}

.czr-ruta-item__body { flex: 1; min-width: 0; }

.czr-ruta-item__title {
	display: block;
	font-size: .9rem;
	font-weight: 700;
	color: var(--czr-text);
	text-decoration: none;
	line-height: 1.35;
}

.czr-ruta-item__title:hover { color: var(--czr-primary); }

.czr-ruta-item__type {
	display: block;
	font-size: .7rem;
	color: var(--czr-text-light);
	text-transform: uppercase;
	letter-spacing: .07em;
	font-weight: 700;
	margin-top: .15rem;
}

.czr-ruta-item__remove {
	background: none;
	border: none;
	color: var(--czr-text-light);
	cursor: pointer;
	font-size: 1.05rem;
	padding: .3rem .5rem;
	border-radius: var(--czr-radius-sm);
	transition: background var(--czr-transition), color var(--czr-transition);
	flex-shrink: 0;
	line-height: 1;
}

.czr-ruta-item__remove:hover { background: #fee2e2; color: #c0392b; }

.czr-mi-ruta__list-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.25rem;
}

.czr-mi-ruta__list-title {
	font-size: 1.1rem;
	font-weight: 800;
	margin: 0;
	color: var(--czr-text);
}

.czr-mi-ruta__clear {
	background: none;
	border: none;
	font-size: .8rem;
	font-weight: 600;
	color: var(--czr-text-light);
	cursor: pointer;
	padding: 0;
	transition: color var(--czr-transition);
}

.czr-mi-ruta__clear:hover { color: #c0392b; }

@media print {
	.czr-mi-ruta__actions,
	.czr-mi-ruta__hero,
	.czr-ruta-item__remove,
	.czr-mi-ruta__map-wrap { display: none !important; }
	.czr-mi-ruta__layout { grid-template-columns: 1fr; }
}

/* ============================================================
   LIGHTBOX DE GALERÍA
   ============================================================ */

.czr-lbx {
	position: fixed;
	inset: 0;
	z-index: 9998;
	background: rgba(5,12,22,.94);
	display: flex;
	align-items: center;
	justify-content: center;
	opacity: 0;
	pointer-events: none;
	transition: opacity .22s ease;
}

.czr-lbx--open { opacity: 1; pointer-events: all; }

.czr-lbx__img-wrap {
	max-width: 88vw;
	max-height: 84vh;
	display: flex;
	align-items: center;
	justify-content: center;
}

.czr-lbx__img {
	max-width: 88vw;
	max-height: 84vh;
	object-fit: contain;
	border-radius: var(--czr-radius-sm);
	transition: opacity .18s ease;
	display: block;
}

.czr-lbx__btn {
	position: absolute;
	top: 50%;
	transform: translateY(-50%);
	background: rgba(255,255,255,.1);
	border: none;
	color: #fff;
	font-size: 2.75rem;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	cursor: pointer;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .18s;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	z-index: 1;
}

.czr-lbx__btn:hover { background: rgba(255,255,255,.25); }
.czr-lbx__btn--prev { left: 1rem; }
.czr-lbx__btn--next { right: 1rem; }

.czr-lbx__close {
	position: absolute;
	top: 1rem;
	right: 1rem;
	background: rgba(255,255,255,.1);
	border: none;
	color: #fff;
	font-size: 1.4rem;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background .18s;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
	z-index: 2;
}

.czr-lbx__close:hover { background: rgba(255,255,255,.28); }

.czr-lbx__count {
	position: absolute;
	bottom: 1.5rem;
	left: 50%;
	transform: translateX(-50%);
	color: rgba(255,255,255,.65);
	font-size: .85rem;
	background: rgba(0,0,0,.45);
	padding: .3rem .9rem;
	border-radius: 2rem;
	white-space: nowrap;
}

@media (max-width: 600px) {
	.czr-lbx__btn { width: 44px; height: 44px; font-size: 2rem; }
	.czr-lbx__btn--prev { left: .4rem; }
	.czr-lbx__btn--next { right: .4rem; }
}

/* ============================================================
   FAB "MI RUTA"
   ============================================================ */

.czr-fab-ruta {
	position: fixed;
	bottom: 1.75rem;
	right: 1.75rem;
	z-index: 990;
}

.czr-fab-ruta__btn {
	display: flex;
	align-items: center;
	justify-content: center;
	width: 56px;
	height: 56px;
	border-radius: 50%;
	background: var(--czr-primary);
	color: #fff;
	text-decoration: none;
	box-shadow: 0 4px 20px rgba(193,127,36,.45);
	transition: transform .2s, box-shadow .2s, background .18s;
	position: relative;
}

.czr-fab-ruta__btn:hover {
	background: var(--czr-primary-dark);
	transform: translateY(-3px) scale(1.06);
	box-shadow: 0 8px 28px rgba(193,127,36,.55);
	color: #fff;
}

.czr-fab-ruta__count {
	position: absolute;
	top: -4px;
	right: -4px;
	background: #c0392b;
	color: #fff;
	font-size: .62rem;
	font-weight: 800;
	min-width: 20px;
	height: 20px;
	border-radius: 2rem;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0 .35rem;
	border: 2px solid #fff;
	line-height: 1;
}

@media (max-width: 860px) {
	.czr-fab-ruta { bottom: 5.5rem; } /* margen sobre mobile CTA bar */
}

/* ============================================================
   HORARIO — badge "Abierto / Cerrado ahora"
   ============================================================ */

.czr-horario-badge {
	display: inline-flex;
	align-items: center;
	gap: .25rem;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	padding: .22rem .65rem;
	border-radius: 2rem;
	vertical-align: middle;
	margin-left: .35rem;
}

.czr-horario-badge--open {
	background: rgba(47,134,85,.12);
	color: #2f8655;
}

.czr-horario-badge--open::before { content: '●'; font-size: .55rem; }

.czr-horario-badge--closed {
	background: rgba(192,57,43,.1);
	color: #c0392b;
}

/* ============================================================
   CALENDARIO DE EVENTOS
   ============================================================ */

.czr-calendar-wrap {
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius);
	padding: 1.5rem;
	margin-bottom: 2rem;
}

.czr-cal-nav {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 1.5rem;
	gap: 1rem;
}

.czr-cal-nav__title {
	font-size: 1.15rem;
	font-weight: 800;
	color: var(--czr-text);
	margin: 0;
	text-align: center;
	flex: 1;
	letter-spacing: -.015em;
}

.czr-cal-nav__btn {
	background: var(--czr-bg);
	border: 1px solid var(--czr-border);
	color: var(--czr-text-mid);
	width: 38px;
	height: 38px;
	border-radius: var(--czr-radius-sm);
	font-size: 1.3rem;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background var(--czr-transition), border-color var(--czr-transition);
	flex-shrink: 0;
}

.czr-cal-nav__btn:hover { background: var(--czr-border); }

.czr-cal-header {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	margin-bottom: .35rem;
}

.czr-cal-header__day {
	text-align: center;
	font-size: .68rem;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: .07em;
	color: var(--czr-text-light);
	padding: .4rem 0;
}

.czr-cal-days {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
}

.czr-cal-day {
	min-height: 80px;
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius-sm);
	padding: .35rem .4rem;
	background: var(--czr-bg);
	display: flex;
	flex-direction: column;
	gap: .2rem;
	transition: border-color var(--czr-transition);
}

.czr-cal-day--empty { border-color: transparent; background: transparent; }
.czr-cal-day--has-events { background: var(--czr-bg-card); }
.czr-cal-day--has-events:hover { border-color: var(--czr-primary); }

.czr-cal-day--today { border-color: #7033b8 !important; background: rgba(112,51,184,.04); }
.czr-cal-day--today .czr-cal-day__num { color: #7033b8; font-weight: 800; }

.czr-cal-day__num {
	font-size: .78rem;
	font-weight: 600;
	color: var(--czr-text-mid);
	line-height: 1;
}

.czr-cal-day__events { display: flex; flex-direction: column; gap: .15rem; }

.czr-cal-event {
	display: -webkit-box;
	-webkit-box-orient: vertical;
	-webkit-line-clamp: 2;
	overflow: hidden;
	font-size: .64rem;
	font-weight: 600;
	color: #fff;
	background: #7033b8;
	border-radius: 3px;
	padding: .15rem .35rem;
	text-decoration: none;
	white-space: normal;
	word-break: break-word;
	line-height: 1.3;
	transition: background .15s;
}

.czr-cal-event:hover { background: #5a2894; color: #fff; }
.czr-cal-event--more { background: rgba(112,51,184,.2); color: #7033b8; }
.czr-cal-event--more:hover { background: rgba(112,51,184,.35); color: #7033b8; }

@media (max-width: 640px) {
	.czr-cal-day { min-height: 52px; padding: .25rem; }
	.czr-cal-day__events { display: none; }
	.czr-cal-day--has-events::after { content: '●'; font-size: .45rem; color: #7033b8; display: block; text-align: center; }
	.czr-cal-header__day { font-size: .6rem; }
}

/* ============================================================
   WIDGET DEL TIEMPO
   ============================================================ */

.czr-weather {
	display: inline-flex;
	align-items: center;
	gap: .6rem;
	background: rgba(255,255,255,.1);
	border: 1px solid rgba(255,255,255,.15);
	border-radius: 2rem;
	padding: .45rem 1.1rem;
	backdrop-filter: blur(8px);
	-webkit-backdrop-filter: blur(8px);
}

.czr-weather__skeleton { font-size: .8rem; color: rgba(255,255,255,.5); }

.czr-weather--loaded .czr-weather__skeleton { display: none; }

.czr-weather__temp {
	font-size: 1.05rem;
	font-weight: 800;
	color: #fff;
	letter-spacing: -.02em;
}

.czr-weather__icon { font-size: 1.2rem; line-height: 1; }

.czr-weather__label {
	font-size: .75rem;
	color: rgba(255,255,255,.65);
	white-space: nowrap;
}

/* Variante sidebar (sobre fondo claro) */
.czr-weather--sidebar {
	background: var(--czr-bg);
	border-color: var(--czr-border);
	width: 100%;
	justify-content: center;
}

.czr-weather--sidebar .czr-weather__temp { color: var(--czr-text); }
.czr-weather--sidebar .czr-weather__label { color: var(--czr-text-light); }
.czr-weather--sidebar .czr-weather__skeleton { color: var(--czr-text-light); }

/* ============================================================
   FAQ — acordeón con <details>/<summary>
   ============================================================ */

.czr-faq { margin-top: 2.25rem; }

.czr-faq__list { display: flex; flex-direction: column; gap: .5rem; }

.czr-faq__item {
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-radius: var(--czr-radius-sm);
	overflow: hidden;
}

.czr-faq__item[open] { border-color: var(--czr-primary); }
.czr-faq__item[open] .czr-faq__q { border-bottom: 1px solid var(--czr-border); }

.czr-faq__q {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1rem;
	padding: 1rem 1.25rem;
	font-size: .95rem;
	font-weight: 700;
	color: var(--czr-text);
	cursor: pointer;
	list-style: none;
	transition: background var(--czr-transition);
	line-height: 1.4;
}

.czr-faq__q:hover { background: var(--czr-bg); }
.czr-faq__q::-webkit-details-marker { display: none; }

.czr-faq__q::after {
	content: '+';
	font-size: 1.25rem;
	font-weight: 400;
	color: var(--czr-primary);
	flex-shrink: 0;
	line-height: 1;
	transition: transform .2s;
}

.czr-faq__item[open] .czr-faq__q::after { transform: rotate(45deg); }

.czr-faq__a {
	padding: 1rem 1.25rem;
	font-size: .9rem;
	line-height: 1.7;
	color: var(--czr-text-mid);
}

.czr-faq__a p { margin: 0 0 .75em; }
.czr-faq__a p:last-child { margin-bottom: 0; }

/* ============================================================
   RATING EN CARDS
   ============================================================ */

.czr-card__rating {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .8rem;
	margin-top: .1rem;
}

.czr-card__rating-stars { color: var(--czr-primary); letter-spacing: .04em; font-size: .82rem; }
.czr-card__rating-num  { font-weight: 700; color: var(--czr-text-mid); }
.czr-card__rating-count { color: var(--czr-text-light); font-size: .75rem; }

/* ============================================================
   DISTANCIA "CERCA DE MÍ"
   ============================================================ */

.czr-card__dist {
	display: inline-flex;
	align-items: center;
	gap: .2rem;
	font-size: .7rem;
	font-weight: 700;
	color: var(--czr-primary);
	background: rgba(193,127,36,.1);
	padding: .18rem .55rem;
	border-radius: 2rem;
	margin-bottom: .2rem;
}

.czr-card__dist::before { content: '📍'; font-size: .65rem; }

.czr-btn--cerca {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	font-size: .8rem;
	font-weight: 600;
	padding: .45rem 1rem;
	border-radius: 2rem;
	border: 1.5px solid var(--czr-border);
	background: var(--czr-bg-card);
	color: var(--czr-text-mid);
	cursor: pointer;
	transition: all var(--czr-transition);
	white-space: nowrap;
}

.czr-btn--cerca:hover { border-color: var(--czr-primary); color: var(--czr-primary); background: rgba(193,127,36,.06); }

/* ============================================================
   CTA PROPIETARIOS — banner en páginas de archivo
   ============================================================ */

.czr-cta-propietario {
	background: var(--czr-bg-card);
	border: 1px solid var(--czr-border);
	border-left: 4px solid var(--czr-tipo, var(--czr-primary));
	border-radius: var(--czr-radius);
	padding: 1.75rem 2rem;
	margin: 2rem 0 .5rem;
}

.czr-cta-propietario__inner {
	display: flex;
	align-items: center;
	gap: 1.5rem;
	flex-wrap: wrap;
}

.czr-cta-propietario__icon {
	font-size: 2.75rem;
	line-height: 1;
	flex-shrink: 0;
}

.czr-cta-propietario__text { flex: 1; min-width: 200px; }

.czr-cta-propietario__title {
	display: block;
	font-size: 1.1rem;
	font-weight: 800;
	color: var(--czr-text);
	margin: 0 0 .35rem;
	line-height: 1.3;
	letter-spacing: -.02em;
}

.czr-cta-propietario__sub {
	font-size: .875rem;
	color: var(--czr-text-light);
	margin: 0;
	line-height: 1.6;
}

.czr-cta-propietario__actions {
	display: flex;
	flex-direction: column;
	align-items: flex-end;
	gap: .5rem;
	flex-shrink: 0;
}

.czr-cta-propietario__gratis {
	display: inline-flex;
	align-items: center;
	gap: .3rem;
	font-size: .75rem;
	font-weight: 700;
	color: #2f8655;
	letter-spacing: .02em;
}

.czr-cta-propietario__btn {
	display: inline-flex;
	align-items: center;
	gap: .4rem;
	background: var(--czr-tipo, var(--czr-primary));
	color: #fff;
	font-size: .9rem;
	font-weight: 700;
	padding: .7rem 1.5rem;
	border-radius: 2.5rem;
	text-decoration: none;
	white-space: nowrap;
	transition: filter var(--czr-transition), transform var(--czr-transition);
}

.czr-cta-propietario__btn:hover {
	filter: brightness(.88);
	transform: translateY(-1px);
	color: #fff;
}

@media (max-width: 700px) {
	.czr-cta-propietario { padding: 1.25rem 1.25rem; }
	.czr-cta-propietario__inner { gap: 1rem; }
	.czr-cta-propietario__actions { align-items: stretch; width: 100%; }
	.czr-cta-propietario__btn { justify-content: center; }
}

