:root {
  --bg: #000000; --surface: #111111; --alt: #121212; --alt2: #111111;
  --dark: #000000; --ink: #ffffff; --ink-base: #ffffff; --text: #c0bcb7;
  --primary: #c9ab81; --on-primary: #000000; --accent: #c9ab81; --border: #41392e;
  --radius: 0px; --btn-radius: 0px;
  --font-h: 'Cormorant Garamond', serif; --font-b: 'EB Garamond', serif; --font-a: 'Cormorant Garamond', serif; --font-ui: 'Josefin Sans', sans-serif;
  --h-weight: 400; --h-case: uppercase; --h-spacing: 0.025em; --h-style: normal; --h-lh: 1.04;
  --body-size: 19px; --body-weight: 400; --body-lh: 1.45;
  --fs-xl: clamp(40px, 6.333vw, 76px); --fs-lg: clamp(27px, 4.250vw, 51px); --fs-md: clamp(24px, 2.583vw, 31px); --fs-sm: 22px;
  --xl-weight: 400; --lg-weight: 400; --md-weight: 400; --xl-lh: .95;
  --nav-size: 11px; --nav-weight: 400; --nav-case: uppercase; --nav-spacing: .2em;
  --btn-font: var(--font-h); --btn-style: italic; --btn-size: 19px; --btn-weight: 400;
  --btn-case: none; --btn-spacing: .035em; --btn-pad: 16px 58px;
  --eb-size: 11px; --eb-weight: 400; --eb-case: uppercase; --eb-spacing: .2em; --eb-color: var(--accent);
  --wrap: 1240px;
}

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; font-family: var(--font-b); color: var(--text); background: var(--bg); line-height: var(--body-lh); font-size: var(--body-size); font-weight: var(--body-weight); -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
p { margin: 0 0 1.1em; }
ul { margin: 0; padding: 0; list-style: none; }
h1, h2, h3, h4 { font-family: var(--font-h); color: var(--ink); font-weight: var(--h-weight); letter-spacing: var(--h-spacing); text-transform: var(--h-case); line-height: var(--h-lh); margin: 0 0 .5em; text-wrap: balance; }
h1, h2 { font-style: var(--h-style); }
h1 em, h2 em, h3 em, .accent { font-family: var(--font-a); font-style: italic; font-weight: 400; letter-spacing: 0; }
.soft { opacity: .55; }
.ic { width: 1.25em; height: 1.25em; flex: none; }
.wrap { width: min(100% - 48px, var(--wrap)); margin-inline: auto; }
.sec { padding: clamp(64px, 9vw, 120px) 0; position: relative; }
.sec--alt { background: var(--alt); }
.sec--alt2 { background: var(--alt2); }
.sec--dark { background: var(--dark); color: rgba(255,255,255,.72); --ink: #fff; --border: rgba(255,255,255,.16); }
.sec--tight { padding: clamp(40px, 5vw, 64px) 0; }
.eyebrow { display: inline-block; font-family: var(--font-ui); font-size: var(--eb-size); letter-spacing: var(--eb-spacing); text-transform: var(--eb-case); color: var(--eb-color); font-weight: var(--eb-weight); margin-bottom: 14px; }
.h-xl { font-size: var(--fs-xl); line-height: var(--xl-lh); font-weight: var(--xl-weight); }
.h-lg { font-size: var(--fs-lg); font-weight: var(--lg-weight); }
.h-md { font-size: var(--fs-md); font-weight: var(--md-weight); }
.h-sm { font-size: var(--fs-sm); }
.lead { font-size: 1.06rem; max-width: 62ch; }
.center { text-align: center; }
.center .lead { margin-inline: auto; }
.head { margin-bottom: clamp(36px, 5vw, 64px); }
.head--row { display: flex; justify-content: space-between; align-items: flex-end; gap: 24px; flex-wrap: wrap; }
.head--row h2 { margin: 0; }
.grid { display: grid; gap: 28px; }
.g2 { grid-template-columns: repeat(2, 1fr); }
.g3 { grid-template-columns: repeat(3, 1fr); }
.g4 { grid-template-columns: repeat(4, 1fr); }
.split { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 96px); align-items: center; }
.split--rev > :first-child { order: 2; }
.checks li { display: flex; gap: 10px; align-items: flex-start; margin-bottom: 10px; color: var(--ink); }
.checks .ic { color: var(--accent); margin-top: .25em; }
.cover { width: 100%; height: 100%; object-fit: cover; }
.rad { border-radius: var(--radius); overflow: hidden; }
[hidden] { display: none !important; }

/* ---------- Botones ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 10px; padding: var(--btn-pad); font: var(--btn-style) var(--btn-weight) var(--btn-size)/1 var(--btn-font); letter-spacing: var(--btn-spacing); text-transform: var(--btn-case); border: 1px solid var(--primary); background: var(--primary); color: var(--on-primary); border-radius: var(--btn-radius); cursor: pointer; white-space: nowrap; transition: transform .3s, filter .3s, background .3s, color .3s; }
.btn:hover { transform: translateY(-2px); filter: brightness(1.08); }
.btn--ghost { background: transparent; color: var(--ink); border-color: color-mix(in srgb, var(--ink) 45%, transparent); }
.btn--ghost:hover { background: var(--ink); color: var(--bg); filter: none; }
.btn--light { background: #fff; color: #111; border-color: #fff; }
.btn--line { background: transparent; color: #fff; border-color: rgba(255,255,255,.65); }
.btn--line:hover { background: #fff; color: #111; }
.btn--wa { background: #25D366; border-color: #25D366; color: #fff; }
.btn.btn--block { width: 100%; padding-inline: 14px; white-space: normal; text-align: center; line-height: 1.25; }
.btn-row { display: flex; gap: 14px; flex-wrap: wrap; }
.center .btn-row { justify-content: center; }
.link { display: inline-flex; align-items: center; gap: 8px; font: var(--btn-style) var(--btn-weight) var(--btn-size)/1.2 var(--btn-font); letter-spacing: var(--btn-spacing); text-transform: var(--btn-case); color: var(--ink); border-bottom: 1px solid currentColor; padding-bottom: 4px; }
[data-btn="outline"] .btn:not(.btn--light):not(.btn--wa) { background: transparent; color: var(--ink); border-color: color-mix(in srgb, var(--ink) 45%, transparent); font-weight: 400; }
[data-btn="outline"] .btn:not(.btn--light):not(.btn--wa):hover { background: var(--primary); border-color: var(--primary); color: var(--on-primary); filter: none; }
[data-btn="outline"] .hero .btn, [data-btn="outline"] .sec--dark .btn { color: #fff !important; border-color: rgba(255,255,255,.6) !important; }
[data-btn="outline"] .hero--light .btn { color: var(--ink-base) !important; border-color: var(--ink-base) !important; }
[data-btn="pill"] .btn { padding: 8px 24px 8px 8px; }
[data-btn="pill"] .btn::before { content: "↗"; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: var(--on-primary); color: var(--primary); font-size: .9rem; }
[data-btn="pill"] .btn--light::before { background: #111; color: #fff; }
[data-btn="pill"] .btn--line::before, [data-btn="pill"] .btn--ghost::before { background: currentColor; color: transparent; text-shadow: none; opacity: .9; }

/* ---------- Cabecera ---------- */
.hdr-wrap { position: sticky; top: 0; z-index: 50; }
.topbar { background: var(--dark); color: rgba(255,255,255,.78); font-size: .76rem; letter-spacing: .04em; padding: 9px 0; }
.topbar .wrap { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.topbar span, .topbar a { display: inline-flex; align-items: center; gap: 7px; }
.topbar__group { display: flex; gap: 24px; }
.hdr { background: var(--bg); border-bottom: 1px solid var(--border); transition: background .3s, border-color .3s; }
.hdr__in { display: flex; align-items: center; justify-content: space-between; gap: 24px; min-height: 80px; width: min(100% - 48px, 1400px); }
.brand { display: inline-flex; align-items: center; gap: 10px; font-family: var(--font-h); font-size: 1.15rem; color: var(--ink); letter-spacing: .06em; text-transform: uppercase; white-space: nowrap; }
.brand .ic { width: 30px; height: 30px; color: var(--accent); stroke-width: 1.1; }
.nav { display: flex; gap: 22px; }
.nav a { font-family: var(--font-ui); font-size: var(--nav-size); letter-spacing: var(--nav-spacing); text-transform: var(--nav-case); font-weight: var(--nav-weight); color: var(--ink); padding: 6px 0; border-bottom: 1px solid transparent; transition: border-color .25s; white-space: nowrap; }
.nav a:hover, .nav a.is-active { border-color: currentColor; }
.hdr__cta { display: flex; align-items: center; gap: 22px; }
.hdr .btn { padding-block: 13px; }
[data-btn="pill"] .hdr .btn { padding: 6px 18px 6px 6px; }
[data-btn="pill"] .hdr .btn::before { width: 28px; height: 28px; }
.burger { display: none; width: 44px; height: 44px; background: none; border: 0; color: var(--ink); cursor: pointer; padding: 10px; }
.burger .ic { width: 24px; height: 24px; }
[data-logo="center"] .hdr__in { display: grid; grid-template-columns: 1fr auto 1fr; }
[data-logo="center"] .brand { flex-direction: column; gap: 2px; font-size: 1.05rem; letter-spacing: .2em; }
[data-logo="center"] .hdr__cta { justify-content: flex-end; }
[data-nav="overlay"] .hdr-wrap { position: fixed; left: 0; right: 0; }
[data-nav="overlay"] .hdr { background: transparent; border-color: rgba(255,255,255,.2); --ink: #fff; }
[data-nav="overlay"] .hdr .btn { background: transparent; color: #fff; border-color: rgba(255,255,255,.65); }
[data-nav="overlay"] .topbar { background: rgba(0,0,0,.22); }
[data-nav="overlay"][data-hero-light] .hdr { --ink: var(--ink-base); border-color: color-mix(in srgb, var(--ink-base) 18%, transparent); }
[data-nav="overlay"][data-hero-light] .hdr .btn { color: var(--ink-base); border-color: var(--ink-base); }
[data-nav="overlay"][data-hero-light] .topbar { background: transparent; color: var(--ink-base); }
[data-nav="overlay"] .hdr-wrap.is-scrolled .hdr { background: var(--bg); --ink: var(--ink-base); border-color: var(--border); box-shadow: 0 10px 30px rgba(0,0,0,.08); }
[data-nav="overlay"] .hdr-wrap.is-scrolled .hdr .btn { background: var(--primary); color: var(--on-primary); border-color: var(--primary); }
[data-btn="outline"][data-nav="overlay"] .hdr-wrap.is-scrolled .hdr .btn { background: transparent; color: var(--ink-base); border-color: var(--ink-base); }
.hdr-wrap.is-scrolled .topbar { display: none; }
[data-nav="dark"] .hdr { background: var(--dark); --ink: #fff; border-color: transparent; }
[data-nav="dark"] .hdr .btn { background: transparent; border-color: rgba(255,255,255,.5); color: #fff; }
[data-navmin] .nav, [data-navmin] .hdr__cta .btn { display: none; }
[data-navmin] .burger { display: block; }
.nav-open { overflow: hidden; }
.nav-panel { position: fixed; inset: 0; z-index: 60; background: var(--bg); padding: 90px 32px 40px; display: none; flex-direction: column; gap: 6px; overflow: auto; }
.nav-open .nav-panel { display: flex; }
.nav-panel a { font-family: var(--font-h); font-size: 1.7rem; color: var(--ink-base); padding: 10px 0; border-bottom: 1px solid var(--border); text-transform: var(--h-case); }
.nav-panel .btn { margin-top: 24px; font-family: var(--btn-font); font-size: var(--btn-size); border-bottom: 0; color: var(--on-primary); justify-content: center; }
.nav-panel__close { position: absolute; top: 20px; right: 20px; background: none; border: 0; color: var(--ink-base); width: 44px; height: 44px; cursor: pointer; }
.nav-panel__close .ic { width: 26px; height: 26px; }

/* ---------- Portadas ---------- */
.hero { position: relative; color: #fff; --ink: #fff; background: #151515; isolation: isolate; }
.hero h1 { color: inherit; }
.hero__bg, .hero__bg .slide { position: absolute; inset: 0; background-size: cover; background-position: center; }
.hero__bg { z-index: -1; overflow: hidden; }
.hero__bg::after { content: ""; position: absolute; inset: 0; background: var(--ovc, rgba(0,0,0,var(--ov, .4))); }
[data-nav="overlay"] .hero:not(.hero--light) > .hero__bg::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 190px; background: linear-gradient(rgba(0,0,0,.5), transparent); z-index: 1; }
.hero__bg .slide { opacity: 0; transition: opacity 1.2s ease; }
.hero__bg .slide.is-on { opacity: 1; }
.hero--full { min-height: 100vh; min-height: 100svh; }
.hero--tall { min-height: 88vh; }
.hero--mid { min-height: 70vh; }
.hero--short { min-height: 50vh; }
.hero__in { display: flex; flex-direction: column; justify-content: center; min-height: inherit; padding: 150px 0 90px; }
.hero--center .hero__in { align-items: center; text-align: center; }
.hero--center .lead { margin-inline: auto; }
.hero--left .hero__in { align-items: flex-start; }
.hero--left h1 { max-width: 19ch; }
.hero--light { color: var(--ink-base); --ink: var(--ink-base); }
.hero--light .hero__bg::after { background: rgba(255,255,255,var(--ov, .6)); }
.hero--upper h1 { text-transform: uppercase; letter-spacing: .06em; }
.hero--sentence h1 { font-size: clamp(1.7rem, 3.3vw, 2.9rem); max-width: 24ch; line-height: 1.25; }
.hero--center.hero--sentence h1 { max-width: 30ch; }
.hero--sentence h1 .ic { width: 1em; height: 1em; vertical-align: -.12em; opacity: .9; }
.hero__crest { width: 58px; height: 58px; stroke-width: .9; margin-bottom: 18px; }
.hero .lead { color: inherit; opacity: .9; margin-top: 6px; }
.hero .btn-row { margin-top: 30px; }
.hero__arrow { position: absolute; top: 50%; z-index: 3; background: none; border: 0; color: inherit; font: 500 .62rem/1 var(--font-ui); letter-spacing: .24em; text-transform: uppercase; cursor: pointer; display: flex; align-items: center; gap: 10px; padding: 12px 0; }
.hero__arrow::before { content: ""; width: 44px; height: 1px; background: currentColor; }
.hero__arrow--prev { left: 24px; }
.hero__arrow--next { right: 24px; flex-direction: row-reverse; }
.hero__info { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px; margin-top: 64px; width: min(100%, 760px); font-size: .8rem; line-height: 1.8; }
.hero__info h4 { font: 600 .62rem/1 var(--font-ui); letter-spacing: .24em; text-transform: uppercase; margin-bottom: 12px; }
.hero__cards { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(14px, 3vw, 40px); width: min(100%, 940px); margin: 60px auto -230px; }
.hero__cards img { aspect-ratio: 3/4; object-fit: cover; width: 100%; box-shadow: 0 30px 60px rgba(0,0,0,.25); }
.hero--cards { margin-bottom: 150px; }
.countdown { display: flex; gap: clamp(22px, 5vw, 64px); margin: 34px 0 30px; }
.countdown b { display: block; font: 400 clamp(2.2rem, 5vw, 3.6rem)/1 var(--font-h); }
.countdown span { font-size: .6rem; letter-spacing: .24em; text-transform: uppercase; opacity: .8; }
.inline-form { display: flex; width: min(100%, 440px); background: #fff; }
.inline-form input { flex: 1; border: 0; padding: 15px 18px; font: inherit; font-size: .88rem; min-width: 0; background: transparent; color: #111; }
.inline-form .btn { background: #fff; color: #111; border: 0; border-left: 1px solid #ddd; padding-inline: 22px; }
.bookbar { position: absolute; left: 50%; bottom: 46px; transform: translateX(-50%); width: min(92%, 900px); background: rgba(255,255,255,.16); backdrop-filter: blur(10px); padding: 26px 34px; display: grid; grid-template-columns: repeat(3, 1fr) auto; gap: 26px; align-items: end; z-index: 3; }
.bookbar input, .bookbar select { width: 100%; background: transparent; border: 0; border-bottom: 1px solid rgba(255,255,255,.7); color: #fff; font: inherit; font-size: .85rem; padding: 8px 0; }
.bookbar input::placeholder { color: rgba(255,255,255,.85); }
.bookbar select option { color: #111; }
.bookbar .btn { padding: 13px 26px; }

.hero--low .hero__in { justify-content: flex-end; padding-bottom: 170px; }
.hero__count { position: absolute; left: clamp(24px, 4vw, 60px); bottom: 42px; z-index: 3; display: flex; align-items: center; gap: 14px; font: 400 1.25rem/1 var(--font-h); color: var(--primary); }
.hero__count::after { content: attr(data-total); font-size: .8em; color: rgba(255,255,255,.75); order: 3; }
.hero__count i { width: 46px; height: 1px; background: rgba(255,255,255,.5); order: 2; }
.hero__boxes { position: absolute; right: 96px; bottom: 23px; z-index: 3; display: flex; gap: 10px; }
.hero__box { width: 50px; height: 50px; border: 1px solid rgba(255,255,255,.5); background: none; color: #fff; cursor: pointer; display: grid; place-items: center; transition: .3s; }
.hero__box:hover { background: #fff; color: #111; }
.hero__box:first-child .ic { transform: rotate(180deg); }
.hero__vdots { position: absolute; right: 34px; top: 50%; transform: translateY(-50%); display: grid; gap: 14px; z-index: 3; }
.hero__wave { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: clamp(40px, 6vw, 90px); z-index: 2; color: var(--bg); display: block; }
.hero__notes { position: absolute; right: 5%; top: 34%; z-index: 2; display: grid; gap: 70px; max-width: 290px; font-size: .78rem; line-height: 1.5; }
.hero__notes p { margin: 0; padding: 14px 18px; background: rgba(0,0,0,.28); backdrop-filter: blur(8px); display: flex; gap: 12px; align-items: flex-start; }
.hero__notes p:nth-child(2) { margin-left: -110px; }
.hero__notes .ic { margin-top: .2em; }
.hero__words { width: 100vw; margin: 34px 0 34px calc(50% - 50vw); overflow: hidden; white-space: nowrap; pointer-events: none; }
.hero__words div { display: inline-block; animation: marquee 46s linear infinite; font: italic 400 clamp(3.4rem, 9vw, 8rem)/1.15 var(--font-a); color: transparent; -webkit-text-stroke: 1px rgba(255,255,255,.85); }
.hero__words b { font-weight: 400; color: #fff; -webkit-text-stroke: 0; }
.hero__words span, .hero__words b { margin-right: .5em; }
.hero__line { display: flex; align-items: center; justify-content: space-between; gap: 24px; flex-wrap: wrap; width: 100%; padding-top: 22px; border-top: 1px solid rgba(255,255,255,.4); font-size: .86rem; }
.hero__line span { display: inline-flex; align-items: center; gap: 8px; margin-right: 22px; }
.hero--words .hero__in { align-items: stretch; }
.hero--words h1 { font-size: clamp(1.9rem, 3.4vw, 3rem); max-width: 20ch; }
.hero-cor .hero__in { justify-content: space-between; padding: 150px 0 52px; }
.hero-cor h1 { font-size: clamp(2.5rem, 5.4vw, 4.9rem); line-height: .98; max-width: 13ch; text-transform: uppercase; }
.hero-cor .eyebrow { color: #fff; }
.hero-cor__bot { display: flex; justify-content: space-between; align-items: flex-end; gap: 32px; width: 100%; }
.hero-cor__trust { max-width: 270px; font-size: .86rem; }
.hero-cor__trust p { margin: 12px 0 0; }
.hero-cor__cta { max-width: 430px; font-size: .92rem; }
.hero-cor__cta .btn-row { margin-top: 16px; }
[data-eyebrow="script"] .eyebrow { display: block; font: 400 clamp(2.4rem, 4vw, 3.4rem)/1 'Mrs Saint Delafield', cursive; letter-spacing: 0; text-transform: none; opacity: .8; margin-bottom: -4px; }
.collage--hours { padding: 0 0 80px; }
.hours-card { position: absolute; left: 28px; bottom: 0; width: min(300px, 78%); background: var(--accent); color: #fff; padding: 28px; --ink: #fff; }
.hours-card h3 { font-size: 1.5rem; margin-bottom: 14px; }
.hours-card li { display: flex; justify-content: space-between; gap: 14px; padding: 9px 0; border-bottom: 1px solid rgba(255,255,255,.35); font-size: .8rem; }
.hours-card p { margin: 14px 0 0; font-size: .8rem; font-style: italic; }
.offer { display: grid; grid-template-columns: 1fr 1fr; background: var(--alt); }
.offer img { width: 100%; height: 100%; min-height: 340px; object-fit: cover; }
.offer__txt { padding: clamp(36px, 6vw, 90px); display: flex; flex-direction: column; justify-content: center; align-items: flex-start; }
.offer__n { font: var(--h-weight) clamp(3.4rem, 8vw, 6.4rem)/1 var(--font-h); color: var(--accent); }
.value { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 34px 26px; text-align: center; }
.value .ic { width: 42px; height: 42px; stroke-width: 1; color: var(--accent); margin: 0 auto 16px; display: block; }
.value h3 { font-size: 1.3rem; margin-bottom: 8px; font-style: var(--h-style); }
.value p { font-size: .9rem; margin: 0; }

.hero-ob .hero__in { justify-content: flex-end; padding-bottom: 64px; }
.hero-ob h1 { font-weight: 300; }
.hero-ob__row { display: flex; justify-content: space-between; align-items: flex-end; gap: 40px; width: 100%; }
.hero-ob__side { max-width: 300px; font-size: .92rem; }

.hero-sp { display: grid; grid-template-columns: minmax(340px, 1fr) 1.85fr; min-height: min(80vh, 780px); background: var(--panel); color: var(--panel-ink); --ink: var(--panel-ink); }
.hero-sp--narrow { grid-template-columns: 1fr 1.25fr; }
.hero-sp__panel { padding: clamp(36px, 5vw, 80px); display: flex; flex-direction: column; justify-content: center; position: relative; overflow: hidden; }
.hero-sp__panel .eyebrow { color: inherit; opacity: .8; }
.hero-sp__panel h1 { font-size: clamp(2.1rem, 3.6vw, 3.4rem); }
.hero-sp--narrow h1 { font-size: clamp(2.8rem, 6vw, 5.4rem); }
.hero-sp__stats { display: flex; gap: 40px; margin-top: auto; padding-top: 48px; }
.hero-sp__stats b { display: block; font: 400 2.5rem/1.1 var(--font-h); }
.hero-sp__stats span { font-size: .62rem; letter-spacing: .14em; text-transform: uppercase; opacity: .8; display: block; max-width: 18ch; }
.hero-sp__img { background-size: cover; background-position: center; min-height: 360px; }
.hero-sp__flora { position: absolute; right: -40px; bottom: -50px; width: 260px; height: 260px; stroke-width: .35; opacity: .5; }
.hero-sp .btn { align-self: flex-start; margin-top: 26px; }

.hero-strip .hero__in { justify-content: center; padding-bottom: 150px; }
.hero-strip__bar { position: absolute; right: 0; bottom: 0; display: flex; background: rgba(255,255,255,.16); backdrop-filter: blur(8px); z-index: 2; }
.hero-strip__bar div { display: flex; align-items: center; gap: 14px; padding: 26px 34px; font-size: .86rem; line-height: 1.4; max-width: 250px; border-left: 1px solid rgba(255,255,255,.2); }
.hero-strip__bar .ic { width: 34px; height: 34px; stroke-width: 1; }

.pill-tag { display: inline-flex; align-items: center; gap: 8px; padding: 7px 16px; border-radius: 999px; background: rgba(255,255,255,.16); backdrop-filter: blur(6px); font-size: .78rem; margin-bottom: 22px; }
.pill-tag::before { content: ""; width: 6px; height: 6px; border-radius: 50%; background: currentColor; }
.hero-rate__grid { display: grid; grid-template-columns: 1.3fr .7fr; gap: 40px; align-items: end; width: 100%; }
.hero-rate h1 { font-size: clamp(2.3rem, 4.8vw, 4.2rem); }
.rate-card { justify-self: end; background: rgba(255,255,255,.14); backdrop-filter: blur(10px); border-radius: var(--radius); padding: 24px 28px; min-width: 230px; }
.rate-card small { display: block; opacity: .85; }
.rate-card b { font: 500 2.3rem/1.2 var(--font-h); display: block; margin-top: 10px; }
.avatars { display: flex; }
.avatars img { width: 40px; height: 40px; border-radius: 50%; object-fit: cover; border: 2px solid #fff; margin-left: -10px; }
.avatars img:first-child { margin-left: 0; }
.stars { color: #f5b301; letter-spacing: 2px; font-size: .9rem; }
.hero-rate__feats { display: grid; grid-template-columns: repeat(3, 1fr); gap: 32px; margin-top: 56px; padding-top: 32px; border-top: 1px solid rgba(255,255,255,.22); width: 100%; }
.hero-rate__feats div { display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; font-size: .86rem; }
.hero-rate__feats .ic { width: 32px; height: 32px; grid-row: span 2; }
.hero-rate__feats h4 { margin: 0; font-size: 1.05rem; }
.hero-rate__feats p { margin: 0; opacity: .8; }
.hero-tall .hero__in { justify-content: flex-end; }
.hero-tall__box { max-width: 640px; }
.hero-tall__meta { display: flex; align-items: center; gap: 18px; flex-wrap: wrap; margin-top: 28px; }
.hero-tall__bul { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; margin-top: 34px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.22); font-size: .88rem; }
.hero-tall__bul li::before { content: "•"; margin-right: 8px; }

.hero-fr { background: var(--bg); padding: 0 0 clamp(18px, 2.4vw, 36px); color: inherit; }
.hero-fr__box { position: relative; isolation: isolate; margin: 0 clamp(16px, 2.4vw, 36px); min-height: 50vh; display: flex; align-items: center; justify-content: center; text-align: center; color: #fff; --ink: #fff; padding: 60px clamp(24px, 8vw, 140px); overflow: hidden; }
.hero-fr--tall .hero-fr__box { min-height: 80vh; }
.hero-fr--left .hero-fr__box { justify-content: flex-start; text-align: left; }
.hero-fr--left h1 { font-size: clamp(2rem, 3.6vw, 3.2rem); }
.hero-fr--left .hero-fr__txt { max-width: 440px; }
.hero-fr--light .hero-fr__box { color: var(--ink-base); --ink: var(--ink-base); }
.hero-fr--light .hero__bg::after { background: linear-gradient(90deg, rgba(255,255,255,.82), rgba(255,255,255,.1) 70%); }
.hero-fr__quote { font: italic 300 clamp(1.2rem, 2.2vw, 1.75rem)/1.5 var(--font-a); max-width: 30ch; opacity: .85; margin: 0 auto; }

.hero-ss { display: grid; grid-template-columns: 1fr 1fr; min-height: 100vh; background: var(--bg); color: var(--text); --ink: var(--ink-base); }
.hero-ss__img { position: relative; isolation: isolate; min-height: 50vh; }
.hero-ss__img .hero__bg::after { background: rgba(0,0,0,.1); }
.hero-ss__txt { display: flex; flex-direction: column; justify-content: center; padding: 120px clamp(32px, 7vw, 110px) 80px; position: relative; }
.hero-ss__txt h1 { font-size: clamp(1.6rem, 2.6vw, 2.3rem); max-width: 18ch; color: var(--ink-base); }
.hero-ss__txt .btn { align-self: flex-start; margin-top: 18px; }
.hero-ss__dots { position: absolute; right: 30px; top: 50%; transform: translateY(-50%); display: grid; gap: 14px; }
.dot { width: 9px; height: 9px; border-radius: 50%; border: 1px solid currentColor; background: none; padding: 0; cursor: pointer; opacity: .55; color: inherit; }
.dot.is-on { background: currentColor; opacity: 1; }

.hero-arch { background: var(--dark); }
.hero-arch .hero__bg::after { background: color-mix(in srgb, var(--dark) 80%, transparent); }
.hero-arch__grid { display: grid; grid-template-columns: 1.15fr .85fr; gap: clamp(32px, 6vw, 80px); align-items: center; width: 100%; }
.hero-arch .hero__in { padding: 70px 0; }
.hero-arch h1 { font-size: clamp(2.6rem, 5.6vw, 4.8rem); line-height: 1.05; }
.hero-arch h1 small { display: block; font-size: .42em; line-height: 1.5; }
.hero-arch__img { border-radius: 999px 999px 0 0; aspect-ratio: 3/4; object-fit: cover; width: 100%; max-width: 380px; justify-self: end; }
.hero-arch .eyebrow { color: rgba(255,255,255,.8); }
.hero-arch .btn { background: var(--bg); color: var(--ink-base); border-color: var(--bg); padding: 12px 20px; font-size: .64rem; }

.hero-curve { z-index: 2; background: #000; text-align: center; padding: 120px 0 210px; border-radius: 0 0 50% 50% / 0 0 90px 90px; }
.hero-curve h1 { font-size: clamp(2.8rem, 7vw, 5.6rem); }
.hero-curve h1 u { font-style: italic; text-decoration-thickness: 3px; text-underline-offset: 12px; }
.hero-curve .eyebrow { color: var(--accent); margin-top: 18px; }
.hero-curve__card { position: absolute; left: 50%; bottom: 0; transform: translate(-50%, 50%); width: min(92%, 1000px); background: var(--primary); color: #fff; border-radius: var(--radius); display: grid; grid-template-columns: 220px 1fr auto; align-items: center; gap: 28px; padding: 14px 30px 14px 14px; text-align: left; box-shadow: 0 30px 60px rgba(0,0,0,.25); }
.hero-curve__card img { height: 110px; width: 100%; object-fit: cover; border-radius: calc(var(--radius) - 8px); }
.hero-curve__card h3 { color: #fff; margin: 0 0 4px; font-size: 1.3rem; }
.hero-curve__card p { margin: 0; font-size: .85rem; opacity: .9; }
.hero-curve__card .btn { background: #fff; color: #111; border-color: #fff; }
.hero-curve + .sec { padding-top: 170px; }

.hero-fig { background: var(--alt); color: var(--text); --ink: var(--ink-base); }
.hero-fig__grid { display: grid; grid-template-columns: 1fr 1fr; gap: clamp(32px, 6vw, 90px); align-items: end; min-height: min(86vh, 820px); padding-top: 60px; }
.hero-fig__img { border-radius: 999px 999px 0 0; aspect-ratio: 4/5; object-fit: cover; width: 100%; max-width: 460px; }
.hero-fig__txt { align-self: center; padding-bottom: 60px; }
.hero-fig h1 { color: var(--ink-base); font-size: clamp(2.2rem, 4.4vw, 3.8rem); margin-bottom: .1em; }
.hero-fig__soft { font: italic 400 clamp(1.5rem, 2.6vw, 2.2rem)/1.3 var(--font-a); color: var(--ink-base); opacity: .45; margin-bottom: 22px; }

/* ---------- Banner de páginas internas ---------- */
.page-hero { position: relative; isolation: isolate; color: #fff; --ink: #fff; text-align: center; padding: 190px 0 100px; background: #151515; }
[data-nav="solid"] .page-hero, [data-nav="dark"] .page-hero { padding-top: 110px; }
.page-hero h1 { color: #fff; margin: 0; }
.crumb { font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; opacity: .85; margin-top: 16px; }
.crumb a:hover { text-decoration: underline; }

/* ---------- Secciones ---------- */
.strip { display: grid; grid-template-columns: 1.2fr 1.6fr 1fr; gap: 6px; }
.strip img { height: clamp(220px, 30vw, 400px); width: 100%; object-fit: cover; }
.marquee { overflow: hidden; white-space: nowrap; padding: 26px 0; }
.marquee div { display: inline-block; animation: marquee 38s linear infinite; font: italic 400 clamp(2.4rem, 6vw, 5rem)/1.2 var(--font-a); color: color-mix(in srgb, var(--ink) 14%, transparent); }
@keyframes marquee { to { transform: translateX(-50%); } }
.collage { position: relative; padding: 0 56px 56px 0; }
.collage__a { aspect-ratio: 4/5; object-fit: cover; width: 100%; border-radius: var(--radius); }
.collage__b { position: absolute; right: 0; bottom: 0; width: 46%; aspect-ratio: 1; object-fit: cover; border: 8px solid var(--bg); border-radius: var(--radius); }
.collage__tag { position: absolute; left: 20px; top: 20px; background: var(--primary); color: var(--on-primary); padding: 12px 18px; font-size: .78rem; border-radius: var(--radius); }
.mini-stats { display: flex; gap: 40px; margin: 26px 0; padding: 22px 0; border-block: 1px solid var(--border); }
.mini-stats b, .stat b { display: block; font: var(--h-weight) 2.5rem/1.1 var(--font-h); color: var(--ink); }
.mini-stats span, .stat span { font-size: .78rem; }
.stat { text-align: center; padding: 10px; }
.pills { display: grid; grid-template-columns: repeat(4, 1fr); gap: clamp(12px, 3vw, 36px); max-width: 860px; margin: 0 auto; }
.pills a { position: relative; border-radius: 999px; overflow: hidden; aspect-ratio: 3/5; display: grid; place-items: center; color: #fff; text-align: center; font-size: .95rem; line-height: 1.3; }
.pills img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -1; filter: brightness(.62); transition: transform .6s; }
.pills a:hover img { transform: scale(1.06); }
.pills .ic { width: 28px; height: 28px; display: block; margin: 0 auto 8px; stroke-width: 1; }
.boxed { display: grid; grid-template-columns: 1.4fr 1fr; gap: 6px; }
.boxed img { height: 100%; min-height: 320px; width: 100%; object-fit: cover; }
.boxed__box { border: 1px solid var(--border); padding: clamp(30px, 5vw, 64px); display: flex; flex-direction: column; justify-content: center; }
.arch3 { display: grid; grid-template-columns: .8fr 1.1fr .9fr; gap: clamp(24px, 4vw, 60px); align-items: center; }
.arch3__half { border-radius: 0 999px 999px 0; aspect-ratio: 1; object-fit: cover; width: 100%; }
.arch3__arch { border-radius: 999px 999px 0 0; aspect-ratio: 3/4; object-fit: cover; width: 100%; }
.arch3 figure { margin: 0; position: relative; }
.arch3 figcaption { position: absolute; left: 0; right: 0; bottom: 18px; text-align: center; color: #fff; font: 400 1.1rem var(--font-h); }
.tint-img { aspect-ratio: 4/5; object-fit: cover; width: 100%; max-width: 440px; justify-self: center; border-radius: var(--radius); }
.numbers { display: grid; grid-template-columns: auto 1fr; gap: 6px 26px; align-items: center; }
.numbers b { font: var(--h-weight) clamp(3rem, 6vw, 5rem)/1 var(--font-h); color: var(--ink); }
.numbers b::before { content: "+ "; color: var(--accent); }
.round-box { border-radius: calc(var(--radius) * 2.4); }
.card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; display: flex; flex-direction: column; transition: transform .35s, box-shadow .35s; }
.card:hover { transform: translateY(-6px); box-shadow: 0 24px 50px rgba(0,0,0,.1); }
.card__img { aspect-ratio: 4/3; overflow: hidden; position: relative; }
.card__img img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.card:hover .card__img img { transform: scale(1.05); }
.card__num { position: absolute; left: 16px; top: 16px; background: var(--surface); color: var(--ink); border-radius: 999px; padding: 4px 14px; font-size: .78rem; font-weight: 600; }
.card__body { padding: 26px; display: flex; flex-direction: column; flex: 1; }
.card__body h3 { font-size: 1.35rem; }
.card__body p { font-size: .9rem; flex: 1; }
.card__cat { font-family: var(--font-ui); font-size: calc(var(--eb-size) * .9); letter-spacing: var(--eb-spacing); text-transform: var(--eb-case); color: var(--eb-color); font-weight: var(--eb-weight); margin-bottom: 8px; }
.card__meta { display: flex; justify-content: space-between; align-items: center; gap: 12px; padding-top: 16px; margin-top: 8px; border-top: 1px solid var(--border); font-size: .84rem; color: var(--ink); }
.card__meta b { font: var(--h-weight) 1.25rem var(--font-h); }
.card__meta span { display: inline-flex; gap: 6px; align-items: center; }
.card__actions { display: flex; gap: 10px; margin-top: 18px; }
.card__actions .btn { padding: 13px 14px; flex: 1; font-size: calc(var(--btn-size) * .88); }
[data-btn="pill"] .card__actions .btn { padding: 6px 14px 6px 6px; }
[data-btn="pill"] .card__actions .btn::before { display: none; }
.tile { position: relative; isolation: isolate; aspect-ratio: 4/5; display: flex; align-items: flex-end; justify-content: center; text-align: center; color: #fff; overflow: hidden; border-radius: var(--radius); }
.tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform .7s; }
.tile:hover img { transform: scale(1.06); }
.tile::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(transparent 35%, rgba(0,0,0,.72)); }
.tile__box { padding: 30px 24px; }
.tile__box h3 { color: #fff; font-size: 1.45rem; margin-bottom: 6px; }
.tile__box p { font-size: .84rem; opacity: .88; margin-bottom: 14px; }
.tile__box .link { color: #fff; }
[data-tile="label"] .tile { align-items: center; }
[data-tile="label"] .tile::after { display: none; }
[data-tile="label"] .tile__box { background: var(--surface); color: var(--text); margin: 0 12%; padding: 26px 20px; }
[data-tile="label"] .tile__box h3, [data-tile="label"] .tile__box .link { color: var(--ink-base); }
[data-tile="center"] .tile { align-items: center; aspect-ratio: 1; }
[data-tile="center"] .tile::after { background: rgba(0,0,0,.38); }
.icon-item { text-align: left; }
.center .icon-item, .icon-item.center { text-align: center; }
.icon-item .ic { width: 46px; height: 46px; stroke-width: .9; color: var(--accent); margin-bottom: 16px; }
.center .icon-item .ic { margin-inline: auto; display: block; }
.icon-item h3 { font-size: 1.3rem; margin-bottom: 8px; }
.icon-item p { font-size: .9rem; margin-bottom: 12px; }
.iconrow { display: flex; justify-content: space-between; gap: 18px; flex-wrap: wrap; }
.iconrow a { text-align: center; font-size: .6rem; letter-spacing: .2em; text-transform: uppercase; color: var(--accent); flex: 1; min-width: 86px; }
.iconrow .ic { width: 44px; height: 44px; stroke-width: .8; display: block; margin: 0 auto 12px; }
.numrow { display: grid; grid-template-columns: 1fr 1fr; background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); overflow: hidden; margin-bottom: 28px; }
.numrow:nth-child(even) > div { order: 2; }
.numrow > div { padding: clamp(28px, 4vw, 56px); }
.numrow img { width: 100%; height: 100%; min-height: 280px; object-fit: cover; }
.numrow__n { font: 300 3.4rem/1 var(--font-h); color: color-mix(in srgb, var(--accent) 45%, transparent); display: block; margin-bottom: 10px; }
.tabs { display: flex; justify-content: center; gap: clamp(14px, 3vw, 40px); flex-wrap: wrap; margin-bottom: 34px; }
.tab { background: none; border: 0; border-bottom: 1px solid transparent; color: var(--ink); font: 500 .66rem/1 var(--font-ui); letter-spacing: .2em; text-transform: uppercase; padding: 8px 2px 10px; cursor: pointer; opacity: .55; display: grid; justify-items: center; gap: 10px; }
.tab .ic { width: 34px; height: 34px; stroke-width: .9; }
.tab.is-on, .tab:hover { opacity: 1; border-color: currentColor; }
.chips { display: flex; justify-content: center; gap: 10px; flex-wrap: wrap; margin-bottom: 40px; }
.chip { background: var(--surface); border: 1px solid var(--border); color: var(--ink); border-radius: 999px; padding: 9px 20px; font: 500 .82rem var(--font-ui); cursor: pointer; transition: .25s; }
.chip.is-on, .chip:hover { background: var(--primary); border-color: var(--primary); color: var(--on-primary); }
.prices { display: grid; grid-template-columns: 1fr 1fr; gap: 6px clamp(32px, 6vw, 90px); }
.prices--one { grid-template-columns: 1fr; max-width: 620px; margin-inline: auto; }
.price { padding: 16px 0; border-bottom: 1px solid var(--border); }
.price__top { display: flex; align-items: baseline; gap: 10px; color: var(--ink); }
.price__top h4 { margin: 0; font: 500 .8rem/1.4 var(--font-ui); letter-spacing: .12em; text-transform: uppercase; }
.price__top i { flex: 1; border-bottom: 1px dotted color-mix(in srgb, var(--ink) 40%, transparent); transform: translateY(-4px); }
.price__top b { font: var(--h-weight) 1.15rem var(--font-h); white-space: nowrap; }
.price small { font-size: .82rem; opacity: .8; }
.person { text-align: center; }
.person img { aspect-ratio: 4/5; object-fit: cover; width: 100%; border-radius: var(--radius); margin-bottom: 16px; filter: saturate(.9); }
.person h3 { font-size: 1.2rem; margin-bottom: 2px; }
.person span { font-size: .8rem; font-style: italic; }
.quote-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 32px; display: flex; flex-direction: column; gap: 18px; }
.quote-card p { font-size: .96rem; flex: 1; margin: 0; }
.who { display: flex; align-items: center; gap: 12px; }
.who img { width: 46px; height: 46px; border-radius: 50%; object-fit: cover; }
.who b { display: block; color: var(--ink); font-weight: 600; font-size: .92rem; }
.who small { font-size: .78rem; }
.quotes { max-width: 780px; margin: 0 auto; text-align: center; }
.quotes .ic--q { width: 46px; height: 46px; color: var(--accent); margin: 0 auto 20px; display: block; }
.quotes .slide { display: none; }
.quotes .slide.is-on { display: block; }
.quotes blockquote { margin: 0 0 22px; font: italic 400 clamp(1.3rem, 2.4vw, 1.9rem)/1.5 var(--font-a); color: var(--ink); }
.quotes cite { font: 600 .68rem var(--font-ui); letter-spacing: .2em; text-transform: uppercase; font-style: normal; }
.quotes__dots { display: flex; justify-content: center; gap: 10px; margin-top: 26px; color: var(--ink); }
.post .card__img { aspect-ratio: 16/10; }
.post__meta { display: flex; gap: 14px; font-size: .68rem; letter-spacing: .14em; text-transform: uppercase; margin-bottom: 10px; color: var(--accent); }
.cta { position: relative; isolation: isolate; text-align: center; color: #fff; --ink: #fff; padding: clamp(80px, 11vw, 150px) 0; background: #151515; }
.cta .hero__bg::after { background: rgba(0,0,0,.6); }
.pack { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 38px 32px; display: flex; flex-direction: column; }
.pack--top { background: var(--dark); color: rgba(255,255,255,.78); --ink: #fff; border-color: var(--dark); }
.pack--top .checks .ic { color: #fff; }
.pack__price { font: var(--h-weight) 2.5rem/1.1 var(--font-h); color: var(--ink); margin: 12px 0 2px; }
.pack .checks { margin: 22px 0 28px; flex: 1; font-size: .92rem; }
.pack--top .btn { background: #fff; color: #111; border-color: #fff; }
.gal { display: grid; grid-template-columns: repeat(4, 1fr); gap: 8px; }
.gal a { position: relative; aspect-ratio: 1; overflow: hidden; display: block; border-radius: var(--radius); }
.gal img { width: 100%; height: 100%; object-fit: cover; transition: transform .6s; }
.gal a:hover img { transform: scale(1.07); }
.gal span { position: absolute; left: 0; right: 0; bottom: 0; padding: 30px 16px 14px; color: #fff; font-size: .82rem; background: linear-gradient(transparent, rgba(0,0,0,.7)); opacity: 0; transition: opacity .3s; }
.gal a:hover span { opacity: 1; }
.news { border: 1px solid var(--border); padding: clamp(40px, 7vw, 90px) 24px; text-align: center; border-radius: var(--radius); }
.line-form { display: flex; gap: 14px; max-width: 460px; margin: 26px auto 0; border-bottom: 1px solid color-mix(in srgb, var(--ink) 50%, transparent); }
.line-form input { flex: 1; background: none; border: 0; padding: 12px 0; font: inherit; color: var(--ink); min-width: 0; }
.line-form button { background: none; border: 0; color: var(--ink); cursor: pointer; font: 600 .66rem var(--font-ui); letter-spacing: .2em; text-transform: uppercase; }
.checker { display: grid; grid-template-columns: repeat(4, 1fr); }
.checker > * { aspect-ratio: 1; }
.checker img { width: 100%; height: 100%; object-fit: cover; }
.checker__t { background: var(--alt); display: flex; flex-direction: column; justify-content: center; padding: clamp(18px, 3vw, 44px); }
.checker__t:nth-child(4n+3) { background: var(--alt2); }
.checker__t .ic { width: 48px; height: 48px; stroke-width: .8; color: var(--ink); margin-bottom: 16px; }
.checker__t h3 { font-size: 1.35rem; margin-bottom: 6px; }
.checker__t p { font-size: .84rem; margin: 0; }
.bigword { text-align: center; font: 400 clamp(4.4rem, 17vw, 15rem)/1 var(--font-h); background: linear-gradient(90deg, var(--ink), #cdb9a0 50%, var(--ink)); -webkit-background-clip: text; background-clip: text; color: transparent; padding: 40px 0 0; margin: 0; letter-spacing: .01em; }
.bigband h2 { font-size: clamp(1.9rem, 4vw, 3.2rem); line-height: 1.4; }
.bigband img { display: inline-block; width: 1.5em; height: 1em; object-fit: cover; border-radius: 999px; vertical-align: -.12em; margin: 0 .15em; }
.video { position: relative; isolation: isolate; display: grid; place-items: center; min-height: clamp(280px, 46vw, 560px); color: #fff; overflow: hidden; border-radius: var(--radius); }
.video .hero__bg::after { background: rgba(0,0,0,.35); }
.video__btn { width: 84px; height: 84px; border-radius: 50%; border: 1px solid rgba(255,255,255,.8); display: grid; place-items: center; transition: .3s; }
.video:hover .video__btn { background: #fff; color: #111; }
.video__btn .ic { width: 26px; height: 26px; }
.video small { position: absolute; bottom: 24px; left: 0; right: 0; text-align: center; font-size: .68rem; letter-spacing: .2em; text-transform: uppercase; }
.product { text-align: center; }
.product img { aspect-ratio: 4/5; object-fit: cover; width: 100%; background: var(--alt2); margin-bottom: 14px; border-radius: var(--radius); }
.product h3 { font-size: 1.1rem; margin-bottom: 2px; }
.feat { display: grid; grid-template-columns: auto 1fr; gap: 4px 18px; margin-bottom: 26px; }
.feat .ic { width: 52px; height: 52px; padding: 13px; border-radius: 50%; background: var(--alt); color: var(--accent); grid-row: span 2; }
.feat h3 { font-size: 1.15rem; margin: 0; }
.feat p { margin: 0; font-size: .9rem; }
.intro .ic { width: 54px; height: 54px; stroke-width: .8; color: var(--accent); margin: 0 auto 10px; display: block; }

/* ---------- Formularios, modal y reserva ---------- */
.field { display: grid; gap: 7px; margin-bottom: 18px; }
.field label, .legend { font-size: .66rem; letter-spacing: .18em; text-transform: uppercase; font-weight: 600; color: var(--ink); }
.field input, .field select, .field textarea { width: 100%; padding: 13px 15px; font: inherit; font-size: .94rem; color: var(--ink); background: var(--surface); border: 1px solid var(--border); border-radius: min(var(--radius), 12px); }
.field input:focus, .field select:focus, .field textarea:focus { outline: 2px solid var(--accent); outline-offset: 1px; }
.form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 18px; }
.panel { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: clamp(24px, 4vw, 44px); }
dialog { border: 0; padding: 0; background: var(--bg); color: var(--text); width: min(94vw, 620px); max-height: 92vh; border-radius: var(--radius); }
dialog::backdrop { background: rgba(0,0,0,.6); backdrop-filter: blur(3px); }
.modal { padding: clamp(24px, 4vw, 44px); position: relative; }
.modal__x { position: absolute; top: 14px; right: 14px; background: none; border: 0; color: var(--ink); width: 40px; height: 40px; cursor: pointer; }
.modal__x .ic { width: 22px; height: 22px; }
#lightbox { background: transparent; width: auto; max-width: 94vw; overflow: visible; }
#lightbox figure { margin: 0; }
#lightbox img { max-height: 84vh; max-width: 92vw; margin: 0 auto; }
#lightbox figcaption { color: #fff; text-align: center; padding-top: 12px; font-size: .86rem; }
.opt-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 12px; margin-bottom: 30px; }
.opt { position: relative; }
.opt input { position: absolute; opacity: 0; inset: 0; cursor: pointer; }
.opt span { display: block; padding: 15px 16px; border: 1px solid var(--border); border-radius: min(var(--radius), 12px); background: var(--surface); color: var(--ink); font-size: .9rem; transition: .2s; line-height: 1.35; }
.opt span small { display: block; opacity: .7; font-size: .78rem; }
.opt input:checked + span { border-color: var(--primary); background: var(--primary); color: var(--on-primary); }
.opt input:focus-visible + span { outline: 2px solid var(--accent); outline-offset: 2px; }
.slots { grid-template-columns: repeat(4, 1fr); }
.slots span { text-align: center; padding: 11px 6px; }
.step-t { display: flex; align-items: center; gap: 12px; margin: 0 0 18px; font-size: 1.3rem; }
.step-t i { width: 34px; height: 34px; border-radius: 50%; background: var(--primary); color: var(--on-primary); display: grid; place-items: center; font: 600 .86rem var(--font-b); font-style: normal; flex: none; }
.aside { position: sticky; top: 110px; }
.sum li { display: flex; justify-content: space-between; gap: 16px; padding: 11px 0; border-bottom: 1px solid var(--border); font-size: .9rem; }
.sum b { color: var(--ink); text-align: right; }
.sum__total { font: var(--h-weight) 2rem var(--font-h); color: var(--ink); margin: 16px 0; }
.two-col { display: grid; grid-template-columns: 1.6fr 1fr; gap: clamp(28px, 5vw, 64px); align-items: start; }
.info-card { background: var(--surface); border: 1px solid var(--border); border-radius: var(--radius); padding: 32px; text-align: center; }
.info-card .ic { width: 40px; height: 40px; stroke-width: 1; color: var(--accent); margin: 0 auto 14px; display: block; }
.info-card h3 { font-size: 1.2rem; }
.info-card p { margin: 0; font-size: .92rem; }
.map { width: 100%; height: 380px; border: 0; display: block; filter: grayscale(.4); border-radius: var(--radius); }
details { border-bottom: 1px solid var(--border); padding: 18px 0; }
summary { cursor: pointer; font: var(--h-weight) 1.2rem var(--font-h); color: var(--ink); list-style: none; display: flex; justify-content: space-between; gap: 16px; }
summary::after { content: "+"; font-family: var(--font-b); }
details[open] summary::after { content: "–"; }
details p { margin: 12px 0 0; }
.prose { max-width: 740px; margin: 0 auto; font-size: 1.04rem; }
.prose h2 { font-size: 1.8rem; margin-top: 1.6em; }
.prose blockquote { margin: 2em 0; padding-left: 24px; border-left: 2px solid var(--accent); font: italic 1.35rem/1.5 var(--font-a); color: var(--ink); }
.prose img { width: 100%; aspect-ratio: 16/9; object-fit: cover; margin-bottom: 36px; border-radius: var(--radius); }
.tags { display: flex; gap: 8px; flex-wrap: wrap; margin-top: 30px; }
.tags span { border: 1px solid var(--border); padding: 5px 14px; font-size: .78rem; border-radius: 999px; }
.e404 { min-height: 100vh; display: grid; place-items: center; text-align: center; padding: 120px 24px 80px; }
.e404 b { font: 300 clamp(6rem, 22vw, 15rem)/1 var(--font-h); color: color-mix(in srgb, var(--accent) 55%, transparent); display: block; }

/* ---------- Pie ---------- */
.ftr { background: var(--dark); color: rgba(255,255,255,.68); padding: clamp(56px, 7vw, 96px) 0 0; font-size: .9rem; border-top: 1px solid rgba(255,255,255,.08); }
.ftr__grid { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.3fr; gap: 44px; padding-bottom: 56px; }
.ftr .brand { color: #fff; margin-bottom: 16px; }
.ftr h4 { color: #fff; font: 600 .66rem var(--font-ui); letter-spacing: .22em; text-transform: uppercase; margin-bottom: 20px; }
.ftr li { margin-bottom: 10px; display: flex; gap: 10px; align-items: flex-start; }
.ftr li .ic { margin-top: .28em; color: var(--accent); }
.ftr a:hover { color: #fff; }
.ftr__bot { border-top: 1px solid rgba(255,255,255,.12); padding: 22px 0; display: flex; justify-content: space-between; gap: 16px; flex-wrap: wrap; font-size: .78rem; }
.social { display: flex; gap: 10px; margin-top: 18px; }
.social a { width: 38px; height: 38px; border: 1px solid rgba(255,255,255,.25); border-radius: 50%; display: grid; place-items: center; }
.wa-float { position: fixed; right: 20px; bottom: 20px; z-index: 40; width: 56px; height: 56px; border-radius: 50%; background: #25D366; color: #fff; display: grid; place-items: center; box-shadow: 0 10px 30px rgba(0,0,0,.25); }
.wa-float .ic { width: 28px; height: 28px; }
.js .reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .8s ease; }
.js .reveal.is-in { opacity: 1; transform: none; }

/* ---------- Adaptable ---------- */
@media (max-width: 1240px) {
  .nav, .hdr__cta .btn { display: none; }
  .burger { display: block; }
  [data-logo="center"] .hdr__in { display: flex; }
  [data-logo="center"] .brand { flex-direction: row; }
}
@media (max-width: 1080px) {
  .g4 { grid-template-columns: repeat(2, 1fr); }
  .ftr__grid { grid-template-columns: 1fr 1fr; }
  .hero-sp, .hero-sp--narrow { grid-template-columns: 1fr; }
  .arch3 { grid-template-columns: 1fr 1fr; }
  .arch3__half { display: none; }
}
@media (max-width: 860px) {
  .g3, .split, .two-col, .boxed, .prices, .hero-ss, .hero-arch__grid, .hero-fig__grid, .hero-rate__grid, .numrow, .arch3 { grid-template-columns: 1fr; }
  .split--rev > :first-child, .numrow:nth-child(even) > div { order: 0; }
  .hero-rate__feats, .hero__info, .hero-tall__bul { grid-template-columns: 1fr; gap: 20px; }
  .rate-card { justify-self: start; }
  .hero-ob__row { flex-direction: column; align-items: flex-start; }
  .hero-strip__bar { position: static; flex-direction: column; }
  .hero-strip .hero__in { padding-bottom: 60px; }
  .hero-arch__img { justify-self: center; max-width: 280px; }
  .hero-fig__grid { min-height: 0; padding-top: 40px; }
  .hero-fig__img { order: 2; max-width: 320px; margin: 0 auto; }
  .hero-fig__txt { padding-bottom: 0; }
  .hero__cards { grid-template-columns: repeat(2, 1fr); margin-bottom: -120px; }
  .hero--cards { margin-bottom: 90px; }
  .bookbar { position: static; transform: none; width: auto; margin: 0 24px 40px; grid-template-columns: 1fr; }
  .hero-curve__card { grid-template-columns: 1fr; position: relative; transform: none; left: 0; margin: 50px auto -150px; padding: 14px 14px 22px; text-align: center; }
  .hero-curve { padding-bottom: 60px; }
  .hero-curve + .sec { padding-top: 200px; }
  .hero__arrow, .hero__notes, .hero__vdots { display: none; }
  .hero-cor__bot { flex-direction: column; align-items: flex-start; }
  .offer { grid-template-columns: 1fr; }
  .hero--low .hero__in { padding-bottom: 120px; }
  .checker { grid-template-columns: 1fr 1fr; }
  .pills { grid-template-columns: repeat(2, 1fr); max-width: 420px; }
  .gal { grid-template-columns: repeat(2, 1fr); }
  .strip { grid-template-columns: 1fr 1fr; }
  .strip img:last-child { display: none; }
  .aside { position: static; }
  .hero-ss__txt { padding: 60px 32px; }
  .hero-ss__dots { display: none; }
  .page-hero { padding: 150px 0 70px; }
}
@media (max-width: 560px) {
  .g2, .g4, .form-row, .opt-grid, .ftr__grid { grid-template-columns: 1fr; }
  .slots { grid-template-columns: repeat(3, 1fr); }
  .wrap { width: min(100% - 36px, var(--wrap)); }
  .countdown { gap: 18px; }
  .mini-stats, .hero-sp__stats { gap: 22px; }
  .collage { padding: 0 28px 28px 0; }
  .topbar__group:last-child { display: none; }
  .iconrow a { min-width: 30%; }
}
@media (prefers-reduced-motion: reduce) {
  * { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
  .js .reveal { opacity: 1; transform: none; }
}

/* ---------- Familia ---------- */

:root { --wrap: 1100px; --che-gold: #ddc499; --che-mute: #999691; --che-line: #41392e; --che-panel: #121212; --che-frame: 72px; }
.theme-chea-spa-center { --che-frame: 43px; }
.theme-chea-wellness-resort { --che-frame: 50px; }
.theme-chea-split-screen, .theme-chea-fullscreen { --che-frame: 65px; }
body { font-size: 20px; line-height: 1.4; }
h1 em, h2 em, h3 em { letter-spacing: inherit; }
.che-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); }
.che-h61 { font-size: clamp(34px, 4.24vw, 61px); line-height: 1.033; margin: 0; }
.h-lg { line-height: 1.059; }
.che-meta { font: 400 11px/1.4 var(--font-ui); letter-spacing: .2em; text-transform: uppercase; color: var(--accent); }
.che-title { text-align: center; }
.che-title p { font-size: 22px; line-height: 28px; max-width: 625px; margin: 15px auto 0; }

/* Botón de 204×53 con marco fantasma; enlace dorado subrayado */
.btn { position: relative; padding: 14px 62px 18px; }
[data-btn="outline"] .btn:not(.btn--light):not(.btn--wa) { border-color: #fff; color: #fff; }
.btn:not(.btn--wa)::before { content: ""; position: absolute; inset: 3px -6px; border: 1px solid rgba(255,255,255,.3); pointer-events: none; transition: inset .3s; }
.btn:not(.btn--wa):hover::before { inset: -1px; }
.link { color: var(--che-gold); background: none; border: 0; border-bottom: 1px solid currentColor; padding: 0 0 1px; cursor: pointer; line-height: 1.4; }
dialog { border: 1px solid var(--che-line); }

/* ---------- Cabecera ---------- */
.che-hdr .hdr { border-bottom: 0; }
.che-hdr .hdr__in { width: auto; margin: 0; padding-inline: clamp(18px, 5vw, var(--che-frame)); min-height: 128px; gap: 30px; transition: min-height .3s; }
.che-hdr .brand { font: 500 clamp(21px, 1.74vw, 25px)/1 var(--font-h); letter-spacing: .1em; color: #fff; }
.che-hdr--divided .brand { font-size: clamp(24px, 2.1vw, 30px); }
.che-hdr .nav { gap: clamp(14px, 1.8vw, 26px); }
.che-hdr .nav a { padding: 4px 0 3px; color: #fff; }
.che-hdr__r { display: flex; align-items: center; gap: 29px; margin-left: auto; }
.che-hdr__l { display: flex; align-items: center; }
.btn.che-hdr__book { background: none !important; border: 0 !important; padding: 0 !important; color: #fff !important; transform: none !important; filter: none !important;
  font: italic 400 17px/1 var(--font-b); letter-spacing: .035em; gap: 9px; }
.btn.che-hdr__book::before { display: none; }
.btn.che-hdr__book:hover { color: var(--che-gold) !important; }
.che-hdr__book .ic { width: 14px; height: 14px; }
.che-burger { display: block; position: relative; width: 61px; height: 30px; padding: 0; color: #fff; flex: none; }
.che-burger i { position: absolute; height: 1px; width: 50px; background: currentColor; transition: transform .3s; }
.che-burger i:first-child { right: 0; top: 9px; }
.che-burger i:last-child { left: 0; top: 15px; }
.che-burger:hover i:first-child { transform: translateX(-10px); }
.che-burger:hover i:last-child { transform: translateX(10px); }
.che-hdr.is-scrolled .hdr { background: #000; border-bottom: 1px solid var(--che-line); box-shadow: none; }
.che-hdr.is-scrolled .hdr__in { min-height: 70px; }
.che-hdr--center .nav, .che-hdr--left .nav { margin-inline: auto; }
.che-hdr--left .nav { margin-left: clamp(16px, 2.1vw, 30px); }
.che-hdr--left .hdr__in { min-height: 128px; }
.theme-chea-wellness-resort .che-hdr .hdr__in { min-height: 103px; }
.che-hdr--min .hdr__in { min-height: 104px; }
.che-hdr--min .nav, .che-hdr--min .che-hdr__book { display: none; }
.che-hdr--divided .hdr__in { display: grid; grid-template-columns: 1fr auto 1fr; width: min(100% - 48px, 1220px); margin-inline: auto; padding: 0; min-height: 106px; gap: 0; border-bottom: 1px solid rgba(255,255,255,.55); }
.che-hdr--divided .che-hdr__l { justify-content: space-between; gap: 20px; padding-right: clamp(24px, 3vw, 44px); }
.che-hdr--divided .che-hdr__r { justify-content: space-between; gap: 20px; padding-left: clamp(24px, 3vw, 44px); margin: 0; }
.che-hdr--divided .nav { gap: clamp(16px, 1.8vw, 26px); }
.che-hdr--divided.is-scrolled .hdr__in { border-bottom-color: transparent; }
.nav-panel { align-items: center; justify-content: center; text-align: center; padding: 90px 24px 40px; }
.nav-panel a { border-bottom: 0; font-size: clamp(24px, 4vh, 31px); letter-spacing: .035em; padding: 7px 0; color: #fff; }
.nav-panel a:hover { color: var(--che-gold); }
.nav-panel__close { color: #fff; top: 28px; right: clamp(18px, 5vw, 60px); }

/* ---------- Portadas ---------- */
.che-hero { position: relative; background: #0b0a08; color: #fff; overflow: hidden; isolation: isolate; }
.che-hero .slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; transition: opacity 1.2s ease, visibility 0s 1.2s; }
.che-hero .slide.is-on { opacity: 1; visibility: visible; transition: opacity 1.2s ease; z-index: 1; }
.che-bg { position: absolute; inset: 0; background: center/cover no-repeat; z-index: -1; }
.che-bg::after { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,var(--ov, .3)); }
.che-hero .slide > .che-hero__in { opacity: 0; transition: opacity .4s; }
.che-hero .slide.is-on > .che-hero__in { opacity: 1; transition: opacity .9s .5s; }
.che-hero__in { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; text-align: center; padding: 0 clamp(20px, 8vw, 250px); }
.che-hero__t { font-size: var(--fs-xl); line-height: .9; letter-spacing: 0; margin: 0; color: #fff; }
.che-circle { position: relative; display: grid; place-items: center; width: 147px; height: 147px; flex: none; border-radius: 50%; border: 1px solid rgba(255,255,255,.55); color: #fff;
  font: italic 400 21px/1 var(--font-h); letter-spacing: .035em; margin-top: -39px; transition: background .4s, border-color .4s; }
.che-circle:hover { background: rgba(255,255,255,.12); border-color: #fff; }
.che-circle--lg { width: clamp(150px, 17.4vw, 250px); height: clamp(150px, 17.4vw, 250px); margin: 0; font-family: var(--font-b); }
.che-arrow { position: absolute; top: 50%; z-index: 3; width: 120px; height: 40px; margin-top: -20px; padding: 0; background: none; border: 0; color: #fff; cursor: pointer; left: clamp(12px, 7.64vw, 110px); transition: transform .3s; }
.che-arrow svg { display: block; width: 120px; height: 8px; }
.che-arrow--next { left: auto; right: clamp(12px, 7.64vw, 110px); }
.che-arrow--next svg { transform: scaleX(-1); }
.che-arrow--prev:hover { transform: translateX(-8px); }
.che-arrow--next:hover { transform: translateX(8px); }
.che-hero--full { height: 100vh; height: 100svh; min-height: 560px; }
.che-hero--full .che-hero__in { padding-top: 106px; }

/* foto enmarcada (Beauty Spa y Spa Center) */
.che-fr { position: relative; padding: 0 clamp(16px, 5vw, var(--che-frame)); }
.che-fr__box { height: clamp(400px, 46.5vw, 670px); }
.che-fr .che-arrow--prev { left: max(4px, calc(var(--che-frame) - 50px)); }
.che-fr .che-arrow--next { right: max(4px, calc(var(--che-frame) - 50px)); }
.che-fr--left .che-hero__in { align-items: flex-start; text-align: left; padding: 0 5% 0 17%; }
.che-fr--left .che-hero__t { font-size: clamp(30px, 4.6vw, 66px); line-height: .82; }
.che-fr--left .che-circle { margin: -43px 0 0 -19px; }
.che-fr--quote .che-fr__box { height: clamp(360px, 38.2vw, 550px); }
.che-fr--quote { margin-bottom: 20px; }
.che-hero__q { font: italic 300 clamp(24px, 3.13vw, 45px)/1.09 var(--font-h); max-width: 860px; margin: 0; color: #fff; }
.che-fr__soc { position: absolute; right: calc(var(--che-frame) / 2 - 12px); top: 58%; display: flex; gap: 22px; writing-mode: vertical-rl; transform: rotate(180deg); font: italic 400 17px/1 var(--font-h); color: #fff; }
.che-fr__soc a:hover, .che-soc a:hover { color: var(--che-gold); }

/* banda panorámica (Wellness Resort) */
.che-hero--banner { height: clamp(400px, 38.9vw, 560px); }
.che-hero--banner .che-hero__in { align-items: flex-start; text-align: left; padding: 76px 5% 0 13.9%; }
.che-hero--banner .che-hero__t { line-height: .83; }
.che-hero--banner .che-circle { margin-top: -38px; }
.che-dots { display: flex; gap: 4px; z-index: 3; }
.che-dots--h { position: absolute; left: 50%; bottom: 10.5%; transform: translateX(-50%); }
.che-dots--v { flex-direction: column; }
.che-dot { position: relative; width: 36px; height: 36px; padding: 0; border-radius: 50%; border: 1px solid transparent; background: none; cursor: pointer; color: #fff; transition: border-color .4s; }
.che-dot::after { content: ""; position: absolute; left: 50%; top: 50%; width: 6px; height: 6px; margin: -3px 0 0 -3px; border-radius: 50%; background: currentColor; }
.che-dot.is-on { border-color: rgba(255,255,255,.75); }

/* ---------- Main ---------- */
.che-quote { padding-top: clamp(64px, 9vw, 130px); text-align: center; }
.che-quote span { display: block; font: italic 400 80px/.5 var(--font-h); color: #fff; height: 31px; }
.che-quote p { font: italic 400 clamp(24px, 2.64vw, 38px)/1.105 var(--font-h); color: #fff; max-width: 800px; margin: 8px auto 0; }
.che-grid { padding-top: clamp(64px, 9vw, 130px); }
.che-grid .wrap { display: grid; grid-template-columns: 1fr 1fr; row-gap: clamp(40px, 5.7vw, 82px); }
.che-pic { display: block; }
.che-pic--s { width: 73.1%; margin: 10% 0 0 13.1%; }
.che-pic--l { width: 86%; margin-left: 14%; }
.che-pic:nth-child(3) { margin-left: 0; }
.che-pic:nth-child(4) { margin-left: 14%; }
.che-frame { position: relative; display: block; }
.che-frame::before { content: ""; position: absolute; inset: -11px -9px 11px 9px; border: 1px solid #35312c; transition: inset .4s; }
.che-frame img { position: relative; width: 100%; object-fit: cover; }
.che-pic--s img { aspect-ratio: 402/400; }
.che-pic--l img { aspect-ratio: 473/512; }
a:hover > .che-frame::before { inset: 0; }
.che-pic h3 { font-size: 22px; line-height: 26px; letter-spacing: .035em; margin: 17px 0 0; }
.che-count { padding-top: clamp(56px, 7.3vw, 105px); }
.che-count .wrap { display: grid; grid-template-columns: repeat(4, 1fr); }
.che-count .wrap > div { position: relative; height: 110px; display: grid; place-items: center; text-align: center; }
.che-count b { position: absolute; left: 0; right: 0; top: 50%; transform: translateY(-59%); font: italic 400 clamp(80px, 7.64vw, 110px)/1 var(--font-h); color: #262221; }
.che-count span { position: relative; font: 400 11px/1.4 var(--font-ui); letter-spacing: .2em; text-transform: uppercase; }
.che-video { padding-top: clamp(64px, 9.4vw, 135px); }
.che-video a { position: relative; isolation: isolate; display: grid; place-items: center; width: min(100% - 48px, 1152px); aspect-ratio: 1152/522; margin-inline: auto; background: #151515 center/cover; }
.che-video a:hover .che-circle { background: rgba(255,255,255,.12); border-color: #fff; }
.che-plans { padding-top: clamp(64px, 8.3vw, 120px); }
.che-plans__row { display: grid; grid-template-columns: repeat(3, 1fr); align-items: stretch; justify-items: center; margin: clamp(50px, 5.9vw, 85px) 0 46px; }
.che-plan { position: relative; display: flex; flex-direction: column; justify-content: center; align-items: center; width: 293px; max-width: 100%; background: #0b0a08; text-align: center; padding: 72px 30px 78px; }
.che-plan::before { content: ""; position: absolute; inset: 10px -10px; border: 1px solid #3a3632; pointer-events: none; }
.che-plan:first-child { justify-self: start; margin-left: 10px; }
.che-plan:last-child { justify-self: end; margin-right: 10px; }
.che-plan--top { width: 315px; background: #171410; padding: 96px 30px 102px; margin-block: -24px; }
.che-plan--top::before { border-color: #5a4f3f; }
.che-plan h3 { font-size: var(--fs-md); line-height: 1.16; letter-spacing: .035em; margin: 0 0 27px; }
.che-plan__price { color: var(--che-mute); }
.che-plan--top .che-plan__price { color: var(--che-gold); }
.che-plan__price b { display: block; font: italic 400 clamp(44px, 4.2vw, 60px)/1.1 var(--font-h); letter-spacing: -.01em; }
.che-plan__price i { font: italic 400 19px/1.6 var(--font-h); letter-spacing: .015em; }
.che-plan ul { margin: 26px 0 0; }
.che-plan li { margin: 0 0 15px; line-height: 28px; }
.che-plan .link { margin-top: 20px; }
.che-split { display: grid; grid-template-columns: 1fr 1fr; align-items: center; padding-top: clamp(64px, 8vw, 115px); }
.che-split__img { overflow: hidden; }
.che-split__img img { width: 100%; height: 100%; aspect-ratio: 720/534; object-fit: cover; transition: transform 1.2s; }
.che-split:hover .che-split__img img { transform: scale(1.04); }
.che-split__txt { padding: 0 clamp(24px, 6.25vw, 90px); }
.che-split__txt h2 { margin: 0; }
.che-split__txt p, .che-touch__txt p, .che-about p, .che-ss__in > p, .che-slide--touch p { font-size: 22px; line-height: 28px; margin: 18px 0 0; }
.che-split__txt .btn, .che-about .btn, .che-tg .btn { margin-top: 42px; }
.che-split--inset { grid-template-columns: 50% 1fr; padding: clamp(64px, 10.4vw, 150px) 0 0 clamp(16px, 5vw, 72px); }
.che-split--inset .che-split__img img { aspect-ratio: 684/580; }
.che-split--inset .che-split__txt { padding: 0 clamp(20px, 4.7vw, 68px); }
.che-logos { padding-top: clamp(56px, 8.8vw, 127px); }
.che-logos > div { display: flex; justify-content: space-between; align-items: center; gap: 24px 16px; flex-wrap: wrap; width: min(100% - 48px, 1140px); margin-inline: auto; min-height: 125px; }
.che-logos span { display: grid; justify-items: center; gap: 10px; flex: 1; min-width: 120px; color: #57524c; transition: color .4s; }
.che-logos span:hover { color: var(--che-mute); }
.che-logos .ic { width: 78px; height: 78px; stroke-width: .5; }
.che-logos b { font: 400 17px/1 var(--font-h); letter-spacing: .42em; text-transform: uppercase; margin-right: -.42em; }
.che-logos span:nth-child(even) b { font: 400 11px/1 var(--font-ui); letter-spacing: .5em; margin-right: -.5em; }
.che-blog { padding-top: clamp(64px, 7.9vw, 114px); }
.che-posts { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px clamp(24px, 4.86vw, 70px); margin-top: clamp(36px, 4.3vw, 62px); }
.che-post { display: block; text-align: center; }
.che-post img { width: 100%; aspect-ratio: 320/400; object-fit: cover; margin-bottom: 26px; transition: opacity .4s; }
.che-post:hover img { opacity: .82; }
.che-post h3 { font-size: var(--fs-md); line-height: 1.16; letter-spacing: .035em; margin: 8px 0 6px; }
.che-post i, .che-person i, .che-testi cite { font: italic 400 19px/1.3 var(--font-h); letter-spacing: .025em; color: var(--che-mute); }
.che-band { position: relative; isolation: isolate; margin-top: clamp(60px, 8.3vw, 120px); padding: 108px 0; background: #050505 center/cover; }
.che-band::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.84); z-index: -1; }
.che-band .wrap { display: flex; justify-content: space-between; align-items: center; gap: 28px; flex-wrap: wrap; }
.che-band h2 { margin: 0; }

/* ---------- Beauty Spa ---------- */
.che-colsec { padding-top: clamp(64px, 8.3vw, 120px); }
.che-cols { display: grid; grid-template-columns: repeat(3, 340px); justify-content: center; gap: 40px 52px; }
.che-col { position: relative; text-align: center; padding-top: 127px; isolation: isolate; }
.che-col__art { position: absolute; left: 50%; top: 0; height: 250px; transform: translateX(-50%); z-index: -1; color: #26211c; }
.che-col__art svg { height: 100%; width: auto; display: block; fill: currentColor; }
.che-col h3 { font-size: var(--fs-md); line-height: 1.16; letter-spacing: .035em; margin: 0; }
.che-col p { margin: 10px 0 20px; line-height: 28px; }
.che-faq { display: grid; grid-template-columns: 1fr 51.8%; align-items: center; gap: clamp(24px, 4.6vw, 66px); padding: clamp(64px, 9vw, 130px) clamp(16px, 5vw, 71px) 0 clamp(16px, 8.1vw, 117px); }
.che-faq > img { width: 100%; aspect-ratio: 649/727; object-fit: cover; }
.che-faq__txt { align-self: start; padding-top: clamp(0px, 6.2vw, 89px); }
.che-faq h2 { margin: 0 0 30px; }
.che-faq details { border: 0; padding: 0; margin: 0 0 19px; }
.che-faq summary { align-items: center; min-height: 64px; padding: 16px 20px 18px 25px; border: 1px solid var(--che-line); font: 400 22px/26px var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; }
.che-faq summary::after { display: none; }
.che-chev { width: 18px; height: 11px; flex: none; transition: transform .3s; }
.che-faq details[open] .che-chev { transform: rotate(180deg); }
.che-faq details p { margin: 0; padding: 27px 37px 8px 26px; line-height: 28px; }
.che-prods { padding-top: clamp(64px, 7.9vw, 114px); }
.che-prods__in { width: min(100% - 48px, 1253px); margin-inline: auto; }
.che-prods__row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 40px 30px; margin-top: 60px; }
.che-prod { display: block; text-align: center; }
.che-prod__img { position: relative; display: block; overflow: hidden; margin-bottom: 28px; }
.che-prod img { width: 100%; aspect-ratio: 291/414; object-fit: cover; }
.che-prod u { position: absolute; inset: 0; display: grid; place-items: center; background: rgba(0,0,0,.7); color: var(--accent); text-decoration: none; font: italic 300 19px/1.2 var(--font-h); letter-spacing: .035em; opacity: 0; transition: opacity .35s; }
.che-prod:hover u { opacity: 1; }
.che-prod em { position: absolute; right: 20px; top: 0; padding: 14px 12px 10px; background: #000; color: var(--che-gold); font: 400 11px/1 var(--font-ui); letter-spacing: .2em; text-transform: uppercase; writing-mode: vertical-rl; transform: rotate(180deg); }
.che-prod small { display: block; font: 400 11px/15px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; color: var(--accent); margin-bottom: 4px; }
.che-prod h3 { font-size: 22px; line-height: 26px; letter-spacing: .035em; margin: 0; }
.che-prod b { display: block; font: 400 12px/28px var(--font-ui); letter-spacing: .2em; color: var(--che-mute); margin-top: 8px; }
.che-testi { padding-top: clamp(40px, 4.9vw, 70px); }
.che-prods + .che-testi { padding-top: clamp(48px, 5.9vw, 85px); }
.che-testi__in { position: relative; display: grid; grid-template-columns: 102px minmax(0, 586px) 1fr; align-items: center; max-width: 858px; margin-inline: auto; min-height: 220px; }
.che-testi__q { position: relative; align-self: start; margin-top: 16px; font: italic 400 90px/.6 var(--font-h); color: #fff; padding-left: 44px; height: 40px; }
.che-testi__q::before { content: ""; position: absolute; left: -38px; top: -52px; width: 180px; height: 180px; border-radius: 50%; border: 1px solid rgba(255,255,255,.2); border-right-color: transparent; transform: rotate(40deg); }
.che-testi .slide { display: none; }
.che-testi .slide.is-on { display: block; animation: che-up .7s ease; }
@keyframes che-up { from { opacity: 0; transform: translateY(26px); } }
.che-testi blockquote, .che-slide--quote blockquote { margin: 0 0 12px; font: italic 400 clamp(24px, 2.64vw, 38px)/1.105 var(--font-h); letter-spacing: -.01em; color: #fff; }
.che-testi .che-dots { justify-self: end; margin-right: 22px; }
.che-tg { padding-top: clamp(40px, 4.5vw, 65px); }
.che-tg .wrap { display: grid; grid-template-columns: 55% 1fr; align-items: center; gap: clamp(24px, 5.1vw, 73px); }
.che-tg__pics { display: grid; grid-template-columns: 1fr 1fr; gap: 30px; }
.che-tg figure { position: relative; margin: 0; }
.che-tg img { width: 100%; aspect-ratio: 288/257; object-fit: cover; }
.che-tg figcaption { position: absolute; inset: 0; display: grid; place-content: center; text-align: center; background: rgba(0,0,0,.7); opacity: 0; transition: opacity .35s; }
.che-tg figure:hover figcaption { opacity: 1; }
.che-tg figcaption b { font: 400 22px/26px var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; }
.che-tg figcaption i { font: italic 400 19px/28px var(--font-h); color: var(--che-mute); }
.che-tg h2 { margin: 0; max-width: 350px; }
.che-menu { padding-top: clamp(64px, 8.3vw, 120px); }
.che-menu__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 10%; margin-top: 55px; }
.che-pl__it { border-bottom: 1px solid var(--che-line); padding-bottom: 8px; margin-bottom: 29px; }
.che-pl__it:last-child { margin-bottom: 0; }
.che-pl__it div { display: flex; justify-content: space-between; align-items: baseline; gap: 16px; }
.che-pl__it h3 { font-size: 22px; line-height: 28px; letter-spacing: .035em; margin: 0; }
.che-pl__it b { font: 400 12px/1 var(--font-ui); letter-spacing: .2em; color: #fff; white-space: nowrap; }
.che-pl__it p { line-height: 28px; margin: 0; }
.che-cta { padding: clamp(64px, 9vw, 130px) clamp(16px, 6.25vw, 90px) 0; }
.theme-chea-spa-center .che-cta { padding: 20px clamp(16px, 5vw, 43px) 0; }
.che-cta__box { position: relative; isolation: isolate; display: grid; place-items: center; text-align: center; min-height: clamp(380px, 41.7vw, 600px); padding: 40px 20px; background: #151515 center/cover; }
.che-cta__box::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.28); z-index: -1; }
.che-cta .btn { margin-top: 30px; }

/* ---------- Wellness Resort ---------- */
.che-tiles { padding: clamp(56px, 6.9vw, 100px) clamp(16px, 5vw, 72px) 0; }
.che-tiles > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.che-tile { position: relative; isolation: isolate; display: grid; place-items: center; aspect-ratio: 1; text-align: center; overflow: hidden; }
.che-tile img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1s; }
.che-tile::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.34); z-index: -1; }
.che-tile:hover img { transform: scale(1.05); }
.che-tile > span { display: grid; justify-items: center; padding: 20px; }
.che-tile h3 { font-size: var(--fs-md); line-height: 1.16; letter-spacing: .035em; margin: 0 0 22px; color: #fff; }
.che-team { padding-top: clamp(64px, 8.3vw, 120px); }
.che-team h2 { margin: 0 0 40px; }
.che-team__row { display: grid; grid-template-columns: repeat(3, 1fr); gap: 40px clamp(24px, 4.86vw, 70px); }
.che-person { text-align: center; }
.che-person img { aspect-ratio: 320/346; }
.che-person h3 { font-size: 22px; line-height: 26px; letter-spacing: .035em; margin: 32px 0 4px; }
.che-book { position: relative; margin-top: clamp(64px, 8.5vw, 123px); padding: 51px 0; }
.che-book::before { content: ""; position: absolute; inset: 0 0 0 51.5%; background: var(--che-panel); }
.che-book__in { position: relative; display: grid; grid-template-columns: 64.9% 1fr; align-items: center; gap: 46px; width: min(100% - 48px, 1100px); margin-inline: auto; }
.che-book__in > img { width: 100%; aspect-ratio: 714/622; object-fit: cover; }
.che-book__txt { margin-right: min(0px, calc((1100px - 100vw) / 2 + 65px)); }
.che-book h2 { margin: 0 0 48px; }
.che-lines input, .che-lines select, .che-lines textarea, .che-line input { display: block; width: 100%; background: none; border: 0; border-bottom: 1px solid #4c4c4c; border-radius: 0; color: #fff; font: italic 400 17px/23px var(--font-b); letter-spacing: .035em; padding: 6px 20px 4px 0; margin: 0 0 30px; color-scheme: dark; transition: border-color .3s; }
.che-lines select { appearance: none; cursor: pointer; }
.che-lines select option { background: #121212; color: #fff; font-style: normal; }
.che-lines textarea { resize: vertical; min-height: 116px; }
.che-lines ::placeholder, .che-line ::placeholder, .che-res ::placeholder { color: #fff; opacity: 1; }
.che-lines :focus, .che-line input:focus, .che-res :focus { outline: 0; border-color: #fff; }
.che-lines .btn { margin-top: 10px; }
.che-reel { padding-top: clamp(64px, 9vw, 130px); }
.che-reel__track { display: flex; gap: clamp(16px, 3.5vw, 50px); overflow-x: auto; scrollbar-width: none; padding-inline: max(24px, calc((100% - 1100px) / 2)); scroll-padding-inline: max(24px, calc((100% - 1100px) / 2)); scroll-snap-type: x proximity; }
.che-reel__track::-webkit-scrollbar { display: none; }
.che-reel a { position: relative; flex: none; width: clamp(240px, 36.5vw, 525px); aspect-ratio: 525/717; background: #151515 center/cover; scroll-snap-align: start; }
.che-reel a span { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 6px; padding: 20px 30px 61px; background: rgba(0,0,0,.7); opacity: 0; transition: opacity .35s; }
.che-reel a:hover span, .che-reel a:focus-visible span { opacity: 1; }
.che-reel b { font: 400 var(--fs-md)/1.16 var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; }
.che-news { padding-top: clamp(64px, 8.8vw, 127px); }
.che-news__box { width: min(100% - 48px, 1100px); margin-inline: auto; background: var(--che-panel); text-align: center; padding: clamp(56px, 6.9vw, 99px) 24px clamp(56px, 6.9vw, 99px); }
.che-news h2 { margin: 0; }
.che-news p { margin: 18px 0 60px; line-height: 28px; }
.che-line { position: relative; display: block; max-width: 800px; margin-inline: auto; }
.che-line input { margin: 0; padding: 11px 34px 4px 0; }
.che-line button { position: absolute; right: 0; bottom: 6px; background: none; border: 0; padding: 4px; color: var(--che-mute); cursor: pointer; }
.che-line button .ic { width: 14px; height: 14px; display: block; }
.che-line button:hover { color: #fff; }
.che-news--line { padding: 0 clamp(16px, 5vw, 43px) 20px; }
.che-news--line .che-news__box { width: auto; background: none; border: 1px solid #2c2925; padding: clamp(56px, 8.5vw, 123px) 24px clamp(56px, 6.7vw, 96px); }
.che-insta { padding: clamp(64px, 10.5vw, 151px) clamp(16px, 2.1vw, 30px) 52px; }
.che-insta > div { display: grid; grid-template-columns: 257fr 257fr 221fr 257fr 257fr; gap: 30px; align-items: center; }
.che-insta img { width: 100%; aspect-ratio: 1; object-fit: cover; transition: opacity .4s; }
.che-insta a:hover img { opacity: .8; }
.che-insta__box { position: relative; display: grid; place-items: center; aspect-ratio: 221/182; background: var(--che-panel); text-align: center; padding: 20px; font: 400 22px/26px var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; }
.che-insta__box span { max-width: 6.5em; }
.che-insta__box::before { content: ""; position: absolute; inset: -10px -9px 10px 9px; border: 1px solid #35312c; }

/* ---------- Spa Center ---------- */
.che-about, .che-resv, .che-touch, .che-gal4 { margin-inline: clamp(16px, 5vw, 43px); }
.che-about { display: grid; grid-template-columns: 60% 1fr; gap: 20px; }
.che-about > img { width: 100%; height: 100%; aspect-ratio: 812/443; object-fit: cover; }
.che-about__box { display: flex; align-items: center; border: 1px solid #2c2925; padding: 40px clamp(20px, 3.3vw, 47px); }
.che-about h2 { margin: 0; }
.che-about p { max-width: 401px; }
.che-resv { display: grid; grid-template-columns: 1fr 55%; align-items: center; margin-top: 20px; }
.che-resv > img { width: 100%; aspect-ratio: 744/451; object-fit: cover; }
.che-resv__form { padding: 20px clamp(20px, 4.5vw, 65px) 20px clamp(0px, 2.8vw, 40px); }
.che-res { max-width: 500px; }
.che-res h2 { margin: 0 0 6px; }
.che-res label { display: block; font: 400 11px/15px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; color: #fff; margin: 20px 0 5px; }
.che-res__f { position: relative; }
.che-res input, .che-res select { display: block; width: 100%; height: 55px; background: #000; border: 1px solid #4c4c4c; border-radius: 0; color: #fff; font: italic 400 17px/1.2 var(--font-b); letter-spacing: .035em; padding: 0 48px 3px 23px; color-scheme: dark; appearance: none; }
.che-res input[type=date] { padding-right: 17px; appearance: auto; }
.che-res select option { background: #121212; font-style: normal; }
.che-res__f > svg { position: absolute; right: 22px; top: 50%; width: 16px; height: 16px; margin-top: -8px; color: #fff; pointer-events: none; }
.che-res__f > .che-chev { height: 10px; margin-top: -5px; }
.che-res .btn { margin-top: 30px; }
.che-gal4 { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 20px; margin-bottom: 20px; }
.che-gal4 img { width: 100%; aspect-ratio: 324/446; object-fit: cover; transition: opacity .4s; }
.che-gal4 a:hover img { opacity: .8; }
.che-touch { display: grid; grid-template-columns: 1fr 1fr; align-items: center; }
.che-touch > img { width: 100%; aspect-ratio: 677/410; object-fit: cover; }
.che-touch__txt { padding: 20px clamp(20px, 5.1vw, 74px); }
.che-touch__txt h2 { margin: 0; }
.che-touch__txt p { max-width: 470px; }
.che-info { display: flex; flex-wrap: wrap; gap: 0 clamp(20px, 3vw, 44px); margin-top: 40px; }
.che-info li { font: 400 11px/15px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; margin: 0 0 15px; max-width: 24ch; }
.che-info ul + ul li { max-width: none; white-space: nowrap; }
.che-info a:hover { color: #fff; }
.che-soc { display: flex; gap: 30px; margin-top: 28px; font: italic 400 19px/1 var(--font-h); color: #fff; }

/* ---------- Deslizadores de una pantalla ---------- */
.che-deck { position: relative; background: #000; color: #fff; }
.che-slide { position: relative; isolation: isolate; }
.che-deck > .che-dots { display: none; }
.js .che-deck { height: 100vh; height: 100svh; min-height: 600px; overflow: hidden; }
.js .che-deck > .che-dots { display: flex; position: absolute; right: clamp(14px, 4.5vw, 64px); top: 50%; transform: translateY(-50%); gap: 11px; }
.js .che-deck .che-slide { position: absolute; inset: 0; visibility: hidden; transition: visibility 0s 1s; }
.js .che-deck .che-slide.is-on { visibility: visible; transition: none; z-index: 1; }
.js .che-deck--full .che-slide { transform: translateY(100%); transition: transform 1s cubic-bezier(.7,0,.2,1), visibility 0s 1s; }
.js .che-deck--full .che-slide.is-prev { transform: translateY(-100%); }
.js .che-deck--full .che-slide.is-on { transform: none; transition: transform 1s cubic-bezier(.7,0,.2,1); }
.che-slide__in { position: relative; min-height: inherit; height: 100%; display: flex; align-items: center; justify-content: center; padding: 120px clamp(24px, 9vw, 130px) 60px; }
.che-deck--full .che-slide { min-height: 560px; }
.che-slide--title .che-slide__in { flex-direction: column; text-align: center; padding-top: 104px; }
.che-slide--title .che-hero__t { font-size: clamp(32px, 4.9vw, 71px); line-height: .93; }
.che-slide--cols .che-col__art { color: rgba(226,208,178,.3); }
.che-slide--cols .che-col p { color: #fff; }
.che-slide--cols .link { color: #fff; }
.che-slide--post .che-slide__in { justify-content: space-between; gap: 40px; padding-right: clamp(24px, 13.9vw, 200px); }
.che-slide--post .che-slide__in > div { max-width: 545px; }
.che-slide--post .che-meta { color: #fff; font-size: 12px; }
.che-slide--post h2 { margin: 12px 0 18px; }
.che-slide--post p { color: #fff; margin: 0 0 26px; line-height: 28px; }
.che-slide--post .link { color: #fff; }
.che-slide--post img { width: clamp(220px, 25vw, 360px); aspect-ratio: 360/482; object-fit: cover; border-radius: 10px; flex: none; }
.che-slide--quote .che-slide__in { justify-content: flex-start; }
.che-slide--quote .che-testi__in { grid-template-columns: 102px minmax(0, 470px); margin: 0 0 6% 2%; min-height: 0; }
.che-slide--quote cite { font: italic 400 19px/1.3 var(--font-h); color: rgba(255,255,255,.75); }
.che-slide--touch .che-slide__in { justify-content: flex-start; padding-left: 46.4%; }
.che-slide--touch h2 { margin: 0; }
.che-slide--touch .che-slide__in > div { max-width: 600px; }
.che-slide--touch .che-info li, .che-slide--touch p { color: #fff; }

.che-deck--split .che-slide { display: grid; grid-template-columns: 1fr 1fr; }
.che-ss__img { min-height: 60vh; background: #151515 center/cover; }
.che-ss__txt { position: relative; overflow: hidden; background: #000; display: flex; align-items: center; padding: 120px clamp(24px, 5vw, 72px) 70px; }
.che-slide--flip .che-ss__txt { order: -1; justify-content: center; }
.che-leaf { position: absolute; right: 8%; top: 7%; height: 96%; width: auto; color: rgba(255,255,255,.14); pointer-events: none; }
.che-slide--flip .che-leaf { right: auto; left: 2%; transform: scaleX(-1); }
.che-ss__in { position: relative; width: min(100%, 545px); }
.che-slide--flip .che-ss__in { width: min(100%, 500px); margin-left: clamp(0px, 5vw, 80px); }
.che-ss__in h1, .che-ss__in h2 { margin: 0; }
.che-ss__in > .btn { margin-top: 42px; }
.che-prod--solo { width: min(100%, 340px); margin-inline: auto; }
.che-prod--solo img { aspect-ratio: 340/484; margin-bottom: 30px; }
.js .che-deck--split .che-slide > * { transition: transform 1s cubic-bezier(.7,0,.2,1); }
.js .che-deck--split .che-slide > :first-child { transform: translateY(100%); }
.js .che-deck--split .che-slide > :last-child { transform: translateY(-100%); }
.js .che-deck--split .che-slide.is-prev > :first-child { transform: translateY(-100%); }
.js .che-deck--split .che-slide.is-prev > :last-child { transform: translateY(100%); }
.js .che-deck--split .che-slide.is-on > * { transform: none; }
.che-deck + .che-tiles, .che-deck + .che-menu { padding-top: clamp(64px, 8.3vw, 120px); }
.che-resv:last-child, .che-book:last-child { margin-bottom: clamp(40px, 6vw, 90px); }
.che-menu + .che-resv { margin-top: clamp(64px, 8.3vw, 120px); }

/* ---------- Pie ---------- */
.che-ftr { background: #000; border-top: 0; padding: 0; color: var(--text); font-size: 20px; }
.che-ftr__grid { display: grid; grid-template-columns: 1fr 1fr 1fr 1fr; gap: 40px 30px; padding: 98px 0 112px; }
.che-ftr .brand { font: 500 clamp(28px, 2.5vw, 36px)/1.1 var(--font-h); letter-spacing: .1em; white-space: normal; margin: 30px 0 0; }
.che-ftr h4 { font: 400 22px/26px var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; margin: 26px 0 22px; }
.che-ftr li { display: block; font: 400 11px/15px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; margin: 0 0 13px; }
.che-ftr .che-line input { padding: 12px 30px 4px 0; font-size: 16px; letter-spacing: .065em; }
.che-ftr .che-soc { margin-top: 62px; gap: 30px; }
.che-ftr__bot { border-top: 1px solid #383838; }
.che-ftr__bot .wrap { display: flex; justify-content: center; gap: 4px 18px; flex-wrap: wrap; padding: 15px 0; font-size: 15px; line-height: 28px; text-align: center; }
.che-ftr__bot a { text-decoration: underline; text-underline-offset: 3px; }
.sec-first, main > section:first-child.che-tiles { padding-top: 0; }

@media (max-width: 1420px) {
  .che-hdr__book { display: none !important; }
  .che-hdr--divided .che-hdr__l { justify-content: flex-end; }
}
@media (max-width: 1240px) {
  .che-hdr .hdr__in, .che-hdr--left .hdr__in, .theme-chea-wellness-resort .che-hdr .hdr__in { min-height: 84px; }
  .che-hdr--divided .hdr__in { display: flex; justify-content: space-between; min-height: 84px; }
  .che-hdr--divided .che-hdr__l, .che-hdr__book { display: none; }
  .che-hdr--divided .che-hdr__r { padding: 0; }
  .che-cols { grid-template-columns: repeat(3, 1fr); width: min(100% - 48px, 1100px); margin-inline: auto; }
  .che-plan, .che-plan--top { width: 100%; }
  .che-plan:first-child, .che-plan:last-child { margin-inline: 0; }
  .che-plans__row { gap: 34px; }
  .che-fr__soc { display: none; }
  .che-slide--touch .che-slide__in { padding-left: 40%; }
}
@media (max-width: 860px) {
  .che-arrow { display: none; }
  .che-hero--full .che-hero__in { padding-top: 84px; }
  .che-hero__t br { display: none; }
  .che-fr--left .che-hero__in, .che-hero--banner .che-hero__in { padding: 0 24px; }
  .che-hero--banner .che-hero__in { padding-top: 0; }
  .che-fr--left .che-hero__t { line-height: .95; }
  .che-circle { width: 112px; height: 112px; font-size: 18px; margin-top: 14px !important; margin-left: 0 !important; }
  .che-grid .wrap, .che-split, .che-split--inset, .che-faq, .che-tg .wrap, .che-menu__cols, .che-book__in, .che-about, .che-resv, .che-touch { grid-template-columns: 1fr; }
  .che-pic, .che-pic--s, .che-pic--l, .che-pic:nth-child(4) { width: auto; margin: 0 9px 0 0; }
  .che-count .wrap { grid-template-columns: 1fr 1fr; row-gap: 26px; }
  .che-plans__row, .che-posts, .che-team__row, .che-tiles > div, .che-cols { grid-template-columns: 1fr; }
  .che-plan, .che-plan--top { max-width: 340px; padding-block: 70px; justify-self: center !important; }
  .che-post, .che-person { max-width: 380px; margin-inline: auto; }
  .che-person { width: calc(100% - 18px); }
  .che-split__txt, .che-split--inset .che-split__txt { padding: 36px 24px 0; }
  .che-split--inset { padding-left: 0; }
  .che-split--inset .che-split__img { margin-inline: 18px; }
  .che-faq { padding-inline: 24px; }
  .che-faq summary { font-size: 19px; }
  .che-prods__row { grid-template-columns: 1fr 1fr; }
  .che-testi__in { grid-template-columns: 64px minmax(0, 1fr); }
  .che-testi__q { padding-left: 12px; }
  .che-testi__q::before { left: -46px; width: 130px; height: 130px; top: -34px; }
  .che-testi .che-dots { grid-column: 1 / -1; flex-direction: row; justify-self: center; margin-top: 18px; }
  .che-menu__cols { gap: 29px; }
  .che-tile { aspect-ratio: 4/3; }
  .che-book { padding: 0; }
  .che-book::before { inset: 30% 0 0 0; }
  .che-book__txt { margin: 0; padding-bottom: 48px; }
  .che-book h2 { margin-bottom: 30px; }
  .che-insta > div { grid-template-columns: 1fr 1fr; gap: 18px; }
  .che-insta__box { grid-column: 1 / -1; grid-row: 2; aspect-ratio: auto; padding: 44px 20px; margin: 10px 9px 0 0; }
  .che-about > img { aspect-ratio: 4/3; }
  .che-resv > img { order: -1; }
  .che-resv__form { padding: 30px 0 0; }
  .che-gal4 { grid-template-columns: 1fr 1fr; }
  .che-touch__txt { padding: 36px 0 20px; }
  .che-band { padding: 72px 0; }
  .che-video a { aspect-ratio: 4/3; }
  .che-ftr__grid { grid-template-columns: 1fr 1fr; padding: 56px 0 64px; }
  .che-ftr .che-soc { margin-top: 30px; }
  /* los deslizadores de una pantalla se apilan */
  .js .che-deck { height: auto; min-height: 0; overflow: visible; }
  .js .che-deck > .che-dots { display: none; }
  .js .che-deck .che-slide, .js .che-deck .che-slide.is-on { position: relative; inset: auto; visibility: visible; transform: none !important; transition: none; }
  .js .che-deck--split .che-slide > * { transform: none !important; }
  .che-deck--split .che-slide { grid-template-columns: 1fr; }
  .che-slide--flip .che-ss__txt { order: 0; }
  .che-ss__img { min-height: 0; aspect-ratio: 4/3; }
  .che-ss__txt { padding: 56px 24px 64px; }
  .che-slide--flip .che-ss__in { margin-left: 0; }
  .che-deck--full .che-slide { min-height: 0; }
  .che-slide__in, .che-slide--touch .che-slide__in { padding: 84px 24px; }
  .che-deck--full .che-slide:first-child .che-slide__in { padding-top: 150px; min-height: 100svh; }
  .che-slide--post .che-slide__in { flex-direction: column; align-items: flex-start; padding-right: 24px; }
  .che-slide--quote .che-testi__in { margin: 0; }
}
@media (max-width: 560px) {
  .che-hdr .hdr__in { gap: 14px; }
  .che-hdr .brand { font-size: 18px; letter-spacing: .08em; white-space: normal; line-height: 1.15; min-width: 0; }
  .btn { padding: 14px 34px 18px; }
  .che-title p, .che-split__txt p, .che-touch__txt p, .che-about p, .che-ss__in > p, .che-slide--touch p { font-size: 20px; }
  .che-prods__row { gap: 30px 16px; }
  .che-prod h3 { font-size: 19px; }
  .che-pl__it h3 { font-size: 19px; }
  .che-info ul + ul li { white-space: normal; }
  .che-ftr__grid { grid-template-columns: 1fr; gap: 14px; }
  .che-ftr .brand { margin-top: 0; }
  .che-logos > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 30px 8px; }
  .che-logos span { min-width: 0; }
  .che-logos .ic { width: 56px; height: 56px; }
  .che-logos b, .che-logos span:nth-child(even) b { font-size: 11px; letter-spacing: .2em; margin-right: -.2em; }
  .che-reel a { width: 74vw; }
}

/* ---------- Páginas internas ---------- */
:root { --che-hdr: 128px; }
.theme-chea-main { --che-hdr: 106px; }
.theme-chea-wellness-resort { --che-hdr: 103px; }
.theme-chea-split-screen, .theme-chea-fullscreen { --che-hdr: 104px; }
.che-pg a { transition: color .3s; }
.che-rule { border: 0; border-top: 1px solid var(--che-line); margin: 0; }

/* franja de título con foto (550 px) y franja de migas (77 px) */
.che-ph { position: relative; isolation: isolate; display: grid; place-items: center; text-align: center; height: clamp(250px, 38.2vw, 550px); padding: 0 24px; background: #151515 center/cover no-repeat; }
.che-ph::before { content: ""; position: absolute; inset: 0; background: rgba(0,0,0,.3); z-index: -1; }
.che-ph h1 { color: #fff; }
[data-nav="overlay"] .che-ph { height: calc(clamp(250px, 38.2vw, 550px) + var(--che-hdr)); padding-top: var(--che-hdr); }
[data-nav="overlay"] .che-ph::after { content: ""; position: absolute; inset: 0 0 auto; height: 200px; background: linear-gradient(rgba(0,0,0,.55), transparent); z-index: -1; }
.che-crumbs { border-top: 1px solid var(--che-line); padding: 22px clamp(18px, 5vw, var(--che-frame)) 21px; font: italic 400 20px/34px var(--font-h); letter-spacing: .025em; color: var(--che-mute); }
.che-crumbs i { font-style: inherit; margin: 0 6px 0 7px; }
.che-crumbs span { color: #fff; }
.che-crumbs a:hover { color: #fff; }
.che-crumbs--grid { padding-inline: 24px; }
.che-crumbs--grid > div { width: min(100%, var(--wrap)); margin-inline: auto; }
[data-nav="overlay"] .che-crumbs { margin-top: var(--che-hdr); }
.theme-chea-main .che-404 { border-top: 0; }
.theme-chea-main .che-crumbs { border-top: 0; padding-inline: max(24px, calc((100% - 1220px) / 2)); }
.theme-chea-main .che-crumbs--grid { padding-inline: 24px; }

/* nosotros */
.che-pg > .che-split--inset { padding-top: clamp(56px, 7.64vw, 110px); }
.che-pg > .che-split--inset .che-split__img img { aspect-ratio: 666/538; }
.che-pg > .che-colsec { padding-top: clamp(56px, 6.94vw, 100px); }
.che-pg > .che-video { padding-top: clamp(64px, 9.03vw, 130px); }
.che-pg > .che-video a { width: min(100% - 48px, 1273px); aspect-ratio: 1273/472; }
.che-pg > .che-testi { padding-top: clamp(64px, 9.4vw, 136px); }
.che-pg > .che-team { padding-top: clamp(64px, 10vw, 144px); }
.che-pg > .che-news { padding-top: clamp(64px, 8.54vw, 123px); }
.che-pg > .che-insta { padding-top: clamp(64px, 11.2vw, 161px); padding-bottom: 31px; }

/* listados: tratamientos (3 columnas, datos debajo) y galería (unida, datos al pasar) */
.che-works { padding: clamp(56px, 9.03vw, 130px) 0 clamp(64px, 6.94vw, 100px); }
.che-filter { gap: 12px 44px; margin-bottom: 36px; }
.che-filter .chip, .che-filter .chip:hover, .che-filter .chip.is-on { background: none; border: 0; border-radius: 0; padding: 0 2px; font: 400 11px/15.4px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; color: #fff; }
.che-filter .chip:hover, .che-filter .chip.is-on { color: var(--accent); }
.che-works__grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 30px; }
.che-work { text-align: center; padding-bottom: 10px; }
.che-work__img { display: block; overflow: hidden; margin-bottom: 28px; }
.che-work img { width: 100%; aspect-ratio: 347/474; object-fit: cover; transition: transform 1s; }
.che-work__img:hover img { transform: scale(1.04); }
.che-work .che-meta { display: block; line-height: 15px; }
.che-work h3 { font-size: 22px; line-height: 26px; letter-spacing: .035em; margin: 4px 0 0; }
.che-work h3 a:hover, .che-art h2 a:hover, .che-mini:hover b, .che-pn a:hover b { color: var(--che-gold); }
.che-work p { display: flex; justify-content: center; align-items: baseline; gap: 18px; margin: 4px 0 0; }
.che-work p i { font: italic 400 19px/28px var(--font-h); letter-spacing: .025em; color: var(--che-mute); }
.che-more { text-align: center; margin-top: 43px; }
.che-gal { display: grid; grid-template-columns: repeat(3, 1fr); }
.che-gal a { position: relative; display: block; aspect-ratio: 367/501; overflow: hidden; }
.che-gal img { width: 100%; height: 100%; object-fit: cover; }
.che-gal span { position: absolute; inset: 0; display: flex; flex-direction: column; justify-content: flex-end; align-items: center; gap: 5px; padding: 20px 30px 61px; background: rgba(0,0,0,.7); text-align: center; opacity: 0; transition: opacity .35s; }
.che-gal a:hover span, .che-gal a:focus-visible span { opacity: 1; }
.che-gal b { font: 400 var(--fs-md)/1.16 var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; }

/* tratamiento: fotos apiladas a la izquierda, ficha fija a la derecha */
.che-single { padding: 65px 0 100px; }
.che-single__grid { display: grid; grid-template-columns: 693fr 347fr; gap: 0 60px; align-items: start; }
.che-single__pics { display: grid; gap: 10px; }
.che-single__pics img { width: 100%; aspect-ratio: 693/497; object-fit: cover; }
.che-single__txt { position: sticky; top: 96px; }
.che-single__txt h1 { margin: 0 0 18px; }
.che-single__txt > p { margin: 10px 0; line-height: 28px; }
.che-facts { margin: 40px 0 0; }
.che-facts div { display: flex; flex-wrap: wrap; align-items: baseline; gap: 0 9px; min-height: 28px; }
.che-facts dt, .che-facts dd { margin: 0; font: 400 11px/28px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; color: #fff; }
.che-facts dd { color: var(--accent); }
.che-facts dd i { font: italic 400 20px/28px var(--font-b); letter-spacing: 0; text-transform: none; color: var(--text); }
.che-single__list { margin: 22px 0 38px; border-top: 1px solid var(--che-line); }
.che-single__list li { border-bottom: 1px solid var(--che-line); padding: 9px 0 10px; line-height: 28px; }
.che-single__txt .link { display: table; margin-top: 26px; }
.che-pn { display: flex; justify-content: space-between; align-items: center; gap: 24px; margin-top: 77px; }
.che-pn a { display: flex; align-items: center; gap: 23px; color: #fff; }
.che-pn a:last-child { text-align: right; }
.che-sarrow { width: 65px; height: 8px; flex: none; transition: transform .3s; }
.che-pn a:last-child .che-sarrow { transform: scaleX(-1); }
.che-pn a:first-child:hover .che-sarrow { transform: translateX(-6px); }
.che-pn a:last-child:hover .che-sarrow { transform: scaleX(-1) translateX(-6px); }
.che-pn span { display: grid; }
.che-pn small { font: 400 11px/15px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; color: #afaba7; margin-bottom: 3px; }
.che-pn b { font: 400 22px/26px var(--font-h); letter-spacing: .035em; text-transform: uppercase; transition: color .3s; }

/* rituales: planes + preguntas en dos columnas */
.che-faq2 { padding-top: clamp(64px, 7.3vw, 105px); }
.che-faq2__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 0 77px; align-items: start; margin-top: 55px; }
.che-faq2 details { border: 0; padding: 0; margin: 0 0 19px; }
.che-faq2 summary { align-items: center; min-height: 64px; padding: 16px 20px 18px 25px; border: 1px solid var(--che-line); font: 400 22px/26px var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; }
.che-faq2 summary::after { display: none; }
.che-faq2 details[open] .che-chev { transform: rotate(180deg); }
.che-faq2 details p { margin: 0; padding: 27px 35px 13px 26px; line-height: 28px; }

/* precios: foto a un lado y carta al otro, alternando */
.che-prices { padding-top: clamp(56px, 6.3vw, 91px); }
.che-prices .che-title { padding-inline: 24px; }
.che-prices .che-filter { margin: 38px 24px 0; }
.che-prow { display: grid; grid-template-columns: 1fr 1fr; align-items: center; margin-top: 52px; }
.che-prow > img { width: 88.06%; justify-self: end; aspect-ratio: 634/601; object-fit: cover; }
.che-prow > div { margin: 0 9.6% 0 9.4%; }
.che-prow--rev { margin-top: 80px; }
.che-prow--rev > img { justify-self: start; }
.che-prow .che-meta { display: block; margin-bottom: 26px; }
.che-prow .btn { margin-top: 42px; }

/* blog: lista con barra lateral, entrada */
.che-blogsec { padding: clamp(56px, 9.03vw, 130px) 0; }
.che-blogsec--single { padding-top: 68px; }
.che-bloggrid { display: grid; grid-template-columns: minmax(0, 723fr) minmax(0, 298fr); gap: 0 79px; align-items: start; }
.che-art { margin-bottom: 70px; }
.che-art img, .che-entry__img { width: 100%; aspect-ratio: 723/479; object-fit: cover; margin-bottom: 45px; transition: opacity .4s; }
.che-art a:hover img { opacity: .85; }
.che-art .che-meta, .che-entry > .che-meta { display: block; line-height: 15px; }
.che-art h2 { margin: 10px 0 5px; }
.che-art h2 a { transition: color .3s; }
.che-art p { margin: 13px 0 0; line-height: 28px; }
.che-art .btn { margin-top: 32px; }
.che-qbox { position: relative; background: var(--che-panel); margin: 0 0 70px; padding: 80px 36px 81px 121px; }
.che-qbox::before, .che-entry blockquote::before { content: "”"; position: absolute; left: 36px; top: 62px; width: 96px; height: 96px; border-radius: 50%; border: 1px solid rgba(255,255,255,.22); font: italic 400 76px/124px var(--font-h); text-align: center; color: #fff; }
.che-qbox p { margin: 0; font: italic 400 clamp(24px, 2.64vw, 38px)/1.105 var(--font-h); letter-spacing: -.01em; color: #fff; }
.che-qbox cite { display: block; margin-top: 12px; font: italic 400 19px/1.3 var(--font-h); letter-spacing: .025em; color: var(--che-mute); }
.che-wid { margin-bottom: 59px; }
.che-wid h2 { font-size: var(--fs-md); line-height: 36px; letter-spacing: .035em; margin: 0 0 25px; }
.che-catlist li { font: 400 11px/15px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; color: var(--accent); margin: 0 0 14.4px; }
.che-catlist a:hover, .che-tags a:hover { color: #fff; }
.che-mini { display: grid; grid-template-columns: 120px minmax(0, 1fr); gap: 30px; align-items: center; margin-bottom: 20px; }
.che-mini img { width: 120px; height: 150px; object-fit: cover; }
.che-mini span { display: grid; }
.che-mini b { font: 400 22px/26px var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; margin: 7px 0 1px; transition: color .3s; }
.che-mini i { font: italic 400 19px/28px var(--font-h); letter-spacing: .025em; color: var(--che-mute); }
.che-sub { background: var(--che-panel); padding: 24px 31px 31px 29px; }
.che-sub h2 { margin: 0; }
.che-sub p { margin: 10px 0 12px; line-height: 28px; }
.che-tags { margin: 0; font: italic 300 19px/26.6px var(--font-b); }
.che-side .che-soc { margin-top: 0; }
.che-entry h1 { margin: 10px 0 5px; }
.che-entry p { margin: 10px 0; line-height: 28px; }
.che-entry h2 { font-size: var(--fs-md); line-height: 1.16; letter-spacing: .035em; margin: 34px 0 6px; }
.che-entry blockquote { position: relative; margin: 20px 0 42px; padding: 18px 60px 0 89px; font: italic 400 clamp(24px, 2.64vw, 38px)/1.105 var(--font-h); letter-spacing: -.01em; color: #fff; }
.che-entry blockquote::before { left: 0; top: 0; }
.che-two { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; margin: 32px 0 28px; }
.che-two img { width: 100%; aspect-ratio: 352/247; object-fit: cover; }
.che-entry__foot { display: flex; justify-content: space-between; align-items: baseline; gap: 20px; margin-top: 18px; }
.che-entry__foot .che-tags { font-size: 22px; line-height: 30.8px; }
.che-entry__foot span { font: italic 400 19px/26.6px var(--font-h); letter-spacing: .025em; color: #fff; white-space: nowrap; }
.che-author { display: grid; grid-template-columns: 200px 1fr; gap: 41px; align-items: center; margin-top: 74px; }
.che-author img { aspect-ratio: 1; }
.che-author > div { background: var(--che-panel); padding: 42px 60px 43px 40px; }
.che-author b { display: block; font: 400 22px/26px var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; }
.che-author i { font: italic 400 19px/30px var(--font-h); letter-spacing: .025em; }
.che-author p { margin: 11px 0 0; line-height: 28px; }
.che-cbox { background: var(--che-panel); margin-top: 96px; padding: 42px 53px 53px; }
.che-cbox h2 { font-size: clamp(28px, 2.64vw, 38px); line-height: 1.105; letter-spacing: -.01em; margin: 0 0 9px; }
.che-cbox p { margin: 0 0 24px; line-height: 28px; }
.che-cbox textarea, .che-cbox input { padding: 11px 10px 4px; margin-bottom: 20px; }
.che-cbox textarea { min-height: 154px; }
.che-cbox .btn { margin-top: 20px; }

/* contacto */
.che-contact { padding-top: clamp(56px, 6.94vw, 100px); }
.che-contact .che-title { padding-inline: 24px; }
.che-contact .che-title p { max-width: 900px; margin-top: 18px; }
.che-cform { width: min(100% - 48px, 985px); margin: 70px auto 0; text-align: center; }
.che-cform__row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 59px; }
.che-cform input, .che-cform textarea, .che-rsv .che-lines input, .che-rsv .che-lines textarea { padding: 11px 10px 4px; margin-bottom: 20px; }
.che-cform textarea { min-height: 176px; margin-bottom: 0; }
.che-cform .btn { margin-top: 40px; }
.che-mapsec { padding: clamp(64px, 9.03vw, 130px) clamp(16px, 5.97vw, 86px) 0; }
.che-mapsec .map { height: clamp(320px, 38.5vw, 555px); border-radius: 0; background: #e9e9e9; filter: grayscale(1) invert(.92) contrast(.86) brightness(.95); }
.che-cinfo { padding-top: 75px; }
.che-cinfo .wrap { display: grid; grid-template-columns: repeat(4, 1fr); gap: 30px 0; padding-left: clamp(0px, 4.6vw, 66px); }
.che-cinfo h3 { font-size: 22px; line-height: 26px; letter-spacing: .035em; margin: 0 0 25px; }
.che-cinfo li { font: 400 11px/15px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; margin: 0 0 15px; padding-right: 20px; }
.che-cinfo a:hover { color: #fff; }
.che-pg > .che-cinfo + .che-insta { padding-top: clamp(64px, 10.2vw, 147px); }

/* reserva (la demo no tiene: carta de precios como opciones, cajas del formulario de reserva y caja lateral) */
.che-rsv { padding: clamp(64px, 8.3vw, 120px) 0 clamp(64px, 9.03vw, 130px); }
.che-rsv__grid { display: grid; grid-template-columns: minmax(0, 723fr) minmax(0, 298fr); gap: 0 79px; align-items: start; margin-top: 76px; }
.che-step { display: flex; align-items: baseline; gap: 16px; font-size: var(--fs-md); line-height: 36px; letter-spacing: .035em; margin: 0 0 22px; }
.che-step i { font: italic 400 19px/1 var(--font-h); letter-spacing: .025em; color: var(--che-gold); }
.che-opts { display: grid; grid-template-columns: 1fr 1fr; gap: 0 36px; margin-bottom: 62px; }
.che-opt { position: relative; display: block; border-bottom: 1px solid var(--che-line); padding: 15px 0 8px 30px; cursor: pointer; }
.che-opt input, .che-slot input { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
.che-opt span { display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: baseline; gap: 0 12px; }
.che-opt span::before { content: ""; position: absolute; left: 0; top: 19px; width: 18px; height: 18px; border-radius: 50%; border: 1px solid #4c4c4c; transition: border-color .3s; }
.che-opt span::after { content: ""; position: absolute; left: 6px; top: 25px; width: 6px; height: 6px; border-radius: 50%; background: var(--che-gold); opacity: 0; transition: opacity .3s; }
.che-opt b { font: 400 22px/28px var(--font-h); letter-spacing: .035em; text-transform: uppercase; color: #fff; transition: color .3s; }
.che-opt em { font: 400 12px/1 var(--font-ui); letter-spacing: .2em; color: #fff; white-space: nowrap; }
.che-opt small { grid-column: 1 / -1; font-size: 20px; line-height: 28px; }
.che-opt:hover b, .che-opt input:checked + span b { color: var(--che-gold); }
.che-opt input:checked + span::before { border-color: var(--che-gold); }
.che-opt input:checked + span::after { opacity: 1; }
.che-opt input:focus-visible + span::before, .che-slot input:focus-visible + span { outline: 1px solid #fff; outline-offset: 3px; }
.che-res--2 { max-width: none; display: grid; grid-template-columns: 1fr 1fr; gap: 0 14px; }
.che-res--2 label { margin-top: 0; }
.che-slots { display: grid; grid-template-columns: repeat(4, 1fr); gap: 14px; margin: 14px 0 62px; }
.che-slot { position: relative; }
.che-slot span { display: grid; place-items: center; height: 55px; padding-bottom: 3px; border: 1px solid #4c4c4c; font: italic 400 17px/1 var(--font-b); letter-spacing: .035em; white-space: nowrap; transition: border-color .3s, color .3s; }
.che-slot:hover span, .che-slot input:checked + span { border-color: #fff; color: #fff; }
.che-rsv .che-lines textarea { min-height: 110px; margin-bottom: 0; }
.che-rsv form > .btn { margin-top: 40px; }
.che-sum { position: sticky; top: 96px; background: var(--che-panel); padding: 24px 31px 34px 29px; }
.che-sum h2 { font-size: var(--fs-md); line-height: 36px; letter-spacing: .035em; margin: 0 0 12px; }
.che-sum li { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; padding: 12px 0 11px; border-bottom: 1px solid var(--che-line); }
.che-sum li span { font: 400 11px/15px var(--font-ui); letter-spacing: .2em; text-transform: uppercase; color: #fff; }
.che-sum li b { font: italic 400 19px/24px var(--font-h); letter-spacing: .025em; text-align: right; }
.che-sum li:first-child { display: block; }
.che-sum li:first-child b { display: block; text-align: left; margin-top: 5px; }
.che-sum__total { font: italic 400 clamp(40px, 3.6vw, 52px)/1.1 var(--font-h); letter-spacing: -.01em; color: var(--che-gold); margin: 24px 0 12px; }
.che-sum p { font-size: 17px; line-height: 24px; margin: 0; }

/* 404 */
.che-404 { border-top: 1px solid var(--che-line); display: grid; justify-items: center; text-align: center; padding: clamp(80px, 11.1vw, 160px) 24px clamp(90px, 14vw, 200px); }
.che-404 p { max-width: 576px; margin: 14px 0 0; line-height: 28px; }
.che-404 .che-circle { margin-top: 52px !important; text-align: center; }
.che-404 .che-circle span { max-width: 6em; line-height: 1.1; }
.che-404 .link { margin-top: 30px; }

@media (max-width: 1240px) {
  body[class] { --che-hdr: 84px; }
  .che-bloggrid, .che-rsv__grid { gap: 0 48px; }
  .che-single__grid { gap: 0 40px; }
  .che-faq2__cols { gap: 0 40px; }
}
@media (max-width: 860px) {
  .che-crumbs { font-size: 18px; line-height: 28px; padding-block: 16px; }
  .che-works__grid, .che-gal { grid-template-columns: 1fr 1fr; }
  .che-single__grid, .che-faq2__cols, .che-prow, .che-bloggrid, .che-rsv__grid, .che-cform__row { grid-template-columns: minmax(0, 1fr); }
  .che-single { padding-top: 36px; }
  .che-single__txt, .che-sum { position: static; }
  .che-single__txt { margin-top: 36px; }
  .che-pn { margin-top: 56px; }
  .che-prow > img, .che-prow--rev > img { width: auto; justify-self: stretch; margin-inline: 24px; aspect-ratio: 4/3; order: -1; }
  .che-prow > div { margin: 34px 24px 0; }
  .che-prow--rev { margin-top: 64px; }
  .che-side { margin-top: 20px; }
  .che-blogsec--single { padding-top: 36px; }
  .che-sum { margin-top: 48px; }
  .che-cinfo .wrap { grid-template-columns: 1fr 1fr; padding-left: 0; }
  .che-opts { margin-bottom: 48px; }
  .che-pg > .che-video a { aspect-ratio: 4/3; }
}
@media (max-width: 560px) {
  .che-filter { gap: 12px 26px; }
  .che-works__grid { grid-template-columns: minmax(0, 1fr); }
  .che-pn { gap: 14px; align-items: flex-start; }
  .che-pn a { gap: 12px; }
  .che-pn b { font-size: 17px; line-height: 21px; }
  .che-sarrow { width: 30px; margin-top: 24px; align-self: flex-start; }
  .che-qbox { padding: 96px 24px 40px; }
  .che-qbox::before { left: 24px; top: 24px; width: 60px; height: 60px; font-size: 52px; line-height: 80px; }
  .che-entry blockquote { padding: 74px 0 0; }
  .che-entry blockquote::before { width: 60px; height: 60px; font-size: 52px; line-height: 80px; }
  .che-entry__foot { flex-direction: column; gap: 6px; }
  .che-author { grid-template-columns: minmax(0, 1fr); gap: 30px; }
  .che-author .che-frame { width: 200px; margin-left: 0; }
  .che-author > div { padding: 30px 26px; }
  .che-cbox { padding: 32px 24px 38px; margin-top: 64px; }
  .che-cinfo .wrap { grid-template-columns: minmax(0, 1fr); }
  .che-slots { grid-template-columns: repeat(3, 1fr); gap: 10px; }
  .che-slot span { font-size: 15px; letter-spacing: 0; }
  .che-res--2 { grid-template-columns: minmax(0, 1fr); }
  .che-res--2 > div + div label { margin-top: 20px; }
  .che-opts { grid-template-columns: minmax(0, 1fr); }
  .che-opt b { font-size: 19px; }
  .che-faq2 summary { font-size: 19px; }
}

/* ---------- Nirvana: logo, controles y barra de Nobiliti ---------- */
.brand { display: inline-flex; align-items: center; gap: 14px; }
.nv-logo { width: 68px; height: 68px; object-fit: contain; flex: none; filter: drop-shadow(0 2px 6px rgba(0,0,0,.35)); }
/* Marca: «NIRVANA» y su lema siempre juntos, con la tipografía del logo */
.nv-marca { display: inline-flex; flex-direction: column; align-items: center; gap: 5px; line-height: 1; white-space: nowrap; }
.nv-marca__n { font: 800 26px/1 'Abhaya Libre', Georgia, serif !important; letter-spacing: .1em !important; text-transform: uppercase; }
.nv-marca__t { display: flex; align-items: center; gap: 6px; font: 700 14px/1 'Abhaya Libre', Georgia, serif !important;
  letter-spacing: .02em !important; text-transform: none !important; opacity: .92; }
.nv-marca__t::before, .nv-marca__t::after { content: ""; width: 16px; border-top: 2px dotted currentColor; opacity: .75; }
.brand .nv-marca span { display: flex; }
.brand .nv-marca span::after { content: ""; }
footer .nv-logo { width: 96px; height: 96px; }
@media (max-width: 900px) { .nv-logo { width: 52px; height: 52px; } footer .nv-logo { width: 78px; height: 78px; } }
.nv-cta__tools { display: inline-flex; align-items: center; gap: 6px; flex: none; color: #f3efe8; }
.nv-lang, .nv-mode { display: inline-flex; align-items: center; justify-content: center; gap: 3px; height: 38px; min-width: 38px;
  border: 1px solid rgba(255,255,255,.45); border-radius: 0; background: transparent; color: inherit; font: 700 12px/1 'Manrope', system-ui, sans-serif;
  letter-spacing: .06em; text-transform: none; cursor: pointer; text-decoration: none; }
.nv-lang:hover, .nv-mode:hover { border-color: #c9ab81; }
/* Ancho fijo; el idioma activo se marca con opacidad y subrayado, sin cambiar el ancho */
.nv-lang { width: 78px; padding: 0; }
.nv-lang i { font-style: normal; opacity: .4; width: 14px; text-align: center; }
.nv-lang [data-l] { opacity: .5; }
html[lang="es"] .nv-lang [data-l="es"], html[lang="en"] .nv-lang [data-l="en"] { opacity: 1; text-decoration: underline; text-decoration-thickness: 2px; text-underline-offset: 4px; }
.nv-mode { padding: 0; width: 38px; }
.nv-i { width: 18px; height: 18px; }
.nv-aviso { margin-left: auto !important; margin-right: auto !important; }
.nv-aviso { max-width: 900px; margin: 0 auto; padding: 18px 20px 28px; font-size: 13px; line-height: 1.6; text-align: center; color: inherit; opacity: .85; }

/* Sección «Cómo llegar» de la portada: toma colores y tipografías del theme */
.nv-mapa { background: var(--alt); color: var(--text); padding: clamp(64px, 8vw, 110px) 0; }
.nv-mapa__in { width: min(100% - 40px, 1180px); margin: 0 auto; display: grid; grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: clamp(28px, 4vw, 56px); align-items: center; }
.nv-mapa__eb { display: block; color: var(--accent); font: 600 12px/1 var(--font-ui, sans-serif); letter-spacing: .2em; text-transform: uppercase; margin-bottom: 14px; }
.nv-mapa h2 { font-size: var(--fs-lg); margin: 0 0 16px; color: var(--ink); }
.nv-mapa__dir { font-size: 1.1em; color: var(--ink); margin-bottom: 18px; }
.nv-mapa__horas { list-style: none; padding: 0; margin: 0 0 26px; display: grid; gap: 8px; }
.nv-mapa__horas li { display: flex; justify-content: space-between; gap: 16px; border-bottom: 1px solid var(--border); padding-bottom: 8px; }
.nv-mapa__horas b { color: var(--ink); font-weight: 600; }
.nv-mapa__btns { display: flex; flex-wrap: wrap; gap: 10px; }
.nv-mapa__btn { display: inline-flex; align-items: center; gap: 8px; padding: 12px 18px; border: 1px solid var(--ink); color: var(--ink); border-radius: 0;
  font: 600 14px/1 'Manrope', system-ui, sans-serif; letter-spacing: 0; text-transform: none; text-decoration: none; }
.nv-mapa__btn svg { width: 18px; height: 18px; }
.nv-mapa__btn--main { background: var(--accent); border-color: var(--accent); color: var(--on-primary, #fff); }
html[data-native="dark"]:not([data-mode="light"]) .nv-mapa__btn--main, html[data-mode="dark"] .nv-mapa__btn--main { color: #14110c; }
html[data-native="light"]:not([data-mode="dark"]) .nv-mapa__btn--main, html[data-mode="light"] .nv-mapa__btn--main { color: #fff; }
.nv-mapa__map { position: relative; aspect-ratio: 4 / 3; border: 1px solid var(--border); overflow: hidden; background: var(--surface); }
.nv-mapa__map iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
/* En modo oscuro el mapa de Google se oscurece (sin llave de API no hay estilo oscuro) */
html[data-native="dark"]:not([data-mode="light"]) .nv-mapa__map iframe, html[data-mode="dark"] .nv-mapa__map iframe {
  filter: invert(.92) hue-rotate(180deg) brightness(.9) contrast(.92); }
@media (max-width: 860px) { .nv-mapa__in { grid-template-columns: 1fr; } .nv-mapa__map { aspect-ratio: 1 / 1; } }
/* Horario en el pie (en lugar del boletín) */
.nv-horario { list-style: none; padding: 0; margin: 0 0 22px; display: grid; gap: 10px; }
.nv-horario li { display: grid; gap: 2px; }
.nv-horario b { font-weight: 600; color: #fff; }
.nv-horario span { opacity: .85; }
/* Transiciones suaves: entre páginas (cambio de idioma) y al cambiar de modo. Solo CSS: el
   contenido llega completo en el HTML, así que no afecta a buscadores. */
@view-transition { navigation: auto; }
::view-transition-old(root), ::view-transition-new(root) { animation-duration: .35s; animation-timing-function: ease; }
.hdr { view-transition-name: nv-hdr; }
.nv-cta { view-transition-name: nv-cta; }
html.nv-cambiando, html.nv-cambiando * { transition: background-color .35s ease, color .35s ease, border-color .35s ease !important; }
@media (prefers-reduced-motion: reduce) {
  ::view-transition-group(*), ::view-transition-old(*), ::view-transition-new(*) { animation: none !important; }
}
/* Videos de fondo: cubren su contenedor; la foto del contenedor queda debajo */
.nv-video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; pointer-events: none; }
.che-band > .nv-video, .glo-ban > .nv-video { z-index: -2; }
.che-band:has(.nv-video)::before { background: rgba(0,0,0,.55); }
.glo-ban > .nv-video { opacity: .4; }
.glo-h1 .slide::before { z-index: 1; }
.glo-h1 .slide > .glo-h1__num { z-index: 2; }
@media (prefers-reduced-motion: reduce) { .nv-video { display: none; } }
/* Llamadas a la acción: botón propio con el color del theme */
.nv-boton { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 14px 28px; border-radius: 0;
  background: var(--accent); border: 1px solid var(--accent); color: var(--on-primary, #fff); cursor: pointer; text-decoration: none;
  font: 700 15px/1 'Manrope', system-ui, sans-serif; letter-spacing: .03em; text-transform: none; }
html[data-native="dark"]:not([data-mode="light"]) .nv-boton, html[data-mode="dark"] .nv-boton { color: #14110c; }
html[data-native="light"]:not([data-mode="dark"]) .nv-boton, html[data-mode="light"] .nv-boton { color: #fff; }
.nv-boton--linea { background: transparent !important; color: var(--ink) !important; border-color: var(--ink); }
.nv-boton:hover { transform: translateY(-2px); box-shadow: 0 10px 24px rgba(0,0,0,.18); }
.nv-boton:active { transform: scale(.95); transition-duration: .08s; }
.nv-boton { transition: transform .22s cubic-bezier(.34, 1.56, .64, 1), box-shadow .25s ease, background-color .25s ease, color .25s ease; }
.nv-acciones { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.nv-acciones--c { justify-content: center; }
.che-grid .nv-acciones, .glo-t1 .nv-acciones, .che-testi .nv-acciones { margin-top: 44px; }
.nv-cta-linea { text-align: center; padding: clamp(36px, 5vw, 64px) 20px; background: var(--bg); }
.nv-cta-linea p { font: 400 clamp(22px, 2.4vw, 30px)/1.25 var(--font-h); color: var(--ink); margin: 0 0 20px; }
.nv-cta-linea__btns { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.nv-reserva { background: var(--alt); padding: clamp(56px, 7vw, 96px) 20px; text-align: center; }
.nv-reserva__in { max-width: 720px; margin: 0 auto; }
.nv-reserva__eb { display: block; color: var(--accent); font: 700 14px/1 'Manrope', system-ui, sans-serif; letter-spacing: .2em; text-transform: uppercase; margin-bottom: 14px; }
.nv-reserva h2 { font-size: var(--fs-lg); color: var(--ink); margin: 0 0 14px; }
.nv-reserva p { font-size: 18px; color: var(--text); margin: 0 0 26px; }
.nv-boton--pie { margin-top: 18px; color: #14110c !important; background: #c9ab81; border-color: #c9ab81; }
/* Textos de la barra, mapa y aviso: mínimo 14 px */
.nv-lang { width: 86px; font-size: 14px; }
.nv-mapa__eb, .nv-aviso, .nv-cta__lbl, .nv-cta__back { font-size: 14px !important; }
.nv-cta { font-size: 15px; }
/* Al abrir el menú la página oculta su barra de desplazamiento: se reserva el hueco para que nada se corra */
html { scrollbar-gutter: stable; }
/* Menú: el theme lo mostraba de golpe (display none → flex). Ahora entra con fundido y deslizamiento,
   y sus enlaces aparecen escalonados. Barra de vista previa y WhatsApp se ocultan mientras está abierto. */
.nav-panel { display: flex !important; opacity: 0; visibility: hidden; transform: none !important;
  transition: opacity .35s ease, transform .5s cubic-bezier(.2, .8, .2, 1), visibility 0s linear .5s; }
.nav-open .nav-panel { opacity: 1; visibility: visible; transform: none;
  transition: opacity .35s ease, transform .5s cubic-bezier(.2, .8, .2, 1), visibility 0s; }
.nav-panel > * { opacity: 0; transform: translateY(14px); transition: opacity .4s ease, transform .55s cubic-bezier(.2, .8, .2, 1); }
.nav-open .nav-panel > * { opacity: 1; transform: none; }
.nav-open .nav-panel > :nth-child(1) { transition-delay: 0.085s; }
.nav-open .nav-panel > :nth-child(2) { transition-delay: 0.120s; }
.nav-open .nav-panel > :nth-child(3) { transition-delay: 0.155s; }
.nav-open .nav-panel > :nth-child(4) { transition-delay: 0.190s; }
.nav-open .nav-panel > :nth-child(5) { transition-delay: 0.225s; }
.nav-open .nav-panel > :nth-child(6) { transition-delay: 0.260s; }
.nav-open .nav-panel > :nth-child(7) { transition-delay: 0.295s; }
.nav-open .nav-panel > :nth-child(8) { transition-delay: 0.330s; }
.nav-open .nav-panel > :nth-child(9) { transition-delay: 0.365s; }
.nav-open .nav-panel > :nth-child(10) { transition-delay: 0.400s; }
.nav-open .nav-panel > :nth-child(11) { transition-delay: 0.435s; }
.nav-open .nav-panel > :nth-child(12) { transition-delay: 0.470s; }
.nav-open .nav-panel > :nth-child(13) { transition-delay: 0.505s; }
.nav-open :is(.nv-cta, .wa-float) { opacity: 0 !important; pointer-events: none; }
/* Cerrar en el mismo lugar que abrir: el JS lo pone sobre el botón de la cabecera; sin animación propia */
.nav-panel > .nav-panel__close { transform: none !important; opacity: 1; display: grid; place-items: center; z-index: 2; }
/* «Reservar cita» del menú: al pasar el cursor solo se aclara, sin saltos ni cambios bruscos */
.nav-panel .btn, .nav-panel .btn:hover { transform: none !important; box-shadow: none !important; filter: none !important; }
.nav-panel .btn { transition: background-color .3s ease, color .3s ease, border-color .3s ease !important; }
html[data-native="dark"] .nav-panel .btn:hover { background: var(--accent) !important; border-color: var(--accent) !important; color: #111 !important; }
html[data-native="light"]:not([data-mode="dark"]) .nav-panel .btn:hover { background: color-mix(in srgb, var(--accent) 85%, #000) !important; }
html[data-native="light"][data-mode="dark"] .nav-panel .btn:hover { background: color-mix(in srgb, var(--accent) 85%, #fff) !important; }
.nv-cta { transition: opacity .3s ease; }
@media (prefers-reduced-motion: reduce) { .nav-panel, .nav-panel > * { transition: none !important; transform: none !important; } }
/* Sin el recuadro gris que pinta el navegador al tocar en el celular */
a, button, [data-book], [data-nav-toggle] { -webkit-tap-highlight-color: transparent; }
:is([data-nav-toggle], .nav-panel__close):focus:not(:focus-visible) { outline: none; background: transparent; }
/* Un solo estilo de botón en todo el sitio: cuadrado, como los themes originales (pedido del usuario) */
:root { --btn-radius: 0px; }
:is(.btn, .glo-sub, .glo-tab, .glo-find button, .glo-ftr__form button, .che-line button, .che-res button, .che-lines button,
  .nv-boton, .nv-mapa__btn, .nv-cta, .nv-cta__btn, .nv-lang, .nv-mode, .chip, .glo-tag, .glo-ftr__soc a, button[type="submit"]) { border-radius: 0 !important; }
.che-filter .chip { padding: 8px 16px !important; border: 1px solid var(--border) !important; }
.che-filter .chip.is-on { border-color: var(--accent) !important; color: var(--accent) !important; }
/* Precio en dólares junto al de pesos */
.nv-cop, .nv-usd { font-family: 'Manrope', system-ui, sans-serif; font-style: normal; font-weight: 600; letter-spacing: .02em; text-transform: none; }
.nv-cop { font-size: .5em; display: inline !important; }
.nv-usd { font-size: .6em; white-space: nowrap; }
/* En los precios destacados el valor en dólares va debajo, en su propia línea */
:is(b, em, strong, .che-plan__price, .che-sum__total) > .nv-usd { display: block; margin-top: .3em; font-size: max(.45em, 14px); }
:is(b, em, strong) > .nv-cop { font-size: max(.45em, 13px); }
:is(b, em, strong):has(> .nv-cop) { white-space: nowrap; }
/* WhatsApp más grande */
.wa-float { width: 68px !important; height: 68px !important; box-shadow: 0 12px 30px rgba(37,211,102,.35) !important; }
.wa-float .ic, .wa-float svg { width: 36px !important; height: 36px !important; }
@media (max-width: 760px) { .wa-float { width: 62px !important; height: 62px !important; right: 14px !important; } }
/* Respuesta al tocar: los botones se hunden un poco y vuelven con rebote suave */
:is(.btn, .nv-cta__btn, .nv-mapa__btn, .nv-lang, .nv-mode, .chip, .glo-sub, .glo-tab, .glo-more, .che-circle, .link, .wa-float, .nav a, .nv-cta__back) {
  transition: transform .22s cubic-bezier(.34, 1.56, .64, 1), box-shadow .25s ease, background-color .25s ease, color .25s ease, border-color .25s ease, opacity .25s ease; }
:is(.btn, .nv-cta__btn, .nv-mapa__btn, .glo-sub):hover { transform: translateY(-2px); }
:is(.btn, .nv-cta__btn, .nv-mapa__btn, .nv-lang, .nv-mode, .chip, .glo-sub, .glo-tab, .glo-more, .che-circle, .link, .nv-cta__back):active { transform: scale(.94); transition-duration: .08s; }
.wa-float:hover { transform: translateY(-3px) scale(1.05); }
.wa-float:active { transform: scale(.92); transition-duration: .08s; }
.nv-mode .nv-i { transition: transform .5s cubic-bezier(.34, 1.56, .64, 1); }
.nv-mode:active .nv-i { transform: rotate(-60deg) scale(.8); }
:is(a, button, [tabindex]):focus-visible { outline: 2px solid #c9ab81; outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { :is(.btn, .nv-cta__btn, .nv-mapa__btn, .nv-lang, .nv-mode, .wa-float):is(:hover, :active) { transform: none; } }
/* Texto sobre fotos: sombra suave para que se lea sobre cualquier zona de la imagen */
.hero :is(h1, h2, h3, p, li, span, a, b, small), .page-hero :is(h1, h2, p, a, span), .glo-ban :is(h1, h2, p, a, span),
.che-band :is(h2, p, span), .che-cta__box :is(h2, p, span), .che-tile :is(h3, p, span), .che-reel b, .glo-pf__tile :is(h3, span),
.che-hero :is(h1, h2, p, span, a) { text-shadow: 0 1px 3px rgba(0,0,0,.45), 0 2px 18px rgba(0,0,0,.45); }
.glo-pf__tile > div { background: linear-gradient(to top, rgba(0,0,0,.55), rgba(0,0,0,0) 70%); }
/* Franja de anuncio de Nobiliti: ancho completo, negro y ámbar de Nobiliti, para que se lea como algo
   ajeno al diseño del spa (no como parte del theme) */
.nv-cta { position: fixed; left: 0; right: 0; bottom: 0; z-index: 60; display: flex; align-items: center; gap: 16px;
  padding: 10px clamp(14px, 3vw, 32px); background: #0a0a0a; color: #f5f5f5; border-top: 3px solid #ffc107;
  box-shadow: 0 -10px 30px rgba(0,0,0,.35); font: 500 14px/1.3 'Manrope', system-ui, sans-serif; letter-spacing: 0; text-transform: none; white-space: nowrap; }
.nv-cta__marca { display: flex; align-items: center; gap: 10px; min-width: 0; }
.nv-cta__ad { background: #ffc107; color: #111; font: 800 11px/1 'Manrope', system-ui, sans-serif; letter-spacing: .12em; text-transform: uppercase; padding: 5px 7px; }
.nv-cta__logo { height: 20px; width: auto; }
.nv-cta__txt { color: #cfcfcf; font-size: 14px; overflow: hidden; text-overflow: ellipsis; }
.nv-cta__back { color: #e6e6e6; text-decoration: underline; text-underline-offset: 3px; margin-left: auto; }
.nv-cta__tools .nv-lang, .nv-cta__tools .nv-mode { border-color: rgba(255,255,255,.35); }
.nv-cta__reloj { display: flex; align-items: baseline; gap: 6px; color: #cfcfcf; font-size: 14px; }
.nv-cta__cuenta { color: #ffc107; font: 800 16px/1 'Manrope', system-ui, sans-serif; font-variant-numeric: tabular-nums; letter-spacing: .02em; min-width: 9.5ch; }
.nv-cta__btn { flex: none; padding: 12px 20px; border-radius: 0; background: #ffc107; color: #111; font-weight: 800; white-space: nowrap; }
.nv-cta__btn:hover { background: #ffd54f; }
body { padding-bottom: 72px; }
.wa-float { bottom: 88px !important; }
@media (max-width: 1100px) { .nv-cta__txt { display: none; } }
@media (max-width: 760px) {
  .nv-cta { display: grid; grid-template-columns: auto 1fr auto; grid-template-areas: "marca reloj reloj" "back tools btn"; gap: 8px 10px; padding: 8px 12px 10px; }
  .nv-cta__marca { grid-area: marca; } .nv-cta__reloj { grid-area: reloj; justify-self: end; }
  .nv-cta__back { grid-area: back; margin: 0; font-size: 20px; text-decoration: none; }
  .nv-cta__tools { grid-area: tools; } .nv-cta__btn { grid-area: btn; padding: 11px 14px; font-size: 14px; }
  .nv-cta__txt, .nv-cta__lbl { display: none; }
  .nv-cta__logo { height: 16px; }
  .nv-cta__rlbl { display: none; }
  .nv-cta__cuenta { font-size: 15px; min-width: 0; }
  .nv-cta__cuenta::before { content: "⏳ "; }
  body { padding-bottom: 112px; }
  .wa-float { bottom: 124px !important; }
}

/* ---------- Modo light ---------- */
html[data-mode="light"] {
  --bg: #f7f2ea; --surface: #ffffff; --alt: #efe6d8; --alt2: #f3ece1;
  --ink: #1b1712; --ink-base: #1b1712; --text: #4a4238; --primary: #7d5f35; --on-primary: #ffffff;
  --accent: #7d5f35; --border: #d9cbb4; --eb-color: #7d5f35; color-scheme: light;
}
.nv-i--sol { display: block; } .nv-i--luna { display: none; }
html[data-mode="light"] .nv-i--sol { display: none; }
html[data-mode="light"] .nv-i--luna { display: block; }

/* Cifras: en la demo son números gigantes casi negros detrás del rótulo; aquí se leen */
.che-count .wrap > div { height: auto; padding: 18px 8px; gap: 6px; }
.che-count b { position: static; transform: none; color: var(--accent); font-size: clamp(48px, 5vw, 76px); }
.che-count span { color: var(--ink); }
/* Con los controles de idioma y modo, el lado derecho de la cabecera se aprieta */
.che-hdr__r { gap: 14px; }
/* Hamburguesa fija al borde derecho: el largo del menú en cada idioma no la mueve */
.che-hdr__r { position: relative; padding-right: 64px !important; }
.che-hdr .nv-tools { position: absolute; right: 58px; top: 50%; margin: -19px 0 0; }
.che-hdr .che-burger { position: absolute; right: 0; top: 50%; margin-top: -15px; }
.che-hdr--divided .che-hdr__r { justify-content: flex-start; }
.che-hdr--divided .nav { gap: clamp(12px, 1.4vw, 22px); }
@media (max-width: 1024px) { .che-hdr__r { padding-right: 56px !important; } }
.che-hdr .che-burger { width: 44px; }
/* Marca en columna: logo arriba y «Nirvana Spa» debajo, centrado */
.che-hdr .brand { flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; padding-block: 10px; }
.che-hdr .nv-marca__n { font-size: clamp(20px, 1.6vw, 26px); }
.che-hdr .nv-logo { width: 60px; height: 60px; }
.che-hdr--divided .hdr__in { min-height: 128px; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); }
/* Al hacer scroll la cabecera se encoge, pero el logo conserva aire arriba y abajo */
.che-hdr.is-scrolled .hdr__in, .che-hdr--divided.is-scrolled .hdr__in { min-height: 0; }
.che-hdr.is-scrolled .brand { padding-block: 8px; gap: 4px; }
.che-hdr.is-scrolled .nv-logo { width: 44px; height: 44px; }
.che-hdr.is-scrolled .nv-marca__n { font-size: 18px; }
.che-hdr .nv-logo, .che-hdr .nv-marca__n { transition: width .3s, height .3s, font-size .3s; }
@media (max-width: 1024px) {
  .che-hdr .hdr__in, .che-hdr--divided .hdr__in { min-height: 0; }
  .che-hdr .brand { padding-block: 8px; gap: 4px; }
  .che-hdr .nv-logo, .che-hdr.is-scrolled .nv-logo { width: 46px; height: 46px; }
  .che-hdr .nv-marca__n, .che-hdr.is-scrolled .nv-marca__n { font-size: 18px; }
}
.che-plan__price i, .che-testi cite, .che-person i, .che-mini i, .che-work i { opacity: 1; }
:root { --che-mute: #b3afa8; }
/* Nada por debajo de 14 px: la demo usa 11 px en menú, etiquetas, fechas y pie */
/* Portada: el círculo «Ver más» se montaba sobre el título (margen -39 px de la demo); va debajo */
.che-hero .che-circle { margin-top: clamp(22px, 3vw, 36px) !important; }
/* Las flechas del carrusel cruzaban el título: bajan a la altura del círculo */
.che-hero .che-arrow { top: auto !important; bottom: 24%; margin-top: 0 !important; }
:root { --nav-size: 14px; --eb-size: 14px; }
.che-hdr .nav a { font-size: 14px; letter-spacing: .12em; }
:is(.che-meta, .chip, .che-facts dt, .che-facts dd, .che-res label, .che-ftr li, .che-ftr a, .che-ftr span, .che-count span,
  .che-sum li, .che-sum li span, .che-pn small, .che-step i, .che-pl__it b, .che-opt em, .che-opt b, label, dt, dd) {
  font-size: max(14px, 1em) !important; letter-spacing: .1em; }
:is(.che-wid, .che-info, .che-contact, .che-cinfo) :is(li, a, span) { font-size: max(14px, 1em) !important; }
/* Con 14 px el pie en versales no cabe: menos interletrado y el correo puede partirse */
.che-ftr :is(li, a, span) { letter-spacing: .04em !important; overflow-wrap: anywhere; }
.che-ftr__grid > *, .che-cinfo .wrap > * { min-width: 0; }
.che-cinfo :is(li, a) { letter-spacing: .04em !important; overflow-wrap: anywhere; }
/* Modo claro: variables propias de Chea (paneles, dorado claro, gris) en versión clara */
html[data-mode="light"] { --che-gold: #7d5f35; --che-mute: #625a51; --che-panel: #efe6d8; --che-line: #d9cbb4; }
html[data-mode="light"] :is(.che-facts dt, .che-opt em, .che-404 .che-circle span, .che-crumbs span, .che-crumbs a, .chip, .che-mini b,
  .che-entry blockquote, .che-entry__foot span, details summary span, .che-pn b, .che-pn small, .che-step i, .che-qbox p, .che-author b,
  .che-sum li span) { color: var(--ink); }
html[data-mode="light"] .che-404 .che-circle { border-color: var(--ink); }
/* Modo claro: las piezas oscuras por diseño conservan su paleta oscura */
html[data-mode="light"] .ftr, html[data-mode="light"] .che-plan, html[data-mode="light"] .che-hero,
html[data-mode="light"] .che-band, html[data-mode="light"] .che-cta__box, html[data-mode="light"] .che-video,
html[data-mode="light"] .che-reel, html[data-mode="light"] .che-deck, html[data-mode="light"] .hdr,
html[data-mode="light"] .page-hero, html[data-mode="light"] .che-tile, html[data-mode="light"] .che-prod em,
html[data-mode="light"] .nav-panel { --che-gold: #ddc499; --che-mute: #b3afa8; --che-panel: #121212; --che-line: #41392e; --bg: #000; --surface: #111; --alt: #121212; --ink: #fff; --ink-base: #fff; --text: #d2cdc6; --primary: #c9ab81; --on-primary: #000; --accent: #c9ab81; --eb-color: #c9ab81; --border: #41392e; color: var(--text); }
html[data-mode="light"] .ftr { background: #0b0a08; }
html[data-mode="light"] .che-hdr .hdr { background: #0b0a08; }
html[data-mode="light"] .che-plan { background: #14110d; }
/* Textos que la demo fija en blanco y aquí van sobre fondo claro */
html[data-mode="light"] .che-quote span, html[data-mode="light"] .che-quote p,
html[data-mode="light"] .che-testi__q, html[data-mode="light"] .che-testi blockquote,
html[data-mode="light"] .che-faq summary, html[data-mode="light"] .che-tg figcaption b, html[data-mode="light"] .che-pl__it b,
html[data-mode="light"] .che-soc, html[data-mode="light"] .che-res label, html[data-mode="light"] .che-res__f > svg,
html[data-mode="light"] .che-lines input, html[data-mode="light"] .che-lines select, html[data-mode="light"] .che-lines textarea,
html[data-mode="light"] .che-line input, html[data-mode="light"] .che-dot, html[data-mode="light"] .che-insta__box,
html[data-mode="light"] main [data-btn="outline"] .btn:not(.btn--light):not(.btn--wa),
html[data-mode="light"] main .btn:not(.btn--light):not(.btn--wa):not(.che-hdr__book) { color: var(--ink); border-color: var(--ink); }
html[data-mode="light"] .che-lines ::placeholder, html[data-mode="light"] .che-line ::placeholder, html[data-mode="light"] .che-res ::placeholder { color: var(--text); }
html[data-mode="light"] .che-res input, html[data-mode="light"] .che-res select { background: var(--surface); color: var(--ink); border-color: var(--border); }
html[data-mode="light"] .che-lines select option, html[data-mode="light"] .che-res select option { background: var(--surface); color: var(--ink); }
html[data-mode="light"] .che-testi cite { color: var(--text); }
