html.tt-parity-guard{--tt-legacy-parity-disabled:1}html.tt-parity-safe{--tt-responsive-parity:safe}.tt-parity-safe main>section,.tt-parity-safe .section,.tt-parity-safe .section-sm,.tt-parity-safe .tt-section,.tt-parity-safe .tt-page-hero,.tt-parity-safe .tt-hero,.tt-parity-safe .tt-products-section,.tt-parity-safe .tt-reviews-section,.tt-parity-safe .tt-collections-section,.tt-parity-safe .tt-footer,.tt-parity-safe .perfil-card,.tt-parity-safe .ck-panel,.tt-parity-safe .login-box,.tt-parity-safe .adm-card,.tt-parity-safe .adm-table-wrap{visibility:visible!important;opacity:1}.tt-parity-safe [data-parity="always"],.tt-parity-safe .tt-parity-always{visibility:visible!important;opacity:1!important}.tt-parity-safe .tt-mobile-menu:not(.open),.tt-parity-safe .tt-cart-drawer:not(.open),.tt-parity-safe .tt-search-panel:not(.open),.tt-parity-safe .tt-collections-sheet:not(.open),.tt-parity-safe #account-dropdown:not(.open):not(.tt-account-open)>.tt-account-panel,.tt-parity-safe .adm-modal:not(.open),.tt-parity-safe [hidden]{display:none!important}.tt-parity-safe .tt-header,.tt-parity-safe .tt-header *,.tt-parity-safe .tt-nav,.tt-parity-safe .tt-nav *,.tt-parity-safe .tt-mobile-menu,.tt-parity-safe .tt-mobile-menu *,.tt-parity-safe .tt-tabbar,.tt-parity-safe .tt-tabbar *{--tt-header-keeps-own-responsive:1}.tt-parity-safe .desktop-only:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-safe .tablet-only:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-safe .mobile-only:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *){visibility:visible!important}.tt-parity-safe .hide-mobile:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-safe .hide-desktop:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-safe .hide-tablet:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *){visibility:visible!important}.tt-parity-safe .tt-parity-layout{display:revert!important}.tt-parity-safe .tt-dropdown:not(.open),.tt-parity-safe #account-dropdown:not(.open):not(.tt-account-open)>.tt-account-panel,.tt-parity-safe .tt-sheet:not(.open),.tt-parity-safe .tt-modal:not(.open){pointer-events:none}

/* Header desktop/tablet: superficies sólidas para que los paneles no hereden
   transparencias del esquema global configurable. Mobile queda sin cambios. */
@media (min-width:769px){
  body:not(:has(.adm-main)) :is(.tt-dropdown,.tt-search-panel,.tt-search-results,.tt-account-panel,.tt-cart-drawer){
    background:#fff!important;
    background-color:#fff!important;
    border-color:#f0d8e0!important;
  }
  body:not(:has(.adm-main)) :is(.tt-dropdown,.tt-account-panel){
    border:1px solid #f0d8e0!important;
    box-shadow:0 16px 40px rgba(139,38,66,.16)!important;
  }
  body:not(:has(.adm-main)) .tt-search-panel{
    border:1px solid #f0d8e0!important;
    border-top:0!important;
    box-shadow:0 14px 34px rgba(139,38,66,.14)!important;
  }
  body:not(:has(.adm-main)) .tt-search-results{
    border:1px solid #f0d8e0!important;
    border-top:0!important;
    box-shadow:0 16px 36px rgba(139,38,66,.12)!important;
  }
  body:not(:has(.adm-main)) .tt-cart-drawer{
    border-left:1px solid #f0d8e0!important;
    box-shadow:-12px 0 40px rgba(139,38,66,.16)!important;
  }
}

/* Estructura pública mobile: una sola distancia de seguridad para todos los
   elementos que conviven con la tabbar flotante. Así el footer, privacidad,
   WhatsApp, avisos del carrito y el sheet de Tienda nunca quedan pegados ni
   escondidos detrás de la navegación en ningún ancho del rango mobile. */
@media (max-width:768px){
  body.tt-public-shell-mounted:not(:has(.adm-main)){
    --tt-mobile-nav-clearance:104px;
  }
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-footer-bottom{
    padding-bottom:calc(var(--tt-mobile-nav-clearance) + 16px + env(safe-area-inset-bottom,0px))!important;
  }
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-privacy-consent,
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-wa-float,
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-cart-feedback{
    bottom:calc(var(--tt-mobile-nav-clearance) + env(safe-area-inset-bottom,0px))!important;
  }
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-collections-sheet{
    padding-bottom:calc(var(--tt-mobile-nav-clearance) + 8px + env(safe-area-inset-bottom,0px))!important;
  }
  /* El CTA inferior del hero terminaba exactamente en la franja donde vive el
     botón flotante de WhatsApp. Esta reserva conserva 16px visibles entre
     ambos sin cambiar textos, imágenes, acciones ni la altura del banner. */
  body.tt-home-premium.tt-public-shell-mounted .tt-hero-content{
    padding-bottom:calc(var(--tt-mobile-nav-clearance) + 64px)!important;
  }
  /* Privacidad y los avisos del carrito ocupan temporalmente la misma zona
     segura. El flotante se oculta durante esos estados para no quedar debajo. */
  body.tt-public-shell-mounted:not(:has(.adm-main)):has(.tt-privacy-consent:not([hidden])) .tt-wa-float,
  body.tt-public-shell-mounted:not(:has(.adm-main)):has(.tt-cart-feedback.is-visible) .tt-wa-float{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
  }

  /* El runtime responsive comprueba primero que el flotante no cubra ningún
     control. Hasta que esa comprobación inicial termina, permanece oculto para
     que nunca aparezca encima de contenido durante el primer render. */
  html:not(.tt-wa-overlap-ready) body:not(:has(.adm-main)) .tt-wa-float{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    animation:none!important;
    transition:none!important;
  }

  /* Términos y Privacidad ya incluyen un CTA de WhatsApp dentro del contenido
     y otro en el footer. En mobile se omite únicamente el flotante para que el
     índice legal siempre permanezca completamente pulsable. */
  body.tt-legal-runtime-ready:not(:has(.adm-main)) .tt-wa-float{
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    animation:none!important;
    transition:none!important;
  }
}
@media (max-width:480px){
  body.tt-public-shell-mounted:not(:has(.adm-main)){
    --tt-mobile-nav-clearance:92px;
  }
}

/* Super Admin: todos los interruptores de activar/desactivar conservan la
   misma cápsula y el mismo contorno rosado, estén encendidos o apagados.
   Estas reglas se cargan al final para que el esquema global no vuelva a
   convertir en blanco el fondo de los switches activos. */
body:has(.adm-main) input[type="checkbox"].tt-mini-switch{
  -webkit-appearance:none!important;
  appearance:none!important;
  width:40px!important;
  height:24px!important;
  min-width:40px!important;
  padding:0!important;
  margin:0 8px 0 0!important;
  border:2px solid #e8b6c8!important;
  border-radius:999px!important;
  background:#fff!important;
  background-color:#fff!important;
  box-shadow:0 2px 7px rgba(139,38,66,.10)!important;
}
body:has(.adm-main) input[type="checkbox"].tt-mini-switch::before{
  top:1px!important;
  left:1px!important;
  width:18px!important;
  height:18px!important;
  background:#fff!important;
  border:1px solid rgba(173,63,103,.12)!important;
  box-shadow:0 1px 4px rgba(57,26,38,.22)!important;
}
body:has(.adm-main) input[type="checkbox"].tt-mini-switch:checked{
  background:var(--admin-color-brand,#ad3f67)!important;
  background-color:var(--admin-color-brand,#ad3f67)!important;
  border-color:var(--admin-color-brand,#ad3f67)!important;
}
body:has(.adm-main) input[type="checkbox"].tt-mini-switch:checked::before{
  transform:translateX(16px)!important;
}
body:has(.adm-main) .adm-toggle-slider{
  box-sizing:border-box!important;
  background:#fff!important;
  background-color:#fff!important;
  border:2px solid #e8b6c8!important;
  box-shadow:0 2px 7px rgba(139,38,66,.10)!important;
}
body:has(.adm-main) .adm-toggle-slider::before{
  background:#fff!important;
  border:1px solid rgba(173,63,103,.12)!important;
  box-shadow:0 1px 4px rgba(57,26,38,.22)!important;
}
body:has(.adm-main) .adm-toggle input:checked + .adm-toggle-slider{
  background:var(--admin-color-brand,#ad3f67)!important;
  background-color:var(--admin-color-brand,#ad3f67)!important;
  border-color:var(--admin-color-brand,#ad3f67)!important;
}

/* Parte 2E: contenido informativo con datos reales de longitud variable.
   Las ciudades y sus precios deben conservarse dentro de cada tarjeta; en
   mobile se apilan para que ningún nombre o aviso de precio quede comprimido. */
.tt-city-price-list{
  min-width:0;
}
.tt-city-price-list li{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  align-items:start!important;
  gap:8px 12px!important;
  width:100%!important;
  min-width:0!important;
}
.tt-city-price-list li>span{
  min-width:0!important;
  overflow-wrap:anywhere;
  word-break:break-word;
}
.tt-city-price-list .tt-city-price-val{
  max-width:20rem;
  text-align:right;
  white-space:normal!important;
}

/* Los documentos y tarjetas de contacto pueden recibir correos o referencias
   largas desde contenido administrable. Se quiebran dentro de la tarjeta sin
   alterar URLs, destino ni texto. */
:is(.tt-info-block,.tt-contact-info-item) a:not(.tt-btn){
  min-width:0;
  overflow-wrap:anywhere;
  word-break:break-word;
}
#tt-open-privacy-settings{
  min-height:44px;
  max-width:100%;
  white-space:normal;
  line-height:1.3;
}

@media (max-width:480px){
  .tt-city-price-list li{
    grid-template-columns:minmax(0,1fr)!important;
  }
  .tt-city-price-list .tt-city-price-val{
    max-width:none;
    text-align:left;
  }
}

/* Modal "Iniciá sesión para continuar" del checkout: el fondo completo
   (#ck-login-required-overlay) es el scrim oscuro translúcido, no un
   "modal" — pero antes llevaba role="dialog", así que la regla genérica
   de :is(.tt-modal,.modal,.dialog,[role="dialog"]) de tintin-unified-
   theme.css le pisaba el scrim con el color de "Modales — fondo" de
   Apariencia (editable desde Super Admin), dejando un fondo pastel
   translúcido en vez del scrim oscuro. El role="dialog" ahora vive en
   la tarjeta (#ck-login-required-card), que sí debe verse siempre
   blanca — nunca el color de tema, tampoco el scrim. */
html body #ck-login-required-overlay{
  background:rgba(30,10,18,.5)!important;
  background-color:rgba(30,10,18,.5)!important;
  background-image:none!important;
}
html body #ck-login-required-card{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
  background-image:none!important;
  opacity:1!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  mix-blend-mode:normal!important;
  isolation:isolate!important;
}

/* Botón "Finalizar compra" del carrito: queda agrupado junto a otros
   botones "primarios" en la regla de tema de tema-unificado-tintin.css
   (línea ~185), que le pisa el color de texto con la variable editable
   de Apariencia — si esa variable termina en un rosado oscuro (como el
   fondo del propio botón), el texto queda casi ilegible. Este botón es
   una acción crítica de compra: su texto va siempre blanco, sin
   importar el tema. */
html body .tt-cart-drawer .tt-cart-checkout-btn{
  color:#FFFFFF!important;
}
