/* ============================================================
   Casa.ve — Stylesheet principal
   Diseño minimalista inspirado en Airbnb con identidad venezolana.
   Prefijo .csv- en todas las clases para evitar conflictos con el tema.
   ============================================================ */

/* ---- Tokens de diseño ---- */
:root {
	--csv-red:        #E11D48;
	--csv-red-dark:   #BE123C;
	--csv-yellow:        #F5BB1F;
	--csv-yellow-dark:   #D49A0F;
	--csv-yellow-light:  #FEF3C7;
	--csv-yellow-flag:   #FCD34D;
	--csv-blue:       #1E40AF;
	--csv-ink:        #1c1c1e;
	--csv-ink-2:      #404040;
	--csv-muted:      #6b7280;
	--csv-muted-2:    #9ca3af;
	--csv-line:       #e5e7eb;
	--csv-line-2:     #f3f4f6;
	--csv-bg:         #ffffff;
	--csv-bg-soft:    #fafafa;
	--csv-bg-dim:     #f5f5f5;
	--csv-radius:     14px;
	--csv-radius-sm:  10px;
	--csv-radius-lg:  20px;
	--csv-shadow-sm:  0 1px 2px rgba(0,0,0,.04), 0 1px 3px rgba(0,0,0,.06);
	--csv-shadow:     0 4px 12px rgba(0,0,0,.08);
	--csv-shadow-lg:  0 12px 32px rgba(0,0,0,.12);
	--csv-font:       'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
}

/* ---- Reset y base solo para páginas Casa.ve ---- */
body.casave-page {
	margin: 0;
	font-family: var(--csv-font);
	font-size: 15px;
	line-height: 1.5;
	color: var(--csv-ink);
	background: var(--csv-bg);
	-webkit-font-smoothing: antialiased;
}

body.casave-page * {
	box-sizing: border-box;
}

body.casave-page a {
	color: inherit;
	text-decoration: none;
}

body.casave-page img {
	max-width: 100%;
	display: block;
}

body.casave-page button {
	font-family: inherit;
	border: none;
	background: none;
	cursor: pointer;
	padding: 0;
	color: inherit;
}

/* Layout principal */
.csv-main {
	min-height: calc(100vh - 200px);
}

.csv-container {
	max-width: 1280px;
	margin: 0 auto;
	padding: 0 32px;
}

@media (max-width: 768px) {
	.csv-container { padding: 0 20px; }
}

/* ============================================================
   HEADER
   ============================================================ */
.csv-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255,255,255,0.96);
	backdrop-filter: saturate(180%) blur(12px);
	-webkit-backdrop-filter: saturate(180%) blur(12px);
	border-bottom: 1px solid var(--csv-line);
}

.csv-header__row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	height: 80px;
	gap: 24px;
}

.csv-header__logo {
	flex-shrink: 0;
}

.csv-header__logo img {
	height: 32px;
	width: auto;
}

.csv-header__tabs {
	display: flex;
	gap: 8px;
	align-items: center;
	flex: 1;
	justify-content: center;
}

.csv-tab {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 10px 16px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	color: var(--csv-ink-2);
	transition: all .15s ease;
	white-space: nowrap;
}

.csv-tab:hover {
	background: var(--csv-line-2);
	color: var(--csv-ink);
}

.csv-tab--active {
	background: var(--csv-yellow);
	color: var(--csv-ink);
}

.csv-tab--active:hover {
	background: var(--csv-yellow-dark);
	color: var(--csv-ink);
}

.csv-tab svg {
	width: 16px;
	height: 16px;
}

.csv-header__actions {
	display: flex;
	align-items: center;
	gap: 4px;
	flex-shrink: 0;
}

.csv-header__cta {
	padding: 10px 16px;
	border-radius: 999px;
	font-size: 14px;
	font-weight: 600;
	color: var(--csv-ink);
	transition: background .15s;
}

.csv-header__cta:hover {
	background: var(--csv-line-2);
}

.csv-icon-btn {
	width: 42px;
	height: 42px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--csv-ink-2);
	transition: background .15s;
}

.csv-icon-btn:hover {
	background: var(--csv-line-2);
}

.csv-icon-btn svg {
	width: 18px;
	height: 18px;
}

.csv-menu-btn {
	border: 1px solid var(--csv-line);
	padding: 6px 8px 6px 14px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	color: var(--csv-ink);
	font-size: 14px;
	transition: box-shadow .15s;
}

.csv-menu-btn:hover {
	box-shadow: var(--csv-shadow-sm);
}

.csv-menu-btn__avatar {
	width: 28px;
	height: 28px;
	border-radius: 999px;
	background: var(--csv-ink);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 13px;
}

@media (max-width: 900px) {
	.csv-header__tabs { display: none; }
	.csv-header__cta { display: none; }
}

/* ============================================================
   HERO
   ============================================================ */
.csv-hero {
	position: relative;
	min-height: 540px;
	display: flex;
	align-items: center;
	justify-content: center;
	background-color: #1c1c1e;
	background-size: cover;
	background-position: center;
	overflow: hidden;
}

.csv-hero::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.42) 100%);
}

.csv-hero__inner {
	position: relative;
	z-index: 1;
	width: 100%;
	max-width: 1080px;
	padding: 80px 32px;
	text-align: center;
	color: #fff;
}

.csv-hero__eyebrow {
	display: inline-block;
	padding: 6px 14px;
	background: rgba(255,255,255,.16);
	backdrop-filter: blur(8px);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .04em;
	margin-bottom: 20px;
	color: #fff;
}

.csv-hero h1 {
	font-size: clamp(36px, 5vw, 60px);
	font-weight: 800;
	line-height: 1.05;
	letter-spacing: -0.02em;
	margin: 0 0 16px;
	color: #fff;
}

.csv-hero__sub {
	font-size: clamp(16px, 1.8vw, 19px);
	color: rgba(255,255,255,.92);
	margin: 0 auto 40px;
	max-width: 620px;
	line-height: 1.55;
}

/* ============================================================
   BUSCADOR (pill)
   ============================================================ */
.csv-search {
	display: flex;
	align-items: stretch;
	max-width: 920px;
	margin: 0 auto;
	background: #fff;
	border-radius: 999px;
	box-shadow: var(--csv-shadow-lg);
	overflow: hidden;
	padding: 8px;
	gap: 0;
}

.csv-search__field {
	flex: 1;
	padding: 12px 22px;
	display: flex;
	flex-direction: column;
	gap: 2px;
	cursor: pointer;
	border-radius: 999px;
	transition: background .15s;
	min-width: 0;
	text-align: left;
}

.csv-search__field:hover {
	background: var(--csv-bg-dim);
}

.csv-search__field + .csv-search__field {
	border-left: 1px solid var(--csv-line);
}

.csv-search__field:hover + .csv-search__field,
.csv-search__field:has(+ .csv-search__field:hover) {
	/* deja la línea visible siempre, simplificado */
}

.csv-search__label {
	font-size: 11px;
	font-weight: 700;
	color: var(--csv-ink);
	letter-spacing: .04em;
	text-transform: uppercase;
}

.csv-search__value {
	font-size: 14px;
	color: var(--csv-muted);
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}

.csv-search__value--filled {
	color: var(--csv-ink);
}

.csv-search input,
.csv-search select {
	border: none;
	outline: none;
	background: transparent;
	font-family: inherit;
	font-size: 14px;
	color: var(--csv-ink);
	width: 100%;
	padding: 0;
	cursor: pointer;
	-webkit-appearance: none;
	appearance: none;
}

.csv-search input::placeholder {
	color: var(--csv-muted);
}

body.casave-page button.csv-search__submit,
body.casave-page form .csv-search__submit,
.csv-search__submit {
	height: 52px !important;
	min-width: 116px !important;
	padding: 0 22px !important;
	border-radius: 66px !important;
	background: var(--csv-yellow) !important;
	background-color: var(--csv-yellow) !important;
	background-image: none !important;
	color: var(--csv-ink) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px;
	align-self: center;
	margin-left: 6px;
	font-size: 14px;
	font-weight: 700;
	transition: background .15s, transform .15s;
	flex-shrink: 0;
	cursor: pointer;
	border: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
}

body.casave-page button.csv-search__submit:hover,
.csv-search__submit:hover {
	background: var(--csv-yellow-dark) !important;
	background-color: var(--csv-yellow-dark) !important;
	transform: translateY(-1px);
}

.csv-search__submit svg {
	width: 16px;
	height: 16px;
	flex-shrink: 0;
	stroke: currentColor !important;
}
.csv-search__submit span { color: var(--csv-ink) !important; }

/* Versión expandida con texto del botón (en /buscar/) */
.csv-search--expanded .csv-search__submit {
	width: auto;
	padding: 0 22px;
	height: 56px;
	gap: 8px;
}

.csv-search--expanded .csv-search__submit span {
	font-weight: 600;
	font-size: 14px;
}

@media (max-width: 760px) {
	.csv-search {
		flex-direction: column;
		border-radius: var(--csv-radius-lg);
		padding: 8px;
		gap: 4px;
	}
	.csv-search__field {
		border-left: none !important;
		border-bottom: 1px solid var(--csv-line);
		border-radius: var(--csv-radius);
	}
	.csv-search__field:last-of-type {
		border-bottom: none;
	}
	.csv-search__submit {
		width: 100%;
		border-radius: var(--csv-radius);
		padding: 14px;
		margin-left: 0;
	}
	.csv-search__submit::after {
		content: 'Buscar';
		font-weight: 600;
		font-size: 14px;
		margin-left: 8px;
	}
}

/* ============================================================
   SECCIONES
   ============================================================ */
.csv-section {
	padding: 56px 0;
}

.csv-section--tight {
	padding: 32px 0;
}

.csv-section__head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	margin-bottom: 24px;
	gap: 16px;
}

.csv-section__titlewrap {
	flex: 1;
	min-width: 0;
}

.csv-section h2 {
	font-size: 24px;
	font-weight: 700;
	letter-spacing: -0.01em;
	margin: 0;
	color: var(--csv-ink);
	display: inline-flex;
	align-items: center;
	gap: 8px;
}

.csv-section h2 a {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: color .15s;
}

.csv-section h2 a:hover {
	color: var(--csv-yellow-dark);
}

.csv-section__subtitle {
	color: var(--csv-muted);
	font-size: 15px;
	margin: 4px 0 0;
}

.csv-section__nav {
	display: flex;
	gap: 8px;
}

.csv-nav-btn {
	width: 36px;
	height: 36px;
	border-radius: 999px;
	border: 1px solid var(--csv-line);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	background: #fff;
	color: var(--csv-ink-2);
	transition: all .15s;
}

.csv-nav-btn:hover {
	border-color: var(--csv-ink);
	color: var(--csv-ink);
}

.csv-nav-btn svg {
	width: 14px;
	height: 14px;
}

/* ============================================================
   GRID DE CARDS (carrusel horizontal scroll)
   ============================================================ */
.csv-carousel {
	display: grid;
	grid-auto-flow: column;
	grid-auto-columns: calc((100% - 6 * 16px) / 7);
	gap: 16px;
	overflow-x: auto;
	scroll-snap-type: x mandatory;
	scroll-behavior: smooth;
	padding-bottom: 8px;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.csv-carousel::-webkit-scrollbar { display: none; }

.csv-carousel > * {
	scroll-snap-align: start;
}

@media (max-width: 1200px) {
	.csv-carousel { grid-auto-columns: calc((100% - 4 * 16px) / 5); }
}
@media (max-width: 900px) {
	.csv-carousel { grid-auto-columns: calc((100% - 2 * 16px) / 3); }
}
@media (max-width: 600px) {
	.csv-carousel { grid-auto-columns: calc((100% - 16px) / 1.8); }
}

/* Grid estándar (resultados de búsqueda) */
.csv-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 24px 16px;
}

/* ============================================================
   CARD DE INMUEBLE
   ============================================================ */
.csv-card {
	position: relative;
	cursor: pointer;
	transition: transform .15s;
}

.csv-card:hover {
	transform: translateY(-2px);
}

.csv-card__image {
	position: relative;
	aspect-ratio: 20/19;
	border-radius: var(--csv-radius);
	overflow: hidden;
	background: var(--csv-bg-dim);
	margin-bottom: 12px;
}

.csv-card__image img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	transition: transform .4s ease;
}

.csv-card:hover .csv-card__image img {
	transform: scale(1.04);
}

.csv-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	padding: 6px 12px;
	background: #fff;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	color: var(--csv-ink);
	box-shadow: var(--csv-shadow-sm);
}

.csv-card__heart {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 28px;
	height: 28px;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	transition: transform .15s;
	z-index: 2;
}

.csv-card__heart:hover {
	transform: scale(1.1);
}

.csv-card__heart svg {
	width: 22px;
	height: 22px;
	fill: rgba(0,0,0,.4);
	stroke: #fff;
	stroke-width: 2;
}

.csv-card__heart.is-active svg {
	fill: var(--csv-red);
	stroke: #fff;
}

.csv-card__title {
	font-size: 15px;
	font-weight: 600;
	color: var(--csv-ink);
	margin: 0 0 2px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 8px;
}

.csv-card__rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	color: var(--csv-ink);
	font-weight: 500;
	flex-shrink: 0;
}

.csv-card__rating svg {
	width: 12px;
	height: 12px;
	fill: var(--csv-ink);
}

.csv-card__location {
	font-size: 14px;
	color: var(--csv-muted);
	margin: 0 0 4px;
}

.csv-card__specs {
	font-size: 13px;
	color: var(--csv-muted);
	margin: 0 0 8px;
	display: flex;
	gap: 10px;
}

.csv-card__specs span {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}

.csv-card__price {
	font-size: 15px;
	color: var(--csv-ink);
	font-weight: 700;
}

.csv-card__price small {
	font-weight: 500;
	color: var(--csv-muted);
	font-size: 13px;
}

/* ============================================================
   SECCIÓN INSPIRACIÓN (tarjetas grandes con imagen + título)
   ============================================================ */
.csv-inspire-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 16px;
}

@media (max-width: 1024px) {
	.csv-inspire-grid { grid-template-columns: repeat(2, 1fr); }
}

.csv-inspire-card {
	position: relative;
	aspect-ratio: 4/5;
	border-radius: var(--csv-radius);
	overflow: hidden;
	display: flex;
	align-items: flex-end;
	padding: 24px;
	color: #fff;
	cursor: pointer;
	background-size: cover;
	background-position: center;
	text-decoration: none;
}

.csv-inspire-card::before {
	content: '';
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.25) 45%, rgba(0,0,0,.75) 100%);
}

.csv-inspire-card:hover {
	transform: translateY(-2px);
	transition: transform .15s;
}

.csv-inspire-card__content {
	position: relative;
	z-index: 1;
	color: #fff;
}

.csv-inspire-card__eyebrow {
	font-size: 12px;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff !important;
	opacity: .92;
	margin-bottom: 6px;
	text-shadow: 0 1px 4px rgba(0,0,0,.4);
}

.csv-inspire-card__title {
	font-size: 22px;
	font-weight: 700;
	line-height: 1.15;
	margin: 0;
	color: #fff !important;
	text-shadow: 0 2px 8px rgba(0,0,0,.5);
}

/* ============================================================
   TABS DE CIUDADES (interactivos)
   ============================================================ */
.csv-citytabs {
	display: flex;
	gap: 10px;
	overflow-x: auto;
	padding: 4px 4px 18px;
	margin: 0 -4px 24px;
	-ms-overflow-style: none;
	scrollbar-width: none;
}

.csv-citytabs::-webkit-scrollbar { display: none; }

body.casave-page button.csv-citytab,
.csv-citytab {
	padding: 10px 18px;
	border-radius: 999px;
	background: #fff;
	color: var(--csv-ink-2);
	font-size: 14px;
	font-weight: 600;
	white-space: nowrap;
	transition: background .15s, color .15s, border-color .15s, transform .15s;
	border: 1px solid var(--csv-line);
	cursor: pointer;
	font-family: inherit;
	line-height: 1.2;
	display: inline-flex;
	align-items: center;
	height: 38px;
}

body.casave-page button.csv-citytab:hover,
.csv-citytab:hover {
	background: var(--csv-bg-dim);
	border-color: var(--csv-line-2);
	color: var(--csv-ink);
}

body.casave-page button.csv-citytab.is-active,
.csv-citytab.is-active {
	background: var(--csv-ink);
	color: #fff;
	border-color: var(--csv-ink);
}

/* ============================================================
   BANNER (Hazte anfitrión)
   ============================================================ */
.csv-banner {
	border-radius: var(--csv-radius-lg);
	padding: 56px;
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 32px;
	align-items: center;
	background: linear-gradient(135deg, var(--csv-yellow-light) 0%, #fff7ed 100%);
	overflow: hidden;
	position: relative;
}

.csv-banner h2 {
	font-size: 36px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
	color: var(--csv-ink);
	line-height: 1.05;
}

.csv-banner p {
	color: var(--csv-ink-2);
	font-size: 16px;
	margin: 0 0 28px;
	max-width: 480px;
}

body.casave-page a.csv-banner__cta,
.csv-banner__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 24px;
	background: var(--csv-yellow);
	color: var(--csv-ink) !important;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	transition: background .15s, transform .15s;
	text-decoration: none;
	line-height: 1;
}

body.casave-page a.csv-banner__cta:hover,
.csv-banner__cta:hover {
	background: var(--csv-yellow-dark);
	transform: translateY(-1px);
}

.csv-banner__cta svg { flex-shrink: 0; }

.csv-banner__img {
	border-radius: var(--csv-radius);
	overflow: hidden;
	aspect-ratio: 1/1;
}

.csv-banner__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

@media (max-width: 900px) {
	.csv-banner { grid-template-columns: 1fr; padding: 32px; }
	.csv-banner h2 { font-size: 28px; }
}

/* ============================================================
   STRIP SERVICIOS
   ============================================================ */
.csv-services {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
}

.csv-service {
	display: flex;
	gap: 14px;
	align-items: flex-start;
}

.csv-service__icon {
	width: 44px;
	height: 44px;
	border-radius: 12px;
	background: var(--csv-bg-dim);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: var(--csv-yellow-dark);
}

.csv-service__icon svg {
	width: 22px;
	height: 22px;
}

.csv-service h3 {
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 4px;
	color: var(--csv-ink);
}

.csv-service p {
	margin: 0;
	color: var(--csv-muted);
	font-size: 14px;
	line-height: 1.45;
}

@media (max-width: 900px) {
	.csv-services { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 600px) {
	.csv-services { grid-template-columns: 1fr; }
}

/* ============================================================
   FOOTER
   ============================================================ */
.csv-footer {
	background: var(--csv-bg-soft);
	border-top: 1px solid var(--csv-line);
	padding: 56px 0 24px;
	margin-top: 48px;
}

.csv-footer__cols {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 32px;
	margin-bottom: 40px;
}

@media (max-width: 900px) {
	.csv-footer__cols { grid-template-columns: repeat(2, 1fr); }
}

.csv-footer h4 {
	font-size: 13px;
	font-weight: 700;
	margin: 0 0 16px;
	color: var(--csv-ink);
}

.csv-footer ul {
	list-style: none;
	padding: 0;
	margin: 0;
}

.csv-footer li {
	margin-bottom: 10px;
}

.csv-footer li a {
	color: var(--csv-ink-2);
	font-size: 14px;
	transition: color .15s;
}

.csv-footer li a:hover {
	color: var(--csv-yellow-dark);
}

.csv-footer__bottom {
	border-top: 1px solid var(--csv-line);
	padding-top: 24px;
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
}

.csv-footer__legal {
	font-size: 13px;
	color: var(--csv-muted);
	display: flex;
	gap: 16px;
	flex-wrap: wrap;
}

.csv-footer__legal a:hover { color: var(--csv-yellow-dark); }

.csv-footer__flag {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--csv-muted);
}

.csv-footer__flag-emoji {
	font-size: 18px;
	line-height: 1;
}

/* ============================================================
   PÁGINA DE BÚSQUEDA — Layout con mapa
   ============================================================ */
.csv-search-page {
	min-height: calc(100vh - 80px);
}

@media (max-width: 1024px) {
	.csv-search-page__map { display: none; } /* En móvil ocultamos el mapa por defecto */
}

.csv-search-page__results {
	padding: 24px 24px 64px;
	overflow-y: auto;
}

.csv-search-page__toolbar {
	display: flex;
	gap: 8px;
	flex-wrap: wrap;
	margin-bottom: 16px;
}

.csv-filter-pill {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 14px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--csv-line);
	font-size: 13px;
	font-weight: 600;
	color: var(--csv-ink-2);
	transition: all .15s;
	white-space: nowrap;
}

.csv-filter-pill:hover {
	border-color: var(--csv-ink);
}

.csv-filter-pill.is-active {
	background: var(--csv-ink);
	color: #fff;
	border-color: var(--csv-ink);
}

.csv-filter-pill svg {
	width: 12px;
	height: 12px;
}

.csv-search-page__count {
	font-size: 14px;
	color: var(--csv-muted);
	margin: 0 0 16px;
}

.csv-search-page__count strong {
	color: var(--csv-ink);
	font-weight: 700;
}

.csv-map__controls {
	position: absolute;
	top: 16px;
	left: 16px;
	z-index: 500;
	display: flex;
	flex-direction: column;
	gap: 8px;
	max-width: 220px;
}

body.casave-page button.csv-map-btn,
.csv-map-btn {
	background: #fff;
	border-radius: 999px;
	padding: 0 18px;
	height: 40px;
	font-size: 13px;
	font-weight: 600;
	color: var(--csv-ink);
	box-shadow: 0 2px 8px rgba(0,0,0,.12), 0 0 0 1px rgba(0,0,0,.04);
	display: inline-flex;
	align-items: center;
	gap: 8px;
	transition: background .15s, transform .15s, box-shadow .15s;
	cursor: pointer;
	border: none;
	font-family: inherit;
	line-height: 1;
	white-space: nowrap;
}

body.casave-page button.csv-map-btn:hover,
.csv-map-btn:hover {
	background: #fff;
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(0,0,0,.16), 0 0 0 1px rgba(0,0,0,.04);
}

body.casave-page button.csv-map-btn.is-active,
.csv-map-btn.is-active {
	background: var(--csv-yellow);
	color: var(--csv-ink);
}

.csv-map-btn svg {
	width: 15px;
	height: 15px;
	flex-shrink: 0;
}

/* Overlay de instrucciones cuando el usuario está dibujando */
.csv-map-drawing-hint {
	position: absolute;
	top: 16px;
	left: 50%;
	transform: translateX(-50%);
	z-index: 600;
	background: var(--csv-ink);
	color: #fff;
	padding: 10px 18px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	box-shadow: 0 6px 16px rgba(0,0,0,.20);
	display: none;
	align-items: center;
	gap: 8px;
	white-space: nowrap;
}
.csv-map-drawing-hint.is-visible { display: inline-flex; }
.csv-map-drawing-hint svg { width: 14px; height: 14px; }

/* Marcadores de precio en el mapa */
.csv-map-price {
	background: #fff;
	border: 1.5px solid var(--csv-ink);
	border-radius: 999px;
	padding: 6px 12px;
	font-size: 13px;
	font-weight: 700;
	color: var(--csv-ink);
	white-space: nowrap;
	box-shadow: var(--csv-shadow-sm);
	cursor: pointer;
	transition: all .15s;
}

.csv-map-price:hover,
.csv-map-price.is-active {
	background: var(--csv-ink);
	color: #fff;
}

/* ============================================================
   PÁGINAS DE CONTENIDO ESTÁNDAR (about, terms, etc.)
   ============================================================ */
.csv-page {
	padding: 64px 0;
	max-width: 760px;
	margin: 0 auto;
}

.csv-page h1 {
	font-size: 40px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin: 0 0 12px;
}

.csv-page__lead {
	font-size: 18px;
	color: var(--csv-muted);
	margin: 0 0 40px;
}

.csv-page h2 {
	font-size: 24px;
	font-weight: 700;
	margin: 40px 0 16px;
}

.csv-page p {
	color: var(--csv-ink-2);
	line-height: 1.65;
}

/* ============================================================
   PLACEHOLDER (cuando una sección está sin implementar)
   ============================================================ */
.casave-placeholder {
	font-family: var(--csv-font);
}

/* ============================================================
   SINGLE DE INMUEBLE
   ============================================================ */
.csv-single {
	padding: 24px 0 64px;
}

.csv-breadcrumb {
	font-size: 13px;
	color: var(--csv-muted);
	margin-bottom: 16px;
	display: flex;
	gap: 8px;
	align-items: center;
	flex-wrap: wrap;
}
.csv-breadcrumb a { color: var(--csv-ink-2); }
.csv-breadcrumb a:hover { color: var(--csv-yellow-dark); }

.csv-single__gallery {
	display: grid;
	grid-template-columns: 2fr 1fr;
	gap: 8px;
	margin-bottom: 24px;
	border-radius: var(--csv-radius-lg);
	overflow: hidden;
	max-height: 480px;
}

.csv-single__gallery-main {
	position: relative;
	height: 480px;
	background: var(--csv-bg-dim);
}

.csv-single__gallery-main img {
	width: 100%; height: 100%; object-fit: cover;
}

.csv-single__badge {
	position: absolute;
	top: 16px; left: 16px;
	background: #fff;
	padding: 8px 14px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	box-shadow: var(--csv-shadow-sm);
}

.csv-single__placeholder {
	height: 100%;
	display: flex;
	align-items: center;
	justify-content: center;
	color: var(--csv-muted);
}

.csv-single__gallery-side {
	display: grid;
	grid-template-rows: 1fr 1fr;
	gap: 8px;
	height: 480px;
}

.csv-single__gallery-thumb {
	background: var(--csv-bg-dim);
	overflow: hidden;
}

.csv-single__gallery-thumb img {
	width: 100%; height: 100%; object-fit: cover;
}

@media (max-width: 768px) {
	.csv-single__gallery { grid-template-columns: 1fr; max-height: none; }
	.csv-single__gallery-main { height: 280px; }
	.csv-single__gallery-side { display: none; }
}

.csv-single__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 32px;
	padding-bottom: 24px;
	margin-bottom: 24px;
	border-bottom: 1px solid var(--csv-line);
	flex-wrap: wrap;
}

.csv-single__op-tag {
	display: inline-block;
	background: var(--csv-yellow-light);
	color: var(--csv-yellow-dark);
	padding: 5px 12px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	margin-bottom: 12px;
}

.csv-single__title {
	font-size: 28px;
	font-weight: 700;
	margin: 0 0 8px;
	letter-spacing: -0.01em;
	line-height: 1.15;
}

.csv-single__location {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: var(--csv-muted);
	font-size: 15px;
	margin: 0 0 10px;
}

.csv-single__rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 14px;
}

.csv-single__rating svg { color: var(--csv-ink); }
.csv-single__rating span { color: var(--csv-muted); margin-left: 6px; }

.csv-single__price-block {
	min-width: 240px;
	background: var(--csv-bg-soft);
	border-radius: var(--csv-radius);
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 10px;
}

.csv-single__price {
	font-size: 26px;
	font-weight: 800;
	color: var(--csv-ink);
}
.csv-single__price small {
	font-size: 14px;
	color: var(--csv-muted);
	font-weight: 500;
}

.csv-single__cta {
	width: 100%;
	padding: 12px 20px;
	background: var(--csv-yellow);
	color: var(--csv-ink);
	border-radius: 999px;
	font-weight: 700;
	font-size: 14px;
	transition: background .15s;
}
.csv-single__cta:hover { background: var(--csv-yellow-dark); }
.csv-single__cta--ghost {
	background: #fff;
	border: 1px solid var(--csv-line);
}
.csv-single__cta--ghost:hover { background: var(--csv-bg-dim); }

.csv-single__specs {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 16px;
	padding: 24px;
	background: var(--csv-bg-soft);
	border-radius: var(--csv-radius);
	margin-bottom: 32px;
}

@media (max-width: 700px) {
	.csv-single__specs { grid-template-columns: repeat(2, 1fr); }
}

.csv-single__spec {
	display: flex;
	align-items: center;
	gap: 12px;
}

.csv-single__spec svg {
	width: 26px; height: 26px;
	color: var(--csv-yellow-dark);
	flex-shrink: 0;
}

.csv-single__spec strong {
	display: block;
	font-size: 16px;
	color: var(--csv-ink);
}

.csv-single__spec span {
	font-size: 12px;
	color: var(--csv-muted);
}

.csv-single__body {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 40px;
}

@media (max-width: 900px) {
	.csv-single__body { grid-template-columns: 1fr; }
}

.csv-single__description h2 {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 12px;
}
.csv-single__description h2:not(:first-child) { margin-top: 32px; }

.csv-single__content {
	color: var(--csv-ink-2);
	line-height: 1.65;
}

.csv-single__features {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 8px;
}
.csv-single__features li {
	font-size: 14px;
	color: var(--csv-ink-2);
}

.csv-single__sidebar {
	position: sticky;
	top: 100px;
	align-self: start;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.csv-single__map {
	height: 280px;
	border-radius: var(--csv-radius);
	overflow: hidden;
	background: var(--csv-bg-dim);
}

.csv-single__map-note {
	font-size: 12px;
	color: var(--csv-muted);
	text-align: center;
	margin: -4px 0 0;
}

.csv-single__contact-card {
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: var(--csv-radius);
	padding: 20px;
	display: flex;
	flex-direction: column;
	gap: 12px;
}

.csv-single__contact-head {
	display: flex;
	gap: 12px;
	align-items: center;
	margin-bottom: 4px;
}

.csv-single__avatar {
	width: 44px;
	height: 44px;
	background: var(--csv-yellow);
	color: var(--csv-ink);
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 18px;
	flex-shrink: 0;
}

.csv-single__contact-head strong {
	display: block;
	font-size: 14px;
}
.csv-single__contact-head span {
	font-size: 12px;
	color: var(--csv-muted);
}

/* ============================================================
   PÁGINAS DE CONTENIDO RICAS (about, help, contact, etc.)
   ============================================================ */
.csv-rich {
	padding: 64px 0;
}

.csv-rich__hero {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 48px;
}

.csv-rich__eyebrow {
	display: inline-block;
	padding: 5px 14px;
	background: var(--csv-yellow-light);
	color: var(--csv-yellow-dark);
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .06em;
	text-transform: uppercase;
	margin-bottom: 16px;
}

.csv-rich__title {
	font-size: clamp(32px, 4vw, 48px);
	font-weight: 800;
	margin: 0 0 16px;
	letter-spacing: -0.02em;
	line-height: 1.1;
}

.csv-rich__lead {
	font-size: 18px;
	color: var(--csv-muted);
	margin: 0;
	line-height: 1.55;
}

.csv-rich__section {
	max-width: 760px;
	margin: 48px auto;
}

.csv-rich__section h2 {
	font-size: 26px;
	font-weight: 700;
	margin: 0 0 16px;
	letter-spacing: -0.01em;
}

.csv-rich__section h3 {
	font-size: 18px;
	font-weight: 700;
	margin: 24px 0 8px;
}

.csv-rich__section p,
.csv-rich__section li {
	color: var(--csv-ink-2);
	line-height: 1.65;
}

.csv-rich__section ul {
	padding-left: 20px;
}

.csv-rich__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 24px;
	padding: 40px;
	background: var(--csv-bg-soft);
	border-radius: var(--csv-radius-lg);
	margin: 48px auto;
	max-width: 1080px;
}

@media (max-width: 760px) {
	.csv-rich__stats { grid-template-columns: repeat(2, 1fr); padding: 24px; }
}

.csv-rich__stat strong {
	display: block;
	font-size: 36px;
	font-weight: 800;
	color: var(--csv-yellow-dark);
	letter-spacing: -0.02em;
}

.csv-rich__stat span {
	font-size: 13px;
	color: var(--csv-muted);
}

.csv-rich__cards {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 32px 0;
}

@media (max-width: 760px) {
	.csv-rich__cards { grid-template-columns: 1fr; }
}

.csv-rich__card {
	padding: 24px;
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: var(--csv-radius);
}

.csv-rich__card-icon {
	width: 44px;
	height: 44px;
	background: var(--csv-yellow-light);
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: var(--csv-yellow-dark);
	margin-bottom: 12px;
}

.csv-rich__card h3 {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 6px;
}

.csv-rich__card p {
	margin: 0;
	font-size: 14px;
	color: var(--csv-muted);
	line-height: 1.5;
}

/* FAQ accordion */
.csv-faq {
	max-width: 760px;
	margin: 0 auto;
}

.csv-faq__item {
	border-bottom: 1px solid var(--csv-line);
	padding: 20px 0;
}

.csv-faq__q {
	font-weight: 700;
	font-size: 16px;
	margin: 0 0 8px;
	cursor: pointer;
}

.csv-faq__a {
	color: var(--csv-ink-2);
	line-height: 1.6;
	margin: 0;
}

/* Pricing */
.csv-pricing {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	max-width: 1080px;
	margin: 0 auto;
}

@media (max-width: 900px) {
	.csv-pricing { grid-template-columns: 1fr; }
}

.csv-plan {
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: var(--csv-radius-lg);
	padding: 32px;
	display: flex;
	flex-direction: column;
	position: relative;
}

.csv-plan--featured {
	border-color: var(--csv-yellow);
	border-width: 2px;
	background: linear-gradient(180deg, var(--csv-yellow-light) 0%, #fff 100%);
}

.csv-plan__badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background: var(--csv-yellow);
	color: var(--csv-ink);
	padding: 4px 12px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
}

.csv-plan h3 {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 8px;
}

.csv-plan__price {
	font-size: 36px;
	font-weight: 800;
	margin: 0 0 4px;
	letter-spacing: -0.02em;
}

.csv-plan__price small {
	font-size: 14px;
	color: var(--csv-muted);
	font-weight: 500;
}

.csv-plan__desc {
	color: var(--csv-muted);
	font-size: 14px;
	margin: 0 0 24px;
}

.csv-plan__features {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
	flex-grow: 1;
}

.csv-plan__features li {
	padding: 8px 0;
	font-size: 14px;
	color: var(--csv-ink-2);
	display: flex;
	gap: 8px;
	align-items: flex-start;
}

.csv-plan__features li::before {
	content: '✓';
	color: var(--csv-yellow-dark);
	font-weight: 800;
	flex-shrink: 0;
}

.csv-plan__cta {
	width: 100%;
	padding: 12px;
	border-radius: 999px;
	background: var(--csv-ink);
	color: #fff;
	font-weight: 700;
	font-size: 14px;
	text-align: center;
	display: block;
	transition: background .15s;
}

.csv-plan__cta:hover { background: #000; }

.csv-plan--featured .csv-plan__cta {
	background: var(--csv-yellow);
	color: var(--csv-ink);
}
.csv-plan--featured .csv-plan__cta:hover { background: var(--csv-yellow-dark); }

/* Steps */
.csv-steps {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	max-width: 1080px;
	margin: 48px auto;
}

@media (max-width: 760px) {
	.csv-steps { grid-template-columns: 1fr; }
}

.csv-step__num {
	width: 36px;
	height: 36px;
	border-radius: 999px;
	background: var(--csv-yellow);
	color: var(--csv-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 14px;
	margin-bottom: 12px;
}

.csv-step h3 {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 6px;
}

.csv-step p {
	margin: 0;
	color: var(--csv-muted);
	font-size: 14px;
	line-height: 1.5;
}

/* CTA grande */
.csv-cta-block {
	background: var(--csv-ink);
	color: #fff;
	border-radius: var(--csv-radius-lg);
	padding: 56px;
	text-align: center;
	margin: 48px 0;
}

.csv-cta-block h2 {
	color: #fff;
	font-size: 32px;
	margin: 0 0 12px;
	letter-spacing: -0.02em;
}

.csv-cta-block p {
	color: rgba(255,255,255,.8);
	margin: 0 auto 24px;
	max-width: 540px;
}

.csv-cta-block__btn {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 28px;
	background: var(--csv-yellow);
	color: var(--csv-ink);
	border-radius: 999px;
	font-weight: 700;
	transition: background .15s;
}
.csv-cta-block__btn:hover { background: var(--csv-yellow-dark); }

/* Mapa tooltip */
.csv-map-tooltip {
	background: rgba(255,255,255,.96) !important;
	border: 1px solid var(--csv-line) !important;
	border-radius: 8px !important;
	padding: 8px 12px !important;
	font-family: var(--csv-font) !important;
	font-size: 13px !important;
	box-shadow: var(--csv-shadow) !important;
}

/* ============================================================
   AUTOCOMPLETE DE LUGARES (estilo Airbnb)
   ============================================================ */
.csv-search__field { position: relative; }

.csv-places-suggest {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	right: 0;
	min-width: 320px;
	max-width: 400px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 16px 48px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.04);
	padding: 8px;
	display: none;
	z-index: 200;
	max-height: 380px;
	overflow-y: auto;
}

.csv-places-suggest.is-open { display: block; }

body.casave-page button.csv-places-suggest__item,
.csv-places-suggest__item {
	width: 100%;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px;
	border-radius: 10px;
	background: none;
	border: none;
	text-align: left;
	cursor: pointer;
	font-family: inherit;
	transition: background .12s;
}

body.casave-page button.csv-places-suggest__item:hover,
.csv-places-suggest__item:hover {
	background: var(--csv-bg-dim);
}

.csv-places-suggest__icon {
	width: 38px; height: 38px;
	border-radius: 10px;
	background: var(--csv-yellow-light);
	color: var(--csv-yellow-dark);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.csv-places-suggest__icon svg { width: 18px; height: 18px; }

.csv-places-suggest__text {
	display: flex;
	flex-direction: column;
	gap: 2px;
	overflow: hidden;
}
.csv-places-suggest__text strong {
	font-size: 14px;
	font-weight: 600;
	color: var(--csv-ink);
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.csv-places-suggest__text small {
	font-size: 12px;
	color: var(--csv-muted);
}

/* Vértices al dibujar zona */
.csv-draw-vertex {
	width: 12px !important;
	height: 12px !important;
	background: #fff;
	border: 2px solid var(--csv-yellow-dark);
	border-radius: 50%;
	box-shadow: 0 2px 4px rgba(0,0,0,.2);
	margin-left: -6px !important;
	margin-top: -6px !important;
}

/* Ocultar la toolbar default de Leaflet.draw — usamos nuestros botones */
.leaflet-draw.leaflet-control,
.leaflet-draw-actions {
	display: none !important;
}

/* Cursor crosshair sobre el mapa cuando se dibuja */
.leaflet-container.leaflet-crosshair { cursor: crosshair !important; }

/* ============================================================
   AUTH (login, register, recover)
   ============================================================ */
.csv-auth {
	padding: 48px 0 80px;
	background: var(--csv-bg-soft);
	min-height: calc(100vh - 200px);
}

.csv-auth__panel {
	display: grid;
	grid-template-columns: 1fr 1fr;
	background: #fff;
	border-radius: var(--csv-radius-lg);
	box-shadow: var(--csv-shadow);
	overflow: hidden;
	max-width: 1080px;
	margin: 0 auto;
}

.csv-auth__panel--narrow {
	grid-template-columns: 1fr;
	max-width: 480px;
}

@media (max-width: 760px) {
	.csv-auth__panel { grid-template-columns: 1fr; }
	.csv-auth__brand { padding: 32px !important; }
}

.csv-auth__brand {
	padding: 48px;
	background: linear-gradient(135deg, var(--csv-yellow-light) 0%, #fff7ed 100%);
}

.csv-auth__brand h1 {
	font-size: 32px;
	font-weight: 800;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin: 16px 0 16px;
}

.csv-auth__brand > p {
	color: var(--csv-ink-2);
	font-size: 15px;
	margin: 0 0 24px;
}

.csv-auth__brand-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.csv-auth__brand-list li {
	display: flex;
	align-items: center;
	gap: 10px;
	font-size: 14px;
	color: var(--csv-ink-2);
}
.csv-auth__brand-list svg { color: var(--csv-yellow-dark); flex-shrink: 0; }

.csv-auth__form {
	padding: 48px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}

.csv-auth__form--full { padding: 48px; }

.csv-auth__form h2 {
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 8px;
}

.csv-auth__lead {
	font-size: 14px;
	color: var(--csv-muted);
	margin: 0 0 8px;
}

.csv-auth__sso {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 10px;
	padding: 12px;
	width: 100%;
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: 12px;
	font-weight: 600;
	font-size: 14px;
	color: var(--csv-ink);
	cursor: pointer;
	transition: background .15s, border-color .15s;
	font-family: inherit;
}
.csv-auth__sso:hover { background: var(--csv-bg-dim); border-color: var(--csv-muted-2); }

.csv-auth__divider {
	position: relative;
	text-align: center;
	font-size: 12px;
	color: var(--csv-muted);
	text-transform: uppercase;
	letter-spacing: .08em;
	margin: 8px 0;
}
.csv-auth__divider::before, .csv-auth__divider::after {
	content: '';
	position: absolute;
	top: 50%;
	width: calc(50% - 50px);
	height: 1px;
	background: var(--csv-line);
}
.csv-auth__divider::before { left: 0; }
.csv-auth__divider::after { right: 0; }

.csv-auth__field {
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.csv-auth__field > span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--csv-ink);
	text-transform: uppercase;
}
.csv-auth__field input {
	padding: 12px 14px;
	border: 1px solid var(--csv-line);
	border-radius: 10px;
	font-size: 14px;
	font-family: inherit;
	color: var(--csv-ink);
	transition: border-color .15s;
	outline: none;
	background: #fff;
}
.csv-auth__field input:focus {
	border-color: var(--csv-yellow);
	box-shadow: 0 0 0 3px rgba(245, 187, 31, 0.15);
}

.csv-auth__row {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	font-size: 13px;
}

.csv-auth__check {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: var(--csv-ink-2);
	cursor: pointer;
}
.csv-auth__check input { accent-color: var(--csv-yellow); }

.csv-auth__link {
	color: var(--csv-yellow-dark);
	text-decoration: none;
	font-weight: 600;
}
.csv-auth__link:hover { text-decoration: underline; }

body.casave-page button.csv-auth__submit,
.csv-auth__submit {
	padding: 14px;
	background: var(--csv-yellow);
	color: var(--csv-ink);
	border: none;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	cursor: pointer;
	font-family: inherit;
	transition: background .15s, transform .15s;
}
body.casave-page button.csv-auth__submit:hover,
.csv-auth__submit:hover {
	background: var(--csv-yellow-dark);
	transform: translateY(-1px);
}

.csv-auth__switch {
	text-align: center;
	font-size: 14px;
	color: var(--csv-muted);
	margin: 8px 0 0;
}
.csv-auth__switch a {
	color: var(--csv-yellow-dark);
	font-weight: 700;
}
.csv-auth__switch a:hover { text-decoration: underline; }

.csv-auth__roles {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-bottom: 4px;
}

.csv-auth__role {
	display: flex;
	align-items: flex-start;
	gap: 10px;
	padding: 14px 16px;
	border: 1.5px solid var(--csv-line);
	border-radius: 12px;
	cursor: pointer;
	transition: border-color .15s, background .15s;
}
.csv-auth__role:hover { border-color: var(--csv-muted-2); }
.csv-auth__role input { margin-top: 3px; accent-color: var(--csv-yellow); }
.csv-auth__role:has(input:checked) { border-color: var(--csv-yellow); background: var(--csv-yellow-light); }
.csv-auth__role > span { display: flex; flex-direction: column; gap: 2px; }
.csv-auth__role strong { font-size: 14px; color: var(--csv-ink); }
.csv-auth__role small { font-size: 12px; color: var(--csv-muted); }

/* ============================================================
   DASHBOARD
   ============================================================ */
.csv-dashboard {
	padding: 32px 0 64px;
	background: var(--csv-bg-soft);
	min-height: calc(100vh - 200px);
}

.csv-dashboard__layout {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 24px;
}
@media (max-width: 900px) { .csv-dashboard__layout { grid-template-columns: 1fr; } }

.csv-dashboard__sidebar {
	background: #fff;
	border-radius: var(--csv-radius);
	padding: 20px;
	height: fit-content;
	position: sticky;
	top: 90px;
}

.csv-dashboard__user {
	display: flex;
	align-items: center;
	gap: 12px;
	padding-bottom: 18px;
	margin-bottom: 18px;
	border-bottom: 1px solid var(--csv-line);
}
.csv-dashboard__avatar {
	width: 44px; height: 44px;
	background: var(--csv-yellow);
	color: var(--csv-ink);
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 18px;
}
.csv-dashboard__user strong { display:block; font-size:14px; }
.csv-dashboard__user span { font-size:12px; color: var(--csv-muted); }

.csv-dashboard__nav {
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.csv-dashboard__nav-item {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 10px 12px;
	border-radius: 10px;
	color: var(--csv-ink-2);
	font-size: 14px;
	font-weight: 500;
	transition: background .15s, color .15s;
}
.csv-dashboard__nav-item svg { width: 18px; height: 18px; flex-shrink: 0; }
.csv-dashboard__nav-item:hover { background: var(--csv-bg-dim); color: var(--csv-ink); }
.csv-dashboard__nav-item.is-active {
	background: var(--csv-yellow-light);
	color: var(--csv-yellow-dark);
	font-weight: 700;
}
.csv-dashboard__nav-item--logout { color: var(--csv-muted); margin-top: 8px; padding-top: 14px; border-top: 1px solid var(--csv-line); border-radius: 0; }

.csv-dashboard__main {
	background: #fff;
	border-radius: var(--csv-radius);
	padding: 32px;
	min-height: 480px;
}

.csv-dashboard__head {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 12px;
	margin-bottom: 24px;
	flex-wrap: wrap;
}
.csv-dashboard__head h1 {
	font-size: 24px;
	font-weight: 700;
	margin: 0 0 4px;
	letter-spacing: -0.01em;
}
.csv-dashboard__sub {
	color: var(--csv-muted);
	margin: 0;
	font-size: 14px;
}

body.casave-page a.csv-dashboard__cta,
body.casave-page button.csv-dashboard__cta,
.csv-dashboard__cta {
	display: inline-flex;
	align-items: center;
	padding: 10px 20px;
	background: var(--csv-yellow);
	color: var(--csv-ink) !important;
	border-radius: 999px;
	font-weight: 700;
	font-size: 14px;
	cursor: pointer;
	border: none;
	font-family: inherit;
	text-decoration: none;
	transition: background .15s;
}
body.casave-page a.csv-dashboard__cta:hover,
.csv-dashboard__cta:hover { background: var(--csv-yellow-dark); }

.csv-dashboard__stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-bottom: 24px;
}
@media (max-width: 720px) { .csv-dashboard__stats { grid-template-columns: repeat(2, 1fr); } }

.csv-dashboard__stats > div {
	padding: 16px;
	background: var(--csv-bg-soft);
	border-radius: var(--csv-radius);
}
.csv-dashboard__stats strong {
	display: block;
	font-size: 26px;
	font-weight: 800;
	color: var(--csv-ink);
	letter-spacing: -0.02em;
}
.csv-dashboard__stats span {
	font-size: 12px;
	color: var(--csv-muted);
}

.csv-dashboard__empty {
	border: 2px dashed var(--csv-line);
	border-radius: var(--csv-radius);
	padding: 48px 32px;
	text-align: center;
	margin-top: 16px;
}
.csv-dashboard__empty svg { color: var(--csv-muted-2); margin-bottom: 12px; }
.csv-dashboard__empty h3 { font-size: 18px; margin: 0 0 6px; }
.csv-dashboard__empty p { color: var(--csv-muted); margin: 0 0 20px; }

.csv-dashboard__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
}
@media (max-width: 760px) { .csv-dashboard__grid { grid-template-columns: 1fr; } }

.csv-dashboard__shortcut {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 18px;
	background: var(--csv-bg-soft);
	border-radius: var(--csv-radius);
	color: var(--csv-ink);
	transition: background .15s;
}
.csv-dashboard__shortcut:hover { background: var(--csv-yellow-light); }
.csv-dashboard__shortcut svg { color: var(--csv-yellow-dark); flex-shrink: 0; }
.csv-dashboard__shortcut strong { display: block; font-size: 14px; }
.csv-dashboard__shortcut span { font-size: 12px; color: var(--csv-muted); }

.csv-dashboard__chart-placeholder {
	background: var(--csv-bg-soft);
	border-radius: var(--csv-radius);
	padding: 64px;
	text-align: center;
	color: var(--csv-muted);
}

.csv-dashboard__form {
	display: grid;
	gap: 16px;
	max-width: 480px;
}
.csv-dashboard__form label { display: flex; flex-direction: column; gap: 6px; }
.csv-dashboard__form label > span {
	font-size: 12px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--csv-ink);
	text-transform: uppercase;
}
.csv-dashboard__form input {
	padding: 12px 14px;
	border: 1px solid var(--csv-line);
	border-radius: 10px;
	font-size: 14px;
	font-family: inherit;
	outline: none;
	transition: border-color .15s;
}
.csv-dashboard__form input:focus {
	border-color: var(--csv-yellow);
	box-shadow: 0 0 0 3px rgba(245, 187, 31, 0.15);
}

/* ============================================================
   DIRECTORIO DE AGENCIAS
   ============================================================ */
.csv-agencies {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 16px;
	max-width: 1080px;
	margin: 0 auto;
}
@media (max-width: 760px) { .csv-agencies { grid-template-columns: 1fr; } }

.csv-agency {
	display: flex;
	gap: 16px;
	padding: 20px;
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: var(--csv-radius);
	transition: border-color .15s, transform .15s, box-shadow .15s;
	text-decoration: none;
	color: inherit;
}
.csv-agency:hover {
	border-color: var(--csv-yellow);
	transform: translateY(-2px);
	box-shadow: var(--csv-shadow);
}

.csv-agency__logo {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: var(--csv-yellow);
	color: var(--csv-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 20px;
	flex-shrink: 0;
}

.csv-agency__body { flex: 1; min-width: 0; }
.csv-agency__head { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; margin-bottom: 4px; }
.csv-agency__head h3 { font-size: 16px; font-weight: 700; margin: 0; }
.csv-agency__badge {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	background: var(--csv-yellow-light);
	color: var(--csv-yellow-dark);
	padding: 3px 8px;
	border-radius: 999px;
}
.csv-agency__meta {
	font-size: 13px;
	color: var(--csv-muted);
	margin: 0 0 6px;
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.csv-agency__rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
	font-size: 13px;
	color: var(--csv-ink);
}
.csv-agency__rating svg { color: var(--csv-ink); }
.csv-agency__rating span { color: var(--csv-muted); margin-left: 4px; }

/* ============================================================
   SINGLE LISTING ESTILO AIRBNB (reescritura completa)
   ============================================================ */
.csv-listing { padding: 24px 0 80px; }

.csv-listing__header {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 24px;
	margin-bottom: 16px;
	flex-wrap: wrap;
}
.csv-listing__title {
	font-size: 28px;
	font-weight: 700;
	margin: 0 0 6px;
	letter-spacing: -0.01em;
	line-height: 1.15;
}
.csv-listing__sub {
	font-size: 14px;
	color: var(--csv-ink-2);
	margin: 0;
}
.csv-listing__sub a { text-decoration: underline; }
.csv-listing__rating {
	display: inline-flex;
	align-items: center;
	gap: 4px;
}
.csv-listing__actions { display: flex; gap: 4px; }
body.casave-page button.csv-listing__action,
.csv-listing__action {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 14px;
	background: none;
	border: none;
	border-radius: 8px;
	font-size: 14px;
	font-weight: 600;
	color: var(--csv-ink);
	cursor: pointer;
	text-decoration: underline;
	font-family: inherit;
}
.csv-listing__action:hover { background: var(--csv-bg-dim); }

/* Galería */
.csv-listing__gallery {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 8px;
	border-radius: var(--csv-radius-lg);
	overflow: hidden;
	height: 480px;
	margin-bottom: 32px;
}
.csv-listing__gallery-main { position: relative; height: 100%; background: var(--csv-bg-dim); }
.csv-listing__gallery-main img { width: 100%; height: 100%; object-fit: cover; }
.csv-listing__badge {
	position: absolute; top: 16px; left: 16px;
	background: #fff; padding: 8px 14px; border-radius: 999px;
	font-size: 13px; font-weight: 600;
	box-shadow: var(--csv-shadow-sm);
}
.csv-listing__gallery-grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	grid-template-rows: 1fr 1fr;
	gap: 8px;
	height: 100%;
}
.csv-listing__gallery-thumb { background: var(--csv-bg-dim); overflow: hidden; position: relative; }
.csv-listing__gallery-thumb img { width: 100%; height: 100%; object-fit: cover; }
body.casave-page button.csv-listing__more-photos,
.csv-listing__more-photos {
	position: absolute;
	bottom: 14px; right: 14px;
	background: #fff;
	color: var(--csv-ink);
	border: 1px solid var(--csv-ink);
	padding: 8px 14px;
	border-radius: 10px;
	font-size: 13px;
	font-weight: 600;
	display: inline-flex;
	align-items: center;
	gap: 6px;
	cursor: pointer;
	font-family: inherit;
}
@media (max-width: 760px) {
	.csv-listing__gallery { grid-template-columns: 1fr; height: auto; }
	.csv-listing__gallery-main { height: 280px; }
	.csv-listing__gallery-grid { grid-template-columns: 1fr 1fr; height: 180px; }
	.csv-listing__gallery-thumb:nth-child(n+3) { display: none; }
}

/* Body 2 cols */
.csv-listing__body {
	display: grid;
	grid-template-columns: 1.6fr 1fr;
	gap: 64px;
	align-items: flex-start;
}
@media (max-width: 900px) {
	.csv-listing__body { grid-template-columns: 1fr; gap: 32px; }
}

.csv-listing__section {
	padding-bottom: 32px;
	margin-bottom: 32px;
	border-bottom: 1px solid var(--csv-line);
}
.csv-listing__section:last-child { border-bottom: none; }
.csv-listing__section h2 {
	font-size: 22px;
	font-weight: 700;
	margin: 0 0 12px;
	letter-spacing: -0.01em;
}

.csv-listing__specs-row {
	font-size: 15px;
	color: var(--csv-ink-2);
	margin: 0 0 4px;
}
.csv-listing__rating-row {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	margin: 4px 0 0;
}
.csv-listing__rating-row svg { color: var(--csv-ink); }

/* Anfitrión */
.csv-listing__host {
	display: flex;
	align-items: center;
	gap: 16px;
}
.csv-listing__host-avatar {
	width: 54px; height: 54px;
	border-radius: 999px;
	background: var(--csv-yellow);
	color: var(--csv-ink);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 800;
	font-size: 22px;
	position: relative;
	flex-shrink: 0;
}
.csv-listing__super-badge {
	position: absolute;
	bottom: -2px; right: -2px;
	width: 22px; height: 22px;
	border-radius: 999px;
	background: var(--csv-red);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	border: 2px solid #fff;
}
.csv-listing__host strong { display: block; font-size: 15px; }
.csv-listing__host span { font-size: 13px; color: var(--csv-muted); }

/* Highlights */
.csv-listing__highlights {
	display: flex;
	flex-direction: column;
	gap: 20px;
}
.csv-listing__highlight {
	display: flex;
	gap: 16px;
	align-items: flex-start;
}
.csv-listing__highlight svg { color: var(--csv-ink); flex-shrink: 0; margin-top: 2px; }
.csv-listing__highlight strong { display: block; font-size: 15px; }
.csv-listing__highlight span { font-size: 14px; color: var(--csv-muted); line-height: 1.5; }

.csv-listing__description { color: var(--csv-ink-2); line-height: 1.65; font-size: 15px; }

/* Amenidades grid */
.csv-listing__amenities {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
	margin-bottom: 20px;
}
@media (max-width: 600px) { .csv-listing__amenities { grid-template-columns: 1fr; } }
.csv-listing__amenity {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 6px 0;
	font-size: 14px;
}
.csv-listing__amenity svg { color: var(--csv-ink); flex-shrink: 0; }

body.casave-page button.csv-listing__more-btn,
.csv-listing__more-btn {
	padding: 12px 20px;
	border: 1px solid var(--csv-ink);
	background: #fff;
	border-radius: 10px;
	font-size: 14px;
	font-weight: 700;
	color: var(--csv-ink);
	cursor: pointer;
	font-family: inherit;
	transition: background .15s;
}
.csv-listing__more-btn:hover { background: var(--csv-bg-dim); }

/* Calendario */
.csv-listing__cal-dates { font-size: 13px; color: var(--csv-muted); margin: 0 0 16px; }

.csv-cal {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
}
@media (max-width: 600px) { .csv-cal { grid-template-columns: 1fr; } }

.csv-cal__head {
	display: grid;
	grid-template-columns: 32px 1fr 32px;
	align-items: center;
	margin-bottom: 16px;
}
.csv-cal__title { text-align: center; font-weight: 600; font-size: 15px; text-transform: capitalize; }
body.casave-page button.csv-cal__nav,
.csv-cal__nav {
	width: 32px; height: 32px;
	border-radius: 999px;
	border: 1px solid var(--csv-line);
	background: #fff;
	cursor: pointer;
	font-size: 16px;
	font-family: inherit;
}
.csv-cal__grid {
	display: grid;
	grid-template-columns: repeat(7, 1fr);
	gap: 2px;
	text-align: center;
	font-size: 13px;
}
.csv-cal__dow { font-weight: 600; color: var(--csv-muted); padding: 6px 0; }
.csv-cal__day {
	padding: 8px 0;
	border-radius: 999px;
	cursor: pointer;
	transition: background .15s;
}
.csv-cal__day:hover { background: var(--csv-bg-dim); }
.csv-cal__day.is-past { color: var(--csv-muted-2); text-decoration: line-through; cursor: default; }
.csv-cal__day.is-past:hover { background: none; }
.csv-cal__day.is-selected { background: var(--csv-ink); color: #fff; font-weight: 700; }

/* Reseñas */
.csv-listing__reviews {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px 48px;
	margin-bottom: 20px;
}
@media (max-width: 700px) { .csv-listing__reviews { grid-template-columns: 1fr; } }
.csv-listing__review-head { display: flex; gap: 12px; align-items: center; margin-bottom: 10px; }
.csv-listing__review-avatar {
	width: 40px; height: 40px;
	border-radius: 999px;
	background: var(--csv-bg-dim);
	color: var(--csv-ink);
	display: inline-flex; align-items: center; justify-content: center;
	font-weight: 700; font-size: 16px;
}
.csv-listing__review strong { display: block; font-size: 14px; }
.csv-listing__review span { font-size: 12px; color: var(--csv-muted); }
.csv-listing__review p { color: var(--csv-ink-2); line-height: 1.55; font-size: 14px; margin: 0; }

/* Mapa del listing */
.csv-listing__map {
	height: 360px;
	border-radius: var(--csv-radius);
	overflow: hidden;
	background: var(--csv-bg-dim);
}
.csv-listing__map-sub { font-size: 13px; color: var(--csv-muted); margin: 0 0 12px; }
.csv-listing__map-note { font-size: 12px; color: var(--csv-muted); margin: 12px 0 0; }

/* Sidebar reserva sticky */
.csv-listing__sidebar {
	position: sticky;
	top: 100px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.csv-listing__lucky {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: var(--csv-radius);
	padding: 14px 16px;
	font-size: 13px;
	color: var(--csv-ink-2);
}
.csv-listing__reserve {
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: var(--csv-radius);
	padding: 24px;
	box-shadow: var(--csv-shadow);
}
.csv-listing__reserve-price {
	display: flex;
	align-items: baseline;
	gap: 6px;
	margin-bottom: 16px;
}
.csv-listing__reserve-price strong {
	font-size: 24px;
	font-weight: 800;
	letter-spacing: -0.01em;
	text-decoration: underline;
}
.csv-listing__reserve-price span { font-size: 14px; color: var(--csv-muted); }

.csv-listing__reserve-fields {
	border: 1px solid var(--csv-ink-2);
	border-radius: 10px;
	overflow: hidden;
	margin-bottom: 16px;
}
.csv-listing__reserve-row {
	display: grid;
	grid-template-columns: 1fr 1fr;
}
.csv-listing__reserve-field {
	display: flex;
	flex-direction: column;
	padding: 10px 14px;
	gap: 2px;
	border-bottom: 1px solid var(--csv-line);
	cursor: text;
}
.csv-listing__reserve-field:nth-child(1) { border-right: 1px solid var(--csv-line); }
.csv-listing__reserve-field--full { border-bottom: none; }
.csv-listing__reserve-field > span {
	font-size: 10px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--csv-ink);
}
.csv-listing__reserve-field input,
.csv-listing__reserve-field select {
	border: none;
	background: none;
	outline: none;
	font-family: inherit;
	font-size: 14px;
	color: var(--csv-ink);
	padding: 0;
}

body.casave-page button.csv-listing__reserve-cta,
.csv-listing__reserve-cta {
	width: 100%;
	padding: 14px;
	background: var(--csv-yellow) !important;
	color: var(--csv-ink) !important;
	border: none !important;
	border-radius: 66px !important;
	font-size: 16px;
	font-weight: 700;
	cursor: pointer;
	font-family: inherit;
	transition: background .15s;
}
.csv-listing__reserve-cta:hover { background: var(--csv-yellow-dark) !important; }
.csv-listing__reserve-note { font-size: 12px; color: var(--csv-muted); text-align: center; margin: 10px 0 0; }
.csv-listing__report {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	font-size: 13px;
	color: var(--csv-muted);
	text-decoration: underline;
}

/* ============================================================
   HOME — TABS DE TIPO DE ESTANCIA (estilo Airbnb pero amarillo)
   ============================================================ */
.csv-types {
	display: flex;
	gap: 24px;
	justify-content: center;
	border-bottom: 1px solid var(--csv-line);
	padding-bottom: 16px;
	margin-top: -8px;
	margin-bottom: 32px;
	overflow-x: auto;
}
body.casave-page a.csv-type,
.csv-type {
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: 6px;
	padding: 10px 14px;
	color: var(--csv-muted);
	font-size: 12px;
	font-weight: 600;
	border-bottom: 2px solid transparent;
	transition: color .15s, border-color .15s;
	white-space: nowrap;
	text-decoration: none;
}
.csv-type:hover { color: var(--csv-ink); }
.csv-type.is-active {
	color: var(--csv-ink);
	border-bottom-color: var(--csv-ink);
}
.csv-type__icon {
	width: 28px; height: 28px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
}

/* ============================================================
   BOTTOM NAV MÓVIL (App-like)
   ============================================================ */
.csv-bottom-nav {
	display: none;
}
@media (max-width: 760px) {
	.csv-bottom-nav {
		display: flex;
		position: fixed;
		bottom: 0; left: 0; right: 0;
		z-index: 200;
		background: #fff;
		border-top: 1px solid var(--csv-line);
		padding: 6px 0 calc(6px + env(safe-area-inset-bottom));
		justify-content: space-around;
		box-shadow: 0 -2px 12px rgba(0,0,0,.04);
	}
	body.casave-page { padding-bottom: 70px; }
	.csv-bottom-nav__item {
		flex: 1;
		display: flex;
		flex-direction: column;
		align-items: center;
		gap: 2px;
		padding: 6px 4px;
		font-size: 10px;
		font-weight: 600;
		color: var(--csv-muted);
		text-decoration: none;
	}
	.csv-bottom-nav__item.is-active { color: var(--csv-yellow-dark); }
	.csv-bottom-nav__item svg { width: 22px; height: 22px; }
}

/* ============================================================
   SKELETON LOADING
   ============================================================ */
@keyframes csv-shimmer {
	0% { background-position: -200% 0; }
	100% { background-position: 200% 0; }
}
.csv-skel {
	background: linear-gradient(90deg, var(--csv-bg-dim) 0%, #ececec 50%, var(--csv-bg-dim) 100%);
	background-size: 200% 100%;
	animation: csv-shimmer 1.4s linear infinite;
	border-radius: 8px;
	display: inline-block;
}
.csv-skel-card {
	border-radius: var(--csv-radius);
	overflow: hidden;
}
.csv-skel-card__img {
	aspect-ratio: 1.1;
	background: linear-gradient(90deg, var(--csv-bg-dim) 0%, #ececec 50%, var(--csv-bg-dim) 100%);
	background-size: 200% 100%;
	animation: csv-shimmer 1.4s linear infinite;
	border-radius: var(--csv-radius);
}
.csv-skel-card__line {
	height: 12px;
	background: linear-gradient(90deg, var(--csv-bg-dim) 0%, #ececec 50%, var(--csv-bg-dim) 100%);
	background-size: 200% 100%;
	animation: csv-shimmer 1.4s linear infinite;
	border-radius: 4px;
	margin-top: 10px;
}
.csv-skel-card__line--short { width: 60%; }

.csv-grid--loading { display: grid; }

/* ============================================================
   DROPDOWN CUSTOM (Tipo / Precio)
   ============================================================ */
.csv-cdrop { position: relative; }
.csv-cdrop__trigger {
	width: 100%;
	background: transparent;
	border: none;
	font-family: inherit;
	font-size: 14px;
	color: var(--csv-ink);
	padding: 0;
	display: inline-flex;
	align-items: center;
	justify-content: space-between;
	gap: 6px;
	cursor: pointer;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.csv-cdrop__trigger svg { width: 14px; height: 14px; flex-shrink: 0; color: var(--csv-muted); transition: transform .2s; }
.csv-cdrop.is-open .csv-cdrop__trigger svg { transform: rotate(180deg); }
.csv-cdrop__panel {
	position: absolute;
	top: calc(100% + 8px);
	left: 0;
	min-width: 280px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 16px 48px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.04);
	padding: 12px;
	display: none;
	z-index: 250;
	max-height: 380px;
	overflow-y: auto;
}
.csv-cdrop.is-open .csv-cdrop__panel { display: block; }
body.casave-page button.csv-cdrop__option,
.csv-cdrop__option {
	display: block;
	width: 100%;
	text-align: left;
	padding: 10px 12px;
	border-radius: 8px;
	background: none;
	border: none;
	font-family: inherit;
	font-size: 14px;
	color: var(--csv-ink);
	cursor: pointer;
}
.csv-cdrop__option:hover { background: var(--csv-bg-dim); }
.csv-cdrop__option.is-selected { background: var(--csv-yellow-light); color: var(--csv-yellow-dark); font-weight: 700; }

/* Slider precio */
.csv-pricedrop { padding: 16px 8px; min-width: 320px; }
.csv-pricedrop__label {
	font-size: 12px; font-weight: 700; letter-spacing: .04em;
	text-transform: uppercase; color: var(--csv-muted);
	margin: 0 0 8px;
}
.csv-pricedrop__value {
	font-size: 18px; font-weight: 800; margin: 0 0 12px; color: var(--csv-ink);
}
.csv-pricedrop input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 4px;
	background: var(--csv-line);
	border-radius: 999px;
	outline: none;
}
.csv-pricedrop input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 22px; height: 22px;
	border-radius: 999px;
	background: var(--csv-yellow);
	border: 2px solid #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,.2);
	cursor: pointer;
}
.csv-pricedrop input[type="range"]::-moz-range-thumb {
	width: 22px; height: 22px;
	border-radius: 999px;
	background: var(--csv-yellow);
	border: 2px solid #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,.2);
	cursor: pointer;
}
.csv-pricedrop__ticks {
	display: flex; justify-content: space-between;
	font-size: 11px; color: var(--csv-muted);
	margin-top: 6px;
}

/* ============================================================
   GLOBITO HEADER (selector idioma/región estético)
   ============================================================ */
.csv-locale { position: relative; }
body.casave-page button.csv-locale__btn,
.csv-locale__btn {
	width: 38px; height: 38px;
	border-radius: 999px;
	background: transparent;
	border: 1px solid transparent;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	transition: background .15s, border-color .15s;
	font-family: inherit;
}
.csv-locale__btn:hover { background: var(--csv-bg-dim); border-color: var(--csv-line); }
.csv-locale__btn svg { width: 18px; height: 18px; color: var(--csv-ink); }
.csv-locale__panel {
	position: absolute;
	top: calc(100% + 8px); right: 0;
	min-width: 260px;
	background: #fff;
	border-radius: 14px;
	box-shadow: 0 16px 48px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.04);
	padding: 14px;
	display: none;
	z-index: 300;
}
.csv-locale.is-open .csv-locale__panel { display: block; }
.csv-locale__title { font-size: 12px; font-weight: 700; color: var(--csv-muted); text-transform: uppercase; letter-spacing: .04em; margin: 0 0 8px; padding: 0 8px; }
.csv-locale__opt {
	display: flex; align-items: center; gap: 10px;
	padding: 10px 8px; border-radius: 8px; font-size: 14px;
	color: var(--csv-ink);
	cursor: pointer;
}
.csv-locale__opt:hover { background: var(--csv-bg-dim); }
.csv-locale__opt.is-selected { background: var(--csv-yellow-light); font-weight: 700; }
.csv-locale__flag { font-size: 18px; }

/* ============================================================
   LOGIN/REGISTER — STYLE AIRBNB
   ============================================================ */
.csv-auth__brand h1 { font-weight: 800; }
@media (max-width: 760px) {
	.csv-auth { padding: 24px 0 100px; }
	.csv-auth__panel { box-shadow: none; background: #fff; }
	.csv-auth__brand { display: none; }
	.csv-auth__form { padding: 24px; }
}

/* ============================================================
   PÁGINAS MARKETING ENRIQUECIDAS
   ============================================================ */
.csv-rich__image {
	width: 100%;
	max-width: 1080px;
	margin: 32px auto;
	border-radius: var(--csv-radius-lg);
	overflow: hidden;
}
.csv-rich__image img { width: 100%; height: auto; display: block; }

.csv-rich__split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 48px;
	align-items: center;
	max-width: 1080px;
	margin: 48px auto;
}
@media (max-width: 800px) {
	.csv-rich__split { grid-template-columns: 1fr; gap: 24px; }
}
.csv-rich__split img { width: 100%; border-radius: var(--csv-radius-lg); }
.csv-rich__split h2 { margin-top: 0; }

.csv-team {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	margin: 32px 0;
}
@media (max-width: 800px) { .csv-team { grid-template-columns: repeat(2, 1fr); } }
.csv-team__member { text-align: center; }
.csv-team__member img {
	width: 100%;
	aspect-ratio: 1;
	object-fit: cover;
	border-radius: var(--csv-radius);
	margin-bottom: 10px;
}
.csv-team__member strong { display: block; font-size: 14px; }
.csv-team__member span { font-size: 12px; color: var(--csv-muted); }

.csv-values {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	margin: 32px 0;
}
@media (max-width: 800px) { .csv-values { grid-template-columns: 1fr; } }
.csv-value {
	text-align: left;
	padding: 24px;
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: var(--csv-radius);
}
.csv-value__icon {
	width: 48px; height: 48px;
	background: var(--csv-yellow-light);
	color: var(--csv-yellow-dark);
	border-radius: 14px;
	display: inline-flex; align-items: center; justify-content: center;
	margin-bottom: 14px;
}

/* ============================================================
   PRICING EXTENDED — comparativa, testimonios, FAQ extensa
   ============================================================ */
.csv-compare {
	max-width: 1080px;
	margin: 48px auto;
	border: 1px solid var(--csv-line);
	border-radius: var(--csv-radius-lg);
	overflow: hidden;
	background: #fff;
}
.csv-compare table { width: 100%; border-collapse: collapse; }
.csv-compare th, .csv-compare td {
	padding: 14px 18px;
	text-align: left;
	font-size: 14px;
	border-bottom: 1px solid var(--csv-line);
}
.csv-compare thead th {
	font-weight: 700; background: var(--csv-bg-soft);
	font-size: 13px;
}
.csv-compare td.is-yes { color: var(--csv-yellow-dark); font-weight: 700; }
.csv-compare td.is-no { color: var(--csv-muted); }

.csv-testimonials {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
	margin: 48px 0;
}
@media (max-width: 800px) { .csv-testimonials { grid-template-columns: 1fr; } }
.csv-testimonial {
	background: var(--csv-bg-soft);
	border-radius: var(--csv-radius);
	padding: 24px;
}
.csv-testimonial p { font-size: 14px; line-height: 1.6; color: var(--csv-ink-2); margin: 0 0 16px; }
.csv-testimonial__author { display: flex; gap: 10px; align-items: center; }
.csv-testimonial__avatar {
	width: 36px; height: 36px; border-radius: 999px;
	background: var(--csv-yellow); color: var(--csv-ink);
	display: inline-flex; align-items: center; justify-content: center;
	font-weight: 700;
}
.csv-testimonial__author strong { display: block; font-size: 13px; }
.csv-testimonial__author span { font-size: 12px; color: var(--csv-muted); }

/* ============================================================
   BUSCADOR REESTRUCTURADO v0.6 — válido HTML, popovers sin overflow:hidden
   Reemplaza el csv-search anterior (que usaba <label> + <select> nativos)
   ============================================================ */

/* La barra (form) */
.csv-search-bar {
	display: flex !important;
	align-items: stretch;
	background: #fff;
	border: 1px solid var(--csv-line);
	border-radius: 999px;
	box-shadow: var(--csv-shadow);
	padding: 6px;
	max-width: 960px;
	width: 100%;
	margin: 0 auto;
	transition: box-shadow .15s;
}
.csv-search-bar:hover { box-shadow: var(--csv-shadow-lg, var(--csv-shadow)); }

/* Cada segmento — DIV, NO BUTTON */
.csv-search__seg {
	flex: 1;
	position: relative;
	padding: 10px 22px;
	display: flex !important;
	flex-direction: column;
	align-items: flex-start;
	gap: 2px;
	border-radius: 999px;
	transition: background .15s;
	min-width: 0;
	text-align: left;
	cursor: pointer;
	font-family: inherit;
}
.csv-search__seg:hover { background: var(--csv-bg-dim, #f5f5f5); }
.csv-search__seg + .csv-search__seg { border-left: 1px solid var(--csv-line); }
.csv-search__seg.is-open { background: #fff; box-shadow: 0 0 0 1px var(--csv-line); }
.csv-search__seg:focus { outline: none; }
.csv-search__seg:focus-visible { box-shadow: 0 0 0 2px var(--csv-yellow); }

.csv-search__lbl {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	color: var(--csv-ink);
	text-transform: uppercase;
}
.csv-search__val {
	font-size: 14px;
	color: var(--csv-muted, #6b7280);
	font-weight: 500;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
	max-width: 100%;
}

/* Popover: position absolute, display:none por defecto !important */
.csv-search__popover {
	position: absolute !important;
	top: calc(100% + 10px) !important;
	left: 0 !important;
	min-width: 360px;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 16px 48px rgba(0,0,0,.18), 0 0 0 1px rgba(0,0,0,.04);
	padding: 12px;
	display: none !important;
	z-index: 200;
	max-height: 420px;
	overflow-y: auto;
	text-align: left;
	font-family: inherit;
}
.csv-search__popover--narrow { min-width: 260px; }
.csv-search__seg.is-open .csv-search__popover { display: block !important; }

.csv-search__pop-input {
	font-size: 14px;
	padding: 10px 12px;
	border: 1px solid var(--csv-line);
	border-radius: 8px;
	margin-bottom: 10px;
	width: 100%;
	font-family: inherit;
	outline: none;
	background: #fff;
	color: var(--csv-ink);
}
.csv-search__pop-input:focus { border-color: var(--csv-yellow); box-shadow: 0 0 0 3px rgba(245,187,31,.15); }

.csv-search__pop-list { display: flex; flex-direction: column; gap: 2px; }
.csv-search__pop-item {
	width: 100%;
	display: flex !important;
	align-items: center;
	gap: 12px;
	padding: 10px 12px;
	border-radius: 10px;
	text-align: left;
	cursor: pointer;
	background: none;
	border: none;
	font-family: inherit;
	color: var(--csv-ink);
}
.csv-search__pop-item:hover { background: var(--csv-bg-dim, #f5f5f5); }
.csv-search__pop-item-icon {
	width: 36px; height: 36px;
	border-radius: 10px;
	background: var(--csv-yellow-light);
	color: var(--csv-yellow-dark);
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.csv-search__pop-item-text { display: flex; flex-direction: column; gap: 2px; overflow: hidden; }
.csv-search__pop-item-text strong { font-size: 14px; font-weight: 600; color: var(--csv-ink); }
.csv-search__pop-item-text small { font-size: 12px; color: var(--csv-muted, #6b7280); }

/* Opciones de tipo */
.csv-type-opt {
	display: block;
	width: 100%;
	text-align: left;
	padding: 10px 12px;
	border-radius: 8px;
	font-size: 14px;
	color: var(--csv-ink);
	cursor: pointer;
	transition: background .12s;
	font-family: inherit;
}
.csv-type-opt:hover { background: var(--csv-bg-dim, #f5f5f5); }
.csv-type-opt.is-selected {
	background: var(--csv-yellow-light);
	color: var(--csv-yellow-dark);
	font-weight: 700;
}

/* Habitaciones pills */
.csv-rooms-drop { padding: 4px; min-width: 320px; }
.csv-rooms-drop__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--csv-muted, #6b7280);
	margin: 0 0 8px;
	padding: 0 4px;
}
.csv-rooms-pills { display: flex !important; flex-wrap: wrap; gap: 6px; }
.csv-room-pill {
	padding: 8px 14px;
	border-radius: 999px;
	background: #fff;
	border: 1px solid var(--csv-line);
	font-size: 13px;
	font-weight: 600;
	color: var(--csv-ink-2, #404040);
	cursor: pointer;
	transition: background .12s, border-color .12s, color .12s;
	font-family: inherit;
}
.csv-room-pill:hover { background: var(--csv-bg-dim, #f5f5f5); }
.csv-room-pill.is-selected {
	background: var(--csv-ink);
	color: #fff;
	border-color: var(--csv-ink);
}

/* Precio slider */
.csv-price-drop { padding: 8px; min-width: 340px; }
.csv-price-drop__label {
	font-size: 11px;
	font-weight: 700;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: var(--csv-muted, #6b7280);
	margin: 0 0 8px;
}
.csv-price-drop__value {
	font-size: 20px;
	font-weight: 800;
	margin: 0 0 14px;
	color: var(--csv-ink);
}
.csv-price-drop input[type="range"] {
	-webkit-appearance: none;
	appearance: none;
	width: 100%;
	height: 4px;
	background: var(--csv-line);
	border-radius: 999px;
	outline: none;
}
.csv-price-drop input[type="range"]::-webkit-slider-thumb {
	-webkit-appearance: none;
	appearance: none;
	width: 22px; height: 22px;
	border-radius: 999px;
	background: var(--csv-yellow);
	border: 2px solid #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,.2);
	cursor: pointer;
}
.csv-price-drop input[type="range"]::-moz-range-thumb {
	width: 22px; height: 22px;
	border-radius: 999px;
	background: var(--csv-yellow);
	border: 2px solid #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,.2);
	cursor: pointer;
}
.csv-price-drop__ticks {
	display: flex !important;
	justify-content: space-between;
	font-size: 11px;
	color: var(--csv-muted, #6b7280);
	margin-top: 8px;
}

/* Botón Buscar — sobreescribe el del tema con triple !important */
body .csv-search__submit,
body.casave-page .csv-search__submit,
form.csv-search-bar button.csv-search__submit {
	height: 52px !important;
	min-width: 116px !important;
	padding: 0 22px !important;
	border-radius: 66px !important;
	background: var(--csv-yellow) !important;
	background-color: var(--csv-yellow) !important;
	background-image: none !important;
	color: var(--csv-ink) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	align-self: center !important;
	margin-left: 6px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	border: none !important;
	box-shadow: none !important;
	text-shadow: none !important;
	text-transform: none !important;
	letter-spacing: 0 !important;
	cursor: pointer !important;
	transition: background .15s, transform .15s !important;
	flex-shrink: 0 !important;
}
.csv-search__submit:hover {
	background: var(--csv-yellow-dark) !important;
	background-color: var(--csv-yellow-dark) !important;
	transform: translateY(-1px);
}
.csv-search__submit svg { width: 16px !important; height: 16px !important; stroke: currentColor !important; }
.csv-search__submit span { color: var(--csv-ink) !important; }

/* Responsive: en móvil colapsa el buscador a una pill simple */
@media (max-width: 760px) {
	.csv-search-bar { flex-direction: column; border-radius: 16px; }
	.csv-search__seg + .csv-search__seg { border-left: none; border-top: 1px solid var(--csv-line); }
	.csv-search__seg { border-radius: 0; }
	.csv-search__popover { min-width: 100% !important; left: 0 !important; right: 0 !important; }
	.csv-search__submit { width: 100% !important; margin: 8px 0 0 !important; }
}

/* ============================================================
   BANDEJA DE CATEGORÍAS (scroll horizontal estilo Airbnb)
   ============================================================ */
.csv-cat-shell {
	border-bottom: 1px solid var(--csv-line);
	background: #fff;
	position: relative;
	z-index: 5;
}
.csv-cat-row {
	max-width: 1760px;
	margin: 0 auto;
	padding: 8px 32px;
	display: flex !important;
	align-items: center;
	gap: 16px;
}
.csv-cat-scroll {
	display: flex !important;
	gap: 4px;
	overflow-x: auto;
	flex: 1;
	-ms-overflow-style: none;
	scrollbar-width: none;
}
.csv-cat-scroll::-webkit-scrollbar { display: none; }

body.casave-page button.csv-cat,
.csv-cat {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 4px;
	padding: 10px 14px;
	background: none;
	border: none;
	border-bottom: 2px solid transparent;
	color: var(--csv-muted, #6b7280);
	font-size: 12px;
	font-weight: 600;
	white-space: nowrap;
	cursor: pointer;
	flex-shrink: 0;
	transition: color .15s, border-color .15s;
	font-family: inherit;
}
.csv-cat:hover { color: var(--csv-ink); }
.csv-cat.is-active {
	color: var(--csv-ink);
	border-bottom-color: var(--csv-ink);
}
.csv-cat svg {
	width: 24px; height: 24px;
	stroke: currentColor;
	stroke-width: 1.5;
	fill: none;
}
.csv-cat__label { font-size: 12px; font-weight: 600; }

body.casave-page button.csv-toggle-pill,
.csv-toggle-pill,
body.casave-page button.csv-filter-btn,
.csv-filter-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px;
	padding: 8px 14px !important;
	border: 1px solid var(--csv-line) !important;
	border-radius: 12px !important;
	font-size: 13px !important;
	font-weight: 600;
	background: #fff !important;
	flex-shrink: 0;
	cursor: pointer;
	font-family: inherit;
	color: var(--csv-ink) !important;
}
.csv-toggle-pill:hover, .csv-filter-btn:hover { border-color: var(--csv-ink) !important; }
.csv-toggle-switch {
	width: 30px; height: 18px;
	background: var(--csv-line);
	border-radius: 999px;
	position: relative;
	transition: background .15s;
}
.csv-toggle-switch::before {
	content: '';
	position: absolute;
	left: 2px; top: 2px;
	width: 14px; height: 14px;
	background: #fff;
	border-radius: 999px;
	transition: transform .15s;
}
.csv-toggle-pill.is-on .csv-toggle-switch { background: var(--csv-ink); }
.csv-toggle-pill.is-on .csv-toggle-switch::before { transform: translateX(12px); }

@media (max-width: 760px) {
	.csv-toggle-pill, .csv-filter-btn { display: none !important; }
}

/* ============================================================
   SKELETON AUTOMÁTICO en grids con .is-loading
   Mientras tiene .is-loading, las cards se ven como placeholders.
   JS quita la clase tras 2.5s.
   ============================================================ */
@keyframes csv-skel-shimmer {
	0% { background-position: -200% 0; }
	100% { background-position: 200% 0; }
}

/* Imagen pasa a ser pulso shimmer */
.csv-grid.is-loading .csv-card__image,
.csv-section .csv-carousel.is-loading .csv-card__image {
	background: linear-gradient(90deg, #e5e7eb 0%, #d4d4d8 40%, #d4d4d8 60%, #e5e7eb 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-skel-shimmer 1.6s linear infinite !important;
}
.csv-grid.is-loading .csv-card__image img,
.csv-grid.is-loading .csv-card__badge,
.csv-grid.is-loading .csv-card__heart {
	opacity: 0 !important;
	transition: opacity .35s ease;
}

/* Líneas de texto skeleton */
.csv-grid.is-loading .csv-card__title,
.csv-grid.is-loading .csv-card__location,
.csv-grid.is-loading .csv-card__specs,
.csv-grid.is-loading .csv-card__price {
	color: transparent !important;
	background: linear-gradient(90deg, #e5e7eb 0%, #d4d4d8 40%, #d4d4d8 60%, #e5e7eb 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-skel-shimmer 1.6s linear infinite !important;
	border-radius: 6px !important;
	display: inline-block !important;
	max-width: 80%;
	height: 12px;
	margin-bottom: 6px;
}
.csv-grid.is-loading .csv-card__title { width: 60%; height: 14px; }
.csv-grid.is-loading .csv-card__location { width: 70%; }
.csv-grid.is-loading .csv-card__specs { width: 85%; }
.csv-grid.is-loading .csv-card__price { width: 40%; height: 14px; }
.csv-grid.is-loading .csv-card__rating { display: none !important; }
.csv-grid.is-loading .csv-card * { pointer-events: none !important; }

/* Al terminar, fade-in suave */
.csv-grid .csv-card__image img { transition: opacity .4s ease; }

/* ============================================================
   z-INDEX FIX — popovers del buscador siempre por encima
   ============================================================ */
.csv-search-bar { position: relative; z-index: 100; }
.csv-search__seg { z-index: 1; }
.csv-search__seg.is-open { z-index: 300; }
.csv-search__popover { z-index: 350 !important; }
/* El hero/cat-row no deben tapar los popovers cuando se abren */
.csv-hero { position: relative; z-index: 1; }
.csv-cat-shell { position: relative; z-index: 2; }
.csv-section { position: relative; z-index: 1; }

/* ============================================================
   LUNNA AI — Tarjeta y resultado del análisis
   ============================================================ */
.csv-lunnar-section { border-bottom: 1px solid var(--csv-line); padding-bottom: 32px; margin-bottom: 32px; }

.csv-lunnar-card {
	position: relative;
	background: linear-gradient(135deg, #faf5ff 0%, #fdf2f8 50%, #fef3c7 100%);
	border: 1px solid #e9d5ff;
	border-radius: 18px;
	padding: 20px;
	overflow: hidden;
}
.csv-lunnar-card::before {
	content: ''; position: absolute; top: -40px; right: -40px;
	width: 200px; height: 200px;
	background: radial-gradient(circle, rgba(168,85,247,.15) 0%, transparent 70%);
	pointer-events: none;
}
.csv-lunnar-card__intro {
	display: flex !important;
	align-items: center;
	gap: 16px;
	position: relative;
	z-index: 1;
}
.csv-lunnar-card__icon {
	width: 48px; height: 48px;
	border-radius: 12px;
	background: rgba(255,255,255,.7);
	backdrop-filter: blur(4px);
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 2px 8px rgba(168,85,247,.15);
}
.csv-lunnar-card__intro-text { flex: 1; display: flex; flex-direction: column; gap: 2px; }
.csv-lunnar-card__intro-text strong { font-size: 16px; font-weight: 700; color: var(--csv-ink); }
.csv-lunnar-card__intro-text span { font-size: 13px; color: var(--csv-ink-2, #404040); }

.csv-lunnar-card__btn {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 12px 20px !important;
	background: linear-gradient(135deg, #a855f7, #ec4899) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 999px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	cursor: pointer;
	transition: transform .15s, box-shadow .15s;
	box-shadow: 0 4px 12px rgba(168,85,247,.25);
	flex-shrink: 0;
	font-family: inherit;
}
.csv-lunnar-card__btn:hover { transform: translateY(-1px); box-shadow: 0 6px 16px rgba(168,85,247,.4); }
.csv-lunnar-card__btn[disabled] { opacity: .6; cursor: wait; }

.csv-lunnar-result { margin-top: 20px; position: relative; z-index: 1; }
.csv-lunnar-result[hidden] { display: none !important; }

/* Loading state — skeleton específico de Lunnar */
.csv-lunnar-skel {
	display: flex; flex-direction: column; gap: 16px;
	padding: 8px 0;
}
.csv-lunnar-skel__line {
	background: linear-gradient(90deg, rgba(168,85,247,.1) 0%, rgba(236,72,153,.15) 50%, rgba(168,85,247,.1) 100%);
	background-size: 200% 100%;
	animation: csv-skel-shimmer 1.4s ease-in-out infinite;
	height: 14px; border-radius: 6px;
}
.csv-lunnar-skel__line:nth-child(1) { width: 70%; }
.csv-lunnar-skel__line:nth-child(2) { width: 90%; }
.csv-lunnar-skel__line:nth-child(3) { width: 60%; }
.csv-lunnar-skel__line:nth-child(4) { width: 80%; }
.csv-lunnar-skel__loading-text {
	display: flex; align-items: center; gap: 8px;
	font-size: 13px; color: #7c3aed; font-weight: 600;
	margin-bottom: 4px;
}
.csv-lunnar-skel__loading-text::before {
	content: '✦';
	animation: csv-lunnar-pulse 1.2s ease-in-out infinite;
}
@keyframes csv-lunnar-pulse {
	0%, 100% { opacity: 0.4; transform: scale(0.9); }
	50% { opacity: 1; transform: scale(1.1); }
}

/* Contenido del análisis */
.csv-lunnar-content { display: grid; gap: 16px; animation: csv-lunnar-fadein .5s ease-out; }
@keyframes csv-lunnar-fadein { from { opacity: 0; transform: translateY(8px); } to { opacity: 1; transform: translateY(0); } }

.csv-lunnar-headline {
	font-size: 18px; font-weight: 700;
	color: var(--csv-ink);
	margin: 0;
	line-height: 1.3;
}
.csv-lunnar-summary {
	font-size: 14px; line-height: 1.6;
	color: var(--csv-ink-2, #404040);
	margin: 0;
}

.csv-lunnar-grid {
	display: grid;
	grid-template-columns: 1.4fr 1fr;
	gap: 16px;
}
@media (max-width: 700px) { .csv-lunnar-grid { grid-template-columns: 1fr; } }

.csv-lunnar-box {
	background: rgba(255,255,255,.7);
	border: 1px solid rgba(168,85,247,.15);
	border-radius: 12px;
	padding: 16px;
}
.csv-lunnar-box h4 {
	margin: 0 0 8px;
	font-size: 13px;
	font-weight: 700;
	color: #7c3aed;
	letter-spacing: .02em;
	display: flex; align-items: center; gap: 6px;
}
.csv-lunnar-box h4::before {
	content: '';
	width: 6px; height: 6px;
	background: #a855f7;
	border-radius: 999px;
}
.csv-lunnar-box p { margin: 0 0 10px; font-size: 14px; color: var(--csv-ink-2, #404040); line-height: 1.5; }
.csv-lunnar-box ul { list-style: none; padding: 0; margin: 0; display: flex; flex-direction: column; gap: 8px; }
.csv-lunnar-box li {
	font-size: 14px;
	color: var(--csv-ink-2, #404040);
	display: flex;
	gap: 8px;
	align-items: flex-start;
	line-height: 1.4;
}
.csv-lunnar-box li::before {
	content: '→';
	color: #a855f7;
	font-weight: 700;
	flex-shrink: 0;
}

.csv-lunnar-match {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px;
	background: rgba(255,255,255,.7);
	border: 1px solid rgba(168,85,247,.15);
	border-radius: 12px;
}
.csv-lunnar-match__score {
	position: relative;
	width: 56px; height: 56px;
	border-radius: 999px;
	background: conic-gradient(#a855f7 var(--score, 0%), #e9d5ff 0);
	display: flex; align-items: center; justify-content: center;
	flex-shrink: 0;
}
.csv-lunnar-match__score::after {
	content: '';
	position: absolute; inset: 4px;
	background: #fff;
	border-radius: 999px;
}
.csv-lunnar-match__score-num {
	position: relative;
	z-index: 1;
	font-size: 14px; font-weight: 800;
	color: #7c3aed;
}
.csv-lunnar-match__text strong {
	display: block;
	font-size: 13px;
	color: #7c3aed;
	margin-bottom: 2px;
	font-weight: 700;
}
.csv-lunnar-match__text span {
	font-size: 14px;
	color: var(--csv-ink-2, #404040);
	line-height: 1.4;
}

.csv-lunnar-footer {
	margin-top: 8px;
	display: flex; align-items: center; justify-content: space-between;
	font-size: 11px; color: var(--csv-muted, #6b7280);
}
.csv-lunnar-footer__refresh {
	color: #7c3aed !important;
	text-decoration: underline;
	background: none; border: none; padding: 0;
	font-size: 11px; cursor: pointer; font-family: inherit;
}

.csv-lunnar-error {
	font-size: 12px;
	color: #b45309;
	background: #fef3c7;
	padding: 8px 12px;
	border-radius: 8px;
	margin-top: 8px;
}

@media (max-width: 600px) {
	.csv-lunnar-card__intro { flex-direction: column; align-items: flex-start; }
	.csv-lunnar-card__btn { align-self: stretch; justify-content: center; }
}

/* ============================================================
   MODAL (genérico) — galería, servicios, reserva, filtros
   ============================================================ */
.csv-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: flex !important;
	align-items: center;
	justify-content: center;
}
.csv-modal[hidden] { display: none !important; }
.csv-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,.55);
	animation: csv-modal-fadein .2s ease-out;
}
@keyframes csv-modal-fadein { from { opacity: 0; } to { opacity: 1; } }

.csv-modal__panel {
	position: relative;
	background: #fff;
	border-radius: 16px;
	max-width: 680px;
	width: calc(100% - 32px);
	max-height: calc(100vh - 64px);
	display: flex !important;
	flex-direction: column;
	overflow: hidden;
	box-shadow: 0 24px 64px rgba(0,0,0,.2);
	animation: csv-modal-slideup .25s ease-out;
}
@keyframes csv-modal-slideup {
	from { opacity: 0; transform: translateY(20px); }
	to { opacity: 1; transform: translateY(0); }
}
.csv-modal__panel--full { max-width: 1100px; }

.csv-modal__header {
	display: flex !important;
	align-items: center;
	justify-content: center;
	padding: 16px 24px;
	border-bottom: 1px solid var(--csv-line);
	position: relative;
}
.csv-modal__header h2 {
	font-size: 16px;
	font-weight: 700;
	margin: 0;
	color: var(--csv-ink);
}
.csv-modal__close {
	position: absolute;
	left: 16px; top: 50%;
	transform: translateY(-50%);
	width: 32px; height: 32px;
	border-radius: 999px;
	background: none;
	border: none;
	cursor: pointer;
	display: inline-flex !important;
	align-items: center; justify-content: center;
	color: var(--csv-ink);
	transition: background .15s;
}
.csv-modal__close:hover { background: var(--csv-bg-dim, #f5f5f5); }

.csv-modal__body {
	padding: 24px;
	overflow-y: auto;
	flex: 1;
}

/* Galería completa */
.csv-photos-gallery {
	display: grid;
	grid-template-columns: 1fr;
	gap: 12px;
	max-width: 720px;
	margin: 0 auto;
}
.csv-photos-gallery__item {
	border-radius: var(--csv-radius);
	overflow: hidden;
	background: var(--csv-bg-dim, #f5f5f5);
	aspect-ratio: 4/3;
}
.csv-photos-gallery__item img {
	width: 100%; height: 100%;
	object-fit: cover;
}

/* Servicios */
.csv-services-group { margin-bottom: 28px; }
.csv-services-group:last-child { margin-bottom: 0; }
.csv-services-group h3 {
	font-size: 16px;
	font-weight: 700;
	margin: 0 0 12px;
	padding-bottom: 8px;
	border-bottom: 1px solid var(--csv-line);
}
.csv-services-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.csv-services-list li {
	display: flex !important;
	align-items: center;
	gap: 12px;
	font-size: 14px;
	color: var(--csv-ink);
	padding: 4px 0;
}
.csv-services-list li svg {
	flex-shrink: 0;
	color: var(--csv-yellow-dark);
}

/* Reserva confirm */
.csv-reserve-confirm__listing {
	display: flex !important;
	gap: 14px;
	padding-bottom: 16px;
	border-bottom: 1px solid var(--csv-line);
	margin-bottom: 16px;
}
.csv-reserve-confirm__listing img {
	width: 80px; height: 80px;
	object-fit: cover;
	border-radius: 10px;
	flex-shrink: 0;
}
.csv-reserve-confirm__listing strong { display: block; font-size: 15px; color: var(--csv-ink); }
.csv-reserve-confirm__listing span { font-size: 13px; color: var(--csv-muted, #6b7280); }

.csv-reserve-confirm__details {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px 16px;
	margin: 0 0 20px;
}
.csv-reserve-confirm__details dt {
	font-size: 12px;
	font-weight: 600;
	color: var(--csv-muted, #6b7280);
	text-transform: uppercase;
	letter-spacing: .04em;
	margin: 0;
}
.csv-reserve-confirm__details dd {
	font-size: 14px;
	font-weight: 600;
	color: var(--csv-ink);
	margin: 0;
}
.csv-reserve-confirm__total-row {
	border-top: 1px solid var(--csv-line);
	padding-top: 10px !important;
	margin-top: 4px;
	font-size: 14px !important;
	color: var(--csv-ink) !important;
}
.csv-reserve-confirm__cta {
	width: 100%;
	padding: 14px !important;
	background: var(--csv-yellow) !important;
	color: var(--csv-ink) !important;
	border: none !important;
	border-radius: 66px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	cursor: pointer;
	transition: background .15s, transform .15s;
	font-family: inherit;
}
.csv-reserve-confirm__cta:hover { background: var(--csv-yellow-dark) !important; transform: translateY(-1px); }
.csv-reserve-confirm__note {
	text-align: center;
	font-size: 12px;
	color: var(--csv-muted, #6b7280);
	margin: 10px 0 0;
}

/* ============================================================
   MODAL DE FILTROS estilo Airbnb
   ============================================================ */
.csv-filters-section {
	padding: 20px 0;
	border-bottom: 1px solid var(--csv-line);
}
.csv-filters-section:last-child { border-bottom: none; }
.csv-filters-section h3 {
	font-size: 18px;
	font-weight: 700;
	margin: 0 0 16px;
}
.csv-filters-section__sub {
	font-size: 13px;
	color: var(--csv-muted, #6b7280);
	margin: -8px 0 16px;
}

.csv-filter-chips {
	display: flex !important;
	flex-wrap: wrap;
	gap: 10px;
}
.csv-filter-chip {
	display: flex !important;
	flex-direction: column;
	align-items: center;
	gap: 8px;
	padding: 16px;
	border: 1px solid var(--csv-line);
	border-radius: 14px;
	background: #fff;
	cursor: pointer;
	transition: border-color .15s, background .15s;
	width: calc(50% - 5px);
	min-height: 100px;
	text-align: center;
	font-family: inherit;
}
@media (min-width: 600px) {
	.csv-filter-chip { width: calc(25% - 8px); }
}
.csv-filter-chip:hover { border-color: var(--csv-ink); }
.csv-filter-chip.is-active {
	border-color: var(--csv-ink);
	background: #f9fafb;
	box-shadow: inset 0 0 0 1px var(--csv-ink);
}
.csv-filter-chip__emoji { font-size: 32px; line-height: 1; }
.csv-filter-chip__label { font-size: 13px; font-weight: 600; }

.csv-filter-pills {
	display: flex !important;
	flex-wrap: wrap;
	gap: 8px;
	border: 1px solid var(--csv-line);
	border-radius: 999px;
	padding: 4px;
	width: fit-content;
	max-width: 100%;
	overflow-x: auto;
}
.csv-filter-pill {
	padding: 10px 18px !important;
	border-radius: 999px !important;
	background: transparent !important;
	border: none !important;
	font-size: 14px !important;
	font-weight: 600;
	color: var(--csv-ink) !important;
	cursor: pointer;
	white-space: nowrap;
	font-family: inherit;
	transition: background .15s;
}
.csv-filter-pill:hover { background: var(--csv-bg-dim, #f5f5f5) !important; }
.csv-filter-pill.is-active {
	background: var(--csv-ink) !important;
	color: #fff !important;
}

.csv-filter-range {
	padding: 20px 0;
}
.csv-filter-range__bars {
	display: flex !important;
	align-items: flex-end;
	gap: 2px;
	height: 60px;
	margin-bottom: 12px;
}
.csv-filter-range__bar {
	flex: 1;
	background: #fda4af;
	border-radius: 2px 2px 0 0;
	min-height: 6px;
}
.csv-filter-range__inputs {
	display: flex !important;
	gap: 12px;
	margin-top: 16px;
}
.csv-filter-range__input {
	flex: 1;
	padding: 12px 14px;
	border: 1px solid var(--csv-line);
	border-radius: 14px;
}
.csv-filter-range__input label {
	display: block;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	color: var(--csv-muted, #6b7280);
	margin-bottom: 4px;
}
.csv-filter-range__input input {
	width: 100%;
	font-size: 15px;
	font-weight: 600;
	border: none;
	outline: none;
	font-family: inherit;
	padding: 0;
	background: none;
}

.csv-filter-stepper {
	display: flex !important;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0;
	border-bottom: 1px solid var(--csv-line);
}
.csv-filter-stepper:last-child { border-bottom: none; }
.csv-filter-stepper__label { font-size: 16px; font-weight: 500; }
.csv-filter-stepper__controls {
	display: flex !important;
	align-items: center;
	gap: 14px;
}
.csv-filter-stepper__btn {
	width: 32px; height: 32px;
	border-radius: 999px;
	border: 1px solid var(--csv-muted-2, #9ca3af);
	background: #fff;
	font-size: 18px;
	cursor: pointer;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-family: inherit;
}
.csv-filter-stepper__btn:hover { border-color: var(--csv-ink); }
.csv-filter-stepper__btn:disabled { opacity: .3; cursor: not-allowed; }
.csv-filter-stepper__value {
	min-width: 24px;
	text-align: center;
	font-weight: 600;
}

.csv-modal__footer {
	display: flex !important;
	justify-content: space-between;
	align-items: center;
	padding: 16px 24px;
	border-top: 1px solid var(--csv-line);
	background: #fff;
	position: sticky;
	bottom: 0;
}
.csv-modal__footer-clear {
	background: none !important;
	border: none !important;
	font-size: 14px !important;
	font-weight: 600;
	text-decoration: underline;
	color: var(--csv-ink) !important;
	cursor: pointer;
	font-family: inherit;
	padding: 0;
}
.csv-modal__footer-cta {
	padding: 12px 22px !important;
	background: var(--csv-ink) !important;
	color: #fff !important;
	border: none !important;
	border-radius: 10px !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	cursor: pointer;
	font-family: inherit;
}
.csv-modal__footer-cta:hover { background: #000 !important; }

/* ============================================================
   SKELETON UNIVERSAL mejorado
   ============================================================ */
.csv-skel-line {
	background: linear-gradient(90deg, #e5e7eb 0%, #d4d4d8 40%, #d4d4d8 60%, #e5e7eb 100%);
	background-size: 200% 100%;
	animation: csv-skel-shimmer 1.6s linear infinite;
	border-radius: 6px;
	height: 14px;
	display: block;
}
.csv-skel-block {
	background: linear-gradient(90deg, #e5e7eb 0%, #d4d4d8 40%, #d4d4d8 60%, #e5e7eb 100%);
	background-size: 200% 100%;
	animation: csv-skel-shimmer 1.6s linear infinite;
	border-radius: var(--csv-radius);
}

/* Skeleton para single inmueble: galería, contenido, sidebar */
body.casave-page.csv-page-loading .csv-listing__gallery,
body.casave-page.csv-page-loading .csv-listing__content > section,
body.casave-page.csv-page-loading .csv-listing__sidebar > div {
	position: relative; min-height: 100px;
}
body.casave-page.csv-page-loading .csv-listing__gallery * { opacity: 0 !important; }
body.casave-page.csv-page-loading .csv-listing__gallery {
	background: linear-gradient(90deg, #e5e7eb 0%, #d4d4d8 40%, #d4d4d8 60%, #e5e7eb 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-skel-shimmer 1.6s linear infinite !important;
}

/* ============================================================
   CATEGORÍAS clicables — filtra grid sin recarga
   ============================================================ */
.csv-grid.csv-grid--filtering { min-height: 400px; }
.csv-grid > .csv-card[data-cat-hidden="1"] { display: none !important; }

/* ============================================================
   FILTROS DEL HOME (botón "Filtros")
   ============================================================ */
.csv-filter-btn { position: relative; }
.csv-filter-btn-badge {
	position: absolute;
	top: -4px; right: -4px;
	background: var(--csv-ink);
	color: #fff;
	font-size: 10px; font-weight: 700;
	padding: 2px 6px;
	border-radius: 999px;
	min-width: 18px;
	text-align: center;
}

/* ============================================================
   MARKER MAPA con cursor pointer y hover scale
   ============================================================ */
.csv-map-price-marker {
	background: #fff;
	border: 1.5px solid var(--csv-ink);
	border-radius: 999px;
	padding: 5px 12px;
	font-weight: 700;
	font-size: 12px;
	box-shadow: 0 2px 6px rgba(0,0,0,.15);
	cursor: pointer;
	transition: transform .15s, box-shadow .15s, background .15s, color .15s;
	white-space: nowrap;
}
.csv-map-price-marker:hover {
	background: var(--csv-ink);
	color: #fff;
	transform: scale(1.1);
}
.csv-map-price-marker.is-active {
	background: var(--csv-ink);
	color: #fff;
	transform: scale(1.15);
}

/* ============================================================
   v0.8 — FIXES masivos (Lunnar, skeleton vibrante, filtros, blur)
   ============================================================ */

/* === Z-INDEX buscador definitivo (override de todo) === */
.csv-search-bar { position: relative; z-index: 1500 !important; }
.csv-search__seg { position: relative; z-index: 1 !important; }
.csv-search__seg.is-open { z-index: 2000 !important; }
.csv-search__popover { z-index: 2100 !important; }

/* La bandeja de categorías y demás secciones POR DEBAJO siempre */
.csv-cat-shell, .csv-cat-row, .csv-section, .csv-hero, .csv-listing__gallery {
	position: relative !important;
	z-index: 0 !important;
}
.csv-section, .csv-search-page { isolation: isolate; }

/* === SKELETON vibrante (más visible) === */
.csv-grid.is-loading .csv-card,
.csv-card.is-loading,
.csv-skel-vibrant {
	position: relative;
	overflow: hidden;
	background: #eef0f3 !important;
	background-image: linear-gradient(90deg,
		#eef0f3 0%,
		#eef0f3 30%,
		#f8f9fb 45%,
		#ffffff 50%,
		#f8f9fb 55%,
		#eef0f3 70%,
		#eef0f3 100%
	) !important;
	background-size: 200% 100% !important;
	animation: csv-skel-shimmer 1.4s ease-in-out infinite !important;
	border-radius: var(--csv-radius);
}
.csv-grid.is-loading .csv-card *,
.csv-card.is-loading * {
	visibility: hidden !important;
}
/* Skeleton placeholder visible para el grid mientras carga */
.csv-grid.is-loading .csv-card {
	min-height: 280px;
}

/* Skeleton de líneas vibrantes */
.csv-skel-line, .csv-skel-block {
	background: linear-gradient(90deg,
		#e5e7eb 0%,
		#e5e7eb 30%,
		#fafafa 45%,
		#ffffff 50%,
		#fafafa 55%,
		#e5e7eb 70%,
		#e5e7eb 100%
	) !important;
	background-size: 200% 100% !important;
	animation: csv-skel-shimmer 1.4s ease-in-out infinite !important;
}

/* Skeleton de página entera (sobre nosotros, prensa, etc.) */
body.csv-page-loading-full {
	position: relative;
}
body.csv-page-loading-full::before {
	content: '';
	position: fixed; inset: 0;
	background: #fff;
	z-index: 9999;
	background-image: linear-gradient(90deg,
		#eef0f3 0%,
		#fafafa 50%,
		#eef0f3 100%
	);
	background-size: 200% 100%;
	animation: csv-skel-shimmer 1.4s ease-in-out infinite;
	pointer-events: none;
}

/* === HERO más colorido (overlay reducido + filtro saturate) === */
.csv-hero { position: relative; overflow: hidden; }
.csv-hero img,
.csv-hero__bg img,
.csv-hero__media img {
	filter: saturate(1.3) brightness(1.05) !important;
}
.csv-hero::after,
.csv-hero__overlay {
	background: linear-gradient(to bottom,
		rgba(0,0,0,.15) 0%,
		rgba(0,0,0,0) 30%,
		rgba(0,0,0,0) 70%,
		rgba(0,0,0,.25) 100%
	) !important;
}

/* === LUNNAR card rediseñado (más sobrio, esfera protagonista) === */
.csv-lunnar-card {
	background: #ffffff;
	border: 1px solid #e9d5ff;
	border-radius: 18px;
	padding: 24px;
	overflow: hidden;
	box-shadow: 0 2px 12px rgba(139, 148, 216, 0.08);
}
.csv-lunnar-card::before {
	display: none; /* quitar el blob morado */
}

.csv-lunnar-card__icon {
	width: 56px; height: 56px;
	border-radius: 999px;
	background: transparent !important;
	box-shadow: none !important;
	overflow: visible;
	flex-shrink: 0;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
}
.csv-lunnar-card__icon svg { display: block; }

.csv-lunnar-card__btn {
	background: linear-gradient(135deg, #a78bfa 0%, #c084fc 50%, #f0abfc 100%) !important;
	color: #fff !important;
	box-shadow: 0 4px 14px rgba(167, 139, 250, 0.4) !important;
}
.csv-lunnar-card__btn:hover {
	box-shadow: 0 6px 18px rgba(167, 139, 250, 0.5) !important;
}

/* Header dentro del result con esfera + título */
.csv-lunnar-content__header {
	display: flex !important;
	align-items: center;
	gap: 14px;
	margin-bottom: 8px;
}
.csv-lunnar-sphere-small { flex-shrink: 0; }
.csv-lunnar-content__header-text small {
	font-size: 10px;
	font-weight: 800;
	letter-spacing: 0.15em;
	color: #8b94d8;
	display: block;
	margin-bottom: 2px;
}
.csv-lunnar-content__header-text .csv-lunnar-headline {
	margin: 0;
}

.csv-lunnar-headline {
	font-size: 19px !important;
	font-weight: 800 !important;
	color: #1f1d2e;
	margin: 0;
	line-height: 1.3;
	letter-spacing: -0.01em;
}
.csv-lunnar-summary {
	font-size: 14px;
	line-height: 1.65;
	color: #404040;
	margin: 4px 0 0;
}
.csv-lunnar-box {
	background: linear-gradient(135deg, #faf5ff 0%, #fdf2f8 100%) !important;
	border: 1px solid rgba(167, 139, 250, 0.15) !important;
}
.csv-lunnar-box h4 {
	color: #6d28d9 !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	display: flex !important; align-items: center !important; gap: 8px;
}
.csv-lunnar-box h4::before { display: none !important; }
.csv-lunnar-box__ico { font-size: 16px; }

.csv-lunnar-box li::before {
	content: '' !important;
	width: 6px !important; height: 6px !important;
	background: linear-gradient(135deg, #a78bfa, #f0abfc) !important;
	border-radius: 999px !important;
	display: inline-block !important;
	margin-top: 8px !important;
}

.csv-lunnar-match__score {
	background: conic-gradient(#a78bfa var(--score, 0%), #ede9fe 0) !important;
}
.csv-lunnar-match__score-num { color: #6d28d9 !important; }
.csv-lunnar-match__text strong { color: #6d28d9 !important; }

.csv-lunnar-footer__refresh {
	color: #6d28d9 !important;
	text-decoration: none !important;
	font-weight: 600 !important;
	font-size: 12px !important;
	padding: 4px 10px !important;
	border-radius: 999px !important;
	background: rgba(167, 139, 250, 0.1) !important;
}
.csv-lunnar-footer__refresh:hover {
	background: rgba(167, 139, 250, 0.2) !important;
}

/* Loading vibrante específico Lunnar */
.csv-lunnar-skel__line {
	background: linear-gradient(90deg,
		rgba(167, 139, 250, 0.1) 0%,
		rgba(192, 132, 252, 0.2) 50%,
		rgba(167, 139, 250, 0.1) 100%
	) !important;
	background-size: 200% 100% !important;
	animation: csv-skel-shimmer 1.2s ease-in-out infinite !important;
}

/* === MODALES con BLUR background === */
.csv-modal__overlay {
	background: rgba(20, 14, 30, 0.5) !important;
	backdrop-filter: blur(12px) saturate(1.4) !important;
	-webkit-backdrop-filter: blur(12px) saturate(1.4) !important;
}

/* === FILTROS — RANGO en amarillo de marca con hover === */
.csv-filter-range__bar {
	background: var(--csv-yellow, #F5BB1F) !important;
	border-radius: 3px 3px 0 0 !important;
	transition: background 0.15s, transform 0.15s;
	cursor: pointer;
}
.csv-filter-range__bar:hover {
	background: var(--csv-yellow-dark, #D49A0F) !important;
	transform: scaleY(1.1);
	transform-origin: bottom;
}
.csv-filter-range__bars:hover .csv-filter-range__bar {
	opacity: 0.4;
}
.csv-filter-range__bars .csv-filter-range__bar:hover {
	opacity: 1;
}

/* === CHIPS de recomendaciones — selector estilo Airbnb mejorado === */
.csv-filter-chip {
	background: #ffffff !important;
	border: 1.5px solid #e5e7eb !important;
	border-radius: 14px !important;
	padding: 18px 14px !important;
	transition: all 0.15s !important;
	min-height: 110px !important;
	cursor: pointer;
}
.csv-filter-chip:hover {
	border-color: #1f2937 !important;
	transform: scale(1.02);
	box-shadow: 0 4px 12px rgba(0,0,0,0.08);
}
.csv-filter-chip.is-active {
	border-color: #1f2937 !important;
	border-width: 2px !important;
	background: #f9fafb !important;
	box-shadow: 0 4px 12px rgba(0,0,0,0.08), inset 0 0 0 1px #1f2937 !important;
}
.csv-filter-chip__emoji {
	font-size: 36px !important;
	line-height: 1;
	margin-bottom: 4px;
	filter: grayscale(0);
	transition: transform 0.2s;
}
.csv-filter-chip:hover .csv-filter-chip__emoji {
	transform: scale(1.1) rotate(-5deg);
}
.csv-filter-chip__label {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #1f2937;
}

/* === PILLS de tipo alojamiento mejoradas === */
.csv-filter-pills {
	background: #f9fafb;
	border-color: #e5e7eb !important;
	padding: 6px !important;
}
.csv-filter-pill {
	transition: all 0.15s !important;
}
.csv-filter-pill:hover {
	background: #ffffff !important;
	box-shadow: 0 1px 3px rgba(0,0,0,0.1);
}
.csv-filter-pill.is-active {
	background: #1f2937 !important;
	color: #ffffff !important;
	box-shadow: 0 2px 6px rgba(31, 41, 55, 0.25);
}

/* === Modal footer cta amarillo (no negro) === */
.csv-modal__footer-cta {
	background: var(--csv-yellow, #F5BB1F) !important;
	color: #1f2937 !important;
	border-radius: 66px !important;
	font-weight: 800 !important;
	padding: 14px 28px !important;
}
.csv-modal__footer-cta:hover {
	background: var(--csv-yellow-dark, #D49A0F) !important;
	color: #1f2937 !important;
}

/* === CALENDARIO — fix de días achatados === */
.csv-cal__day {
	width: 100% !important;
	aspect-ratio: 1 / 1 !important;
	display: inline-flex !important;
	align-items: center;
	justify-content: center;
	font-size: 14px !important;
	font-weight: 500;
	background: none;
	border: none;
	border-radius: 8px;
	cursor: pointer;
	padding: 0 !important;
	font-family: inherit;
	color: var(--csv-ink);
	transition: background 0.1s;
	min-height: 44px;
}
button.csv-cal__day { line-height: 1; }
.csv-cal__day:hover:not(.is-past) {
	background: #f5f5f5;
}
.csv-cal__day.is-past {
	color: #d1d5db;
	text-decoration: line-through;
	cursor: not-allowed;
}
.csv-cal__day.is-selected {
	background: var(--csv-ink) !important;
	color: #fff !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
}
.csv-cal__day.is-in-range {
	background: #f5f5f5;
	border-radius: 0;
}
.csv-cal__grid {
	display: grid !important;
	grid-template-columns: repeat(7, 1fr) !important;
	gap: 2px !important;
}
.csv-cal__dow {
	text-align: center;
	font-size: 11px;
	font-weight: 700;
	color: #9ca3af;
	padding: 8px 0;
}

/* === VALORACIONES comprimidas + botón ver más === */
.csv-listing__reviews--collapsed .csv-listing__review:nth-child(n+7) {
	display: none;
}
.csv-listing__reviews-more {
	display: inline-flex !important;
	align-items: center;
	gap: 8px;
	padding: 12px 22px;
	background: #fff;
	border: 1px solid var(--csv-ink);
	border-radius: 999px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	margin-top: 20px;
	transition: background 0.15s;
	color: var(--csv-ink);
	font-family: inherit;
}
.csv-listing__reviews-more:hover { background: var(--csv-bg-dim, #f5f5f5); }

/* === SERVICIOS con iconos tipo Airbnb === */
.csv-services-list li {
	padding: 12px 0 !important;
	border-bottom: 1px solid #f3f4f6;
	font-size: 15px !important;
}
.csv-services-list li:last-child { border-bottom: none; }
.csv-services-list li .csv-service-icon {
	width: 24px; height: 24px;
	flex-shrink: 0;
	color: var(--csv-ink);
}

/* === SOCIAL LOGIN buttons con padding correcto === */
.csv-social-btn,
.csv-auth__social,
.csv-auth-social-btn,
button[class*="social"][class*="csv"],
a[class*="social"][class*="csv"] {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 10px !important;
	width: 100% !important;
	padding: 14px 20px !important;
	border: 1px solid var(--csv-line, #e5e7eb) !important;
	border-radius: 12px !important;
	background: #fff !important;
	color: var(--csv-ink) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	text-decoration: none !important;
	cursor: pointer;
	transition: background 0.15s, border-color 0.15s;
	font-family: inherit;
	margin-bottom: 10px;
}
.csv-social-btn:hover,
.csv-auth__social:hover {
	background: #fafafa !important;
	border-color: var(--csv-ink) !important;
}
.csv-social-btn svg,
.csv-auth__social svg,
.csv-auth__social img {
	width: 20px !important;
	height: 20px !important;
	flex-shrink: 0;
}

/* === MÓVIL — reordenar bottom nav (Publicar y Favoritos intercambiados) === */
@media (max-width: 768px) {
	/* Order CSS para swap */
	.csv-mobile-nav__item[data-nav="publish"] { order: 4 !important; }
	.csv-mobile-nav__item[data-nav="favorites"] { order: 5 !important; }
	.csv-mobile-nav__item[data-nav="profile"] { order: 6 !important; }
}

/* === FILTROS SECCIÓN COMPARTIR — mejoras === */
.csv-filters-section .csv-filter-stepper .csv-filter-pills {
	border-radius: 999px;
	background: #f9fafb;
}

/* === IMAGEN del card — saturación natural (no oscuras) === */
.csv-card__image img {
	filter: saturate(1.1) brightness(1.02);
}

/* === csv-auth__sso (social login buttons) — padding correcto === */
.csv-auth__sso {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 12px !important;
	width: 100% !important;
	padding: 14px 20px !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 12px !important;
	background: #ffffff !important;
	color: var(--csv-ink, #1f2937) !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	margin-bottom: 10px !important;
	transition: background 0.15s, border-color 0.15s !important;
	font-family: inherit !important;
	text-align: center !important;
	line-height: 1.2 !important;
}
.csv-auth__sso:hover {
	background: #fafafa !important;
	border-color: #1f2937 !important;
}
.csv-auth__sso svg {
	width: 20px !important;
	height: 20px !important;
	flex-shrink: 0 !important;
}

/* ============================================================
   v0.9 — FIXES más críticos
   ============================================================ */

/* === Z-INDEX home definitivo (sin isolation que crea stacking contexts) === */
.csv-section, .csv-search-page, .csv-hero, .csv-cat-shell, .csv-cat-row {
	isolation: auto !important;
}
/* Quitamos cualquier overflow:hidden en el contenedor del buscador */
.csv-hero, .csv-hero__inner, .csv-search-wrap, .csv-search-row {
	overflow: visible !important;
}
/* El buscador siempre por encima del contenido inferior */
.csv-search-bar { position: relative; z-index: 10000 !important; }
.csv-search__seg.is-open { z-index: 10001 !important; }
.csv-search__popover { z-index: 10002 !important; }

/* === POPUP del mapa (foto + título + CTA) === */
.leaflet-popup-content-wrapper { padding: 0 !important; border-radius: 14px !important; overflow: hidden; }
.leaflet-popup-content { margin: 0 !important; width: 240px !important; }
.csv-map-popup { display: block; font-family: 'DM Sans', Inter, system-ui, sans-serif; }
.csv-map-popup__img { display: block; }
.csv-map-popup__img img { display: block; width: 100%; height: 130px; object-fit: cover; }
.csv-map-popup__body {
	display: block !important;
	padding: 12px;
	color: var(--csv-ink, #1f2937);
	text-decoration: none !important;
}
.csv-map-popup__title { display: block; font-size: 14px; font-weight: 700; margin-bottom: 4px; }
.csv-map-popup__loc { display: block; font-size: 12px; color: var(--csv-muted, #6b7280); margin-bottom: 6px; }
.csv-map-popup__price { display: block; font-size: 14px; font-weight: 700; color: var(--csv-yellow-dark, #D49A0F); }
.csv-map-popup__body:hover { background: #fafafa; }
.leaflet-popup-tip { background: #fff !important; }

/* === SKELETON UNIVERSAL tipo Airbnb === */
/* Cuando body tiene .csv-loading, todos los elementos se ven como skeleton hasta listos */
.csv-skel,
[data-csv-skel] {
	background: linear-gradient(90deg, #eef0f3 0%, #f8f9fb 50%, #eef0f3 100%);
	background-size: 200% 100%;
	animation: csv-skel-shimmer 1.4s ease-in-out infinite;
	border-radius: 8px;
	color: transparent !important;
}
.csv-skel *, [data-csv-skel] * { color: transparent !important; visibility: hidden; }

/* Listing single skeleton — cada sección se ve como bloque mientras carga */
body.csv-page-skel-active .csv-listing__gallery,
body.csv-page-skel-active .csv-listing__gallery * {
	visibility: hidden !important;
}
body.csv-page-skel-active .csv-listing__gallery {
	background: linear-gradient(90deg, #eef0f3 0%, #f8f9fb 50%, #eef0f3 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-skel-shimmer 1.4s ease-in-out infinite !important;
	border-radius: var(--csv-radius);
}

body.csv-page-skel-active .csv-listing__content > section,
body.csv-page-skel-active .csv-listing__sidebar > * {
	position: relative;
	min-height: 60px;
}
body.csv-page-skel-active .csv-listing__content > section * ,
body.csv-page-skel-active .csv-listing__sidebar > * * {
	visibility: hidden !important;
}
body.csv-page-skel-active .csv-listing__content > section::before,
body.csv-page-skel-active .csv-listing__sidebar > *::before {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(90deg, #eef0f3 0%, #f8f9fb 50%, #eef0f3 100%);
	background-size: 200% 100%;
	animation: csv-skel-shimmer 1.4s ease-in-out infinite;
	border-radius: 12px;
}

/* Skeleton para hero del home */
body.csv-page-skel-active .csv-hero {
	background: linear-gradient(90deg, #eef0f3 0%, #f8f9fb 50%, #eef0f3 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-skel-shimmer 1.4s ease-in-out infinite !important;
}
body.csv-page-skel-active .csv-hero__inner { visibility: hidden; }
body.csv-page-skel-active .csv-cat-shell { visibility: hidden; }

/* Skeleton para secciones genéricas */
body.csv-page-skel-active section.csv-section {
	background: #f7f7f7;
}
body.csv-page-skel-active section.csv-section .csv-grid {
	min-height: 320px;
}

/* === REPORT MODAL === */
.csv-report-options {
	display: flex;
	flex-direction: column;
	gap: 8px;
	margin-top: 8px;
}
.csv-report-option {
	display: flex !important;
	align-items: center;
	padding: 14px 16px;
	border: 1px solid var(--csv-line);
	border-radius: 12px;
	cursor: pointer;
	background: #fff;
	font-size: 14px;
	transition: border-color 0.15s, background 0.15s;
	gap: 12px;
	font-family: inherit;
	width: 100%;
	text-align: left;
}
.csv-report-option:hover { border-color: var(--csv-ink); background: #fafafa; }
.csv-report-option__radio {
	width: 18px; height: 18px;
	border-radius: 999px;
	border: 2px solid #9ca3af;
	flex-shrink: 0;
	position: relative;
}
.csv-report-option.is-selected .csv-report-option__radio { border-color: var(--csv-ink); }
.csv-report-option.is-selected .csv-report-option__radio::after {
	content: '';
	position: absolute; inset: 3px;
	border-radius: 999px;
	background: var(--csv-ink);
}

/* === SHARE MODAL === */
.csv-share-list {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin-top: 8px;
}
.csv-share-item {
	display: flex !important;
	align-items: center;
	gap: 10px;
	padding: 14px;
	border: 1px solid var(--csv-line);
	border-radius: 12px;
	cursor: pointer;
	background: #fff;
	font-size: 14px;
	transition: border-color 0.15s, background 0.15s;
	font-family: inherit;
	text-decoration: none !important;
	color: var(--csv-ink) !important;
}
.csv-share-item:hover { border-color: var(--csv-ink); background: #fafafa; }
.csv-share-item svg { width: 20px; height: 20px; flex-shrink: 0; }

/* === FAVORITO (corazón) activo === */
.csv-card__heart.is-favorite svg,
.csv-listing__action.is-favorite svg {
	fill: var(--csv-red, #E11D48) !important;
	stroke: var(--csv-red, #E11D48) !important;
	color: var(--csv-red, #E11D48) !important;
}


/* === Z-INDEX modal por encima de TODO === */
.csv-modal { z-index: 999999 !important; }
.csv-modal__overlay { z-index: 1 !important; }
.csv-modal__panel { z-index: 2 !important; }

/* ============================================================
   v0.10 — SKELETON UNIFICADO ESTILO A (Airbnb clásico)
   Una única fuente de verdad. Sobrescribe cualquier variante anterior.
   ============================================================ */

/* La animación A: gradient gris claro horizontal, 1.4s ease-in-out */
@keyframes csv-shimmer {
	0%   { background-position: -200% 0; }
	100% { background-position:  200% 0; }
}

/* Clase universal: aplicar .csv-skel a cualquier elemento lo convierte en skeleton */
.csv-skel,
.csv-skel-line,
.csv-skel-block,
.csv-skel-vibrant {
	background: linear-gradient(90deg, #ebebeb 0%, #f5f5f5 50%, #ebebeb 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-shimmer 1.4s ease-in-out infinite !important;
	border-radius: 8px !important;
	color: transparent !important;
}
.csv-skel *,
[data-csv-skel] *,
.csv-skel-line *,
.csv-skel-block * {
	color: transparent !important;
	visibility: hidden !important;
}

/* === Cards de grid en loading === */
.csv-grid.is-loading .csv-card,
.csv-card.is-loading {
	background: transparent !important;
	animation: none !important;
}
.csv-grid.is-loading .csv-card * { visibility: hidden !important; }
.csv-grid.is-loading .csv-card .csv-card__image,
.csv-grid.is-loading .csv-card .csv-card__title,
.csv-grid.is-loading .csv-card .csv-card__location,
.csv-grid.is-loading .csv-card .csv-card__specs,
.csv-grid.is-loading .csv-card .csv-card__price {
	background: linear-gradient(90deg, #ebebeb 0%, #f5f5f5 50%, #ebebeb 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-shimmer 1.4s ease-in-out infinite !important;
	border-radius: 8px !important;
	visibility: visible !important;
}
.csv-grid.is-loading .csv-card .csv-card__image {
	border-radius: 14px !important;
	aspect-ratio: 4/3 !important;
}
.csv-grid.is-loading .csv-card .csv-card__title { width: 60%; height: 14px; }
.csv-grid.is-loading .csv-card .csv-card__location { width: 75%; height: 12px; }
.csv-grid.is-loading .csv-card .csv-card__specs { width: 85%; height: 12px; }
.csv-grid.is-loading .csv-card .csv-card__price { width: 40%; height: 14px; }

/* === Skeleton automático universal mientras body.csv-loading-page === */
/* Todos los elementos visuales pasan a skeleton sin importar la página */

body.csv-loading-page .csv-hero,
body.csv-loading-page .csv-hero__inner,
body.csv-loading-page .csv-hero__bg,
body.csv-loading-page .csv-hero__media {
	background: linear-gradient(90deg, #ebebeb 0%, #f5f5f5 50%, #ebebeb 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-shimmer 1.4s ease-in-out infinite !important;
}
body.csv-loading-page .csv-hero > *,
body.csv-loading-page .csv-hero__inner > * { visibility: hidden !important; }

body.csv-loading-page .csv-cat-shell,
body.csv-loading-page .csv-cat-row,
body.csv-loading-page .csv-search-bar,
body.csv-loading-page .csv-page-hero,
body.csv-loading-page .csv-listing__gallery,
body.csv-loading-page .csv-listing__gallery-grid,
body.csv-loading-page .csv-listing__gallery-thumb,
body.csv-loading-page .csv-listing__map,
body.csv-loading-page .csv-host-hero,
body.csv-loading-page .csv-host-avatar-large {
	background: linear-gradient(90deg, #ebebeb 0%, #f5f5f5 50%, #ebebeb 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-shimmer 1.4s ease-in-out infinite !important;
	border-radius: 14px !important;
	overflow: hidden;
}
body.csv-loading-page .csv-cat-shell *,
body.csv-loading-page .csv-cat-row *,
body.csv-loading-page .csv-search-bar *,
body.csv-loading-page .csv-listing__gallery *,
body.csv-loading-page .csv-listing__map *,
body.csv-loading-page .csv-host-hero *,
body.csv-loading-page .csv-host-avatar-large * { visibility: hidden !important; }

/* Listing single — cada sección en skeleton */
body.csv-loading-page .csv-listing__content > section,
body.csv-loading-page .csv-listing__sidebar > *,
body.csv-loading-page .csv-host-section,
body.csv-loading-page .csv-section,
body.csv-loading-page .casave-main > section,
body.csv-loading-page .casave-main > article {
	position: relative;
	min-height: 80px;
}
body.csv-loading-page .csv-listing__content > section > *,
body.csv-loading-page .csv-listing__sidebar > * > *,
body.csv-loading-page .csv-host-section > * { visibility: hidden !important; }

body.csv-loading-page .csv-listing__content > section::before,
body.csv-loading-page .csv-listing__sidebar > *::before,
body.csv-loading-page .csv-host-section::before {
	content: '';
	position: absolute; inset: 0;
	background: linear-gradient(90deg, #ebebeb 0%, #f5f5f5 50%, #ebebeb 100%);
	background-size: 200% 100%;
	animation: csv-shimmer 1.4s ease-in-out infinite;
	border-radius: 14px;
}

/* Grids de cards genéricos: añadir skeleton automático */
body.csv-loading-page .csv-grid:not(.is-loading) {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 20px;
	min-height: 320px;
}
body.csv-loading-page .csv-grid:not(.is-loading) > * { visibility: hidden !important; }
body.csv-loading-page .csv-grid:not(.is-loading)::before,
body.csv-loading-page .csv-grid:not(.is-loading)::after {
	content: '';
	aspect-ratio: 4/3;
	background: linear-gradient(90deg, #ebebeb 0%, #f5f5f5 50%, #ebebeb 100%);
	background-size: 200% 100%;
	animation: csv-shimmer 1.4s ease-in-out infinite;
	border-radius: 14px;
}

/* Páginas de contenido genéricas (sobre, prensa, trabajos, ayuda, contacto, terms, etc.) */
body.csv-loading-page .csv-container > h1,
body.csv-loading-page .csv-container > h2,
body.csv-loading-page .csv-container > h3,
body.csv-loading-page .csv-container > p,
body.csv-loading-page .csv-auth__panel,
body.csv-loading-page .csv-page-content {
	background: linear-gradient(90deg, #ebebeb 0%, #f5f5f5 50%, #ebebeb 100%) !important;
	background-size: 200% 100% !important;
	animation: csv-shimmer 1.4s ease-in-out infinite !important;
	color: transparent !important;
	border-radius: 8px !important;
}
body.csv-loading-page .csv-container > h1 { height: 36px; max-width: 60%; }
body.csv-loading-page .csv-container > h2 { height: 28px; max-width: 50%; }
body.csv-loading-page .csv-container > h3 { height: 22px; max-width: 40%; }
body.csv-loading-page .csv-container > p { min-height: 60px; }

/* Header navbar siempre visible (no skeleton del header) */
body.csv-loading-page .csv-header,
body.csv-loading-page header.casave-header,
body.csv-loading-page .casave-footer,
body.csv-loading-page footer.casave-footer { animation: none !important; background: inherit !important; }
body.csv-loading-page .csv-header *,
body.csv-loading-page header.casave-header * { visibility: visible !important; }

/* Modales no se afectan por skeleton */
body.csv-loading-page .csv-modal,
body.csv-loading-page .csv-modal * {
	animation: none !important;
	visibility: inherit !important;
}

/* Reduce motion */
@media (prefers-reduced-motion: reduce) {
	@keyframes csv-shimmer {
		0%, 100% { background-position: 0 0; }
	}
	.csv-skel, .csv-skel-line, .csv-skel-block,
	body.csv-loading-page * {
		animation-duration: 0s !important;
	}
}

/* === Auth: caja de error === */
.csv-auth__error {
	background: #fef2f2;
	border: 1px solid #fecaca;
	color: #991b1b;
	padding: 12px 14px;
	border-radius: 10px;
	font-size: 14px;
	margin-bottom: 14px;
	line-height: 1.4;
}
.csv-auth__error a { color: #991b1b; font-weight: 700; text-decoration: underline; }
.csv-auth__submit[disabled] { opacity: 0.7; cursor: wait; }

/* ============================================================
   v0.13 — HEADER DEFINITIVO con grid 1fr/auto/1fr (centrado REAL)
   Todo con !important para sobreescribir cualquier CSS previo
   ============================================================ */

/* === Layout row: grid 3 columnas — centra el medio matemáticamente === */
.csv-header__row {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr !important;
	align-items: center !important;
	gap: 24px !important;
	min-height: 80px !important;
	position: relative !important;
	padding: 0 !important;
}
.csv-header__logo {
	justify-self: start !important;
	display: flex; align-items: center;
	flex: none !important;
}
.csv-header__center {
	justify-self: center !important;
	position: relative !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-height: 56px !important;
	flex: none !important;
}
.csv-header__actions {
	justify-self: end !important;
	display: flex !important;
	align-items: center !important;
	gap: 4px !important;
	flex: none !important;
	margin: 0 !important;
}

/* === Tabs (top): visibles, centradas, ocultas al scrollear === */
.csv-header__tabs {
	display: flex !important;
	gap: 6px !important;
	align-items: center !important;
	transition: opacity 0.22s, transform 0.28s, visibility 0s linear 0s !important;
	opacity: 1;
}
body.csv-scrolled .csv-header__tabs {
	opacity: 0 !important;
	visibility: hidden !important;
	transform: translateY(-8px) !important;
	transition: opacity 0.18s, transform 0.22s, visibility 0s linear 0.18s !important;
	position: absolute !important;
	pointer-events: none !important;
}

/* === Pill (scrolled): visible al scrollear, posición CENTRO real === */
.csv-header__pill {
	display: none !important;
	align-items: center !important;
	background: #fff !important;
	border: 1px solid #ebebeb !important;
	border-radius: 999px !important;
	padding: 6px !important;
	box-shadow: 0 1px 2px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.05) !important;
	font-family: inherit !important;
	transition: box-shadow 0.18s !important;
	margin: 0 !important;
	max-width: 100%;
}
body.csv-scrolled .csv-header__pill {
	display: inline-flex !important;
	animation: csv-pill-in 0.32s cubic-bezier(0.32, 0.72, 0, 1);
}
.csv-header__pill:hover {
	box-shadow: 0 1px 2px rgba(0,0,0,0.08), 0 6px 18px rgba(0,0,0,0.15) !important;
}
@keyframes csv-pill-in {
	from { opacity: 0; transform: translateY(-10px) scale(0.92); }
	to   { opacity: 1; transform: translateY(0) scale(1); }
}

/* Botones internos del pill */
.csv-header__pill-btn {
	background: transparent !important;
	border: none !important;
	padding: 8px 18px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	transition: background 0.15s !important;
	white-space: nowrap !important;
	display: inline-flex !important;
	align-items: center !important;
}
.csv-header__pill-btn:hover { background: #f0f0f0 !important; }
.csv-header__pill-btn--muted { color: #6b7280 !important; font-weight: 500 !important; }
.csv-header__pill-btn.is-active { background: #f0f0f0 !important; }
.csv-header__pill-btn.is-filled { color: #1f2937 !important; font-weight: 700 !important; }
.csv-header__pill-text { display: inline; }

.csv-header__pill-sep {
	width: 1px !important;
	height: 24px !important;
	background: #ebebeb !important;
	display: inline-block !important;
	flex-shrink: 0;
}
.csv-header__pill-search {
	background: var(--csv-yellow, #F5BB1F) !important;
	color: #1f2937 !important;
	width: 32px !important;
	height: 32px !important;
	border-radius: 999px !important;
	border: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	margin-left: 8px !important;
	cursor: pointer !important;
	flex-shrink: 0 !important;
	transition: background 0.15s !important;
}
.csv-header__pill-search:hover { background: var(--csv-yellow-dark, #D49A0F) !important; }

/* Ocultar tabs y dejar pill cuando scrolled */
body.csv-scrolled .csv-header__tabs { display: none !important; }

/* === Popover: hijo del header, animado === */
.csv-header__popover {
	position: absolute !important;
	top: 100% !important;
	left: 50% !important;
	transform: translateX(-50%) translateY(-12px) !important;
	margin-top: 8px !important;
	width: 540px !important;
	max-width: calc(100vw - 32px) !important;
	background: #fff !important;
	border-radius: 32px !important;
	box-shadow: 0 12px 40px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.04) !important;
	z-index: 100000 !important;
	max-height: 80vh !important;
	overflow: hidden !important;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.22s, transform 0.28s cubic-bezier(0.32, 0.72, 0, 1);
}
.csv-header__popover[hidden] { display: none !important; }
.csv-header__popover:not([hidden]) {
	opacity: 1 !important;
	transform: translateX(-50%) translateY(0) !important;
	pointer-events: auto !important;
}

/* Tabs internas del popover */
.csv-hp-tabs {
	display: flex !important;
	gap: 0 !important;
	padding: 18px 28px 0 !important;
	border-bottom: 1px solid #ebebeb !important;
}
.csv-hp-tab {
	background: none !important;
	border: none !important;
	padding: 12px 18px !important;
	font-weight: 600 !important;
	font-size: 14px !important;
	color: #6b7280 !important;
	cursor: pointer !important;
	border-bottom: 2px solid transparent !important;
	font-family: inherit !important;
	margin-bottom: -1px !important;
	transition: color 0.15s, border-color 0.15s !important;
}
.csv-hp-tab:hover { color: #1f2937 !important; }
.csv-hp-tab.is-active {
	color: #1f2937 !important;
	border-bottom-color: var(--csv-yellow, #F5BB1F) !important;
}

/* Inner: contenido scrolleable */
.csv-header__popover-inner {
	padding: 24px 28px 0 !important;
	max-height: calc(80vh - 60px) !important;
	overflow-y: auto !important;
}

.csv-hp-view[hidden] { display: none !important; }
.csv-hp-section { margin-bottom: 24px !important; }
.csv-hp-section:last-of-type { margin-bottom: 8px !important; }
.csv-hp-section h4 {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	margin: 0 0 14px !important;
	text-transform: none !important;
}

/* Sugerencias y recientes: ESPACIO entre items */
.csv-hp-suggestions,
.csv-hp-recent-list {
	display: flex !important;
	flex-direction: column !important;
	gap: 10px !important;
}
.csv-hs-sug,
.csv-hs-recent {
	display: flex !important;
	align-items: center !important;
	gap: 16px !important;
	padding: 12px 14px !important;
	background: transparent !important;
	border: none !important;
	border-radius: 14px !important;
	cursor: pointer !important;
	text-align: left !important;
	width: 100% !important;
	font-family: inherit !important;
	transition: background 0.15s !important;
}
.csv-hs-sug:hover, .csv-hs-recent:hover { background: #f7f7f7 !important; }
.csv-hs-sug__icon,
.csv-hs-recent__icon {
	width: 52px !important;
	height: 52px !important;
	border-radius: 14px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	background: #f3f4f6;
}
.csv-hs-sug__text,
.csv-hs-recent__text {
	display: flex !important;
	flex-direction: column !important;
	gap: 3px !important;
	min-width: 0;
}
.csv-hs-sug__text strong,
.csv-hs-recent__text strong {
	display: block !important;
	font-size: 15px !important;
	font-weight: 500 !important;
	color: #1f2937 !important;
	line-height: 1.3 !important;
}
.csv-hs-sug__text small,
.csv-hs-recent__text small {
	font-size: 13px !important;
	color: #6b7280 !important;
	line-height: 1.3 !important;
}

/* Date pickers */
.csv-hp-dates-wrap {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 12px !important;
}
.csv-hp-date-field {
	display: flex !important;
	flex-direction: column !important;
	gap: 4px !important;
	padding: 14px 16px !important;
	border: 1px solid #ebebeb !important;
	border-radius: 14px !important;
	transition: border-color 0.15s;
}
.csv-hp-date-field:focus-within { border-color: #1f2937 !important; }
.csv-hp-date-field > span {
	font-size: 11px !important;
	font-weight: 700 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	color: #6b7280 !important;
}
.csv-hp-date-field input {
	border: none !important;
	outline: none !important;
	font-size: 15px !important;
	padding: 0 !important;
	font-family: inherit !important;
	background: transparent !important;
	color: #1f2937;
}
.csv-hp-quick-dates {
	display: flex !important;
	gap: 8px !important;
	margin-top: 16px !important;
	flex-wrap: wrap !important;
}
.csv-hp-quick-btn {
	padding: 8px 14px !important;
	border: 1px solid #ebebeb !important;
	border-radius: 999px !important;
	background: #fff !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	transition: border-color 0.15s, background 0.15s !important;
}
.csv-hp-quick-btn:hover { border-color: #1f2937 !important; background: #f7f7f7 !important; }
.csv-hp-quick-btn.is-selected {
	border-color: #1f2937 !important;
	background: #1f2937 !important;
	color: #fff !important;
}

/* Steppers */
.csv-hp-stepper {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	padding: 18px 0 !important;
	border-bottom: 1px solid #f3f4f6 !important;
}
.csv-hp-stepper:last-child { border-bottom: none !important; }
.csv-hp-stepper-info strong {
	display: block !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #1f2937;
}
.csv-hp-stepper-info small {
	font-size: 13px !important;
	color: #6b7280 !important;
}
.csv-hp-stepper-ctrl {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
}
.csv-hp-stepper-ctrl button {
	width: 32px !important;
	height: 32px !important;
	border-radius: 999px !important;
	border: 1px solid #9ca3af !important;
	background: #fff !important;
	font-size: 18px !important;
	cursor: pointer !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	color: #1f2937 !important;
	font-family: inherit !important;
	transition: border-color 0.15s !important;
}
.csv-hp-stepper-ctrl button:hover { border-color: #1f2937 !important; }
.csv-hp-stepper-ctrl button:disabled {
	opacity: 0.35 !important;
	cursor: not-allowed !important;
}
.csv-hp-stepper-ctrl span {
	min-width: 24px !important;
	text-align: center !important;
	font-weight: 600 !important;
	color: #1f2937;
}

/* Footer */
.csv-hp-footer {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	padding: 18px 28px !important;
	border-top: 1px solid #ebebeb !important;
	background: #fff;
}
.csv-hp-clear {
	background: none !important;
	border: none !important;
	text-decoration: underline !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	color: #1f2937 !important;
	font-family: inherit !important;
	font-size: 14px !important;
}
.csv-hp-cta {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 12px 22px !important;
	background: var(--csv-yellow, #F5BB1F) !important;
	color: #1f2937 !important;
	border: none !important;
	border-radius: 66px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	font-size: 14px !important;
	transition: background 0.15s !important;
}
.csv-hp-cta:hover { background: var(--csv-yellow-dark, #D49A0F) !important; }

/* Ocultar buscador grande viejo si quedara algo */
.csv-header__search { display: none !important; }

/* === Mobile === */
@media (max-width: 900px) {
	.csv-header__row {
		grid-template-columns: auto 1fr auto !important;
		gap: 12px !important;
		min-height: 64px !important;
	}
	.csv-header__tabs { display: none !important; }

	/* Pill SIEMPRE visible en móvil */
	.csv-header__pill {
		display: inline-flex !important;
		padding: 5px !important;
		max-width: 100%;
		animation: none !important;
	}
	body:not(.csv-scrolled) .csv-header__pill { /* en móvil ignorar scrolled */
		display: inline-flex !important;
	}
	.csv-header__pill-btn { padding: 6px 10px !important; font-size: 12px !important; }
	.csv-header__pill-btn:not([data-pill-seg="dest"]) { display: none !important; }
	.csv-header__pill-sep { display: none !important; }

	.csv-header__actions .csv-header__cta { display: none !important; }
	.csv-header__actions .csv-locale { display: none !important; }
	.csv-header__logo img { height: 24px !important; }

	.csv-header__popover {
		width: calc(100vw - 12px) !important;
		max-width: calc(100vw - 12px) !important;
		border-radius: 24px !important;
		left: 50% !important;
	}
	.csv-header__popover-inner { padding: 16px 18px 0 !important; }
	.csv-hp-tabs { padding: 12px 18px 0 !important; }
	.csv-hp-footer { padding: 14px 18px !important; }
	.csv-hp-dates-wrap { grid-template-columns: 1fr !important; }
}

/* ============================================================
   v0.13.2 — Chips tipo/habs + Toggle Lista/Mapa móvil
   ============================================================ */

/* Chips para tipo de inmueble y habitaciones */
.csv-hp-chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
}
.csv-hp-chip {
	padding: 10px 16px;
	border: 1px solid #ebebeb;
	border-radius: 999px;
	background: #fff;
	font-size: 14px;
	font-weight: 600;
	color: #1f2937;
	cursor: pointer;
	font-family: inherit;
	transition: border-color 0.15s, background 0.15s, color 0.15s;
}
.csv-hp-chip:hover {
	border-color: #1f2937;
	background: #f7f7f7;
}
.csv-hp-chip.is-active {
	border-color: #1f2937;
	background: #1f2937;
	color: #fff;
}

/* === Botón flotante Lista/Mapa para móvil === */
.csv-mobile-mapviz {
	display: none;
	position: fixed;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%);
	background: #1f2937;
	color: #fff;
	border: none;
	border-radius: 999px;
	padding: 14px 22px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	box-shadow: 0 8px 24px rgba(0,0,0,0.25);
	z-index: 999;
	font-family: inherit;
	align-items: center;
	gap: 8px;
}
.csv-mobile-mapviz:hover { background: #111827; }
.csv-mobile-mapviz__icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

/* En desktop el toggle nunca se ve (search ya es split) */
@media (min-width: 901px) {
	.csv-mobile-mapviz { display: none !important; }
}

/* En móvil el toggle es visible cuando estamos en página de búsqueda */
@media (max-width: 900px) {
	body.casave-page--venta .csv-mobile-mapviz,
	body.casave-page--alquiler .csv-mobile-mapviz,
	body.casave-page--vacacional .csv-mobile-mapviz,
	body.casave-page--compartir .csv-mobile-mapviz,
	body.casave-page--comercial .csv-mobile-mapviz,
	body.casave-page--search .csv-mobile-mapviz {
		display: inline-flex !important;
	}

	/* Vista por defecto en móvil: lista visible, mapa oculto */
	body .csv-search-page__results { display: block; }
	body .csv-search-page__map { display: none; }

	/* Cuando body.csv-view-map: ocultar lista, mostrar mapa fullscreen */
	body.csv-view-map .csv-search-page__results { display: none !important; }
	body.csv-view-map .csv-search-page__map {
		display: block !important;
		position: fixed !important;
		top: 64px !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100% !important;
		height: calc(100vh - 64px) !important;
		z-index: 100;
		margin: 0 !important;
	}
	body.csv-view-map #csv-map {
		width: 100% !important;
		height: 100% !important;
	}
	body.csv-view-map .csv-mobile-mapviz {
		bottom: 24px;
	}
}

/* ============================================================
   v0.14 — PÁGINAS ESTÁTICAS UNIFICADAS estilo Airbnb
   Plantilla común: hero gradiente · feature rows · cards · faq · cta band
   ============================================================ */

/* === Variables del gradiente de marca === */
:root {
	--csv-gradient: linear-gradient(135deg, #F5BB1F 0%, #FFD466 50%, #FFE9A8 100%);
	--csv-gradient-soft: linear-gradient(135deg, #FFFCF0 0%, #FFF8E0 100%);
	--csv-gradient-strong: linear-gradient(135deg, #D49A0F 0%, #F5BB1F 50%, #FFD466 100%);
}

/* === Hero block === */
.csv-pg-hero {
	position: relative;
	padding: 80px 0 64px;
	overflow: hidden;
}
.csv-pg-hero--gradient {
	background: var(--csv-gradient-soft);
}
.csv-pg-hero--image {
	min-height: 480px;
	display: flex;
	align-items: center;
	color: #fff;
}
.csv-pg-hero__bg {
	position: absolute; inset: 0;
	background-size: cover;
	background-position: center;
	z-index: 0;
}
.csv-pg-hero__overlay {
	position: absolute; inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.65) 100%);
	z-index: 1;
}
.csv-pg-hero--image .csv-pg-hero__inner {
	position: relative; z-index: 2;
}
.csv-pg-hero__inner {
	max-width: 720px;
	margin: 0 auto;
	text-align: center;
}
.csv-pg-hero__eyebrow {
	display: inline-block;
	padding: 6px 14px;
	background: rgba(255,255,255,0.85);
	color: #92400E;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 20px;
	backdrop-filter: blur(8px);
}
.csv-pg-hero--gradient .csv-pg-hero__eyebrow {
	background: rgba(245, 187, 31, 0.18);
	color: #92400E;
}
.csv-pg-hero__title {
	font-size: clamp(36px, 5vw, 56px);
	font-weight: 800;
	line-height: 1.1;
	margin: 0 0 20px;
	letter-spacing: -0.02em;
}
.csv-pg-hero--gradient .csv-pg-hero__title { color: #1f2937; }
.csv-pg-hero__subtitle {
	font-size: 18px;
	line-height: 1.55;
	margin: 0 0 32px;
	opacity: 0.85;
}
.csv-pg-hero--gradient .csv-pg-hero__subtitle { color: #4b5563; opacity: 1; }
.csv-pg-hero__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 28px;
	background: #1f2937;
	color: #fff !important;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	text-decoration: none !important;
	transition: transform 0.18s, box-shadow 0.18s;
}
.csv-pg-hero__cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 12px 28px rgba(0,0,0,0.2);
}
.csv-pg-hero--gradient .csv-pg-hero__cta {
	background: var(--csv-gradient-strong);
	color: #1f2937 !important;
}

/* === Feature rows (alternados imagen+texto) === */
.csv-pg-feature {
	padding: 80px 0;
	background: #fff;
}
.csv-pg-feature:nth-of-type(even) { background: #fafafa; }
.csv-pg-feature__grid {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 64px;
	align-items: center;
}
.csv-pg-feature--reverse .csv-pg-feature__grid {
	direction: rtl;
}
.csv-pg-feature--reverse .csv-pg-feature__grid > * { direction: ltr; }
.csv-pg-feature__eyebrow {
	display: inline-block;
	padding: 4px 12px;
	background: var(--csv-gradient-soft);
	color: #92400E;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	margin-bottom: 16px;
}
.csv-pg-feature__title {
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 800;
	line-height: 1.15;
	margin: 0 0 20px;
	color: #1f2937;
	letter-spacing: -0.01em;
}
.csv-pg-feature__body {
	font-size: 17px;
	line-height: 1.6;
	color: #4b5563;
	margin: 0 0 24px;
}
.csv-pg-feature__bullets {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
}
.csv-pg-feature__bullets li {
	display: flex;
	align-items: flex-start;
	gap: 12px;
	padding: 10px 0;
	font-size: 15px;
	line-height: 1.5;
	color: #1f2937;
}
.csv-pg-feature__bullets svg {
	color: #10B981;
	flex-shrink: 0;
	margin-top: 2px;
}
.csv-pg-feature__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 24px;
	background: #1f2937;
	color: #fff !important;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none !important;
	transition: transform 0.18s;
}
.csv-pg-feature__cta:hover { transform: translateY(-2px); }
.csv-pg-feature__media img {
	width: 100%;
	height: auto;
	border-radius: 24px;
	box-shadow: 0 24px 60px rgba(0,0,0,0.12);
}

/* === Cards grid === */
.csv-pg-cards { padding: 80px 0; }
.csv-pg-cards__head { text-align: center; max-width: 640px; margin: 0 auto 48px; }
.csv-pg-cards__eyebrow {
	display: inline-block;
	padding: 4px 12px;
	background: var(--csv-gradient-soft);
	color: #92400E;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	margin-bottom: 16px;
}
.csv-pg-cards__title {
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 800;
	letter-spacing: -0.01em;
	color: #1f2937;
	margin: 0;
}
.csv-pg-cards__grid {
	display: grid;
	gap: 24px;
}
.csv-pg-cards__grid--3 { grid-template-columns: repeat(3, 1fr); }
.csv-pg-cards__grid--2 { grid-template-columns: repeat(2, 1fr); }
.csv-pg-card {
	background: #fff;
	border: 1px solid #ebebeb;
	border-radius: 24px;
	padding: 32px;
	transition: transform 0.22s, box-shadow 0.22s, border-color 0.22s;
}
.csv-pg-card:hover {
	transform: translateY(-4px);
	box-shadow: 0 24px 48px rgba(0,0,0,0.08);
	border-color: transparent;
}
.csv-pg-card__icon {
	width: 56px; height: 56px;
	border-radius: 16px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 20px;
}
.csv-pg-card__title {
	font-size: 20px;
	font-weight: 700;
	margin: 0 0 10px;
	color: #1f2937;
	letter-spacing: -0.01em;
}
.csv-pg-card__text {
	font-size: 14px;
	line-height: 1.55;
	color: #4b5563;
	margin: 0 0 16px;
}
.csv-pg-card__cta {
	display: inline-block;
	color: #1f2937;
	font-weight: 700;
	font-size: 14px;
	text-decoration: none !important;
}
.csv-pg-card__cta:hover { color: #D49A0F; }

/* === FAQ === */
.csv-pg-faq { padding: 80px 0; background: #fff; }
.csv-pg-faq__title {
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 800;
	text-align: center;
	margin: 0 0 48px;
	letter-spacing: -0.01em;
	color: #1f2937;
}
.csv-pg-faq__list {
	max-width: 760px;
	margin: 0 auto;
}
.csv-pg-faq__item {
	border-bottom: 1px solid #ebebeb;
	padding: 4px 0;
}
.csv-pg-faq__item summary {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 16px;
	padding: 20px 4px;
	cursor: pointer;
	font-weight: 600;
	font-size: 17px;
	color: #1f2937;
	list-style: none;
}
.csv-pg-faq__item summary::-webkit-details-marker { display: none; }
.csv-pg-faq__item summary svg {
	transition: transform 0.22s;
	flex-shrink: 0;
	color: #6b7280;
}
.csv-pg-faq__item[open] summary svg { transform: rotate(180deg); }
.csv-pg-faq__answer {
	padding: 0 4px 24px;
	font-size: 15px;
	line-height: 1.6;
	color: #4b5563;
}
.csv-pg-faq__answer a { color: #D49A0F; text-decoration: underline; }

/* === CTA band === */
.csv-pg-cta-band {
	padding: 80px 0;
	background: var(--csv-gradient);
}
.csv-pg-cta-band__inner {
	max-width: 640px;
	margin: 0 auto;
	text-align: center;
}
.csv-pg-cta-band__inner h2 {
	font-size: clamp(28px, 4vw, 44px);
	font-weight: 800;
	margin: 0 0 16px;
	color: #1f2937;
	letter-spacing: -0.02em;
	line-height: 1.15;
}
.csv-pg-cta-band__inner p {
	font-size: 17px;
	color: #4b5563;
	margin: 0 0 32px;
	line-height: 1.5;
}
.csv-pg-cta-band__buttons {
	display: inline-flex;
	gap: 12px;
	flex-wrap: wrap;
	justify-content: center;
}
.csv-pg-cta-band__btn {
	padding: 14px 28px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 15px;
	text-decoration: none !important;
	transition: transform 0.18s, box-shadow 0.18s;
	display: inline-flex;
	align-items: center;
	gap: 8px;
}
.csv-pg-cta-band__btn:hover { transform: translateY(-2px); }
.csv-pg-cta-band__btn--primary {
	background: #1f2937;
	color: #fff !important;
}
.csv-pg-cta-band__btn--primary:hover { box-shadow: 0 12px 28px rgba(0,0,0,0.25); }
.csv-pg-cta-band__btn--ghost {
	background: rgba(255,255,255,0.85);
	color: #1f2937 !important;
	backdrop-filter: blur(8px);
}
.csv-pg-cta-band__btn--ghost:hover { background: #fff; }

/* === Help: barra de búsqueda === */
.csv-pg-help-search {
	padding: 32px 0 0;
	background: #fff;
}
.csv-pg-help-search__form {
	max-width: 540px;
	margin: 0 auto;
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 16px 24px;
	background: #fff;
	border: 1px solid #ebebeb;
	border-radius: 999px;
	box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.csv-pg-help-search__form input {
	flex: 1;
	border: none;
	outline: none;
	font-size: 16px;
	background: transparent;
	font-family: inherit;
}

/* === Pricing === */
.csv-pg-pricing {
	padding: 80px 0;
	background: #fff;
}
.csv-pg-pricing__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 24px;
	max-width: 1100px;
	margin: 0 auto;
}
.csv-pg-pricing__card {
	background: #fff;
	border: 1px solid #ebebeb;
	border-radius: 24px;
	padding: 36px 30px;
	position: relative;
	transition: transform 0.22s, box-shadow 0.22s;
}
.csv-pg-pricing__card:hover { transform: translateY(-4px); box-shadow: 0 24px 48px rgba(0,0,0,0.1); }
.csv-pg-pricing__card--featured {
	background: var(--csv-gradient-soft);
	border-color: var(--csv-yellow);
	transform: scale(1.04);
}
.csv-pg-pricing__card--featured:hover { transform: scale(1.04) translateY(-4px); }
.csv-pg-pricing__badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	padding: 6px 14px;
	background: #1f2937;
	color: #fff;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
}
.csv-pg-pricing__name {
	font-size: 14px;
	font-weight: 700;
	text-transform: uppercase;
	color: #6b7280;
	letter-spacing: 0.05em;
	margin-bottom: 12px;
}
.csv-pg-pricing__price {
	font-size: 52px;
	font-weight: 800;
	color: #1f2937;
	line-height: 1;
	letter-spacing: -0.02em;
	margin-bottom: 8px;
}
.csv-pg-pricing__price span { font-size: 28px; vertical-align: top; margin-right: 4px; }
.csv-pg-pricing__price small { font-size: 15px; font-weight: 500; color: #6b7280; }
.csv-pg-pricing__desc {
	color: #6b7280;
	font-size: 14px;
	margin-bottom: 24px;
}
.csv-pg-pricing__features {
	list-style: none;
	padding: 0;
	margin: 0 0 28px;
}
.csv-pg-pricing__features li {
	padding: 10px 0;
	font-size: 14px;
	color: #1f2937;
	border-bottom: 1px solid rgba(0,0,0,0.04);
}
.csv-pg-pricing__features li.is-disabled { color: #9ca3af; text-decoration: line-through; }
.csv-pg-pricing__cta {
	display: block;
	text-align: center;
	padding: 14px 24px;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none !important;
	transition: all 0.18s;
}
.csv-pg-pricing__cta--primary {
	background: #1f2937;
	color: #fff !important;
}
.csv-pg-pricing__cta--primary:hover { background: #111827; transform: translateY(-2px); }
.csv-pg-pricing__cta--ghost {
	border: 1.5px solid #1f2937;
	color: #1f2937 !important;
	background: transparent;
}
.csv-pg-pricing__cta--ghost:hover { background: #1f2937; color: #fff !important; }

/* === Directorio === */
.csv-pg-directory { padding: 60px 0 80px; background: #fff; }
.csv-pg-directory__filters {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 32px;
	justify-content: center;
}
.csv-pg-directory__filter {
	padding: 10px 18px;
	border: 1px solid #ebebeb;
	border-radius: 999px;
	background: #fff;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.15s;
	font-family: inherit;
	color: #4b5563;
}
.csv-pg-directory__filter:hover { border-color: #1f2937; color: #1f2937; }
.csv-pg-directory__filter.is-active { background: #1f2937; color: #fff; border-color: #1f2937; }

.csv-pg-directory__grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
.csv-pg-directory__card {
	display: flex !important;
	align-items: center;
	gap: 16px;
	padding: 20px;
	background: #fff;
	border: 1px solid #ebebeb;
	border-radius: 18px;
	text-decoration: none !important;
	color: #1f2937 !important;
	transition: all 0.18s;
}
.csv-pg-directory__card:hover {
	border-color: #1f2937;
	transform: translateY(-2px);
	box-shadow: 0 12px 32px rgba(0,0,0,0.08);
}
.csv-pg-directory__avatar {
	width: 56px; height: 56px;
	border-radius: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	font-weight: 800;
	color: #92400E;
	flex-shrink: 0;
}
.csv-pg-directory__body { flex: 1; min-width: 0; }
.csv-pg-directory__body h3 {
	font-size: 15px;
	font-weight: 700;
	margin: 0 0 4px;
	display: flex;
	align-items: center;
	gap: 6px;
}
.csv-pg-directory__body p {
	font-size: 13px;
	color: #6b7280;
	margin: 0;
}
.csv-pg-directory__arrow { color: #9ca3af; flex-shrink: 0; }

/* === Calculadora (publicar gratis) === */
.csv-pg-calculator {
	padding: 80px 0;
	background: var(--csv-gradient-soft);
}
.csv-pg-calculator__inner {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 60px;
	align-items: center;
}
.csv-pg-calculator__inner h2 {
	font-size: clamp(28px, 3.5vw, 40px);
	font-weight: 800;
	margin: 0 0 16px;
	color: #1f2937;
	letter-spacing: -0.01em;
}
.csv-pg-calculator__inner p {
	font-size: 16px;
	line-height: 1.6;
	color: #4b5563;
	margin: 0 0 24px;
}
.csv-pg-calculator__display {
	background: #fff;
	border-radius: 24px;
	padding: 48px 36px;
	box-shadow: 0 24px 60px rgba(0,0,0,0.1);
}
.csv-pg-calculator__amount {
	font-size: 64px;
	font-weight: 800;
	background: var(--csv-gradient-strong);
	-webkit-background-clip: text;
	background-clip: text;
	-webkit-text-fill-color: transparent;
	letter-spacing: -0.02em;
}
.csv-pg-calculator__label {
	color: #6b7280;
	font-size: 14px;
	margin-bottom: 24px;
}
.csv-pg-calculator__bars {
	display: flex;
	gap: 8px;
	align-items: flex-end;
	height: 80px;
}
.csv-pg-calculator__bar {
	flex: 1;
	background: var(--csv-gradient-strong);
	border-radius: 6px 6px 0 0;
	animation: csv-bar-grow 1.2s ease-out;
	transform-origin: bottom;
}
@keyframes csv-bar-grow { from { transform: scaleY(0); } to { transform: scaleY(1); } }

/* === Confirm page === */
.csv-pg-confirm { padding: 80px 0; background: #fafafa; min-height: 70vh; }
.csv-pg-confirm__panel {
	max-width: 540px;
	margin: 0 auto;
	background: #fff;
	border-radius: 24px;
	padding: 48px 40px;
	text-align: center;
	box-shadow: 0 24px 60px rgba(0,0,0,0.08);
}
.csv-pg-confirm__icon {
	width: 80px; height: 80px;
	background: #D1FAE5;
	border-radius: 999px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 24px;
}
.csv-pg-confirm__panel h1 {
	font-size: 32px;
	font-weight: 800;
	margin: 0 0 12px;
	color: #1f2937;
}
.csv-pg-confirm__sub {
	color: #6b7280;
	margin: 0 0 32px;
}
.csv-pg-confirm__details {
	background: #f9fafb;
	border-radius: 16px;
	padding: 24px;
	margin-bottom: 28px;
	text-align: left;
}
.csv-pg-confirm__details > div {
	display: flex;
	justify-content: space-between;
	padding: 10px 0;
	border-bottom: 1px solid #f3f4f6;
	font-size: 14px;
}
.csv-pg-confirm__details > div:last-child { border-bottom: none; }
.csv-pg-confirm__details span { color: #6b7280; }
.csv-pg-confirm__details strong { color: #1f2937; }
.csv-pg-confirm__cta {
	display: flex;
	gap: 12px;
	justify-content: center;
	flex-wrap: wrap;
}

/* === Reveal animations (scroll-triggered) === */
[data-csv-reveal] {
	opacity: 0;
	transform: translateY(24px);
	transition: opacity 0.6s ease, transform 0.6s cubic-bezier(0.16, 1, 0.3, 1);
}
[data-csv-reveal].is-revealed {
	opacity: 1;
	transform: translateY(0);
}

/* === Z-index popover móvil sobre menú inferior === */
@media (max-width: 900px) {
	.csv-header__popover {
		z-index: 999999 !important;
		max-height: calc(100vh - 80px) !important;
		bottom: 16px !important;
		top: 72px !important;
	}
	.csv-header__popover-inner {
		max-height: calc(100vh - 200px) !important;
	}
	/* Backdrop bajo el popover para tapar todo lo demás */
	body.csv-pop-open::before {
		content: '';
		position: fixed; inset: 0;
		background: rgba(0,0,0,0.4);
		z-index: 999998;
		animation: csv-fade-in 0.2s ease;
	}
	@keyframes csv-fade-in { from { opacity: 0; } to { opacity: 1; } }
}

/* === Mobile pages === */
@media (max-width: 768px) {
	.csv-pg-hero { padding: 60px 0 48px; }
	.csv-pg-feature { padding: 56px 0; }
	.csv-pg-feature__grid {
		grid-template-columns: 1fr;
		gap: 32px;
	}
	.csv-pg-feature--reverse .csv-pg-feature__grid { direction: ltr; }
	.csv-pg-cards { padding: 56px 0; }
	.csv-pg-cards__grid--3, .csv-pg-cards__grid--2 { grid-template-columns: 1fr; }
	.csv-pg-faq { padding: 56px 0; }
	.csv-pg-cta-band { padding: 56px 0; }
	.csv-pg-pricing__grid { grid-template-columns: 1fr; }
	.csv-pg-pricing__card--featured { transform: none; }
	.csv-pg-pricing__card--featured:hover { transform: translateY(-4px); }
	.csv-pg-directory__grid { grid-template-columns: 1fr; }
	.csv-pg-calculator__inner { grid-template-columns: 1fr; gap: 32px; }
	.csv-pg-confirm__panel { padding: 32px 24px; }
}

/* ============================================================
   v0.14.1 — Página de anfitrión rediseñada
   ============================================================ */
.csv-host-page {
	max-width: 1100px;
	margin: 0 auto;
	padding: 40px 24px 80px;
}
.csv-host-hero {
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 40px;
	align-items: center;
	padding: 48px;
	background: var(--csv-gradient-soft);
	border-radius: 32px;
	margin-bottom: 48px;
}
.csv-host-avatar-large {
	position: relative;
	width: 180px; height: 180px;
	border-radius: 50%;
	background: var(--csv-gradient-strong);
	color: #1f2937;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 80px;
	font-weight: 800;
	box-shadow: 0 12px 32px rgba(0,0,0,0.12);
	border: 6px solid #fff;
}
.csv-host-avatar-large__badge {
	position: absolute;
	bottom: 8px; right: 8px;
	width: 44px; height: 44px;
	background: #1f2937;
	color: var(--csv-yellow);
	border-radius: 50%;
	border: 4px solid #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
}
.csv-host-hero__info h1 {
	font-size: 40px;
	font-weight: 800;
	margin: 0 0 8px;
	letter-spacing: -0.02em;
	color: #1f2937;
}
.csv-host-hero__role {
	color: #4b5563;
	font-size: 16px;
	margin: 0 0 20px;
}
.csv-host-badges {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	margin-bottom: 24px;
}
.csv-host-badge {
	display: inline-block;
	padding: 8px 14px;
	background: #fff;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	color: #1f2937;
	box-shadow: 0 2px 8px rgba(0,0,0,0.04);
}
.csv-host-stats {
	display: flex;
	gap: 32px;
}
.csv-host-stat strong {
	display: block;
	font-size: 28px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.01em;
	margin-bottom: 2px;
}
.csv-host-stat span {
	font-size: 13px;
	color: #6b7280;
}
.csv-host-section {
	margin-bottom: 56px;
}
.csv-host-section h2 {
	font-size: 28px;
	font-weight: 800;
	margin: 0 0 24px;
	color: #1f2937;
	letter-spacing: -0.01em;
}

@media (max-width: 768px) {
	.csv-host-hero {
		grid-template-columns: 1fr;
		text-align: center;
		padding: 32px 24px;
		gap: 20px;
	}
	.csv-host-avatar-large { width: 140px; height: 140px; font-size: 60px; margin: 0 auto; }
	.csv-host-hero__info h1 { font-size: 28px; }
	.csv-host-stats { justify-content: center; gap: 20px; }
}

/* ============================================================
   v0.14.3 — Override defensivo contra temas globales (Lumi/uicore/Elementor)
   Solo aplica dentro de body.casave-page para no afectar otras páginas
   ============================================================ */
body.casave-page a:not([class^="elementor"]):not([class*=" elementor"]):not([class^="uicore"]):not([class*=" uicore"]) {
	color: inherit;
}
body.casave-page .csv-header a,
body.casave-page .csv-header__pill *,
body.casave-page .csv-host-page a {
	color: #1f2937 !important;
	text-decoration: none !important;
}
body.casave-page .csv-tab:hover { color: #1f2937 !important; }
body.casave-page h1, body.casave-page h2, body.casave-page h3, body.casave-page h4 {
	font-family: 'DM Sans', Inter, system-ui, -apple-system, sans-serif !important;
	color: #1f2937;
}
body.casave-page * {
	box-sizing: border-box;
}
/* Evitar que el tema fuerce font-family en el body */
body.casave-page {
	font-family: 'DM Sans', Inter, system-ui, -apple-system, sans-serif !important;
}
/* Reset de buttons del tema */
body.casave-page button:not([class^="elementor"]) {
	font-family: inherit;
}

/* ============================================================
   v0.14.22 — AUDITORÍA COMPLETA single inmueble + hero v2 + modal
   Bloque único. Sin parches encima de parches.
   ============================================================ */

/* === 0. GLOBAL: bloquear scroll horizontal del documento === */
@media (max-width: 900px) {
	html, body {
		overflow-x: clip;
		max-width: 100%;
	}
	img, video, iframe { max-width: 100%; height: auto; }
}

/* === 1. SINGLE INMUEBLE: GRID + COLUMNAS bien construidas === */

/* Body grid: 2 columnas en desktop con minmax para evitar overflow */
.csv-listing__body {
	display: grid;
	grid-template-columns: minmax(0, 1.6fr) minmax(0, 380px);
	gap: 48px;
	align-items: flex-start;
}

/* Wrapper de la columna izquierda (HTML real usa "__content") */
.csv-listing__content {
	min-width: 0;
	max-width: 100%;
}

/* Cada sección dentro del contenido NUNCA debe desbordar */
.csv-listing__content > .csv-listing__section,
.csv-listing__content > section,
.csv-listing__sidebar > * {
	min-width: 0;
	max-width: 100%;
	box-sizing: border-box;
	overflow-wrap: break-word;
	word-wrap: break-word;
}

/* Lunnar card: contenido controlado */
.csv-lunnar-card {
	max-width: 100%;
	box-sizing: border-box;
	overflow: hidden;
}

/* Mobile single inmueble: una columna */
@media (max-width: 900px) {
	.csv-listing__body {
		display: block;
		grid-template-columns: none;
	}
	.csv-listing__sidebar {
		display: none;
	}
	.csv-listing__content {
		width: 100%;
		max-width: 100%;
	}
}

/* === 2. STICKY RESERVE BAR mobile === */
@media (max-width: 900px) {
	body.single-inmueble .csv-main,
	body.single-inmueble .casave-main {
		padding-bottom: 96px;
	}
	.csv-mobile-reserve-bar {
		position: fixed;
		bottom: 0; left: 0; right: 0;
		z-index: 998;
		background: #fff;
		border-top: 1px solid #ebebeb;
		padding: 12px 16px;
		display: flex;
		align-items: center;
		justify-content: space-between;
		gap: 12px;
		box-shadow: 0 -4px 16px rgba(0,0,0,0.08);
		box-sizing: border-box;
	}
	.csv-mobile-reserve-bar__price {
		display: flex; flex-direction: column;
		flex: 1; min-width: 0;
	}
	.csv-mobile-reserve-bar__price strong {
		font-size: 17px; font-weight: 800; color: #1f2937;
	}
	.csv-mobile-reserve-bar__price small {
		font-size: 12px; color: #6b7280;
	}
	.csv-mobile-reserve-bar__cta {
		background: #F5BB1F; color: #1f2937;
		border: none; padding: 12px 24px;
		border-radius: 66px;
		font-size: 14px; font-weight: 800;
		font-family: inherit; cursor: pointer;
		white-space: nowrap; flex-shrink: 0;
	}
}
@media (min-width: 901px) {
	.csv-mobile-reserve-bar { display: none; }
}

/* === 3. MAPA del single inmueble === */
.csv-listing__map {
	width: 100%;
	max-width: 100%;
	height: 360px;
	border-radius: 16px;
	overflow: hidden;
	box-sizing: border-box;
	background: #e8f1f4;
}
.csv-listing__map .leaflet-container {
	width: 100% !important;
	height: 100% !important;
	border-radius: 16px;
}
@media (max-width: 768px) {
	.csv-listing__map { height: 280px; }
}

/* === 4. MODAL ANFITRIÓN === */
.csv-host-modal {
	display: none;
	position: fixed;
	inset: 0;
	z-index: 100000;
	align-items: center;
	justify-content: center;
	pointer-events: none;
}
.csv-host-modal.is-open {
	display: flex;
	pointer-events: auto;
}
.csv-host-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
	backdrop-filter: blur(4px);
	-webkit-backdrop-filter: blur(4px);
}
.csv-host-modal__panel {
	position: relative;
	background: #fff;
	border-radius: 24px;
	max-width: 560px;
	width: calc(100% - 32px);
	max-height: 88vh;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	box-shadow: 0 24px 60px rgba(0,0,0,0.3);
	box-sizing: border-box;
	animation: csv-host-pop 0.28s cubic-bezier(0.16, 1, 0.3, 1);
}
@keyframes csv-host-pop {
	from { opacity: 0; transform: scale(0.94) translateY(20px); }
	to { opacity: 1; transform: scale(1) translateY(0); }
}
.csv-host-modal__close {
	position: absolute;
	top: 16px; right: 16px;
	width: 36px; height: 36px;
	border-radius: 999px;
	background: #f3f4f6;
	border: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
	color: #1f2937;
	padding: 0;
	font-family: inherit;
}
.csv-host-modal__close:hover { background: #e5e7eb; }
.csv-host-modal__body { padding: 40px 32px 32px; }
.csv-host-modal__hero {
	display: flex;
	align-items: center;
	gap: 20px;
	padding-bottom: 24px;
	border-bottom: 1px solid #ebebeb;
	margin-bottom: 24px;
}
.csv-host-modal__avatar {
	position: relative;
	width: 96px; height: 96px;
	min-width: 96px;
	border-radius: 50%;
	background: linear-gradient(135deg, #D49A0F 0%, #F5BB1F 50%, #FFD466 100%);
	color: #1f2937;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 40px;
	font-weight: 800;
	flex-shrink: 0;
	box-shadow: 0 8px 24px rgba(245, 187, 31, 0.3);
	border: 4px solid #fff;
}
.csv-host-modal__avatar-badge {
	position: absolute;
	bottom: -2px; right: -2px;
	width: 30px; height: 30px;
	background: #1f2937;
	color: #F5BB1F;
	border-radius: 999px;
	border: 3px solid #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 14px;
}
.csv-host-modal__name {
	font-size: 22px;
	font-weight: 800;
	margin: 0 0 4px;
	color: #1f2937;
}
.csv-host-modal__role {
	font-size: 13px;
	color: #6b7280;
	margin: 0;
}
.csv-host-modal__stats {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 12px;
	margin-bottom: 24px;
}
.csv-host-modal__stat {
	text-align: center;
	padding: 16px 8px;
	background: linear-gradient(135deg, #FFFCF0 0%, #FFF1C7 100%);
	border-radius: 14px;
	min-width: 0;
}
.csv-host-modal__stat strong {
	display: block;
	font-size: 20px;
	font-weight: 800;
	color: #1f2937;
}
.csv-host-modal__stat span {
	font-size: 11px;
	color: #6b7280;
}
.csv-host-modal__bio {
	font-size: 14px;
	line-height: 1.6;
	color: #4b5563;
	margin: 0 0 24px;
}
.csv-host-modal__actions {
	display: flex;
	gap: 10px;
}
.csv-host-modal__cta {
	flex: 1;
	background: #F5BB1F;
	color: #1f2937;
	border: none;
	padding: 14px 20px;
	border-radius: 66px;
	font-size: 14px;
	font-weight: 700;
	cursor: pointer;
	font-family: inherit;
	text-align: center;
	text-decoration: none;
}
.csv-host-modal__cta--ghost {
	background: #fff;
	border: 1px solid #1f2937;
	color: #1f2937;
}
@media (max-width: 600px) {
	.csv-host-modal__panel {
		width: 100%;
		max-width: 100%;
		min-height: 100vh;
		max-height: 100vh;
		border-radius: 0;
	}
	.csv-host-modal { align-items: stretch; }
	.csv-host-modal__body { padding: 60px 20px 24px; }
	.csv-host-modal__hero { flex-direction: column; text-align: center; gap: 14px; }
	.csv-host-modal__avatar { width: 80px; height: 80px; font-size: 32px; min-width: 80px; }
	.csv-host-modal__actions { flex-direction: column; }
}

/* === 5. HERO V2 (home) === */
.csv-hero--v2 {
	position: relative;
	min-height: 600px;
	background-size: cover;
	background-position: center;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 80px 24px;
	color: #fff;
	overflow: hidden;
}
.csv-hero--v2 .csv-hero__overlay {
	position: absolute;
	inset: 0;
	background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, rgba(0,0,0,0.6) 100%);
	pointer-events: none;
	z-index: 0;
}
.csv-hero--v2 .csv-hero__inner {
	position: relative;
	max-width: 760px;
	margin: 0 auto;
	text-align: center;
	width: 100%;
	z-index: 1;
}
.csv-hero--v2 .csv-hero__eyebrow {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 8px 18px;
	background: rgba(255,255,255,0.15);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255,255,255,0.2);
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	color: #fff;
	margin-bottom: 24px;
}
.csv-hero--v2 .csv-hero__title {
	font-size: clamp(36px, 6vw, 60px);
	font-weight: 900;
	line-height: 1.05;
	letter-spacing: -0.025em;
	color: #fff;
	margin: 0 0 20px;
	text-shadow: 0 2px 24px rgba(0,0,0,0.4);
}
.csv-hero--v2 .csv-hero__sub {
	font-size: 18px;
	color: rgba(255,255,255,0.95);
	margin: 0 auto 36px;
	max-width: 540px;
	text-shadow: 0 1px 8px rgba(0,0,0,0.3);
}
.csv-hero--v2 .csv-hero__searchbar {
	background: #fff;
	border-radius: 999px;
	padding: 6px;
	display: flex;
	align-items: center;
	max-width: 600px;
	margin: 0 auto;
	box-shadow: 0 16px 48px rgba(0,0,0,0.25);
	color: #1f2937;
}
.csv-hero--v2 .csv-hero__seg {
	flex: 1;
	padding: 14px 22px;
	text-align: left;
	cursor: pointer;
	border-radius: 999px;
	background: transparent;
	border: none;
	font-family: inherit;
	min-width: 0;
}
.csv-hero--v2 .csv-hero__seg:hover { background: #f5f5f5; }
.csv-hero--v2 .csv-hero__seg-lbl {
	font-size: 11px; font-weight: 700; color: #1f2937; margin-bottom: 2px;
}
.csv-hero--v2 .csv-hero__seg-val {
	font-size: 13px; color: #6b7280;
	white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.csv-hero--v2 .csv-hero__sep { width: 1px; height: 28px; background: #ebebeb; flex-shrink: 0; }
.csv-hero--v2 .csv-hero__cta {
	background: #F5BB1F; color: #1f2937;
	border: none;
	padding: 0 22px; height: 52px;
	border-radius: 999px;
	font-weight: 800; font-size: 14px;
	cursor: pointer; margin: 0 4px;
	font-family: inherit;
	display: inline-flex; align-items: center; gap: 8px;
	flex-shrink: 0;
}
.csv-hero--v2 .csv-hero__chips {
	display: flex; gap: 8px;
	justify-content: center;
	flex-wrap: wrap;
	margin-top: 28px;
}
.csv-hero--v2 .csv-hero__chip {
	background: rgba(255,255,255,0.15);
	backdrop-filter: blur(12px);
	-webkit-backdrop-filter: blur(12px);
	border: 1px solid rgba(255,255,255,0.2);
	color: #fff;
	padding: 10px 18px;
	border-radius: 999px;
	font-size: 13px; font-weight: 700;
	cursor: pointer; font-family: inherit;
	transition: background 0.2s, color 0.2s;
}
.csv-hero--v2 .csv-hero__chip:hover,
.csv-hero--v2 .csv-hero__chip.is-active {
	background: #fff; color: #1f2937;
}
@media (max-width: 640px) {
	.csv-hero--v2 { min-height: 520px; padding: 48px 16px; }
	.csv-hero--v2 .csv-hero__searchbar {
		flex-direction: column;
		padding: 8px;
		border-radius: 20px;
		gap: 4px;
	}
	.csv-hero--v2 .csv-hero__seg { width: 100%; }
	.csv-hero--v2 .csv-hero__sep { display: none; }
	.csv-hero--v2 .csv-hero__cta { width: 100%; justify-content: center; margin: 4px 0 0; }
	.csv-hero--v2 .csv-hero__chip { padding: 8px 14px; font-size: 12px; }
}

/* === 6. Hero título antiguo en blanco (por si alguna página lo usa) === */
.csv-hero h1,
section.csv-hero h1,
body.casave-page .csv-hero h1 {
	color: #fff;
}

/* === 7. Padding sugerencias sheet === */
.csv-sheet-suggestions .csv-sheet-suggest:last-child { margin-bottom: 12px; }

/* ============================================================
   v0.14.25 — Bottom Sheet CON !important contra tema agresivo
   ============================================================ */

/* Blur a contenido cuando sheet abierto */
body.csv-sheet-open > *:not(.csv-search-sheet) {
	filter: blur(3px) !important;
	transition: filter 0.3s ease !important;
	pointer-events: none !important;
}
body.csv-sheet-open { overflow: hidden !important; }

/* === SHEET OVERLAY === */
body .csv-search-sheet,
.csv-search-sheet {
	position: fixed !important;
	inset: 0 !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	bottom: 0 !important;
	width: 100vw !important;
	height: 100vh !important;
	z-index: 2147483647 !important;
	display: flex !important;
	align-items: flex-end !important;
	justify-content: center !important;
	margin: 0 !important;
	padding: 0 !important;
	pointer-events: none !important;
	box-sizing: border-box !important;
}
body .csv-search-sheet[hidden],
.csv-search-sheet[hidden] { display: none !important; }
body .csv-search-sheet.is-open,
.csv-search-sheet.is-open { pointer-events: auto !important; }

body .csv-search-sheet__backdrop,
.csv-search-sheet__backdrop {
	position: absolute !important;
	inset: 0 !important;
	background: rgba(0,0,0,0) !important;
	transition: background 0.3s ease !important;
	margin: 0 !important;
	border: none !important;
}
body .csv-search-sheet.is-open .csv-search-sheet__backdrop,
.csv-search-sheet.is-open .csv-search-sheet__backdrop {
	background: rgba(0,0,0,0.4) !important;
}

body .csv-search-sheet__panel,
.csv-search-sheet__panel {
	position: relative !important;
	background: #fafafa !important;
	width: 100% !important;
	max-width: 600px !important;
	max-height: 92vh !important;
	border-radius: 24px 24px 0 0 !important;
	display: flex !important;
	flex-direction: column !important;
	overflow: hidden !important;
	transform: translateY(100%) !important;
	transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1) !important;
	box-shadow: 0 -8px 40px rgba(0,0,0,0.25) !important;
	margin: 0 !important;
	box-sizing: border-box !important;
	border: none !important;
}
body .csv-search-sheet.is-open .csv-search-sheet__panel,
.csv-search-sheet.is-open .csv-search-sheet__panel {
	transform: translateY(0) !important;
}

/* === HEADER del sheet === */
body .csv-search-sheet__head,
.csv-search-sheet__head {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: 16px 16px 8px !important;
	background: #fafafa !important;
	flex-shrink: 0 !important;
	gap: 8px !important;
	box-sizing: border-box !important;
	border: none !important;
	margin: 0 !important;
}
body .csv-search-sheet__back,
.csv-search-sheet__back {
	background: transparent !important;
	border: none !important;
	box-shadow: none !important;
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	border-radius: 999px !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	color: #1f2937 !important;
	padding: 0 !important;
	font-family: inherit !important;
	margin: 0 !important;
}
body .csv-search-sheet__close,
.csv-search-sheet__close {
	background: #fff !important;
	border: 1px solid #ebebeb !important;
	width: 36px !important;
	height: 36px !important;
	min-width: 36px !important;
	border-radius: 999px !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	color: #1f2937 !important;
	padding: 0 !important;
	font-family: inherit !important;
	box-shadow: 0 2px 6px rgba(0,0,0,0.06) !important;
	margin: 0 !important;
}

body .csv-search-sheet__tabs,
.csv-search-sheet__tabs {
	display: flex !important;
	align-items: flex-end !important;
	gap: 12px !important;
	flex: 1 !important;
	justify-content: center !important;
	overflow-x: auto !important;
	-webkit-overflow-scrolling: touch !important;
	scrollbar-width: none !important;
	padding: 0 !important;
	margin: 0 !important;
}
body .csv-search-sheet__tabs::-webkit-scrollbar,
.csv-search-sheet__tabs::-webkit-scrollbar { display: none !important; }

body .csv-sheet-tab,
.csv-sheet-tab {
	background: none !important;
	border: none !important;
	padding: 8px 4px 10px !important;
	font-family: inherit !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	cursor: pointer !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 4px !important;
	border-bottom: 2px solid transparent !important;
	flex-shrink: 0 !important;
	white-space: nowrap !important;
	line-height: 1.2 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
body .csv-sheet-tab__emoji,
.csv-sheet-tab__emoji { font-size: 22px !important; line-height: 1 !important; }
body .csv-sheet-tab__label,
.csv-sheet-tab__label { font-size: 12px !important; line-height: 1.2 !important; }
body .csv-sheet-tab.is-active,
.csv-sheet-tab.is-active {
	color: #1f2937 !important;
	border-bottom-color: #1f2937 !important;
	font-weight: 700 !important;
}

/* === BODY del sheet === */
body .csv-search-sheet__body,
.csv-search-sheet__body {
	flex: 1 !important;
	overflow-y: auto !important;
	-webkit-overflow-scrolling: touch !important;
	padding: 8px 16px 16px !important;
	box-sizing: border-box !important;
	background: #fafafa !important;
}

/* === SECCIONES colapsables === */
body .csv-sheet-section,
.csv-sheet-section {
	background: #fff !important;
	border-radius: 16px !important;
	margin: 0 0 12px 0 !important;
	overflow: hidden !important;
	box-shadow: 0 1px 3px rgba(0,0,0,0.04) !important;
	box-sizing: border-box !important;
	width: 100% !important;
	border: none !important;
	transition: box-shadow 0.4s cubic-bezier(0.32, 0.72, 0, 1) !important;
}
body .csv-sheet-section.is-expanded,
.csv-sheet-section.is-expanded {
	box-shadow: 0 8px 32px rgba(0,0,0,0.1) !important;
}

body .csv-sheet-section__head,
.csv-sheet-section__head {
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	padding: 22px 24px !important;
	width: 100% !important;
	background: none !important;
	border: none !important;
	cursor: pointer !important;
	font-family: inherit !important;
	transition: padding 0.4s cubic-bezier(0.32, 0.72, 0, 1) !important;
	text-align: left !important;
	box-sizing: border-box !important;
	gap: 12px !important;
	margin: 0 !important;
	box-shadow: none !important;
}
body .csv-sheet-section.is-expanded .csv-sheet-section__head,
.csv-sheet-section.is-expanded .csv-sheet-section__head {
	padding: 24px 24px 8px !important;
	cursor: default !important;
}
body .csv-sheet-section__label,
.csv-sheet-section__label {
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	transition: font-size 0.4s cubic-bezier(0.32, 0.72, 0, 1), color 0.3s ease !important;
	line-height: 1.2 !important;
	font-family: inherit !important;
	margin: 0 !important;
}
body .csv-sheet-section.is-expanded .csv-sheet-section__label,
.csv-sheet-section.is-expanded .csv-sheet-section__label {
	font-size: 22px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	letter-spacing: -0.01em !important;
}
body .csv-sheet-section__value,
.csv-sheet-section__value {
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	max-width: 200px !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	font-family: inherit !important;
	margin: 0 !important;
}
body .csv-sheet-section.is-expanded .csv-sheet-section__value,
.csv-sheet-section.is-expanded .csv-sheet-section__value { display: none !important; }

body .csv-sheet-section__body,
.csv-sheet-section__body {
	max-height: 0 !important;
	overflow: hidden !important;
	transition: max-height 0.45s cubic-bezier(0.32, 0.72, 0, 1) !important;
}
body .csv-sheet-section.is-expanded .csv-sheet-section__body,
.csv-sheet-section.is-expanded .csv-sheet-section__body {
	max-height: 800px !important;
}
body .csv-sheet-section__body-inner,
.csv-sheet-section__body-inner {
	padding: 0 24px 24px !important;
	opacity: 0 !important;
	transform: translateY(8px) !important;
	transition: opacity 0.3s ease 0.1s, transform 0.3s ease 0.1s !important;
	box-sizing: border-box !important;
}
body .csv-sheet-section.is-expanded .csv-sheet-section__body-inner,
.csv-sheet-section.is-expanded .csv-sheet-section__body-inner {
	opacity: 1 !important;
	transform: translateY(0) !important;
}

/* === INPUT destino === */
body .csv-sheet-input-wrap,
.csv-sheet-input-wrap {
	position: relative !important;
	margin: 0 0 22px 0 !important;
}
body .csv-sheet-input-icon,
.csv-sheet-input-icon {
	position: absolute !important;
	left: 18px !important;
	top: 50% !important;
	transform: translateY(-50%) !important;
	pointer-events: none !important;
}
body .csv-sheet-input,
.csv-sheet-input {
	width: 100% !important;
	border: 1px solid #ebebeb !important;
	border-radius: 999px !important;
	padding: 16px 20px 16px 48px !important;
	font-size: 15px !important;
	font-family: inherit !important;
	background: #fff !important;
	box-sizing: border-box !important;
	color: #1f2937 !important;
	margin: 0 !important;
	line-height: 1.3 !important;
	box-shadow: none !important;
	outline: none !important;
}
body .csv-sheet-input:focus,
.csv-sheet-input:focus {
	outline: none !important;
	border-color: #1f2937 !important;
	box-shadow: 0 0 0 2px rgba(31,41,55,0.08) !important;
}

body .csv-sheet-list-title,
.csv-sheet-list-title {
	font-size: 13px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	margin: 0 0 12px 0 !important;
	padding: 0 !important;
}
body .csv-sheet-recent-wrap,
.csv-sheet-recent-wrap { margin: 0 0 24px 0 !important; }

body .csv-sheet-suggest,
.csv-sheet-suggest {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	padding: 10px 0 !important;
	cursor: pointer !important;
	background: none !important;
	border: none !important;
	width: 100% !important;
	font-family: inherit !important;
	text-align: left !important;
	margin: 0 !important;
	box-shadow: none !important;
}
body .csv-sheet-suggest:hover,
.csv-sheet-suggest:hover { opacity: 0.7 !important; }
body .csv-sheet-suggest__icon,
.csv-sheet-suggest__icon {
	width: 52px !important;
	height: 52px !important;
	min-width: 52px !important;
	border-radius: 14px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
}
body .csv-sheet-suggest__text,
.csv-sheet-suggest__text { flex: 1 !important; min-width: 0 !important; }
body .csv-sheet-suggest__text strong,
.csv-sheet-suggest__text strong {
	display: block !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	margin: 0 0 2px 0 !important;
	font-family: inherit !important;
}
body .csv-sheet-suggest__text small,
.csv-sheet-suggest__text small {
	font-size: 13px !important;
	color: #6b7280 !important;
	display: block !important;
	font-family: inherit !important;
}

/* === FECHAS === */
body .csv-sheet-dates,
.csv-sheet-dates {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 12px !important;
	margin: 0 0 16px 0 !important;
}
body .csv-sheet-date-field,
.csv-sheet-date-field {
	display: flex !important;
	flex-direction: column !important;
	gap: 4px !important;
	padding: 12px 16px !important;
	border: 1px solid #ebebeb !important;
	border-radius: 14px !important;
	background: #fff !important;
	box-sizing: border-box !important;
}
body .csv-sheet-date-field span,
.csv-sheet-date-field span {
	font-size: 11px !important;
	font-weight: 700 !important;
	color: #6b7280 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.05em !important;
}
body .csv-sheet-date-field input,
.csv-sheet-date-field input {
	border: none !important;
	outline: none !important;
	font-size: 15px !important;
	font-family: inherit !important;
	color: #1f2937 !important;
	background: none !important;
	width: 100% !important;
	padding: 0 !important;
	box-shadow: none !important;
}
body .csv-sheet-quick,
.csv-sheet-quick {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
}
body .csv-sheet-quick-btn,
.csv-sheet-quick-btn {
	padding: 8px 16px !important;
	border: 1px solid #ebebeb !important;
	border-radius: 999px !important;
	background: #fff !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	color: #1f2937 !important;
	line-height: 1.2 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
body .csv-sheet-quick-btn:hover,
.csv-sheet-quick-btn:hover {
	border-color: #1f2937 !important;
	background: #f7f7f7 !important;
}

/* === STEPPERS viajeros === */
body .csv-search-sheet .csv-stepper,
.csv-search-sheet .csv-stepper {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	padding: 18px 0 !important;
	border-bottom: 1px solid #ebebeb !important;
	box-sizing: border-box !important;
	margin: 0 !important;
}
body .csv-search-sheet .csv-stepper:last-child,
.csv-search-sheet .csv-stepper:last-child {
	border-bottom: none !important;
}
body .csv-search-sheet .csv-stepper__info strong,
.csv-search-sheet .csv-stepper__info strong {
	display: block !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	margin: 0 0 2px 0 !important;
	font-family: inherit !important;
}
body .csv-search-sheet .csv-stepper__info small,
.csv-search-sheet .csv-stepper__info small {
	font-size: 13px !important;
	color: #6b7280 !important;
	font-family: inherit !important;
}
body .csv-search-sheet .csv-stepper__ctrl,
.csv-search-sheet .csv-stepper__ctrl {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
}
body .csv-search-sheet .csv-stepper__btn,
.csv-search-sheet .csv-stepper__btn {
	width: 32px !important;
	height: 32px !important;
	min-width: 32px !important;
	border-radius: 999px !important;
	border: 1px solid #6b7280 !important;
	background: none !important;
	color: #6b7280 !important;
	font-size: 18px !important;
	font-weight: 400 !important;
	cursor: pointer !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-family: inherit !important;
	padding: 0 !important;
	line-height: 1 !important;
	box-shadow: none !important;
	margin: 0 !important;
}
body .csv-search-sheet .csv-stepper__btn:hover:not(:disabled),
.csv-search-sheet .csv-stepper__btn:hover:not(:disabled) {
	border-color: #1f2937 !important;
	color: #1f2937 !important;
}
body .csv-search-sheet .csv-stepper__btn:disabled,
.csv-search-sheet .csv-stepper__btn:disabled {
	opacity: 0.3 !important;
	cursor: not-allowed !important;
}
body .csv-search-sheet .csv-stepper__count,
.csv-search-sheet .csv-stepper__count {
	min-width: 16px !important;
	text-align: center !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
}

/* === CHIPS === */
body .csv-sheet-chips,
.csv-sheet-chips {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	margin: 0 !important;
}
body .csv-sheet-chip,
.csv-sheet-chip {
	padding: 10px 18px !important;
	border: 1px solid #ebebeb !important;
	border-radius: 999px !important;
	background: #fff !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	line-height: 1 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
body .csv-sheet-chip:hover,
.csv-sheet-chip:hover {
	border-color: #1f2937 !important;
	background: #f7f7f7 !important;
}
body .csv-sheet-chip.is-active,
.csv-sheet-chip.is-active {
	border-color: #1f2937 !important;
	background: #1f2937 !important;
	color: #fff !important;
}

/* === FOOTER === */
body .csv-search-sheet__footer,
.csv-search-sheet__footer {
	background: #fff !important;
	border-top: 1px solid #ebebeb !important;
	padding: 14px 20px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: space-between !important;
	flex-shrink: 0 !important;
	box-sizing: border-box !important;
	gap: 12px !important;
}
body .csv-search-sheet__clear,
.csv-search-sheet__clear {
	background: none !important;
	border: none !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	text-decoration: underline !important;
	cursor: pointer !important;
	padding: 8px 0 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
body .csv-search-sheet__cta,
.csv-search-sheet__cta {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 50%, #FFE9A8 100%) !important;
	color: #1f2937 !important;
	border: none !important;
	padding: 14px 28px !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	margin: 0 !important;
	line-height: 1 !important;
	box-shadow: none !important;
}

/* Desktop: centrar el panel */
@media (min-width: 768px) {
	body .csv-search-sheet,
	.csv-search-sheet { align-items: center !important; }
	body .csv-search-sheet__panel,
	.csv-search-sheet__panel {
		border-radius: 24px !important;
		max-width: 720px !important;
		max-height: 86vh !important;
	}
}

/* === HOST CARD bonito (single inmueble) === */
body.casave-page .csv-listing__host,
.csv-listing__host {
	display: flex !important;
	align-items: center !important;
	gap: 18px !important;
	padding: 20px !important;
	background: linear-gradient(135deg, #FFFCF0 0%, #FFFFFF 100%) !important;
	border: 1px solid #FFE9A8 !important;
	border-radius: 20px !important;
	cursor: pointer !important;
	box-shadow: 0 2px 12px rgba(245, 187, 31, 0.08) !important;
	margin-bottom: 32px !important;
	position: relative !important;
	transition: transform 0.15s, box-shadow 0.2s !important;
}
body.casave-page .csv-listing__host:hover,
.csv-listing__host:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 28px rgba(245, 187, 31, 0.18) !important;
}
body.casave-page .csv-listing__host::after,
.csv-listing__host::after {
	content: '' !important;
	position: absolute !important;
	right: 22px !important;
	top: 50% !important;
	transform: translateY(-50%) rotate(-45deg) !important;
	width: 10px !important;
	height: 10px !important;
	border-right: 2px solid #9ca3af !important;
	border-bottom: 2px solid #9ca3af !important;
}
body.casave-page .csv-listing__host-avatar,
.csv-listing__host-avatar {
	position: relative !important;
	width: 64px !important;
	height: 64px !important;
	min-width: 64px !important;
	border-radius: 50% !important;
	background: linear-gradient(135deg, #D49A0F 0%, #F5BB1F 50%, #FFD466 100%) !important;
	color: #1f2937 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 28px !important;
	font-weight: 800 !important;
	flex-shrink: 0 !important;
	box-shadow: 0 6px 18px rgba(245, 187, 31, 0.3) !important;
	border: 4px solid #fff !important;
	cursor: pointer !important;
}
body.casave-page .csv-listing__super-badge,
.csv-listing__super-badge {
	position: absolute !important;
	bottom: -2px !important;
	right: -2px !important;
	width: 22px !important;
	height: 22px !important;
	background: #1f2937 !important;
	color: #F5BB1F !important;
	border: 2px solid #fff !important;
	border-radius: 999px !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 11px !important;
}
body.casave-page .csv-listing__host > div,
.csv-listing__host > div {
	flex: 1 !important;
	min-width: 0 !important;
	padding-right: 24px !important;
}
body.casave-page .csv-listing__host strong,
.csv-listing__host strong {
	display: block !important;
	font-size: 16px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	margin-bottom: 4px !important;
}
body.casave-page .csv-listing__host > div > span,
.csv-listing__host > div > span {
	display: block !important;
	font-size: 13px !important;
	color: #6b7280 !important;
}

/* === Mapa fix === */
.leaflet-container { background: #dde7e8 !important; font: inherit !important; }
.leaflet-tile-loaded { opacity: 1 !important; }

/* ============================================================
   v0.14.32 — MAPA: definición FINAL única
   Layout simple, dimensiones predecibles, sin sticky
   ============================================================ */

/* === DESKTOP (>= 1025px): Layout flex de 2 columnas === */
@media (min-width: 1025px) {
	body .csv-search-page {
		display: flex;
		flex-direction: row;
		align-items: stretch;
		min-height: calc(100vh - 80px);
		padding: 0;
	}
	body .csv-search-page__results {
		flex: 1 1 50%;
		max-width: 50%;
		padding: 24px;
		box-sizing: border-box;
		overflow-y: visible;
	}
	body .csv-search-page__map {
		flex: 1 1 50%;
		max-width: 50%;
		height: calc(100vh - 80px);
		position: sticky;
		top: 80px;
		background: #e5e7eb;
		display: block;
		overflow: hidden;
		align-self: flex-start;
	}
}

/* === MOBILE: mapa oculto por defecto === */
@media (max-width: 1024px) {
	body .csv-search-page__map {
		display: none;
	}
}

/* === Contenedor interno del mapa Leaflet === */
body #csv-map,
#csv-map {
	width: 100%;
	height: 100%;
	background: #e5e7eb;
	position: relative;
}

/* === LEAFLET CONTAINER === */
.leaflet-container {
	background: #e5e7eb;
	font-family: inherit;
	width: 100%;
	height: 100%;
}

.leaflet-tile {
	opacity: 1;
}

/* === MARKERS DE PRECIO === */
.csv-map-marker {
	background: transparent;
	border: none;
}
.csv-map-price {
	display: inline-block;
	background: #fff;
	color: #1f2937;
	border: 1px solid rgba(0,0,0,0.1);
	border-radius: 999px;
	padding: 6px 14px;
	font-size: 13px;
	font-weight: 700;
	white-space: nowrap;
	box-shadow: 0 2px 8px rgba(0,0,0,0.18);
	font-family: inherit;
	cursor: pointer;
	transition: transform 0.15s;
}
.csv-map-price:hover {
	transform: scale(1.05);
	z-index: 1000;
}
.csv-map-marker.is-active .csv-map-price {
	background: #1f2937;
	color: #fff;
	transform: scale(1.08);
}

/* === SINGLE INMUEBLE MAP === */
.csv-listing__map {
	width: 100%;
	max-width: 100%;
	height: 380px;
	min-height: 300px;
	border-radius: 16px;
	overflow: hidden;
	box-sizing: border-box;
	background: #e5e7eb;
	position: relative;
}
@media (max-width: 768px) {
	.csv-listing__map { height: 280px; }
}

/* === POPUP === */
.leaflet-popup-content-wrapper {
	border-radius: 16px;
	padding: 0;
	overflow: hidden;
}
.leaflet-popup-content {
	margin: 0;
	width: 240px !important;
}
.csv-map-popup__img {
	display: block;
	width: 100%;
	height: 140px;
	overflow: hidden;
}
.csv-map-popup__img img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}
.csv-map-popup__body {
	display: block;
	padding: 12px 14px;
	text-decoration: none;
	color: #1f2937;
}
.csv-map-popup__title {
	display: block;
	font-size: 14px;
	font-weight: 700;
	margin-bottom: 2px;
}
.csv-map-popup__loc {
	display: block;
	font-size: 12px;
	color: #6b7280;
	margin-bottom: 4px;
}
.csv-map-popup__price {
	display: block;
	font-size: 13px;
	font-weight: 700;
}

/* ============================================================
   v0.14.33 — Buscador unificado: zoom-fix, autocomplete, geolocation
   ============================================================ */

/* Bloquear zoom en focus de inputs en iOS (fuente >= 16px) */
body .csv-sheet-input,
.csv-sheet-input,
body .csv-sheet-date-field input,
.csv-sheet-date-field input,
body input[type="text"],
body input[type="search"],
body input[type="email"],
body input[type="password"],
body input[type="date"],
body input[type="number"],
body select,
body textarea {
	font-size: 16px !important;
}

/* === Dropdown autocomplete de destinos === */
.csv-sheet-autocomplete {
	max-height: 320px;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	margin-top: 8px;
}
.csv-sheet-autocomplete:empty {
	display: none;
}
.csv-sheet-autocomplete-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 4px;
	cursor: pointer;
	background: none;
	border: none;
	width: 100%;
	font-family: inherit;
	text-align: left;
	border-radius: 8px;
	transition: background 0.15s;
}
.csv-sheet-autocomplete-item:hover,
.csv-sheet-autocomplete-item.is-highlighted {
	background: #f7f7f7;
}
.csv-sheet-autocomplete-icon {
	width: 36px;
	height: 36px;
	border-radius: 999px;
	background: #f3f4f6;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #6b7280;
}
.csv-sheet-autocomplete-text {
	flex: 1;
	min-width: 0;
}
.csv-sheet-autocomplete-text strong {
	display: block;
	font-size: 14px;
	font-weight: 600;
	color: #1f2937;
	margin-bottom: 2px;
}
.csv-sheet-autocomplete-text small {
	font-size: 12px;
	color: #6b7280;
}
.csv-sheet-autocomplete-empty {
	padding: 24px 12px;
	text-align: center;
	color: #6b7280;
	font-size: 14px;
}

/* === Geolocation status === */
.csv-geo-status {
	display: none;
	align-items: center;
	gap: 10px;
	padding: 12px 14px;
	margin: 0 0 16px;
	background: linear-gradient(135deg, #FFFCF0 0%, #FFF8E0 100%);
	border: 1px solid #FFE9A8;
	border-radius: 12px;
	font-size: 13px;
	color: #1f2937;
}
.csv-geo-status.is-visible { display: flex; }
.csv-geo-status.is-error { background: #fef2f2; border-color: #fecaca; color: #991b1b; }
.csv-geo-status__spinner {
	width: 18px;
	height: 18px;
	border: 2px solid #F5BB1F;
	border-top-color: transparent;
	border-radius: 50%;
	animation: csv-spin 0.8s linear infinite;
	flex-shrink: 0;
}
@keyframes csv-spin {
	to { transform: rotate(360deg); }
}

/* === Skeleton Lunnar con gradiente animado === */
.csv-lunnar-skeleton {
	display: flex;
	flex-direction: column;
	gap: 12px;
	padding: 8px 0;
}
.csv-lunnar-skeleton__line {
	height: 14px;
	border-radius: 6px;
	background: linear-gradient(
		90deg,
		#ebebeb 0%,
		#f5f5f5 25%,
		#fff8e0 50%,
		#f5f5f5 75%,
		#ebebeb 100%
	);
	background-size: 200% 100%;
	animation: csv-lunnar-shimmer 1.6s ease-in-out infinite;
}
.csv-lunnar-skeleton__line:nth-child(2) { width: 80%; animation-delay: 0.1s; }
.csv-lunnar-skeleton__line:nth-child(3) { width: 60%; animation-delay: 0.2s; }
.csv-lunnar-skeleton__line:nth-child(4) { width: 90%; animation-delay: 0.3s; }
.csv-lunnar-skeleton__line:nth-child(5) { width: 70%; animation-delay: 0.4s; }

@keyframes csv-lunnar-shimmer {
	0%   { background-position: 200% 50%; }
	100% { background-position: -200% 50%; }
}

/* === Anuncio destacado / promocionado === */
.csv-card.is-promoted {
	position: relative;
	box-shadow: 0 4px 20px rgba(245, 187, 31, 0.18);
	border: 1px solid #FFE9A8;
	border-radius: 18px;
	overflow: hidden;
	background: linear-gradient(180deg, #FFFCF0 0%, #FFFFFF 30%);
	padding: 4px;
}
.csv-card__promoted-badge {
	position: absolute;
	top: 12px;
	left: 12px;
	z-index: 5;
	display: inline-flex;
	align-items: center;
	gap: 5px;
	padding: 6px 12px;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 800;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	box-shadow: 0 2px 8px rgba(245, 187, 31, 0.3);
}
.csv-card__promoted-badge::before {
	content: '★';
	font-size: 12px;
}

/* ============================================================
   v0.14.34 — Dashboard "Mis inmuebles" + Modal de promoción
   ============================================================ */

.csv-dashboard__my-listings {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.csv-dashboard-listing {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	transition: box-shadow .15s;
}
.csv-dashboard-listing:hover {
	box-shadow: 0 4px 16px rgba(0,0,0,0.06);
}
.csv-dashboard-listing.is-promoted {
	border-color: #FFE9A8;
	box-shadow: 0 4px 14px rgba(245, 187, 31, 0.14);
	background: linear-gradient(180deg, #FFFCF0 0%, #FFFFFF 50%);
}
.csv-dashboard-listing__image {
	width: 88px;
	height: 88px;
	border-radius: 10px;
	background-size: cover;
	background-position: center;
	background-color: #f3f4f6;
	flex-shrink: 0;
}
.csv-dashboard-listing__info {
	flex: 1;
	min-width: 0;
}
.csv-dashboard-listing__title {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 4px;
}
.csv-dashboard-listing__title strong {
	font-size: 15px;
	color: #1f2937;
	font-weight: 700;
}
.csv-dashboard-listing__promo-badge {
	font-size: 10px;
	font-weight: 800;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
	padding: 3px 8px;
	border-radius: 999px;
	letter-spacing: 0.04em;
}
.csv-dashboard-listing__meta {
	font-size: 13px;
	color: #6b7280;
	margin: 0;
}
.csv-dashboard-listing__promo-until {
	font-size: 12px;
	color: #92400e;
	margin: 4px 0 0;
	font-weight: 600;
}
.csv-dashboard-listing__actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex-shrink: 0;
}
.csv-dashboard-listing__btn {
	font-size: 13px;
	font-weight: 600;
	padding: 8px 14px;
	border-radius: 999px;
	border: 1px solid #1f2937;
	background: #fff;
	color: #1f2937;
	cursor: pointer;
	text-align: center;
	text-decoration: none;
	font-family: inherit;
	white-space: nowrap;
}
.csv-dashboard-listing__btn:hover {
	background: #1f2937;
	color: #fff;
}
.csv-dashboard-listing__btn--promote {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
	border-color: #F5BB1F;
}
.csv-dashboard-listing__btn--promote:hover {
	background: #1f2937;
	color: #F5BB1F;
}

/* === Modal de promoción === */
.csv-promote-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	display: none;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.csv-promote-modal[aria-hidden="false"] {
	display: flex;
}
.csv-promote-modal__overlay {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.5);
	backdrop-filter: blur(4px);
}
.csv-promote-modal__panel {
	position: relative;
	background: #fff;
	border-radius: 20px;
	max-width: 720px;
	width: 100%;
	max-height: 90vh;
	overflow-y: auto;
	box-shadow: 0 24px 80px rgba(0,0,0,0.25);
}
.csv-promote-modal__header {
	padding: 28px 28px 12px;
	border-bottom: 1px solid #f3f4f6;
	position: sticky;
	top: 0;
	background: #fff;
	border-radius: 20px 20px 0 0;
	z-index: 1;
}
.csv-promote-modal__title {
	font-size: 22px;
	font-weight: 800;
	margin: 0 0 4px;
	color: #1f2937;
}
.csv-promote-modal__sub {
	font-size: 14px;
	color: #6b7280;
	margin: 0;
}
.csv-promote-modal__close {
	position: absolute;
	top: 20px;
	right: 20px;
	width: 36px;
	height: 36px;
	border-radius: 999px;
	border: none;
	background: #f3f4f6;
	color: #1f2937;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
}
.csv-promote-modal__body {
	padding: 20px 28px 28px;
}
.csv-promote-plans {
	display: grid;
	gap: 14px;
}
.csv-promote-plan {
	position: relative;
	padding: 20px;
	border: 2px solid #e5e7eb;
	border-radius: 16px;
	cursor: pointer;
	transition: all 0.15s;
	background: #fff;
}
.csv-promote-plan:hover {
	border-color: #1f2937;
}
.csv-promote-plan.is-selected {
	border-color: #F5BB1F;
	background: linear-gradient(135deg, #FFFCF0 0%, #FFF 100%);
	box-shadow: 0 4px 14px rgba(245, 187, 31, 0.14);
}
.csv-promote-plan__top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	margin-bottom: 10px;
}
.csv-promote-plan__label {
	font-size: 17px;
	font-weight: 700;
	color: #1f2937;
}
.csv-promote-plan__badge {
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
	font-size: 10px;
	font-weight: 800;
	padding: 4px 10px;
	border-radius: 999px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
}
.csv-promote-plan__price {
	font-size: 28px;
	font-weight: 800;
	color: #1f2937;
	margin-bottom: 12px;
}
.csv-promote-plan__price small {
	font-size: 14px;
	font-weight: 500;
	color: #6b7280;
}
.csv-promote-plan__features {
	list-style: none;
	padding: 0;
	margin: 0;
}
.csv-promote-plan__features li {
	font-size: 13px;
	color: #4b5563;
	padding: 4px 0;
	padding-left: 22px;
	position: relative;
}
.csv-promote-plan__features li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: #F5BB1F;
	font-weight: 800;
}
.csv-promote-modal__cta {
	display: block;
	width: 100%;
	margin-top: 22px;
	padding: 14px 24px;
	background: #1f2937;
	color: #fff;
	border: none;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	font-family: inherit;
}
.csv-promote-modal__cta:disabled {
	opacity: 0.5;
	cursor: not-allowed;
}
.csv-promote-modal__cta--success {
	background: linear-gradient(135deg, #16a34a, #22c55e);
}
.csv-promote-modal__status {
	margin-top: 14px;
	padding: 12px 14px;
	border-radius: 10px;
	font-size: 13px;
	display: none;
}
.csv-promote-modal__status.is-visible { display: block; }
.csv-promote-modal__status--info { background: #eff6ff; color: #1e3a8a; }
.csv-promote-modal__status--error { background: #fef2f2; color: #991b1b; }
.csv-promote-modal__status--success { background: #f0fdf4; color: #065f46; }

.csv-promote-modal__stripe {
	margin-top: 18px;
}
#csv-promote-card {
	padding: 12px;
	border: 1px solid #d1d5db;
	border-radius: 10px;
	background: #fff;
}

/* ============================================================
   v0.14.34 — Panel demo interactivo (propietario / inmobiliaria)
   ============================================================ */

.csv-panel-demo {
	padding: 80px 0;
	background: linear-gradient(180deg, #FFFCF0 0%, #FFFFFF 100%);
}
.csv-panel-demo__head {
	text-align: center;
	max-width: 720px;
	margin: 0 auto 48px;
}
.csv-panel-demo__eyebrow {
	display: inline-block;
	padding: 6px 14px;
	background: #1f2937;
	color: #F5BB1F;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 700;
	margin-bottom: 16px;
}
.csv-panel-demo__title {
	font-size: 36px;
	font-weight: 800;
	color: #1f2937;
	margin: 0 0 12px;
	line-height: 1.15;
}
.csv-panel-demo__sub {
	font-size: 17px;
	color: #6b7280;
	margin: 0;
}

.csv-panel-demo__mock {
	display: grid;
	grid-template-columns: 240px 1fr;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 20px;
	overflow: hidden;
	box-shadow: 0 20px 60px rgba(0,0,0,0.08);
	min-height: 580px;
}
@media (max-width: 768px) {
	.csv-panel-demo__mock {
		grid-template-columns: 1fr;
		min-height: auto;
	}
}

.csv-panel-demo__sidebar {
	background: #f9fafb;
	border-right: 1px solid #e5e7eb;
	padding: 24px 16px;
}
.csv-panel-demo__user {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 8px 0 20px;
	border-bottom: 1px solid #e5e7eb;
	margin-bottom: 16px;
}
.csv-panel-demo__avatar {
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
	font-weight: 700;
	font-size: 16px;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.csv-panel-demo__user strong {
	display: block;
	font-size: 14px;
	color: #1f2937;
}
.csv-panel-demo__user span {
	font-size: 11px;
	color: #6b7280;
}
.csv-panel-demo__nav {
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.csv-panel-demo__nav-item {
	display: block !important;
	width: 100% !important;
	padding: 12px 16px !important;
	border: none !important;
	background: none !important;
	text-align: left !important;
	font-size: 14px !important;
	font-weight: 500 !important;
	color: #4b5563 !important;
	cursor: pointer !important;
	border-radius: 8px !important;
	font-family: inherit !important;
	transition: background 0.12s !important;
	line-height: 1.3 !important;
	margin: 0 0 4px !important;
}
.csv-panel-demo__nav-item:hover {
	background: #f3f4f6 !important;
	color: #1f2937 !important;
}
.csv-panel-demo__nav-item.is-active {
	background: #1f2937 !important;
	color: #F5BB1F !important;
}
.csv-panel-demo__content {
	padding: 28px 32px;
	overflow-y: auto;
}
.csv-demo-screen {
	display: none;
}
.csv-demo-screen.is-active {
	display: block;
	animation: csv-demo-fade 0.25s ease-out;
}
@keyframes csv-demo-fade {
	from { opacity: 0; transform: translateY(8px); }
	to { opacity: 1; transform: translateY(0); }
}
.csv-demo-screen__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 20px;
	flex-wrap: wrap;
	gap: 12px;
}
.csv-demo-screen__head h3 {
	font-size: 22px;
	font-weight: 700;
	color: #1f2937;
	margin: 0;
}
.csv-demo-stats {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 12px;
	margin-bottom: 24px;
}
@media (max-width: 600px) {
	.csv-demo-stats { grid-template-columns: repeat(2, 1fr); }
}
.csv-demo-stats > div {
	padding: 14px;
	background: #f9fafb;
	border-radius: 10px;
}
.csv-demo-stats strong {
	display: block;
	font-size: 22px;
	font-weight: 800;
	color: #1f2937;
}
.csv-demo-stats span {
	font-size: 12px;
	color: #6b7280;
}
.csv-demo-table {
	border: 1px solid #e5e7eb;
	border-radius: 10px;
	overflow: hidden;
}
.csv-demo-table__row {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr 1fr 0.6fr;
	gap: 12px;
	padding: 12px 14px;
	font-size: 13px;
	border-bottom: 1px solid #f3f4f6;
	align-items: center;
}
.csv-demo-table__row:last-child { border-bottom: none; }
.csv-demo-table__row--head {
	background: #f9fafb;
	font-weight: 600;
	color: #6b7280;
	font-size: 11px;
	text-transform: uppercase;
}
.csv-demo-table__name {
	font-weight: 600;
	color: #1f2937;
	display: flex;
	align-items: center;
	gap: 8px;
	flex-wrap: wrap;
}
.csv-demo-tag {
	font-size: 10px;
	font-weight: 700;
	padding: 3px 8px;
	border-radius: 999px;
	letter-spacing: 0.02em;
	white-space: nowrap;
}
.csv-demo-tag--gold {
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
}
.csv-demo-tag--ok {
	background: #d1fae5;
	color: #065f46;
}
.csv-demo-status {
	font-size: 12px;
	font-weight: 600;
}
.csv-demo-status--ok { color: #065f46; }
.csv-demo-status--pending { color: #92400e; }
.csv-demo-link {
	background: none;
	border: none;
	color: #1f2937;
	font-size: 12px;
	font-weight: 600;
	text-decoration: underline;
	cursor: pointer;
	font-family: inherit;
}
.csv-demo-btn {
	background: #fff;
	border: 1px solid #1f2937;
	color: #1f2937 !important;
	padding: 8px 16px !important;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
	white-space: nowrap;
	text-decoration: none !important;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	line-height: 1.2;
}
.csv-demo-btn--primary {
	background: #1f2937 !important;
	color: #fff !important;
}
.csv-demo-btn--primary:hover {
	background: #111827 !important;
	color: #fff !important;
}
.csv-demo-agents,
.csv-demo-leads,
.csv-demo-cards {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.csv-demo-agent,
.csv-demo-lead,
.csv-demo-card {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
}
.csv-demo-card.csv-demo-card--promoted {
	border-color: #FFE9A8;
	background: linear-gradient(180deg, #FFFCF0 0%, #FFF 100%);
}
.csv-demo-agent__avatar,
.csv-demo-lead__icon {
	width: 40px;
	height: 40px;
	border-radius: 999px;
	background: #f3f4f6;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	color: #1f2937;
	flex-shrink: 0;
}
.csv-demo-lead__icon {
	background: #fef3c7;
	font-size: 18px;
}
.csv-demo-agent > div:nth-child(2),
.csv-demo-lead__body,
.csv-demo-card__body { flex: 1; min-width: 0; }
.csv-demo-agent strong,
.csv-demo-lead__body strong,
.csv-demo-card__body strong {
	display: block;
	font-size: 14px;
	color: #1f2937;
	font-weight: 700;
}
.csv-demo-agent small,
.csv-demo-lead__body small,
.csv-demo-card__body small {
	font-size: 12px;
	color: #6b7280;
}
.csv-demo-card__img {
	width: 60px;
	height: 60px;
	border-radius: 8px;
	background: #ddd6fe;
	flex-shrink: 0;
}
.csv-demo-form {
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.csv-demo-form label {
	display: block;
}
.csv-demo-form label > span {
	display: block;
	font-size: 12px;
	font-weight: 600;
	color: #4b5563;
	margin-bottom: 6px;
	text-transform: uppercase;
	letter-spacing: 0.04em;
}
.csv-demo-form input,
.csv-demo-form select {
	width: 100%;
	padding: 10px 12px;
	border: 1px solid #d1d5db;
	border-radius: 8px;
	font-size: 14px;
	font-family: inherit;
	background: #f9fafb;
	color: #1f2937;
}
.csv-demo-form__row {
	display: grid;
	grid-template-columns: 1fr 1fr 1fr;
	gap: 12px;
}
.csv-demo-pills {
	display: flex;
	gap: 6px;
	flex-wrap: wrap;
}
.csv-demo-pill {
	padding: 8px 14px;
	border: 1px solid #d1d5db;
	background: #fff;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	cursor: pointer;
	font-family: inherit;
}
.csv-demo-pill.is-active {
	background: #1f2937;
	color: #fff;
	border-color: #1f2937;
}
.csv-demo-upload {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
}
.csv-demo-upload__slot {
	aspect-ratio: 1;
	background: #f3f4f6;
	border: 2px dashed #d1d5db;
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	color: #9ca3af;
	font-size: 22px;
	font-weight: 300;
}
.csv-demo-upload__slot.is-filled {
	background: linear-gradient(135deg, #c7d2fe, #fbcfe8);
	border: none;
}
.csv-demo-plans {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
@media (max-width: 600px) {
	.csv-demo-plans { grid-template-columns: 1fr; }
	.csv-demo-form__row { grid-template-columns: 1fr; }
}
.csv-demo-plan {
	padding: 18px;
	border: 2px solid #e5e7eb;
	border-radius: 14px;
	text-align: center;
}
.csv-demo-plan.is-popular {
	border-color: #F5BB1F;
	background: linear-gradient(135deg, #FFFCF0, #FFF);
}
.csv-demo-plan strong {
	display: block;
	font-size: 14px;
	color: #1f2937;
	margin-bottom: 8px;
}
.csv-demo-plan em {
	font-style: normal;
	font-size: 10px;
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	padding: 2px 8px;
	border-radius: 999px;
	margin-left: 6px;
}
.csv-demo-plan__price {
	display: block;
	font-size: 28px;
	font-weight: 800;
	color: #1f2937;
	margin-bottom: 6px;
}
.csv-demo-plan small {
	font-size: 12px;
	color: #6b7280;
}
.csv-demo-chart {
	background: #f9fafb;
	border-radius: 12px;
	padding: 20px;
}
.csv-demo-chart__bars {
	display: flex;
	align-items: flex-end;
	gap: 6px;
	height: 160px;
}
.csv-demo-chart__bars > span {
	flex: 1;
	background: linear-gradient(180deg, #F5BB1F, #FFD466);
	border-radius: 6px 6px 0 0;
	min-height: 8%;
}

.csv-panel-demo__cta-wrap {
	text-align: center;
	margin-top: 40px;
}
.csv-panel-demo__cta {
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 16px 32px;
	background: #1f2937 !important;
	color: #fff !important;
	border-radius: 999px;
	font-size: 16px;
	font-weight: 700;
	text-decoration: none !important;
	transition: transform 0.15s;
}
.csv-panel-demo__cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.15);
	color: #fff !important;
}
.csv-panel-demo__cta svg {
	stroke: #fff;
}

/* ============================================================
   v0.14.34 — Home: banners CTA + "Ver todos"
   ============================================================ */

.csv-home-banner {
	padding: 48px 0;
	border-radius: 24px;
	margin: 32px 16px;
	overflow: hidden;
}
@media (min-width: 768px) {
	.csv-home-banner { margin: 48px 24px; }
}
.csv-home-banner__inner {
	display: flex;
	align-items: center;
	gap: 24px;
	flex-wrap: wrap;
}
.csv-home-banner__icon {
	flex-shrink: 0;
	width: 96px;
	height: 96px;
	border-radius: 24px;
	background: rgba(255,255,255,0.5);
	display: flex;
	align-items: center;
	justify-content: center;
}
.csv-home-banner.is-dark .csv-home-banner__icon {
	background: rgba(245, 187, 31, 0.15);
}
.csv-home-banner__text {
	flex: 1;
	min-width: 280px;
}
.csv-home-banner__eyebrow {
	display: inline-block;
	font-size: 13px;
	font-weight: 700;
	color: #1f2937;
	margin-bottom: 8px;
	text-transform: none;
}
.csv-home-banner.is-dark .csv-home-banner__eyebrow {
	color: #F5BB1F;
}
.csv-home-banner__title {
	font-size: 28px;
	font-weight: 800;
	color: #1f2937;
	margin: 0 0 6px;
	line-height: 1.15;
}
.csv-home-banner.is-dark .csv-home-banner__title { color: #fff; }
.csv-home-banner__sub {
	font-size: 16px;
	color: #4b5563;
	margin: 0;
	line-height: 1.5;
}
.csv-home-banner.is-dark .csv-home-banner__sub { color: #d1d5db; }
.csv-home-banner__cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 24px;
	background: #1f2937;
	color: #fff;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.15s;
	white-space: nowrap;
}
.csv-home-banner.is-dark .csv-home-banner__cta {
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
}
.csv-home-banner__cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

/* Ver todos en sección */
.csv-section__see-all {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 8px 16px;
	border: 1px solid #1f2937;
	border-radius: 999px;
	background: #fff;
	color: #1f2937;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: all 0.15s;
}
.csv-section__see-all:hover {
	background: #1f2937;
	color: #fff;
}
.csv-section__see-all-wrap {
	text-align: center;
	margin-top: 32px;
}
.csv-section__see-all-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 28px;
	background: #1f2937;
	color: #fff;
	border-radius: 999px;
	font-size: 15px;
	font-weight: 700;
	text-decoration: none;
	transition: transform 0.15s;
}
.csv-section__see-all-cta:hover {
	transform: translateY(-2px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.15);
}

/* ============================================================
   v0.14.34 — Asesoría legal: planes precio
   ============================================================ */

.csv-pg-legal-pricing {
	padding: 80px 0;
	background: linear-gradient(180deg, #FFFFFF 0%, #FFFCF0 100%);
}
.csv-pg-legal-pricing__head {
	text-align: center;
	max-width: 640px;
	margin: 0 auto 48px;
}
.csv-pg-legal-pricing__eyebrow {
	display: inline-block;
	padding: 6px 14px;
	background: #1f2937;
	color: #F5BB1F;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	margin-bottom: 14px;
}
.csv-pg-legal-pricing__head h2 {
	font-size: 36px;
	font-weight: 800;
	color: #1f2937;
	margin: 0 0 8px;
}
.csv-pg-legal-pricing__head p {
	font-size: 17px;
	color: #6b7280;
	margin: 0;
}
.csv-pg-legal-plans {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 20px;
}
@media (max-width: 768px) {
	.csv-pg-legal-plans { grid-template-columns: 1fr; }
}
.csv-pg-legal-plan {
	position: relative;
	padding: 32px 24px;
	background: #fff;
	border: 2px solid #e5e7eb;
	border-radius: 18px;
	transition: all 0.2s;
}
.csv-pg-legal-plan:hover {
	border-color: #1f2937;
	transform: translateY(-4px);
	box-shadow: 0 12px 32px rgba(0,0,0,0.08);
}
.csv-pg-legal-plan.is-popular {
	border-color: #F5BB1F;
	background: linear-gradient(135deg, #FFFCF0 0%, #FFFFFF 50%);
	box-shadow: 0 8px 24px rgba(245, 187, 31, 0.12);
}
.csv-pg-legal-plan__badge {
	position: absolute;
	top: -12px;
	left: 50%;
	transform: translateX(-50%);
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
	font-size: 11px;
	font-weight: 800;
	padding: 5px 14px;
	border-radius: 999px;
	letter-spacing: 0.04em;
	text-transform: uppercase;
	white-space: nowrap;
}
.csv-pg-legal-plan h3 {
	font-size: 18px;
	font-weight: 700;
	color: #1f2937;
	margin: 0 0 12px;
}
.csv-pg-legal-plan__price {
	font-size: 38px;
	font-weight: 800;
	color: #1f2937;
	margin-bottom: 8px;
}
.csv-pg-legal-plan__price small {
	font-size: 14px;
	font-weight: 500;
	color: #6b7280;
}
.csv-pg-legal-plan > p {
	font-size: 14px;
	color: #6b7280;
	margin: 0 0 18px;
}
.csv-pg-legal-plan ul {
	list-style: none;
	padding: 0;
	margin: 0 0 24px;
}
.csv-pg-legal-plan li {
	font-size: 14px;
	color: #4b5563;
	padding: 6px 0;
	padding-left: 24px;
	position: relative;
}
.csv-pg-legal-plan li::before {
	content: '✓';
	position: absolute;
	left: 0;
	color: #F5BB1F;
	font-weight: 800;
}
.csv-pg-legal-plan__cta {
	display: block;
	text-align: center;
	padding: 12px 20px;
	background: #fff;
	color: #1f2937;
	border: 1px solid #1f2937;
	border-radius: 999px;
	text-decoration: none;
	font-weight: 700;
	font-size: 14px;
	transition: all 0.15s;
}
.csv-pg-legal-plan__cta:hover {
	background: #1f2937;
	color: #fff;
}
.csv-pg-legal-plan__cta--primary {
	background: #1f2937;
	color: #fff;
}
.csv-pg-legal-plan__cta--primary:hover {
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
}

/* ============================================================
   v0.14.36 — Bottom nav UNIFORME (sin círculo destacado)
   ============================================================ */

.csv-bottom-nav {
	display: none;
}
@media (max-width: 1024px) {
	.csv-bottom-nav {
		display: grid !important;
		grid-template-columns: repeat(5, 1fr) !important;
		align-items: stretch !important;
		position: fixed !important;
		bottom: 0 !important;
		left: 0 !important;
		right: 0 !important;
		background: #fff !important;
		border-top: 1px solid #e5e7eb !important;
		padding: 8px 4px calc(env(safe-area-inset-bottom, 0px) + 6px) !important;
		z-index: 998 !important;
		box-shadow: 0 -2px 12px rgba(0,0,0,0.05) !important;
	}
	body { padding-bottom: 76px !important; }
}
.csv-bottom-nav__item {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 4px !important;
	padding: 6px 4px !important;
	font-size: 10px !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	text-decoration: none !important;
	border: none !important;
	background: none !important;
	cursor: pointer !important;
	font-family: inherit !important;
	transition: color 0.15s !important;
}
.csv-bottom-nav__item svg {
	width: 22px !important;
	height: 22px !important;
	display: block !important;
}
.csv-bottom-nav__item:hover,
.csv-bottom-nav__item:focus {
	color: #1f2937 !important;
}

/* Modal mapa fullscreen (Airbnb-style) */
.csv-map-modal {
	position: fixed;
	inset: 0;
	z-index: 9999;
	background: #fff;
	display: none;
	flex-direction: column;
}
.csv-map-modal[aria-hidden="false"] {
	display: flex;
}
.csv-map-modal__bar {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 14px 16px;
	padding-top: calc(env(safe-area-inset-top, 0px) + 14px);
	border-bottom: 1px solid #e5e7eb;
	background: #fff;
}
.csv-map-modal__close {
	width: 36px;
	height: 36px;
	border-radius: 999px;
	border: 1px solid #e5e7eb;
	background: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #1f2937;
}
.csv-map-modal__title {
	font-size: 16px;
	font-weight: 700;
	color: #1f2937;
}
.csv-map-modal__body {
	flex: 1;
	position: relative;
	overflow: hidden;
	background: #e5e7eb;
}

/* ============================================================
   v0.14.35 — Menú usuario dropdown (Airbnb style)
   ============================================================ */

.csv-user-menu {
	position: relative;
}
.csv-user-menu__panel {
	position: absolute;
	top: calc(100% + 8px);
	right: 0;
	background: #fff;
	min-width: 240px;
	padding: 8px 0;
	border-radius: 14px;
	box-shadow: 0 6px 20px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.04);
	z-index: 100;
	overflow: hidden;
}
.csv-user-menu__item {
	display: block;
	padding: 12px 18px;
	font-size: 14px;
	color: #1f2937;
	text-decoration: none;
	font-weight: 500;
	transition: background 0.12s;
	white-space: nowrap;
}
.csv-user-menu__item:hover,
.csv-user-menu__item:focus {
	background: #f3f4f6;
	color: #1f2937;
}
.csv-user-menu__item--strong {
	font-weight: 700;
}
.csv-user-menu__divider {
	height: 1px;
	background: #e5e7eb;
	margin: 6px 0;
}

@media (max-width: 600px) {
	.csv-user-menu__panel {
		min-width: 220px;
		right: -8px;
	}
}

/* ============================================================
   v0.14.35 — Cards más Airbnb-like (location FIRST, título como sub)
   ============================================================ */

.csv-card {
	display: block;
	background: transparent;
	border: none;
	box-shadow: none;
	border-radius: 0;
	text-decoration: none;
	color: #1f2937;
	transition: transform 0.18s;
}
.csv-card:hover {
	transform: translateY(-2px);
}
.csv-card__image {
	border-radius: 14px;
	overflow: hidden;
	margin-bottom: 10px;
	aspect-ratio: 1 / 0.95;
}
.csv-card__title {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	gap: 8px;
	font-size: 15px;
	font-weight: 600;
	color: #1f2937;
	margin: 0 0 2px;
	line-height: 1.3;
}
.csv-card__title > span:first-child {
	flex: 1;
	min-width: 0;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.csv-card__rating {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	font-size: 13px;
	font-weight: 500;
	color: #1f2937;
	white-space: nowrap;
}
.csv-card__rating svg {
	width: 12px;
	height: 12px;
	fill: #1f2937;
}
.csv-card__location {
	font-size: 14px;
	color: #717171;
	margin: 0 0 2px;
	font-weight: 400;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.csv-card__specs {
	font-size: 13px;
	color: #717171;
	margin: 0 0 4px;
	font-weight: 400;
}
.csv-card__specs span {
	display: inline;
}
.csv-card__price {
	font-size: 14px;
	color: #1f2937;
	margin: 4px 0 0;
	font-weight: 500;
}
.csv-card__price strong {
	font-weight: 700;
	color: #1f2937;
}
.csv-card__price small {
	font-weight: 400;
	color: #717171;
	margin-left: 3px;
}
.csv-card__heart {
	position: absolute;
	top: 12px;
	right: 12px;
	width: 32px;
	height: 32px;
	border: none;
	background: none;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 0;
	z-index: 2;
}
.csv-card__heart svg {
	width: 24px;
	height: 24px;
	fill: rgba(0,0,0,0.35);
	stroke: #fff;
	stroke-width: 2;
	transition: fill 0.15s;
}
.csv-card__heart:hover svg {
	fill: rgba(0,0,0,0.5);
}
.csv-card__heart.is-favorite svg {
	fill: #FF385C;
	stroke: #fff;
}

/* ============================================================
   v0.14.35 — Hero texto blanco cuando fondo oscuro/imagen
   ============================================================ */

.csv-pg-hero--image,
.csv-pg-hero--gradient {
	position: relative;
}
.csv-pg-hero--image .csv-pg-hero__inner,
.csv-pg-hero--image .csv-pg-hero__eyebrow,
.csv-pg-hero--image .csv-pg-hero__title,
.csv-pg-hero--image .csv-pg-hero__subtitle {
	color: #fff !important;
}
.csv-pg-hero--image .csv-pg-hero__title strong,
.csv-pg-hero--image .csv-pg-hero__title em,
.csv-pg-hero--image .csv-pg-hero__title b,
.csv-pg-hero--image .csv-pg-hero__title br {
	color: #fff !important;
}
.csv-pg-hero--image .csv-pg-hero__cta {
	background: #fff !important;
	color: #1f2937 !important;
}
.csv-pg-hero--image .csv-pg-hero__cta:hover {
	background: #f3f4f6 !important;
}
.csv-pg-hero--image .csv-pg-hero__overlay {
	background: linear-gradient(180deg, rgba(0,0,0,0.45) 0%, rgba(0,0,0,0.25) 50%, rgba(0,0,0,0.55) 100%);
}

/* ============================================================
   v0.14.35 — Sugerencias destinos con padding entre items
   ============================================================ */

.csv-sheet-autocomplete {
	padding: 8px 4px;
}
.csv-sheet-autocomplete-item {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 14px;
	margin-bottom: 4px;
	border-radius: 12px;
	cursor: pointer;
	transition: background 0.12s;
	border: none;
	background: none;
	width: 100%;
	text-align: left;
	font-family: inherit;
}
.csv-sheet-autocomplete-item:hover,
.csv-sheet-autocomplete-item:focus {
	background: #f3f4f6;
}
.csv-sheet-autocomplete-item + .csv-sheet-autocomplete-item {
	margin-top: 2px;
}
.csv-sheet-autocomplete-icon {
	width: 44px;
	height: 44px;
	border-radius: 10px;
	background: #f3f4f6;
	display: flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	font-size: 18px;
}

/* ============================================================
   v0.14.35 — Sheet móvil: footer fijo sin cortarse (teclado)
   ============================================================ */

.csv-search-sheet {
	display: flex;
	flex-direction: column;
}
.csv-search-sheet__content {
	flex: 1;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 100px; /* espacio para footer fijo */
}
.csv-search-sheet__footer {
	position: sticky;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 14px 20px calc(env(safe-area-inset-bottom, 0px) + 14px);
	background: #fff;
	border-top: 1px solid #e5e7eb;
	z-index: 10;
}
.csv-search-sheet__footer-clear {
	background: none;
	border: none;
	font-family: inherit;
	font-size: 15px;
	font-weight: 600;
	color: #1f2937;
	cursor: pointer;
	text-decoration: underline;
	padding: 6px 0;
}
.csv-search-sheet__footer-cta {
	display: inline-flex;
	align-items: center;
	gap: 8px;
	padding: 14px 26px;
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
	border: none;
	border-radius: 66px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	cursor: pointer;
	white-space: nowrap;
}

/* ============================================================
   v0.14.35 — Login Apple-style con PIN (sin contraseñas)
   ============================================================ */

.csv-login-root {
	min-height: 100vh;
	min-height: 100dvh;
	display: flex;
	align-items: center;
	justify-content: center;
	background: linear-gradient(150deg, #FEFCE8 0%, #FEF3C7 50%, #FFFFFF 100%);
	padding: 40px 20px;
	font-family: 'DM Sans', 'Inter', system-ui, sans-serif;
	-webkit-font-smoothing: antialiased;
}
.csv-login {
	width: 100%;
	max-width: 400px;
}
.csv-login__brand {
	display: flex;
	align-items: center;
	margin-bottom: 28px;
}
.csv-login__logo {
	text-decoration: none;
	display: inline-flex;
}
.csv-login__dots {
	display: flex;
	gap: 6px;
	margin-bottom: 24px;
}
.csv-login__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #E5E7EB;
	transition: all 0.3s;
}
.csv-login__dot.done {
	background: #F5BB1F;
}
.csv-login__dot.act {
	background: #F5BB1F;
	width: 20px;
	border-radius: 3px;
}
.csv-login__step {
	display: none;
	animation: csv-login-in 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.csv-login__step.on {
	display: block;
}
@keyframes csv-login-in {
	from { opacity: 0; transform: translateX(16px); }
	to { opacity: 1; transform: translateX(0); }
}
.csv-login__back {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: none;
	border: none;
	cursor: pointer;
	font-family: inherit;
	font-size: 13px;
	font-weight: 600;
	color: #6B7280;
	padding: 0;
	margin-bottom: 18px;
	transition: color 0.2s;
}
.csv-login__back:hover {
	color: #1f2937;
}
.csv-login__title {
	font-family: 'DM Sans', 'Inter', system-ui, sans-serif;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.04em;
	line-height: 1.12;
	margin-bottom: 8px;
	color: #1f2937;
}
.csv-login__title-em {
	font-style: normal;
	background: linear-gradient(135deg, #F5BB1F 0%, #C99B17 100%);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
.csv-login__sub {
	font-size: 14px;
	font-weight: 500;
	color: #6B7280;
	margin-bottom: 22px;
	line-height: 1.55;
}
.csv-login__sub strong {
	color: #1f2937;
	font-weight: 700;
}
.csv-login__inp {
	width: 100%;
	padding: 14px 16px;
	font-family: inherit;
	font-size: 16px; /* iOS no zoom */
	font-weight: 500;
	color: #1f2937;
	background: rgba(255, 255, 255, 0.85);
	border: 2px solid #E5E7EB;
	border-radius: 14px;
	outline: none;
	transition: all 0.2s;
	-webkit-appearance: none;
	box-sizing: border-box;
	margin-bottom: 12px;
}
.csv-login__inp:focus {
	background: #fff;
	border-color: #F5BB1F;
	box-shadow: 0 0 0 4px rgba(245, 187, 31, 0.15);
}
.csv-login__pin-row {
	display: flex;
	gap: 8px;
	justify-content: center;
	margin-bottom: 14px;
}
.csv-login__pin-d {
	width: 52px;
	height: 60px;
	text-align: center;
	font-family: 'DM Sans', monospace;
	font-size: 22px;
	font-weight: 800;
	color: #1f2937;
	background: rgba(255, 255, 255, 0.85);
	border: 2px solid #E5E7EB;
	border-radius: 14px;
	outline: none;
	transition: all 0.2s;
	-webkit-appearance: none;
	padding: 0;
}
.csv-login__pin-d:focus {
	background: #fff;
	border-color: #F5BB1F;
	box-shadow: 0 0 0 4px rgba(245, 187, 31, 0.15);
}
@media (max-width: 380px) {
	.csv-login__pin-d {
		width: 44px;
		height: 54px;
		font-size: 20px;
	}
}
.csv-login__btn {
	width: 100%;
	padding: 16px;
	font-family: inherit;
	font-size: 15px;
	font-weight: 700;
	color: #1f2937;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	border: none;
	border-radius: 999px;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	gap: 8px;
	transition: opacity 0.2s, transform 0.15s;
	margin-top: 10px;
	box-shadow: 0 4px 14px rgba(245, 187, 31, 0.3);
}
.csv-login__btn:hover {
	opacity: 0.92;
	transform: translateY(-1px);
}
.csv-login__btn:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}
.csv-login__btn.is-loading .csv-login__btn-txt {
	visibility: hidden;
}
.csv-login__btn.is-loading::after {
	content: '';
	position: absolute;
	width: 18px;
	height: 18px;
	border: 2.5px solid rgba(31, 41, 55, 0.3);
	border-top-color: #1f2937;
	border-radius: 50%;
	animation: csv-spin 0.7s linear infinite;
}
.csv-login__btn { position: relative; }
@keyframes csv-spin { to { transform: rotate(360deg); } }
.csv-login__err {
	display: none;
	background: rgba(239, 68, 68, 0.07);
	border: 1.5px solid rgba(239, 68, 68, 0.22);
	border-radius: 12px;
	padding: 11px 14px;
	font-size: 13px;
	font-weight: 600;
	color: #DC2626;
	margin-bottom: 12px;
}
.csv-login__err.on {
	display: block;
}
.csv-login__resend {
	background: none;
	border: none;
	font-family: inherit;
	font-size: 12px;
	color: #6B7280;
	cursor: pointer;
	display: block;
	text-align: center;
	width: 100%;
	margin-top: 12px;
	padding: 8px;
	transition: color 0.2s;
}
.csv-login__resend:hover {
	color: #F5BB1F;
}
.csv-login__footnote {
	font-size: 11px;
	color: #9CA3AF;
	text-align: center;
	margin-top: 14px;
	line-height: 1.6;
}
.csv-login__footnote a {
	color: #1f2937;
	text-decoration: none;
	font-weight: 600;
}
.csv-login__footnote a:hover {
	text-decoration: underline;
}
.csv-login__success {
	text-align: center;
	padding: 20px 0;
}
.csv-login__success-ring {
	width: 72px;
	height: 72px;
	border-radius: 50%;
	background: linear-gradient(135deg, #16a34a, #22c55e);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 18px;
	box-shadow: 0 8px 24px rgba(22, 163, 74, 0.3);
	animation: csv-login-pop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@keyframes csv-login-pop {
	from { transform: scale(0); opacity: 0; }
	to { transform: scale(1); opacity: 1; }
}

/* Login: ocultar header/footer del plugin */
body.csv-login-page .csv-header,
body.csv-login-page .csv-footer,
body.csv-login-page .csv-bottom-nav {
	display: none !important;
}
body.csv-login-page {
	padding-bottom: 0 !important;
	padding-top: 0 !important;
}

/* ============================================================
   v0.14.35 — Sheet móvil: body scrollable + footer SIEMPRE visible
   Soluciona corte del botón "Buscar" en pantallas pequeñas
   ============================================================ */

.csv-search-sheet {
	display: flex;
	flex-direction: column;
}
.csv-search-sheet__body {
	flex: 1 1 auto;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding-bottom: 24px;
}
.csv-search-sheet__footer {
	flex-shrink: 0;
	position: sticky;
	bottom: 0;
	left: 0;
	right: 0;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 14px 18px calc(env(safe-area-inset-bottom, 0px) + 14px);
	background: #fff;
	border-top: 1px solid #e5e7eb;
	z-index: 10;
	box-shadow: 0 -2px 12px rgba(0,0,0,0.06);
}
@media (max-width: 600px) {
	.csv-search-sheet__footer {
		padding: 12px 16px calc(env(safe-area-inset-bottom, 0px) + 10px);
	}
	.csv-search-sheet__clear {
		font-size: 13px !important;
	}
	.csv-search-sheet__cta {
		padding: 12px 22px !important;
		font-size: 14px !important;
	}
}

/* ============================================================
   v0.14.36 — Fixes críticos de diseño
   ============================================================ */

/* === Badge "Promocionado" en card: arriba sobre todo, sin solaparse === */
.csv-card {
	position: relative !important;
}
.csv-card__promoted-badge {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	z-index: 5 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	font-size: 11px !important;
	font-weight: 800 !important;
	padding: 6px 12px !important;
	border-radius: 999px !important;
	letter-spacing: 0.03em !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15) !important;
	text-transform: none !important;
}
/* Otros badges en la imagen: abajo a la izquierda para no solapar */
.csv-card__badge {
	position: absolute !important;
	bottom: 12px !important;
	left: 12px !important;
	top: auto !important;
	right: auto !important;
	z-index: 4 !important;
	display: inline-block !important;
	width: auto !important;
	max-width: calc(100% - 24px) !important;
	background: rgba(31, 41, 55, 0.85) !important;
	color: #fff !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	padding: 5px 11px !important;
	border-radius: 999px !important;
	line-height: 1.2 !important;
	white-space: nowrap !important;
	letter-spacing: 0 !important;
	writing-mode: horizontal-tb !important;
	text-orientation: mixed !important;
}

/* === Card "Promocionada": padding sutil con borde dorado === */
.csv-card.is-promoted {
	padding: 6px !important;
	border-radius: 18px !important;
	background: linear-gradient(180deg, #FFFCF0 0%, #FFFFFF 100%) !important;
	box-shadow: 0 4px 14px rgba(245, 187, 31, 0.12), 0 0 0 1px #FFE9A8 !important;
}
.csv-card.is-promoted .csv-card__image {
	border-radius: 12px !important;
}
.csv-card.is-promoted .csv-card__title,
.csv-card.is-promoted .csv-card__location,
.csv-card.is-promoted .csv-card__specs,
.csv-card.is-promoted .csv-card__price {
	padding-left: 6px !important;
	padding-right: 6px !important;
}

/* === Filtros: pills group con spacing correcto (no apilamiento feo) === */
.csv-filter-pills {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 8px !important;
	padding: 0 !important;
	margin: 0 !important;
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
}
.csv-filter-pill {
	display: inline-flex !important;
	align-items: center !important;
	padding: 10px 18px !important;
	border: 1px solid #d1d5db !important;
	background: #fff !important;
	border-radius: 999px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	line-height: 1.2 !important;
	transition: all 0.12s !important;
	white-space: nowrap !important;
}
.csv-filter-pill:hover {
	border-color: #1f2937 !important;
}
.csv-filter-pill.is-active {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}
.csv-filter-chips {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 10px !important;
	background: transparent !important;
	border: none !important;
	padding: 0 !important;
}
@media (min-width: 600px) {
	.csv-filter-chips { grid-template-columns: repeat(3, 1fr) !important; }
}
.csv-filter-chip {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	gap: 8px !important;
	padding: 16px 14px !important;
	border: 1px solid #d1d5db !important;
	background: #fff !important;
	border-radius: 12px !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	line-height: 1.3 !important;
	transition: all 0.12s !important;
	text-align: left !important;
	min-height: 78px !important;
}
.csv-filter-chip:hover {
	border-color: #1f2937 !important;
	background: #f9fafb !important;
}
.csv-filter-chip.is-active {
	background: #FFFCF0 !important;
	border-color: #1f2937 !important;
	border-width: 2px !important;
	padding: 15px 13px !important;
	color: #1f2937 !important;
}
.csv-filter-chip__emoji {
	font-size: 22px !important;
	display: block !important;
	line-height: 1 !important;
}
.csv-filter-chip__label {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
}
.csv-filter-stepper {
	display: flex !important;
	justify-content: space-between !important;
	align-items: center !important;
	padding: 10px 0 !important;
	border-bottom: 1px solid #f3f4f6 !important;
}
.csv-filter-stepper:last-child {
	border-bottom: none !important;
}
.csv-filter-stepper__label {
	font-size: 15px !important;
	color: #1f2937 !important;
	font-weight: 500 !important;
}
.csv-filter-stepper__controls {
	display: inline-flex !important;
	align-items: center !important;
	gap: 14px !important;
}
.csv-filter-stepper__btn {
	width: 32px !important;
	height: 32px !important;
	border-radius: 999px !important;
	border: 1px solid #d1d5db !important;
	background: #fff !important;
	color: #1f2937 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
	padding: 0 !important;
}
.csv-filter-stepper__btn:hover {
	border-color: #1f2937 !important;
}
.csv-filter-stepper__value {
	font-size: 15px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	min-width: 24px !important;
	text-align: center !important;
}

.csv-filters-section {
	padding: 24px 0 !important;
	border-bottom: 1px solid #f3f4f6 !important;
}
.csv-filters-section:last-child {
	border-bottom: none !important;
}
.csv-filters-section h3 {
	font-size: 20px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	margin: 0 0 6px !important;
	letter-spacing: -0.01em !important;
}
.csv-filters-section__sub {
	font-size: 13px !important;
	color: #6b7280 !important;
	margin: 0 0 14px !important;
}

/* === Login button: forzar padding y diseño === */
.csv-login__btn {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 16px 28px !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	border: none !important;
	border-radius: 999px !important;
	cursor: pointer !important;
	width: 100% !important;
	margin-top: 12px !important;
	box-shadow: 0 4px 14px rgba(245, 187, 31, 0.3) !important;
	line-height: 1.2 !important;
	font-family: inherit !important;
}

/* === Demo panel: botones con padding forzado === */
.csv-demo-btn,
.csv-demo-pill,
.csv-demo-link {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 10px 18px !important;
	border-radius: 999px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	font-family: inherit !important;
	cursor: pointer !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	white-space: nowrap !important;
}
.csv-demo-btn {
	background: #fff !important;
	border: 1px solid #1f2937 !important;
	color: #1f2937 !important;
}
.csv-demo-btn--primary {
	background: #1f2937 !important;
	color: #fff !important;
	border: 1px solid #1f2937 !important;
}
.csv-demo-pill {
	border: 1px solid #d1d5db !important;
	background: #fff !important;
	color: #1f2937 !important;
}
.csv-demo-pill.is-active {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}
.csv-demo-link {
	background: none !important;
	border: none !important;
	color: #1f2937 !important;
	text-decoration: underline !important;
	padding: 6px 10px !important;
}

/* === Banner "Publica gratis" CTA: texto blanco === */
.csv-cta-band__cta,
.csv-banner__cta,
.csv-pg-cta-band a {
	background: #1f2937 !important;
	color: #fff !important;
	display: inline-flex !important;
	align-items: center !important;
	padding: 14px 28px !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
}
.csv-cta-band__cta:hover,
.csv-banner__cta:hover {
	background: #111827 !important;
	color: #fff !important;
}

/* === Header logo: tamaño fijo para que no desplace el buscador === */
.csv-header__logo {
	display: inline-flex !important;
	align-items: center !important;
	flex-shrink: 0 !important;
	height: 40px !important;
	min-width: 100px !important;
}
.csv-header__logo svg {
	height: 28px !important;
	width: auto !important;
}
@media (max-width: 768px) {
	.csv-header__logo svg {
		height: 24px !important;
	}
}

/* === Sheet móvil: aparecer arriba/centrado correctamente === */
@media (max-width: 1024px) {
	.csv-search-sheet[hidden] {
		display: none !important;
	}
	.csv-search-sheet:not([hidden]) {
		display: flex !important;
		position: fixed !important;
		top: 0 !important;
		left: 0 !important;
		right: 0 !important;
		bottom: 0 !important;
		width: 100% !important;
		height: 100% !important;
		height: 100dvh !important;
		flex-direction: column !important;
		background: #fff !important;
		z-index: 9999 !important;
		overflow: hidden !important;
	}
}

/* ============================================================
   v0.14.36 — Header móvil: pill centrado correctamente
   ============================================================ */

@media (max-width: 900px) {
	.csv-header__row {
		display: grid !important;
		grid-template-columns: auto 1fr auto !important;
		align-items: center !important;
		gap: 8px !important;
		padding: 0 !important;
	}
	.csv-header__logo {
		grid-column: 1 !important;
		justify-self: start !important;
	}
	.csv-header__center {
		grid-column: 2 !important;
		justify-self: center !important;
		display: flex !important;
		justify-content: center !important;
		width: 100% !important;
		min-width: 0 !important;
	}
	.csv-header__actions {
		grid-column: 3 !important;
		justify-self: end !important;
		display: flex !important;
		gap: 4px !important;
	}
	.csv-header__pill {
		max-width: 100% !important;
		margin: 0 auto !important;
	}
}
@media (max-width: 480px) {
	.csv-header__logo svg {
		height: 20px !important;
	}
	/* Avatar más compacto */
	.csv-menu-btn {
		padding: 4px 4px 4px 8px !important;
	}
}

/* ============================================================
   v0.14.38 — Onboarding + Wizard publicar inmueble
   ============================================================ */

.csv-ob-root {
	min-height: 100vh;
	min-height: 100dvh;
	background: linear-gradient(150deg, #FEFCE8 0%, #FEF3C7 50%, #FFFFFF 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 32px 20px;
	font-family: 'DM Sans', 'Inter', system-ui, sans-serif !important;
	-webkit-font-smoothing: antialiased;
}
.csv-ob {
	width: 100%;
	max-width: 460px;
}
.csv-ob--wide {
	max-width: 560px;
}
.csv-ob__brand {
	display: flex;
	align-items: center;
	margin-bottom: 24px;
}

.csv-ob__topbar {
	display: flex;
	align-items: center;
	gap: 12px;
	margin-bottom: 18px;
	min-height: 32px;
}
.csv-ob__back {
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: none;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #1f2937 !important;
	text-decoration: none;
	flex-shrink: 0;
}
.csv-ob__back:hover { background: #f3f4f6 !important; }
.csv-ob__dots {
	display: flex;
	gap: 5px;
	flex: 1;
	justify-content: center;
}
.csv-ob__dot {
	width: 6px;
	height: 6px;
	border-radius: 50%;
	background: #e5e7eb;
	transition: all 0.3s;
}
.csv-ob__dot.done { background: #F5BB1F; }
.csv-ob__dot.act { background: #F5BB1F; width: 18px; border-radius: 3px; }
.csv-ob__skip,
.csv-ob__step-counter {
	font-size: 12px !important;
	color: #6b7280 !important;
	background: none !important;
	border: none !important;
	font-family: inherit !important;
	cursor: pointer;
	font-weight: 600 !important;
	padding: 6px 0 !important;
	text-decoration: none !important;
}
.csv-ob__step-counter { cursor: default; }
.csv-ob__skip:hover { color: #1f2937 !important; }

.csv-ob__step {
	display: none;
	animation: csv-ob-in 0.35s cubic-bezier(0.16, 1, 0.3, 1) both;
}
.csv-ob__step.on { display: block; }
@keyframes csv-ob-in {
	from { opacity: 0; transform: translateX(20px); }
	to { opacity: 1; transform: translateX(0); }
}

.csv-ob__title {
	font-family: 'DM Sans', 'Inter', system-ui, sans-serif !important;
	font-size: 26px !important;
	font-weight: 800 !important;
	letter-spacing: -0.04em !important;
	line-height: 1.15 !important;
	margin: 0 0 8px !important;
	color: #1f2937 !important;
}
.csv-ob__title-em {
	background: linear-gradient(135deg, #F5BB1F, #C99B17);
	-webkit-background-clip: text;
	-webkit-text-fill-color: transparent;
	background-clip: text;
}
.csv-ob__sub {
	font-size: 14px !important;
	color: #6b7280 !important;
	margin: 0 0 22px !important;
	line-height: 1.55 !important;
}
.csv-ob__sec-h {
	font-size: 12px !important;
	font-weight: 700 !important;
	color: #6b7280 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	margin: 16px 0 10px !important;
}

.csv-ob__inp {
	width: 100% !important;
	padding: 14px 16px !important;
	font-family: inherit !important;
	font-size: 15px !important;
	background: #fff !important;
	border: 2px solid #e5e7eb !important;
	border-radius: 14px !important;
	outline: none !important;
	margin-bottom: 12px !important;
	transition: all 0.18s !important;
	color: #1f2937 !important;
	-webkit-appearance: none !important;
	box-sizing: border-box !important;
	line-height: 1.4 !important;
}
.csv-ob__inp:focus {
	border-color: #F5BB1F !important;
	box-shadow: 0 0 0 4px rgba(245,187,31,0.12) !important;
}

.csv-ob__opts {
	display: grid;
	gap: 10px;
	margin-bottom: 16px;
}
.csv-ob__opt {
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	padding: 14px 16px !important;
	background: #fff !important;
	border: 2px solid #e5e7eb !important;
	border-radius: 16px !important;
	cursor: pointer !important;
	transition: all 0.15s !important;
	text-align: left !important;
	font-family: inherit !important;
	width: 100% !important;
	color: #1f2937 !important;
	text-decoration: none !important;
}
.csv-ob__opt:hover {
	border-color: #1f2937 !important;
	background: #fafafa !important;
}
.csv-ob__opt.is-selected {
	border-color: #1f2937 !important;
	background: #FFFCF0 !important;
}
.csv-ob__opt-icon {
	width: 44px !important;
	height: 44px !important;
	border-radius: 12px !important;
	background: #FFFCF0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 22px !important;
	flex-shrink: 0 !important;
	line-height: 1 !important;
}
.csv-ob__opt.is-selected .csv-ob__opt-icon {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
}
.csv-ob__opt-text {
	flex: 1;
	min-width: 0;
}
.csv-ob__opt-text strong {
	display: block !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	margin-bottom: 2px !important;
	line-height: 1.3 !important;
}
.csv-ob__opt-text small {
	display: block !important;
	font-size: 12px !important;
	color: #6b7280 !important;
	font-weight: 500 !important;
	line-height: 1.4 !important;
}
.csv-ob__opt-tag {
	position: absolute;
	top: -8px;
	right: 14px;
	background: #1f2937 !important;
	color: #fff !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	padding: 3px 8px !important;
	border-radius: 999px !important;
}

.csv-ob__chips {
	display: flex;
	flex-wrap: wrap;
	gap: 8px;
	margin-bottom: 16px;
}
.csv-ob__chip {
	padding: 9px 16px !important;
	border-radius: 999px !important;
	border: 1.5px solid #e5e7eb !important;
	background: #fff !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	transition: all 0.15s !important;
	line-height: 1.2 !important;
}
.csv-ob__chip:hover { border-color: #1f2937 !important; }
.csv-ob__chip.is-selected {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}

.csv-ob__fchips {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin-bottom: 16px;
}
@media (min-width: 600px) {
	.csv-ob__fchips { grid-template-columns: repeat(3, 1fr); }
}
.csv-ob__fchip {
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	gap: 8px !important;
	padding: 16px 14px !important;
	border: 1.5px solid #e5e7eb !important;
	background: #fff !important;
	border-radius: 14px !important;
	cursor: pointer !important;
	font-family: inherit !important;
	transition: all 0.15s !important;
	min-height: 82px !important;
	text-align: left !important;
}
.csv-ob__fchip:hover { border-color: #1f2937 !important; }
.csv-ob__fchip.is-selected {
	border-color: #1f2937 !important;
	border-width: 2px !important;
	background: #FFFCF0 !important;
	padding: 15px 13px !important;
}
.csv-ob__fchip-emoji {
	font-size: 22px !important;
	display: block !important;
	line-height: 1 !important;
}
.csv-ob__fchip-label {
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	line-height: 1.3 !important;
}

.csv-ob__range {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
	margin-bottom: 14px;
}
.csv-ob__range-cell {
	position: relative;
	border: 2px solid #e5e7eb;
	border-radius: 14px;
	padding: 10px 14px;
}
.csv-ob__range-cell small {
	display: block;
	font-size: 11px;
	color: #6b7280;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 2px;
}
.csv-ob__range-cell input {
	width: 100%;
	border: none;
	outline: none;
	font-family: inherit;
	font-size: 18px;
	font-weight: 800;
	color: #1f2937;
	background: transparent;
	padding-right: 18px;
}
.csv-ob__range-symbol {
	position: absolute;
	right: 14px;
	top: 50%;
	transform: translateY(-50%);
	font-size: 18px;
	font-weight: 700;
	color: #6b7280;
}

.csv-ob__upload {
	border: 2px dashed #d1d5db;
	border-radius: 14px;
	padding: 28px 16px;
	text-align: center;
	background: #fafafa;
	cursor: pointer;
	margin-bottom: 14px;
	transition: all 0.15s;
}
.csv-ob__upload:hover { border-color: #1f2937; background: #fff; }
.csv-ob__upload-icon { font-size: 32px; margin-bottom: 6px; }
.csv-ob__upload-text { font-size: 13px; color: #6b7280; font-weight: 600; margin-bottom: 4px; }
.csv-ob__upload small { font-size: 11px; color: #9ca3af; }

.csv-ob__colors {
	display: flex;
	gap: 10px;
	margin-bottom: 16px;
}
.csv-ob__color {
	width: 36px;
	height: 36px;
	border-radius: 50%;
	border: 3px solid transparent;
	cursor: pointer;
	transition: transform 0.15s;
	padding: 0;
}
.csv-ob__color:hover { transform: scale(1.1); }
.csv-ob__color.is-selected {
	border-color: #1f2937;
	transform: scale(1.05);
}

.csv-ob__stepper-row {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 14px 0;
	border-bottom: 1px solid #f3f4f6;
}
.csv-ob__stepper-row strong {
	display: block;
	font-size: 14px;
	font-weight: 700;
	color: #1f2937;
	line-height: 1.3;
}
.csv-ob__stepper-row small {
	display: block;
	font-size: 12px;
	color: #6b7280;
	font-weight: 500;
	margin-top: 2px;
}
.csv-ob__stepper {
	display: inline-flex;
	align-items: center;
	gap: 12px;
}
.csv-ob__stepper button {
	width: 32px !important;
	height: 32px !important;
	border-radius: 999px !important;
	border: 1px solid #e5e7eb !important;
	background: #fff !important;
	color: #1f2937 !important;
	font-size: 18px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	line-height: 1 !important;
	padding: 0 !important;
}
.csv-ob__stepper button:hover { border-color: #1f2937 !important; }
.csv-ob__stepper span {
	font-size: 15px;
	font-weight: 700;
	min-width: 24px;
	text-align: center;
}

.csv-ob__two-cols {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 10px;
}
.csv-ob__map-placeholder {
	width: 100%;
	height: 180px;
	background: linear-gradient(135deg, #d1fae5 0%, #cffafe 50%, #dbeafe 100%);
	border-radius: 14px;
	position: relative;
	margin-bottom: 12px;
	overflow: hidden;
}
.csv-ob__map-pin {
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -100%) rotate(-45deg);
	width: 32px;
	height: 32px;
	background: #F5BB1F;
	border-radius: 50% 50% 50% 0;
	box-shadow: 0 4px 12px rgba(0,0,0,0.25);
}
.csv-ob__map-pin::after {
	content: '';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%) rotate(45deg);
	width: 12px;
	height: 12px;
	background: #fff;
	border-radius: 50%;
}

.csv-ob__price-row {
	display: flex;
	align-items: center;
	background: #fff;
	border: 2px solid #e5e7eb;
	border-radius: 14px;
	padding: 4px 16px;
	margin-bottom: 14px;
}
.csv-ob__price-currency {
	font-size: 28px;
	font-weight: 700;
	color: #1f2937;
	margin-right: 8px;
}
.csv-ob__price-row input {
	flex: 1;
	border: none;
	outline: none;
	font-family: inherit;
	font-size: 32px;
	font-weight: 800;
	color: #1f2937;
	padding: 14px 0;
	background: transparent;
	width: 100%;
}

.csv-ob__preview {
	border: 1px solid #e5e7eb;
	border-radius: 16px;
	overflow: hidden;
	margin-bottom: 14px;
	background: #fff;
}
.csv-ob__preview-img {
	width: 100%;
	height: 160px;
	background: linear-gradient(135deg, #fef3c7, #fde68a);
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 56px;
}
.csv-ob__preview-body { padding: 14px 16px; }
.csv-ob__preview-loc { font-size: 14px; font-weight: 700; color: #1f2937; }
.csv-ob__preview-title { font-size: 13px; color: #6b7280; margin: 2px 0 6px; }
.csv-ob__preview-meta { font-size: 12px; color: #6b7280; margin-bottom: 6px; }
.csv-ob__preview-price { font-size: 18px; font-weight: 800; color: #1f2937; }

.csv-ob__cta-bar {
	display: flex;
	gap: 10px;
	margin-top: 20px;
	padding-bottom: env(safe-area-inset-bottom, 0px);
}
.csv-ob__cta-bar.with-skip {
	justify-content: space-between;
	align-items: center;
}
.csv-ob__cta {
	flex: 1;
	padding: 16px 24px !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	border: none !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	font-size: 15px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	box-shadow: 0 4px 14px rgba(245,187,31,0.3) !important;
	line-height: 1.2 !important;
	text-decoration: none !important;
	transition: all 0.18s !important;
}
.csv-ob__cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(245,187,31,0.4) !important;
}
.csv-ob__cta:disabled {
	opacity: 0.5;
	cursor: not-allowed;
	transform: none;
}

.csv-ob__success {
	text-align: center;
	padding: 40px 20px;
}
.csv-ob__success-ring {
	width: 80px;
	height: 80px;
	border-radius: 50%;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	display: flex;
	align-items: center;
	justify-content: center;
	margin: 0 auto 20px;
	box-shadow: 0 8px 28px rgba(245,187,31,0.4);
	animation: csv-ob-pop 0.4s cubic-bezier(0.34, 1.56, 0.64, 1) both;
}
@keyframes csv-ob-pop {
	from { transform: scale(0); opacity: 0; }
	to { transform: scale(1); opacity: 1; }
}
.csv-ob__success-h {
	font-size: 26px !important;
	font-weight: 800 !important;
	letter-spacing: -0.04em !important;
	margin: 0 0 8px !important;
	color: #1f2937 !important;
}
.csv-ob__success-p {
	font-size: 14px !important;
	color: #6b7280 !important;
	line-height: 1.55 !important;
	margin: 0 auto 24px !important;
	max-width: 320px !important;
}

.csv-ob__agent-form {
	background: #f9fafb;
	border-radius: 14px;
	padding: 12px;
	margin-bottom: 12px;
}
.csv-ob__add-agent {
	width: 100% !important;
	background: #fff !important;
	border: 1.5px solid #1f2937 !important;
	color: #1f2937 !important;
	padding: 11px !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	font-family: inherit !important;
	cursor: pointer !important;
	font-size: 13px !important;
}
.csv-ob__agents {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* Ocultar header/footer del plugin en páginas de onboarding */
body.casave-page--welcome .csv-header,
body.casave-page--ob_buscar .csv-header,
body.casave-page--ob_particular .csv-header,
body.casave-page--ob_inmobiliaria .csv-header,
body.casave-page--welcome .csv-footer,
body.casave-page--ob_buscar .csv-footer,
body.casave-page--ob_particular .csv-footer,
body.casave-page--ob_inmobiliaria .csv-footer,
body.casave-page--welcome .csv-bottom-nav,
body.casave-page--ob_buscar .csv-bottom-nav,
body.casave-page--ob_particular .csv-bottom-nav,
body.casave-page--ob_inmobiliaria .csv-bottom-nav {
	display: none !important;
}
body.casave-page--welcome,
body.casave-page--ob_buscar,
body.casave-page--ob_particular,
body.casave-page--ob_inmobiliaria {
	padding: 0 !important;
}

/* ============================================================
   v0.14.39 — Fixes header + onboarding visual + promocionar
   ============================================================ */

/* === Header móvil: pill REALMENTE centrado === */
@media (max-width: 900px) {
	.csv-header {
		z-index: 999 !important;
		position: sticky !important;
		top: 0 !important;
	}
	.csv-header__row {
		display: grid !important;
		grid-template-columns: minmax(80px, 1fr) auto minmax(80px, 1fr) !important;
		align-items: center !important;
	}
	.csv-header__logo {
		justify-self: start !important;
		grid-column: 1 !important;
	}
	.csv-header__center {
		grid-column: 2 !important;
		justify-self: center !important;
		display: flex !important;
		justify-content: center !important;
	}
	.csv-header__actions {
		grid-column: 3 !important;
		justify-self: end !important;
	}
}

/* === Header SIEMPRE encima del buscador in-page === */
.csv-header,
.csv-header[data-csv-header] {
	z-index: 1000 !important;
}
.csv-search-page__filters,
.csv-search__bar,
.csv-search-toolbar {
	z-index: 50 !important;
}

/* === Onboarding: color de marca selección VISIBLE === */
.csv-ob__color {
	position: relative;
}
.csv-ob__color.is-selected {
	border-color: #1f2937 !important;
	transform: scale(1.1);
	box-shadow: 0 0 0 3px #fff, 0 0 0 5px #1f2937 !important;
}
.csv-ob__color.is-selected::after {
	content: '✓';
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	color: #fff;
	font-size: 18px;
	font-weight: 800;
	text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}

/* === Onboarding: upload visual al subir === */
.csv-ob__upload.has-file {
	border-color: #16a34a !important;
	background: #dcfce7 !important;
}
.csv-ob__upload.has-file .csv-ob__upload-icon { color: #16a34a; }
.csv-ob__upload.has-file .csv-ob__upload-text {
	color: #16a34a !important;
	font-weight: 700 !important;
}
.csv-ob__upload-preview {
	max-width: 120px;
	max-height: 80px;
	margin: 0 auto 8px;
	display: block;
	border-radius: 8px;
}

/* === Botón promocionar: rediseño Airbnb-like === */
.csv-promote-card {
	background: linear-gradient(135deg, #1f2937 0%, #4b5563 100%) !important;
	color: #fff !important;
	border-radius: 16px !important;
	padding: 22px 24px !important;
	display: flex !important;
	align-items: center !important;
	gap: 18px !important;
	margin-bottom: 20px !important;
	position: relative !important;
	overflow: hidden !important;
}
.csv-promote-card::before {
	content: '';
	position: absolute;
	top: -50%;
	right: -10%;
	width: 280px;
	height: 280px;
	background: radial-gradient(circle, rgba(245,187,31,0.25), transparent 60%);
	pointer-events: none;
}
.csv-promote-card__icon {
	width: 52px !important;
	height: 52px !important;
	border-radius: 14px !important;
	background: linear-gradient(135deg, #F5BB1F, #FFD466) !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 22px !important;
	flex-shrink: 0 !important;
	position: relative !important;
	z-index: 1 !important;
}
.csv-promote-card__text {
	flex: 1 !important;
	position: relative !important;
	z-index: 1 !important;
}
.csv-promote-card__title {
	font-size: 16px !important;
	font-weight: 800 !important;
	margin: 0 0 4px !important;
	color: #fff !important;
}
.csv-promote-card__sub {
	font-size: 13px !important;
	color: #d1d5db !important;
	margin: 0 !important;
}
.csv-promote-card__cta {
	background: linear-gradient(135deg, #F5BB1F, #FFD466) !important;
	color: #1f2937 !important;
	padding: 12px 22px !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	border: none !important;
	cursor: pointer !important;
	font-family: inherit !important;
	position: relative !important;
	z-index: 1 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	text-decoration: none !important;
	white-space: nowrap !important;
}
.csv-promote-card__cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(245,187,31,0.4);
}

@media (max-width: 600px) {
	.csv-promote-card {
		flex-wrap: wrap !important;
	}
	.csv-promote-card__cta {
		width: 100% !important;
		justify-content: center !important;
		margin-top: 10px !important;
	}
}

/* ============================================================
   v0.14.40 — Mis inmuebles: iconos editar/borrar + stats reales
   ============================================================ */
.csv-dashboard-listing__actions {
	display: flex !important;
	gap: 6px !important;
	align-items: center !important;
	flex-wrap: wrap !important;
}
.csv-dashboard-listing__icon-btn {
	width: 36px !important;
	height: 36px !important;
	border-radius: 10px !important;
	background: #f3f4f6 !important;
	border: none !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	color: #4b5563 !important;
	transition: all 0.15s !important;
	text-decoration: none !important;
	flex-shrink: 0 !important;
}
.csv-dashboard-listing__icon-btn:hover {
	background: #1f2937 !important;
	color: #fff !important;
}
.csv-dashboard-listing__icon-btn--danger:hover {
	background: #ef4444 !important;
}
.csv-dashboard-listing__stats {
	display: flex;
	gap: 14px;
	font-size: 12px;
	color: #6b7280;
	margin-top: 6px;
}
.csv-dashboard-listing__stats strong {
	color: #1f2937;
	font-weight: 700;
	font-size: 13px;
}
.csv-dashboard-listing__draft-badge {
	display: inline-block !important;
	background: #f3f4f6 !important;
	color: #4b5563 !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	padding: 3px 8px !important;
	border-radius: 999px !important;
	letter-spacing: 0.04em !important;
	margin-left: 8px !important;
	vertical-align: middle !important;
}
.csv-dashboard-listing.is-draft {
	opacity: 0.75;
}

/* Empty state Airbnb-style cuando no hay inmuebles en el filtro/zona */
.csv-empty-state {
	background: #fff;
	border: 2px dashed #e5e7eb;
	border-radius: 18px;
	padding: 56px 32px;
	text-align: center;
	margin: 24px 0;
}
.csv-empty-state__icon {
	font-size: 48px;
	margin-bottom: 14px;
	opacity: 0.6;
}
.csv-empty-state__title {
	font-size: 20px;
	font-weight: 800;
	letter-spacing: -0.02em;
	margin-bottom: 8px;
	color: #1f2937;
}
.csv-empty-state__sub {
	font-size: 14px;
	color: #6b7280;
	max-width: 380px;
	margin: 0 auto 18px;
	line-height: 1.55;
}
.csv-empty-state__cta {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	padding: 11px 22px;
	background: #1f2937;
	color: #fff;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	font-size: 13px;
	border: none;
	cursor: pointer;
	font-family: inherit;
}

/* ============================================================
   v0.14.40 — Panel adaptativo por rol
   ============================================================ */

/* Inmobiliaria: pantalla completa, sidebar más ancho */
.csv-dashboard.is-role-inmobiliaria .csv-container {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.csv-dashboard.is-role-inmobiliaria .csv-dashboard__layout {
	grid-template-columns: 280px 1fr !important;
	min-height: calc(100vh - 80px);
	gap: 0 !important;
}
.csv-dashboard.is-role-inmobiliaria .csv-dashboard__sidebar {
	background: #fafafa !important;
	border-right: 1px solid #e5e7eb !important;
	border-radius: 0 !important;
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
}
.csv-dashboard.is-role-inmobiliaria .csv-dashboard__user {
	padding: 20px 18px !important;
	border-bottom: 1px solid #e5e7eb !important;
	margin: 0 !important;
}
.csv-dashboard.is-role-inmobiliaria .csv-dashboard__nav {
	flex: 1 !important;
	padding: 12px 8px !important;
	margin: 0 !important;
	overflow-y: auto !important;
}
.csv-dashboard.is-role-inmobiliaria .csv-dashboard__main {
	padding: 32px 40px !important;
}

/* Particular y buscador: clásico contenedor */
.csv-dashboard.is-role-particular .csv-dashboard__layout,
.csv-dashboard.is-role-buscar .csv-dashboard__layout {
	grid-template-columns: 240px 1fr !important;
	gap: 28px !important;
}

/* CTA "Publicar inmueble" abajo del sidebar (inmobiliaria y particular) */
.csv-dashboard__sidebar-cta {
	padding: 14px !important;
	border-top: 1px solid #e5e7eb !important;
	margin-top: auto !important;
}
.csv-dashboard__sidebar-cta-btn {
	width: 100% !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	padding: 11px 16px !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	border: none !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	font-size: 13px !important;
	text-decoration: none !important;
	box-shadow: 0 4px 12px rgba(245,187,31,0.25) !important;
	transition: all 0.18s !important;
}
.csv-dashboard__sidebar-cta-btn:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 16px rgba(245,187,31,0.4) !important;
}

/* Avatar 2 letras */
.csv-dashboard__avatar {
	font-size: 15px !important;
}

/* Responsive panel */
@media (max-width: 980px) {
	.csv-dashboard.is-role-inmobiliaria .csv-dashboard__layout,
	.csv-dashboard.is-role-particular .csv-dashboard__layout,
	.csv-dashboard.is-role-buscar .csv-dashboard__layout {
		grid-template-columns: 1fr !important;
	}
	.csv-dashboard__sidebar-cta { display: none; }
}

/* ============================================================
   v0.14.41 — Header dropdown encima, contact modal, empty CTA blanco
   ============================================================ */

/* User menu dropdown SIEMPRE encima del buscador in-page */
.csv-user-menu,
.csv-locale,
.csv-user-menu__panel,
.csv-locale__panel {
	z-index: 2000 !important;
}
.csv-user-menu.is-open,
.csv-locale.is-open {
	z-index: 2001 !important;
}

/* Empty state: CTA con TEXTO BLANCO sobre fondo oscuro */
.csv-empty-state__cta {
	color: #fff !important;
}
.csv-empty-state__cta:hover {
	background: #111827 !important;
	color: #fff !important;
}

/* Sheet: más espacio entre título de sección y selectores */
.csv-sheet-section[data-sheet-section="tipo"] .csv-sheet-section__body,
.csv-sheet-section__body {
	padding-top: 8px !important;
}
.csv-sheet-section__body [data-sheet-chips-tipo],
.csv-sheet-section__body .csv-sheet-chips {
	margin-top: 12px !important;
}

/* Sheet: tabs (venta/alquiler/vacacional/compartir/comercial) — tamaño consistente */
[data-sheet-tab],
.csv-sheet-tab {
	min-width: 96px !important;
	min-height: 78px !important;
	padding: 12px 14px !important;
	border: 1.5px solid #e5e7eb !important;
	border-radius: 14px !important;
	background: #fff !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 6px !important;
	color: #6b7280 !important;
	transition: all 0.18s !important;
	cursor: pointer !important;
	font-family: inherit !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	box-shadow: none !important;
	box-sizing: border-box !important;
}
[data-sheet-tab]:hover,
.csv-sheet-tab:hover {
	border-color: #FFD466 !important;
	background: #FFFCF0 !important;
	color: #1f2937 !important;
}
/* Tab seleccionada: AMARILLO PASTEL + BORDE */
[data-sheet-tab].is-active,
.csv-sheet-tab.is-active {
	background: #FFFCF0 !important;
	color: #1f2937 !important;
	border-color: #F5BB1F !important;
	border-width: 2px !important;
	padding: 11px 13px !important;
	font-weight: 700 !important;
	box-shadow: 0 4px 12px rgba(245,187,31,0.18) !important;
}
[data-sheet-tab] .csv-sheet-tab__emoji,
.csv-sheet-tab .csv-sheet-tab__emoji {
	font-size: 22px !important;
	line-height: 1 !important;
}
[data-sheet-tab] .csv-sheet-tab__label,
.csv-sheet-tab .csv-sheet-tab__label {
	font-size: 12px !important;
	font-weight: inherit !important;
	line-height: 1.2 !important;
}

/* Wrapper de tabs: gap entre tabs + scroll horizontal limpio */
.csv-sheet-tabs,
[data-sheet-tabs] {
	display: flex !important;
	gap: 10px !important;
	padding: 12px !important;
	overflow-x: auto !important;
	scrollbar-width: none !important;
}
.csv-sheet-tabs::-webkit-scrollbar,
[data-sheet-tabs]::-webkit-scrollbar {
	display: none !important;
}

/* Modal de contacto (single inmueble) */
.csv-contact-modal {
	position: fixed !important;
	inset: 0 !important;
	z-index: 1100 !important;
	display: flex !important;
	align-items: flex-end !important;
	justify-content: center !important;
}
@media (min-width: 720px) {
	.csv-contact-modal { align-items: center !important; }
}
.csv-contact-modal[hidden] { display: none !important; }
.csv-contact-modal__backdrop {
	position: absolute !important;
	inset: 0 !important;
	background: rgba(0,0,0,0.5) !important;
	backdrop-filter: blur(2px) !important;
}
.csv-contact-modal__panel {
	position: relative !important;
	background: #fff !important;
	width: 100% !important;
	max-width: 480px !important;
	max-height: 92vh !important;
	overflow-y: auto !important;
	border-radius: 20px 20px 0 0 !important;
	padding: 24px !important;
	box-shadow: 0 -20px 60px rgba(0,0,0,0.2) !important;
	animation: csv-contact-in 0.3s cubic-bezier(0.32, 0.72, 0, 1);
}
@media (min-width: 720px) {
	.csv-contact-modal__panel { border-radius: 20px !important; }
}
@keyframes csv-contact-in {
	from { transform: translateY(40px); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}
.csv-contact-modal__close {
	position: absolute !important;
	top: 18px;
	right: 18px;
	width: 32px;
	height: 32px;
	border-radius: 999px;
	background: #f3f4f6;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	color: #1f2937;
	z-index: 2;
}
.csv-contact-modal__close:hover { background: #e5e7eb; }
.csv-contact-modal__title {
	font-size: 22px !important;
	font-weight: 800 !important;
	letter-spacing: -0.03em !important;
	margin: 0 0 6px !important;
	color: #1f2937 !important;
}
.csv-contact-modal__sub {
	font-size: 13px !important;
	color: #6b7280 !important;
	margin: 0 0 18px !important;
	line-height: 1.5 !important;
}
.csv-contact-modal__summary {
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	padding: 12px 14px;
	margin-bottom: 18px;
	font-size: 13px;
	color: #1f2937;
	line-height: 1.5;
}
.csv-contact-modal__summary:empty { display: none; }
.csv-contact-modal__field {
	margin-bottom: 12px;
}
.csv-contact-modal__field label {
	display: block;
	font-size: 12px;
	font-weight: 700;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 4px;
}
.csv-contact-modal__field input {
	width: 100% !important;
	padding: 12px 14px !important;
	font-family: inherit !important;
	font-size: 15px !important;
	background: #fff !important;
	border: 1.5px solid #e5e7eb !important;
	border-radius: 12px !important;
	outline: none !important;
	color: #1f2937 !important;
	box-sizing: border-box !important;
	-webkit-appearance: none !important;
}
.csv-contact-modal__field input:focus {
	border-color: #F5BB1F !important;
	box-shadow: 0 0 0 4px rgba(245,187,31,0.12) !important;
}
.csv-contact-modal__cta {
	width: 100% !important;
	padding: 14px !important;
	background: #1f2937 !important;
	color: #fff !important;
	border: none !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 700 !important;
	cursor: pointer !important;
	margin-top: 8px !important;
	transition: all 0.18s !important;
}
.csv-contact-modal__cta:hover {
	background: #111827 !important;
	transform: translateY(-1px);
}
.csv-contact-modal__note {
	font-size: 11px !important;
	color: #6b7280 !important;
	text-align: center !important;
	margin-top: 12px !important;
}

/* Slider de precio: barra activa más visible */
.csv-filter-range__bar {
	transition: opacity 0.2s, background 0.2s;
}

/* Botón "Buscar" del search-bar in-page: pulsar precio sí debe poder abrir el sheet */
.csv-search__bar [data-search-field="price"] {
	cursor: pointer;
}

/* Search-bar in-page: segmento con valor (selected) */
.csv-search__seg.has-value .csv-search__val {
	color: #1f2937 !important;
	font-weight: 700 !important;
}
.csv-search__seg.has-value .csv-search__lbl {
	color: #1f2937 !important;
}
.csv-search__seg.has-value {
	background: #FFFCF0;
}

/* ============================================================
   v0.14.42 — Buscador in-page: hover pastel + tamaño consistente
   ============================================================ */

/* Hover/has-value en amarillo pastel suave */
.csv-search__seg:hover,
.csv-search-bar .csv-search__seg:hover {
	background: #FFF9E6 !important;
	border-radius: 999px !important;
}
.csv-search__seg.has-value,
.csv-search-bar .csv-search__seg.has-value {
	background: #FFFCF0 !important;
	border-radius: 999px !important;
}
.csv-search__seg.has-value:hover {
	background: #FFF6D9 !important;
}

/* Tamaño consistente: misma altura entre todas las categorías */
.csv-search-bar .csv-search__seg {
	min-height: 64px !important;
	padding: 12px 22px !important;
	display: flex !important;
	flex-direction: column !important;
	justify-content: center !important;
	align-items: flex-start !important;
}

/* === Sheet: convivencia centrada + separación === */
[data-sheet-convivencia] {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	gap: 10px !important;
	padding: 18px 14px !important;
	margin-top: 6px !important;
}
[data-sheet-convivencia] .csv-sheet-chip {
	margin: 0 !important;
	padding: 10px 18px !important;
}

/* Sheet: bajar baños cuando aparecen los dos steppers */
.csv-sheet-section[data-sheet-section="habs"] .csv-stepper + .csv-stepper {
	margin-top: 18px !important;
	padding-top: 18px !important;
	border-top: 1px solid #f3f4f6 !important;
}

/* Chip seleccionado de convivencia */
[data-sheet-convivencia] .csv-sheet-chip.is-active {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}

/* === Modal filtros: chips de servicios bien renderizados === */
.csv-modal[data-csv-modal="filters"] .csv-filter-chips {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr) !important;
	gap: 10px !important;
	width: 100% !important;
}
@media (min-width: 600px) {
	.csv-modal[data-csv-modal="filters"] .csv-filter-chips {
		grid-template-columns: repeat(3, 1fr) !important;
	}
}
.csv-modal[data-csv-modal="filters"] .csv-filter-chip {
	min-height: 80px !important;
	min-width: 0 !important;
	width: auto !important;
	flex: 0 1 auto !important;
	padding: 14px 12px !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	gap: 6px !important;
	border: 1.5px solid #e5e7eb !important;
	border-radius: 12px !important;
	background: #fff !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	text-align: left !important;
	box-sizing: border-box !important;
}
.csv-modal[data-csv-modal="filters"] .csv-filter-chip__emoji {
	font-size: 22px !important;
	line-height: 1 !important;
	display: block !important;
}
.csv-modal[data-csv-modal="filters"] .csv-filter-chip__label {
	font-size: 12px !important;
	font-weight: 600 !important;
	line-height: 1.3 !important;
	white-space: normal !important;
	display: block !important;
}
.csv-modal[data-csv-modal="filters"] .csv-filter-chip.is-active {
	border-color: #1f2937 !important;
	border-width: 2px !important;
	background: #FFFCF0 !important;
	padding: 13px 11px !important;
}

/* === Filter range: dos sliders superpuestos === */
.csv-filter-range__slider-wrap {
	position: relative;
	height: 24px;
	margin: -4px 0 12px;
}
.csv-filter-range__slider {
	position: absolute;
	width: 100%;
	height: 24px;
	background: transparent;
	-webkit-appearance: none;
	pointer-events: none;
	margin: 0;
	padding: 0;
}
.csv-filter-range__slider::-webkit-slider-thumb {
	-webkit-appearance: none;
	width: 20px;
	height: 20px;
	background: #fff;
	border: 2px solid #1f2937;
	border-radius: 50%;
	cursor: pointer;
	pointer-events: auto;
	box-shadow: 0 2px 4px rgba(0,0,0,0.12);
}
.csv-filter-range__slider::-moz-range-thumb {
	width: 20px;
	height: 20px;
	background: #fff;
	border: 2px solid #1f2937;
	border-radius: 50%;
	cursor: pointer;
	pointer-events: auto;
}
.csv-filter-range__slider::-webkit-slider-runnable-track {
	height: 4px;
	background: #e5e7eb;
	border-radius: 2px;
}

.csv-filter-range__inputs {
	display: grid !important;
	grid-template-columns: 1fr 1fr !important;
	gap: 10px !important;
}
.csv-filter-range__input {
	border: 1.5px solid #e5e7eb;
	border-radius: 12px;
	padding: 8px 12px;
}
.csv-filter-range__input label {
	display: block;
	font-size: 10px;
	font-weight: 700;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	margin-bottom: 2px;
}
.csv-filter-range__input input {
	width: 100%;
	border: none;
	outline: none;
	font-family: inherit;
	font-size: 14px;
	font-weight: 700;
	color: #1f2937;
	background: transparent;
	-moz-appearance: textfield;
}
.csv-filter-range__input input::-webkit-outer-spin-button,
.csv-filter-range__input input::-webkit-inner-spin-button {
	-webkit-appearance: none;
	margin: 0;
}

/* === Modal contacto: notice para anónimos === */
.csv-contact-modal__notice {
	background: linear-gradient(135deg, #FFFCF0 0%, #FFF6D9 100%);
	border: 1px solid #FFE9A8;
	border-radius: 12px;
	padding: 12px 14px;
	margin-bottom: 14px;
	font-size: 13px;
	color: #1f2937;
	line-height: 1.5;
}

/* === Header SIEMPRE encima de TODO en /v0.14.42/ === */
.csv-header,
header.csv-header,
.csv-header[data-csv-header],
#header,
.site-header,
.uicore-header {
	z-index: 9999 !important;
	position: relative !important;
}
/* Cuando el header tiene position:sticky, el stacking context cambia */
@supports (position: sticky) {
	.csv-header { position: sticky !important; top: 0 !important; }
}

/* User-menu y locale dropdowns por encima de TODO */
.csv-user-menu,
.csv-locale {
	position: relative !important;
	z-index: 10000 !important;
}
.csv-user-menu__panel,
.csv-locale__panel {
	z-index: 10001 !important;
	position: absolute !important;
}
.csv-user-menu.is-open,
.csv-locale.is-open {
	z-index: 10001 !important;
}

/* Buscador in-page DEBE quedarse debajo */
.csv-search-page,
.csv-search-page__filters,
.csv-search-toolbar,
section[style*="background: #fff"] {
	z-index: 1 !important;
	position: relative !important;
}

/* En páginas de búsqueda, el bloque del buscador in-page que tiene background blanco debe quedar por debajo del header */
.csv-search-page,
.csv-search-page * {
	z-index: auto;
}

/* ============================================================
   v0.14.43 — Banner éxito + tabs mensajes + date input bonito
   ============================================================ */

/* Banner éxito estilo Idealista (esquina inferior-izquierda, deslizable) */
.csv-success-banner {
	position: fixed !important;
	bottom: 24px;
	left: 50%;
	transform: translateX(-50%) translateY(120px);
	z-index: 100000 !important;
	background: #fff;
	border-radius: 16px;
	box-shadow: 0 12px 40px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.04);
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 16px 20px;
	max-width: 560px;
	min-width: 320px;
	width: calc(100% - 32px);
	transition: transform 0.4s cubic-bezier(0.32, 0.72, 0, 1), opacity 0.35s;
	opacity: 0;
}
.csv-success-banner.is-visible {
	transform: translateX(-50%) translateY(0);
	opacity: 1;
}
.csv-success-banner__icon {
	width: 40px;
	height: 40px;
	border-radius: 12px;
	background: linear-gradient(135deg, #22c55e, #16a34a);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
}
.csv-success-banner__text {
	flex: 1;
	min-width: 0;
	font-size: 13px;
	color: #4b5563;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.csv-success-banner__text strong {
	font-size: 14px;
	color: #1f2937;
}
.csv-success-banner__link {
	background: #1f2937;
	color: #fff !important;
	padding: 8px 16px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 12px;
	text-decoration: none;
	white-space: nowrap;
	flex-shrink: 0;
}
.csv-success-banner__link:hover {
	background: #111827;
}
.csv-success-banner__close {
	background: none;
	border: none;
	color: #9ca3af;
	font-size: 14px;
	cursor: pointer;
	padding: 4px 8px;
	flex-shrink: 0;
}
.csv-success-banner__close:hover { color: #1f2937; }
@media (max-width: 600px) {
	.csv-success-banner {
		flex-wrap: wrap;
		gap: 10px;
		padding: 14px 16px;
	}
	.csv-success-banner__link {
		order: 3;
		width: 100%;
		text-align: center;
	}
}

/* Tabs mensajes */
.csv-msg-tabs {
	display: flex;
	gap: 4px;
	border-bottom: 1px solid #e5e7eb;
	margin-bottom: 18px;
}
.csv-msg-tab {
	padding: 12px 18px;
	font-size: 14px;
	font-weight: 600;
	color: #6b7280;
	text-decoration: none;
	border-bottom: 2px solid transparent;
	transition: all 0.15s;
	display: inline-flex;
	align-items: center;
	gap: 6px;
}
.csv-msg-tab:hover { color: #1f2937; }
.csv-msg-tab.is-active {
	color: #1f2937;
	border-bottom-color: #F5BB1F;
	font-weight: 700;
}
.csv-msg-tab span {
	background: #f3f4f6;
	color: #4b5563;
	font-size: 11px;
	padding: 2px 8px;
	border-radius: 999px;
	font-weight: 700;
}
.csv-msg-tab.is-active span {
	background: #FFFCF0;
	color: #1f2937;
}

/* Cards mensajes */
.csv-msg-list {
	display: flex;
	flex-direction: column;
	gap: 12px;
}
.csv-msg-card {
	display: grid;
	grid-template-columns: 88px 1fr;
	gap: 14px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	overflow: hidden;
	transition: all 0.18s;
}
.csv-msg-card:hover {
	border-color: #1f2937;
	box-shadow: 0 4px 14px rgba(0,0,0,0.06);
}
.csv-msg-card__thumb {
	background: linear-gradient(135deg, #fef3c7, #fde68a) center/cover no-repeat;
	min-height: 100%;
}
.csv-msg-card__body {
	padding: 12px 14px 14px 0;
	min-width: 0;
}
.csv-msg-card__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 4px;
}
.csv-msg-card__head strong {
	font-size: 14px;
	color: #1f2937;
	font-weight: 700;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	min-width: 0;
}
.csv-msg-card__time {
	font-size: 11px;
	color: #9ca3af;
	white-space: nowrap;
	flex-shrink: 0;
}
.csv-msg-card__from {
	font-size: 12px;
	color: #6b7280;
	margin: 0 0 4px;
}
.csv-msg-card__meta {
	font-size: 12px;
	color: #6b7280;
	margin: 0 0 6px;
}
.csv-msg-card__msg {
	font-size: 13px;
	color: #1f2937;
	line-height: 1.5;
	margin: 6px 0 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}

/* Inputs date más bonitos en el reserve/contact form */
.csv-listing__reserve input[type="date"] {
	padding: 10px 14px !important;
	border: 1.5px solid #e5e7eb !important;
	border-radius: 12px !important;
	font-family: inherit !important;
	font-size: 14px !important;
	color: #1f2937 !important;
	background: #fff !important;
	cursor: pointer !important;
	-webkit-appearance: none !important;
	font-weight: 600 !important;
	width: 100% !important;
	box-sizing: border-box !important;
}
.csv-listing__reserve input[type="date"]:focus {
	border-color: #F5BB1F !important;
	box-shadow: 0 0 0 4px rgba(245,187,31,0.12) !important;
	outline: none !important;
}
.csv-listing__reserve input[type="date"]::-webkit-calendar-picker-indicator {
	filter: invert(0.5);
	cursor: pointer;
}
.csv-listing__reserve-field span {
	display: block !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	color: #6b7280 !important;
	text-transform: uppercase !important;
	letter-spacing: 0.04em !important;
	margin-bottom: 5px !important;
}
.csv-listing__reserve-field {
	display: block !important;
	margin-bottom: 10px !important;
}

/* Date input también en modal contacto */
.csv-contact-modal__field input[type="date"] {
	cursor: pointer !important;
}

/* ============================================================
   v0.14.44 — Header rediseñado: ¿Qué buscas? + Empresa
   ============================================================ */

.csv-header__nav {
	display: flex !important;
	align-items: center !important;
	gap: 4px !important;
	margin-bottom: 8px !important;
}
.csv-header__nav-link {
	background: none !important;
	border: none !important;
	padding: 10px 16px !important;
	font-family: inherit !important;
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	border-radius: 999px !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	transition: background 0.15s !important;
	text-decoration: none !important;
}
.csv-header__nav-link:hover {
	background: #f3f4f6 !important;
}
.csv-header__nav-link svg {
	transition: transform 0.18s;
}
.csv-header__nav-dd {
	position: relative !important;
}
.csv-header__nav-dd.is-open .csv-header__nav-link svg {
	transform: rotate(180deg);
}
.csv-header__nav-dd-panel {
	position: absolute !important;
	top: calc(100% + 8px) !important;
	left: 50% !important;
	transform: translateX(-50%) !important;
	background: #fff !important;
	min-width: 320px !important;
	padding: 8px !important;
	border-radius: 16px !important;
	box-shadow: 0 12px 32px rgba(0,0,0,0.16), 0 0 0 1px rgba(0,0,0,0.04) !important;
	z-index: 10002 !important;
}
.csv-header__nav-dd-panel[hidden] { display: none !important; }
.csv-header__nav-dd-item {
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
	padding: 10px 14px !important;
	border-radius: 10px !important;
	text-decoration: none !important;
	color: #1f2937 !important;
	transition: background 0.12s !important;
}
.csv-header__nav-dd-item:hover {
	background: #FFFCF0 !important;
}
.csv-header__nav-dd-item strong {
	display: block !important;
	font-size: 13px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
}
.csv-header__nav-dd-item small {
	display: block !important;
	font-size: 11px !important;
	color: #6b7280 !important;
	margin-top: 1px !important;
}
.csv-header__nav-dd-icon {
	width: 36px !important;
	height: 36px !important;
	background: #f9fafb !important;
	border-radius: 10px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-size: 18px !important;
	flex-shrink: 0 !important;
}

/* En móvil: ocultar nav del header (acceso via menú) */
@media (max-width: 900px) {
	.csv-header__nav { display: none !important; }
}

/* === Header sticky DEBE seguir el scroll === */
html, body { overflow-x: hidden !important; }
body { overflow-y: auto !important; }
.csv-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 9999 !important;
	background: #fff !important;
}
/* Romper overflow:hidden de cualquier padre que pudiese interferir */
.csv-header,
.csv-header * {
	transform: none !important;
}

/* === Badge de rol arriba del user-menu === */
.csv-user-menu__role-badge {
	display: flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 10px 14px !important;
	background: linear-gradient(135deg, #FFFCF0 0%, #FFF6D9 100%) !important;
	border-bottom: 1px solid #f3f4f6 !important;
	margin: -8px -0 4px !important;
}
.csv-user-menu__role-badge-pill {
	display: inline-flex !important;
	align-items: center !important;
	gap: 4px !important;
	padding: 4px 10px !important;
	background: #1f2937 !important;
	color: #FFD466 !important;
	border-radius: 999px !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	letter-spacing: 0.06em !important;
	text-transform: uppercase !important;
}
.csv-user-menu__role-badge small {
	color: #6b7280 !important;
	font-size: 11px !important;
}

/* === Mensajes pantalla completa estilo Airbnb === */
.csv-dashboard.is-role-particular .csv-container,
.csv-dashboard.is-role-buscar .csv-container {
	max-width: 100% !important;
	padding-left: 0 !important;
	padding-right: 0 !important;
}
.csv-dashboard.is-role-particular .csv-dashboard__main,
.csv-dashboard.is-role-buscar .csv-dashboard__main,
.csv-dashboard.is-role-inmobiliaria .csv-dashboard__main {
	padding: 28px 32px !important;
	max-width: 1200px !important;
	margin: 0 auto !important;
}

/* Mensajes cards verticales grandes (Airbnb style) */
.csv-msg-airbnb-list {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
	gap: 18px;
	margin-top: 18px;
}
.csv-msg-airbnb-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 18px;
	overflow: hidden;
	transition: all 0.22s cubic-bezier(0.32, 0.72, 0, 1);
	cursor: pointer;
	display: flex;
	flex-direction: column;
	text-decoration: none;
	color: inherit;
}
.csv-msg-airbnb-card:hover {
	box-shadow: 0 12px 32px rgba(0,0,0,0.10);
	border-color: #d1d5db;
	transform: translateY(-2px);
}
.csv-msg-airbnb-card__photo {
	width: 100%;
	aspect-ratio: 4 / 3;
	background: linear-gradient(135deg, #fef3c7, #fde68a) center/cover no-repeat;
	position: relative;
}
.csv-msg-airbnb-card__badge {
	position: absolute;
	top: 12px;
	left: 12px;
	background: rgba(255,255,255,0.95);
	color: #1f2937;
	padding: 5px 11px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	letter-spacing: 0.04em;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1);
}
.csv-msg-airbnb-card__body {
	padding: 16px 18px 18px;
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.csv-msg-airbnb-card__title {
	font-size: 16px;
	font-weight: 700;
	color: #1f2937;
	margin: 0;
	letter-spacing: -0.01em;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
}
.csv-msg-airbnb-card__from {
	display: flex;
	align-items: center;
	gap: 8px;
	font-size: 13px;
	color: #6b7280;
}
.csv-msg-airbnb-card__from-avatar {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 11px;
	font-weight: 700;
	color: #1f2937;
	flex-shrink: 0;
}
.csv-msg-airbnb-card__msg {
	font-size: 14px;
	color: #374151;
	line-height: 1.5;
	margin: 4px 0 0;
	display: -webkit-box;
	-webkit-line-clamp: 3;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.csv-msg-airbnb-card__footer {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-top: auto;
	padding-top: 12px;
	border-top: 1px solid #f3f4f6;
	font-size: 12px;
	color: #6b7280;
}
.csv-msg-airbnb-card__footer strong {
	font-weight: 700;
	color: #1f2937;
}

/* === Sheet tabs MÁS compactas + indicador scroll === */
[data-sheet-tab],
.csv-sheet-tab {
	min-width: 78px !important;
	min-height: 64px !important;
	padding: 8px 12px !important;
	gap: 4px !important;
	font-size: 11px !important;
}
[data-sheet-tab] .csv-sheet-tab__emoji,
.csv-sheet-tab .csv-sheet-tab__emoji {
	font-size: 20px !important;
}
.csv-sheet-tabs,
[data-sheet-tabs] {
	gap: 6px !important;
	padding: 8px 12px !important;
	border-bottom: none !important;
	position: relative !important;
	scroll-snap-type: x mandatory !important;
}
.csv-sheet-tabs::after,
[data-sheet-tabs]::after {
	content: '';
	position: absolute !important;
	right: 0 !important;
	top: 0 !important;
	bottom: 0 !important;
	width: 32px !important;
	background: linear-gradient(to right, transparent, #fff 70%) !important;
	pointer-events: none !important;
	z-index: 2 !important;
}
.csv-search-sheet__head {
	border-bottom: none !important;
}

/* Tab activa más pequeña: ajustar padding cuando border-width: 2px */
[data-sheet-tab].is-active,
.csv-sheet-tab.is-active {
	padding: 7px 11px !important;
}

/* === CTAs primarios SIEMPRE amarillo + texto negro === */
.csv-rich__cta,
.csv-rich__cta--primary,
.csv-section__see-all,
.csv-banner__cta,
.csv-cta-primary,
.csv-cta--primary,
.csv-publish-cta,
.csv-verified-cta,
a.csv-rich__cta,
button.csv-rich__cta {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	border: none !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	box-shadow: 0 4px 12px rgba(245,187,31,0.25) !important;
	transition: all 0.18s !important;
}
.csv-rich__cta:hover,
.csv-section__see-all:hover,
.csv-banner__cta:hover,
.csv-cta-primary:hover,
.csv-cta--primary:hover,
.csv-publish-cta:hover,
.csv-verified-cta:hover {
	background: linear-gradient(135deg, #FFD466 0%, #F5BB1F 100%) !important;
	color: #1f2937 !important;
	box-shadow: 0 6px 16px rgba(245,187,31,0.4) !important;
	transform: translateY(-1px) !important;
}

/* Banner home "¿Tienes un inmueble?" — texto y CTA blancos/amarillos */
.csv-banner-publish,
section.csv-banner-publish {
	background: linear-gradient(135deg, #1f2937 0%, #111827 100%) !important;
	color: #fff !important;
}
.csv-banner-publish *,
.csv-banner-publish h2,
.csv-banner-publish p,
.csv-banner-publish span {
	color: #fff !important;
}
.csv-banner-publish .csv-banner__cta,
.csv-banner-publish a[href*="publicar"],
.csv-banner-publish a.csv-rich__cta {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
}

/* Mapa móvil: asegurar listings cargados */
.csv-mobile-map-modal__listings,
[data-csv-mobile-map] .csv-grid {
	display: block !important;
	padding: 16px !important;
}

/* Bottom CTA móvil del single inmueble: FORZAR que se vea */
.csv-mobile-reserve-bar,
[data-csv-mobile-reserve-bar] {
	position: fixed !important;
	bottom: 0 !important;
	left: 0 !important;
	right: 0 !important;
	z-index: 9000 !important;
	display: flex !important;
	visibility: visible !important;
	opacity: 1 !important;
	pointer-events: auto !important;
}
@media (min-width: 980px) {
	.csv-mobile-reserve-bar { display: none !important; }
}

/* === Blog: featured + grid de cards === */
.csv-blog-featured {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 32px;
	background: #fff;
	border-radius: 24px;
	overflow: hidden;
	box-shadow: 0 12px 32px rgba(0,0,0,0.06);
	margin: 32px 0;
}
@media (max-width: 800px) {
	.csv-blog-featured { grid-template-columns: 1fr; }
}
.csv-blog-featured__img {
	min-height: 360px;
	background: center/cover no-repeat #f3f4f6;
}
.csv-blog-featured__body {
	padding: 40px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	gap: 16px;
}
.csv-blog-featured__cat {
	display: inline-block;
	background: #FFFCF0;
	color: #1f2937;
	padding: 5px 14px;
	border-radius: 999px;
	font-size: 11px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	width: fit-content;
	border: 1px solid #F5BB1F;
}
.csv-blog-featured__title {
	font-size: 32px;
	font-weight: 800;
	letter-spacing: -0.025em;
	line-height: 1.15;
	margin: 0;
	color: #1f2937;
}
.csv-blog-featured__excerpt {
	font-size: 15px;
	line-height: 1.6;
	color: #4b5563;
	margin: 0;
}
.csv-blog-featured__meta {
	display: flex;
	justify-content: space-between;
	align-items: center;
	flex-wrap: wrap;
	gap: 16px;
	margin-top: auto;
	padding-top: 16px;
	border-top: 1px solid #f3f4f6;
}
.csv-blog-featured__author {
	display: flex;
	align-items: center;
	gap: 10px;
}
.csv-blog-featured__author-avatar {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-weight: 700;
	font-size: 14px;
	flex-shrink: 0;
}
.csv-blog-featured__author strong {
	display: block;
	font-size: 14px;
	color: #1f2937;
}
.csv-blog-featured__author small {
	display: block;
	font-size: 12px;
	color: #6b7280;
}
.csv-blog-featured__cta {
	background: linear-gradient(135deg, #F5BB1F, #FFD466);
	color: #1f2937;
	padding: 10px 20px;
	border-radius: 999px;
	font-weight: 700;
	text-decoration: none;
	font-size: 14px;
}

.csv-blog-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 22px;
}
.csv-blog-card {
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 18px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	transition: all 0.22s cubic-bezier(0.32, 0.72, 0, 1);
}
.csv-blog-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 10px 28px rgba(0,0,0,0.10);
	border-color: #d1d5db;
}
.csv-blog-card__img {
	width: 100%;
	aspect-ratio: 16 / 10;
	background: center/cover no-repeat #f3f4f6;
}
.csv-blog-card__body {
	padding: 18px 20px 20px;
	display: flex;
	flex-direction: column;
	gap: 8px;
	flex: 1;
}
.csv-blog-card__cat {
	display: inline-block;
	background: #f9fafb;
	color: #4b5563;
	padding: 3px 10px;
	border-radius: 999px;
	font-size: 10px;
	font-weight: 700;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	width: fit-content;
}
.csv-blog-card__title {
	font-size: 17px;
	font-weight: 700;
	letter-spacing: -0.015em;
	line-height: 1.3;
	margin: 4px 0;
	color: #1f2937;
}
.csv-blog-card__excerpt {
	font-size: 13px;
	color: #6b7280;
	line-height: 1.55;
	margin: 0;
	display: -webkit-box;
	-webkit-line-clamp: 2;
	-webkit-box-orient: vertical;
	overflow: hidden;
}
.csv-blog-card__meta {
	margin-top: auto;
	padding-top: 12px;
	font-size: 12px;
	color: #6b7280;
}
.csv-blog-card__meta strong {
	color: #1f2937;
	font-weight: 700;
}

/* === CTAs banners home: SIEMPRE amarillo con texto negro === */
.csv-home-banner__cta,
a.csv-home-banner__cta {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	padding: 14px 26px !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	box-shadow: 0 4px 14px rgba(245,187,31,0.32) !important;
	transition: all 0.2s !important;
	border: none !important;
	flex-shrink: 0 !important;
}
.csv-home-banner__cta:hover,
a.csv-home-banner__cta:hover {
	transform: translateY(-2px) !important;
	box-shadow: 0 8px 20px rgba(245,187,31,0.45) !important;
	color: #1f2937 !important;
	background: linear-gradient(135deg, #FFD466 0%, #F5BB1F 100%) !important;
}
.csv-home-banner__cta svg {
	stroke: #1f2937 !important;
}

/* En banner oscuro (promocion): CTA igual amarillo con texto negro */
.csv-home-banner.is-dark .csv-home-banner__cta {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
}

/* Banner home "Inmuebles verificados" + "¿Tienes inmueble?": que SE LEAN bien */
.csv-home-banner h2,
.csv-home-banner__title {
	color: #1f2937 !important;
}
.csv-home-banner.is-dark h2,
.csv-home-banner.is-dark .csv-home-banner__title,
.csv-home-banner.is-dark .csv-home-banner__sub,
.csv-home-banner.is-dark .csv-home-banner__eyebrow {
	color: #fff !important;
}

/* Sección "Ver todos los inmuebles" — botón amarillo + texto negro */
.csv-section__see-all,
a.csv-section__see-all {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	padding: 10px 20px !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	text-decoration: none !important;
	border: none !important;
	box-shadow: 0 3px 10px rgba(245,187,31,0.25) !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	transition: all 0.18s !important;
}
.csv-section__see-all:hover {
	background: linear-gradient(135deg, #FFD466 0%, #F5BB1F 100%) !important;
	color: #1f2937 !important;
	transform: translateY(-1px) !important;
}
.csv-section__see-all svg { stroke: #1f2937 !important; }

/* === Single inmueble móvil: ocultar bottom-nav, mostrar reserve-bar === */
@media (max-width: 900px) {
	body.single-inmueble .csv-bottom-nav,
	.single-inmueble .csv-bottom-nav {
		display: none !important;
	}
	body.single-inmueble .csv-mobile-reserve-bar,
	.single-inmueble .csv-mobile-reserve-bar {
		display: flex !important;
		z-index: 9500 !important;
		visibility: visible !important;
		opacity: 1 !important;
	}
}
/* Por si single-inmueble no se aplica al body, detectar por la presencia del bar */
@media (max-width: 900px) {
	.csv-mobile-reserve-bar {
		display: flex !important;
	}
}

/* Si hay BOTH bar y bottom-nav, separarlos */
@media (max-width: 900px) {
	.csv-mobile-reserve-bar ~ .csv-bottom-nav,
	.csv-bottom-nav:has(~ .csv-mobile-reserve-bar) {
		display: none !important;
	}
}

/* ============================================================
   v0.14.45 — Header estilo Airbnb + sheet tabs simples
   ============================================================ */

/* === Header sticky con blur al hacer scroll === */
.csv-header {
	position: sticky !important;
	top: 0 !important;
	z-index: 9999 !important;
	background: rgba(255,255,255,0.92) !important;
	backdrop-filter: blur(20px) saturate(180%) !important;
	-webkit-backdrop-filter: blur(20px) saturate(180%) !important;
	transition: box-shadow 0.25s ease, padding 0.25s ease, background 0.25s ease !important;
	border-bottom: 1px solid transparent !important;
}
.csv-header.is-scrolled {
	background: rgba(255,255,255,0.96) !important;
	box-shadow: 0 4px 14px rgba(0,0,0,0.06) !important;
	border-bottom-color: rgba(0,0,0,0.04) !important;
}

/* === Tabs del header estilo Airbnb: solo rayita abajo, sin fondo === */
.csv-header__tabs {
	display: flex !important;
	gap: 8px !important;
	justify-content: center !important;
	align-items: flex-end !important;
	margin-bottom: 8px !important;
}
.csv-tab {
	background: none !important;
	border: none !important;
	padding: 8px 16px 12px !important;
	font-family: inherit !important;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	cursor: pointer !important;
	display: inline-flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 4px !important;
	border-bottom: 2px solid transparent !important;
	transition: color 0.15s, border-color 0.15s !important;
	text-decoration: none !important;
	border-radius: 0 !important;
	white-space: nowrap !important;
	box-shadow: none !important;
}
.csv-tab:hover {
	color: #1f2937 !important;
	background: none !important;
	border-color: transparent !important;
}
.csv-tab.csv-tab--active {
	color: #1f2937 !important;
	border-bottom-color: #1f2937 !important;
	font-weight: 700 !important;
	background: none !important;
}
.csv-tab svg {
	width: 22px !important;
	height: 22px !important;
	stroke-width: 1.8 !important;
}

/* === Sheet tabs SIMPLES sin amarillo pastel === */
[data-sheet-tab],
.csv-sheet-tab {
	background: none !important;
	border: none !important;
	border-radius: 0 !important;
	padding: 10px 14px 12px !important;
	min-width: auto !important;
	min-height: auto !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	cursor: pointer !important;
	display: inline-flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 6px !important;
	border-bottom: 2px solid transparent !important;
	transition: color 0.15s, border-color 0.15s !important;
	box-shadow: none !important;
	white-space: nowrap !important;
}
[data-sheet-tab]:hover,
.csv-sheet-tab:hover {
	color: #1f2937 !important;
	background: none !important;
	border-color: transparent !important;
}
[data-sheet-tab].is-active,
.csv-sheet-tab.is-active {
	color: #1f2937 !important;
	border-bottom-color: #1f2937 !important;
	font-weight: 700 !important;
	background: none !important;
	padding: 10px 14px 12px !important;
}
[data-sheet-tab] .csv-sheet-tab__emoji,
.csv-sheet-tab .csv-sheet-tab__emoji {
	font-size: 22px !important;
}

/* Wrapper de tabs del sheet: gap normal */
.csv-sheet-tabs,
[data-sheet-tabs] {
	display: flex !important;
	gap: 4px !important;
	padding: 12px 16px !important;
	justify-content: center !important;
	border-bottom: none !important;
	overflow-x: auto !important;
	scrollbar-width: none !important;
}
.csv-sheet-tabs::-webkit-scrollbar,
[data-sheet-tabs]::-webkit-scrollbar {
	display: none !important;
}
/* En móvil: scroll horizontal con fade derecho */
@media (max-width: 700px) {
	.csv-sheet-tabs,
	[data-sheet-tabs] {
		justify-content: flex-start !important;
		position: relative !important;
	}
}

/* Asegurar que el header__nav del rediseño previo NO se muestra */
.csv-header__nav { display: none !important; }
.csv-header__nav-dd-panel { display: none !important; }

/* === Modal de contacto MÓVIL: espacio para el sticky bar === */
@media (max-width: 900px) {
	.csv-contact-modal__panel {
		padding-bottom: 100px !important;
		max-height: 96vh !important;
	}
	.csv-contact-modal__cta {
		margin-bottom: 0 !important;
	}
}

/* === Pill del header (búsqueda compacta) sigue visible siempre === */
.csv-header__pill {
	display: inline-flex !important;
}
@media (max-width: 900px) {
	.csv-header__pill { display: none !important; }
	.csv-header__tabs { display: none !important; }
}

/* Modal contacto SIEMPRE encima del sticky bar móvil */
.csv-contact-modal {
	z-index: 99999 !important;
}
/* Cuando un modal está abierto, ocultar el sticky bar del single inmueble */
body:has(.csv-contact-modal:not([hidden])) .csv-mobile-reserve-bar,
body.csv-modal-open .csv-mobile-reserve-bar {
	display: none !important;
}

/* ============================================================
   v0.14.46 — Header position:fixed (sticky no funciona en Lumi)
   ============================================================ */

/* Forzar header FIJO arriba (más confiable que sticky con Elementor/Lumi) */
html body .csv-header,
html body header.csv-header,
html body .csv-header[data-csv-header] {
	position: fixed !important;
	top: 0 !important;
	left: 0 !important;
	right: 0 !important;
	width: 100% !important;
	z-index: 99999 !important;
	background: rgba(255,255,255,0.94) !important;
	backdrop-filter: blur(20px) saturate(180%) !important;
	-webkit-backdrop-filter: blur(20px) saturate(180%) !important;
	border-bottom: 1px solid rgba(0,0,0,0.04) !important;
	box-shadow: 0 1px 0 rgba(0,0,0,0.02) !important;
	transform: translateZ(0) !important;
	will-change: background, box-shadow !important;
}
html body .csv-header.is-scrolled {
	background: rgba(255,255,255,0.97) !important;
	box-shadow: 0 4px 18px rgba(0,0,0,0.08) !important;
}

/* Espaciador en el body para que el contenido no quede debajo del header fijo */
html body {
	padding-top: 88px !important;
}
@media (max-width: 900px) {
	html body { padding-top: 72px !important; }
}

/* Si el tema tiene su propio admin bar */
html.admin-bar body { padding-top: 120px !important; }
@media (max-width: 900px) {
	html.admin-bar body { padding-top: 104px !important; }
}
html.admin-bar .csv-header { top: 32px !important; }
@media (max-width: 782px) {
	html.admin-bar .csv-header { top: 46px !important; }
}

/* Quitar margin-top/padding-top que el tema pueda haber añadido al main */
html body .csv-main,
html body .casave-main,
html body main {
	margin-top: 0 !important;
}

/* === Slide horizontal al cambiar de op en el sheet (v0.14.47) === */
.csv-search-sheet__body {
	transition: none;
}
.csv-search-sheet__body.is-exiting {
	pointer-events: none !important;
}
.csv-search-sheet__body.is-exiting [data-sheet-section] {
	transform: translateX(-44px) !important;
	opacity: 0 !important;
	transition: transform 0.32s cubic-bezier(0.55, 0, 0.1, 1), opacity 0.28s ease-out !important;
}
.csv-search-sheet__body.is-entering [data-sheet-section] {
	animation: csv-section-slide-in 0.52s cubic-bezier(0.32, 0.72, 0, 1) both !important;
}
.csv-search-sheet__body.is-entering [data-sheet-section]:nth-child(1) { animation-delay: 0.00s !important; }
.csv-search-sheet__body.is-entering [data-sheet-section]:nth-child(2) { animation-delay: 0.06s !important; }
.csv-search-sheet__body.is-entering [data-sheet-section]:nth-child(3) { animation-delay: 0.12s !important; }
.csv-search-sheet__body.is-entering [data-sheet-section]:nth-child(4) { animation-delay: 0.18s !important; }
.csv-search-sheet__body.is-entering [data-sheet-section]:nth-child(5) { animation-delay: 0.24s !important; }
@keyframes csv-section-slide-in {
	from {
		transform: translateX(44px);
		opacity: 0;
	}
	to {
		transform: translateX(0);
		opacity: 1;
	}
}

/* Suave transición al cambiar tipos de chips */
[data-sheet-chips-tipo] {
	transition: opacity 0.3s ease, transform 0.3s ease !important;
}
[data-sheet-chips-tipo].is-fading {
	opacity: 0 !important;
	transform: translateX(-20px) !important;
}

/* ============================================================
   v0.14.47 — Limpiar hover residual amarillo de tabs del sheet
   ============================================================ */

/* Tabs del sheet: SIN fondo amarillo en hover, SIN sombra, SIN borde amarillo */
body [data-sheet-tab],
body .csv-sheet-tab,
[data-sheet-tab],
.csv-sheet-tab {
	background: transparent !important;
	border: none !important;
	border-radius: 0 !important;
	border-bottom: 2px solid transparent !important;
	min-width: 0 !important;
	min-height: auto !important;
	padding: 10px 14px 12px !important;
	box-shadow: none !important;
	color: #6b7280 !important;
	font-weight: 600 !important;
}
body [data-sheet-tab]:hover,
body .csv-sheet-tab:hover,
[data-sheet-tab]:hover,
.csv-sheet-tab:hover {
	background: transparent !important;
	border-color: transparent !important;
	border-bottom-color: transparent !important;
	color: #1f2937 !important;
	box-shadow: none !important;
}
body [data-sheet-tab].is-active,
body .csv-sheet-tab.is-active,
[data-sheet-tab].is-active,
.csv-sheet-tab.is-active {
	background: transparent !important;
	color: #1f2937 !important;
	border: none !important;
	border-bottom: 2px solid #1f2937 !important;
	box-shadow: none !important;
	padding: 10px 14px 12px !important;
	font-weight: 700 !important;
}

/* ============================================================
   v0.14.48 — Header Compact pill + Glass intensifica (centrado)
   ============================================================ */

/* === Header glass base (sin scroll) === */
html body .csv-header,
html body header.csv-header,
html body .csv-header[data-csv-header] {
	background: rgba(255,255,255,0.72) !important;
	backdrop-filter: blur(10px) saturate(120%) !important;
	-webkit-backdrop-filter: blur(10px) saturate(120%) !important;
	transition: background 0.32s ease, backdrop-filter 0.32s ease, box-shadow 0.32s ease, border-bottom-color 0.32s ease !important;
}

/* === Header GLASS INTENSIFICA al hacer scroll === */
html body .csv-header.is-scrolled {
	background: rgba(255,255,255,0.88) !important;
	backdrop-filter: blur(28px) saturate(200%) !important;
	-webkit-backdrop-filter: blur(28px) saturate(200%) !important;
	box-shadow: 0 6px 24px rgba(0,0,0,0.06) !important;
	border-bottom-color: rgba(0,0,0,0.04) !important;
}

/* === Pill SIEMPRE visible y centrada === */
html body .csv-header__pill,
.csv-header__pill {
	display: inline-flex !important;
	background: #fff !important;
	border: 1px solid #ebebeb !important;
	border-radius: 999px !important;
	box-shadow: 0 1px 2px rgba(0,0,0,0.08), 0 4px 12px rgba(0,0,0,0.05) !important;
	transition: max-width 0.4s cubic-bezier(0.32, 0.72, 0, 1),
				padding 0.4s cubic-bezier(0.32, 0.72, 0, 1),
				font-size 0.4s cubic-bezier(0.32, 0.72, 0, 1),
				box-shadow 0.3s ease !important;
	margin: 0 auto !important;
	padding: 6px 6px 6px 8px !important;
	max-width: 560px !important;
	font-size: 14px !important;
}

/* === Pill COMPACTA al hacer scroll (Airbnb pattern) === */
html body .csv-header.is-scrolled .csv-header__pill {
	max-width: 360px !important;
	padding: 4px 4px 4px 6px !important;
	font-size: 13px !important;
	box-shadow: 0 1px 2px rgba(0,0,0,0.06), 0 2px 8px rgba(0,0,0,0.04) !important;
}
html body .csv-header.is-scrolled .csv-header__pill-btn {
	padding: 8px 12px !important;
	font-size: 13px !important;
}
html body .csv-header.is-scrolled .csv-header__pill-search {
	width: 32px !important;
	height: 32px !important;
}

/* Centrado del pill garantizado en el grid */
html body .csv-header__center {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	width: 100% !important;
	min-width: 0 !important;
}

/* Limpiar la regla vieja que ocultaba pill sin scroll */
body.csv-scrolled .csv-header__pill,
body:not(.csv-scrolled) .csv-header__pill {
	display: inline-flex !important;
	animation: none !important;
}

/* === Header DETRÁS del sheet cuando está abierto === */
html body.csv-sheet-open .csv-header,
body.csv-sheet-open .csv-header {
	z-index: 100 !important;
	background: rgba(255,255,255,0.5) !important;
	backdrop-filter: blur(4px) !important;
	-webkit-backdrop-filter: blur(4px) !important;
	pointer-events: none !important;
}
/* El sheet por encima de TODO */
html body .csv-search-sheet,
.csv-search-sheet {
	z-index: 999999 !important;
}

/* === Footer del sheet: quitar línea/borde residual === */
.csv-search-sheet__foot,
[data-csv-sheet] .csv-search-sheet__foot,
.csv-search-sheet [class*="foot"]:last-child {
	border-top: 1px solid #f3f4f6 !important;
	background: #fff !important;
	padding: 14px 20px !important;
	margin: 0 !important;
}
/* Si hay un wrapper extra abajo, eliminar el espacio fantasma */
.csv-search-sheet__panel > *:last-child,
.csv-search-sheet > *:last-child {
	margin-bottom: 0 !important;
	padding-bottom: env(safe-area-inset-bottom, 0px) !important;
}
.csv-search-sheet__panel {
	padding-bottom: 0 !important;
	margin-bottom: 0 !important;
}

/* ============================================================
   v0.14.49 — Header más delgado + móvil pill solo on scroll
   + padding sheet + convivencia alineada
   ============================================================ */

/* === Header más DELGADO en desktop === */
html body .csv-header__row,
.csv-header__row {
	min-height: 64px !important;
	padding: 6px 0 !important;
}
html body { padding-top: 72px !important; }
html.admin-bar body { padding-top: 104px !important; }

@media (max-width: 900px) {
	html body .csv-header__row,
	.csv-header__row {
		min-height: 56px !important;
		padding: 4px 0 !important;
	}
	html body { padding-top: 60px !important; }
	html.admin-bar body { padding-top: 92px !important; }
}

/* === MÓVIL: pill OCULTA sin scroll, visible al scrollear === */
@media (max-width: 900px) {
	html body .csv-header__pill,
	.csv-header__pill {
		display: none !important;
	}
	html body .csv-header.is-scrolled .csv-header__pill,
	.csv-header.is-scrolled .csv-header__pill {
		display: inline-flex !important;
		animation: csv-pill-fade-in 0.3s cubic-bezier(0.32, 0.72, 0, 1);
	}
	@keyframes csv-pill-fade-in {
		from { opacity: 0; transform: translateY(-6px); }
		to { opacity: 1; transform: translateY(0); }
	}
}

/* === Pill móvil: padding consistente, "viajeros" NO pegado al borde === */
@media (max-width: 900px) {
	html body .csv-header.is-scrolled .csv-header__pill {
		max-width: 90% !important;
		width: 90% !important;
		margin: 0 auto !important;
		padding: 5px 5px 5px 14px !important;
		box-sizing: border-box !important;
	}
	html body .csv-header__pill-btn {
		padding: 6px 10px !important;
		min-width: 0 !important;
		flex: 1 1 auto !important;
		text-align: center !important;
		font-size: 12px !important;
		white-space: nowrap !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
	}
	html body .csv-header__pill-btn:last-of-type {
		padding-right: 16px !important;
	}
	html body .csv-header__pill-search {
		flex-shrink: 0 !important;
		margin-left: 4px !important;
	}
	html body .csv-header__pill-sep {
		flex-shrink: 0 !important;
	}
}

/* === Sheet abierto en móvil: comportamiento del buscador === */
@media (max-width: 900px) {
	html body .csv-search-sheet,
	.csv-search-sheet {
		display: flex !important;
		flex-direction: column !important;
	}
	html body .csv-search-sheet__panel {
		max-height: 100vh !important;
		height: 100vh !important;
		display: flex !important;
		flex-direction: column !important;
	}
	html body .csv-search-sheet__body {
		flex: 1 !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
		padding-bottom: 24px !important;
	}
	/* Que la sección de destino tenga padding-bottom para que "Valencia" no quede cortado */
	html body .csv-search-sheet__body .csv-sheet-section,
	html body [data-sheet-section] {
		padding-bottom: 8px !important;
	}
	html body [data-sheet-section]:last-child {
		padding-bottom: 80px !important;
	}
}

/* === Sugerencias destino: padding-bottom para que último elemento no se corte === */
.csv-search__pop-list,
[data-csv-loc-list],
[data-sheet-loc-list],
.csv-sheet-loc-list,
.csv-sheet-suggestions {
	padding-bottom: 14px !important;
}
.csv-search-sheet__body [data-sheet-section="dest"] [data-csv-loc-list],
.csv-search-sheet__body [data-sheet-section="dest"] .csv-sheet-loc-list,
[data-sheet-section="dest"] > * {
	padding-bottom: 16px !important;
}
/* Específicamente: el último item de la lista de destinos */
[data-csv-loc-list] > *:last-child,
.csv-search__pop-list > *:last-child,
.csv-sheet-loc-list > *:last-child {
	margin-bottom: 12px !important;
}

/* === Convivencia: centrado + mismo ancho que cards hab/baños === */
[data-sheet-convivencia] {
	display: flex !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 16px 20px 20px !important;
	margin: 0 auto !important;
	max-width: 100% !important;
	width: 100% !important;
	box-sizing: border-box !important;
}
[data-sheet-convivencia] .csv-sheet-chip {
	margin: 0 !important;
	padding: 10px 16px !important;
	background: #fff !important;
	border: 1.5px solid #e5e7eb !important;
	border-radius: 999px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #4b5563 !important;
	cursor: pointer !important;
	font-family: inherit !important;
	transition: all 0.18s !important;
	flex: 0 0 auto !important;
}
[data-sheet-convivencia] .csv-sheet-chip:hover {
	border-color: #1f2937 !important;
	color: #1f2937 !important;
}
[data-sheet-convivencia] .csv-sheet-chip.is-active {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}

/* En móvil: convivencia full width 2x2 grid para alineación perfecta */
@media (max-width: 600px) {
	[data-sheet-convivencia] {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		gap: 10px !important;
		padding: 16px 16px 20px !important;
	}
	[data-sheet-convivencia] .csv-sheet-chip {
		width: 100% !important;
		padding: 12px 16px !important;
		text-align: center !important;
		justify-content: center !important;
		display: inline-flex !important;
	}
}

/* === Container del header: respeta breakpoints === */
@media (max-width: 900px) {
	html body .csv-header .csv-container {
		padding-left: 16px !important;
		padding-right: 16px !important;
	}
}

/* ============================================================
   v0.14.50 — Fix hover Viajeros + móvil más delgado + pill oculta
   ============================================================ */

/* === Fix hover de los botones del pill (Viajeros se rompía) === */
html body .csv-header__pill-btn,
.csv-header__pill-btn {
	padding: 8px 16px !important;
	margin: 0 !important;
	flex-shrink: 1 !important;
	min-width: 0 !important;
	box-sizing: border-box !important;
}
html body .csv-header__pill-btn:last-of-type {
	padding-right: 16px !important;
}
html body .csv-header__pill-btn:hover {
	background: #f3f4f6 !important;
}
/* Mantener proporciones consistentes en hover */
html body .csv-header__pill {
	padding-right: 6px !important;
}

/* === Header MÓVIL ultra delgado === */
@media (max-width: 900px) {
	html body .csv-header__row,
	.csv-header__row {
		min-height: 48px !important;
		padding: 2px 0 !important;
		gap: 12px !important;
	}
	html body { padding-top: 52px !important; }
	html.admin-bar body { padding-top: 84px !important; }
	html body .csv-header,
	.csv-header {
		padding: 0 !important;
	}
}

/* === MÓVIL: pill OCULTA por completo cuando NO hay scroll === */
@media (max-width: 900px) {
	html body .csv-header:not(.is-scrolled) .csv-header__pill,
	.csv-header:not(.is-scrolled) .csv-header__pill {
		display: none !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
		position: absolute !important;
		left: -9999px !important;
	}
	html body .csv-header.is-scrolled .csv-header__pill,
	.csv-header.is-scrolled .csv-header__pill {
		display: inline-flex !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		position: relative !important;
		left: auto !important;
	}
}

/* === Pill móvil bien dimensionada cuando aparece === */
@media (max-width: 900px) {
	html body .csv-header.is-scrolled .csv-header__pill {
		width: calc(100% - 20px) !important;
		max-width: 100% !important;
		margin: 0 10px !important;
		padding: 4px 4px 4px 12px !important;
	}
	html body .csv-header.is-scrolled .csv-header__pill-btn {
		padding: 6px 8px !important;
		font-size: 11.5px !important;
	}
	html body .csv-header.is-scrolled .csv-header__pill-btn:last-of-type {
		padding-right: 12px !important;
	}
}

/* ============================================================
   v0.14.51 — Header final: logo izq + pill al scroll + avatar V3
   ============================================================ */

/* === LAYOUT BASE: solo logo izquierda + Publica + avatar derecha === */
html body .csv-header__row,
.csv-header__row {
	display: grid !important;
	grid-template-columns: 1fr auto 1fr !important;
	align-items: center !important;
	gap: 24px !important;
	min-height: 64px !important;
	padding: 6px 0 !important;
}
html body .csv-header__logo {
	justify-self: start !important;
}
html body .csv-header__center {
	justify-self: center !important;
	min-width: 0 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
}
html body .csv-header__actions {
	justify-self: end !important;
	display: flex !important;
	align-items: center !important;
	gap: 12px !important;
}

/* === PILL OCULTA por defecto (DESKTOP y MÓVIL) === */
html body .csv-header__pill,
.csv-header__pill {
	display: none !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* === PILL APARECE al hacer scroll, con slide-in === */
html body .csv-header.is-scrolled .csv-header__pill,
.csv-header.is-scrolled .csv-header__pill {
	display: inline-flex !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	background: #fff !important;
	border: 1px solid #ebebeb !important;
	border-radius: 999px !important;
	padding: 4px 4px 4px 14px !important;
	box-shadow: 0 1px 2px rgba(0,0,0,0.08), 0 4px 14px rgba(0,0,0,0.06) !important;
	max-width: 420px !important;
	margin: 0 auto !important;
	animation: csv-pill-slide-in 0.45s cubic-bezier(0.32, 0.72, 0, 1) both !important;
}
@keyframes csv-pill-slide-in {
	from {
		opacity: 0;
		transform: translateY(-12px) scale(0.92);
	}
	to {
		opacity: 1;
		transform: translateY(0) scale(1);
	}
}

/* Pill al hover (con scroll): sombra más fuerte */
html body .csv-header.is-scrolled .csv-header__pill:hover {
	box-shadow: 0 1px 2px rgba(0,0,0,0.08), 0 8px 22px rgba(0,0,0,0.12) !important;
}

/* Botones internos del pill al scroll */
html body .csv-header.is-scrolled .csv-header__pill-btn,
.csv-header.is-scrolled .csv-header__pill-btn {
	padding: 8px 14px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
}
html body .csv-header.is-scrolled .csv-header__pill-search {
	width: 32px !important;
	height: 32px !important;
	background: var(--csv-yellow, #F5BB1F) !important;
	color: #1f2937 !important;
}

/* === AVATAR estilo Liquid Glass V3 === */
html body .csv-menu-btn--avatar-only,
.csv-menu-btn--avatar-only {
	background: none !important;
	border: none !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	cursor: pointer !important;
	border-radius: 50% !important;
	box-shadow: none !important;
	margin: 0 !important;
}
html body .csv-menu-btn--avatar-only .csv-menu-btn__avatar,
.csv-menu-btn--avatar-only .csv-menu-btn__avatar {
	width: 38px !important;
	height: 38px !important;
	border-radius: 50% !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	font-weight: 800 !important;
	font-size: 13px !important;
	border: 2px solid rgba(255,255,255,0.85) !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04) !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	font-family: 'DM Sans', system-ui, sans-serif !important;
	letter-spacing: 0 !important;
	transition: transform 0.18s, box-shadow 0.18s !important;
}
html body .csv-menu-btn--avatar-only:hover .csv-menu-btn__avatar {
	transform: scale(1.06) !important;
	box-shadow: 0 4px 14px rgba(245,187,31,0.35), 0 0 0 1px rgba(0,0,0,0.06) !important;
}

/* === Publica gratis: pill amarilla limpia === */
html body .csv-header__cta,
.csv-header__cta {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	padding: 9px 18px !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	font-size: 13px !important;
	text-decoration: none !important;
	border: none !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	transition: all 0.18s !important;
	box-shadow: 0 2px 8px rgba(245,187,31,0.25) !important;
}
html body .csv-header__cta:hover,
.csv-header__cta:hover {
	background: linear-gradient(135deg, #FFD466 0%, #F5BB1F 100%) !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 4px 14px rgba(245,187,31,0.4) !important;
	color: #1f2937 !important;
}

/* === MÓVIL: misma lógica, header más delgado === */
@media (max-width: 900px) {
	html body .csv-header__row,
	.csv-header__row {
		min-height: 56px !important;
		padding: 4px 0 !important;
		gap: 10px !important;
	}
	html body { padding-top: 60px !important; }
	html.admin-bar body { padding-top: 92px !important; }

	html body .csv-header__cta,
	.csv-header__cta {
		padding: 7px 14px !important;
		font-size: 12px !important;
	}
	html body .csv-menu-btn--avatar-only .csv-menu-btn__avatar {
		width: 34px !important;
		height: 34px !important;
		font-size: 12px !important;
	}

	/* Pill móvil al hacer scroll: full width entre logo y avatar */
	html body .csv-header.is-scrolled .csv-header__pill {
		max-width: 100% !important;
		width: 100% !important;
		padding: 3px 3px 3px 12px !important;
		margin: 0 !important;
	}
	html body .csv-header.is-scrolled .csv-header__pill-btn {
		padding: 6px 8px !important;
		font-size: 11px !important;
		min-width: 0 !important;
		flex: 1 1 auto !important;
		overflow: hidden !important;
		text-overflow: ellipsis !important;
		white-space: nowrap !important;
	}
	html body .csv-header.is-scrolled .csv-header__pill-search {
		width: 28px !important;
		height: 28px !important;
		flex-shrink: 0 !important;
	}
}

/* Ocultar las tres rayitas del menu-btn antiguo si quedan */
.csv-menu-btn--avatar-only > svg:first-child {
	display: none !important;
}

/* ============================================================
   v0.14.52 — Modo "listings": pill siempre visible + segunda fila
   Páginas: /venta/ /alquiler/ /vacacional/ /compartir/ /comercial/
   ============================================================ */

/* === Pill SIEMPRE visible en modo listings (no esperar al scroll) === */
html body .csv-header--listings .csv-header__pill,
.csv-header--listings .csv-header__pill {
	display: inline-flex !important;
	opacity: 1 !important;
	pointer-events: auto !important;
	animation: none !important;
	max-width: 540px !important;
	padding: 4px 4px 4px 14px !important;
	background: #fff !important;
	border: 1px solid #ebebeb !important;
	border-radius: 999px !important;
	box-shadow: 0 1px 2px rgba(0,0,0,0.08), 0 4px 14px rgba(0,0,0,0.06) !important;
	margin: 0 auto !important;
}
html body .csv-header--listings .csv-header__pill-btn,
.csv-header--listings .csv-header__pill-btn {
	padding: 9px 16px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
}
html body .csv-header--listings .csv-header__pill-search {
	width: 34px !important;
	height: 34px !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
}

/* === SEGUNDA FILA: filtros tipo Airbnb === */
.csv-header__subrow {
	background: #fff !important;
	border-top: 1px solid #f3f4f6 !important;
	border-bottom: 1px solid #ebebeb !important;
	padding: 0 !important;
	position: relative !important;
	z-index: 100 !important;
}
html body .csv-header.is-scrolled .csv-header__subrow {
	background: rgba(255,255,255,0.95) !important;
	backdrop-filter: blur(20px) saturate(180%) !important;
	-webkit-backdrop-filter: blur(20px) saturate(180%) !important;
}

.csv-header__filter-tabs {
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	gap: 8px !important;
	padding: 14px 0 !important;
	overflow-x: auto !important;
	scrollbar-width: none !important;
	flex-wrap: nowrap !important;
	white-space: nowrap !important;
}
.csv-header__filter-tabs::-webkit-scrollbar {
	display: none !important;
}

.csv-filter-tab {
	background: #fff !important;
	border: 1px solid #e5e7eb !important;
	color: #4b5563 !important;
	padding: 9px 18px !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	transition: all 0.18s !important;
	white-space: nowrap !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	flex-shrink: 0 !important;
	box-shadow: none !important;
	letter-spacing: 0 !important;
}
.csv-filter-tab:hover {
	border-color: #1f2937 !important;
	color: #1f2937 !important;
	background: #fff !important;
}
.csv-filter-tab.is-active {
	border-color: #1f2937 !important;
	color: #1f2937 !important;
	background: #fff !important;
	font-weight: 700 !important;
	box-shadow: 0 0 0 1px #1f2937 !important;
}

/* Separador entre tipos y botón filtros */
.csv-header__filter-sep {
	display: inline-block !important;
	width: 1px !important;
	height: 32px !important;
	background: #e5e7eb !important;
	margin: 0 6px !important;
	flex-shrink: 0 !important;
}

/* Botón "Filtros" con badge */
.csv-filter-tab--filters {
	gap: 6px !important;
	padding: 9px 16px !important;
	position: relative !important;
}
.csv-filter-tab--filters svg {
	color: #1f2937 !important;
}
.csv-filter-tab__badge {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	min-width: 18px !important;
	height: 18px !important;
	padding: 0 5px !important;
	background: #1f2937 !important;
	color: #fff !important;
	border-radius: 999px !important;
	font-size: 10px !important;
	font-weight: 800 !important;
	margin-left: 2px !important;
	font-family: inherit !important;
}
.csv-filter-tab__badge[hidden] { display: none !important; }

/* === Cuando el modo listings hace scroll: el header se mantiene pero sin animar pill (ya está visible) === */
html body .csv-header--listings.is-scrolled .csv-header__pill,
.csv-header--listings.is-scrolled .csv-header__pill {
	animation: none !important;
	transform: none !important;
	max-width: 420px !important;
	transition: max-width 0.35s cubic-bezier(0.32, 0.72, 0, 1) !important;
}

/* === MÓVIL: filtros con scroll horizontal === */
@media (max-width: 900px) {
	.csv-header__filter-tabs {
		justify-content: flex-start !important;
		padding: 10px 16px !important;
		gap: 6px !important;
	}
	.csv-filter-tab {
		padding: 7px 14px !important;
		font-size: 12px !important;
	}
	.csv-header__filter-sep {
		height: 28px !important;
		margin: 0 4px !important;
	}
	/* En móvil la pill sigue oculta sin scroll incluso en listings (espacio limitado) */
	@media (max-width: 600px) {
		html body .csv-header--listings:not(.is-scrolled) .csv-header__pill {
			display: none !important;
		}
	}
}

/* Padding-top extra en body cuando hay listings header (por la segunda fila) */
body.csv-page-listings,
html body.csv-page-listings {
	padding-top: 124px !important;
}
@media (max-width: 900px) {
	body.csv-page-listings,
	html body.csv-page-listings {
		padding-top: 116px !important;
	}
}
html.admin-bar body.csv-page-listings {
	padding-top: 156px !important;
}

/* ============================================================
   v0.14.53 — Hero Airbnb Classic (home)
   ============================================================ */

.csv-hero-ab {
	background: #fff;
	padding: 64px 0 48px !important;
	text-align: center !important;
	position: relative !important;
}

.csv-hero-ab__eyebrow {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	background: #FFFCF0 !important;
	color: #1f2937 !important;
	border: 1px solid #F5BB1F !important;
	padding: 6px 14px !important;
	border-radius: 999px !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	letter-spacing: 0.04em !important;
	margin-bottom: 22px !important;
}
.csv-hero-ab__eyebrow span:first-child {
	font-size: 14px !important;
}

.csv-hero-ab__title {
	font-family: 'Instrument Serif', 'DM Sans', serif !important;
	font-weight: 400 !important;
	font-size: clamp(40px, 5.5vw, 64px) !important;
	letter-spacing: -0.025em !important;
	line-height: 1.0 !important;
	margin: 0 0 14px !important;
	color: #1f2937 !important;
}
.csv-hero-ab__title em {
	font-style: italic !important;
	color: #F5BB1F !important;
}

.csv-hero-ab__sub {
	font-size: 16px !important;
	color: #6b7280 !important;
	margin: 0 auto 36px !important;
	max-width: 560px !important;
	line-height: 1.55 !important;
}

/* === Tabs categorías estilo Airbnb (icono arriba + texto + rayita activa) === */
.csv-hero-ab__tabs {
	display: inline-flex !important;
	gap: 32px !important;
	margin-bottom: 26px !important;
	padding: 0 !important;
	flex-wrap: wrap !important;
	justify-content: center !important;
}
.csv-hero-ab__tab {
	background: none !important;
	border: none !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #6b7280 !important;
	cursor: pointer !important;
	padding: 8px 4px 14px !important;
	border-bottom: 2px solid transparent !important;
	display: inline-flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 6px !important;
	transition: all 0.18s !important;
	white-space: nowrap !important;
	box-shadow: none !important;
	letter-spacing: 0 !important;
}
.csv-hero-ab__tab:hover {
	color: #1f2937 !important;
	background: none !important;
	border-color: transparent !important;
}
.csv-hero-ab__tab.is-active {
	color: #1f2937 !important;
	border-bottom-color: #1f2937 !important;
	font-weight: 700 !important;
}
.csv-hero-ab__tab-icon {
	font-size: 26px !important;
	line-height: 1 !important;
}
.csv-hero-ab__tab-label {
	font-size: 13px !important;
}

/* === Pill de búsqueda grande (3 segmentos + botón redondo amarillo) === */
.csv-hero-ab__search {
	max-width: 820px !important;
	margin: 0 auto !important;
	display: flex !important;
	align-items: stretch !important;
	background: #fff !important;
	border: 1px solid #e5e7eb !important;
	border-radius: 999px !important;
	padding: 6px !important;
	box-shadow: 0 6px 24px rgba(0,0,0,0.08), 0 1px 0 rgba(0,0,0,0.02) !important;
	transition: box-shadow 0.2s !important;
}
.csv-hero-ab__search:hover {
	box-shadow: 0 10px 32px rgba(0,0,0,0.12), 0 1px 0 rgba(0,0,0,0.04) !important;
}
.csv-hero-ab__seg {
	flex: 1 !important;
	padding: 14px 22px !important;
	cursor: pointer !important;
	background: transparent !important;
	border: none !important;
	border-radius: 999px !important;
	text-align: left !important;
	font-family: inherit !important;
	transition: background 0.15s !important;
	min-width: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	align-items: flex-start !important;
	justify-content: center !important;
	gap: 2px !important;
}
.csv-hero-ab__seg:hover {
	background: #f7f7f7 !important;
}
.csv-hero-ab__seg-lbl {
	display: block !important;
	font-size: 12px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
}
.csv-hero-ab__seg-val {
	display: block !important;
	font-size: 14px !important;
	color: #6b7280 !important;
	font-weight: 500 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
	max-width: 100% !important;
}
.csv-hero-ab__seg-sep {
	width: 1px !important;
	background: #e5e7eb !important;
	margin: 10px 0 !important;
	flex-shrink: 0 !important;
}
.csv-hero-ab__btn {
	width: 56px !important;
	height: 56px !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	border: none !important;
	border-radius: 50% !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	flex-shrink: 0 !important;
	transition: all 0.18s !important;
	font-family: inherit !important;
	margin: 0 !important;
	padding: 0 !important;
	box-shadow: 0 4px 12px rgba(245,187,31,0.3) !important;
}
.csv-hero-ab__btn:hover {
	background: #1f2937 !important;
	color: #F5BB1F !important;
	transform: scale(1.04) !important;
	box-shadow: 0 6px 16px rgba(0,0,0,0.18) !important;
}

/* === "Sigue buscando..." card === */
.csv-hero-ab__continue {
	max-width: 820px !important;
	margin: 32px auto 0 !important;
	padding: 16px 20px !important;
	border-top: 1px solid #f3f4f6 !important;
	display: flex !important;
	align-items: center !important;
	gap: 14px !important;
	font-size: 14px !important;
	color: #1f2937 !important;
	cursor: pointer !important;
	border-radius: 16px !important;
	transition: background 0.18s !important;
	text-decoration: none !important;
}
.csv-hero-ab__continue:hover {
	background: #fafafa !important;
}
.csv-hero-ab__continue-thumb {
	width: 52px !important;
	height: 52px !important;
	border-radius: 14px !important;
	background: linear-gradient(135deg, #d97a4a, #f4b988) !important;
	flex-shrink: 0 !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
}
.csv-hero-ab__continue-text {
	flex: 1 !important;
	min-width: 0 !important;
	text-align: left !important;
}
.csv-hero-ab__continue-text strong {
	display: block !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	color: #1f2937 !important;
}
.csv-hero-ab__continue-text small {
	display: block !important;
	font-size: 12px !important;
	color: #6b7280 !important;
	margin-top: 2px !important;
}

/* === MÓVIL: hero compacto y pill responsiva === */
@media (max-width: 900px) {
	.csv-hero-ab {
		padding: 32px 0 28px !important;
	}
	.csv-hero-ab__title {
		font-size: clamp(28px, 8vw, 38px) !important;
		padding: 0 16px !important;
	}
	.csv-hero-ab__sub {
		font-size: 14px !important;
		padding: 0 20px !important;
		margin-bottom: 24px !important;
	}
	.csv-hero-ab__tabs {
		gap: 18px !important;
		overflow-x: auto !important;
		flex-wrap: nowrap !important;
		justify-content: flex-start !important;
		padding: 0 16px 6px !important;
		scrollbar-width: none !important;
	}
	.csv-hero-ab__tabs::-webkit-scrollbar { display: none !important; }
	.csv-hero-ab__tab-icon {
		font-size: 22px !important;
	}

	/* Pill móvil: vertical stack */
	.csv-hero-ab__search {
		flex-direction: column !important;
		border-radius: 22px !important;
		padding: 8px !important;
		margin: 0 16px !important;
		gap: 4px !important;
	}
	.csv-hero-ab__seg {
		padding: 12px 18px !important;
		border-radius: 14px !important;
		width: 100% !important;
	}
	.csv-hero-ab__seg + .csv-hero-ab__seg::before {
		content: '';
		display: block !important;
		position: absolute !important;
		top: 0 !important;
		left: 14px !important;
		right: 14px !important;
		height: 1px !important;
		background: #f3f4f6 !important;
	}
	.csv-hero-ab__seg {
		position: relative !important;
	}
	.csv-hero-ab__seg-sep { display: none !important; }
	.csv-hero-ab__btn {
		width: 100% !important;
		height: 48px !important;
		border-radius: 14px !important;
		margin-top: 6px !important;
	}
	.csv-hero-ab__continue {
		margin: 24px 16px 0 !important;
		padding: 14px !important;
	}
}

/* ============================================================
   v0.14.54 — Hero compacto + tipografía DM Sans + grid recientes
   ============================================================ */

/* === Ocultar buscador in-page (.csv-search-bar) en páginas de listings ===
   El header de listings ya tiene la pill siempre visible + segunda fila de filtros */
html body.csv-page-listings .csv-search-bar,
html body.csv-page-listings form.csv-search-bar,
body.csv-page-listings .csv-search-bar.is-unified {
	display: none !important;
}

/* === Hero Airbnb Classic — OVERRIDE compacto + tipografía gorda === */
html body .csv-hero-ab,
.csv-hero-ab {
	background: #fafafa !important;
	padding: 36px 0 24px !important;
	border-bottom: 1px solid #f0f0f0 !important;
}

/* Título: DM Sans extrabold (NO serif italic) */
html body .csv-hero-ab__title,
.csv-hero-ab__title {
	font-family: 'DM Sans', 'Inter', system-ui, sans-serif !important;
	font-weight: 800 !important;
	font-size: clamp(32px, 4vw, 44px) !important;
	letter-spacing: -0.035em !important;
	line-height: 1.05 !important;
	margin: 0 0 8px !important;
	color: #1f2937 !important;
}
html body .csv-hero-ab__title span,
.csv-hero-ab__title span,
.csv-hero-ab__title em {
	font-style: normal !important;
	font-family: inherit !important;
	color: #F5BB1F !important;
	font-weight: 800 !important;
}

html body .csv-hero-ab__sub,
.csv-hero-ab__sub {
	font-size: 14px !important;
	margin-bottom: 24px !important;
	color: #6b7280 !important;
}

html body .csv-hero-ab__eyebrow,
.csv-hero-ab__eyebrow {
	margin-bottom: 14px !important;
	padding: 5px 12px !important;
	font-size: 11px !important;
}

/* Tabs más compactas */
html body .csv-hero-ab__tabs,
.csv-hero-ab__tabs {
	gap: 22px !important;
	margin-bottom: 18px !important;
}
html body .csv-hero-ab__tab,
.csv-hero-ab__tab {
	padding: 6px 4px 10px !important;
	gap: 4px !important;
}
html body .csv-hero-ab__tab-icon,
.csv-hero-ab__tab-icon {
	font-size: 22px !important;
}
html body .csv-hero-ab__tab-label,
.csv-hero-ab__tab-label {
	font-size: 12px !important;
}

/* Pill más compacta */
html body .csv-hero-ab__search,
.csv-hero-ab__search {
	max-width: 720px !important;
	padding: 5px !important;
	box-shadow: 0 4px 18px rgba(0,0,0,0.06), 0 1px 0 rgba(0,0,0,0.02) !important;
}
html body .csv-hero-ab__seg,
.csv-hero-ab__seg {
	padding: 10px 18px !important;
}
html body .csv-hero-ab__seg-lbl,
.csv-hero-ab__seg-lbl {
	font-size: 11px !important;
}
html body .csv-hero-ab__seg-val,
.csv-hero-ab__seg-val {
	font-size: 13px !important;
}
html body .csv-hero-ab__btn,
.csv-hero-ab__btn {
	width: 46px !important;
	height: 46px !important;
}

/* ===== Sección "Sigue buscando..." con grid de cards (estilo Airbnb) ===== */
.csv-recent-section {
	background: #fafafa;
	padding: 24px 0 36px;
	border-bottom: 1px solid #f0f0f0;
}
.csv-recent-section__head {
	display: flex;
	justify-content: space-between;
	align-items: center;
	margin-bottom: 14px;
}
.csv-recent-section__title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-weight: 800;
	font-size: 22px;
	letter-spacing: -0.02em;
	color: #1f2937;
	margin: 0;
}
.csv-recent-section__title strong {
	color: #1f2937;
	font-weight: 800;
	border-bottom: 2px solid #F5BB1F;
}
.csv-recent-section__see-all {
	color: #6b7280;
	font-size: 13px;
	font-weight: 600;
	text-decoration: none;
	transition: color 0.15s;
}
.csv-recent-section__see-all:hover {
	color: #1f2937;
}

.csv-recent-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
.csv-recent-card {
	background: #fff;
	border: 1px solid #f0f0f0;
	border-radius: 14px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: all 0.22s cubic-bezier(0.32, 0.72, 0, 1);
	display: flex;
	flex-direction: column;
}
.csv-recent-card:hover {
	transform: translateY(-3px);
	box-shadow: 0 8px 24px rgba(0,0,0,0.08);
	border-color: #e5e7eb;
}
.csv-recent-card__img {
	width: 100%;
	aspect-ratio: 1.5 / 1;
	background-size: cover;
	background-position: center;
	background-color: #f0f0f0;
}
.csv-recent-card__body {
	padding: 12px 14px 14px;
	display: flex;
	flex-direction: column;
	gap: 2px;
}
.csv-recent-card__title {
	font-size: 13px;
	font-weight: 700;
	color: #1f2937;
	letter-spacing: -0.01em;
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
	display: block;
}
.csv-recent-card__meta {
	font-size: 11px;
	color: #6b7280;
	font-weight: 500;
}
.csv-recent-card__price {
	font-size: 13px;
	font-weight: 800;
	color: #1f2937;
	margin-top: 4px;
}

/* MÓVIL: grid de 2 columnas + hero ultra compacto */
@media (max-width: 900px) {
	html body .csv-hero-ab,
	.csv-hero-ab {
		padding: 24px 0 18px !important;
	}
	html body .csv-hero-ab__title,
	.csv-hero-ab__title {
		font-size: clamp(24px, 6vw, 32px) !important;
		padding: 0 16px !important;
		letter-spacing: -0.03em !important;
	}
	html body .csv-hero-ab__sub,
	.csv-hero-ab__sub {
		font-size: 13px !important;
		margin-bottom: 18px !important;
	}
	.csv-recent-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 10px !important;
	}
	.csv-recent-section {
		padding: 18px 0 28px !important;
	}
	.csv-recent-section__title {
		font-size: 18px !important;
	}
}

/* ===== Compactar resto de la home (50% menos padding) ===== */
html body .csv-section,
html body section.csv-section {
	padding: 32px 0 !important;
}
html body .csv-section__title,
html body .csv-section__head h2 {
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-weight: 800 !important;
	font-size: 22px !important;
	letter-spacing: -0.02em !important;
}
html body .csv-home-banner {
	padding: 28px 0 !important;
}
html body .csv-home-banner__title,
html body .csv-home-banner h2 {
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-weight: 800 !important;
	font-size: 22px !important;
	letter-spacing: -0.02em !important;
}
html body .csv-home-banner__sub {
	font-size: 14px !important;
}

/* ============================================================
   v0.14.55 — Sheet + mapa sticky + CTA sutil + banners compactos
   ============================================================ */

/* === 1. SHEET: Convivencia/género SOLO en compartir (forzado) === */
[data-sheet-section="habs"][data-sheet-convivencia],
[data-sheet-convivencia] {
	display: none !important;
}
[data-sheet-tab="compartir"].is-active ~ * [data-sheet-convivencia],
body[data-sheet-current-op="compartir"] [data-sheet-convivencia] {
	display: flex !important;
}
/* Cuando la op es compartir, mostrar convivencia (selector específico inyectado por JS) */
.csv-search-sheet[data-current-op="compartir"] [data-sheet-convivencia] {
	display: flex !important;
}
.csv-search-sheet:not([data-current-op="compartir"]) [data-sheet-convivencia] {
	display: none !important;
}

/* === 2. MAPA STICKY: que siga el scroll en página de listings === */
@media (min-width: 1025px) {
	html body .csv-search-page,
	html body .csv-search-page__row {
		overflow: visible !important;
	}
	html body .csv-search-page__map,
	body .csv-search-page__map {
		position: sticky !important;
		top: 124px !important; /* altura del header de listings (64 + 60 sub-fila) */
		height: calc(100vh - 144px) !important;
		max-height: calc(100vh - 144px) !important;
		align-self: flex-start !important;
		overflow: hidden !important;
		border-radius: 16px !important;
		flex: 1 1 50% !important;
		max-width: 50% !important;
	}
	/* En home / sin segunda fila: header normal (64px de altura) */
	html body:not(.csv-page-listings) .csv-search-page__map {
		top: 80px !important;
		height: calc(100vh - 100px) !important;
		max-height: calc(100vh - 100px) !important;
	}
	html body.admin-bar .csv-search-page__map {
		top: 156px !important;
	}
}

/* === 3. "Publica gratis" en estilo SUTIL (no amarillo chillón) === */
html body .csv-header__cta,
.csv-header__cta {
	background: transparent !important;
	color: #1f2937 !important;
	padding: 8px 16px !important;
	border: none !important;
	border-radius: 999px !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	text-decoration: none !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	transition: background 0.15s !important;
	box-shadow: none !important;
}
html body .csv-header__cta:hover,
.csv-header__cta:hover {
	background: #f3f4f6 !important;
	color: #1f2937 !important;
	transform: none !important;
	box-shadow: none !important;
}

/* === 4. SHEET OVERLAY: blur 22px + más blanquecino === */
html body .csv-search-sheet__backdrop,
body .csv-search-sheet__backdrop,
.csv-search-sheet__backdrop {
	position: absolute !important;
	inset: 0 !important;
	background: rgba(255,255,255,0) !important;
	backdrop-filter: blur(0px) !important;
	-webkit-backdrop-filter: blur(0px) !important;
	transition: background 0.35s ease, backdrop-filter 0.35s ease !important;
	margin: 0 !important;
	border: none !important;
}
html body .csv-search-sheet.is-open .csv-search-sheet__backdrop,
body .csv-search-sheet.is-open .csv-search-sheet__backdrop,
.csv-search-sheet.is-open .csv-search-sheet__backdrop {
	background: rgba(255,255,255,0.55) !important;
	backdrop-filter: blur(22px) saturate(140%) !important;
	-webkit-backdrop-filter: blur(22px) saturate(140%) !important;
}

/* === 5. BANNERS de home más COMPACTOS === */
html body .csv-home-banner,
.csv-home-banner {
	padding: 22px 0 !important;
}
html body .csv-home-banner__inner,
.csv-home-banner__inner {
	padding: 20px 28px !important;
	min-height: 0 !important;
	border-radius: 18px !important;
	gap: 18px !important;
	max-width: 1100px !important;
	margin: 0 auto !important;
}
html body .csv-home-banner__icon,
.csv-home-banner__icon {
	width: 48px !important;
	height: 48px !important;
	flex-shrink: 0 !important;
}
html body .csv-home-banner__icon svg {
	width: 32px !important;
	height: 32px !important;
}
html body .csv-home-banner__eyebrow,
.csv-home-banner__eyebrow {
	font-size: 11px !important;
	margin-bottom: 4px !important;
	padding: 3px 10px !important;
}
html body .csv-home-banner__title,
.csv-home-banner__title {
	font-size: 18px !important;
	line-height: 1.2 !important;
	margin-bottom: 4px !important;
	font-weight: 800 !important;
	letter-spacing: -0.015em !important;
}
html body .csv-home-banner__sub,
.csv-home-banner__sub {
	font-size: 13px !important;
	line-height: 1.4 !important;
	margin: 0 !important;
}
html body .csv-home-banner__cta,
.csv-home-banner__cta {
	padding: 10px 18px !important;
	font-size: 13px !important;
}

@media (max-width: 900px) {
	html body .csv-home-banner__inner {
		padding: 16px 18px !important;
		flex-wrap: wrap !important;
	}
	html body .csv-home-banner__title { font-size: 16px !important; }
	html body .csv-home-banner__icon { width: 40px !important; height: 40px !important; }
}

/* ============================================================
   v0.14.56 — Página de listings exactamente como Airbnb
   ============================================================ */

/* ===== LAYOUT: results izq (50%) + mapa derecha (50%) sticky ===== */
html body .csv-search-page,
.csv-search-page {
	max-width: none !important;
	width: 100% !important;
	margin: 0 !important;
	padding: 0 !important;
	background: #fff !important;
	overflow: visible !important;
}
html body .csv-search-page__row,
.csv-search-page__row {
	display: flex !important;
	gap: 0 !important;
	align-items: flex-start !important;
	max-width: 100% !important;
	overflow: visible !important;
	width: 100% !important;
}

@media (min-width: 1025px) {
	html body .csv-search-page__results,
	body .csv-search-page__results,
	.csv-search-page__results {
		flex: 1 1 50% !important;
		max-width: 50% !important;
		padding: 24px 40px !important;
		box-sizing: border-box !important;
		overflow-y: visible !important;
		min-height: calc(100vh - 124px) !important;
	}

	html body .csv-search-page__map,
	body .csv-search-page__map,
	.csv-search-page__map {
		flex: 1 1 50% !important;
		max-width: 50% !important;
		width: 50% !important;
		position: sticky !important;
		top: 124px !important;
		height: calc(100vh - 124px) !important;
		max-height: calc(100vh - 124px) !important;
		min-height: calc(100vh - 124px) !important;
		align-self: flex-start !important;
		overflow: hidden !important;
		background: #e5e7eb !important;
		padding: 16px 16px 16px 0 !important;
		box-sizing: border-box !important;
	}

	html body.csv-page-listings .csv-search-page__map { top: 124px !important; height: calc(100vh - 124px) !important; }
	html.admin-bar body .csv-search-page__map { top: 156px !important; height: calc(100vh - 156px) !important; }
}

/* ===== HEADER del listings (título + "cómo ordenamos") ===== */
.csv-search-page__header {
	margin-bottom: 12px;
}
.csv-search-page__h1 {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-weight: 800;
	font-size: 26px;
	letter-spacing: -0.025em;
	color: #1f2937;
	margin: 0 0 6px;
	line-height: 1.15;
}
.csv-search-page__sort {
	background: none;
	border: none;
	font-family: inherit;
	font-size: 12px;
	font-weight: 600;
	color: #6b7280;
	cursor: pointer;
	padding: 0;
	display: inline-flex;
	align-items: center;
	gap: 4px;
	text-decoration: underline;
	text-underline-offset: 2px;
}
.csv-search-page__sort:hover { color: #1f2937; }

/* Promo banner verde tipo Airbnb */
.csv-search-page__promo {
	background: #f7faf7;
	border: 1px solid #d1e7d1;
	padding: 12px 16px;
	border-radius: 12px;
	margin: 14px 0 22px;
	display: flex;
	align-items: center;
	gap: 12px;
	font-size: 13px;
	color: #1f2937;
}
.csv-search-page__promo-icon {
	font-size: 18px;
}
.csv-search-page__promo strong {
	font-weight: 700;
}

/* ===== GRID 2 columnas (en lugar de 3-4) ===== */
@media (min-width: 1025px) {
	html body .csv-search-page .csv-grid,
	.csv-search-page .csv-grid {
		display: grid !important;
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 22px 18px !important;
	}
}

/* ===== CARD rediseñada estilo Airbnb ===== */
html body .csv-card,
.csv-card {
	display: flex !important;
	flex-direction: column !important;
	gap: 0 !important;
	border-radius: 16px !important;
	background: transparent !important;
	border: none !important;
	overflow: visible !important;
	text-decoration: none !important;
	color: inherit !important;
	transition: transform 0.22s cubic-bezier(0.32, 0.72, 0, 1) !important;
	padding: 0 !important;
}
html body .csv-card:hover,
.csv-card:hover {
	transform: translateY(-2px) !important;
	box-shadow: none !important;
}
html body .csv-card__image,
.csv-card__image {
	position: relative !important;
	width: 100% !important;
	aspect-ratio: 1 / 0.95 !important;
	background: #f0f0f0 !important;
	border-radius: 14px !important;
	overflow: hidden !important;
	margin: 0 0 10px !important;
}
html body .csv-card__image img,
.csv-card__image img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover !important;
	display: block !important;
	transition: transform 0.5s cubic-bezier(0.32, 0.72, 0, 1) !important;
}
html body .csv-card:hover .csv-card__image img {
	transform: scale(1.05) !important;
}

/* Badge de operación (arriba izq, estilo "Hotel destacado") */
html body .csv-card__op-badge,
.csv-card__op-badge {
	position: absolute !important;
	top: 12px !important;
	left: 12px !important;
	background: rgba(255,255,255,0.95) !important;
	backdrop-filter: blur(8px) !important;
	padding: 5px 10px !important;
	border-radius: 999px !important;
	font-size: 11px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	display: inline-flex !important;
	align-items: center !important;
	gap: 5px !important;
	box-shadow: 0 1px 4px rgba(0,0,0,0.08) !important;
	z-index: 2 !important;
	letter-spacing: -0.005em !important;
}
.csv-card__op-badge-icon {
	font-size: 13px !important;
	line-height: 1 !important;
}

/* Badge "Destacado" si is_promoted (debajo del badge de operación) */
html body .csv-card__promoted-badge,
.csv-card__promoted-badge {
	position: absolute !important;
	top: 46px !important;
	left: 12px !important;
	background: linear-gradient(135deg, #F5BB1F, #FFD466) !important;
	padding: 4px 10px !important;
	border-radius: 999px !important;
	font-size: 10px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	z-index: 2 !important;
	box-shadow: 0 1px 4px rgba(245,187,31,0.3) !important;
}

/* Heart top right */
html body .csv-card__heart,
.csv-card__heart {
	position: absolute !important;
	top: 12px !important;
	right: 12px !important;
	width: 32px !important;
	height: 32px !important;
	background: none !important;
	border: none !important;
	cursor: pointer !important;
	padding: 0 !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	z-index: 2 !important;
}
html body .csv-card__heart svg,
.csv-card__heart svg {
	width: 24px !important;
	height: 24px !important;
	fill: rgba(0,0,0,0.5) !important;
	stroke: #fff !important;
	stroke-width: 2 !important;
	filter: drop-shadow(0 1px 2px rgba(0,0,0,0.4)) !important;
	transition: fill 0.18s !important;
}
html body .csv-card__heart:hover svg {
	fill: rgba(0,0,0,0.65) !important;
}
html body .csv-card__heart.is-favorited svg,
.csv-card__heart.is-favorited svg {
	fill: #ff385c !important;
}

/* Card body (texto bajo la foto) */
html body .csv-card__body,
.csv-card__body {
	padding: 0 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
}
html body .csv-card__head,
.csv-card__head {
	display: flex !important;
	align-items: flex-start !important;
	justify-content: space-between !important;
	gap: 8px !important;
	margin: 0 !important;
}
html body .csv-card__title-text,
.csv-card__title-text {
	font-size: 14px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	line-height: 1.3 !important;
	letter-spacing: -0.005em !important;
	flex: 1 !important;
	overflow: hidden !important;
	text-overflow: ellipsis !important;
	white-space: nowrap !important;
}
html body .csv-card__subtitle,
.csv-card__subtitle {
	font-size: 13px !important;
	color: #6b7280 !important;
	font-weight: 400 !important;
	margin: 0 !important;
	line-height: 1.3 !important;
}
html body .csv-card__rating,
.csv-card__rating {
	display: inline-flex !important;
	align-items: center !important;
	gap: 3px !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	color: #1f2937 !important;
	flex-shrink: 0 !important;
}
html body .csv-card__rating svg,
.csv-card__rating svg {
	width: 11px !important;
	height: 11px !important;
	fill: #1f2937 !important;
}
html body .csv-card__specs,
.csv-card__specs {
	font-size: 12px !important;
	color: #6b7280 !important;
	margin: 0 !important;
	line-height: 1.3 !important;
}
html body .csv-card__price-row,
.csv-card__price-row {
	display: flex !important;
	align-items: baseline !important;
	gap: 4px !important;
	margin-top: 4px !important;
}
html body .csv-card__price-amount,
.csv-card__price-amount {
	font-size: 14px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	text-decoration: underline !important;
	text-underline-offset: 3px !important;
	text-decoration-thickness: 1px !important;
}
html body .csv-card__price-suffix,
.csv-card__price-suffix {
	font-size: 13px !important;
	font-weight: 400 !important;
	color: #1f2937 !important;
}

/* ===== Controles del mapa (bottom-left para no chocar con +/-) ===== */
html body .csv-map__controls,
.csv-map__controls {
	position: absolute !important;
	z-index: 600 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
}
html body .csv-map__controls--bottom-left,
.csv-map__controls--bottom-left {
	bottom: 32px !important;
	left: 16px !important;
	top: auto !important;
	right: auto !important;
}

html body button.csv-map-btn,
.csv-map-btn {
	display: inline-flex !important;
	align-items: center !important;
	gap: 6px !important;
	background: #fff !important;
	border: 1px solid rgba(0,0,0,0.12) !important;
	color: #1f2937 !important;
	padding: 9px 14px !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15) !important;
	transition: all 0.15s !important;
	white-space: nowrap !important;
}
html body button.csv-map-btn:hover,
.csv-map-btn:hover {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}
html body button.csv-map-btn.is-active,
.csv-map-btn.is-active {
	background: #F5BB1F !important;
	color: #1f2937 !important;
	border-color: #F5BB1F !important;
}
html body button.csv-map-btn svg,
.csv-map-btn svg {
	width: 14px !important;
	height: 14px !important;
}

/* Marcador de precio en mapa (estilo Airbnb pill) */
.csv-map-price {
	background: #fff;
	color: #1f2937;
	padding: 4px 10px;
	border-radius: 999px;
	font-family: 'DM Sans', sans-serif;
	font-size: 12px;
	font-weight: 700;
	box-shadow: 0 2px 6px rgba(0,0,0,0.18), 0 0 0 1px rgba(0,0,0,0.06);
	white-space: nowrap;
	cursor: pointer;
	transition: all 0.18s;
	border: none;
}
.csv-map-price:hover, .csv-map-marker:hover .csv-map-price {
	background: #1f2937;
	color: #fff;
	transform: scale(1.1);
	z-index: 1000 !important;
}
.csv-map-price.is-active {
	background: #1f2937;
	color: #fff;
	transform: scale(1.1);
}

/* ===== Móvil: layout vertical, sin mapa fijo ===== */
@media (max-width: 1024px) {
	html body .csv-search-page__row,
	.csv-search-page__row {
		flex-direction: column !important;
	}
	html body .csv-search-page__results,
	.csv-search-page__results {
		flex: 1 1 100% !important;
		max-width: 100% !important;
		padding: 16px 16px 24px !important;
	}
	html body .csv-search-page .csv-grid,
	.csv-search-page .csv-grid {
		grid-template-columns: repeat(2, 1fr) !important;
		gap: 16px 12px !important;
	}
	html body .csv-search-page__map,
	.csv-search-page__map {
		display: none !important;
	}
	body.csv-view-map .csv-search-page__results { display: none !important; }
	body.csv-view-map .csv-search-page__map {
		display: block !important;
		position: fixed !important;
		inset: 124px 0 0 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		height: calc(100vh - 124px) !important;
		padding: 0 !important;
		z-index: 50 !important;
	}
	html body .csv-search-page__h1,
	.csv-search-page__h1 {
		font-size: 20px !important;
	}
}

@media (max-width: 600px) {
	html body .csv-search-page .csv-grid,
	.csv-search-page .csv-grid {
		grid-template-columns: 1fr !important;
	}
}

/* ===== Single inmueble: badge de operación visible ===== */
.csv-single-op-badge {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	background: #1f2937;
	color: #fff;
	padding: 6px 14px;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 700;
	letter-spacing: 0.02em;
	margin-bottom: 12px;
}
.csv-single-op-badge--venta      { background: #1f2937; }
.csv-single-op-badge--alquiler   { background: #2563eb; }
.csv-single-op-badge--vacacional { background: #ec4899; }
.csv-single-op-badge--compartir  { background: #16a34a; }
.csv-single-op-badge--comercial  { background: #f59e0b; color: #1f2937; }

/* ============================================================
   v0.14.57 — Mapa sticky DEFINITIVO + sidebar single sticky
   + hero pill labels contextuales + filter-tabs sync
   ============================================================ */

/* === 1. MAPA STICKY: forzar overflow:visible en TODOS los padres y sticky en mapa === */
@media (min-width: 1025px) {
	/* Limpiar overflow en TODOS los padres potenciales */
	html, body,
	html body.casave-page,
	html body.csv-page-listings,
	html body main,
	html body main.site-main,
	html body #main,
	html body #content,
	html body #page,
	html body .site,
	html body .entry-content,
	html body .casave-template-page,
	html body .casave-page,
	html body article,
	html body .csv-page-template,
	html body .csv-search-page,
	html body .csv-search-page__row {
		overflow: visible !important;
		overflow-x: clip !important;
		overflow-y: visible !important;
	}

	/* Mapa sticky reforzado con z-index alto */
	html body .csv-search-page__map,
	html body .csv-search-page > div.csv-search-page__map,
	.csv-search-page__map {
		position: -webkit-sticky !important;
		position: sticky !important;
		top: 124px !important;
		height: calc(100vh - 124px) !important;
		max-height: calc(100vh - 124px) !important;
		min-height: 0 !important;
		align-self: flex-start !important;
		flex-shrink: 0 !important;
		overflow: hidden !important;
		z-index: 5 !important;
	}
	html.admin-bar body .csv-search-page__map {
		top: 156px !important;
		height: calc(100vh - 156px) !important;
	}
}

/* === 2. SINGLE INMUEBLE: sidebar de reserva STICKY === */
@media (min-width: 1025px) {
	html body .csv-listing__layout,
	html body .csv-listing__cols,
	html body .csv-listing__grid {
		overflow: visible !important;
		align-items: flex-start !important;
	}

	html body .csv-listing__sidebar,
	html body aside.csv-listing__sidebar,
	.csv-listing__sidebar {
		position: -webkit-sticky !important;
		position: sticky !important;
		top: 96px !important;
		align-self: flex-start !important;
		max-height: calc(100vh - 120px) !important;
		overflow-y: auto !important;
		z-index: 4 !important;
	}
	html.admin-bar body .csv-listing__sidebar {
		top: 128px !important;
	}
}

/* === 3. Hero pill: estilos en hover (mejor feedback de que se puede pulsar) === */
.csv-hero-ab__seg[data-user-set="1"] .csv-hero-ab__seg-val {
	color: #1f2937 !important;
	font-weight: 700 !important;
}

/* === 4. Filter-tabs: estado seleccionado mejorado === */
html body .csv-filter-tab.is-active,
.csv-filter-tab.is-active {
	border-color: #1f2937 !important;
	color: #1f2937 !important;
	background: #fff !important;
	font-weight: 700 !important;
	box-shadow: 0 0 0 1.5px #1f2937 !important;
}

/* ============================================================
   v0.14.58 — Mapa con padding + controles top-left + espacio título
   ============================================================ */

/* Espacio entre cabecera del header listings y el título de la página */
html body .csv-search-page__results,
.csv-search-page__results {
	padding-top: 36px !important;
}
@media (max-width: 1024px) {
	html body .csv-search-page__results,
	.csv-search-page__results {
		padding-top: 24px !important;
	}
}

.csv-search-page__header {
	margin-bottom: 22px !important;
}

/* Mapa con padding y bordes redondeados */
@media (min-width: 1025px) {
	html body .csv-search-page__map,
	.csv-search-page__map {
		padding: 16px 16px 16px 8px !important;
		box-sizing: border-box !important;
		background: transparent !important;
	}
	html body .csv-search-page__map > #csv-map,
	.csv-search-page__map > #csv-map {
		border-radius: 18px !important;
		box-shadow: 0 4px 16px rgba(0,0,0,0.08), 0 0 0 1px rgba(0,0,0,0.04) !important;
		overflow: hidden !important;
		width: 100% !important;
		height: 100% !important;
	}
}

/* Controles del mapa: TOP-LEFT (no chocan con +/- en top-right) */
html body .csv-map__controls,
.csv-map__controls {
	position: absolute !important;
	z-index: 600 !important;
	display: flex !important;
	flex-direction: column !important;
	gap: 6px !important;
}
html body .csv-map__controls--bottom-left,
.csv-map__controls--bottom-left,
html body .csv-map__controls--top-left,
.csv-map__controls--top-left {
	top: 28px !important;
	left: 24px !important;
	bottom: auto !important;
	right: auto !important;
}

/* Leaflet zoom control en top-right (forzado) */
.leaflet-top.leaflet-right {
	z-index: 600 !important;
}
.leaflet-top.leaflet-right .leaflet-control-zoom {
	margin-top: 28px !important;
	margin-right: 24px !important;
	border-radius: 999px !important;
	overflow: hidden !important;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15) !important;
	border: 1px solid rgba(0,0,0,0.08) !important;
}
.leaflet-control-zoom a {
	width: 36px !important;
	height: 36px !important;
	line-height: 36px !important;
	font-size: 20px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	background: #fff !important;
}
.leaflet-control-zoom a:hover {
	background: #1f2937 !important;
	color: #fff !important;
}
.leaflet-control-zoom-in {
	border-bottom: 1px solid rgba(0,0,0,0.06) !important;
}
/* Quitar el border-radius por defecto */
.leaflet-bar {
	border: none !important;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15) !important;
}

/* Highlighted card al hacer click en marker */
.csv-card.is-highlighted {
	transition: box-shadow 0.3s, transform 0.3s !important;
	transform: translateY(-3px) !important;
	box-shadow: 0 0 0 2px #F5BB1F, 0 10px 30px rgba(245,187,31,0.25) !important;
	border-radius: 16px !important;
}

/* Popup "Cómo ordenamos" */
.csv-sort-info-modal {
	position: fixed;
	inset: 0;
	background: rgba(0,0,0,0.4);
	backdrop-filter: blur(8px);
	z-index: 99999;
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 24px;
	opacity: 0;
	pointer-events: none;
	transition: opacity 0.25s cubic-bezier(0.32, 0.72, 0, 1);
}
.csv-sort-info-modal.is-open {
	opacity: 1;
	pointer-events: auto;
}
.csv-sort-info-modal__panel {
	background: #fff;
	border-radius: 18px;
	max-width: 520px;
	width: 100%;
	padding: 28px;
	box-shadow: 0 20px 60px rgba(0,0,0,0.18);
	transform: scale(0.95);
	transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1);
}
.csv-sort-info-modal.is-open .csv-sort-info-modal__panel {
	transform: scale(1);
}
.csv-sort-info-modal__title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-weight: 800;
	font-size: 20px;
	margin-bottom: 14px;
	color: #1f2937;
	letter-spacing: -0.02em;
}
.csv-sort-info-modal__text {
	font-size: 14px;
	color: #4b5563;
	line-height: 1.55;
	margin-bottom: 12px;
}
.csv-sort-info-modal__text strong { color: #1f2937; }
.csv-sort-info-modal__close {
	margin-top: 18px;
	background: #1f2937;
	color: #fff;
	border: none;
	padding: 11px 22px;
	border-radius: 999px;
	font-weight: 700;
	font-size: 13px;
	cursor: pointer;
	font-family: inherit;
}
.csv-sort-info-modal__close:hover { background: #F5BB1F; color: #1f2937; }

/* === FIX /buscar/: layout colapsado === */
body.casave-page--search .csv-search-page__row,
body.casave-page--search .csv-search-page {
	overflow: visible !important;
}
body.casave-page--search .csv-search-page {
	margin-top: 16px !important;
}

/* ============================================================
   v0.14.59 — Fix exhaustivo: mapa, sheet compartir, filtros, móvil, /buscar/
   ============================================================ */

/* === 1. MAPA: cuadrado pequeño con bordes redondeados, padding generoso === */
@media (min-width: 1025px) {
	html body .csv-search-page__map,
	body .csv-search-page__map,
	.csv-search-page__map {
		padding: 24px 24px 24px 12px !important;
		background: transparent !important;
		flex: 1 1 50% !important;
		max-width: 50% !important;
		position: sticky !important;
		top: 124px !important;
		height: calc(100vh - 124px) !important;
		max-height: calc(100vh - 124px) !important;
		overflow: hidden !important;
		box-sizing: border-box !important;
	}
	html body .csv-search-page__map > #csv-map,
	body .csv-search-page__map > #csv-map,
	.csv-search-page__map > #csv-map {
		border-radius: 20px !important;
		box-shadow: 0 6px 24px rgba(0,0,0,0.10), 0 0 0 1px rgba(0,0,0,0.04) !important;
		overflow: hidden !important;
		width: 100% !important;
		height: 100% !important;
		background: #e5e7eb !important;
	}
}

/* === Quitar controles +/- de Leaflet (cualquier instancia residual) === */
.leaflet-control-zoom,
.leaflet-top.leaflet-right .leaflet-control-zoom,
.leaflet-top.leaflet-left .leaflet-control-zoom {
	display: none !important;
}

/* === Controles "Dibujar zona / Borrar zona" en top-left (limpios y accesibles) === */
html body .csv-map__controls--top-left,
.csv-map__controls--top-left {
	top: 40px !important;
	left: 36px !important;
}
html body .csv-map-btn,
.csv-map-btn {
	background: #fff !important;
	border: 1px solid rgba(0,0,0,0.08) !important;
	padding: 10px 16px !important;
	border-radius: 999px !important;
	font-weight: 600 !important;
	font-size: 13px !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.12) !important;
}

/* === 2. POPUP "Cómo ordenamos" — reforzar con z-index alto + estilos === */
.csv-sort-info-modal {
	position: fixed !important;
	inset: 0 !important;
	background: rgba(0,0,0,0.45) !important;
	-webkit-backdrop-filter: blur(8px) !important;
	backdrop-filter: blur(8px) !important;
	z-index: 999999 !important;
	display: flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 24px !important;
	opacity: 0 !important;
	pointer-events: none !important;
	transition: opacity 0.25s cubic-bezier(0.32, 0.72, 0, 1) !important;
}
.csv-sort-info-modal.is-open {
	opacity: 1 !important;
	pointer-events: auto !important;
}
.csv-sort-info-modal__panel {
	background: #fff !important;
	border-radius: 22px !important;
	max-width: 540px !important;
	width: 100% !important;
	padding: 32px !important;
	box-shadow: 0 24px 60px rgba(0,0,0,0.25) !important;
	transform: scale(0.95) !important;
	transition: transform 0.3s cubic-bezier(0.32, 0.72, 0, 1) !important;
	font-family: 'DM Sans', 'Inter', system-ui, sans-serif !important;
}
.csv-sort-info-modal.is-open .csv-sort-info-modal__panel {
	transform: scale(1) !important;
}
.csv-sort-info-modal__title {
	font-weight: 800 !important;
	font-size: 22px !important;
	margin: 0 0 16px !important;
	color: #1f2937 !important;
	letter-spacing: -0.02em !important;
	line-height: 1.2 !important;
}
.csv-sort-info-modal__text {
	font-size: 14px !important;
	color: #4b5563 !important;
	line-height: 1.6 !important;
	margin: 0 0 10px !important;
}
.csv-sort-info-modal__text strong { color: #1f2937 !important; font-weight: 700 !important; }
.csv-sort-info-modal__close {
	margin-top: 22px !important;
	background: #1f2937 !important;
	color: #fff !important;
	border: none !important;
	padding: 12px 24px !important;
	border-radius: 999px !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	cursor: pointer !important;
	font-family: inherit !important;
	width: 100% !important;
}
.csv-sort-info-modal__close:hover { background: #F5BB1F !important; color: #1f2937 !important; }

/* === 3. SHEET de Compartir: alineación de chips de convivencia/género === */
.csv-search-sheet [data-sheet-convivencia] {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	padding: 16px 0 !important;
	justify-content: flex-start !important;
	align-items: stretch !important;
}
.csv-search-sheet [data-sheet-convivencia] .csv-sheet-chip {
	background: #fff !important;
	border: 1.5px solid #e5e7eb !important;
	color: #1f2937 !important;
	padding: 10px 18px !important;
	border-radius: 999px !important;
	font-family: inherit !important;
	font-size: 13px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	transition: all 0.18s !important;
	flex: 0 1 auto !important;
	white-space: nowrap !important;
}
.csv-search-sheet [data-sheet-convivencia] .csv-sheet-chip:hover {
	border-color: #1f2937 !important;
}
.csv-search-sheet [data-sheet-convivencia] .csv-sheet-chip.is-selected,
.csv-search-sheet [data-sheet-convivencia] .csv-sheet-chip.is-active {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}

/* === 4. Botón "Limpiar todo" del modal de filtros === */
.csv-filter-modal__reset-all {
	background: transparent !important;
	border: none !important;
	color: #1f2937 !important;
	font-weight: 700 !important;
	font-size: 14px !important;
	cursor: pointer !important;
	font-family: inherit !important;
	text-decoration: underline !important;
	padding: 8px 14px !important;
}
.csv-filter-modal__reset-all:hover {
	color: #F5BB1F !important;
}

/* === 5. FIX /buscar/: el mapa NO se colapsa con los anuncios === */
body.casave-page--search .csv-search-page,
body.casave-page--search .csv-search-page__row {
	overflow: visible !important;
	display: flex !important;
}
@media (min-width: 1025px) {
	body.casave-page--search .csv-search-page__row {
		display: flex !important;
		flex-direction: row !important;
		gap: 0 !important;
		align-items: flex-start !important;
	}
	body.casave-page--search .csv-search-page__results {
		flex: 1 1 50% !important;
		max-width: 50% !important;
		padding-top: 24px !important;
	}
	body.casave-page--search .csv-search-page__map {
		flex: 1 1 50% !important;
		max-width: 50% !important;
		display: block !important;
	}
}

/* === 6. HOME MÓVIL: hero compacto + tabs scrollables OK === */
@media (max-width: 768px) {
	html body .csv-hero-ab,
	.csv-hero-ab {
		padding: 20px 0 14px !important;
	}
	html body .csv-hero-ab__eyebrow,
	.csv-hero-ab__eyebrow {
		font-size: 10px !important;
		padding: 4px 10px !important;
		margin-bottom: 10px !important;
	}
	html body .csv-hero-ab__title,
	.csv-hero-ab__title {
		font-size: 26px !important;
		line-height: 1.1 !important;
		padding: 0 16px !important;
		margin-bottom: 6px !important;
	}
	html body .csv-hero-ab__sub,
	.csv-hero-ab__sub {
		font-size: 13px !important;
		padding: 0 24px !important;
		margin-bottom: 16px !important;
	}
	html body .csv-hero-ab__tabs,
	.csv-hero-ab__tabs {
		gap: 18px !important;
		padding: 0 16px 4px !important;
		justify-content: flex-start !important;
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch !important;
		flex-wrap: nowrap !important;
		margin-bottom: 14px !important;
	}
	html body .csv-hero-ab__tab,
	.csv-hero-ab__tab {
		flex-shrink: 0 !important;
		padding: 4px 2px 8px !important;
	}
	html body .csv-hero-ab__tab-icon,
	.csv-hero-ab__tab-icon {
		font-size: 20px !important;
	}
	html body .csv-hero-ab__tab-label,
	.csv-hero-ab__tab-label {
		font-size: 11px !important;
	}

	/* Pill móvil compacta vertical */
	html body .csv-hero-ab__search,
	.csv-hero-ab__search {
		display: grid !important;
		grid-template-columns: 1fr !important;
		gap: 0 !important;
		padding: 6px !important;
		max-width: none !important;
		margin: 0 14px !important;
		border-radius: 18px !important;
	}
	html body .csv-hero-ab__seg,
	.csv-hero-ab__seg {
		padding: 11px 16px !important;
		border-radius: 14px !important;
		border-bottom: 1px solid #f3f4f6 !important;
	}
	html body .csv-hero-ab__seg:last-of-type,
	.csv-hero-ab__seg:last-of-type {
		border-bottom: none !important;
	}
	html body .csv-hero-ab__seg-sep,
	.csv-hero-ab__seg-sep { display: none !important; }
	html body .csv-hero-ab__btn,
	.csv-hero-ab__btn {
		width: 100% !important;
		height: 46px !important;
		border-radius: 14px !important;
		margin-top: 4px !important;
	}

	/* Recent section móvil */
	html body .csv-recent-section,
	.csv-recent-section { padding: 16px 0 24px !important; }
	html body .csv-recent-section__title,
	.csv-recent-section__title { font-size: 17px !important; }
	html body .csv-recent-grid,
	.csv-recent-grid { grid-template-columns: repeat(2, 1fr) !important; gap: 10px !important; }
}

/* === 7. Listings móvil: cards 1 col + título legible === */
@media (max-width: 600px) {
	html body .csv-search-page__h1,
	.csv-search-page__h1 {
		font-size: 18px !important;
		line-height: 1.25 !important;
	}
	html body .csv-search-page .csv-grid,
	.csv-search-page .csv-grid {
		grid-template-columns: 1fr !important;
		gap: 16px !important;
	}
	html body .csv-search-page__results {
		padding: 18px 14px 24px !important;
	}
}

/* ============================================================
   v0.14.60 — Header móvil delgado + animación tabs hero
   ============================================================ */

/* === HEADER MÓVIL MÁS DELGADO === */
@media (max-width: 900px) {
	html body .csv-header__row,
	body .csv-header__row,
	.csv-header__row {
		min-height: 44px !important;
		padding: 1px 0 !important;
		gap: 8px !important;
	}
	html body { padding-top: 48px !important; }
	html.admin-bar body { padding-top: 78px !important; }

	/* Logo más pequeño */
	html body .csv-header__logo img,
	.csv-header__logo img {
		height: 22px !important;
	}
	html body .csv-header__logo svg,
	.csv-header__logo svg {
		width: 78px !important;
		height: 22px !important;
	}

	/* "Publica gratis" más sutil */
	html body .csv-header__cta,
	.csv-header__cta {
		padding: 5px 11px !important;
		font-size: 11.5px !important;
		font-weight: 600 !important;
	}

	/* Avatar más pequeño */
	html body .csv-menu-btn--avatar-only .csv-menu-btn__avatar,
	.csv-menu-btn--avatar-only .csv-menu-btn__avatar {
		width: 30px !important;
		height: 30px !important;
		font-size: 11px !important;
		border-width: 1.5px !important;
	}

	html body .csv-header__actions,
	.csv-header__actions {
		gap: 6px !important;
	}

	/* Padding body en listings móvil (header 44px + subrow ~48px ≈ 92px) */
	html body.csv-page-listings {
		padding-top: 96px !important;
	}
	html.admin-bar body.csv-page-listings {
		padding-top: 126px !important;
	}

	/* Pill móvil con scroll: aún más compacta */
	html body .csv-header.is-scrolled .csv-header__pill,
	.csv-header.is-scrolled .csv-header__pill {
		padding: 2px 2px 2px 10px !important;
	}
	html body .csv-header.is-scrolled .csv-header__pill-btn {
		padding: 4px 6px !important;
		font-size: 10.5px !important;
	}
	html body .csv-header.is-scrolled .csv-header__pill-search {
		width: 26px !important;
		height: 26px !important;
	}

	/* Segunda fila listings más delgada */
	html body .csv-header__filter-tabs,
	.csv-header__filter-tabs {
		padding: 8px 14px !important;
		gap: 4px !important;
	}
	html body .csv-filter-tab,
	.csv-filter-tab {
		padding: 5px 11px !important;
		font-size: 11.5px !important;
	}
	html body .csv-header__filter-sep,
	.csv-header__filter-sep {
		height: 22px !important;
	}
}

@media (max-width: 600px) {
	html body .csv-header__row,
	.csv-header__row {
		min-height: 42px !important;
		padding: 0 !important;
	}
	html body { padding-top: 44px !important; }
}

/* === ANIMACIÓN slide horizontal en pill del hero (al cambiar tab) === */
.csv-hero-ab__search {
	transition: opacity 0.28s cubic-bezier(0.55, 0, 0.1, 1), transform 0.28s cubic-bezier(0.55, 0, 0.1, 1);
}
.csv-hero-ab__search.is-exiting {
	opacity: 0 !important;
	transform: translateX(-44px) !important;
	transition: opacity 0.28s cubic-bezier(0.55, 0, 0.1, 1), transform 0.28s cubic-bezier(0.55, 0, 0.1, 1) !important;
}
.csv-hero-ab__search.is-entering {
	animation: csv-hero-pill-enter 0.52s cubic-bezier(0.32, 0.72, 0, 1) both;
}
@keyframes csv-hero-pill-enter {
	0% {
		opacity: 0;
		transform: translateX(44px);
	}
	100% {
		opacity: 1;
		transform: translateX(0);
	}
}

/* Stagger en los segmentos */
.csv-hero-ab__search.is-entering .csv-hero-ab__seg:nth-child(1) {
	animation: csv-hero-seg-enter 0.5s cubic-bezier(0.32, 0.72, 0, 1) both;
	animation-delay: 0ms;
}
.csv-hero-ab__search.is-entering .csv-hero-ab__seg:nth-child(3) {
	animation: csv-hero-seg-enter 0.5s cubic-bezier(0.32, 0.72, 0, 1) both;
	animation-delay: 60ms;
}
.csv-hero-ab__search.is-entering .csv-hero-ab__seg:nth-child(5) {
	animation: csv-hero-seg-enter 0.5s cubic-bezier(0.32, 0.72, 0, 1) both;
	animation-delay: 120ms;
}
.csv-hero-ab__search.is-entering .csv-hero-ab__btn {
	animation: csv-hero-seg-enter 0.5s cubic-bezier(0.32, 0.72, 0, 1) both;
	animation-delay: 180ms;
}
@keyframes csv-hero-seg-enter {
	0% {
		opacity: 0;
		transform: translateY(8px);
	}
	100% {
		opacity: 1;
		transform: translateY(0);
	}
}

/* Tabs activas con curva más viva al hover */
.csv-hero-ab__tab {
	transition: color 0.18s cubic-bezier(0.32, 0.72, 0, 1),
				border-color 0.18s cubic-bezier(0.32, 0.72, 0, 1) !important;
}
.csv-hero-ab__tab .csv-hero-ab__tab-icon {
	transition: transform 0.25s cubic-bezier(0.32, 0.72, 0, 1) !important;
}
.csv-hero-ab__tab:hover .csv-hero-ab__tab-icon,
.csv-hero-ab__tab.is-active .csv-hero-ab__tab-icon {
	transform: scale(1.12) !important;
}

/* ============================================================
   v0.14.61 — FORZAR header móvil delgado (override final)
   Especificidad máxima para vencer reglas previas
   ============================================================ */
@media (max-width: 900px) {
	html body .csv-header,
	html body.casave-page .csv-header,
	html body header.csv-header[data-csv-header] {
		min-height: 0 !important;
	}
	html body .csv-header__row,
	html body.casave-page .csv-header__row,
	html body header.csv-header .csv-header__row {
		min-height: 42px !important;
		height: 42px !important;
		padding: 0 !important;
		gap: 8px !important;
	}
	html body, body.casave-page, body[class*="casave"] {
		padding-top: 44px !important;
	}
	html.admin-bar body, html.admin-bar body.casave-page {
		padding-top: 70px !important;
	}

	/* Container interno */
	html body .csv-header .csv-container,
	html body header.csv-header > .csv-container {
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}

	/* Logo súper pequeño en móvil */
	html body .csv-header__logo img,
	html body .csv-header__logo svg,
	.csv-header__logo img,
	.csv-header__logo svg {
		height: 20px !important;
		max-height: 20px !important;
		width: auto !important;
	}

	/* Publica gratis casi link */
	html body .csv-header__cta,
	html body.casave-page .csv-header__cta,
	.csv-header__cta {
		padding: 4px 10px !important;
		font-size: 11px !important;
		font-weight: 600 !important;
		background: transparent !important;
		box-shadow: none !important;
	}

	/* Avatar 28px en móvil */
	html body .csv-menu-btn--avatar-only .csv-menu-btn__avatar,
	html body.casave-page .csv-menu-btn--avatar-only .csv-menu-btn__avatar,
	.csv-menu-btn--avatar-only .csv-menu-btn__avatar {
		width: 28px !important;
		height: 28px !important;
		font-size: 10.5px !important;
		border-width: 1.5px !important;
	}

	/* Body listings móvil — recalcular padding-top */
	html body.csv-page-listings,
	body.csv-page-listings {
		padding-top: 84px !important;  /* 42 header + 42 subrow */
	}
	html.admin-bar body.csv-page-listings {
		padding-top: 110px !important;
	}

	/* Subrow más delgada */
	html body .csv-header__filter-tabs,
	body .csv-header__filter-tabs {
		padding: 6px 12px !important;
		gap: 4px !important;
	}
}

@media (max-width: 600px) {
	html body .csv-header__row,
	html body header.csv-header .csv-header__row {
		min-height: 40px !important;
		height: 40px !important;
	}
	html body, body.casave-page {
		padding-top: 42px !important;
	}
	html body.csv-page-listings { padding-top: 80px !important; }
}

/* ============================================================
   v0.14.61 — Stats reales + badge dinámico + header móvil definitivo
   ============================================================ */

/* === Badge dinámico (lucky) — estilos consistentes === */
.csv-listing__lucky {
	display: flex;
	align-items: center;
	gap: 10px;
	background: #fff7e6;
	border: 1px solid #fde6a8;
	padding: 11px 14px;
	border-radius: 14px;
	margin-bottom: 14px;
	font-size: 13px;
	color: #5a4500;
	line-height: 1.35;
	font-weight: 500;
}
.csv-listing__lucky-icon {
	font-size: 18px;
	flex-shrink: 0;
	line-height: 1;
}

/* === Stats del anuncio (visitas / favoritos / consultas) === */
.csv-listing__stats {
	display: flex;
	gap: 14px;
	padding: 12px 16px;
	background: #f9fafb;
	border-radius: 14px;
	margin-bottom: 14px;
	flex-wrap: wrap;
}
.csv-listing__stat {
	display: inline-flex;
	align-items: center;
	gap: 5px;
	font-size: 12.5px;
	color: #4b5563;
	font-weight: 500;
}
.csv-listing__stat svg {
	color: #6b7280;
	flex-shrink: 0;
}
.csv-listing__stat strong {
	color: #1f2937;
	font-weight: 700;
}

/* === HEADER MÓVIL FINAL: forzar con máxima especificidad === */
@media (max-width: 900px) {
	html body header.csv-header,
	html body header.csv-header[data-csv-header],
	body header.csv-header {
		min-height: 0 !important;
	}
	html body header.csv-header > .csv-container,
	body header.csv-header > .csv-container {
		min-height: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}
	html body header.csv-header .csv-header__row,
	body header.csv-header .csv-header__row,
	html body .csv-header__row[data-csv-header-row] {
		min-height: 44px !important;
		height: 44px !important;
		max-height: 44px !important;
		padding: 0 !important;
		gap: 6px !important;
		align-items: center !important;
	}
	html body, html body.casave-page, body.casave-page, body[class*="casave"] {
		padding-top: 46px !important;
	}
	html.admin-bar body, html.admin-bar body.casave-page {
		padding-top: 72px !important;
	}
	html body.csv-page-listings { padding-top: 92px !important; }
	html.admin-bar body.csv-page-listings { padding-top: 118px !important; }

	/* Logo más pequeño */
	html body header.csv-header .csv-header__logo img,
	html body header.csv-header .csv-header__logo svg,
	html body header.csv-header .csv-header__logo {
		max-height: 22px !important;
		height: 22px !important;
	}

	/* Avatar */
	html body header.csv-header .csv-menu-btn--avatar-only .csv-menu-btn__avatar,
	html body .csv-menu-btn .csv-menu-btn__avatar {
		width: 30px !important;
		height: 30px !important;
		font-size: 11px !important;
	}

	/* Publica gratis */
	html body header.csv-header .csv-header__cta,
	html body .csv-header__cta {
		padding: 5px 11px !important;
		font-size: 11.5px !important;
		background: transparent !important;
		box-shadow: none !important;
		font-weight: 600 !important;
	}
}

@media (max-width: 600px) {
	html body header.csv-header .csv-header__row,
	body .csv-header__row {
		min-height: 42px !important;
		height: 42px !important;
		max-height: 42px !important;
	}
	html body, body.casave-page { padding-top: 44px !important; }
	html body.csv-page-listings { padding-top: 88px !important; }
}

/* ============================================================
   v0.14.62 — Layout listings NUCLEAR: no se rompe nunca
   ============================================================ */
@media (min-width: 1025px) {
	/* Forzar el flex 50/50 a TODOS los niveles */
	html body .csv-search-page,
	html body[class*="casave"] .csv-search-page,
	body .csv-search-page {
		display: block !important;
		width: 100% !important;
		max-width: 100% !important;
		overflow: visible !important;
		margin: 0 !important;
		padding: 0 !important;
	}
	html body .csv-search-page .csv-search-page__row,
	body .csv-search-page__row {
		display: flex !important;
		flex-direction: row !important;
		align-items: flex-start !important;
		gap: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		overflow: visible !important;
		position: relative !important;
	}
	html body .csv-search-page__results,
	body .csv-search-page__results {
		flex: 0 0 50% !important;
		max-width: 50% !important;
		min-width: 0 !important;
		width: 50% !important;
		box-sizing: border-box !important;
		position: relative !important;
		z-index: 1 !important;
	}
	html body .csv-search-page__map,
	body .csv-search-page__map {
		flex: 0 0 50% !important;
		max-width: 50% !important;
		min-width: 0 !important;
		width: 50% !important;
		box-sizing: border-box !important;
		position: sticky !important;
		top: 124px !important;
		height: calc(100vh - 124px) !important;
		align-self: flex-start !important;
		z-index: 2 !important;
	}
}

/* Empty state full width (no se solapa) */
html body .csv-search-page .csv-empty-state,
body .csv-search-page .csv-empty-state {
	width: 100% !important;
	max-width: 100% !important;
	margin: 40px auto !important;
	text-align: center !important;
	padding: 60px 24px !important;
	background: #f9fafb !important;
	border-radius: 18px !important;
}

/* ============================================================
   v0.14.63 — Header móvil 50px + centrado vertical perfecto
   ============================================================ */
@media (max-width: 900px) {
	html body header.csv-header,
	html body header.csv-header[data-csv-header],
	body header.csv-header {
		min-height: 0 !important;
	}
	html body header.csv-header > .csv-container,
	body header.csv-header > .csv-container {
		min-height: 0 !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		height: 100% !important;
		display: flex !important;
		align-items: center !important;
	}
	html body header.csv-header .csv-header__row,
	body header.csv-header .csv-header__row {
		min-height: 50px !important;
		height: 50px !important;
		max-height: 50px !important;
		padding: 0 !important;
		gap: 8px !important;
		align-items: center !important;
		justify-content: space-between !important;
		display: grid !important;
		grid-template-columns: 1fr auto 1fr !important;
		width: 100% !important;
	}

	/* Logo: alineado a la izquierda, centrado vertical */
	html body header.csv-header .csv-header__logo,
	body .csv-header__logo {
		justify-self: start !important;
		display: flex !important;
		align-items: center !important;
		height: 100% !important;
	}
	html body header.csv-header .csv-header__logo img,
	html body header.csv-header .csv-header__logo svg {
		max-height: 24px !important;
		height: 24px !important;
		display: block !important;
	}

	/* Center (pill al scrollear): centrado horizontal Y vertical */
	html body header.csv-header .csv-header__center,
	body .csv-header__center {
		justify-self: center !important;
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		height: 100% !important;
		min-width: 0 !important;
		max-width: 220px !important;
	}

	/* Pill cuando aparece al scrollear */
	html body header.csv-header.is-scrolled .csv-header__pill,
	html body .csv-header__pill {
		margin: 0 !important;
		align-items: center !important;
	}

	/* Actions: alineado a la derecha, centrado vertical */
	html body header.csv-header .csv-header__actions,
	body .csv-header__actions {
		justify-self: end !important;
		display: flex !important;
		align-items: center !important;
		justify-content: flex-end !important;
		height: 100% !important;
		gap: 6px !important;
	}

	html body, html body.casave-page, body.casave-page, body[class*="casave"] {
		padding-top: 52px !important;
	}
	html.admin-bar body, html.admin-bar body.casave-page {
		padding-top: 78px !important;
	}
	html body.csv-page-listings { padding-top: 96px !important; }
	html.admin-bar body.csv-page-listings { padding-top: 122px !important; }

	/* Avatar */
	html body header.csv-header .csv-menu-btn--avatar-only .csv-menu-btn__avatar,
	html body .csv-menu-btn .csv-menu-btn__avatar {
		width: 32px !important;
		height: 32px !important;
		font-size: 12px !important;
	}

	/* Publica gratis */
	html body header.csv-header .csv-header__cta,
	html body .csv-header__cta {
		padding: 6px 12px !important;
		font-size: 12px !important;
		background: transparent !important;
		box-shadow: none !important;
		font-weight: 600 !important;
	}
}

@media (max-width: 600px) {
	html body header.csv-header .csv-header__row,
	body .csv-header__row {
		min-height: 48px !important;
		height: 48px !important;
		max-height: 48px !important;
	}
	html body, body.casave-page { padding-top: 50px !important; }
	html body.csv-page-listings { padding-top: 92px !important; }
}

/* === Métricas prominentes del anuncio (estilo Idealista) === */
.csv-listing__metrics {
	display: flex;
	flex-wrap: wrap;
	gap: 24px;
	padding: 14px 18px;
	background: #f9fafb;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
	margin: 14px 0 22px;
	font-size: 13.5px;
	color: #4b5563;
}
.csv-listing__metric {
	display: inline-flex;
	align-items: center;
	gap: 7px;
	line-height: 1.3;
}
.csv-listing__metric svg {
	color: #6b7280;
	flex-shrink: 0;
}
.csv-listing__metric strong {
	color: #1f2937;
	font-weight: 700;
}
.csv-listing__metric--days {
	margin-left: auto;
	color: #6b7280;
	font-size: 12.5px;
}

@media (max-width: 700px) {
	.csv-listing__metrics {
		gap: 12px 16px;
		padding: 12px 14px;
		font-size: 12.5px;
	}
	.csv-listing__metric--days {
		margin-left: 0;
		width: 100%;
		padding-top: 6px;
		border-top: 1px solid #e5e7eb;
	}
}

/* ============================================================
   v0.14.64 — Layout listings con GRID (robusto) + header móvil centrado real
   ============================================================ */

/* === LAYOUT: grid + flex compatibles (no se rompe nunca) === */
@media (min-width: 1025px) {
	html body .csv-search-page .csv-search-page__row,
	html body .csv-search-page__row,
	body .csv-search-page__row {
		display: grid !important;
		grid-template-columns: 1fr 1fr !important;
		grid-template-rows: auto !important;
		gap: 0 !important;
		align-items: start !important;
		overflow: visible !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	html body .csv-search-page .csv-search-page__results,
	html body .csv-search-page__results,
	body .csv-search-page__results {
		display: block !important;
		flex: 0 0 50% !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		grid-column: 1 !important;
		box-sizing: border-box !important;
		position: relative !important;
		z-index: 1 !important;
	}
	html body .csv-search-page .csv-search-page__map,
	html body .csv-search-page__map,
	body .csv-search-page__map {
		display: block !important;
		flex: 0 0 50% !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		grid-column: 2 !important;
		box-sizing: border-box !important;
		position: sticky !important;
		top: 124px !important;
		height: calc(100vh - 124px) !important;
		align-self: start !important;
		z-index: 2 !important;
		visibility: visible !important;
	}
}

/* === HEADER MÓVIL: centrado vertical PERFECTO === */
@media (max-width: 900px) {
	html body header.csv-header,
	body header.csv-header {
		display: flex !important;
		align-items: center !important;
		padding: 0 !important;
	}
	html body header.csv-header > .csv-container,
	body header.csv-header > .csv-container {
		display: flex !important;
		align-items: center !important;
		width: 100% !important;
		height: 52px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		margin-top: 0 !important;
		margin-bottom: 0 !important;
	}
	html body header.csv-header .csv-header__row,
	body header.csv-header .csv-header__row {
		display: grid !important;
		grid-template-columns: 1fr auto 1fr !important;
		align-items: center !important;
		justify-content: space-between !important;
		width: 100% !important;
		height: 52px !important;
		min-height: 52px !important;
		max-height: 52px !important;
		padding: 0 !important;
		margin: 0 !important;
		gap: 8px !important;
		line-height: 1 !important;
	}

	/* Todos los hijos directos centrados vertical */
	html body header.csv-header .csv-header__row > *,
	body .csv-header__row > * {
		display: flex !important;
		align-items: center !important;
		height: 100% !important;
		margin: 0 !important;
		padding: 0 !important;
	}

	/* Logo */
	html body header.csv-header .csv-header__logo,
	body .csv-header__logo {
		justify-self: start !important;
		justify-content: flex-start !important;
	}
	html body header.csv-header .csv-header__logo img,
	html body header.csv-header .csv-header__logo svg {
		max-height: 26px !important;
		height: 26px !important;
		display: block !important;
		margin: 0 !important;
	}

	/* Center (pill al scrollear) */
	html body header.csv-header .csv-header__center,
	body .csv-header__center {
		justify-self: center !important;
		justify-content: center !important;
		min-width: 0 !important;
		max-width: 240px !important;
	}
	html body header.csv-header .csv-header__pill,
	body .csv-header__pill {
		display: flex !important;
		align-items: center !important;
		margin: 0 !important;
	}

	/* Actions */
	html body header.csv-header .csv-header__actions,
	body .csv-header__actions {
		justify-self: end !important;
		justify-content: flex-end !important;
		gap: 8px !important;
	}
	html body header.csv-header .csv-header__actions > * {
		display: flex !important;
		align-items: center !important;
	}

	html body, body.casave-page, body[class*="casave"] {
		padding-top: 52px !important;
	}
	html.admin-bar body, html.admin-bar body.casave-page {
		padding-top: 78px !important;
	}
}

/* === Chips con emoji estilo Airbnb (sheet del buscador global) === */
.csv-sheet-chip--emoji {
	display: inline-flex !important;
	align-items: center !important;
	gap: 8px !important;
	padding: 11px 16px !important;
	background: #fff !important;
	border: 1.5px solid #e5e7eb !important;
	color: #1f2937 !important;
	border-radius: 14px !important;
	font-family: inherit !important;
	font-size: 13.5px !important;
	font-weight: 600 !important;
	cursor: pointer !important;
	transition: all 0.18s cubic-bezier(0.32, 0.72, 0, 1) !important;
	white-space: nowrap !important;
}
.csv-sheet-chip--emoji .csv-sheet-chip__emoji {
	font-size: 17px !important;
	line-height: 1 !important;
	flex-shrink: 0 !important;
}
.csv-sheet-chip--emoji:hover {
	border-color: #1f2937 !important;
	transform: translateY(-1px) !important;
	box-shadow: 0 2px 6px rgba(0,0,0,0.06) !important;
}
.csv-sheet-chip--emoji.is-selected,
.csv-sheet-chip--emoji.is-active {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}
.csv-sheet-chip--emoji.is-selected:hover,
.csv-sheet-chip--emoji.is-active:hover {
	background: #1f2937 !important;
}

/* Grid más respirable para los chips emoji */
.csv-sheet-chips {
	display: flex !important;
	flex-wrap: wrap !important;
	gap: 10px !important;
	padding: 8px 0 4px !important;
}

/* ============================================================
   v0.14.65 — Header móvil: subrow CLARAMENTE separada del row principal
   ============================================================ */
@media (max-width: 900px) {
	/* La subrow (Todos / Apartamento / Casa / ...) DEBE estar bajo el row, no dentro */
	html body header.csv-header,
	body header.csv-header {
		display: block !important;       /* NO flex — block para que las dos filas se apilen */
		min-height: 0 !important;
	}

	/* Row principal: SOLO 52px de alto */
	html body header.csv-header > .csv-container,
	body header.csv-header > .csv-container {
		display: flex !important;
		align-items: center !important;
		height: 52px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
	}
	html body header.csv-header .csv-header__row,
	body header.csv-header .csv-header__row {
		display: grid !important;
		grid-template-columns: 1fr auto 1fr !important;
		align-items: center !important;
		width: 100% !important;
		height: 52px !important;
		min-height: 52px !important;
		max-height: 52px !important;
		padding: 0 !important;
		margin: 0 !important;
	}

	/* SEGUNDA FILA (subrow): fila aparte abajo, scroll horizontal */
	html body header.csv-header .csv-header__subrow,
	body header.csv-header .csv-header__subrow {
		display: block !important;
		width: 100% !important;
		background: #fff !important;
		border-top: 1px solid #f3f4f6 !important;
		padding: 0 !important;
		margin: 0 !important;
		height: 42px !important;
		min-height: 42px !important;
		max-height: 42px !important;
		box-sizing: border-box !important;
		overflow: hidden !important;
	}
	html body header.csv-header .csv-header__subrow > .csv-container {
		display: flex !important;
		align-items: center !important;
		height: 100% !important;
		padding-left: 14px !important;
		padding-right: 14px !important;
	}
	html body header.csv-header .csv-header__filter-tabs,
	body header.csv-header .csv-header__filter-tabs {
		display: flex !important;
		flex-wrap: nowrap !important;
		gap: 6px !important;
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch !important;
		scrollbar-width: none !important;
		width: 100% !important;
		height: 100% !important;
		align-items: center !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	html body header.csv-header .csv-header__filter-tabs::-webkit-scrollbar {
		display: none !important;
	}
	html body header.csv-header .csv-filter-tab,
	body header.csv-header .csv-filter-tab {
		flex-shrink: 0 !important;
		padding: 5px 12px !important;
		font-size: 12px !important;
		border-radius: 999px !important;
		border: 1px solid transparent !important;
		background: transparent !important;
		color: #6b7280 !important;
		font-weight: 500 !important;
		white-space: nowrap !important;
		cursor: pointer !important;
		font-family: inherit !important;
		line-height: 1.3 !important;
		height: 30px !important;
		display: inline-flex !important;
		align-items: center !important;
	}
	html body header.csv-header .csv-filter-tab.is-active,
	body .csv-filter-tab.is-active {
		border-color: #1f2937 !important;
		color: #1f2937 !important;
		background: #fff !important;
		font-weight: 700 !important;
	}
	html body header.csv-header .csv-filter-tab--filters,
	.csv-filter-tab--filters {
		border-color: #1f2937 !important;
		color: #1f2937 !important;
		gap: 5px !important;
		font-weight: 600 !important;
	}
	html body header.csv-header .csv-header__filter-sep,
	.csv-header__filter-sep {
		display: inline-block !important;
		width: 1px !important;
		height: 22px !important;
		background: #e5e7eb !important;
		margin: 0 4px !important;
		flex-shrink: 0 !important;
	}

	/* Padding body: header (52) + subrow (42) = 94px en listings */
	html body.csv-page-listings {
		padding-top: 96px !important;
	}
	html.admin-bar body.csv-page-listings {
		padding-top: 122px !important;
	}
	/* Sin subrow (home, single, etc.): solo el header (52) */
	html body { padding-top: 52px !important; }
	html.admin-bar body { padding-top: 78px !important; }
}

@media (max-width: 600px) {
	html body header.csv-header > .csv-container,
	body header.csv-header > .csv-container {
		height: 48px !important;
	}
	html body header.csv-header .csv-header__row {
		height: 48px !important;
		min-height: 48px !important;
		max-height: 48px !important;
	}
	html body header.csv-header .csv-header__subrow {
		height: 40px !important;
		min-height: 40px !important;
		max-height: 40px !important;
	}
	html body.csv-page-listings { padding-top: 90px !important; }
	html body { padding-top: 48px !important; }
}

/* === Chips simples de habs/baños (sin emoji, solo número) === */
.csv-sheet-chip:not(.csv-sheet-chip--emoji) {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 48px;
	padding: 10px 18px;
	background: #fff;
	border: 1.5px solid #e5e7eb;
	color: #1f2937;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.18s cubic-bezier(0.32, 0.72, 0, 1);
}
.csv-sheet-chip:not(.csv-sheet-chip--emoji):hover {
	border-color: #1f2937;
	transform: translateY(-1px);
}
.csv-sheet-chip:not(.csv-sheet-chip--emoji).is-selected,
.csv-sheet-chip:not(.csv-sheet-chip--emoji).is-active {
	background: #1f2937 !important;
	color: #fff !important;
	border-color: #1f2937 !important;
}

/* === Asegurar que en compartir la sección habs solo muestra convivencia === */
.csv-search-sheet[data-current-op="compartir"] [data-csv-habs-chips],
.csv-search-sheet[data-current-op="compartir"] [data-csv-baths-chips],
.csv-search-sheet[data-current-op="compartir"] [data-csv-habs-title],
.csv-search-sheet[data-current-op="compartir"] [data-csv-baths-title] {
	display: none !important;
}
.csv-search-sheet[data-current-op="compartir"] [data-sheet-convivencia] {
	display: flex !important;
}

/* ============================================================
   v0.14.67 — Filter hide robusto + layout 50/50 anti-overflow
   ============================================================ */

/* === 1. CARDS OCULTAS POR FILTRO: clase con máxima especificidad === */
html body .csv-card.is-filter-hidden,
body .csv-card.is-filter-hidden,
.csv-search-page .csv-grid .csv-card.is-filter-hidden,
.csv-card.is-filter-hidden {
	display: none !important;
	visibility: hidden !important;
	height: 0 !important;
	overflow: hidden !important;
	margin: 0 !important;
	padding: 0 !important;
	opacity: 0 !important;
	pointer-events: none !important;
}

/* === 2. Grid del row con minmax para evitar overflow de las columnas === */
@media (min-width: 1025px) {
	html body .csv-search-page .csv-search-page__row,
	html body .csv-search-page__row,
	body .csv-search-page__row {
		display: grid !important;
		grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) !important;
		gap: 0 !important;
		align-items: start !important;
		overflow: visible !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	/* Resultados: NO desbordar a la columna del mapa */
	html body .csv-search-page .csv-search-page__results,
	html body .csv-search-page__results,
	body .csv-search-page__results {
		display: block !important;
		grid-column: 1 / 2 !important;   /* SOLO columna 1 */
		width: auto !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: none !important;
		box-sizing: border-box !important;
		overflow: hidden !important;     /* No desbordar lateralmente */
		position: relative !important;
		z-index: 1 !important;
	}
	/* Grid de cards dentro: respeta el ancho de la columna */
	html body .csv-search-page .csv-grid,
	body .csv-search-page .csv-grid {
		display: grid !important;
		grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
		gap: 22px 18px !important;
		width: 100% !important;
		max-width: 100% !important;
	}
	/* Cards: no se desbordan */
	html body .csv-search-page .csv-grid .csv-card {
		min-width: 0 !important;
		max-width: 100% !important;
	}
	/* Mapa: SOLO columna 2 */
	html body .csv-search-page .csv-search-page__map,
	html body .csv-search-page__map,
	body .csv-search-page__map {
		display: block !important;
		grid-column: 2 / 3 !important;   /* SOLO columna 2 */
		width: auto !important;
		max-width: 100% !important;
		min-width: 0 !important;
		flex: none !important;
		box-sizing: border-box !important;
		position: sticky !important;
		top: 124px !important;
		height: calc(100vh - 124px) !important;
		align-self: start !important;
		z-index: 2 !important;
		overflow: hidden !important;     /* Encapsulado */
	}
}

/* ============================================================
   v0.14.68 — Quitar "Publica gratis" en móvil + centrado vertical exacto
   ============================================================ */
@media (max-width: 900px) {
	/* OCULTAR "Publica gratis" en móvil */
	html body header.csv-header .csv-header__cta,
	body header.csv-header .csv-header__cta,
	.csv-header__cta {
		display: none !important;
	}

	/* Header row: centrado vertical absoluto con line-height 1 */
	html body header.csv-header,
	body header.csv-header {
		display: block !important;
		padding: 0 !important;
		margin: 0 !important;
	}
	html body header.csv-header > .csv-container,
	body header.csv-header > .csv-container {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		height: 52px !important;
		min-height: 52px !important;
		max-height: 52px !important;
		padding-top: 0 !important;
		padding-bottom: 0 !important;
		margin: 0 !important;
		line-height: 1 !important;
	}
	html body header.csv-header .csv-header__row,
	body header.csv-header .csv-header__row {
		display: grid !important;
		grid-template-columns: 1fr auto 1fr !important;
		align-items: center !important;
		justify-items: stretch !important;
		width: 100% !important;
		height: 52px !important;
		min-height: 52px !important;
		max-height: 52px !important;
		padding: 0 !important;
		margin: 0 !important;
		line-height: 1 !important;
	}

	/* Cada columna del header: ocupar toda la altura, contenido centrado vertical */
	html body header.csv-header .csv-header__row > *,
	body .csv-header__row > * {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		height: 52px !important;
		min-height: 52px !important;
		max-height: 52px !important;
		margin: 0 !important;
		padding: 0 !important;
		line-height: 1 !important;
	}

	/* Logo (col 1) */
	html body header.csv-header .csv-header__logo,
	body .csv-header__logo {
		justify-self: start !important;
		justify-content: flex-start !important;
	}
	html body header.csv-header .csv-header__logo img,
	html body header.csv-header .csv-header__logo svg {
		display: block !important;
		max-height: 26px !important;
		height: 26px !important;
		width: auto !important;
		vertical-align: middle !important;
		margin: 0 !important;
	}
	html body header.csv-header .csv-header__logo picture {
		display: flex !important;
		align-items: center !important;
		height: 100% !important;
		margin: 0 !important;
	}

	/* Center (col 2) — pill al scrollear */
	html body header.csv-header .csv-header__center,
	body .csv-header__center {
		justify-self: center !important;
		justify-content: center !important;
		min-width: 0 !important;
	}
	html body header.csv-header .csv-header__center > * {
		margin: 0 !important;
		display: flex !important;
		align-items: center !important;
	}

	/* Actions (col 3) — avatar */
	html body header.csv-header .csv-header__actions,
	body .csv-header__actions {
		justify-self: end !important;
		justify-content: flex-end !important;
		gap: 0 !important;
	}
	html body header.csv-header .csv-header__actions > * {
		margin: 0 !important;
	}
	html body header.csv-header .csv-menu-btn,
	html body header.csv-header .csv-menu-btn--avatar-only {
		display: inline-flex !important;
		align-items: center !important;
		justify-content: center !important;
		padding: 0 !important;
		margin: 0 !important;
		background: transparent !important;
		border: none !important;
		height: 36px !important;
	}
	html body header.csv-header .csv-menu-btn--avatar-only .csv-menu-btn__avatar,
	.csv-menu-btn--avatar-only .csv-menu-btn__avatar {
		display: flex !important;
		align-items: center !important;
		justify-content: center !important;
		width: 34px !important;
		height: 34px !important;
		margin: 0 !important;
		font-size: 12px !important;
	}
}

@media (max-width: 600px) {
	html body header.csv-header > .csv-container,
	body header.csv-header > .csv-container {
		height: 48px !important;
		min-height: 48px !important;
		max-height: 48px !important;
	}
	html body header.csv-header .csv-header__row,
	body header.csv-header .csv-header__row {
		height: 48px !important;
		min-height: 48px !important;
		max-height: 48px !important;
	}
	html body header.csv-header .csv-header__row > * {
		height: 48px !important;
		min-height: 48px !important;
		max-height: 48px !important;
	}
}

/* ============================================================
   v0.14.69 — Bottom bar móvil amarillo + badges singles amarillos + user menu bottom sheet
   ============================================================ */

/* === 1. Botón "Reservar/Contactar" del bottom bar móvil — AMARILLO de marca === */
html body .csv-mobile-reserve-bar,
body .csv-mobile-reserve-bar {
	padding: 12px 16px !important;
	background: #fff !important;
	border-top: 1px solid #e5e7eb !important;
	box-shadow: 0 -4px 16px rgba(0,0,0,0.08) !important;
	align-items: center !important;
	gap: 12px !important;
}
html body .csv-mobile-reserve-bar__price,
body .csv-mobile-reserve-bar__price {
	display: flex !important;
	flex-direction: column !important;
	gap: 2px !important;
	line-height: 1.2 !important;
}
html body .csv-mobile-reserve-bar__price strong,
body .csv-mobile-reserve-bar__price strong {
	font-size: 17px !important;
	font-weight: 800 !important;
	color: #1f2937 !important;
	font-family: 'DM Sans', 'Inter', sans-serif !important;
}
html body .csv-mobile-reserve-bar__price small,
body .csv-mobile-reserve-bar__price small {
	font-size: 12px !important;
	color: #6b7280 !important;
}
html body .csv-mobile-reserve-bar__cta,
body .csv-mobile-reserve-bar__cta,
.csv-mobile-reserve-bar__cta {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	border: none !important;
	padding: 14px 28px !important;
	border-radius: 66px !important;
	font-size: 14.5px !important;
	font-weight: 800 !important;
	font-family: inherit !important;
	cursor: pointer !important;
	white-space: nowrap !important;
	flex-shrink: 0 !important;
	margin-left: auto !important;
	box-shadow: 0 4px 14px rgba(245,187,31,0.35) !important;
	letter-spacing: -0.005em !important;
	min-height: 44px !important;
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	transition: transform 0.18s, box-shadow 0.18s !important;
}
html body .csv-mobile-reserve-bar__cta:hover,
body .csv-mobile-reserve-bar__cta:hover {
	transform: translateY(-1px) !important;
	box-shadow: 0 6px 18px rgba(245,187,31,0.45) !important;
}
html body .csv-mobile-reserve-bar__cta:active,
body .csv-mobile-reserve-bar__cta:active {
	transform: translateY(0) !important;
}

/* === 2. Badge del single inmueble: TODOS amarillos con texto negro === */
html body .csv-single-op-badge,
body .csv-single-op-badge,
.csv-single-op-badge {
	display: inline-flex !important;
	align-items: center !important;
	gap: 7px !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 50%, #FFE9A8 100%) !important;
	color: #1f2937 !important;
	padding: 7px 16px !important;
	border-radius: 999px !important;
	font-size: 12.5px !important;
	font-weight: 800 !important;
	letter-spacing: -0.005em !important;
	margin-bottom: 14px !important;
	box-shadow: 0 2px 8px rgba(245,187,31,0.25) !important;
	border: none !important;
}
html body .csv-single-op-badge--venta,
html body .csv-single-op-badge--alquiler,
html body .csv-single-op-badge--vacacional,
html body .csv-single-op-badge--compartir,
html body .csv-single-op-badge--comercial {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 50%, #FFE9A8 100%) !important;
	color: #1f2937 !important;
}

/* === 3. User menu como BOTTOM SHEET en móvil — REDISEÑADO v0.14.70 === */
@media (max-width: 900px) {
	/* Estado BASE: panel renderizado pero FUERA de pantalla, invisible e inactivo */
	html body .csv-user-menu__panel,
	body .csv-user-menu__panel,
	.csv-user-menu__panel {
		position: fixed !important;
		bottom: 0 !important;
		top: auto !important;
		left: 0 !important;
		right: 0 !important;
		width: 100% !important;
		max-width: 100% !important;
		min-width: 0 !important;
		max-height: 85vh !important;
		max-height: 85dvh !important;
		border-radius: 24px 24px 0 0 !important;
		/* Padding bottom usa safe-area-inset (iPhone) */
		padding: 10px 0 calc(20px + env(safe-area-inset-bottom, 0px)) !important;
		margin: 0 !important;
		background: #fff !important;
		box-shadow: 0 -8px 40px rgba(0,0,0,0.25) !important;
		/* OCULTO: fuera de pantalla + invisible + sin interacciones */
		transform: translateY(100%) !important;
		visibility: hidden !important;
		opacity: 0 !important;
		pointer-events: none !important;
		transition:
			transform 0.32s cubic-bezier(0.32, 0.72, 0, 1),
			opacity 0.22s ease-out,
			visibility 0s linear 0.32s !important;
		overflow-y: auto !important;
		-webkit-overflow-scrolling: touch !important;
		z-index: 9999 !important;
		display: block !important;
	}

	/* Estado ABIERTO: cuando body tiene csv-user-menu-open Y el panel no está [hidden] */
	html body.csv-user-menu-open .csv-user-menu__panel:not([hidden]),
	body.csv-user-menu-open .csv-user-menu__panel:not([hidden]),
	body.csv-user-menu-open .csv-user-menu__panel {
		transform: translateY(0) !important;
		visibility: visible !important;
		opacity: 1 !important;
		pointer-events: auto !important;
		transition:
			transform 0.32s cubic-bezier(0.32, 0.72, 0, 1),
			opacity 0.22s ease-in,
			visibility 0s linear !important;
	}

	/* Handle/swipe indicator — solo cuando abierto */
	html body .csv-user-menu__panel::before,
	body .csv-user-menu__panel::before {
		content: '' !important;
		display: block !important;
		width: 40px !important;
		height: 4px !important;
		background: #d1d5db !important;
		border-radius: 999px !important;
		margin: 4px auto 12px !important;
		flex-shrink: 0 !important;
	}

	/* Items con buena área táctil */
	html body .csv-user-menu__item,
	body .csv-user-menu__item,
	.csv-user-menu__item {
		padding: 14px 24px !important;
		font-size: 15px !important;
		display: block !important;
	}
	html body .csv-user-menu__role-badge,
	body .csv-user-menu__role-badge {
		padding: 0 24px 14px !important;
	}
	html body .csv-user-menu__divider,
	body .csv-user-menu__divider {
		margin: 6px 0 !important;
	}

	/* Backdrop oscuro + body lock cuando hay clase abierta */
	body.csv-user-menu-open::before {
		content: '' !important;
		position: fixed !important;
		inset: 0 !important;
		background: rgba(0,0,0,0.45) !important;
		z-index: 9998 !important;
		opacity: 1 !important;
		transition: opacity 0.32s !important;
		pointer-events: auto !important;
	}
	body.csv-user-menu-open {
		overflow: hidden !important;
	}
}

/* ============================================================
   v0.14.73 — Bottom nav estilo Airbnb (logueado) + Página Mensajes
   ============================================================ */

/* === Bottom nav logueado: 5 items, avatar real + badge mensajes === */
@media (max-width: 900px) {
	html body .csv-bottom-nav,
	body .csv-bottom-nav {
		display: flex !important;
		justify-content: space-around !important;
		align-items: stretch !important;
		padding: 6px 0 calc(6px + env(safe-area-inset-bottom, 0px)) !important;
		background: #fff !important;
		border-top: 1px solid #f3f4f6 !important;
		box-shadow: 0 -2px 12px rgba(0,0,0,0.04) !important;
	}
	html body .csv-bottom-nav__item,
	body .csv-bottom-nav__item {
		flex: 1 1 0 !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		justify-content: flex-end !important;
		gap: 4px !important;
		padding: 6px 4px !important;
		font-size: 10px !important;
		font-weight: 500 !important;
		color: #6b7280 !important;
		text-decoration: none !important;
		background: transparent !important;
		border: none !important;
		font-family: inherit !important;
		cursor: pointer !important;
		min-width: 0 !important;
	}
	html body .csv-bottom-nav__item svg,
	body .csv-bottom-nav__item svg {
		width: 24px !important;
		height: 24px !important;
		stroke-width: 2 !important;
	}
	html body .csv-bottom-nav__item.is-active,
	body .csv-bottom-nav__item.is-active {
		color: #1f2937 !important;
		font-weight: 700 !important;
	}
}

/* Badge punto rojo en mensajes */
.csv-bottom-nav__icon-wrap {
	position: relative;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}
.csv-bottom-nav__dot {
	position: absolute;
	top: -2px;
	right: -2px;
	width: 9px;
	height: 9px;
	background: #FF3B30;
	border-radius: 50%;
	border: 1.5px solid #fff;
	box-shadow: 0 0 0 0.5px rgba(0,0,0,0.06);
}

/* Avatar real en item Perfil */
.csv-bottom-nav__avatar {
	width: 26px;
	height: 26px;
	border-radius: 50%;
	background-color: #1f2937;
	background-size: cover;
	background-position: center;
	color: #fff;
	font-size: 11px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px solid #fff;
	box-shadow: 0 0 0 1px #e5e7eb;
}
.csv-bottom-nav__item--profile.is-active .csv-bottom-nav__avatar {
	box-shadow: 0 0 0 2px #1f2937;
}
.csv-bottom-nav__item--profile.is-active {
	color: #1f2937 !important;
	font-weight: 700 !important;
}

/* === PÁGINA MENSAJES estilo Airbnb === */
.csv-messages-page {
	max-width: 100%;
	padding: 0 20px 100px;
	background: #fff;
	min-height: 100vh;
}
.csv-messages-page__topbar {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 10px;
	padding: 12px 0 6px;
}
.csv-messages-page__icon-btn {
	width: 40px;
	height: 40px;
	border-radius: 50%;
	background: #f3f4f6;
	border: none;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1f2937;
	transition: background 0.18s;
}
.csv-messages-page__icon-btn:hover {
	background: #e5e7eb;
}
.csv-messages-page__title {
	font-size: 30px;
	font-weight: 800;
	color: #1f2937;
	margin: 12px 0 22px;
	font-family: 'DM Sans', 'Inter', sans-serif;
	letter-spacing: -0.02em;
	line-height: 1.1;
}
.csv-messages-page__tabs {
	display: flex;
	gap: 8px;
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	scrollbar-width: none;
	padding: 0 0 8px;
	margin: 0 -4px 8px;
}
.csv-messages-page__tabs::-webkit-scrollbar { display: none; }
.csv-messages-page__tab {
	flex-shrink: 0;
	padding: 11px 22px;
	background: #f3f4f6;
	border: none;
	color: #1f2937;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14px;
	font-weight: 600;
	cursor: pointer;
	transition: all 0.18s;
	white-space: nowrap;
}
.csv-messages-page__tab.is-active {
	background: #1f2937;
	color: #fff;
}

/* Lista de conversaciones */
.csv-message-list {
	display: flex;
	flex-direction: column;
}
.csv-message-item {
	display: flex;
	gap: 14px;
	align-items: flex-start;
	padding: 14px 0;
	border-bottom: 1px solid #f3f4f6;
	text-decoration: none;
	color: inherit;
	cursor: pointer;
	transition: background 0.15s;
}
.csv-message-item:hover {
	background: #fafafa;
}
.csv-message-item:last-child {
	border-bottom: none;
}
.csv-message-item__avatars {
	position: relative;
	flex-shrink: 0;
	width: 64px;
	height: 64px;
}
.csv-message-item__thumb {
	width: 56px;
	height: 56px;
	border-radius: 14px;
	background: #e5e7eb;
	background-size: cover;
	background-position: center;
	overflow: hidden;
}
.csv-message-item__avatar {
	position: absolute;
	bottom: -2px;
	right: -2px;
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: #1f2937;
	background-size: cover;
	background-position: center;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 2px solid #fff;
}
.csv-message-item__body {
	flex: 1 1 auto;
	min-width: 0;
}
.csv-message-item__head {
	display: flex;
	justify-content: space-between;
	align-items: baseline;
	gap: 10px;
	margin-bottom: 2px;
}
.csv-message-item__name {
	font-weight: 700;
	font-size: 15.5px;
	color: #1f2937;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.csv-message-item__date {
	font-size: 12px;
	color: #6b7280;
	flex-shrink: 0;
	font-weight: 500;
}
.csv-message-item__preview {
	font-size: 14px;
	color: #4b5563;
	line-height: 1.35;
	overflow: hidden;
	text-overflow: ellipsis;
	display: -webkit-box;
	-webkit-line-clamp: 1;
	-webkit-box-orient: vertical;
	margin-bottom: 4px;
}
.csv-message-item.is-unread .csv-message-item__name,
.csv-message-item.is-unread .csv-message-item__preview {
	font-weight: 700;
	color: #1f2937;
}
.csv-message-item__meta {
	font-size: 12.5px;
	color: #6b7280;
}

/* Empty state */
.csv-messages-empty {
	text-align: center;
	padding: 80px 20px;
	color: #6b7280;
}
.csv-messages-empty__icon {
	font-size: 48px;
	margin-bottom: 16px;
}
.csv-messages-empty__title {
	font-size: 18px;
	font-weight: 700;
	color: #1f2937;
	margin-bottom: 8px;
}

@media (min-width: 901px) {
	.csv-messages-page {
		max-width: 720px;
		margin: 0 auto;
		padding: 32px 24px 60px;
	}
	.csv-messages-page__title {
		font-size: 36px;
	}
}

/* ============================================================
   v0.14.74 — Aplicar diseño de mockups a TODAS las secciones móvil
   App-like, optimizado para dedos, Airbnb-style
   ============================================================ */

/* === HOME EXPLORAR móvil: pill compacta + categorías emoji + feed === */
@media (max-width: 900px) {
	/* Hero más compacto en móvil */
	html body .csv-hero-ab,
	body .csv-hero-ab {
		padding-top: 14px !important;
		padding-bottom: 6px !important;
	}
	html body .csv-hero-ab__title,
	body .csv-hero-ab__title {
		font-size: 28px !important;
		line-height: 1.05 !important;
		letter-spacing: -0.03em !important;
	}
	html body .csv-hero-ab__sub,
	body .csv-hero-ab__sub {
		font-size: 13.5px !important;
		margin-top: 8px !important;
		margin-bottom: 16px !important;
	}
	html body .csv-hero-ab__eyebrow,
	body .csv-hero-ab__eyebrow {
		font-size: 11.5px !important;
		padding: 4px 10px !important;
		margin-bottom: 12px !important;
	}

	/* Categorías hero como cat-tabs del mockup */
	html body .csv-hero-ab__tabs,
	body .csv-hero-ab__tabs {
		display: flex !important;
		gap: 8px !important;
		overflow-x: auto !important;
		-webkit-overflow-scrolling: touch !important;
		scrollbar-width: none !important;
		padding: 4px 0 12px !important;
		margin: 0 -4px 8px !important;
		justify-content: flex-start !important;
		flex-wrap: nowrap !important;
		background: transparent !important;
		border: none !important;
	}
	html body .csv-hero-ab__tabs::-webkit-scrollbar { display: none !important; }
	html body .csv-hero-ab__tab,
	body .csv-hero-ab__tab {
		flex-shrink: 0 !important;
		display: flex !important;
		flex-direction: column !important;
		align-items: center !important;
		gap: 4px !important;
		padding: 6px 10px 8px !important;
		background: transparent !important;
		color: #6b7280 !important;
		font-size: 11px !important;
		font-weight: 600 !important;
		border: none !important;
		border-bottom: 2px solid transparent !important;
		border-radius: 0 !important;
		cursor: pointer !important;
		min-width: 58px !important;
	}
	html body .csv-hero-ab__tab.is-active,
	body .csv-hero-ab__tab.is-active {
		color: #1f2937 !important;
		border-bottom-color: #1f2937 !important;
		font-weight: 700 !important;
	}
	html body .csv-hero-ab__tab-icon,
	body .csv-hero-ab__tab-icon {
		font-size: 24px !important;
		line-height: 1 !important;
		display: block !important;
	}
	html body .csv-hero-ab__tab-label,
	body .csv-hero-ab__tab-label {
		font-size: 10.5px !important;
	}
}

/* === FAVORITOS móvil: lista compacta con thumb + heart amarillo === */
.csv-fav-mobile {
	display: flex;
	flex-direction: column;
	gap: 14px;
	padding: 4px 14px 20px;
}
.csv-fav-mobile-item {
	display: flex;
	gap: 12px;
	align-items: center;
	background: #fff;
	border-radius: 14px;
	text-decoration: none;
	color: inherit;
}
.csv-fav-mobile-item__img {
	width: 90px;
	height: 90px;
	border-radius: 12px;
	background-size: cover;
	background-position: center;
	background-color: #e5e7eb;
	flex-shrink: 0;
	position: relative;
}
.csv-fav-mobile-item__heart {
	position: absolute;
	top: 6px; right: 6px;
	width: 24px; height: 24px;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	border-radius: 50%;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1f2937;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.csv-fav-mobile-item__body { flex: 1; min-width: 0; }
.csv-fav-mobile-item__title {
	font-size: 14px;
	font-weight: 700;
	color: #1f2937;
	margin-bottom: 3px;
	letter-spacing: -0.01em;
}
.csv-fav-mobile-item__sub {
	font-size: 12px;
	color: #6b7280;
	margin-bottom: 5px;
}
.csv-fav-mobile-item__price {
	font-size: 13.5px;
	font-weight: 700;
	color: #1f2937;
}
.csv-fav-mobile-item__price small {
	font-weight: 400;
	color: #6b7280;
	font-size: 12px;
}
.csv-fav-mobile-tabs {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	padding: 0 14px 14px;
	scrollbar-width: none;
}
.csv-fav-mobile-tabs::-webkit-scrollbar { display: none; }
.csv-fav-mobile-tab {
	flex-shrink: 0;
	padding: 8px 16px;
	background: #f3f4f6;
	color: #1f2937;
	border: none;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
	transition: all 0.2s;
}
.csv-fav-mobile-tab.is-active {
	background: #1f2937;
	color: #fff;
}

/* === RESERVAS móvil === */
.csv-trips-page { padding: 0 0 100px; }
.csv-trip-tabs {
	display: flex;
	gap: 6px;
	overflow-x: auto;
	padding: 0 14px 14px;
	scrollbar-width: none;
}
.csv-trip-tabs::-webkit-scrollbar { display: none; }
.csv-trip-tab {
	flex-shrink: 0;
	padding: 8px 16px;
	background: #f3f4f6;
	color: #1f2937;
	border: none;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 600;
	cursor: pointer;
	text-decoration: none;
}
.csv-trip-tab.is-active {
	background: #1f2937;
	color: #fff;
}
.csv-trip-card {
	margin: 0 14px 14px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 18px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	display: block;
	transition: transform 0.22s cubic-bezier(0.32, 0.72, 0, 1);
}
.csv-trip-card:hover { transform: translateY(-2px); }
.csv-trip-card__img {
	width: 100%;
	aspect-ratio: 16/9;
	background-size: cover;
	background-position: center;
	background-color: #e5e7eb;
	position: relative;
}
.csv-trip-card__status {
	position: absolute;
	top: 10px; left: 10px;
	padding: 5px 12px;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 50%, #FFE9A8 100%);
	color: #1f2937;
	border-radius: 999px;
	font-size: 11.5px;
	font-weight: 800;
	letter-spacing: -0.005em;
	box-shadow: 0 2px 8px rgba(245,187,31,0.3);
}
.csv-trip-card__status--pending {
	background: #1f2937;
	color: #fff;
	box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}
.csv-trip-card__body { padding: 14px; }
.csv-trip-card__title {
	font-size: 15.5px;
	font-weight: 700;
	color: #1f2937;
	margin-bottom: 4px;
	letter-spacing: -0.01em;
}
.csv-trip-card__sub {
	font-size: 12.5px;
	color: #6b7280;
	margin-bottom: 10px;
}
.csv-trip-card__meta {
	display: flex;
	gap: 10px;
	padding-top: 10px;
	border-top: 1px solid #f3f4f6;
	font-size: 12px;
	color: #4b5563;
	align-items: center;
}
.csv-trip-card__meta strong { color: #1f2937; font-weight: 700; }
.csv-trip-card__meta-icon { color: #F5BB1F; }
.csv-trip-cta {
	margin: 10px 14px 20px;
	padding: 22px;
	background: linear-gradient(135deg, #1f2937 0%, #374151 100%);
	border-radius: 18px;
	color: #fff;
}
.csv-trip-cta__title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 800;
	margin-bottom: 8px;
	letter-spacing: -0.015em;
	line-height: 1.2;
}
.csv-trip-cta__sub {
	font-size: 13px;
	color: rgba(255,255,255,0.75);
	margin-bottom: 14px;
	line-height: 1.45;
}
.csv-trip-cta__btn {
	display: inline-block;
	padding: 11px 22px;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 800;
	text-decoration: none;
	box-shadow: 0 4px 14px rgba(245,187,31,0.35);
}

/* === PERFIL móvil === */
.csv-profile-page { padding: 0 0 100px; }
.csv-profile-card {
	margin: 0 14px 18px;
	padding: 18px;
	background: linear-gradient(135deg, #fef9e7 0%, #fffbf0 100%);
	border: 1px solid #fde68a;
	border-radius: 18px;
	display: flex;
	gap: 14px;
	align-items: center;
}
.csv-profile-card__avatar {
	width: 62px;
	height: 62px;
	border-radius: 50%;
	background-color: #1f2937;
	background-size: cover;
	background-position: center;
	flex-shrink: 0;
	border: 3px solid #fff;
	box-shadow: 0 3px 10px rgba(0,0,0,0.12);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	font-weight: 800;
	font-family: 'DM Sans', 'Inter', sans-serif;
}
.csv-profile-card__info { flex: 1; min-width: 0; }
.csv-profile-card__name {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.015em;
	line-height: 1.1;
	margin-bottom: 2px;
}
.csv-profile-card__role {
	font-size: 12.5px;
	color: #4b5563;
	margin-bottom: 6px;
}
.csv-profile-card__badge {
	display: inline-flex;
	align-items: center;
	gap: 3px;
	padding: 3px 9px;
	background: #1f2937;
	color: #fff;
	border-radius: 999px;
	font-size: 10.5px;
	font-weight: 700;
}

.csv-profile-section {
	padding: 8px 14px 4px;
}
.csv-profile-section__title {
	font-size: 11px;
	font-weight: 700;
	color: #6b7280;
	text-transform: uppercase;
	letter-spacing: 0.06em;
	margin-bottom: 8px;
	padding: 0 4px;
}
.csv-profile-items {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #f3f4f6;
	border-radius: 14px;
	overflow: hidden;
}
.csv-profile-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: #fff;
	color: #1f2937;
	text-decoration: none;
	border-bottom: 1px solid #f3f4f6;
	font-size: 14px;
	font-weight: 600;
	transition: background 0.15s;
}
.csv-profile-item:last-child { border-bottom: none; }
.csv-profile-item:hover { background: #fafafa; }
.csv-profile-item__icon {
	width: 32px;
	height: 32px;
	background: #f3f4f6;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	color: #1f2937;
}
.csv-profile-item__icon--accent {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
}
.csv-profile-item__icon--danger {
	background: #fee2e2;
	color: #ef4444;
}
.csv-profile-item__label { flex: 1; }
.csv-profile-item__arrow { color: #9ca3af; flex-shrink: 0; }
.csv-profile-item--danger { color: #ef4444; }

/* App header móvil (común a Favoritos/Reservas/Perfil) */
.csv-app-header {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 8px 14px 6px;
	min-height: 50px;
}
.csv-app-header__title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 28px;
	font-weight: 800;
	letter-spacing: -0.025em;
	color: #1f2937;
	line-height: 1.1;
}
.csv-app-header__btns {
	display: flex;
	gap: 8px;
}
.csv-app-header__icon-btn {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #f3f4f6;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1f2937;
	cursor: pointer;
	transition: background 0.18s;
}
.csv-app-header__icon-btn:hover { background: #e5e7eb; }

/* ============================================================
   v0.14.75 — App PURE móvil: sin sidebar/header dashboard + Chat fullscreen
   ============================================================ */

/* === En MÓVIL, vistas app-pure: ocultar sidebar, wrapper, container del dashboard === */
@media (max-width: 900px) {
	/* Ocultar sidebar del dashboard — selectores con MAYOR especificidad que .is-role-inmobiliaria */
	html body section.csv-dashboard.csv-dashboard--app.is-role-inmobiliaria .csv-dashboard__sidebar,
	html body section.csv-dashboard.csv-dashboard--app.is-role-particular .csv-dashboard__sidebar,
	html body section.csv-dashboard.csv-dashboard--app.is-role-buscar .csv-dashboard__sidebar,
	html body section.csv-dashboard.csv-dashboard--app.is-role-compartir .csv-dashboard__sidebar,
	html body section.csv-dashboard.csv-dashboard--app .csv-dashboard__sidebar,
	body section.csv-dashboard.csv-dashboard--app .csv-dashboard__sidebar,
	.csv-dashboard.csv-dashboard--app .csv-dashboard__sidebar {
		display: none !important;
		visibility: hidden !important;
		width: 0 !important;
		max-width: 0 !important;
		overflow: hidden !important;
		padding: 0 !important;
		margin: 0 !important;
		border: none !important;
	}
	/* Layout sin sidebar: main al 100% — mayor especificidad */
	html body section.csv-dashboard.csv-dashboard--app .csv-dashboard__layout,
	body section.csv-dashboard.csv-dashboard--app .csv-dashboard__layout,
	.csv-dashboard.csv-dashboard--app .csv-dashboard__layout {
		display: block !important;
		grid-template-columns: none !important;
		gap: 0 !important;
	}
	html body section.csv-dashboard.csv-dashboard--app .csv-dashboard__main,
	body section.csv-dashboard.csv-dashboard--app .csv-dashboard__main,
	.csv-dashboard.csv-dashboard--app .csv-dashboard__main {
		width: 100% !important;
		max-width: 100% !important;
		padding: 0 !important;
		margin: 0 !important;
		background: #fff !important;
	}
	/* Container sin padding lateral */
	html body section.csv-dashboard.csv-dashboard--app > .csv-container,
	body section.csv-dashboard.csv-dashboard--app > .csv-container,
	.csv-dashboard.csv-dashboard--app > .csv-container {
		padding: 0 !important;
		max-width: 100% !important;
		margin: 0 !important;
	}
	/* La section ocupa todo */
	html body section.csv-dashboard.csv-dashboard--app,
	body section.csv-dashboard.csv-dashboard--app,
	.csv-dashboard.csv-dashboard--app {
		padding: 0 !important;
		margin: 0 !important;
		background: #fff !important;
		min-height: calc(100vh - 60px) !important;
	}
	/* Ocultar header del dashboard antiguo si aparece */
	html body section.csv-dashboard.csv-dashboard--app .csv-dashboard__head,
	body section.csv-dashboard.csv-dashboard--app .csv-dashboard__head,
	.csv-dashboard.csv-dashboard--app .csv-dashboard__head {
		display: none !important;
	}
	/* Ocultar CTA del sidebar también */
	html body section.csv-dashboard.csv-dashboard--app .csv-dashboard__sidebar-cta,
	.csv-dashboard.csv-dashboard--app .csv-dashboard__sidebar-cta {
		display: none !important;
	}
}

/* === CHAT FULLSCREEN === */
.csv-chat {
	position: fixed;
	inset: 0;
	background: #fff;
	z-index: 9990;
	display: flex;
	flex-direction: column;
}
.csv-chat__head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 14px calc(10px + env(safe-area-inset-top, 0px));
	padding-top: calc(env(safe-area-inset-top, 0px) + 10px);
	background: #fff;
	border-bottom: 1px solid #f3f4f6;
	box-shadow: 0 1px 3px rgba(0,0,0,0.04);
	min-height: 64px;
	box-sizing: border-box;
}
.csv-chat__back {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #f3f4f6;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1f2937;
	cursor: pointer;
	flex-shrink: 0;
	text-decoration: none;
}
.csv-chat__head-info {
	flex: 1;
	min-width: 0;
	display: flex;
	gap: 10px;
	align-items: center;
}
.csv-chat__head-thumb {
	width: 36px; height: 36px;
	border-radius: 8px;
	background-size: cover;
	background-position: center;
	background-color: #e5e7eb;
	flex-shrink: 0;
}
.csv-chat__head-text {
	flex: 1;
	min-width: 0;
}
.csv-chat__head-name {
	font-size: 14.5px;
	font-weight: 700;
	color: #1f2937;
	letter-spacing: -0.01em;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.csv-chat__head-prop {
	font-size: 11.5px;
	color: #6b7280;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.csv-chat__head-prop a { color: inherit; text-decoration: none; }
.csv-chat__head-prop a:hover { text-decoration: underline; }
.csv-chat__head-action {
	width: 38px; height: 38px;
	border-radius: 50%;
	background: #f3f4f6;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1f2937;
	cursor: pointer;
	flex-shrink: 0;
	text-decoration: none;
}

/* Cuerpo de mensajes */
.csv-chat__body {
	flex: 1;
	overflow-y: auto;
	-webkit-overflow-scrolling: touch;
	padding: 16px 14px 20px;
	background: #fff;
	display: flex;
	flex-direction: column;
	gap: 6px;
}
.csv-chat__date {
	text-align: center;
	font-size: 11.5px;
	color: #9ca3af;
	padding: 14px 0 6px;
	font-weight: 600;
}
.csv-chat-bubble {
	max-width: 78%;
	padding: 10px 14px;
	border-radius: 18px;
	font-size: 14.5px;
	line-height: 1.4;
	word-wrap: break-word;
	box-shadow: 0 1px 2px rgba(0,0,0,0.04);
}
.csv-chat-bubble--mine {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
	align-self: flex-end;
	border-bottom-right-radius: 6px;
	font-weight: 500;
}
.csv-chat-bubble--theirs {
	background: #f3f4f6;
	color: #1f2937;
	align-self: flex-start;
	border-bottom-left-radius: 6px;
}
.csv-chat-bubble__time {
	display: block;
	font-size: 10px;
	margin-top: 4px;
	opacity: 0.65;
	font-weight: 500;
}
.csv-chat-bubble--mine .csv-chat-bubble__time { text-align: right; }

/* Input fijo abajo */
.csv-chat__foot {
	flex-shrink: 0;
	padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px));
	background: #fff;
	border-top: 1px solid #f3f4f6;
	display: flex;
	gap: 10px;
	align-items: flex-end;
}
.csv-chat__input-wrap {
	flex: 1;
	background: #f3f4f6;
	border-radius: 22px;
	padding: 8px 14px;
	display: flex;
	align-items: center;
	min-height: 44px;
}
.csv-chat__input {
	flex: 1;
	border: none;
	background: transparent;
	font-family: inherit;
	font-size: 15px;
	color: #1f2937;
	resize: none;
	outline: none;
	max-height: 100px;
	min-height: 26px;
	line-height: 1.3;
}
.csv-chat__input::placeholder { color: #9ca3af; }
.csv-chat__send {
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	border: none;
	color: #1f2937;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	flex-shrink: 0;
	box-shadow: 0 3px 10px rgba(245,187,31,0.4);
	transition: transform 0.18s, box-shadow 0.18s;
}
.csv-chat__send:hover {
	transform: translateY(-1px);
	box-shadow: 0 4px 12px rgba(245,187,31,0.5);
}
.csv-chat__send:disabled {
	background: #e5e7eb;
	color: #9ca3af;
	box-shadow: none;
	cursor: not-allowed;
}

/* Cuando hay chat abierto: ocultar bottom nav */
body.csv-chat-open .csv-bottom-nav { display: none !important; }
body.csv-chat-open { overflow: hidden !important; }

@media (min-width: 901px) {
	/* En desktop, chat dentro del dashboard (no fullscreen) */
	.csv-chat {
		position: relative;
		inset: auto;
		height: calc(100vh - 100px);
		max-width: 720px;
		margin: 0 auto;
		border-radius: 16px;
		border: 1px solid #e5e7eb;
		overflow: hidden;
	}
}

/* ============================================================
   v0.14.77 — Botones activos AMARILLOS (marca) en pills de Favoritos/Mensajes/Reservas
   ============================================================ */

/* Tabs Mensajes */
html body .csv-messages-page__tab.is-active,
body .csv-messages-page__tab.is-active,
.csv-messages-page__tab.is-active {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	box-shadow: 0 3px 10px rgba(245,187,31,0.35) !important;
}

/* Tabs Favoritos */
html body .csv-fav-mobile-tab.is-active,
body .csv-fav-mobile-tab.is-active,
.csv-fav-mobile-tab.is-active {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	box-shadow: 0 3px 10px rgba(245,187,31,0.35) !important;
}

/* Tabs Reservas */
html body .csv-trip-tab.is-active,
body .csv-trip-tab.is-active,
.csv-trip-tab.is-active {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	box-shadow: 0 3px 10px rgba(245,187,31,0.35) !important;
}

/* ============================================================
   v0.14.78 — Skeleton + Footer hidden + Hero centrado + Optimización
   ============================================================ */

/* === Hero categorías CENTRADAS en móvil === */
@media (max-width: 900px) {
	html body .csv-hero-ab__tabs,
	body .csv-hero-ab__tabs {
		justify-content: center !important;
		padding-left: 8px !important;
		padding-right: 8px !important;
	}
}

/* === Ocultar footer + cosas del theme cuando estamos en vista app pure === */
body.csv-app-pure footer,
body.csv-app-pure .site-footer,
body.csv-app-pure #colophon,
body.csv-app-pure .footer,
body.csv-app-pure .csv-footer,
html body.csv-app-pure footer:not(.csv-chat__foot),
html body.csv-app-pure .ue-page-footer,
html body.csv-app-pure [id*="footer"]:not(.csv-chat__foot):not([class*="chat"]),
html body.csv-app-pure [class*="page-footer"] {
	display: none !important;
}
/* También quitar margins del top/bottom del wrapper del theme */
body.csv-app-pure main,
body.csv-app-pure .main-content,
body.csv-app-pure #main,
body.csv-app-pure #content {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
	margin-top: 0 !important;
	margin-bottom: 0 !important;
}

/* === SKELETON LOADING para las páginas app === */
@keyframes csv-skeleton-shimmer {
	0%   { background-position: -200px 0; }
	100% { background-position: calc(200px + 100%) 0; }
}
.csv-skel {
	background: linear-gradient(90deg, #f3f4f6 0%, #fafafa 50%, #f3f4f6 100%);
	background-size: 200px 100%;
	background-repeat: no-repeat;
	animation: csv-skeleton-shimmer 1.2s ease-in-out infinite;
	border-radius: 8px;
	color: transparent !important;
}

/* Skeleton genérico para items de lista (fav, trip, msg) */
.csv-skel-list {
	padding: 4px 14px 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.csv-skel-item {
	display: flex;
	gap: 12px;
	align-items: center;
}
.csv-skel-item__thumb {
	width: 64px;
	height: 64px;
	border-radius: 12px;
	flex-shrink: 0;
}
.csv-skel-item__body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.csv-skel-item__line {
	height: 12px;
	border-radius: 6px;
}
.csv-skel-item__line--short  { width: 50%; }
.csv-skel-item__line--medium { width: 70%; }
.csv-skel-item__line--long   { width: 90%; }

/* Skel header app: title + dos pills */
.csv-skel-header {
	padding: 8px 14px 14px;
}
.csv-skel-header__title {
	height: 28px;
	width: 50%;
	border-radius: 8px;
	margin-bottom: 16px;
}
.csv-skel-header__pills {
	display: flex;
	gap: 8px;
}
.csv-skel-pill {
	height: 32px;
	width: 80px;
	border-radius: 999px;
}

/* Fade in cuando carga */
.csv-fade-in {
	animation: csv-fade-in-anim 0.28s ease-out both;
}
@keyframes csv-fade-in-anim {
	from { opacity: 0; transform: translateY(6px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Stagger para items de lista */
.csv-stagger > * { animation: csv-fade-in-anim 0.28s ease-out both; }
.csv-stagger > *:nth-child(1) { animation-delay: 0.02s; }
.csv-stagger > *:nth-child(2) { animation-delay: 0.06s; }
.csv-stagger > *:nth-child(3) { animation-delay: 0.10s; }
.csv-stagger > *:nth-child(4) { animation-delay: 0.14s; }
.csv-stagger > *:nth-child(5) { animation-delay: 0.18s; }
.csv-stagger > *:nth-child(6) { animation-delay: 0.22s; }
.csv-stagger > *:nth-child(7) { animation-delay: 0.26s; }
.csv-stagger > *:nth-child(8) { animation-delay: 0.30s; }
.csv-stagger > *:nth-child(n+9) { animation-delay: 0.34s; }

/* Hide skeleton when content ready */
.csv-skel-wrap[data-loaded="1"] .csv-skel-list,
.csv-skel-wrap[data-loaded="1"] .csv-skel-header { display: none !important; }

/* ============================================================
   v0.14.79 — Chat rediseño + Skeleton instantáneo + Headers limpios
   ============================================================ */

/* === Cuando chat abierto: ocultar TODO lo del sitio (header, footer, bottom nav) === */
body.csv-chat-open header.site-header,
body.csv-chat-open .site-header,
body.csv-chat-open #masthead,
body.csv-chat-open .csv-header,
body.csv-chat-open .csv-header-wrap,
body.csv-chat-open .casave-header,
body.csv-chat-open [class*="site-header"],
body.csv-chat-open [id*="site-header"],
body.csv-chat-open .uicore-navbar,
body.csv-chat-open #wpadminbar {
	display: none !important;
}
body.csv-chat-open { padding-top: 0 !important; }
body.csv-chat-open .csv-bottom-nav,
body.csv-chat-open footer,
body.csv-chat-open .site-footer,
body.csv-chat-open #colophon {
	display: none !important;
}

/* === REDISEÑO CHAT estilo Airbnb (centrado, con avatar grande) === */
.csv-chat__head {
	display: grid !important;
	grid-template-columns: 44px 1fr 70px !important;
	gap: 8px !important;
	align-items: start !important;
	padding: 18px 14px 14px !important;
	padding-top: calc(env(safe-area-inset-top, 0px) + 18px) !important;
	background: #fff !important;
	border-bottom: 1px solid #f3f4f6 !important;
	box-shadow: none !important;
	min-height: auto !important;
}
.csv-chat__back {
	width: 36px !important; height: 36px !important;
	background: transparent !important;
	border-radius: 0 !important;
	color: #1f2937 !important;
}
.csv-chat__back:hover { background: #f3f4f6 !important; border-radius: 50% !important; }

/* Info centrada con avatar arriba */
.csv-chat__head-info {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 6px !important;
	text-align: center !important;
}
.csv-chat__head-thumb {
	width: 46px !important;
	height: 46px !important;
	border-radius: 50% !important;
	background-color: #1f2937 !important;
	background-size: cover !important;
	background-position: center !important;
	border: 2px solid #fff !important;
	box-shadow: 0 2px 8px rgba(0,0,0,0.1) !important;
}
.csv-chat__head-text {
	display: flex !important;
	flex-direction: column !important;
	align-items: center !important;
	gap: 2px !important;
	width: 100% !important;
}
.csv-chat__head-name {
	font-size: 15px !important;
	font-weight: 700 !important;
	color: #1f2937 !important;
	text-align: center !important;
}
.csv-chat__head-prop {
	font-size: 12px !important;
	color: #6b7280 !important;
	text-align: center !important;
}

/* Pill "Detalles" a la derecha */
.csv-chat__head-action {
	width: auto !important;
	height: 32px !important;
	padding: 0 14px !important;
	border-radius: 999px !important;
	background: #f3f4f6 !important;
	color: #1f2937 !important;
	font-size: 12.5px !important;
	font-weight: 600 !important;
	justify-self: end !important;
	margin-top: 7px !important;
}
.csv-chat__head-action svg { display: none !important; }
.csv-chat__head-action::after { content: 'Detalles'; }

/* Mensajes: header del autor + burbuja gris grande */
.csv-chat__body {
	padding: 20px 14px 20px !important;
	gap: 4px !important;
}
.csv-chat-bubble--theirs {
	background: #f3f4f6 !important;
	color: #1f2937 !important;
	font-size: 15px !important;
	line-height: 1.45 !important;
	padding: 14px 16px !important;
	border-radius: 16px !important;
	max-width: 88% !important;
}
.csv-chat-bubble--mine {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	font-size: 15px !important;
	line-height: 1.45 !important;
	padding: 14px 16px !important;
	border-radius: 16px !important;
	max-width: 88% !important;
}
.csv-chat-bubble__time {
	display: none !important;  /* la hora va en el meta arriba */
}

/* Meta arriba de la burbuja del otro: "José María · Anfitrión 21:54" */
.csv-chat-bubble-group {
	display: flex;
	flex-direction: column;
	gap: 4px;
	margin-bottom: 10px;
}
.csv-chat-bubble-group--mine {
	align-items: flex-end;
}
.csv-chat-bubble-group--theirs {
	align-items: flex-start;
}
.csv-chat-bubble-meta {
	font-size: 12px;
	color: #6b7280;
	padding: 0 4px;
	display: flex;
	gap: 6px;
	align-items: center;
}
.csv-chat-bubble-meta strong {
	color: #1f2937;
	font-weight: 600;
}

/* Input rediseñado: "+" izq + texto + flecha arriba derecha */
.csv-chat__foot {
	padding: 12px 14px calc(12px + env(safe-area-inset-bottom, 0px)) !important;
	gap: 8px !important;
	border-top: 1px solid #f3f4f6 !important;
	background: #fff !important;
}
.csv-chat__attach {
	width: 38px;
	height: 38px;
	border-radius: 50%;
	background: #f3f4f6;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1f2937;
	flex-shrink: 0;
	cursor: pointer;
}
.csv-chat__input-wrap {
	border-radius: 22px !important;
	background: transparent !important;
	padding: 0 !important;
	min-height: auto !important;
	flex: 1 !important;
}
.csv-chat__input {
	font-size: 15px !important;
	padding: 9px 4px !important;
	min-height: 38px !important;
}
.csv-chat__send {
	width: 38px !important;
	height: 38px !important;
	background: #f3f4f6 !important;
	color: #1f2937 !important;
	box-shadow: none !important;
}
.csv-chat__send:not(:disabled) {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	box-shadow: 0 2px 8px rgba(245,187,31,0.35) !important;
}

/* Botón flotante "scroll to bottom" */
.csv-chat__scroll-btn {
	position: absolute;
	bottom: 90px;
	right: 14px;
	width: 44px;
	height: 44px;
	border-radius: 50%;
	background: #fff;
	border: 1px solid #e5e7eb;
	box-shadow: 0 4px 16px rgba(0,0,0,0.12);
	display: none;
	align-items: center;
	justify-content: center;
	color: #1f2937;
	cursor: pointer;
	z-index: 10;
}
.csv-chat__scroll-btn.is-visible { display: inline-flex; }

/* === SKELETON OVERLAY instantáneo en navegación === */
.csv-skel-overlay {
	position: fixed;
	inset: 0;
	background: #fff;
	z-index: 9985;
	overflow: hidden;
	animation: csv-fade-in-anim 0.15s ease-out;
	padding-top: calc(env(safe-area-inset-top, 0px) + 12px);
}
body.csv-app-pure .csv-skel-overlay { padding-top: 0; }
.csv-skel-overlay__head {
	padding: 10px 14px 14px;
}
.csv-skel-overlay__title {
	height: 30px;
	width: 45%;
	border-radius: 8px;
	margin-bottom: 14px;
}
.csv-skel-overlay__pills {
	display: flex;
	gap: 8px;
	overflow: hidden;
}
.csv-skel-overlay__pill {
	height: 32px;
	width: 80px;
	border-radius: 999px;
	flex-shrink: 0;
}
.csv-skel-overlay__list {
	padding: 14px;
	display: flex;
	flex-direction: column;
	gap: 16px;
}
.csv-skel-overlay__row {
	display: flex;
	gap: 12px;
	align-items: center;
}
.csv-skel-overlay__row-thumb {
	width: 64px;
	height: 64px;
	border-radius: 12px;
	flex-shrink: 0;
}
.csv-skel-overlay__row-thumb--lg {
	width: 100%;
	height: 180px;
	border-radius: 16px;
}
.csv-skel-overlay__row-body {
	flex: 1;
	display: flex;
	flex-direction: column;
	gap: 8px;
}
.csv-skel-overlay__row-line {
	height: 12px;
	border-radius: 6px;
}
.csv-skel-overlay__row-line--short  { width: 50%; }
.csv-skel-overlay__row-line--medium { width: 70%; }
.csv-skel-overlay__row-line--long   { width: 95%; }

/* Variante profile */
.csv-skel-overlay--profile .csv-skel-overlay__list { gap: 8px; }
.csv-skel-overlay__profile-card {
	height: 100px;
	border-radius: 18px;
	margin: 0 0 14px;
}

/* === Más up el contenido en Mensajes/Reservas/Favoritos/Perfil === */
@media (max-width: 900px) {
	html body .csv-dashboard--app .csv-app-header,
	body .csv-dashboard--app .csv-app-header,
	.csv-dashboard--app .csv-app-header {
		min-height: auto !important;
		padding: 4px 14px 6px !important;
	}
	html body .csv-dashboard--app .csv-app-header__title,
	body .csv-dashboard--app .csv-app-header__title,
	.csv-dashboard--app .csv-app-header__title {
		font-size: 26px !important;
		padding-top: 4px !important;
	}
	/* Mensajes: título "Mensajes" más up también */
	html body .csv-dashboard--app .csv-messages-page > h1,
	body .csv-dashboard--app .csv-messages-page > h1,
	.csv-dashboard--app .csv-messages-page > h1 {
		font-size: 26px !important;
		margin: 4px 0 14px !important;
		padding: 0 14px !important;
	}
}

/* ============================================================
   v0.14.80 — SPA Shell: navegación instantánea entre tabs app-pure
   Inspirado en arquitectura Aiden Startup
   v0.14.81 — renombrado a .csv-app-tab para no chocar con .csv-tab (pills)
   ============================================================ */

/* Los tabs viven todos en el DOM, solo uno visible a la vez */
html body .csv-app-tab,
.csv-app-tab {
	display: none !important;
}
html body .csv-app-tab.csv-app-tab--on,
.csv-app-tab.csv-app-tab--on {
	display: block !important;
	animation: csv-app-tab-fu 0.22s ease-out;
}

@keyframes csv-app-tab-fu {
	from { opacity: 0; transform: translateY(8px); }
	to   { opacity: 1; transform: translateY(0); }
}

/* Cuando un tab está activo, NO debe haber skeleton overlay encima */
body.csv-tab-switching .csv-skel-overlay { display: none !important; }

/* ============================================================
   v0.14.82 — Sub-páginas del perfil + Chat toast + Desktop responsive
   ============================================================ */

/* === Toast del chat === */
.csv-chat-toast {
	position: fixed;
	bottom: 80px;
	left: 50%;
	transform: translateX(-50%);
	background: #1f2937;
	color: #fff;
	padding: 12px 20px;
	border-radius: 999px;
	font-size: 13px;
	font-weight: 600;
	box-shadow: 0 6px 24px rgba(0,0,0,0.25);
	z-index: 10000;
	animation: csv-toast-in 0.2s ease-out;
	max-width: 90vw;
}
.csv-chat-toast.is-out { animation: csv-toast-out 0.3s ease-in forwards; }
@keyframes csv-toast-in {
	from { opacity: 0; transform: translateX(-50%) translateY(10px); }
	to   { opacity: 1; transform: translateX(-50%) translateY(0); }
}
@keyframes csv-toast-out {
	from { opacity: 1; transform: translateX(-50%) translateY(0); }
	to   { opacity: 0; transform: translateX(-50%) translateY(10px); }
}

/* Burbuja del chat fallida */
.csv-chat-bubble[data-failed="1"] {
	opacity: 0.55;
	position: relative;
}
.csv-chat-bubble[data-failed="1"]::after {
	content: '⚠';
	position: absolute;
	right: -22px;
	top: 50%;
	transform: translateY(-50%);
	color: #ef4444;
	font-size: 16px;
}
.csv-chat-bubble[data-sending="1"] {
	opacity: 0.7;
}

/* === SUB-PÁGINAS DEL PERFIL === */
.csv-subpage {
	max-width: 640px;
	margin: 0 auto;
	padding: 0 0 100px;
	background: #fff;
}
.csv-subpage__head {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px 16px;
	background: #fff;
	border-bottom: 1px solid #f3f4f6;
	position: sticky;
	top: 0;
	z-index: 50;
}
.csv-subpage__back {
	width: 38px;
	height: 38px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	color: #1f2937;
	background: transparent;
	text-decoration: none;
	flex-shrink: 0;
}
.csv-subpage__back:hover { background: #f3f4f6; }
.csv-subpage__title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.015em;
}

.csv-subpage__notice {
	margin: 12px 14px;
	padding: 12px 16px;
	border-radius: 12px;
	font-size: 13.5px;
	font-weight: 600;
}
.csv-subpage__notice--success {
	background: #d1fae5;
	color: #065f46;
	border: 1px solid #6ee7b7;
}
.csv-subpage__notice--error {
	background: #fee2e2;
	color: #991b1b;
	border: 1px solid #fca5a5;
}

.csv-subpage__section {
	padding: 18px 14px 4px;
	margin-bottom: 8px;
	border-bottom: 8px solid #fafafa;
}
.csv-subpage__section:last-child { border-bottom: none; }
.csv-subpage__section-title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 700;
	color: #1f2937;
	margin-bottom: 12px;
	letter-spacing: -0.01em;
}
.csv-subpage__section-desc {
	font-size: 13px;
	color: #6b7280;
	margin: -6px 0 14px;
	line-height: 1.45;
}

.csv-subpage__form {
	padding: 0 14px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}

.csv-field {
	display: flex;
	flex-direction: column;
	gap: 5px;
}
.csv-field__label {
	font-size: 12.5px;
	font-weight: 600;
	color: #4b5563;
	letter-spacing: 0.01em;
}
.csv-field__input {
	width: 100%;
	padding: 12px 14px;
	background: #fff;
	border: 1.5px solid #e5e7eb;
	border-radius: 12px;
	font-family: inherit;
	font-size: 15px;
	color: #1f2937;
	transition: border-color 0.18s, box-shadow 0.18s;
	outline: none;
	box-sizing: border-box;
}
.csv-field__input:focus {
	border-color: #F5BB1F;
	box-shadow: 0 0 0 3px rgba(245,187,31,0.15);
}
.csv-field__input:disabled {
	background: #f9fafb;
	color: #6b7280;
	cursor: not-allowed;
}
.csv-field__input--ta {
	resize: vertical;
	min-height: 90px;
	line-height: 1.4;
}
.csv-field__hint {
	font-size: 11.5px;
	color: #9ca3af;
	margin-top: 2px;
}

.csv-subpage__cta {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	padding: 13px 24px;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
	border: none;
	border-radius: 999px;
	font-family: inherit;
	font-size: 14.5px;
	font-weight: 800;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(245,187,31,0.35);
	transition: transform 0.15s, box-shadow 0.15s;
	text-decoration: none;
	margin-top: 6px;
	width: 100%;
	box-sizing: border-box;
}
.csv-subpage__cta:hover {
	transform: translateY(-1px);
	box-shadow: 0 6px 18px rgba(245,187,31,0.45);
}
.csv-subpage__cta--secondary {
	background: #f3f4f6;
	color: #1f2937;
	box-shadow: none;
}
.csv-subpage__cta--secondary:hover {
	background: #e5e7eb;
	box-shadow: none;
}
.csv-subpage__cta--danger {
	background: transparent;
	border: 1.5px solid #fca5a5;
	color: #b91c1c;
	box-shadow: none;
}
.csv-subpage__cta--danger:hover {
	background: #fee2e2;
	box-shadow: none;
}

/* Toggle switch iOS */
.csv-toggle-row {
	display: flex;
	align-items: center;
	gap: 14px;
	padding: 12px 0;
	border-bottom: 1px solid #f3f4f6;
}
.csv-toggle-row:last-child { border-bottom: none; }
.csv-toggle-row__info { flex: 1; min-width: 0; }
.csv-toggle-row__title {
	font-size: 14.5px;
	font-weight: 600;
	color: #1f2937;
	margin-bottom: 2px;
}
.csv-toggle-row__desc {
	font-size: 12.5px;
	color: #6b7280;
	line-height: 1.4;
}
.csv-toggle {
	position: relative;
	display: inline-block;
	width: 50px;
	height: 30px;
	flex-shrink: 0;
}
.csv-toggle input { opacity: 0; width: 0; height: 0; }
.csv-toggle__slider {
	position: absolute;
	cursor: pointer;
	inset: 0;
	background: #d1d5db;
	border-radius: 999px;
	transition: 0.25s;
}
.csv-toggle__slider::before {
	content: '';
	position: absolute;
	height: 24px; width: 24px;
	left: 3px; top: 3px;
	background: #fff;
	border-radius: 50%;
	transition: 0.25s cubic-bezier(0.32, 0.72, 0, 1);
	box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
.csv-toggle input:checked + .csv-toggle__slider {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
}
.csv-toggle input:checked + .csv-toggle__slider::before {
	transform: translateX(20px);
}

/* Passkey item */
.csv-passkey-item {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 12px;
	margin-bottom: 8px;
}
.csv-passkey-item__icon {
	width: 36px; height: 36px;
	background: #f3f4f6;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 18px;
	flex-shrink: 0;
}
.csv-passkey-item__body { flex: 1; min-width: 0; }
.csv-passkey-item__name { font-size: 14px; font-weight: 600; color: #1f2937; }
.csv-passkey-item__date { font-size: 11.5px; color: #6b7280; margin-top: 2px; }
.csv-passkey-item__remove {
	width: 28px; height: 28px;
	border: none;
	background: transparent;
	color: #ef4444;
	font-size: 22px;
	cursor: pointer;
	border-radius: 50%;
}
.csv-passkey-item__remove:hover { background: #fee2e2; }

/* Empty mini */
.csv-empty-mini {
	text-align: center;
	padding: 24px 14px;
	background: #fafafa;
	border-radius: 12px;
	margin-bottom: 12px;
}
.csv-empty-mini__icon { font-size: 28px; margin-bottom: 6px; }
.csv-empty-mini__text { font-size: 13px; color: #6b7280; }

/* Empty state grande */
.csv-empty-state {
	text-align: center;
	padding: 60px 24px;
}
.csv-empty-state__icon {
	font-size: 56px;
	margin-bottom: 12px;
}
.csv-empty-state__title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 18px;
	font-weight: 800;
	color: #1f2937;
	margin-bottom: 8px;
}
.csv-empty-state p {
	font-size: 13.5px;
	color: #6b7280;
	max-width: 320px;
	margin: 0 auto;
	line-height: 1.5;
}

/* Review card */
.csv-review-card {
	margin: 0 14px 12px;
	padding: 16px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
}
.csv-review-card__stars { font-size: 14px; margin-bottom: 6px; }
.csv-review-card__text { font-size: 14px; color: #1f2937; line-height: 1.5; margin-bottom: 8px; }
.csv-review-card__meta { font-size: 12px; color: #6b7280; }

/* === RESPONSIVE DESKTOP — App views centradas, sin sidebar dashboard === */
@media (min-width: 901px) {
	/* Las vistas app-pure en desktop: contenido centrado max 720px */
	.csv-dashboard--app .csv-dashboard__sidebar {
		display: none !important;
	}
	.csv-dashboard--app .csv-dashboard__layout {
		display: block !important;
		grid-template-columns: none !important;
	}
	.csv-dashboard--app .csv-dashboard__main {
		max-width: 720px !important;
		margin: 0 auto !important;
		padding: 32px 24px !important;
		background: transparent !important;
	}
	.csv-dashboard--app .csv-app-header {
		padding: 0 14px 14px !important;
	}
	.csv-dashboard--app .csv-app-header__title {
		font-size: 32px !important;
	}
	.csv-dashboard--app .csv-profile-page,
	.csv-dashboard--app .csv-trips-page,
	.csv-dashboard--app .csv-messages-page {
		max-width: 100% !important;
	}
	.csv-dashboard--app .csv-subpage {
		max-width: 100% !important;
	}

	/* Chat en desktop: contenido centrado con bordes */
	.csv-chat {
		max-width: 800px !important;
		left: 50% !important;
		transform: translateX(-50%);
		box-shadow: 0 20px 60px rgba(0,0,0,0.12) !important;
	}

	/* Bottom nav también visible en desktop para vistas app-pure */
	body.csv-app-pure .csv-bottom-nav {
		display: flex !important;
		position: fixed !important;
		left: 50% !important;
		transform: translateX(-50%) !important;
		max-width: 480px !important;
		bottom: 24px !important;
		border-radius: 999px !important;
		box-shadow: 0 8px 32px rgba(0,0,0,0.15) !important;
		border: 1px solid #e5e7eb !important;
		padding: 8px 12px !important;
	}
	body.csv-app-pure .csv-bottom-nav__item {
		padding: 6px 8px !important;
	}
}

/* ============================================================
   v0.14.83 — Cases inmuebles/estadísticas/facturación/cuenta app-pure
   ============================================================ */

/* CTA pequeño en el header de la sub-página (ej. "+ Publicar") */
.csv-subpage__head-cta {
	margin-left: auto;
	padding: 7px 14px;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
	border-radius: 999px;
	font-size: 12.5px;
	font-weight: 800;
	text-decoration: none;
	white-space: nowrap;
	box-shadow: 0 2px 8px rgba(245,187,31,0.3);
}

/* === Grid de stats === */
.csv-stat-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	padding: 10px 14px 20px;
}
.csv-stat-cell {
	background: #fff;
	border: 1px solid #f3f4f6;
	border-radius: 14px;
	padding: 14px 16px;
	display: flex;
	flex-direction: column;
	gap: 4px;
}
.csv-stat-cell strong {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 22px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.02em;
	line-height: 1;
}
.csv-stat-cell span {
	font-size: 11.5px;
	color: #6b7280;
	font-weight: 500;
}
.csv-stat-cell--accent {
	background: linear-gradient(135deg, #fef9e7 0%, #fffbf0 100%);
	border-color: #fde68a;
}
.csv-stat-cell--accent strong { color: #92400e; }

@media (min-width: 700px) {
	.csv-stat-grid { grid-template-columns: repeat(3, 1fr); }
}

/* === Listing card (Mis inmuebles) === */
.csv-listing-list {
	padding: 8px 14px 20px;
	display: flex;
	flex-direction: column;
	gap: 14px;
}
.csv-listing-card {
	background: #fff;
	border: 1px solid #f3f4f6;
	border-radius: 16px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.csv-listing-card__img {
	width: 100%;
	aspect-ratio: 16/9;
	background-size: cover;
	background-position: center;
	background-color: #e5e7eb;
	position: relative;
}
.csv-listing-card__badge {
	position: absolute;
	top: 10px; left: 10px;
	padding: 4px 10px;
	border-radius: 999px;
	font-size: 10.5px;
	font-weight: 800;
	letter-spacing: -0.005em;
	box-shadow: 0 2px 6px rgba(0,0,0,0.12);
}
.csv-listing-card__badge--active {
	background: rgba(255,255,255,0.92);
	color: #065f46;
	backdrop-filter: blur(8px);
}
.csv-listing-card__badge--promo {
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
}
.csv-listing-card__badge--draft {
	background: rgba(0,0,0,0.7);
	color: #fff;
	backdrop-filter: blur(8px);
}
.csv-listing-card__body { padding: 14px 16px 12px; }
.csv-listing-card__title {
	font-size: 15px;
	font-weight: 700;
	color: #1f2937;
	letter-spacing: -0.01em;
	margin-bottom: 3px;
}
.csv-listing-card__meta {
	font-size: 12px;
	color: #6b7280;
	margin-bottom: 6px;
}
.csv-listing-card__price {
	font-size: 16px;
	font-weight: 800;
	color: #1f2937;
	margin-bottom: 8px;
}
.csv-listing-card__stats {
	display: flex;
	gap: 12px;
	padding-top: 8px;
	border-top: 1px solid #f3f4f6;
	font-size: 12px;
	color: #4b5563;
	font-weight: 500;
}
.csv-listing-card__actions {
	display: flex;
	gap: 4px;
	padding: 0 12px 12px;
}
.csv-listing-card__action {
	flex: 1;
	height: 36px;
	border-radius: 10px;
	background: #f3f4f6;
	color: #1f2937;
	border: none;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	text-decoration: none;
	transition: background 0.15s;
}
.csv-listing-card__action:hover { background: #e5e7eb; }
.csv-listing-card__action--danger { color: #ef4444; }
.csv-listing-card__action--danger:hover { background: #fee2e2; }

/* === Stats por inmueble (performance list) === */
.csv-perf-list {
	display: flex;
	flex-direction: column;
	gap: 10px;
}
.csv-perf-row {
	display: flex;
	gap: 12px;
	align-items: center;
	padding: 10px 0;
	border-bottom: 1px solid #f3f4f6;
}
.csv-perf-row:last-child { border-bottom: none; }
.csv-perf-row__img {
	width: 52px; height: 52px;
	border-radius: 10px;
	background-size: cover;
	background-position: center;
	background-color: #e5e7eb;
	flex-shrink: 0;
}
.csv-perf-row__body { flex: 1; min-width: 0; }
.csv-perf-row__title {
	font-size: 13.5px;
	font-weight: 600;
	color: #1f2937;
	margin-bottom: 4px;
	white-space: nowrap;
	overflow: hidden;
	text-overflow: ellipsis;
}
.csv-perf-row__stats {
	display: flex;
	gap: 12px;
	font-size: 11.5px;
	color: #6b7280;
	font-weight: 500;
}

/* === Plan card (facturación) === */
.csv-plan-card {
	background: linear-gradient(135deg, #fef9e7 0%, #fffbf0 100%);
	border: 1px solid #fde68a;
	border-radius: 16px;
	padding: 18px;
}
.csv-plan-card__head {
	display: flex;
	align-items: center;
	gap: 10px;
	margin-bottom: 6px;
}
.csv-plan-card__name {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 20px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.015em;
}
.csv-plan-card__badge {
	padding: 3px 10px;
	background: #065f46;
	color: #fff;
	border-radius: 999px;
	font-size: 10.5px;
	font-weight: 700;
}
.csv-plan-card__desc {
	font-size: 13px;
	color: #4b5563;
	line-height: 1.45;
	margin-bottom: 10px;
}
.csv-plan-card__renewal {
	font-size: 12.5px;
	color: #6b7280;
	margin-bottom: 14px;
	padding-top: 10px;
	border-top: 1px solid rgba(252, 211, 77, 0.5);
}
.csv-plan-card__actions {
	display: flex;
	flex-direction: column;
	gap: 8px;
}

/* === Payment method === */
.csv-payment-method {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid #e5e7eb;
	border-radius: 14px;
}
.csv-payment-method__icon {
	width: 40px; height: 40px;
	background: #f3f4f6;
	border-radius: 10px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 22px;
	flex-shrink: 0;
}
.csv-payment-method__body { flex: 1; min-width: 0; }
.csv-payment-method__type {
	font-size: 14px;
	font-weight: 700;
	color: #1f2937;
}
.csv-payment-method__exp {
	font-size: 12px;
	color: #6b7280;
	margin-top: 2px;
}
.csv-payment-method__action {
	padding: 7px 14px;
	background: transparent;
	border: 1.5px solid #e5e7eb;
	border-radius: 999px;
	font-size: 12px;
	font-weight: 600;
	color: #1f2937;
	cursor: pointer;
}
.csv-payment-method__action:hover { border-color: #1f2937; }

/* === Invoice row === */
.csv-invoice-row {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid #f3f4f6;
	border-radius: 12px;
	margin-bottom: 8px;
}
.csv-invoice-row__body { flex: 1; min-width: 0; }
.csv-invoice-row__title {
	font-size: 13.5px;
	font-weight: 600;
	color: #1f2937;
}
.csv-invoice-row__date {
	font-size: 11.5px;
	color: #6b7280;
	margin-top: 2px;
}
.csv-invoice-row__amount {
	font-size: 14px;
	font-weight: 700;
	color: #1f2937;
	white-space: nowrap;
}
.csv-invoice-row__download {
	width: 32px; height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border-radius: 8px;
	background: #f3f4f6;
	color: #1f2937;
}
.csv-invoice-row__download:hover { background: #e5e7eb; }

/* === Desktop responsive para sub-páginas === */
@media (min-width: 901px) {
	html body .csv-dashboard--app .csv-subpage,
	.csv-dashboard--app .csv-subpage {
		max-width: 720px !important;
		margin: 0 auto !important;
	}
	.csv-subpage__head {
		padding: 18px 0 18px !important;
	}
	.csv-subpage__title { font-size: 28px !important; }
	.csv-stat-grid { grid-template-columns: repeat(3, 1fr); }
	.csv-listing-card {
		display: grid;
		grid-template-columns: 200px 1fr auto;
		align-items: center;
	}
	.csv-listing-card__img { aspect-ratio: 1; height: 100%; }
	.csv-listing-card__actions {
		flex-direction: column;
		padding: 16px;
		gap: 6px;
	}
	.csv-listing-card__action {
		flex: 0;
		min-width: 40px;
		width: 40px;
	}
}

/* ============================================================
   v0.14.85 — Multitud fixes UX
   ============================================================ */

/* Botones de forms con !important para ganar al theme */
html body .csv-subpage button.csv-subpage__cta,
html body button.csv-subpage__cta,
button.csv-subpage__cta {
	display: inline-flex !important;
	align-items: center !important;
	justify-content: center !important;
	padding: 14px 28px !important;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%) !important;
	color: #1f2937 !important;
	border: none !important;
	border-radius: 999px !important;
	font-family: 'DM Sans', 'Inter', sans-serif !important;
	font-size: 15px !important;
	font-weight: 800 !important;
	cursor: pointer !important;
	box-shadow: 0 4px 14px rgba(245,187,31,0.35) !important;
	transition: transform 0.15s, box-shadow 0.15s !important;
	text-decoration: none !important;
	margin-top: 8px !important;
	width: 100% !important;
	box-sizing: border-box !important;
	letter-spacing: -0.01em !important;
	min-height: 50px !important;
	line-height: 1 !important;
	-webkit-appearance: none !important;
	appearance: none !important;
}
html body button.csv-subpage__cta:hover {
	transform: translateY(-1px) !important;
	box-shadow: 0 6px 18px rgba(245,187,31,0.45) !important;
}
html body button.csv-subpage__cta--secondary,
button.csv-subpage__cta--secondary {
	background: #f3f4f6 !important;
	color: #1f2937 !important;
	box-shadow: none !important;
}
html body button.csv-subpage__cta--danger,
button.csv-subpage__cta--danger {
	background: transparent !important;
	border: 1.5px solid #fca5a5 !important;
	color: #b91c1c !important;
	box-shadow: none !important;
}

/* ============================================================
   v0.14.85 — CSS sub-páginas, sheet detalles, perfil v2, avatar
   ============================================================ */

/* === Avatar uploader === */
.csv-subpage__avatar-section {
	display: flex;
	flex-direction: column;
	align-items: center;
	padding: 18px 14px 10px;
	gap: 10px;
}
.csv-subpage__avatar-wrap {
	position: relative;
	width: 100px;
	height: 100px;
}
.csv-subpage__avatar {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: #1f2937;
	background-size: cover;
	background-position: center;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 36px;
	font-weight: 800;
	font-family: 'DM Sans', 'Inter', sans-serif;
	border: 3px solid #fff;
	box-shadow: 0 4px 16px rgba(0,0,0,0.12);
}
.csv-subpage__avatar-edit {
	position: absolute;
	right: -2px;
	bottom: -2px;
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: linear-gradient(135deg, #F5BB1F 0%, #FFD466 100%);
	color: #1f2937;
	border: 3px solid #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	cursor: pointer;
	box-shadow: 0 2px 8px rgba(0,0,0,0.15);
}
.csv-subpage__avatar-link {
	background: none;
	border: none;
	color: #1f2937;
	font-size: 13.5px;
	font-weight: 700;
	text-decoration: underline;
	cursor: pointer;
	padding: 4px;
}

/* === Perfil v2 estilo Airbnb === */
.csv-profile-page-v2 {
	padding: 0 0 100px;
	background: #fff;
}
.csv-profile-hero {
	margin: 6px 14px 16px;
	background: #fff;
	border: 1px solid #f3f4f6;
	border-radius: 18px;
	padding: 22px 20px;
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 16px;
	align-items: center;
	box-shadow: 0 2px 12px rgba(0,0,0,0.04);
}
.csv-profile-hero__left {
	display: flex;
	flex-direction: column;
	align-items: center;
	position: relative;
}
.csv-profile-hero__avatar {
	width: 100px;
	height: 100px;
	border-radius: 50%;
	background: #1f2937;
	background-size: cover;
	background-position: center;
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 40px;
	font-weight: 800;
	font-family: 'DM Sans', 'Inter', sans-serif;
	border: 3px solid #fff;
	box-shadow: 0 4px 16px rgba(0,0,0,0.1);
	margin-bottom: 10px;
}
.csv-profile-hero__shield {
	position: absolute;
	top: 70px;
	left: 50%;
	transform: translateX(28px);
	width: 30px;
	height: 30px;
	border-radius: 50%;
	background: linear-gradient(135deg, #e11d48 0%, #f43f5e 100%);
	color: #fff;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	border: 3px solid #fff;
	box-shadow: 0 2px 6px rgba(0,0,0,0.15);
}
.csv-profile-hero__name {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 22px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.02em;
	line-height: 1.1;
	margin-bottom: 2px;
	text-align: center;
}
.csv-profile-hero__location {
	font-size: 12.5px;
	color: #6b7280;
	text-align: center;
}
.csv-profile-hero__stats {
	display: flex;
	flex-direction: column;
}
.csv-profile-hero__stat {
	padding: 10px 0;
	border-bottom: 1px solid #f3f4f6;
}
.csv-profile-hero__stat:last-child { border-bottom: none; }
.csv-profile-hero__stat strong {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 22px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.02em;
	display: block;
	line-height: 1;
}
.csv-profile-hero__stat span {
	font-size: 12px;
	color: #6b7280;
	display: block;
	margin-top: 3px;
}

/* Grid tiles "Viajes anteriores" + "Contactos" */
.csv-profile-tiles {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 12px;
	padding: 0 14px 16px;
}
.csv-profile-tile {
	background: #fff;
	border: 1px solid #f3f4f6;
	border-radius: 16px;
	padding: 16px;
	text-decoration: none;
	color: inherit;
	display: flex;
	flex-direction: column;
	gap: 10px;
	transition: transform 0.18s cubic-bezier(0.32, 0.72, 0, 1);
}
.csv-profile-tile:hover { transform: translateY(-2px); }
.csv-profile-tile__img {
	width: 100%;
	aspect-ratio: 1.4;
	border-radius: 10px;
	background-size: cover;
	background-position: center;
	background-color: #fafafa;
}
.csv-profile-tile__img--trips {
	background-image: linear-gradient(135deg, #fef9e7 0%, #fffbf0 100%);
	background-size: cover;
	position: relative;
}
.csv-profile-tile__img--trips::after {
	content: '🧳';
	position: absolute;
	font-size: 48px;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
}
.csv-profile-tile__img--contacts {
	background-image: linear-gradient(135deg, #dbeafe 0%, #ede9fe 100%);
	position: relative;
}
.csv-profile-tile__img--contacts::after {
	content: '👥';
	position: absolute;
	font-size: 48px;
	top: 50%; left: 50%;
	transform: translate(-50%, -50%);
}
.csv-profile-tile__title {
	font-size: 15px;
	font-weight: 700;
	color: #1f2937;
	letter-spacing: -0.01em;
}

/* Promo "Hazte anfitrión" */
.csv-profile-promo {
	margin: 0 14px 18px;
	padding: 18px 16px;
	background: #fff;
	border: 1px solid #f3f4f6;
	border-radius: 16px;
	display: flex;
	align-items: center;
	gap: 14px;
	text-decoration: none;
	color: inherit;
}
.csv-profile-promo:hover { background: #fafafa; }
.csv-profile-promo__icon {
	width: 48px; height: 48px;
	background: linear-gradient(135deg, #fef9e7 0%, #fffbf0 100%);
	border-radius: 12px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	font-size: 26px;
	flex-shrink: 0;
}
.csv-profile-promo__body { flex: 1; min-width: 0; }
.csv-profile-promo__title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 16px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.015em;
	margin-bottom: 2px;
}
.csv-profile-promo__desc {
	font-size: 12.5px;
	color: #6b7280;
	line-height: 1.4;
}
.csv-profile-promo__arrow { color: #9ca3af; flex-shrink: 0; }

/* === Sheet de Detalles del Chat === */
.csv-chat-details {
	position: fixed;
	inset: 0;
	z-index: 10000;
}
.csv-chat-details[hidden] { display: none !important; }
.csv-chat-details__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0,0,0,0.5);
	animation: csv-chat-details-fade 0.22s ease-out;
}
.csv-chat-details__sheet {
	position: absolute;
	bottom: 0;
	left: 0;
	right: 0;
	max-height: 90vh;
	background: #fff;
	border-radius: 24px 24px 0 0;
	overflow-y: auto;
	padding: 16px 0 calc(24px + env(safe-area-inset-bottom, 0px));
	animation: csv-chat-details-slide 0.28s cubic-bezier(0.32, 0.72, 0, 1);
}
@keyframes csv-chat-details-fade {
	from { opacity: 0; } to { opacity: 1; }
}
@keyframes csv-chat-details-slide {
	from { transform: translateY(100%); } to { transform: translateY(0); }
}
.csv-chat-details__close {
	position: absolute;
	top: 14px;
	right: 14px;
	width: 32px; height: 32px;
	border-radius: 50%;
	background: transparent;
	border: none;
	color: #1f2937;
	cursor: pointer;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	z-index: 2;
}
.csv-chat-details__close:hover { background: #f3f4f6; }
.csv-chat-details__section {
	padding: 14px 20px 18px;
	border-bottom: 8px solid #fafafa;
}
.csv-chat-details__section:last-child { border-bottom: none; }
.csv-chat-details__section-title {
	font-family: 'DM Sans', 'Inter', sans-serif;
	font-size: 17px;
	font-weight: 800;
	color: #1f2937;
	letter-spacing: -0.015em;
	margin-bottom: 12px;
}
.csv-chat-details__listing {
	display: flex;
	gap: 14px;
	background: #fff;
	border: 1px solid #f3f4f6;
	border-radius: 14px;
	padding: 12px;
	text-decoration: none;
	color: inherit;
}
.csv-chat-details__listing-img {
	width: 80px; height: 80px;
	border-radius: 10px;
	background-size: cover;
	background-position: center;
	background-color: #e5e7eb;
	flex-shrink: 0;
}
.csv-chat-details__listing-body { flex: 1; min-width: 0; }
.csv-chat-details__listing-title {
	font-size: 15px;
	font-weight: 700;
	color: #1f2937;
	letter-spacing: -0.01em;
	margin-bottom: 3px;
}
.csv-chat-details__listing-meta {
	font-size: 12.5px;
	color: #6b7280;
	margin-bottom: 6px;
}
.csv-chat-details__listing-link {
	font-size: 12.5px;
	font-weight: 700;
	color: #1f2937;
	display: inline-flex;
	align-items: center;
	gap: 3px;
	text-decoration: underline;
}
.csv-chat-details__person {
	display: flex;
	align-items: center;
	gap: 12px;
	padding: 10px 0;
}
.csv-chat-details__person-avatar {
	width: 42px; height: 42px;
	border-radius: 50%;
	background: #1f2937;
	background-size: cover;
	background-position: center;
	flex-shrink: 0;
}
.csv-chat-details__person-body { flex: 1; min-width: 0; }
.csv-chat-details__person-name {
	font-size: 15px;
	font-weight: 700;
	color: #1f2937;
}
.csv-chat-details__person-role {
	font-size: 12px;
	color: #6b7280;
	margin-top: 1px;
}
.csv-chat-details__action {
	display: flex;
	align-items: center;
	gap: 14px;
	width: 100%;
	padding: 12px 0;
	background: transparent;
	border: none;
	cursor: pointer;
	font-family: inherit;
	font-size: 15px;
	color: #1f2937;
	text-align: left;
	text-decoration: none;
}
.csv-chat-details__action:hover { background: #fafafa; padding-left: 4px; padding-right: 4px; margin: 0 -4px; border-radius: 8px; }
.csv-chat-details__action-icon {
	width: 32px; height: 32px;
	display: inline-flex;
	align-items: center;
	justify-content: center;
	color: #1f2937;
	flex-shrink: 0;
}
.csv-chat-details__action.is-active .csv-chat-details__action-icon { color: #F5BB1F; }
.csv-chat-details__action-label {
	font-weight: 500;
}

/* Body lock cuando sheet abierto */
body.csv-chat-details-open { overflow: hidden !important; }

/* === Skeleton home === */
body.csv-home-loading .csv-hero-ab,
body.csv-home-loading .csv-home-banner,
body.csv-home-loading .csv-listings-rail {
	opacity: 0;
}

/* === Cuando el search overlay se abre desde home, usar la animación bottom-up === */
.csv-search-sheet.csv-search-sheet--from-home {
	animation: csv-sheet-up 0.32s cubic-bezier(0.32, 0.72, 0, 1) !important;
}
@keyframes csv-sheet-up {
	from { transform: translateY(100%); opacity: 0; }
	to { transform: translateY(0); opacity: 1; }
}

/* === Desktop responsive perfil v2 === */
@media (min-width: 901px) {
	html body .csv-dashboard--app .csv-profile-page-v2,
	.csv-dashboard--app .csv-profile-page-v2 {
		max-width: 720px !important;
		margin: 0 auto !important;
	}
	.csv-profile-hero {
		padding: 30px 28px;
	}
	.csv-profile-hero__name { font-size: 28px !important; }
	.csv-profile-tiles { grid-template-columns: 1fr 1fr !important; }
	.csv-profile-tile__img { aspect-ratio: 1.6; }
}
