/* =========================================================================
   Kasava 2026 — main.css
   Tokens por dirección visual: html[data-dir="a"] (clara) / html[data-dir="b"] (oscura)
   ========================================================================= */

:root, html[data-dir="a"] {
  --bg: #F4EFE6;
  --surface: #FFFFFF;
  --surface-2: #EDE6DA;
  --ink: #16181C;
  --ink-2: #3A3934;
  --muted: #5E574D;
  --line: rgba(22, 24, 28, .12);
  --line-strong: rgba(22, 24, 28, .25);
  --accent: #1F3C88;
  --accent-hover: #16181C;
  --accent-ink: #FFFFFF;
  --accent-soft: #E8EEFF;
  --success: #1F7A4C;
  --dark: #16181C;
  --on-dark: #F4EFE6;
  --on-dark-muted: #B9B1A5;
  --font-display: 'Instrument Serif', Georgia, 'Times New Roman', serif;
  --font-body: 'Manrope', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --display-weight: 400;
  --display-tracking: -0.012em;
  --radius: 22px;
  --radius-sm: 14px;
  --btn-radius: 999px;
  --shadow: 0 1px 0 rgba(22,24,28,.05), 0 24px 60px -32px rgba(22,24,28,.28);
  --shadow-lg: 0 30px 80px -30px rgba(22,24,28,.4);
  --hero-shade: linear-gradient(180deg, rgba(22,24,28,.28) 0%, rgba(22,24,28,.42) 40%, rgba(22,24,28,.9) 100%);
}
html[data-dir="b"] {
  --bg: #0C0D10;
  --surface: #15171C;
  --surface-2: #1C1F26;
  --ink: #F3F1EC;
  --ink-2: #D8D5CD;
  --muted: #9C998F;
  --line: rgba(255, 255, 255, .10);
  --line-strong: rgba(255, 255, 255, .22);
  --accent: #F5B544;
  --accent-hover: #FFFFFF;
  --accent-ink: #0C0D10;
  --accent-soft: rgba(245, 181, 68, .14);
  --success: #9AE6B4;
  --dark: #15171C;
  --on-dark: #F3F1EC;
  --on-dark-muted: #9C998F;
  --font-display: 'Sora', system-ui, sans-serif;
  --font-body: 'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --display-weight: 700;
  --display-tracking: -0.028em;
  --radius: 18px;
  --radius-sm: 12px;
  --btn-radius: 12px;
  --shadow: 0 0 0 1px rgba(255,255,255,.06);
  --shadow-lg: 0 0 0 1px rgba(255,255,255,.08), 0 30px 80px -30px rgba(0,0,0,.8);
  --hero-shade: linear-gradient(90deg, rgba(12,13,16,.96) 0%, rgba(12,13,16,.72) 45%, rgba(12,13,16,.25) 100%);
}

/* ---------- Base ---------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; }
body.kasava {
  margin: 0; background: var(--bg); color: var(--ink);
  font-family: var(--font-body); font-size: 16px; line-height: 1.55;
  -webkit-font-smoothing: antialiased; -moz-osx-font-smoothing: grayscale;
}
body.kasava a { color: var(--accent); text-decoration: none; }
body.kasava a:hover { color: var(--accent-hover); }
body.kasava img { max-width: 100%; height: auto; display: block; }
body.kasava button, body.kasava input, body.kasava select, body.kasava textarea { font: inherit; color: inherit; }
body.kasava h1, body.kasava h2, body.kasava h3 { font-family: var(--font-display); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1.05; margin: 0; color: var(--ink); }
body.kasava h4, body.kasava h5 { font-family: var(--font-body); font-weight: 700; margin: 0; color: var(--ink); }
body.kasava p { margin: 0; }
.k-skip { position: absolute; left: -9999px; top: 0; background: var(--accent); color: var(--accent-ink); padding: 10px 14px; z-index: 1000; }
.k-skip:focus { left: 12px; top: 12px; }

.k-wrap { width: 100%; max-width: 1240px; margin: 0 auto; padding: 0 20px; }
@media (min-width: 720px) { .k-wrap { padding: 0 32px; } }
.k-section { padding: 72px 0; }
.k-section--tight { padding: 40px 0; }
.k-center { display: flex; justify-content: center; flex-direction: column; align-items: center; gap: 16px; text-align: center; }
.k-hide-mobile { display: none !important; }
@media (min-width: 900px) { .k-hide-mobile { display: inline-flex !important; } }

.k-eyebrow { display: inline-block; font-size: 12px; letter-spacing: .18em; text-transform: uppercase; font-weight: 700; color: var(--muted); }
.k-eyebrow--light { color: var(--on-dark-muted); }
html[data-dir="b"] .k-eyebrow { color: var(--accent); }
.k-h1 { font-size: clamp(36px, 5.2vw, 64px); }
.k-h2 { font-size: clamp(32px, 4.2vw, 52px); }
.k-h3 { font-size: clamp(22px, 2.4vw, 28px); margin-bottom: 18px; }
.k-h2 em, .k-hero__title em { font-style: italic; }
html[data-dir="b"] .k-h2 em, html[data-dir="b"] .k-hero__title em { font-style: normal; color: var(--accent); }
.k-lead { font-size: 17px; line-height: 1.6; color: var(--muted); max-width: 60ch; }

.k-ki, .ki { width: 1.1em; height: 1.1em; flex: 0 0 auto; vertical-align: -0.18em; }
.k-flip { transform: scaleX(-1); }

/* ---------- Botones ---------- */
.k-btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; height: 52px; padding: 0 26px; border-radius: var(--btn-radius); font-family: var(--font-body); font-weight: 700; font-size: 15px; border: 1.5px solid transparent; cursor: pointer; transition: background .2s, color .2s, border-color .2s, transform .15s; white-space: nowrap; }
.k-btn:active { transform: translateY(1px); }
.k-btn--sm { height: 44px; padding: 0 18px; font-size: 14px; }
.k-btn--lg { height: 58px; padding: 0 32px; font-size: 16px; }
.k-btn--block { width: 100%; }
.k-btn--primary { background: var(--accent); color: var(--accent-ink) !important; }
.k-btn--primary:hover { background: var(--accent-hover); color: var(--on-dark) !important; }
html[data-dir="b"] .k-btn--primary:hover { color: #0C0D10 !important; }
.k-btn--dark { background: var(--ink); color: var(--bg) !important; }
.k-btn--dark:hover { background: var(--accent); color: var(--accent-ink) !important; }
.k-btn--light { background: var(--on-dark); color: var(--dark) !important; }
.k-btn--light:hover { background: var(--accent); color: var(--accent-ink) !important; }
.k-btn--ghost { background: transparent; color: var(--ink) !important; border-color: var(--line-strong); }
.k-btn--ghost:hover { border-color: var(--ink); }
html[data-dir="b"] .k-btn--ghost { background: rgba(255,255,255,.06); }

.k-link { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--accent); }
.k-link .ki { transition: transform .2s; }
.k-link:hover .ki { transform: translateX(4px); }

.k-card { background: var(--surface); border-radius: var(--radius); box-shadow: var(--shadow); }
.k-tag { display: inline-flex; align-items: center; height: 26px; padding: 0 10px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-size: 12px; font-weight: 700; white-space: nowrap; }
html[data-dir="b"] .k-tag { border-radius: 8px; }
.k-chips { display: flex; gap: 10px; flex-wrap: wrap; }
.k-chip { display: inline-flex; align-items: center; gap: 8px; height: 38px; padding: 0 16px; border-radius: 999px; border: 1.5px solid var(--line-strong); font-size: 14px; font-weight: 600; color: var(--ink) !important; background: var(--surface); transition: all .2s; }
.k-chip:hover { border-color: var(--ink); }
.k-chip.is-active { background: var(--ink); color: var(--bg) !important; border-color: var(--ink); }
html[data-dir="b"] .k-chip { background: rgba(255,255,255,.04); }
html[data-dir="b"] .k-chip.is-active { background: var(--accent); color: var(--accent-ink) !important; border-color: var(--accent); }

/* ---------- Barra superior + Header ---------- */
.k-topbar { background: var(--dark); color: var(--on-dark); font-size: 13px; font-weight: 600; }
.k-topbar__in { display: flex; justify-content: space-between; align-items: center; gap: 16px; min-height: 40px; padding-top: 6px; padding-bottom: 6px; }
.k-topbar__msg { line-height: 1.3; }
.k-topbar__wa { display: none; align-items: center; gap: 8px; color: var(--on-dark-muted) !important; white-space: nowrap; }
.k-topbar__wa:hover { color: var(--on-dark) !important; }
@media (min-width: 900px) { .k-topbar__wa { display: inline-flex; } }
html[data-dir="b"] .k-topbar { border-bottom: 1px solid var(--line); }

.k-header { position: sticky; top: 0; z-index: 90; background: color-mix(in srgb, var(--bg) 88%, transparent); backdrop-filter: blur(14px); -webkit-backdrop-filter: blur(14px); border-bottom: 1px solid transparent; transition: border-color .2s, box-shadow .2s; }
.k-header.is-stuck { border-bottom-color: var(--line); box-shadow: 0 10px 30px -24px rgba(0,0,0,.4); }
.k-header__in { display: flex; align-items: center; justify-content: space-between; gap: 20px; height: 72px; }
@media (min-width: 900px) { .k-header__in { height: 84px; } }
.k-logo { display: inline-flex; align-items: baseline; gap: 6px; color: var(--ink) !important; }
.k-logo__word { font-family: var(--font-display); font-size: 32px; font-weight: var(--display-weight); letter-spacing: var(--display-tracking); line-height: 1; }
html[data-dir="b"] .k-logo__word { font-size: 24px; text-transform: uppercase; letter-spacing: .02em; }
.k-logo__dot { width: 10px; height: 10px; background: var(--accent); border-radius: 2px; display: inline-block; }
html[data-dir="b"] .k-logo__dot { transform: rotate(45deg); width: 11px; height: 11px; border-radius: 3px; }
.k-logo__img { max-height: 44px; width: auto; }

.k-nav { display: none; }
.k-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 28px; align-items: center; }
.k-menu a { color: var(--ink) !important; font-weight: 600; font-size: 15px; }
.k-menu a:hover { color: var(--accent) !important; }
.k-menu .current-menu-item > a { color: var(--accent) !important; }
.k-nav__mobile-actions { display: none; }
.k-header__actions { display: flex; align-items: center; gap: 10px; }
.k-lang { display: none; font-size: 13px; font-weight: 700; }
.k-lang--desktop { display: none; }
@media (min-width: 900px) {
  .k-nav { display: block; }
  .k-lang--desktop { display: block; }
  .k-burger { display: none !important; }
}
.k-burger { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; border: 1.5px solid var(--line-strong); background: transparent; cursor: pointer; color: var(--ink); }
.k-burger .ki { width: 22px; height: 22px; }
.k-burger__close { display: none; }
body.k-nav-open .k-burger__open { display: none; }
body.k-nav-open .k-burger__close { display: block; }
@media (max-width: 899px) {
  body.k-nav-open .k-nav { display: flex; flex-direction: column; gap: 24px; position: fixed; inset: 0; top: 0; padding: 100px 24px 32px; background: var(--bg); z-index: 80; overflow: auto; }
  body.k-nav-open { overflow: hidden; }
  body.k-nav-open .k-menu { flex-direction: column; align-items: flex-start; gap: 6px; }
  body.k-nav-open .k-menu a { font-family: var(--font-display); font-size: 36px; font-weight: var(--display-weight); letter-spacing: var(--display-tracking); display: block; padding: 8px 0; }
  body.k-nav-open .k-nav__mobile-actions { display: flex; flex-direction: column; gap: 14px; margin-top: auto; }
  body.k-nav-open .k-lang--mobile { display: block; }
  body.k-nav-open .k-header { background: var(--bg); }
}
/* TranslatePress switcher compacto */
.k-lang .trp-language-switcher { position: relative; }
.k-lang .trp-language-switcher > div { background: transparent !important; border: 1.5px solid var(--line-strong) !important; border-radius: 999px !important; padding: 8px 12px !important; color: var(--ink) !important; font-size: 13px; font-weight: 700; }
.k-lang .trp-language-switcher a { color: var(--ink) !important; }
.k-lang .trp-ls-shortcode-current-language, .k-lang .trp-ls-shortcode-language { background: var(--surface) !important; color: var(--ink) !important; }
.k-lang .trp-flag-image { display: none !important; }
.k-langsw { display: inline-flex; align-items: center; border: 1.5px solid var(--line-strong); border-radius: 999px; padding: 3px; gap: 2px; }
.k-langsw__item { font-size: 12px; font-weight: 800; letter-spacing: .06em; padding: 6px 10px; border-radius: 999px; color: var(--muted) !important; text-decoration: none !important; line-height: 1; }
.k-langsw__item.is-current { background: var(--ink); color: var(--bg) !important; }
.k-langsw__item:not(.is-current):hover { color: var(--ink) !important; }
body.k-nav-open .k-lang--mobile .k-langsw { border-color: var(--line-strong); }

/* ---------- Restos de plugins que no van con el tema ---------- */
body.kasava { padding-top: 0 !important; }
#kasava-renta-banner, .qlwapp, .qlwapp-container, .trp-floating-switcher, #trp-floater-ls { display: none !important; }

/* ---------- Hero ---------- */
.k-hero { position: relative; overflow: visible; background: var(--dark); color: var(--on-dark); }
.k-hero__media { position: absolute; inset: 0; overflow: hidden; }
.k-hero__img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0; transform: scale(1.04); transition: opacity 1.4s ease, transform 8s linear; }
.k-hero__img.is-active { opacity: 1; transform: scale(1); }
html[data-dir="b"] .k-hero__img.is-active { opacity: .55; }
.k-hero__shade { position: absolute; inset: 0; background: var(--hero-shade); }
.k-hero__in { position: relative; display: flex; flex-direction: column; gap: 28px; padding-top: 72px; padding-bottom: 36px; min-height: 640px; justify-content: flex-end; }
@media (min-width: 900px) { .k-hero__in { min-height: 720px; padding-top: 96px; padding-bottom: 48px; } }
.k-hero__copy { display: flex; flex-direction: column; gap: 18px; max-width: 780px; }
body.kasava .k-hero__title, .k-hero__title { font-size: clamp(40px, 6.4vw, 80px); line-height: .98; color: var(--on-dark); text-shadow: 0 2px 24px rgba(0,0,0,.45), 0 1px 2px rgba(0,0,0,.35); }
.k-hero__lead { font-size: clamp(16px, 1.4vw, 19px); line-height: 1.5; color: var(--on-dark-muted); max-width: 580px; text-shadow: 0 1px 12px rgba(0,0,0,.5); }
html[data-dir="a"] .k-hero__lead { color: #E6DFD3; }
.k-hero__trust { list-style: none; margin: 0; padding: 0; display: flex; gap: 20px 28px; flex-wrap: wrap; font-size: 14px; color: var(--on-dark-muted); text-shadow: 0 1px 10px rgba(0,0,0,.5); }
.k-hero__trust li { display: inline-flex; align-items: center; gap: 8px; }
.k-hero__trust .ki { color: var(--accent); }
html[data-dir="a"] .k-hero__trust .ki { color: #F4EFE6; }
.k-hero__trust strong { color: var(--on-dark); }

/* Buscador del hero (envuelve el formulario del plugin) */
.k-hero__search { position: relative; z-index: 20; background: var(--surface); color: var(--ink); border-radius: var(--radius); padding: 18px 20px 20px; box-shadow: var(--shadow-lg); }
@media (min-width: 900px) { .k-hero__search { padding: 22px 26px 26px; } }
html[data-dir="b"] .k-hero__search { background: rgba(21,23,28,.86); backdrop-filter: blur(14px); border: 1px solid var(--line); }
.k-hero__search-head { display: flex; justify-content: space-between; align-items: baseline; gap: 12px; flex-wrap: wrap; margin-bottom: 12px; }
.k-hero__search-head strong { font-family: var(--font-display); font-size: 22px; font-weight: var(--display-weight); letter-spacing: var(--display-tracking); }
.k-hero__search-head span { font-size: 13px; color: var(--success); font-weight: 700; display: inline-flex; align-items: center; gap: 8px; }
.k-hero__search-head span::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 4px color-mix(in srgb, var(--success) 25%, transparent); }

/* ---------- Skin del buscador de Hostify ---------- */
body.kasava .hfy-wrap { font-family: var(--font-body) !important; color: var(--ink); }
body.kasava .hfy-search-form-wrap { background: transparent !important; padding: 0 !important; box-shadow: none !important; }
body.kasava .hfy-search-form-row { display: grid !important; grid-template-columns: 1fr; gap: 10px; align-items: end; }
@media (min-width: 720px) { body.kasava .hfy-search-form-row { grid-template-columns: 1fr 1fr; } }
@media (min-width: 1000px) { body.kasava .hfy-search-form-row { grid-template-columns: 1.1fr 1.1fr 1fr 1fr auto; } }
body.kasava .hfy-search-form-row ._col { width: auto !important; max-width: none !important; flex: none !important; padding: 0 !important; margin: 0 !important; float: none !important; }
body.kasava .hfy-search-form-row .form-group { margin: 0 !important; }
body.kasava .hfy-search-form-row .input-group { position: relative; display: block !important; }
body.kasava .hfy-search-form-row ._col::before { content: attr(data-label); }
body.kasava .hfy-search-form-row .col-start-date::before { content: "Llegada"; }
body.kasava .hfy-search-form-row .col-end-date::before { content: "Salida"; }
body.kasava .hfy-search-form-row .col-bedrooms::before { content: "Recámaras"; }
body.kasava .hfy-search-form-row .col-guests::before { content: "Huéspedes"; }
body.kasava .hfy-search-form-row .col-location::before { content: "Destino"; }
html[lang^="en"] body.kasava .hfy-search-form-row .col-start-date::before { content: "Check-in"; }
html[lang^="en"] body.kasava .hfy-search-form-row .col-end-date::before { content: "Check-out"; }
html[lang^="en"] body.kasava .hfy-search-form-row .col-bedrooms::before { content: "Bedrooms"; }
html[lang^="en"] body.kasava .hfy-search-form-row .col-guests::before { content: "Guests"; }
html[lang^="en"] body.kasava .hfy-search-form-row .col-location::before { content: "Destination"; }
body.kasava .hfy-search-form-row ._col:not(.col-action)::before { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--muted); margin: 0 0 6px 14px; }
body.kasava .hfy-search-form-row .input-theme1,
body.kasava .hfy-search-form-row input.form-control,
body.kasava .hfy-search-form-row select.form-control {
  height: 54px !important; border-radius: var(--radius-sm) !important; border: 1.5px solid var(--line) !important;
  background: var(--surface-2) !important; color: var(--ink) !important; font: 600 16px var(--font-body) !important;
  padding: 0 16px !important; box-shadow: none !important; width: 100% !important; cursor: pointer;
}
html[data-dir="b"] body.kasava .hfy-search-form-row .input-theme1 { background: rgba(255,255,255,.06) !important; }
body.kasava .hfy-search-form-row .input-theme1:focus { border-color: var(--accent) !important; outline: none; }
body.kasava .hfy-search-form-row ::placeholder { color: var(--muted); opacity: 1; }
body.kasava .hfy-search-form-row .guests-count-num-wrap { position: absolute; left: 16px; top: 0; height: 54px; display: flex; align-items: center; pointer-events: auto !important; font-weight: 600; color: var(--ink); }
body.kasava .hfy-search-form-row .col-guests input.guests { color: transparent !important; }
body.kasava .hfy-search-form-row .col-guests .form-group { height: auto !important; }
body.kasava .hfy-search-form-row .col-guests .input-group { border: 0 !important; background: transparent !important; height: 54px !important; box-shadow: none !important; border-radius: var(--radius-sm); }
body.kasava .hfy-search-form-row .col-guests .guests-count-num-wrap { width: 100%; left: 0; padding: 0 16px; box-sizing: border-box; border: 1.5px solid var(--line) !important; background: var(--surface-2) !important; border-radius: var(--radius-sm); cursor: pointer; }
html[data-dir="b"] body.kasava .hfy-search-form-row .col-guests .guests-count-num-wrap { background: rgba(255,255,255,.06) !important; }
body.kasava .hfy-search-form-row .col-guests .guests-input-label { display: inline-flex; align-items: center; justify-content: flex-start !important; gap: 10px; font-weight: 600; color: var(--ink); width: 100%; height: 100%; cursor: pointer; pointer-events: none !important; }
/* El plugin engancha dos toggles (wrap y label); dejamos solo el del wrap para que un clic abra una vez. */
body.kasava .hfy-search-form-row .col-guests .guests-input-label * { pointer-events: none !important; }
body.kasava .hfy-search-form-row .col-guests .guests-input-label::after { content: "huésped(es)"; font-weight: 500; color: var(--muted); font-size: 14px; }
html[lang^="en"] body.kasava .hfy-search-form-row .col-guests .guests-input-label::after { content: "guest(s)"; }
body.kasava .hfy-search-form-row .col-action { align-self: end; }
body.kasava .hfy-search-form-row .col-action .btn,
body.kasava .hfy-search-form-row button[type="submit"] {
  height: 54px !important; width: 100%; min-width: 150px; border-radius: var(--btn-radius) !important; background: var(--accent) !important; color: var(--accent-ink) !important;
  border: 0 !important; font: 700 15px var(--font-body) !important; padding: 0 24px !important; box-shadow: none !important; display: inline-flex; align-items: center; justify-content: center; gap: 8px;
}
body.kasava .hfy-search-form-row .col-action .btn:hover { background: var(--accent-hover) !important; color: var(--on-dark) !important; }
html[data-dir="b"] body.kasava .hfy-search-form-row .col-action .btn:hover { color: #0C0D10 !important; }
body.kasava .hfy-search-form-row .col-action .btn .fa, body.kasava .hfy-search-form-row .col-action .btn i { display: none; }
body.kasava .hfy-search-form-row .col-action .btn { font-size: 0 !important; line-height: 0; }
body.kasava .hfy-search-form-row .col-action .btn span { font-size: 15px !important; line-height: 1; margin: 0 !important; }
/* dropdown de huéspedes */
body.kasava .select-guests-wrap { position: absolute; z-index: 60; top: 100%; left: 0; margin-top: 8px; }
body.kasava .select-guests-dropdown { background: var(--surface) !important; color: var(--ink) !important; border-radius: var(--radius-sm) !important; box-shadow: var(--shadow-lg) !important; border: 1px solid var(--line) !important; padding: 14px !important; min-width: 280px; }
body.kasava .select-guests-item { display: flex; justify-content: space-between; align-items: center; padding: 10px 0 !important; border-bottom: 1px solid var(--line); }
body.kasava .select-guests-item:last-child { border-bottom: 0; }
body.kasava .select-guests-item .context { font-weight: 700; }
body.kasava .select-guests-item .subcontext { font-size: 12px; color: var(--muted); }
body.kasava .select-guests-dropdown .btn { border-radius: 999px !important; background: var(--ink) !important; color: var(--bg) !important; border: 0 !important; font-weight: 700 !important; height: 40px; padding: 0 18px !important; }
body.kasava .number-guest-input .input-func-box button, body.kasava .number-guest-input .input-func-box .btn-minus, body.kasava .number-guest-input .input-func-box .btn-plus,
body.kasava .input-func-box > * { border-radius: 50% !important; border: 1.5px solid var(--line-strong) !important; background: transparent !important; color: var(--ink) !important; width: 34px; height: 34px; }
body.kasava .input-func-box { display: flex; align-items: center; gap: 6px; }
body.kasava .input-func-box input { border: 0 !important; width: 40px !important; height: 34px !important; text-align: center; font-weight: 700; background: transparent !important; box-shadow: none !important; }
body.kasava .input-func-box .ctrl-dec, body.kasava .input-func-box .ctrl-inc { display: inline-flex !important; align-items: center; justify-content: center; font-size: 20px; font-weight: 500; line-height: 1; cursor: pointer; background-image: none !important; }
body.kasava .input-func-box .ctrl-dec:hover, body.kasava .input-func-box .ctrl-inc:hover { border-color: var(--ink) !important; }
body.kasava .input-func-box .icon-dec::before { content: "\2212"; }
body.kasava .input-func-box .icon-inc::before { content: "+"; }
/* calendario (calentim) */
body.kasava .calentim-container, .calentim-container { font-family: var(--font-body) !important; border-radius: 16px !important; box-shadow: 0 30px 80px -30px rgba(0,0,0,.45) !important; overflow: hidden; z-index: 9999 !important; }
.calentim-container .calentim-days-container .calentim-day.calentim-selected, .calentim-container .calentim-day.calentim-start, .calentim-container .calentim-day.calentim-end { background: var(--accent) !important; color: var(--accent-ink) !important; }
.calentim-container .calentim-day.calentim-selected:not(.calentim-start):not(.calentim-end) { background: var(--accent-soft) !important; color: var(--ink) !important; }
.calentim-container .calentim-apply, .calentim-container .calentim-footer .btn { background: var(--accent) !important; color: var(--accent-ink) !important; border-radius: 999px !important; border: 0 !important; }

/* ---------- Cifras ---------- */
.k-stats { background: var(--bg); }
.k-stats__row { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 24px 20px; }
@media (min-width: 900px) { .k-stats__row { grid-template-columns: repeat(5, minmax(0, 1fr)); } }
.k-stat { display: flex; flex-direction: column; gap: 6px; }
.k-stat b { font-family: var(--font-display); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); font-size: clamp(36px, 4vw, 54px); line-height: 1; color: var(--ink); }
.k-stat > span { font-size: 14px; color: var(--muted); font-weight: 600; }
.k-stat b span { font: inherit; color: inherit; }
html[data-dir="b"] .k-stat { padding: 22px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); }
html[data-dir="b"] .k-stat b { font-size: clamp(32px, 3.4vw, 44px); }

/* ---------- Por qué directo + comparador ---------- */
.k-why__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
@media (min-width: 960px) { .k-why__grid { grid-template-columns: 1.05fr .95fr; gap: 64px; } }
.k-why__copy { display: flex; flex-direction: column; gap: 20px; }
.k-why__list { list-style: none; margin: 8px 0 0; padding: 0; display: flex; flex-direction: column; gap: 14px; }
.k-why__list li { display: flex; gap: 14px; align-items: flex-start; font-size: 16px; line-height: 1.5; }
.k-why__list b { color: var(--ink); }
.k-num { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 30px; padding: 0 9px; border-radius: 999px; background: var(--accent-soft); color: var(--accent); font-weight: 800; font-size: 13px; flex: 0 0 auto; }
html[data-dir="b"] .k-why__list li { padding: 16px; border-radius: 14px; background: var(--surface); border: 1px solid var(--line); }
html[data-dir="b"] .k-num { border-radius: 8px; }

.k-compare { padding: 24px; display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 720px) { .k-compare { padding: 28px; } }
.k-compare__head { display: flex; justify-content: space-between; align-items: center; gap: 12px; flex-wrap: wrap; }
.k-compare__img { display: block; border-radius: var(--radius-sm); overflow: hidden; aspect-ratio: 16/9; background: var(--surface-2); }
.k-compare__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.k-compare:hover .k-compare__img img { transform: scale(1.03); }
.k-compare__rows { display: flex; flex-direction: column; gap: 10px; font-size: 16px; }
.k-compare__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--surface-2); }
.k-compare__row span { color: var(--muted); }
.k-compare__row s { color: var(--muted); font-weight: 600; }
.k-compare__row--direct { background: var(--accent-soft); }
.k-compare__row--direct span { color: var(--ink); font-weight: 700; }
.k-compare__row--direct b { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 30px; color: var(--ink); letter-spacing: var(--display-tracking); }
.k-compare__row--save { background: transparent; padding-top: 0; padding-bottom: 0; }
.k-compare__row--save span, .k-compare__row--save b { color: var(--success); font-weight: 800; }
.k-compare__row--save b { font-size: 20px; }
.k-compare__note { font-size: 12px; color: var(--muted); line-height: 1.5; }
html[data-dir="b"] .k-compare__row--direct { border: 1px solid rgba(245,181,68,.35); }
html[data-dir="b"] .k-compare__row--direct b { color: var(--accent); }

/* ---------- Propiedades destacadas y resultados (cards) ---------- */
.k-section__head { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; margin-bottom: 32px; }
.k-section__head > div { display: flex; flex-direction: column; gap: 10px; }
.k-section__head--center { flex-direction: column; align-items: center; text-align: center; }
.k-section__head--center > div, .k-section__head--center { align-items: center; }

/* Neutralizar el grid bootstrap del plugin y usar CSS grid propio */
body.kasava .hfy-widget-wrap .listings .section, body.kasava .hfy-widget-wrap .listings .container { padding: 0 !important; max-width: none !important; width: auto !important; margin: 0 !important; }
body.kasava .hfy-widget-wrap .listings .row.listing-block { display: grid !important; grid-template-columns: 1fr; gap: 24px; margin: 0 !important; }
@media (min-width: 640px) { body.kasava .hfy-widget-wrap .listings .row.listing-block { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { body.kasava .hfy-widget-wrap .listings .row.listing-block { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
body.kasava .hfy-widget-wrap .listings .row.listing-block > [class*="col-"] { width: auto !important; max-width: none !important; flex: none !important; padding: 0 !important; margin: 0 !important; float: none !important; min-width: 0; }
.k-featured .k-featured__grid, .k-results__grid { margin-bottom: 36px; }

body.kasava .list-card.k-lcard { background: var(--surface); border-radius: var(--radius); overflow: hidden; box-shadow: var(--shadow); display: flex; flex-direction: column; height: 100%; margin: 0 !important; transition: transform .25s, box-shadow .25s; border: 1px solid transparent; }
body.kasava .list-card.k-lcard:hover { transform: translateY(-4px); box-shadow: var(--shadow-lg); }
html[data-dir="b"] body.kasava .list-card.k-lcard { border-color: var(--line); }
html[data-dir="b"] body.kasava .list-card.k-lcard:hover { border-color: rgba(245,181,68,.5); transform: none; }
body.kasava .k-lcard__media { position: relative; aspect-ratio: 4/3; overflow: hidden; background: var(--surface-2); }
body.kasava .k-lcard__media .slider, body.kasava .k-lcard__media .blaze-container, body.kasava .k-lcard__media .blaze-track-container, body.kasava .k-lcard__media .blaze-track { height: 100%; }
body.kasava .k-lcard__media .img-wrap { display: block; height: 100%; }
body.kasava .k-lcard__media img { width: 100%; height: 100%; object-fit: cover; display: block; }
body.kasava .k-lcard__media .blaze-prev, body.kasava .k-lcard__media .blaze-next { position: absolute; top: 50%; transform: translateY(-50%); width: 36px; height: 36px; border-radius: 50%; background: rgba(255,255,255,.92); color: #16181C; display: flex; align-items: center; justify-content: center; cursor: pointer; opacity: 0; transition: opacity .2s; z-index: 2; box-shadow: 0 4px 14px rgba(0,0,0,.2); }
body.kasava .k-lcard__media .blaze-prev { left: 12px; } body.kasava .k-lcard__media .blaze-next { right: 12px; }
body.kasava .k-lcard__media .blaze-prev::before, body.kasava .k-lcard__media .blaze-next::before { content: ""; width: 9px; height: 9px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(-45deg); margin-left: -3px; }
body.kasava .k-lcard__media .blaze-prev::before { transform: rotate(135deg); margin-left: 3px; }
body.kasava .k-lcard:hover .blaze-prev, body.kasava .k-lcard:hover .blaze-next { opacity: 1; }
body.kasava .k-lcard__label { position: absolute; top: 12px; left: 12px; z-index: 2; background: var(--surface); color: var(--ink); font-size: 12px; font-weight: 700; padding: 6px 10px; border-radius: 999px; }
body.kasava .k-lcard__direct { position: absolute; bottom: 12px; left: 12px; z-index: 2; background: var(--accent); color: var(--accent-ink); font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; padding: 6px 10px; border-radius: 999px; }
html[data-dir="b"] body.kasava .k-lcard__label, html[data-dir="b"] body.kasava .k-lcard__direct { border-radius: 8px; }
html[data-dir="b"] body.kasava .k-lcard__label { background: #0C0D10; color: #F3F1EC; }
body.kasava .k-lcard__media .wishlist-control, body.kasava .k-lcard__media .hfy-wishlist, body.kasava .k-lcard__media [class*="wish"] { position: absolute; top: 10px; right: 10px; z-index: 3; }
body.kasava .k-lcard__body { display: flex; flex-direction: column; padding: 16px 18px 20px; color: var(--ink) !important; flex: 1; }
body.kasava .k-lcard__body .info { display: flex; flex-direction: column; gap: 8px; height: 100%; }
body.kasava .k-lcard__row { display: flex; justify-content: space-between; align-items: flex-start; gap: 12px; }
body.kasava .k-lcard__name { font-weight: 700; font-size: 17px; line-height: 1.3; color: var(--ink); font-family: var(--font-body); }
html[data-dir="b"] body.kasava .k-lcard__name { font-family: var(--font-display); font-weight: 600; letter-spacing: -0.01em; }
body.kasava .k-lcard__rating { display: inline-flex; align-items: center; gap: 4px; font-weight: 700; color: var(--accent); font-size: 14px; white-space: nowrap; }
body.kasava .k-lcard__meta { display: flex; flex-wrap: wrap; gap: 4px 0; font-size: 14px; color: var(--muted); }
body.kasava .k-lcard__meta span:not(:last-child)::after { content: "·"; margin: 0 7px; opacity: .6; }
body.kasava .k-lcard__price { margin-top: auto; padding-top: 10px; display: flex; align-items: baseline; gap: 8px; flex-wrap: wrap; font-size: 14px; color: var(--muted); }
body.kasava .k-lcard__price .prefix { order: 0; }
body.kasava .k-lcard__amount { font-family: var(--font-display); font-weight: var(--display-weight); letter-spacing: var(--display-tracking); font-size: 26px; color: var(--ink); line-height: 1; }
html[data-dir="b"] body.kasava .k-lcard__amount { font-size: 24px; }
body.kasava .k-lcard__airbnb { flex-basis: 100%; font-size: 13px; color: var(--muted); }
body.kasava .k-lcard__airbnb s { color: var(--muted); }
/* tarjetas viejas del plugin (recomendadas / seleccionadas) */
body.kasava .listings-selected-item, body.kasava .listings-recommended .list-card { border-radius: var(--radius); overflow: hidden; }

/* paginación y orden */
body.kasava .pagination { display: flex; gap: 6px; justify-content: center; list-style: none; padding: 0; margin: 24px 0 0; flex-wrap: wrap; }
body.kasava .page-item .page-link, body.kasava .page-item a, body.kasava .page-item span { display: inline-flex; align-items: center; justify-content: center; min-width: 42px; height: 42px; padding: 0 12px; border-radius: 999px; border: 1.5px solid var(--line-strong) !important; background: var(--surface) !important; color: var(--ink) !important; font-weight: 700; }
body.kasava .page-item.active a, body.kasava .page-item.active span, body.kasava .page-item.active .page-link { background: var(--ink) !important; color: var(--bg) !important; border-color: var(--ink) !important; }
body.kasava .page-item.disabled a, body.kasava .page-item.disabled span { opacity: .4; pointer-events: none; }
.k-results__bar { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; margin-bottom: 24px; }
.k-results__sort select, body.kasava .hfy-listings-sort select { height: 42px; border-radius: 999px; border: 1.5px solid var(--line-strong); background: var(--surface); color: var(--ink); padding: 0 16px; font-weight: 600; }
.k-results__help { display: flex; justify-content: space-between; align-items: center; gap: 20px; flex-wrap: wrap; padding: 24px 28px; margin-top: 40px; }
.k-results__help b { font-size: 18px; }
.k-results__help p { color: var(--muted); margin-top: 4px; }
body.kasava .hfy-widget-wrap .listings .no-listings, body.kasava .hfy-error, body.kasava .error-no-listings { padding: 32px; border-radius: var(--radius); background: var(--surface); text-align: center; color: var(--muted); }

/* ---------- Cómo funciona ---------- */
.k-how { background: var(--dark); color: var(--on-dark); }
.k-how .k-h2 { color: var(--on-dark); max-width: 640px; }
.k-how__grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 640px) { .k-how__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (min-width: 1000px) { .k-how__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 28px; } }
.k-step { display: flex; flex-direction: column; gap: 12px; }
.k-step i { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 12px; background: var(--on-dark); color: var(--dark); font-style: normal; font-weight: 800; font-family: var(--font-display); font-size: 22px; }
html[data-dir="b"] .k-step { padding: 24px; border-radius: 16px; background: var(--surface); border: 1px solid var(--line); }
html[data-dir="b"] .k-step i { background: var(--accent); color: var(--accent-ink); font-size: 18px; }
.k-step b { font-size: 19px; color: var(--on-dark); }
.k-step p { color: var(--on-dark-muted); line-height: 1.55; }

/* ---------- Reseñas ---------- */
.k-reviews__grid { display: grid; grid-template-columns: 1fr; gap: 20px; }
@media (min-width: 900px) { .k-reviews__grid { grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 24px; } }
.k-review { margin: 0; padding: 28px; display: flex; flex-direction: column; gap: 16px; }
.k-review__stars { color: var(--accent); display: inline-flex; gap: 2px; }
.k-review__stars .ki { width: 16px; height: 16px; }
.k-review p { font-family: var(--font-display); font-size: 22px; line-height: 1.35; color: var(--ink); letter-spacing: var(--display-tracking); }
html[data-dir="b"] .k-review p { font-family: var(--font-body); font-size: 17px; line-height: 1.55; color: var(--ink-2); }
.k-review footer { font-size: 14px; font-weight: 700; color: var(--muted); }

/* ---------- Zonas / promo ---------- */
.k-more__grid { display: grid; grid-template-columns: 1fr; gap: 24px; }
@media (min-width: 960px) { .k-more__grid { grid-template-columns: 1.1fr .9fr; } }
.k-zone { position: relative; display: flex; align-items: flex-end; min-height: 420px; border-radius: var(--radius); overflow: hidden; background: var(--dark); color: var(--on-dark) !important; }
.k-zone img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .8s; }
.k-zone:hover img { transform: scale(1.04); }
.k-zone::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(22,24,28,0) 35%, rgba(22,24,28,.85) 100%); }
.k-zone__copy { position: relative; z-index: 1; padding: 32px; display: flex; flex-direction: column; gap: 10px; }
.k-zone__copy h3 { color: var(--on-dark); font-size: clamp(26px, 3vw, 36px); }
.k-zone__copy p { color: var(--on-dark-muted); max-width: 460px; }
.k-more__side { display: flex; flex-direction: column; gap: 24px; }
.k-promo { padding: 28px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.k-promo h3 { font-size: clamp(24px, 2.6vw, 30px); }
.k-promo p { color: var(--muted); line-height: 1.55; }
.k-promo--owners { background: var(--accent-soft); box-shadow: none; }
html[data-dir="b"] .k-promo--owners { border: 1px solid rgba(245,181,68,.3); }

/* ---------- Footer ---------- */
.k-footer { background: var(--dark); color: var(--on-dark-muted); margin-top: 24px; }
html[data-dir="b"] .k-footer { border-top: 1px solid var(--line); }
.k-footer .k-wrap { padding-top: 64px; padding-bottom: 40px; display: flex; flex-direction: column; gap: 40px; }
.k-footer__top { display: flex; justify-content: space-between; gap: 40px; flex-wrap: wrap; }
.k-footer__brand { display: flex; flex-direction: column; gap: 14px; max-width: 380px; }
.k-footer__brand p { line-height: 1.55; }
.k-logo--footer .k-logo__word { color: var(--on-dark); }
.k-footer__contact a { color: var(--on-dark) !important; }
.k-footer__social { display: flex; gap: 10px; }
.k-footer__social a { display: inline-flex; width: 40px; height: 40px; border-radius: 50%; border: 1px solid rgba(255,255,255,.18); align-items: center; justify-content: center; color: var(--on-dark) !important; }
.k-footer__social a:hover { background: var(--on-dark); color: var(--dark) !important; }
.k-footer__cols { display: flex; gap: 48px 64px; flex-wrap: wrap; }
.k-footer__col h4 { color: var(--on-dark); font-size: 14px; margin-bottom: 12px; }
.k-footer__menu { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 10px; }
.k-footer__menu a { color: var(--on-dark-muted) !important; font-size: 14px; }
.k-footer__menu a:hover { color: var(--on-dark) !important; }
.k-footer__bottom { display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: 13px; border-top: 1px solid rgba(255,255,255,.12); padding-top: 24px; }
.k-footer__trust { display: inline-flex; align-items: center; gap: 8px; }

/* WhatsApp flotante */
.k-wa-float { position: fixed; right: 18px; bottom: 18px; z-index: 70; display: inline-flex; align-items: center; gap: 10px; height: 52px; padding: 0 18px 0 14px; border-radius: 999px; background: #25D366; color: #fff !important; font-weight: 800; font-size: 14px; box-shadow: 0 16px 40px -14px rgba(0,0,0,.5); transition: transform .2s; }
.k-wa-float:hover { transform: translateY(-2px); color: #fff !important; }
.k-wa-float .ki { width: 24px; height: 24px; }
@media (max-width: 640px) { .k-wa-float span { display: none; } .k-wa-float { width: 52px; padding: 0; justify-content: center; } }

/* ---------- Encabezado de página ---------- */
.k-pagehead { padding: 48px 0 24px; display: flex; flex-direction: column; gap: 24px; }
.k-pagehead .k-h1 { margin: 8px 0 10px; }
.k-pagehead--small { padding: 40px 0 8px; }
.k-searchbar { padding: 18px 20px; }
@media (min-width: 900px) { .k-searchbar { padding: 22px 26px; } }
.k-prose { max-width: 760px; font-size: 17px; line-height: 1.7; color: var(--ink-2); }
.k-builder { max-width: 1100px; }
.k-builder .elementor-section-boxed > .elementor-container { max-width: 100% !important; }
.k-prose h2, .k-prose h3 { margin: 32px 0 12px; }
.k-prose p, .k-prose ul { margin: 0 0 18px; }
.k-back { display: inline-flex; align-items: center; gap: 8px; font-weight: 700; color: var(--muted) !important; font-size: 14px; }
.k-back:hover { color: var(--ink) !important; }

/* ---------- Ficha de propiedad ---------- */
.k-listing__top { padding-top: 28px; display: flex; flex-direction: column; gap: 14px; }
.k-listing__title h1, .k-listing__title h2, body.kasava .hfy-listing-title, body.kasava .listing-page-header h2 { font-family: var(--font-display) !important; font-weight: var(--display-weight) !important; letter-spacing: var(--display-tracking) !important; font-size: clamp(30px, 4vw, 48px) !important; line-height: 1.05 !important; margin: 0 !important; color: var(--ink) !important; }
.k-listing__meta { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; color: var(--muted); font-weight: 600; font-size: 14px; margin-top: 6px; }
body.kasava .hfy-listing-room-type { font-size: 14px; color: var(--muted); font-weight: 600; }
body.kasava .hfy-listing-reviews-stars, body.kasava .stars-main { color: var(--accent); }
.k-listing__gallery { margin-top: 22px; }
body.kasava .hfy-listing-gallery-abnb { display: grid !important; grid-template-columns: 1fr; gap: 10px; border-radius: var(--radius); overflow: hidden; }
@media (min-width: 900px) { body.kasava .hfy-listing-gallery-abnb { grid-template-columns: 1.6fr 1fr; grid-auto-rows: 240px; } body.kasava .hfy-listing-gallery-abnb .main { grid-row: span 2; } }
body.kasava .hfy-listing-gallery-abnb .main, body.kasava .hfy-listing-gallery-abnb .list { width: auto !important; margin: 0 !important; padding: 0 !important; }
body.kasava .hfy-listing-gallery-abnb .main img { width: 100%; height: 100%; object-fit: cover; min-height: 280px; cursor: zoom-in; }
body.kasava .hfy-listing-gallery-abnb .list { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: 1fr; gap: 10px; height: 100%; }
body.kasava .hfy-listing-gallery-abnb .list .img-wrap { position: relative; overflow: hidden; width: 100% !important; height: 100% !important; max-width: none !important; margin: 0 !important; padding: 0 !important; float: none !important; border-radius: 10px; }
body.kasava .hfy-listing-gallery-abnb .list img { width: 100% !important; height: 100% !important; max-width: none !important; object-fit: cover; cursor: zoom-in; min-height: 115px; display: block; }
body.kasava .hfy-listing-gallery-abnb .main img { width: 100% !important; height: 100% !important; max-width: none !important; display: block; }
@media (min-width: 900px) { body.kasava .hfy-listing-gallery-abnb .list .img-wrap:nth-child(n+5) { display: none; } }
@media (max-width: 899px) { body.kasava .hfy-listing-gallery-abnb .list .img-wrap:nth-child(n+3) { display: none; } }
.k-listing__grid { display: grid; grid-template-columns: 1fr; gap: 32px; padding-top: 36px; }
@media (min-width: 980px) { .k-listing__grid { grid-template-columns: minmax(0, 1fr) 400px; gap: 56px; align-items: start; } }
.k-listing__main { display: flex; flex-direction: column; gap: 40px; min-width: 0; }
.k-listing__block { border-top: 1px solid var(--line); padding-top: 32px; }
.k-listing__block:first-child { border-top: 0; padding-top: 0; }
.k-listing__facts { display: flex; gap: 12px; flex-wrap: wrap; }
body.kasava .hfy-listing-hotel-facilities, body.kasava .hfy-listing-facilities { display: flex !important; gap: 10px; flex-wrap: wrap; }
body.kasava .hfy-listing-hotel-facilities > div, body.kasava .hfy-listing-facilities > div, body.kasava .hfy-listing-facilities > span { display: inline-flex; align-items: center; gap: 8px; padding: 10px 14px; border-radius: 999px; background: var(--surface); border: 1px solid var(--line); font-weight: 600; font-size: 14px; }
body.kasava .hfy-listing-info, body.kasava .hfy-listing-info-summary, body.kasava .hfy-listing-info-space, body.kasava .hfy-listing-info-house-rules { font-size: 17px; line-height: 1.7; color: var(--ink-2); }
body.kasava .hfy-listing-info h4, body.kasava .listing-page-description h4 { font-family: var(--font-body); font-size: 14px; letter-spacing: .14em; text-transform: uppercase; color: var(--muted); margin: 28px 0 10px; }
body.kasava .hfy-listing-amenities { display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px 20px; }
@media (min-width: 720px) { body.kasava .hfy-listing-amenities { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
body.kasava .hfy-listing-amenities .hfy-am { display: inline-flex !important; align-items: center; gap: 10px; font-size: 15px; color: var(--ink-2); margin: 0 !important; padding: 6px 0; }
body.kasava .hfy-listing-amenities .hfy-am img { width: 22px; height: 22px; object-fit: contain; opacity: .8; }
html[data-dir="b"] body.kasava .hfy-listing-amenities .hfy-am img { filter: invert(1); }
body.kasava .hfy-reviews-summary { padding: 24px; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--line); margin-bottom: 20px; }
body.kasava .hfy-reviews-summary .rating-number { font-family: var(--font-display); font-size: 48px; line-height: 1; color: var(--ink); }
body.kasava .hfy-listing-reviews-comments .comment, body.kasava .hfy-review-item { padding: 20px 0; border-bottom: 1px solid var(--line); }
body.kasava .hfy-listing-location .static-location-wrapper img, body.kasava .hfy-listing-location iframe, body.kasava .hfy-listing-map { width: 100%; border-radius: var(--radius-sm); }
body.kasava .hfy-listing-availability { overflow-x: auto; }
.k-listing__related { padding: 56px 20px 24px; }
@media (min-width: 720px) { .k-listing__related { padding-left: 32px; padding-right: 32px; } }

/* Formulario de reserva (sticky) */
.k-listing__side { position: relative; }
.k-book { padding: 22px; display: flex; flex-direction: column; gap: 16px; }
@media (min-width: 980px) { .k-book { position: sticky; top: 100px; } }
.k-book__badge { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: .08em; text-transform: uppercase; font-weight: 800; color: var(--accent); }
.k-book__trust { list-style: none; margin: 0; padding: 14px 0 0; border-top: 1px solid var(--line); display: flex; flex-direction: column; gap: 10px; font-size: 13px; color: var(--muted); }
.k-book__trust li { display: flex; gap: 10px; align-items: flex-start; }
.k-book__trust .ki { color: var(--accent); margin-top: 1px; }
.k-book__wa { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font-size: 14px; font-weight: 700; color: var(--ink) !important; padding: 12px; border-radius: var(--radius-sm); border: 1.5px dashed var(--line-strong); }
.k-book__wa:hover { border-style: solid; }
body.kasava .hfy-listing-booking-form { padding: 0 !important; }
body.kasava .hfy-listing-booking-form .booking-price-block { border: 0 !important; box-shadow: none !important; padding: 0 !important; background: transparent !important; border-radius: 0 !important; }
body.kasava .hfy-listing-booking-form .price-title { font-family: var(--font-display); font-size: 30px; font-weight: var(--display-weight); letter-spacing: var(--display-tracking); color: var(--ink); display: block; margin-bottom: 10px; }
body.kasava .hfy-listing-booking-form .price-title small, body.kasava .hfy-listing-booking-form .price-title span { font-family: var(--font-body); font-size: 14px; color: var(--muted); font-weight: 600; }
body.kasava .hfy-listing-booking-form .row { display: grid !important; grid-template-columns: 1fr 1fr; gap: 8px; margin: 0 !important; }
body.kasava .hfy-listing-booking-form .row > [class*="col-"] { width: auto !important; max-width: none !important; flex: none !important; padding: 0 !important; }
body.kasava .hfy-listing-booking-form .row > .col-12, body.kasava .hfy-listing-booking-form .row > .col-xs-12 { grid-column: 1 / -1; }
body.kasava .hfy-listing-booking-form .row > .col { width: auto !important; max-width: none !important; flex: none !important; padding: 0 !important; }
body.kasava .hfy-listing-booking-form .row > .col:only-child { grid-column: 1 / -1; }
body.kasava .hfy-listing-booking-form .row + .row { margin-top: 8px !important; }
/* huéspedes */
body.kasava .hfy-listing-booking-form .guests-input { width: 100% !important; height: 50px !important; border-radius: var(--radius-sm) !important; border: 1.5px solid var(--line) !important; background: var(--surface-2) !important; display: flex !important; align-items: center; padding: 0 16px !important; cursor: pointer; position: relative; }
html[data-dir="b"] body.kasava .hfy-listing-booking-form .guests-input { background: rgba(255,255,255,.06) !important; }
body.kasava .hfy-listing-booking-form .guests-input-label { display: inline-flex !important; align-items: center; justify-content: flex-start !important; gap: 10px; width: auto !important; height: auto !important; font: 600 15px var(--font-body) !important; color: var(--ink) !important; padding: 0 !important; background: transparent !important; border: 0 !important; }
body.kasava .hfy-listing-booking-form .guests-input-label::after { content: "huésped(es)"; font-weight: 500; color: var(--muted); font-size: 14px; }
html[lang^="en"] body.kasava .hfy-listing-booking-form .guests-input-label::after { content: "guest(s)"; }
body.kasava .hfy-listing-booking-form .guests-count-num { font-weight: 700; color: var(--ink); }
body.kasava .hfy-listing-booking-form .select-guests-wrap { position: absolute; z-index: 60; top: 100%; left: 0; margin-top: 8px; }
/* código de descuento */
body.kasava .hfy-listing-booking-form .discount-code-wrap label { display: flex !important; align-items: center; gap: 10px; font-size: 13px; color: var(--muted); font-weight: 600; width: auto !important; height: auto !important; margin: 4px 0 0 !important; cursor: pointer; }
body.kasava .hfy-listing-booking-form .discount-code-wrap label input.discount_code_cb { width: 18px !important; height: 18px !important; min-height: 0 !important; padding: 0 !important; margin: 0 !important; accent-color: var(--accent); border-radius: 4px !important; }
body.kasava .hfy-listing-booking-form .discount-code-wrap input[type="text"] { margin-top: 8px; height: 44px !important; }
/* texto largo del plugin bajo el formulario: ya lo cubre el bloque de confianza del tema */
body.kasava .hfy-listing-booking-form .listing-description-notes { display: none !important; }
body.kasava .hfy-listing-booking-form .reset-date-wrap { text-align: right; }
body.kasava .hfy-listing-booking-form .reset-date { color: var(--muted) !important; text-decoration: underline; }
body.kasava .hfy-listing-booking-form .direct-inquiry-modal-open { display: flex; align-items: center; justify-content: center; height: 48px; border-radius: var(--btn-radius); border: 1.5px solid var(--line-strong); color: var(--ink); background: transparent; }
body.kasava .hfy-listing-booking-form .direct-inquiry-modal-open:hover { border-color: var(--ink); }
body.kasava .hfy-listing-booking-form .form-group { margin: 0 !important; }
body.kasava .hfy-listing-booking-form .input-theme1, body.kasava .hfy-listing-booking-form input.form-control:not([type="checkbox"]), body.kasava .hfy-listing-booking-form select.form-control { height: 50px !important; border-radius: var(--radius-sm) !important; border: 1.5px solid var(--line) !important; background: var(--surface-2) !important; color: var(--ink) !important; font: 600 15px var(--font-body) !important; padding: 0 14px !important; box-shadow: none !important; width: 100% !important; }
html[data-dir="b"] body.kasava .hfy-listing-booking-form .input-theme1 { background: rgba(255,255,255,.06) !important; }
body.kasava .hfy-listing-booking-form .prices { margin-top: 14px; }
body.kasava .hfy-listing-booking-form .price-block-item { display: flex; justify-content: space-between; gap: 12px; padding: 8px 0; font-size: 15px; color: var(--muted); border-bottom: 1px dashed var(--line); }
body.kasava .hfy-listing-booking-form .price-block-item ._value { color: var(--ink); font-weight: 600; }
body.kasava .hfy-listing-booking-form .price-block-total { border-bottom: 0; padding-top: 12px; font-weight: 800; color: var(--ink); font-size: 17px; }
body.kasava .hfy-listing-booking-form .price-block-total ._value { font-family: var(--font-display); font-size: 26px; font-weight: var(--display-weight); }
body.kasava .hfy-listing-booking-form .book-now { margin-top: 14px; }
body.kasava .hfy-listing-booking-form .btn-book-now, body.kasava .hfy-listing-booking-form .btn-primary, body.kasava .hfy-listing-booking-form input[type="submit"] { width: 100%; height: 56px !important; border-radius: var(--btn-radius) !important; background: var(--accent) !important; color: var(--accent-ink) !important; border: 0 !important; font: 800 16px var(--font-body) !important; box-shadow: none !important; cursor: pointer; }
body.kasava .hfy-listing-booking-form .btn-book-now:hover { background: var(--accent-hover) !important; color: var(--on-dark) !important; }
html[data-dir="b"] body.kasava .hfy-listing-booking-form .btn-book-now:hover { color: #0C0D10 !important; }
body.kasava .hfy-listing-booking-form .book-now .or { display: none; align-items: center; gap: 10px; color: var(--muted); font-size: 12px; margin: 12px 0; }
body.kasava .hfy-listing-booking-form .book-now .or hr { flex: 1; border: 0; border-top: 1px solid var(--line); margin: 0; }
body.kasava .hfy-listing-booking-form .book-now a.btn.round-1 { display: none !important; width: 100%; height: 50px; border-radius: var(--btn-radius) !important; border: 1.5px solid var(--line-strong) !important; background: transparent !important; color: var(--ink) !important; display: inline-flex; align-items: center; justify-content: center; font-weight: 700; }
body.kasava .hfy-listing-booking-form .hint-text { font-size: 13px; color: var(--muted); }
body.kasava .hfy-listing-booking-form .reset-date-wrap { margin-top: 10px; font-size: 13px; }
body.kasava .hfy-listing-booking-form .direct-inquiry-modal-open { margin-top: 10px; font-size: 14px; font-weight: 700; color: var(--accent); cursor: pointer; }
body.kasava .direct-inquiry-modal .direct-inquiry-modal-content { background: var(--surface); color: var(--ink); border-radius: var(--radius); }
body.kasava .direct-inquiry-form .form-control { height: 48px; border-radius: var(--radius-sm); border: 1.5px solid var(--line); background: var(--surface-2); color: var(--ink); }
body.kasava .direct-inquiry-form .btn-primary { background: var(--accent) !important; color: var(--accent-ink) !important; border: 0 !important; border-radius: var(--btn-radius) !important; height: 50px; font-weight: 800; }

/* ---------- Pago ---------- */
.k-pay__trust { list-style: none; margin: 14px 0 0; padding: 0; display: flex; gap: 20px 28px; flex-wrap: wrap; font-size: 14px; color: var(--muted); font-weight: 600; }
.k-pay__trust li { display: inline-flex; align-items: center; gap: 8px; }
.k-pay__trust .ki { color: var(--accent); }
.k-pay .hfy-wrap, .k-account .hfy-wrap { background: var(--surface); border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow); }
@media (min-width: 900px) { .k-pay .hfy-wrap, .k-account .hfy-wrap { padding: 36px; } }
body.kasava .k-pay .form-control, body.kasava .k-account .form-control { height: 48px; border-radius: var(--radius-sm) !important; border: 1.5px solid var(--line) !important; background: var(--surface-2) !important; color: var(--ink) !important; box-shadow: none !important; }
body.kasava .k-pay .btn-primary, body.kasava .k-pay .btn-success, body.kasava .k-pay input[type="submit"], body.kasava .k-account .btn-primary { background: var(--accent) !important; color: var(--accent-ink) !important; border: 0 !important; border-radius: var(--btn-radius) !important; min-height: 52px; font-weight: 800 !important; padding: 0 26px !important; }
body.kasava .k-pay h1, body.kasava .k-pay h2, body.kasava .k-pay h3, body.kasava .k-pay h4 { color: var(--ink); }
body.kasava .k-pay .table, body.kasava .k-pay table { color: var(--ink); }
body.kasava .k-pay img { border-radius: var(--radius-sm); }

/* ---------- Genéricos del plugin ---------- */
body.kasava .hfy-wrap .btn-primary { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
body.kasava .hfy-wrap a:not(.btn) { color: var(--accent); }
body.kasava .hfy-wrap .text-primary { color: var(--accent) !important; }

/* ---------- Animaciones ---------- */
.k-reveal { opacity: 0; transform: translateY(18px); transition: opacity .7s ease, transform .7s ease; }
.k-reveal.is-in { opacity: 1; transform: none; }
@media (prefers-reduced-motion: reduce) {
  .k-reveal { opacity: 1; transform: none; transition: none; }
  .k-hero__img { transition: none; }
  html { scroll-behavior: auto; }
}

/* ---------- Página genérica 404 ---------- */
.k-404 { padding: 120px 0; }
.k-404 .k-h1 { max-width: 760px; }

/* =========================================================================
   v2 — Portada inmersiva: hero completo, marquee, calculadora, carrusel,
   tiles, reseñas en movimiento, CTA final, barra móvil.
   ========================================================================= */
.k-reveal { transition-delay: var(--d, 0s); }

/* Hero completo */
.k-hero--full { min-height: 100svh; display: flex; flex-direction: column; }
.k-hero--full .k-hero__in { flex: 1; min-height: 0; justify-content: flex-end; gap: 26px; padding-top: 96px; padding-bottom: 28px; }
@media (min-width: 900px) { .k-hero--full .k-hero__in { padding-top: 120px; padding-bottom: 40px; gap: 34px; } }
.k-hero--full .k-hero__img { transform: scale(1.12); transition: opacity 1.6s ease, transform 10s linear; }
.k-hero--full .k-hero__img.is-active { opacity: 1; transform: scale(1.0); }
html[data-dir="b"] .k-hero--full .k-hero__img.is-active { opacity: .72; }
html[data-dir="b"] .k-hero--full { --hero-shade: linear-gradient(180deg, rgba(12,13,16,.55) 0%, rgba(12,13,16,.25) 35%, rgba(12,13,16,.92) 100%); }
.k-hero__grain { position: absolute; inset: 0; opacity: .14; pointer-events: none; mix-blend-mode: overlay;
  background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/></filter><rect width='100%' height='100%' filter='url(%23n)' opacity='.55'/></svg>"); }
.k-hero__top { display: grid; grid-template-columns: 1fr; gap: 28px; align-items: end; }
@media (min-width: 1000px) { .k-hero__top { grid-template-columns: 1.35fr .65fr; gap: 48px; } }
.k-hero__eyebrow { display: inline-flex; align-items: center; gap: 10px; }
.k-live-dot { width: 8px; height: 8px; border-radius: 50%; background: var(--success); box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 60%, transparent); animation: k-pulse 2s infinite; display: inline-block; }
@keyframes k-pulse { 0% { box-shadow: 0 0 0 0 color-mix(in srgb, var(--success) 55%, transparent); } 70% { box-shadow: 0 0 0 10px transparent; } 100% { box-shadow: 0 0 0 0 transparent; } }
body.kasava .k-hero--full .k-hero__title { font-size: clamp(44px, 7.6vw, 104px); line-height: .96; max-width: 11ch; }
html[data-dir="b"] body.kasava .k-hero--full .k-hero__title { letter-spacing: -0.035em; font-weight: 800; }
.k-words .k-w { display: inline-block; opacity: 0; transform: translateY(.6em) rotate(2deg); animation: k-word .9s cubic-bezier(.2,.7,.2,1) forwards; animation-delay: calc(var(--i) * 70ms + 120ms); }
@keyframes k-word { to { opacity: 1; transform: none; } }
.k-hero__cta { display: flex; gap: 12px; flex-wrap: wrap; margin-top: 6px; }
.k-btn--glass { background: rgba(255,255,255,.1); color: #fff !important; border-color: rgba(255,255,255,.28); backdrop-filter: blur(10px); }
.k-btn--glass:hover { background: rgba(255,255,255,.2); border-color: #fff; }

/* Ticket de ahorro en el hero */
.k-hero__ticket { align-self: end; justify-self: end; width: 100%; max-width: 360px; padding: 18px; border-radius: 18px; background: rgba(21,23,28,.72); backdrop-filter: blur(16px); -webkit-backdrop-filter: blur(16px); border: 1px solid rgba(255,255,255,.14); color: #F3F1EC; display: flex; flex-direction: column; gap: 14px; box-shadow: 0 30px 80px -30px rgba(0,0,0,.8); }
@media (max-width: 999px) { .k-hero__ticket { display: none; } }
.k-ticket__head { display: flex; justify-content: space-between; align-items: center; gap: 10px; }
.k-ticket__head .k-eyebrow { color: var(--accent); }
.k-ticket__pill { display: inline-flex; align-items: center; gap: 8px; font-size: 11px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #cfcbc2; }
.k-ticket__home { display: flex; align-items: center; gap: 12px; color: #fff !important; font-weight: 700; }
.k-ticket__home img { width: 64px; height: 64px; border-radius: 12px; object-fit: cover; flex: 0 0 auto; }
.k-ticket__rows { display: flex; flex-direction: column; gap: 6px; }
.k-ticket__row { display: flex; justify-content: space-between; font-size: 14px; color: #cfcbc2; }
.k-ticket__row b { color: #fff; font-size: 16px; }
.k-ticket__row s { opacity: .75; }
.k-ticket__save { display: flex; justify-content: space-between; align-items: baseline; padding: 12px 14px; border-radius: 12px; background: rgba(245,181,68,.14); border: 1px solid rgba(245,181,68,.35); }
.k-ticket__save span { font-size: 13px; font-weight: 700; color: var(--accent); text-transform: uppercase; letter-spacing: .08em; }
.k-ticket__save b { font-family: var(--font-display); font-size: 26px; color: var(--accent); letter-spacing: -0.02em; }
html[data-dir="a"] .k-hero__ticket { background: rgba(255,255,255,.9); color: var(--ink); border-color: rgba(22,24,28,.08); }
html[data-dir="a"] .k-ticket__home, html[data-dir="a"] .k-ticket__row b { color: var(--ink) !important; }
html[data-dir="a"] .k-ticket__row, html[data-dir="a"] .k-ticket__pill { color: var(--muted); }
html[data-dir="a"] .k-ticket__save { background: #E9F5EE; border-color: #BFE3CC; }
html[data-dir="a"] .k-ticket__save span, html[data-dir="a"] .k-ticket__save b { color: var(--success); }

/* Buscador de cristal */
html[data-dir="b"] .k-hero__search--glass { background: rgba(14,15,19,.78); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(18px); -webkit-backdrop-filter: blur(18px); }
.k-hero__scroll { position: absolute; left: 50%; bottom: 14px; transform: translateX(-50%); width: 26px; height: 42px; border: 2px solid rgba(255,255,255,.35); border-radius: 14px; display: none; }
@media (min-width: 900px) { .k-hero__scroll { display: block; } }
.k-hero__scroll span { position: absolute; left: 50%; top: 8px; width: 4px; height: 8px; margin-left: -2px; border-radius: 2px; background: #fff; animation: k-scroll 1.8s infinite; }
@keyframes k-scroll { 0% { transform: translateY(0); opacity: 1; } 80% { transform: translateY(14px); opacity: 0; } 100% { opacity: 0; } }

/* Marquee */
.k-marquee { overflow: hidden; background: var(--accent); color: var(--accent-ink); border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
html[data-dir="a"] .k-marquee { background: var(--ink); color: var(--bg); }
.k-marquee__track { display: flex; width: max-content; gap: 0; animation: k-marquee 38s linear infinite; }
.k-marquee:hover .k-marquee__track { animation-play-state: paused; }
.k-marquee__item { display: inline-flex; align-items: center; gap: 14px; padding: 14px 22px; font-size: 13px; font-weight: 800; letter-spacing: .14em; text-transform: uppercase; white-space: nowrap; }
.k-marquee__item i { font-style: normal; opacity: .55; font-size: 11px; }
@keyframes k-marquee { to { transform: translateX(-50%); } }

/* Cifras v2 */
.k-stat b { display: inline-flex; align-items: center; gap: 6px; }
.k-stat__star { display: inline-flex; color: var(--accent); }
.k-stat__star .ki { width: .6em; height: .6em; }

/* Calculadora */
.k-calc__grid { display: grid; grid-template-columns: 1fr; gap: 40px; align-items: center; }
@media (min-width: 960px) { .k-calc__grid { grid-template-columns: 1fr 1fr; gap: 64px; } }
.k-calc__copy { display: flex; flex-direction: column; gap: 20px; }
.k-calc__box { background: var(--surface); border: 1px solid var(--line); border-radius: var(--radius); padding: 24px; display: flex; flex-direction: column; gap: 18px; box-shadow: var(--shadow-lg); position: relative; overflow: hidden; }
@media (min-width: 720px) { .k-calc__box { padding: 30px; } }
html[data-dir="b"] .k-calc__box::before { content: ""; position: absolute; inset: -40% -20% auto auto; width: 60%; aspect-ratio: 1; border-radius: 50%; background: radial-gradient(circle, rgba(245,181,68,.22), transparent 60%); pointer-events: none; }
.k-calc__top label, .k-calc__nights-head label { font-size: 12px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: var(--muted); }
.k-calc__top { display: flex; flex-direction: column; gap: 8px; position: relative; }
.k-select { position: relative; }
.k-select select { width: 100%; height: 54px; border-radius: var(--radius-sm); border: 1.5px solid var(--line-strong); background: var(--surface-2); color: var(--ink); padding: 0 44px 0 16px; font-weight: 600; appearance: none; -webkit-appearance: none; cursor: pointer; }
.k-select::after { content: ""; position: absolute; right: 18px; top: 50%; width: 9px; height: 9px; border-right: 2px solid var(--muted); border-bottom: 2px solid var(--muted); transform: translateY(-70%) rotate(45deg); pointer-events: none; }
.k-calc__nights { display: flex; flex-direction: column; gap: 10px; position: relative; }
.k-calc__nights-head { display: flex; justify-content: space-between; align-items: baseline; }
.k-calc__nights-head output { font-family: var(--font-display); font-size: 30px; font-weight: var(--display-weight); color: var(--ink); letter-spacing: -0.02em; }
.k-calc__nights-head output::after { content: " noches"; font-family: var(--font-body); font-size: 14px; color: var(--muted); font-weight: 600; letter-spacing: 0; }
html[lang^="en"] .k-calc__nights-head output::after { content: " nights"; }
.k-calc input[type="range"] { -webkit-appearance: none; appearance: none; width: 100%; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--accent) 0 var(--p, 15%), var(--line-strong) var(--p, 15%) 100%); outline: none; }
.k-calc input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 26px; height: 26px; border-radius: 50%; background: var(--accent); border: 4px solid var(--surface); box-shadow: 0 2px 10px rgba(0,0,0,.35); cursor: grab; }
.k-calc input[type="range"]::-moz-range-thumb { width: 22px; height: 22px; border-radius: 50%; background: var(--accent); border: 4px solid var(--surface); cursor: grab; }
.k-calc__ticks { display: flex; justify-content: space-between; font-size: 11px; color: var(--muted); font-weight: 700; }
.k-calc__rows { display: flex; flex-direction: column; gap: 8px; }
.k-calc__row { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding: 12px 14px; border-radius: 12px; background: var(--surface-2); font-size: 15px; }
.k-calc__row span { color: var(--muted); }
.k-calc__row s { color: var(--muted); font-weight: 600; }
.k-calc__row--direct { background: var(--accent-soft); border: 1px solid color-mix(in srgb, var(--accent) 35%, transparent); }
.k-calc__row--direct span { color: var(--ink); font-weight: 700; }
.k-calc__row--direct b { font-family: var(--font-display); font-weight: var(--display-weight); font-size: 26px; color: var(--accent); letter-spacing: -0.02em; }
html[data-dir="a"] .k-calc__row--direct b { color: var(--ink); }
.k-calc__save { display: flex; justify-content: space-between; align-items: baseline; padding: 4px 14px 0; }
.k-calc__save span { font-size: 13px; letter-spacing: .1em; text-transform: uppercase; font-weight: 800; color: var(--success); }
.k-calc__save b { font-family: var(--font-display); font-weight: var(--display-weight); font-size: clamp(34px, 4vw, 48px); color: var(--success); letter-spacing: -0.03em; transition: transform .25s; }
.k-calc__save b.is-bump { transform: scale(1.06); }
.k-calc__note { font-size: 12px; color: var(--muted); line-height: 1.5; }

/* Carrusel de destacadas */
.k-carousel { position: relative; overflow: hidden; }
.k-carousel__track { display: flex !important; gap: 20px; overflow-x: auto; scroll-snap-type: x mandatory; scroll-behavior: smooth; padding-top: 6px; padding-bottom: 24px; scrollbar-width: none; cursor: grab; }
.k-carousel__track::-webkit-scrollbar { display: none; }
.k-carousel__track.is-dragging { cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; }
.k-carousel__nav { display: flex; gap: 10px; }
.k-carousel__btn { width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid var(--line-strong); background: var(--surface); color: var(--ink); display: inline-flex; align-items: center; justify-content: center; cursor: pointer; transition: all .2s; }
.k-carousel__btn:hover { background: var(--accent); color: var(--accent-ink); border-color: var(--accent); }
.k-carousel__btn .ki { width: 20px; height: 20px; }
/* el plugin envuelve las tarjetas en .hfy-wrap > ... > .row.listing-block > .col-md-6 */
body.kasava .k-carousel__track > .hfy-wrap { display: contents; }
body.kasava .k-carousel__track .hfy-widget-wrap-listings, body.kasava .k-carousel__track .hfy-widget-wrap, body.kasava .k-carousel__track .listings, body.kasava .k-carousel__track .section, body.kasava .k-carousel__track .container { display: contents !important; }
body.kasava .k-carousel__track .hfy-widget-wrap .listings .row.listing-block, body.kasava .k-carousel__track .row.listing-block { display: flex !important; gap: 20px; margin: 0 !important; flex-wrap: nowrap !important; }
body.kasava .k-carousel__track .hfy-widget-wrap .listings .row.listing-block > [class*="col-"], body.kasava .k-carousel__track .row.listing-block > [class*="col-"] { flex: 0 0 min(82vw, 400px) !important; max-width: none !important; width: auto !important; padding: 0 !important; scroll-snap-align: start; }
@media (min-width: 720px) { body.kasava .k-carousel__track .hfy-widget-wrap .listings .row.listing-block > [class*="col-"], body.kasava .k-carousel__track .row.listing-block > [class*="col-"] { flex-basis: 380px !important; } }
body.kasava .k-carousel__track .k-lcard { height: 100%; }
body.kasava .k-carousel__track .k-lcard__media { aspect-ratio: 4/4.4; }
body.kasava .k-carousel__track .hfy-wwl-none, body.kasava .k-carousel__track .hfy-wwl-updating { display: none !important; }

/* Tiles de zonas */
.k-zones__grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
@media (min-width: 900px) { .k-zones__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; } }
.k-tile { position: relative; display: block; aspect-ratio: 3/4; border-radius: var(--radius); overflow: hidden; background: var(--surface-2); isolation: isolate; }
.k-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform 1s cubic-bezier(.2,.7,.2,1), filter .6s; }
.k-tile:hover img { transform: scale(1.08); }
.k-tile::after { content: ""; position: absolute; inset: 0; background: linear-gradient(180deg, rgba(12,13,16,0) 40%, rgba(12,13,16,.9) 100%); transition: opacity .4s; }
.k-tile__copy { position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; padding: 20px; display: flex; flex-direction: column; gap: 4px; color: #fff; transform: translateY(6px); transition: transform .4s; }
.k-tile:hover .k-tile__copy { transform: none; }
.k-tile__copy em { font-style: normal; font-size: 11px; letter-spacing: .16em; text-transform: uppercase; font-weight: 800; color: var(--accent); }
html[data-dir="a"] .k-tile__copy em { color: #F4EFE6; opacity: .8; }
.k-tile__copy b { font-family: var(--font-display); font-weight: var(--display-weight); font-size: clamp(22px, 2.4vw, 30px); letter-spacing: var(--display-tracking); line-height: 1.05; }
.k-tile__copy small { font-size: 13px; color: rgba(255,255,255,.75); opacity: 0; max-height: 0; transition: all .4s; }
.k-tile:hover .k-tile__copy small { opacity: 1; max-height: 40px; }
@media (hover: none) { .k-tile__copy small { opacity: 1; max-height: 40px; } }
.k-zones .k-section__head .k-lead { max-width: 420px; }

/* Cómo funciona: línea de progreso */
.k-how__grid--line { position: relative; }
@media (min-width: 1000px) {
  .k-how__grid--line::before { content: ""; position: absolute; left: 22px; right: 22px; top: 22px; height: 2px; background: var(--line); }
  .k-how__grid--line::after { content: ""; position: absolute; left: 22px; top: 22px; height: 2px; width: 0; background: var(--accent); transition: width 2.2s cubic-bezier(.2,.7,.2,1); }
  .k-how__grid--line.is-in::after { width: calc(100% - 44px); }
  .k-how__grid--line .k-step { position: relative; }
  html[data-dir="b"] .k-how__grid--line .k-step { padding-top: 60px; background: transparent; border: 0; }
  html[data-dir="b"] .k-how__grid--line .k-step i { position: absolute; top: 0; left: 0; transform: translateY(-50%); box-shadow: 0 0 0 6px var(--dark); }
}

/* Reseñas en movimiento */
.k-reviews__marquee { overflow: hidden; margin-top: 8px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image: linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); }
.k-reviews__track { display: flex; gap: 20px; width: max-content; padding: 6px 0 10px; animation: k-marquee 48s linear infinite; }
.k-reviews__marquee:hover .k-reviews__track { animation-play-state: paused; }
.k-reviews__track .k-review { width: min(82vw, 420px); flex: 0 0 auto; }

/* Promos grandes + CTA final */
.k-more__grid--2 { grid-template-columns: 1fr; }
@media (min-width: 900px) { .k-more__grid--2 { grid-template-columns: 1fr 1fr; } }
.k-promo--big { padding: 34px; gap: 16px; min-height: 300px; justify-content: center; border: 1px solid var(--line); }
.k-promo--big .k-btn { align-self: flex-start; margin-top: 8px; }
.k-final { padding: 96px 0; background: var(--accent); color: var(--accent-ink); position: relative; overflow: hidden; }
html[data-dir="a"] .k-final { background: var(--ink); color: var(--bg); }
.k-final::before { content: ""; position: absolute; inset: auto -10% -60% auto; width: 50%; aspect-ratio: 1; border-radius: 50%; background: rgba(255,255,255,.12); filter: blur(10px); }
.k-final__in { display: flex; flex-direction: column; gap: 28px; align-items: flex-start; position: relative; }
.k-final__title { font-size: clamp(38px, 6.4vw, 88px); line-height: .98; max-width: 14ch; color: inherit; }
.k-final__title em { font-style: normal; opacity: .55; }
html[data-dir="a"] .k-final__title em { color: var(--accent); opacity: 1; font-style: italic; }
.k-final__cta { display: flex; gap: 12px; flex-wrap: wrap; }
html[data-dir="b"] .k-final .k-btn--primary { background: #0C0D10; color: #fff !important; }
html[data-dir="b"] .k-final .k-btn--glass { background: rgba(12,13,16,.12); color: #0C0D10 !important; border-color: rgba(12,13,16,.3); }
html[data-dir="b"] .k-final .k-btn--glass:hover { background: rgba(12,13,16,.22); }

/* Header transparente sobre el hero completo */
body.kasava.home .k-header { position: fixed; left: 0; right: 0; background: transparent; border-bottom-color: transparent; }
body.kasava.home .k-header:not(.is-stuck) .k-logo, body.kasava.home .k-header:not(.is-stuck) .k-menu a, body.kasava.home .k-header:not(.is-stuck) .k-langsw__item, body.kasava.home .k-header:not(.is-stuck) .k-burger { color: #fff !important; }
body.kasava.home .k-header:not(.is-stuck) .k-langsw { border-color: rgba(255,255,255,.35); }
body.kasava.home .k-header:not(.is-stuck) .k-langsw__item.is-current { background: #fff; color: #0C0D10 !important; }
body.kasava.home .k-header.is-stuck { background: color-mix(in srgb, var(--bg) 88%, transparent); border-bottom-color: var(--line); }
body.kasava.home .k-topbar { position: relative; z-index: 91; }
body.kasava.home .k-hero--full { margin-top: 0; }
body.kasava.home.admin-bar .k-header { top: 32px; }
@media (max-width: 782px) { body.kasava.home.admin-bar .k-header { top: 46px; } }

/* Barra móvil fija */
.k-mobilebar { position: fixed; left: 12px; right: 12px; bottom: 12px; z-index: 80; display: none; gap: 10px; padding: 10px; border-radius: 16px; background: color-mix(in srgb, var(--surface) 92%, transparent); backdrop-filter: blur(14px); border: 1px solid var(--line); box-shadow: var(--shadow-lg); transform: translateY(120%); transition: transform .35s; }
.k-mobilebar.is-on { transform: none; }
@media (max-width: 899px) { .k-mobilebar { display: flex; } body.kasava.home .k-wa-float { display: none; } }
.k-mobilebar .k-btn { flex: 1; height: 48px; }

/* Barra superior: en B queda integrada */
html[data-dir="b"] .k-topbar { background: var(--accent); color: var(--accent-ink); }
html[data-dir="b"] .k-topbar a { color: var(--accent-ink) !important; }

@media (prefers-reduced-motion: reduce) {
  .k-words .k-w { animation: none; opacity: 1; transform: none; }
  .k-marquee__track, .k-reviews__track { animation: none; }
  .k-hero--full .k-hero__img { transition: opacity .6s; transform: none; }
}

/* Portada: la barra superior estorba con el header fijo sobre el hero */
body.kasava.home .k-topbar { display: none; }
body.kasava .k-listing__meta .ki, body.kasava .k-listing__meta [class*="star"], body.kasava .k-listing__meta .fa, body.kasava .k-listing__meta i, body.kasava .k-listing__meta svg { color: var(--accent) !important; fill: var(--accent); }

/* Ajustes móviles v2 */
.k-more__grid > * { min-width: 0; }
.k-promo--big .k-btn { white-space: normal; height: auto; min-height: 52px; padding: 12px 22px; text-align: center; }
.k-mobilebar .k-btn { padding: 0 14px; font-size: 14px; }
.k-mobilebar .k-btn--ghost { flex: 0 0 auto; }
.k-calc__row s, .k-calc__row b, .k-calc__save b { white-space: nowrap; }
@media (max-width: 480px) {
  .k-calc__row { font-size: 13px; padding: 10px 12px; }
  .k-calc__row--direct b { font-size: 20px; }
  .k-calc__save b { font-size: 32px; }
  .k-calc__box { padding: 18px; }
  .k-carousel__nav { display: none; }
  .k-section__head { margin-bottom: 20px; }
  body.kasava .k-hero--full .k-hero__title { font-size: clamp(38px, 13vw, 48px); }
  .k-final__title { font-size: clamp(32px, 11vw, 44px); }
}

/* ---------- Checkout: siempre tarjeta clara y legible (en A y en B) ---------- */
body.kasava .k-pay .hfy-wrap.payment-wrapper, body.kasava .k-pay .hfy-wrap.data-block { background: transparent; box-shadow: none; padding: 0; }
body.kasava .k-pay .payment-columns { display: grid !important; grid-template-columns: 1fr; gap: 24px; margin: 0 !important; }
@media (min-width: 960px) { body.kasava .k-pay .payment-columns { grid-template-columns: 1fr 360px; } body.kasava .k-pay .payment-info { order: 2; } }
body.kasava .k-pay .payment-columns > [class*="col-"] { width: auto !important; max-width: none !important; flex: none !important; padding: 0 !important; }
body.kasava .k-pay .payment-content { --ink: #16181C; --muted: #5E574D; --line: rgba(22,24,28,.14); background: #FFFFFF; color: #16181C; border-radius: var(--radius); padding: 24px; box-shadow: var(--shadow-lg); }
@media (min-width: 720px) { body.kasava .k-pay .payment-content { padding: 32px 36px; } }
body.kasava .k-pay .payment-info > div { background: #FFFFFF; color: #16181C; border-radius: var(--radius); padding: 22px; box-shadow: var(--shadow-lg); position: sticky; top: 100px; }
body.kasava .k-pay .payment-content h1, body.kasava .k-pay .payment-content h2, body.kasava .k-pay .payment-content h3, body.kasava .k-pay .payment-content h4, body.kasava .k-pay .payment-content h5, body.kasava .k-pay .payment-content .title { color: #16181C !important; font-family: var(--font-display); font-size: 22px; margin: 0 0 14px; }
body.kasava .k-pay .field label, body.kasava .k-pay .payment-content label { display: block; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; font-weight: 700; color: #5E574D !important; margin: 0 0 6px 2px; }
body.kasava .k-pay .payment-content .input, body.kasava .k-pay .payment-content input.input, body.kasava .k-pay .payment-content select.input, body.kasava .k-pay .payment-content textarea.input, body.kasava .k-pay .payment-content .form-control { width: 100%; min-height: 50px; border: 1.5px solid rgba(22,24,28,.18) !important; border-radius: 12px !important; background: #FFFFFF !important; color: #16181C !important; padding: 0 14px !important; font: 500 15px var(--font-body) !important; box-shadow: none !important; }
body.kasava .k-pay .payment-content textarea.input { padding: 12px 14px !important; min-height: 90px; }
body.kasava .k-pay .payment-content .input:focus { border-color: var(--accent) !important; outline: none; }
body.kasava .k-pay .payment-content ::placeholder { color: #9A948A; opacity: 1; }
body.kasava .k-pay .payment-content .iti { width: 100%; }
body.kasava .k-pay .payment-content .iti__selected-country, body.kasava .k-pay .payment-content .iti__selected-flag { color: #16181C !important; }
body.kasava .k-pay .payment-content .iti__tel-input { padding-left: 90px !important; }
body.kasava .k-pay .payment-content .iti__dropdown-content { color: #16181C; }
body.kasava .k-pay .payment-content .btn, body.kasava .k-pay .payment-content button:not(.iti__selected-country):not(.iti__selected-flag), body.kasava .k-pay .payment-content input[type="submit"] { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 52px; padding: 0 28px; border-radius: var(--btn-radius) !important; background: var(--accent) !important; color: var(--accent-ink) !important; border: 0 !important; font: 700 15px var(--font-body) !important; cursor: pointer; }
body.kasava .k-pay .payment-content .btn:hover, body.kasava .k-pay .payment-content button:not(.iti__selected-country):hover { filter: brightness(1.05); }
body.kasava .k-pay .payment-content .btn-link, body.kasava .k-pay .payment-content .prev, body.kasava .k-pay .payment-content .btn-back { background: transparent !important; color: #5E574D !important; }
body.kasava .k-pay .payment-time-left { color: #5E574D; font-size: 13px; margin-top: 14px; }
body.kasava .k-pay .payment-time-left span { color: #16181C; font-weight: 700; }
body.kasava .k-pay .payment-content .progress, body.kasava .k-pay .payment-content .steps { margin-bottom: 20px; }
body.kasava .k-pay .payment-content .nav-tabs, body.kasava .k-pay .payment-content .tab-pane { color: #16181C; }
body.kasava .k-pay .payment-content a { color: var(--accent); }
html[data-dir="b"] body.kasava .k-pay .payment-content a { color: #1F3C88; }
body.kasava .k-pay .payment-content .row { display: flex; flex-wrap: wrap; margin: 0 -8px; }
body.kasava .k-pay .payment-content .row > [class*="col"] { padding: 0 8px; margin-bottom: 14px; }
body.kasava .k-pay .payment-content .field { margin-bottom: 4px; }
body.kasava .k-pay .listing-info { display: flex; gap: 12px; align-items: center; color: #16181C !important; font-weight: 700; }
body.kasava .k-pay .listing-info img { width: 72px; height: 72px; object-fit: cover; border-radius: 12px; }
body.kasava .k-pay .booking-block { color: #3A3934; }
body.kasava .k-pay .booking-block b, body.kasava .k-pay .booking-block strong { color: #16181C; }
body.kasava .k-pay hr { border: 0; border-top: 1px solid rgba(22,24,28,.12); margin: 14px 0; }
/* Ficha: quitar el enlace "Book on Airbnb" del plugin (foco en venta directa) */
body.kasava .hfy-listing-booking-form .prices a.btn.round-1, body.kasava .hfy-listing-booking-form a.btn-outline-secondary { display: none !important; }
body.kasava .k-pay .payment-content .iti input.iti__tel-input, body.kasava .k-pay .payment-content .iti input.input { padding-left: 96px !important; }

/* Flotante de reserva (sustituye al de WhatsApp) */
.k-wa-float--book { background: var(--accent) !important; color: var(--accent-ink) !important; }
.k-wa-float--book:hover { background: var(--accent-hover) !important; color: #0C0D10 !important; }
