* { margin:0; padding:0; box-sizing:border-box; }
html { background:var(--bg-main); transition:background 0.4s ease; }
body { background:var(--bg-main); font-family: 'Helvetica Neue', Arial, sans-serif; transition:background 0.4s ease; }
html,
body {
  overflow:hidden;
  height:100%;
}

/* ---- Scrollbars unificados (menú, pop-ups, editor) ---- */
html,
body,
* {
  scrollbar-width:thin;
  scrollbar-color:var(--scrollbar-thumb, var(--border)) transparent;
}
*::-webkit-scrollbar {
  width:6px;
  height:6px;
}
*::-webkit-scrollbar-track {
  background:transparent;
}
*::-webkit-scrollbar-thumb {
  background:var(--scrollbar-thumb, var(--border));
  border-radius:3px;
}
*::-webkit-scrollbar-thumb:hover {
  background:color-mix(in srgb, var(--scrollbar-thumb, var(--border)) 82%, var(--text-primary));
}

.vignette-overlay {
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  pointer-events:none;
  z-index:2;
  background:radial-gradient(
    ellipse at center,
    rgba(0,0,0,0) var(--depth-vignette-inner, 45%),
    rgba(0,0,0,var(--depth-vignette-edge, 0.65)) 100%
  );
  transition:background 0.35s ease;
}

/* ================= PORTADA DEL PROYECTO (siempre estilo Classic) ================= */
.project-cover {
  height:100vh;
  height:100svh;
  width:100%;
  position:relative;
  overflow:hidden;
  /* OLED ambient base — profundidad CSS (sin media de red) */
  background-color:var(--hero-bg, #050505);
  background-image:
    radial-gradient(ellipse 68% 52% at 50% 42%, rgba(255,255,255,0.05) 0%, rgba(255,255,255,0.014) 32%, transparent 68%),
    radial-gradient(ellipse 110% 70% at 50% 110%, rgba(0,0,0,0.72) 0%, transparent 58%),
    radial-gradient(ellipse 90% 60% at 50% -10%, rgba(0,0,0,0.45) 0%, transparent 55%),
    linear-gradient(165deg, #080808 0%, #050505 42%, #030303 100%);
  display:flex;
  align-items:flex-end;
  justify-content:center;
}
/* Demos / sin media: refuerza fondo negro premium */
.project-cover.is-ambient-depth {
  background-color:#050505;
}
.project-cover-video {
  position:absolute;
  top:50%; left:50%;
  width:100%; height:100%;
  object-fit:cover;
  transform:translate(-50%, -50%);
  z-index:0;
}
.project-cover-overlay {
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  background:linear-gradient(
    to top,
    rgba(0,0,0,var(--depth-hero-bottom, 0.85)) 0%,
    rgba(0,0,0,var(--depth-hero-mid, 0.2)) 45%,
    rgba(0,0,0,var(--depth-hero-top, 0.55)) 100%
  );
  transition:background 0.35s ease;
  pointer-events:none;
}
.project-cover.is-ambient-depth .project-cover-overlay {
  background:
    radial-gradient(ellipse 58% 48% at 50% 44%, transparent 0%, transparent 42%, rgba(0,0,0,0.22) 78%, rgba(0,0,0,0.58) 100%),
    linear-gradient(
      to top,
      rgba(0,0,0,0.62) 0%,
      rgba(0,0,0,0.12) 48%,
      rgba(0,0,0,0.38) 100%
    );
}
.project-cover-content {
  position:relative;
  z-index:1;
  width:100%;
  text-align:center;
  padding:0 8% clamp(28px, 4.2vh, 48px);
}
.project-cover-hero-row {
  display:flex;
  flex-direction:column;
  align-items:center;
  width:100%;
}
.project-cover-hero-copy {
  display:flex;
  flex-direction:column;
  align-items:center;
  text-align:center;
  width:100%;
}
.project-cover[data-hero-layout="centered"] .project-cover-buttons {
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  flex-wrap:wrap;
  gap:12px;
}
.project-cover[data-hero-layout="centered"] .project-cover-slot {
  display:contents;
}

/* Portada — posición 2: barra inferior [Explorar] · título · [Iniciar] */
.project-cover[data-hero-layout="bottom-bar"] .project-cover-content {
  padding:0 clamp(16px, 4vw, 48px) clamp(22px, 3.5vh, 36px);
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-hero-row {
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto minmax(0, 1fr);
  align-items:center;
  column-gap:clamp(20px, 4vw, 56px);
  width:100%;
  max-width:1180px;
  margin:0 auto;
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-buttons {
  display:contents;
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--start {
  grid-column:1;
  grid-row:1;
  justify-self:end;
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-hero-copy {
  grid-column:2;
  grid-row:1;
  min-width:0;
  max-width:min(52vw, 520px);
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--end {
  grid-column:3;
  grid-row:1;
  justify-self:start;
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-name {
  margin-bottom:6px;
  font-size:clamp(1.05rem, 1.9vw, 1.45rem);
  letter-spacing:0.34em;
  font-weight:700;
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-tagline {
  margin:0;
  letter-spacing:0.14em;
  font-size:clamp(0.62rem, 1vw, 0.72rem);
  background:transparent;
  color:var(--hero-text);
  opacity:0.88;
  font-weight:500;
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-btn {
  border-radius:999px;
  white-space:nowrap;
}
.project-cover-logo {
  display:block;
  margin:0 auto 18px;
  width:90px;
  max-width:90px;
  height:auto;
  opacity:0.96;
  object-fit:contain;
}
.project-cover-logo.is-avatar {
  width:76px !important;
  max-width:76px !important;
  height:76px !important;
  border-radius:50% !important;
  object-fit:cover !important;
  box-shadow:0 4px 18px rgba(0,0,0,0.35);
  background:rgba(255,255,255,0.06);
}
.project-cover-logo.is-hidden,
.project-cover-logo[hidden] {
  display:none !important;
  visibility:hidden !important;
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-logo {
  margin-bottom:14px;
}
.project-cover[data-hero-layout="bottom-bar"] .project-cover-logo.is-hidden,
.project-cover[data-hero-layout="bottom-bar"] .project-cover-logo[hidden] {
  display:none !important;
}
.project-cover-name {
  color:var(--hero-text);
  font-size:clamp(1.35rem, 2.35vw, 1.75rem);
  font-weight:600;
  letter-spacing:0.2em;
  text-transform:uppercase;
  margin-bottom:8px;
  text-shadow:0 2px 28px rgba(0, 0, 0, 0.4);
}
.project-cover-tagline {
  display:inline-block;
  color:#fff;
  opacity:1;
  font-weight:400;
  letter-spacing:0.28em;
  font-size:clamp(0.68rem, 1.15vw, 0.78rem);
  text-transform:uppercase;
  line-height:1;
  padding:0;
  margin:0 0 28px;
  background:#000;
  box-decoration-break:clone;
  -webkit-box-decoration-break:clone;
  text-shadow:none;
}
.project-cover-btn {
  background:var(--btn-glass-surface, var(--btn-surface));
  backdrop-filter:blur(var(--btn-glass-blur, 8px));
  -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px));
  color:var(--text-primary);
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
  border-radius:var(--menu-card-radius, 14px);
  box-shadow:var(--btn-shadow, 0 6px 20px rgba(0, 0, 0, 0.28)),
    var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 8%, transparent));
  padding:16px 34px;
  font-size:0.85rem;
  font-weight:500;
  letter-spacing:0.12em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.project-cover-buttons .project-cover-btn {
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  padding:13px 30px;
  font-size:0.72rem;
  transition:background 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.25s ease;
}
.project-cover-buttons .project-cover-btn,
.project-cover-buttons .project-cover-btn.primary {
  background:var(--btn-glass-surface, var(--btn-surface));
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
  border-radius:var(--menu-card-radius, 14px);
  backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(130%);
  -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(130%);
  box-shadow:
    var(--btn-shadow, 0 8px 24px rgba(0, 0, 0, 0.32)),
    var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 10%, transparent));
  font-weight:600;
  color:var(--text-primary);
}
/* Desktop: ← Demos + Asistente = mismo componente Hall que Iniciar */
@media (min-width: 601px) {
  .project-back-btn:not([hidden]),
  .pa-fab {
    background:var(--btn-glass-surface, var(--btn-surface));
    border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
    border-radius:var(--menu-card-radius, 14px);
    backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(130%);
    -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(130%);
    box-shadow:
      var(--btn-shadow, 0 8px 24px rgba(0, 0, 0, 0.32)),
      var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 10%, transparent));
    color:var(--text-primary);
    font-weight:600;
    transition:background 0.3s ease, color 0.3s ease, border-color 0.3s ease, box-shadow 0.3s ease, transform 0.25s ease;
    filter:none;
  }
  body:has(#projectCover[data-hero-layout="bottom-bar"]) .project-back-btn:not([hidden]),
  body:has(#projectCover[data-hero-layout="bottom-bar"]) .pa-fab {
    border-radius:999px;
  }
}
.pause-screen__actions .project-cover-btn.pause-screen__btn {
  background:var(--btn-glass-surface, var(--btn-surface));
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
  border-radius:var(--menu-card-radius, 14px);
  backdrop-filter:blur(var(--btn-glass-blur, 8px));
  -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px));
  box-shadow:var(--btn-shadow, 0 6px 20px rgba(0, 0, 0, 0.28)),
    var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 8%, transparent));
  font-weight:700;
}
.project-cover-btn:hover {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
}
.project-cover-buttons .project-cover-btn:hover,
.project-cover-buttons .project-cover-btn.primary:hover {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  transform:translateY(-1px);
  box-shadow:
    0 12px 28px rgba(0, 0, 0, 0.36),
    var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 12%, transparent));
}
@media (min-width: 601px) {
  .project-back-btn:not([hidden]):hover,
  .project-back-btn:not([hidden]):focus-visible,
  .pa-fab:hover,
  .pa-fab:focus-visible,
  .pa-fab.is-active {
    background:var(--btn-glass-hover, var(--hover));
    color:var(--btn-text-hover, var(--text-primary));
    border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
    border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
    transform:translateY(-1px);
    filter:none;
    box-shadow:
      0 12px 28px rgba(0, 0, 0, 0.36),
      var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 12%, transparent));
  }
  .project-back-btn:not([hidden]):active,
  .pa-fab:active {
    transform:translateY(0);
  }
}
.pause-screen__actions .project-cover-btn.pause-screen__btn:hover {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  transform:translateY(-1px);
}
.project-cover-buttons {
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:center;
  gap:12px;
  flex-wrap:wrap;
}
.project-cover-buttons .project-cover-btn.with-icon {
  display:inline-flex;
  align-items:center;
  gap:8px;
}
.project-cover-buttons .project-cover-btn .menu-btn-icon {
  color:var(--text-primary);
}

/* Colores del hero — configuración oficial del proyecto (panel admin) */
.project-cover[data-hero-text-color="light"] .project-cover-name {
  color:#ffffff;
}
.project-cover[data-hero-text-color="light"] .project-cover-tagline {
  color:#ffffff;
  background:#000;
}
.project-cover[data-hero-text-color="dark"] .project-cover-name {
  color:#111111;
}
.project-cover[data-hero-text-color="dark"] .project-cover-tagline {
  color:#ffffff;
  background:#000;
  opacity:1;
}

.project-cover[data-hero-button-text-color="light"] .project-cover-buttons .project-cover-btn,
.project-cover[data-hero-button-text-color="light"] .project-cover-buttons .project-cover-btn .menu-btn-icon {
  color:var(--text-primary);
}
.project-cover[data-hero-button-text-color="dark"] .project-cover-buttons .project-cover-btn,
.project-cover[data-hero-button-text-color="dark"] .project-cover-buttons .project-cover-btn .menu-btn-icon {
  color:var(--text-primary);
}

body.theme-light .project-cover[data-hero-text-color="light"] .project-cover-name,
body[data-theme="purewhite"] .project-cover[data-hero-text-color="light"] .project-cover-name {
  color:#ffffff;
}
body.theme-light .project-cover[data-hero-text-color="light"] .project-cover-tagline,
body[data-theme="purewhite"] .project-cover[data-hero-text-color="light"] .project-cover-tagline {
  color:#ffffff;
  background:#000;
}
body.theme-light .project-cover[data-hero-text-color="dark"] .project-cover-name,
body[data-theme="purewhite"] .project-cover[data-hero-text-color="dark"] .project-cover-name {
  color:#111111;
}
body.theme-light .project-cover[data-hero-text-color="dark"] .project-cover-tagline,
body[data-theme="purewhite"] .project-cover[data-hero-text-color="dark"] .project-cover-tagline {
  color:#ffffff;
  background:#000;
}

body.theme-light .main-menu::before {
  backdrop-filter:blur(var(--menu-glass-blur, var(--glass-blur))) saturate(102%);
  -webkit-backdrop-filter:blur(var(--menu-glass-blur, var(--glass-blur))) saturate(102%);
}
body.theme-light .avatar-mode-btn {
  background:color-mix(in srgb, var(--accent) 5%, var(--glass-surface));
}
.menu-btn-icon {
  font-size:0.95rem;
  line-height:1;
  display:inline-block;
}

/* ================= MÁSCARAS — overlay + desenfoque (maskBlur del tema) ================= */
.main-menu-backdrop,
.content-modal,
.units-popup,
.pdf-modal,
.sphere-modal,
.admin-dashboard-modal,
.auth-experience-modal.content-modal,
.email-verification-modal.content-modal,
.project-theme-confirm-modal.content-modal,
.theme-ai-modal.content-modal {
  background:var(--overlay-mask, var(--modal-backdrop, var(--backdrop-94)));
  -webkit-backdrop-filter:blur(var(--modal-backdrop-blur, 0px)) saturate(140%);
  backdrop-filter:blur(var(--modal-backdrop-blur, 0px)) saturate(140%);
}

/* ================= MENÚ PRINCIPAL — premium SaaS / arquitectura ================= */
.main-menu-backdrop {
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  z-index:996;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.45s ease, visibility 0.45s ease;
}
.main-menu-backdrop.active {
  opacity:1;
  visibility:visible;
}
body.main-menu-open:has(#mainMenu.is-personalizar) #mainMenuBackdrop {
  pointer-events:none;
}

.main-menu {
  --menu-gutter: 40px;
  --menu-card-radius: 14px;
  --menu-card-pad-y: 18px;
  --menu-card-pad-x: 22px;
  position:fixed;
  top:0; left:0;
  height:100vh;
  height:100dvh;
  width:min(400px, 85vw);
  max-width:100%;
  z-index:997;
  transform:translateX(-100%);
  transition:transform 0.55s cubic-bezier(.22,1,.36,1);
  display:flex;
  flex-direction:column;
  padding:0;
  isolation:isolate;
}
.main-menu.active { transform:translateX(0); }

.main-menu::before {
  content:'';
  position:absolute;
  inset:0;
  background:
    linear-gradient(168deg,
      color-mix(in srgb, var(--glass-panel) 72%, var(--text-primary) 4%) 0%,
      var(--glass-panel) 42%,
      color-mix(in srgb, var(--glass-panel) 92%, var(--bg-main) 8%) 100%);
  backdrop-filter:blur(var(--menu-glass-blur, var(--glass-blur))) saturate(112%) brightness(1.02);
  -webkit-backdrop-filter:blur(var(--menu-glass-blur, var(--glass-blur))) saturate(112%) brightness(1.02);
  border-right:1px solid color-mix(in srgb, var(--text-primary) 5%, transparent);
  box-shadow:
    var(--glass-shadow, 24px 0 64px color-mix(in srgb, var(--bg-main) 28%, transparent)),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 4%, transparent);
  z-index:-2;
}
.main-menu::after {
  content:'';
  position:absolute;
  top:0; left:0; right:0;
  height:42%;
  background:linear-gradient(180deg, color-mix(in srgb, var(--text-primary) 5%, transparent), transparent 72%);
  pointer-events:none;
  z-index:-1;
}

.main-menu-glass-vignette {
  position:absolute;
  inset:0;
  pointer-events:none;
  box-shadow:
    inset 0 0 90px color-mix(in srgb, var(--bg-main) var(--depth-menu-inset, 14)%, transparent),
    inset 0 -48px 72px color-mix(in srgb, var(--bg-main) 10%, transparent);
  z-index:-1;
  transition:box-shadow 0.35s ease;
}

.main-menu-shell {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  position:relative;
}

.main-menu-body {
  flex:1;
  min-height:0;
  display:flex;
}

.main-menu-nav-col {
  width:100%;
  flex:1;
  display:flex;
  flex-direction:column;
  min-height:0;
}

.main-menu-content {
  flex:1;
  min-height:0;
  display:flex;
  flex-direction:column;
  overflow:hidden;
}

.main-menu-profile-slot {
  flex:0 0 auto;
  display:none;
  padding:20px calc(20px + var(--menu-gutter)) 8px calc(20px + var(--menu-gutter));
}
.main-menu.has-visitor-profile .main-menu-profile-slot {
  display:block;
}

/* Desktop: perfil más bajo; BOXIES / versión ocultos */
@media (min-width: 601px) {
  .main-menu-brand,
  .main-menu-version {
    display: none !important;
  }
  .main-menu-footer {
    display: none !important;
  }
  .main-menu-profile-slot {
    padding-top: 10px;
    padding-bottom: max(18px, env(safe-area-inset-bottom));
  }
  .main-menu.has-visitor-profile .main-menu-profile-slot {
    margin-top: auto;
  }
}

.main-menu-footer {
  flex:0 0 auto;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:16px calc(20px + var(--menu-gutter)) max(22px, env(safe-area-inset-bottom)) calc(20px + var(--menu-gutter));
  margin-top:auto;
}
.main-menu-brand {
  color:var(--text-primary);
  font-size:0.62rem;
  font-weight:600;
  letter-spacing:0.28em;
  text-transform:uppercase;
  opacity:0.26;
}
.main-menu-version {
  color:var(--text-muted);
  font-size:0.58rem;
  font-weight:500;
  letter-spacing:0.06em;
  opacity:0.24;
}

.glass-surface {
  background:var(--glass-surface);
  border:1px solid var(--glass-border);
  border-radius:10px;
  box-shadow:var(--btn-shadow, var(--glass-shadow)),
    var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 8%, transparent));
}

/* Capa de menú y ventanas — paneles del menú, modales y sub-ventanas */
.main-menu .personalize-block.glass-surface,
.main-menu .custom-theme-color-popover.glass-surface,
.content-modal-box .glass-surface,
.content-modal-box .personalize-block,
.units-popup-box .glass-surface,
.pdf-modal-box .glass-surface,
.auth-experience-box .glass-surface,
.auth-experience-box .personalize-block {
  background:var(--panel-glass-surface);
  backdrop-filter:blur(calc(var(--glass-blur, 22px) * 0.65)) saturate(125%);
  -webkit-backdrop-filter:blur(calc(var(--glass-blur, 22px) * 0.65)) saturate(125%);
}

body[data-panel-glass="glass"] .main-menu::before {
  border-color:color-mix(in srgb, var(--border) 78%, transparent);
}

body[data-bg-glass="glass"] .content-modal-box,
body[data-bg-glass="glass"] .units-popup-box,
body[data-bg-glass="glass"] .units-popup.units-viviendas-popup,
body[data-bg-glass="glass"] .units-popup.tour360-popup,
body[data-bg-glass="glass"] .pdf-modal-box,
body[data-bg-glass="soft"] .content-modal-box,
body[data-bg-glass="soft"] .units-popup-box,
body[data-bg-glass="soft"] .units-popup.units-viviendas-popup,
body[data-bg-glass="soft"] .units-popup.tour360-popup {
  border-color:color-mix(in srgb, var(--border) 78%, transparent);
}

body[data-bg-glass="solid"] .content-modal-box,
body[data-bg-glass="solid"] .units-popup-box,
body[data-bg-glass="solid"] .pdf-modal-box,
body[data-bg-glass="solid"] .app-toast,
body[data-bg-glass="solid"] .admin-dashboard-box {
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

body[data-hero-button-glass="soft"] .pause-screen__actions .project-cover-btn.pause-screen__btn,
body[data-hero-button-glass="soft"] .tour360-card-enter,
body[data-hero-button-glass="soft"] .units-viviendas-popup .unit-typo-btn[data-action="tour360"],
body[data-hero-button-glass="glass"] .pause-screen__actions .project-cover-btn.pause-screen__btn,
body[data-hero-button-glass="glass"] .tour360-card-enter,
body[data-hero-button-glass="glass"] .units-viviendas-popup .unit-typo-btn[data-action="tour360"] {
  backdrop-filter:blur(var(--hero-btn-blur, 8px)) saturate(125%);
  -webkit-backdrop-filter:blur(var(--hero-btn-blur, 8px)) saturate(125%);
}

body[data-bg-glass="solid"] .tour360-card,
body[data-bg-glass="solid"] .units-viviendas-popup .unit-card,
body[data-bg-glass="solid"] .units-compare-mini-card,
body[data-bg-glass="solid"] .units-compare-box,
body[data-bg-glass="solid"] .uc-hero-card,
body[data-bg-glass="solid"] .uc-specs {
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

body[data-button-glass="soft"] .project-cover-buttons .project-cover-btn,
body[data-button-glass="glass"] .project-cover-buttons .project-cover-btn,
body[data-button-glass="soft"] .units-viviendas-popup .unit-typo-btn:not([data-action="tour360"]),
body[data-button-glass="glass"] .units-viviendas-popup .unit-typo-btn:not([data-action="tour360"]) {
  backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(125%);
  -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(125%);
}
@media (min-width: 601px) {
  body[data-button-glass="soft"] .project-back-btn:not([hidden]),
  body[data-button-glass="glass"] .project-back-btn:not([hidden]),
  body[data-button-glass="soft"] .pa-fab,
  body[data-button-glass="glass"] .pa-fab {
    backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(125%);
    -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(125%);
  }
}

/* Botones — efecto sólido / suave / cristal */
.outline-btn,
.menu-item,
.contact-link,
.avatar-mode-btn,
.menu-profile-action,
.custom-theme-text-btn,
.custom-theme-depth-btn,
.custom-theme-glass-btn,
.custom-theme-mask-blur-btn,
.mis-tema-icon-btn,
.toggle-switch,
.auth-experience-box .outline-btn {
  background:var(--btn-glass-surface, var(--btn-surface));
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
}

body[data-button-glass="soft"] .outline-btn,
body[data-button-glass="soft"] .menu-item,
body[data-button-glass="soft"] .contact-link,
body[data-button-glass="soft"] .download-item,
body[data-button-glass="soft"] .avatar-mode-btn,
body[data-button-glass="soft"] .menu-profile-action,
body[data-button-glass="soft"] .custom-theme-text-btn,
body[data-button-glass="soft"] .custom-theme-depth-btn,
body[data-button-glass="soft"] .custom-theme-glass-btn,
body[data-button-glass="soft"] .custom-theme-mask-blur-btn,
body[data-button-glass="soft"] .mis-tema-icon-btn,
body[data-button-glass="soft"] .toggle-switch,
body[data-button-glass="soft"] .auth-experience-box .outline-btn,
body[data-button-glass="glass"] .outline-btn,
body[data-button-glass="glass"] .menu-item,
body[data-button-glass="glass"] .contact-link,
body[data-button-glass="glass"] .download-item,
body[data-button-glass="glass"] .avatar-mode-btn,
body[data-button-glass="glass"] .menu-profile-action,
body[data-button-glass="glass"] .custom-theme-text-btn,
body[data-button-glass="glass"] .custom-theme-depth-btn,
body[data-button-glass="glass"] .custom-theme-glass-btn,
body[data-button-glass="glass"] .custom-theme-mask-blur-btn,
body[data-button-glass="glass"] .mis-tema-icon-btn,
body[data-button-glass="glass"] .toggle-switch,
body[data-button-glass="glass"] .auth-experience-box .outline-btn {
  backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(125%);
  -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(125%);
}

/* Hover translúcido / cristal — independiente del efecto del botón en reposo */
body[data-button-hover-glass="soft"] .outline-btn:hover,
body[data-button-hover-glass="soft"] .menu-item:hover,
body[data-button-hover-glass="soft"] .menu-item.is-active,
body[data-button-hover-glass="soft"] .contact-link:hover,
body[data-button-hover-glass="soft"] .contact-link.is-active,
body[data-button-hover-glass="soft"] .download-item:hover,
body[data-button-hover-glass="soft"] .project-cover-btn:hover,
body[data-button-hover-glass="soft"] .tour360-card-enter:hover,
body[data-button-hover-glass="soft"] .auth-experience-box .outline-btn:hover,
body[data-button-hover-glass="glass"] .outline-btn:hover,
body[data-button-hover-glass="glass"] .menu-item:hover,
body[data-button-hover-glass="glass"] .menu-item.is-active,
body[data-button-hover-glass="glass"] .contact-link:hover,
body[data-button-hover-glass="glass"] .contact-link.is-active,
body[data-button-hover-glass="glass"] .download-item:hover,
body[data-button-hover-glass="glass"] .project-cover-btn:hover,
body[data-button-hover-glass="glass"] .tour360-card-enter:hover,
body[data-button-hover-glass="glass"] .auth-experience-box .outline-btn:hover {
  backdrop-filter:blur(var(--btn-hover-blur, 14px)) saturate(130%);
  -webkit-backdrop-filter:blur(var(--btn-hover-blur, 14px)) saturate(130%);
}
@media (min-width: 601px) {
  body[data-button-hover-glass="soft"] .project-back-btn:not([hidden]):hover,
  body[data-button-hover-glass="soft"] .pa-fab:hover,
  body[data-button-hover-glass="glass"] .project-back-btn:not([hidden]):hover,
  body[data-button-hover-glass="glass"] .pa-fab:hover {
    backdrop-filter:blur(var(--btn-hover-blur, 14px)) saturate(130%);
    -webkit-backdrop-filter:blur(var(--btn-hover-blur, 14px)) saturate(130%);
  }
}

/* Franja de perfil — integrada al sistema */
.menu-profile-card {
  padding:16px 18px;
  border-radius:var(--menu-card-radius, 14px);
  background:color-mix(in srgb, var(--btn-glass-surface, var(--glass-surface)) 86%, var(--text-primary) 3%);
  border:1px solid color-mix(in srgb, var(--text-primary) 6%, transparent);
  box-shadow:
    0 1px 2px color-mix(in srgb, black 10%, transparent),
    0 6px 20px color-mix(in srgb, var(--bg-main) 14%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 5%, transparent);
}

.menu-profile-strip {
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:14px;
  min-height:0;
  max-height:none;
}

.menu-profile-strip-left {
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
  width:100%;
}

.menu-profile-strip-meta {
  display:flex;
  flex-direction:column;
  gap:3px;
  min-width:0;
  flex:1;
  text-align:left;
}

.menu-profile-strip-actions {
  display:flex;
  align-items:center;
  justify-content:flex-start;
  gap:20px;
  flex-wrap:wrap;
  width:100%;
  padding-top:2px;
}

.menu-profile-avatar {
  width:36px;
  height:36px;
  border-radius:50%;
  background:var(--avatar-color, var(--accent));
  position:relative;
  flex-shrink:0;
  box-shadow:
    inset 0 1px 2px color-mix(in srgb, white 16%, transparent),
    inset 0 -2px 4px color-mix(in srgb, black 18%, transparent),
    0 2px 8px color-mix(in srgb, black 14%, transparent);
}
.menu-profile-avatar::after {
  content:'';
  position:absolute;
  inset:0;
  border-radius:50%;
  background:radial-gradient(ellipse at center, transparent 58%, color-mix(in srgb, black 16%, transparent) 100%);
  pointer-events:none;
}
.menu-profile-avatar-sm {
  width:34px;
  height:34px;
}
.menu-profile-avatar-status::before {
  content:'';
  position:absolute;
  right:-1px;
  bottom:-1px;
  width:9px;
  height:9px;
  border-radius:50%;
  background:var(--accent);
  border:2px solid color-mix(in srgb, var(--bg-main) 72%, transparent);
  z-index:2;
  pointer-events:none;
}

.menu-profile-avatar-image {
  background: transparent !important;
  overflow: hidden;
  box-shadow: none !important;
}
.menu-profile-avatar.menu-profile-avatar-image {
  background: transparent !important;
  box-shadow: none !important;
}
.menu-profile-avatar-image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
  display: block;
}
.menu-profile-avatar-image::before,
.menu-profile-avatar-image::after,
.menu-profile-avatar.menu-profile-avatar-image::before,
.menu-profile-avatar.menu-profile-avatar-image::after {
  display: none !important;
  content: none !important;
  background: none !important;
  box-shadow: none !important;
  border: none !important;
}

/* Foto de perfil: <img> directo, solo máscara circular */
img.menu-profile-avatar.menu-profile-avatar-photo,
img.menu-profile-avatar-photo {
  width: 36px;
  height: 36px;
  border-radius: 50%;
  object-fit: cover;
  object-position: center;
  display: block;
  flex-shrink: 0;
  padding: 0 !important;
  margin: 0;
  border: none !important;
  background: none !important;
  background-color: transparent !important;
  box-shadow: none !important;
  filter: none !important;
  outline: none;
}
img.menu-profile-avatar-photo.menu-profile-avatar-sm,
img.menu-profile-avatar.menu-profile-avatar-sm {
  width: 34px;
  height: 34px;
}

.menu-profile-name {
  color:var(--text-primary);
  font-size:0.88rem;
  font-weight:600;
  letter-spacing:-0.015em;
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}

.menu-profile-type {
  color:var(--text-muted);
  opacity:var(--text-muted-opacity, 0.72);
  font-size:0.62rem;
  letter-spacing:0.06em;
  font-weight:500;
  line-height:1.2;
  text-transform:capitalize;
}

.menu-profile-action {
  display:inline-flex;
  align-items:center;
  gap:6px;
  padding:4px 0;
  border:0;
  background:transparent;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity, 0.78);
  font-size:0.64rem;
  font-weight:500;
  letter-spacing:0.05em;
  text-decoration:none;
  cursor:pointer;
  white-space:nowrap;
  flex-shrink:0;
  transition:opacity 0.28s cubic-bezier(.22,1,.36,1), color 0.28s cubic-bezier(.22,1,.36,1), transform 0.28s cubic-bezier(.22,1,.36,1);
}
.menu-profile-action-icon {
  width:14px;
  height:14px;
  flex-shrink:0;
  color:var(--icon-color);
  opacity:0.72;
  transition:opacity 0.28s ease;
}
.menu-profile-action:hover {
  opacity:1;
  color:var(--text-primary);
  transform:translateY(-1px);
}
.menu-profile-action:hover .menu-profile-action-icon {
  opacity:1;
}

/* Perfil menú — footer nativo móvil (mismo lenguaje que Viviendas) */
@media (max-width: 600px) {
  :root {
    --mobile-shell-foot-h:62px;
    --mobile-close-size:44px;
    --mobile-close-gap:28px;
    --mobile-close-right:max(12px, env(safe-area-inset-right));
    /* Navegación persistente — siempre Suave (nunca Sólido) */
    --mobile-nav-soft-bg:color-mix(in srgb, var(--bg-main, #050505) 62%, transparent);
    --mobile-nav-soft-blur:16px;
    --mobile-nav-soft-border:color-mix(in srgb, var(--text-primary, #fff) 10%, transparent);
    --mobile-nav-soft-inset:inset 0 1px 0 color-mix(in srgb, var(--text-primary, #fff) 6%, transparent);
  }
  .main-menu {
    --menu-profile-foot-h:var(--mobile-shell-foot-h);
  }
  .main-menu.has-visitor-profile .main-menu-body {
    padding-bottom:calc(var(--menu-profile-foot-h) + env(safe-area-inset-bottom));
  }
  .main-menu.has-visitor-profile .main-menu-list:not(.menu-personalize-panel) {
    padding-bottom:calc(20px + env(safe-area-inset-bottom));
  }
  body.has-global-close .main-menu.has-visitor-profile .main-menu-list:not(.menu-personalize-panel) {
    padding-bottom:calc(20px + env(safe-area-inset-bottom));
  }

  .main-menu-profile-slot {
    position:absolute;
    left:0;
    right:0;
    bottom:0;
    z-index:6;
    display:none;
    padding:0;
    margin:0;
  }
  .main-menu.has-visitor-profile .main-menu-profile-slot {
    display:block;
  }

  .menu-profile-card {
    margin:0;
    display:flex;
    flex-direction:column;
    justify-content:flex-start;
    box-sizing:border-box;
    /* Reserva clara entre "Cerrar sesión" y la X del Shell (misma banda) */
    padding:
      0
      calc(var(--mobile-close-size, 44px) + var(--mobile-close-gap, 28px) + max(12px, env(safe-area-inset-right)))
      env(safe-area-inset-bottom)
      max(10px, env(safe-area-inset-left));
    min-height:calc(var(--menu-profile-foot-h) + env(safe-area-inset-bottom));
    height:calc(var(--menu-profile-foot-h) + env(safe-area-inset-bottom));
    border:none;
    border-top:1px solid var(--mobile-nav-soft-border);
    border-radius:0;
    background:var(--mobile-nav-soft-bg);
    backdrop-filter:blur(var(--mobile-nav-soft-blur)) saturate(125%);
    -webkit-backdrop-filter:blur(var(--mobile-nav-soft-blur)) saturate(125%);
    box-shadow:var(--mobile-nav-soft-inset);
  }
  .menu-profile-strip {
    flex:0 0 auto;
    flex-direction:row;
    align-items:center;
    gap:8px;
    min-height:var(--menu-profile-foot-h);
    height:var(--menu-profile-foot-h);
    box-sizing:border-box;
  }
  .menu-profile-strip-left {
    flex:1 1 auto;
    gap:10px;
    min-width:0;
  }
  .menu-profile-strip-meta {
    gap:0;
    min-width:0;
  }
  .menu-profile-name {
    font-size:0.72rem;
    font-weight:600;
  }
  .menu-profile-type,
  .menu-active-theme-indicator,
  .menu-profile-verification-hint {
    display:none !important;
  }
  /* Admin móvil: mismas herramientas que desktop (Administrar · Style Engine V3 · Cerrar sesión) */
  .menu-profile-action.menu-personalize-v2-btn,
  .menu-profile-action.menu-admin-btn {
    display:inline-flex !important;
  }
  .menu-action-label-desk {
    display:none !important;
  }
  .menu-action-label-mobile {
    display:inline !important;
  }
  /* Visitante: Mi perfil; admin no tiene este control */
  .menu-profile-link-mobile {
    display:none !important;
  }
  .menu-profile-avatar-sm {
    width:28px;
    height:28px;
  }
  .menu-profile-strip-actions {
    width:auto;
    flex:0 0 auto;
    flex-wrap:nowrap;
    justify-content:flex-end;
    align-items:center;
    gap:14px;
    padding-top:0;
  }
  .menu-profile-action {
    font-size:0.56rem;
    letter-spacing:0.03em;
    padding:8px 4px;
    min-height:36px;
    opacity:0.72;
    white-space:nowrap;
  }
  .menu-profile-action-icon {
    width:12px;
    height:12px;
  }
  /* X del footer: oculta — la X universal vive siempre abajo derecha */
  .menu-profile-close,
  .menu-profile-close[hidden] {
    display:none !important;
  }

  /* Sin Sonido / Efectos en móvil */
  .global-menu-tools,
  body.main-menu-open .global-menu-tools {
    display:none !important;
  }
}

.menu-profile-close {
  display:none;
}
.menu-profile-link-mobile {
  display:none;
}
.menu-action-label-mobile {
  display:none;
}
.menu-action-label-desk {
  display:inline;
}

/* Menú Conoce — descubrimiento de scroll (solo móvil) */
@media (max-width: 600px) {
  #mainMenuListProyecto.main-menu-list {
    scrollbar-width:thin;
    scrollbar-color:color-mix(in srgb, var(--text-primary) 42%, transparent) transparent;
  }
  #mainMenuListProyecto.main-menu-list::-webkit-scrollbar {
    width:3px;
  }
  #mainMenuListProyecto.main-menu-list::-webkit-scrollbar-track {
    background:transparent;
  }
  #mainMenuListProyecto.main-menu-list::-webkit-scrollbar-thumb {
    background:color-mix(in srgb, var(--text-primary) 36%, transparent);
    border-radius:999px;
  }
  #mainMenuListProyecto.has-scroll-overflow {
    position:relative;
  }
  /* Scrollbar más evidente mientras haya overflow */
  #mainMenuListProyecto.has-scroll-overflow::-webkit-scrollbar-thumb {
    background:color-mix(in srgb, var(--text-primary) 48%, transparent);
  }
  .menu-scroll-hint {
    display:none;
    position:sticky;
    bottom:18px;
    z-index:4;
    flex:0 0 auto;
    align-items:center;
    justify-content:center;
    margin-top:-40px;
    padding:0 0 4px;
    pointer-events:none;
  }
  #mainMenuListProyecto.has-scroll-hint .menu-scroll-hint:not([hidden]) {
    display:flex;
  }
  .menu-scroll-hint__chevrons {
    display:flex;
    flex-direction:column;
    align-items:center;
    gap:2px;
    animation:menuScrollChevronPulse 2s ease-in-out infinite;
  }
  .menu-scroll-hint__chevron {
    display:block;
    width:10px;
    height:10px;
    border-right:1.5px solid color-mix(in srgb, var(--text-primary) 55%, transparent);
    border-bottom:1.5px solid color-mix(in srgb, var(--text-primary) 55%, transparent);
    transform:rotate(45deg);
    opacity:0.7;
  }
  .menu-scroll-hint__chevron:last-child {
    margin-top:-6px;
    opacity:0.4;
  }
  @keyframes menuScrollChevronPulse {
    0%, 100% { transform:translateY(0); opacity:0.85; }
    50% { transform:translateY(7px); opacity:1; }
  }
  @media (prefers-reduced-motion: reduce) {
    .menu-scroll-hint__chevrons {
      animation:none;
    }
  }
}

.main-menu-header {
  position:relative;
  width:100%;
  padding:max(48px, calc(40px + env(safe-area-inset-top))) calc(20px + var(--menu-gutter)) 40px calc(20px + var(--menu-gutter));
}
.main-menu-recovery-close {
  position:absolute;
  top:max(12px, env(safe-area-inset-top));
  right:max(12px, env(safe-area-inset-right));
  z-index:4;
  display:none;
  align-items:center;
  justify-content:center;
  width:44px;
  height:44px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--text-primary);
  font-size:2rem;
  font-weight:700;
  line-height:1;
  cursor:pointer;
  opacity:0.9;
}
.main-menu-recovery-close.is-visible {
  display:flex;
}
.main-menu-recovery-close:hover {
  opacity:1;
  color:var(--accent);
}

@media (min-width: 601px) {
  body.main-menu-open .global-action-stack.is-visible {
    z-index:1300;
    pointer-events:auto;
    left:calc(min(400px, 85vw) + 12px);
    right:auto;
    transform:none;
  }

  body.main-menu-open .global-action-stack.is-visible:not(.is-hero-only) {
    top:max(24px, env(safe-area-inset-top));
  }
}

@media (max-width: 600px) {
  /* En móvil el Shell controla posición; no heredar layout desktop del menú */
  body.main-menu-open .global-action-stack.is-visible,
  body.main-menu-open .global-action-stack.is-visible:not(.is-hero-only) {
    left:auto;
    right:var(--mobile-close-right, max(12px, env(safe-area-inset-right)));
    top:auto;
    bottom:0;
    transform:none;
    z-index:1700;
  }
}

@media (prefers-reduced-motion: reduce) {
  .global-action-stack {
    transition:none;
  }
}

.main-menu-project {
  color:var(--text-primary);
  font-size:1.02rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  margin-bottom:10px;
  line-height:1.3;
  font-weight:600;
}
.main-menu-constructora {
  color:var(--text-muted);
  opacity:0.58;
  font-size:0.76rem;
  letter-spacing:0.04em;
  font-weight:450;
  line-height:1.5;
  max-width:22em;
}

.menu-nav-toolbar {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin:0 calc(20px + var(--menu-gutter)) 16px calc(20px + var(--menu-gutter));
  padding-right:4px;
  min-height:24px;
  position:relative;
  z-index:8;
  flex-shrink:0;
}
.menu-nav-toolbar:has(#menuNavBack[hidden]):has(#menuNavSaveCol[hidden]):has(#menuNavV2Col[hidden]) {
  display:none;
}

.menu-nav-v2-col {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:6px;
  margin-left:auto;
}
.menu-nav-v2-col[hidden] {
  display:none !important;
}
.menu-nav-v2-col .personalize-v2-actions {
  margin-top:0;
  justify-content:flex-end;
  gap:4px;
}

.menu-nav-v2-col .personalize-v2-icon-btn {
  width:28px;
  height:28px;
  border:0;
  border-radius:6px;
  background:transparent;
  color:#ffffff;
  opacity:0.5;
  transform:none;
}

.menu-nav-v2-col .personalize-v2-icon-btn svg {
  width:16px;
  height:16px;
}

.menu-nav-v2-col .personalize-v2-icon-btn:hover {
  opacity:1;
  background:color-mix(in srgb, var(--text-primary) 6%, transparent);
  border-color:transparent;
  transform:none;
}

.menu-nav-v2-col .personalize-v2-icon-btn--primary,
.menu-nav-v2-col .personalize-v2-icon-btn--primary:hover {
  background:transparent;
  border:0;
  color:#ffffff;
}

.menu-nav-v2-col .personalize-v2-icon-btn--primary {
  opacity:0.72;
}

.menu-nav-v2-col .personalize-v2-icon-btn--primary:hover {
  opacity:1;
}

body.theme-light .menu-nav-v2-col .personalize-v2-icon-btn {
  color:#111111;
}

.menu-nav-save-col {
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:5px;
  margin-left:auto;
}
.menu-nav-save-col[hidden] {
  display:none !important;
}
.menu-nav-save-message {
  margin:0;
  padding:0;
  font-size:0.62rem;
  font-weight:600;
  letter-spacing:0.18em;
  text-transform:uppercase;
  color:var(--accent);
  line-height:1.2;
  text-align:right;
}
.menu-nav-save-message[hidden] {
  display:none !important;
}

.menu-nav-back {
  display:inline-flex;
  align-items:center;
  gap:8px;
  flex:0 0 auto;
  margin:0;
  padding:10px 12px 10px 0;
  min-height:44px;
  border:0;
  background:transparent;
  color:var(--text-primary);
  opacity:0.82;
  font-size:0.72rem;
  letter-spacing:0.04em;
  cursor:pointer;
  text-align:left;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  position:relative;
  z-index:9;
  pointer-events:auto;
  transition:opacity 0.2s ease;
}
.menu-nav-save {
  display:inline-flex;
  align-items:center;
  flex:0 0 auto;
  margin:0;
  padding:0;
  border:0;
  background:transparent;
  color:var(--text-primary);
  opacity:0.82;
  font-size:0.72rem;
  letter-spacing:0.04em;
  cursor:pointer;
  text-align:right;
  transition:opacity 0.2s ease;
}
.menu-nav-save:hover,
.menu-nav-back:hover { opacity:1; }
.menu-nav-save:disabled {
  opacity:0.45;
  cursor:wait;
}
.menu-nav-back[hidden],
.menu-nav-save[hidden] { display:none; }
.menu-nav-preset-delete {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  margin:0;
  padding:0;
  border:1px solid var(--border);
  border-radius:8px;
  background:color-mix(in srgb, var(--glass-surface) 65%, transparent);
  color:var(--text-secondary);
  cursor:pointer;
  transition:background 0.2s ease, border-color 0.2s ease, color 0.2s ease;
}
.menu-nav-preset-delete svg {
  width:14px;
  height:14px;
  stroke:currentColor;
}
.menu-nav-preset-delete:hover {
  color:#ff8a8a;
  border-color:color-mix(in srgb, #ff8a8a 45%, var(--border));
  background:color-mix(in srgb, #ff8a8a 10%, var(--glass-surface));
}
.menu-nav-preset-delete[hidden] { display:none !important; }
.menu-nav-back-icon {
  font-size:1.05rem;
  line-height:1;
  opacity:0.85;
}
.menu-nav-back-label {
  text-transform:lowercase;
  font-weight:500;
}

.main-menu-list {
  flex:1;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  display:flex;
  flex-direction:column;
  justify-content:flex-start;
  gap:14px;
  padding:4px 0 28px calc(20px + var(--menu-gutter));
}
.main-menu-list:not(.menu-personalize-panel) > * {
  margin-right:calc(20px + var(--menu-gutter));
}
.menu-item {
  display:flex;
  align-items:center;
  gap:16px;
  padding:var(--menu-card-pad-y) var(--menu-card-pad-x) var(--menu-card-pad-y) calc(var(--menu-card-pad-x) + 4px);
  cursor:pointer;
  position:relative;
  background:color-mix(in srgb, var(--btn-glass-surface, var(--btn-surface)) 88%, var(--text-primary) 3%);
  border:1px solid color-mix(in srgb, var(--text-primary) 6%, transparent);
  border-radius:var(--menu-card-radius, 14px);
  box-shadow:
    0 1px 2px color-mix(in srgb, black 10%, transparent),
    0 5px 18px color-mix(in srgb, var(--bg-main) 14%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 5%, transparent);
  transition:
    transform 0.32s cubic-bezier(.22,1,.36,1),
    box-shadow 0.32s cubic-bezier(.22,1,.36,1),
    border-color 0.32s cubic-bezier(.22,1,.36,1),
    background 0.32s cubic-bezier(.22,1,.36,1),
    filter 0.32s cubic-bezier(.22,1,.36,1);
}
.menu-item::before {
  content:'';
  position:absolute;
  left:0;
  top:20%;
  bottom:20%;
  width:2.5px;
  border-radius:0 2px 2px 0;
  background:var(--accent);
  transform:scaleY(0);
  transform-origin:center;
  transition:transform 0.32s cubic-bezier(.22,1,.36,1);
}
.menu-item:hover,
.menu-item.is-active {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, color-mix(in srgb, var(--text-primary) 9%, transparent)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  transform:translateY(-2px) scale(1.025);
  box-shadow:
    0 2px 6px color-mix(in srgb, black 14%, transparent),
    0 14px 36px color-mix(in srgb, var(--bg-main) 22%, transparent),
    0 0 0 1px color-mix(in srgb, var(--btn-border-hover, var(--accent)) 35%, transparent),
    0 0 22px color-mix(in srgb, var(--accent) 28%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 10%, transparent);
}
.menu-item:hover::before,
.menu-item.is-active::before {
  transform:scaleY(1);
}
.menu-item svg {
  width:20px;
  height:20px;
  flex-shrink:0;
  stroke:var(--text-primary);
  fill:none;
  opacity:0.72;
  transition:
    stroke 0.32s cubic-bezier(.22,1,.36,1),
    opacity 0.32s cubic-bezier(.22,1,.36,1),
    transform 0.32s cubic-bezier(.22,1,.36,1),
    filter 0.32s cubic-bezier(.22,1,.36,1);
}
.menu-item:hover svg,
.menu-item.is-active svg {
  /* Mismo color que el texto en hover — evita icono negro sobre fondo negro */
  stroke:var(--btn-text-hover, var(--text-primary));
  opacity:1;
  transform:scale(1.08);
  filter:drop-shadow(0 0 6px color-mix(in srgb, var(--btn-text-hover, var(--text-primary)) 45%, transparent));
}
.menu-item-label {
  color:var(--text-primary);
  font-size:0.76rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:500;
  opacity:0.82;
  white-space:nowrap;
  transition:
    opacity 0.32s cubic-bezier(.22,1,.36,1),
    color 0.32s cubic-bezier(.22,1,.36,1),
    transform 0.32s cubic-bezier(.22,1,.36,1);
}
.menu-item:hover .menu-item-label,
.menu-item.is-active .menu-item-label {
  opacity:1;
  color:var(--btn-text-hover, var(--text-primary));
}

body[data-button-glass="soft"] .menu-item,
body[data-button-glass="soft"] .contact-link,
body[data-button-glass="soft"] .download-item,
body[data-button-glass="glass"] .menu-item,
body[data-button-glass="glass"] .contact-link,
body[data-button-glass="glass"] .download-item {
  box-shadow:
    0 1px 2px color-mix(in srgb, black 10%, transparent),
    0 6px 22px color-mix(in srgb, var(--bg-main) 16%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 6%, transparent);
}
body[data-button-glass="soft"] .menu-item:hover,
body[data-button-glass="soft"] .menu-item.is-active,
body[data-button-glass="soft"] .contact-link:hover,
body[data-button-glass="soft"] .contact-link.is-active,
body[data-button-glass="soft"] .download-item:hover,
body[data-button-glass="glass"] .menu-item:hover,
body[data-button-glass="glass"] .menu-item.is-active,
body[data-button-glass="glass"] .contact-link:hover,
body[data-button-glass="glass"] .contact-link.is-active,
body[data-button-glass="glass"] .download-item:hover {
  box-shadow:
    0 2px 6px color-mix(in srgb, black 14%, transparent),
    0 14px 36px color-mix(in srgb, var(--bg-main) 24%, transparent),
    0 0 0 1px color-mix(in srgb, var(--btn-border-hover, var(--accent)) 40%, transparent),
    0 0 24px color-mix(in srgb, var(--accent) 32%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 10%, transparent);
}

a.menu-item.auth-menu-item {
  text-decoration: none;
  color: inherit;
}

@media (max-width: 1024px) {
  .main-menu {
    --menu-gutter: 32px;
    width:min(390px, 88vw);
  }
}

/* ================= BOTÓN FLOTANTE WHATSAPP (reemplazado por ProductAssistant) ================= */
.whatsapp-float {
  display: none !important;
}

/* ================= BOTÓN PROYECTOS (desktop / tablet) ================= */
.project-back-btn {
  position: fixed;
  top: max(18px, env(safe-area-inset-top));
  left: max(16px, env(safe-area-inset-left));
  z-index: 920;
  display: inline-flex;
  align-items: center;
  gap: 0.45rem;
  padding: 0.55rem 0.95rem 0.55rem 0.75rem;
  border: 1px solid rgba(255, 255, 255, 0.14);
  border-radius: var(--menu-card-radius, 14px);
  background: rgba(8, 8, 8, 0.88);
  color: rgba(255, 255, 255, 0.72);
  font-family: inherit;
  font-size: 0.68rem;
  font-weight: 500;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  text-decoration: none;
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.28);
  transition: color 0.25s ease, border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
}
/* Evitar solape con el banner de desarrollo */
body:has(#deploy-marker) .project-back-btn {
  top: max(52px, calc(env(safe-area-inset-top) + 44px));
}
.project-back-btn[hidden] {
  display: none !important;
}
.project-back-btn__icon {
  flex-shrink: 0;
  opacity: 0.85;
}
.project-back-btn:hover .project-back-btn__icon {
  opacity: 1;
}

/* ================= ACCIONES SECUNDARIAS HERO (móvil) ================= */
.hero-secondary-actions {
  display: none;
  align-items: center;
  justify-content: space-between;
  flex-wrap: nowrap;
  gap: 0;
  width: 100%;
  box-sizing: border-box;
  margin-top: 14px;
  padding: 0;
}
.hero-secondary-actions[hidden] {
  display: none !important;
}
.hero-secondary-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  padding: 0;
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: var(--menu-card-radius, 14px);
  background: rgba(8, 8, 8, 0.55);
  color: rgba(255, 255, 255, 0.68);
  text-decoration: none;
  cursor: pointer;
  backdrop-filter: blur(8px);
  -webkit-backdrop-filter: blur(8px);
  box-shadow: 0 3px 10px rgba(0, 0, 0, 0.18);
  transition: color 0.25s ease, border-color 0.25s ease, background 0.25s ease, transform 0.25s ease;
  flex: 0 0 auto;
}
.hero-secondary-btn[hidden] {
  display: none !important;
}
.hero-secondary-btn:hover,
.hero-secondary-btn:focus-visible {
  color: #fff;
  border-color: rgba(255, 255, 255, 0.22);
  background: rgba(12, 12, 12, 0.72);
  transform: translateY(-1px);
}
.hero-secondary-btn svg {
  display: block;
  width: 15px;
  height: 15px;
}
.hero-secondary-btn__mark {
  display: block;
  width: 10px;
  height: 10px;
  border: 1.25px solid rgba(255, 255, 255, 0.5);
  border-radius: 3px 3px 3px 1px;
  box-shadow: inset 0 0 0 1px rgba(255, 255, 255, 0.04);
}

/* ================= BOTÓN FLOTANTE COMPARTIR PROYECTO ================= */
/* Encima del FAB del asistente (mismo lenguaje: solo el símbolo). */
.share-float {
  position:fixed;
  bottom:92px;
  right:24px;
  padding:8px;
  z-index:900;
  cursor:pointer;
  border:none;
  background:none;
  text-decoration:none;
  transition:transform 0.3s ease;
}
.share-float.is-float-hidden,
.share-float[hidden] {
  display:none !important;
}
.share-float:hover { transform:scale(1.1); }
.share-float svg {
  width:25px; height:25px;
  stroke:#fff;
  fill:none;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,0.7));
}
@media (max-width: 600px) {
  :root {
    /* Retícula única de chrome (misma columna L/R para Volver·Menú / Compartir·Asistente) */
    --mobile-chrome-x: 1.15rem;
    --mobile-chrome-left: max(var(--mobile-chrome-x), env(safe-area-inset-left));
    --mobile-chrome-right: max(var(--mobile-chrome-x), env(safe-area-inset-right));
    --mobile-chrome-top: max(14px, env(safe-area-inset-top));
    --mobile-chrome-bottom: max(1.15rem, env(safe-area-inset-bottom));
    --mobile-landing-fab-size: 52px;
    --mobile-back-size: 40px;
    --mobile-hero-fab-clearance: calc(
      var(--mobile-landing-fab-size) + var(--mobile-chrome-bottom) + 1.35rem
    );
  }

  /* Banner de desarrollo: nunca en móvil salvo DEV_MODE */
  #deploy-marker {
    display: none !important;
  }
  html.dev-mode #deploy-marker {
    display: block !important;
  }

  /*
   * V3.8.1 — Controles superiores del sistema (solo iconos, como Compartir).
   * Sin Hall / glass / fondo. Misma familia visual que .share-float.
   */
  #projectBackBtnMobile {
    display: none !important;
  }
  .project-back-btn:not([hidden]),
  body[data-button-glass] .project-back-btn:not([hidden]),
  body[data-button-hover-glass] .project-back-btn:not([hidden]),
  body:has(#projectCover[data-hero-layout="bottom-bar"]) .project-back-btn:not([hidden]) {
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    gap: 0;
    top: var(--mobile-chrome-top);
    left: var(--mobile-chrome-left);
    right: auto;
    z-index: 940;
    width: var(--mobile-back-size);
    height: var(--mobile-back-size);
    min-width: var(--mobile-back-size);
    min-height: var(--mobile-back-size);
    padding: 0;
    box-sizing: border-box;
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    border-radius: 0 !important;
    border-width: 0 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    box-shadow: none !important;
    color: #fff;
    font-size: 0;
    font-weight: 400;
    letter-spacing: 0;
    text-transform: none;
    opacity: 0.78;
    filter: none;
    transform: none;
    transition: transform 0.3s ease, opacity 0.25s ease;
    -webkit-tap-highlight-color: transparent;
  }
  .project-back-btn:not([hidden])::before {
    content: none !important;
    display: none !important;
  }
  .project-back-btn:not([hidden]) .project-back-btn__label {
    display: none !important;
  }
  .project-back-btn:not([hidden]) .project-back-btn__icon {
    display: block !important;
    /* +25% vs Compartir (18px) → 22.5px */
    width: 22.5px;
    height: 22.5px;
    flex-shrink: 0;
    opacity: 1;
    stroke: #fff;
    stroke-width: 1.6;
    fill: none;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.7));
  }
  .project-back-btn:not([hidden]):hover,
  .project-back-btn:not([hidden]):focus-visible,
  body[data-button-hover-glass="soft"] .project-back-btn:not([hidden]):hover,
  body[data-button-hover-glass="glass"] .project-back-btn:not([hidden]):hover,
  body[data-button-glass] .project-back-btn:not([hidden]):hover {
    background: none !important;
    background-color: transparent !important;
    border: none !important;
    box-shadow: none !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    color: #fff;
    opacity: 1;
    transform: scale(1.1);
    filter: none;
  }
  .project-back-btn:not([hidden]):active {
    background: none !important;
    transform: scale(1.05);
    opacity: 0.9;
  }

  /* Compartir — misma familia de icono de sistema que ← */
  .share-float:not(.is-float-hidden):not([hidden]) {
    display: flex;
    align-items: center;
    justify-content: center;
    top: var(--mobile-chrome-top);
    right: var(--mobile-chrome-right);
    bottom: auto;
    left: auto;
    width: var(--mobile-back-size);
    height: var(--mobile-back-size);
    padding: 0;
    z-index: 930;
    opacity: 0.78;
    background: none;
    border: none;
    box-shadow: none;
    transition: transform 0.3s ease, opacity 0.25s ease;
    -webkit-tap-highlight-color: transparent;
  }
  .share-float svg {
    width: 18px;
    height: 18px;
    stroke: #fff;
    fill: none;
    filter: drop-shadow(0 2px 8px rgba(0, 0, 0, 0.7));
  }
  .share-float:hover,
  .share-float:focus-visible {
    opacity: 1;
    transform: scale(1.1);
  }
  .share-float:active {
    transform: scale(1.05);
    opacity: 0.9;
  }

  /*
   * Landing — banda inferior unificada (Hall Design System):
   * [ Menú ] ………………………………… [ Asistente ]
   * Misma identidad visual que "Iniciar"; tamaño propio (52px).
   */
  .pa-fab,
  #mainMenuOpenBtn.project-cover-btn,
  .project-cover-buttons #mainMenuOpenBtn,
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--start #mainMenuOpenBtn,
  body[data-button-glass="soft"] .project-cover-buttons #mainMenuOpenBtn,
  body[data-button-glass="glass"] .project-cover-buttons #mainMenuOpenBtn,
  body[data-button-glass="solid"] .project-cover-buttons #mainMenuOpenBtn,
  body[data-button-glass="soft"] .pa-fab,
  body[data-button-glass="glass"] .pa-fab,
  body[data-button-glass="solid"] .pa-fab {
    display:inline-flex !important;
    align-items:center;
    justify-content:center;
    width:var(--mobile-landing-fab-size) !important;
    height:var(--mobile-landing-fab-size) !important;
    min-width:var(--mobile-landing-fab-size);
    min-height:var(--mobile-landing-fab-size);
    max-width:var(--mobile-landing-fab-size) !important;
    padding:0 !important;
    margin:0;
    z-index:950;
    box-sizing:border-box;
    /* Identidad Hall = tokens de .project-cover-buttons .project-cover-btn */
    background:var(--btn-glass-surface, var(--btn-surface));
    border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
    border-radius:var(--menu-card-radius, 14px);
    backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(130%);
    -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(130%);
    box-shadow:
      var(--btn-shadow, 0 8px 24px rgba(0, 0, 0, 0.32)),
      var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 10%, transparent));
    color:var(--text-primary);
    cursor:pointer;
    filter:none;
    transform:none;
    transition:
      background 0.3s ease,
      color 0.3s ease,
      border-color 0.3s ease,
      box-shadow 0.3s ease,
      transform 0.25s ease;
  }

  .pa-fab {
    position:fixed;
    left:auto;
    right:var(--mobile-chrome-right);
    bottom:var(--mobile-chrome-bottom);
    top:auto;
  }

  /* Con asistente abierto, la esquina derecha es del Global Close */
  body.pa-open .pa-fab {
    opacity:0 !important;
    visibility:hidden !important;
    pointer-events:none !important;
  }

  #mainMenuOpenBtn.project-cover-btn,
  .project-cover-buttons #mainMenuOpenBtn,
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--start #mainMenuOpenBtn {
    position:fixed;
    left:var(--mobile-chrome-left);
    right:auto;
    bottom:var(--mobile-chrome-bottom);
    top:auto;
    gap:0;
    font-size:0;
    letter-spacing:0;
    text-transform:none;
  }

  /* Bottom-bar Hall: mismo radio pastilla que Iniciar */
  body:has(#projectCover[data-hero-layout="bottom-bar"]) .pa-fab,
  body:has(#projectCover[data-hero-layout="bottom-bar"]) #mainMenuOpenBtn {
    border-radius:999px;
  }

  .pa-fab:hover,
  .pa-fab:focus-visible,
  .pa-fab.is-active,
  #mainMenuOpenBtn:hover,
  #mainMenuOpenBtn:focus-visible,
  body[data-button-hover-glass="soft"] #mainMenuOpenBtn:hover,
  body[data-button-hover-glass="glass"] #mainMenuOpenBtn:hover,
  body[data-button-hover-glass="soft"] .pa-fab:hover,
  body[data-button-hover-glass="glass"] .pa-fab:hover {
    background:var(--btn-glass-hover, var(--hover));
    color:var(--btn-text-hover, var(--text-primary));
    border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
    border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
    transform:translateY(-1px);
    filter:none;
    box-shadow:
      0 12px 28px rgba(0, 0, 0, 0.36),
      var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 12%, transparent));
  }

  /* Iconos ~12% más pequeños: protagonismo en Iniciar */
  #mainMenuOpenBtn .menu-btn-icon {
    font-size:1.15rem;
    line-height:1;
    color:inherit;
    opacity:0.92;
  }
  .pa-fab__mark {
    width:12px;
    height:12px;
    margin:0;
    border:1.25px solid color-mix(in srgb, var(--text-primary) 55%, transparent);
    border-radius:3px 3px 3px 1px;
    box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text-primary) 4%, transparent);
  }

  /* Asistente del hero secundario → el FAB global lo sustituye */
  #projectAssistBtnMobile {
    display:none !important;
  }
  .hero-secondary-actions.is-assist-only:not([hidden]) {
    display:none !important;
  }
  .hero-secondary-actions:not([hidden]):not(.is-assist-only) {
    display: flex;
    justify-content: flex-start;
  }

  /*
   * Hero Nivel 1: elevar título / subtítulo / Iniciar ~1 línea
   * para respirar por encima de Menú · Asistente.
   */
  .project-cover-content {
    padding-left: var(--mobile-chrome-left);
    padding-right: var(--mobile-chrome-right);
    padding-bottom: var(--mobile-hero-fab-clearance);
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-content {
    padding-left: var(--mobile-chrome-left);
    padding-right: var(--mobile-chrome-right);
    padding-bottom: var(--mobile-hero-fab-clearance);
  }
  .project-cover-tagline {
    margin-bottom: 1.35rem;
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-hero-copy {
    margin-bottom: 0.35rem;
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--end {
    margin-top: 0.15rem;
  }

  /* Slot del menú: el botón ya es fixed; no reservar hueco en el hero */
  .project-cover[data-hero-layout="centered"] .project-cover-slot--start {
    width:0;
    height:0;
    min-height:0;
    margin:0;
    padding:0;
    overflow:visible;
    pointer-events:none;
  }
  .project-cover[data-hero-layout="centered"] .project-cover-slot--start #mainMenuOpenBtn {
    pointer-events:auto;
  }
}

/* ================= HERRAMIENTAS MENÚ (animaciones + sonido, solo con menú abierto) ================= */
.global-menu-tools {
  display:none;
  position:fixed;
  bottom:24px;
  left:calc(min(400px, 85vw) + 12px);
  z-index:1300;
  flex-direction:column;
  align-items:center;
  gap:14px;
}
body.main-menu-open .global-menu-tools {
  display:flex;
}
.global-effects-btn,
.global-sound-btn {
  display:block;
  position:static;
  padding:8px;
  border:0;
  background:none;
  color:#fff;
  cursor:pointer;
  opacity:0.82;
  transition:transform 0.3s ease, opacity 0.25s ease;
  filter:drop-shadow(0 2px 8px rgba(0,0,0,0.7));
}
body.main-menu-open .global-effects-btn:hover,
body.main-menu-open .global-sound-btn:hover {
  opacity:1;
  transform:scale(1.1);
  color:var(--accent, #fff);
}
.global-effects-btn.is-off {
  opacity:0.45;
}
.global-effects-icon {
  display:block;
  width:25px;
  height:25px;
}
.global-sound-btn .global-sound-icon-stack {
  position:relative;
  width:25px;
  height:25px;
  display:block;
}
.global-sound-btn .video-ctrl-icon {
  width:25px;
  height:25px;
  display:block;
  position:absolute;
  inset:0;
  opacity:0;
  transform:scale(0.72) rotate(-8deg);
  transition:opacity 0.2s ease, transform 0.22s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
.global-sound-btn.is-unmuted .video-ctrl-icon--vol,
.global-sound-btn.is-muted .video-ctrl-icon--mute {
  opacity:1;
  transform:scale(1) rotate(0deg);
}
.web-effects-confirm-copy {
  margin:0 0 20px;
  font-size:0.92rem;
  text-align:center;
  color:var(--text-primary);
  opacity:1;
}
#webEffectsConfirmModal .project-theme-confirm-actions {
  justify-content:center;
}
html.web-effects-off *:not(video):not(audio):not(source),
html.web-effects-off *:not(video):not(audio):not(source)::before,
html.web-effects-off *:not(video):not(audio):not(source)::after {
  animation:none !important;
  transition:none !important;
}
html.web-effects-off {
  scroll-behavior:auto !important;
}
@media (max-width: 600px) {
  .global-menu-tools,
  body.main-menu-open .global-menu-tools {
    display:none !important;
  }
  .global-effects-icon,
  .global-sound-btn .global-sound-icon-stack,
  .global-sound-btn .video-ctrl-icon {
    width:21px;
    height:21px;
  }
}

.units-popup-box,
.content-modal-box:not(.auth-experience-box),
.pdf-modal-box,
.units-popup-box .popup-box-scroll,
.content-modal-box:not(.auth-experience-box) .popup-box-scroll {
  color:var(--container-text, var(--text-primary));
}
.units-popup-box .demo-title,
.units-popup-box .demo-subtitle,
.content-modal-box:not(.auth-experience-box) .content-modal-title,
.content-modal-box:not(.auth-experience-box) .info-text {
  color:var(--container-text, var(--text-primary));
}

/* ================= POPUP: SELECCIÓN DE UNIDADES ================= */
.units-popup {
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  z-index:998;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
}
.units-popup.active {
  opacity:1;
  visibility:visible;
}
.units-popup-box {
  width:100%;
  max-width:900px;
  max-height:85vh;
  max-height:85svh;
  background:var(--bg-popup);
  backdrop-filter:blur(var(--panel-modal-blur, 20px)) saturate(140%);
  -webkit-backdrop-filter:blur(var(--panel-modal-blur, 20px)) saturate(140%);
  border:1px solid var(--border);
  border-radius:14px;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  padding:0;
  box-shadow:var(--modal-shadow, 0 24px 70px rgba(0, 0, 0, 0.55));
}
.popup-box-scroll {
  flex:1;
  min-height:0;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.units-popup-box .popup-box-scroll {
  padding:50px 30px 40px;
}
.modal-close,
.main-menu-close {
  display:none !important;
}

.global-action-stack {
  position:fixed;
  z-index:1300;
  display:none;
  flex-direction:column;
  align-items:center;
  gap:10px;
  transition:
    left 0.5s cubic-bezier(.22, 1, .36, 1),
    right 0.5s cubic-bezier(.22, 1, .36, 1),
    top 0.5s cubic-bezier(.22, 1, .36, 1),
    bottom 0.5s cubic-bezier(.22, 1, .36, 1),
    transform 0.5s cubic-bezier(.22, 1, .36, 1);
}
.global-action-stack.is-visible {
  display:flex;
}

.global-close-btn,
.global-fullscreen-btn {
  position:static;
  display:none;
  align-items:center;
  justify-content:center;
  width:48px;
  height:48px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:var(--text-primary);
  line-height:1;
  cursor:pointer;
  opacity:0.82;
  box-shadow:none;
  transition:opacity 0.25s ease, color 0.25s ease;
}
.global-close-btn.is-visible,
.global-fullscreen-btn.is-visible { display:flex; }

/*
 * X global = control de sistema (no navegación Hall).
 * Sin fondo, sin soft/sólido, sin herencia de botones / hover Hall.
 * Solo opacidad + leve escala al tap. Color de glifo fijo (nunca oscuro).
 */
#globalCloseBtn.global-close-btn,
#globalCloseBtn.global-close-btn.is-visible,
#globalCloseBtn.global-close-btn:hover,
#globalCloseBtn.global-close-btn:focus,
#globalCloseBtn.global-close-btn:focus-visible,
#globalCloseBtn.global-close-btn:active,
#globalCloseBtn.global-close-btn:visited,
body[data-button-glass] #globalCloseBtn.global-close-btn,
body[data-button-glass] #globalCloseBtn.global-close-btn:hover,
body[data-button-glass] #globalCloseBtn.global-close-btn:active,
body[data-button-hover-glass] #globalCloseBtn.global-close-btn:hover,
body[data-button-hover-glass="soft"] #globalCloseBtn.global-close-btn:hover,
body[data-button-hover-glass="glass"] #globalCloseBtn.global-close-btn:hover,
body[data-button-hover-glass="solid"] #globalCloseBtn.global-close-btn:hover {
  -webkit-appearance:none !important;
  appearance:none !important;
  background:transparent !important;
  background-color:transparent !important;
  background-image:none !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  filter:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  outline:none !important;
  -webkit-tap-highlight-color:transparent !important;
  color:#fff !important;
  fill:#fff !important;
  mix-blend-mode:normal !important;
}
#globalCloseBtn.global-close-btn {
  font-size:2.2rem;
  font-weight:700;
  opacity:0.88;
  transition:opacity 0.2s ease, transform 0.15s ease;
}
@media (hover: hover) and (pointer: fine) {
  #globalCloseBtn.global-close-btn:hover,
  #globalCloseBtn.global-close-btn:focus-visible {
    opacity:1;
    color:#fff !important;
    background:transparent !important;
    transform:none;
  }
}
#globalCloseBtn.global-close-btn:active {
  opacity:0.72;
  color:#fff !important;
  background:transparent !important;
  transform:scale(0.92);
}

.global-fullscreen-btn:hover {
  opacity:1;
  color:var(--accent);
  background:transparent;
}
.global-fullscreen-btn {
  font-size:1.2rem;
  font-weight:400;
}
.global-fullscreen-icon {
  display:block;
  transform:translateY(-1px);
}

@media (min-width: 601px) {
  .global-action-stack {
    top:max(24px, env(safe-area-inset-top));
    right:max(24px, env(safe-area-inset-right));
    left:auto;
    bottom:auto;
    transform:none;
  }
}

@media (max-width: 600px) {
  :root {
    --mobile-shell-foot-h:62px;
    --mobile-close-size:44px;
    --mobile-close-gap:28px;
    --mobile-close-right:max(12px, env(safe-area-inset-right));
    --mobile-nav-soft-bg:color-mix(in srgb, var(--bg-main, #050505) 62%, transparent);
    --mobile-nav-soft-blur:16px;
    --mobile-nav-soft-border:color-mix(in srgb, var(--text-primary, #fff) 10%, transparent);
    --mobile-nav-soft-inset:inset 0 1px 0 color-mix(in srgb, var(--text-primary, #fff) 6%, transparent);
  }
  .global-fullscreen-btn,
  .global-fullscreen-btn.is-visible {
    display: none !important;
  }
  /*
   * Shell close slot: misma banda vertical que los footers nativos.
   * height + padding-bottom safe-area + align-items:center = eje compartido.
   * Sin offsets calc/translate para “compensar”.
   */
  .global-action-stack {
    z-index:1700;
    top:auto;
    left:auto;
    right:var(--mobile-close-right);
    bottom:0;
    width:var(--mobile-close-size);
    height:calc(var(--mobile-shell-foot-h) + env(safe-area-inset-bottom));
    padding:0 0 env(safe-area-inset-bottom);
    box-sizing:border-box;
    transform:none;
    flex-direction:row;
    align-items:center;
    justify-content:center;
    gap:0;
    transition:none;
    background:transparent !important;
    pointer-events:none;
  }
  /* En hero: fullscreen arriba a la derecha (misma posición que desktop) */
  .global-action-stack.is-hero-only {
    top:max(18px, env(safe-area-inset-top));
    right:var(--mobile-close-right);
    left:auto;
    bottom:auto;
    height:auto;
    padding:0;
    width:auto;
    transform:none;
    flex-direction:column;
  }
  body.main-menu-open .global-action-stack.is-visible,
  body.main-menu-open .global-action-stack.is-visible:not(.is-hero-only) {
    top:auto;
    left:auto;
    right:var(--mobile-close-right);
    bottom:0;
    height:calc(var(--mobile-shell-foot-h) + env(safe-area-inset-bottom));
    padding:0 0 env(safe-area-inset-bottom);
    transform:none;
    z-index:1700;
  }
  .global-menu-tools,
  body.main-menu-open .global-menu-tools {
    display:none !important;
  }
  .main-menu-footer {
    display:none !important;
  }
  /*
   * V3.8.3 — Descargas: sin recorte vertical artificial.
   * V3.8.4 — Restaurar eje horizontal centrado (sin tocar el scroll).
   * Overlay fijo a viewport; único scroll = .downloads-stage.
   */
  #descargasModal.downloads-modal.content-modal,
  .downloads-modal.content-modal {
    align-items: stretch !important;
    justify-content: stretch !important;
    padding: 0 !important;
    inset: 0;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    height: 100%;
    max-height: none;
    min-height: 0;
    overflow: hidden;
  }
  #descargasModal .downloads-modal-box,
  .downloads-modal-box {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    width: 100%;
    max-width: none !important;
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0;
    padding: 0;
    overflow: hidden !important;
    transform: none !important;
    border-radius: 0;
  }
  /* Si quedó un wrapper legacy, no debe limitar ni scrollear */
  #descargasModal .popup-box-scroll,
  .downloads-modal-box > .popup-box-scroll {
    display: flex !important;
    flex-direction: column;
    flex: 1 1 auto;
    min-height: 0 !important;
    max-height: none !important;
    height: 100% !important;
    padding: 0 !important;
    margin: 0 !important;
    overflow: hidden !important;
  }
  #descargasModal .downloads-stage,
  .downloads-modal .downloads-stage {
    position: relative;
    z-index: 1;
    flex: 1 1 auto;
    align-self: stretch;
    width: 100%;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    display: flex;
    flex-direction: column;
    /* Centrado horizontal original; scroll vertical intacto */
    align-items: center;
    justify-content: flex-start;
    padding-top: max(16px, env(safe-area-inset-top));
    padding-left: 24px;
    padding-right: 24px;
    padding-bottom: calc(
      var(--mobile-shell-foot-h, 62px) + env(safe-area-inset-bottom) + 28px
    );
    box-sizing: border-box;
    overflow-x: hidden;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
    overscroll-behavior: contain;
    contain: none;
    clip-path: none;
    mask: none;
    -webkit-mask: none;
  }
  #descargasModal .downloads-stage::after,
  .downloads-modal .downloads-stage::after {
    display: none !important;
  }
  #descargasModal .downloads-list,
  .downloads-modal .downloads-list {
    position: relative;
    z-index: 3;
    /* Composición equilibrada: mismo margen L/R, eje centrado */
    width: min(420px, calc(100% - 48px));
    max-width: min(420px, calc(100vw - 48px));
    height: auto !important;
    min-height: 0;
    max-height: none !important;
    flex: 0 0 auto;
    align-self: center;
    display: flex;
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
    overflow: visible !important;
    padding-bottom: 8px;
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
  }
  #descargasModal .downloads-list[hidden],
  .downloads-modal .downloads-list[hidden] {
    display: none !important;
  }
  #descargasModal .download-item,
  #descargasModal .download-item--animate {
    flex-shrink: 0;
    width: 100%;
    box-sizing: border-box;
  }

  /*
   * V3.8.5 — Loader independiente (fuera del listado), centrado en viewport.
   * Estado 1: solo loader. Estado 2: solo listado.
   */
  .downloads-loader {
    display: none !important;
  }
  .downloads-stage.is-charging {
    overflow: hidden !important;
    justify-content: center;
    align-items: center;
  }
  .downloads-stage.is-charging .downloads-list,
  .downloads-stage.is-charging .downloads-list[hidden] {
    display: none !important;
    visibility: hidden !important;
    pointer-events: none !important;
  }
  .downloads-stage.is-charging .downloads-loader {
    display: flex !important;
    position: fixed;
    inset: 0;
    z-index: 25;
    align-items: center;
    justify-content: center;
    padding: 24px;
    box-sizing: border-box;
    pointer-events: none;
  }
  .downloads-stage.is-charging .downloads-loader .download-item--loader {
    width: min(420px, calc(100vw - 48px));
    max-width: min(420px, calc(100vw - 48px));
    margin: 0;
    cursor: default;
    pointer-events: none;
  }
  .downloads-stage.is-charging .downloads-intro-pct {
    position: fixed;
    left: 50%;
    top: calc(50% + 44px);
    bottom: auto;
    transform: translate(-50%, 0);
    z-index: 26;
  }
  .downloads-stage:not(.is-charging) .downloads-loader,
  .downloads-loader[hidden] {
    display: none !important;
  }
  .downloads-stage.is-ready .downloads-list,
  .downloads-stage.is-spreading .downloads-list {
    display: flex !important;
  }

  .downloads-intro-pct {
    bottom: calc(var(--mobile-shell-foot-h, 62px) + env(safe-area-inset-bottom) + 10px);
  }

  /*
   * V3.8.2 — Animaciones siempre activas en móvil (paridad con desktop).
   * Respaldo CSS si quedara web-effects-off o prefers-reduced-motion.
   */
  html.web-effects-off *:not(video):not(audio):not(source),
  html.web-effects-off *:not(video):not(audio):not(source)::before,
  html.web-effects-off *:not(video):not(audio):not(source)::after {
    animation: revert !important;
    transition: revert !important;
  }
  @media (prefers-reduced-motion: reduce) {
    .download-item--animate,
    .download-item-energy,
    .downloads-intro-pct {
      transition: opacity 0.4s ease, transform 0.32s cubic-bezier(0.22, 1, 0.36, 1), box-shadow 0.32s ease !important;
    }
    .download-item--animate.is-entering {
      animation: downloadsCardIn 0.52s cubic-bezier(0.22, 1, 0.36, 1) both !important;
    }
    .unit-card--enter {
      animation-name: unitCardAppleEnter !important;
      animation-duration: 0.55s !important;
      animation-fill-mode: both !important;
    }
    .tour360-card--enter {
      animation-duration: 0.55s !important;
      animation-fill-mode: both !important;
    }
    .pa-root,
    .pa-panel,
    .pa-fab,
    .project-cover-btn,
    .outline-btn,
    .menu-item,
    .global-close-btn,
    .share-float,
    .project-back-btn {
      transition-duration: 0.3s !important;
    }
  }
  .global-close-btn,
  .global-fullscreen-btn {
    width:var(--mobile-close-size);
    height:var(--mobile-close-size);
    min-width:var(--mobile-close-size);
    min-height:var(--mobile-close-size);
    background:transparent !important;
    box-shadow:none !important;
    flex-shrink:0;
  }
  /*
   * Slot por encima del footer soft (z 1205) y del PA (960).
   * Sin fondo: el footer no debe “pintar” un hover negro bajo la X.
   */
  #globalCloseBtn.global-close-btn,
  #globalCloseBtn.global-close-btn.is-visible {
    display:flex !important;
    align-items:center;
    justify-content:center;
    pointer-events:auto;
    font-size:1.85rem;
    font-weight:600;
    line-height:1;
    opacity:0.92;
    color:#fff !important;
    background:transparent !important;
    border:0 !important;
    border-radius:0 !important;
    box-shadow:none !important;
    -webkit-tap-highlight-color:transparent;
    text-shadow:0 1px 2px rgba(0, 0, 0, 0.35);
  }
  @media (hover: hover) and (pointer: fine) {
    #globalCloseBtn.global-close-btn:hover,
    #globalCloseBtn.global-close-btn:focus-visible {
      opacity:1;
      color:#fff !important;
      background:transparent !important;
      transform:none;
    }
  }
  #globalCloseBtn.global-close-btn:active {
    opacity:0.75;
    color:#fff !important;
    transform:scale(0.92);
    background:transparent !important;
  }
  #globalCloseBtn.global-close-btn:not(.is-visible) {
    display:flex !important;
    opacity:0;
    pointer-events:none;
    visibility:hidden;
  }

  /* Zoom del documento bloqueado; viewers internos conservan pinch propio */
  html {
    touch-action:pan-x pan-y;
    -ms-touch-action:pan-x pan-y;
  }
  body {
    touch-action:pan-x pan-y;
    -ms-content-zooming:none;
  }
  .tour360-card,
  .tour360-card iframe,
  #sphereModal,
  #sphereModal iframe,
  #tour360Popup,
  #tour360Popup iframe,
  .lightbox,
  .lightbox img,
  .project-video-player,
  [data-allow-zoom],
  .pannellum-container,
  .pnlm-container {
    touch-action:auto;
  }
  .global-fullscreen-btn {
    font-size:1.15rem;
  }
  body.has-global-close .content-modal-box:not(.auth-experience-box):not(.video-modal-box):not(.amenities-modal-box):not(.downloads-modal-box),
  body.has-global-close .units-popup-box,
  body.has-global-close .pdf-modal-box {
    margin-bottom:calc(64px + env(safe-area-inset-bottom));
  }
  body.has-global-close .splash-intro-modal .video-modal-box {
    margin-bottom:0;
  }
  body.has-global-close #videoModal .project-video-player {
    max-height:min(78vh, calc(86svh - 56px - env(safe-area-inset-bottom)));
  }
  body.has-global-close .main-menu-list:not(.menu-personalize-panel) {
    padding-bottom:calc(72px + env(safe-area-inset-bottom));
  }
  body.has-global-close .personalize-scroll {
    padding-bottom:calc(72px + env(safe-area-inset-bottom));
  }
}

.modal-close-legacy-hidden {
  display:none !important;
}
.demo-title {
  text-align:center;
  color:var(--text-primary);
  font-weight:700;
  letter-spacing:0.15em;
  text-transform:uppercase;
  font-size:1rem;
  opacity:0.75;
  margin-bottom:10px;
}
.demo-subtitle {
  text-align:center;
  color:var(--text-primary);
  opacity:0.55;
  font-weight:300;
  letter-spacing:0.06em;
  font-size:0.85rem;
  text-transform:uppercase;
  margin-bottom:40px;
}
.units-grid {
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:24px;
  max-width:700px;
  margin:0 auto;
}
.unit-card {
  position:relative;
  cursor:pointer;
  border:1px solid var(--border);
  transition:border-color 0.3s ease, transform 0.3s ease;
}
.unit-card:hover {
  border-color:color-mix(in srgb, var(--text-primary) 50%, transparent);
  transform:translateY(-4px);
}

.unit-card-image {
  width:100%;
  aspect-ratio:4/5;
  background:var(--placeholder-bg);
  border:1px dashed var(--placeholder-border);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:8%;
  position:relative;
}
@media (min-width: 601px) {
  .unit-card-image { aspect-ratio:16/9; }
}
@media (min-width: 1025px) {
  .unit-card-image { aspect-ratio:16/8; }
}

.unit-card-image span {
  color:var(--text-primary);
  opacity:0.65;
  font-size:0.78rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  line-height:1.5;
}

.availability-badge {
  position:absolute;
  top:10px;
  left:10px;
  background:var(--accent);
  color:var(--text-primary);
  font-size:0.65rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  padding:6px 10px;
  border-radius:4px;
  box-shadow:0 4px 12px color-mix(in srgb, var(--accent) 45%, transparent);
  z-index:1;
}

.unit-card-info { padding:18px 14px; text-align:center; }
.unit-card-name {
  color:var(--text-primary);
  font-size:1rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.unit-card-meta {
  color:var(--text-primary);
  opacity:0.55;
  font-size:0.8rem;
  letter-spacing:0.03em;
  margin-bottom:16px;
}
.unit-card-btn {
  width:100%;
  background:var(--bg-main);
  border:1px solid color-mix(in srgb, var(--text-primary) 40%, transparent);
  color:var(--text-primary);
  font-size:0.75rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:12px 6px;
  cursor:pointer;
  transition:background 0.3s ease, color 0.3s ease;
}
.unit-card-btn:hover {
  background:var(--text-primary);
  color:var(--bg-main);
}

/* ================= POPUP 360° — grid premium 9:16 ================= */
.units-popup.tour360-popup {
  --tour360-inset:clamp(14px, 2.2vmin, 18px);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:stretch;
  box-sizing:border-box;
  padding:var(--tour360-inset);
  color:var(--container-text, var(--text-primary));
}
.tour360-stage {
  flex:1 1 auto;
  min-height:0;
  width:100%;
  margin:0 auto;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb, var(--scrollbar-thumb) 70%, transparent) transparent;
}
.tour360-stage::-webkit-scrollbar {
  width:6px;
}
.tour360-stage::-webkit-scrollbar-track {
  background:transparent;
}
.tour360-stage::-webkit-scrollbar-thumb {
  background:color-mix(in srgb, var(--scrollbar-thumb) 70%, transparent);
  border-radius:999px;
}
.tour360-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:var(--tour360-inset);
  width:100%;
  box-sizing:border-box;
  padding-bottom:var(--tour360-inset);
}
.tour360-card {
  position:relative;
  width:100%;
  max-height:calc(100svh - (var(--tour360-inset) * 2));
  aspect-ratio:4 / 5;
  height:auto;
  overflow:hidden;
  border-radius:16px;
  cursor:pointer;
  border:1px solid var(--border);
  background:var(--panel-glass-surface, var(--bg-glass-surface, var(--bg-card)));
  backdrop-filter:blur(calc(var(--bg-glass-blur, var(--glass-blur, 22px)) * 0.45)) saturate(125%);
  -webkit-backdrop-filter:blur(calc(var(--bg-glass-blur, var(--glass-blur, 22px)) * 0.45)) saturate(125%);
  box-shadow:var(--glass-shadow, 0 10px 36px rgba(0, 0, 0, 0.34));
  transform-origin:center center;
}
.tour360-card.tour360-card--enter {
  animation:unitCardAppleEnter 1.45s cubic-bezier(0.22, 1, 0.36, 1) var(--unit-enter-delay, 0ms) both;
  pointer-events:none;
  will-change:transform, opacity;
}
@media (prefers-reduced-motion: reduce) {
  .tour360-card.tour360-card--enter {
    animation:none;
    pointer-events:auto;
    will-change:auto;
  }
}
.tour360-card-media {
  position:absolute;
  inset:0;
  background:var(--panel-glass-surface, var(--bg-glass-surface, var(--bg-card)));
}
.tour360-card-media img {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.tour360-card-footer {
  position:absolute;
  left:0;
  right:0;
  bottom:0;
  z-index:2;
  padding:28px 12px 14px;
  display:flex;
  flex-direction:column;
  gap:8px;
  background:linear-gradient(to top, rgba(0, 0, 0, 0.88) 0%, rgba(0, 0, 0, 0.42) 52%, transparent 100%);
}
.tour360-card-name {
  margin:0;
  color:var(--container-text, var(--text-primary));
  font-size:clamp(0.68rem, 1.4vw, 0.82rem);
  font-weight:500;
  letter-spacing:0.08em;
  text-transform:uppercase;
  line-height:1.25;
}
.tour360-card-area {
  margin:0;
  color:var(--container-text, var(--text-primary));
  opacity:var(--text-muted-opacity, 0.72);
  font-size:clamp(0.62rem, 1.15vw, 0.74rem);
  font-weight:400;
  letter-spacing:0.04em;
  line-height:1.2;
}
.tour360-card-enter {
  margin-top:4px;
  width:100%;
  margin:0;
  padding:11px 8px;
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
  border-radius:0;
  background:var(--btn-glass-surface, var(--btn-surface));
  color:var(--text-primary);
  font-size:clamp(0.62rem, 1.2vw, 0.72rem);
  font-weight:600;
  letter-spacing:0.16em;
  text-transform:uppercase;
  cursor:pointer;
  backdrop-filter:blur(var(--btn-glass-blur, 8px));
  -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px));
  box-shadow:var(--btn-shadow, 0 6px 20px rgba(0, 0, 0, 0.28)),
    var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 8%, transparent));
  transition:background 0.22s ease, border-color 0.22s ease, color 0.22s ease;
}
.tour360-card-enter:hover,
.tour360-card:hover .tour360-card-enter {
  background:var(--btn-glass-hover, var(--hover));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  color:var(--btn-text-hover, var(--text-primary));
}
.tour360-card-media img + .tour360-card-footer {
  background:linear-gradient(to top, rgba(0, 0, 0, 0.9) 0%, rgba(0, 0, 0, 0.35) 45%, transparent 100%);
}

@media (max-width: 720px) {
  .units-popup.tour360-popup {
    --tour360-inset:12px;
  }
  .tour360-card-footer {
    padding:22px 10px 12px;
    gap:8px;
  }
}

/* Galería / 360 — una columna en móvil (imágenes a ancho completo) */
@media (max-width: 600px) {
  .tour360-grid {
    grid-template-columns:1fr;
    max-width:100%;
  }
  .tour360-card {
    max-height:none;
    aspect-ratio:4 / 5;
  }
}

/* ================= POPUP VIVIENDAS — grid premium ================= */
.units-popup.units-viviendas-popup {
  --units-inset:clamp(14px, 2.2vmin, 18px);
  --unit-card-text: var(--container-text, var(--text-primary));
  --unit-card-text-soft: color-mix(in srgb, var(--unit-card-text) 78%, transparent);
  --unit-card-text-muted: color-mix(in srgb, var(--unit-card-text) 58%, transparent);
  --unit-card-border: color-mix(in srgb, var(--unit-card-text) 8%, transparent);
  --unit-card-border-hover: color-mix(in srgb, var(--unit-card-text) 18%, transparent);
  /* Misma superficie glass que tour360 / comparar (obedece data-bg-glass) */
  --unit-card-surface: var(--panel-glass-surface, var(--bg-glass-surface, var(--bg-card)));
  --unit-card-radius: 16px;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:stretch;
  box-sizing:border-box;
  padding:var(--units-inset);
  color:var(--container-text, var(--text-primary));
}
.units-viviendas-stage {
  flex:1 1 auto;
  min-height:0;
  width:100%;
  order:1;
  overflow-y:auto;
  overflow-x:hidden;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  scrollbar-gutter:stable both-edges;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb, var(--scrollbar-thumb) 70%, transparent) transparent;
}
.units-viviendas-stage.is-stage-empty {
  display:flex;
  flex-direction:column;
  justify-content:center;
  align-items:center;
}
.units-viviendas-popup .units-viviendas-stage.is-stage-empty .favorites-empty,
.units-viviendas-popup .units-viviendas-stage.is-stage-empty .compare-empty {
  max-width:min(420px, 100%);
  width:100%;
  margin:0;
  padding:30px 10px 10px;
  flex:0 0 auto;
}
.units-viviendas-stage::-webkit-scrollbar {
  width:6px;
}
.units-viviendas-stage::-webkit-scrollbar-track {
  background:transparent;
}
.units-viviendas-stage::-webkit-scrollbar-thumb {
  background:color-mix(in srgb, var(--scrollbar-thumb) 70%, transparent);
  border-radius:999px;
}
.units-viviendas-foot {
  flex:0 0 auto;
  order:2;
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:12px;
  min-height:34px;
  margin-top:var(--units-inset);
  padding-top:8px;
  border-top:1px solid var(--border);
}
.units-viviendas-foot-copy {
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:flex-end;
  gap:3px;
  min-width:0;
  flex:1 1 auto;
  overflow:hidden;
  text-align:left;
}
.units-viviendas-title {
  margin:0;
  color:var(--container-text, var(--text-primary));
  font-size:clamp(0.82rem, 1.45vw, 0.98rem);
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  opacity:1;
  white-space:nowrap;
  flex:0 0 auto;
}
.units-viviendas-subtitle {
  margin:0;
  color:var(--container-text, var(--text-primary));
  font-size:0.68rem;
  font-weight:300;
  letter-spacing:0.02em;
  text-transform:none;
  opacity:var(--text-muted-opacity, 0.58);
  line-height:1.25;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  max-width:100%;
}
.units-viviendas-subtitle::before {
  content:none;
}
.units-viviendas-popup .units-tabs {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  flex:0 0 auto;
  margin:0;
  max-width:none;
  gap:6px;
}
.units-viviendas-foot-actions {
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:8px;
  flex:0 0 auto;
}
.units-viviendas-close {
  display:none;
}
.units-viviendas-popup .units-tab,
.units-viviendas-popup .units-compare-btn {
  padding:6px 12px;
  font-size:0.62rem;
  letter-spacing:0.07em;
  border-radius:999px;
  background:var(--btn-glass-surface, var(--btn-surface));
  border:1px solid var(--btn-border, var(--border));
  color:var(--container-text, var(--text-primary));
  opacity:0.72;
  text-transform:uppercase;
  cursor:pointer;
  transition:background 0.2s ease, opacity 0.2s ease, border-color 0.2s ease;
}
.units-viviendas-popup .units-compare-btn {
  font-weight:600;
  white-space:nowrap;
}
.units-viviendas-popup .units-tab:hover,
.units-viviendas-popup .units-compare-btn:hover {
  opacity:0.9;
  background:var(--btn-glass-hover, var(--hover));
}
.units-viviendas-popup .units-tab.active {
  opacity:1;
  border-color:var(--accent);
  background:color-mix(in srgb, var(--accent) 16%, var(--btn-glass-surface, var(--btn-surface)));
  color:var(--container-text, var(--text-primary));
}
.units-viviendas-popup .units-compare-btn.active {
  opacity:1;
  border-color:var(--accent);
  background:color-mix(in srgb, var(--accent) 20%, var(--btn-glass-surface, var(--btn-surface)));
  color:var(--container-text, var(--text-primary));
}
.units-compare-panel {
  display:block;
  width:100%;
  color:var(--container-text, var(--text-primary));
  --uc-text: var(--container-text, var(--text-primary));
  --uc-text-soft: color-mix(in srgb, var(--container-text, var(--text-primary)) 78%, transparent);
  --uc-text-muted: color-mix(in srgb, var(--container-text, var(--text-primary)) 58%, transparent);
  --uc-depth-bg: color-mix(in srgb, var(--bg-main) 88%, #000 12%);
  /* Misma superficie que viviendas / 360 — obedece Superficies (bgGlass) */
  --uc-depth-panel: var(--panel-glass-surface, var(--bg-glass-surface, var(--bg-card, var(--surface))));
  --uc-depth-row: color-mix(in srgb, var(--text-primary) 7%, var(--uc-depth-panel) 93%);
  --uc-depth-row-hover: color-mix(in srgb, var(--text-primary) 10%, var(--uc-depth-panel) 90%);
}
.units-compare-panel .uc-shell,
.units-compare-panel .uc-insights,
.units-compare-panel .uc-specs,
.units-compare-panel .uc-hero-card {
  color:var(--uc-text);
}
.units-compare-panel[hidden] {
  display:none !important;
}

/* ================= COMPARADOR PREMIUM — Apple-style matrix ================= */
@keyframes ucFadeUp {
  from { opacity:0; transform:translateY(12px); }
  to { opacity:1; transform:translateY(0); }
}

.uc-shell {
  display:flex;
  flex-direction:column;
  gap:clamp(14px, 2.2vmin, 22px);
  width:100%;
  max-width:1100px;
  margin:0 auto;
  padding:2px 2px clamp(20px, 3vmin, 32px);
}

.uc-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  flex-wrap:wrap;
  animation:ucFadeUp 0.25s ease backwards;
}
.uc-header-start {
  display:flex;
  align-items:center;
  gap:12px;
  min-width:0;
}
.uc-header-title {
  margin:0;
  font-size:0.78rem;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--uc-text);
}
.uc-header-actions {
  display:flex;
  align-items:center;
  gap:8px;
  flex-wrap:wrap;
}
.uc-header-back {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  margin:0;
  padding:0;
  border:1px solid color-mix(in srgb, var(--uc-text) 12%, transparent);
  border-radius:50%;
  background:transparent;
  color:var(--uc-text);
  cursor:pointer;
  opacity:0.88;
  transition:opacity 0.25s ease, background 0.25s ease;
}
.uc-header-back:hover { opacity:1; background:color-mix(in srgb, var(--uc-text) 6%, transparent); }
.uc-header-back-icon { font-size:1rem; line-height:1; }
.uc-header-add,
.uc-header-pdf {
  display:inline-flex;
  align-items:center;
  margin:0;
  padding:8px 14px;
  border:1px solid color-mix(in srgb, var(--uc-text) 14%, transparent);
  border-radius:999px;
  background:color-mix(in srgb, var(--uc-text) 5%, transparent);
  color:var(--uc-text);
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background 0.25s ease, border-color 0.25s ease, opacity 0.25s ease;
}
.uc-header-pdf {
  border-color:color-mix(in srgb, var(--hero-surface, var(--accent)) 40%, transparent);
  background:color-mix(in srgb, var(--hero-surface, var(--accent)) 12%, transparent);
}
.uc-header-add:hover,
.uc-header-pdf:hover {
  border-color:color-mix(in srgb, var(--uc-text) 28%, transparent);
  background:color-mix(in srgb, var(--uc-text) 9%, transparent);
}
.uc-header-pdf:hover {
  border-color:color-mix(in srgb, var(--hero-surface, var(--accent)) 55%, transparent);
}

/* —— Tarjetas resumen —— */
.uc-heroes {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:clamp(12px, 2vmin, 18px);
}

.uc-hero-card {
  display:flex;
  flex-direction:column;
  border-radius:16px;
  overflow:hidden;
  border:1px solid color-mix(in srgb, var(--uc-text) 8%, transparent);
  background:var(--uc-depth-panel);
  backdrop-filter:blur(calc(var(--bg-glass-blur, var(--glass-blur, 22px)) * 0.45)) saturate(125%);
  -webkit-backdrop-filter:blur(calc(var(--bg-glass-blur, var(--glass-blur, 22px)) * 0.45)) saturate(125%);
  box-shadow:var(--glass-shadow, 0 10px 36px rgba(0, 0, 0, 0.34));
  animation:ucFadeUp 0.25s ease backwards;
  animation-delay:calc(var(--uc-stagger, 0) * 0.05s);
  transition:border-color 0.25s ease, background 0.25s ease, box-shadow 0.25s ease;
}
.uc-hero-card:hover {
  border-color:color-mix(in srgb, var(--uc-text) 16%, transparent);
}
.uc-hero-media {
  position:relative;
  width:100%;
  aspect-ratio:4 / 3;
  background:var(--uc-depth-bg);
  background-size:cover;
  background-position:center;
}
.uc-hero-media-actions {
  position:absolute;
  top:8px;
  right:8px;
  display:flex;
  gap:6px;
  z-index:1;
}
.uc-hero-media-fallback {
  position:absolute;
  inset:0;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:8px;
  text-align:center;
  color:var(--text-muted);
  font-size:0.58rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  opacity:0.5;
}
.uc-hero-body {
  flex:1;
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
  padding:14px 14px 16px;
}
.uc-hero-icon-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:26px;
  height:26px;
  margin:0;
  padding:0;
  border:1px solid color-mix(in srgb, var(--text-primary) 8%, transparent);
  border-radius:50%;
  background:color-mix(in srgb, var(--uc-depth-bg) 70%, transparent);
  color:var(--container-text, var(--text-primary));
  font-size:0.72rem;
  line-height:1;
  cursor:pointer;
  transition:transform 0.2s ease, color 0.2s ease;
}
.uc-hero-icon-btn svg { width:12px; height:12px; stroke:currentColor; fill:none; stroke-width:1.6; }
.uc-hero-icon-btn:hover { transform:scale(1.06); }
.uc-hero-icon-btn.is-active,
.uc-hero-icon-btn.fav-btn.active {
  color:#fff;
  border-color:rgba(255, 255, 255, 0.35);
  background:rgba(255, 255, 255, 0.08);
  box-shadow:0 0 12px rgba(255, 255, 255, 0.16);
}
.uc-hero-icon-btn.fav-btn.active svg,
.uc-hero-icon-btn.is-active svg {
  fill:rgba(255, 255, 255, 0.92);
  stroke:rgba(255, 255, 255, 0.92);
}

.uc-hero-tag {
  color:var(--uc-text-soft);
  font-size:0.56rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
}
.uc-hero-name {
  margin:0;
  color:var(--uc-text);
  font-size:0.76rem;
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  line-height:1.35;
}
.uc-hero-price {
  margin:0;
  color:var(--uc-text);
  font-size:1.05rem;
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.15;
}
.uc-hero-quick {
  display:flex;
  flex-wrap:wrap;
  gap:6px 10px;
}
.uc-hero-quick-item {
  display:inline-flex;
  align-items:center;
  gap:4px;
  color:var(--uc-text-soft);
  font-size:0.58rem;
  font-weight:500;
}
.uc-hero-quick-item svg {
  width:11px;
  height:11px;
  stroke:currentColor;
  opacity:0.6;
  flex-shrink:0;
}
.uc-hero-actions {
  display:flex;
  gap:6px;
  margin-top:auto;
  padding-top:4px;
}
.uc-hero-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:5px;
  flex:1;
  margin:0;
  padding:9px 10px;
  border:1px solid color-mix(in srgb, var(--uc-text) 12%, transparent);
  border-radius:10px;
  background:color-mix(in srgb, var(--uc-text) 5%, transparent);
  color:var(--uc-text);
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:0.08em;
  text-transform:uppercase;
  cursor:pointer;
  transition:background 0.25s ease, border-color 0.25s ease;
}
.uc-hero-btn svg { width:11px; height:11px; stroke:currentColor; }
.uc-hero-btn--cta {
  background:var(--btn-glass-surface, var(--btn-surface));
  border-color:var(--btn-border, var(--glass-border));
  border-width:var(--btn-border-width, 2px);
  color:var(--text-primary);
}
.uc-hero-btn--cta:hover {
  background:var(--btn-glass-hover, var(--hover));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  color:var(--btn-text-hover, var(--text-primary));
}

/* —— Resumen narrativo (al final) —— */
.uc-insights {
  padding:18px 20px;
  border-radius:16px;
  border:1px solid color-mix(in srgb, var(--uc-text) 10%, transparent);
  background:color-mix(in srgb, var(--uc-text) 3%, var(--uc-depth-panel));
  animation:ucFadeUp 0.25s ease 0.12s backwards;
}
.uc-insights--narrative .uc-insights-title {
  margin:0 0 12px;
}
.uc-insights-narrative {
  margin:0;
  font-size:0.88rem;
  line-height:1.65;
  color:var(--uc-text-soft);
  font-weight:450;
  letter-spacing:0.01em;
}

.uc-insights-title {
  margin:0 0 10px;
  font-size:0.64rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--uc-text);
  opacity:0.92;
}

/* —— Matriz de comparación —— */
.uc-specs {
  padding:clamp(16px, 2.2vmin, 24px);
  border-radius:18px;
  border:1px solid color-mix(in srgb, var(--uc-text) 7%, transparent);
  background:color-mix(in srgb, var(--uc-text) 2%, var(--uc-depth-panel));
  animation:ucFadeUp 0.25s ease 0.06s backwards;
}
.uc-matrix {
  display:flex;
  flex-direction:column;
  gap:clamp(18px, 2.5vmin, 28px);
}

.uc-matrix-head {
  display:grid;
  grid-template-columns:minmax(140px, 32%) repeat(var(--uc-cols, 2), minmax(0, 1fr));
  gap:10px 16px;
  align-items:end;
  padding:0 4px 10px;
  border-bottom:1px solid color-mix(in srgb, var(--text-primary) 8%, transparent);
}
.uc-matrix-head--dual {
  grid-template-columns:minmax(130px, 26%) 1fr minmax(120px, 24%) 1fr;
}
.uc-matrix-head-label {
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--uc-text-muted);
}
.uc-matrix-head-unit {
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.06em;
  text-transform:uppercase;
  color:var(--uc-text);
  text-align:center;
}
.uc-matrix-head-diff {
  font-size:0.58rem;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--uc-text-muted);
  text-align:center;
}

.uc-category {
  animation:ucFadeUp 0.25s ease backwards;
  animation-delay:calc(0.08s + var(--uc-cat-stagger, 0) * 0.04s);
  border-top:1px solid color-mix(in srgb, var(--uc-text) 7%, transparent);
  padding-top:12px;
}
.uc-category:first-of-type { border-top:0; padding-top:0; }
.uc-category-toggle {
  display:flex;
  align-items:center;
  gap:10px;
  width:100%;
  margin:0 0 10px;
  padding:8px 4px;
  border:0;
  background:transparent;
  color:var(--uc-text);
  cursor:pointer;
  text-align:left;
  transition:opacity 0.25s ease;
}
.uc-category-toggle:hover { opacity:0.88; }
.uc-category-chevron {
  margin-left:auto;
  width:8px;
  height:8px;
  border-right:1.5px solid currentColor;
  border-bottom:1.5px solid currentColor;
  transform:rotate(45deg);
  transition:transform 0.25s ease;
  opacity:0.6;
}
.uc-category.is-open .uc-category-chevron {
  transform:rotate(-135deg) translateY(2px);
}
.uc-category-body {
  display:grid;
  grid-template-rows:0fr;
  transition:grid-template-rows 0.25s ease;
}
.uc-category.is-open .uc-category-body {
  grid-template-rows:1fr;
}
.uc-category-body > .uc-category-inner {
  overflow:hidden;
  min-height:0;
}
.uc-category-head {
  display:none;
}
.uc-category-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  border-radius:8px;
  background:color-mix(in srgb, var(--uc-text) 8%, var(--uc-depth-row));
  color:var(--uc-text);
  flex-shrink:0;
  opacity:0.9;
}
.uc-category-icon svg {
  width:14px;
  height:14px;
  stroke:currentColor;
}
.uc-category-label {
  margin:0;
  font-size:0.66rem;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  color:var(--uc-text);
  white-space:nowrap;
}

.uc-matrix-rows {
  display:flex;
  flex-direction:column;
  gap:6px;
  padding-bottom:4px;
}
.uc-matrix-rows--desktop { display:flex; }
.uc-mobile-stack { display:none; }

.uc-matrix-row {
  display:grid;
  grid-template-columns:minmax(140px, 32%) 1fr;
  gap:10px 16px;
  align-items:center;
  min-height:64px;
  padding:10px 12px;
  border-radius:12px;
  background:color-mix(in srgb, var(--uc-text) 4%, transparent);
  transition:background 0.25s ease;
}
.uc-matrix-row--dual {
  grid-template-columns:minmax(130px, 26%) 1fr;
}
.uc-matrix-row:hover {
  background:color-mix(in srgb, var(--uc-text) 7%, transparent);
}

/* —— Móvil: tarjetas VS —— */
.uc-mobile-row {
  padding:14px;
  border-radius:14px;
  border:1px solid color-mix(in srgb, var(--uc-text) 8%, transparent);
  background:color-mix(in srgb, var(--uc-text) 3%, transparent);
  margin-bottom:8px;
}
.uc-mobile-row-label {
  margin:0 0 10px;
  font-size:0.64rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--uc-text);
}
.uc-mobile-row-compare {
  display:grid;
  grid-template-columns:1fr auto 1fr;
  gap:10px;
  align-items:center;
}
.uc-mobile-side {
  display:flex;
  flex-direction:column;
  gap:4px;
  text-align:center;
}
.uc-mobile-side-tag {
  font-size:0.56rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--uc-text-muted);
}
.uc-mobile-side-value {
  font-size:0.92rem;
  font-weight:600;
  color:var(--uc-text);
}
.uc-mobile-vs {
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--uc-text-muted);
  opacity:0.7;
}
.uc-mobile-row-diff {
  margin:10px 0 0;
  padding-top:10px;
  border-top:1px solid color-mix(in srgb, var(--uc-text) 8%, transparent);
  font-size:0.72rem;
  color:var(--uc-text-soft);
  text-align:center;
}
.uc-mobile-row--key .uc-mobile-side-value {
  font-size:1rem;
  font-weight:700;
}

/* —— Avisos UX —— */
.uc-limit-overlay {
  position:absolute;
  inset:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
  background:color-mix(in srgb, var(--bg-main) 55%, transparent);
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.units-compare-panel { position:relative; }
.uc-limit-card {
  max-width:380px;
  width:100%;
  padding:22px 20px;
  border-radius:16px;
  border:1px solid color-mix(in srgb, var(--uc-text) 12%, transparent);
  background:var(--uc-depth-panel);
  text-align:center;
}
.uc-limit-title {
  margin:0 0 10px;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--uc-text);
}
.uc-limit-text {
  margin:0 0 16px;
  font-size:0.82rem;
  line-height:1.55;
  color:var(--uc-text-soft);
}
.uc-limit-btn {
  margin:0;
  padding:9px 18px;
  border:1px solid color-mix(in srgb, var(--uc-text) 14%, transparent);
  border-radius:999px;
  background:color-mix(in srgb, var(--uc-text) 6%, transparent);
  color:var(--uc-text);
  font-size:0.62rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  cursor:pointer;
}
.uc-pick-banner {
  margin:0 0 12px;
  padding:10px 14px;
  border-radius:12px;
  border:1px solid color-mix(in srgb, var(--hero-surface, var(--accent)) 30%, transparent);
  background:color-mix(in srgb, var(--hero-surface, var(--accent)) 10%, transparent);
  color:var(--container-text, var(--text-primary));
  font-size:0.72rem;
  letter-spacing:0.02em;
  text-align:center;
}
.units-viviendas-popup.is-compare-pick-mode .unit-card {
  cursor:pointer;
  transition:border-color 0.25s ease, transform 0.25s ease;
}
.units-viviendas-popup.is-compare-pick-mode .unit-card:hover {
  border-color:color-mix(in srgb, var(--hero-surface, var(--accent)) 40%, var(--unit-card-border));
}
.uc-matrix-row--key .uc-matrix-value {
  font-size:0.96rem;
  font-weight:700;
}
.uc-matrix-row--key.uc-matrix-row .uc-matrix-metric-label {
  font-weight:700;
  color:var(--uc-text);
  opacity:0.92;
}

.uc-matrix-metric {
  display:flex;
  align-items:center;
  gap:10px;
  min-width:0;
}
.uc-matrix-metric-icon {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:22px;
  height:22px;
  flex-shrink:0;
  color:var(--uc-text);
  opacity:0.55;
}
.uc-matrix-metric-icon svg {
  width:14px;
  height:14px;
  stroke:currentColor;
}
.uc-matrix-metric-label {
  font-size:0.72rem;
  font-weight:500;
  letter-spacing:0.02em;
  color:var(--uc-text-soft);
  line-height:1.3;
}

.uc-matrix-cells {
  display:grid;
  grid-template-columns:repeat(var(--uc-cols, 2), minmax(0, 1fr));
  gap:10px;
}
.uc-matrix-cells--dual {
  grid-template-columns:1fr minmax(120px, 28%) 1fr;
}
.uc-matrix-cell {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:3px;
  min-height:48px;
  padding:6px 8px;
  border-radius:8px;
  text-align:center;
  transition:background 0.2s ease, opacity 0.2s ease;
}
.uc-matrix-value {
  font-size:0.84rem;
  font-weight:500;
  letter-spacing:0.01em;
  color:var(--uc-text);
  line-height:1.3;
}
.uc-matrix-diff-label {
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.01em;
  color:var(--uc-text-soft);
  line-height:1.35;
  text-align:center;
}
.uc-matrix-cell--diff {
  padding:6px 10px;
  border-left:1px solid color-mix(in srgb, var(--uc-text) 8%, transparent);
  border-right:1px solid color-mix(in srgb, var(--uc-text) 8%, transparent);
}
.uc-matrix-row--key .uc-matrix-diff-label {
  font-size:0.8rem;
  font-weight:700;
  color:var(--uc-text);
}

.units-viviendas-popup.is-compare-mode .units-tabs { opacity:1; }
.units-viviendas-popup.is-compare-mode .units-viviendas-foot-copy { opacity:0.85; }
.units-viviendas-popup.is-compare-mode .units-viviendas-stage {
  background:var(--uc-depth-bg, transparent);
}

@media (max-width: 900px) {
  .uc-heroes { grid-template-columns:repeat(2, minmax(0, 1fr)); gap:10px; }
  .uc-header-actions { width:100%; justify-content:flex-end; }
}

@media (max-width: 680px) {
  .uc-heroes { grid-template-columns:1fr; }
  .uc-header-title { font-size:0.68rem; }
  .uc-header-actions { gap:6px; }
  .uc-header-add,
  .uc-header-pdf { padding:7px 10px; font-size:0.54rem; }
  .uc-matrix-head,
  .uc-matrix-rows--desktop { display:none !important; }
  .uc-mobile-stack { display:block; }
}

@media (prefers-reduced-motion: reduce) {
  .uc-hero-card, .uc-category, .uc-header, .uc-specs, .uc-insights { animation:none; }
}
.units-viviendas-popup .units-grid {
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:var(--units-inset);
  max-width:none;
  width:100%;
  margin:0;
  padding-bottom:0;
}
@keyframes unitCardAppleEnter {
  0% {
    opacity:0;
    transform:translateX(-80px) scale(0.5);
  }
  58% {
    opacity:1;
    transform:translateX(0) scale(0.5);
  }
  100% {
    opacity:1;
    transform:translateX(0) scale(1);
  }
}

.units-viviendas-popup .unit-card {
  display:flex;
  flex-direction:column;
  border-radius:var(--unit-card-radius);
  overflow:hidden;
  border:1px solid var(--unit-card-border);
  background:var(--unit-card-surface);
  backdrop-filter:blur(calc(var(--bg-glass-blur, var(--glass-blur, 22px)) * 0.45)) saturate(125%);
  -webkit-backdrop-filter:blur(calc(var(--bg-glass-blur, var(--glass-blur, 22px)) * 0.45)) saturate(125%);
  cursor:pointer;
  transition:border-color 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
  box-shadow:var(--glass-shadow, 0 10px 36px rgba(0, 0, 0, 0.34));
  transform-origin:center center;
}
.units-viviendas-popup .unit-card.unit-card--enter {
  animation:unitCardAppleEnter 1.45s cubic-bezier(0.22, 1, 0.36, 1) var(--unit-enter-delay, 0ms) both;
  pointer-events:none;
  will-change:transform, opacity;
}
.units-viviendas-popup .unit-card:hover {
  transform:translateY(-3px);
  border-color:var(--unit-card-border-hover);
  box-shadow:var(--glass-shadow, 0 10px 36px rgba(0, 0, 0, 0.34)),
    0 14px 36px color-mix(in srgb, var(--bg-main, #000) 22%, transparent);
}
@media (prefers-reduced-motion: reduce) {
  .units-viviendas-popup .unit-card.unit-card--enter {
    animation:none;
    pointer-events:auto;
    will-change:auto;
  }
}
body[data-shadow-glass="glass"] .units-viviendas-popup .unit-card,
body[data-shadow-glass="glass"] .tour360-card,
body[data-shadow-glass="glass"] .uc-hero-card {
  box-shadow:var(--glass-shadow, 0 4px 16px rgba(0, 0, 0, 0.12));
}
body[data-shadow-glass="solid"] .units-viviendas-popup .unit-card,
body[data-shadow-glass="solid"] .tour360-card,
body[data-shadow-glass="solid"] .uc-hero-card {
  box-shadow:var(--glass-shadow, 0 16px 52px rgba(0, 0, 0, 0.52));
}
.units-viviendas-popup .unit-card-image {
  aspect-ratio:4 / 5;
  border:0;
  background:var(--placeholder-bg);
  padding:0;
  overflow:hidden;
  position:relative;
}
.units-viviendas-popup .unit-card-image-media {
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  transition:transform 0.22s ease;
}
.units-viviendas-popup .unit-card:hover .unit-card-image-media {
  transform:scale(1.02);
}
.units-viviendas-popup .unit-card-image-scrim {
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:linear-gradient(
    to top,
    color-mix(in srgb, var(--bg-main, #000) 52%, transparent) 0%,
    color-mix(in srgb, var(--bg-main, #000) 18%, transparent) 28%,
    transparent 58%
  );
}
.units-viviendas-popup .unit-card-icons {
  position:absolute;
  top:10px;
  left:10px;
  right:auto;
  z-index:3;
  display:flex;
  gap:6px;
}
.units-viviendas-popup .unit-card-icon-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:30px;
  height:30px;
  margin:0;
  padding:0;
  border:1px solid color-mix(in srgb, var(--unit-card-text) 12%, transparent);
  border-radius:50%;
  background:color-mix(in srgb, var(--bg-main, #000) 42%, transparent);
  backdrop-filter:blur(8px) saturate(120%);
  -webkit-backdrop-filter:blur(8px) saturate(120%);
  color:var(--unit-card-text);
  font-size:0.74rem;
  line-height:1;
  cursor:pointer;
  transition:transform 0.22s ease, border-color 0.22s ease, background 0.22s ease;
}
.units-viviendas-popup .unit-card-icon-btn svg {
  width:13px;
  height:13px;
  stroke:currentColor;
}
.units-viviendas-popup .unit-card-icon-btn:hover {
  transform:scale(1.06);
  border-color:color-mix(in srgb, var(--unit-card-text) 24%, transparent);
  background:color-mix(in srgb, var(--bg-main, #000) 55%, transparent);
}
.units-viviendas-popup .unit-card-icon-btn.fav-btn {
  color:#fff;
}
.units-viviendas-popup .unit-card-icon-btn.fav-btn svg {
  width:15px;
  height:15px;
  stroke:currentColor;
  stroke-width:1.6;
  fill:none;
}
.units-viviendas-popup .unit-card-icon-btn.fav-btn.active {
  color:#fff;
  font-weight:400;
  border-color:rgba(255, 255, 255, 0.35);
  background:rgba(255, 255, 255, 0.08);
  box-shadow:0 0 14px rgba(255, 255, 255, 0.18);
}
.units-viviendas-popup .unit-card-icon-btn.fav-btn.active svg {
  fill:rgba(255, 255, 255, 0.92);
  stroke:rgba(255, 255, 255, 0.92);
}
.units-viviendas-popup .unit-card-icon-btn.fav-btn.pulse {
  animation:favHeartPulse 0.28s ease;
}
@keyframes favHeartPulse {
  0% { transform:scale(1); }
  45% { transform:scale(1.18); }
  100% { transform:scale(1); }
}
.units-viviendas-popup .availability-badge {
  position:absolute;
  bottom:10px;
  left:10px;
  right:auto;
  top:auto;
  z-index:2;
  margin:0;
  padding:5px 9px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--unit-card-text) 14%, transparent);
  background:color-mix(in srgb, var(--bg-main, #000) 48%, transparent);
  backdrop-filter:blur(8px) saturate(120%);
  -webkit-backdrop-filter:blur(8px) saturate(120%);
  color:var(--unit-card-text);
  font-size:0.56rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  box-shadow:none;
}
.units-viviendas-popup .unit-card-image-fallback,
.units-viviendas-popup .unit-card-image span {
  position:relative;
  z-index:0;
  font-size:0.62rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--unit-card-text-muted);
  padding:8%;
}
.units-viviendas-popup .unit-typo-info {
  display:flex;
  flex-direction:column;
  gap:0;
  padding:16px 16px 18px;
  border-top:1px solid color-mix(in srgb, var(--unit-card-text) 7%, transparent);
  text-align:left;
}
.units-viviendas-popup .unit-typo-tag {
  font-size:0.68rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:6px;
  color:var(--unit-card-text-soft);
}
.units-viviendas-popup .unit-typo-title {
  font-size:clamp(0.88rem, 1.5vw, 1.02rem);
  font-weight:600;
  letter-spacing:0.05em;
  text-transform:uppercase;
  line-height:1.35;
  margin-bottom:12px;
  color:var(--unit-card-text);
}
.units-viviendas-popup .unit-typo-price-block {
  margin-bottom:14px;
}
.units-viviendas-popup .unit-typo-price-label {
  margin-bottom:4px;
  font-size:0.66rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--unit-card-text-muted);
  opacity:1;
}
.units-viviendas-popup .unit-typo-price-value {
  font-size:clamp(1.16rem, 2.05vw, 1.42rem);
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.15;
  margin-bottom:0;
  color:var(--unit-card-text);
}
.units-viviendas-popup .unit-card-specs {
  display:flex;
  flex-wrap:wrap;
  gap:8px 14px;
  justify-content:flex-start;
  margin-bottom:16px;
}
.units-viviendas-popup .unit-card-spec-item {
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--unit-card-text-soft);
  font-size:0.72rem;
  font-weight:500;
  letter-spacing:0.02em;
}
.units-viviendas-popup .unit-card-spec-item svg {
  width:13px;
  height:13px;
  stroke:currentColor;
  opacity:0.7;
  flex-shrink:0;
}
.units-viviendas-popup .unit-typo-btn-stack {
  gap:8px;
  margin-top:auto;
}
.units-viviendas-popup .unit-typo-btn-row {
  gap:8px;
}
.units-viviendas-popup .unit-typo-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:6px;
  padding:11px 10px;
  min-height:42px;
  border-radius:10px;
  font-size:0.68rem;
  font-weight:600;
  letter-spacing:0.07em;
  text-transform:uppercase;
  border:1px solid color-mix(in srgb, var(--unit-card-text) 12%, transparent);
  background:color-mix(in srgb, var(--unit-card-text) 5%, transparent);
  color:var(--unit-card-text);
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  box-shadow:none;
  transition:background 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}
.units-viviendas-popup .unit-typo-btn svg {
  width:13px;
  height:13px;
  stroke:currentColor;
  flex-shrink:0;
}
.units-viviendas-popup .unit-typo-btn:hover {
  background:color-mix(in srgb, var(--unit-card-text) 9%, transparent);
  border-color:color-mix(in srgb, var(--unit-card-text) 20%, transparent);
  color:var(--unit-card-text);
  transform:translateY(-1px);
}
.units-viviendas-popup .unit-typo-btn-row:first-child .unit-typo-btn,
.units-viviendas-popup .unit-typo-btn--calc {
  font-weight:600;
  letter-spacing:0.07em;
}
.units-viviendas-popup .unit-typo-btn--cta,
.units-viviendas-popup .unit-typo-btn[data-action="tour360"] {
  background:var(--btn-glass-surface, var(--btn-surface));
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
  color:var(--text-primary);
  font-weight:600;
}
.units-viviendas-popup .unit-typo-btn--cta:hover,
.units-viviendas-popup .unit-typo-btn[data-action="tour360"]:hover {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
}
.units-viviendas-popup .icon-btn {
  width:30px;
  height:30px;
}
.units-viviendas-popup .favorites-empty {
  max-width:min(420px, 100%);
  margin:0 auto;
  padding:24px 10px var(--units-inset);
  color:var(--container-text, var(--text-primary));
}
.compare-empty-icon svg {
  width:2.1rem;
  height:2.1rem;
  display:block;
  margin:0 auto;
}

@media (max-width: 720px) {
  .units-popup.units-viviendas-popup {
    --units-inset:12px;
  }
  .units-viviendas-foot {
    flex-wrap:wrap;
    align-items:flex-start;
    gap:8px;
  }
  .units-viviendas-foot-copy {
    flex:1 1 100%;
  }
  .units-viviendas-popup .units-tabs {
    width:auto;
    justify-content:flex-start;
  }
  .units-viviendas-foot-actions {
    width:100%;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:8px;
  }
  .units-viviendas-popup .units-grid {
    grid-template-columns:1fr;
    max-width:min(400px, 100%);
    margin:0 auto;
  }
}

/* Viviendas — barra inferior nativa (tabs + X) + comparar sticky */
@media (max-width: 600px) {
  .units-popup.units-viviendas-popup {
    --units-inset:max(12px, env(safe-area-inset-left));
    --viviendas-foot-h:var(--mobile-shell-foot-h, 62px);
    padding:
      max(10px, env(safe-area-inset-top))
      max(12px, env(safe-area-inset-right))
      calc(var(--viviendas-foot-h) + env(safe-area-inset-bottom) + 8px)
      max(12px, env(safe-area-inset-left));
  }

  /* Espacio extra de scroll: la última tarjeta debe quedar por encima del footer */
  .units-viviendas-stage {
    padding-bottom:calc(var(--viviendas-foot-h) + env(safe-area-inset-bottom) + 48px);
  }
  .units-viviendas-popup .units-grid,
  .units-viviendas-popup .units-compare-panel {
    padding-bottom:32px;
  }

  .units-viviendas-foot {
    order:2;
    position:fixed;
    left:0;
    right:0;
    bottom:0;
    z-index:1205;
    display:flex;
    flex-direction:column;
    flex-wrap:nowrap;
    align-items:stretch;
    justify-content:flex-start;
    gap:0;
    box-sizing:border-box;
    min-height:calc(var(--viviendas-foot-h) + env(safe-area-inset-bottom));
    height:calc(var(--viviendas-foot-h) + env(safe-area-inset-bottom));
    margin:0;
    /* Misma banda que el Shell close slot */
    padding:
      0
      calc(var(--mobile-close-size, 44px) + var(--mobile-close-gap, 28px) + max(12px, env(safe-area-inset-right)))
      env(safe-area-inset-bottom)
      max(10px, env(safe-area-inset-left));
    border:none;
    border-top:1px solid var(--mobile-nav-soft-border);
    border-radius:0;
    background:var(--mobile-nav-soft-bg);
    backdrop-filter:blur(var(--mobile-nav-soft-blur)) saturate(125%);
    -webkit-backdrop-filter:blur(var(--mobile-nav-soft-blur)) saturate(125%);
    box-shadow:var(--mobile-nav-soft-inset);
  }

  .units-viviendas-foot-copy {
    display:none;
  }

  .units-viviendas-foot-actions {
    width:100%;
    flex:0 0 auto;
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:4px;
    height:var(--viviendas-foot-h);
    min-height:var(--viviendas-foot-h);
    box-sizing:border-box;
  }
  .units-viviendas-popup .units-tabs {
    flex:1 1 auto;
    display:flex;
    justify-content:space-between;
    gap:2px;
    width:auto;
    max-width:none;
    margin:0;
  }
  .units-viviendas-popup .units-tab,
  .units-viviendas-popup .units-compare-btn {
    flex:1 1 0;
    min-width:0;
    padding:12px 6px;
    font-size:0.62rem;
    letter-spacing:0.06em;
    text-align:center;
    justify-content:center;
    pointer-events:auto;
    opacity:1;
  }
  .units-viviendas-popup .units-compare-btn {
    margin:0;
    flex:1 1 0;
  }
  /* Tabs activos del footer: Suave (nunca bloque sólido) */
  .units-viviendas-popup .units-tab.active,
  .units-viviendas-popup .units-compare-btn.active {
    background:color-mix(in srgb, var(--accent, #fff) 18%, transparent);
    border-color:color-mix(in srgb, var(--accent, #fff) 45%, transparent);
    backdrop-filter:blur(12px) saturate(125%);
    -webkit-backdrop-filter:blur(12px) saturate(125%);
  }
  /* X del footer viviendas: oculta — la X universal vive siempre abajo derecha */
  .units-viviendas-close,
  .units-viviendas-close[hidden] {
    display:none !important;
  }

  .units-viviendas-stage {
    order:1;
    flex:1 1 auto;
    min-height:0;
  }

  .units-viviendas-popup .units-grid {
    max-width:100%;
  }

  /* Comparar móvil: nombres sticky + tabla vertical */
  .units-viviendas-popup.is-compare-mode .uc-header,
  .units-viviendas-popup.is-compare-mode .uc-heroes,
  .units-viviendas-popup.is-compare-mode .uc-insights,
  .units-viviendas-popup.is-compare-mode .uc-matrix-head,
  .units-viviendas-popup.is-compare-mode .uc-matrix-rows--desktop {
    display:none !important;
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-names {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
    position:sticky;
    top:0;
    z-index:6;
    margin:0 0 10px;
    padding:8px 0 10px;
    background:var(--mobile-nav-soft-bg);
    backdrop-filter:blur(var(--mobile-nav-soft-blur)) saturate(125%);
    -webkit-backdrop-filter:blur(var(--mobile-nav-soft-blur)) saturate(125%);
    border-bottom:1px solid var(--mobile-nav-soft-border);
    box-shadow:var(--mobile-nav-soft-inset);
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-name {
    margin:0;
    padding:12px 10px;
    border:1px solid rgba(255, 255, 255, 0.1);
    border-radius:12px;
    background:rgba(255, 255, 255, 0.03);
    font-size:0.72rem;
    font-weight:600;
    letter-spacing:0.04em;
    text-transform:uppercase;
    text-align:center;
    color:rgba(255, 255, 255, 0.88);
    line-height:1.35;
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-stack {
    display:block !important;
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-row {
    display:flex;
    flex-direction:column;
    gap:8px;
    padding:12px 4px;
    margin:0;
    border:none;
    border-radius:0;
    border-bottom:1px solid rgba(255, 255, 255, 0.08);
    background:transparent;
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-row-label {
    margin:0;
    font-size:0.62rem;
    letter-spacing:0.12em;
    opacity:0.55;
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-row-compare {
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:8px;
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-vs,
  .units-viviendas-popup.is-compare-mode .uc-mobile-side-tag,
  .units-viviendas-popup.is-compare-mode .uc-mobile-row-diff {
    display:none !important;
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-side {
    text-align:center;
  }
  .units-viviendas-popup.is-compare-mode .uc-mobile-side-value {
    font-size:0.92rem;
    font-weight:500;
    color:rgba(255, 255, 255, 0.88);
  }
  .units-viviendas-popup.is-compare-mode .uc-category-toggle {
    padding:10px 0;
  }
  .units-viviendas-popup.is-compare-mode .uc-shell {
    padding:0;
  }
}

.uc-mobile-names {
  display:none;
}

/* ================= UNIDADES — MODALES PREMIUM (calc, planos, 360°) ================= */
.units-premium-modal,
.units-sphere-overlay .sphere-loader {
  --uum-text: var(--container-text, var(--text-primary));
  --uum-text-soft: color-mix(in srgb, var(--uum-text) 78%, transparent);
  --uum-text-muted: color-mix(in srgb, var(--uum-text) 58%, transparent);
  --uum-border: color-mix(in srgb, var(--uum-text) 8%, transparent);
  --uum-border-hover: color-mix(in srgb, var(--uum-text) 18%, transparent);
  --uum-surface: color-mix(in srgb, var(--uum-text) 3%, var(--panel-glass-surface, var(--bg-glass-surface, var(--bg-card))));
  --uum-radius: 16px;
}

/* —— Calculadora —— */
#calculatorModal.units-unit-overlay {
  padding:clamp(16px, 3vmin, 28px);
}
#calculatorModal .units-premium-modal {
  width:100%;
  max-width:min(520px, 100%);
  max-height:min(90svh, 880px);
  border-radius:var(--uum-radius);
  border:1px solid var(--uum-border);
  background:var(--uum-surface);
  box-shadow:0 18px 48px color-mix(in srgb, var(--bg-main, #000) 28%, transparent);
}
#calculatorModal .units-premium-modal .popup-box-scroll {
  padding:clamp(28px, 4vmin, 40px) clamp(22px, 3.5vmin, 34px) clamp(24px, 3.5vmin, 32px);
}
#calculatorModal .content-modal-title {
  margin-bottom:18px;
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:0.12em;
  opacity:1;
  color:var(--uum-text-soft);
  text-align:left;
}
#calculatorModal .calc-row {
  text-align:left;
  margin-bottom:22px;
}
#calculatorModal .calc-label {
  margin-bottom:6px;
  font-size:0.56rem;
  font-weight:600;
  letter-spacing:0.12em;
  opacity:1;
  color:var(--uum-text-muted);
}
#calculatorModal .calc-value {
  font-size:clamp(1.2rem, 2.4vw, 1.48rem);
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.15;
  color:var(--uum-text);
}
#calculatorModal .calc-selects {
  gap:10px;
  margin-bottom:22px;
}
#calculatorModal .select-wrap label {
  text-align:left;
  margin-bottom:7px;
  font-size:0.56rem;
  font-weight:600;
  letter-spacing:0.1em;
  opacity:1;
  color:var(--uum-text-muted);
}
#calculatorModal .select-wrap select {
  background:color-mix(in srgb, var(--uum-text) 4%, transparent);
  border:1px solid color-mix(in srgb, var(--uum-text) 12%, transparent);
  border-radius:10px;
  color:var(--uum-text);
  font-size:0.78rem;
  font-weight:500;
  text-align:left;
  padding:12px 30px 12px 12px;
  transition:border-color 0.22s ease, background 0.22s ease;
}
#calculatorModal .select-wrap select:focus {
  border-color:color-mix(in srgb, var(--uum-text) 28%, transparent);
  outline:none;
}
#calculatorModal .select-wrap::after {
  right:12px;
  bottom:14px;
  opacity:0.45;
  color:var(--uum-text);
}
#calculatorModal .select-note {
  text-align:left;
  margin-top:6px;
  font-size:0.54rem;
  letter-spacing:0.1em;
  color:var(--uum-text-muted);
  opacity:1;
}
#calculatorModal .calc-divider {
  height:1px;
  margin-bottom:18px;
  background:color-mix(in srgb, var(--uum-text) 8%, transparent);
}
#calculatorModal .calc-results {
  gap:12px;
  margin-bottom:16px;
}
#calculatorModal .calc-result-row span {
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:0.08em;
  opacity:1;
  color:var(--uum-text-muted);
}
#calculatorModal .calc-result-row strong {
  font-size:0.92rem;
  font-weight:600;
  letter-spacing:-0.01em;
  color:var(--uum-text);
}
#calculatorModal .calc-result-row.highlight {
  border-top:1px solid color-mix(in srgb, var(--uum-text) 10%, transparent);
  padding-top:14px;
  margin-top:4px;
}
#calculatorModal .calc-result-row.highlight strong {
  font-size:clamp(1.02rem, 2vw, 1.22rem);
  font-weight:700;
  color:var(--uum-text);
}
#calculatorModal .calc-result-row.income {
  border-top:1px solid color-mix(in srgb, var(--uum-text) 7%, transparent);
  padding-top:12px;
}
#calculatorModal .calc-result-row.income span {
  font-size:0.54rem;
  color:var(--uum-text-muted);
}
#calculatorModal .calc-result-row.income strong {
  font-size:0.86rem;
  font-weight:500;
  opacity:1;
  color:var(--uum-text-soft);
}
#calculatorModal .calc-income-note {
  margin-top:8px;
  font-size:0.54rem;
  letter-spacing:0.08em;
  line-height:1.55;
  text-align:left;
  color:var(--uum-text-muted);
  opacity:1;
}
#calculatorModal .calc-cta {
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  margin-top:20px;
  padding:12px 16px;
  border-radius:10px;
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
  background:var(--btn-glass-surface, var(--btn-surface));
  color:var(--text-primary);
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:0.08em;
  transition:background 0.22s ease, border-color 0.22s ease, transform 0.22s ease;
}
#calculatorModal .calc-cta:hover {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  transform:translateY(-1px);
}

/* —— Planos (más ancho, scroll horizontal) —— */
#pdfModal.units-unit-overlay {
  padding:clamp(12px, 2.5vmin, 24px);
}
#pdfModal .units-plans-modal {
  width:min(96vw, 1180px);
  max-width:1180px;
  height:min(86svh, 760px);
  max-height:86svh;
  aspect-ratio:unset;
  border-radius:var(--uum-radius);
  border:1px solid var(--uum-border);
  background:var(--uum-surface);
  box-shadow:0 20px 56px color-mix(in srgb, var(--bg-main, #000) 30%, transparent);
}
#pdfModal .units-plans-modal .gallery-scroll {
  display:flex;
  flex-direction:row;
  align-items:stretch;
  overflow-x:auto;
  overflow-y:hidden;
  scroll-snap-type:x mandatory;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior-x:contain;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb, var(--uum-text) 22%, transparent) transparent;
}
#pdfModal .units-plans-modal .gallery-scroll::-webkit-scrollbar {
  height:6px;
}
#pdfModal .units-plans-modal .gallery-scroll::-webkit-scrollbar-thumb {
  border-radius:999px;
  background:color-mix(in srgb, var(--uum-text) 22%, transparent);
}
#pdfModal .units-plans-modal .plan-slide {
  flex:0 0 min(72vw, 780px);
  width:min(72vw, 780px);
  aspect-ratio:16 / 9;
  scroll-snap-align:start;
  border-bottom:none;
  border-right:1px solid color-mix(in srgb, var(--uum-text) 7%, transparent);
  background:color-mix(in srgb, var(--uum-text) 2%, var(--placeholder-bg));
  padding:0;
  overflow:hidden;
  position:relative;
}
#pdfModal .units-plans-modal .plan-slide--media {
  padding:0;
}
#pdfModal .units-plans-modal .plan-slide-media {
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  border:0;
  background:#0a0a0a;
}
#pdfModal .units-plans-modal .plan-slide-link,
#pdfModal .units-plans-modal .plan-slide span,
#pdfModal .units-plans-modal .plan-slide a {
  color:var(--uum-text-soft);
  font-size:0.62rem;
  font-weight:600;
  letter-spacing:0.1em;
  text-decoration:none;
}
#pdfModal .units-plans-modal .plan-price-slide {
  flex:0 0 min(300px, 34vw);
  width:min(300px, 34vw);
  min-width:260px;
  order:-1;
  aspect-ratio:unset;
  align-self:stretch;
  border-left:none;
  border-right:1px solid color-mix(in srgb, var(--uum-text) 7%, transparent);
  background:color-mix(in srgb, var(--uum-text) 2%, transparent);
  padding:clamp(24px, 4vmin, 40px) clamp(20px, 3vmin, 32px);
}
#pdfModal .units-plans-modal .plan-price-label {
  margin-bottom:10px;
  font-size:0.56rem;
  font-weight:600;
  letter-spacing:0.12em;
  opacity:1;
  color:var(--uum-text-muted);
}
#pdfModal .units-plans-modal .plan-price-value {
  margin-bottom:28px;
  font-size:clamp(1.2rem, 2.4vw, 1.55rem);
  font-weight:700;
  letter-spacing:-0.02em;
  line-height:1.15;
  color:var(--uum-text);
}
#pdfModal .units-plans-modal .outline-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:44px;
  padding:12px 22px;
  border-radius:10px;
  border:1px solid color-mix(in srgb, var(--hero-surface, var(--accent)) 75%, transparent);
  background:var(--hero-surface, var(--accent));
  color:var(--hero-cta-text, #fff);
  font-size:0.58rem;
  font-weight:600;
  letter-spacing:0.08em;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transition:background 0.22s ease, transform 0.22s ease;
}
#pdfModal .units-plans-modal .outline-btn:hover {
  background:color-mix(in srgb, var(--hero-surface, var(--accent)) 88%, var(--uum-text) 12%);
  color:var(--hero-cta-text, #fff);
  transform:translateY(-1px);
}

/* —— 360° loader —— */
.units-sphere-overlay {
  background:var(--bg-main);
}
.units-sphere-overlay .sphere-loader {
  gap:clamp(18px, 3vmin, 26px);
  background:
    radial-gradient(ellipse 80% 60% at 50% 40%, color-mix(in srgb, var(--uum-text, var(--text-primary)) 4%, transparent), transparent 70%),
    var(--bg-main);
}
.units-sphere-overlay .sphere-spinner {
  width:48px;
  height:48px;
  border-width:2px;
  border-color:color-mix(in srgb, var(--uum-text, var(--text-primary)) 14%, transparent);
  border-top-color:var(--uum-text, var(--text-primary));
}
.units-sphere-overlay .sphere-loader-hint {
  width:min(460px, 86vw);
  color:var(--uum-text-soft, color-mix(in srgb, var(--text-primary) 72%, transparent));
  opacity:1;
  font-size:0.62rem;
  font-weight:500;
  letter-spacing:0.1em;
  line-height:1.65;
}

@media (max-width: 600px) {
  /* Footer viviendas no debe tapar calc/planos (z fijo > modal) */
  body:has(#calculatorModal.active) .units-viviendas-foot,
  body:has(#pdfModal.active) .units-viviendas-foot,
  body:has(#tour360Popup.active) .units-viviendas-foot,
  body:has(#sphereModal.active) .units-viviendas-foot {
    visibility:hidden;
    pointer-events:none;
  }

  #calculatorModal.units-unit-overlay.active,
  #calculatorModal.content-modal.active {
    padding-bottom:max(72px, calc(env(safe-area-inset-bottom) + 56px));
  }
}

@media (max-width: 720px) {
  #calculatorModal .calc-selects {
    grid-template-columns:1fr 1fr;
  }
  #calculatorModal .calc-selects .select-wrap:last-child {
    grid-column:1 / -1;
  }
  #pdfModal .units-plans-modal {
    width:100%;
    height:min(82svh, 640px);
  }
  #pdfModal .units-plans-modal .plan-slide {
    flex-basis:min(84vw, 640px);
    width:min(84vw, 640px);
  }
  #pdfModal .units-plans-modal .plan-price-slide {
    flex-basis:min(72vw, 280px);
    width:min(72vw, 280px);
    min-width:240px;
  }
}

.unit-typo-info {
  padding:20px 16px 22px;
  border-top:1px solid var(--track-bg);
}
.unit-typo-tag {
  color:var(--accent);
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.unit-typo-title {
  color:var(--text-primary);
  font-size:0.95rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  margin-bottom:12px;
}
.unit-typo-specs {
  display:flex;
  flex-wrap:wrap;
  gap:6px 14px;
  margin-bottom:16px;
}
.unit-typo-specs span {
  color:var(--text-primary);
  opacity:0.6;
  font-size:0.78rem;
  letter-spacing:0.03em;
}
.unit-typo-divider {
  height:1px;
  background:var(--track-bg);
  margin-bottom:14px;
}
.unit-typo-price-label {
  color:var(--text-primary);
  opacity:0.5;
  font-size:0.7rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:4px;
}
.unit-typo-price-value {
  color:var(--text-primary);
  font-size:1.15rem;
  font-weight:300;
  letter-spacing:0.03em;
  margin-bottom:16px;
}
.unit-typo-btn-stack {
  display:flex;
  flex-direction:column;
  gap:10px;
}
.unit-typo-btn-row {
  display:flex;
  gap:10px;
}
.unit-typo-btn {
  flex:1;
  background:var(--bg-main);
  border:1px solid color-mix(in srgb, var(--text-primary) 40%, transparent);
  color:var(--text-primary);
  font-size:0.7rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:12px 6px;
  cursor:pointer;
  transition:background 0.3s ease, color 0.3s ease;
}
.unit-typo-btn:hover {
  background:var(--text-primary);
  color:var(--bg-main);
}
.unit-typo-btn.emphasis {
  background:var(--text-primary);
  color:var(--bg-main);
  font-weight:700;
}
.unit-typo-btn.emphasis:hover {
  background:color-mix(in srgb, var(--text-primary) 88%, var(--bg-main) 12%);
  color:var(--bg-main);
}

/* ================= MODAL PDF (planos y precio) ================= */
.pdf-modal {
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
}
.pdf-modal.active {
  opacity:1;
  visibility:visible;
}

.pdf-modal-box {
  width:auto;
  aspect-ratio:9/16;
  height:88vh;
  height:88svh;
  background:var(--bg-popup);
  backdrop-filter:blur(var(--panel-modal-blur, 20px)) saturate(140%);
  -webkit-backdrop-filter:blur(var(--panel-modal-blur, 20px)) saturate(140%);
  border:1px solid var(--border);
  border-radius:14px;
  overflow:hidden;
  position:relative;
  box-shadow:var(--modal-shadow, 0 24px 70px rgba(0, 0, 0, 0.55));
  display:flex;
  flex-direction:column;
}

@media (min-width: 601px) and (max-width: 1024px) {
  .pdf-modal-box {
    aspect-ratio:unset;
    width:90vw;
    max-width:700px;
    height:88vh;
    height:88svh;
  }
  .plan-slide { aspect-ratio:16/9 !important; }
  .plan-price-slide { aspect-ratio:16/9 !important; }
}

@media (min-width: 1025px) {
  .pdf-modal-box {
    aspect-ratio:unset;
    width:80vw;
    max-width:900px;
    height:90vh;
    height:90svh;
  }
  .plan-slide { aspect-ratio:16/9 !important; }
  .plan-price-slide { aspect-ratio:16/9 !important; }
}

.gallery-scroll {
  flex:1;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  overscroll-behavior:contain;
  touch-action:pan-y;
}
.plan-slide {
  width:100%;
  aspect-ratio:9/16;
  background:var(--placeholder-bg);
  border-bottom:1px solid var(--border);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 10%;
}
.plan-slide span {
  color:var(--text-primary);
  opacity:0.7;
  font-size:0.95rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  line-height:1.6;
}
.plan-price-slide {
  width:100%;
  aspect-ratio:9/16;
  background:var(--bg-main);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0 10%;
}
.plan-price-label {
  color:var(--text-primary);
  opacity:0.5;
  font-size:0.8rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:14px;
}
.plan-price-value {
  color:var(--text-primary);
  font-size:1.6rem;
  letter-spacing:0.05em;
  font-weight:300;
  margin-bottom:36px;
}
.outline-btn {
  display:inline-block;
  background:var(--btn-glass-surface, var(--btn-surface));
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
  border-radius:var(--menu-card-radius, 14px);
  color:var(--text-primary);
  text-decoration:none;
  font-size:0.8rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  padding:14px 28px;
  cursor:pointer;
  backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(130%);
  -webkit-backdrop-filter:blur(var(--btn-glass-blur, 8px)) saturate(130%);
  box-shadow:var(--btn-shadow, 0 6px 20px rgba(0, 0, 0, 0.28)),
    var(--glass-inset-shadow, inset 0 1px 0 color-mix(in srgb, var(--text-primary) 8%, transparent));
  transition:background 0.3s ease, color 0.3s ease, border-color 0.3s ease, border-width 0.3s ease, box-shadow 0.3s ease, transform 0.25s ease;
}
.outline-btn:hover {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  transform:translateY(-1px);
}

/* ================= MODAL 360 FULLSCREEN ================= */
.sphere-modal {
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  background:var(--bg-main);
  z-index:1001;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
}
.sphere-modal.active {
  opacity:1;
  visibility:visible;
}
.sphere-modal iframe { width:100%; height:100%; border:none; }
.sphere-modal.is-loader-only iframe,
.sphere-modal iframe[hidden] {
  display:none !important;
}

/* ---- Spinner de carga 360° ---- */
.sphere-loader {
  position:absolute;
  top:0; left:0;
  width:100%; height:100%;
  background:var(--bg-main);
  z-index:1003;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  opacity:1;
  transition:opacity 0.5s ease;
  pointer-events:none;
}
.sphere-loader.hidden { opacity:0; }
.sphere-spinner {
  width:44px; height:44px;
  border:2px solid color-mix(in srgb, var(--text-primary) 15%, transparent);
  border-top-color:var(--text-primary);
  border-radius:50%;
  animation:spin 1s linear infinite;
  will-change:transform;
  transform:translateZ(0);
  backface-visibility:hidden;
}
@keyframes spin {
  from { transform:translateZ(0) rotate(0deg); }
  to   { transform:translateZ(0) rotate(360deg); }
}
.sphere-loader-text {
  color:var(--text-primary);
  opacity:0.55;
  font-size:0.75rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
}
.sphere-loader-hint {
  width:min(420px, 84vw);
  box-sizing:border-box;
  margin:0 auto;
  color:var(--text-primary);
  opacity:0.4;
  font-weight:300;
  font-size:0.8rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  text-align:center;
  padding:0 24px;
  line-height:1.7;
}

/* ================= MODAL GENÉRICO ================= */
.content-modal {
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  z-index:1000;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  opacity:0;
  visibility:hidden;
}
.content-modal.active {
  opacity:1;
  visibility:visible;
}
.content-modal-box {
  width:100%;
  max-width:900px;
  max-height:85vh;
  max-height:85svh;
  background:var(--bg-popup);
  backdrop-filter:blur(var(--panel-modal-blur, 20px)) saturate(140%);
  -webkit-backdrop-filter:blur(var(--panel-modal-blur, 20px)) saturate(140%);
  border:1px solid var(--border);
  border-radius:14px;
  padding:0;
  position:relative;
  overflow:hidden;
  display:flex;
  flex-direction:column;
  box-shadow:var(--modal-shadow, 0 24px 70px rgba(0, 0, 0, 0.55));
}
.content-modal-box .popup-box-scroll {
  padding:44px 34px;
}
.content-modal-title {
  color:var(--text-primary);
  text-align:center;
  letter-spacing:0.1em;
  text-transform:uppercase;
  font-size:0.95rem;
  opacity:0.7;
  margin-bottom:22px;
}
.placeholder-box {
  width:100%;
  aspect-ratio:16/9;
  background:var(--placeholder-bg);
  border:1px dashed var(--placeholder-border);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:6%;
}
.placeholder-box span {
  color:var(--text-primary);
  opacity:0.65;
  font-size:0.85rem;
}

/* ================= MODAL VIDEO DEL PROYECTO ================= */
.splash-intro-modal.content-modal {
  padding:clamp(8px, 1.4vmin, 14px);
  overflow:hidden;
}
.splash-intro-modal .video-modal-box {
  width:min(1280px, 100%);
  max-width:min(1280px, 100%);
  height:auto;
  max-height:min(94vh, 94svh);
  padding:0;
  overflow:visible;
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  display:flex;
  align-items:center;
  justify-content:center;
  position:relative;
}
.splash-intro-modal .video-modal-loader {
  position:absolute;
  inset:0;
  z-index:6;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  pointer-events:none;
  opacity:0;
  visibility:hidden;
  border-radius:14px;
  background:transparent;
  transition:opacity 0.35s ease, visibility 0s linear 0.35s;
}
.splash-intro-modal.is-video-loading .video-modal-loader {
  opacity:1;
  visibility:visible;
  transition:opacity 0.2s ease, visibility 0s linear 0s;
}
.splash-intro-modal.is-video-morphing .video-modal-loader {
  opacity:1;
  visibility:visible;
  transition:none;
  z-index:7;
}
.splash-intro-modal .video-modal-loader[hidden] {
  display:none !important;
}

/* —— Video móvil: pantalla de orientación —— */
.video-orient-gate {
  display:none;
}
@media (max-width: 600px) {
  .video-orient-gate {
    position:absolute;
    inset:0;
    z-index:12;
    display:none;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:1.1rem;
    padding:1.5rem 1.25rem;
    text-align:center;
    background:rgba(5, 5, 5, 0.96);
  }
  .video-orient-gate:not([hidden]) {
    display:flex;
  }
  #videoModal.is-orient-gate .video-modal-card {
    opacity:0;
    pointer-events:none;
  }
  #videoModal.is-orient-gate .video-modal-loader {
    display:none !important;
  }
  .video-orient-gate__phone {
    width:72px;
    height:72px;
    display:flex;
    align-items:center;
    justify-content:center;
  }
  .video-orient-gate__device {
    display:block;
    width:28px;
    height:48px;
    border:2px solid rgba(255, 255, 255, 0.55);
    border-radius:6px;
    box-shadow:inset 0 0 0 1px rgba(255, 255, 255, 0.06);
    animation:videoOrientRotate 1.8s ease-in-out infinite;
  }
  .video-orient-gate__title {
    margin:0;
    font-size:1rem;
    font-weight:500;
    letter-spacing:-0.02em;
    color:rgba(255, 255, 255, 0.88);
  }
  .video-orient-gate__copy {
    margin:0;
    max-width:16rem;
    font-size:0.88rem;
    font-weight:300;
    line-height:1.5;
    color:rgba(255, 255, 255, 0.5);
  }
  @keyframes videoOrientRotate {
    0%, 15% { transform:rotate(0deg); }
    40%, 60% { transform:rotate(90deg); }
    85%, 100% { transform:rotate(0deg); }
  }
  @media (prefers-reduced-motion: reduce) {
    .video-orient-gate__device {
      animation:none;
      transform:rotate(90deg);
    }
  }

  .video-fs-fallback-hint {
    display:none;
    margin:0;
    padding:0 12px 10px;
    text-align:center;
    font-size:0.78rem;
    font-weight:400;
    line-height:1.4;
    color:rgba(255, 255, 255, 0.62);
  }
  #videoModal.is-mobile-video-fs-fallback .video-fs-fallback-hint:not([hidden]) {
    display:block;
    position:relative;
    z-index:4;
  }
}

/* Video móvil landscape / fallback — independiente de max-width
   (en landscape el ancho del iPhone suele superar 600px). */
@media (max-height: 500px), (orientation: landscape) {
  #videoModal.is-mobile-video-landscape.active.content-modal,
  #videoModal.is-mobile-video-fs-fallback.active.content-modal {
    padding:0;
    align-items:stretch;
    justify-content:center;
  }
  #videoModal.is-mobile-video-landscape .video-modal-box,
  #videoModal.is-mobile-video-landscape .video-modal-card,
  #videoModal.is-mobile-video-fs-fallback .video-modal-box,
  #videoModal.is-mobile-video-fs-fallback .video-modal-card {
    width:100%;
    max-width:none;
    height:100%;
    max-height:none;
    min-height:100%;
    border-radius:0;
    margin:0;
    display:flex;
    flex-direction:column;
    background:#000;
  }
  #videoModal.is-mobile-video-fs-fallback .video-fs-fallback-hint:not([hidden]) {
    order:2;
    flex:0 0 auto;
    display:block;
    padding:8px 16px max(12px, env(safe-area-inset-bottom));
  }
  #videoModal.is-mobile-video-landscape .video-modal-card,
  #videoModal.is-mobile-video-fs-fallback .video-modal-card {
    order:1;
    flex:1 1 auto;
    min-height:0;
  }
  #videoModal.is-mobile-video-landscape .video-modal-player-wrap,
  #videoModal.is-mobile-video-fs-fallback .video-modal-player-wrap {
    flex:1 1 auto;
    width:100%;
    height:100%;
    min-height:0;
    max-height:none;
  }
  #videoModal.is-mobile-video-landscape .project-video-player,
  #videoModal.is-mobile-video-fs-fallback .project-video-player {
    width:100%;
    height:100%;
    max-width:100%;
    max-height:none;
    aspect-ratio:auto;
    object-fit:contain;
    border-radius:0;
  }
  #videoModal.is-mobile-video-landscape .video-player-controls,
  #videoModal.is-mobile-video-fs-fallback .video-player-controls {
    left:12px;
    right:12px;
    bottom:max(10px, env(safe-area-inset-bottom));
  }
}

/* Solo icono negro + barra (sin caja de video detras) */
.video-splash {
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:20px;
  width:min(200px, 52vw);
}
.splash-intro-modal.is-video-morphing .video-splash {
  position:absolute;
  inset:0;
  width:auto;
  gap:0;
  pointer-events:none;
}
.video-splash-mark {
  width:72px;
  height:52px;
  display:flex;
  align-items:center;
  justify-content:center;
}
.splash-intro-modal.is-video-morphing .video-splash-mark {
  width:100%;
  height:100%;
}
.video-splash-play {
  width:72px;
  height:52px;
  border-radius:14px;
  background:#000;
  color:#fff;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 8px 22px rgba(0, 0, 0, 0.35);
  transform:scale(0.86);
  opacity:0;
}
.splash-intro-modal.is-video-loading .video-splash-play {
  animation:videoSplashPlayIn 0.5s cubic-bezier(0.22, 1, 0.36, 1) 0.06s both;
}
.splash-intro-modal.is-video-morphing .video-splash-play {
  width:100%;
  height:100%;
  border-radius:14px;
  box-shadow:none;
  opacity:1;
  transform:none;
  animation:videoSplashGrowFill 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.video-splash-play-icon {
  width:26px;
  height:26px;
  margin-left:3px;
  display:block;
  transition:opacity 0.12s ease, transform 0.12s ease;
}
.splash-intro-modal.is-video-morphing .video-splash-play-icon {
  opacity:0;
  transform:scale(0.5);
}
.video-splash-track {
  position:relative;
  width:100%;
  height:3px;
  border-radius:999px;
  background:color-mix(in srgb, #000 18%, transparent);
  overflow:visible;
  opacity:0;
  transform:scaleX(0.92);
}
.splash-intro-modal.is-video-loading .video-splash-track {
  animation:videoSplashTrackIn 0.4s ease 0.16s both;
}
.splash-intro-modal.is-video-morphing .video-splash-track {
  display:none;
}
.video-splash-bar {
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:0%;
  border-radius:inherit;
  background:#000;
}
.splash-intro-modal.is-video-loading .video-splash-bar {
  animation:videoSplashBarFill 1.85s cubic-bezier(0.4, 0, 0.2, 1) 0.26s both;
}
.video-splash-head {
  position:absolute;
  top:50%;
  left:0%;
  width:8px;
  height:8px;
  margin-top:-4px;
  margin-left:-4px;
  border-radius:50%;
  background:#000;
  box-shadow:0 0 0 2px color-mix(in srgb, #fff 55%, transparent);
  opacity:0;
}
.splash-intro-modal.is-video-loading .video-splash-head {
  animation:videoSplashHeadMove 1.85s cubic-bezier(0.4, 0, 0.2, 1) 0.26s both;
}

.splash-intro-modal .video-modal-card {
  --video-card-text: var(--container-text, var(--text-primary));
  --video-card-border: color-mix(in srgb, var(--video-card-text) 8%, transparent);
  --video-card-surface: var(--panel-glass-surface, var(--bg-glass-surface, var(--bg-card, var(--bg-popup))));
  width:100%;
  max-height:min(94vh, 94svh);
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border-radius:14px;
  border:1px solid var(--video-card-border);
  background:#000;
  box-shadow:var(--glass-shadow, 0 10px 36px rgba(0, 0, 0, 0.34));
  color:var(--video-card-text);
  transform-origin:center center;
  backface-visibility:hidden;
}
.splash-intro-modal.is-video-loading .video-modal-card {
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:scale(0.08);
}
.splash-intro-modal.is-video-morphing .video-modal-card {
  opacity:1;
  visibility:visible;
  pointer-events:none;
  animation:videoModalGrowFromIcon 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.splash-intro-modal.is-video-ready .video-modal-card {
  opacity:1;
  visibility:visible;
  transform:none;
  pointer-events:auto;
}
/* Durante el morph: caja negra; al final se revela el primer frame */
#videoModal.is-video-morphing .project-video-player {
  opacity:0;
}
#videoModal.is-video-ready .project-video-player {
  opacity:1;
  transition:opacity 0.2s ease;
}

/* ================= MODAL UBICACIÓN (splash compartido con video) ================= */
#locationModal .location-modal-body {
  display:flex;
  flex-direction:column;
  min-height:0;
  width:100%;
  height:100%;
  background:var(--panel-glass-surface, var(--bg-glass-surface, var(--bg-card, var(--bg-popup))));
}
#locationModal.is-video-morphing .location-modal-body {
  opacity:0;
}
#locationModal.is-video-ready .location-modal-body {
  opacity:1;
  transition:opacity 0.2s ease;
}
#locationModal .location-map-box {
  flex:1 1 auto;
  min-height:min(52vh, 480px);
  width:100%;
  aspect-ratio:16 / 9;
  background:#050505;
  border:0;
  overflow:hidden;
  position:relative;
  display:block;
}
#locationModal .location-map-box .location-map {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
}
.location-map {
  background:#050505;
  overflow:hidden;
}
.location-map-iframe {
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  border:0;
  display:block;
  pointer-events:auto;
  touch-action:auto;
}
#locationModal .location-modal-action {
  flex:0 0 auto;
  display:flex;
  justify-content:center;
  padding:16px 18px 18px;
  border-top:1px solid color-mix(in srgb, var(--container-text, var(--text-primary)) 8%, transparent);
}

/* Splash ubicación: pin blanco minimalista dentro del recuadro negro */
#locationModal .location-splash-mark {
  width:56px;
  height:56px;
}
#locationModal .location-splash-play {
  width:56px;
  height:56px;
  border-radius:14px;
}
#locationModal .location-splash-icon {
  width:34px;
  height:34px;
  display:block;
  color:#fff;
  transition:opacity 0.12s ease, transform 0.12s ease;
}
.splash-intro-modal.is-video-morphing .location-splash-icon {
  opacity:0;
  transform:scale(0.5);
}
#locationModal.splash-intro-modal.is-video-morphing .location-splash-play {
  animation:locationSplashGrowFill 0.9s cubic-bezier(0.22, 1, 0.36, 1) both;
}
#locationModal .location-modal-card,
#locationModal .location-map-box {
  background:#000;
}
#locationModal .location-splash-head {
  width:8px;
  height:8px;
  margin-top:-4px;
  margin-left:-4px;
  border-radius:50%;
  background:transparent;
  box-shadow:0 0 0 2px color-mix(in srgb, #fff 55%, transparent);
  display:flex;
  align-items:center;
  justify-content:center;
}
#locationModal .location-splash-head-icon {
  width:8px;
  height:8px;
  display:block;
  color:#000;
}
@keyframes locationSplashGrowFill {
  0% {
    width:56px;
    height:56px;
    border-radius:14px;
  }
  100% {
    width:100%;
    height:100%;
    border-radius:14px;
  }
}

@keyframes videoSplashPlayIn {
  from { opacity:0; transform:scale(0.72); }
  to { opacity:1; transform:scale(1); }
}
@keyframes videoSplashTrackIn {
  from { opacity:0; transform:scaleX(0.86); }
  to { opacity:1; transform:scaleX(1); }
}
@keyframes videoSplashBarFill {
  from { width:0%; }
  to { width:100%; }
}
@keyframes videoSplashHeadMove {
  0% { left:0%; opacity:0; }
  8% { opacity:1; }
  100% { left:100%; opacity:1; }
}
/* Icono crece hasta llenar toda la caja (sin cuadro gris flotante) */
@keyframes videoSplashGrowFill {
  0% {
    width:72px;
    height:52px;
    border-radius:14px;
  }
  100% {
    width:100%;
    height:100%;
    border-radius:14px;
  }
}
@keyframes videoModalGrowFromIcon {
  0% {
    opacity:1;
    transform:scale(0.08);
    border-radius:14px;
  }
  100% {
    opacity:1;
    transform:scale(1);
    border-radius:14px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .splash-intro-modal.is-video-loading .video-modal-card,
  .splash-intro-modal.is-video-morphing .video-modal-card {
    animation:none;
    opacity:1;
    visibility:visible;
    transform:none;
    pointer-events:auto;
  }
  #videoModal.is-video-morphing .project-video-player,
  #videoModal.is-video-ready .project-video-player {
    opacity:1;
  }
  #locationModal.is-video-morphing .location-modal-body,
  #locationModal.is-video-ready .location-modal-body {
    opacity:1;
  }
  .splash-intro-modal.is-video-loading .video-splash-play,
  .splash-intro-modal.is-video-loading .video-splash-track,
  .splash-intro-modal.is-video-loading .video-splash-bar,
  .splash-intro-modal.is-video-loading .video-splash-head,
  .splash-intro-modal.is-video-morphing .video-splash-play {
    animation:none;
  }
}
#videoModal.is-video-loading .video-player-controls,
#videoModal.is-video-morphing .video-player-controls {
  opacity:0;
  pointer-events:none;
}
#videoModal .video-modal-player-wrap {
  position:relative;
  flex:0 1 auto;
  min-height:0;
  width:100%;
  padding:0;
  display:flex;
  flex-direction:column;
  align-items:stretch;
  justify-content:center;
  overflow:hidden;
  isolation:isolate;
  background:#000;
}
#videoModal .project-video-player {
  display:block;
  width:100%;
  height:auto;
  max-width:100%;
  max-height:min(86vh, 86svh);
  aspect-ratio:16 / 9;
  object-fit:contain;
  background:#000;
  border:0;
  border-radius:0;
  overflow:hidden;
  pointer-events:auto;
  z-index:1;
  /* Evita el rectángulo gris nativo del <video> sin frame */
  color-scheme:only dark;
}
/* Barra premium: overlay fino sobre el video, no bloque aparte */
#videoModal .video-player-controls {
  position:absolute;
  left:10px;
  right:10px;
  bottom:10px;
  display:flex;
  align-items:center;
  gap:4px;
  width:auto;
  height:36px;
  padding:0 8px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, #fff 10%, transparent);
  background:rgba(8, 8, 10, 0.42);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  box-shadow:0 8px 24px rgba(0, 0, 0, 0.28);
  color:#fff;
  pointer-events:auto;
  z-index:3;
}
#videoModal .video-player-controls[hidden] {
  display:none !important;
}
#videoModal .video-ctrl-btn {
  width:28px;
  height:28px;
  flex:0 0 auto;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:999px;
  background:transparent;
  color:rgba(255,255,255,0.92);
  cursor:pointer;
  pointer-events:auto;
  position:relative;
  overflow:hidden;
  transition:background 0.18s ease, color 0.18s ease;
}
#videoModal .video-ctrl-btn:hover {
  background:color-mix(in srgb, #fff 12%, transparent);
  color:#fff;
}
#videoModal .video-ctrl-icon-stack {
  position:relative;
  width:15px;
  height:15px;
  display:block;
}
#videoModal .video-ctrl-icon {
  width:15px;
  height:15px;
  display:block;
  position:absolute;
  inset:0;
  opacity:0;
  transform:scale(0.72) rotate(-8deg);
  transition:opacity 0.2s ease, transform 0.22s cubic-bezier(.22,1,.36,1);
  pointer-events:none;
}
#videoModal .video-ctrl-btn.is-paused .video-ctrl-icon--play,
#videoModal .video-ctrl-btn.is-playing .video-ctrl-icon--pause,
#videoModal .video-ctrl-btn.is-unmuted .video-ctrl-icon--vol,
#videoModal .video-ctrl-btn.is-muted .video-ctrl-icon--mute {
  opacity:1;
  transform:scale(1) rotate(0deg);
}
#videoModal .video-ctrl-btn .video-ctrl-icon--fs,
#videoModal .video-ctrl-btn .video-ctrl-icon--loop {
  position:static;
  opacity:1;
  transform:none;
}
#videoModal .video-ctrl-btn.is-loop-on {
  color:#45c06a;
}
#videoModal .video-ctrl-btn.is-loop-on:hover {
  color:#5fd67f;
}
#videoModal .video-ctrl-volume-wrap {
  display:flex;
  align-items:center;
  flex:0 0 auto;
  gap:0;
  max-width:28px;
  overflow:hidden;
  transition:max-width 0.28s cubic-bezier(0.22, 1, 0.36, 1), gap 0.22s ease;
}
#videoModal .video-ctrl-volume-wrap:hover,
#videoModal .video-ctrl-volume-wrap:focus-within {
  max-width:124px;
  gap:4px;
}
#videoModal .video-ctrl-volume {
  width:min(88px, 18vw);
  height:3px;
  flex:0 0 auto;
  accent-color:rgba(255,255,255,0.92);
  cursor:pointer;
  pointer-events:none;
  opacity:0;
  transform:scaleX(0.6);
  transform-origin:left center;
  transition:opacity 0.2s ease, transform 0.28s cubic-bezier(0.22, 1, 0.36, 1);
}
#videoModal .video-ctrl-volume-wrap:hover .video-ctrl-volume,
#videoModal .video-ctrl-volume-wrap:focus-within .video-ctrl-volume {
  opacity:0.9;
  transform:scaleX(1);
  pointer-events:auto;
}
#videoModal .video-ctrl-volume:hover {
  opacity:1;
}
#videoModal .video-ctrl-spacer {
  flex:1 1 auto;
  min-width:6px;
}
#videoModal .video-ctrl-quality-wrap {
  position:relative;
  flex:0 0 auto;
}
#videoModal .video-ctrl-quality-btn {
  width:28px;
}
#videoModal .video-ctrl-quality-btn .video-ctrl-icon {
  position:static;
  opacity:1;
  transform:none;
}
#videoModal .video-ctrl-quality-menu {
  position:absolute;
  right:0;
  bottom:calc(100% + 8px);
  min-width:72px;
  padding:4px;
  border-radius:10px;
  border:1px solid color-mix(in srgb, #fff 12%, transparent);
  background:rgba(10,10,12,0.88);
  backdrop-filter:blur(16px) saturate(140%);
  -webkit-backdrop-filter:blur(16px) saturate(140%);
  box-shadow:0 10px 24px rgba(0,0,0,0.4);
  z-index:5;
  animation:videoQualityPop 0.18s ease;
}
@keyframes videoQualityPop {
  from { opacity:0; transform:translateY(6px) scale(0.96); }
  to { opacity:1; transform:translateY(0) scale(1); }
}
#videoModal .video-ctrl-quality-menu[hidden] {
  display:none !important;
}
#videoModal .video-ctrl-quality-option {
  display:block;
  width:100%;
  text-align:center;
  border:0;
  border-radius:7px;
  background:transparent;
  color:rgba(255,255,255,0.88);
  padding:6px 8px;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.06em;
  cursor:pointer;
}
#videoModal .video-ctrl-quality-option:hover,
#videoModal .video-ctrl-quality-option.is-selected {
  background:color-mix(in srgb, #fff 12%, transparent);
  color:#fff;
}
body[data-shadow-glass="glass"] .splash-intro-modal .video-modal-card {
  box-shadow:var(--glass-shadow, 0 4px 16px rgba(0, 0, 0, 0.12));
}
body[data-shadow-glass="solid"] .splash-intro-modal .video-modal-card {
  box-shadow:var(--glass-shadow, 0 16px 52px rgba(0, 0, 0, 0.52));
}

/* Fullscreen: video a casi toda la pantalla, sin márgenes gruesos */
#videoModal .video-modal-player-wrap:fullscreen,
#videoModal .video-modal-player-wrap:-webkit-full-screen {
  width:100vw;
  height:100vh;
  max-height:none;
  padding:0;
  background:#000;
  display:flex;
  align-items:center;
  justify-content:center;
}
#videoModal .video-modal-player-wrap:fullscreen .project-video-player,
#videoModal .video-modal-player-wrap:-webkit-full-screen .project-video-player {
  width:100%;
  height:100%;
  max-width:100%;
  max-height:100%;
  aspect-ratio:auto;
  object-fit:contain;
  border-radius:0;
}
#videoModal .video-modal-player-wrap:fullscreen .video-player-controls,
#videoModal .video-modal-player-wrap:-webkit-full-screen .video-player-controls {
  left:16px;
  right:16px;
  bottom:16px;
  max-width:520px;
  margin:0 auto;
  width:calc(100% - 32px);
}

@media (max-width: 600px) {
  .splash-intro-modal.content-modal {
    padding:6px;
  }
  .splash-intro-modal .video-modal-box,
  .splash-intro-modal .video-modal-card {
    max-height:min(92vh, 92svh);
    border-radius:12px;
  }
  #videoModal .project-video-player {
    max-height:min(78vh, 78svh);
  }
  /* Evitar el video “sello” al rotar: prioridad landscape / fallback */
  #videoModal.is-mobile-video-landscape .project-video-player,
  #videoModal.is-mobile-video-fs-fallback .project-video-player {
    max-height:none;
    height:100%;
    width:100%;
    aspect-ratio:auto;
  }
  #videoModal.is-mobile-video-landscape .video-modal-box,
  #videoModal.is-mobile-video-landscape .video-modal-card,
  #videoModal.is-mobile-video-fs-fallback .video-modal-box,
  #videoModal.is-mobile-video-fs-fallback .video-modal-card {
    max-height:none;
    height:100%;
    width:100%;
    border-radius:0;
  }
  #videoModal .video-player-controls {
    left:8px;
    right:8px;
    bottom:8px;
    height:32px;
    padding:0 6px;
    gap:2px;
  }
  #videoModal .video-ctrl-btn {
    width:26px;
    height:26px;
  }
  #videoModal .video-ctrl-icon-stack,
  #videoModal .video-ctrl-icon {
    width:14px;
    height:14px;
  }
  #videoModal .video-ctrl-volume-wrap {
    max-width:26px;
  }
  #videoModal .video-ctrl-volume-wrap:hover,
  #videoModal .video-ctrl-volume-wrap:focus-within {
    max-width:96px;
  }
  #videoModal .video-ctrl-volume {
    width:min(64px, 18vw);
  }
}
.content-modal-action {
  text-align:center;
  margin-top:22px;
}
.info-text {
  color:var(--text-primary);
  opacity:0.75;
  font-weight:300;
  font-size:0.95rem;
  line-height:1.8;
  letter-spacing:0.02em;
  text-align:center;
}
.amenities-list {
  list-style:none;
  display:grid;
  grid-template-columns:repeat(2, 1fr);
  gap:12px;
}
.amenities-list li {
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:8px;
  color:var(--text-primary);
  opacity:0.85;
  font-size:0.85rem;
  letter-spacing:0.03em;
  text-transform:uppercase;
  padding:16px 14px;
  text-align:center;
}

/* ================= AMENIDADES — mismo layout que Galería (tour360-card) ================= */
.tour360-card-amenity-icon-wrap {
  display:flex;
  align-items:center;
  margin-bottom:2px;
}
.tour360-card-amenity-icon {
  width:22px;
  height:22px;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 1px 2px rgba(0, 0, 0, 0.35));
}
.tour360-card-amenity-icon-glyph {
  font-size:1.05rem;
  line-height:1;
  opacity:0.92;
}

/* ================= DESCARGAS ================= */
.downloads-modal.content-modal {
  padding:0;
  align-items:stretch;
  justify-content:stretch;
  min-height:100dvh;
  height:100dvh;
  overflow:hidden;
  background:var(--overlay-mask, var(--modal-backdrop, var(--backdrop-94)));
  -webkit-backdrop-filter:blur(var(--modal-backdrop-blur, 0px)) saturate(140%);
  backdrop-filter:blur(var(--modal-backdrop-blur, 0px)) saturate(140%);
}
.downloads-modal-box {
  position:relative;
  width:100%;
  max-width:none;
  max-height:none;
  height:100%;
  min-height:100dvh;
  border:none;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  overflow:hidden;
  isolation:isolate;
  transform:none !important;
  padding:0;
}
.downloads-modal-box::before {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:0;
  background:
    linear-gradient(168deg,
      color-mix(in srgb, var(--glass-panel) 72%, var(--text-primary) 4%) 0%,
      var(--glass-panel) 42%,
      color-mix(in srgb, var(--glass-panel) 92%, var(--bg-main) 8%) 100%);
  -webkit-backdrop-filter:blur(var(--menu-glass-blur, var(--glass-blur))) saturate(112%) brightness(1.02);
  backdrop-filter:blur(var(--menu-glass-blur, var(--glass-blur))) saturate(112%) brightness(1.02);
  box-shadow:inset 0 1px 0 color-mix(in srgb, var(--text-primary) 4%, transparent);
}
.downloads-modal-box::after {
  content:'';
  position:absolute;
  top:0;
  left:0;
  right:0;
  height:42%;
  pointer-events:none;
  z-index:0;
  background:linear-gradient(180deg, color-mix(in srgb, var(--text-primary) 5%, transparent), transparent 72%);
}
.downloads-stage {
  position:relative;
  z-index:1;
  width:100%;
  height:100%;
  min-height:100dvh;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:72px 20px 116px;
  box-sizing:border-box;
  overflow-x:hidden;
  overflow-y:auto;
  overscroll-behavior:contain;
  pointer-events:none;
  scrollbar-width:none;
}
.downloads-stage::-webkit-scrollbar {
  display:none;
}
.downloads-stage::after {
  content:'';
  position:absolute;
  inset:0;
  pointer-events:none;
  z-index:2;
  box-shadow:
    inset 0 0 90px color-mix(in srgb, var(--bg-main) var(--depth-menu-inset, 14)%, transparent),
    inset 0 -48px 72px color-mix(in srgb, var(--bg-main) 10%, transparent);
}
.downloads-stage.is-ready,
.downloads-stage.is-spreading {
  pointer-events:auto;
}
.downloads-intro-pct {
  position:fixed;
  left:50%;
  bottom:88px;
  transform:translateX(-50%);
  z-index:30;
  color:var(--text-primary);
  opacity:0.55;
  font-size:0.78rem;
  letter-spacing:0.14em;
  font-variant-numeric:tabular-nums;
  pointer-events:none;
  transition:opacity 0.4s ease, visibility 0.4s ease;
}
.downloads-intro-pct.is-hidden {
  opacity:0;
  visibility:hidden;
}
.downloads-list {
  position:relative;
  z-index:3;
  width:min(420px, 100%);
  max-width:calc(100% - 8px);
  display:flex;
  flex-direction:column;
  align-items:stretch;
  gap:12px;
  overflow:visible;
  pointer-events:auto;
}
/* Loader host: solo móvil lo activa en is-charging; desktop siempre oculto */
.downloads-loader {
  display:none !important;
}
.downloads-stage.is-charging .downloads-list {
  gap:0;
}
.download-item--animate {
  flex-shrink:0;
}
.download-item--animate.is-behind {
  display:none;
}
.download-item--animate.is-entering {
  display:flex;
  animation:downloadsCardIn 0.52s cubic-bezier(0.22, 1, 0.36, 1) both;
  animation-delay:var(--dl-delay, 0ms);
}
@keyframes downloadsCardIn {
  from {
    opacity:0;
    transform:translateY(10px) scale(0.97);
  }
  to {
    opacity:1;
    transform:none;
  }
}
.download-item-energy {
  position:absolute;
  left:0;
  top:0;
  bottom:0;
  width:0%;
  border-radius:inherit;
  background:linear-gradient(
    90deg,
    color-mix(in srgb, var(--text-primary) 6%, transparent),
    color-mix(in srgb, var(--text-primary) 18%, transparent)
  );
  z-index:0;
  pointer-events:none;
  transition:width 0.12s linear, opacity 0.45s ease;
}
.download-item-energy.is-draining {
  opacity:0;
}
.download-item--animate svg,
.download-item--animate .download-item-text,
.download-item--animate .download-item-arrow {
  position:relative;
  z-index:1;
}
.downloads-stage.is-ready .download-item--animate {
  display:flex;
}
@media (prefers-reduced-motion: reduce) {
  .download-item--animate,
  .download-item-energy,
  .downloads-intro-pct {
    transition:none !important;
  }
  .download-item--animate.is-entering {
    animation:none;
  }
}
.download-item {
  display:flex;
  align-items:center;
  gap:16px;
  padding:var(--menu-card-pad-y, 18px) var(--menu-card-pad-x, 20px) var(--menu-card-pad-y, 18px) calc(var(--menu-card-pad-x, 20px) + 4px);
  position:relative;
  overflow:hidden;
  text-decoration:none;
  cursor:pointer;
  background:color-mix(in srgb, var(--btn-glass-surface, var(--btn-surface)) 88%, var(--text-primary) 3%);
  border:1px solid color-mix(in srgb, var(--text-primary) 6%, transparent);
  border-radius:var(--menu-card-radius, 14px);
  box-shadow:
    0 1px 2px color-mix(in srgb, black 10%, transparent),
    0 5px 18px color-mix(in srgb, var(--bg-main) 14%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 5%, transparent);
  transition:
    transform 0.32s cubic-bezier(.22, 1, .36, 1),
    box-shadow 0.32s cubic-bezier(.22, 1, .36, 1),
    border-color 0.32s cubic-bezier(.22, 1, .36, 1),
    background 0.32s cubic-bezier(.22, 1, .36, 1),
    filter 0.32s cubic-bezier(.22, 1, .36, 1);
}
.download-item::before {
  content:'';
  position:absolute;
  left:0;
  top:20%;
  bottom:20%;
  width:2.5px;
  border-radius:0 2px 2px 0;
  background:var(--accent);
  transform:scaleY(0);
  transform-origin:center;
  transition:transform 0.32s cubic-bezier(.22, 1, .36, 1);
  z-index:2;
}
.download-item:hover {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, color-mix(in srgb, var(--text-primary) 9%, transparent)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  transform:translateY(-2px) scale(1.025);
  box-shadow:
    0 2px 6px color-mix(in srgb, black 14%, transparent),
    0 14px 36px color-mix(in srgb, var(--bg-main) 22%, transparent),
    0 0 0 1px color-mix(in srgb, var(--btn-border-hover, var(--accent)) 35%, transparent),
    0 0 22px color-mix(in srgb, var(--accent) 28%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 10%, transparent);
}
.download-item:hover::before {
  transform:scaleY(1);
}
.download-item svg {
  position:relative;
  z-index:1;
  width:20px;
  height:20px;
  flex-shrink:0;
  stroke:var(--text-primary);
  fill:none;
  opacity:0.72;
  transition:
    stroke 0.32s cubic-bezier(.22, 1, .36, 1),
    opacity 0.32s cubic-bezier(.22, 1, .36, 1),
    transform 0.32s cubic-bezier(.22, 1, .36, 1),
    filter 0.32s cubic-bezier(.22, 1, .36, 1);
}
.download-item:hover svg {
  stroke:var(--btn-text-hover, var(--text-primary));
  opacity:1;
  transform:scale(1.08);
  filter:drop-shadow(0 0 6px color-mix(in srgb, var(--btn-text-hover, var(--text-primary)) 45%, transparent));
}
.download-item-text {
  position:relative;
  z-index:1;
  display:flex;
  flex-direction:column;
  gap:3px;
  flex:1;
  min-width:0;
}
.download-item-label {
  color:var(--text-primary);
  font-size:0.76rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:500;
  opacity:0.82;
  transition:
    opacity 0.32s cubic-bezier(.22, 1, .36, 1),
    color 0.32s cubic-bezier(.22, 1, .36, 1);
}
.download-item:hover .download-item-label {
  opacity:1;
  color:var(--btn-text-hover, var(--text-primary));
}
.download-item-sub {
  color:var(--text-primary);
  opacity:0.4;
  font-size:0.7rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  transition:opacity 0.32s cubic-bezier(.22, 1, .36, 1);
}
.download-item:hover .download-item-sub {
  opacity:0.55;
}
.download-item-arrow {
  position:relative;
  z-index:1;
  color:var(--text-primary);
  opacity:0.4;
  font-size:1.1rem;
  transition:
    opacity 0.32s cubic-bezier(.22, 1, .36, 1),
    transform 0.32s cubic-bezier(.22, 1, .36, 1);
}
.download-item:hover .download-item-arrow {
  opacity:0.85;
  transform:translateY(1px);
}
.download-item-text--dual .download-item-label-stack,
.download-item-text--dual .download-item-sub-stack {
  position:relative;
  display:block;
}
.download-item-text--dual .download-item-sub-stack {
  min-height:1em;
  margin-top:3px;
}
.download-item-label--prep,
.download-item-label--real,
.download-item-sub--prep,
.download-item-sub--real {
  display:block;
  transition:
    opacity 0.55s ease,
    transform 0.55s cubic-bezier(.22, 1, .36, 1);
}
.download-item-label--real,
.download-item-sub--real {
  position:absolute;
  left:0;
  top:0;
  right:0;
  opacity:0;
  transform:translateY(5px);
}
.is-anchor.is-relabeling .download-item-label--prep,
.is-anchor.is-relabeling .download-item-sub--prep {
  opacity:0;
  transform:translateY(-5px);
}
.is-anchor.is-relabeling .download-item-label--real {
  opacity:0.82;
  transform:translateY(0);
}
.is-anchor.is-relabeling .download-item-sub--real {
  opacity:0.4;
  transform:translateY(0);
}
.is-anchor.is-relabeling:hover .download-item-label--real {
  opacity:1;
}

/* ================= CALCULADORA DE CUOTA (MEJORADA) ================= */
.calc-modal-box { max-width:480px; }
.calc-row {
  text-align:center;
  margin-bottom:26px;
}
.calc-label {
  color:var(--text-primary);
  opacity:0.5;
  font-size:0.72rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
  margin-bottom:6px;
}
.calc-value {
  color:var(--text-primary);
  font-size:1.3rem;
  font-weight:300;
  letter-spacing:0.03em;
}
.calc-selects {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:12px;
  margin-bottom:26px;
}
.select-wrap { position:relative; }
.select-wrap label {
  display:block;
  color:var(--text-primary);
  opacity:0.5;
  font-size:0.65rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  margin-bottom:8px;
  text-align:center;
}
.select-wrap select {
  appearance:none;
  -webkit-appearance:none;
  width:100%;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:8px;
  color:var(--text-primary);
  font-family:inherit;
  font-size:0.82rem;
  letter-spacing:0.03em;
  text-align:center;
  padding:11px 22px 11px 10px;
  cursor:pointer;
}
.select-wrap::after {
  content:'▾';
  position:absolute;
  right:10px;
  bottom:12px;
  color:var(--text-primary);
  opacity:0.55;
  font-size:0.75rem;
  pointer-events:none;
}
/* Nota de tasa */
.select-note {
  display:block;
  color:var(--text-primary);
  opacity:0.35;
  font-size:0.6rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  text-align:center;
  margin-top:5px;
}
.select-wrap select:focus { outline:none; border-color:color-mix(in srgb, var(--text-primary) 40%, transparent); }
.calc-divider {
  height:1px;
  background:var(--border);
  margin-bottom:22px;
}
.calc-results {
  display:flex;
  flex-direction:column;
  gap:14px;
  margin-bottom:22px;
}
.calc-result-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:var(--text-primary);
}
.calc-result-row span {
  opacity:0.55;
  font-size:0.82rem;
  letter-spacing:0.03em;
  text-transform:uppercase;
}
.calc-result-row strong {
  font-weight:300;
  font-size:1rem;
  letter-spacing:0.02em;
}
.calc-result-row.highlight {
  border-top:1px solid var(--border);
  padding-top:14px;
  margin-top:2px;
}
.calc-result-row.highlight strong {
  color:var(--text-primary);
  font-size:1.2rem;
  font-weight:400;
}
/* Ingreso recomendado */
.calc-result-row.income {
  border-top:1px solid var(--border);
  padding-top:14px;
  margin-top:2px;
}
.calc-result-row.income span {
  opacity:0.4;
  font-size:0.75rem;
}
.calc-result-row.income strong {
  font-size:0.9rem;
  opacity:0.65;
  font-weight:300;
}
.calc-income-note {
  color:var(--text-primary);
  opacity:0.3;
  font-size:0.62rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  text-align:center;
  margin-top:10px;
  line-height:1.5;
}
/* CTA WhatsApp en calculadora */
.calc-cta {
  display:block;
  width:100%;
  background:var(--btn-glass-surface, var(--btn-surface));
  border:var(--btn-border-width, 2px) solid var(--btn-border, var(--glass-border));
  color:var(--text-primary);
  font-family:inherit;
  font-size:0.78rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  text-align:center;
  text-decoration:none;
  padding:15px 10px;
  cursor:pointer;
  transition:background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
  margin-top:22px;
}
.calc-cta:hover {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, var(--glass-border)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
}

/* ================= ESTADO DEL PROYECTO — BARRAS DE PROGRESO ================= */
.progress-overall {
  margin-bottom:30px;
  padding-bottom:26px;
  border-bottom:1px solid var(--track-bg);
}
.progress-overall-header {
  display:flex;
  align-items:baseline;
  justify-content:space-between;
  margin-bottom:12px;
}
.progress-overall-label {
  color:var(--text-primary);
  font-size:0.72rem;
  letter-spacing:0.14em;
  text-transform:uppercase;
  opacity:0.5;
}
.progress-overall-pct {
  color:var(--text-primary);
  font-size:1.6rem;
  font-weight:300;
  letter-spacing:0.02em;
}
.progress-overall-track {
  width:100%;
  height:4px;
  background:var(--track-bg);
  border-radius:2px;
  overflow:hidden;
}
.progress-overall-fill {
  height:100%;
  background:var(--accent);
  border-radius:2px;
  width:0%;
  transition:width 1.1s cubic-bezier(.22,1,.36,1);
}
.progress-list {
  display:flex;
  flex-direction:column;
  gap:22px;
}
.progress-item {}
.progress-header {
  display:flex;
  align-items:center;
  justify-content:space-between;
  margin-bottom:10px;
}
.progress-label {
  color:var(--text-primary);
  font-size:0.82rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  opacity:0.75;
}
.progress-pct {
  color:var(--text-primary);
  font-size:0.82rem;
  letter-spacing:0.06em;
  font-weight:300;
  opacity:0.55;
}
.progress-track {
  width:100%;
  height:3px;
  background:var(--track-bg);
  border-radius:2px;
  overflow:hidden;
}
.progress-fill {
  height:100%;
  background:var(--accent);
  border-radius:2px;
  width:0%;
  transition:width 1s cubic-bezier(.22,1,.36,1);
}
.progress-fill.animated { /* clase aplicada por JS */ }
.progress-status {
  font-size:0.68rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
  margin-top:6px;
}
/* Jerarquía sutil por estado — misma paleta monocromática */
.progress-status.status-completada  { color:var(--text-primary); opacity:0.55; }
.progress-status.status-ejecucion   { color:var(--text-primary); opacity:0.4; }
.progress-status.status-proximamente{ color:var(--text-primary); opacity:0.25; }
.progress-delivery {
  display:flex;
  align-items:center;
  gap:10px;
  margin-top:28px;
  padding-top:22px;
  border-top:1px solid var(--border);
}
.progress-delivery-label {
  color:var(--text-primary);
  opacity:0.45;
  font-size:0.72rem;
  letter-spacing:0.1em;
  text-transform:uppercase;
}
.progress-delivery-value {
  color:var(--text-primary);
  font-size:0.9rem;
  font-weight:300;
  letter-spacing:0.04em;
}
.progress-updated-note {
  color:var(--text-primary);
  opacity:0.28;
  font-size:0.6rem;
  letter-spacing:0.05em;
  text-transform:uppercase;
  text-align:center;
  margin-top:16px;
  line-height:1.5;
}

/* ================= GALERÍA — reutiliza .tour360-popup / .tour360-card ================= */

/* ================= LIGHTBOX DE RENDERS (SWIPE) ================= */
.lightbox {
  position:fixed;
  top:0; left:0;
  width:100%; height:100%;
  background:rgba(0,0,0,0.97);
  z-index:1050;
  display:flex;
  align-items:center;
  justify-content:center;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.3s ease, visibility 0s linear 0.3s;
  touch-action:pan-y;
}
.lightbox.active {
  opacity:1;
  visibility:visible;
  transition:opacity 0.3s ease, visibility 0s linear 0s;
}
.lightbox-track {
  display:flex;
  width:100%;
  height:100%;
  transition:transform 0.3s cubic-bezier(.22,1,.36,1);
}
.lightbox-slide {
  flex:0 0 100%;
  height:100%;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:0 8%;
}
.lightbox-slide-inner {
  width:100%;
  max-width:min(920px, 92vw);
  aspect-ratio:16 / 10;
  background:var(--placeholder-bg);
  border:1px solid color-mix(in srgb, #fff 8%, transparent);
  border-radius:12px;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  padding:0;
  overflow:hidden;
}
.lightbox-slide-inner img {
  width:100%;
  height:100%;
  object-fit:cover;
  display:block;
}
.lightbox-slide-inner span {
  color:var(--text-primary);
  opacity:0.65;
  font-size:0.85rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  padding:8%;
}
.lightbox-arrow {
  position:fixed;
  top:50%;
  transform:translateY(-50%);
  color:var(--text-primary);
  font-size:2.4rem;
  font-weight:300;
  opacity:0.6;
  cursor:pointer;
  z-index:1100;
  padding:10px 16px;
  transition:opacity 0.3s ease;
  user-select:none;
}
.lightbox-arrow:hover { opacity:1; }
.lightbox-arrow.prev { left:6px; }
.lightbox-arrow.next { right:6px; }
.lightbox-counter {
  position:fixed;
  bottom:24px;
  left:50%;
  transform:translateX(-50%);
  color:var(--text-primary);
  opacity:0.6;
  font-size:0.75rem;
  letter-spacing:0.1em;
  z-index:1100;
}
@media (max-width: 600px) {
  .lightbox-arrow { font-size:1.8rem; padding:8px 10px; }
}

/* ================= SUBMENÚ CONTACTO (mismo tema que .menu-item) ================= */
.contact-link {
  display:flex;
  align-items:center;
  gap:16px;
  padding:var(--menu-card-pad-y) var(--menu-card-pad-x) var(--menu-card-pad-y) calc(var(--menu-card-pad-x) + 4px);
  cursor:pointer;
  position:relative;
  background:color-mix(in srgb, var(--btn-glass-surface, var(--btn-surface)) 88%, var(--text-primary) 3%);
  border:1px solid color-mix(in srgb, var(--text-primary) 6%, transparent);
  border-radius:var(--menu-card-radius, 14px);
  box-shadow:
    0 1px 2px color-mix(in srgb, black 10%, transparent),
    0 5px 18px color-mix(in srgb, var(--bg-main) 14%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 5%, transparent);
  transition:
    transform 0.32s cubic-bezier(.22,1,.36,1),
    box-shadow 0.32s cubic-bezier(.22,1,.36,1),
    border-color 0.32s cubic-bezier(.22,1,.36,1),
    background 0.32s cubic-bezier(.22,1,.36,1),
    filter 0.32s cubic-bezier(.22,1,.36,1);
  text-decoration:none;
  color:inherit;
}
.contact-link::before {
  content:'';
  position:absolute;
  left:0;
  top:20%;
  bottom:20%;
  width:2.5px;
  border-radius:0 2px 2px 0;
  background:var(--accent);
  transform:scaleY(0);
  transform-origin:center;
  transition:transform 0.32s cubic-bezier(.22,1,.36,1);
}
.contact-link:hover,
.contact-link.is-active {
  background:var(--btn-glass-hover, var(--hover));
  color:var(--btn-text-hover, var(--text-primary));
  border-color:var(--btn-border-hover, var(--btn-border, color-mix(in srgb, var(--text-primary) 9%, transparent)));
  border-width:var(--btn-border-width-hover, var(--btn-border-width, 2px));
  transform:translateY(-2px) scale(1.025);
  box-shadow:
    0 2px 6px color-mix(in srgb, black 14%, transparent),
    0 14px 36px color-mix(in srgb, var(--bg-main) 22%, transparent),
    0 0 0 1px color-mix(in srgb, var(--btn-border-hover, var(--accent)) 35%, transparent),
    0 0 22px color-mix(in srgb, var(--accent) 28%, transparent),
    inset 0 1px 0 color-mix(in srgb, var(--text-primary) 10%, transparent);
}
.contact-link:hover::before,
.contact-link.is-active::before {
  transform:scaleY(1);
}
.contact-link svg {
  width:20px;
  height:20px;
  flex-shrink:0;
  stroke:var(--text-primary);
  fill:none;
  opacity:0.72;
  transition:
    stroke 0.32s cubic-bezier(.22,1,.36,1),
    opacity 0.32s cubic-bezier(.22,1,.36,1),
    transform 0.32s cubic-bezier(.22,1,.36,1),
    filter 0.32s cubic-bezier(.22,1,.36,1);
}
.contact-link:hover svg,
.contact-link.is-active svg {
  stroke:var(--btn-text-hover, var(--text-primary));
  opacity:1;
  transform:scale(1.08);
  filter:drop-shadow(0 0 6px color-mix(in srgb, var(--btn-text-hover, var(--text-primary)) 45%, transparent));
}
.contact-link-label {
  color:var(--text-primary);
  font-size:0.76rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  font-weight:500;
  opacity:0.82;
  white-space:nowrap;
  transition:
    opacity 0.32s cubic-bezier(.22,1,.36,1),
    color 0.32s cubic-bezier(.22,1,.36,1),
    transform 0.32s cubic-bezier(.22,1,.36,1);
}
.contact-link-sub {
  color:var(--text-primary);
  font-size:0.68rem;
  letter-spacing:0.03em;
  opacity:0.42;
  margin-top:3px;
  font-weight:450;
}
.contact-link-text {
  display:flex;
  flex-direction:column;
}
.contact-link:hover .contact-link-label,
.contact-link.is-active .contact-link-label {
  opacity:1;
  color:var(--btn-text-hover, var(--text-primary));
}

/* ================= RESPONSIVE ================= */
@media (max-width: 600px) {
  .project-cover-content {
    padding-top: 0;
    padding-left: var(--mobile-chrome-left, 1.15rem);
    padding-right: var(--mobile-chrome-right, 1.15rem);
    padding-bottom: var(--mobile-hero-fab-clearance, calc(52px + 1.15rem + 1.35rem));
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-content {
    padding-left: var(--mobile-chrome-left, 1.15rem);
    padding-right: var(--mobile-chrome-right, 1.15rem);
    padding-bottom: var(--mobile-hero-fab-clearance, calc(52px + 1.15rem + 1.35rem));
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-hero-row {
    grid-template-columns:1fr;
    grid-template-rows:auto auto auto;
    row-gap:14px;
    column-gap:0;
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-hero-copy {
    grid-column:1;
    grid-row:1;
    max-width:none;
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--start,
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--end {
    grid-column:1;
    justify-self:center;
    width:100%;
    display:flex;
    justify-content:center;
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--start {
    grid-row:2;
    width:0;
    height:0;
    min-height:0;
    margin:0;
    padding:0;
    overflow:visible;
    pointer-events:none;
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--start #mainMenuOpenBtn {
    pointer-events:auto;
  }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--end { grid-row:2; }
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-btn {
    width:75%;
    max-width:75%;
    justify-content:center;
  }
  .project-cover[data-hero-layout="bottom-bar"] #mainMenuOpenBtn {
    width:var(--mobile-landing-fab-size, 52px) !important;
    max-width:var(--mobile-landing-fab-size, 52px) !important;
  }
  .project-cover-logo { width:64px; max-width:64px; margin-bottom:14px; }
  .project-cover-logo.is-avatar { width:56px; max-width:56px; height:56px; }
  .project-cover-name { font-size:1.2rem; letter-spacing:0.16em; }
  .project-cover-tagline { margin-bottom:1.35rem; letter-spacing:0.2em; }
  .project-cover-buttons .project-cover-btn { padding:12px 24px; font-size:0.68rem; }
  .project-cover-btn { padding:14px 28px; font-size:0.78rem; }
  /* Iniciar (Nivel 1) por encima de chrome de navegación */
  .project-cover-buttons #heroStartBtn,
  .project-cover[data-hero-layout="bottom-bar"] .project-cover-slot--end .project-cover-btn {
    position:relative;
    z-index:2;
  }
  .units-popup:not(.tour360-popup):not(.units-viviendas-popup),
  .pdf-modal,
  .content-modal:not(.auth-experience-modal):not(.downloads-modal) {
    align-items:flex-start;
    padding-top:44px;
    padding-bottom:70px;
  }
  #descargasModal.downloads-modal.content-modal,
  .downloads-modal.content-modal {
    align-items:stretch !important;
    justify-content:stretch !important;
    padding:0 !important;
  }
  #descargasModal .downloads-modal-box,
  .downloads-modal-box {
    max-height:none !important;
    height:100% !important;
    min-height:0 !important;
  }
  #descargasModal .popup-box-scroll,
  .downloads-modal-box > .popup-box-scroll {
    max-height:none !important;
    height:100% !important;
    min-height:0 !important;
    padding:0 !important;
    overflow:hidden !important;
  }
  #descargasModal .downloads-stage,
  .downloads-modal .downloads-stage {
    max-height:none !important;
    min-height:0 !important;
    height:auto !important;
    flex:1 1 auto;
    overflow-y:auto !important;
    align-items:center;
  }
  #descargasModal .downloads-list,
  .downloads-modal .downloads-list {
    max-height:none !important;
    height:auto !important;
    overflow:visible !important;
    width:min(420px, calc(100% - 48px));
    max-width:min(420px, calc(100vw - 48px));
    align-self:center;
    margin-left:auto;
    margin-right:auto;
  }
  .units-popup.tour360-popup,
  .units-popup.units-viviendas-popup {
    align-items:stretch;
    justify-content:stretch;
  }
  .units-popup.tour360-popup {
    --tour360-inset:12px;
    padding:var(--tour360-inset);
  }
  .units-popup.units-viviendas-popup {
    --units-inset:12px;
    padding:var(--units-inset);
  }
  .units-popup-box .popup-box-scroll { padding:30px 18px 24px; max-height:calc(100svh - 114px); }
  .content-modal-box:not(.auth-experience-box):not(.downloads-modal-box) .popup-box-scroll { padding:26px 18px; max-height:calc(100svh - 114px); }
  .units-grid:not(.units-viviendas-grid) { grid-template-columns:1fr; max-width:320px; gap:18px; }
  .pdf-modal-box { width:92vw; aspect-ratio:9/16; height:auto; max-height:calc(100svh - 114px); }
  .modal-close { display:none !important; }
  .amenities-list { grid-template-columns:1fr; }
  .calc-selects { grid-template-columns:1fr 1fr; }
  .calc-selects .select-wrap:last-child { grid-column:1 / -1; }
}

/* ================= AJUSTES — MÓDULO DE TEMAS ================= */
.settings-section {
  margin-bottom:34px;
}
.settings-section:last-of-type { margin-bottom:0; }
.settings-section-title {
  color:var(--text-primary);
  opacity:0.5;
  font-size:0.7rem;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
  margin-bottom:16px;
}

.theme-swatch-grid {
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:14px 12px;
  justify-items:center;
  padding:4px 2px;
}
.theme-swatch {
  position:relative;
  width:36px;
  height:36px;
  border-radius:50%;
  border:2.5px solid color-mix(in srgb, var(--text-primary) 11%, transparent);
  padding:0;
  cursor:pointer;
  overflow:hidden;
  isolation:isolate;
  -webkit-font-smoothing:antialiased;
  backface-visibility:hidden;
  transform:translateZ(0);
  box-shadow:
    0 2px 10px color-mix(in srgb, var(--bg-main) 30%, transparent),
    inset 0 0 0 1px color-mix(in srgb, var(--text-primary) 4%, transparent);
  transition:border-width 0.22s ease, transform 0.22s ease, box-shadow 0.22s ease;
}
.theme-swatch-base {
  position:absolute;
  inset:0;
  border-radius:50%;
  pointer-events:none;
  background:
    radial-gradient(circle at 30% 26%, color-mix(in srgb, var(--swatch-bg) 78%, white 22%), transparent 56%),
    linear-gradient(
      158deg,
      color-mix(in srgb, var(--swatch-bg) 88%, white 12%) 0%,
      var(--swatch-bg) 52%,
      color-mix(in srgb, var(--swatch-bg) 86%, black 14%) 100%
    );
}
.theme-swatch-accent {
  position:absolute;
  width:36%;
  height:36%;
  right:8%;
  bottom:8%;
  border-radius:50%;
  pointer-events:none;
  background:var(--swatch-accent);
  box-shadow:
    inset 0 1px 2px color-mix(in srgb, white 20%, transparent),
    inset 0 -1px 2px color-mix(in srgb, black 14%, transparent),
    0 1px 3px color-mix(in srgb, black 18%, transparent);
}
.theme-swatch:hover {
  transform:scale(1.06) translateZ(0);
}
.theme-swatch.selected {
  border:3px solid var(--text-primary);
  box-shadow:0 4px 16px color-mix(in srgb, var(--bg-main) 40%, transparent);
  animation:theme-swatch-selected 2.4s ease-in-out infinite;
}
@keyframes theme-swatch-selected {
  0%, 100% { transform:scale(1); }
  50% { transform:scale(1.05); }
}

.theme-swatch-grid.personalize-theme-grid {
  grid-template-columns:repeat(5, 1fr);
  gap:12px 10px;
  max-height:220px;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:2px 4px 6px;
}

/* Temas Signature / Premium — personalidades adicionales */
body[data-theme="carbon"] .glass-surface,
body[data-theme="carbon"] .main-menu::before {
  background-image:
    linear-gradient(135deg, color-mix(in srgb, var(--glass-surface) 94%, white 6%) 25%, transparent 25%, transparent 50%, color-mix(in srgb, var(--glass-surface) 94%, white 6%) 50%, color-mix(in srgb, var(--glass-surface) 94%, white 6%) 75%, transparent 75%, transparent);
  background-size:4px 4px;
}
body[data-theme="carbon"] .glass-surface {
  background-color:var(--glass-surface);
}

body[data-theme="purewhite"] .glass-surface,
body[data-theme="purewhite"] .outline-btn,
body[data-theme="purewhite"] .menu-item,
body[data-theme="purewhite"] .contact-link {
  box-shadow:0 4px 14px color-mix(in srgb, #000000 4%, transparent);
}

body[data-theme="copper"] .glass-surface {
  background:linear-gradient(165deg, color-mix(in srgb, var(--glass-surface) 88%, #8b6040 12%), var(--glass-surface));
}

body[data-theme="signaturered"] .toggle-switch.on .toggle-switch-knob {
  background:#ffffff;
}

#themeVisualPanel.theme-visual-panel .theme-visual-editor {
  display:none;
}
#themeVisualPanel.theme-visual-panel.is-editing .theme-visual-picker {
  display:none;
}
#themeVisualPanel.theme-visual-panel.is-editing .theme-visual-editor {
  display:block;
}

.personalize-create-theme-btn {
  width:100%;
  margin-top:14px;
  text-align:center;
}
.personalize-ai-theme-btn {
  width:100%;
  margin-top:8px;
  text-align:center;
}

.personalize-theme-picker-hint {
  margin:10px 0 0;
  text-align:center;
}

.custom-theme-editor-title {
  margin:0 0 14px;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--text-primary);
}

.custom-theme-rows {
  display:flex;
  flex-direction:column;
  gap:6px;
}
.custom-theme-group-header {
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#ffffff;
  opacity:1;
  margin:4px 0 2px;
  white-space:nowrap;
  line-height:1.3;
}
.custom-theme-block {
  display:flex;
  flex-direction:column;
  gap:4px;
}
.custom-theme-block-label {
  font-size:0.697rem; /* 0.82rem −15% */
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#ffffff;
  opacity:1;
  margin-bottom:2px;
  white-space:nowrap;
  line-height:1.3;
}
.custom-theme-block-body {
  display:flex;
  flex-direction:column;
  gap:4px;
}
.custom-theme-divider {
  height:0;
  border:none;
  border-top:1px solid color-mix(in srgb, var(--glass-border) 62%, transparent);
  margin:6px 0 8px;
}
.custom-theme-section {
  padding:0 0 2px;
}
.custom-theme-section--plain {
  padding-top:4px;
}
.custom-theme-section-label {
  font-size:0.578rem; /* 0.68rem −15% */
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#ffffff;
  opacity:1;
  margin-bottom:10px;
  white-space:nowrap;
  line-height:1.3;
}
.custom-theme-section-body {
  display:flex;
  flex-direction:column;
  gap:10px;
}
.custom-theme-row {
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  align-items:center;
  justify-content:flex-start;
  gap:8px;
  min-height:40px;
}
.custom-theme-row--tight {
  min-height:34px;
  gap:8px;
}
.custom-theme-row-label {
  font-size:0.82rem;
  font-weight:400;
  letter-spacing:normal;
  text-transform:none;
  color:#ffffff;
  opacity:0.92;
  flex:0 0 auto;
  width:auto;
  min-width:3.4rem;
  max-width:5.5rem;
  text-align:left;
  line-height:1.25;
  white-space:nowrap;
}
.custom-theme-pick-btn {
  flex:0 0 auto;
  min-width:118px;
  padding:10px 14px 10px 36px;
  font-size:0.68rem;
  text-align:center;
  position:relative;
  margin-left:0;
  border-radius:8px;
}
.custom-theme-pick-btn::before {
  content:'';
  position:absolute;
  left:12px;
  top:50%;
  width:14px;
  height:14px;
  border-radius:50%;
  transform:translateY(-50%);
  background:var(--pick-swatch, var(--accent));
  box-shadow:0 0 0 1px color-mix(in srgb, var(--text-primary) 18%, transparent);
}
.custom-theme-text-toggle {
  display:flex;
  flex-direction:row;
  flex-wrap:nowrap;
  gap:6px;
  flex:1 1 auto;
  min-width:0;
  justify-content:flex-start;
  align-items:center;
}
.custom-theme-depth-toggle,
.custom-theme-glass-toggle,
.custom-theme-mask-blur-toggle {
  flex-wrap:nowrap;
  justify-content:flex-start;
}
.custom-theme-depth-toggle .custom-theme-depth-btn,
.custom-theme-mask-blur-toggle .custom-theme-mask-blur-btn,
.custom-theme-glass-toggle .custom-theme-glass-btn,
.custom-theme-text-toggle .custom-theme-text-btn {
  flex:1 1 0;
  min-width:0;
  padding:8px 6px;
}
.custom-theme-text-btn,
.custom-theme-depth-btn,
.custom-theme-glass-btn,
.custom-theme-mask-blur-btn,
.custom-theme-border-width-btn {
  min-width:0;
  padding:8px 10px;
  border:1px solid var(--btn-border, var(--glass-border));
  border-radius:8px;
  background:var(--btn-glass-surface, var(--btn-surface));
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  font-size:0.68rem;
  letter-spacing:0.04em;
  cursor:pointer;
  transition:background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease, backdrop-filter 0.2s ease;
}
.custom-theme-text-btn.selected,
.custom-theme-depth-btn.selected,
.custom-theme-glass-btn.selected,
.custom-theme-mask-blur-btn.selected,
.custom-theme-border-width-btn.selected {
  border-color:color-mix(in srgb, var(--accent) 55%, var(--glass-border));
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  color:var(--text-primary);
  opacity:1;
}
.custom-theme-text-btn:hover,
.custom-theme-depth-btn:hover,
.custom-theme-glass-btn:hover,
.custom-theme-mask-blur-btn:hover,
.custom-theme-border-width-btn:hover {
  opacity:1;
}
.custom-theme-border-width-toggle {
  flex-wrap:nowrap;
  justify-content:flex-start;
}
.custom-theme-border-width-toggle .custom-theme-border-width-btn {
  flex:1 1 0;
  min-width:0;
  padding:8px 6px;
}

.custom-theme-row-hint {
  margin:-4px 0 8px;
  padding:0 2px;
  font-size:0.62rem;
  line-height:1.45;
  letter-spacing:0.03em;
  color:var(--text-secondary);
  opacity:var(--text-muted-opacity);
}

.custom-theme-editor-toolbar {
  display:none;
}

.theme-visual-editor .custom-theme-back-btn {
  margin:0 0 14px;
}

.custom-theme-name-field {
  margin-bottom:14px;
}

.mis-temas-list {
  display:flex;
  flex-direction:column;
  gap:2px;
}
.mis-tema-item {
  display:flex;
  align-items:center;
  gap:10px;
  min-height:40px;
  padding:6px 8px;
  border-radius:8px;
  border-top:none;
  transition:background 0.18s ease;
}
.mis-tema-item:hover {
  background:color-mix(in srgb, var(--accent) 6%, transparent);
}
.mis-tema-item.is-editing {
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--accent) 35%, transparent);
}
.mis-tema-thumb {
  position:relative;
  width:22px;
  height:22px;
  flex-shrink:0;
  border-radius:6px;
  border:none;
  padding:0;
  margin:0;
  background:var(--thumb-bg, var(--bg-main));
  box-shadow:0 0 0 1px color-mix(in srgb, var(--text-primary) 12%, transparent);
  overflow:hidden;
  cursor:pointer;
}
.mis-tema-thumb:hover {
  box-shadow:0 0 0 1px color-mix(in srgb, var(--text-primary) 28%, transparent);
}
.mis-tema-thumb:focus-visible {
  outline:2px solid color-mix(in srgb, var(--accent) 70%, transparent);
  outline-offset:2px;
}
.mis-tema-thumb-accent {
  position:absolute;
  right:2px;
  bottom:2px;
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--thumb-accent, var(--accent));
  box-shadow:0 0 0 1px color-mix(in srgb, #000 18%, transparent);
}
.mis-tema-item-name {
  flex:1;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  font-size:0.78rem;
  color:var(--text-primary);
  letter-spacing:0.02em;
}
.mis-tema-item-actions {
  display:flex;
  align-items:center;
  gap:4px;
  flex-shrink:0;
}
.mis-tema-icon-btn {
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  cursor:pointer;
  color:#ffffff;
  opacity:0.5;
  transition:opacity 0.18s ease, background 0.18s ease;
}
body.theme-light .mis-tema-icon-btn {
  color:#111111;
}
.mis-tema-item:hover .mis-tema-icon-btn {
  opacity:0.78;
}
.mis-tema-icon-btn:hover {
  opacity:1;
  background:color-mix(in srgb, var(--text-primary) 6%, transparent);
}
.mis-tema-icon-btn.is-project-default {
  opacity:1;
  color:#ffffff;
}
.mis-tema-icon-btn.is-project-default svg {
  fill:#ffffff;
  stroke:#ffffff;
}
.mis-tema-icon-btn.is-project-default:hover {
  background:color-mix(in srgb, #ffffff 12%, transparent);
}
.mis-tema-icon-btn svg {
  width:16px;
  height:16px;
  stroke:currentColor;
  fill:none;
}
.mis-tema-icon-slot {
  display:inline-block;
  width:28px;
  height:28px;
  flex-shrink:0;
}

.personalize-v2-create-style-btn {
  display:block;
  width:100%;
  margin-top:12px;
  text-align:center;
}

.personalizar-v2-editor-phases {
  display:flex;
  flex-direction:column;
  gap:16px;
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}

.personalizar-v2-editor-phases > .personalize-block {
  width:100%;
  max-width:100%;
  min-width:0;
  box-sizing:border-box;
}

.personalizar-v2-editor-phases .custom-theme-name-field {
  margin-bottom:0;
}

/* Style V.3 — barras de color (reemplazan “Elegir color” + swatch) */
#mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar,
#mainMenuListPersonalizarV2 .custom-theme-color-bar,
body[data-button-glass="soft"] #mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar,
body[data-button-glass="glass"] #mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar,
body[data-button-glass="solid"] #mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar {
  flex:0 0 auto;
  display:inline-block;
  width:92px;
  min-width:80px;
  max-width:min(100px, 100%);
  height:32px;
  min-height:30px;
  padding:0 !important;
  margin:0;
  font-size:0;
  line-height:0;
  letter-spacing:0;
  text-transform:none;
  color:transparent !important;
  overflow:hidden;
  white-space:nowrap;
  cursor:pointer;
  border-radius:8px;
  border:1px solid color-mix(in srgb, var(--text-primary) 22%, transparent) !important;
  border-width:1px !important;
  background:var(--pick-swatch, #161616) !important;
  background-image:none !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  transform:none !important;
  position:relative;
}
#mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar::before,
#mainMenuListPersonalizarV2 .custom-theme-color-bar::before {
  content:none !important;
  display:none !important;
}
#mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar:hover,
#mainMenuListPersonalizarV2 .custom-theme-color-bar:hover,
body[data-button-glass="soft"] #mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar:hover,
body[data-button-glass="glass"] #mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar:hover,
body[data-button-glass="solid"] #mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar:hover {
  background:var(--pick-swatch, #161616) !important;
  background-image:none !important;
  color:transparent !important;
  filter:none;
  opacity:1;
  transform:none !important;
  border-color:color-mix(in srgb, var(--text-primary) 38%, transparent) !important;
  border-width:1px !important;
  box-shadow:0 0 0 1px color-mix(in srgb, var(--text-primary) 10%, transparent) !important;
}
#mainMenuListPersonalizarV2 .custom-theme-pick-btn.custom-theme-color-bar:focus-visible,
#mainMenuListPersonalizarV2 .custom-theme-color-bar:focus-visible {
  outline:2px solid color-mix(in srgb, var(--accent) 65%, transparent);
  outline-offset:2px;
}

.custom-theme-color-popover {
  position:fixed;
  z-index:1400;
  display:none;
  width:220px;
  padding:12px;
  border-radius:12px;
  border:1px solid var(--glass-border);
  background:color-mix(in srgb, var(--glass-surface) 92%, transparent);
  backdrop-filter:blur(20px) saturate(140%);
  -webkit-backdrop-filter:blur(20px) saturate(140%);
  box-shadow:0 14px 36px color-mix(in srgb, #000 28%, transparent);
  opacity:0;
  transform:translateY(6px) scale(0.98);
  pointer-events:none;
  transition:opacity 0.16s ease, transform 0.16s ease;
}
.custom-theme-color-popover.is-open {
  display:block;
  opacity:1;
  transform:translateY(0) scale(1);
  pointer-events:auto;
}

.ctp-spectrum {
  margin-bottom:10px;
}
.ctp-spectrum-canvas {
  position:relative;
  height:118px;
  border-radius:8px;
  overflow:hidden;
  cursor:crosshair;
  touch-action:none;
  background:
    linear-gradient(to bottom, transparent, #000),
    linear-gradient(to right, #fff, transparent),
    hsl(var(--ctp-hue, 0), 100%, 50%);
  box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--text-primary) 10%, transparent);
}
.ctp-spectrum-cursor {
  position:absolute;
  width:14px;
  height:14px;
  border:2px solid #fff;
  border-radius:50%;
  box-shadow:0 0 0 1px color-mix(in srgb, #000 35%, transparent);
  transform:translate(-50%, -50%);
  pointer-events:none;
}

.ctp-hue {
  -webkit-appearance:none;
  appearance:none;
  width:100%;
  height:10px;
  margin:0 0 12px;
  border-radius:999px;
  border:1px solid color-mix(in srgb, var(--text-primary) 12%, transparent);
  background:linear-gradient(to right,
    #ff0000 0%,
    #ffff00 17%,
    #00ff00 33%,
    #00ffff 50%,
    #0000ff 67%,
    #ff00ff 83%,
    #ff0000 100%);
  cursor:pointer;
}
.ctp-hue::-webkit-slider-thumb {
  -webkit-appearance:none;
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid #fff;
  background:transparent;
  box-shadow:0 0 0 1px color-mix(in srgb, #000 35%, transparent);
}
.ctp-hue::-moz-range-thumb {
  width:14px;
  height:14px;
  border-radius:50%;
  border:2px solid #fff;
  background:transparent;
  box-shadow:0 0 0 1px color-mix(in srgb, #000 35%, transparent);
}

.ctp-fields {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:12px;
}
.ctp-field {
  display:flex;
  flex-direction:column;
  gap:4px;
}
.ctp-field > span {
  font-size:0.58rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.ctp-hex-input,
.ctp-rgb-input {
  width:100%;
  border:1px solid var(--glass-border);
  border-radius:8px;
  background:color-mix(in srgb, var(--btn-surface) 88%, transparent);
  color:var(--text-primary);
  font-size:0.72rem;
  padding:7px 9px;
  outline:none;
}
.ctp-hex-input:focus,
.ctp-rgb-input:focus {
  border-color:color-mix(in srgb, var(--accent) 45%, var(--glass-border));
}
.ctp-rgb-row {
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:6px;
}
.ctp-rgb-input {
  text-align:center;
  padding-left:4px;
  padding-right:4px;
  -moz-appearance:textfield;
}
.ctp-rgb-input::-webkit-outer-spin-button,
.ctp-rgb-input::-webkit-inner-spin-button {
  -webkit-appearance:none;
  margin:0;
}

.ctp-actions {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
}
.ctp-action-btn {
  padding:9px 10px;
  font-size:0.64rem;
  text-align:center;
}

.settings-info {
  text-align:center;
  margin-top:36px;
  padding-top:20px;
  border-top:1px solid var(--border);
}
.settings-info-line {
  color:var(--text-primary);
  opacity:0.25;
  font-size:0.65rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  line-height:1.8;
}

.toggle-switch {
  position:relative;
  width:46px;
  height:26px;
  border-radius:14px;
  background:var(--track-bg);
  border:1px solid var(--border);
  cursor:pointer;
  flex-shrink:0;
  transition:background 0.3s ease;
}
.toggle-switch.on { background:var(--accent); border-color:var(--accent); }
.toggle-switch-knob {
  position:absolute;
  top:2px; left:2px;
  width:20px; height:20px;
  border-radius:50%;
  background:var(--text-primary);
  transition:transform 0.3s cubic-bezier(.22,1,.36,1);
}
.toggle-switch.on .toggle-switch-knob { transform:translateX(20px); }

.custom-toggle-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:16px 18px;
  background:var(--bg-card);
  border:1px solid var(--border);
  border-radius:10px;
}
.custom-toggle-row-label {
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  font-size:0.8rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
}

@media (max-width: 600px) {
  .theme-swatch-grid { grid-template-columns:repeat(5, 1fr); gap:10px 8px; }
  .theme-swatch { width:32px; height:32px; border-width:2.5px; }
  .theme-swatch.selected { border-width:3px; }
  .theme-preset-swatch.theme-swatch { width:32px; height:32px; }
}

/* =========================================================
   MICROTRANSICIONES — fade + escala sutil (150–250ms) al
   abrir/cerrar módulos y modales. Puramente aditivo: solo se
   agrega "transition" a los mismos selectores .active que ya
   existían; el comportamiento de apertura/cierre no cambia.
   ========================================================= */
.units-popup,
.pdf-modal,
.content-modal {
  transition:opacity 0.2s ease, visibility 0s linear 0.2s;
}
.units-popup.active,
.pdf-modal.active,
.content-modal.active {
  transition:opacity 0.2s ease, visibility 0s linear 0s;
}
.units-popup-box,
.pdf-modal-box,
.content-modal-box:not(.video-modal-box):not(.amenities-modal-box):not(.downloads-modal-box) {
  transform:scale(0.97);
  transition:transform 0.2s cubic-bezier(.22,1,.36,1);
}
.units-popup.active .units-popup-box,
.pdf-modal.active .pdf-modal-box,
.content-modal.active .content-modal-box:not(.video-modal-box):not(.amenities-modal-box):not(.downloads-modal-box) {
  transform:scale(1);
}
.splash-intro-modal .video-modal-box,
#videoModal.active .video-modal-box {
  transform:none !important;
}
.sphere-modal {
  transition:opacity 0.2s ease, visibility 0s linear 0.2s;
}
.sphere-modal.active {
  transition:opacity 0.2s ease, visibility 0s linear 0s;
}
.main-menu-backdrop {
  transition:opacity 0.2s ease, visibility 0s linear 0.2s;
}
.main-menu-backdrop.active {
  transition:opacity 0.2s ease, visibility 0s linear 0s;
}

/* =========================================================
   TOAST — feedback breve (copiar enlace, favoritos, etc.)
   ========================================================= */
.app-toast {
  position:fixed;
  bottom:26px;
  left:50%;
  transform:translateX(-50%) translateY(12px);
  background:var(--bg-popup);
  backdrop-filter:blur(var(--panel-modal-blur, 16px)) saturate(140%);
  -webkit-backdrop-filter:blur(var(--panel-modal-blur, 16px)) saturate(140%);
  border:1px solid var(--border);
  color:var(--text-primary);
  font-size:0.78rem;
  letter-spacing:0.04em;
  padding:13px 22px;
  border-radius:10px;
  box-shadow:0 12px 32px rgba(0,0,0,0.5);
  z-index:1200;
  opacity:0;
  pointer-events:none;
  transition:opacity 0.2s ease, transform 0.2s ease;
  max-width:86vw;
  text-align:center;
}
.app-toast.show {
  opacity:1;
  transform:translateX(-50%) translateY(0);
}

/* =========================================================
   ICONOS SOBRE TARJETA DE VIVIENDA — favorito y compartir
   ========================================================= */
.unit-card-icons {
  position:absolute;
  top:10px;
  right:10px;
  display:flex;
  gap:8px;
  z-index:2;
}
.icon-btn {
  width:34px;
  height:34px;
  border-radius:50%;
  border:1px solid color-mix(in srgb, var(--text-primary) 25%, transparent);
  background:color-mix(in srgb, var(--bg-main) 55%, transparent);
  backdrop-filter:blur(6px);
  color:var(--text-primary);
  display:flex;
  align-items:center;
  justify-content:center;
  line-height:1;
  padding:0;
  cursor:pointer;
  transition:transform 0.2s cubic-bezier(.34,1.56,.64,1), background 0.2s ease, border-color 0.2s ease;
}
/* Peso óptico unificado: mismo grosor de línea, mismo tamaño y
   mismo centrado para cualquier ícono dentro de un botón circular. */
.icon-btn svg {
  width:20px; height:20px;
  stroke:currentColor;
  stroke-width:1.8;
  fill:none;
  display:block;
}
/* El glifo de corazón (favoritos) — stroke blanco premium, sin rojo */
.icon-btn.fav-btn {
  font-size:1rem;
  color:#fff;
}
.icon-btn.fav-btn svg {
  width:15px;
  height:15px;
  stroke:currentColor;
  stroke-width:1.6;
  fill:none;
  display:block;
}
.icon-btn:hover {
  background:color-mix(in srgb, var(--bg-main) 80%, transparent);
  border-color:color-mix(in srgb, var(--text-primary) 45%, transparent);
}
.icon-btn.fav-btn.active {
  color:#fff;
  border-color:rgba(255, 255, 255, 0.35);
  background:rgba(255, 255, 255, 0.08);
  box-shadow:0 0 14px rgba(255, 255, 255, 0.16);
}
.icon-btn.fav-btn.active svg {
  fill:rgba(255, 255, 255, 0.92);
  stroke:rgba(255, 255, 255, 0.92);
}
.icon-btn.pulse { transform:scale(1.18); }

/* =========================================================
   PESTAÑAS DEL MÓDULO VIVIENDAS — Todas / Favoritos
   ========================================================= */
.units-tabs {
  display:flex;
  justify-content:center;
  gap:10px;
  margin:0 auto 28px;
  max-width:700px;
}
.units-tab {
  background:var(--btn-glass-surface, var(--btn-surface));
  border:1px solid var(--btn-border, var(--border));
  color:var(--container-text, var(--text-primary));
  opacity:0.6;
  font-size:0.75rem;
  letter-spacing:0.07em;
  text-transform:uppercase;
  padding:10px 18px;
  border-radius:20px;
  cursor:pointer;
  transition:background 0.2s ease, opacity 0.2s ease, border-color 0.2s ease;
}
.units-tab:hover {
  opacity:0.85;
  background:var(--btn-glass-hover, var(--hover));
}
.units-tab.active {
  opacity:1;
  border-color:var(--accent);
  background:color-mix(in srgb, var(--accent) 16%, var(--btn-glass-surface, var(--btn-surface)));
}

/* =========================================================
   ESTADO VACÍO — sin favoritos
   ========================================================= */
.favorites-empty {
  text-align:center;
  max-width:420px;
  margin:0 auto;
  padding:30px 10px 10px;
}
.favorites-empty-icon {
  font-size:2.1rem;
  opacity:0.35;
  margin-bottom:18px;
}
.favorites-empty-text {
  color:var(--text-primary);
  opacity:0.6;
  font-weight:300;
  font-size:0.92rem;
  line-height:1.7;
  letter-spacing:0.02em;
  margin-bottom:26px;
}

@media (max-width: 600px) {
  .units-tabs { gap:8px; margin-bottom:20px; }
  .units-tab { padding:9px 14px; font-size:0.7rem; }
}

/* =========================================================
   ENTRADA DESDE ENLACE COMPARTIDO — fade + slide muy sutil
   al llegar a una vivienda mediante un enlace compartido.
   ========================================================= */
@keyframes sharedUnitIn {
  from { opacity:0; transform:translateY(14px); }
  to   { opacity:1; transform:translateY(0); }
}
.shared-unit-enter {
  animation:sharedUnitIn 200ms ease-out;
}

/* ================= AUTH EXPERIENCE MODAL ================= */
.auth-experience-modal.content-modal {
  align-items:center;
  justify-content:center;
  padding:32px 24px;
}

.auth-experience-modal .content-modal-box.auth-experience-box {
  width:min(580px, calc(100vw - 48px));
  max-width:580px;
  height:auto;
  max-height:calc(100vh - 64px);
  max-height:calc(100dvh - 64px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:44px 40px 38px;
  background:var(--glass-panel);
  backdrop-filter:blur(var(--glass-blur)) saturate(108%);
  -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(108%);
  border:1px solid var(--glass-border);
  border-radius:18px;
  box-shadow:
    var(--modal-shadow, 0 24px 70px rgba(0, 0, 0, 0.55)),
    var(--glass-inset-shadow, inset 0 1px 0 var(--glass-border-lit));
}

.auth-experience-views {
  position:relative;
  min-height:0;
}

.auth-experience-view {
  display:none;
  opacity:0;
  transform:translateY(12px);
  transition:opacity 0.28s ease, transform 0.28s ease;
}
.auth-experience-view.is-active {
  display:block;
  opacity:1;
  transform:translateY(0);
}
.auth-experience-view.is-exiting {
  opacity:0;
  transform:translateY(-8px);
}

.auth-gate-title {
  text-align:center;
  font-size:0.82rem;
  font-weight:700;
  letter-spacing:0.14em;
  text-transform:uppercase;
  margin-bottom:34px;
  color:var(--text-primary);
}

#authViewGate .auth-gate-title {
  margin-bottom:36px;
}

#authViewLogin .auth-gate-title,
#authViewRegister .auth-gate-title {
  font-size:1.12rem;
  letter-spacing:0.05em;
  text-transform:none;
  margin-bottom:14px;
}

.auth-gate-subtitle,
.auth-gate-benefits-label {
  display:none;
}

.auth-view-lead {
  text-align:center;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  font-size:0.88rem;
  line-height:1.55;
  margin:-4px 0 20px;
}

.auth-oauth-row {
  display:grid;
  grid-template-columns:1fr;
  gap:10px;
  margin-bottom:14px;
}
.auth-oauth-btn {
  min-height:48px;
  padding:13px 28px;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  border-radius:var(--menu-card-radius, 14px);
}
.auth-oauth-divider {
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 18px;
  font-size:0.68rem;
  letter-spacing:0.04em;
  color:var(--text-secondary);
  opacity:0.5;
  text-transform:lowercase;
}
.auth-oauth-divider::before,
.auth-oauth-divider::after {
  content:'';
  flex:1;
  height:1px;
  background:color-mix(in srgb, var(--glass-border) 75%, transparent);
}

.auth-gate-benefits {
  list-style:none;
  display:flex;
  flex-direction:column;
  gap:16px;
  margin-bottom:38px;
  padding:0;
}
#authViewGate .auth-gate-benefits {
  margin-bottom:40px;
}
.auth-gate-benefits li {
  position:relative;
  padding-left:28px;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  font-size:0.9rem;
  line-height:1.55;
}
.auth-gate-benefits li::before {
  content:'✓';
  position:absolute;
  left:0;
  top:0;
  color:#fff;
  font-weight:700;
}

.auth-gate-actions,
.auth-modal-form,
.auth-view-actions {
  display:flex;
  flex-direction:column;
  gap:14px;
}
#authViewGate .auth-gate-actions {
  margin-top:4px;
}

.auth-gate-actions .auth-action-btn,
.auth-experience-box .auth-oauth-btn,
.auth-experience-box .auth-action-btn {
  display:flex;
  align-items:center;
  justify-content:center;
  width:100%;
  min-height:48px;
  padding:13px 28px;
  font-size:0.72rem;
  font-weight:600;
  letter-spacing:0.14em;
  text-transform:uppercase;
  text-align:center;
  line-height:1.2;
  border-radius:var(--menu-card-radius, 14px);
  cursor:pointer;
}

.auth-experience-box .auth-oauth-btn:hover,
.auth-experience-box .auth-action-btn:hover {
  transform:translateY(-1px);
}

.auth-gate-actions .outline-btn,
.auth-action-btn {
  width:100%;
}

.auth-field {
  display:flex;
  flex-direction:column;
  gap:6px;
  position:relative;
}
.auth-field span {
  font-size:0.72rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  opacity:0.55;
  color:var(--text-primary);
}
.auth-field input {
  width:100%;
  height:46px;
  padding:0 14px;
  border:1px solid var(--glass-border);
  background:var(--bg-glass-surface, var(--panel-glass-surface));
  backdrop-filter:blur(calc(var(--bg-glass-blur, 16px) * 0.65)) saturate(125%);
  -webkit-backdrop-filter:blur(calc(var(--bg-glass-blur, 16px) * 0.65)) saturate(125%);
  border-radius:12px;
  background:var(--glass-surface);
  color:var(--text-primary);
  font-size:0.92rem;
  outline:none;
}
.auth-field input:focus {
  border-color:color-mix(in srgb, var(--text-primary) 45%, transparent);
}

.auth-field-row {
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:12px;
}

.auth-toggle-password {
  position:absolute;
  right:10px;
  bottom:10px;
  border:0;
  background:transparent;
  color:var(--text-primary);
  opacity:0.55;
  font-size:0.72rem;
  cursor:pointer;
}

.auth-remember-row,
.auth-terms-row {
  display:flex;
  align-items:flex-start;
  gap:10px;
  font-size:0.85rem;
  color:var(--text-primary);
  opacity:0.75;
}
.auth-remember-row input,
.auth-terms-row input {
  margin-top:3px;
  accent-color:var(--accent);
}

.auth-modal-message {
  margin-top:16px;
  text-align:center;
  font-size:0.85rem;
  line-height:1.5;
  min-height:1.2em;
  white-space:pre-line;
}
.auth-modal-message.error { color:#ff8a8a; }
.auth-modal-message.success { color:#7ed957; }

.auth-register-success {
  text-align:center;
  display:flex;
  flex-direction:column;
  gap:14px;
  align-items:center;
}
.auth-success-icon {
  width:56px;
  height:56px;
  border-radius:50%;
  border:1px solid color-mix(in srgb, #7ed957 35%, transparent);
  display:flex;
  align-items:center;
  justify-content:center;
  color:#7ed957;
  font-size:1.4rem;
  font-weight:700;
}
.auth-success-meta {
  opacity:0.7;
  font-size:0.85rem;
  line-height:1.55;
}

.auth-resend-wrap {
  margin-top:12px;
  text-align:center;
}

.auth-legal-footnote {
  margin:4px 0 0;
  font-size:0.72rem;
  line-height:1.55;
  text-align:center;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.auth-legal-footnote a {
  color:var(--text-primary);
  opacity:0.82;
  text-decoration:underline;
  text-underline-offset:2px;
}

.menu-profile-verification-hint {
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:6px;
  margin-top:4px;
  font-size:0.58rem;
  line-height:1.35;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.menu-profile-verify-btn {
  border:0;
  background:transparent;
  color:var(--text-primary);
  opacity:0.78;
  font-size:0.58rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  text-decoration:underline;
  text-underline-offset:2px;
  cursor:pointer;
  padding:0;
}
.menu-profile-verify-btn:hover {
  opacity:1;
}

.email-verification-modal.content-modal {
  align-items:center;
  justify-content:center;
  padding:24px 16px 96px;
}
.email-verification-box {
  width:min(420px, calc(100vw - 32px));
  text-align:center;
  padding:30px 26px 24px;
}
.email-verification-title {
  margin:0 0 12px;
  font-size:0.92rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-primary);
}
.email-verification-copy {
  margin:0 0 18px;
  font-size:0.84rem;
  line-height:1.6;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.email-verification-actions {
  display:flex;
  flex-direction:column;
  gap:10px;
}
.email-verification-message {
  margin-top:14px;
  min-height:1.2em;
  font-size:0.8rem;
  line-height:1.45;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.email-verification-message.success {
  color:#7ed957;
  opacity:1;
}
.email-verification-message.error {
  color:#ff8a8a;
  opacity:1;
}

.project-theme-confirm-modal.content-modal {
  align-items:center;
  justify-content:center;
  padding:24px 16px 96px;
}
.project-theme-confirm-box {
  width:min(440px, calc(100vw - 32px));
  padding:28px 26px 22px;
}
.project-theme-confirm-title {
  margin:0 0 12px;
  font-size:0.92rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-primary);
}
.project-theme-confirm-copy {
  margin:0 0 20px;
  font-size:0.84rem;
  line-height:1.6;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.project-theme-confirm-actions {
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-end;
}

/* ================= GENERAR TEMA CON IA ================= */
.theme-ai-modal.content-modal {
  align-items:center;
  justify-content:center;
  padding:24px 16px 96px;
}
.theme-ai-modal-box {
  width:min(980px, calc(100vw - 32px));
  max-height:min(90vh, 90svh);
}
.theme-ai-scroll {
  padding:34px 30px 28px;
}
.theme-ai-close-btn {
  position:absolute;
  top:14px;
  right:14px;
  z-index:2;
  width:34px;
  height:34px;
  border:0;
  border-radius:8px;
  background:transparent;
  color:var(--text-secondary);
  font-size:1.35rem;
  line-height:1;
  cursor:pointer;
  transition:background 0.15s ease, color 0.15s ease;
}
.theme-ai-close-btn:hover {
  background:color-mix(in srgb, var(--text-primary) 8%, transparent);
  color:var(--text-primary);
}
.theme-ai-title {
  margin:0 0 10px;
  font-size:0.92rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-primary);
}
.theme-ai-intro {
  margin:0 0 18px;
  font-size:0.84rem;
  line-height:1.6;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  max-width:52ch;
}
.theme-ai-error {
  margin:0 0 14px;
}
.theme-ai-upload-btn {
  min-width:160px;
}
.theme-ai-formats-hint {
  margin:10px 0 0;
}
.theme-ai-status-step {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:14px;
  padding:28px 0 18px;
}
.theme-ai-spinner {
  width:34px;
  height:34px;
  border-radius:50%;
  border:2px solid color-mix(in srgb, var(--text-primary) 14%, transparent);
  border-top-color:var(--accent);
  animation:theme-ai-spin 0.85s linear infinite;
}
@keyframes theme-ai-spin {
  to { transform:rotate(360deg); }
}
.theme-ai-status-text {
  margin:0;
  font-size:0.84rem;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.theme-ai-results-header {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 0 16px;
}
.theme-ai-source-label {
  margin:0;
  font-size:0.78rem;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.theme-ai-change-btn {
  font-size:0.78rem;
  padding:8px 12px;
}
.theme-ai-proposals-grid {
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}
.theme-ai-proposals-grid--wide {
  grid-template-columns:repeat(auto-fill, minmax(220px, 1fr));
}
.theme-ai-personality {
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:8px 14px;
  margin-bottom:16px;
  padding:12px 14px;
  border-radius:12px;
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--accent) 8%, var(--glass-surface));
}
.theme-ai-personality-label {
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.theme-ai-personality-value {
  font-size:0.92rem;
  font-weight:700;
  color:var(--text-primary);
}
.theme-ai-personality-meta {
  font-size:0.72rem;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.theme-ai-families-panel,
.theme-ai-reasoning-panel {
  margin-bottom:18px;
}
.theme-ai-families-list {
  display:grid;
  grid-template-columns:repeat(auto-fill, minmax(180px, 1fr));
  gap:10px;
}
.theme-ai-family-card {
  padding:10px 12px;
  border-radius:10px;
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--glass-surface) 55%, transparent);
}
.theme-ai-family-head {
  display:flex;
  flex-direction:column;
  gap:2px;
  margin-bottom:8px;
}
.theme-ai-family-head strong {
  font-size:0.78rem;
  color:var(--text-primary);
}
.theme-ai-family-head span {
  font-size:0.68rem;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.theme-ai-family-swatches {
  display:flex;
  flex-wrap:wrap;
  gap:4px;
}
.theme-ai-family-swatch {
  width:18px;
  height:18px;
  border-radius:5px;
  border:1px solid color-mix(in srgb, var(--text-primary) 12%, transparent);
}
.theme-ai-reasoning-list {
  margin:0;
  padding-left:18px;
  display:flex;
  flex-direction:column;
  gap:8px;
}
.theme-ai-reasoning-list li {
  font-size:0.74rem;
  line-height:1.45;
  color:var(--text-secondary);
}
.theme-ai-reasoning-list strong {
  color:var(--text-primary);
  font-weight:600;
}
.theme-ai-palette-role-note {
  font-size:0.62rem;
  color:var(--text-secondary);
  opacity:0.85;
}
.theme-ai-palette-panel {
  margin-bottom:22px;
  padding-bottom:18px;
  border-bottom:1px solid var(--border);
}
.theme-ai-palette-title,
.theme-ai-proposals-title {
  margin:0 0 6px;
  font-size:0.78rem;
  font-weight:700;
  letter-spacing:0.1em;
  text-transform:uppercase;
  color:var(--text-primary);
}
.theme-ai-palette-note,
.theme-ai-proposals-note {
  margin:0 0 14px;
  font-size:0.76rem;
  line-height:1.45;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.theme-ai-palette-grid {
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:10px;
}
.theme-ai-palette-item {
  display:flex;
  align-items:center;
  gap:10px;
  padding:8px 10px;
  border-radius:10px;
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--glass-surface) 60%, transparent);
}
.theme-ai-palette-swatch {
  width:28px;
  height:28px;
  border-radius:8px;
  border:1px solid color-mix(in srgb, var(--text-primary) 10%, transparent);
  flex-shrink:0;
}
.theme-ai-palette-meta {
  display:flex;
  flex-direction:column;
  gap:2px;
  min-width:0;
}
.theme-ai-palette-label {
  font-size:0.72rem;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.theme-ai-palette-hex {
  font-size:0.74rem;
  font-family:ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
  color:var(--text-primary);
}
.theme-ai-rich-preview {
  display:flex;
  flex-direction:column;
  min-height:200px;
  height:100%;
}
.tai-nav {
  display:flex;
  align-items:center;
  gap:8px;
  padding:8px 10px;
  border-bottom:1px solid;
}
.tai-nav-logo {
  width:12px;
  height:12px;
  border-radius:3px;
  flex-shrink:0;
}
.tai-nav-link {
  font-size:0.5rem;
  letter-spacing:0.06em;
  text-transform:uppercase;
}
.tai-nav-link--active {
  font-weight:700;
}
.tai-body {
  flex:1;
  padding:8px;
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:6px;
}
.tai-hero {
  grid-column:1 / -1;
  border:1px solid;
  border-radius:6px;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.tai-hero-title {
  font-size:0.58rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
}
.tai-hero-sub {
  font-size:0.48rem;
}
.tai-btn {
  display:inline-block;
  height:10px;
  border-radius:999px;
  margin-top:2px;
}
.tai-btn--primary {
  width:42%;
}
.tai-btn--secondary {
  width:34%;
  border:1px solid;
}
.tai-btn--hover {
  width:36%;
  height:8px;
}
.tai-card {
  border:1px solid;
  border-radius:6px;
  padding:6px;
  display:flex;
  flex-direction:column;
  gap:4px;
}
.tai-badge {
  width:28px;
  height:6px;
  border-radius:999px;
}
.tai-line {
  height:4px;
  border-radius:999px;
  width:80%;
}
.tai-line--short {
  width:55%;
}
.tai-link {
  font-size:0.46rem;
  text-decoration:underline;
}
.tai-input {
  border:1px solid;
  border-radius:5px;
  padding:5px 6px;
  font-size:0.46rem;
}
.tai-modal {
  border:1px solid;
  border-radius:6px;
  padding:6px;
  display:flex;
  flex-direction:column;
  gap:5px;
  font-size:0.48rem;
}
.theme-ai-proposal-card {
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:12px;
  border-radius:12px;
  border:1px solid var(--border);
  background:color-mix(in srgb, var(--glass-surface) 72%, transparent);
}
.theme-ai-proposal-preview {
  border-radius:10px;
  overflow:hidden;
  border:1px solid color-mix(in srgb, var(--text-primary) 8%, transparent);
  aspect-ratio:4 / 3;
}
.theme-ai-mini-ui {
  display:flex;
  width:100%;
  height:100%;
  min-height:120px;
}
.theme-ai-mini-sidebar {
  width:28%;
  padding:8px 6px;
  display:flex;
  flex-direction:column;
  gap:6px;
  border-right:1px solid;
}
.theme-ai-mini-logo {
  width:14px;
  height:14px;
  border-radius:4px;
  display:block;
}
.theme-ai-mini-nav {
  height:5px;
  border-radius:999px;
  display:block;
}
.theme-ai-mini-nav--short {
  width:72%;
}
.theme-ai-mini-main {
  flex:1;
  padding:8px;
  display:flex;
  flex-direction:column;
  gap:7px;
}
.theme-ai-mini-header {
  font-size:0.52rem;
  font-weight:700;
  letter-spacing:0.12em;
}
.theme-ai-mini-card {
  flex:1;
  border-radius:6px;
  border:1px solid;
  padding:7px;
  display:flex;
  flex-direction:column;
  gap:5px;
}
.theme-ai-mini-line {
  height:4px;
  border-radius:999px;
  width:78%;
  display:block;
}
.theme-ai-mini-line--short {
  width:52%;
  opacity:0.75;
}
.theme-ai-mini-actions {
  display:flex;
  gap:5px;
}
.theme-ai-mini-btn {
  height:10px;
  border-radius:999px;
  flex:1;
  display:block;
  border:1px solid transparent;
}
.theme-ai-mini-btn--primary {
  flex:1.2;
}
.theme-ai-proposal-name {
  margin:0;
  font-size:0.82rem;
  font-weight:700;
  color:var(--text-primary);
}
.theme-ai-proposal-desc {
  margin:0;
  font-size:0.74rem;
  line-height:1.45;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.theme-ai-proposal-actions {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-top:auto;
}
.theme-ai-apply-btn,
.theme-ai-save-btn {
  width:100%;
  font-size:0.76rem;
  padding:9px 10px;
}

@media (max-width: 900px) {
  .theme-ai-proposals-grid,
  .theme-ai-palette-grid {
    grid-template-columns:1fr;
  }
}

@media (max-width: 600px) {
  .main-menu { width:100%; }
  .main-menu-nav-col { width:100%; flex:1 1 auto; }
  .auth-field-row { grid-template-columns:1fr; }
  .auth-experience-modal.content-modal {
    align-items:center;
    justify-content:center;
    padding:20px 16px 96px;
  }
  .auth-experience-modal .content-modal-box.auth-experience-box {
    width:min(580px, calc(100vw - 32px));
    padding:32px 24px 28px;
    max-height:calc(100dvh - 120px);
    overflow-y:auto;
  }
}

/* ================= PERSONALIZAR PANEL ================= */
.main-menu-list.menu-personalize-panel {
  justify-content:flex-start;
  gap:0;
  padding:0;
  overflow:hidden;
}

.personalize-scroll {
  flex:1;
  min-height:0;
  width:100%;
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
  padding:0 0 12px calc(20px + var(--menu-gutter));
  display:flex;
  flex-direction:column;
  gap:16px;
}
.personalize-scroll > * {
  margin-right:calc(20px + var(--menu-gutter));
}

.personalize-panel-title {
  color:var(--text-primary);
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.16em;
  text-transform:uppercase;
  opacity:var(--label-opacity);
  margin:0 0 2px;
}

.personalize-v2-headline {
  margin:0 0 6px;
  font-size:0.72rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:#ffffff;
  text-align:left;
  line-height:1.35;
}

.personalize-v2-description {
  margin:0 0 12px;
  font-size:0.78rem;
  font-weight:400;
  letter-spacing:0.02em;
  text-transform:none;
  color:var(--text-secondary);
  opacity:0.72;
  text-align:left;
  line-height:1.45;
}

.personalize-v2-lead {
  margin:0 0 12px;
  text-align:left;
}

.personalize-v2-actions {
  display:flex;
  flex-direction:row;
  align-items:center;
  justify-content:flex-start;
  gap:12px;
  margin-top:16px;
  flex-wrap:nowrap;
}

.personalize-v2-icon-btn {
  width:48px;
  height:48px;
  padding:0;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:12px;
  border:1px solid color-mix(in srgb, var(--text-primary) 14%, transparent);
  background:color-mix(in srgb, var(--text-primary) 6%, transparent);
  color:var(--text-primary);
  cursor:pointer;
  transition:background 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}

.personalize-v2-icon-btn svg {
  width:24px;
  height:24px;
  display:block;
}

.personalize-v2-icon-btn:hover {
  background:color-mix(in srgb, var(--text-primary) 12%, transparent);
  border-color:color-mix(in srgb, var(--text-primary) 28%, transparent);
  transform:translateY(-1px);
}

.personalize-v2-icon-btn--primary {
  background:color-mix(in srgb, var(--accent) 22%, transparent);
  border-color:color-mix(in srgb, var(--accent) 45%, transparent);
}

.personalize-v2-icon-btn--primary:hover {
  background:color-mix(in srgb, var(--accent) 34%, transparent);
  border-color:color-mix(in srgb, var(--accent) 65%, transparent);
}

.personalize-block {
  padding:14px 16px;
}

.main-menu .personalize-block--plain,
.main-menu .personalize-block--plain .theme-visual-panel,
.main-menu .personalize-block--plain .theme-visual-picker,
.main-menu .personalize-block--plain .theme-visual-editor {
  background:transparent;
  border:none;
  border-radius:0;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}

.personalize-block-label {
  font-size:0.68rem;
  font-weight:700;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--text-secondary);
  opacity:var(--label-opacity);
  margin-bottom:12px;
}

.personalize-block-body {
  display:flex;
  flex-direction:column;
  gap:10px;
}

.avatar-color-row {
  display:flex;
  align-items:center;
  gap:16px;
}

.avatar-color-row-preview .menu-profile-avatar,
.personalize-avatar-preview,
img.menu-profile-avatar.personalize-avatar-preview,
img.menu-profile-avatar-photo.personalize-avatar-preview {
  width:48px;
  height:48px;
  border-radius:50%;
  object-fit:cover;
}

.avatar-color-modes-stack {
  display:flex;
  flex-direction:column;
  gap:6px;
  flex:1;
  min-width:0;
}

.avatar-color-modes-stack .avatar-mode-btn {
  width:100%;
  min-height:32px;
  padding:6px 12px;
  text-align:left;
}
.avatar-color-modes-stack .custom-theme-pick-btn {
  width:100%;
  min-height:32px;
  justify-content:center;
}
.avatar-color-modes-stack .custom-theme-pick-btn.selected {
  border-color:color-mix(in srgb, var(--accent) 55%, var(--glass-border));
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  color:var(--text-primary);
  opacity:1;
}

.avatar-mode-btn {
  border-radius:8px;
  border:1px solid var(--btn-border, var(--glass-border));
  background:color-mix(in srgb, var(--accent) 4%, var(--glass-surface));
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  font-size:0.72rem;
  letter-spacing:0.03em;
  cursor:pointer;
  transition:border-color 0.2s ease, background 0.2s ease, opacity 0.2s ease;
}
.avatar-mode-btn:hover { opacity:1; }
.avatar-mode-btn.selected {
  border-color:color-mix(in srgb, var(--accent) 55%, var(--glass-border));
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  opacity:1;
  color:var(--text-primary);
}

.personalize-field {
  display:flex;
  flex-direction:column;
  gap:6px;
}
.personalize-field span {
  font-size:0.68rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-secondary);
  opacity:var(--label-opacity);
}
.personalize-field input {
  height:42px;
  padding:0 12px;
  border-radius:10px;
  border:1px solid var(--glass-border);
  background:var(--bg-glass-surface, var(--panel-glass-surface));
  backdrop-filter:blur(calc(var(--bg-glass-blur, 16px) * 0.65)) saturate(125%);
  -webkit-backdrop-filter:blur(calc(var(--bg-glass-blur, 16px) * 0.65)) saturate(125%);
  color:var(--text-primary);
  font-size:0.9rem;
}

.personalize-readonly-field {
  display:flex;
  flex-direction:column;
  gap:4px;
  background:var(--bg-glass-surface, var(--panel-glass-surface));
  backdrop-filter:blur(calc(var(--bg-glass-blur, 16px) * 0.5)) saturate(120%);
  -webkit-backdrop-filter:blur(calc(var(--bg-glass-blur, 16px) * 0.5)) saturate(120%);
}
.personalize-readonly-field span {
  font-size:0.68rem;
  text-transform:uppercase;
  letter-spacing:0.08em;
  color:var(--text-secondary);
  opacity:var(--label-opacity);
}
.personalize-readonly-field strong {
  font-size:0.88rem;
  font-weight:600;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.personalize-readonly-field strong.personalize-email-value {
  color:var(--text-primary);
  opacity:0.92;
  word-break:break-all;
  line-height:1.45;
}

.personalize-save-btn {
  width:100%;
  margin-top:4px;
}

.personalize-hint {
  min-height:1.2em;
  font-size:0.78rem;
  font-weight:400;
  text-align:center;
  margin-top:10px;
  color:var(--text-secondary);
  opacity:var(--text-muted-opacity);
}
.personalize-hint.is-error { color:#ff8a8a; opacity:1; }
.personalize-hint.is-success { color:#7ed957; opacity:1; }
.personalize-theme-block-hint {
  text-align:left;
  color:#ffffff;
  font-weight:400;
  opacity:0.72;
  margin:0 0 8px;
  min-height:0;
}

.personalize-theme-grid {
  margin:0;
}
.personalize-preset-grid {
  grid-template-columns:repeat(5, 1fr);
  gap:12px 10px;
  justify-items:center;
}
.theme-preset-wrap {
  display:flex;
  flex-direction:column;
  align-items:center;
  gap:4px;
  width:100%;
  min-width:0;
}
.theme-preset-swatch.theme-swatch {
  width:36px;
  height:36px;
  flex-shrink:0;
}
.theme-preset-name {
  font-size:0.62rem;
  letter-spacing:0.04em;
  text-transform:uppercase;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  text-align:center;
  line-height:1.25;
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.theme-preset-actions {
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  flex-wrap:wrap;
}
.theme-preset-actions--edit-only {
  margin-top:2px;
}
.theme-preset-action-btn {
  width:22px;
  height:22px;
  padding:0;
  border:0;
  border-radius:6px;
  background:transparent;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  cursor:pointer;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  transition:opacity 0.2s ease, color 0.2s ease, background 0.2s ease;
}
.theme-preset-action-btn svg {
  width:12px;
  height:12px;
  stroke:currentColor;
}
.theme-preset-action-btn:hover {
  opacity:1;
  color:var(--text-primary);
  background:color-mix(in srgb, var(--accent) 10%, transparent);
}
.personalize-admin-badge {
  display:inline-block;
  margin-left:6px;
  padding:2px 7px;
  border-radius:999px;
  font-size:0.58rem;
  font-weight:700;
  letter-spacing:0.08em;
  text-transform:uppercase;
  vertical-align:middle;
  color:var(--text-primary);
  background:color-mix(in srgb, var(--accent) 18%, transparent);
  border:1px solid color-mix(in srgb, var(--accent) 35%, var(--border));
}

.personalize-toggle-row {
  margin:0;
}

/* ================= ADMIN DASHBOARD (showroom) ================= */
.admin-dashboard-modal {
  position:fixed;
  inset:0;
  z-index:1400;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:72px 24px 32px;
  opacity:0;
  visibility:hidden;
  transition:opacity 0.2s ease, visibility 0s linear 0.2s;
}
.admin-dashboard-modal.active {
  opacity:1;
  visibility:visible;
  transition:opacity 0.2s ease, visibility 0s linear 0s;
}
.admin-dashboard-close {
  position:fixed;
  top:18px;
  right:18px;
  z-index:1402;
  width:46px;
  height:46px;
  border:1px solid var(--btn-border, var(--glass-border));
  border-radius:12px;
  background:color-mix(in srgb, var(--bg-popup) 88%, transparent);
  backdrop-filter:blur(14px) saturate(140%);
  -webkit-backdrop-filter:blur(14px) saturate(140%);
  color:var(--text-primary);
  font-size:1.8rem;
  line-height:1;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:center;
  box-shadow:0 10px 28px rgba(0,0,0,0.35);
}
.admin-dashboard-close:hover {
  border-color:color-mix(in srgb, var(--accent) 45%, var(--glass-border));
}
.admin-dashboard-shell {
  width:100%;
  max-width:560px;
  max-height:calc(100vh - 104px);
  max-height:calc(100dvh - 104px);
  overflow-y:auto;
  -webkit-overflow-scrolling:touch;
}
.admin-dashboard-box {
  background:var(--bg-popup);
  backdrop-filter:blur(var(--panel-modal-blur, 20px)) saturate(140%);
  -webkit-backdrop-filter:blur(var(--panel-modal-blur, 20px)) saturate(140%);
  border:1px solid var(--border);
  border-radius:16px;
  padding:28px 26px 24px;
  box-shadow:0 24px 70px rgba(0,0,0,0.55);
}
.admin-dashboard-title {
  margin:0 0 6px;
  font-size:1rem;
  letter-spacing:0.12em;
  text-transform:uppercase;
  color:var(--text-primary);
  opacity:0.85;
  text-align:center;
}
.admin-dashboard-subtitle {
  margin:0 0 22px;
  text-align:center;
  font-size:0.72rem;
  letter-spacing:0.05em;
  color:var(--text-secondary);
  opacity:var(--text-muted-opacity);
}
.admin-dashboard-section {
  margin-bottom:18px;
}
.admin-dashboard-label {
  display:block;
  margin-bottom:10px;
  font-size:0.68rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.admin-dashboard-image-row {
  display:flex;
  gap:14px;
  align-items:flex-start;
}
.admin-dashboard-image-preview {
  width:120px;
  height:72px;
  object-fit:cover;
  border-radius:10px;
  border:1px solid var(--btn-border, var(--glass-border));
  background:var(--placeholder-bg);
  flex:0 0 auto;
}
.admin-dashboard-image-actions {
  flex:1;
  min-width:0;
}
.admin-dashboard-hint {
  margin:8px 0 0;
  font-size:0.62rem;
  color:var(--text-secondary);
  opacity:var(--text-muted-opacity);
  line-height:1.45;
}
.admin-dashboard-field {
  display:flex;
  flex-direction:column;
  gap:8px;
  margin-bottom:14px;
}
.admin-dashboard-field > span {
  font-size:0.68rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.admin-dashboard-field input,
.admin-dashboard-field textarea {
  width:100%;
  border:1px solid var(--glass-border);
  border-radius:10px;
  background:var(--btn-surface);
  color:var(--text-primary);
  padding:11px 12px;
  font-size:0.82rem;
  font-family:inherit;
  resize:vertical;
}
.admin-dashboard-field input:focus,
.admin-dashboard-field textarea:focus {
  outline:none;
  border-color:color-mix(in srgb, var(--accent) 45%, var(--glass-border));
}
.admin-dashboard-row {
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  margin-bottom:14px;
  flex-wrap:wrap;
}
.admin-dashboard-row-label {
  font-size:0.68rem;
  letter-spacing:0.08em;
  text-transform:uppercase;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.admin-dashboard-color-toggle {
  display:flex;
  gap:6px;
  flex:0 0 auto;
}
.admin-dashboard-color-btn {
  min-width:72px;
  padding:8px 10px;
  border:1px solid var(--btn-border, var(--glass-border));
  border-radius:8px;
  background:var(--btn-surface);
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
  font-size:0.68rem;
  letter-spacing:0.04em;
  cursor:pointer;
  transition:background 0.2s ease, border-color 0.2s ease, opacity 0.2s ease;
}
.admin-dashboard-color-btn.selected {
  border-color:color-mix(in srgb, var(--accent) 55%, var(--glass-border));
  background:color-mix(in srgb, var(--accent) 12%, transparent);
  color:var(--text-primary);
  opacity:1;
}
.admin-dashboard-color-btn:hover {
  opacity:1;
}
.admin-dashboard-save-btn {
  width:100%;
  margin-top:8px;
}
.admin-dashboard-message {
  margin:14px 0 0;
  min-height:1.2em;
  text-align:center;
  font-size:0.72rem;
  letter-spacing:0.04em;
  color:var(--text-secondary);
  opacity:var(--text-secondary-opacity);
}
.admin-dashboard-message.error {
  color:#ff8a8a;
  opacity:1;
}
.admin-dashboard-message.success {
  color:#7ed957;
  opacity:1;
}
body.admin-dashboard-open .admin-dashboard-close {
  display:flex;
}
@media (max-width: 600px) {
  .admin-dashboard-modal {
    padding:68px 14px 18px;
  }
  .admin-dashboard-box {
    padding:22px 16px 18px;
  }
  .admin-dashboard-image-row {
    flex-direction:column;
  }
  .admin-dashboard-image-preview {
    width:100%;
    height:120px;
  }
}

/* ================= PANTALLA DE PAUSA PREMIUM ================= */
.pause-screen {
  --pause-blur: 16px;
  --pause-overlay: 0.7;
  --pause-glow: 0.32;
  --pause-breath-duration: 3.2s;
  position: fixed;
  inset: 0;
  z-index: 10050;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: max(24px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));
  pointer-events: auto;
}
.pause-screen[hidden] {
  display: none !important;
}
.pause-screen__veil {
  position: absolute;
  inset: 0;
  background:var(--overlay-mask, rgba(0, 0, 0, var(--pause-overlay)));
  backdrop-filter:blur(var(--modal-backdrop-blur, var(--pause-blur)));
  -webkit-backdrop-filter:blur(var(--modal-backdrop-blur, var(--pause-blur)));
}
.pause-screen.is-entering .pause-screen__veil {
  animation: pauseVeilIn 0.4s ease-out both;
}
.pause-screen.is-leaving .pause-screen__veil {
  animation: pauseVeilOut 0.28s ease-in both;
}
@keyframes pauseVeilIn {
  from { opacity: 0; }
  to { opacity: 1; }
}
@keyframes pauseVeilOut {
  from { opacity: 1; }
  to { opacity: 0; }
}
body.nav-resume-active {
  overflow: hidden;
}
body.nav-resume-active .global-action-stack {
  opacity: 0;
  pointer-events: none;
}
.pause-screen__panel {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 0;
  max-width: min(480px, 92vw);
  color: #fff;
}
.pause-screen.is-entering .pause-screen__panel {
  animation: pausePanelIn 0.45s cubic-bezier(0.22, 1, 0.36, 1) both;
}
.pause-screen.is-leaving .pause-screen__panel {
  animation: pausePanelOut 0.28s ease-in both;
}
@keyframes pausePanelIn {
  from { opacity: 0; transform: translateY(12px) scale(0.98); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}
@keyframes pausePanelOut {
  from { opacity: 1; transform: translateY(0); }
  to { opacity: 0; transform: translateY(8px); }
}
.pause-screen__emblem {
  position: relative;
  width: 88px;
  height: 88px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 22px;
}
.pause-screen__glow {
  position: absolute;
  inset: -18%;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255, 255, 255, calc(var(--pause-glow) * 0.35)) 0%, transparent 72%);
  filter: blur(14px);
  opacity: calc(var(--pause-glow) * 0.9);
  pointer-events: none;
}
.pause-screen.is-glow-off .pause-screen__glow {
  display: none;
}
.pause-screen__logo {
  position: relative;
  z-index: 1;
  width: min(88px, 22vw);
  height: auto;
  max-height: 88px;
  object-fit: contain;
}
.pause-screen__logo[hidden],
.pause-screen__avatar[hidden],
.pause-screen__building[hidden] {
  display: none !important;
}
.pause-screen__avatar {
  position: relative;
  z-index: 1;
  width: 72px;
  height: 72px;
  border-radius: 50%;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
}
.pause-screen__avatar-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: 50%;
}
.pause-screen__avatar .visitor-avatar {
  width: 72px;
  height: 72px;
  font-size: 1.5rem;
}
.pause-screen__building {
  position: relative;
  z-index: 1;
  width: 56px;
  height: 56px;
  color: rgba(255, 255, 255, 0.88);
}
.pause-screen__building-icon {
  width: 100%;
  height: 100%;
}
.pause-screen.is-breathing-off .pause-screen__emblem {
  animation: none !important;
}
.pause-screen:not(.is-breathing-off) .pause-screen__emblem {
  animation: pauseBreathing var(--pause-breath-duration) ease-in-out infinite;
}
@keyframes pauseBreathing {
  0%, 100% { transform: scale(0.98); }
  50% { transform: scale(1); }
}
.pause-screen__copy {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 0;
  width: 100%;
}
.pause-screen__name {
  margin: 0;
  font-size: clamp(1.35rem, 4.5vw, 1.75rem);
  font-weight: 700;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  line-height: 1.15;
  color: rgba(255, 255, 255, 0.96);
}
.pause-screen__name[hidden] {
  display: none !important;
}
.pause-screen__title {
  margin: 0 0 6px;
  font-size: 0.62rem;
  font-weight: 600;
  letter-spacing: 0.24em;
  text-transform: uppercase;
  color: rgba(255, 255, 255, 0.36);
}
.pause-screen__message {
  margin: 10px 0 0;
  min-height: 2.8em;
  max-width: 28em;
  font-size: clamp(1rem, 2.8vw, 1.12rem);
  line-height: 1.5;
  font-weight: 300;
  font-style: italic;
  letter-spacing: 0.02em;
  color: rgba(255, 255, 255, 0.72);
  transition: opacity 0.3s ease;
}
.pause-screen__message.is-fading {
  opacity: 0;
}
.pause-screen__actions.project-cover-buttons {
  margin-top: 14px;
  justify-content: center;
}
.pause-screen__actions .project-cover-btn.pause-screen__btn {
  opacity: 0;
  transform: translateY(8px);
  transition: opacity 0.45s ease, transform 0.45s cubic-bezier(0.22, 1, 0.36, 1),
    background 0.3s ease, color 0.3s ease, border-color 0.3s ease;
}
.pause-screen__actions .project-cover-btn.pause-screen__btn.is-visible {
  opacity: 1;
  transform: translateY(0);
}
.pause-screen[data-hero-button-text-color="light"] .pause-screen__actions .project-cover-btn {
  color: #ffffff;
}
.pause-screen[data-hero-button-text-color="dark"] .pause-screen__actions .project-cover-btn {
  color: #111111;
}

/* =========================================================
   MOBILE V3.8.2 — motion always on (gana al cascade de reduce)
   ========================================================= */
@media (max-width: 600px) {
  @media (prefers-reduced-motion: reduce) {
    .download-item--animate,
    .download-item-energy,
    .downloads-intro-pct {
      transition: opacity 0.4s ease, width 0.12s linear, visibility 0.4s ease !important;
    }
    .download-item--animate.is-entering {
      animation: downloadsCardIn 0.52s cubic-bezier(0.22, 1, 0.36, 1) both !important;
    }
    .uc-hero-card,
    .uc-category,
    .uc-header,
    .uc-specs,
    .uc-insights,
    .unit-card--enter,
    .tour360-card--enter {
      animation-duration: 0.55s !important;
      animation-fill-mode: both !important;
    }
  }
  html.web-effects-off *:not(video):not(audio):not(source),
  html.web-effects-off *:not(video):not(audio):not(source)::before,
  html.web-effects-off *:not(video):not(audio):not(source)::after {
    animation: revert !important;
    transition: revert !important;
  }
}

