/* Hoteles Chéveres design system v1 (huisstijl-en-designsystem-v1.md §15). Single token source. */
:root {
  --hc-white: #FFFFFF;
  --hc-noche: #16253A;
  --hc-selva: #0F5B4F;
  --hc-caribe: #14939B;
  --hc-mango: #F4B400;
  --hc-mango-hover: #DBA200;
  --hc-coral: #F26A4B;
  --hc-arena: #F7EBD8;
  --hc-subtle: #F7FAF8;
  --hc-border: #E7EAE7;
  --hc-muted: #5D6875;
  --hc-error: #A52B30;
  --hc-success: #176341;
  --hc-font-heading: 'Bricolage Grotesque', Arial, sans-serif;
  --hc-font-editorial: 'Instrument Serif', Georgia, serif;
  --hc-font-body: 'Inter', Arial, sans-serif;
  --hc-container: 1240px;
  --hc-gutter: 40px;
  --hc-card-radius: 20px;
  --hc-input-radius: 12px;
  --hc-pill-radius: 999px;
  --hc-card-shadow: 0 8px 28px rgba(22,37,58,.07);
  --hc-card-shadow-hover: 0 14px 38px rgba(22,37,58,.09);
  --hc-focus: 3px solid var(--hc-caribe);
  --hc-header: 84px;
  --hc-section: 80px;
}
@media (max-width: 1023px) { :root { --hc-gutter: 32px; --hc-section: 64px; } }
@media (max-width: 767px) { :root { --hc-gutter: 20px; --hc-section: 48px; --hc-header: 68px; } }

*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; -webkit-text-size-adjust: 100%; }
body { margin: 0; background: var(--hc-white); color: var(--hc-noche); font: 400 16px/1.65 var(--hc-font-body); overflow-x: hidden; }
img, svg { max-width: 100%; height: auto; }
h1, h2, h3, h4 { font-family: var(--hc-font-heading); margin-block: 0 .6em; color: var(--hc-noche); text-wrap: balance; }
h1 { font-size: clamp(40px, 5vw, 72px); line-height: 1.04; letter-spacing: -.04em; font-weight: 800; }
h2 { font-size: clamp(32px, 3.6vw, 48px); line-height: 1.10; letter-spacing: -.035em; font-weight: 800; }
h3 { font-size: clamp(23px, 2.3vw, 28px); line-height: 1.2; letter-spacing: -.025em; font-weight: 700; }
h4 { font-size: clamp(19px, 1.8vw, 21px); line-height: 1.25; letter-spacing: -.02em; font-weight: 700; }
p { margin: 0 0 1em; }
a { color: var(--hc-selva); text-underline-offset: 3px; }
a:hover { color: var(--hc-noche); }
:where(a, button, input, select, textarea, summary, [tabindex]):focus-visible { outline: var(--hc-focus); outline-offset: 3px; border-radius: 4px; }
[id] { scroll-margin-top: 100px; }
@media (max-width: 767px) { [id] { scroll-margin-top: 84px; } }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } *, *::before, *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; } }
.hc-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.hc-skip { position: absolute; left: 16px; top: -60px; z-index: 100; background: var(--hc-noche); color: #fff; padding: 12px 16px; border-radius: 12px; }
.hc-skip:focus { top: 12px; color: #fff; }

.hc-container { width: 100%; max-width: calc(var(--hc-container) + 2 * var(--hc-gutter)); margin-inline: auto; padding-inline: var(--hc-gutter); }
.hc-section { padding-block: var(--hc-section); }
.hc-section--tight { padding-block: calc(var(--hc-section) / 2); }
.hc-section + .hc-section { border-top: 1px solid var(--hc-border); }
.hc-prose { max-width: 70ch; }
.hc-lead { font-size: 20px; line-height: 1.55; max-width: 58ch; color: var(--hc-noche); }
@media (max-width: 767px) { .hc-lead { font-size: 18px; } }
.hc-overline { font: 700 12px/1.4 var(--hc-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--hc-selva); margin: 0 0 12px; }
.hc-editorial { font-family: var(--hc-font-editorial); font-style: italic; font-weight: 400; font-size: clamp(28px, 3vw, 38px); line-height: 1.12; letter-spacing: -.015em; color: var(--hc-selva); margin: 0 0 16px; }
.hc-muted { color: var(--hc-muted); }
.hc-small { font-size: 14px; line-height: 1.5; }
.hc-mark { background: linear-gradient(transparent 62%, rgba(244,180,0,.45) 62%); }

/* buttons */
.hc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; padding: 0 24px; border-radius: var(--hc-pill-radius); font: 700 15px/1.25 var(--hc-font-body); text-decoration: none; cursor: pointer; border: 0; transition: background .2s, box-shadow .2s; }
.hc-btn--primary { background: var(--hc-mango); color: var(--hc-noche); }
.hc-btn--primary:hover { background: var(--hc-mango-hover); color: var(--hc-noche); }
.hc-btn--secondary { background: var(--hc-white); color: var(--hc-selva); border: 2px solid var(--hc-selva); }
.hc-btn--secondary:hover { background: var(--hc-subtle); color: var(--hc-selva); }
.hc-btn--dark { background: var(--hc-noche); color: #fff; }
.hc-btn--dark:hover { background: var(--hc-selva); color: #fff; }
.hc-btn img { width: 20px; height: 20px; }
.hc-link-arrow { font-weight: 600; display: inline-flex; gap: 6px; align-items: center; min-height: 44px; }

/* header */
.hc-header { position: sticky; top: 0; z-index: 50; background: var(--hc-white); border-bottom: 1px solid var(--hc-border); height: var(--hc-header); }
.hc-header__in { display: flex; align-items: center; gap: 24px; height: 100%; }
.hc-logo { display: inline-flex; align-items: center; flex: none; text-decoration: none; }
.hc-logo svg { display: block; }
.hc-logo .hc-logo__full { width: 176px; height: auto; }
.hc-nav { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.hc-nav__item { position: static; }
.hc-nav__btn { display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px; background: none; border: 0; font: 600 15px/1 var(--hc-font-body); color: var(--hc-noche); cursor: pointer; border-radius: 10px; text-decoration: none; position: relative; }
.hc-nav__btn::after { content: ""; position: absolute; left: 14px; right: 14px; bottom: 4px; height: 3px; border-radius: 3px; background: transparent; }
.hc-nav__btn[aria-expanded="true"], .hc-nav__btn.is-active { color: var(--hc-selva); }
.hc-nav__btn[aria-expanded="true"]::after, .hc-nav__btn.is-active::after { background: var(--hc-selva); }
.hc-nav__btn svg { width: 12px; height: 12px; transition: transform .2s; }
.hc-nav__btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.hc-mega { position: absolute; left: 0; right: 0; top: var(--hc-header); background: var(--hc-white); border-bottom: 1px solid var(--hc-border); box-shadow: 0 18px 40px rgba(22,37,58,.08); padding-block: 32px 40px; }
.hc-mega[hidden] { display: none; }
.hc-mega__grid { display: grid; grid-template-columns: repeat(5, 1fr); gap: 24px; }
.hc-mega__grid--types { grid-template-columns: repeat(4, 1fr); }
.hc-mega h2 { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; font-family: var(--hc-font-body); font-weight: 700; color: var(--hc-muted); margin-bottom: 10px; }
.hc-mega ul { list-style: none; margin: 0; padding: 0; }
.hc-mega li a { display: flex; align-items: center; gap: 10px; min-height: 36px; text-decoration: none; color: var(--hc-noche); font-weight: 500; }
.hc-mega li a:hover { color: var(--hc-selva); text-decoration: underline; }
.hc-mega li img { width: 24px; height: 24px; }
.hc-mega__foot { margin-top: 24px; padding-top: 16px; border-top: 1px solid var(--hc-border); }
.hc-header__search { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 18px; border-radius: var(--hc-pill-radius); border: 1px solid var(--hc-border); background: var(--hc-white); font: 600 15px var(--hc-font-body); color: var(--hc-noche); cursor: pointer; }
.hc-header__search:hover { border-color: var(--hc-selva); }
.hc-header__search img { width: 20px; height: 20px; }
.hc-menu-btn { display: none; width: 44px; height: 44px; border: 1px solid var(--hc-border); border-radius: 12px; background: #fff; cursor: pointer; align-items: center; justify-content: center; }
@media (max-width: 1023px) {
  .hc-nav { display: none; }
  .hc-menu-btn { display: inline-flex; }
  .hc-header__actions { margin-left: auto; display: flex; gap: 8px; }
  .hc-header__search { padding: 0 12px; width: 44px; justify-content: center; }
  .hc-header__search span { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
}
@media (max-width: 767px) {
  .hc-logo .hc-logo__full { width: 146px; }
}

/* dialogs (mobile menu, search) */
.hc-dialog { position: fixed; inset: 0; z-index: 80; background: rgba(22,37,58,.45); display: flex; justify-content: flex-end; }
.hc-dialog[hidden] { display: none; }
.hc-dialog__panel { background: var(--hc-white); width: min(420px, 100%); height: 100%; overflow-y: auto; padding: 20px 20px 40px; }
.hc-dialog--search { align-items: flex-start; justify-content: center; padding: 10vh 16px 16px; }
.hc-dialog--search .hc-dialog__panel { height: auto; max-height: 80vh; width: min(720px, 100%); border-radius: var(--hc-card-radius); padding: 24px; }
.hc-dialog__head { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; }
.hc-close { width: 44px; height: 44px; border-radius: 12px; border: 1px solid var(--hc-border); background: #fff; cursor: pointer; font-size: 22px; line-height: 1; color: var(--hc-noche); }
.hc-mobnav h2 { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; font-family: var(--hc-font-body); color: var(--hc-muted); margin: 24px 0 8px; }
.hc-mobnav ul { list-style: none; padding: 0; margin: 0; }
.hc-mobnav a { display: flex; align-items: center; min-height: 44px; text-decoration: none; color: var(--hc-noche); font-weight: 500; border-bottom: 1px solid var(--hc-border); }
.hc-mobnav details > summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; align-items: center; min-height: 52px; font: 700 20px var(--hc-font-heading); border-bottom: 1px solid var(--hc-border); }
.hc-mobnav details > summary::-webkit-details-marker { display: none; }
.hc-mobnav details > summary::after { content: "+"; font-size: 24px; color: var(--hc-selva); }
.hc-mobnav details[open] > summary::after { content: "\2212"; }

/* search */
.hc-search { position: relative; }
.hc-search label { display: block; font-weight: 600; margin-bottom: 8px; }
.hc-search__field { display: flex; align-items: center; gap: 8px; background: var(--hc-white); border: 1px solid var(--hc-border); border-radius: var(--hc-input-radius); padding: 0 8px 0 16px; min-height: 52px; box-shadow: var(--hc-card-shadow); }
.hc-search__field:focus-within { border-color: var(--hc-selva); box-shadow: 0 0 0 3px rgba(20,147,155,.25); }
.hc-search__field img { width: 22px; height: 22px; flex: none; }
.hc-search input { flex: 1; min-width: 0; border: 0; outline: 0; background: transparent; font: 400 16px var(--hc-font-body); color: var(--hc-noche); min-height: 50px; }
.hc-search .hc-btn { min-height: 40px; padding: 0 18px; }
.hc-search__list { list-style: none; margin: 8px 0 0; padding: 8px; background: #fff; border: 1px solid var(--hc-border); border-radius: var(--hc-input-radius); box-shadow: var(--hc-card-shadow-hover); max-height: 420px; overflow-y: auto; }
.hc-search__list[hidden] { display: none; }
.hc-search--inline .hc-search__list { position: absolute; left: 0; right: 0; z-index: 30; }
.hc-search__group { font: 700 12px/1.4 var(--hc-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--hc-muted); padding: 10px 12px 4px; }
.hc-search__opt a { display: flex; justify-content: space-between; gap: 12px; padding: 10px 12px; border-radius: 10px; text-decoration: none; color: var(--hc-noche); min-height: 44px; align-items: center; }
.hc-search__opt a small { color: var(--hc-muted); font-size: 13px; text-align: right; }
.hc-search__opt[aria-selected="true"] a, .hc-search__opt a:hover { background: var(--hc-subtle); color: var(--hc-selva); }
.hc-search__empty { padding: 12px; color: var(--hc-muted); }

/* breadcrumbs */
.hc-crumbs { font-size: 14px; color: var(--hc-muted); padding-top: 24px; }
.hc-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px; }
.hc-crumbs li + li::before { content: "›"; margin-right: 4px; color: var(--hc-muted); }
.hc-crumbs a { color: var(--hc-muted); }
.hc-crumbs [aria-current] { color: var(--hc-noche); }

/* page hero (text first, white) */
.hc-hero { position: relative; padding-block: 40px 48px; overflow: hidden; isolation: isolate; }
.hc-hero__grid { display: grid; grid-template-columns: 7fr 5fr; gap: 48px; align-items: end; }
.hc-hero h1 { max-width: 16ch; }
/* full-width photo hero: image fills the band, text sits on a dark gradient */
.hc-hero--full { display: flex; align-items: flex-end; min-height: clamp(440px, 62vh, 640px); padding-block: 0 56px; background: var(--hc-noche); color: #fff; }
.hc-hero--full > .hc-container { position: relative; width: 100%; }
.hc-hero__bg { position: absolute; inset: 0; z-index: -1; }
.hc-hero__bg picture, .hc-hero__bg img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hc-hero__bg::after { content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(90deg, rgba(22,37,58,.82) 0%, rgba(22,37,58,.55) 45%, rgba(22,37,58,.08) 80%), linear-gradient(0deg, rgba(22,37,58,.7) 0%, rgba(22,37,58,0) 55%), linear-gradient(180deg, rgba(22,37,58,.55) 0%, rgba(22,37,58,0) 22%); }
.hc-hero--full .hc-crumbs { position: absolute; top: 0; left: var(--hc-gutter); right: var(--hc-gutter); }
.hc-hero--full .hc-crumbs, .hc-hero--full .hc-crumbs a, .hc-hero--full .hc-crumbs [aria-current], .hc-hero--full .hc-crumbs li + li::before { color: rgba(255,255,255,.9); }
.hc-hero--full .hc-container { padding-top: 72px; }
.hc-hero__text { max-width: 680px; }
.hc-hero--full h1, .hc-hero--full .hc-overline, .hc-hero--full .hc-lead, .hc-hero--full .hc-editorial, .hc-hero--full .hc-facts strong { color: #fff; }
.hc-hero--full .hc-lead a { color: #fff; }
.hc-hero--full .hc-facts span { color: rgba(255,255,255,.85); }
.hc-hero--full h1, .hc-hero--full .hc-lead { text-shadow: 0 1px 12px rgba(22,37,58,.35); }
.hc-hero--full .hc-photo-label--note { z-index: 1; }
.hc-hero-aside { padding-top: 32px; }
@media (max-width: 767px) {
  .hc-hero--full { min-height: 480px; padding-bottom: 40px; }
  .hc-hero__bg::after { background: linear-gradient(0deg, rgba(22,37,58,.9) 0%, rgba(22,37,58,.6) 50%, rgba(22,37,58,.25) 100%); }
  .hc-hero--full .hc-container { padding-top: 64px; }
}
.hc-hero__deco { position: absolute; pointer-events: none; z-index: -1; }
.hc-hero__deco--sun { width: 180px; right: -40px; top: -50px; opacity: .9; }
.hc-hero__deco--leaf { width: 120px; right: 12%; bottom: -10px; opacity: .8; }
@media (max-width: 767px) { .hc-hero__deco--sun { width: 96px; right: -36px; top: -36px; opacity: .55; } }
.hc-facts { display: flex; flex-wrap: wrap; gap: 8px 24px; margin: 20px 0 0; padding: 0; list-style: none; }
.hc-facts li { display: flex; flex-direction: column; }
.hc-facts strong { font: 800 32px/1.1 var(--hc-font-heading); letter-spacing: -.03em; }
.hc-facts span { font-size: 14px; color: var(--hc-muted); }
.hc-aside { background: var(--hc-subtle); border-radius: var(--hc-card-radius); padding: 24px; }
.hc-aside h2 { font-size: 21px; letter-spacing: -.02em; }
@media (max-width: 1023px) { .hc-hero__grid, .hc-hero__grid--img { grid-template-columns: 1fr; gap: 24px; } }

/* home hero */
.hc-home-hero { position: relative; padding-block: 64px 80px; overflow: hidden; isolation: isolate; }
.hc-home-hero__deco-sun, .hc-home-hero__deco-wave { z-index: -1; }
.hc-home-hero.hc-hero--full { min-height: clamp(560px, 82vh, 780px); padding-block: 72px 72px; align-items: center; }
.hc-home-hero.hc-hero--full .hc-container { padding-top: 0; }
.hc-home-hero.hc-hero--full .hc-photo-label:not(.hc-photo-label--note) { left: auto; right: 12px; bottom: 52px; z-index: 1; }
@media (max-width: 767px) { .hc-home-hero.hc-hero--full .hc-photo-label:not(.hc-photo-label--note) { bottom: auto; top: 12px; } .hc-home-hero.hc-hero--full { padding-block: 64px 56px; } }
.hc-photo-label { position: absolute; left: 16px; bottom: 16px; display: inline-flex; align-items: center; gap: 6px; min-height: 36px; padding: 0 14px; border-radius: var(--hc-pill-radius); background: #fff; color: var(--hc-noche); font: 600 14px var(--hc-font-body); text-decoration: none; box-shadow: var(--hc-card-shadow); }
.hc-photo-label:hover { color: var(--hc-selva); }
.hc-photo-label--note { left: auto; right: 12px; bottom: 12px; min-height: 28px; padding: 0 10px; font: 500 12px var(--hc-font-body); background: rgba(255,255,255,.92); color: var(--hc-noche); box-shadow: none; }
.hc-photo-label img { width: 16px; height: 16px; }
.hc-home-hero h1 { font-size: clamp(44px, 6.4vw, 88px); max-width: 13ch; }
.hc-home-hero .hc-search { max-width: 640px; margin-top: 32px; }
.hc-home-hero__deco-sun { position: absolute; width: 260px; right: 4%; top: 40px; pointer-events: none; }
.hc-home-hero__deco-wave { position: absolute; width: 360px; right: 0; bottom: 30px; pointer-events: none; opacity: .9; }
@media (max-width: 767px) { .hc-home-hero { padding-block: 40px 56px; } .hc-home-hero__deco-sun { width: 120px; right: -30px; top: 10px; opacity: .6; } .hc-home-hero__deco-wave { display: none; } }

/* grids */
.hc-grid { display: grid; gap: 24px; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.hc-grid--4 { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.hc-grid--2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@media (max-width: 1023px) { .hc-grid, .hc-grid--4 { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 20px; } }
@media (max-width: 767px) { .hc-grid, .hc-grid--4, .hc-grid--2 { grid-template-columns: minmax(0, 1fr); gap: 16px; } }
.hc-split { display: grid; grid-template-columns: 5fr 7fr; gap: 48px; align-items: start; }
@media (max-width: 1023px) { .hc-split { grid-template-columns: 1fr; gap: 24px; } }
.hc-section-head { display: flex; justify-content: space-between; align-items: end; gap: 24px; margin-bottom: 32px; flex-wrap: wrap; }
.hc-section-head h2 { margin: 0; max-width: 22ch; }
.hc-section-head p { margin: 8px 0 0; max-width: 58ch; color: var(--hc-muted); }

/* destination tiles */
.hc-dest { position: relative; display: flex; flex-direction: column; justify-content: space-between; min-height: 190px; padding: 24px; border: 1px solid var(--hc-border); border-radius: var(--hc-card-radius); text-decoration: none; color: var(--hc-noche); background: var(--hc-white); box-shadow: var(--hc-card-shadow); overflow: hidden; transition: box-shadow .2s, transform .2s; }
.hc-dest:hover { box-shadow: var(--hc-card-shadow-hover); color: var(--hc-noche); transform: translateY(-2px); }
.hc-dest__name { font: 800 clamp(28px, 2.8vw, 36px)/1.05 var(--hc-font-heading); letter-spacing: -.035em; margin: 0; }
.hc-dest__meta { font-size: 14px; color: var(--hc-muted); }
.hc-dest__count { font-weight: 700; color: var(--hc-selva); }
.hc-dest::before { content: ""; position: absolute; right: -28px; top: -28px; width: 96px; height: 96px; border-radius: 50%; background: var(--hc-arena); }
.hc-dest:nth-child(4n+2)::before { background: rgba(244,180,0,.35); }
.hc-dest:nth-child(4n+3)::before { background: rgba(20,147,155,.18); }
.hc-dest:nth-child(4n+4)::before { background: rgba(242,106,75,.18); }
.hc-dest--img { padding: 0; min-height: 0; justify-content: flex-start; }
.hc-dest--img::before { display: none; }
.hc-dest__pic { display: block; aspect-ratio: 3/2; overflow: hidden; background: var(--hc-subtle); }
.hc-dest__pic img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .3s; }
.hc-dest--img:hover .hc-dest__pic img { transform: scale(1.03); }
.hc-dest__txt { display: flex; flex-direction: column; justify-content: space-between; gap: 8px; flex: 1; }
.hc-dest--img .hc-dest__txt { padding: 16px 20px 20px; }
.hc-dest--img .hc-dest__name { font-size: clamp(23px, 2.2vw, 28px); }
.hc-deptcard__pic { display: block; aspect-ratio: 3/2; border-radius: 16px; overflow: hidden; margin-bottom: 12px; background: var(--hc-subtle); }
.hc-deptcard__pic img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hc-dest--dark { background: var(--hc-noche); color: #fff; border-color: var(--hc-noche); }
.hc-dest--dark .hc-dest__name, .hc-dest--dark:hover { color: #fff; }
.hc-dest--dark .hc-dest__meta { color: #DDE3EA; }
.hc-dest--dark .hc-dest__count { color: var(--hc-mango); }

/* type tiles */
.hc-type { display: flex; flex-direction: column; gap: 16px; padding: 24px; border-radius: var(--hc-card-radius); border: 1px solid var(--hc-border); text-decoration: none; color: var(--hc-noche); background: #fff; min-height: 170px; transition: border-color .2s, box-shadow .2s; }
.hc-type:hover { border-color: var(--hc-selva); box-shadow: var(--hc-card-shadow); color: var(--hc-noche); }
.hc-type img { width: 48px; height: 48px; }
.hc-type strong { font: 700 23px/1.15 var(--hc-font-heading); letter-spacing: -.02em; }
.hc-type span { font-size: 14px; color: var(--hc-muted); }

/* chips & badges */
.hc-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.hc-chip { display: inline-flex; align-items: center; gap: 8px; min-height: 40px; padding: 0 16px; border: 1px solid var(--hc-border); border-radius: var(--hc-pill-radius); background: #fff; color: var(--hc-noche); font: 500 14px var(--hc-font-body); text-decoration: none; cursor: pointer; white-space: nowrap; }
a.hc-chip:hover, button.hc-chip:hover { background: var(--hc-subtle); border-color: var(--hc-selva); color: var(--hc-noche); }
.hc-chip[aria-pressed="true"] { background: var(--hc-selva); border-color: var(--hc-selva); color: #fff; }
.hc-chip img { width: 18px; height: 18px; }
.hc-chip[aria-pressed="true"] img { filter: brightness(0) invert(1); }
.hc-tag { display: inline-flex; align-items: center; gap: 6px; padding: 4px 10px; border-radius: var(--hc-pill-radius); background: var(--hc-subtle); color: var(--hc-noche); font-size: 13px; line-height: 1.4; }
.hc-tag img { width: 16px; height: 16px; }
.hc-score { display: inline-flex; align-items: baseline; gap: 6px; font-size: 14px; color: var(--hc-muted); }
.hc-score b { display: inline-flex; align-items: center; min-height: 28px; padding: 0 10px; border-radius: 8px; background: var(--hc-selva); color: #fff; font: 700 15px var(--hc-font-body); }

/* hotel list + filters */
.hc-listhead { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 16px; }
.hc-filters { border: 1px solid var(--hc-border); border-radius: var(--hc-card-radius); padding: 16px 20px; margin-bottom: 24px; background: #fff; }
.hc-filters__row { display: flex; gap: 8px 16px; align-items: center; flex-wrap: wrap; padding-block: 6px; }
.hc-filters__label { font: 700 12px/1.4 var(--hc-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--hc-muted); min-width: 110px; }
.hc-filters__chips { display: flex; gap: 8px; flex-wrap: wrap; }
.hc-filters__foot { display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; border-top: 1px solid var(--hc-border); margin-top: 8px; padding-top: 12px; }
.hc-filters select { min-height: 44px; border-radius: var(--hc-input-radius); border: 1px solid var(--hc-border); padding: 0 12px; font: 500 16px var(--hc-font-body); background: #fff; color: var(--hc-noche); }
.hc-reset { background: none; border: 0; color: var(--hc-selva); text-decoration: underline; font: 600 15px var(--hc-font-body); cursor: pointer; min-height: 44px; }
.hc-filters-toggle { display: none; }
@media (max-width: 767px) {
  .hc-filters__chips { flex-wrap: nowrap; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; mask-image: linear-gradient(90deg, #000 85%, transparent); }
  .hc-filters__label { min-width: 0; width: 100%; }
  .hc-filters-toggle { display: inline-flex; }
  .hc-filters.is-collapsed .hc-filters__body { display: none; }
}
.hc-empty { text-align: center; padding: 40px 16px; border: 1px dashed var(--hc-border); border-radius: var(--hc-card-radius); }
.hc-empty img { width: 220px; }
.hc-empty[hidden] { display: none; }
.is-filtered-out { display: none !important; }

/* full hotel card */
.hc-hotels { display: flex; flex-direction: column; gap: 24px; }
.hc-hotel { display: grid; grid-template-columns: 38% 62%; border: 1px solid var(--hc-border); border-radius: var(--hc-card-radius); background: #fff; box-shadow: var(--hc-card-shadow); overflow: hidden; }
.hc-hotel:target, .hc-row:target { outline: 3px solid var(--hc-caribe); outline-offset: 2px; }
.hc-hotel__media { position: relative; background: var(--hc-subtle); }
.hc-hotel__main { display: block; width: 100%; height: 100%; min-height: 260px; object-fit: cover; aspect-ratio: 4/3; }
.hc-hotel__thumbs { position: absolute; left: 12px; bottom: 12px; display: flex; gap: 6px; }
.hc-hotel__thumbs button { width: 44px; height: 44px; padding: 0; border: 2px solid #fff; border-radius: 8px; overflow: hidden; cursor: pointer; background: #fff; }
.hc-hotel__thumbs button[aria-pressed="true"] { border-color: var(--hc-mango); }
.hc-hotel__thumbs img { width: 100%; height: 100%; object-fit: cover; display: block; }
.hc-hotel__body { padding: 24px 28px; display: flex; flex-direction: column; gap: 12px; min-width: 0; }
.hc-hotel__over { display: flex; flex-wrap: wrap; gap: 6px 12px; font: 700 12px/1.4 var(--hc-font-body); letter-spacing: .08em; text-transform: uppercase; color: var(--hc-selva); }
.hc-hotel h3 { margin: 0; overflow-wrap: anywhere; }
.hc-hotel h3 .hc-hotel__num { color: var(--hc-muted); font-weight: 700; margin-right: 4px; }
.hc-hotel h3 small { font-size: .7em; color: var(--hc-muted); font-weight: 700; }
.hc-hotel__loc { display: flex; gap: 8px; align-items: flex-start; font-size: 14px; color: var(--hc-muted); }
.hc-hotel__loc img { width: 18px; height: 18px; margin-top: 2px; flex: none; }
.hc-hotel__row { display: flex; flex-wrap: wrap; gap: 8px 16px; align-items: center; }
.hc-hotel__why { display: grid; gap: 8px; margin: 0; }
.hc-hotel__why div { padding: 12px 14px; border-radius: 12px; background: var(--hc-subtle); }
.hc-hotel__why dt { font-weight: 700; display: inline; }
.hc-hotel__why dd { display: inline; margin: 0; }
.hc-hotel__ideal { font-size: 14px; }
.hc-hotel__cta { display: flex; flex-wrap: wrap; gap: 12px 20px; align-items: center; margin-top: auto; padding-top: 8px; }
.hc-hotel__price { font-size: 14px; color: var(--hc-muted); }
@media (max-width: 767px) {
  .hc-hotel { grid-template-columns: 1fr; }
  .hc-hotel__main { min-height: 0; }
  .hc-hotel__body { padding: 20px; }
  .hc-hotel__cta .hc-btn--primary { width: 100%; }
}

.hc-grid > .hc-hotel { grid-column: 1 / -1; }

/* expandable rows (Más hoteles) */
.hc-rows { border-top: 1px solid var(--hc-border); }
.hc-row { border-bottom: 1px solid var(--hc-border); }
.hc-row > summary { list-style: none; display: grid; grid-template-columns: 48px 1fr auto 28px; gap: 12px; align-items: center; min-height: 64px; cursor: pointer; padding: 8px 4px; }
.hc-row > summary::-webkit-details-marker { display: none; }
.hc-row > summary::after { content: "+"; font: 700 22px var(--hc-font-body); color: var(--hc-selva); text-align: center; }
.hc-row[open] > summary::after { content: "\2212"; }
.hc-row__thumb { width: 48px; height: 48px; border-radius: 10px; object-fit: cover; background: var(--hc-subtle); }
.hc-row__name { font-weight: 700; overflow-wrap: anywhere; }
.hc-row__name small { display: block; font-weight: 400; color: var(--hc-muted); font-size: 13px; }
.hc-row .hc-hotel { margin-bottom: 16px; box-shadow: none; }
@media (max-width: 767px) { .hc-row > summary { grid-template-columns: 48px 1fr 24px; } .hc-row > summary .hc-score { grid-column: 2; } }

/* compact card */
.hc-mini { display: flex; flex-direction: column; border: 1px solid var(--hc-border); border-radius: var(--hc-card-radius); overflow: hidden; background: #fff; box-shadow: var(--hc-card-shadow); }
.hc-mini__img { aspect-ratio: 4/3; width: 100%; object-fit: cover; display: block; background: var(--hc-subtle); }
.hc-mini__body { padding: 16px 20px 20px; display: flex; flex-direction: column; gap: 8px; flex: 1; }
.hc-mini h3 { font-size: 21px; letter-spacing: -.02em; margin: 0; overflow-wrap: anywhere; }
.hc-mini__body > .hc-tag { align-self: flex-start; }
.hc-mini__place {font-size: 14px; color: var(--hc-muted); margin: 0; }
.hc-mini__ctx { font-size: 14px; margin: 0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.hc-mini__links { margin-top: auto; display: flex; gap: 8px 16px; flex-wrap: wrap; align-items: center; padding-top: 4px; }
.hc-mini__links a { font-weight: 600; min-height: 44px; display: inline-flex; align-items: center; }

/* link lists */
.hc-linklist { list-style: none; padding: 0; margin: 0; columns: 3 220px; column-gap: 32px; }
.hc-linklist li { break-inside: avoid; }
.hc-linklist a { display: flex; justify-content: space-between; gap: 12px; min-height: 40px; align-items: center; border-bottom: 1px solid var(--hc-border); text-decoration: none; color: var(--hc-noche); font-weight: 500; }
.hc-linklist a:hover { color: var(--hc-selva); }
.hc-linklist small { color: var(--hc-muted); font-weight: 400; white-space: nowrap; }
.hc-az { display: flex; flex-wrap: wrap; gap: 6px; list-style: none; padding: 0; margin: 0 0 24px; }
.hc-az a { display: inline-flex; width: 40px; height: 40px; align-items: center; justify-content: center; border: 1px solid var(--hc-border); border-radius: 10px; text-decoration: none; font-weight: 700; }
.hc-az a:hover { background: var(--hc-selva); color: #fff; border-color: var(--hc-selva); }

/* region tabs */
.hc-tabs [role="tablist"] { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.hc-tabs [role="tab"] { min-height: 44px; padding: 0 18px; border-radius: var(--hc-pill-radius); border: 1px solid var(--hc-border); background: #fff; font: 600 15px var(--hc-font-body); color: var(--hc-noche); cursor: pointer; }
.hc-tabs [role="tab"][aria-selected="true"] { background: var(--hc-selva); color: #fff; border-color: var(--hc-selva); }
.hc-tabs [role="tabpanel"][hidden] { display: none; }

/* info boxes */
.hc-box { border: 1px solid var(--hc-border); border-radius: var(--hc-card-radius); padding: 24px; background: #fff; }
.hc-box--subtle { background: var(--hc-subtle); border-color: transparent; }
.hc-box--dark { background: var(--hc-noche); color: #fff; border-color: var(--hc-noche); }
.hc-box--dark h2, .hc-box--dark h3 { color: #fff; }
.hc-box--dark a { color: #fff; }
.hc-box--warn { border-left: 6px solid var(--hc-coral); }
.hc-box h3 { font-size: 23px; }
.hc-checklist { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.hc-checklist li { padding-left: 32px; position: relative; }
.hc-checklist li::before { content: ""; position: absolute; left: 0; top: 4px; width: 20px; height: 20px; border-radius: 50%; background: var(--hc-arena); box-shadow: inset 0 0 0 6px var(--hc-mango); }
.hc-steps { counter-reset: s; list-style: none; padding: 0; margin: 0; display: grid; gap: 24px; grid-template-columns: repeat(3, 1fr); }
.hc-steps li { counter-increment: s; }
.hc-steps li::before { content: counter(s); display: inline-flex; width: 44px; height: 44px; border-radius: 50%; background: var(--hc-mango); color: var(--hc-noche); font: 800 22px var(--hc-font-heading); align-items: center; justify-content: center; margin-bottom: 12px; }
.hc-box--dark .hc-steps li::before { background: var(--hc-mango); }
@media (max-width: 767px) { .hc-steps { grid-template-columns: 1fr; } }

/* faq */
.hc-faq { border-top: 1px solid var(--hc-border); max-width: 840px; }
.hc-faq details { border-bottom: 1px solid var(--hc-border); }
.hc-faq summary { list-style: none; cursor: pointer; display: flex; justify-content: space-between; gap: 16px; align-items: center; padding: 18px 0; font: 700 19px/1.3 var(--hc-font-heading); letter-spacing: -.01em; min-height: 44px; }
.hc-faq summary::-webkit-details-marker { display: none; }
.hc-faq summary::after { content: "+"; color: var(--hc-selva); font-size: 26px; flex: none; }
.hc-faq details[open] summary::after { content: "\2212"; }
.hc-faq details > div { padding: 0 0 18px; max-width: 70ch; }

/* tables */
.hc-table { width: 100%; border-collapse: collapse; font-size: 15px; }
.hc-table th, .hc-table td { text-align: left; padding: 10px 12px; border-bottom: 1px solid var(--hc-border); vertical-align: top; }
.hc-table th { font-size: 12px; letter-spacing: .08em; text-transform: uppercase; color: var(--hc-muted); }
.hc-table-wrap { overflow-x: auto; }

/* forms */
.hc-form { display: grid; gap: 16px; max-width: 640px; }
.hc-form label { font-weight: 600; display: block; margin-bottom: 6px; }
.hc-form input, .hc-form select, .hc-form textarea { width: 100%; min-height: 52px; border: 1px solid var(--hc-border); border-radius: var(--hc-input-radius); padding: 12px 16px; font: 400 16px var(--hc-font-body); color: var(--hc-noche); background: #fff; }
.hc-form textarea { min-height: 160px; resize: vertical; }
.hc-form input:focus, .hc-form select:focus, .hc-form textarea:focus { border-color: var(--hc-selva); outline: var(--hc-focus); outline-offset: 2px; }
.hc-form .hc-hp { display: none; }
.hc-form__status { padding: 12px 16px; border-radius: 12px; }
.hc-form__status--ok { background: #E8F3EC; color: var(--hc-success); }
.hc-form__status--err { background: #F8E9E9; color: var(--hc-error); }
.hc-form__status[hidden] { display: none; }
.hc-check { display: flex; gap: 10px; align-items: flex-start; }
.hc-check input { width: 22px; height: 22px; min-height: 0; margin-top: 2px; flex: none; }
.hc-check label { font-weight: 400; margin: 0; }

/* footer */
.hc-footer { margin-top: 0; border-top: 1px solid var(--hc-border); background: #fff; padding-block: 64px 32px; }
.hc-footer__top { display: grid; grid-template-columns: 4fr 3fr 3fr 2fr; gap: 32px; }
.hc-footer h2 { font-size: 13px; letter-spacing: .08em; text-transform: uppercase; font-family: var(--hc-font-body); color: var(--hc-muted); margin-bottom: 12px; }
.hc-footer ul { list-style: none; margin: 0; padding: 0; }
.hc-footer li a { display: inline-flex; min-height: 32px; align-items: center; color: var(--hc-noche); text-decoration: none; font-size: 15px; }
.hc-footer li a:hover { color: var(--hc-selva); text-decoration: underline; }
.hc-footer__cols { columns: 2; column-gap: 16px; }
.hc-footer__claim { font-family: var(--hc-font-editorial); font-style: italic; font-size: 28px; color: var(--hc-selva); margin: 16px 0; line-height: 1.15; }
.hc-footer__bottom { margin-top: 40px; padding-top: 20px; border-top: 1px solid var(--hc-border); display: flex; flex-wrap: wrap; gap: 12px 24px; justify-content: space-between; font-size: 14px; color: var(--hc-muted); }
.hc-footer__bottom button { background: none; border: 0; padding: 0; font: inherit; color: var(--hc-selva); text-decoration: underline; cursor: pointer; min-height: 44px; }
@media (max-width: 1023px) { .hc-footer__top { grid-template-columns: 1fr 1fr; } }
@media (max-width: 767px) { .hc-footer__top { grid-template-columns: 1fr; } }

/* consent banner */
.hc-consent { position: fixed; left: 16px; right: 16px; bottom: 16px; z-index: 90; max-width: 720px; margin-inline: auto; background: #fff; border: 1px solid var(--hc-border); border-radius: var(--hc-card-radius); box-shadow: 0 18px 50px rgba(22,37,58,.18); padding: 20px 24px; }
.hc-consent[hidden] { display: none; }
.hc-consent p { margin: 0 0 12px; font-size: 15px; }
.hc-consent__actions { display: flex; flex-wrap: wrap; gap: 12px; }

/* notices */
.hc-notice { border: 1px solid #F3D5CC; background: #FFF6F3; border-radius: 12px; padding: 12px 16px; font-size: 14px; }
.hc-disclosure { font-size: 14px; color: var(--hc-muted); border-top: 1px solid var(--hc-border); padding-top: 16px; margin-top: 32px; }
.hc-deco { pointer-events: none; }
.hc-rel { position: relative; }
.hc-mt0 { margin-top: 0; }
.hc-center { text-align: center; }
