/* ==========================================================
   CHEEKY SNOOZE — Roadmaps grid (widget de Elementor)
   Los !important en tipografía/box-model son intencionados:
   evitan que los estilos globales del tema (h2, p, button, ul li)
   pisen el diseño de este widget.
   ========================================================== */

.csr2-wrap{
	--csr2-bg: #F7F0E8;
	--csr2-card-bg: #FBF8F3;
	--csr2-border: #E6D9C8;
	--csr2-ink: #2E2621;
	--csr2-muted: #6B5D52;
	--csr2-accent: #C4956A;
	--csr2-accent-dark: #7A5230;
	--csr2-tag-bg: #F0E4D4;
	--csr2-radius: 18px;
}

/* ---------- Encabezado de sección ---------- */
.csr2-header{
	display: flex !important;
	align-items: flex-start !important;
	gap: 18px !important;
	margin: 0 0 32px !important;
	padding: 0 !important;
}

.csr2-header__icon{
	flex-shrink: 0;
	width: 50px;
	height: 50px;
	border-radius: 50%;
	background: var(--csr2-tag-bg);
	color: var(--csr2-accent-dark);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
}

.csr2-header__icon svg{
	width: 22px;
	height: 22px;
	fill: currentColor;
}

.csr2-header__text{
	flex: 1;
	min-width: 0;
}

.csr2-header__title{
	display: block !important;
	margin: 6px 0 8px !important;
	padding: 0 !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: 13.5px !important;
	font-weight: 700 !important;
	letter-spacing: .08em !important;
	text-transform: uppercase !important;
	color: var(--csr2-accent-dark) !important;
	line-height: 1.4 !important;
	border: none !important;
	background: none !important;
}

.csr2-header__title-small{
	display: block !important;
	margin-top: 6px !important;
	font-family: "Fraunces", serif !important;
	font-size: 26px !important;
	font-weight: 400 !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	color: var(--csr2-ink) !important;
	line-height: 1.2 !important;
}

.csr2-header__subtitle{
	margin: 0 !important;
	padding: 0 !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: 14.5px !important;
	font-weight: 400 !important;
	line-height: 1.55 !important;
	color: var(--csr2-muted) !important;
	max-width: 640px;
}

/* ---------- Grid ---------- */
.csr2-grid{
	display: grid !important;
	grid-template-columns: repeat(5, 1fr);
	gap: 22px !important;
	align-items: stretch;
	margin: 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.csr2-card{
	position: relative;
	display: flex !important;
	flex-direction: column !important;
	background: var(--csr2-card-bg) !important;
	border: 1px solid var(--csr2-border) !important;
	border-radius: var(--csr2-radius) !important;
	overflow: hidden;
	margin: 0 !important;
	padding: 0 !important;
	transition: transform .25s ease, box-shadow .25s ease, border-color .25s ease;
}

.csr2-card:hover{
	transform: translateY(-4px);
	box-shadow: 0 18px 34px rgba(46,38,33,.10);
}

.csr2-card--featured{
	border: 1.5px solid var(--csr2-accent) !important;
	box-shadow: 0 14px 30px rgba(122,82,48,.14);
}

.csr2-card__image{
	display: block !important;
	width: 100%;
	aspect-ratio: 4/3;
	background-size: cover !important;
	background-position: center !important;
	background-color: var(--csr2-border);
}

.csr2-card__body{
	padding: 22px 20px 6px !important;
	margin: 0 !important;
	flex: 1;
}

.csr2-title{
	display: block !important;
	margin: 0 0 4px !important;
	padding: 0 !important;
	font-family: "Fraunces", serif !important;
	font-weight: 400 !important;
	font-size: 20px !important;
	line-height: 1.15 !important;
	color: var(--csr2-ink) !important;
	border: none !important;
	background: none !important;
}

.csr2-subtitle{
	display: block !important;
	margin: 0 0 16px !important;
	padding: 0 !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: 13px !important;
	font-weight: 400 !important;
	line-height: 1.45 !important;
	color: var(--csr2-muted) !important;
}

/* ---------- Listado de guías incluidas (bien visible) ---------- */
.csr2-includes{
	background: var(--csr2-tag-bg) !important;
	border-radius: 12px !important;
	padding: 14px 16px 12px !important;
	margin: 0 0 10px !important;
}

.csr2-includes-label{
	display: block !important;
	margin: 0 0 10px !important;
	padding: 0 !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: 11.5px !important;
	font-weight: 700 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	color: var(--csr2-accent-dark) !important;
}

.csr2-list{
	list-style: none !important;
	margin: 0 !important;
	padding: 0 !important;
}

.csr2-list li{
	display: flex !important;
	align-items: flex-start !important;
	gap: 8px !important;
	margin: 0 !important;
	padding: 4px 0 !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: 13.5px !important;
	font-weight: 500 !important;
	line-height: 1.5 !important;
	color: var(--csr2-ink) !important;
	list-style: none !important;
}

.csr2-list li::before,
.csr2-list li::marker{
	content: none !important;
}

.csr2-list-icon{
	flex-shrink: 0;
	width: 15px;
	height: 15px;
	margin-top: 2px;
	color: var(--csr2-accent-dark);
}

.csr2-card__footer{
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	gap: 10px !important;
	padding: 16px 20px 20px !important;
	margin: 14px 0 0 !important;
	border-top: 1px solid var(--csr2-border) !important;
}

.csr2-price{
	font-family: "Fraunces", serif !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	color: var(--csr2-ink) !important;
	white-space: nowrap;
	margin: 0 !important;
}

.csr2-price del{
	opacity: .45;
	font-size: 12.5px !important;
	margin-right: 6px !important;
	font-family: "DM Sans", sans-serif !important;
}

.csr2-price ins{
	text-decoration: none !important;
}

.csr2-btn{
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 10px 16px !important;
	margin: 0 !important;
	border: none !important;
	border-radius: 30px !important;
	background: var(--csr2-accent-dark) !important;
	color: #fff !important;
	font-family: "DM Sans", sans-serif !important;
	font-size: 11.5px !important;
	font-weight: 500 !important;
	letter-spacing: .04em !important;
	text-transform: uppercase !important;
	text-decoration: none !important;
	white-space: nowrap;
	box-shadow: none !important;
	transition: background .2s ease, transform .15s ease;
}

.csr2-btn:hover{
	background: var(--csr2-accent) !important;
	color: #fff !important;
}

.csr2-btn:active{
	transform: scale(.98);
}

/* ---------- Puntos del slider (ocultos por defecto, en modo grid) ---------- */
.csr2-dots{
	display: none;
	justify-content: center;
	align-items: center;
	gap: 8px;
	margin: 18px 0 0 !important;
	padding: 0 !important;
	list-style: none !important;
}

.csr2-dot{
	-webkit-appearance: none !important;
	-moz-appearance: none !important;
	appearance: none !important;
	display: inline-block !important;
	box-sizing: border-box !important;
	width: 8px !important;
	height: 8px !important;
	min-width: 0 !important;
	min-height: 0 !important;
	max-width: 8px !important;
	max-height: 8px !important;
	padding: 0 !important;
	margin: 0 !important;
	border: none !important;
	outline: none !important;
	border-radius: 50% !important;
	background: var(--csr2-border) !important;
	box-shadow: none !important;
	line-height: 0 !important;
	font-size: 0 !important;
	cursor: pointer;
	transition: background .2s ease, transform .2s ease;
}

.csr2-dot:hover{
	background: var(--csr2-accent) !important;
}

.csr2-dot.is-active{
	background: var(--csr2-accent-dark) !important;
	transform: scale(1.3);
}

/* Nota: los @media de "modo slider" con los breakpoints reales de
   tu Elementor se generan dinámicamente en PHP (dentro del render
   del widget), porque dependen de tu configuración de breakpoints
   personalizados y no se pueden fijar aquí a lo bruto. */

@media (max-width: 480px){
	.csr2-header{
		flex-direction: column !important;
	}
}