/* Turquesa Chelem — Portal Cliente. Mobile-first. SPEC-001 §8.1.
   Sin build: CSS con variables, namespacing simple. */
:root{
  --c-primary:#0e7c86; --c-primary-d:#0a5b63; --c-accent:#f2b705;
  --c-bg:#f7fbfc; --c-surface:#ffffff; --c-text:#12303a; --c-muted:#5b7480;
  --c-ok:#1c8a4e; --c-warn:#b45309; --c-err:#b3261e; --c-line:#dbe7ea;
  /* Verde header homepage (scrolled) — homologa topbar/footer en todo el sitio */
  --c-chrome:#12303a; --c-chrome-fg:#fff; --c-chrome-muted:rgba(255,255,255,.72);
  --c-chrome-line:rgba(255,255,255,.14);
  --radius:14px; --tap:44px; --maxw:960px; --gap:16px;
  --font: system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box}
html{font-size:16px}
body{margin:0;font-family:var(--font);color:var(--c-text);background:var(--c-bg);line-height:1.5}
img{max-width:100%;height:auto;display:block}
a{color:var(--c-primary-d)}
h1,h2,h3{line-height:1.2;margin:.4em 0}
.muted{color:var(--c-muted)}
.small{font-size:.85rem}
.center{text-align:center}
.skip-link{position:absolute;left:-999px}
.skip-link:focus{left:8px;top:8px;background:#fff;padding:8px;z-index:1000}

/* Topbar / nav — verde chrome homologado (mismo tono que homepage scrolled) */
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;
  gap:8px;padding:10px 14px;background:var(--c-chrome);border-bottom:1px solid var(--c-chrome-line);
  color:var(--c-chrome-fg);transition:background .35s ease,border-color .35s ease,box-shadow .35s ease;flex-wrap:wrap}
.topbar .brand,.topbar .topnav a{color:var(--c-chrome-fg)}
.topbar .lang a{border-color:rgba(255,255,255,.45);color:var(--c-chrome-fg);background:rgba(0,0,0,.15)}
.topbar .lang--on{background:rgba(255,255,255,.92);color:var(--c-primary-d)}
.topbar .btn--sm{background:var(--c-accent);color:#1a1200;border:0}
.topbar--hero{position:fixed;left:0;right:0;top:0;background:transparent;border-bottom-color:transparent;
  box-shadow:none}
.topbar--hero .brand,.topbar--hero .topnav a{color:#fff;text-shadow:0 1px 8px rgba(0,0,0,.35)}
.topbar--hero .lang a{border-color:rgba(255,255,255,.45);color:#fff;background:rgba(0,0,0,.15)}
.topbar--hero .lang--on{background:rgba(255,255,255,.92);color:var(--c-primary-d);text-shadow:none}
.topbar--hero .btn--sm{background:var(--c-accent);color:#1a1200;border:0;text-shadow:none}
.topbar--hero.is-scrolled{background:color-mix(in srgb,var(--c-chrome) 92%,transparent);backdrop-filter:blur(10px);
  border-bottom-color:var(--c-chrome-line);box-shadow:0 8px 24px rgba(0,0,0,.18)}
.topbar--hero.is-scrolled .brand,.topbar--hero.is-scrolled .topnav a{text-shadow:none}
.brand-cluster{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto}
.brand{font-weight:700;color:var(--c-primary-d);text-decoration:none;line-height:1.2;
  font-size:clamp(.82rem,2.4vw,1.05rem);white-space:nowrap}
.topnav{display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex:0 1 auto;justify-content:flex-end}
.topnav a{text-decoration:none;font-size:.9rem;min-height:var(--tap);display:inline-flex;align-items:center}
.lang{display:inline-flex;gap:6px;flex-shrink:0}
.lang a{padding:0 6px;border:1px solid var(--c-line);border-radius:8px;min-height:var(--tap);
  display:inline-flex;align-items:center;text-decoration:none;font-size:.85rem;color:inherit}
.lang--on{background:var(--c-primary);color:#fff}
@media (max-width:719px){
  .brand-cluster{flex:1 1 auto}
  .topnav{flex:1 1 100%;justify-content:flex-start;gap:8px}
  .topnav a{font-size:.8rem}
}

/* Layout */
.contenido{max-width:var(--maxw);margin:0 auto;padding:16px 14px 96px}
.contenido--after-hero{padding-top:8px}
.bloque{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--radius);
  padding:18px;margin:16px 0}
.bloque--angosto{max-width:560px;margin-left:auto;margin-right:auto}
.prosa p,.prosa li{max-width:60ch}

/* Hero fullscreen (landing, estilo carrusel Helias)
   Acotado a un solo viewport; imágenes recortadas con object-fit:cover. */
.pagina-landing{overflow-x:clip}
.hero-zone{position:relative;width:100%;height:100svh;max-height:100svh;min-height:0;
  overflow:hidden;contain:layout style paint;background:#0a5b63;color:#fff;isolation:isolate}
@supports (height:100dvh){.hero-zone{height:100dvh;max-height:100dvh}}
.hero-zone__media-track{position:absolute;top:0;right:0;bottom:0;left:0;z-index:0;width:100%;height:100%;
  overflow:hidden}
.hero-zone__media-slide{position:absolute;top:0;right:0;bottom:0;left:0;opacity:0;visibility:hidden;
  transition:opacity 1s ease,visibility 1s ease;z-index:0;overflow:hidden}
.hero-zone__media-slide.is-active{opacity:1;visibility:visible;z-index:1}
.hero-zone__media{position:absolute;top:50%;left:50%;width:100%;height:100%;max-width:none;max-height:none;
  min-width:100%;min-height:100%;object-fit:cover;object-position:center;
  transform:translate(-50%,-50%) scale(1);transform-origin:center center;
  transition:transform 8s ease;will-change:transform}
.hero-zone__media-slide.is-active .hero-zone__media{transform:translate(-50%,-50%) scale(1.04)}
.hero-zone--anime .hero-zone__media-slide,
.hero-zone--anime .hero-zone__media{transition:none}
.hero-zone__overlay{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(8,32,40,.25) 0%,rgba(8,32,40,.45) 45%,rgba(8,32,40,.72) 100%)}
.hero-zone__copy{position:absolute;top:0;right:0;bottom:0;left:0;z-index:2;display:flex;flex-direction:column;
  justify-content:flex-end;align-items:flex-start;gap:12px;padding:96px 20px 88px;max-width:720px;
  pointer-events:none}
.hero-zone__copy .btn--hero{pointer-events:auto}
.hero-zone__title,.hero-zone__text{margin:0;transition:opacity .45s ease,transform .45s ease}
.hero-zone--anime .hero-zone__title,
.hero-zone--anime .hero-zone__text{transition:none}
.hero-zone__title{font-size:clamp(1.85rem,6vw,3.4rem);font-weight:700;line-height:1.08;
  letter-spacing:-.02em;text-shadow:0 2px 18px rgba(0,0,0,.35)}
.hero-zone__text{font-size:clamp(1rem,2.4vw,1.25rem);line-height:1.45;max-width:52ch;
  opacity:.95;text-shadow:0 1px 10px rgba(0,0,0,.35)}
.hero-zone__copy.is-transitioning .hero-zone__title,
.hero-zone__copy.is-transitioning .hero-zone__text{opacity:0;transform:translateY(16px)}
.btn--hero{margin-top:8px;background:var(--c-accent);color:#1a1200;box-shadow:0 8px 24px rgba(0,0,0,.25)}
.btn--hero:hover{background:#ffd24d;color:#1a1200}
.hero-zone__pager{position:absolute;left:50%;bottom:22px;transform:translateX(-50%);z-index:3;
  display:flex;gap:10px;align-items:center}
.hero-zone__dot{width:36px;height:36px;border-radius:50%;border:1px solid rgba(255,255,255,.55);
  background:rgba(0,0,0,.2);color:#fff;font-size:.85rem;font-weight:600;cursor:pointer;
  transition:transform .2s ease,background .2s ease,border-color .2s ease}
.hero-zone__dot.is-active{background:#fff;color:var(--c-primary-d);border-color:#fff;transform:scale(1.08)}
.hero-zone__dot:focus-visible{outline:2px solid #fff;outline-offset:2px}
.pagina-landing .cta-fija{bottom:0;z-index:40}
@media (min-width:720px){
  .hero-zone__copy{padding:110px 48px 96px;max-width:860px}
  .hero-zone__pager{bottom:28px;gap:12px}
  .hero-zone__dot{width:40px;height:40px}
}
@media (prefers-reduced-motion:reduce){
  .hero-zone__media-slide,.hero-zone__media,.hero-zone__title,.hero-zone__text{transition:none}
  .hero-zone__media-slide.is-active .hero-zone__media{transform:translate(-50%,-50%) scale(1)}
}

/* Botones */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:var(--tap);
  padding:12px 18px;border:0;border-radius:12px;background:var(--c-primary);color:#fff;
  font-size:1rem;font-weight:600;text-decoration:none;cursor:pointer}
.btn:hover{background:var(--c-primary-d)}
.btn--lg{padding:16px 22px;font-size:1.05rem}
.btn--sm{min-height:36px;padding:8px 12px;font-size:.9rem}
.btn--block{display:flex;width:100%;margin-top:10px}
.btn--ghost{background:transparent;color:var(--c-primary-d);border:1px solid var(--c-primary)}
.btn--mp{background:#009ee3}.btn--mp:hover{background:#007bbd}
.btn--clip{background:#ff7b00}.btn--clip:hover{background:#e56e00}
.btn--pasarela{gap:12px}
.btn__icon{display:inline-flex;flex-shrink:0;line-height:0}
.btn__icon-svg{display:block}
.btn__label{line-height:1.2}
.form--pasarelas{gap:12px}
.aviso-pago--sin-pasarela{background:#f4f6f7;border-color:var(--c-line);color:var(--c-ink)}

/* Formularios */
.form{display:flex;flex-direction:column;gap:14px;margin-top:12px}
.form label{display:flex;flex-direction:column;gap:6px;font-weight:600;font-size:.95rem}
.form input[type=text],.form input[type=email],.form input[type=tel],
.form input[type=date],.form select{min-height:var(--tap);padding:12px;border:1px solid var(--c-line);
  border-radius:10px;font-size:1rem;background:#fff}
.form select{appearance:auto;cursor:pointer}
.form input.is-invalid,.form input[aria-invalid=true],
.form select.is-invalid,.form select[aria-invalid=true],
.form .check.is-invalid{border-color:var(--c-err);outline-color:var(--c-err)}
.form input.is-invalid,.form input[aria-invalid=true],
.form select.is-invalid,.form select[aria-invalid=true]{border-width:2px;background:#fff8f7}
.form__error{margin:0;font-size:.875rem;font-weight:500;color:#7a1a15}
.form__row{display:grid;grid-template-columns:1fr;gap:14px}
.form__row--telefono{grid-template-columns:minmax(8.5rem,0.42fr) 1fr;gap:10px 12px;align-items:end}
.form__row--telefono .form__legend{grid-column:1/-1;font-weight:600;font-size:.95rem}
.form__row--telefono label{margin:0}
.form__row--telefono .form__error{grid-column:1/-1}
.form label.check,.check{
  flex-direction:row;align-items:flex-start;gap:10px;font-weight:400;
}
.form label.check span,.check span{
  flex:1 1 auto;min-width:0;line-height:1.35;
}
.form label.check input,.check input{
  flex:0 0 auto;margin-top:2px;width:20px;height:20px;
}
.check.is-invalid{padding:8px;border:1px solid var(--c-err);border-radius:10px;background:#fff8f7}
.form__row--nombre,.form__row--ubicacion{align-items:start}
.form__row--ubicacion{grid-template-columns:1fr}
@media (min-width:720px){
  .form__row--nombre{grid-template-columns:1fr 1fr}
  .form__row--ubicacion{grid-template-columns:1fr 1fr 1fr}
}
.otp-input{letter-spacing:.4em;text-align:center;font-size:1.4rem}
.form--inline{margin-top:6px}

/* Tour 360 */
.tour__box{position:relative;border-radius:14px;overflow:hidden;min-height:220px;background:#0a5b63}
.tour__poster{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:12px;padding:20px;min-height:220px}
.tour__poster img{position:absolute;top:0;right:0;bottom:0;left:0;max-width:none;width:100%;height:100%;object-fit:cover;opacity:.55}
.tour__poster .btn{position:relative;z-index:2}
#tour360.is-active{min-height:60vh}

/* Amenidades — siluetas por data-icono (mask SVG) */
.amenidades{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.amenidades__item{display:flex;align-items:center;gap:12px;background:var(--c-surface);border:1px solid var(--c-line);
  border-radius:12px;padding:12px 14px;min-height:var(--tap)}
.amenidades__icono{flex:0 0 40px;width:40px;height:40px;border-radius:50%;background:color-mix(in srgb,var(--c-primary) 14%,var(--c-surface));
  display:grid;place-items:center;position:relative}
.amenidades__icono::before{content:"";width:22px;height:22px;background:var(--c-primary);
  -webkit-mask:center / contain no-repeat;mask:center / contain no-repeat;
  -webkit-mask-image:var(--amenidad-mask);mask-image:var(--amenidad-mask)}
.amenidades__texto{font-size:.95rem;line-height:1.3;color:var(--c-text)}
.amenidades__item[data-icono="wifi"]{--amenidad-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 18.5a1.5 1.5 0 1 1 0 3 1.5 1.5 0 0 1 0-3Zm0-4.2c1.7 0 3.2.7 4.3 1.8l-1.4 1.4A4.5 4.5 0 0 0 12 16.3c-1.2 0-2.3.5-3.1 1.2L7.5 16.1A6.4 6.4 0 0 1 12 14.3Zm0-4.2c2.8 0 5.3 1.1 7.1 2.9l-1.4 1.4A8.1 8.1 0 0 0 12 12.1a8.1 8.1 0 0 0-5.7 2.3L4.9 13A10.1 10.1 0 0 1 12 10.1Zm0-4.2c3.9 0 7.4 1.6 9.9 4.1l-1.4 1.4A12.1 12.1 0 0 0 12 7.9 12.1 12.1 0 0 0 3.5 11.4L2.1 10A14.1 14.1 0 0 1 12 5.9Z'/%3E%3C/svg%3E")}
.amenidades__item[data-icono="pool"]{--amenidad-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M3 16.5c1.2 0 1.8-.5 2.7-1 .9.5 1.5 1 2.7 1s1.8-.5 2.7-1c.9.5 1.5 1 2.7 1s1.8-.5 2.7-1c.9.5 1.5 1 2.7 1v2c-1.2 0-1.8-.5-2.7-1-.9.5-1.5 1-2.7 1s-1.8-.5-2.7-1c-.9.5-1.5 1-2.7 1s-1.8-.5-2.7-1c-.9.5-1.5 1-2.7 1v-2Zm2-8.2 1.8-.9V5h2v3.2l4.2-2.1L17.5 8v2.1l-4.5-2.2-4 2V16H7V12l-2 1v-4.7Z'/%3E%3C/svg%3E")}
.amenidades__item[data-icono="beach"]{--amenidad-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M13 3.5c2.2 1.3 3.7 3.7 3.7 6.4 0 .4 0 .8-.1 1.2L21 14l-1.4 1.4-3.2-3.2c-.9.5-1.9.8-3 .8-2.7 0-5.1-1.5-6.4-3.7L13 3.5ZM4 18.5c1.3 0 2-.5 3-1 1 .5 1.7 1 3 1s2-.5 3-1c1 .5 1.7 1 3 1s2-.5 3-1c1 .5 1.7 1 3 1v2c-1.3 0-2-.5-3-1-1 .5-1.7 1-3 1s-2-.5-3-1c-1 .5-1.7 1-3 1s-2-.5-3-1c-1 .5-1.7 1-3 1v-2Z'/%3E%3C/svg%3E")}
.amenidades__item[data-icono="ac"]{--amenidad-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M4 5h16a1 1 0 0 1 1 1v6a1 1 0 0 1-1 1H4a1 1 0 0 1-1-1V6a1 1 0 0 1 1-1Zm1 2v4h14V7H5Zm3 9.2.8-1.4 1.2.7-.8 1.4c.5.3.9.8.9 1.4a1.8 1.8 0 1 1-3.6 0c0-.6.3-1.1.8-1.4l.7 1.3Zm5-.7 1.2-.7.8 1.4c.5.3.8.8.8 1.4a1.8 1.8 0 1 1-3.6 0c0-.6.4-1.1.9-1.4l.7 1.3.8-1.4Zm4.2.7.8-1.4 1.2.7-.8 1.4c.5.3.9.8.9 1.4a1.8 1.8 0 1 1-3.6 0c0-.6.3-1.1.8-1.4l.7 1.3Z'/%3E%3C/svg%3E")}
.amenidades__item[data-icono="kitchen"]{--amenidad-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M8 2v8a2 2 0 0 1-2 2v10H4V12a2 2 0 0 1-2-2V2h2v5h1V2h2v5h1V2h2Zm10.5 0c1.4 0 2.5 1.8 2.5 4 0 1.5-.6 2.8-1.5 3.5V22h-2V9.5C16.6 8.8 16 7.5 16 6c0-2.2 1.1-4 2.5-4Z'/%3E%3C/svg%3E")}
.amenidades__item[data-icono="parking"]{--amenidad-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M6 3h8.5A4.5 4.5 0 0 1 19 7.5 4.5 4.5 0 0 1 14.5 12H10v9H6V3Zm4 3v3h4.5A1.5 1.5 0 0 0 16 7.5 1.5 1.5 0 0 0 14.5 6H10Z'/%3E%3C/svg%3E")}

/* Calendario (D-0020: durable gris / hold amarillo; un mes + nav ≤6) */
.calendario{border:1px solid var(--c-line);border-radius:12px;padding:10px;margin:10px 0;min-height:60px}
.cal-grid,.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-dow{margin-bottom:4px}
.cal-dow span{text-align:center;font-size:.7rem;color:var(--c-muted,#6b7c82);font-weight:600}
.cal-dia{min-height:44px;min-width:0;display:flex;align-items:center;justify-content:center;border-radius:8px;
  border:1px solid var(--c-line);background:#fff;font-size:.85rem;cursor:pointer;touch-action:manipulation;
  -webkit-tap-highlight-color:transparent}
.cal-dia--empty{border:0;background:transparent;min-height:0;pointer-events:none}
.cal-dia--pasado,.cal-dia--off{background:#eef3f4;color:#9fb2b8;cursor:not-allowed;text-decoration:line-through}
.cal-dia--ocupado{background:#c5cdd1;color:#4a5559;cursor:not-allowed;border-color:#b0babf}
.cal-dia--hold{background:#f5e6a3;color:#6a5a10;cursor:not-allowed;border-color:#e0c96a}
.cal-dia--sel{background:var(--c-primary);color:#fff;border-color:var(--c-primary)}
.cal-dia--rango{background:#cbe9ec}
.cal-dia:disabled{opacity:1}
.cal-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.cal-head__title{text-transform:capitalize;flex:1;text-align:center;font-size:1rem}
.cal-nav{min-width:44px;min-height:44px;border:1px solid var(--c-line);border-radius:8px;background:#fff;
  font-size:1.4rem;line-height:1;cursor:pointer;color:var(--c-ink,#123)}
.cal-nav:disabled{opacity:.35;cursor:not-allowed}
.cal-leyenda{list-style:none;padding:0;margin:0 0 4px;display:flex;flex-wrap:wrap;gap:12px 18px;font-size:.8rem;color:var(--c-muted,#6b7c82)}
.cal-leyenda li{display:flex;align-items:center;gap:6px}
.cal-leyenda__swatch{width:14px;height:14px;border-radius:4px;border:1px solid var(--c-line);display:inline-block}
.cal-leyenda__swatch--ocupado{background:#c5cdd1;border-color:#b0babf}
.cal-leyenda__swatch--hold{background:#f5e6a3;border-color:#e0c96a}

/* Desglose */
.desglose{margin-top:16px;border-top:1px dashed var(--c-line);padding-top:12px}
.desglose__lista{margin:0}
.desglose__lista>div{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px solid var(--c-line)}
.desglose__total{font-weight:700;font-size:1.1rem;border-bottom:0}
.nota-moneda{background:#fff7e6;border:1px solid var(--c-accent);border-radius:10px;padding:10px 12px;margin-top:10px}
.nota-moneda__aviso{display:block;font-size:.8rem;color:var(--c-warn)}

/* Flash */
.flash{padding:12px 14px;border-radius:10px;margin:10px 0;border:1px solid}
.flash--success{background:#e8f6ee;border-color:var(--c-ok);color:#12603a}
.flash--error{background:#fdeceb;border-color:var(--c-err);color:#7a1a15}
.flash--warning{background:#fff4e5;border-color:var(--c-warn);color:#7a4d09}
.flash--info{background:#e9f3f5;border-color:var(--c-primary);color:#0a5b63}

/* Resumen / estados */
.resumen{background:var(--c-bg);border:1px solid var(--c-line);border-radius:10px;padding:12px;margin:12px 0}
.codigo-grande{font-size:1.15rem}
.estado{display:inline-block;padding:6px 12px;border-radius:20px;font-weight:600}
.estado--ok{background:#e8f6ee;color:#12603a}
.aviso-pago{margin:12px 0;padding:12px 14px;border-radius:8px;background:#e9f3f5;border:1px solid var(--c-primary);color:#0a5b63;text-align:left}
.aviso-pago--rechazo{background:#fff4e5;border-color:var(--c-warn);color:#7a4d09}
.pago-seguro{margin:10px 0}
.spinner{width:36px;height:36px;border:4px solid var(--c-line);border-top-color:var(--c-primary);
  border-radius:50%;margin:16px auto;animation:spin 1s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

/* CTA fija movil */
.cta-fija{position:sticky;bottom:0;padding:10px 0;background:linear-gradient(transparent,var(--c-bg) 40%)}

/* Footer — mismo verde chrome que el header (homologacion sitio) */
.footer{border-top:1px solid var(--c-chrome-line);background:var(--c-chrome);margin-top:24px;color:var(--c-chrome-fg)}
.footer__inner{max-width:var(--maxw);margin:0 auto;padding:40px 16px 28px}
.footer__grid{display:grid;grid-template-columns:1fr;gap:28px}
.footer__heading{margin:0 0 12px;font-size:.95rem;font-weight:700;color:var(--c-chrome-fg);letter-spacing:.01em}
.footer__blurb{margin:0;font-size:.9rem;line-height:1.45;color:var(--c-chrome-muted);max-width:28ch}
.footer__nav{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.footer__nav a{text-decoration:none;color:var(--c-chrome-muted);font-size:.9rem;min-height:var(--tap);display:inline-flex;align-items:center}
.footer__nav a:hover{color:var(--c-chrome-fg)}
.footer__creditos{margin-top:32px;padding-top:24px;border-top:1px solid var(--c-chrome-line);
  display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.footer__copy{margin:0;font-size:.75rem;color:var(--c-chrome-muted)}
.footer__powered{display:flex;flex-direction:column;align-items:center;gap:8px}
.footer__powered-label{margin:0;font-size:.75rem;color:var(--c-chrome-muted)}
.footer__powered-link{display:inline-block;opacity:.9;transition:opacity .2s ease}
.footer__powered-link:hover{opacity:1}
.footer__powered-logo{width:140px;height:auto;display:block;filter:brightness(0) invert(1)}
@media (min-width:720px){
  .footer__grid{grid-template-columns:1.2fr 1fr 1fr;gap:40px;align-items:start}
  .footer__nav a{min-height:0}
}

/* Cookie banner */
.cookie-banner{position:fixed;left:8px;right:8px;bottom:8px;z-index:100;background:var(--c-surface);
  border:1px solid var(--c-line);border-radius:12px;padding:12px 14px;box-shadow:0 6px 24px rgba(0,0,0,.12)}
.cookie-banner__acts{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}

/* Desktop */
@media (min-width:720px){
  .form__row{grid-template-columns:1fr 1fr}
  .form__row--telefono{grid-template-columns:minmax(9rem,0.38fr) 1fr}
  .amenidades{grid-template-columns:repeat(3,1fr)}
  .cta-fija{display:none}
}

/* ========== Flujo disponibilidad / cotizar ==========
   Desktop: calendario compacto | panel cotizacion a la derecha
   Movil: tras cotizar el resumen va arriba + CTA sticky */
.pagina-flujo{
  --flujo-font:"DM Sans",var(--font);
  --flujo-display:"Fraunces",Georgia,"Times New Roman",serif;
  --flujo-sea:#0a5b63;
  --flujo-foam:#e7f4f5;
  background:
    radial-gradient(120% 80% at 100% 0%, rgba(14,124,134,.14), transparent 55%),
    radial-gradient(90% 70% at 0% 100%, rgba(242,183,5,.10), transparent 50%),
    var(--c-bg);
  font-family:var(--flujo-font);
}
.pagina-flujo .contenido{max-width:min(1280px,96vw);width:100%;padding-bottom:120px;box-sizing:border-box}
.pagina-flujo h1,.pagina-flujo .flujo__panel-titulo{
  font-family:var(--flujo-display);font-weight:700;letter-spacing:-.02em;
}

.flujo{margin:8px 0 24px}
.flujo__cabecera{margin-bottom:18px}
.flujo__brand{
  margin:0 0 4px;font-size:.78rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--flujo-sea);
}
.flujo__cabecera h1{margin:0 0 14px;font-size:clamp(1.55rem,4vw,2.15rem);color:var(--c-text)}

.flujo__pasos{
  list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px;
}
.flujo__paso{
  display:inline-flex;align-items:center;gap:8px;padding:8px 12px;border-radius:999px;
  background:rgba(255,255,255,.72);border:1px solid var(--c-line);color:var(--c-muted);
  font-size:.82rem;font-weight:600;
}
.flujo__paso-num{
  width:22px;height:22px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;
  background:var(--c-line);color:var(--c-text);font-size:.75rem;
}
.flujo__paso.is-active{
  background:var(--flujo-sea);border-color:var(--flujo-sea);color:#fff;
}
.flujo__paso.is-active .flujo__paso-num{background:#fff;color:var(--flujo-sea)}
.flujo__paso.is-done{
  background:var(--flujo-foam);border-color:#b9dde1;color:var(--flujo-sea);
}
.flujo__paso.is-done .flujo__paso-num{background:var(--c-primary);color:#fff}

.flujo__rejilla{
  display:grid;grid-template-columns:1fr;gap:16px;align-items:start;
}
.flujo__col--fechas,.flujo__col--datos,.flujo__panel{
  background:var(--c-surface);border:1px solid var(--c-line);border-radius:18px;
  padding:14px 14px 18px;box-shadow:0 10px 30px rgba(10,91,99,.06);
  overflow:visible;
}
.flujo__col--fechas,.flujo__col--datos{
  display:flex;flex-direction:column;gap:8px;min-width:0;
}
.flujo__col--datos .flujo__panel-titulo{margin:0 0 12px;font-size:1.25rem}
.flujo__col--datos .form--flujo{margin-top:0}
.flujo__panel .desglose > h3{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.form__lada,.form__nacional{display:flex;flex-direction:column;gap:6px;min-width:0}
.flujo__col-eyebrow,.flujo__panel-eyebrow{
  margin:0 0 8px;font-size:.72rem;font-weight:700;letter-spacing:.07em;
  text-transform:uppercase;color:var(--flujo-sea);
}
.flujo__panel{min-height:200px}
.flujo__panel-titulo{margin:0 0 8px;font-size:1.35rem}
.flujo__panel-texto{margin:0 0 12px;color:var(--c-muted);font-size:.95rem}
.flujo__hints{margin:0;padding-left:1.15rem;color:var(--c-text);font-size:.92rem}
.flujo__hints li{margin:6px 0}
.flujo__fechas-sel{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;
  font-weight:700;color:var(--flujo-sea);
}
.flujo__cta-continuar{margin-top:14px}
.flujo__panel--resultado{
  animation:flujo-in .45s ease both;
  border-color:#b9dde1;
  background:linear-gradient(180deg,#fff 0%,var(--flujo-foam) 140%);
}
@keyframes flujo-in{
  from{opacity:0;transform:translateY(12px)}
  to{opacity:1;transform:none}
}
@media (prefers-reduced-motion:reduce){
  .flujo__panel--resultado{animation:none}
}

/* Calendario: ancho de columna, con tope para que Llegada/Salida no queden cortados */
.flujo .calendario{
  --cal-gap: clamp(3px, 0.7cqi, 8px);
  --cal-pad: clamp(6px, 1.4cqi, 12px);
  container-type: inline-size;
  width: 100%;
  /* Reserva espacio p/ leyenda + cabecera; llegada/salida van a la derecha en desktop */
  max-width: min(100%, 22rem, calc(100svh - 320px), calc(100vh - 320px));
  margin: 0;
  padding: var(--cal-pad);
  border-radius: 12px;
  background: #fbfefe;
  min-height: 0;
  flex: 0 1 auto;
  box-sizing: border-box;
}
.flujo .cal-head{
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: clamp(4px, 1cqi, 8px);
  gap: clamp(4px, 1cqi, 8px);
}
.flujo .cal-head__title{
  font-size: clamp(.85rem, 3.5cqi, 1.05rem);
  font-weight: 700;
  line-height: 1.2;
  flex: 1;
  text-align: center;
  text-transform: capitalize;
}
.flujo .cal-nav{
  width: clamp(40px, 10cqi, 48px);
  height: clamp(40px, 10cqi, 48px);
  min-width: 0;
  min-height: 0;
  font-size: clamp(1.1rem, 4cqi, 1.35rem);
  flex: 0 0 auto;
}
.flujo .cal-dow{margin-bottom: 2px}
.flujo .cal-dow span{font-size: clamp(.6rem, 2.4cqi, .75rem)}
.flujo .cal-grid,.flujo .cal-dow{
  display: grid;
  gap: var(--cal-gap);
  grid-template-columns: repeat(7, minmax(0, 1fr));
  width: 100%;
}
.flujo .cal-dia{
  width: 100%;
  min-width: 0;
  min-height: 0;
  height: auto;
  aspect-ratio: 1;
  border-radius: clamp(6px, 1.5cqi, 10px);
  font-size: clamp(.7rem, 3.2cqi, .95rem);
  padding: 0;
  box-sizing: border-box;
}
.flujo .cal-dia--empty{
  min-height: 0;
  border: 0;
  background: transparent;
  aspect-ratio: 1;
}
.flujo .cal-leyenda{
  margin: clamp(8px, 2cqi, 12px) 0 2px;
  gap: 8px 12px;
  font-size: clamp(.7rem, 2.4cqi, .8rem);
  flex-shrink: 0;
}
.flujo .form--flujo{
  margin-top:0;display:flex;flex-direction:column;gap:clamp(8px, 2vw, 12px);
  min-width:0;flex:1 1 auto;
}
.flujo .form--flujo.is-cotizando{opacity:.72;pointer-events:none}
.flujo .form--flujo.is-cotizando::after{
  content:"";display:block;height:3px;margin-top:8px;border-radius:2px;
  background:linear-gradient(90deg,transparent,var(--flujo-sea),transparent);
  animation:flujo-carga 1s linear infinite;
}
@keyframes flujo-carga{from{transform:translateX(-40%)}to{transform:translateX(40%)}}
@media (prefers-reduced-motion:reduce){
  .flujo .form--flujo.is-cotizando::after{animation:none;opacity:.4}
}
.flujo__fechas-layout{
  display:flex;flex-direction:column;gap:12px;min-width:0;align-items:stretch;
}
.flujo__cal-wrap{min-width:0;display:flex;flex-direction:column;gap:8px}
.flujo .form__row--fechas{
  display:grid;grid-template-columns:1fr 1fr;gap:10px;
  flex-shrink:0;padding-bottom:2px;
}
.flujo .form__row--fechas label{font-size:.85rem;color:var(--c-muted);min-width:0;display:flex;flex-direction:column;gap:6px}
.flujo .form__row--fechas input[type=date]{
  width:100%;box-sizing:border-box;min-height:var(--tap);max-width:100%;
}
@media (min-width:720px){
  .flujo__fechas-layout{
    flex-direction:row;align-items:flex-start;gap:clamp(16px,2.5vw,28px);
  }
  /* Calendario conserva su tamaño natural; Llegada/Salida ocupan el resto */
  .flujo__cal-wrap{flex:0 1 auto;min-width:0;max-width:100%}
  .flujo .form__row--fechas{
    flex:1 1 0;min-width:min(100%,12rem);width:auto;max-width:100%;
    grid-template-columns:1fr;gap:14px;
    padding-top:4px;align-self:stretch;
  }
  .flujo .form__row--fechas input[type=date]{
    width:100%;min-width:0;
  }
}
.flujo .desglose{margin-top:8px;border-top:0;padding-top:0}
.flujo .desglose h3{font-family:var(--flujo-display);font-size:1.15rem;margin-top:0}
.flujo .desglose__lista>div{padding:5px 0;font-size:.92rem}
.flujo .nota-moneda{margin-top:10px;font-size:.85rem}
.flujo .desglose__acciones{margin:14px 0 0}
.flujo--paso-datos .flujo__col--datos .check{margin-top:2px}

.flujo__cta-movil{
  position:fixed;left:0;right:0;bottom:0;z-index:40;
  padding:12px 14px calc(12px + env(safe-area-inset-bottom,0px));
  background:linear-gradient(180deg,transparent,rgba(247,251,252,.96) 22%,var(--c-bg));
  box-shadow:0 -8px 24px rgba(10,91,99,.08);
}
#flujo-resumen{scroll-margin-top:88px}

@media (min-width:900px){
  .flujo__rejilla{
    grid-template-columns:minmax(0,1.25fr) minmax(300px,.75fr);
    gap:24px;
  }
  .flujo__col--panel{
    position:sticky;top:84px;
  }
  .flujo__panel{min-height:300px}
  .flujo .calendario{
    max-width: min(100%, 24rem, calc(100svh - 360px), calc(100vh - 360px));
  }
  .flujo__cta-movil{display:none}
  .pagina-flujo .contenido{padding-bottom:48px}
  .flujo__panel--resultado{
    animation-name:flujo-in-right;
  }
  @keyframes flujo-in-right{
    from{opacity:0;transform:translateX(18px)}
    to{opacity:1;transform:none}
  }
}

@media (max-width:899px){
  .flujo__pasos{gap:6px}
  .flujo__paso{flex:1 1 0;justify-content:center;padding:8px 8px;font-size:.76rem;min-width:0}
  .flujo__paso span:not(.flujo__paso-num){
    overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:8ch;
  }
  /* Tras cotizar: resumen primero para continuidad; fechas debajo */
  .flujo--con-cotizacion .flujo__rejilla{display:flex;flex-direction:column}
  .flujo--con-cotizacion .flujo__col--panel{order:1}
  .flujo--con-cotizacion .flujo__col--fechas{order:2}
  .flujo--con-cotizacion .flujo__cta-continuar{display:none} /* CTA sticky abajo */
  /* Reservar: resumen primero, formulario debajo */
  .flujo--paso-datos .flujo__rejilla{display:flex;flex-direction:column}
  .flujo--paso-datos .flujo__col--panel{order:1}
  .flujo--paso-datos .flujo__col--datos{order:2}
  /* Móvil: tope para leyenda (+ CTA sticky si aplica); fechas debajo del calendario */
  .flujo .calendario{
    width: 100%;
    max-width: min(100%, 20rem, calc(100svh - 420px), calc(100vh - 420px));
    margin-inline: auto;
  }
  .flujo--con-cotizacion .calendario{
    max-width: min(100%, 20rem, calc(100svh - 480px), calc(100vh - 480px));
  }
}

