/* css/core/montserrat.css */
/*
 * Tipografía global única de Tintin.
 * Montserrat Variable 5.2.8, SIL Open Font License 1.1.
 * Los archivos WOFF2 se sirven localmente para evitar dependencias externas y
 * solicitudes duplicadas. Se usa font-display: swap (no block): el subconjunto
 * latino se precarga en cada página, así que en conexiones normales la fuente
 * ya está lista antes de la primera pintura y no hay salto; en conexiones lentas
 * o inestables el texto se muestra de inmediato con la fuente de respaldo en
 * lugar de quedar INVISIBLE hasta 3 s (FOIT), que es lo que provocaba "block".
 */
@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-cyrillic-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-cyrillic-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-vietnamese-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-latin-ext-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: "Montserrat";
  font-style: normal;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-latin-wght-normal.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-cyrillic-ext-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F;
}

@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-cyrillic-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116;
}

@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-vietnamese-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB;
}

@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-latin-ext-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

@font-face {
  font-family: "Montserrat";
  font-style: italic;
  font-display: swap;
  font-weight: 100 900;
  src: url("/assets-tintin/fonts/montserrat-latin-wght-italic.woff2") format("woff2-variations");
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

:root {
  --font-family-primary: "Montserrat";
  --font-family-secondary: "Montserrat";
  --font-family-heading: "Montserrat";
  --font-family-body: "Montserrat";
  --font-family-button: "Montserrat";
  --font-family-form: "Montserrat";
  --font-family-admin: "Montserrat";
  --font-heading: "Montserrat";
  --font-body: "Montserrat";
  --font-display: "Montserrat";
  --font: "Montserrat";
  --serif: "Montserrat";
  --adm-font: "Montserrat";
}

html,
body,
body *,
button,
input,
textarea,
select,
option,
optgroup,
label,
table,
thead,
tbody,
tfoot,
tr,
th,
td,
a,
p,
span,
div,
section,
article,
header,
footer,
nav,
aside,
main,
h1,
h2,
h3,
h4,
h5,
h6,
small,
strong,
b,
em,
i,
u,
mark,
blockquote,
figcaption,
legend,
summary,
details,
pre,
code,
kbd,
samp,
svg text,
svg tspan {
  font-family: "Montserrat" !important;
  font-synthesis: none;
}

*::before,
*::after,
*::placeholder {
  font-family: "Montserrat" !important;
}


/* css/theme/superficies-solidas-interfaz.css */
body > #tt-loader:not(.tt-out) ~ .ck-back-row,
body > #tt-loader:not(.tt-out) ~ .ck-steps,
body > #tt-loader:not(.tt-out) ~ .ck-body {
  visibility: hidden !important;
  pointer-events: none !important;
}

html:has(#ck-steps),
html:has(#ck-steps) body,
html:has(#ck-steps) .ck-body {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  background-image: var(--tt-flow-canvas, none) !important;
  transition-property: none !important;
}

html body .ck-steps .ck-step,
html body .ck-steps .ck-step.active,
html body .ck-steps .ck-step.done {
  background: transparent !important;
  background-color: transparent !important;
  background-image: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  outline: 0 !important;
}

html body .ck-steps .ck-step .ck-step-num {
  width: 34px !important;
  min-width: 34px !important;
  max-width: 34px !important;
  height: 34px !important;
  min-height: 34px !important;
  max-height: 34px !important;
  aspect-ratio: 1 / 1 !important;
  padding: 0 !important;
  border: 2px solid #FDECF2 !important;
  border-radius: 999px !important;
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  color: var(--color-text-primary, #222222) !important;
  box-shadow: 0 3px 10px rgba(248,170,202, 0.08) !important;
  overflow: hidden !important;
  flex: 0 0 34px !important;
}

html body .ck-steps .ck-step.active .ck-step-num,
html body .ck-steps .ck-step.done .ck-step-num {
  border-color: var(--tt-accent, var(--color-brand-primary, #F8AACA)) !important;
  background: var(--tt-accent, var(--color-brand-primary, #F8AACA)) !important;
  background-color: var(--tt-accent, var(--color-brand-primary, #F8AACA)) !important;
  color:#222222 !important;
  box-shadow: 0 0 0 4px #FDECF2, 0 5px 14px rgba(248,170,202, 0.18) !important;
}

html body .ck-steps .ck-step-label {
  background: transparent !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
}

html body #tt-welcome-tutorial.tt-welcome-overlay {
  background: #FDECF2 !important;
  background-color: #FDECF2 !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;
}

html body #tt-welcome-tutorial .tt-welcome-card {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  background-image: none !important;
  border: 1.5px solid #FDECF2 !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mix-blend-mode: normal !important;
  isolation: isolate !important;
  overflow: hidden !important;
}

html body #tt-welcome-tutorial .tt-welcome-top {
  background: linear-gradient(135deg, #F8AACA 0%, #FDECF2 100%) !important;
  background-color: #F8AACA !important;
  opacity: 1 !important;
}

html body #tt-welcome-tutorial .tt-welcome-body {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  background-image: none !important;
  opacity: 1 !important;
}

html body #tt-welcome-tutorial .tt-welcome-close,
html body #tt-welcome-tutorial .tt-welcome-icon,
html body #tt-welcome-tutorial .tt-welcome-btn:not(.tt-welcome-btn-primary) {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  opacity: 1 !important;
}

html body .tt-dropdown,
html body .tt-dropdown-grid,
html body .tt-search-panel,
html body .tt-search-results,
html body .tt-account-panel,
html body .tt-cart-drawer,
html body .tt-collections-sheet,
html body .tt-mobile-menu,
html body .tt-mobile-menu-header,
html body .tt-mobile-nav,
html body .tt-mobile-cats,
html body .tt-mobile-cats-grid,
html body .tt-tablet-menu,
html body .tt-tablet-nav,
html body .tt-tablet-cats,
html body .tt-tablet-cats-grid,
html body .tt-tablet-account-entry,
html body .tt-mobile-user {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  background-image: none !important;
  border-color: #FDECF2 !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mix-blend-mode: normal !important;
}

html body .tt-dropdown,
html body .tt-search-panel,
html body .tt-search-results,
html body .tt-account-panel,
html body .tt-cart-drawer,
html body .tt-collections-sheet {
  box-shadow: 0 16px 40px rgba(82, 27, 49, 0.16) !important;
}

/* Los cuatro menús principales deben conservar una superficie blanca real y
   borde rosado, aunque una hoja previa declare fondos transparentes. Los IDs
   evitan afectar otros componentes del sitio. */
html body #tt-tienda-dropdown-panel,
html body #search-panel,
html body #account-panel,
html body #cart-drawer {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  background-image: none !important;
  border: 1px solid #FDECF2 !important;
  opacity: 1 !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mix-blend-mode: normal !important;
  isolation: isolate !important;
}

@media (min-width: 769px) {
  html body #tt-header-desktop-tablet.tt-header,
  html body .tt-header {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    background-image: none !important;
    border-bottom: 1px solid #FDECF2 !important;
    box-shadow: 0 8px 24px rgba(248,170,202, 0.08) !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    mix-blend-mode: normal !important;
  }

  html body #tt-header-desktop-tablet #btn-tienda,
  html body #tt-header-desktop-tablet #btn-search,
  html body #tt-header-desktop-tablet #btn-cuenta,
  html body #tt-header-desktop-tablet #btn-cart,
  html body #tt-header-desktop-tablet #btn-tienda:hover,
  html body #tt-header-desktop-tablet #btn-search:hover,
  html body #tt-header-desktop-tablet #btn-cuenta:hover,
  html body #tt-header-desktop-tablet #btn-cart:hover,
  html body #tt-header-desktop-tablet #btn-tienda:focus-visible,
  html body #tt-header-desktop-tablet #btn-search:focus-visible,
  html body #tt-header-desktop-tablet #btn-cuenta:focus-visible,
  html body #tt-header-desktop-tablet #btn-cart:focus-visible,
  html body #tt-header-desktop-tablet #btn-tienda.active,
  html body #tt-header-desktop-tablet #btn-tienda[aria-expanded="true"],
  html body #tt-header-desktop-tablet #btn-search[aria-expanded="true"],
  html body #tt-header-desktop-tablet #btn-cuenta[aria-expanded="true"],
  html body #tt-header-desktop-tablet #btn-cart[aria-expanded="true"] {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    background-image: none !important;
    border: 1px solid #FDECF2 !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    mix-blend-mode: normal !important;
  }
}

html:has(.login-page) #tt-loader,
html.tt-auth-silent-transition #tt-loader {
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  background-image: none !important;
}

html:has(.login-page) #tt-loader-spin-wrap,
html.tt-auth-silent-transition #tt-loader-spin-wrap {
  display: none !important;
  visibility: hidden !important;
}

html:has(.login-page) body > #tt-loader:not(.tt-out) ~ *,
html.tt-auth-silent-transition body > #tt-loader:not(.tt-out) ~ * {
  visibility: hidden !important;
  pointer-events: none !important;
}

html body .adm-content > .adm-section:not(.active) {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html body .adm-content > .adm-section.active {
  display: block !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

html body #section-welcome:not(.active) {
  display: none !important;
}

/* css/components/navigation/movil/fondos-solidos-movil.css */
@media (max-width: 767px) {
@media (max-width: 768px) {
  html body #tt-tabbar {
    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;
  }

  html body #tt-tabbar #tabbar-tienda,
  html body #tt-tabbar #tabbar-search,
  html body #tt-tabbar #tabbar-cart,
  html body #tt-tabbar #tabbar-cuenta,
  html body #tt-tabbar #tabbar-tienda:hover,
  html body #tt-tabbar #tabbar-search:hover,
  html body #tt-tabbar #tabbar-cart:hover,
  html body #tt-tabbar #tabbar-cuenta:hover,
  html body #tt-tabbar #tabbar-tienda:focus-visible,
  html body #tt-tabbar #tabbar-search:focus-visible,
  html body #tt-tabbar #tabbar-cart:focus-visible,
  html body #tt-tabbar #tabbar-cuenta:focus-visible,
  html body #tt-tabbar #tabbar-tienda.active,
  html body #tt-tabbar #tabbar-search.active,
  html body #tt-tabbar #tabbar-cart.active,
  html body #tt-tabbar #tabbar-cuenta.active,
  html body #tt-tabbar #tabbar-tienda[aria-expanded="true"],
  html body #tt-tabbar #tabbar-search[aria-expanded="true"],
  html body #tt-tabbar #tabbar-cart[aria-expanded="true"],
  html body #tt-tabbar #tabbar-cuenta[aria-current="page"] {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    mix-blend-mode: normal !important;
  }

  html body #search-panel,
  html body #cart-drawer,
  html body #collections-sheet,
  html body #notifications-drawer {
    background: #FFFFFF !important;
    background-color: #FFFFFF !important;
    background-image: none !important;
    border: 1px solid #FDECF2 !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    mix-blend-mode: normal !important;
  }

  html body #tt-tabbar #tabbar-notifications,
  html body #tt-tabbar #tabbar-notifications:hover,
  html body #tt-tabbar #tabbar-notifications:focus-visible,
  html body #tt-tabbar #tabbar-notifications[aria-expanded="true"] {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    opacity: 1 !important;
    backdrop-filter: none !important;
    -webkit-backdrop-filter: none !important;
    mix-blend-mode: normal !important;
  }
}
}

/* css/theme/fondo-solido-cargador.css */
html:has(body #tt-loader:not(.tt-out)),
html:has(body #tt-loader:not(.tt-out)) body {
  background: #F8AACA !important;
  background-color: #F8AACA !important;
  background-image: var(--tt-flow-canvas, none) !important;
}

html body #tt-loader {
  color: #FFFFFF !important;
  background: #F8AACA !important;
  background-color: #F8AACA !important;
  background-image: none !important;
  background-blend-mode: normal !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mix-blend-mode: normal !important;
  isolation: isolate !important;
}

html body #tt-loader:not(.tt-out) {
  opacity: 1 !important;
  visibility: visible !important;
}

html body #tt-loader::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
  background: #F8AACA !important;
  background-color: #F8AACA !important;
  background-image: none !important;
  opacity: 1 !important;
  pointer-events: none;
}

html body #tt-loader > * {
  position: relative;
  z-index: 1;
}

/* La marca visible se toma directamente del PNG oficial. Esta URL propia
   evita reutilizar en caché el SVG generado que se retiró del repositorio. */
html body #tt-loader-spin-wrap::before {
  content: "";
  display: block;
  flex: 0 0 auto;
  width: var(--tt-loader-brand-width);
  max-width: 100%;
  aspect-ratio: 4 / 5;
  background-image: url("/assets-tintin/images/general/logo.png?v=tintin-20261004-final-integration-2-master-20261007-1-encomienda-20261008-1-checkout-20261008-2");
  background-position: center;
  background-repeat: no-repeat;
  background-size: contain;
  filter: brightness(0) invert(1);
  opacity: 0;
  transform: scale(1.09);
  pointer-events: none;
}

/* Entrada elegida por el equipo: fade + escala (no es el revelado vertical
   que se sacó antes). Corre una sola vez apenas el logo está listo, dura
   600ms y no bloquea el "instantáneo": el logo sigue apareciendo enseguida,
   solo con un pequeño acabado en vez de aparecer seco. */
html body #tt-loader-spin-wrap.tt-ready::before {
  animation: tt-logo-fade-scale-in .6s cubic-bezier(.22, .61, .36, 1) both;
}

@keyframes tt-logo-fade-scale-in {
  to {
    opacity: 1;
    transform: scale(1);
  }
}

@media (prefers-reduced-motion: reduce) {
  html body #tt-loader-spin-wrap::before {
    opacity: 1;
    transform: none;
    animation: none;
  }
}

/* El elemento anterior queda fuera de la composición. Ya no puede mostrar
   el SVG viejo ni ejecutar el revelado de arriba hacia abajo. */
html body #tt-loader-logo,
html body #tt-loader-spin-wrap.tt-ready #tt-loader-logo {
  display: none !important;
  opacity: 1 !important;
  transform: none !important;
  clip-path: none !important;
  animation: none !important;
  filter: none !important;
}

/* Debajo del ícono va la palabra Tintin y, debajo de esa, la sección a la
   que se está entrando (Página Principal, Catálogo - X, Producto - X, etc.).
   Nunca deben quedar ocultas; la animación de entrada (igual a la del logo)
   la define cargador-pagina.js. */
html body #tt-loader-wordmark,
html body #tt-loader-brand-subtitle {
  visibility: visible !important;
}

/* Identidad de carga solicitada: fondo rosa y elementos blancos. */
html body #tt-loader-wordmark,
html body #tt-loader-wordmark .tt-loader-wordmark-i {
  color: #FFFFFF !important;
}

/* Mensajes dinámicos y acciones de recuperación también pertenecen a la
   identidad de carga, independientemente de la paleta de la página. */
html body #tt-loader * { color: #FFFFFF !important; }
html body #tt-loader :is(#tt-loader-wordmark,#tt-loader-brand-subtitle,#tt-loader-title,#tt-loader-subtitle) { opacity: 1 !important; }
html body #tt-loader .tt-loader-spinner::before,
html body #tt-loader .tt-loader-spinner::after { opacity: 1 !important; }

/* Todos los títulos y mensajes comparten el blanco del logo. */
html body #tt-loader-brand-subtitle,
html body #tt-loader-title,
html body #tt-loader-subtitle {
  color: #FFFFFF !important;
}

html body #tt-loader-wordmark .tt-loader-wordmark-i::before,
html body #tt-loader-wordmark .tt-loader-wordmark-i::after {
  content: none !important;
  display: none !important;
}

html body #tt-loader .tt-loader-spinner::before {
  border-color: #fff #fff transparent transparent !important;
  mix-blend-mode: normal !important;
}

html body #tt-loader .tt-loader-spinner::after {
  border-color: transparent transparent #fff #fff !important;
  mix-blend-mode: normal !important;
}

/* Login funciona como pantalla independiente. El shell público puede montarse
   técnicamente mientras cargan los scripts, pero jamás debe verse ni reservar
   espacio alrededor del formulario. */
html body:has(.login-page) #tt-header-desktop-tablet,
html body:has(.login-page) #search-panel,
html body:has(.login-page) #mobile-menu,
html body:has(.login-page) #tt-tabbar,
html body:has(.login-page) #cart-overlay,
html body:has(.login-page) #cart-drawer,
html body:has(.login-page) #collections-sheet,
html body:has(.login-page) #sheet-backdrop {
  display: none !important;
  visibility: hidden !important;
  pointer-events: none !important;
}

html body:has(.login-page).tt-public-shell-mounted {
  padding-top: 0 !important;
  padding-bottom: 0 !important;
}

/* En escritorio el header público permanece fixed antes y después del mount,
   y las páginas ya reservan su offset mediante --header-h en sus propios
   heroes/breadcrumbs. Agregar 88px al body solo antes del mount introducía
   una geometría transitoria que desaparecía al añadir
   .tt-public-shell-mounted y se contabilizaba como CLS. En tableta sí se
   conserva la reserva estable de 84px porque forma parte del layout fijo de
   ese breakpoint y no cambia durante el montaje. */
 @media (min-width: 768px) and (max-width: 1024px) {
   html body:not(:has(.login-page)):not(:has(.adm-main)):not(.tt-home-premium) {
     padding-top: 84px !important;
   }
 }

/* La pantalla normal de Login usa el mismo loader oficial que el resto del
   sitio. Esta regla final anula únicamente la excepción visual antigua; el
   estado interno tt-auth-silent-transition conserva su comportamiento. */
html:has(.login-page) body #tt-loader {
  background: #F8AACA !important;
  background-color: #F8AACA !important;
}

html:has(.login-page) body #tt-loader-spin-wrap {
  display: flex !important;
  visibility: visible !important;
  opacity: 1 !important;
}

html body:has(.login-page) .login-page {
  min-height: 100dvh !important;
  position: relative;
  z-index: 1;
}


/* Single global loader surface: the loader background is the only visual layer. */
html body #tt-loader::before {
  content: none !important;
  display: none !important;
}

/* Cubrir el viewport sin alterar el gutter de la página: cambiarlo mientras
   carga desplazaba el contenido al retirar el loader. */
html body #tt-loader { width: 100vw !important; width: 100dvw !important; }


/* css/core/tokens-color.css */
:root {
  --color-brand-primary: #F8AACA;
  --color-brand-secondary: #222222;
  --color-brand-accent: #FDECF2;
  --color-brand-primary-hover: #F8AACA;
  --color-background-page: #FFFFFF;
  --color-background-surface: #FFFFFF;
  --color-background-surface-soft: #FDECF2;
  --color-background-elevated: #FFFFFF;
  --color-background-header: #FFFFFF;
  /* El footer es una continuación sobria de la página, no otra tarjeta. */
  --color-background-footer: #FFFFFF;
  --color-background-menu: #FFFFFF;
  --color-background-submenu: #FDECF2;
  --color-background-table: #FFFFFF;
  --color-background-table-row-hover: #FDECF2;
  --color-background-field: #FFFFFF;
  --color-background-float: #F8AACA;
  --color-background-overlay: rgba(34,34,34,0.55);
  --color-background-selected: #FDECF2;
  --color-background-disabled: #FDECF2;
  --color-text-primary: #222222;
  --color-text-secondary: #222222;
  --color-text-tertiary: #222222;
  --color-text-muted: #222222;
  --color-text-disabled: #222222;
  --color-text-inverse: #FFFFFF;
  --color-text-title: #222222;
  --color-text-subtitle: #222222;
  --color-text-label: #222222;
  --color-text-placeholder: #222222;
  --color-text-link: #222222;
  --color-text-link-visited: #222222;
  --color-text-help: #222222;
  --color-button-primary-background: #F8AACA;
  --color-button-primary-text: #222222;
  --color-button-primary-border: #F8AACA;
  --color-button-primary-hover: #F8AACA;
  --color-button-primary-active: #F8AACA;
  --color-button-primary-focus-ring: rgba(248,170,202,0.24);
  --color-button-primary-disabled-background: #FDECF2;
  --color-button-primary-disabled-text: #222222;
  --color-button-secondary-background: #FFFFFF;
  --color-button-secondary-text: #222222;
  --color-button-secondary-border: #F8AACA;
  --color-button-secondary-hover: #FDECF2;
  --color-button-secondary-active: #FDECF2;
  --color-button-secondary-focus-ring: rgba(248,170,202,0.24);
  --color-button-secondary-disabled-background: #FDECF2;
  --color-button-secondary-disabled-text: #222222;
  --color-button-success-background: #e0f5e6;
  --color-button-success-text: #166534;
  --color-button-warning-background: #fff3e0;
  --color-button-warning-text: #bf360c;
  --color-button-danger-background: #dc2626;
  --color-button-danger-text: #FFFFFF;
  --color-button-danger-hover: #b91c1c;
  --color-button-info-background: #e3edf9;
  --color-button-info-text: #1d4e89;
  --color-button-neutral-background: #FDECF2;
  --color-button-neutral-text: #222222;
  --color-button-whatsapp-background: #0d8043;
  --color-button-whatsapp-text: #FFFFFF;
  --color-button-whatsapp-hover: #0a6835;
  --color-button-icon-text: #222222;
  --color-button-icon-disabled-text: #222222;
  --color-button-floating-background: #F8AACA;
  --color-button-floating-text: #222222;
  --color-button-sticky-background: #F8AACA;
  --color-button-sticky-text: #222222;
  --color-button-outline-background: #FFFFFF;
  --color-button-outline-text: #222222;
  --color-button-outline-border: #F8AACA;
  --color-button-transparent-text: #222222;
  --color-border-primary: #FDECF2;
  --color-border-secondary: #FDECF2;
  --color-border-focus: #F8AACA;
  --color-border-error: #b8341f;
  --color-border-success: #166534;
  --color-border-warning: #bf360c;
  --color-info-background: #e3edf9;
  --color-info-text: #1d4e89;
  --color-success-background: #e0f5e6;
  --color-success-text: #166534;
  --color-warning-background: #fff3e0;
  --color-warning-text: #bf360c;
  --color-error-background: #fde3e1;
  --color-error-text: #b8341f;
  --color-danger-background: #dc2626;
  --color-danger-text: #FFFFFF;
  --color-neutral-background: #FDECF2;
  --color-neutral-text: #222222;
  --color-state-available: #166534;
  --color-state-soldout: #b8341f;
  --color-state-discount: #F8AACA;
  --color-state-promo: #8a6d1f;
  --color-state-selected: #F8AACA;
  --color-state-hover: #FDECF2;
  --color-state-focus: rgba(248,170,202,0.24);
  --color-state-active: #FDECF2;
  --color-state-disabled: #222222;
  --color-field-background: #FFFFFF;
  --color-field-text: #222222;
  --color-field-border: #FDECF2;
  --color-field-border-focus: #F8AACA;
  --color-field-placeholder: #222222;
  --color-nav-active-background: #FDECF2;
  --color-nav-active-text: #222222;
  --color-nav-inactive-text: #222222;
  --color-tab-active-background: #F8AACA;
  --color-tab-active-text: #222222;
  --color-tab-inactive-text: #222222;
  --color-breadcrumb-text: #222222;
  --color-breadcrumb-active-text: #222222;
  --color-accordion-header-background: #FDECF2;
  --color-indicator: #F8AACA;
  --color-card-border: #FDECF2;
  --color-card-shadow: rgba(248,170,202,0.10);
  --color-table-border: #FDECF2;
  --color-table-header-background: #FDECF2;
  --color-table-header-text: #222222;
  --color-badge-background: #FDECF2;
  --color-badge-text: #222222;
  --color-chip-background: #FDECF2;
  --color-chip-text: #222222;
  --color-modal-background: #FFFFFF;
  --color-modal-border: #FDECF2;
  --color-modal-overlay: rgba(34,34,34,0.55);
  --color-tooltip-background: #222222;
  --color-tooltip-text: #FFFFFF;
  --color-empty-state-text: #222222;
  --color-price: #222222;
  --color-price-old: #222222;
  --color-rating-star: #222222;
  --color-cart-badge-background: #F8AACA;
  --color-cart-badge-text: #222222;
  --color-icon-primary: #222222;
  --color-icon-secondary: #F8AACA;
  --color-icon-disabled: #222222;
  --color-scrollbar-thumb: #F8AACA;
  --color-scrollbar-track: #FDECF2;
  --color-switch-on-background: #F8AACA;
  --color-switch-off-background: #FDECF2;
  --color-switch-thumb: #FFFFFF;
  --color-checkbox-checked-background: #F8AACA;
  --color-checkbox-border: #FDECF2;
  --color-radio-checked-background: #F8AACA;
  --color-radio-border: #FDECF2;
  --color-progress-track: #FDECF2;
  --color-progress-fill: #F8AACA;
  --color-skeleton-base: #FDECF2;
  --color-skeleton-shine: #FDECF2;
  --color-selection-background: #F8AACA;
  --color-selection-text: #222222;
  --color-loading-spinner: #F8AACA;
}


/* styles.min.css */
:root{--bg: #fcf0f6;--bg-soft: #fcf0f6;--card-bg: #fef5f8;--pink-pale: var(--color-brand-accent, #fce4ec);--pink: #e8a0b4;--pink-mid: #d4748e;--pink-dark: var(--color-brand-primary, #b84c72);--rose: var(--color-brand-primary-hover, #8b2642);--gold: #AD3F67;--gold-hover: #8B2642;--gold-light: #FFF9FC;--text: #2B2B2B;--text-sec: #7B6F72;--text-muted: #7B6F72;--text-title: #2B2B2B;--border: #f0d8e0;--white: #ffffff;--whatsapp: #25d366;--whatsapp-h: #1fba58;--error: #e53935;--success: #4caf50;--shadow-sm: 0 2px 8px rgba(180,76,114,.08);--shadow-md: 0 4px 20px rgba(180,76,114,.12);--shadow-lg: 0 8px 40px rgba(180,76,114,.18);--radius-sm: 8px;--radius-md: 16px;--radius-lg: 24px;--radius-pill: 999px;--transition: .3s cubic-bezier(.4,0,.2,1);--header-h: 72px;--font-heading: "Montserrat";--font-body: "Montserrat";--z-dropdown: 200;--z-whatsapp: 900;--z-tabbar: 950;--z-sheet: 960;--z-sheet-back: 959;--z-header: 1000;--z-search: 1500;--z-cart-over: 1800;--z-cart: 1900;--z-mobile: 2000;--z-lightbox: 9998;--z-toast: 9999}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;overflow-x:hidden;max-width:100%}.tt-cart-feedback{position:fixed;left:50%;bottom:max(88px,calc(24px + env(safe-area-inset-bottom)));z-index:10020;width:min(92vw,520px);padding:13px 20px;border:1px solid rgba(255,255,255,.3);border-radius:16px;background:#8f294f;color:#fff!important;box-shadow:0 12px 34px #39101f47;font-size:.84rem;font-weight:700;line-height:1.45;text-align:center;opacity:0;pointer-events:none;transform:translate(-50%,18px);transition:opacity .22s ease,transform .22s ease}.tt-cart-feedback.is-visible{opacity:1;transform:translate(-50%)}.tt-cart-feedback[data-state=warning]{background:#7e2546}@media(max-width:768px){.tt-cart-feedback{bottom:max(84px,calc(76px + env(safe-area-inset-bottom)));padding:12px 16px;font-size:.8rem}}@media(prefers-reduced-motion:reduce){.tt-cart-feedback{transition:none}}html{scrollbar-width:thin;scrollbar-color:var(--color-scrollbar-thumb, #EA7EA3) var(--color-scrollbar-track, #FDF0F5)}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:var(--color-scrollbar-track, #FDF0F5)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb, #EA7EA3);border-radius:999px;border:2px solid var(--color-scrollbar-track, #FDF0F5);background-clip:padding-box}::-webkit-scrollbar-thumb:hover{background:#d9648c}::-webkit-scrollbar-corner{background:var(--color-scrollbar-track, #FDF0F5)}body{font-family:Montserrat;background:var(--bg);color:var(--text);line-height:1.6;overflow-x:clip}img{max-width:100%;height:auto;display:block;object-position:center}a{text-decoration:none;color:inherit}ul{list-style:none}button{cursor:pointer;border:none;background:none;font-family:Montserrat}input,textarea,select{font-family:Montserrat}h1,h2,h3,h4,h5,h6{font-family:Montserrat;font-weight:600;line-height:1.2;color:var(--text-title)}.tt-section-title{font-family:Montserrat;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;color:var(--text-title);letter-spacing:.02em;margin-bottom:.5rem}.tt-section-sub{font-family:Montserrat;font-size:.95rem;color:var(--text-muted);letter-spacing:.06em;text-transform:uppercase;margin-bottom:.75rem}.tt-section-desc{font-size:1rem;color:var(--text-sec);max-width:560px;line-height:1.8}.tintin-img,.tt-responsive-img,.tt-section-img{max-width:100%;height:auto;display:block;object-position:center}.tt-media-contain{width:100%;height:100%;object-fit:contain;object-position:center;background:transparent;display:block}.container{max-width:1280px;margin:0 auto;padding:0 24px}.section{padding:48px 0}.section-sm{padding:32px 0}.text-center{text-align:center}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-sm{gap:12px}.gap-md{gap:24px}.gap-lg{gap:40px}.w-full{width:100%}.mt-sm{margin-top:12px}.mt-md{margin-top:24px}.mt-lg{margin-top:40px}.mb-sm{margin-bottom:12px}.mb-md{margin-bottom:24px}.mb-lg{margin-bottom:40px}.tt-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 28px;border-radius:var(--radius-pill);font-family:Montserrat;font-size:.82rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;background:var(--pink-dark);color:var(--white);transition:var(--transition);cursor:pointer;border:2px solid transparent;white-space:nowrap}.tt-btn:hover{background:var(--rose);transform:translateY(-1px);box-shadow:var(--shadow-md)}.tt-btn-outline{background:transparent;border-color:var(--pink-dark);color:var(--pink-dark)}.tt-btn-outline:hover{background:var(--pink-dark);color:var(--white)}.tt-btn-gold{background:var(--gold);color:var(--white)}.tt-btn-gold:hover{background:var(--gold-hover)}.tt-btn-sm{padding:8px 18px;font-size:.75rem}.tt-btn-lg{padding:16px 40px;font-size:.9rem;max-width:100%;box-sizing:border-box}.tt-btn-icon{width:36px;height:36px;border-radius:var(--radius-pill);background:var(--pink-pale);color:var(--pink-dark);font-size:1.1rem;display:flex;align-items:center;justify-content:center;transition:var(--transition);cursor:pointer;border:none}.tt-btn-icon:hover{background:var(--pink-dark);color:var(--white)}.tt-img-placeholder{width:100%;background:linear-gradient(135deg,#fce4ec,#f5d4e0 40%,#ede0f0);display:flex;align-items:center;justify-content:center;position:relative;overflow:hidden}.tt-img-placeholder:after{content:"";position:absolute;inset:0;background:linear-gradient(225deg,rgba(201,169,110,.15) 0%,transparent 60%)}.tt-img-placeholder-rose{background:linear-gradient(135deg,#f5d4e0,#e8a0b4,#d4748e)}.tt-img-placeholder-nude{background:linear-gradient(135deg,#f5ead0,#f0d8c0 40%,#e8cba8)}.tt-img-placeholder-purple{background:linear-gradient(135deg,#ede0f0,#d4b8e0,#b890c8)}.tt-header{position:fixed;top:0;left:0;right:0;width:100%;z-index:var(--z-header);background:transparent;border-bottom:1px solid transparent;transition:background var(--transition),border-color var(--transition),box-shadow var(--transition)}.tt-header.scrolled{background:#ffffffeb;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-bottom-color:var(--border);box-shadow:0 2px 20px #b44c7214}#tt-header-mobile{display:none!important;visibility:hidden!important;pointer-events:none!important}@media(min-width:769px){.tt-tabbar{display:none!important;visibility:hidden!important;pointer-events:none!important}}.tt-header-inner{display:flex;align-items:center;justify-content:space-between;height:var(--header-h);padding:0 32px;gap:24px}.tt-logo-link{display:flex;align-items:center;text-decoration:none;flex-shrink:0}.tt-logo-img{height:56px;width:auto;display:block;object-fit:contain}.tt-logo-img--menu{height:52px}.tt-nav{display:flex;align-items:center;gap:4px;flex:1;justify-content:center}.tt-nav>a,.tt-nav-dropdown>button{min-height:44px;display:inline-flex;align-items:center;justify-content:center;font-family:Montserrat;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--text-title);padding:8px 14px;border-radius:var(--radius-pill);position:relative;transition:color var(--transition),background var(--transition),border-color var(--transition),transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s ease;white-space:nowrap;background:#ffffff1f;border:1px solid rgba(255,255,255,.18);cursor:pointer}.tt-nav>a:after,.tt-nav>.tt-nav-dropdown>button:after{content:"";position:absolute;left:18%;right:18%;bottom:3px;height:2px;border-radius:999px;background:currentColor;transform:scaleX(0);transform-origin:center;transition:transform .22s cubic-bezier(.2,.8,.2,1)}.tt-nav>a:hover,.tt-nav-dropdown>button:hover,.tt-nav>a.active,.tt-nav-dropdown>button.active{color:var(--text-title);background:#ffffff47;border-color:#ffffff5c;transform:translateY(-1px);box-shadow:0 8px 22px #4016271f}.tt-nav>a.active:after,.tt-nav>.tt-nav-dropdown>button.active:after{transform:scaleX(1)}.tt-header.scrolled .tt-nav>a,.tt-header.scrolled .tt-nav-dropdown>button{color:var(--text);background:#d4789a0f;border-color:#d4789a24}.tt-header.scrolled .tt-nav>a:hover,.tt-header.scrolled .tt-nav-dropdown>button:hover,.tt-header.scrolled .tt-nav>a.active,.tt-header.scrolled .tt-nav-dropdown>button.active{color:var(--pink-dark);background:var(--pink-pale);border-color:#d4789a47}.tt-nav-dropdown{position:relative}.tt-dropdown{position:absolute;top:calc(100% + 12px);left:50%;transform:translate(-50%) translateY(-8px);background:var(--white);border:1px solid var(--border);border-radius:var(--radius-md);padding:24px;width:680px;box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transition:opacity var(--transition),transform var(--transition),visibility var(--transition);pointer-events:none;z-index:200}.tt-nav-dropdown.open .tt-dropdown,.tt-nav-dropdown:focus-within .tt-dropdown{opacity:1;visibility:visible;transform:translate(-50%) translateY(0);pointer-events:all}.tt-dropdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.tt-account-panel{position:absolute;top:calc(100% + 12px);right:0;background:var(--white);border:1px solid var(--border);border-radius:18px;padding:10px;width:min(264px,calc(100vw - 24px));max-width:calc(100vw - 24px);box-shadow:var(--shadow-lg);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--transition),transform var(--transition),visibility var(--transition);pointer-events:none;z-index:200}.tt-nav-dropdown.open .tt-account-panel,.tt-nav-dropdown:focus-within .tt-account-panel{opacity:1;visibility:visible;transform:translateY(0);pointer-events:all}.tt-account-header{padding:10px 10px 12px;font-size:.86rem;font-weight:700;letter-spacing:normal;text-transform:none;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tt-account-header span{overflow:hidden;text-overflow:ellipsis}.tt-account-panel-avatar{box-shadow:0 4px 12px #8b264229}.tt-account-panel .tt-account-item{display:flex;align-items:center;justify-content:flex-start;gap:10px;width:100%;height:auto;padding:11px 12px;border-radius:12px;color:var(--text);text-decoration:none;font-size:.82rem;font-weight:600;cursor:pointer;background:none;border:none;text-align:left;font-family:Montserrat;white-space:nowrap;transition:background-color .18s ease,color .18s ease;overflow:visible}.tt-account-panel .tt-account-item:hover{background:var(--pink-pale);color:var(--pink-dark)}.tt-account-panel .tt-account-item.tt-account-logout{color:var(--rose)}.tt-account-divider{height:1px;background:var(--border);margin:8px 4px}.tt-dropdown-card{display:flex;flex-direction:column;align-items:center;gap:8px;padding:12px 8px;border-radius:var(--radius-sm);border:1px solid var(--border);text-align:center;transition:var(--transition);text-decoration:none;color:var(--text);cursor:pointer}.tt-dropdown-card:hover{background:var(--pink-pale);border-color:var(--pink);transform:translateY(-2px)}.tt-dropdown-icon{width:44px;height:44px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#fce4ec,#f5d4e0);display:flex;align-items:center;justify-content:center;font-size:1.3rem;color:#b84c72}.tt-dropdown-label{font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text)}.tt-header-actions{display:flex;align-items:center;gap:4px;flex-shrink:0}.tt-header-actions button,.tt-header-actions a{width:40px;height:40px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-pill);color:var(--text-title);transition:var(--transition);position:relative;background:none;border:none;cursor:pointer;overflow:hidden}.tt-header-actions button:hover,.tt-header-actions a:hover{background:#ffffff2e;color:var(--text-title)}.tt-header-actions button.active,.tt-header-actions a.active{background:#ffffff3d;color:var(--text-title);box-shadow:0 0 0 2px #ffffff57,0 8px 20px #4016271f;transform:translateY(-1px)}.tt-header.scrolled .tt-header-actions button,.tt-header.scrolled .tt-header-actions a{color:var(--text)}.tt-header.scrolled .tt-header-actions button:hover,.tt-header.scrolled .tt-header-actions a:hover{background:var(--pink-pale);color:var(--pink-dark)}.tt-header.scrolled .tt-header-actions button.active,.tt-header.scrolled .tt-header-actions a.active{background:var(--pink-pale);color:var(--pink-dark);box-shadow:0 0 0 2px #d4789a33,0 8px 20px #4016271a}#account-dropdown>button{padding:0;background:none;border:none;font-size:inherit;letter-spacing:normal;text-transform:none}.tt-account-avatar-btn{width:26px;height:26px;max-width:none;max-height:none;border-radius:50%;object-fit:cover;display:block;flex-shrink:0}.tt-cart-badge{position:absolute;top:4px;right:4px;background:var(--pink-dark);color:var(--white);font-size:.6rem;font-weight:700;width:16px;height:16px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;line-height:1}.tt-cart-badge.hidden{display:none}#cart-badge-mobile{position:absolute;top:2px;right:2px;background:var(--pink-dark);color:var(--white);font-size:.55rem;font-weight:700;min-width:15px;height:15px;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;line-height:1;padding:0 3px}#cart-badge-mobile.hidden{display:none}.tt-menu-toggle{display:none;font-size:1.4rem;color:var(--text-title);background:none;border:none;cursor:pointer;padding:8px;transition:color var(--transition)}.tt-header.scrolled .tt-menu-toggle{color:var(--text)}.tt-mobile-menu{position:fixed;inset:0;background:var(--white);z-index:2000;display:flex;flex-direction:column;padding:24px;transform:translate(-100%);transition:transform var(--transition);overflow-y:auto}.tt-mobile-menu.open{transform:translate(0)}.tt-mobile-menu-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:32px}.tt-mobile-close{font-size:1.5rem;color:var(--text);background:none;border:none;cursor:pointer;padding:8px}.tt-mobile-nav a,.tt-mobile-nav button{display:block;width:100%;text-align:left;font-size:1.1rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text);padding:16px 0;border-bottom:1px solid var(--border);background:none;border-left:none;border-right:none;border-top:none;cursor:pointer;transition:color var(--transition)}.tt-mobile-nav a:hover,.tt-mobile-nav button:hover{color:var(--pink-dark)}.tt-mobile-nav a.active,.tt-mobile-nav button.active{color:var(--pink-dark);padding-inline:14px;border-radius:12px;background:linear-gradient(90deg,var(--pink-pale),transparent);box-shadow:inset 3px 0 0 var(--pink-dark)}.tt-mobile-tienda-btn{display:flex!important;align-items:center;justify-content:space-between!important;width:100%}.tt-mobile-chevron{transition:transform .25s ease;flex-shrink:0}.tt-mobile-tienda-btn[aria-expanded=true] .tt-mobile-chevron{transform:rotate(180deg)}.tt-mobile-cats{display:none;padding:12px 0 8px;border-bottom:1px solid var(--border)}.tt-mobile-cats.open{display:block}.tt-mobile-cats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;padding-bottom:12px}.tt-mobile-cat-card{display:flex;flex-direction:column;align-items:center;gap:6px;text-decoration:none;color:var(--text);font-size:.68rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;text-align:center;transition:color .2s}.tt-mobile-cat-card:hover{color:var(--pink-dark)}.tt-mobile-cat-img{width:100%;aspect-ratio:1;border-radius:12px;display:flex;align-items:center;justify-content:center;overflow:hidden}.tt-mobile-cat-img img{width:100%;height:100%;object-fit:cover}.tt-mobile-ver-todo{display:block;text-align:center;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--pink-dark);padding:10px 0 4px;text-decoration:none}.tt-mobile-ver-todo:hover{text-decoration:underline}.tt-mobile-user{margin-top:auto;padding-top:20px;border-top:1px solid var(--border)}.tt-mobile-user-login,.tt-mobile-user-profile{display:flex;align-items:center;gap:12px;padding:15px 16px;border-radius:18px;background:var(--bg);border:1px solid var(--border);text-decoration:none;color:var(--text);box-shadow:0 6px 18px #8b26420d;transition:background-color .2s ease}.tt-mobile-user-login:hover,.tt-mobile-user-profile:hover{background:var(--pink-pale)}.tt-mobile-user-avatar{width:42px;height:42px;border-radius:50%;background:var(--pink-pale);box-shadow:0 4px 12px #8b264224;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.tt-mobile-user-avatar img{width:100%;height:100%;max-width:none;max-height:none;object-fit:cover;flex-shrink:0}.tt-mobile-user-name{font-size:.88rem;font-weight:600;color:var(--text);line-height:1.2}.tt-mobile-user-sub{font-size:.72rem;color:var(--text-muted);margin-top:2px}.tt-mobile-user-logout{display:block;width:100%;margin-top:8px;padding:12px 16px;border-radius:14px;background:none;border:1px solid var(--border);color:var(--rose);font-family:Montserrat;font-size:.82rem;font-weight:600;text-align:center;cursor:pointer;transition:background-color .2s ease}.tt-mobile-user-logout:hover{background:var(--pink-pale)}.tt-search-panel{position:fixed;top:0;left:0;right:0;background:var(--white);z-index:1500;padding:0 32px;height:80px;display:flex;align-items:center;gap:16px;border-bottom:1px solid var(--border);transform:translateY(-100%);transition:transform var(--transition);box-shadow:var(--shadow-md)}.tt-search-panel.open{transform:translateY(0)}.tt-search-input{flex:1;border:none;outline:none;font-size:1.1rem;font-family:Montserrat;color:var(--text);background:transparent}.tt-search-input::placeholder{color:var(--text-muted)}.tt-search-close{font-size:1.4rem;color:var(--text-muted);cursor:pointer;background:none;border:none;padding:8px}.tt-search-close:hover{color:var(--pink-dark)}.tt-search-results{position:absolute;top:80px;left:0;right:0;background:var(--white);border-bottom:1px solid var(--border);max-height:400px;overflow-y:auto;padding:16px 32px;box-shadow:var(--shadow-md)}.tt-search-result-item{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid var(--border);cursor:pointer;transition:var(--transition)}.tt-search-result-item:last-child{border-bottom:none}.tt-search-result-item:hover{color:var(--pink-dark)}.tt-search-result-thumb{width:48px;height:48px;border-radius:var(--radius-sm);background:linear-gradient(135deg,#fce4ec,#f5d4e0);flex-shrink:0}.tt-search-result-info{flex:1}.tt-search-result-name{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.tt-search-result-price{font-size:.8rem;color:var(--pink-dark);font-weight:600}.tt-hero{position:relative;isolation:isolate;overflow:hidden;height:100vh;height:100svh;min-height:680px;display:flex;align-items:center;justify-content:flex-start;text-align:left;background:#1a0610;touch-action:pan-y}.tt-hero-media{position:absolute;inset:0;z-index:0;width:100%;height:100%;background:#1a0610;pointer-events:none;user-select:none;-webkit-user-select:none}.tt-hero-media.tt-hero-pending .tt-hero-img{visibility:hidden}.tt-hero-media picture{display:block;width:100%;height:100%;pointer-events:none}.tt-hero-img{display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;user-select:none;-webkit-user-select:none;-webkit-user-drag:none;-webkit-touch-callout:none}.tt-hero-content{position:relative;z-index:2;max-width:860px;padding:0 32px;margin-top:0}@media(min-width:1025px){.tt-hero-content{max-width:50%}}.tt-hero-eyebrow{display:flex;align-items:center;gap:10px;font-family:Montserrat;font-size:.78rem;font-weight:500;letter-spacing:.32em;text-transform:uppercase;color:var(--text);margin-bottom:14px}.tt-hero-eyebrow:before{content:"";display:block;width:28px;height:1.5px;background:currentColor;flex-shrink:0;opacity:.7}.tt-hero-title{font-family:Montserrat;font-size:clamp(2.2rem,4vw,3.5rem);font-weight:700;color:var(--text-title);line-height:.95;letter-spacing:.05em;margin-bottom:16px}.tt-hero-line{width:48px;height:2px;margin:0 0 18px;background:var(--pink-dark);opacity:.85}.tt-hero-subtitle{font-family:Montserrat;font-size:clamp(.95rem,1.6vw,1.15rem);font-weight:400;color:var(--text-sec);margin:-6px 0 16px;max-width:480px}.tt-hero-subtitle:empty{display:none;margin:0}.tt-hero-tagline{font-family:Montserrat;font-size:clamp(.78rem,1.4vw,.92rem);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:#ffffffe6;margin-bottom:6px}.tt-hero-sub{font-family:Montserrat;font-size:clamp(.72rem,1.2vw,.82rem);font-weight:400;letter-spacing:.08em;color:#fff9;margin-bottom:34px;font-style:italic}.tt-hero-pills{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-bottom:32px}.tt-hero-pill{background:#ffffff1f;border:1px solid rgba(255,255,255,.3);color:#ffffffeb;font-size:.74rem;font-weight:600;letter-spacing:.06em;padding:7px 16px;border-radius:20px;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.tt-hero-actions{display:flex;align-items:center;gap:22px;justify-content:flex-start;flex-wrap:wrap}.tt-hero-actions .tt-btn:not(.tt-btn-outline){background:var(--pink-dark);color:#fff;border-color:var(--pink-dark);font-weight:700;animation:tt-btn-breathe 3s ease-in-out 1.2s infinite}.tt-hero-actions .tt-btn:not(.tt-btn-outline):hover{background:var(--rose);border-color:var(--rose);animation-play-state:paused;transform:translateY(-2px) scale(1.03);letter-spacing:.14em}@keyframes tt-btn-breathe{0%,to{box-shadow:0 0 #b84c7200}50%{box-shadow:0 0 0 8px #b84c7238}}.tt-hero-cta{display:inline-flex;align-items:center;gap:8px}.tt-hero-cta-arrow{display:inline-block;transition:transform .4s cubic-bezier(.34,1.56,.64,1)}.tt-hero-cta:hover .tt-hero-cta-arrow{transform:translate(6px)}.tt-hero-link{display:inline-flex;align-items:center;min-height:44px;padding:10px 2px;color:var(--text);font-weight:600;font-size:.86rem;letter-spacing:.04em;text-decoration:underline;text-decoration-color:currentColor;text-underline-offset:3px;opacity:.85;transition:opacity .25s ease,color .25s ease}.tt-hero-link:hover{opacity:1;color:var(--pink-dark)}.tt-hero-scroll-hint{position:absolute;left:50%;bottom:26px;transform:translate(-50%);display:flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border:none;background:transparent;color:#fff;cursor:pointer;opacity:1;transition:opacity .35s ease;animation:tt-scroll-hint-bounce 1.8s ease-in-out infinite}.tt-hero-scroll-hint.tt-hero-scroll-hint-hidden{opacity:0;pointer-events:none}@keyframes tt-scroll-hint-bounce{0%,to{transform:translate(-50%) translateY(0)}50%{transform:translate(-50%) translateY(8px)}}.tt-trust-bar{background:var(--bg);padding:32px 0}.tt-trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:32px}.tt-trust-item{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;background:var(--white);border:1px solid rgba(212,120,154,.12);border-radius:var(--radius-md);padding:24px 16px;position:relative;min-width:0;overflow:visible;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.tt-trust-item:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:linear-gradient(90deg,var(--pink-dark),rgba(212,120,154,.3),var(--pink-dark));opacity:0;transition:opacity .22s ease}.tt-trust-item:hover{transform:translateY(-4px);box-shadow:0 14px 40px #d4789a1f;border-color:#d4789a47}.tt-trust-item:hover:before{opacity:1}.tt-trust-icon{width:52px;height:52px;background:#d4789a1a;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;flex-shrink:0}.tt-trust-title{font-family:Montserrat;font-size:.8rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text);max-width:100%;overflow-wrap:anywhere}.tt-trust-desc{font-size:.8rem;color:var(--text-sec);line-height:1.5;max-width:100%;overflow-wrap:anywhere}.tt-editorial{display:grid;grid-template-columns:1fr 1fr;min-height:520px}.tt-editorial-img{min-height:400px}.tt-editorial-img .tt-img-placeholder{height:100%;min-height:400px}.tt-editorial-content{display:flex;flex-direction:column;justify-content:center;padding:64px 72px;background:var(--bg)}.tt-editorial-eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--pink);margin-bottom:12px}.tt-editorial-title{font-family:Montserrat;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:700;color:var(--text-title);line-height:1.15;margin-bottom:20px}.tt-editorial-desc{font-size:.95rem;color:var(--text-sec);line-height:1.8;margin-bottom:32px;max-width:440px}.tt-editorial.reverse .tt-editorial-img{order:2}.tt-editorial.reverse .tt-editorial-content{order:1}.tt-editorial-img .tt-img-placeholder>div,.tt-watch-feature-img .tt-img-placeholder>div{display:none}.tt-collections-section{background:var(--bg)}.tt-collections-header{text-align:center;margin-bottom:48px}.tt-collections-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}.tt-coll-card{position:relative;border-radius:var(--radius-md);overflow:hidden;cursor:pointer;transition:transform var(--transition),box-shadow var(--transition);text-decoration:none;display:block;aspect-ratio:3/4}.tt-coll-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-lg)}.tt-coll-card-img{width:100%;height:100%;background:transparent;display:flex;align-items:center;justify-content:center;font-size:2rem}.tt-coll-card-overlay{position:absolute;inset:0;background:linear-gradient(180deg,transparent 40%,rgba(139,38,66,.75) 100%);display:flex;align-items:flex-end;padding:16px 12px}.tt-coll-card-label{font-family:Montserrat;font-size:.7rem;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--white)!important;text-shadow:0 1px 4px rgba(0,0,0,.3)}.tt-look-section{background:var(--bg)}.tt-look-header{text-align:center;margin-bottom:40px}.tt-look-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:32px}.tt-look-card{background:var(--white);border-radius:var(--radius-md);overflow:hidden;box-shadow:var(--shadow-sm);transition:var(--transition)}.tt-look-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.tt-look-card-img{height:220px;background:transparent;overflow:hidden;position:relative}.tt-look-card-img-ph:after{content:"";position:absolute;inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='%23e8a0b8' stroke-width='1.5'%3E%3Cpath d='M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z'%3E%3C/path%3E%3Ccircle cx='12' cy='13' r='4'%3E%3C/circle%3E%3C/svg%3E") center/48px no-repeat}.tt-look-card-inner{display:block;text-decoration:none;color:inherit}.tt-look-card-foot{padding:0 16px 14px}.tt-look-card-body{padding:14px 16px 8px}.tt-look-card-name{font-family:Montserrat;font-size:.75rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin-bottom:4px}.tt-look-card-price{font-size:.85rem;color:var(--pink-dark);font-weight:600}.tt-look-actions{display:flex;justify-content:center;gap:16px;flex-wrap:wrap}.tt-watch-feature{display:grid;grid-template-columns:1fr 1fr;min-height:560px;background:var(--bg)}.tt-watch-feature-img{position:relative;overflow:hidden;min-height:400px}.tt-watch-feature-img .tt-img-placeholder{height:100%;min-height:400px;background:linear-gradient(135deg,#c9a96e,#f5ead0 40%,#fce4ec,#e8a0b4)}.tt-watch-feature-content{display:flex;flex-direction:column;justify-content:center;padding:64px 72px}.tt-watch-eyebrow{font-size:.78rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}.tt-watch-title{font-family:Montserrat;font-size:clamp(1.8rem,3vw,2.8rem);font-weight:700;color:var(--text-title);line-height:1.15;margin-bottom:20px}.tt-watch-desc{font-size:.95rem;color:var(--text-sec);line-height:1.8;margin-bottom:32px;max-width:440px}.tt-products-section{background:var(--bg)}.tt-products-header{text-align:center;margin-bottom:48px}.tt-products-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}.tt-product-card{background:var(--white);border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border);transition:var(--transition);display:flex;flex-direction:column;position:relative}.tt-product-favorite-button{position:absolute;z-index:3;top:12px;right:12px;width:44px;height:44px;border:1px solid rgba(173,63,103,.22);border-radius:50%;background:#fffffff0;color:var(--pink-dark);font-size:1.45rem;cursor:pointer;box-shadow:0 5px 16px #5620331f;display:grid;place-items:center;padding:0;line-height:0}.tt-product-favorite-button [data-favorite-icon],.tt-product-favorite-icon [data-favorite-icon]{display:grid;place-items:center;line-height:0}.tt-product-favorite-button svg,.tt-product-favorite-icon svg{display:block}.tt-product-favorite-button.is-favorite{background:var(--pink-pale)}.tt-product-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px);border-color:var(--pink)}.tt-product-img{position:relative;aspect-ratio:3/4;overflow:hidden}.tt-product-card-img-link{display:block;color:inherit;text-decoration:none}.tt-product-img-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#fce4ec,#f5d4e0 40%,#ede0f0);transition:transform .4s ease}.tt-prod-placeholder{width:100%;height:100%;background:linear-gradient(135deg,#fce4ec,#f5d4e0 40%,#ede0f0);display:flex;align-items:center;justify-content:center;transition:transform .4s ease}.tt-prod-placeholder img{width:100%;height:100%;object-fit:contain;display:block}.tt-prod-ph-svg{background:linear-gradient(135deg,#fce4ec,#f8bbd9);position:relative}.tt-prod-ph-svg:after{content:"";display:block;width:48px;height:48px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='48' viewBox='0 0 24 24' fill='none' stroke='%23e8a0c0' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='3' width='18' height='18' rx='2'/%3E%3Ccircle cx='8.5' cy='8.5' r='1.5'/%3E%3Cpolyline points='21 15 16 10 5 21'/%3E%3C/svg%3E") center/contain no-repeat;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.tt-product-card:hover .tt-prod-placeholder{transform:scale(1.05)}.tt-img-placeholder img{width:100%;height:100%;object-fit:contain;display:block}.tt-product-card:hover .tt-product-img-placeholder{transform:scale(1.05)}.tt-product-img-real{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;transition:transform .4s ease;display:block}.tt-product-card:hover .tt-product-img-real{transform:scale(1.05)}.tt-product-badge{position:absolute;top:12px;left:12px;background:var(--pink-dark);color:var(--white);font-size:.6rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 10px;border-radius:var(--radius-pill);z-index:1}.tt-product-badge.nuevo{background:var(--gold)}.tt-product-info{padding:16px;flex:1;display:flex;flex-direction:column;gap:4px}.tt-product-cat{font-size:.62rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--text-muted)}.tt-product-name{font-family:Montserrat;font-size:.8rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text);line-height:1.3;margin:0}.tt-product-name a{color:inherit;text-decoration:none}.tt-product-name a:hover{color:var(--pink-dark)}.tt-product-price{font-size:1rem;font-weight:700;color:var(--pink-dark);margin-top:4px}.tt-product-actions{display:flex;gap:8px;align-items:center;margin-top:12px}.tt-product-actions .tt-btn{flex:1 1 0;min-width:0;min-height:40px;white-space:normal;text-align:center;line-height:1.25}.tt-reviews-section{background:var(--bg)}.tt-reviews-header{text-align:center;margin-bottom:48px}.tt-reviews-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.tt-review-card{background:var(--white);border-radius:var(--radius-md);padding:28px;box-shadow:var(--shadow-sm);border:1px solid var(--border);transition:var(--transition)}.tt-review-card:hover{box-shadow:var(--shadow-md)}.tt-review-stars{color:var(--gold);font-size:1rem;letter-spacing:2px;margin-bottom:16px}.tt-review-text{font-size:.9rem;color:var(--text-sec);line-height:1.7;font-style:italic;margin-bottom:20px}.tt-review-author{display:flex;align-items:center;gap:12px}.tt-review-avatar{width:40px;height:40px;border-radius:var(--radius-pill);background:linear-gradient(135deg,#fce4ec,#f5d4e0);display:flex;align-items:center;justify-content:center;flex-shrink:0}.tt-review-name{font-size:.8rem;font-weight:700;letter-spacing:.05em;color:var(--text)}.tt-review-product{font-size:.72rem;color:var(--text-muted);margin-top:2px}.tt-footer{background:var(--pink-dark);color:var(--white);padding:60px 0 0}.tt-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:48px;border-bottom:1px solid rgba(255,255,255,.15)}.tt-footer-brand .tt-logo-link{flex-direction:column;align-items:flex-start;gap:2px}.tt-footer-tagline{font-size:.85rem;color:#ffffffbf;line-height:1.7;margin-top:16px;margin-bottom:24px;max-width:280px}.tt-footer-wa{display:inline-flex;align-items:center;gap:8px;background:#25d366;color:var(--white);padding:10px 20px;border-radius:var(--radius-pill);font-size:.8rem;font-weight:600;transition:var(--transition);text-decoration:none}.tt-footer-wa:hover{background:#128c3c;transform:translateY(-1px)}.tt-footer-col-title{font-family:Montserrat;font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--white);margin-bottom:20px}.tt-footer-accordion-toggle{display:contents;color:inherit;font:inherit}@media(max-width:480px){.tt-footer-col-title{margin:0}.tt-footer-accordion-toggle{display:flex;width:100%;min-height:44px;align-items:center;justify-content:space-between;gap:12px;padding:8px 0;border:0;background:transparent;color:inherit;cursor:pointer;text-align:left}.tt-footer-accordion-icon{font-size:18px;line-height:1;transition:transform .18s ease}.tt-footer-accordion-toggle[aria-expanded=true] .tt-footer-accordion-icon{transform:rotate(45deg)}.tt-footer-col>ul{padding-top:8px}}.tt-footer-col ul li{margin-bottom:10px}.tt-footer-col ul li a{display:inline-flex;align-items:center;min-width:24px;min-height:24px;font-size:.85rem;color:#ffffffb3;transition:color var(--transition)}.tt-footer-col ul li a:hover{color:var(--white)}.tt-footer-bottom{padding:20px 0;text-align:center;font-size:.75rem;color:#ffffff80;letter-spacing:.05em}.tt-wa-float{position:fixed;bottom:28px;right:28px;width:56px;height:56px;background:#25d366;border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;box-shadow:0 4px 20px #25d36666;z-index:900;transition:transform .22s ease,box-shadow .22s ease,opacity .18s ease;text-decoration:none;cursor:pointer;animation:none}.tt-wa-float.tt-wa-float-hidden{opacity:0;visibility:hidden;pointer-events:none;transform:scale(.7);transition:none;animation:none}@keyframes ttn-wa-breathe{0%,to{transform:translateY(0) scale(1);box-shadow:0 4px 20px #25d36666}50%{transform:translateY(-3px) scale(1.04);box-shadow:0 8px 32px #25d3668c}}.tt-wa-float:hover{animation-play-state:paused;transform:none;box-shadow:0 10px 36px #25d36699}.tt-wa-float svg{width:28px;height:28px;fill:#fff}@media(prefers-reduced-motion:reduce){.tt-wa-float{animation:none}}.tt-tabbar{display:none;position:fixed;bottom:max(16px,env(safe-area-inset-bottom,0px));left:50%;transform:translate(-50%);width:max-content;max-width:calc(100vw - 32px);background:var(--white);border-radius:var(--radius-pill);box-shadow:0 4px 32px #00000026,0 0 0 1px var(--border);padding:8px 20px;z-index:1480;gap:4px;align-items:center}.tt-tabbar-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:8px 16px;border-radius:var(--radius-pill);font-size:.58rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-sec);transition:color .2s ease,background-color .2s ease,transform .16s cubic-bezier(.2,.8,.2,1);cursor:pointer;background:none;border:none;text-decoration:none;position:relative}.tt-tabbar-btn:after{content:"";position:absolute;left:28%;right:28%;bottom:3px;height:3px;border-radius:999px;background:var(--pink-dark);transform:scaleX(0);transition:transform .2s cubic-bezier(.2,.8,.2,1)}.tt-tabbar-btn:hover,.tt-tabbar-btn.active{background:var(--pink-pale);color:var(--pink-dark)}.tt-tabbar-btn.active:after{transform:scaleX(1)}.tt-tabbar-btn svg{width:20px;height:20px}.tt-privacy-consent{position:fixed;z-index:2200;right:max(20px,env(safe-area-inset-right,0px));bottom:max(20px,env(safe-area-inset-bottom,0px));width:min(400px,calc(100vw - 36px));padding:22px;border:1px solid rgba(173,63,103,.12);border-radius:26px;background:#fffffffa;box-shadow:0 24px 64px #26181e24,0 2px 8px #26181e0d;color:var(--text);font-family:Montserrat;box-sizing:border-box;animation:ttPrivacyIn .32s cubic-bezier(.22,.61,.36,1) both}.tt-privacy-consent[hidden]{display:none!important}.tt-privacy-heading{display:flex;align-items:center;gap:13px;padding-right:24px}.tt-privacy-icon{display:grid;flex:0 0 42px;width:42px;height:42px;place-items:center;border-radius:50%;background:#fff;box-shadow:0 6px 18px #ad3f6729,inset 0 0 0 1px #ad3f6714;overflow:hidden}.tt-privacy-icon img{width:26px;height:26px;object-fit:contain;display:block}.tt-privacy-eyebrow{color:var(--pink-dark);font-size:.62rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase}.tt-privacy-heading h2{margin:3px 0 0;color:var(--text);font:700 1rem/1.3 var(--font-display);letter-spacing:-.01em}.tt-privacy-summary{margin:14px 0 17px;color:var(--text-sec);font-size:.78rem;line-height:1.62}.tt-privacy-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.tt-privacy-btn,.tt-privacy-link-btn{min-height:44px;border-radius:999px;padding:9px 16px;border:0;font:700 .72rem/1.2 var(--font-body);letter-spacing:.01em;cursor:pointer;transition:transform .15s ease,opacity .15s ease}.tt-privacy-btn:active{transform:scale(.97)}.tt-privacy-btn-primary{background:var(--pink-dark);color:#fff;box-shadow:0 10px 24px #ad3f6738}.tt-privacy-btn-primary:hover{opacity:.92}.tt-privacy-btn-secondary{border:1px solid rgba(173,63,103,.22);background:#fff;color:var(--text)}.tt-privacy-btn-secondary:hover{background:var(--pink-pale)}.tt-privacy-link-btn{padding-inline:6px;background:transparent;color:var(--pink-dark);text-decoration:none;font-weight:600;opacity:.85}.tt-privacy-link-btn:hover{opacity:1;text-decoration:underline;text-underline-offset:3px}.tt-privacy-close{position:absolute;top:8px;right:8px;display:grid;width:40px;height:40px;place-items:center;border:0;border-radius:50%;background:transparent;color:var(--text-sec);font-size:19px;cursor:pointer;transition:background .15s ease}.tt-privacy-close:hover{background:#26181e0d}.tt-privacy-details{margin-top:16px;padding-top:15px;border-top:1px solid var(--border)}.tt-privacy-option{display:flex;min-height:52px;align-items:center;justify-content:space-between;gap:15px}.tt-privacy-option+.tt-privacy-option{border-top:1px solid rgba(38,24,30,.06)}.tt-privacy-option div{display:grid;gap:2px}.tt-privacy-option strong{color:var(--text);font-size:.77rem;font-weight:600}.tt-privacy-option span{color:var(--text-sec);font-size:.68rem;line-height:1.45}.tt-privacy-option input{width:20px;height:20px;flex:0 0 auto;accent-color:var(--pink-dark)}.tt-privacy-required{color:var(--pink-dark)!important;font-weight:700;font-size:.66rem;white-space:nowrap}.tt-privacy-details-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px}.tt-privacy-details-actions a{color:var(--pink-dark);font-size:.71rem;font-weight:600;text-underline-offset:3px}@keyframes ttPrivacyIn{0%{opacity:0;transform:translateY(14px) scale(.98)}to{opacity:1;transform:none}}@media(max-width:768px){.tt-privacy-consent{right:12px;bottom:calc(86px + env(safe-area-inset-bottom,0px));width:calc(100vw - 24px);max-height:min(70vh,580px);overflow:auto;padding:18px;border-radius:22px}body:has(.login-page) .tt-privacy-consent{bottom:max(12px,env(safe-area-inset-bottom,0px))}.tt-privacy-eyebrow{display:none}.tt-privacy-heading{padding-right:20px}.tt-privacy-summary{margin:10px 0 14px}.tt-privacy-actions{display:grid;grid-template-columns:1fr 1fr;gap:8px}.tt-privacy-link-btn{grid-column:1 / -1;padding-block:4px}.tt-privacy-details-actions{align-items:stretch;flex-direction:column}.tt-privacy-details-actions .tt-privacy-btn{width:100%}}@media(prefers-reduced-motion:reduce){.tt-privacy-consent{animation:none}}@media(min-width:769px){body.tt-public-shell-mounted .login-page,body.tt-public-shell-mounted .tt-404-wrap{padding-top:var(--header-h)}}@media(max-width:768px){body.tt-public-shell-mounted .login-page,body.tt-public-shell-mounted .tt-404-wrap,body.tt-public-shell-mounted .ck-body{padding-bottom:calc(104px + env(safe-area-inset-bottom,0px))}}.tt-tabbar-btn:active{transform:scale(.9)}.tt-tabbar-btn.active svg,.tt-tabbar-btn.active .tt-tabbar-avatar{transform:scale(1.1)}.tt-tabbar-btn svg,.tt-tabbar-btn .tt-tabbar-avatar{transition:transform .2s cubic-bezier(.2,.8,.2,1)}@media(prefers-reduced-motion:reduce){.tt-tabbar-btn,.tt-tabbar-btn svg,.tt-tabbar-btn .tt-tabbar-avatar{transition:none}.tt-tabbar-btn:active,.tt-tabbar-btn.active svg,.tt-tabbar-btn.active .tt-tabbar-avatar{transform:none}}@media(max-width:768px){.tt-btn-sm,.tt-card-btn{min-height:44px}.tt-footer li a{display:inline-flex;align-items:center;min-height:44px;min-width:44px}.tt-contact-info-item a,.tt-inline-support-link,#btn-product-wa{display:inline-flex;align-items:center;min-height:44px}#btn-close-sheet{width:44px;height:44px}}.tt-collections-sheet{position:fixed;bottom:0;left:0;right:0;background:var(--white);border-radius:24px 24px 0 0;padding:0 0 calc(env(safe-area-inset-bottom,0px) + 88px);z-index:960;transform:translateY(100%);transition:transform .35s cubic-bezier(.4,0,.2,1);max-height:85vh;overflow-y:auto;box-shadow:0 -4px 32px #0000001f}.tt-collections-sheet.open{transform:translateY(0)}.tt-sheet-handle{width:40px;height:4px;background:var(--border);border-radius:2px;margin:12px auto 0}.tt-sheet-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);font-weight:700;font-size:1rem}.tt-sheet-header button{background:none;border:none;font-size:1.2rem;cursor:pointer;color:var(--text-muted);padding:4px}.tt-sheet-header button:hover{color:var(--pink-dark)}.tt-sheet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--border)}.tt-sheet-item{display:flex;flex-direction:column;align-items:center;gap:6px;padding:16px;background:var(--white);text-decoration:none;color:var(--text);font-size:.62rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;transition:background var(--transition),color var(--transition)}.tt-sheet-item:hover,.tt-sheet-item:active{background:var(--pink-pale);color:var(--pink-dark)}.tt-sheet-item-img{width:60px;height:60px;display:flex;align-items:center;justify-content:center;overflow:hidden;flex-shrink:0}.tt-sheet-item-img img{width:100%;height:100%;object-fit:contain;display:block}.tt-sheet-footer{padding:12px 16px 8px}.tt-sheet-backdrop{display:none;position:fixed;inset:0;background:#0006;z-index:959}.tt-sheet-backdrop.open{display:block}.tt-cart-overlay{position:fixed;inset:0;background:#0006;z-index:1800;opacity:0;visibility:hidden;transition:var(--transition)}.tt-cart-overlay.open{opacity:1;visibility:visible}.tt-cart-drawer{position:fixed;top:0;right:0;bottom:0;width:400px;max-width:95vw;background:var(--white);z-index:1900;display:flex;flex-direction:column;transform:translate(100%);transition:transform var(--transition);box-shadow:-4px 0 40px #b44c722e}.tt-cart-drawer.open{transform:translate(0)}.tt-cart-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;border-bottom:1px solid var(--border)}.tt-cart-title{font-family:Montserrat;font-size:1.2rem;font-weight:600;color:var(--text)}.tt-cart-close{font-size:1.4rem;color:var(--text-muted);cursor:pointer;background:none;border:none;padding:4px 8px;transition:color var(--transition)}.tt-cart-close:hover{color:var(--pink-dark)}.tt-cart-body{flex:1;overflow-y:auto;padding:16px 24px}.tt-cart-body:has(.tt-cart-empty){display:flex;align-items:center;justify-content:center}.tt-cart-body:has(.tt-cart-empty):has(.tt-cart-favorites){display:block}.tt-cart-empty{text-align:center;padding:40px 0;color:var(--text-muted)}.tt-cart-empty-icon{margin-bottom:16px;display:flex;justify-content:center}.tt-cart-empty-text{font-size:.9rem;margin-bottom:20px}.tt-cart-goto-btn{display:inline-block;padding:12px 28px;background:var(--acc, #b84c72);color:#fff!important;font-size:13px;font-weight:700;letter-spacing:.06em;text-decoration:none;border-radius:30px;transition:background .2s}.tt-cart-goto-btn:hover{background:#9b3d5e}.tt-cart-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--border);align-items:flex-start}.tt-cart-item-img{width:72px;height:80px;border-radius:var(--radius-sm);background:transparent;flex-shrink:0}.tt-cart-item-info{flex:1}.tt-cart-item-name{font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:var(--text);margin-bottom:4px}.tt-cart-item-price{font-size:.85rem;color:var(--pink-dark);font-weight:600;margin-bottom:10px}.tt-cart-qty{display:flex;align-items:center;gap:8px}.tt-cart-qty-btn{width:28px;height:28px;border:1px solid var(--border);border-radius:var(--radius-pill);display:flex;align-items:center;justify-content:center;font-size:1rem;cursor:pointer;transition:var(--transition);background:none;color:var(--text)}.tt-cart-qty-btn:hover{background:var(--pink-pale);color:var(--pink-dark);border-color:var(--pink)}.tt-cart-qty-val{font-size:.85rem;font-weight:600;min-width:20px;text-align:center}.tt-cart-item-remove{font-size:.75rem;color:var(--text-muted);cursor:pointer;background:none;border:none;padding:2px 4px;transition:color var(--transition);align-self:flex-start}.tt-cart-item-remove:hover{color:var(--pink-dark)}.tt-cart-item-actions{display:flex;flex-direction:column;align-items:center;gap:6px}.tt-cart-favorite-toggle{width:40px;height:40px;border:0;border-radius:50%;background:var(--pink-pale);color:var(--pink-dark);font-size:1.25rem;cursor:pointer}.tt-cart-favorites{margin-top:24px;padding-top:20px;border-top:1px solid var(--border)}.tt-cart-favorites h3{margin:0 0 12px;color:var(--text);font:700 .85rem/1.3 Montserrat,sans-serif;text-transform:uppercase;letter-spacing:.06em}.tt-cart-favorite-item{display:grid;grid-template-columns:54px minmax(0,1fr) auto 40px;gap:9px;align-items:center;padding:10px 0;border-bottom:1px solid var(--border)}.tt-cart-favorite-img{width:54px;height:60px;border-radius:10px;overflow:hidden;background:var(--pink-pale)}.tt-cart-favorite-img img{width:100%;height:100%;object-fit:contain}.tt-cart-favorite-info{min-width:0;display:flex;flex-direction:column;gap:4px}.tt-cart-favorite-info strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;color:var(--text)}.tt-cart-favorite-info span{font-size:.75rem;color:var(--pink-dark);font-weight:700}.tt-cart-favorite-add{min-height:40px;padding:7px 10px;border:1px solid var(--pink-dark);border-radius:999px;background:#fff;color:var(--pink-dark);font:700 .68rem Montserrat,sans-serif;cursor:pointer}.tt-cart-footer{padding:20px 24px;border-top:1px solid var(--border)}.tt-cart-total-row{display:flex;justify-content:space-between;align-items:center;margin-bottom:16px}.tt-cart-total-label{font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text)}.tt-cart-total-value{font-family:Montserrat;font-size:1.2rem;font-weight:700;color:var(--pink-dark)}.tt-cart-checkout-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:10px;background:var(--pink-dark);color:var(--white);padding:14px;border-radius:var(--radius-pill);font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;border:none;cursor:pointer;transition:var(--transition);margin-bottom:10px;text-decoration:none}.tt-cart-checkout-btn:hover{background:var(--rose);transform:translateY(-1px)}@keyframes tt-shimmer{0%{background-position:-400px 0}to{background-position:400px 0}}.tt-skeleton-line,.tt-skeleton-img{background:linear-gradient(90deg,#f0d8e0 25%,#fce4ec,#f0d8e0 75%);background-size:800px 100%;animation:tt-shimmer 1.4s ease-in-out infinite;border-radius:var(--radius-sm)}.tt-skeleton-img{width:100%;height:100%;min-height:200px;border-radius:var(--radius-md) var(--radius-md) 0 0}.tt-skeleton-card{pointer-events:none}.tt-page-hero{background:linear-gradient(135deg,#fce4ec,#f5d4e0,#ede0f0);padding:calc(var(--header-h) + 40px) 0 40px;text-align:center}.tt-page-hero-title{font-family:Montserrat;font-size:clamp(2rem,4vw,3.5rem);font-weight:700;color:var(--pink-dark);margin-bottom:12px}.tt-page-hero-sub{font-size:.95rem;color:var(--text-sec);max-width:560px;margin:0 auto}.tt-info-block{background:#fff;border-radius:16px;padding:28px 32px;margin-bottom:24px;border:1px solid #f0d8e0}.tt-info-title{font-family:Montserrat;font-size:1.25rem;color:var(--pink-dark);margin:0 0 12px}.tt-info-block p{color:var(--text-sec);margin:0 0 12px;line-height:1.7}.tt-info-block ul{color:var(--text-sec);padding-left:20px;line-height:1.8;margin:0}.tt-info-block li{margin-bottom:4px}.tt-city-price-list{list-style:none;padding:16px 0 0;margin:16px 0 0;display:grid;grid-template-columns:repeat(2,1fr);gap:6px 20px;border-top:1px dashed #f0d8e0}.tt-city-price-list li{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:.86rem;color:var(--text-sec);margin-bottom:0;padding:4px 0}.tt-city-price-val{color:var(--pink-dark);font-weight:600;white-space:nowrap}.tt-city-price-loading,.tt-city-price-empty{grid-column:1 / -1;color:var(--text-muted);font-style:italic}@media(max-width:480px){.tt-city-price-list{grid-template-columns:1fr}}.tt-faq-item{border-bottom:1px solid #f0d8e0;padding:20px 0}.tt-faq-item:last-child{border-bottom:none}.tt-about-section{background:var(--bg)}.tt-about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.tt-about-img{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:4/5}.tt-about-img .tt-img-placeholder{height:100%;min-height:400px}.tt-about-greeting{font-family:Montserrat;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:700;color:var(--pink-dark);margin-bottom:8px}.tt-about-subtitle{font-size:.85rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:28px}.tt-about-text{font-size:.95rem;color:var(--text-sec);line-height:1.9;margin-bottom:20px}.tt-about-date{display:inline-flex;align-items:center;gap:8px;background:var(--gold-light);border:1px solid var(--gold);border-radius:var(--radius-pill);padding:8px 20px;font-size:.8rem;font-weight:600;color:var(--rose);margin-bottom:24px;letter-spacing:.05em}.tt-about-signature{font-family:Montserrat;font-size:1.3rem;font-style:italic;color:var(--pink-dark);margin-top:24px}.tt-blob-media{position:relative;width:100%;aspect-ratio:4/5;min-width:0;overflow:visible}.tt-blob-media .tt-blob-shape{position:relative;width:100%;height:100%;overflow:hidden;border-radius:63% 37% 54% 46%/43% 47% 53% 57%;box-shadow:0 30px 60px -20px #ad3f6759}.tt-blob-media .tt-blob-shape img,.tt-blob-media .tt-blob-shape .tt-img-placeholder{width:100%;height:100%;object-fit:cover;display:block}.tt-blob-media:before{content:"";position:absolute;inset:6% -8% -8% 6%;background:var(--pink-pale);border-radius:46% 54% 63% 37%/57% 43%;z-index:-1}@media(max-width:640px){.tt-blob-media .tt-blob-shape{border-radius:32px}.tt-blob-media:before{inset:4% -5% -5% 4%;border-radius:26px}}.tt-about-mission-section{background:var(--surface-soft, var(--pink-pale))}.tt-about-mission-eyebrow{font-size:.85rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--gold);margin-bottom:12px}.tt-about-mission-title{font-family:Montserrat;font-size:clamp(1.8rem,3vw,2.6rem);font-weight:700;color:var(--pink-dark);margin-bottom:20px}.tt-about-mission-text{font-size:.95rem;color:var(--text-sec);line-height:1.9;margin-bottom:16px}.tt-contact-section{background:var(--bg)}.tt-contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}.tt-contact-form-title{font-family:Montserrat;font-size:1.8rem;font-weight:600;color:var(--text);margin-bottom:8px}.tt-contact-form-sub{font-size:.9rem;color:var(--text-sec);margin-bottom:32px}.tt-form-group{margin-bottom:20px}.tt-form-label{display:block;font-size:.75rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text);margin-bottom:8px}.tt-form-input,.tt-form-textarea{width:100%;padding:12px 16px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:.9rem;color:var(--text);background:var(--white);transition:border-color var(--transition);outline:none}.tt-form-input:focus,.tt-form-textarea:focus{border-color:var(--pink-mid)}.tt-form-textarea{height:140px;resize:vertical}.tt-contact-alt{background:var(--card-bg);border-radius:var(--radius-lg);padding:40px;border:1px solid var(--border)}.tt-contact-alt-title{font-family:Montserrat;font-size:1.5rem;font-weight:600;color:var(--text);margin-bottom:12px}.tt-contact-alt-desc{font-size:.9rem;color:var(--text-sec);line-height:1.8;margin-bottom:24px}.tt-contact-wa-link{display:inline-flex;align-items:center;gap:10px;background:#25d366;color:var(--white);padding:14px 28px;border-radius:var(--radius-pill);font-size:.85rem;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-decoration:none;transition:var(--transition)}.tt-contact-wa-link:hover{background:#128c3c;transform:translateY(-1px)}.tt-contact-info-list{margin-top:32px}.tt-contact-info-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:.85rem;color:var(--text-sec)}.tt-contact-info-item:last-child{border-bottom:none}.tt-contact-info-icon{font-size:1.2rem;flex-shrink:0}.tt-colls-page-section{background:var(--bg)}.tt-colls-page-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}.tt-coll-page-card{border-radius:var(--radius-lg);overflow:hidden;background:var(--white);border:1px solid var(--border);transition:var(--transition);display:flex;flex-direction:column}.tt-coll-page-card:hover{box-shadow:var(--shadow-lg);transform:translateY(-4px)}.tt-coll-page-img{height:240px;display:block;overflow:hidden;position:relative;background:transparent;transition:transform .4s ease}.tt-coll-page-img img{width:100%;height:100%;object-fit:contain;background:transparent;display:block}.tt-coll-page-card:hover .tt-coll-page-img{transform:scale(1.04)}.tt-coll-page-body{padding:24px;flex:1;display:flex;flex-direction:column}.tt-coll-page-initial{font-family:Montserrat;font-size:2rem;color:var(--pink);margin-bottom:8px}.tt-coll-page-name{font-family:Montserrat;font-size:.8rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--text);margin-bottom:8px}.tt-coll-page-desc{font-size:.85rem;color:var(--text-sec);line-height:1.7;flex:1;margin-bottom:16px}.tt-product-page{background:var(--bg);padding:32px 0 44px}#product-loading,#product-not-found,#product-load-error{min-height:70vh;box-sizing:border-box}.tt-product-detail-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start}.tt-gallery-main{border-radius:var(--radius-lg);overflow:hidden;aspect-ratio:3/4;background:transparent;display:flex;align-items:center;justify-content:center;font-size:4rem;margin-bottom:12px;position:relative;width:100%;padding:0;border:0;color:inherit;font-family:Montserrat;box-shadow:0 20px 44px #8b26421f,0 2px 8px #8b26420d}.tt-gallery-main img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:transparent;display:block}.tt-gallery-thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.tt-gallery-thumb{aspect-ratio:1;border-radius:var(--radius-sm);overflow:hidden;cursor:pointer;border:2px solid transparent;padding:0;background:transparent;transition:border-color var(--transition)}.tt-gallery-thumb.active{border-color:var(--pink-dark);box-shadow:0 0 0 3px #ad3f6724}.tt-gallery-thumb-img{width:100%;height:100%;object-fit:contain;background:transparent}.tt-product-status{display:inline-flex;align-items:center;gap:6px;background:#e8f5e9;color:#2e7d32;font-size:.72rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 12px;border-radius:var(--radius-pill);margin-bottom:16px}.tt-product-status:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--dot-color, #4caf50)}.tt-product-detail-cat{font-size:.72rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--gold);margin-bottom:8px}#product-badge-label.tt-product-badge{position:static;display:inline-block}.tt-product-detail-name{font-family:Montserrat;font-size:clamp(1.6rem,3vw,2.4rem);font-weight:700;color:var(--text);margin-bottom:16px;text-transform:uppercase;letter-spacing:.04em}.tt-product-detail-price{font-family:Montserrat;font-size:2rem;font-weight:700;color:var(--pink-dark);margin-bottom:24px}.tt-product-detail-desc{font-size:.9rem;color:var(--text-sec);line-height:1.9;margin-bottom:28px;border-top:1px solid var(--border);border-bottom:1px solid var(--border);padding:20px 0}.tt-product-variants{margin-bottom:28px}.tt-variant-label{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text);margin-bottom:10px}.tt-variant-options{display:flex;gap:8px;flex-wrap:wrap}.tt-variant-option{padding:6px 16px;border:1.5px solid var(--border);border-radius:var(--radius-pill);font-size:.78rem;font-weight:500;cursor:pointer;transition:var(--transition);background:none;color:var(--text)}.tt-variant-option:hover,.tt-variant-option.active{border-color:var(--pink-dark);color:var(--pink-dark);background:var(--pink-pale)}.tt-prod-loading-spinner{width:48px;height:48px;border:4px solid var(--pink-pale);border-top-color:var(--pink-dark);border-radius:50%;animation:tt-spin .8s linear infinite;margin:0 auto}@keyframes tt-spin{to{transform:rotate(360deg)}}.tt-product-state{text-align:center;padding:72px 20px}.tt-product-state-icon{color:var(--pink-dark);font-size:2.5rem;margin-bottom:14px}.tt-product-state h2{color:var(--pink-dark);font-size:clamp(1.35rem,4vw,1.85rem);margin-bottom:10px}.tt-product-state p{color:var(--text-sec);line-height:1.6;margin:0 auto 22px;max-width:520px}.tt-qty-wrap{display:flex;align-items:center;gap:16px;margin-bottom:20px}.tt-qty-label{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--text);min-width:60px}.tt-qty-selector{display:flex;align-items:center;gap:2px;border-radius:var(--radius-pill);background:var(--pink-pale);padding:3px}.tt-qty-btn{width:38px;height:38px;font-size:1.15rem;font-weight:500;color:var(--pink-dark);background:var(--white);border:none;border-radius:50%;cursor:pointer;transition:transform .15s ease,background var(--transition);display:flex;align-items:center;justify-content:center;box-shadow:0 1px 3px #0000000f}.tt-qty-btn:hover{background:var(--white);transform:translateY(-1px)}.tt-qty-btn:active{transform:scale(.94)}.tt-qty-btn:disabled{opacity:.35;cursor:not-allowed;transform:none}.tt-qty-val{min-width:40px;text-align:center;font-weight:700;font-size:1rem;color:var(--text)}.tt-qty-stock{display:none}.tt-btn-primary-full{width:100%;background:var(--pink-dark);color:var(--white);border:2px solid var(--pink-dark);padding:16px 24px;font-size:.88rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-pill);cursor:pointer;transition:background-color .2s ease,border-color .2s ease,transform .2s ease,box-shadow .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 16px 34px #8b26422e,0 2px 8px #8b264212}.tt-btn-primary-full:hover{background:var(--rose);border-color:var(--rose);transform:translateY(-1px)}.tt-btn-primary-full:active{transform:translateY(0);box-shadow:0 6px 16px #8b264229}.tt-btn-outline-full{width:100%;background:transparent;color:var(--pink-dark);border:2px solid var(--pink-dark);padding:16px 24px;font-size:.88rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;border-radius:var(--radius-pill);cursor:pointer;transition:background-color .2s ease,color .2s ease,transform .2s ease,box-shadow .2s ease;display:flex;align-items:center;justify-content:center;box-shadow:0 10px 24px #8b264214}.tt-btn-outline-full:hover{background:var(--pink-dark);color:var(--white);transform:translateY(-1px)}.tt-btn-outline-full:active{transform:translateY(0)}.tt-added-toast{position:fixed;bottom:90px;left:50%;transform:translate(-50%);background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);padding:16px 20px;z-index:9999;min-width:280px;max-width:90vw;animation:tt-toast-in .3s ease}@keyframes tt-toast-in{0%{opacity:0;transform:translate(-50%) translateY(16px)}to{opacity:1;transform:translate(-50%) translateY(0)}}.tt-added-toast-msg{display:flex;align-items:center;gap:10px;margin-bottom:12px;font-size:.88rem;font-weight:600;color:var(--text)}.tt-added-toast-icon{width:24px;height:24px;border-radius:50%;background:#e8f5e9;color:#2e7d32;display:flex;align-items:center;justify-content:center;font-size:.85rem;flex-shrink:0}.tt-added-toast-actions{display:flex;gap:8px}.tt-added-toast-btn{flex:1;padding:9px 12px;border-radius:var(--radius-pill);font-size:.75rem;font-weight:700;text-align:center;cursor:pointer;letter-spacing:.06em;transition:var(--transition);border:none}.tt-added-toast-continue{background:var(--card-bg);color:var(--text-sec);border:1.5px solid var(--border)}.tt-added-toast-continue:hover{background:var(--border)}.tt-added-toast-checkout{background:var(--pink-dark);color:var(--white)!important;display:flex;align-items:center;justify-content:center}.tt-added-toast-checkout:hover{background:var(--rose)}@keyframes tt-shake{0%,to{transform:none}25%{transform:translate(-4px)}75%{transform:translate(4px)}}.tt-variant-required{border-color:#e53935!important;animation:tt-shake .3s ease}.tt-variant-required-msg{color:#e53935;font-size:.75rem;margin-top:6px;display:block}.tt-product-actions-panel{display:flex;flex-direction:column;gap:12px;margin-bottom:20px}.tt-product-name-row{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.tt-product-name-row .tt-product-detail-name{margin-bottom:0;flex:1}.tt-product-favorite-icon{flex:none;width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--pink);border-radius:50%;background:var(--pink-pale);color:var(--pink-dark);font-size:1.3rem;cursor:pointer;margin-top:4px;padding:0;line-height:0}.tt-product-favorite-icon.is-favorite{background:#f8dce7;border-color:var(--pink-dark)}.tt-product-wa-link{min-width:44px;min-height:40px;padding:8px 10px;border:0;background:none;color:var(--text-muted);cursor:pointer;font-family:Montserrat;font-size:.75rem;line-height:1.4;text-decoration:underline;text-underline-offset:3px}.tt-product-trust-badges{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;background:#fff}.tt-trust-badge-item{display:flex;align-items:center;gap:8px;padding:10px 12px;background:#fff!important;border-radius:var(--radius-sm);border:1px solid var(--border)}.tt-trust-badge-item:not(:last-child){margin-bottom:0}.tt-trust-badge-icon{font-size:1.1rem}.tt-trust-badge-text{font-size:.72rem;font-weight:600;color:var(--text-sec);line-height:1.3}.tt-related-section{background:var(--card-bg);padding:44px 0}.tt-accordion-chevron{display:none}.tt-related-header{display:flex;align-items:center;justify-content:center;gap:18px;text-align:center;margin-bottom:32px}.tt-related-refresh{width:46px;height:46px;flex:0 0 46px;display:inline-flex;align-items:center;justify-content:center;padding:0;border:1.5px solid var(--pink-dark);border-radius:50%;background:var(--white);color:var(--pink-dark);cursor:pointer;transition:color .2s ease,background .2s ease,transform .2s ease}.tt-related-refresh:hover{color:var(--white);background:var(--pink-dark);transform:rotate(20deg)}.tt-related-refresh:disabled{cursor:not-allowed;opacity:.45}.tt-related-refresh svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.tt-related-refresh.is-refreshing svg{animation:tt-related-spin .75s linear infinite}@keyframes tt-related-spin{to{transform:rotate(360deg)}}.tt-related-status{min-height:1px;margin:0;overflow:hidden;position:absolute;width:1px;height:1px;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}.tt-related-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}.tt-related-slot{min-width:0;display:flex;opacity:1;transform:translateY(0) scale(1);transition:opacity .22s ease,transform .22s ease}.tt-related-slot>.tt-product-card{width:100%;height:100%}.tt-related-grid .tt-product-info{align-items:center;text-align:center}.tt-related-slot.is-leaving{opacity:0;transform:translateY(10px) scale(.985);pointer-events:none}.tt-related-slot.is-entering{opacity:0;transform:translateY(-10px) scale(.985)}.tt-breadcrumb{padding:16px 0;font-size:.86rem;font-weight:600;color:var(--text-muted);display:flex;align-items:center;gap:8px;flex-wrap:wrap}@media(min-width:769px){.tt-breadcrumb{margin-top:calc(var(--header-h) + 24px)}}.tt-breadcrumb a{display:inline-flex;align-items:center;min-width:24px;min-height:24px;color:var(--text-muted);text-decoration:none;transition:color var(--transition)}.tt-breadcrumb a:hover{color:var(--pink-dark)}.tt-breadcrumb span{color:var(--text-sec)}.tt-breadcrumb span#breadcrumb-product{color:var(--pink-dark);font-weight:700}@media(min-width:1025px){:root{--header-h: 88px}}@media(max-width:1024px){:root{--header-h: 64px}.tt-collections-grid{grid-template-columns:repeat(4,1fr)}.tt-products-grid{grid-template-columns:repeat(3,1fr)}.tt-footer-grid{grid-template-columns:1fr 1fr;gap:32px}.tt-editorial-content,.tt-watch-feature-content{padding:48px 40px}.tt-about-grid{gap:48px}.tt-contact-grid{gap:40px}.tt-colls-page-grid{grid-template-columns:repeat(2,1fr)}.tt-related-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(min-width:769px)and (max-width:1024px){#tt-header-desktop-tablet .tt-header-inner{padding:0 16px;position:relative;display:flex;align-items:center;justify-content:space-between;gap:0}#tt-header-desktop-tablet .tt-menu-toggle{display:flex;order:1;width:44px;height:44px;padding:0;align-items:center;justify-content:center}#tt-header-desktop-tablet .tt-logo-link{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}#tt-header-desktop-tablet .tt-logo-img{height:44px}#tt-header-desktop-tablet .tt-header-actions{order:3;gap:4px}#tt-header-desktop-tablet .tt-header-actions button,#tt-header-desktop-tablet .tt-header-actions a{width:44px;height:44px}#tt-header-desktop-tablet .tt-account-panel .tt-account-item{width:100%;height:auto;min-height:44px;justify-content:flex-start;overflow:visible}#tt-header-desktop-tablet .tt-nav{display:none}.tt-products-grid .tt-product-actions{flex-direction:column;align-items:stretch}.tt-products-grid .tt-product-actions .tt-btn{width:100%;min-height:44px}.tt-hero{display:grid;grid-template-rows:1fr 1fr;min-height:640px}.tt-hero-content{grid-row:2;align-self:start;justify-self:center;max-width:620px;width:100%;padding:40px 32px 56px;text-align:center}.tt-hero-eyebrow,.tt-hero-pills,.tt-hero-actions{justify-content:center}.tt-hero-img{object-position:center}}@media(max-width:768px){html{overflow-x:hidden;max-width:100%}body{overflow-x:clip;max-width:100%}*{box-sizing:border-box}.section{padding:36px 0}.section-sm,.tt-trust-bar{padding:24px 0}.tt-related-section{padding:36px 0}.tt-header{display:none!important;visibility:hidden!important;pointer-events:none!important}#tt-nav-desktop-tablet.tt-nav{display:none!important}.tt-tabbar{display:flex}.tt-wa-float{bottom:max(88px,calc(72px + env(safe-area-inset-bottom,0px)));right:16px;width:48px;height:48px}.tt-trust-grid{grid-template-columns:repeat(2,1fr);gap:20px}.tt-editorial{grid-template-columns:1fr}.tt-editorial .tt-editorial-content{padding:40px 24px}.tt-editorial.reverse .tt-editorial-img{order:0}.tt-editorial.reverse .tt-editorial-content{order:1}.tt-collections-grid{grid-template-columns:repeat(3,1fr);gap:10px}.tt-look-grid,.tt-watch-feature{grid-template-columns:1fr}.tt-watch-feature-content{padding:40px 24px}.tt-watch-feature-img{min-height:280px}.tt-products-grid{grid-template-columns:repeat(2,1fr);gap:16px}.tt-reviews-grid{grid-template-columns:1fr}.tt-footer-grid{grid-template-columns:repeat(2,1fr);gap:24px}.tt-footer{padding:40px 0 calc(32px + env(safe-area-inset-bottom))}.tt-about-grid{grid-template-columns:1fr;gap:32px}.tt-about-img{aspect-ratio:16/9}.tt-blob-media{aspect-ratio:5/4}.tt-about-grid .tt-about-img{order:0}.tt-about-grid .tt-about-content{order:1}.tt-contact-grid{grid-template-columns:1fr}.tt-colls-page-grid{grid-template-columns:repeat(2,1fr);gap:16px}.tt-product-detail-grid{grid-template-columns:1fr;gap:28px}.tt-product-gallery{width:min(100%,620px);margin:0 auto}.tt-product-trust-badges{grid-template-columns:1fr}.tt-related-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.tt-related-grid .tt-product-info{padding:10px}.tt-related-grid .tt-product-actions{flex-direction:column;gap:6px}.tt-related-grid .tt-product-actions .tt-btn{width:100%;padding:8px 6px;font-size:.68rem;letter-spacing:.02em}.tt-hero{min-height:620px;align-items:flex-end;justify-content:center;text-align:center}.tt-hero-content{width:100%;max-width:620px;margin:0 auto;padding:0 clamp(18px,5vw,32px) 100px;display:flex;flex-direction:column;align-items:center;text-align:center}.tt-hero-eyebrow{justify-content:center}.tt-hero-title,.tt-hero-subtitle{width:100%;text-align:center}.tt-hero-actions{justify-content:center}.tt-hero-img{object-position:center top}.tt-hero-title{font-size:clamp(3rem,10vw,5rem)}}@media(max-width:480px){.container{padding:0 16px}.section{padding:26px 0}.section-sm{padding:18px 0}.tt-trust-bar{padding:20px 0}.tt-related-section{padding:30px 0}.tt-page-hero{padding:calc(var(--header-h) + 32px) 0 30px}.tt-hero{min-height:560px;align-items:flex-end;justify-content:center}.tt-hero-content{padding:0 20px 92px}.tt-hero-img{object-position:center top}.tt-hero-title{font-size:clamp(2.2rem,8vw,3rem)}.tt-hero-actions{flex-direction:column;justify-content:center;align-items:center;gap:10px}.tt-hero-actions .tt-btn{width:100%;max-width:280px;justify-content:center}.tt-collections-grid{grid-template-columns:repeat(2,1fr)}.tt-dropdown{width:min(95vw,400px)}.tt-dropdown-grid{grid-template-columns:repeat(3,1fr)}.tt-footer-grid{grid-template-columns:1fr}.tt-tabbar-btn{min-width:44px;min-height:44px;padding:10px}.tt-tabbar-btn span{display:block}.tt-editorial-content,.tt-watch-feature-content{padding:32px 20px}.tt-colls-page-grid{grid-template-columns:1fr}.tt-related-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.tt-product-detail-grid{gap:22px}.tt-product-detail-name{font-size:1.6rem}.tt-product-page{padding:20px 0 30px}.tt-qty-wrap{flex-wrap:wrap;gap:10px 12px}.tt-related-header{justify-content:space-between;text-align:left;margin-bottom:26px}.tt-related-refresh{width:44px;height:44px;flex-basis:44px}#related-trigger{display:grid;grid-template-columns:1fr auto;align-items:center;column-gap:10px;flex:1 1 auto;min-width:0;cursor:pointer}#related-trigger .tt-section-sub,#related-trigger .tt-section-title{grid-column:1}#related-trigger .tt-accordion-chevron{display:block;grid-column:2;grid-row:1 / span 2;width:20px;height:20px;color:var(--pink-dark);transition:transform .2s ease}#related-trigger[aria-expanded=false] .tt-accordion-chevron{transform:rotate(-90deg)}.tt-related-section[data-collapsed=true] #related-status,.tt-related-section[data-collapsed=true] #related-grid{display:none}#specs-trigger{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;margin:18px 0 0;padding:12px 0;border:0;border-top:1px solid var(--border, #eadde2);background:none;font:inherit;font-weight:700;font-size:.9rem;color:var(--text);cursor:pointer}#specs-trigger .tt-accordion-chevron{display:block;width:18px;height:18px;color:var(--pink-dark);transition:transform .2s ease}#specs-trigger[aria-expanded=false] .tt-accordion-chevron{transform:rotate(-90deg)}.tt-specs-block[data-collapsed=true] #product-specifications{display:none}.tt-added-toast{width:calc(100vw - 32px);min-width:0;bottom:82px}.tt-added-toast-actions{flex-wrap:wrap}.tt-added-toast-btn{min-width:120px;min-height:40px}.tt-share-btn{min-height:40px}.tt-product-actions{flex-direction:column;gap:6px}.tt-product-actions .tt-btn{width:100%}.tt-look-actions{flex-direction:column;align-items:stretch}.tt-look-actions .tt-btn{width:100%;white-space:normal;text-align:center}}@media(max-width:380px){.tt-related-section{padding:30px 0}.tt-related-header .tt-section-title{font-size:clamp(1.45rem,8vw,2rem)}.tt-product-actions-panel .tt-btn{padding-inline:14px;letter-spacing:.06em}.tt-product-share{align-items:stretch}.tt-share-btn{flex:1 1 100%;justify-content:center}}@media(prefers-reduced-motion:reduce){.tt-related-slot,.tt-related-refresh{transition:none}.tt-related-refresh.is-refreshing svg{animation:none}}:focus{outline:none}:focus-visible{outline:2px solid var(--pink-dark);outline-offset:3px;border-radius:var(--radius-sm)}.tt-btn:focus-visible,.tt-btn-icon:focus-visible{outline:2px solid var(--pink-dark);outline-offset:3px;box-shadow:0 0 0 4px #b84c722e}.tt-product-card:focus-visible,.tt-coll-card:focus-visible,.tt-coll-page-card:focus-visible{outline:2px solid var(--pink-dark);outline-offset:4px;border-radius:var(--radius-md)}.tt-variant-option:focus-visible,.tt-gallery-thumb:focus-visible,.tt-filtro-btn:focus-visible,.cat-filter-option:focus-visible{outline:2px solid var(--pink-dark);outline-offset:2px}.tt-btn:active{transform:translateY(1px);box-shadow:none}.tt-btn:disabled,.tt-btn[disabled]{opacity:.45;cursor:not-allowed;pointer-events:none}.tt-back-to-top{position:fixed;bottom:96px;right:20px;width:44px;height:44px;background:var(--white);border:1.5px solid var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-md);display:flex;align-items:center;justify-content:center;cursor:pointer;z-index:895;opacity:0;transform:translateY(12px);transition:opacity .3s ease,transform .3s ease,background .2s,color .2s;color:var(--pink-dark)}.tt-back-to-top.visible{opacity:1;transform:translateY(0)}.tt-back-to-top:hover{background:var(--pink-dark);color:var(--white);border-color:var(--pink-dark);transform:translateY(-2px)}@media(max-width:768px){.tt-back-to-top{bottom:max(148px,calc(132px + env(safe-area-inset-bottom,0px)));right:16px}}.tt-lightbox{position:fixed;inset:0;background:#0a0508f0;z-index:var(--z-lightbox);display:flex;align-items:center;justify-content:center;opacity:0;pointer-events:none;transition:opacity .22s ease;padding:20px}.tt-lightbox.open{opacity:1;pointer-events:all}.tt-lightbox-img{max-width:min(88vw,820px);max-height:82vh;object-fit:contain;border-radius:var(--radius-md);transform:scale(.94);transition:transform .25s cubic-bezier(.34,1.56,.64,1);user-select:none}.tt-lightbox.open .tt-lightbox-img{transform:scale(1)}.tt-lightbox-close{position:absolute;top:16px;right:16px;width:44px;height:44px;background:#ffffff1f;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-pill);color:#fff;font-size:1.1rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s;backdrop-filter:blur(4px)}.tt-lightbox-close:hover{background:#ffffff38}.tt-lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;background:#ffffff1a;border:1px solid rgba(255,255,255,.15);border-radius:var(--radius-pill);color:#fff;font-size:1.4rem;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .2s,transform .2s;backdrop-filter:blur(4px)}.tt-lightbox-nav:hover{background:#ffffff38}.tt-lightbox-prev{left:16px}.tt-lightbox-next{right:16px}.tt-lightbox-counter{position:absolute;bottom:20px;left:50%;transform:translate(-50%);color:#ffffffb3;font-size:.78rem;font-family:Montserrat;letter-spacing:.06em}.tt-gallery-main{cursor:zoom-in}.tt-gallery-main:disabled{cursor:default}@media(max-width:768px){.tt-lightbox-nav{display:none}.tt-lightbox-img{max-height:75vh}}.tt-product-share{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin-top:22px;padding-top:16px;border-top:1px solid var(--border)}.tt-share-label{font-size:.72rem;color:var(--text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.08em;width:100%}.tt-share-btn{display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:7px 12px;border-radius:var(--radius-pill);border:1.5px solid var(--border);background:var(--white);color:var(--text-sec);font-size:.72rem;font-weight:500;font-family:Montserrat;cursor:pointer;transition:var(--transition);text-decoration:none;min-height:44px;flex:0 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tt-share-btn:hover{border-color:var(--pink-dark);color:var(--pink-dark);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.tt-share-btn-wa{background:var(--whatsapp);border-color:var(--whatsapp);color:var(--white)!important}.tt-share-btn-wa:hover{background:var(--whatsapp-h);border-color:var(--whatsapp-h);color:var(--white)!important}@media(max-width:460px){.tt-share-btn{flex:0 0 auto;width:44px;padding:0;gap:0}.tt-share-btn-label{display:none}.tt-product-share{justify-content:flex-start}}.tt-faq-item{border-bottom:1px solid var(--border);overflow:hidden}.tt-faq-q{padding:15px 0;font-weight:600;font-size:.91rem;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:12px;color:var(--text);transition:color .2s;user-select:none;list-style:none}.tt-faq-q:after{content:"+";font-size:1.3rem;font-weight:300;color:var(--pink-dark);flex-shrink:0;line-height:1;transition:transform .28s ease}.tt-faq-item.tt-faq-open .tt-faq-q:after{transform:rotate(45deg)}.tt-faq-item.tt-faq-open .tt-faq-q{color:var(--pink-dark)}.tt-faq-a{max-height:0;overflow:hidden;transition:max-height .32s ease;font-size:.87rem;color:var(--text-sec);line-height:1.75}.tt-faq-item.tt-faq-open .tt-faq-a{max-height:400px;padding-bottom:15px}.ck-trust-bar{display:flex;justify-content:center;gap:20px;padding:14px 0 4px;flex-wrap:wrap}.ck-trust-item{display:flex;align-items:center;gap:5px;font-size:.7rem;color:var(--text-muted);font-family:Montserrat}.tt-search-result-item{cursor:pointer}.tt-search-result-item.tt-search-focus{background:var(--pink-pale);border-radius:var(--radius-sm)}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}.reveal,.sr{opacity:1!important;transform:none!important}.tt-lightbox-img{transition:none!important}}@media(prefers-reduced-motion:reduce){.tt-hero-actions .tt-btn:not(.tt-btn-outline){animation:none}}:where([data-tt-operational-status],.tt-cart-sync-status,#tt-catalog-sync-state,#tt-collections-sync-state,#tt-product-sync-state,#tt-checkout-sync-state,#tt-profile-network){display:none!important}html.tt-staff-session :where([data-tt-operational-status],.tt-cart-sync-status,#tt-catalog-sync-state,#tt-collections-sync-state,#tt-product-sync-state,#tt-checkout-sync-state,#tt-profile-network){display:flex!important}@media(prefers-reduced-motion:reduce){.tt-nav>a,.tt-nav-dropdown>button,.tt-nav>a:after,.tt-nav>.tt-nav-dropdown>button:after,.tt-header-actions button,.tt-header-actions a,.tt-tabbar-btn:after{transition:none!important}.tt-nav>a.active,.tt-nav-dropdown>button.active,.tt-header-actions button.active,.tt-header-actions a.active{transform:none!important}}@media(max-width:360px){.tt-hero-actions{width:100%;align-items:stretch}.tt-hero-actions .tt-btn,.tt-btn-lg{width:100%;max-width:100%;min-width:0;padding-inline:16px;white-space:normal;overflow-wrap:anywhere;text-align:center}.tt-trust-grid{grid-template-columns:minmax(0,1fr);gap:12px}.tt-trust-item{width:100%;padding:20px 14px}}


/* css/quality/ajuste-global.css */
/*
 * TINTIN — Capa global de adaptación fluida
 * Regla transversal: ningún contenido debe salir del viewport, superponerse,
 * desaparecer ni depender de un tamaño fijo. Cuando el espacio disminuye,
 * los componentes envuelven, apilan o usan scroll interno controlado.
 */

html,
body {
  min-inline-size: 0;
  max-inline-size: 100%;
}

body {
  overflow-x: clip;
}

:where(main, header, footer, section, article, aside, nav, form, fieldset, div) {
  min-inline-size: 0;
  overflow-wrap: anywhere;
  word-break: normal;
}

:where(h1, h2, h3, h4, h5, h6, p, a, span, strong, em, small, label, li, dt, dd, td, th, button) {
  max-inline-size: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

:where(img, picture, video, canvas, svg, iframe, object, embed) {
  max-inline-size: 100%;
}

:where(input, select, textarea, button) {
  min-inline-size: 0;
  max-inline-size: 100%;
}

:where(.container, .tt-container, .section, .section-sm, .tt-section, .adm-content, .adm-main, .ck-wrap, .perfil-wrap, .login-form-side) {
  min-inline-size: 0;
  max-inline-size: 100%;
}

:where(.adm-table-wrap, .tt-table-wrap, .table-responsive, [class*="table-wrap"]) {
  max-inline-size: 100%;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

:where(.tt-cart-drawer, .tt-mobile-menu, .tt-search-panel, .tt-collections-sheet, .tt-account-panel, .adm-sidebar) {
  max-inline-size: 100vw;
  max-block-size: 100dvh;
}

:where(dialog, .adm-modal-content, .modal-content, .tt-modal-content, .ck-modal-content, [role="dialog"] > :first-child) {
  max-inline-size: calc(100vw - 24px);
  max-block-size: calc(100dvh - 24px);
  overflow: auto;
  overscroll-behavior: contain;
}

:where(.adm-filter-row, .adm-card-head, .adm-bulk-toolbar, .adm-statistics-toolbar, .adm-diagnostic-toolbar, .adm-topbar, .cont-section-actions, .correos-tabs, .ship-tabs, .user-tabs, .ck-actions, .perfil-actions, .tt-actions, .tt-button-row, .tt-filter-row) > * {
  min-inline-size: 0;
}

/* Panel administrativo: encabezados con buscadores y acciones siempre fluidos. */
#section-productos .adm-card-head > div:last-child,
#section-colecciones .adm-card-head > div:last-child {
  min-inline-size: 0;
  max-inline-size: 100%;
}

#prod-search,
#prod-filter-cat,
#coll-search,
#coll-picker-search {
  max-inline-size: 100%;
}

/* Las grillas inline de formularios administrativos bajan a una columna cuando
   el espacio real ya no permite dos campos legibles. */
@media (max-width: 640px) {
  :where(.adm-filter-row, .adm-card-head, .adm-bulk-toolbar, .adm-statistics-toolbar, .adm-diagnostic-toolbar, .adm-topbar, .cont-section-actions, .ck-actions, .perfil-actions, .tt-actions, .tt-button-row, .tt-filter-row) {
    flex-wrap: wrap;
  }

  #section-productos .adm-card-head > div:last-child,
  #section-colecciones .adm-card-head > div:last-child {
    flex: 1 1 100%;
    inline-size: 100%;
    align-items: stretch !important;
  }

  #prod-search,
  #prod-filter-cat,
  #prod-export-all-btn,
  #btn-nuevo-producto,
  #coll-search,
  #btn-nueva-coleccion,
  #coll-picker-search {
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
  }

  #section-productos [style*="grid-template-columns:1fr 1fr"],
  #section-productos [style*="grid-template-columns: 1fr 1fr"],
  #section-colecciones [style*="grid-template-columns:1fr 1fr"],
  #section-colecciones [style*="grid-template-columns: 1fr 1fr"],
  #section-configuracion [style*="grid-template-columns:1fr 1fr"],
  #section-configuracion [style*="grid-template-columns: 1fr 1fr"],
  #section-correos [style*="grid-template-columns:1fr 1fr"],
  #section-correos [style*="grid-template-columns: 1fr 1fr"] {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #coll-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .adm-card-head > :where(div, button, a),
  .adm-filter-row > *,
  .adm-bulk-toolbar > * {
    max-inline-size: 100%;
  }
}

@media (max-width: 480px) {
  :where(.adm-btn, .ck-btn, .perfil-btn, .login-google, .login-email-btn, .tt-btn, button:not(.adm-mobile-tab):not(.adm-nav-item)) {
    white-space: normal;
  }

  #ship-panel-delivery > div:first-child,
  #ship-panel-encomienda > div:first-child {
    align-items: stretch !important;
  }

  #ship-panel-delivery > div:first-child > div,
  #ship-panel-encomienda > div:first-child > div {
    flex: 1 1 100% !important;
    inline-size: 100% !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
  }

  #ship-delivery-add,
  #ship-encomienda-add {
    inline-size: 100% !important;
  }

  .adm-header {
    padding-inline: 10px !important;
    gap: 8px;
  }

  .adm-header .adm-logo {
    min-inline-size: 0;
  }

  .adm-header .adm-logo span {
    display: none;
  }

  .adm-header .adm-back-btn {
    padding-inline: 10px;
    text-align: center;
    white-space: normal;
  }

  .adm-toast {
    inline-size: calc(100vw - 24px);
    max-inline-size: calc(100vw - 24px);
    white-space: normal !important;
    text-align: center;
  }
}

@media (max-width: 360px) {
  :root {
    --tt-fit-gutter: 8px;
  }

  .adm-content,
  .adm-main,
  .ck-main,
  .perfil-wrap,
  .login-form-side {
    padding-inline: max(8px, env(safe-area-inset-left)) max(8px, env(safe-area-inset-right));
  }
}


/* css/quality/estados-especiales-sistema.css */
/* TINTIN — Sistema y estados especiales
   Accesos táctiles, diálogos y avisos que aparecen fuera del flujo normal. */

.tt-404-cat-link {
  min-height: 44px !important;
  padding-block: 10px !important;
}

.tt-404-hint a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding-inline: 6px;
  border-radius: 999px;
}

.tt-privacy-link-btn,
.tt-privacy-details-actions a {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 8px 6px;
  border-radius: 10px;
  text-align: center;
}

.tt-added-toast {
  width: min(calc(100vw - 24px), 420px) !important;
  min-width: 0 !important;
  max-width: calc(100vw - 24px) !important;
  box-sizing: border-box;
}

.tt-added-toast-actions {
  flex-wrap: wrap;
}

.tt-added-toast-btn {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  white-space: normal;
}

.adm-toast {
  width: max-content;
  max-width: calc(100vw - 24px) !important;
  white-space: normal !important;
  overflow-wrap: anywhere;
  text-align: center;
}

#auth-denied {
  max-width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding-top: max(20px, env(safe-area-inset-top));
  padding-right: max(20px, env(safe-area-inset-right));
  padding-bottom: max(20px, env(safe-area-inset-bottom));
  padding-left: max(20px, env(safe-area-inset-left));
  overflow: auto;
  text-align: center;
}

#auth-denied .adm-auth-login {
  min-width: 150px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  white-space: normal;
  text-align: center;
}

#tt-blocked-overlay {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  place-items: center;
  width: 100%;
  min-height: 100vh;
  min-height: 100dvh;
  padding-top: max(16px, env(safe-area-inset-top));
  padding-right: max(16px, env(safe-area-inset-right));
  padding-bottom: max(16px, env(safe-area-inset-bottom));
  padding-left: max(16px, env(safe-area-inset-left));
  overflow: auto;
  overscroll-behavior: contain;
  background: rgba(30, 10, 18, .55);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  box-sizing: border-box;
}

#tt-blocked-overlay,
#tt-blocked-overlay * {
  box-sizing: border-box;
}

.tt-blocked-dialog {
  width: min(100%, 420px);
  max-height: calc(100dvh - 32px);
  margin: auto;
  padding: clamp(26px, 5vw, 32px) clamp(20px, 5vw, 26px);
  overflow: auto;
  border: 1px solid rgba(184, 76, 114, .14);
  border-radius: 16px;
  background: #fff;
  color: #222222;
  text-align: center;
  box-shadow: 0 12px 48px rgba(0, 0, 0, .25);
}

.tt-blocked-icon {
  margin-bottom: 12px;
  font-size: 38px;
  line-height: 1;
}

.tt-blocked-title {
  margin: 0 0 10px;
  color:var(--color-text-primary,#222222);
  font-size: 17px;
  font-weight: 800;
  line-height: 1.3;
}

.tt-blocked-message {
  margin: 0 0 22px;
  color:#222222;
  font-size: 14px;
  line-height: 1.6;
}

.tt-blocked-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 10px;
}

.tt-blocked-action {
  display: inline-flex;
  min-width: 150px;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  padding: 11px 22px;
  border: 1.5px solid var(--color-brand-primary, #F8AACA);
  border-radius: 999px;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  text-align: center;
  text-decoration: none;
}

#tt-blocked-overlay .tt-blocked-action-primary,
#tt-blocked-overlay .tt-blocked-action-primary:visited {
  background: var(--color-brand-primary, #F8AACA);
  color:#222222 !important;
}

#tt-blocked-overlay .tt-blocked-action-secondary,
#tt-blocked-overlay .tt-blocked-action-secondary:visited {
  background: #fff;
  color:var(--color-text-primary,#222222) !important;
}

.tt-blocked-action:focus-visible {
  outline: 3px solid rgba(184, 76, 114, .28);
  outline-offset: 3px;
}

@media (max-width: 480px) {
  .tt-added-toast-actions {
    flex-direction: column;
  }

  .tt-added-toast-btn {
    width: 100%;
  }

  .tt-blocked-dialog {
    width: 100%;
    padding: 26px 18px 22px;
  }

  .tt-blocked-actions {
    flex-direction: column;
  }

  .tt-blocked-action {
    width: min(100%, 260px);
    min-width: 0;
  }
}

@media (prefers-reduced-motion: reduce) {
  #tt-blocked-overlay,
  #tt-blocked-overlay * {
    scroll-behavior: auto !important;
    transition: none !important;
    animation: none !important;
  }
}

/* El aviso de conexión y el banner de privacidad comparten la esquina inferior
   derecha y el aviso tapaba "Personalizar". Mientras hay un aviso de conexión,
   el banner inicial espera (no se decide nada por la persona y vuelve al
   reconectar); si la persona ya está personalizando, cede el aviso hasta que
   guarde o cierre. */
body:has(#tt-store-gate-network-notice) #tt-privacy-consent:not(.is-customizing),
body:has(#tt-connectivity-status:not([hidden])) #tt-privacy-consent:not(.is-customizing),
body:has(#tt-privacy-consent.is-customizing:not([hidden])) #tt-store-gate-network-notice,
body:has(#tt-privacy-consent.is-customizing:not([hidden])) #tt-connectivity-status {
  display: none !important;
}


/* css/quality/calidad-interfaz.css */
html{scroll-behavior:smooth;scrollbar-gutter:stable;background:#FFFFFF}html.tt-initializing{scroll-behavior:auto!important}body{min-height:100svh;overflow-x:clip;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*::before,*::after{box-sizing:border-box}img,svg,video,canvas{max-width:100%}img{display:block;height:auto;-webkit-touch-callout:none;-webkit-user-drag:none}a,button,[role="button"]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}button,input,select,textarea{font:inherit}button:disabled,[aria-disabled="true"]{cursor:not-allowed;opacity:.62}input,select,textarea{max-width:100%}:focus-visible{outline:3px solid rgba(246,183,200,.65);outline-offset:3px}main{min-height:60svh}.tt-cart-drawer,.tt-mobile-menu,.tt-search-panel,.tt-collections-sheet,.tt-account-panel,.tt-dropdown{overscroll-behavior:contain}.tt-product-card,.tt-card,.tt-coll-card,.tt-review-card,.tt-trust-item,.perfil-card,.ck-panel,.adm-card{backface-visibility:hidden;transform:translateZ(0)}.tt-product-card,.tt-card,.tt-coll-card,.tt-review-card,.tt-trust-item{contain:layout paint}.tt-img-error{opacity:.35;filter:grayscale(1)}#tt-loader-line,#tt-loader-text,#tt-loader-dots,.tt-splash-line,#tt-intro-fallback{display:none!important;visibility:hidden!important;opacity:0!important}#tt-loader,#tt-intro{background:#FFFFFF!important;gap:0!important}body.tt-safe-busy button[data-tt-busy="1"]{pointer-events:none}body:has(.adm-main) .adm-main,body:has(.adm-main) .adm-main *,body:has(.adm-main) .adm-topbar,body:has(.adm-main) .adm-topbar *,body:has(.adm-main) .adm-card,body:has(.adm-main) .adm-card *,body:has(.adm-main) .adm-section,body:has(.adm-main) .adm-section *,body:has(.adm-main) .tt-welcome-section,body:has(.adm-main) .tt-welcome-section *{color:var(--admin-color-text-primary)!important}body:has(.adm-main) input,body:has(.adm-main) textarea,body:has(.adm-main) select,body:has(.adm-main) option,body:has(.adm-main) label{color:var(--admin-color-text-primary)!important}body:has(.adm-main) .adm-sidebar,body:has(.adm-main) .adm-sidebar *{color:var(--admin-color-text-sidebar)!important}body:has(.adm-main) .adm-nav-item.active,body:has(.adm-main) .adm-nav-item:hover,body:has(.adm-main) .adm-mobile-tab.active{color:var(--admin-color-text-sidebar-active)!important}body:has(.adm-main) .adm-btn-primary,body:has(.adm-main) .adm-btn-save,body:has(.adm-main) .adm-topbar-btn,body:has(.adm-main) .tt-welcome-test-btn,body:has(.adm-main) .tt-welcome-primary{color:var(--admin-color-button-primary-text)!important}body:has(.adm-main) .adm-btn-danger,body:has(.adm-main) .adm-btn-danger *{color:var(--admin-color-button-danger-text)!important}.tt-parity-guard main>section,.tt-parity-guard .section,.tt-parity-guard .section-sm,.tt-parity-guard .tt-section,.tt-parity-guard .tt-page-hero,.tt-parity-guard .tt-hero,.tt-parity-guard .tt-products-section,.tt-parity-guard .tt-reviews-section,.tt-parity-guard .tt-collections-section,.tt-parity-guard .tt-footer,.tt-parity-guard .tt-card,.tt-parity-guard .tt-product-card,.tt-parity-guard .tt-coll-card,.tt-parity-guard .tt-category-card,.tt-parity-guard .tt-review-card,.tt-parity-guard .tt-trust-item,.tt-parity-guard .perfil-card,.tt-parity-guard .ck-panel,.tt-parity-guard .login-box,.tt-parity-guard .adm-card,.tt-parity-guard .adm-table-wrap{visibility:visible!important}.tt-parity-guard [data-parity="always"],.tt-parity-guard .tt-parity-always{display:revert!important;visibility:visible!important;opacity:1!important}.tt-parity-guard .desktop-only:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-guard .tablet-only:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-guard .mobile-only:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-guard .hide-mobile:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-guard .hide-desktop:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *),.tt-parity-guard .hide-tablet:not(.tt-header *):not(.tt-nav *):not(.tt-mobile-menu *):not(.tt-tabbar *){display:revert!important;visibility:visible!important}.tt-parity-guard .tt-header .desktop-only,.tt-parity-guard .tt-header .tablet-only,.tt-parity-guard .tt-header .mobile-only,.tt-parity-guard .tt-nav .desktop-only,.tt-parity-guard .tt-mobile-menu .desktop-only,.tt-parity-guard .tt-tabbar .desktop-only{display:initial}.tt-parity-guard #tt-loader,.tt-parity-guard #tt-intro,.tt-parity-guard .tt-mobile-menu:not(.open),.tt-parity-guard .tt-cart-drawer:not(.open),.tt-parity-guard .tt-search-panel:not(.open),.tt-parity-guard .tt-collections-sheet:not(.open),.tt-parity-guard .tt-account-panel:not(.open),.tt-parity-guard .adm-modal:not(.open),.tt-parity-guard [hidden]{display:none!important}@supports(content-visibility:auto){body:not(.tt-home-premium) main>section,body:not(.tt-home-premium) .section,body:not(.tt-home-premium) .section-sm{content-visibility:auto;contain-intrinsic-size:1px 620px}.tt-hero,main>section:first-child{content-visibility:visible;contain-intrinsic-size:auto}}@media(hover:hover){.tt-card,.tt-coll-card,.tt-product-card,.tt-review-card,.tt-trust-item{transition:transform .26s ease,box-shadow .26s ease,border-color .26s ease}.tt-card:hover,.tt-coll-card:hover,.tt-product-card:hover,.tt-review-card:hover,.tt-trust-item:hover{transform:translateY(-4px)}}@media(max-width:768px){input,select,textarea{font-size:16px!important}body{padding-bottom:env(safe-area-inset-bottom)}.tt-cart-drawer,.tt-mobile-menu,.tt-search-panel,.tt-collections-sheet{max-height:100svh}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto!important}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
/* Institutional pages render their first visible sections immediately; reserving an inaccurate intrinsic size causes avoidable layout shifts. */
@supports (content-visibility: auto) {
  body:has(.tt-page-hero) .tt-page-hero,
  body:has(.tt-page-hero) .section { content-visibility: visible; contain-intrinsic-size: auto; }
}

/* The shell is mounted after the document. Keep its unstyled variants out of
   flow while their responsive styles load, otherwise the visible page jumps
   when the desktop/tablet/mobile shell is inserted. */
html.tt-navigation-styles-loading #tt-header-desktop-tablet,
html.tt-navigation-styles-loading #tt-header-tablet,
html.tt-navigation-styles-loading .tt-search-panel,
html.tt-navigation-styles-loading .tt-tablet-menu,
html.tt-navigation-styles-loading .tt-tabbar,
html.tt-navigation-styles-loading .tt-cart-drawer,
html.tt-navigation-styles-loading .tt-account-panel,
html.tt-navigation-styles-loading .tt-collections-sheet,
html.tt-navigation-styles-loading .tt-surface-layer { display: none !important; }


/* css/core/tema-unificado-tintin.css */
:root{
  color-scheme:light;

  /* Fuente única de verdad — ahora apunta al catálogo de tokens semánticos
     de css/core/tokens-color.css (Super Admin → Apariencia → Esquema global),
     que a su vez es lo que js/components/color/esquema-color.js reescribe en caliente sobre
     <html> con el esquema activo publicado en Firestore. Estos nombres
     --tt-* se mantienen como alias de compatibilidad: todo el CSS del
     sitio ya consume var(--tt-*), así que cambiar el token real basta
     para que se propague solo, sin tocar cada regla una por una. */
  --tt-page-bg:var(--color-background-page);
  --tt-surface:var(--color-background-surface);
  --tt-surface-soft:var(--color-background-surface-soft);
  --tt-surface-strong:var(--color-background-elevated);
  --tt-title:var(--color-text-title);
  --tt-text:var(--color-text-primary);
  --tt-muted:var(--color-text-muted);
  --tt-border:var(--color-border-primary);
  --tt-line:var(--color-border-secondary);
  --tt-accent:var(--color-brand-primary);
  --tt-accent-hover:var(--color-brand-primary-hover);
  --tt-accent-soft:var(--color-brand-accent);
  --tt-accent-mid:var(--color-brand-primary);
  --tt-focus:var(--color-button-primary-focus-ring);
  --tt-shadow:0 14px 38px var(--color-card-shadow);
  --tt-shadow-soft:0 8px 24px var(--color-card-shadow);
  --tt-radius:20px;
  --tt-radius-sm:14px;

  /* Aliases públicos antiguos */
  --bg:var(--tt-page-bg);
  --bg-soft:var(--tt-surface-soft);
  --card-bg:var(--tt-surface);
  --white:var(--tt-surface);
  --ink:var(--tt-text);
  --text:var(--tt-text);
  --text-title:var(--tt-title);
  --text-sec:var(--tt-muted);
  --text-muted:var(--tt-muted);
  --border:var(--tt-border);
  --pink-pale:var(--tt-accent-soft);
  --pink:var(--tt-accent-mid);
  --pink-mid:var(--tt-accent-mid);
  --pink-dark:var(--tt-accent);
  --rose:var(--tt-accent);
  --gold:var(--tt-accent);
  --gold-hover:var(--tt-accent-hover);
  --gold-light:var(--tt-surface-soft);
  --whatsapp:var(--color-button-whatsapp-background);
  --whatsapp-h:var(--color-button-whatsapp-hover);
  --error:var(--color-error-text);
  --success:var(--color-success-text);

  /* Aliases checkout/perfil/login (todos parte del esquema GLOBAL — el
     checkout, el login y el perfil son páginas públicas/de usuario, no
     del panel administrativo) */
  --ck-bg:var(--tt-page-bg);
  --ck-card:var(--tt-surface);
  --ck-text:var(--tt-text);
  --ck-muted:var(--tt-muted);
  --ck-border:var(--tt-border);
  --ck-accent:var(--tt-accent);
  --perfil-bg:var(--tt-page-bg);
  --perfil-card:var(--tt-surface);
  --login-bg:var(--tt-page-bg);
  --login-card:var(--tt-surface);
}

/* Aliases del Super Admin — a propósito YA NO apuntan a --tt-* (el
   esquema global): el panel tiene su propio esquema independiente en
   css/admin/admin-color-tokens.css (Super Admin → Apariencia → Esquema de
   Super Admin), cargado solo en admin.html/admin-images.html. Antes esta
   sección forzaba --adm-* = --tt-* con !important en TODAS las páginas,
   lo que hacía que el panel "heredara" el esquema público sin poder
   independizarse nunca (admin.css ya definía sus propios --adm-* pero
   quedaban pisados). Ahora, si --admin-color-* no está definido (páginas
   públicas, que nunca cargan admin-color-tokens.css), estos alias no
   tienen efecto porque las clases .adm-* tampoco existen ahí. */
body:has(.adm-main){
  --adm-bg:var(--admin-color-background-page);
  --adm-card:var(--admin-color-background-surface);
  --adm-text:var(--admin-color-text-primary);
  --adm-muted:var(--admin-color-text-secondary);
  --adm-accent:var(--admin-color-brand);
  --adm-accent-dark:var(--admin-color-brand-hover);
  --adm-border:var(--admin-color-border);
  --adm-sidebar:var(--admin-color-background-sidebar);
  --adm-sidebar-text:var(--admin-color-text-sidebar);
  --adm-sidebar-hover:var(--admin-color-background-sidebar-active);
  --adm-sidebar-active:var(--admin-color-background-sidebar-active);
}

html,body{background:var(--tt-page-bg)!important;color:var(--tt-text)!important;color-scheme:light}body{accent-color:var(--tt-accent)}
body:has(.adm-main){background:var(--admin-color-background-page)!important;color:var(--admin-color-text-primary)!important;accent-color:var(--admin-color-brand)}
main,section,.section,.section-sm,.tt-section,.tt-page,.tt-page-hero,.tt-products-section,.tt-reviews-section,.tt-trust-bar,.cat-wrap,.cat-hero,.perfil-wrap,.login-page,.ck-body{background:var(--tt-page-bg)!important;color:var(--tt-text)!important}
body:has(.adm-main) .adm-main,body:has(.adm-main) .adm-content{background:var(--admin-color-background-page)!important;color:var(--admin-color-text-primary)!important}

.tt-header,.tt-mobile-menu,.tt-search-panel,.tt-cart-drawer,.tt-collections-sheet,.tt-account-panel,.tt-dropdown,.tt-card,.tt-product-card,.tt-review-card,.tt-info-block,.tt-trust-item,.tt-coll-card,.tt-category-card,.tt-quick-cat,.tt-sheet-item,.tt-mobile-cat-card,.cat-sidebar,.cat-top,.cat-filter-option,.cat-product-card,.perfil-card,.login-box,.ck-panel,.ck-header,.tt-welcome-card,.tt-welcome-admin-card,.tt-welcome-step-card{background:var(--tt-surface)!important;background-color:var(--tt-surface)!important;border-color:var(--tt-border);color:var(--tt-text)!important}
body:has(.adm-main) .adm-topbar,body:has(.adm-main) .adm-card,body:has(.adm-main) .adm-table-wrap,body:has(.adm-main) .adm-modal,body:has(.adm-main) .adm-img-card{background:var(--admin-color-background-surface)!important;background-color:var(--admin-color-background-surface)!important;border-color:var(--admin-color-border);color:var(--admin-color-text-primary)!important}
body:has(.adm-main) .adm-sidebar{background:var(--admin-color-background-sidebar)!important;background-color:var(--admin-color-background-sidebar)!important;border-color:var(--admin-color-border);color:var(--admin-color-text-sidebar)!important}

h1,h2,h3,h4,h5,h6,.tt-section-title,.tt-page-hero-title,.tt-hero-title,.tt-watch-title,.tt-editorial-title,.tt-cart-title,.perfil-name,.login-heading,.ck-panel-title,.tt-footer-col-title{color:var(--tt-title)!important}
body:has(.adm-main) .adm-card-title,body:has(.adm-main) .adm-section-header h1,body:has(.adm-main) .adm-topbar-title,body:has(.adm-main) .adm-sidebar-logo-text{color:var(--admin-color-text-title)!important}
body,p:not(.cs-shell *),li:not(.cs-shell *),span:not(.cs-shell *),small:not(.cs-shell *),label:not(.cs-shell *),th:not(.cs-shell *),td:not(.cs-shell *),div:not(.cs-shell):not(.cs-shell *),a:not(.cs-shell *),input:not(.cs-shell *),textarea:not(.cs-shell *),select:not(.cs-shell *),option:not(.cs-shell *),button:not(.cs-shell *),.tt-card-text,.tt-card-title,.tt-product-name,.tt-product-price,.tt-dropdown-label,.cat-count,.perfil-email,.login-heading-sub{color:var(--tt-text)!important}
body:has(.adm-main) .adm-user-email,body:has(.adm-main) .adm-section-header p,body:has(.adm-main) .adm-label,body:has(.adm-main) .adm-table td,body:has(.adm-main) .adm-table th{color:var(--admin-color-text-primary)!important}
.tt-muted,.text-muted,.tt-section-desc,.tt-section-sub,.tt-card-sub,.tt-product-meta,.tt-footer p,.tt-footer a:not(.tt-footer-wa),.perfil-muted,.ck-muted,.ck-help{color:var(--tt-muted)!important}
body:has(.adm-main) .adm-muted,body:has(.adm-main) .adm-loading,body:has(.adm-main) .adm-sidebar-logo-sub,body:has(.adm-main) .adm-live-clock{color:var(--admin-color-text-secondary)!important}

input,textarea,select,.cat-search,.cat-sort,.cat-range-input,.perfil-input,.ck-input,.ck-select,.ck-textarea,.login-email-input{background:var(--tt-surface)!important;color:var(--tt-text)!important;border-color:var(--tt-border)}
body:has(.adm-main) .adm-input,body:has(.adm-main) .adm-select{background:var(--admin-color-field-background)!important;color:var(--admin-color-text-primary)!important;border-color:var(--admin-color-field-border)}
input::placeholder,textarea::placeholder{color:var(--tt-muted)!important;opacity:.78}
input:focus,textarea:focus,select:focus,.perfil-input:focus,.ck-input:focus,.ck-select:focus,.login-email-input:focus{border-color:var(--tt-accent);box-shadow:0 0 0 3px var(--tt-focus);outline:none!important}
body:has(.adm-main) .adm-input:focus,body:has(.adm-main) .adm-select:focus{border-color:var(--admin-color-field-border-focus);box-shadow:0 0 0 3px var(--admin-color-brand);outline:none!important}

.tt-btn,.tt-btn-primary-full,.tt-cart-checkout-btn,.ck-btn,.login-google,.login-email-btn,.tt-welcome-primary,.tt-welcome-test-btn{background:var(--tt-accent)!important;background-color:var(--tt-accent)!important;border-color:var(--tt-accent);color:#222222!important}
.tt-btn *,.tt-btn-primary-full *,.tt-cart-checkout-btn *,.tt-wa-float *,.tt-footer-wa *,.tt-contact-wa-link *,.ck-btn *,.login-google *,.login-email-btn *,.tt-welcome-primary *,.tt-welcome-test-btn *{color:#222222!important}
.tt-btn:hover,.tt-cart-checkout-btn:hover,.tt-wa-float:hover,.tt-footer-wa:hover,.tt-contact-wa-link:hover,.ck-btn:hover,.login-google:hover,.login-email-btn:hover{background:var(--tt-accent-hover)!important;background-color:var(--tt-accent-hover)!important;color:#222222!important}
body:has(.adm-main) .adm-btn-primary,body:has(.adm-main) .adm-btn-save{background:var(--admin-color-button-primary-background)!important;background-color:var(--admin-color-button-primary-background)!important;border-color:var(--admin-color-button-primary-background);color:var(--admin-color-button-primary-text)!important}
body:has(.adm-main) .adm-btn-primary *,body:has(.adm-main) .adm-btn-save *{color:var(--admin-color-button-primary-text)!important}
body:has(.adm-main) .adm-btn-primary:hover,body:has(.adm-main) .adm-btn-save:hover{background:var(--admin-color-button-primary-hover)!important;background-color:var(--admin-color-button-primary-hover)!important;color:var(--admin-color-button-primary-text)!important}
body:has(.adm-main) .adm-btn-danger,body:has(.adm-main) .adm-btn-danger *{color:var(--admin-color-button-danger-text)!important;background:var(--admin-color-button-danger-background)!important}
.tt-btn-outline,.tt-btn-outline-full,.ck-btn-back,.perfil-btn-outline,.login-email-resend,.tt-added-toast-continue{background:var(--tt-surface)!important;border-color:var(--tt-accent);color:var(--color-text-primary,#222222)!important}
.tt-btn-outline *,.tt-btn-outline-full *,.ck-btn-back *,.perfil-btn-outline *,.login-email-resend *,.tt-added-toast-continue *{color:var(--color-text-primary,#222222)!important}
body:has(.adm-main) .adm-btn-outline,body:has(.adm-main) .adm-btn:not(.adm-btn-primary):not(.adm-btn-danger):not(.adm-btn-save){background:var(--admin-color-background-surface)!important;border-color:var(--admin-color-brand);color:var(--admin-color-button-outline-text)!important}
body:has(.adm-main) .adm-btn-outline *,body:has(.adm-main) .adm-btn:not(.adm-btn-primary):not(.adm-btn-danger):not(.adm-btn-save) *{color:var(--admin-color-button-outline-text)!important}

.tt-cart-badge,.tt-card-badge,.tt-product-status,.tt-product-badge,.cat-filter-dot,.ck-step-num,.perfil-role-badge,[class*="badge"]:not([class*="adm-"]):not([class*="trust-badge"]),[class*="status"]:not([class*="adm-"]){background:var(--color-badge-background)!important;color:var(--color-badge-text)!important;border-color:var(--tt-accent-mid)}
body:has(.adm-main) .adm-user-role-badge,body:has(.adm-main) .adm-nav-badge,body:has(.adm-main) .adm-section-badge{background:var(--admin-color-badge-background)!important;color:var(--admin-color-badge-text)!important;border-color:var(--admin-color-brand)}
.ck-step.active .ck-step-num,.ck-step.active,.cat-filter-option.active,.tt-nav a.active,.tt-mobile-nav a.active,.tt-tabbar-btn.active{background:var(--tt-accent-soft)!important;color:var(--color-text-primary,#222222)!important;border-color:var(--tt-accent-mid)}
body:has(.adm-main) .adm-nav-item.active,body:has(.adm-main) .adm-mobile-tab.active,body:has(.adm-main) .adm-nav-item:hover,body:has(.adm-main) .adm-mobile-tab:hover{background:var(--admin-color-background-sidebar-active)!important;color:var(--admin-color-text-sidebar-active)!important}

thead{background:var(--tt-accent-soft)!important;color:var(--tt-title)!important;border-color:var(--tt-border)}
body:has(.adm-main) .adm-table thead,body:has(.adm-main) .adm-table th,body:has(.adm-main) .adm-bulk-toolbar,body:has(.adm-main) #bulk-toolbar,body:has(.adm-main) #orders-bulk-toolbar{background:var(--admin-color-table-header-background)!important;color:var(--admin-color-text-title)!important;border-color:var(--admin-color-border)}
.cat-filter-option:hover,.tt-dropdown-card:hover,.tt-sheet-item:hover,.tt-quick-cat:hover,.tt-mobile-cat-card:hover{background:var(--tt-surface-soft)!important;color:var(--color-text-primary,#222222)!important}
body:has(.adm-main) .adm-table tr:hover{background:var(--admin-color-table-row-hover)!important;color:var(--color-text-primary,#222222)!important}

hr,.tt-footer,.tt-footer-bottom,.tt-cart-header,.tt-cart-footer,.tt-sheet-header,.tt-sheet-footer,.perfil-section-title,.tt-info-title,.ck-panel-head{border-color:var(--tt-border)}
body:has(.adm-main) .adm-nav-divider,body:has(.adm-main) .adm-card-head{border-color:var(--admin-color-border)}
.tt-footer,.tt-footer-bottom,.tt-tabbar{background:rgba(255,255,255,.97)!important;color:var(--tt-text)!important;border-color:var(--tt-border)}
body:has(.adm-main) .adm-mobile-tabs{background:var(--admin-color-background-surface)!important;color:var(--admin-color-text-primary)!important;border-color:var(--admin-color-border)}
a,.tt-footer a:hover,.tt-contact-email{color:var(--color-text-primary,#222222)!important}

svg,.tt-trust-icon,.tt-dropdown-icon,.tt-contact-info-icon,.perfil-wa-icon,.nav-icon,.tt-404-icon{color:var(--tt-muted)!important}
/* Los iconos blancos necesitan su superficie de marca. La regla genérica de
   svg y los títulos del tema no deben recolorear estos consumidores del panel. */
body:has(.adm-main) :is(.adm-nav-icon,.adm-stat-icon){background:var(--admin-color-brand-hover)!important;color:#222222!important}
body:has(.adm-main) .adm-stat-icon{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:10px}
body:has(.adm-main) :is(.adm-nav-icon,.adm-stat-icon) svg{color:#222222!important;stroke:currentColor}
html body:has(.adm-main) .adm-sidebar .adm-sidebar-logo{background:var(--admin-color-brand-hover)!important}
body:has(.adm-main) :is(.adm-sidebar-logo-text,.adm-sidebar-logo-sub,.adm-sidebar-toggle,.adm-sidebar-toggle svg){color:#222222!important}
body:has(.adm-main) .adm-mobile-tab svg{color:#222222!important;stroke:currentColor}
body:has(.adm-main) .adm-mobile-tab{background:var(--admin-color-brand-hover)!important;color:#222222!important}
body:has(.adm-main) .adm-mobile-tab :is(span,div){color:#222222!important}
.tt-btn svg,.ck-btn svg,.login-google svg,.tt-wa-float svg,.tt-footer-wa svg,.tt-contact-wa-link svg{color:#222222!important}
body:has(.adm-main) .adm-btn-primary svg{color:var(--admin-color-button-primary-text)!important}

.login-error,.ck-error,.perfil-toast,.tt-added-toast,.tt-store-closed-box,.login-success,.ck-ship-reminder,.ck-pay-note,.perfil-wa-box,.tt-empty,.cat-empty{background:var(--tt-surface)!important;color:var(--tt-text)!important;border-color:var(--tt-border)}
body:has(.adm-main) .adm-error{background:var(--admin-color-background-surface)!important;color:var(--admin-color-text-primary)!important;border-color:var(--admin-color-border)}
#tt-loader,#tt-intro{background:var(--tt-page-bg)!important;gap:0}
::selection{background:var(--tt-accent)!important;color:#222222!important}
.tt-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Enlaces semánticos del Esquema de colores.
   Cada token editable controla un consumidor real o un estado reutilizable.
   Se conservan los alias anteriores, pero los componentes específicos usan el
   token más preciso para que dos opciones distintas no queden vinculadas por
   accidente. */
body:not(:has(.adm-main)) .tt-header{background:var(--color-background-header)!important}
body:not(:has(.adm-main)) .tt-footer,
body:not(:has(.adm-main)) .tt-footer-bottom{background:var(--color-background-footer)!important}
body:not(:has(.adm-main)) :is(.tt-mobile-menu,.tt-dropdown,.tt-search-panel,.tt-cart-drawer,.tt-collections-sheet,.tt-account-panel){background:var(--color-background-menu)!important}
body:not(:has(.adm-main)) :is(.tt-submenu,.tt-dropdown-submenu,.tt-collections-submenu,[role="menu"] [role="menu"]){background:var(--color-background-submenu)!important}
body:not(:has(.adm-main)) table{background:var(--color-background-table)!important}
body:not(:has(.adm-main)) tbody tr:hover{background:var(--color-background-table-row-hover)!important}
body:not(:has(.adm-main)) :is(input,textarea,select,option,.cat-search,.cat-sort){background:var(--color-background-field)!important}
body:not(:has(.adm-main)) :is(.tt-wa-float,.tt-floating,.floating-action){background:var(--color-background-float)!important}
body:not(:has(.adm-main)) :is(.tt-modal-overlay,.modal-overlay,.tt-drawer-overlay,.tt-search-overlay){background:var(--color-background-overlay)!important}
body:not(:has(.adm-main)) :is([aria-selected="true"],[aria-current="page"],.is-selected,.selected){background-color:var(--color-background-selected)!important}
body:not(:has(.adm-main)) :is(button,input,select,textarea,[role="button"]):disabled,
body:not(:has(.adm-main)) [aria-disabled="true"]{background-color:var(--color-background-disabled)!important;color:var(--color-text-disabled)!important}

body:not(:has(.adm-main)) :is(.tt-section-desc,.tt-card-sub,.tt-product-meta,.ck-muted,.perfil-muted){color:var(--color-text-secondary)!important}
body:not(:has(.adm-main)) :is(.tt-caption,.tt-overline,.tt-meta,.text-tertiary){color:var(--color-text-tertiary)!important}
body:not(:has(.adm-main)) :is(.tt-muted,.text-muted,.muted){color:var(--color-text-muted)!important}
body:not(:has(.adm-main)) :is(h1,h2,h3,h4,h5,h6,.tt-title,.tt-section-title){color:var(--color-text-title)!important}
body:not(:has(.adm-main)) :is(.tt-subtitle,.tt-section-sub,.login-heading-sub){color:var(--color-text-subtitle)!important}
body:not(:has(.adm-main)) :is(label,legend,.field-label,.form-label){color:var(--color-text-label)!important}
body:not(:has(.adm-main)) :is(input,textarea)::placeholder{color:var(--color-text-placeholder)!important}
body:not(:has(.adm-main)) a:not(.tt-btn):not(.ck-btn):not(.login-google):not(.tt-wa-float):not(.tt-footer-wa):not(.tt-contact-wa-link):not(.tt-cart-goto-btn):not(.tt-added-toast-checkout):not(.tt-cart-checkout-btn):not(.perfil-btn):not(.tt-home-runtime-state-link){color:var(--color-text-link)!important}
body:not(:has(.adm-main)) a:visited:not(.tt-btn):not(.ck-btn):not(.login-google):not(.tt-wa-float):not(.tt-footer-wa):not(.tt-contact-wa-link):not(.tt-cart-goto-btn):not(.tt-added-toast-checkout):not(.tt-cart-checkout-btn):not(.perfil-btn):not(.tt-home-runtime-state-link){color:var(--color-text-link-visited)!important}
body:not(:has(.adm-main)) :is(.help-text,.field-help,.ck-help,.form-help){color:var(--color-text-help)!important}
body:not(:has(.adm-main)) :is(.on-dark,.text-inverse,.tt-btn-primary,.tt-wa-float){color:var(--color-text-inverse)!important}

body:not(:has(.adm-main)) :is(.tt-btn-primary,.tt-btn-primary-full,.tt-cart-checkout-btn,.ck-btn-primary,.login-email-btn){
  background:var(--color-button-primary-background)!important;
  color:var(--color-button-primary-text)!important;
  border-color:var(--color-button-primary-border)
}
body:not(:has(.adm-main)) :is(.tt-btn-primary,.tt-btn-primary-full,.tt-cart-checkout-btn,.ck-btn-primary,.login-email-btn):hover{background:var(--color-button-primary-hover)!important}
body:not(:has(.adm-main)) :is(.tt-btn-primary,.tt-btn-primary-full,.tt-cart-checkout-btn,.ck-btn-primary,.login-email-btn):active{background:var(--color-button-primary-active)!important}
body:not(:has(.adm-main)) :is(.tt-btn-primary,.tt-btn-primary-full,.tt-cart-checkout-btn,.ck-btn-primary,.login-email-btn):focus-visible{box-shadow:0 0 0 3px var(--color-button-primary-focus-ring)!important}
body:not(:has(.adm-main)) :is(.tt-btn-primary,.tt-btn-primary-full,.tt-cart-checkout-btn,.ck-btn-primary,.login-email-btn):disabled{
  background:var(--color-button-primary-disabled-background)!important;
  color:var(--color-button-primary-disabled-text)!important
}
body:not(:has(.adm-main)) :is(.tt-btn-outline,.tt-btn-outline-full,.ck-btn-back,.perfil-btn-outline,.tt-added-toast-continue){
  background:var(--color-button-secondary-background)!important;
  color:var(--color-button-secondary-text)!important;
  border-color:var(--color-button-secondary-border)
}
body:not(:has(.adm-main)) :is(.tt-btn-outline,.tt-btn-outline-full,.ck-btn-back,.perfil-btn-outline,.tt-added-toast-continue):hover{background:var(--color-button-secondary-hover)!important}
body:not(:has(.adm-main)) :is(.tt-btn-outline,.tt-btn-outline-full,.ck-btn-back,.perfil-btn-outline,.tt-added-toast-continue):active{background:var(--color-button-secondary-active)!important}
body:not(:has(.adm-main)) :is(.tt-btn-outline,.tt-btn-outline-full,.ck-btn-back,.perfil-btn-outline,.tt-added-toast-continue):focus-visible{box-shadow:0 0 0 3px var(--color-button-secondary-focus-ring)!important}
body:not(:has(.adm-main)) :is(.tt-btn-outline,.tt-btn-outline-full,.ck-btn-back,.perfil-btn-outline,.tt-added-toast-continue):disabled{
  background:var(--color-button-secondary-disabled-background)!important;
  color:var(--color-button-secondary-disabled-text)!important
}
body:not(:has(.adm-main)) :is(.tt-btn-success,.btn-success,[data-button-variant="success"]){background:var(--color-button-success-background)!important;color:var(--color-button-success-text)!important}
body:not(:has(.adm-main)) :is(.tt-btn-warning,.btn-warning,[data-button-variant="warning"]){background:var(--color-button-warning-background)!important;color:var(--color-button-warning-text)!important}
body:not(:has(.adm-main)) :is(.tt-btn-danger,.btn-danger,[data-button-variant="danger"]){background:var(--color-button-danger-background)!important;color:var(--color-button-danger-text)!important}
body:not(:has(.adm-main)) :is(.tt-btn-danger,.btn-danger,[data-button-variant="danger"]):hover{background:var(--color-button-danger-hover)!important}
body:not(:has(.adm-main)) :is(.tt-btn-info,.btn-info,[data-button-variant="info"]){background:var(--color-button-info-background)!important;color:var(--color-button-info-text)!important}
body:not(:has(.adm-main)) :is(.tt-btn-neutral,.btn-neutral,[data-button-variant="neutral"]){background:var(--color-button-neutral-background)!important;color:var(--color-button-neutral-text)!important}
body:not(:has(.adm-main)) :is(.tt-wa-float,.tt-footer-wa,.tt-contact-wa-link){background:var(--color-button-whatsapp-background)!important;color:var(--color-button-whatsapp-text)!important}
body:not(:has(.adm-main)) :is(.tt-wa-float,.tt-footer-wa,.tt-contact-wa-link):hover{background:var(--color-button-whatsapp-hover)!important}
body:not(:has(.adm-main)) :is(.tt-icon-btn,.icon-button,[data-button-variant="icon"]){color:var(--color-button-icon-text)!important}
body:not(:has(.adm-main)) :is(.tt-icon-btn,.icon-button,[data-button-variant="icon"]):disabled{color:var(--color-button-icon-disabled-text)!important}
body:not(:has(.adm-main)) :is(.tt-floating-btn,.floating-button,[data-button-variant="floating"]){background:var(--color-button-floating-background)!important;color:var(--color-button-floating-text)!important}
body:not(:has(.adm-main)) :is(.tt-sticky-btn,.sticky-button,[data-button-variant="sticky"]){background:var(--color-button-sticky-background)!important;color:var(--color-button-sticky-text)!important}
body:not(:has(.adm-main)) :is(.tt-btn-outline,[data-button-variant="outline"]){background:var(--color-button-outline-background)!important;color:var(--color-button-outline-text)!important;border-color:var(--color-button-outline-border)}
body:not(:has(.adm-main)) :is(.tt-btn-transparent,[data-button-variant="transparent"]){background:transparent!important;color:var(--color-button-transparent-text)!important}

/* El selector global de texto de la interfaz también alcanza a los botones.
   Mantener el texto de las acciones primarias en blanco evita que el token
   de texto de página (#222222) reemplace el contraste de la superficie rosa. */
html body:not(:has(.adm-main)) :is(.tt-btn:not(.tt-btn-outline):not(.tt-btn-outline-full),.tt-btn-primary,.tt-btn-primary-full,.tt-cart-checkout-btn,.ck-btn,.login-google,.login-email-btn,.tt-welcome-primary,.tt-welcome-test-btn,.tt-home-runtime-state-link,.perfil-btn-primary){
  color:var(--color-button-primary-text,#FFFFFF)!important;
}
/* Los hijos (span, small…) los alcanza el selector global de texto, que gana
   por especificidad a ".tt-btn *": heredan el color del botón que los contiene.
   .login-google queda fuera porque su superficie es blanca (login-maintenance). */
html body:not(:has(.adm-main)) :is(.tt-btn:not(.tt-btn-outline):not(.tt-btn-outline-full),.tt-btn-primary,.tt-btn-primary-full,.tt-cart-checkout-btn,.ck-btn,.login-email-btn,.tt-welcome-primary,.tt-welcome-test-btn,.tt-home-runtime-state-link,.perfil-btn-primary) :is(span,small,strong,b,em,i){
  color:inherit!important;
}

/* Etiquetas de colecciones: tarjeta blanca legible sobre la fotografía. */
html body:not(:has(.adm-main)) .tt-coll-card-label{
  color:#222222!important;
  background:#FFFFFF!important;
  border-radius:999px;
  padding:6px 10px;
  text-shadow:none;
}

html body:not(:has(.adm-main)) .cat-filter-toggle{
  color:var(--color-button-primary-text,#FFFFFF)!important;
}

body:not(:has(.adm-main)) :is(.tt-card,.tt-product-card,.tt-review-card,.tt-category-card,.perfil-card,.ck-panel,.login-box){border-color:var(--color-card-border);box-shadow:0 14px 38px var(--color-card-shadow)}

/* Superficies canónicas: todas las tarjetas públicas parten de blanco sólido.
   El esquema de color puede cambiar acentos y estados, pero nunca vuelve a
   teñir una tarjeta con el fondo de página. */
body:not(:has(.adm-main)) :is(
  .tt-card,.tt-product-card,.tt-look-card,.tt-review-card,.tt-coll-page-card,
  .tt-info-block,.tt-contact-info-item,.tt-trust-item,.tt-category-card,
  .tt-quick-cat,.cat-sidebar,.cat-top,.cat-filter-option,.cat-product-card,
  .tt-product-info-panel,.tt-product-actions-panel,.tt-specs-block,.tt-map-block,
  .tinsel-box,.tinben-card,.correos-panel,.ship-tab-panel,
  .perfil-card,.perfil-section,.perfil-wa-box,
  .login-box,.login-exit-card,
  .ck-panel,.ck-item,.ck-sug-card,.ck-ship-info,.ck-map-wrap,
  .ck-bank-details,.ck-pay-note,.ck-post-confirm-card
) {
  background-color:#fff !important;
  background-image:none !important;
  border-color:var(--color-card-border) !important;
  box-shadow:0 14px 38px var(--color-card-shadow) !important;
}
body:not(:has(.adm-main)) :is(hr,.divider,.tt-divider){border-color:var(--color-border-secondary)}
body:not(:has(.adm-main)) :is(input,textarea,select,[tabindex]):focus-visible{border-color:var(--color-border-focus)!important}
body:not(:has(.adm-main)) :is(.is-invalid,[aria-invalid="true"],.field-error){border-color:var(--color-border-error)}
body:not(:has(.adm-main)) :is(.is-valid,.field-success){border-color:var(--color-border-success)}
body:not(:has(.adm-main)) :is(.field-warning,.is-warning){border-color:var(--color-border-warning)}

body:not(:has(.adm-main)) :is(.alert-info,.tt-info,.state-info){background:var(--color-info-background)!important;color:var(--color-info-text)!important}
body:not(:has(.adm-main)) :is(.alert-success,.tt-success,.state-success,.login-success){background:var(--color-success-background)!important;color:var(--color-success-text)!important}
body:not(:has(.adm-main)) :is(.alert-warning,.tt-warning,.state-warning){background:var(--color-warning-background)!important;color:var(--color-warning-text)!important}
body:not(:has(.adm-main)) :is(.alert-error,.tt-error,.state-error,.login-error,.ck-error){background:var(--color-error-background)!important;color:var(--color-error-text)!important}
body:not(:has(.adm-main)) :is(.alert-danger,.tt-danger,.state-danger){background:var(--color-danger-background)!important;color:var(--color-danger-text)!important}
body:not(:has(.adm-main)) :is(.alert-neutral,.tt-neutral,.state-neutral){background:var(--color-neutral-background)!important;color:var(--color-neutral-text)!important}
body:not(:has(.adm-main)) :is(.in-stock,.available,.tt-available){color:var(--color-state-available)!important}
body:not(:has(.adm-main)) :is(.sold-out,.agotado,.tt-soldout){color:var(--color-state-soldout)!important}
body:not(:has(.adm-main)) :is(.discount,.descuento,.tt-discount){color:var(--color-state-discount)!important}
body:not(:has(.adm-main)) :is(.promo,.promocion,.tt-promo){color:var(--color-state-promo)!important}
body:not(:has(.adm-main)) :is(.is-selected,[aria-selected="true"]){outline-color:var(--color-state-selected)!important}
body:not(:has(.adm-main)) :is(.tt-interactive,[role="option"],[role="menuitem"]):hover{background-color:var(--color-state-hover)!important}
body:not(:has(.adm-main)) :is(.tt-interactive,[role="option"],[role="menuitem"]):focus-visible{box-shadow:0 0 0 3px var(--color-state-focus)!important}
body:not(:has(.adm-main)) :is(.tt-interactive,[role="option"],[role="menuitem"]):active{background-color:var(--color-state-active)!important}
body:not(:has(.adm-main)) :is(.tt-interactive,[role="option"],[role="menuitem"])[aria-disabled="true"]{color:var(--color-state-disabled)!important}

body:not(:has(.adm-main)) :is(input,textarea,select,.tt-field){background:var(--color-field-background)!important;color:var(--color-field-text)!important;border-color:var(--color-field-border)}
body:not(:has(.adm-main)) :is(input,textarea,select,.tt-field):focus{border-color:var(--color-field-border-focus)}
body:not(:has(.adm-main)) :is(input,textarea)::placeholder{color:var(--color-field-placeholder)!important}

body:not(:has(.adm-main)) :is(.tt-nav a.active,.tt-mobile-nav a.active,.tt-tabbar-btn.active,[aria-current="page"]){background:var(--color-nav-active-background)!important;color:var(--color-nav-active-text)!important}
body:not(:has(.adm-main)) :is(.tt-nav a,.tt-mobile-nav a,.tt-tabbar-btn):not(.active){color:var(--color-nav-inactive-text)!important}
body:not(:has(.adm-main)) :is(.tab.active,[role="tab"][aria-selected="true"]){background:var(--color-tab-active-background)!important;color:var(--color-tab-active-text)!important}
body:not(:has(.adm-main)) :is(.tab,[role="tab"]):not(.active):not([aria-selected="true"]){color:var(--color-tab-inactive-text)!important}
body:not(:has(.adm-main)) :is(.breadcrumb,.breadcrumbs,.tt-breadcrumb){color:var(--color-breadcrumb-text)!important}
body:not(:has(.adm-main)) :is(.breadcrumb [aria-current="page"],.breadcrumbs .active,.tt-breadcrumb .active){color:var(--color-breadcrumb-active-text)!important}
body:not(:has(.adm-main)) :is(summary,.accordion-header,.tt-accordion-header){background:var(--color-accordion-header-background)!important}
body:not(:has(.adm-main)) :is(.indicator,.dot,.tt-indicator,.swiper-pagination-bullet-active){background-color:var(--color-indicator)!important}

body:not(:has(.adm-main)) :is(table,th,td){border-color:var(--color-table-border)}
body:not(:has(.adm-main)) th{background:var(--color-table-header-background)!important;color:var(--color-table-header-text)!important}
body:not(:has(.adm-main)) :is(.badge,[class*="-badge"]):not([class*="trust-badge"]){background:var(--color-badge-background)!important;color:var(--color-badge-text)!important}
body:not(:has(.adm-main)) :is(.chip,[class*="-chip"]){background:var(--color-chip-background)!important;color:var(--color-chip-text)!important}

body:not(:has(.adm-main)) :is(.tt-modal,.modal,.dialog,[role="dialog"]){background:var(--color-modal-background)!important;border-color:var(--color-modal-border)}
body:not(:has(.adm-main)) :is(.tt-modal-backdrop,.modal-backdrop,[data-modal-overlay]){background:var(--color-modal-overlay)!important}
body:not(:has(.adm-main)) :is(.tooltip,[role="tooltip"],.tt-tooltip){background:var(--color-tooltip-background)!important;color:var(--color-tooltip-text)!important}
body:not(:has(.adm-main)) :is(.tt-empty,.cat-empty,.empty-state){color:var(--color-empty-state-text)!important}

body:not(:has(.adm-main)) :is(.tt-product-price,.price,.product-price){color:var(--color-price)!important}
body:not(:has(.adm-main)) :is(.tt-product-price-old,.old-price,.price-old){color:var(--color-price-old)!important}
body:not(:has(.adm-main)) :is(.rating-star,.tt-rating-star,[data-rating-star]){color:var(--color-rating-star)!important}
body:not(:has(.adm-main)) :is(.tt-cart-badge,.cart-badge){background:var(--color-cart-badge-background)!important;color:var(--color-cart-badge-text)!important}

body:not(:has(.adm-main)) :is(svg,.icon,.tt-icon){color:var(--color-icon-primary)!important}
body:not(:has(.adm-main)) :is(.icon-accent,.tt-icon-accent,.tt-dropdown-icon){color:var(--color-icon-secondary)!important}
body:not(:has(.adm-main)) :is(button:disabled svg,.icon.disabled,.tt-icon-disabled){color:var(--color-icon-disabled)!important}
body:not(:has(.adm-main)){scrollbar-color:var(--color-scrollbar-thumb) var(--color-scrollbar-track)}
body:not(:has(.adm-main)) ::-webkit-scrollbar-track{background:var(--color-scrollbar-track)!important}
body:not(:has(.adm-main)) ::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb)!important}
body:not(:has(.adm-main)) :is(.switch,.tt-switch,[role="switch"])[aria-checked="true"]{background:var(--color-switch-on-background)!important}
body:not(:has(.adm-main)) :is(.switch,.tt-switch,[role="switch"])[aria-checked="false"]{background:var(--color-switch-off-background)!important}
body:not(:has(.adm-main)) :is(.switch-thumb,.tt-switch-thumb){background:var(--color-switch-thumb)!important}
body:not(:has(.adm-main)) input[type="checkbox"]{border-color:var(--color-checkbox-border)}
body:not(:has(.adm-main)) input[type="checkbox"]:checked{background-color:var(--color-checkbox-checked-background)!important}
body:not(:has(.adm-main)) input[type="radio"]{border-color:var(--color-radio-border)}
body:not(:has(.adm-main)) input[type="radio"]:checked{background-color:var(--color-radio-checked-background)!important}
body:not(:has(.adm-main)) :is(progress,.progress,.tt-progress){background:var(--color-progress-track)!important}
body:not(:has(.adm-main)) :is(progress,.progress,.tt-progress)::-webkit-progress-value,
body:not(:has(.adm-main)) :is(.progress-fill,.tt-progress-fill){background:var(--color-progress-fill)!important}
body:not(:has(.adm-main)) :is(.skeleton,.tt-skeleton){background-color:var(--color-skeleton-base)!important;background-image:linear-gradient(90deg,var(--color-skeleton-base),var(--color-skeleton-shine),var(--color-skeleton-base))}
body:not(:has(.adm-main)) ::selection{background:var(--color-selection-background)!important;color:var(--color-selection-text)!important}
body:not(:has(.adm-main)) :is(.spinner,.loader-spinner,.tt-spinner){border-color:var(--color-loading-spinner)}

body:has(.adm-main) .adm-topbar{background:var(--admin-color-background-header)!important}
body:has(.adm-main) :is(.adm-hint,.adm-caption,.adm-meta){color:var(--admin-color-text-tertiary)!important}
body:has(.adm-main) :is(.adm-modal,.adm-dialog,[role="dialog"]){background:var(--admin-color-modal-background)!important}
body:has(.adm-main) :is(.adm-modal-overlay,.adm-backdrop,[data-admin-modal-overlay]){background:var(--admin-color-modal-overlay)!important}

/* ══════════════════════════════════════════════════════════════════════
   FOOTER PÚBLICO ÚNICO
   Misma estructura en todas las rutas públicas.  Se declara al final del
   tema para prevalecer sobre reglas históricas de cada página.
══════════════════════════════════════════════════════════════════════ */
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"]{
  --tt-footer-surface:#fff;
  --tt-footer-ink:var(--color-text-primary);
  --tt-footer-muted:var(--color-text-secondary);
  --tt-footer-line:transparent;
  background:linear-gradient(180deg,rgba(255,255,255,0) 0%,var(--tt-footer-surface) 34%)!important;
  color:var(--tt-footer-ink)!important;
  border:0!important;
  border-top:0!important;
  box-shadow:none!important;
  padding:clamp(24px,3.25vw,44px) 0 0!important;
}
/* La imagen ocupa el espacio del icono; el botón conserva su área táctil. */
:is(#tt-header-desktop-tablet,#tt-header-tablet) [data-auth-account-button]{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
}
:is(#tt-header-desktop-tablet,#tt-header-tablet) :is(.tt-header-actions,.tt-tablet-actions) :is(svg,.tt-account-avatar-btn){
  width:24px!important;height:24px!important;inline-size:24px!important;block-size:24px!important;flex:0 0 24px!important;
}
:is(#tt-header-desktop-tablet,#tt-header-tablet) .tt-account-avatar-btn{
  display:block;border-radius:50%!important;object-fit:cover!important;object-position:center;border:0!important;padding:0!important;
}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-shell{max-width:1240px}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-grid{
  grid-template-columns:minmax(220px,1.55fr) repeat(3,minmax(130px,1fr));
  gap:clamp(28px,4vw,64px);
  padding-bottom:clamp(22px,3vw,36px);
  border-bottom:0!important;
}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-brand{display:flex;flex-direction:column;align-items:flex-start}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-logo-link{display:inline-flex;align-items:center;min-height:42px}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-logo-img{width:auto;max-width:142px;max-height:42px;object-fit:contain;filter:none}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-tagline{
  max-width:300px;margin:16px 0 22px;color:var(--tt-footer-muted)!important;
  font-size:.9rem;line-height:1.65;
}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-wa{min-height:42px;padding:10px 16px;border-radius:999px;font-size:.8rem}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col-title{
  margin:4px 0 16px;color:var(--tt-footer-ink)!important;font-size:.73rem;
  letter-spacing:.08em;text-transform:none;
}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col ul{margin:0;padding:0;list-style:none}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col li{margin:0 0 9px;color:var(--tt-footer-muted)!important;font-size:.84rem;line-height:1.35}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col a{
  color:var(--tt-footer-muted)!important;text-decoration:none;
  text-underline-offset:4px;transition:color .18s ease,text-decoration-color .18s ease;
}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col a:hover,
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col a:focus-visible{color:var(--tt-footer-ink)!important;text-decoration:underline}
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-bottom{
  background:transparent!important;color:var(--color-text-secondary)!important;border:0!important;
  padding:18px max(20px,env(safe-area-inset-right)) calc(18px + env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));
  font-size:.68rem;letter-spacing:.07em;
}
/* Evita el vacío excesivo antes del cierre compartido, sin tocar el espacio
   interno de las tarjetas ni los contenidos de cada página. */
body:not(:has(.adm-main)):not(:has(.login-page)) main > :last-child{
  padding-bottom:clamp(28px,4vw,44px)!important;
}
html[data-tt-footer-bg-custom] body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"]{background:#fff!important}
html[data-tt-footer-text-custom] body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"]{color:var(--color-text-primary)!important}
html[data-tt-footer-text-custom] body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] :is(.tt-footer-col-title,.tt-footer-col a,.tt-footer-col li,.tt-footer-tagline,.tt-footer-bottom){color:var(--tt-footer-muted)!important}
html[data-tt-footer-accent-custom] body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-wa{background:var(--color-brand-primary)!important}
@media (max-width:1024px){
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:36px 52px}
}
@media (max-width:600px){
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"]{padding-top:24px!important}
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-shell{width:min(100% - 40px,1240px)}
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-grid{grid-template-columns:1fr;gap:0;padding-bottom:24px}
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-brand{padding-bottom:18px}
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col{border-top:0;padding:3px 0}
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col-title{margin:0}
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-accordion-toggle{
    min-height:48px;color:var(--tt-footer-ink)!important;font-size:.8rem;font-weight:700;letter-spacing:.01em;
  }
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-col>ul{padding:4px 0 12px}
  body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-bottom{font-size:.62rem;line-height:1.55}
}

/* La identidad ocupa todo el círculo en cada variante de header. */
[data-auth-account-button][data-tt-account-avatar="true"]{padding:0!important;overflow:hidden!important;position:relative;}
:is(#tt-header-desktop-tablet,#tt-header-tablet) [data-auth-account-button][data-tt-account-avatar="true"] img.tt-account-avatar-btn,
[data-auth-account-button][data-tt-account-avatar="true"] img.tt-account-avatar-btn{width:100%!important;height:100%!important;inline-size:100%!important;block-size:100%!important;max-width:none!important;max-height:none!important;flex:1 1 auto!important;object-fit:cover!important;border-radius:50%!important;}
.tt-wholesale-invitation{animation:tt-wholesale-breathe 3s ease-in-out infinite;}
@keyframes tt-wholesale-breathe{50%{box-shadow:inset 0 0 0 2px #f8aaca;}}
@media(prefers-reduced-motion:reduce){.tt-wholesale-invitation{animation:none;}}

.tt-wholesale-invitation-label{display:inline-block;animation:tt-wholesale-label 3s ease-in-out infinite;}
@keyframes tt-wholesale-label{50%{transform:translateY(-1px);}}
@media(prefers-reduced-motion:reduce){.tt-wholesale-invitation-label{animation:none;}}

/* Disponibilidad accesible en todas las tarjetas y opciones. */
.tt-stock-unavailable :is(.tt-product-img-real,.tt-search-result-image), #gallery-main.tt-stock-unavailable img { filter:grayscale(1); }
.tt-stock-unavailable :is(.tt-product-img,.tt-color-swatch), #gallery-main.tt-stock-unavailable { position:relative; overflow:hidden; }
.tt-search-result-item.tt-stock-unavailable { position:relative; }
.tt-search-result-item.tt-stock-unavailable .tt-search-result-image { outline:2px solid #bf2437; }
.tt-footer-wa svg, a[href*="wa.me"] svg, .tt-product-wa-link svg { color:var(--color-button-whatsapp-text, #222222); }

.tt-account-drawer-heading { flex:1; text-align:center; min-width:0; }
.tt-account-drawer-logo { display:block; width:min(160px,60vw); height:80px; object-fit:contain; margin:0 auto 8px; }
.tt-account-drawer-heading h2 { margin:0; }
.tt-search-result-media { position:relative; overflow:hidden; display:block; border-radius:12px; }
.tt-search-result-media .tt-search-result-image { border:0; border-radius:0; box-shadow:none; background:#fff; }
.tt-search-result-item.tt-stock-unavailable .tt-search-result-image { outline:0; }
.perfil-wrap, .perfil-card { box-sizing:border-box; min-width:0; }


/* WhatsApp conserva verde y blanco mediante sus tokens semánticos. */
html body:not(:has(.adm-main)) :is(.tt-wa-float,.tt-footer-wa,.tt-contact-wa-link,a[href*="wa.me"][class],#ck-wa-support) {
  background:var(--color-button-whatsapp-background) !important;
  color:var(--color-button-whatsapp-text) !important;
  border-color:var(--color-button-whatsapp-background) !important;
}
html body:not(:has(.adm-main)) :is(.tt-wa-float,.tt-footer-wa,.tt-contact-wa-link,a[href*="wa.me"][class],#ck-wa-support) * {
  color:var(--color-button-whatsapp-text) !important;
}
html body:not(:has(.adm-main)) :is(.tt-wa-float,.tt-footer-wa,.tt-contact-wa-link,a[href*="wa.me"][class],#ck-wa-support):hover {
  background:var(--color-button-whatsapp-hover) !important;
}
.tt-card-colors { display:flex; flex-wrap:wrap; justify-content:center; gap:4px; margin:6px 0; }
.tt-card-color { display:inline-flex; align-items:center; justify-content:center; width:40px; height:40px; border:1px solid transparent; border-radius:50%; padding:7px; background:transparent; cursor:pointer; }
.tt-card-color .tt-color-swatch { display:block; flex:0 0 auto; width:24px; height:24px; max-width:none; border-radius:50%; border:2px solid #fff; outline:1px solid #777; }
.tt-card-color[aria-pressed="true"] { border-color:var(--color-text-primary,#222222); }
.tt-card-color:focus-visible { outline:2px solid #222222; outline-offset:2px; }
.tt-card-color.tt-stock-unavailable .tt-color-swatch { position:relative; overflow:hidden; }

/* WhatsApp: icono y texto comparten tinta; una sola etiqueta en los footers. */
html body:not(:has(.adm-main)) :is(.tt-footer-wa,.tt-contact-wa-link) svg {
  color:var(--color-button-whatsapp-text) !important;
  fill:currentColor;
}
.tt-hero-link { text-decoration:none !important; border-bottom:0 !important; }
.tt-footer-hours { margin-bottom:14px; }

.tt-wa-float {
  transform:translateY(var(--tt-wa-shift-y,0px)) !important;
  animation:none !important;
  transition:background-color .2s, box-shadow .2s !important;
}

/* Los botones de WhatsApp conservan su contraste aunque cambie el texto primario. */
html body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-wa .tt-footer-wa-text,
html body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-wa svg { color:var(--color-button-whatsapp-text) !important; }

/* También los CTA de ayuda de producto, checkout y páginas informativas. */
html:root body:not(:has(.adm-main)) :is(a[href*="wa.me"][class]:not(.tt-wa-float):not(.tt-footer-wa):not(.tt-contact-wa-link),#ck-wa-support) {
  display:inline-flex; align-items:center; justify-content:center; gap:8px;
  min-height:44px; padding:10px 16px; border-radius:999px;
  background:var(--color-button-whatsapp-background) !important;
  color:var(--color-button-whatsapp-text) !important;
  border-color:var(--color-button-whatsapp-background) !important;
  text-decoration:none !important;
}
html:root body:not(:has(.adm-main)) :is(a[href*="wa.me"][class]:not(.tt-wa-float):not(.tt-footer-wa):not(.tt-contact-wa-link),#ck-wa-support) * { color:var(--color-button-whatsapp-text) !important; }
html:root body:not(:has(.adm-main)) :is(a[href*="wa.me"][class]:not(.tt-wa-float):not(.tt-footer-wa):not(.tt-contact-wa-link),#ck-wa-support):hover { background:var(--color-button-whatsapp-hover) !important; }

/* Tarjetas de boutique: fotografía cuadrada, contenido compacto y acciones alineadas. */
html body:not(:has(.adm-main)) .tt-product-card .tt-product-img { aspect-ratio:1; min-height:0; background:#fff; }
html body:not(:has(.adm-main)) .tt-product-card .tt-product-info { padding:12px; gap:5px; }
html body:not(:has(.adm-main)) .tt-product-card .tt-product-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); align-items:stretch; gap:6px; margin-top:8px; }
html body:not(:has(.adm-main)) .tt-product-card .tt-product-actions .tt-btn { min-height:44px; padding:8px 6px; font-size:clamp(.65rem,1.6vw,.8rem); }
html body:not(:has(.adm-main)) .tt-product-card .tt-product-name { overflow-wrap:anywhere; }
html body:not(:has(.adm-main)) .tt-product-card .tt-card-colors { gap:2px; margin:2px 0; }

html body:not(:has(.adm-main)) .tt-product-card .tt-product-actions .tt-btn:only-child { grid-column:1 / -1; }

/* El aviso de stock conserva la fotografía y el color real del accesorio. */
html body .tt-stock-unavailable :is(.tt-product-img-real,.tt-search-result-image),
html body #gallery-main.tt-stock-unavailable img { filter: none !important; }
html body .tt-stock-label {
  position: absolute;
  z-index: 2;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  writing-mode: horizontal-tb;
  text-orientation: mixed;
  padding: 12px 18px;
  max-width: calc(100% - 16px);
  box-sizing: border-box;
  border: 1px solid #9CA3AF;
  border-radius: 8px;
  background: #E5E7EB;
  color: #4B5563;
  font-size: clamp(14px, 2vw, 20px);
  font-weight: 700;
  line-height: 1;
  letter-spacing: .16em;
  pointer-events: none;
  white-space: nowrap;
}
html body .tt-stock-label[hidden] { display: none !important; }
html body :is(.tt-gallery-thumb,.tt-search-result-media) { position: relative; }
html body :is(.tt-gallery-thumb,.tt-search-result-media) .tt-stock-label {
  padding: 4px 3px; font-size: 7px; letter-spacing: .04em;
}
html body .tt-variant-option.tt-stock-unavailable::after {
  content: 'Agotado'; position: absolute; top: calc(100% + 2px); left: 50%;
  transform: translateX(-50%); font-size: 8px; line-height: 1; color: #222222;
}
html body .tt-variant-option.tt-stock-unavailable { position: relative; margin-bottom: 12px; }
html body .tt-stock-unavailable img { filter: none !important; }
html body .tt-card-color.tt-stock-unavailable::after {
  content: 'Agotado'; position: absolute; top: calc(100% + 1px); left: 50%;
  transform: translateX(-50%); color: #222222; font-size: 8px; line-height: 1;
}
html body .tt-card-color.tt-stock-unavailable { position: relative; margin-bottom: 10px; }
html body :is(.tt-card-img-wrap,.tt-product-img) { background: #FFFFFF !important; }
html body .tt-favorite-media { position: relative; display: block; width: 64px; height: 64px; }
html body .tt-favorite-media .tt-stock-label { padding: 4px 3px; font-size: 7px; letter-spacing: .04em; }

/* La separación entre bloques públicos la da el degradado, sin rayas. */
html:root body:not(:has(.adm-main)) :is(main > section, .tt-trust-bar, .tt-page-hero, .tt-footer[data-tt-footer="unified"], .tt-footer-bottom) {
  border-top: 0 !important;
  border-bottom: 0 !important;
}


/* css/core/limpieza-tema-tintin.css */
:root{--tt-admin-action-bg:var(--tt-accent);--tt-admin-action-fg:#FFFFFF;--tt-admin-action-border:var(--tt-accent);--tt-admin-action-icon-bg:rgba(255,255,255,.18)}.tt-account-header{display:flex!important;align-items:center!important;gap:10px!important}.tt-account-header span{overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important}.tt-account-panel-avatar{width:32px!important;height:32px!important;max-width:none!important;max-height:none!important;border-radius:50%!important;object-fit:cover!important;flex-shrink:0!important;display:block!important}.tt-mobile-user-photo{width:100%!important;height:100%!important;max-width:none!important;max-height:none!important;object-fit:cover!important;display:block!important;flex-shrink:0!important}.tt-mobile-user-profile-static{pointer-events:none!important}.tt-mobile-user-admin{background:var(--tt-admin-action-bg)!important;background-color:var(--tt-admin-action-bg)!important;color:var(--tt-admin-action-fg)!important;border-color:var(--tt-admin-action-border)!important}.tt-mobile-user-admin *{color:var(--tt-admin-action-fg)!important}.tt-mobile-user-admin-icon{display:grid!important;place-items:center!important;width:26px!important;height:26px!important;border-radius:50%!important;background:var(--tt-admin-action-icon-bg)!important;flex:0 0 auto!important}.ck-trust-item{color:var(--tt-text)!important}.ck-trust-item svg,.tt-themed-vector{stroke:currentColor!important;color:var(--color-text-primary,#222222)!important}.ck-trust-item:first-child svg{color:var(--color-text-primary,#222222)!important}svg[stroke="#4caf50"],svg[stroke="#F8AACA"],svg[stroke="#F8AACA"],svg[stroke="#F8AACA"],svg[stroke="#F8AACA"],svg[stroke="#222222"],svg[stroke="#222222"]{stroke:currentColor!important;color:var(--color-text-primary,#222222)!important}[style*="#222222"],[style*="#222222"],[style*="#F8AACA"],[style*="#F8AACA"],[style*="#F8AACA"],[style*="#F8AACA"],[style*="#4caf50"]{--tt-inline-color-cleaned:1}

/* Fondos sólidos obligatorios en la navegación pública. El esquema global
   puede personalizar colores, pero no convertir el header ni cookies en capas
   transparentes que dejen ver la fotografía del hero por detrás. */
html body:not(:has(.adm-main)) #tt-header-desktop-tablet.tt-header,
html body:not(:has(.adm-main)) #tt-header-desktop-tablet.tt-header.scrolled{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-bottom:1px solid #FDECF2!important;
  box-shadow:0 2px 18px rgba(248,170,202,.10)!important;
}
html body:not(:has(.adm-main)) #tt-privacy-consent.tt-privacy-consent{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  isolation:isolate!important;
  border:1px solid rgba(248,170,202,.12)!important;
  box-shadow:0 24px 64px rgba(38,24,30,.14),0 2px 8px rgba(38,24,30,.05)!important;
}
html body:not(:has(.adm-main)) #tt-privacy-consent .tt-privacy-btn-primary{
  background:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  background-color:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  border:1px solid var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  color:#222222!important;
  opacity:1!important;
}
html body:not(:has(.adm-main)) #tt-privacy-consent .tt-privacy-btn-primary *{color:#FFFFFF!important}
html body:not(:has(.adm-main)) #tt-privacy-consent .tt-privacy-btn-secondary{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
  border:1px solid var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  color:var(--color-text-primary,#222222)!important;
  opacity:1!important;
}

/* El botón TIENDA es un <button>, no un enlace. Sin esta regla heredaba el
   negro global de los botones, mientras INICIO/NOSOTROS/CONTACTO usan el
   color de enlace de la marca. La flecha es texto y adopta el mismo color. */
#btn-tienda,
#btn-mobile-tienda{
  color:var(--color-text-primary,#222222)!important;
}
.tt-header.scrolled #btn-tienda,
#btn-tienda:hover,
#btn-tienda[aria-expanded="true"],
#btn-mobile-tienda:hover,
#btn-mobile-tienda[aria-expanded="true"]{
  color:var(--color-text-primary,#222222)!important;
}

/* Parte 2A: los dos flotantes usan lados opuestos en mobile para no pisarse. */
@media (max-width:768px){
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-back-to-top{
    left:16px!important;
    right:auto!important;
    bottom:calc(var(--tt-mobile-nav-clearance,104px) + env(safe-area-inset-bottom,0px))!important;
  }
}

/* En 320–360px cuatro columnas comprimen las etiquetas del sheet de Tienda.
   Tres columnas flexibles conservan imagen, texto y botón dentro del panel. */
@media (max-width:360px){
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-collections-sheet{
    overflow-x:hidden!important;
  }
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-sheet-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-sheet-item{
    min-width:0!important;
    overflow-wrap:anywhere;
  }
  body.tt-public-shell-mounted:not(:has(.adm-main)) .tt-sheet-footer :is(.tt-btn,a,button){
    width:100%;
    max-width:100%;
    white-space:normal;
    text-align:center;
  }
}


/* css/theme/paridad-segura-tintin.css */
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(248,170,202,.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(248,170,202,.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(248,170,202,.12)!important;
  }
  body:not(:has(.adm-main)) .tt-cart-drawer{
    border-left:1px solid #f0d8e0!important;
    box-shadow:-12px 0 40px rgba(248,170,202,.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;
  }
  /* Los paneles modales conservan su propia capa; el flotante no cambia
     de visibilidad al recorrer el contenido público. */
}
@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(248,170,202,.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(248,170,202,.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,var(--color-brand-primary, #F8AACA))!important;
  background-color:var(--admin-color-brand,var(--color-brand-primary, #F8AACA))!important;
  border-color:var(--admin-color-brand,var(--color-brand-primary, #F8AACA))!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(248,170,202,.10)!important;
}
body:has(.adm-main) .adm-toggle-slider::before{
  background:#fff!important;
  border:1px solid rgba(248,170,202,.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,var(--color-brand-primary, #F8AACA))!important;
  background-color:var(--admin-color-brand,var(--color-brand-primary, #F8AACA))!important;
  border-color:var(--admin-color-brand,var(--color-brand-primary, #F8AACA))!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;
}


/* css/pages/home/hero-bienvenida-inicio.css */
/* =============================================================
   TINTIN — Hero "Bienvenida tintina".

   La fotografía es sólo un apoyo visual. El título, el subtítulo y las
   acciones viven en HTML real para que el hero siga funcionando aunque una
   imagen tarde o no esté disponible.

   Desktop y tablet horizontal: layout en fila (texto a la izquierda,
   fotografía en tarjeta redondeada a la derecha).
   Tablet vertical y mobile: apilado (fotografía arriba a todo el ancho,
   texto centrado debajo), ambos sobre la misma superficie de degradado.
   ============================================================= */

html body.tt-home-premium .tt-hero {
  display: grid;
  position: relative;
  background: linear-gradient(180deg,
    #ed82b4 0%,
    #f39ac2 48%,
    #fbd5e7 100%);
}

html body.tt-home-premium .tt-hero,
html body.tt-home-premium .tt-hero-media {
  background: linear-gradient(180deg,
    #ed82b4 0%,
    #f39ac2 48%,
    #fbd5e7 100%) !important;
}

html body.tt-home-premium .tt-hero-media {
  position: relative;
  inset: auto;
  z-index: 0;
  overflow: hidden;
  background: var(--pink-pale, #FDECF2);
}

html body.tt-home-premium .tt-hero-content {
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  border: none;
  border-radius: 0;
  background: transparent;
  box-shadow: none;
  -webkit-backdrop-filter: none;
  backdrop-filter: none;
  color: #ffffff !important;
}

html body.tt-home-premium .tt-hero-subtitle {
  color: #755d57 !important;
  text-shadow: none;
}

html body.tt-home-premium .tt-hero-title {
  position: relative;
  width: 100%;
  margin: 0 0 clamp(24px, 3vw, 42px);
  color: #fff !important;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(3.2rem, 7vw, 7.8rem);
  font-weight: 300;
  line-height: .82;
  letter-spacing: -.055em;
  text-align: left;
  text-shadow: 0 4px 22px rgba(121, 35, 79, .16);
}

html body.tt-home-premium .tt-hero-title-line {
  display: block;
}

html body.tt-home-premium .tt-hero-title-line--accent {
  margin-left: clamp(56px, 10vw, 150px);
  color:var(--color-text-primary,#222222);
    font-family: "Montserrat", sans-serif;
    font-size: 1.02em;
    font-style: italic;
    font-weight: 500;
  letter-spacing: -.08em;
}

html body.tt-home-premium .tt-hero-actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: clamp(14px, 2vw, 22px);
}

html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta {
  background: #fff !important;
  background-color: #fff !important;
  color:var(--color-text-primary,#222222) !important;
  border: 0 !important;
  min-height: 52px;
  border-radius: 999px;
  box-shadow: none !important;
  transition:
    transform 180ms cubic-bezier(.2, .75, .25, 1),
    box-shadow 180ms ease,
    background-color 180ms ease;
}

html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta:hover {
  background: #fff !important;
  background-color: #fff !important;
  box-shadow: 0 10px 26px rgba(45, 12, 27, .12) !important;
  transform: none;
}

html body.tt-home-premium .tt-hero-link {
  color: #755d57;
  text-decoration: underline;
  text-underline-offset: 3px;
}

html body.tt-home-premium .tt-hero-link:hover {
  color:var(--color-text-primary,#222222);
}

/* Desktop y tablet horizontal (≥1121px, o tablet en orientación horizontal):
   fila — texto a la izquierda sobre el degradado, foto en tarjeta a la
   derecha. */
@media (min-width: 1121px),
       (min-width: 768px) and (max-width: 1120px) and (orientation: landscape) {
  html body.tt-home-premium .tt-hero {
    grid-template-columns: minmax(0, 1fr) minmax(360px, .92fr);
    grid-template-areas: "content media";
    align-items: center;
    justify-items: start;
    gap: clamp(24px, 4vw, 64px);
    min-height: clamp(560px, 82svh, 900px);
    padding: clamp(28px, 4vw, 72px) clamp(24px, 6vw, 96px);
  }

  html body.tt-home-premium .tt-hero-content {
    grid-area: content;
    width: 100%;
    max-width: 560px;
  }

  html body.tt-home-premium .tt-hero-media {
    grid-area: media;
    justify-self: end;
    align-self: center;
    width: min(100%, 720px);
    aspect-ratio: 4 / 5;
    border-radius: 32px;
    box-shadow: 0 28px 64px rgba(45, 12, 27, .28);
  }

  html body.tt-home-premium .tt-hero-subtitle {
    font-size: clamp(1.05rem, 1.4vw, 1.3rem);
    margin: 0 0 clamp(24px, 3vw, 36px);
  }
}

@media (min-width: 768px) and (max-width: 1120px) and (orientation: landscape) {
  html body.tt-home-premium .tt-hero {
    min-height: clamp(480px, 78svh, 620px);
    padding: clamp(22px, 3.4vw, 44px) clamp(20px, 4.5vw, 48px);
  }

  html body.tt-home-premium .tt-hero-media {
    width: min(100%, 520px);
  }

}

/* Tablet vertical y mobile (≤1120px en orientación vertical, o ≤767px):
   apilado — foto arriba a todo el ancho, texto centrado debajo, ambos
   sobre la misma superficie de degradado (sin corte ni salto visual). */
@media (max-width: 767px),
       (max-width: 1120px) and (orientation: portrait) {
  html body.tt-home-premium .tt-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-rows: auto clamp(320px, 52svh, 680px) auto auto;
    grid-template-areas: "title" "media" "subtitle" "actions";
    align-items: stretch;
    min-height: 0;
    padding: 0 0 clamp(32px, 6vw, 56px);
  }

  html body.tt-home-premium .tt-hero-media {
    grid-area: media;
    width: min(calc(100% - 32px), 720px);
    height: 100%;
    margin: 0 auto;
    border-radius: 28px;
    box-shadow: 0 18px 42px rgba(118, 54, 84, .18);
  }

  html body.tt-home-premium .tt-hero-content {
    display: contents;
  }

  html body.tt-home-premium .tt-hero-title {
    grid-area: title;
    width: min(calc(100% - 32px), 720px);
    margin: clamp(24px, 6vw, 48px) auto clamp(14px, 3vw, 24px);
    text-align: center;
    font-size: clamp(3rem, 13vw, 6rem);
  }

  html body.tt-home-premium .tt-hero-title-line--accent {
    margin-left: clamp(30px, 12vw, 100px);
  }

  html body.tt-home-premium .tt-hero-subtitle {
    grid-area: subtitle;
    width: min(calc(100% - 32px), 720px);
    margin: clamp(24px, 5vw, 40px) auto 0;
    text-align: center;
    font-size: clamp(.98rem, 3vw, 1.12rem);
  }

  html body.tt-home-premium .tt-hero-actions {
    grid-area: actions;
    width: min(calc(100% - 32px), 720px);
    margin: clamp(16px, 3vw, 24px) auto 0;
    justify-content: center;
    text-align: center;
  }
}

@media (max-width: 767px) {
  html body.tt-home-premium .tt-hero {
    grid-template-rows: auto clamp(300px, 48svh, 560px) auto auto;
    padding-bottom: 28px;
  }

  html body.tt-home-premium .tt-hero-media {
    border-radius: 24px;
  }

  html body.tt-home-premium .tt-hero-actions {
    width: min(calc(100% - 32px), 420px);
    flex-direction: column;
    align-items: stretch;
    gap: 12px;
  }

  html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta {
    width: 100%;
    justify-content: center;
  }
}

@media (max-width: 380px) {
  html body.tt-home-premium .tt-hero {
    grid-template-rows: clamp(270px, 44svh, 430px) auto auto;
  }

}

@media (max-height: 520px) and (orientation: landscape) and (max-width: 1023px) {
  html body.tt-home-premium .tt-hero {
    grid-template-columns: minmax(0, 1.2fr) minmax(220px, .8fr);
    grid-template-rows: minmax(360px, 100svh);
    grid-template-areas: "content media";
    padding: clamp(16px, 3vw, 28px);
    min-height: 0;
  }

  html body.tt-home-premium .tt-hero-media {
    width: 100%;
    height: 100%;
    aspect-ratio: auto;
    border-radius: 24px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body.tt-home-premium .tt-hero-actions .tt-btn {
    animation: none !important;
    transition: none !important;
  }
}

/* La composición entregada por diseño ya contiene fondo, marca, producto,
   textos y botón. Se muestra como un lienzo único por dispositivo: no se
   agrega una segunda tarjeta ni se superpone otra versión del título. */
html body.tt-home-premium .tt-hero {
  display: block;
  position: relative;
  width: 100%;
  min-height: calc(100svh - 72px);
  height: min(100svh, calc(100vw * .5625));
  padding: 0 !important;
  overflow: hidden;
  background: #ed82b4 !important;
}

html body.tt-home-premium .tt-hero-media {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  margin: 0 !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  aspect-ratio: auto !important;
  background: transparent !important;
}

html body.tt-home-premium .tt-hero-media picture,
html body.tt-home-premium .tt-hero-media .tt-hero-img {
  display: block;
  width: 100%;
  height: 100%;
}

html body.tt-home-premium .tt-hero-media .tt-hero-img {
  object-fit: cover !important;
  object-position: center center !important;
}

html body.tt-home-premium .tt-hero-content {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: block !important;
  pointer-events: none;
  color: transparent !important;
}

html body.tt-home-premium .tt-hero-title,
html body.tt-home-premium .tt-hero-subtitle {
  position: absolute !important;
  width: 1px !important;
  height: 1px !important;
  margin: -1px !important;
  padding: 0 !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

html body.tt-home-premium .tt-hero-actions {
  position: absolute;
  inset: 0;
  display: block;
  pointer-events: none;
}

html body.tt-home-premium .tt-hero-actions .tt-hero-cta,
html body.tt-home-premium .tt-hero-actions .tt-hero-link {
  position: absolute;
  display: block;
  width: 27%;
  height: 9%;
  margin: 0;
  padding: 0;
  border: 0 !important;
  border-radius: 999px;
  background: transparent !important;
  box-shadow: none !important;
  color: transparent !important;
  font-size: 0;
  line-height: 0;
  pointer-events: auto;
  text-decoration: none;
}

html body.tt-home-premium .tt-hero-actions .tt-hero-cta {
  left: 10%;
  top: 61%;
}

html body.tt-home-premium .tt-hero-actions .tt-hero-link {
  left: 14%;
  top: 76%;
  width: 20%;
  height: 6%;
}

@media (max-width: 1120px) and (orientation: landscape) {
  html body.tt-home-premium .tt-hero {
    min-height: calc(100svh - 84px);
    height: calc(100svh - 84px);
  }
}

@media (max-width: 1120px) and (orientation: portrait),
       (max-width: 767px) {
  html body.tt-home-premium .tt-hero {
    min-height: calc(100svh - 166px);
    height: calc(100svh - 166px);
  }

  html body.tt-home-premium .tt-hero-actions .tt-hero-cta {
    left: 18%;
    top: 78%;
    width: 64%;
    height: 8%;
  }

  html body.tt-home-premium .tt-hero-actions .tt-hero-link {
    left: 30%;
    top: 89%;
    width: 40%;
    height: 5%;
  }
}

/* El encabezado tablet mide 84px y es fijo. A 768px exactos antes no se
   reservaba ese alto: la imagen arrancaba debajo del encabezado y parecía
   haber un hueco/corte. El hero empieza ahora justo al terminar el header. */
@media (min-width: 768px) and (max-width: 1024px) {
  html body.tt-home-premium .tt-hero {
    margin-top: 84px !important;
  }
}

/* =============================================================
   COMPOSICIÓN RESPONSIVE FINAL
   Las imágenes aprobadas ya contienen la marca, el producto y el fondo.
   El subtítulo, las acciones y el enlace siguen siendo HTML accesible y se
   ubican sobre las pastillas vacías que deja cada lienzo.
   ============================================================= */
html body.tt-home-premium .tt-hero {
  min-height: 0 !important;
  height: auto !important;
  aspect-ratio: 1774 / 887;
  overflow: hidden;
}

html body.tt-home-premium .tt-hero-media .tt-hero-img {
  object-fit: fill !important;
  object-position: center !important;
  transform: none !important;
}

html body.tt-home-premium .tt-hero-content,
html body.tt-home-premium .tt-hero-actions {
  position: absolute !important;
  inset: 0 !important;
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  margin: 0 !important;
}

html body.tt-home-premium .tt-hero-subtitle {
  display: block !important;
  position: absolute !important;
  left: 8.2%;
  top: 48.5%;
  width: 38% !important;
  height: auto !important;
  margin: 0 !important;
  overflow: visible !important;
  clip: auto !important;
  white-space: normal !important;
  color: #755d57 !important;
  font-size: clamp(1rem, 1.55vw, 1.45rem) !important;
  line-height: 1.2 !important;
  letter-spacing: .12em;
  text-align: center;
}

html body.tt-home-premium .tt-hero-actions {
  position: absolute !important;
  inset: 0 !important;
  display: block !important;
  pointer-events: none;
}

html body.tt-home-premium .tt-hero-actions .tt-hero-cta {
  left: 7.1% !important;
  top: 55.1% !important;
  width: 36.5% !important;
  height: 7.2% !important;
  display: flex !important;
  align-items: center;
  justify-content: center;
  padding: 0 .8em !important;
  color:var(--color-text-primary,#222222) !important;
  background: #fff !important;
  background-color: #fff !important;
  border-color: #fff !important;
  box-shadow: none !important;
  background-image: none !important;
  animation: none !important;
  transition: none !important;
  isolation: isolate;
  overflow: hidden;
  font-size: clamp(.8rem, 1.85vw, 1.7rem) !important;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .08em;
  white-space: nowrap;
  text-decoration: none;
  pointer-events: auto;
}

html body.tt-home-premium .tt-hero-actions .tt-hero-cta:hover,
html body.tt-home-premium .tt-hero-actions .tt-hero-cta:focus-visible,
html body.tt-home-premium .tt-hero-actions .tt-hero-cta:active {
  background: #fff !important;
  background-color: #fff !important;
  border-color: #fff !important;
  box-shadow: none !important;
  color:var(--color-text-primary,#222222) !important;
  transform: none !important;
}

/* El botón base tiene estados animados globales. En este hero el CTA ya es
   una única capa posicionada sobre la composición final: ningún pseudo-
   elemento, sombra o estado heredado debe dibujar una segunda pastilla. */
html body.tt-home-premium .tt-hero-actions .tt-hero-cta::before,
html body.tt-home-premium .tt-hero-actions .tt-hero-cta::after {
  content: none !important;
  display: none !important;
}

html body.tt-home-premium .tt-hero-actions .tt-hero-cta:hover *,
html body.tt-home-premium .tt-hero-actions .tt-hero-cta:focus-visible *,
html body.tt-home-premium .tt-hero-actions .tt-hero-cta:active * {
  color:var(--color-text-primary,#222222) !important;
}

html body.tt-home-premium .tt-hero-actions .tt-hero-link {
  left: 14% !important;
  top: 75.5% !important;
  width: 21% !important;
  height: auto !important;
  color: #755d57 !important;
  font-size: clamp(.85rem, 1.75vw, 1.6rem) !important;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: underline;
  text-underline-offset: .18em;
  white-space: nowrap;
  pointer-events: auto;
}

/* En tablet horizontal y desktop el enlace comparte el mismo eje óptico que
   el subtítulo y la CTA. Antes su caja era mucho más angosta y arrancaba a
   la izquierda, por eso se percibía desordenado aunque los otros dos sí
   estaban centrados. */
html body.tt-home-premium .tt-hero-actions .tt-hero-link {
  left: 7.1% !important;
  width: 36.5% !important;
  text-align: center;
}

@media (max-width: 1120px) and (orientation: landscape) {
  html body.tt-home-premium .tt-hero {
    aspect-ratio: 1536 / 1024;
    height: auto !important;
  }
  html body.tt-home-premium .tt-hero-subtitle {
    left: 7%;
    top: 50%;
    width: 39% !important;
    font-size: clamp(.85rem, 1.9vw, 1.2rem) !important;
  }
  html body.tt-home-premium .tt-hero-actions .tt-hero-cta {
    left: 6.8% !important;
    top: 55.2% !important;
    width: 38% !important;
    font-size: clamp(.72rem, 1.7vw, 1.1rem) !important;
  }
  html body.tt-home-premium .tt-hero-actions .tt-hero-link {
    left: 6.8% !important;
    width: 38% !important;
    top: 76% !important;
    font-size: clamp(.72rem, 1.6vw, 1rem) !important;
  }
}

@media (max-width: 1120px) and (orientation: portrait),
       (max-width: 767px) {
  html body.tt-home-premium .tt-hero {
    aspect-ratio: 1122 / 1402;
    height: auto !important;
  }
  html body.tt-home-premium .tt-hero-subtitle {
    left: 10%;
    top: 70%;
    width: 80% !important;
    font-size: clamp(.82rem, 3.9vw, 1.2rem) !important;
    letter-spacing: .08em;
  }
  html body.tt-home-premium .tt-hero-actions .tt-hero-cta {
    left: 29.5% !important;
    top: 76% !important;
    width: 41% !important;
    height: 5.2% !important;
    font-size: clamp(.72rem, 3.3vw, 1.05rem) !important;
    letter-spacing: .055em;
  }
  html body.tt-home-premium .tt-hero-actions .tt-hero-link {
    left: 25% !important;
    top: 87% !important;
    width: 50% !important;
    font-size: clamp(.78rem, 3.8vw, 1.1rem) !important;
    text-align: center;
  }
}

/* En teléfono el bloque inferior respira un poco más, sin cruzar el borde
   del hero ni tocar la composición independiente de tablet vertical. */
@media (max-width: 767px) {
  html body.tt-home-premium .tt-hero-subtitle { top: 80% !important; }
  html body.tt-home-premium .tt-hero-actions .tt-hero-cta {
    top: 85.1% !important;
    min-height: 48px !important;
    height: 48px !important;
  }
  html body.tt-home-premium .tt-hero-actions .tt-hero-link {
    top: 94% !important;
    min-height: 44px !important;
    height: 44px !important;
    line-height: 22px !important;
  }
}

/* Tablet y desktop: un único eje para texto, CTA y enlace. El teléfono
   conserva su composición aprobada en la regla anterior. */
@media (min-width: 768px) {
  html body.tt-home-premium .tt-hero-subtitle {
    left: 7.1% !important;
    width: 36.5% !important;
    max-width: none !important;
  }

  html body.tt-home-premium .tt-hero-actions .tt-hero-link {
    top: calc(55.1% + max(52px, 7.2%) + clamp(14px, 3%, 32px)) !important;
  }
}

@media (min-width: 768px) and (max-width: 1120px) and (orientation: landscape) {
  html body.tt-home-premium .tt-hero-subtitle {
    left: 6.8% !important;
    width: 38% !important;
  }

  html body.tt-home-premium .tt-hero-actions .tt-hero-link {
    top: calc(55.2% + max(52px, 7.2%) + clamp(9px, 2%, 14px)) !important;
  }
}

@media (min-width: 768px) and (max-width: 1120px) and (orientation: portrait) {
  html body.tt-home-premium .tt-hero-subtitle,
  html body.tt-home-premium .tt-hero-actions .tt-hero-cta,
  html body.tt-home-premium .tt-hero-actions .tt-hero-link {
    left: 29.5% !important;
    width: 41% !important;
    max-width: none !important;
  }

  html body.tt-home-premium .tt-hero-actions .tt-hero-link {
    top: calc(76% + max(52px, 5.2%) + clamp(12px, 3.6%, 36px)) !important;
  }
}


/* css/pages/home/ajuste-inicio.css */
/* La imagen aprobada vive en el HTML y se carga con prioridad alta. El loader
   puede seguir protegiendo el estado de la tienda, pero no se deja una capa
   rosa intermedia esperando una confirmación remota del hero. */
html.tt-initializing body.tt-home-premium{background:#FFFFFF!important}

.tt-home-premium{overflow-x:clip;background:#FFFFFF!important;min-height:100svh}
.tt-home-premium .container{width:min(100%,1280px)}

/* El header de desktop/tablet es fixed y, por eso, queda fuera del flujo:
   sin este margen, el hero arranca en y=0 y el header queda superpuesto
   sobre su parte superior. margin-top reserva ese espacio empujando TODO
   el hero hacia abajo (imagen, picture, media, contenido, botones) sin
   tocar su height/min-height — el hero conserva el alto completo que ya
   tenía (100svh/min-height de arriba) y el total pasa a ser altura del
   header + altura completa del hero, nunca menos.
   769px porque ahí es donde .tt-header deja de tener display:none (ver
   styles.css) — es el mismo corte que usan .tt-breadcrumb y .login-page
   para el mismo problema. --header-h es la única fuente de verdad (se
   define y redefine únicamente en styles.css); mobile no recibe ningún
   margen porque no usa este header. */
@media (min-width: 769px) {
  body.tt-home-premium .tt-hero {
    margin-top: var(--header-h);
  }
}

/* En tableta el header fijo ya queda reservado por el margen del hero.
   No sumar también el padding global del body: dejaba una franja vacía
   entre el header y el banner. */
@media (min-width: 768px) and (max-width: 1024px) {
  body.tt-home-premium {
    padding-top: 0 !important;
  }
}

/* Header y cookies de Inicio: fondos realmente sólidos. Estas reglas viven en
   la última hoja del home y usan selectores de alta especificidad para que ni
   el esquema publicado, ni estados de scroll, ni transparencias heredadas
   puedan volverlos translúcidos. */
html body.tt-home-premium #tt-header-desktop-tablet.tt-header,
html body.tt-home-premium #tt-header-desktop-tablet.tt-header.scrolled{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-bottom:1px solid #FDECF2!important;
  box-shadow:0 2px 18px rgba(248,170,202,.10)!important;
}
html body.tt-home-premium #tt-privacy-consent.tt-privacy-consent{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
  opacity:1!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  isolation:isolate!important;
  border:1px solid rgba(248,170,202,.12)!important;
  box-shadow:0 24px 64px rgba(38,24,30,.14),0 2px 8px rgba(38,24,30,.05)!important;
}
html body.tt-home-premium #tt-privacy-consent .tt-privacy-btn-primary{
  background:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  background-color:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  border-color:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  color:#222222!important;
  opacity:1!important;
}
html body.tt-home-premium #tt-privacy-consent .tt-privacy-btn-secondary{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
  border-color:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  color:var(--color-text-primary,#222222)!important;
  opacity:1!important;
}

/* El hero puede recibir PNG/WebP con transparencia desde el panel. Toda la
   cadena visual usa un respaldo sólido para que nunca se vea el contenido de
   atrás ni aparezcan zonas transparentes en desktop, tablet o mobile. */
.tt-home-premium .tt-hero,
.tt-home-premium .tt-hero-media,
.tt-home-premium .tt-hero-media picture,
.tt-home-premium .tt-hero-img{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
}
/* No usar una foto de muestra detrás del <img>: si la imagen publicada tarda
   un frame en decodificar, esa segunda foto es el origen del parpadeo. */
.tt-home-premium .tt-hero-media{
  background-image:none!important;
}
/* El hero no tiene estados de entrada ni capas de respaldo visibles: la
   portada estática del HTML es la primera y única composición que se pinta. */
.tt-home-premium .tt-hero-media{
  visibility:visible!important;
  opacity:1!important;
}
.tt-home-premium .tt-hero-media picture{
  width:100%;
  height:100%;
  overflow:hidden;
}
/* El tamaño y la posición se leen de las variables que configura Super Admin
   para cada dispositivo. No se fija contain/cover acá: desktop, tablet y
   mobile deben respetar de forma independiente su selección publicada. */
body.tt-home-premium #tt-hero-img{
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:var(--tt-hero-fit-desktop,cover)!important;
  object-position:var(--tt-hero-pos-desktop,center center)!important;
  transform:scale(var(--tt-hero-scale-desktop,1))!important;
  transform-origin:var(--tt-hero-pos-desktop,center center)!important;
}
@media(max-width:1023px){
  body.tt-home-premium #tt-hero-img{
    object-fit:var(--tt-hero-fit-tablet,cover)!important;
    object-position:var(--tt-hero-pos-tablet,center center)!important;
    transform:scale(var(--tt-hero-scale-tablet,1))!important;
    transform-origin:var(--tt-hero-pos-tablet,center center)!important;
  }
}
@media(max-width:768px){
  body.tt-home-premium #tt-hero-img{
    object-fit:var(--tt-hero-fit-mobile,cover)!important;
    object-position:var(--tt-hero-pos-mobile,center center)!important;
    transform:scale(var(--tt-hero-scale-mobile,1))!important;
    transform-origin:var(--tt-hero-pos-mobile,center center)!important;
  }
}
/* El botón secundario del hero no puede depender de un token transparente:
   siempre se ve como botón real sobre cualquier foto. */
body.tt-home-premium .tt-hero-actions .tt-btn-outline{
  background:#FFFFFF!important;
  background-color:#FFFFFF!important;
  border-color:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  color:var(--color-text-primary,#222222)!important;
  box-shadow:0 8px 24px rgba(38,24,30,.12)!important;
  opacity:1!important;
}
body.tt-home-premium .tt-hero-actions .tt-btn-outline:hover,
body.tt-home-premium .tt-hero-actions .tt-btn-outline:focus-visible{
  background:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  background-color:var(--tt-accent,var(--color-brand-primary, #F8AACA))!important;
  color:#222222!important;
}
.tt-home-premium .tt-trust-bar,
.tt-home-premium .section-sm,
.tt-home-premium .tt-collections-section,
.tt-home-premium .tt-products-section,
.tt-home-premium .tt-reviews-section,
.tt-home-premium .tt-footer{min-height:0}
.tt-home-premium .tt-trust-grid,.tt-home-premium .tt-collections-grid,.tt-home-premium #products-grid,.tt-home-premium .tt-reviews-grid{gap:clamp(14px,2.2vw,28px)}
.tt-home-premium .tt-collections-grid,
.tt-home-premium #products-grid{min-height:0}
.tt-home-premium .tt-collections-grid > .tt-coll-card{
  position:relative;
  z-index:1;
  pointer-events:auto;
  cursor:pointer;
}
.tt-home-premium .tt-collections-grid > .tt-coll-card > *{
  pointer-events:none;
}
.tt-home-premium [data-img-slot] img,.tt-home-premium .tt-coll-card-img img,.tt-home-premium .tt-card-img img{width:100%;height:100%;object-fit:contain}
.tt-home-premium .tt-editorial-img img,.tt-home-premium .tt-watch-feature-img img{object-fit:cover}
.tt-home-motion{opacity:0;transform:translateY(30px) scale(.985);filter:blur(6px);transition:opacity .62s ease,transform .62s cubic-bezier(.22,.61,.36,1),filter .62s ease;transition-delay:var(--tt-delay,0ms);will-change:opacity,transform,filter}
.tt-home-motion.is-visible{opacity:1;transform:translateY(0) scale(1);filter:blur(0)}
.tt-scroll-up .tt-home-motion:not(.is-visible){transform:translateY(-28px) scale(.985)}
.tt-home-motion.tt-home-hero{opacity:1;filter:blur(0);transform:none}
.tt-home-premium .tt-footer,.tt-home-premium .tt-footer *{color:#222222!important;opacity:1!important;text-shadow:none!important}
.tt-home-premium .tt-footer a{color:#222222!important;text-decoration-color:var(--color-brand-primary, #F8AACA)!important}
.tt-home-premium .tt-footer a:hover{color:var(--color-text-primary,#222222)!important}
.tt-home-premium .tt-footer a.tt-footer-wa,.tt-home-premium .tt-footer a.tt-footer-wa *{color:#222222!important;text-decoration-color:transparent!important}
.tt-home-premium .tt-footer a.tt-footer-wa:hover{color:#222222!important}
.tt-home-premium .tt-footer-col-title,.tt-home-premium .tt-footer-brand,.tt-home-premium .tt-footer-logo,.tt-home-premium .tt-footer h2,.tt-home-premium .tt-footer h3{color:#222222!important;font-weight:800!important;opacity:1!important}
.tt-home-premium .tt-footer-brand strong,.tt-home-premium .tt-footer-logo strong{font-weight:900!important;color:#222222!important}
@media(max-width:768px){.tt-home-premium .section{padding:56px 0}.tt-home-premium .section-sm{padding:42px 0}.tt-home-premium .tt-trust-grid,.tt-home-premium .tt-collections-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.tt-home-motion{transform:translateY(22px) scale(.99)}}
@media(max-width:380px){.tt-home-premium .section{padding:44px 0}.tt-home-premium .section-sm{padding:34px 0}}
@media(max-height:520px) and (orientation:landscape){.tt-home-premium .tt-hero-content{padding-top:86px;padding-bottom:38px}}
@media(prefers-reduced-motion:reduce){.tt-home-motion,.tt-home-motion.is-visible{opacity:1!important;transform:none!important;filter:none!important;transition:none!important}}

/* =============================================================
   PARTE 2B — continuidad visual completa del Inicio
   ============================================================= */

/* Mientras la fuente real de colecciones responde, no dejamos un texto pequeño
   flotando dentro de una sección prácticamente vacía. El estado ocupa una
   superficie estable y legible; cuando llegan las colecciones, el renderer lo
   reemplaza por las tarjetas reales sin alterar navegación ni datos. */
body.tt-home-premium .tt-collections-grid:has(> .tt-phase4-collections-state){
  grid-template-columns:minmax(0,1fr)!important;
}
body.tt-home-premium .tt-collections-grid > .tt-phase4-collections-state{
  min-height:clamp(190px,24vw,300px);
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:clamp(24px,4vw,42px)!important;
  border:1px solid var(--color-card-border,#FDECF2);
  border-radius:24px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.96),rgba(255,246,250,.96)),
    var(--color-background-surface,#FFFFFF);
  box-shadow:0 12px 34px rgba(248,170,202,.08);
  color:var(--color-text-secondary,#222222)!important;
  font-size:.86rem!important;
  font-weight:600;
  line-height:1.6;
}
body.tt-home-premium .tt-collections-grid > .tt-phase4-collections-state--info::before{
  content:"";
  width:34px;
  height:34px;
  border:3px solid var(--color-progress-track,#FDECF2);
  border-top-color:var(--color-progress-fill,var(--color-brand-primary, #F8AACA));
  border-radius:50%;
  animation:tt-home-collections-spin .8s linear infinite;
}
body.tt-home-premium .tt-collections-grid > .tt-phase4-collections-state--error{
  border-color:color-mix(in srgb,var(--color-brand-primary,var(--color-brand-primary, #F8AACA)) 28%,#FFFFFF);
}
@keyframes tt-home-collections-spin{to{transform:rotate(360deg)}}

@media(max-width:768px){
  body.tt-home-premium .tt-collections-grid > .tt-phase4-collections-state{
    min-height:180px;
    border-radius:18px;
  }
}

@media(prefers-reduced-motion:reduce){
  body.tt-home-premium .tt-collections-grid > .tt-phase4-collections-state--info::before{
    animation:none;
  }
}

/* =============================================================
   JERARQUÍA HOME — recorrido visual y de compra
   El DOM conserva la lógica existente; estas reglas solo ordenan el peso
   visual de cada bloque y mantienen el mismo lenguaje en todos los viewports.
   ============================================================= */
body.tt-home-premium .tt-trust-bar {
  position: relative;
  z-index: 1;
  padding: clamp(18px, 2.4vw, 30px) 0;
  border-bottom: 1px solid color-mix(in srgb, var(--color-card-border, #FDECF2) 72%, transparent);
}

body.tt-home-premium .tt-trust-grid {
  max-width: 1120px;
  margin-inline: auto;
  align-items: stretch;
}

body.tt-home-premium .tt-trust-item {
  min-height: 84px;
  padding: 14px clamp(10px, 1.8vw, 22px);
  border: 0;
  border-right: 1px solid color-mix(in srgb, var(--color-card-border, #FDECF2) 80%, transparent);
  border-radius: 0;
  box-shadow: none;
}

body.tt-home-premium .tt-trust-item:last-child { border-right: 0; }
body.tt-home-premium .tt-trust-icon { margin-bottom: 8px; }
body.tt-home-premium .tt-trust-title { font-size: .78rem; letter-spacing: .06em; }
body.tt-home-premium .tt-trust-desc { font-size: .72rem; line-height: 1.45; }

body.tt-home-premium .tt-collection-carousel {
  padding-block: clamp(58px, 7vw, 96px);
}

body.tt-home-premium #look-section {
  padding-block: clamp(54px, 7vw, 92px);
  background: var(--tt-section-gradient, none) var(--tt-section-background, #FDECF2) !important;
  border-block: 1px solid color-mix(in srgb, var(--color-card-border, #FDECF2) 70%, transparent);
}

body.tt-home-premium .tt-look-header,
body.tt-home-premium .tt-reviews-header {
  max-width: 680px;
  margin-inline: auto;
}

body.tt-home-premium .tt-editorial,
body.tt-home-premium .tt-watch-feature {
  max-width: 1180px;
  margin-inline: auto;
  border: 1px solid var(--color-card-border, #FDECF2);
  border-radius: clamp(18px, 2vw, 28px);
  overflow: hidden;
  box-shadow: 0 16px 42px rgba(92, 37, 57, .07);
}

body.tt-home-premium .tt-home-random-products {
  background: linear-gradient(180deg, rgba(252,240,245,.72), rgba(255,255,255,.96));
  border-block: 1px solid color-mix(in srgb, var(--color-card-border, #FDECF2) 70%, transparent);
}

body.tt-home-premium .tt-home-random-products-header { margin-bottom: clamp(22px, 3vw, 34px); }
body.tt-home-premium .tt-home-random-products-header .tt-section-desc { margin: 0 auto; text-align: center; }
body.tt-home-premium .tt-home-random-products-grid {
  grid-template-columns: none;
  grid-auto-flow: column;
  grid-auto-columns: minmax(220px, 1fr);
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scroll-snap-type: inline mandatory;
  scrollbar-width: thin;
  padding: 4px 4px 14px;
}
body.tt-home-premium .tt-home-random-products-grid > * { scroll-snap-align: start; min-width: 0; }
body.tt-home-premium .tt-home-random-products-actions {
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 24px;
}

body.tt-home-premium .tt-editorial-content,
body.tt-home-premium .tt-watch-feature-content {
  padding: clamp(30px, 5vw, 72px);
}

body.tt-home-premium .tt-editorial-title,
body.tt-home-premium .tt-watch-title {
  max-width: 15ch;
  text-wrap: balance;
}

body.tt-home-premium .tt-editorial-desc,
body.tt-home-premium .tt-watch-desc {
  max-width: 48ch;
  line-height: 1.75;
}

body.tt-home-premium .tt-reviews-section {
  padding-block: clamp(54px, 7vw, 90px);
}

@media (max-width: 900px) {
  body.tt-home-premium .tt-trust-item {
    border-right: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--color-card-border, #FDECF2) 80%, transparent);
  }
  body.tt-home-premium .tt-trust-item:nth-last-child(-n+2) { border-bottom: 0; }
}

@media (min-width: 769px) and (max-width: 960px) {
  body.tt-home-premium .tt-home-random-products-grid { grid-auto-columns: minmax(230px, 42vw); }
}

@media (max-width: 768px) {
  body.tt-home-premium .tt-trust-bar { padding-block: 10px; }
  body.tt-home-premium .tt-trust-grid { gap: 0; }
  body.tt-home-premium .tt-trust-item { min-height: 72px; padding: 12px 8px; }
  body.tt-home-premium .tt-trust-title { font-size: .7rem; }
  body.tt-home-premium .tt-trust-desc { font-size: .66rem; }
  body.tt-home-premium .tt-editorial,
  body.tt-home-premium .tt-watch-feature { border-radius: 18px; }
  body.tt-home-premium .tt-editorial-content,
  body.tt-home-premium .tt-watch-feature-content { padding: 32px 22px; }
  body.tt-home-premium .tt-editorial-desc,
  body.tt-home-premium .tt-watch-desc { line-height: 1.65; }
  body.tt-home-premium .tt-home-random-products-grid { grid-auto-columns: minmax(230px, 78vw); gap: 14px; }
  body.tt-home-premium .tt-home-random-products-actions { margin-top: 18px; }
}

/* Hero editorial Tintin. La imagen sigue siendo la elegida y recortada en
   Super Admin para desktop/laptop, tablet y mobile (variables --tt-hero-*). */
html body.tt-home-premium .tt-hero {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  grid-template-areas: "content media";
  grid-template-rows: auto;
  aspect-ratio: auto;
  align-items: center;
  gap: clamp(28px, 5vw, 76px);
  min-height: clamp(520px, 70svh, 760px);
  height: auto !important;
  padding: clamp(32px, 5vw, 72px) clamp(24px, 7vw, 104px) !important;
  overflow: clip;
  color: #222222;
  background: #FFFFFF !important;
}

html body.tt-home-premium .tt-hero .tt-hero-content {
  grid-area: content;
  position: relative !important;
  inset: auto !important;
  display: flex !important;
  height: auto !important;
  min-height: 0;
  align-items: flex-start;
  justify-content: center;
  width: 100%;
  max-width: 590px;
  margin: 0;
  padding: 0 !important;
  color: #222222 !important;
  pointer-events: auto;
}

html body.tt-home-premium .tt-hero-eyebrow {
  position: static !important;
  width: auto !important;
  height: auto !important;
  overflow: visible !important;
  margin: 0 0 clamp(16px, 2vw, 24px);
  color:var(--color-text-primary,#222222);
  font-size: .76rem;
  font-weight: 700;
  letter-spacing: .16em;
  line-height: 1.4;
}

html body.tt-home-premium .tt-hero-title {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  margin: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
  color: #222222 !important;
  font-family: 'Montserrat', sans-serif;
  font-size: clamp(3rem, 6.3vw, 6.3rem);
  font-weight: 650;
  letter-spacing: -.065em;
  line-height: .98;
  text-align: left;
  text-shadow: none;
  text-wrap: balance;
  clip: auto !important;
  white-space: normal !important;
  border: 0 !important;
}

html body.tt-home-premium .tt-hero-title-line--accent {
  display: block;
  margin: .08em 0 0;
  color:var(--color-text-primary,#222222);
  font: inherit;
  letter-spacing: inherit;
}

html body.tt-home-premium .tt-hero-subtitle {
  position: static !important;
  width: 100% !important;
  height: auto !important;
  max-width: 40ch;
  padding: 0 !important;
  overflow: visible !important;
  margin: clamp(20px, 2.5vw, 30px) 0 0;
  color: #222222 !important;
  font-size: clamp(1.02rem, 1.35vw, 1.2rem);
  line-height: 1.7;
  clip: auto !important;
  white-space: normal !important;
  border: 0 !important;
}

html body.tt-home-premium .tt-hero-actions {
  display: flex !important;
  position: static !important;
  align-items: center;
  gap: clamp(16px, 2vw, 24px);
  width: auto !important;
  height: auto !important;
  margin: clamp(26px, 3vw, 36px) 0 0 !important;
  pointer-events: auto;
}

html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta {
  display: inline-flex !important;
  position: static !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-width: 190px;
  min-height: 54px;
  padding: 0 26px !important;
  border: 1px solid var(--color-brand-primary, #F8AACA) !important;
  border-radius: 999px;
  color:#222222 !important;
  background: var(--color-brand-primary, #F8AACA) !important;
  box-shadow: 0 10px 24px rgba(248,170,202, .16) !important;
  font-size: .98rem !important;
  font-weight: 650;
  line-height: 1.2;
  text-decoration: none;
  white-space: nowrap;
  opacity: 1 !important;
  transform: none !important;
  animation: none !important;
}

html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta:hover,
html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta:focus-visible {
  color:#222222 !important;
  background: var(--color-brand-primary, #F8AACA) !important;
  box-shadow: 0 12px 28px rgba(248,170,202, .24) !important;
}

html body.tt-home-premium .tt-hero-actions .tt-hero-link {
  display: inline-flex !important;
  position: static !important;
  align-items: center;
  justify-content: center;
  width: auto !important;
  min-height: 44px;
  color:var(--color-text-primary,#222222) !important;
  font-size: .94rem;
  font-weight: 600;
  text-decoration: underline;
  text-decoration-color: #E8B9C9;
  text-underline-offset: 5px;
  white-space: nowrap;
  opacity: 1 !important;
}

html body.tt-home-premium .tt-hero-media {
  grid-area: media;
  position: relative !important;
  inset: auto !important;
  justify-self: stretch;
  align-self: center;
  width: 100% !important;
  min-width: 0;
  min-height: 0;
  height: auto !important;
  aspect-ratio: 2 / 1;
  overflow: hidden;
  border: 1px solid rgba(248,170,202, .1);
  border-radius: clamp(24px, 3vw, 40px);
  background: #FDECF2 !important;
  box-shadow: 0 24px 56px rgba(92, 37, 57, .12);
}

html body.tt-home-premium .tt-hero-media picture,
html body.tt-home-premium .tt-hero-media .tt-hero-img {
  display: block;
  width: 100%;
  height: 100%;
}

html body.tt-home-premium .tt-hero-media .tt-hero-img {
  object-fit: var(--tt-hero-fit-desktop, cover) !important;
  object-position: var(--tt-hero-pos-desktop, center center) !important;
  transform: scale(var(--tt-hero-scale-desktop, 1)) !important;
  transform-origin: var(--tt-hero-pos-desktop, center center) !important;
}

@media (min-width: 768px) and (max-width: 1120px) {
  html body.tt-home-premium .tt-hero {
    grid-template-columns: minmax(0, .92fr) minmax(0, 1fr);
    gap: clamp(22px, 3vw, 38px);
    min-height: 0;
    height: auto !important;
    padding: 36px clamp(24px, 4vw, 48px);
  }
  html body.tt-home-premium .tt-hero-title { font-size: clamp(2.8rem, 6vw, 4.8rem); }
  html body.tt-home-premium .tt-hero-media {
    min-height: 0;
    aspect-ratio: 3 / 2;
  }
  html body.tt-home-premium .tt-hero-media .tt-hero-img {
    object-fit: var(--tt-hero-fit-tablet, cover) !important;
    object-position: var(--tt-hero-pos-tablet, center center) !important;
    transform: scale(var(--tt-hero-scale-tablet, 1)) !important;
    transform-origin: var(--tt-hero-pos-tablet, center center) !important;
  }
}

@media (max-width: 767px), (max-width: 1120px) and (orientation: portrait) {
  html body.tt-home-premium .tt-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "content" "media";
    grid-template-rows: auto auto !important;
    gap: 26px;
    min-height: 0;
    height: auto !important;
    padding: clamp(32px, 8vw, 54px) 20px clamp(36px, 8vw, 56px) !important;
  }
  html body.tt-home-premium .tt-hero-content { max-width: 720px; }
  html body.tt-home-premium .tt-hero-eyebrow { margin-bottom: 14px; font-size: .68rem; }
  html body.tt-home-premium .tt-hero-title {
    font-size: clamp(2.8rem, 11vw, 5.2rem);
    line-height: .99;
  }
  html body.tt-home-premium .tt-hero-subtitle {
    max-width: 36ch;
    margin-top: 17px;
    font-size: 1rem;
  }
  html body.tt-home-premium .tt-hero-actions {
    flex-wrap: wrap;
    gap: 10px 16px;
    margin-top: 23px !important;
  }
  html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta {
    min-width: 176px;
    min-height: 50px;
  }
  html body.tt-home-premium .tt-hero-media {
    width: 100% !important;
    min-height: 0;
    height: auto !important;
    aspect-ratio: 4 / 5;
    border-radius: 24px;
  }
  html body.tt-home-premium .tt-hero-media .tt-hero-img {
    object-fit: var(--tt-hero-fit-mobile, cover) !important;
    object-position: var(--tt-hero-pos-mobile, center center) !important;
    transform: scale(var(--tt-hero-scale-mobile, 1)) !important;
    transform-origin: var(--tt-hero-pos-mobile, center center) !important;
  }
}

@media (min-width: 768px) and (max-width: 1120px) and (orientation: portrait) {
  html body.tt-home-premium .tt-hero-media {
    justify-self: center;
    width: min(100%, 560px) !important;
    aspect-ratio: 3 / 4;
  }
}

@media (prefers-reduced-motion: reduce) {
  html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta { transition: none !important; }
}

/* HERO A PANTALLA COMPLETA.
   El hero ocupa exactamente la primera pantalla (alto visible menos el
   encabezado fijo) y se arma con piezas sueltas: fondo degradado en CSS,
   rótulo "Bienvenida tintina" vectorial (.tt-hero-welcome), foto en su
   tarjeta (.tt-hero-media) y contenido editable en HTML.

   Cada disposición se dibujó sobre un lienzo de referencia y todas sus
   medidas van en la unidad --u, que es el menor entre "ancho disponible /
   ancho del lienzo" y "alto disponible / alto del lienzo". Así la
   composición completa escala para entrar en ancho Y en alto: nada queda
   cortado y la sección siguiente recién aparece al hacer scroll. Los textos
   tienen un mínimo legible; si en una ventana muy baja no entran, la sección
   crece en vez de recortar.

   · Desktop/laptop y tablet horizontal: rótulo y contenido a la izquierda,
     foto a la derecha.
   · Tablet vertical y celular: rótulo, foto y contenido apilados y centrados;
     el contenido queda debajo del borde inferior de la tarjeta. */
html body.tt-home-premium .tt-hero {
  --tt-hero-top: var(--header-h, 72px);
  --tt-hero-h: calc(100vh - var(--tt-hero-top));
  --u: min(calc(100vw / 1440), calc(var(--tt-hero-h) / 715));
  isolation: isolate;
  grid-template-columns: minmax(0, 1fr) auto;
  grid-template-areas: "welcome media" "content media";
  grid-template-rows: auto auto !important;
  align-content: center;
  align-items: center;
  gap: 0 calc(36 * var(--u));
  min-height: var(--tt-hero-h) !important;
  padding: calc(20 * var(--u)) max(calc(52 * var(--u)), calc((100% - 1600 * var(--u)) / 2)) calc(20 * var(--u)) max(calc(73 * var(--u)), calc((100% - 1600 * var(--u)) / 2)) !important;
}
@supports (height: 100svh) {
  html body.tt-home-premium .tt-hero { --tt-hero-h: calc(100svh - var(--tt-hero-top)); }
}
/* El sistema global de superficies deja .tt-hero transparente: el degradado
   del banner vive en esta capa propia, detrás de todo el contenido. */
html body.tt-home-premium .tt-hero::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(98deg, #FFD2E7 0%, #FFD2E7 26%, #FBBAE0 52%, #FCCDEA 78%, #FDE0F5 100%);
}
html body.tt-home-premium .tt-hero-welcome {
  grid-area: welcome;
  z-index: 2;
  position: relative;
  justify-self: start;
  align-self: end;
  width: calc(671 * var(--u));
  height: auto;
  max-width: none;
  margin: 0 0 0 calc(-6 * var(--u));
  pointer-events: none;
  -webkit-user-select: none;
  user-select: none;
}
/* !important en caja y tamaño: hero-bienvenida-inicio.css los fijaba con
   !important para la composición anterior (imagen a todo el ancho). */
html body.tt-home-premium .tt-hero-media {
  grid-area: media;
  justify-self: end;
  align-self: center;
  width: calc(581 * var(--u)) !important;
  aspect-ratio: 718 / 744 !important;
  border: 0;
  border-radius: calc(30 * var(--u)) !important;
  box-shadow: none;
}
html body.tt-home-premium .tt-hero .tt-hero-content {
  grid-area: content;
  z-index: 2;
  box-sizing: border-box;
  justify-self: start;
  align-self: start;
  align-items: flex-start;
  width: 100% !important;
  max-width: calc(665 * var(--u)) !important;
  margin: calc(30 * var(--u)) 0 0 !important;
  padding: 0 !important;
  text-align: left;
}
html body.tt-home-premium .tt-hero-eyebrow {
  justify-content: flex-start;
  margin-bottom: calc(13 * var(--u));
  font-size: max(10.5px, calc(12.2 * var(--u)));
}
html body.tt-home-premium .tt-hero-title {
  font-size: max(24px, calc(46 * var(--u)));
  line-height: 1.06;
  text-align: left;
}
/* El gris del subtítulo no se lee sobre el degradado rosa: dentro del
   banner usa el color principal de texto. */
html body.tt-home-premium .tt-hero-subtitle {
  margin-top: calc(18 * var(--u)) !important;
  color: var(--color-text-primary, #222222) !important;
  font-size: max(14px, calc(22 * var(--u))) !important;
  text-align: left;
}
html body.tt-home-premium .tt-hero-actions {
  flex-direction: row;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: calc(8 * var(--u)) calc(26 * var(--u));
  margin-top: calc(28 * var(--u)) !important;
}
html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta {
  min-width: 0;
  height: max(44px, calc(55 * var(--u))) !important;
  min-height: 0 !important;
  padding: 0 max(18px, calc(29 * var(--u))) !important;
  font-size: max(12.5px, calc(15.5 * var(--u))) !important;
}
html body.tt-home-premium .tt-hero-actions .tt-hero-link {
  font-size: max(12.5px, calc(20 * var(--u))) !important;
  text-decoration-color: rgba(34,34,34, .55);
}

/* Tablet horizontal — lienzo de referencia 1014 × 676. */
@media (min-width: 768px) and (max-width: 1120px) and (orientation: landscape) {
  html body.tt-home-premium .tt-hero {
    --u: min(calc(100vw / 1014), calc(var(--tt-hero-h) / 676));
    /* Ancho del conjunto centrado. En ventanas muy bajas la foto se achica con
       la altura, pero la columna de textos conserva 360 px: los textos ya
       están en su tamaño mínimo y, más angosta, sumarían renglones. */
    --tt-hero-comp: max(calc(1100 * var(--u)), calc(360px + 471 * var(--u)));
    column-gap: calc(22 * var(--u));
    padding: calc(16 * var(--u)) max(calc(42 * var(--u)), calc((100% - var(--tt-hero-comp)) / 2)) calc(16 * var(--u)) max(calc(51 * var(--u)), calc((100% - var(--tt-hero-comp)) / 2)) !important;
  }
  html body.tt-home-premium .tt-hero::before {
    background: linear-gradient(180deg, #FFD2E7 0%, #FFD2E7 10%, #F7A0CE 25%, #FCBFE2 50%, #FDD5EF 75%, #FDE6F8 90%, #FDEDFB 100%);
  }
  html body.tt-home-premium .tt-hero-welcome { width: calc(428 * var(--u)); margin-left: calc(-5 * var(--u)); }
  html body.tt-home-premium .tt-hero-media {
    width: calc(449 * var(--u)) !important;
    aspect-ratio: 677 / 923 !important;
    border-radius: calc(22 * var(--u)) !important;
  }
  html body.tt-home-premium .tt-hero .tt-hero-content {
    max-width: max(360px, calc(446 * var(--u))) !important;
    margin-top: calc(22 * var(--u)) !important;
  }
  html body.tt-home-premium .tt-hero-eyebrow { margin-bottom: calc(10 * var(--u)); font-size: max(10px, calc(11 * var(--u))); }
  html body.tt-home-premium .tt-hero-title { font-size: max(20px, calc(32.8 * var(--u))); }
  html body.tt-home-premium .tt-hero-subtitle { margin-top: calc(13 * var(--u)) !important; font-size: max(13px, calc(17 * var(--u))) !important; }
  html body.tt-home-premium .tt-hero-actions { gap: calc(6 * var(--u)) calc(18 * var(--u)); margin-top: calc(20 * var(--u)) !important; }
  html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta {
    height: max(44px, calc(48 * var(--u))) !important;
    padding: 0 max(16px, calc(24 * var(--u))) !important;
    font-size: max(12px, calc(14 * var(--u))) !important;
  }
  html body.tt-home-premium .tt-hero-actions .tt-hero-link { font-size: max(12px, calc(15 * var(--u))) !important; }
}

/* Tablet vertical y celular: una sola columna centrada. El rótulo monta
   apenas sobre el borde superior de la tarjeta, como en el arte original. */
@media (max-width: 767px),
       (min-width: 768px) and (max-width: 1120px) and (orientation: portrait) {
  html body.tt-home-premium .tt-hero {
    grid-template-columns: minmax(0, 1fr);
    grid-template-areas: "welcome" "media" "content";
    grid-template-rows: auto auto auto !important;
    justify-items: center;
    gap: 0;
  }
  html body.tt-home-premium .tt-hero-welcome { justify-self: center; align-self: auto; }
  html body.tt-home-premium .tt-hero-media { justify-self: center; }
  html body.tt-home-premium .tt-hero .tt-hero-content {
    justify-self: center;
    align-items: center;
    max-width: none !important;
    text-align: center;
  }
  html body.tt-home-premium .tt-hero-eyebrow { justify-content: center; }
  html body.tt-home-premium .tt-hero-title,
  html body.tt-home-premium .tt-hero-subtitle { text-align: center; }
  html body.tt-home-premium .tt-hero-actions { justify-content: center; }
}

/* Tablet vertical — lienzo de referencia 810 × 1100. */
@media (min-width: 768px) and (max-width: 1120px) and (orientation: portrait) {
  html body.tt-home-premium .tt-hero {
    --u: min(calc(100vw / 810), calc(var(--tt-hero-h) / 1100));
    padding: calc(40 * var(--u)) calc(32 * var(--u)) calc(36 * var(--u)) !important;
  }
  html body.tt-home-premium .tt-hero::before {
    background: linear-gradient(180deg, #FFD2E7 0%, #FFD2E7 10%, #F9A2D2 25%, #FBB8E0 50%, #FDD2EF 75%, #FDE4F7 90%, #FEEFFD 100%);
  }
  html body.tt-home-premium .tt-hero-welcome { width: calc(560 * var(--u)); margin: 0 0 calc(-18 * var(--u)); }
  html body.tt-home-premium .tt-hero-media {
    width: calc(566 * var(--u)) !important;
    aspect-ratio: 755 / 842 !important;
    border-radius: calc(20 * var(--u)) !important;
  }
  html body.tt-home-premium .tt-hero .tt-hero-content { margin-top: calc(22 * var(--u)) !important; }
  html body.tt-home-premium .tt-hero-eyebrow { margin-bottom: calc(9 * var(--u)); font-size: max(10px, calc(12 * var(--u))); }
  html body.tt-home-premium .tt-hero-title { font-size: max(20px, calc(30 * var(--u))); }
  html body.tt-home-premium .tt-hero-subtitle { margin-top: calc(10 * var(--u)) !important; font-size: max(13px, calc(17 * var(--u))) !important; }
  html body.tt-home-premium .tt-hero-actions { gap: calc(6 * var(--u)) calc(22 * var(--u)); margin-top: calc(16 * var(--u)) !important; }
  html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta {
    height: max(44px, calc(48 * var(--u))) !important;
    padding: 0 max(18px, calc(26 * var(--u))) !important;
    font-size: max(12.5px, calc(14.5 * var(--u))) !important;
  }
  html body.tt-home-premium .tt-hero-actions .tt-hero-link { font-size: max(12.5px, calc(15 * var(--u))) !important; }
}

/* Celular — lienzo de referencia 380 × 646 (deja lugar para un subtítulo de
   dos renglones). No hay encabezado arriba; abajo flotan la barra de
   navegación y, 16 px por encima, el botón de WhatsApp. La composición se
   calcula sobre el alto visible menos esa franja (barra + 52 px), así los
   botones del hero nunca quedan debajo de ninguno de los dos, y el fondo
   llega hasta el borde de la pantalla.

   Rótulo y foto comparten la fila "art", que ocupa lo que sobra de la
   primera pantalla después de los textos. Los textos tienen un tamaño mínimo
   legible, así que en pantallas bajas la única pieza que se achica es el
   arte (rótulo y foto juntos, en la misma proporción). Las dos piezas van
   posicionadas dentro de esa fila para que su tamaño natural no la estire.
   Recién por debajo de 112 px de arte la sección crece en vez de achicar. */
@media (max-width: 767px) {
  html body.tt-home-premium .tt-hero {
    --tt-hero-top: 0px;
    --tt-hero-nav: calc(var(--tt-mobile-nav-clearance, 100px) + 52px);
    --u: min(calc(100vw / 380), calc((var(--tt-hero-h) - var(--tt-hero-nav)) / 646));
    grid-template-areas: "art" "content";
    grid-template-rows: minmax(112px, calc(420 * var(--u))) auto !important;
    height: auto !important;
    min-height: 0 !important;
    /* La composición termina después de sus acciones; la barra flotante
       conserva su propia reserva global y no infla el banner. */
    padding: calc(18 * var(--u)) 20px 24px !important;
  }
  html body.tt-home-premium .tt-hero::before {
    background: linear-gradient(180deg, #FFD2E7 0%, #FFD2E7 10%, #F79ECD 25%, #FAB6DD 50%, #FCCFEB 75%, #FCDFF3 90%, #FDEAF9 100%);
  }
  html body.tt-home-premium .tt-hero-welcome {
    grid-area: art;
    position: absolute;
    left: 50%;
    bottom: min(74.1%, calc(311.5 * var(--u)));
    width: auto;
    height: min(25.9%, calc(108.9 * var(--u)));
    margin: 0;
    transform: translateX(-50%);
  }
  html body.tt-home-premium .tt-hero-media {
    grid-area: art;
    position: absolute !important;
    inset: auto auto 0 50% !important;
    width: auto !important;
    height: min(77.2%, calc(324.5 * var(--u))) !important;
    aspect-ratio: 787 / 798 !important;
    border-radius: calc(13 * var(--u)) !important;
    transform: translateX(-50%);
  }
  html body.tt-home-premium .tt-hero .tt-hero-content { margin-top: calc(14 * var(--u)) !important; }
  html body.tt-home-premium .tt-hero-eyebrow { margin-bottom: calc(6 * var(--u)); font-size: max(9.5px, calc(10.5 * var(--u))); }
  html body.tt-home-premium .tt-hero-title { font-size: max(18px, calc(24 * var(--u))); line-height: 1.08; }
  html body.tt-home-premium .tt-hero-subtitle { margin-top: calc(6 * var(--u)) !important; font-size: max(12px, calc(14 * var(--u))) !important; }
  html body.tt-home-premium .tt-hero-actions { gap: 2px 8px; margin-top: calc(14 * var(--u)) !important; }
  html body.tt-home-premium .tt-hero-actions .tt-btn.tt-hero-cta {
    height: max(44px, calc(46 * var(--u))) !important;
    padding: 0 max(12px, calc(18 * var(--u))) !important;
    font-size: max(11.5px, calc(13 * var(--u))) !important;
  }
  html body.tt-home-premium .tt-hero-actions .tt-hero-link { font-size: max(11.5px, calc(13 * var(--u))) !important; }
}
/* Celular acostado: la pantalla es tan baja que apilar arte y textos no entra.
   El arte pasa a la izquierda y los textos a la derecha, en una sola fila que
   ocupa la primera pantalla. --tt-hero-art es el alto del conjunto rótulo +
   foto: todo el alto de la fila, sin pasarse del ancho de su columna. */
@media (max-width: 767px) and (orientation: landscape) and (max-height: 479px) {
  html body.tt-home-premium .tt-hero {
    --tt-hero-art: min(100%, calc((100vw - 56px) * .53));
    grid-template-columns: minmax(0, .7fr) minmax(0, 1fr);
    grid-template-areas: "art content";
    grid-template-rows: minmax(112px, 1fr) !important;
    column-gap: 16px;
    padding: 10px 20px var(--tt-hero-nav) !important;
  }
  html body.tt-home-premium .tt-hero-welcome {
    bottom: calc(var(--tt-hero-art) * .741);
    height: calc(var(--tt-hero-art) * .259);
  }
  html body.tt-home-premium .tt-hero-media { height: calc(var(--tt-hero-art) * .772) !important; }
  html body.tt-home-premium .tt-hero .tt-hero-content { align-self: center; margin-top: 0 !important; }
}
/* Entre 768 y 1024 px el encabezado fijo de tablet mide 84 px. */
@media (min-width: 768px) and (max-width: 1024px) {
  html body.tt-home-premium .tt-hero { --tt-hero-top: 84px; }
}

/* Rosa solicitado para la bienvenida y el titular. El contorno oscuro
   mantiene las letras legibles sobre el fondo claro. */
html body.tt-home-premium .tt-hero-title,
html body.tt-home-premium .tt-hero-title .tt-hero-title-line {
  color: #FFD2E7 !important;
  -webkit-text-stroke: 1px #222222;
  paint-order: stroke fill;
  text-shadow: 0 1px 1px rgba(34, 34, 34, .35);
}

/* Banners originales completos; los enlaces coinciden con el arte entregado. */
html body.tt-home-premium #hero[data-tt-banner] {
  display:block!important; position:relative!important; width:100%!important;
  height:auto!important; min-height:0!important; max-height:none!important;
  padding:0!important; margin:0!important; overflow:hidden!important;
  background:#FFF0F7!important;
}
html body.tt-home-premium #hero[data-tt-banner]::before { display:none!important; }
html body.tt-home-premium #hero[data-tt-banner] .tt-hero-welcome { display:none!important; }
html body.tt-home-premium #hero[data-tt-banner] .tt-hero-media {
  position:relative!important; inset:auto!important; width:100%!important;
  height:auto!important; min-height:0!important; max-width:none!important;
  aspect-ratio:1280/600!important; margin:0!important; padding:0!important;
  border:0!important; border-radius:0!important; box-shadow:none!important; transform:none!important;
}
html body.tt-home-premium #hero[data-tt-banner] picture { display:block; width:100%; height:100%; }
html body.tt-home-premium #hero[data-tt-banner] #tt-hero-img {
  display:block!important; width:100%!important; height:100%!important;
  max-width:none!important; object-fit:var(--tt-hero-fit-desktop,contain)!important; transform:scale(var(--tt-hero-scale-desktop,1))!important;
  border-radius:0!important;
}
html body.tt-home-premium #hero[data-tt-banner] .tt-hero-content { position:absolute!important; inset:0!important; width:100%!important; height:100%!important; max-width:none!important; margin:0!important; padding:0!important; pointer-events:none; }
html body.tt-home-premium #hero[data-tt-banner] :is(.tt-hero-title,.tt-hero-eyebrow,.tt-hero-subtitle) { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; clip-path:inset(50%); margin:0!important; padding:0!important; }
html body.tt-home-premium #hero[data-tt-banner] .tt-hero-actions { display:contents!important; }
html body.tt-home-premium #hero[data-tt-banner] .tt-hero-actions a {
  position:absolute!important; display:block!important; pointer-events:auto;
  font-size:0!important; color:transparent!important; background:transparent!important;
  border:0!important; box-shadow:none!important; padding:0!important; margin:0!important;
  min-width:0!important; min-height:44px!important; transform:none!important;
}
html body.tt-home-premium #hero[data-tt-banner] .tt-hero-cta { left:13%!important; top:60%!important; width:29%!important; height:9%!important; }
html body.tt-home-premium #hero[data-tt-banner] .tt-hero-link { left:17%!important; top:76%!important; width:21%!important; height:10%!important; }
html body.tt-home-premium #hero[data-tt-banner] .tt-hero-actions a:focus-visible { outline:3px solid #222!important; outline-offset:2px; }
@media(min-width:768px) and (max-width:1120px) {
  html body.tt-home-premium #hero[data-tt-banner] .tt-hero-media { aspect-ratio:1536/1024!important; }
  html body.tt-home-premium #hero[data-tt-banner] #tt-hero-img { object-fit:var(--tt-hero-fit-tablet,contain)!important; transform:scale(var(--tt-hero-scale-tablet,1))!important; }
  html body.tt-home-premium #hero[data-tt-banner] .tt-hero-cta { left:9%!important; top:55%!important; width:35%!important; height:8%!important; }
  html body.tt-home-premium #hero[data-tt-banner] .tt-hero-link { left:14%!important; top:74%!important; width:24%!important; height:9%!important; }
}
@media(max-width:767px) {
  html body.tt-home-premium #hero[data-tt-banner] .tt-hero-media { aspect-ratio:1024/1366!important; }
  html body.tt-home-premium #hero[data-tt-banner] #tt-hero-img { object-fit:var(--tt-hero-fit-mobile,contain)!important; transform:scale(var(--tt-hero-scale-mobile,1))!important; }
  html body.tt-home-premium #hero[data-tt-banner] .tt-hero-content { position:relative!important; inset:auto!important; height:auto!important; padding:16px!important; }
  html body.tt-home-premium #hero[data-tt-banner] .tt-hero-actions { display:flex!important; flex-wrap:wrap; justify-content:center; gap:12px; }
  html body.tt-home-premium #hero[data-tt-banner] .tt-hero-actions a { position:static!important; display:flex!important; align-items:center; justify-content:center; width:auto!important; height:auto!important; min-height:44px!important; padding:12px 16px!important; font-size:14px!important; color:#222!important; }
  html body.tt-home-premium #hero[data-tt-banner] .tt-hero-cta { background:#F8AACA!important; border-radius:24px!important; }
}
/* El rosa claro del archivo continúa hasta el comienzo del bloque rosa intenso. */
html body.tt-home-premium #hero[data-tt-banner]::after {
  content:""; position:absolute; inset:0; background:#FFF0F7; z-index:-1; pointer-events:none;
}
html body.tt-home-premium #hero[data-tt-banner] + .tt-trust-bar {
  --tt-section-start:#FFF0F7!important;
  --tt-flow-fade:90px;
}
@media(min-width:1025px) {
  html body.tt-home-premium #hero[data-tt-banner] { margin-top:var(--header-h,88px)!important; }
}
@media(min-width:768px) and (max-width:1024px) {
  html body.tt-home-premium #hero[data-tt-banner] { margin-top:84px!important; }
}


/* css/pages/home/carrusel-colecciones.css */
/* TINTIN — Carrusel infinito de colecciones de la portada. */
.tt-collection-carousel {
  --tt-carousel-gutter: clamp(56px, 4.5vw, 76px);
  --tt-carousel-gap: clamp(10px, 0.85vw, 14px);
  background: #fff2f6;
  box-sizing: border-box;
  color:#222222;
  max-width: 100%;
  overflow: hidden;
  padding: clamp(36px, 3.4vw, 52px) 0 clamp(36px, 3.7vw, 56px);
}

body.tt-home-premium .tt-collection-carousel { background: #fff2f6 !important; }

.tt-collection-carousel__heading {
  align-items: center;
  display: flex;
  flex-direction: column;
  margin: 0 auto clamp(16px, 1.5vw, 22px);
  padding-inline: var(--tt-carousel-gutter);
  text-align: center;
}

body.tt-home-premium .tt-collection-carousel .tt-collection-carousel__heading .tt-section-title {
  color: var(--color-text-title, #222222) !important;
  font-size: clamp(1.8rem, 2.35vw, 2.7rem);
  font-weight: 750;
  letter-spacing: -0.045em;
  line-height: 1;
  margin: 0;
  text-align: center;
}

body.tt-home-premium .tt-collection-carousel .tt-collection-carousel__description {
  /* var(--color-brand-primary, #F8AACA) daba 3.3:1 sobre #fff2f6; este tono de la misma familia da 4.7:1. */
  color:var(--color-text-primary,#222222) !important;
  font-size: clamp(0.58rem, 0.63vw, 0.72rem);
  font-weight: 700;
  letter-spacing: 0.16em;
  line-height: 1.4;
  margin: 9px 0 0;
  text-transform: uppercase;
}

.tt-collection-carousel__stage { position: relative; }

.tt-collection-carousel__controls {
  inset: 0;
  pointer-events: none;
  position: absolute;
  z-index: 4;
}

.tt-collection-carousel__button {
  align-items: center;
  background: #f8aaca;
  border: 0;
  border-radius: 999px;
  color:#222222 !important;
  cursor: pointer;
  display: inline-flex;
  font: inherit;
  font-size: 1.05rem;
  height: 38px;
  justify-content: center;
  pointer-events: auto;
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  transition: background-color 180ms ease, transform 180ms ease;
  width: 38px;
}

.tt-collection-carousel__button:first-child { left: max(16px, calc(var(--tt-carousel-gutter) / 2 - 19px)); }
.tt-collection-carousel__button:last-child { right: max(16px, calc(var(--tt-carousel-gutter) / 2 - 19px)); }

.tt-collection-carousel__button:hover {
  background: var(--color-brand-primary, #F8AACA);
  transform: translateY(-50%) scale(1.06);
}

.tt-collection-carousel__button svg {
  display: block;
  height: 17px;
  overflow: visible;
  width: 17px;
}

.tt-collection-carousel__button path {
  fill: none;
  stroke: #fff !important;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-width: 2.55;
}

.tt-collection-carousel__button:focus-visible,
.tt-collection-carousel__viewport:focus-visible,
.tt-collection-card:focus-visible {
  outline: 3px solid rgba(222, 88, 139, 0.5);
  outline-offset: 3px;
}

.tt-collection-carousel__viewport {
  box-sizing: border-box;
  cursor: grab;
  margin-inline: var(--tt-carousel-gutter);
  max-width: calc(100% - (var(--tt-carousel-gutter) * 2));
  overflow: hidden;
  touch-action: pan-y pinch-zoom;
  user-select: none;
  width: calc(100% - (var(--tt-carousel-gutter) * 2));
}

.tt-collection-carousel__viewport.is-dragging { cursor: grabbing; }

.tt-collection-carousel__viewport--native {
  cursor: auto;
  overflow-x: auto;
  overscroll-behavior-inline: contain;
  scrollbar-width: thin;
  touch-action: pan-x pan-y pinch-zoom;
}

.tt-collection-carousel__viewport--native .tt-collection-carousel__track {
  transform: none !important;
  will-change: auto;
}

.tt-collection-carousel__track {
  align-items: stretch;
  display: flex;
  gap: var(--tt-carousel-gap);
  min-height: clamp(330px, 26.5vw, 410px);
  transform: translate3d(0, 0, 0);
  width: max-content;
  will-change: transform;
}

.tt-collection-card {
  background: #fff;
  border: 1px solid rgba(215, 133, 164, 0.08);
  border-radius: 8px;
  box-shadow: 0 7px 18px rgba(122, 64, 87, 0.045);
  color:var(--color-text-primary,#222222);
  display: flex;
  flex: 0 0 calc((100vw - (var(--tt-carousel-gutter) * 2) - (var(--tt-carousel-gap) * 4)) / 5);
  flex-direction: column;
  min-width: 0;
  overflow: hidden;
  position: relative;
  text-decoration: none;
  transform: translateZ(0);
}

.tt-collection-card__media {
  aspect-ratio: 4 / 5;
  background: #fff;
  flex: 1 1 auto;
  min-height: 0;
  overflow: hidden;
  position: relative;
}

.tt-collection-card__image {
  height: 100%;
  inset: 0;
  object-fit: contain;
  padding: clamp(7px, 0.8vw, 12px);
  position: absolute;
  transform: scale(1.04) translate3d(0, 0, 0);
  transform-origin: center;
  width: 100%;
  will-change: transform;
}

html body:not(:has(.adm-main)) .tt-collection-card,
html body:not(:has(.adm-main)) .tt-collection-card:hover,
html body:not(:has(.adm-main)) .tt-collection-card * { color:var(--color-text-primary,#222222) !important; }

.tt-collection-card__content {
  align-items: center;
  background: rgba(255, 255, 255, 0.97);
  display: flex;
  flex: 0 0 clamp(42px, 3.6vw, 54px);
  justify-content: center;
  padding: 9px 12px;
  position: relative;
  z-index: 2;
}

.tt-collection-card__title {
  color:var(--color-text-primary,#222222);
  font-size: clamp(0.68rem, 0.77vw, 0.88rem);
  font-weight: 750;
  letter-spacing: -0.015em;
  line-height: 1.15;
  margin: 0;
  overflow-wrap: anywhere;
  text-align: center;
  text-transform: uppercase;
}

.tt-collection-carousel__state {
  align-items: center;
  background: rgba(255, 255, 255, 0.78);
  border: 1px solid rgba(215, 133, 164, 0.15);
  border-radius: 8px;
  box-sizing: border-box;
  color: #986176;
  display: flex;
  justify-content: center;
  min-height: clamp(330px, 26.5vw, 410px);
  padding: 32px;
  text-align: center;
  width: min(640px, calc(100vw - (var(--tt-carousel-gutter) * 2)));
}

/* Sin colecciones (vacío o error): aviso compacto y centrado, sin flechas. */
.tt-collection-carousel--state .tt-collection-carousel__controls { display: none; }
.tt-collection-carousel--state .tt-collection-carousel__viewport { cursor: auto; }
.tt-collection-carousel--state .tt-collection-carousel__track {
  justify-content: center;
  min-height: 0;
  width: 100%;
}
.tt-collection-carousel--state .tt-collection-carousel__state {
  background: #fff;
  min-height: 0;
  padding: 28px 24px;
  width: min(560px, 100%);
}

.tt-collection-carousel__pagination {
  align-items: center;
  display: flex;
  gap: 5px;
  justify-content: center;
  margin: clamp(17px, 1.6vw, 23px) var(--tt-carousel-gutter) 0;
  min-height: 8px;
}

.tt-collection-carousel__dot {
  background: #f7bfd3;
  border-radius: 999px;
  height: 6px;
  transition: background-color 180ms ease, width 180ms ease;
  width: 6px;
}

.tt-collection-carousel__dot.is-active {
  background: var(--color-brand-primary, #F8AACA);
  width: 22px;
}

@media (max-width: 1023px) {
  .tt-collection-carousel {
    --tt-carousel-gutter: clamp(30px, 5vw, 46px);
    --tt-carousel-gap: 10px;
  }

  .tt-collection-carousel__track { min-height: clamp(300px, 47vw, 390px); }
  .tt-collection-card { flex-basis: clamp(210px, 36vw, 280px); }
  .tt-collection-carousel__state { min-height: clamp(300px, 47vw, 390px); }
}

@media (max-width: 640px) {
  .tt-collection-carousel {
    --tt-carousel-gutter: clamp(56px, 16vw, 64px);
    --tt-carousel-gap: 11px;
    padding-block: 34px 38px;
  }

  .tt-collection-carousel__heading { margin-bottom: 18px; }

  body.tt-home-premium .tt-collection-carousel .tt-collection-carousel__heading .tt-section-title {
    font-size: clamp(1.75rem, 8vw, 2.05rem);
    line-height: 1.04;
  }

  body.tt-home-premium .tt-collection-carousel .tt-collection-carousel__description {
    font-size: 0.56rem;
    letter-spacing: 0.12em;
    margin-top: 8px;
  }

  .tt-collection-carousel__button {
    display: inline-flex;
    height: 40px;
    width: 40px;
  }

  .tt-collection-carousel__button svg {
    height: 18px;
    width: 18px;
  }

  .tt-collection-carousel__button:first-child { left: 16px; }
  .tt-collection-carousel__button:last-child { right: 16px; }

  .tt-collection-carousel__track { min-height: clamp(176px, 47vw, 190px); }

  .tt-collection-card {
    border-radius: 10px;
    flex-basis: calc((100vw - (var(--tt-carousel-gutter) * 2) - var(--tt-carousel-gap)) / 2);
  }

  .tt-collection-card__media { aspect-ratio: 1 / 1; }

  .tt-collection-card__image { padding: 4px; }

  .tt-collection-card__content {
    flex-basis: 42px;
    padding: 7px 5px;
  }

  .tt-collection-card__title { font-size: 0.64rem; }
  .tt-collection-carousel__state { min-height: clamp(176px, 47vw, 190px); }

  .tt-collection-carousel__pagination {
    gap: 4px;
    margin-top: 16px;
  }

  .tt-collection-carousel__dot {
    height: 5px;
    width: 5px;
  }

  .tt-collection-carousel__dot.is-active { width: 18px; }
}

@media (prefers-reduced-motion: reduce) {
  .tt-collection-carousel__button,
  .tt-collection-carousel__dot,
  .tt-collection-card { transition: none; }

  .tt-collection-carousel__viewport {
    cursor: auto;
    overflow-x: auto;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    touch-action: pan-x pan-y pinch-zoom;
  }

  .tt-collection-carousel__track {
    scroll-snap-type: x mandatory;
    transform: none !important;
    will-change: auto;
  }

  .tt-collection-card { scroll-snap-align: start; }

  .tt-collection-card__image {
    transform: scale(1.01) !important;
    will-change: auto;
  }
}


/* css/pages/home/edicion-editorial-inicio.css */
/* Portada editorial: ordena el peso de los bloques existentes sin añadir
   contenido ni animaciones costosas. La experiencia busca aire, precisión y
   una lectura de joyería contemporánea en desktop, tablet y mobile. */

body.tt-home-premium {
  --tt-home-ink: #34282d;
  --tt-home-muted: #806b73;
  --tt-home-line: rgba(137, 77, 101, .16);
  --tt-home-rose: #fff3f7;
}

body.tt-home-premium :is(.tt-collection-carousel, .tt-look-section, .tt-home-random-products, .tt-reviews-section) {
  position: relative;
}

body.tt-home-premium .tt-section-sub,
body.tt-home-premium .tt-editorial-eyebrow,
body.tt-home-premium .tt-watch-eyebrow {
  margin-bottom: 10px;
  color:var(--color-text-primary,#222222) !important;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .19em;
  line-height: 1.3;
  text-transform: uppercase;
}

body.tt-home-premium .tt-section-title {
  color: var(--tt-home-ink) !important;
  font-size: clamp(1.48rem, 2.45vw, 2.5rem);
  font-weight: 650;
  letter-spacing: -.045em;
  line-height: 1.08;
  text-wrap: balance;
}

body.tt-home-premium .tt-section-desc,
body.tt-home-premium .tt-collection-carousel__description {
  color: var(--tt-home-muted) !important;
  font-size: clamp(.78rem, 1vw, .92rem);
  letter-spacing: .015em;
  line-height: 1.7;
}

/* La confianza acompaña al hero en vez de competir con él. */
body.tt-home-premium .tt-trust-bar {
  background: #fff !important;
  border-bottom: 1px solid var(--tt-home-line);
  padding-block: clamp(14px, 1.9vw, 22px);
}

body.tt-home-premium .tt-trust-grid { max-width: 1080px; }

body.tt-home-premium .tt-trust-item {
  min-height: 70px;
  padding: 8px clamp(10px, 1.7vw, 20px);
  justify-content: center;
}

body.tt-home-premium .tt-trust-icon {
  margin-bottom: 6px;
  opacity: .88;
  transform: scale(.88);
}

body.tt-home-premium .tt-trust-title {
  color: var(--tt-home-ink) !important;
  font-size: .68rem;
  font-weight: 800;
  letter-spacing: .095em;
  text-transform: uppercase;
}

body.tt-home-premium .tt-trust-desc {
  color: var(--tt-home-muted) !important;
  font-size: .68rem;
  line-height: 1.45;
}

/* Colecciones y productos: superficies calmas, foco en imagen y producto. */
body.tt-home-premium .tt-collection-carousel { padding-block: clamp(64px, 8vw, 116px); }
body.tt-home-premium .tt-collection-carousel__heading { max-width: 580px; margin-inline: auto; }
body.tt-home-premium .tt-collection-carousel__description { margin-top: 12px; }

body.tt-home-premium #look-section {
  padding-block: clamp(64px, 8vw, 112px);
  background: var(--tt-section-gradient, none) var(--tt-section-background, #FDECF2) !important;
}

body.tt-home-premium .tt-look-header { margin-bottom: clamp(30px, 4vw, 48px); }

body.tt-home-premium .tt-home-random-products {
  padding-block: clamp(68px, 8vw, 118px);
  background: linear-gradient(180deg, var(--tt-home-rose), #fff 72%) !important;
}

body.tt-home-premium .tt-home-random-products-header { max-width: 600px; margin-inline: auto; }
body.tt-home-premium .tt-home-random-products-grid { padding-block: 8px 18px; }

body.tt-home-premium .tt-product-card {
  border: 0 !important;
  border-radius: 16px;
  box-shadow: 0 12px 30px rgba(78, 40, 52, .07) !important;
  overflow: hidden;
}

body.tt-home-premium .tt-product-card:hover { box-shadow: 0 18px 38px rgba(78, 40, 52, .11) !important; }

/* Dos campañas editoriales, no dos tarjetas de catálogo. */
body.tt-home-premium :is(.tt-editorial, .tt-watch-feature) {
  max-width: min(1180px, calc(100% - 40px));
  margin-block: clamp(16px, 3vw, 32px);
  border: 0 !important;
  border-radius: clamp(20px, 2.4vw, 32px);
  box-shadow: 0 20px 56px rgba(77, 37, 50, .075) !important;
}

body.tt-home-premium :is(.tt-editorial-content, .tt-watch-feature-content) {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  justify-content: center;
  padding: clamp(38px, 6vw, 82px);
}

body.tt-home-premium :is(.tt-editorial-title, .tt-watch-title) {
  margin-block: 0 18px;
  color: var(--tt-home-ink) !important;
  font-size: clamp(1.82rem, 3.3vw, 3.5rem);
  font-weight: 620;
  letter-spacing: -.06em;
  line-height: .98;
  text-wrap: balance;
}

body.tt-home-premium :is(.tt-editorial-desc, .tt-watch-desc) {
  margin: 0 0 28px;
  color: var(--tt-home-muted) !important;
  font-size: clamp(.88rem, 1.18vw, 1rem);
  line-height: 1.75;
}

/* Acciones con una misma silueta y un hover casi imperceptible. */
body.tt-home-premium :is(.tt-editorial, .tt-watch-feature, .tt-home-random-products) .tt-btn {
  min-height: 48px;
  padding: 12px 22px;
  border-radius: 999px;
  box-shadow: none;
  font-size: .72rem;
  font-weight: 800;
  letter-spacing: .105em;
  text-transform: uppercase;
}

body.tt-home-premium :is(.tt-editorial, .tt-watch-feature, .tt-home-random-products) .tt-btn:not(.tt-btn-outline) {
  background: var(--tt-accent, var(--color-brand-primary, #F8AACA)) !important;
  border-color: var(--tt-accent, var(--color-brand-primary, #F8AACA)) !important;
  color:#222222 !important;
}

body.tt-home-premium :is(.tt-editorial, .tt-watch-feature, .tt-home-random-products) .tt-btn-outline {
  background: transparent !important;
  border-color: rgba(248,170,202, .35) !important;
  color:var(--color-text-primary,#222222) !important;
}

@media (hover: hover) {
  body.tt-home-premium :is(.tt-editorial, .tt-watch-feature, .tt-home-random-products) .tt-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 10px 18px rgba(248,170,202, .14);
  }
}

/* Opiniones: prueba social refinada y más fácil de leer. */
body.tt-home-premium .tt-reviews-section {
  padding-block: clamp(68px, 8vw, 116px);
  background: #fff !important;
}

body.tt-home-premium .tt-reviews-header { margin-bottom: clamp(30px, 4vw, 48px); }

body.tt-home-premium .tt-review-card {
  position: relative;
  min-height: 100%;
  border: 1px solid var(--tt-home-line) !important;
  border-radius: 18px;
  box-shadow: none !important;
  padding: clamp(24px, 3vw, 34px);
}

body.tt-home-premium .tt-review-card::before {
  content: "“";
  position: absolute;
  top: 12px;
  right: 20px;
  color: rgba(248,170,202, .16);
  font-size: 4.5rem;
  line-height: 1;
}

body.tt-home-premium .tt-review-stars { font-size: .72rem; letter-spacing: .15em; }
body.tt-home-premium .tt-review-text { color: var(--tt-home-ink) !important; font-size: .9rem; line-height: 1.78; }
body.tt-home-premium .tt-review-avatar { background: var(--tt-home-rose) !important; }

/* El pie sigue siendo completo, pero se lee como cierre de marca. */
body.tt-home-premium .tt-footer { border: 0 !important; }
body.tt-home-premium .tt-footer-tagline { max-width: 28ch; color: var(--tt-home-muted) !important; line-height: 1.7; }

@media (max-width: 768px) {
  body.tt-home-premium .tt-trust-bar { padding-block: 8px; }
  body.tt-home-premium .tt-trust-item { min-height: 66px; padding: 8px 6px; }
  body.tt-home-premium .tt-trust-icon { margin-bottom: 3px; transform: scale(.76); }
  body.tt-home-premium .tt-trust-desc { display: none; }
  body.tt-home-premium .tt-trust-title { font-size: .61rem; letter-spacing: .065em; }
  body.tt-home-premium .tt-collection-carousel,
  body.tt-home-premium #look-section,
  body.tt-home-premium .tt-home-random-products,
  body.tt-home-premium .tt-reviews-section { padding-block: 58px; }
  body.tt-home-premium :is(.tt-editorial, .tt-watch-feature) { max-width: calc(100% - 28px); margin-block: 14px; }
  body.tt-home-premium :is(.tt-editorial-content, .tt-watch-feature-content) { padding: 34px 24px 38px; }
  body.tt-home-premium :is(.tt-editorial-title, .tt-watch-title) { font-size: clamp(1.75rem, 9vw, 2.35rem); margin-bottom: 14px; }
  body.tt-home-premium :is(.tt-editorial-desc, .tt-watch-desc) { margin-bottom: 22px; line-height: 1.65; }
  body.tt-home-premium .tt-home-random-products-actions { gap: 9px; }
  body.tt-home-premium .tt-home-random-products-actions .tt-btn { min-width: min(100%, 210px); }
  body.tt-home-premium .tt-review-card { padding: 24px 22px; }
}

@media (max-width: 380px) {
  body.tt-home-premium .tt-trust-title { font-size: .56rem; letter-spacing: .035em; }
  body.tt-home-premium :is(.tt-editorial, .tt-watch-feature) { max-width: calc(100% - 20px); }
}

body.tt-home-premium .tt-collection-carousel { padding-block:clamp(28px,4vw,52px); }
body.tt-home-premium .tt-footer .tt-footer-wa svg { color:#168541!important; }
/* El arte editorial ocupa el alto de su columna sin bandas alrededor. */
html:root body.tt-home-premium .tt-watch-feature { border: 0 !important; }
body.tt-home-premium .tt-watch-feature-img { align-self: stretch; min-height: 0; border: 0; }
body.tt-home-premium .tt-watch-feature-img :is(.tt-img-placeholder, picture, img) {
  display: block;
  width: 100%;
  height: 100%;
  min-height: 0;
  border: 0;
}
body.tt-home-premium .tt-watch-feature-img img { object-fit: cover; }


/* css/quality/movimiento.css */
:root {
  --mo-enter: cubic-bezier(.16, 1, .3, 1);
  --mo-exit: cubic-bezier(.4, 0, 1, 1);
  --mo-press: cubic-bezier(.2, .8, .2, 1);

  --mo-tap: 120ms;
  --mo-hover: 220ms;
  --mo-panel: 320ms;
  --mo-reveal: 520ms;

  --mo-lift: -3px;
  --mo-press-scale: .985;
  --mo-stagger: 45ms;
}

@media (max-width: 768px) {
  :root {
    --mo-hover: 180ms;
    --mo-panel: 260ms;
    --mo-reveal: 420ms;
    --mo-lift: -2px;
  }
}

.tt-btn,
.ck-btn,
.tt-tabbar-btn,
.tt-cart-checkout-btn,
.tt-qty-btn,
.ck-qty-btn,
.login-google,
.login-email-btn,
.tt-interactive-control {
  transition:
    transform var(--mo-hover) var(--mo-press),
    opacity var(--mo-hover) var(--mo-press),
    background-color var(--mo-hover) var(--mo-press),
    border-color var(--mo-hover) var(--mo-press),
    color var(--mo-hover) var(--mo-press);
}

.tt-btn:active,
.ck-btn:active,
.tt-tabbar-btn:active,
.tt-cart-checkout-btn:active,
.tt-qty-btn:active,
.ck-qty-btn:active,
.login-google:active,
.login-email-btn:active {
  transform: scale(var(--mo-press-scale));
  transition-duration: var(--mo-tap);
}

@media (hover: hover) and (pointer: fine) {
  .tt-btn:hover,
  .ck-btn:hover,
  .tt-cart-checkout-btn:hover,
  .login-google:hover,
  .login-email-btn:hover {
    transform: translate3d(0, var(--mo-lift), 0);
  }
}

.tt-product-card,
.tt-coll-card,
.tt-card,
.tt-category-card,
.tt-review-card,
.tt-trust-item {
  transition:
    transform var(--mo-hover) var(--mo-enter),
    box-shadow var(--mo-hover) var(--mo-enter);
}

/* La imagen escala dentro de su marco: el contenedor no cambia de tamano,
   asi que no hay reflow. */
.tt-product-card img,
.tt-coll-card img,
.tt-category-card img {
  transition: transform var(--mo-panel) var(--mo-enter);
  will-change: auto;
}

@media (hover: hover) and (pointer: fine) {
  .tt-product-card:hover img,
  .tt-coll-card:hover img,
  .tt-category-card:hover img {
    transform: scale(1.04);
  }
}

.tt-cart-drawer,
.tt-search-panel,
.tt-account-panel,
.tt-collections-sheet,
.tt-mobile-menu,
.tt-tablet-menu,
.tt-dropdown {
  transition:
    transform var(--mo-panel) var(--mo-enter),
    opacity var(--mo-panel) var(--mo-enter),
    visibility var(--mo-panel) step-end;
}

.tt-cart-drawer.open,
.tt-search-panel.open,
.tt-account-panel.open,
.tt-collections-sheet.open,
.tt-mobile-menu.open,
.tt-tablet-menu.open,
.tt-dropdown.open {
  transition:
    transform var(--mo-panel) var(--mo-enter),
    opacity var(--mo-panel) var(--mo-enter),
    visibility 0s;
}

/* Escalonado del reveal: lo consume js/quality/revelado-desplazamiento-global.js via
   --tt-r-delay. Se corta a los seis primeros para que el ultimo elemento
   nunca espere mas de un cuarto de segundo. */
.tt-auto-reveal:nth-child(1) { --tt-r-delay: 0ms; }
.tt-auto-reveal:nth-child(2) { --tt-r-delay: var(--mo-stagger); }
.tt-auto-reveal:nth-child(3) { --tt-r-delay: calc(var(--mo-stagger) * 2); }
.tt-auto-reveal:nth-child(4) { --tt-r-delay: calc(var(--mo-stagger) * 3); }
.tt-auto-reveal:nth-child(5) { --tt-r-delay: calc(var(--mo-stagger) * 4); }
.tt-auto-reveal:nth-child(n + 6) { --tt-r-delay: calc(var(--mo-stagger) * 5); }

@media (prefers-reduced-motion: reduce) {
  :root {
    --mo-tap: 0ms;
    --mo-hover: 0ms;
    --mo-panel: 0ms;
    --mo-reveal: 0ms;
    --mo-lift: 0px;
    --mo-press-scale: 1;
    --mo-stagger: 0ms;
  }

  .tt-product-card:hover img,
  .tt-coll-card:hover img,
  .tt-category-card:hover img {
    transform: none;
  }
}

/* Header compacto al bajar. Solo transform y sombra: la altura no cambia,
   asi que el contenido de abajo no se mueve. */
.tt-header,
.tt-header-tablet {
  transition:
    transform var(--mo-panel) var(--mo-enter),
    box-shadow var(--mo-panel) var(--mo-enter);
}

.tt-header.tt-header-compact,
.tt-header-tablet.tt-header-compact {
  box-shadow: 0 6px 24px rgba(38, 24, 30, .07);
}

.tt-header .tt-logo-img,
.tt-header-tablet .tt-logo-img {
  transform-origin: left center;
  transition: transform var(--mo-panel) var(--mo-enter);
}

.tt-header-compact .tt-logo-img {
  transform: scale(.92);
}

/* Indicador del tabbar: lo posiciona JS con translateX. Sin transicion salta
   de pestana a pestana. */
.tt-mobile-nav-indicator,
.tt-mobile-nav-halo {
  transition: transform var(--mo-panel) var(--mo-enter);
}

@media (prefers-reduced-motion: reduce) {
  .tt-header-compact .tt-logo-img { transform: none; }
  .tt-mobile-nav-indicator,
  .tt-mobile-nav-halo { transition: none; }
}


/* css/quality/contraste.css */
/* Correcciones de contraste medidas. Minimo aplicado 4.5:1 (WCAG AA texto). */

/* La regla de marca pinta de blanco todo lo que cuelga de .login-google,
   incluida la G que vive dentro de una caja blanca: quedaba invisible. */
.login-google .login-google-g,
.login-google-icon .login-google-g {
  color: #1558d6 !important;
  font-weight: 800;
}

/* El rosa claro aprobado requiere texto malva: contraste 4.69:1. */
button.tt-inline-theme-cleaned,
[style*="background"].tt-interactive-control,
#btn-send-otp,
#btn-verify-otp {
  color:#222222 !important;
}

.tt-interactive-control svg,
button.tt-inline-theme-cleaned svg {
  color: inherit;
  stroke: currentColor;
}

/* Los controles sin fondo de marca conservan el texto oscuro: la regla de
   arriba solo debe aplicar cuando el fondo es el rosa. */
.tt-interactive-control:not([style*="background"]):not(.tt-btn):not(.ck-btn):not(#btn-send-otp):not(#btn-verify-otp) {
  color: var(--color-text-primary, #222222);
}

/* El rosa de marca sobre fondos claros daba 3.30:1. Este tono da 8.56:1
   sobre blanco y mantiene la identidad. */
.perfil-btn-outline,
.perfil-wa-box,
a.perfil-btn.perfil-btn-outline,
a.perfil-wa-box {
  color:var(--color-text-primary,#222222);
}

/* Gris de apoyo: 3.51:1 sobre blanco. Este da 6.43:1. */
.login-hint,
.login-legal,
.login-box small,
.login-box .login-muted {
  color:#222222;
}

/* Pie público "© … TINTIN ACCESORIOS": #a56680 sobre #FFFFFF daba 4.12:1 con
   texto de ~10px. #222222 es el tono más cercano que llega a 4.65:1. Misma
   especificidad que la regla del tema; gana por cargarse después. */
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] .tt-footer-bottom {
  color: #222222 !important;
}

/* El pie se integra con la sección anterior por un degradado suave. No se
   usa una línea horizontal: mantiene el contraste del contenido sin cortar
   visualmente la página. */
body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"],
html[data-tt-footer-bg-custom] body:not(:has(.adm-main)) .tt-footer[data-tt-footer="unified"] {
  --tt-footer-surface: #fff;
  background: linear-gradient(180deg, rgba(255,255,255,0) 0%, #fff 34%) !important;
  border-top: 0 !important;
}

/* El contenedor .tt-editorial queda transparente por sistema-superficies;
   el panel que se ve rosado es el de texto. */
body.tt-home-premium :is(.tt-editorial-content, .tt-watch-feature-content),
html body.tt-catalog-maintenance .cat-hero,
.tt-profile-hero,
.tt-about-date,
.tt-legal-note {
  background: #fff !important;
}

/* "obligatoria" en el formulario de reseñas: 4.43:1 con ~11px. Mismo gris
   de apoyo que login (6.43:1 sobre blanco). */
.tt-rating-label em {
  color:#222222;
}

/* Indicador "+" del acordeón del pie: solo donde el acordeón pliega
   (≤480px, mismo corte que acordeon-pie-pagina.js). Arriba de eso quedaba
   pegado al título ("Tienda+") sin hacer nada. Abierto, gira a "×". */
@media (min-width: 481px) {
  .tt-footer .tt-footer-accordion-icon { display: none; }
}
@media (max-width: 480px) {
  .tt-footer .tt-footer-accordion-icon { display: inline-block; transition: transform .2s ease; }
  .tt-footer .tt-footer-accordion-toggle[aria-expanded="true"] .tt-footer-accordion-icon { transform: rotate(45deg); }
}


/* css/theme/sistema-superficies-tintin.css */
/*
 * TINTIN — Sistema de superficies 2026
 *
 * Capa visual compartida para la tienda y Super Admin. No modifica contratos
 * de datos, rutas ni eventos: sólo ordena superficies, jerarquía, contraste
 * y comportamiento responsive. Se carga al final de cada shell para que sea
 * la última autoridad visual sin depender de estilos inline de cada módulo.
 */
:root {
  --tt-ui-canvas: #FDECF2;
  --tt-ui-surface: #ffffff;
  --tt-ui-surface-soft: var(--color-brand-accent, #FDECF2);
  --tt-ui-ink: var(--color-text-primary, #222222);
  --tt-ui-muted: var(--color-text-primary, #222222);
  --tt-ui-pink: var(--color-brand-primary, #F8AACA);
  --tt-ui-pink-deep: var(--color-brand-primary, #F8AACA);
  --tt-ui-pink-soft: var(--color-brand-accent, #FDECF2);
  --tt-ui-line: #FDECF2;
  --tt-ui-shadow: 0 18px 48px rgba(125, 38, 77, .11);
  --tt-ui-radius-xl: 28px;
  --tt-ui-radius-lg: 20px;
  --tt-ui-radius-md: 14px;
  --tt-ui-gutter: clamp(16px, 3vw, 32px);
  --tt-ui-inset: clamp(16px, 2.2vw, 28px);
  --tt-ui-gap: clamp(12px, 2vw, 24px);
}

/* Public surfaces ------------------------------------------------------- */
html body:not(:has(.adm-main)) {
  background: var(--tt-ui-canvas) !important;
  color: var(--tt-ui-ink) !important;
}

html body:not(:has(.adm-main)) :is(
  .tt-hero, .tt-trust-bar, .tt-collection-carousel, .tt-look-section,
  .tt-editorial, .tt-home-random-products, .tt-watch-feature,
  .tt-products-section, .tt-related-section, .tt-colls-page-section,
  .tt-product-page, .section
) {
  background: transparent !important;
}

html body:not(:has(.adm-main)) :is(
  .tt-collection-carousel, .tt-look-section, .tt-home-random-products,
  .tt-related-section, .tt-colls-page-section, .tt-reviews-product
) {
  content-visibility: visible;
  contain-intrinsic-size: auto;
}

html body:not(:has(.adm-main)) :is(
  .tt-trust-item, .tt-look-card, .tt-editorial, .tt-watch-feature,
  .tt-product-card, .tt-coll-card, .tt-coll-page-card, .tt-review-card,
  .tt-product-info-panel, .tt-product-actions-panel, .tt-specs-block,
  .tt-reviews-summary, .tt-review-form, .tt-review-thread-message
) {
  border: 1px solid var(--tt-ui-line) !important;
  border-radius: var(--tt-ui-radius-lg) !important;
  box-shadow: 0 10px 30px rgba(125, 38, 77, .07) !important;
}

html body:not(:has(.adm-main)) :is(
  .tt-product-card, .tt-coll-card, .tt-coll-page-card
) {
  overflow: hidden;
  background: var(--tt-ui-surface) !important;
  transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
}

html body:not(:has(.adm-main)) :is(
  .tt-product-card, .tt-coll-card, .tt-coll-page-card
):hover {
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--tt-ui-pink) 45%, white) !important;
  box-shadow: var(--tt-ui-shadow) !important;
}

html body:not(:has(.adm-main)) :is(
  .tt-section-title, .tt-page-hero-title, .tt-related-heading,
  .tt-editorial-title, .tt-watch-title
) {
  color:var(--color-text-primary,#222222) !important;
  letter-spacing: -.025em;
}

html body:not(:has(.adm-main)) :is(
  .tt-collection-carousel__heading, .tt-look-header, .tt-products-header,
  .tt-related-header, .tt-products-intro
) {
  max-width: 1180px;
  margin-inline: auto;
}

html body:not(:has(.adm-main)) :is(
  .tt-collection-carousel__description, .tt-section-desc,
  .tt-page-hero-sub, .tt-section-sub, .tt-review-date,
  .tt-review-thread-meta time
) {
  color: var(--tt-ui-muted) !important;
}

html body:not(:has(.adm-main)) :is(
  .tt-coll-card-label, .tt-product-badge, .tt-product-status,
  .tt-review-store-like
) {
  background: var(--tt-ui-pink-soft) !important;
  color:var(--color-text-primary,#222222) !important;
  border-color: var(--tt-ui-line) !important;
}

html body:not(:has(.adm-main)) :is(
  .tt-review-comment, .tt-review-thread-text, .tt-review-textarea,
  .tt-review-reply-input
) {
  color: var(--tt-ui-ink) !important;
  line-height: 1.65;
}

html body:not(:has(.adm-main)) :is(
  .tt-review-form, .tt-review-card, .tt-review-thread-message
) {
  background: var(--tt-ui-surface) !important;
}

html body:not(:has(.adm-main)) :is(
  .tt-btn, .tt-btn-primary-full, .tt-cart-checkout-btn,
  .login-email-btn, .login-google, .ck-btn
) {
  min-height: 44px;
  border-radius: 999px !important;
  font-weight: 800;
  letter-spacing: .01em;
}

/* .login-google queda fuera: login-maintenance.css lo define blanco con texto
   de marca (y la G en su caja); pintarlo rosa dejaba la etiqueta en 1.6:1. */
html body:not(:has(.adm-main)) :is(
  .tt-btn, .tt-btn-primary-full, .tt-cart-checkout-btn,
  .login-email-btn, .ck-btn
):not(.tt-btn-outline):not(.tt-btn-outline-full) {
  background: var(--tt-ui-pink) !important;
  border-color: var(--tt-ui-pink) !important;
  color:#222222 !important;
}

/* Super Admin: panel hierarchy, menu and engagement modules ------------- */
html body:has(.adm-main) {
  background: #FDECF2 !important;
  color:#222222 !important;
}

html body:has(.adm-main) .adm-sidebar {
  background: #fff !important;
  border-right: 1px solid #FDECF2 !important;
  box-shadow: 10px 0 28px rgba(125, 38, 77, .06) !important;
  z-index: 300 !important;
}

html body:has(.adm-main) .adm-sidebar-logo {
  min-height: 104px;
  padding: 24px 24px 18px !important;
  border-bottom: 1px solid #f2dfe7 !important;
  background: linear-gradient(180deg, #fff 0%, #FDECF2 100%) !important;
}

html body:has(.adm-main) .adm-sidebar-toggle {
  z-index: 3;
  box-shadow: 0 6px 16px rgba(125, 38, 77, .12);
}

html body:has(.adm-main) .adm-main {
  min-width: 0;
  background: #FDECF2 !important;
}

html body:has(.adm-main) .adm-topbar {
  min-height: 76px;
  background: #fff !important;
  border-bottom: 1px solid #FDECF2 !important;
  box-shadow: 0 5px 20px rgba(125, 38, 77, .05);
  z-index: 200;
}

html body:has(.adm-main) .adm-content {
  max-width: 1600px;
  margin-inline: auto;
  padding: clamp(20px, 3vw, 42px) clamp(16px, 3vw, 44px) 64px !important;
}

html body:has(.adm-main) :is(.adm-card, .adm-table-wrap, .adm-modal, .adm-img-card) {
  border: 1px solid #FDECF2 !important;
  border-radius: var(--tt-ui-radius-lg) !important;
  box-shadow: 0 12px 36px rgba(125, 38, 77, .07) !important;
}

html body:has(.adm-main) .adm-card-head {
  min-height: 64px;
  padding: 18px 22px !important;
  background: linear-gradient(180deg, #fff 0%, #fffafc 100%) !important;
  border-bottom: 1px solid #f2dfe7 !important;
}

html body:has(.adm-main) .adm-card-body {
  padding: clamp(18px, 2.2vw, 28px) !important;
}

html body:has(.adm-main) :is(.adm-engagement-toolbar, .adm-engagement-list,
  .adm-notification-card, .adm-section-header, .adm-bulk-toolbar) {
  border-radius: var(--tt-ui-radius-md) !important;
}

html body:has(.adm-main) :is(.adm-engagement-toolbar, .adm-bulk-toolbar) {
  background: #fff1f6 !important;
  border: 1px solid #FDECF2 !important;
  padding: 12px !important;
}

html body:has(.adm-main) .adm-table-wrap {
  overflow-x: auto;
  background: #fff !important;
}

html body:has(.adm-main) :is(.adm-table, .adm-table th, .adm-table td) {
  border-color: #f2dfe7 !important;
}

html body:has(.adm-main) .adm-table thead th {
  background: #fbe0ea !important;
  color:var(--color-text-primary,#222222) !important;
  font-size: 11px;
  letter-spacing: .055em;
  text-transform: uppercase;
}

html body:has(.adm-main) .adm-nav-item {
  min-height: 44px;
  margin: 3px 12px;
  border-radius: 12px;
}

html body:has(.adm-main) .adm-nav-item.active {
  background: #fbe0ea !important;
  color:var(--color-text-primary,#222222) !important;
  box-shadow: inset 3px 0 0 var(--color-brand-primary, #F8AACA);
}

html body:has(.adm-main) :is(.adm-btn-primary, .adm-btn-save) {
  min-height: 42px;
  border-radius: 999px !important;
  background: var(--color-brand-primary, #F8AACA) !important;
  border-color: var(--color-brand-primary, #F8AACA) !important;
  color:#222222 !important;
  font-weight: 800;
}

html body:has(.adm-main) :is(.adm-btn, .adm-btn-outline) {
  min-height: 42px;
  border-radius: 999px !important;
}

html body:has(.adm-main) :is(.adm-input, .adm-select, .adm-textarea) {
  min-height: 42px;
  border-radius: 12px !important;
  border-color: #e9cbd8 !important;
}

html body:has(.adm-main) :is(.adm-input, .adm-select, .adm-textarea):focus {
  border-color: var(--color-brand-primary, #F8AACA) !important;
  box-shadow: 0 0 0 3px rgba(196, 63, 112, .17) !important;
}

/* Responsive contract: menu never occupies the logo zone and toolbars can
   wrap/scroll without forcing the page wider than the viewport. */
@media (max-width: 900px) {
  html body:has(.adm-main) .adm-content { padding: 18px 16px 48px !important; }
  html body:has(.adm-main) .adm-card-head { align-items: flex-start; gap: 12px; flex-wrap: wrap; }
  html body:has(.adm-main) :is(.adm-engagement-toolbar, .adm-bulk-toolbar) { overflow-x: auto; }
}

@media (max-width: 760px) {
  html body:not(:has(.adm-main)) :is(.tt-product-card, .tt-coll-card, .tt-coll-page-card,
    .tt-review-card, .tt-review-form) { border-radius: 16px !important; }
  html body:has(.adm-main) .adm-sidebar-logo { min-height: 76px; padding: 16px 14px 12px !important; }
  html body:has(.adm-main) .adm-content { padding: 14px 12px 38px !important; }
  html body:has(.adm-main) .adm-card { border-radius: 16px !important; }
  html body:has(.adm-main) .adm-card-body { padding: 16px !important; }
  html body:has(.adm-main) .adm-nav-item { margin-inline: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  html body:not(:has(.adm-main)) :is(.tt-product-card, .tt-coll-card, .tt-coll-page-card) {
    transition: none !important;
  }
}

:is(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 3px solid rgba(196, 63, 112, .45) !important;
  outline-offset: 2px;
}

/* Tarjetas compartidas de producto: la etiqueta (Nuevo, Agotado o texto libre del panel) va arriba a la
   izquierda y el corazón (44 px, a 12 px del borde) arriba a la derecha. Un texto largo se corta con
   puntos suspensivos antes del corazón en lugar de meterse debajo. */
.tt-product-card .tt-product-badge {
  max-width: calc(100% - 76px);
  white-space: normal;
  overflow-wrap: anywhere;
}

/* Espaciado público compartido. Las tarjetas con imagen reciben el inset
   en su cuerpo; las tarjetas de texto lo reciben en la superficie completa. */
html body:not(:has(.adm-main)) :is(.tt-product-info, .tt-card-info,
  .tt-coll-page-body, .tt-look-card-body, .tt-look-card-foot) {
  padding: clamp(12px, 1.8vw, 20px);
  min-width: 0;
}
html body:not(:has(.adm-main)) :is(.tt-info-block, .tt-contact-info-item,
  .tt-trust-item, .tt-review-card, .tt-review-form, .tt-reviews-summary,
  .tt-review-thread-message, .cat-top, .perfil-card) {
  padding: var(--tt-ui-inset);
  min-width: 0;
}
html body:not(:has(.adm-main)) :is(.tt-editorial-content, .tt-watch-feature-content,
  .ck-panel-body) {
  padding: var(--tt-ui-inset);
}
/* No truncar información para forzar tarjetas de igual altura. */
html body:not(:has(.adm-main)) :is(.tt-product-name, .tt-card-name,
  .tt-coll-page-name, .tt-coll-page-desc, .tt-look-card-name,
  .tt-cart-item-name, .tt-review-comment) {
  -webkit-line-clamp: unset;
  white-space: normal;
  overflow-wrap: anywhere;
  max-height: none;
}
html body:not(:has(.adm-main)) :is(.tt-product-name, .tt-card-name,
  .tt-coll-page-name, .tt-coll-page-desc, .tt-look-card-name) {
  display: block;
  overflow: visible;
}
html body:not(:has(.adm-main)) :is(.tt-product-actions, .tt-card-actions, .tt-card-btns,
  .tt-collections-actions, .tt-404-actions) {
  gap: 10px;
  flex-wrap: wrap;
}
html body:not(:has(.adm-main)) :is(.tt-product-actions, .tt-card-actions, .tt-card-btns) > :is(a, button) {
  min-height: 44px;
  white-space: normal;
}
/* El ancho mínimo del CTA editorial no corresponde a los botones de tarjeta
   que comparten la misma sección de descubrimiento en la portada. */
html body:not(:has(.adm-main)) .tt-home-random-products .tt-product-actions .tt-btn {
  min-width: 0;
  max-width: 100%;
  padding-inline: 12px;
  white-space: normal;
}
html body:not(:has(.adm-main)) :is(.tt-coll-page-body, .tt-product-info,
  .tt-card-info) > :last-child { margin-bottom: 0; }
html body:not(:has(.adm-main)) :is(.tt-info-block, .tt-review-card,
  .tt-contact-info-item) > :first-child { margin-top: 0; }
html body:not(:has(.adm-main)) :is(.tt-info-block, .tt-review-card,
  .tt-contact-info-item) > :last-child { margin-bottom: 0; }

/* Los botones y formularios conservan sus contornos de estado. El bloque
   de características/acciones no necesita otro marco dentro de la ficha. */
html body:not(:has(.adm-main)) :is(.tt-specs-block, .tt-product-actions-panel) {
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  background: transparent !important;
}
html body:not(:has(.adm-main)) .tt-cart-item-info { min-width: 0; }
html body:not(:has(.adm-main)) .tt-cart-item-img { flex-shrink: 0; }
html body:not(:has(.adm-main)) :is(.tt-cart-header, .tt-cart-body, .tt-cart-footer) {
  padding-inline: var(--tt-ui-gutter);
}
html body:not(:has(.adm-main)) :is(.tt-colls-page-grid, .tt-products-grid):not(:has(.tt-skeleton, .tt-coll-page-skeleton)) {
  min-height: 0;
}
@media (max-width: 480px) {
  html body:not(:has(.adm-main)) .tt-product-actions {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
  }
  html body:not(:has(.adm-main)) .tt-product-actions > :is(a, button) {
    width: 100%;
    flex: none;
  }
  html body:not(:has(.adm-main)) .cat-top { gap: 12px; }
}

/* Paleta y continuidad compartidas por todas las páginas, incluido el panel.
   Sólo se difumina el fondo: texto, imágenes y controles conservan nitidez. */
:root {
  --tt-flow-light: var(--color-brand-accent, #FDECF2);
  --tt-flow-pink: var(--color-brand-primary, #F8AACA);
  --tt-flow-join: color-mix(in srgb, var(--tt-flow-light) 50%, var(--tt-flow-pink));
  --tt-flow-fade: 70px;
  --tt-flow-canvas: linear-gradient(180deg, var(--tt-flow-light), var(--tt-flow-light));
}

html:root body,
html:root body :is(main, .cat-wrap, .login-page, .ck-body, .perfil-wrap, .tt-404-wrap, .adm-main, .adm-content, .adm-section) {
  background: var(--tt-flow-canvas) var(--tt-flow-light) !important;
  color: var(--color-text-primary, #222222) !important;
}

/* Cada bloque conserva su rosa pleno. Sólo 70 px de cada extremo se mezclan.
   Los bloques ocultos por hidden o display:none no cuentan en la secuencia. */
html:root :is(body, main, [role="main"], .cat-wrap) > :is(section:not([role="dialog"]), .cat-layout, .tt-footer):not([hidden]):not([style*="display: none"]):not([style*="display:none"]) {
  --tt-section-background: var(--color-brand-accent, #FDECF2);
  --tt-footer-logo-filter: url("#tt-brand-logo-tint");
  --tt-section-start: var(--tt-flow-join);
  --tt-section-end: var(--tt-flow-join);
  --tt-section-gradient: linear-gradient(180deg,
    var(--tt-section-start) 0%,
    var(--tt-section-background) min(var(--tt-flow-fade), 25%),
    var(--tt-section-background) max(calc(100% - var(--tt-flow-fade)), 75%),
    var(--tt-section-end) 100%);
  background: var(--tt-section-gradient) var(--tt-section-background) !important;
  color: var(--color-text-primary, #222222) !important;
  border-block-color: transparent !important;
  border-block-width: 0 !important;
  box-shadow: 0 1px 0 var(--tt-section-end) !important;
}

html:root :is(body, main, [role="main"], .cat-wrap) > :nth-child(even of :is(section:not([role="dialog"]), .cat-layout, .tt-footer):not([hidden]):not([style*="display: none"]):not([style*="display:none"])) {
  --tt-section-background: var(--color-brand-primary, #F8AACA);
  --tt-footer-logo-filter: url("#tt-brand-logo-tint-light");
}

html:root :is(body, main, [role="main"], .cat-wrap) > :nth-child(1 of :is(section:not([role="dialog"]), .cat-layout, .tt-footer):not([hidden]):not([style*="display: none"]):not([style*="display:none"])) {
  --tt-section-start: var(--tt-section-background);
}

html:root :is(body, main, [role="main"], .cat-wrap) > :nth-last-child(1 of :is(section:not([role="dialog"]), .cat-layout, .tt-footer):not([hidden]):not([style*="display: none"]):not([style*="display:none"])) {
  --tt-section-end: var(--tt-section-background);
}

html:root body .tt-footer {
  border-top-color: transparent !important;
}

html:root body :is(.tt-trust-item, .tt-look-card, .tt-review-card, .tt-editorial, .tt-watch-feature) {
  background: var(--color-background-surface, #FFFFFF) !important;
  color: var(--color-text-primary, #222222) !important;
}

/* Una capa continua llena el viewport aunque el bloque esté en un container. */
html:root body [data-tt-flow-block] {
  isolation: isolate;
  overflow: visible !important;
  opacity: 1 !important;
  transform: none !important;
}
html:root body [data-tt-flow-block] > [data-tt-flow-background] {
  position: absolute;
  z-index: -1;
  pointer-events: none;
  left: var(--tt-flow-left, 0px);
  width: var(--tt-flow-width, 100%);
  top: calc(-1 * var(--tt-flow-before, 0px));
  bottom: calc(-1 * var(--tt-flow-after, 0px));
  border-radius: 0;
  background: linear-gradient(180deg,
    var(--tt-section-start) 0%,
    var(--tt-section-background) min(var(--tt-flow-fade), 25%),
    var(--tt-section-background) max(calc(100% - var(--tt-flow-fade)), 75%),
    var(--tt-section-end) 100%) !important;
}
html:root body #hero .tt-hero-media { background: transparent !important; }
html:root body { overflow-x: clip; }
html:root body :is(main,.cat-wrap):has([data-tt-flow-block]) {
  background: none !important; transform: none !important; opacity: 1 !important;
}
html:root body :is(.perfil-wrap,.login-page,.ck-body,[data-tt-visual-zone]):has([data-tt-flow-block]) {
  background: none !important; overflow: visible !important; transform: none !important;
}

/* La foto y el cuerpo forman una tarjeta blanca continua, con aire interior. */
html:root body:not(:has(.adm-main)) :is(.tt-product-card,.cat-product-card,.tt-card:has(.tt-card-img-wrap)) { border-radius:24px !important; overflow:hidden; background:#FFFFFF !important; }
html:root body:not(:has(.adm-main)) :is(.tt-product-card,.cat-product-card,.tt-card:has(.tt-card-img-wrap)) :is(.tt-product-img,.tt-card-img-wrap) { background:#FFFFFF !important; padding:clamp(10px,1.4vw,18px); }
html:root body:not(:has(.adm-main)) :is(.tt-product-card,.cat-product-card,.tt-card:has(.tt-card-img-wrap)) :is(.tt-product-img-real,.tt-card-img) { object-fit:contain; mix-blend-mode:normal; background:#FFFFFF !important; }

/* Marca contrastada sobre ambos rosas, siempre sin tarjeta de fondo. */
html:root body .tt-footer .tt-logo-link { display:inline-flex; align-items:center; justify-content:center; background:transparent; border:0; border-radius:0; box-shadow:none; padding:0; margin-bottom:16px; }
html:root body .tt-footer .tt-logo-img { display:block; width:104px !important; height:56px !important; max-width:104px !important; max-height:56px !important; object-fit:cover !important; filter:var(--tt-footer-logo-filter,url("#tt-brand-logo-tint")) !important; opacity:1 !important; }

html:root body:not(:has(.adm-main)) .tt-product-card .tt-product-img-real { padding:clamp(10px,1.4vw,18px); box-sizing:border-box; }
html:root body.tt-product-maintenance #gallery-main, html:root body.tt-product-maintenance #gallery-main img { background:#FFFFFF !important; }

html:root body :is(.tt-card-color,.tt-variant-option).tt-stock-unavailable::after { white-space:nowrap; width:max-content; }

/* El tono asignado por el flujo decide sólo el tinte del logo. */
html:root body .tt-footer[data-tt-flow-block="light"] { --tt-footer-logo-filter:url("#tt-brand-logo-tint") !important; }
html:root body .tt-footer[data-tt-flow-block="pink"] { --tt-footer-logo-filter:url("#tt-brand-logo-tint-light") !important; }

/* Tarjetas: imagen transparente y separación visible del cuerpo descriptivo. */
html:root body:not(:has(.adm-main)) :is(.tt-product-card,.cat-product-card,.tt-card) :is(.tt-product-img,.tt-card-img-wrap,.tt-product-img-real,.tt-card-img)[class],
html:root body:not(:has(.adm-main)) .tt-card .tt-card-img-wrap > img,
html:root body:not(:has(.adm-main)) .tt-visual-product-card > img { background:transparent !important; }
html:root body:not(:has(.adm-main)) :is(.tt-product-card,.cat-product-card,.tt-card) > :is(.tt-product-info,.tt-card-info) { border-top:1px solid #D1D5DB !important; }
html:root body:not(:has(.adm-main)) .tt-visual-product-card > strong { display:block; border-top:1px solid #D1D5DB; margin-top:12px; padding-top:12px; }
/* El estado se distingue también en una captura, sin depender del botón. */
html:root body:not(:has(.adm-main)) :is(.tt-product-card,.cat-product-card,.tt-card).tt-stock-unavailable,
html:root body:not(:has(.adm-main)) .tt-visual-product-card:has(.tt-stock-label) { background:#F3F4F6 !important; }
html:root body:not(:has(.adm-main)) :is(.tt-product-card,.cat-product-card,.tt-card).tt-stock-unavailable :is(.tt-product-img-real,.tt-card-img-wrap img),
html:root body:not(:has(.adm-main)) .tt-visual-product-card:has(.tt-stock-label) > img { opacity:.55 !important; }

html:root body .tt-stock-label { color:#4B5563 !important; background:#E5E7EB !important; border-color:#9CA3AF !important; }


/* css/pages/home/mas-vendidos.css */
/* Selección administrada desde Superadmin > Productos > Más vendido.
   El bloque usa la misma tarjeta canónica del catálogo para que stock,
   variantes, favoritos y carrito se comporten igual en toda la tienda. */
.tt-best-sellers-section { padding: clamp(52px, 7vw, 96px) 0; background: linear-gradient(180deg, #fdf0f5 0%, #f8aaca 100%); }
.tt-best-sellers-heading { display: grid; gap: 10px; max-width: 680px; margin: 0 auto clamp(28px, 4vw, 48px); text-align: center; }
.tt-best-sellers-kicker { margin: 0; color: #713c53; font-size: .73rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.tt-best-sellers-heading .tt-section-title { margin: 0; }
.tt-best-sellers-heading p:last-child { margin: 0; color: #713c53; }
.tt-best-sellers-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 26px); }
.tt-best-sellers-grid .tt-product-card { min-width: 0; }
.tt-best-sellers-status { min-height: 1.4em; margin: 18px 0 0; text-align: center; color: #713c53; font-size: .86rem; }
.tt-best-sellers-action { display: flex; justify-content: center; margin-top: clamp(24px, 3vw, 34px); }
@media (max-width: 1024px) { .tt-best-sellers-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) { .tt-best-sellers-section { padding: 44px 0; } .tt-best-sellers-grid { display: flex; overflow-x: auto; scroll-snap-type: x mandatory; padding: 2px 4px 14px; } .tt-best-sellers-grid .tt-product-card { flex: 0 0 min(78vw, 300px); scroll-snap-align: start; } }


/* css/pages/home/resenas-clientas.css */
/* Capturas reales completas, sin cortar conversaciones ni deformar fotos. */
body.tt-home-premium .tt-review-screens {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: clamp(12px, 2vw, 24px);
  align-items: start;
}
.tt-review-screen { margin: 0; min-width: 0; padding: 12px; border-radius: 16px; background: #fff; box-shadow: 0 8px 24px rgb(113 60 83 / 8%); }
.tt-review-screen img { display: block; width: 100%; height: auto; border-radius: 8px; }
.tt-reviews-action { display: flex; justify-content: center; margin-top: 28px; }
.tt-reviews-dialog {
  width: min(1120px, calc(100vw - 28px)); max-width: none;
  max-height: calc(100dvh - 28px); margin: auto; padding: 0;
  border: 0; border-radius: 22px; color: #30232a;
  background: #fff1f7; box-shadow: 0 24px 90px rgb(48 35 42 / 25%);
}
.tt-reviews-dialog::backdrop { background: rgb(48 35 42 / 48%); backdrop-filter: blur(8px); }
.tt-reviews-dialog__header {
  position: sticky; top: 0; z-index: 1; display: flex; gap: 16px;
  align-items: center; justify-content: space-between; padding: 18px 22px;
  background: rgb(255 241 247 / 96%); backdrop-filter: blur(8px);
}
.tt-reviews-dialog__header h2 { margin: 0; font-size: clamp(1rem, 2.5vw, 1.5rem); }
.tt-reviews-close { flex: 0 0 44px; width: 44px; height: 44px; display: grid; place-items: center; border: 0; border-radius: 50%; background: #fff; color: #30232a; font-family: 'Montserrat'; font-size: 28px; line-height: 1; cursor: pointer; }
.tt-reviews-close:focus-visible { outline: 3px solid #713c53; outline-offset: 2px; }
.tt-reviews-dialog__content { padding: 0 22px 22px; }
body.tt-home-premium .tt-reviews-dialog .tt-review-screens { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 1024px) { body.tt-home-premium .tt-review-screens, body.tt-home-premium .tt-reviews-dialog .tt-review-screens { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
@media (max-width: 560px) {
  .tt-review-screen { padding: 8px; border-radius: 12px; }
  .tt-reviews-dialog__header { padding: 12px; }
  .tt-reviews-dialog__content { padding: 0 12px 16px; }
  body.tt-home-premium .tt-reviews-dialog .tt-review-screens { grid-template-columns: minmax(0, 1fr); }
}


/* css/theme/superficies-marca-responsive-tintin.css */
/* =============================================================
   TINTIN — Superficies de marca responsive
   Cuenta, carrito, buscador, colecciones, checkout, formularios y modales.
   Esta hoja solo refuerza presentación: no cambia datos ni flujos.
   ============================================================= */

:root {
  --tt-brand-pink: var(--color-brand-primary, #F8AACA);
  --tt-brand-pink-deep: var(--color-brand-primary, #F8AACA);
  --tt-brand-pink-soft: #fff0f7;
  --tt-brand-copy: var(--color-text-primary, #222222);
  --tt-brand-muted: var(--color-text-primary, #222222);
  --tt-brand-border: #efbdd2;
  --tt-brand-white: #ffffff;
  --tt-fit-gutter: clamp(16px, 4vw, 72px);
  --tt-fit-radius: clamp(18px, 2.2vw, 30px);
  --tt-fit-shadow: 0 24px 68px rgba(122, 0, 61, .16);
}

/* Nunca usar negro puro en las superficies de interacción de la tienda. */
:is(
  .tt-account-drawer,
  .tt-cart-drawer,
  .tt-search-panel,
  .tt-collections-sheet,
  .ck-body,
  .ck-panel,
  .ck-summary-card,
  .perfil-card,
  .perfil-section,
  .modal,
  .adm-modal
) {
  color: var(--tt-brand-copy);
}

/* =============================================================
   MI CUENTA — cabecera rosa sólida, marca blanca y layout tipo app
   ============================================================= */
.tt-account-drawer {
  overflow: hidden;
  border-left-color: var(--tt-brand-border) !important;
  background: var(--tt-brand-pink-soft) !important;
}

.tt-account-drawer-header {
  position: relative;
  isolation: isolate;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 16px;
  min-height: clamp(112px, 13vh, 146px) !important;
  padding:
    max(20px, env(safe-area-inset-top))
    clamp(20px, 4vw, 34px)
    20px !important;
  overflow: hidden;
  border: 0 !important;
  background:
    radial-gradient(circle at 15% 0%, rgba(255,255,255,.18), transparent 38%),
    linear-gradient(135deg, var(--color-brand-primary, #F8AACA) 0%, var(--color-brand-primary, #F8AACA) 52%, var(--color-brand-primary, #F8AACA) 100%) !important;
  box-shadow: 0 14px 34px rgba(111, 0, 55, .22);
}

.tt-account-drawer-header::before {
  content: "";
  width: clamp(92px, 11vw, 126px);
  height: clamp(58px, 7vw, 78px);
  display: block;
  grid-column: 1;
  grid-row: 1;
  background: url("/assets-tintin/images/general/logo.png?v=tintin-20261004-final-integration-2-master-20261007-1-encomienda-20261008-1-checkout-20261008-2") center / contain no-repeat;
  filter: brightness(0) invert(1) drop-shadow(0 7px 15px rgba(85,0,43,.18));
  opacity: .98;
}

.tt-account-drawer-header h2 {
  grid-column: 1;
  grid-row: 1;
  align-self: end;
  width: max-content;
  margin: 0 0 1px clamp(112px, 13vw, 150px) !important;
  color:#222222 !important;
  font-family: "Montserrat", sans-serif;
  font-size: clamp(.78rem, 1.5vw, .96rem) !important;
  font-weight: 800;
  line-height: 1;
  letter-spacing: .16em !important;
  text-shadow: 0 3px 12px rgba(67,0,33,.24);
}

.tt-account-drawer-header h2::before {
  content: "T\2665NT\2665N";
  display: block;
  margin-bottom: 8px;
  color:#222222;
  font-size: clamp(1.04rem, 2.2vw, 1.34rem);
  font-weight: 900;
  letter-spacing: .08em;
}

.tt-account-drawer-header button {
  position: relative;
  z-index: 2;
  grid-column: 2;
  grid-row: 1;
  align-self: center;
  width: 46px;
  min-width: 46px !important;
  height: 46px;
  min-height: 46px !important;
  display: grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.72) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.14) !important;
  color:#222222 !important;
  font-size: 1rem;
  box-shadow: inset 0 1px 0 rgba(255,255,255,.26);
  transition: transform .2s ease, background-color .2s ease;
}

.tt-account-drawer-header button:hover,
.tt-account-drawer-header button:focus-visible {
  background: #fff !important;
  color: var(--tt-brand-pink-deep) !important;
  transform: rotate(5deg) scale(1.04);
}

.tt-account-drawer .tt-account-panel {
  gap: 10px !important;
  padding: clamp(20px, 4vw, 34px) !important;
  overflow-y: auto;
  overscroll-behavior: contain;
  background:
    radial-gradient(circle at 100% 0%, rgba(202,1,105,.07), transparent 35%),
    var(--tt-brand-pink-soft) !important;
}

.tt-account-drawer .tt-account-header {
  display: flex;
  align-items: center;
  gap: 13px;
  min-height: 68px;
  margin-bottom: 6px;
  padding: 13px 15px;
  border: 1px solid rgba(255,255,255,.65);
  border-radius: 20px;
  background: linear-gradient(135deg, var(--color-brand-primary, #F8AACA), var(--color-brand-primary, #F8AACA)) !important;
  color:#222222 !important;
  box-shadow: 0 12px 28px rgba(151,0,79,.18);
}

.tt-account-drawer .tt-account-header span {
  min-width: 0;
  color:#222222 !important;
  font-weight: 750;
  overflow-wrap: anywhere;
}

.tt-account-drawer .tt-account-panel-avatar {
  width: 42px !important;
  height: 42px !important;
  flex: 0 0 42px;
  border: 2px solid rgba(255,255,255,.84);
  border-radius: 50%;
  object-fit: cover;
}

.tt-account-drawer .tt-account-item {
  min-height: 52px !important;
  padding: 13px 16px !important;
  border: 1px solid var(--tt-brand-border) !important;
  border-radius: 17px !important;
  background: #fff !important;
  color: var(--tt-brand-copy) !important;
  font-weight: 720;
  line-height: 1.35;
  box-shadow: 0 6px 18px rgba(126,0,63,.055);
  transition: transform .2s ease, background-color .2s ease, border-color .2s ease;
}

.tt-account-drawer .tt-account-item:hover,
.tt-account-drawer .tt-account-item:focus-visible {
  border-color: var(--color-brand-primary, #F8AACA) !important;
  background: #FDECF2 !important;
  color: var(--tt-brand-pink-deep) !important;
  transform: translateY(-1px);
}

.tt-account-drawer .tt-account-logout {
  margin-top: auto;
  color:var(--color-text-primary,#222222) !important;
}

.tt-account-drawer .tt-account-divider {
  height: 1px;
  margin: 4px 2px;
  background: rgba(202,1,105,.16);
}

.tt-account-drawer .tt-account-guest-copy {
  margin: 0 0 8px;
  padding: 16px;
  border: 1px solid var(--tt-brand-border);
  border-radius: 18px;
  background: #fff;
  color: var(--tt-brand-copy);
  font-weight: 600;
  line-height: 1.55;
}

/* =============================================================
   CARRITO, COLECCIONES Y BUSCADOR — misma familia visual
   ============================================================= */
.tt-cart-drawer,
.tt-collections-sheet,
.tt-search-panel {
  border-color: var(--tt-brand-border) !important;
  background: #FDECF2 !important;
  box-shadow: var(--tt-fit-shadow) !important;
}

:is(.tt-cart-header, .tt-sheet-header) {
  border-color: transparent !important;
  background: linear-gradient(135deg, var(--color-brand-primary, #F8AACA), var(--color-brand-primary, #F8AACA)) !important;
  color:#222222 !important;
}

:is(.tt-cart-header, .tt-sheet-header) :is(h2, h3, span) {
  color:#222222 !important;
}

:is(.tt-cart-header, .tt-sheet-header) button {
  border: 1px solid rgba(255,255,255,.7) !important;
  background: rgba(255,255,255,.16) !important;
  color:#222222 !important;
}

.tt-search-panel {
  color: var(--tt-brand-copy) !important;
}

.tt-search-panel .tt-search-input {
  min-height: 54px;
  border: 1px solid var(--tt-brand-border) !important;
  border-radius: 17px !important;
  background: #fff !important;
  color: var(--tt-brand-pink-deep) !important;
}

.tt-search-panel .tt-search-input::placeholder {
  color: var(--tt-brand-muted) !important;
}

:is(.tt-cart-item, .tt-sheet-item, .tt-search-result-item) {
  border-color: var(--tt-brand-border) !important;
  background: #fff !important;
  color: var(--tt-brand-copy) !important;
}

/* =============================================================
   CHECKOUT Y FORMULARIOS — ancho útil real y textos de marca
   ============================================================= */
html:has(.ck-body) body {
  background: #FFFFFF !important;
  background-image: var(--tt-flow-canvas, none) !important;
  color: var(--tt-brand-copy) !important;
}

.ck-body {
  width: min(100%, 1560px) !important;
  margin-inline: auto !important;
  padding-inline: var(--tt-fit-gutter) !important;
}

:is(.ck-panel, .ck-summary-card, .ck-step, .tt-map-block) {
  border-color: var(--tt-brand-border) !important;
  background: #fff !important;
  color: var(--tt-brand-copy) !important;
  box-shadow: 0 10px 30px rgba(126,0,63,.075);
}

:is(.ck-panel, .ck-summary-card, .tt-map-block) :is(h1, h2, h3, h4, label, strong) {
  color: var(--tt-brand-copy) !important;
}

:is(.ck-panel, .ck-summary-card, .tt-map-block) :is(p, small, .muted, .ck-muted) {
  color: var(--tt-brand-muted) !important;
}

:is(.ck-panel, .tt-map-block) :is(input, select, textarea) {
  border-color: var(--tt-brand-border) !important;
  background: #fff !important;
  color: var(--tt-brand-pink-deep) !important;
}

:is(.ck-panel, .tt-map-block) :is(input, textarea)::placeholder {
  color:var(--color-text-primary,#222222) !important;
  opacity: 1;
}

:is(.ck-btn-primary, .tt-map-locate, #btn-save-profile) {
  background: linear-gradient(135deg, var(--color-brand-primary, #F8AACA), var(--color-brand-primary, #F8AACA)) !important;
  color:#222222 !important;
  box-shadow: 0 12px 28px rgba(151,0,79,.22);
}

/* =============================================================
   MODALES Y TARJETAS DE PERFIL
   ============================================================= */
:is(.modal, .adm-modal, .login-exit-card, .perfil-card, .perfil-section) {
  border-color: var(--tt-brand-border) !important;
  background: #fff !important;
  color: var(--tt-brand-copy) !important;
  box-shadow: var(--tt-fit-shadow);
}

:is(.modal, .adm-modal, .login-exit-card, .perfil-card, .perfil-section) :is(h1, h2, h3, h4, label, strong) {
  color: var(--tt-brand-copy) !important;
}

:is(.modal, .adm-modal, .login-exit-card, .perfil-card, .perfil-section) :is(p, small) {
  color: var(--tt-brand-muted) !important;
}

/* =============================================================
   BREAKPOINTS REALES
   ============================================================= */
@media (min-width: 1100px) {
  .tt-account-drawer,
  .tt-cart-drawer {
    width: clamp(470px, 34vw, 560px) !important;
    max-width: min(94vw, 560px) !important;
  }

  .ck-body {
    padding-inline: clamp(48px, 5vw, 96px) !important;
  }
}

@media (min-width: 768px) and (max-width: 1099px) {
  .tt-account-drawer,
  .tt-cart-drawer {
    width: min(74vw, 680px) !important;
    max-width: calc(100vw - 28px) !important;
  }

  .ck-body {
    padding-inline: clamp(26px, 4vw, 52px) !important;
  }
}

@media (max-width: 767px) {
  .tt-account-drawer,
  .tt-cart-drawer {
    inset: 0 !important;
    width: 100vw !important;
    max-width: 100vw !important;
    height: 100dvh !important;
    border: 0 !important;
    border-radius: 0 !important;
  }

  .tt-account-drawer-header {
    min-height: 122px !important;
    padding-inline: max(18px, env(safe-area-inset-left)) max(18px, env(safe-area-inset-right)) !important;
  }

  .tt-account-drawer-header::before {
    width: 92px;
    height: 60px;
  }

  .tt-account-drawer-header h2 {
    margin-left: 108px !important;
  }

  .tt-account-drawer .tt-account-panel {
    padding:
      20px
      max(16px, env(safe-area-inset-right))
      calc(82px + env(safe-area-inset-bottom))
      max(16px, env(safe-area-inset-left)) !important;
  }

  .tt-search-panel,
  .tt-collections-sheet {
    border-radius: 0 !important;
  }

  .ck-body {
    width: 100% !important;
    padding-inline: clamp(14px, 4vw, 22px) !important;
  }

  :is(.ck-panel, .ck-summary-card, .tt-map-block, .perfil-card, .perfil-section) {
    border-radius: 20px !important;
  }
}

@media (max-width: 380px) {
  .tt-account-drawer-header h2::before {
    font-size: .98rem;
  }

  .tt-account-drawer-header h2 {
    margin-left: 101px !important;
    font-size: .72rem !important;
  }
}

/* El reveal global agrega .tt-visible una sola vez y luego deja el elemento
   asentado. Esta regla evita que otra hoja vuelva a esconderlo. */
.tt-auto-reveal.tt-visible,
.tt-auto-reveal.tt-reveal-settled {
  opacity: 1 !important;
  visibility: visible !important;
}

@media (prefers-reduced-motion: reduce) {
  .tt-account-drawer-header button,
  .tt-account-drawer .tt-account-item {
    transition: none !important;
  }
}


/* css/theme/pulido-marca-responsive-tintin.css */
/* Ajustes finales cargados después de superficies-marca-responsive-tintin.css. */

/* Wordmark correcto: TINTIN completo, sin adornos que invadan el encabezado. */
.tt-account-drawer-header h2 {
  position: relative;
}

.tt-account-drawer-header h2::before {
  content: "TINTIN" !important;
  position: relative;
  display: block;
  width: max-content;
  margin-bottom: 8px;
  color:#222222 !important;
  font-size: clamp(1.04rem, 2.2vw, 1.34rem);
  font-weight: 900;
  line-height: 1;
  letter-spacing: .08em;
}

.tt-account-drawer-header h2::after {
  content: none !important;
  display: none !important;
}

/* El título y la marca deben conservarse legibles aun con nombres largos. */
.tt-account-drawer-header h2,
.tt-account-drawer .tt-account-header span {
  text-wrap: balance;
}

/* Superficies modales con cabecera de marca cuando ya existe un header. */
:is(.modal-header, .adm-modal-header, .ck-modal-header, .perfil-modal-header) {
  border-bottom-color: transparent !important;
  background: linear-gradient(135deg, var(--color-brand-primary, #F8AACA), var(--color-brand-primary, #F8AACA)) !important;
  color:#222222 !important;
}

:is(.modal-header, .adm-modal-header, .ck-modal-header, .perfil-modal-header) :is(h1,h2,h3,span,strong) {
  color:#222222 !important;
}

:is(.modal-header, .adm-modal-header, .ck-modal-header, .perfil-modal-header) button {
  border-color: rgba(255,255,255,.7) !important;
  background: rgba(255,255,255,.15) !important;
  color:#222222 !important;
}

/* Mantener márgenes fluidos en las pantallas largas. */
:is(.perfil-main, .perfil-page, .ck-body, .tt-page-content, main.tt-main) {
  width: min(100%, 1560px);
  margin-inline: auto;
  padding-inline: clamp(16px, 4vw, 78px);
}

/* Los elementos ya revelados nunca vuelven al estado invisible. */
html.tt-reveal-ready .tt-auto-reveal.tt-visible,
html.tt-reveal-ready .tt-auto-reveal.tt-reveal-settled {
  opacity: 1 !important;
  transform: none !important;
  visibility: visible !important;
  will-change: auto !important;
}

@media (min-width: 768px) and (max-width: 1099px) {
  :is(.perfil-main, .perfil-page, .ck-body, .tt-page-content, main.tt-main) {
    padding-inline: clamp(26px, 4.5vw, 54px);
  }
}

@media (max-width: 767px) {
  :is(.perfil-main, .perfil-page, .ck-body, .tt-page-content, main.tt-main) {
    width: 100%;
    padding-inline: clamp(14px, 4vw, 22px);
  }

}

@media (max-width: 380px) {
}


/* css/theme/seguridad-marca-responsive-tintin.css */
/* Seguridad final de la capa visual: respeta overlays y tarjetas internas. */

/* Cuando .modal/.adm-modal contienen una tarjeta, son overlays y no deben
   convertirse en una superficie blanca completa. */
.modal:has(> .modal-content),
.modal:has(> .tt-modal-content),
.modal:has(> .ck-modal-content),
.adm-modal:has(> .adm-modal-content) {
  border: 0 !important;
  background: rgba(47, 10, 29, .42) !important;
  color: inherit !important;
  box-shadow: none !important;
  -webkit-backdrop-filter: blur(5px);
  backdrop-filter: blur(5px);
}

:is(.modal-content, .tt-modal-content, .ck-modal-content, .adm-modal-content) {
  border: 1px solid var(--tt-brand-border, #efbdd2) !important;
  border-radius: clamp(20px, 2.5vw, 30px) !important;
  background: #fff !important;
  color:var(--color-text-primary,#222222) !important;
  box-shadow: 0 24px 68px rgba(122, 0, 61, .2) !important;
}

:is(.modal-content, .tt-modal-content, .ck-modal-content, .adm-modal-content)
:is(h1,h2,h3,h4,label,strong) {
  color:var(--color-text-primary,#222222) !important;
}

:is(.modal-content, .tt-modal-content, .ck-modal-content, .adm-modal-content)
:is(p,small,.muted) {
  color:var(--color-text-primary,#222222) !important;
}

/* Contenedores reales que existen en perfil y checkout. */
:is(.ck-wrap, .ck-main, .ck-body) {
  width: min(100%, 1560px) !important;
  max-width: 100% !important;
  margin-inline: auto !important;
  padding-inline: clamp(16px, 4vw, 78px) !important;
}

/* Evita doble margen cuando un contenedor fit está anidado en otro. */
:is(.ck-wrap) > :is(.perfil-main, .ck-main, .ck-body) {
  padding-inline: 0 !important;
}

/* Cabeceras internas en rosa con contraste real. */
:is(
  .perfil-card-header,
  .perfil-section-header,
  .ck-panel-head,
  .ck-summary-head,
  .modal-header,
  .adm-modal-header
) {
  border-bottom-color: transparent !important;
  background: linear-gradient(135deg, var(--color-brand-primary, #F8AACA), var(--color-brand-primary, #F8AACA)) !important;
  color:#222222 !important;
}

:is(
  .perfil-card-header,
  .perfil-section-header,
  .ck-panel-head,
  .ck-summary-head,
  .modal-header,
  .adm-modal-header
) :is(h1,h2,h3,h4,span,strong,p) {
  color:#222222 !important;
}

@media (min-width: 768px) and (max-width: 1099px) {
  :is(.ck-wrap, .ck-main, .ck-body) {
    padding-inline: clamp(26px, 4.5vw, 54px) !important;
  }

  :is(.ck-wrap) > :is(.perfil-main, .ck-main, .ck-body) {
    padding-inline: 0 !important;
  }
}

@media (max-width: 767px) {
  :is(.ck-wrap, .ck-main, .ck-body) {
    width: 100% !important;
    padding-inline: clamp(14px, 4vw, 22px) !important;
  }

  :is(.ck-wrap) > :is(.perfil-main, .ck-main, .ck-body) {
    padding-inline: 0 !important;
  }

  :is(.modal-content, .tt-modal-content, .ck-modal-content, .adm-modal-content) {
    width: calc(100vw - 24px) !important;
    max-width: calc(100vw - 24px) !important;
    max-height: calc(100dvh - 24px) !important;
    border-radius: 22px !important;
  }
}


/* css/components/navigation/compartido/apariencia-global.css */
html[data-tt-header-bg-custom] #tt-header-desktop-tablet,
html[data-tt-header-bg-custom] #tt-header-tablet,
html[data-tt-header-bg-custom] #tt-tablet-menu,
html[data-tt-header-bg-custom] #tt-tabbar{background:var(--tt-global-header-bg)!important}
html[data-tt-header-text-custom] #tt-header-desktop-tablet,
html[data-tt-header-text-custom] #tt-header-tablet,
html[data-tt-header-text-custom] #tt-tablet-menu,
html[data-tt-header-text-custom] #tt-tabbar{color:var(--tt-global-header-text)!important}
html[data-tt-header-text-custom] #tt-header-desktop-tablet a,
html[data-tt-header-text-custom] #tt-header-desktop-tablet button,
html[data-tt-header-text-custom] #tt-header-tablet a,
html[data-tt-header-text-custom] #tt-header-tablet button,
html[data-tt-header-text-custom] #tt-tablet-menu a,
html[data-tt-header-text-custom] #tt-tablet-menu button,
html[data-tt-header-text-custom] #tt-tabbar a,
html[data-tt-header-text-custom] #tt-tabbar button{color:inherit}
html[data-tt-header-accent-custom] .tt-desktop-active-pill,
html[data-tt-header-accent-custom] .tt-mobile-nav-indicator{background:var(--tt-global-header-accent)!important}
html[data-tt-header-accent-custom] .tt-tablet-nav>.active,
html[data-tt-header-accent-custom] .tt-tablet-nav>[aria-current="page"]{background:color-mix(in srgb,var(--tt-global-header-accent) 16%,#fff)!important;color:var(--tt-global-header-accent)!important}

html[data-tt-header-density="compact"] .tt-header-inner,
html[data-tt-header-density="compact"] .tt-tablet-header-inner{min-height:58px!important}
html[data-tt-header-density="roomy"] .tt-header-inner,
html[data-tt-header-density="roomy"] .tt-tablet-header-inner{min-height:86px!important}
html[data-tt-header-density="compact"] #tt-tabbar{min-height:58px!important}
html[data-tt-header-density="roomy"] #tt-tabbar{min-height:76px!important}

html[data-tt-header-logo-size="small"] .tt-logo-img,
html[data-tt-header-logo-size="small"] .tt-tablet-logo-img,
html[data-tt-header-logo-size="small"] .tt-tablet-menu-logo-img{max-height:34px!important}
html[data-tt-header-logo-size="large"] .tt-logo-img,
html[data-tt-header-logo-size="large"] .tt-tablet-logo-img,
html[data-tt-header-logo-size="large"] .tt-tablet-menu-logo-img{max-height:58px!important}

html[data-tt-header-nav-style="minimal"] .tt-nav-desktop [data-desktop-nav-item],
html[data-tt-header-nav-style="minimal"] .tt-tablet-nav>a,
html[data-tt-header-nav-style="minimal"] .tt-tablet-tienda-btn{border-color:transparent!important;background:transparent!important;box-shadow:none!important}
html[data-tt-header-nav-style="pills"] .tt-nav-desktop [data-desktop-nav-item],
html[data-tt-header-nav-style="pills"] .tt-tablet-nav>a,
html[data-tt-header-nav-style="pills"] .tt-tablet-tienda-btn{border-radius:999px!important}

html[data-tt-footer-bg-custom] .tt-footer{background:var(--tt-global-footer-bg)!important}
html[data-tt-footer-text-custom] .tt-footer{color:var(--tt-global-footer-text)!important}
html[data-tt-footer-text-custom] .tt-footer a,
html[data-tt-footer-text-custom] .tt-footer-col-title,
html[data-tt-footer-text-custom] .tt-footer-tagline,
html[data-tt-footer-text-custom] .tt-footer-bottom{color:inherit!important}
html[data-tt-footer-accent-custom] .tt-footer-wa{background:var(--tt-global-footer-accent)!important}
html[data-tt-footer-density="compact"] .tt-footer{padding-top:28px!important}
html[data-tt-footer-density="compact"] .tt-footer-grid{gap:20px!important}
html[data-tt-footer-density="roomy"] .tt-footer{padding-top:72px!important;padding-bottom:30px!important}
html[data-tt-footer-density="roomy"] .tt-footer-grid{gap:52px!important}
html[data-tt-footer-style="minimal"] .tt-footer{box-shadow:none!important;border-top:0!important}
html[data-tt-footer-style="boxed"] .tt-footer .container{max-width:min(1180px,calc(100% - 32px));border-radius:22px;padding:28px}
html[data-tt-footer-style="boxed"][data-tt-footer-bg-custom] .tt-footer .container{background:color-mix(in srgb,var(--tt-global-footer-bg) 92%,var(--tt-global-footer-accent,var(--color-brand-primary, #F8AACA)) 8%)}

@media(max-width:767px){
  html[data-tt-header-logo-size="large"] .tt-tablet-menu-logo-img{max-height:48px!important}
  html[data-tt-footer-style="boxed"] .tt-footer .container{padding:20px;border-radius:18px}
  html[data-tt-mobile-home="hidden"] #tt-tabbar{grid-template-columns:repeat(4,minmax(0,1fr))}
}


/* css/quality/experiencia-interfaz.css */
/* =============================================================
   TINTIN — Fase 8: UI/UX consistente, accesible y fluida
   ============================================================= */

:root {
  --tt-motion-instant: 90ms;
  --tt-motion-fast: 160ms;
  --tt-motion-normal: 240ms;
  --tt-motion-slow: 360ms;
  --tt-motion-ease: cubic-bezier(.22, .61, .36, 1);
  --tt-state-bg: color-mix(in srgb, var(--tt-page-bg, #FFFFFF) 84%, #fff);
  --tt-state-border: color-mix(in srgb, var(--color-brand-primary, var(--color-brand-primary, #F8AACA)) 20%, transparent);
  --tt-state-text: var(--tt-text, #222222);
  --tt-state-muted: var(--tt-text-muted, #666);
  --tt-danger: var(--color-brand-primary, #F8AACA);
  --tt-success: #287a55;
  --tt-loader-strong: var(--color-brand-primary, #F8AACA);
  --tt-loader-soft: rgba(202, 1, 105, .22);
}

[data-tt-interactive="1"] {
  transition:
    transform var(--tt-motion-fast) var(--tt-motion-ease),
    box-shadow var(--tt-motion-fast) var(--tt-motion-ease),
    border-color var(--tt-motion-fast) var(--tt-motion-ease),
    background-color var(--tt-motion-fast) var(--tt-motion-ease),
    opacity var(--tt-motion-fast) ease;
}

[data-tt-interactive="1"].tt-is-pressed,
[data-tt-interactive="1"]:active:not(:disabled):not([aria-disabled="true"]) {
  transform: translateY(1px) scale(.985);
}

.tt-interactive-control:focus-visible,
.tt-state-action:focus-visible {
  outline: 3px solid color-mix(in srgb, var(--color-brand-primary, var(--color-brand-primary, #F8AACA)) 35%, transparent);
  outline-offset: 3px;
}

[data-tt-busy="1"],
.tt-is-busy {
  position: relative;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: .58em;
  cursor: progress !important;
  pointer-events: none !important;
  opacity: .84;
}

.tt-button-spinner {
  --tt-button-spinner-size: 20px;
  --tt-button-spinner-border: 3px;
  width: var(--tt-button-spinner-size);
  height: var(--tt-button-spinner-size);
  display: grid;
  flex: 0 0 auto;
  animation: tt-double-spinner-shell 3s infinite;
}

.tt-button-spinner::before,
.tt-button-spinner::after {
  content: "";
  grid-area: 1 / 1;
  border: var(--tt-button-spinner-border) solid;
  border-radius: 50%;
  border-color:
    var(--tt-loader-strong)
    var(--tt-loader-strong)
    transparent
    transparent;
  box-sizing: border-box;
  mix-blend-mode: multiply;
  animation: tt-double-spinner-ring 1s infinite linear;
}

.tt-button-spinner::after {
  border-color:
    transparent
    transparent
    var(--tt-loader-soft)
    var(--tt-loader-soft);
  animation-direction: reverse;
}

@keyframes tt-double-spinner-shell {
  100% { transform: rotate(1turn); }
}

@keyframes tt-double-spinner-ring {
  100% { transform: rotate(1turn); }
}

.tt-ux-live-region {
  position: fixed !important;
  width: 1px !important;
  height: 1px !important;
  padding: 0 !important;
  margin: -1px !important;
  overflow: hidden !important;
  clip: rect(0, 0, 0, 0) !important;
  white-space: nowrap !important;
  border: 0 !important;
}

.tt-state-surface {
  display: grid;
  justify-items: center;
  align-content: center;
  gap: 10px;
  width: min(100%, 620px);
  min-height: 150px;
  margin-inline: auto;
  padding: clamp(22px, 5vw, 36px);
  border: 1px solid var(--tt-state-border);
  border-radius: clamp(16px, 3vw, 24px);
  background: var(--tt-state-bg);
  color: var(--tt-state-text);
  text-align: center;
  box-shadow: 0 10px 32px rgba(104, 43, 65, .08);
}

.tt-state-icon {
  display: grid;
  place-items: center;
  width: 46px;
  height: 46px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--color-brand-primary, var(--color-brand-primary, #F8AACA)) 12%, #fff);
  color:var(--color-text-primary,#222222);
}

.tt-state-icon::before {
  content: "♡";
  font-size: 24px;
  line-height: 1;
}

.tt-state-loading .tt-state-icon {
  --tt-state-spinner-size: 46px;
  --tt-state-spinner-border: 8px;
  width: var(--tt-state-spinner-size);
  height: var(--tt-state-spinner-size);
  display: grid;
  border-radius: 50%;
  background: transparent;
  animation: tt-double-spinner-shell 3s infinite;
}

.tt-state-loading .tt-state-icon::before,
.tt-state-loading .tt-state-icon::after {
  content: "";
  grid-area: 1 / 1;
  width: 100%;
  height: 100%;
  border: var(--tt-state-spinner-border) solid;
  border-radius: 50%;
  border-color:
    var(--tt-loader-strong)
    var(--tt-loader-strong)
    transparent
    transparent;
  box-sizing: border-box;
  mix-blend-mode: multiply;
  animation: tt-double-spinner-ring 1s infinite linear;
}

.tt-state-loading .tt-state-icon::after {
  border-color:
    transparent
    transparent
    var(--tt-loader-soft)
    var(--tt-loader-soft);
  animation-direction: reverse;
}

.tt-state-error .tt-state-icon {
  background: color-mix(in srgb, var(--tt-danger) 12%, #fff);
  color: var(--tt-danger);
}

.tt-state-error .tt-state-icon::before { content: "!"; font-weight: 800; }
.tt-state-success .tt-state-icon { background: color-mix(in srgb, var(--tt-success) 12%, #fff); color: var(--tt-success); }
.tt-state-success .tt-state-icon::before { content: "✓"; font-weight: 800; }
.tt-state-empty .tt-state-icon::before { content: "◇"; }

.tt-state-title {
  display: block;
  margin: 0;
  color: inherit;
  font-size: clamp(1rem, 2.5vw, 1.2rem);
  font-weight: 750;
  line-height: 1.3;
}

.tt-state-message {
  max-width: 52ch;
  margin: 0;
  color: var(--tt-state-muted);
  font-size: .92rem;
  line-height: 1.6;
}

.tt-state-action {
  display: inline-flex;
  min-height: 44px;
  align-items: center;
  justify-content: center;
  margin-top: 4px;
  padding: 10px 20px;
  border: 1px solid var(--color-brand-primary, var(--color-brand-primary, #F8AACA));
  border-radius: 999px;
  background: var(--color-brand-primary, var(--color-brand-primary, #F8AACA));
  color:#222222 !important;
  font: inherit;
  font-size: .84rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
}

.tt-state-action:hover {
  background: var(--color-brand-primary-hover, var(--color-brand-primary, #F8AACA));
  border-color: var(--color-brand-primary-hover, var(--color-brand-primary, #F8AACA));
}

.tt-skeleton,
[data-tt-state="loading"] [data-tt-skeleton] {
  position: relative;
  overflow: hidden;
  border-radius: 10px;
  background: color-mix(in srgb, var(--color-brand-primary, var(--color-brand-primary, #F8AACA)) 8%, #fff);
}

.tt-skeleton::after,
[data-tt-state="loading"] [data-tt-skeleton]::after {
  content: "";
  position: absolute;
  inset: 0;
  transform: translateX(-100%);
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, .72), transparent);
  animation: tt-phase8-shimmer 1.25s ease-in-out infinite;
}

@keyframes tt-phase8-shimmer {
  to { transform: translateX(100%); }
}

.tt-img-error {
  min-height: 72px;
  border: 1px dashed color-mix(in srgb, var(--color-brand-primary, var(--color-brand-primary, #F8AACA)) 28%, transparent);
  border-radius: 10px;
  background: linear-gradient(135deg, #FFFFFF, #f9e5ed);
  opacity: .58;
  filter: grayscale(.65);
}

.tt-img-error-label {
  display: block;
  width: 100%;
  margin-top: 6px;
  color: var(--tt-state-muted);
  font-size: .72rem;
  line-height: 1.35;
  text-align: center;
}

html.tt-phase8-ux-ready .tt-card,
html.tt-phase8-ux-ready .tt-product-card,
html.tt-phase8-ux-ready .tt-coll-card,
html.tt-phase8-ux-ready .adm-card,
html.tt-phase8-ux-ready .ck-panel,
html.tt-phase8-ux-ready .perfil-card {
  transition:
    transform var(--tt-motion-normal) var(--tt-motion-ease),
    box-shadow var(--tt-motion-normal) var(--tt-motion-ease),
    border-color var(--tt-motion-normal) var(--tt-motion-ease);
}

@media (hover: hover) {
  [data-tt-interactive="1"]:hover:not(:disabled):not([aria-disabled="true"]):not([data-tt-busy="1"]) {
    filter: brightness(.985);
  }
}

@media (min-width: 601px) and (max-width: 1024px) {
  .tt-button-spinner {
    --tt-button-spinner-size: 18px;
    --tt-button-spinner-border: 3px;
  }

  .tt-state-loading .tt-state-icon {
    --tt-state-spinner-size: 40px;
    --tt-state-spinner-border: 7px;
  }
}

@media (max-width: 600px) {
  [data-tt-busy="1"],
  .tt-is-busy {
    gap: .48em;
  }

  .tt-button-spinner {
    --tt-button-spinner-size: 15px;
    --tt-button-spinner-border: 2.5px;
  }

  .tt-state-surface {
    width: 100%;
    min-height: 132px;
    padding: 22px 16px;
    border-radius: 16px;
  }

  .tt-state-loading .tt-state-icon {
    --tt-state-spinner-size: 32px;
    --tt-state-spinner-border: 5px;
  }

  .tt-state-action { width: min(100%, 280px); }
}

@media (max-width: 360px) {
  .tt-button-spinner {
    --tt-button-spinner-size: 13px;
    --tt-button-spinner-border: 2px;
  }

  .tt-state-loading .tt-state-icon {
    --tt-state-spinner-size: 28px;
    --tt-state-spinner-border: 4px;
  }
}

/* En el primer píxel del rango tablet, las pistas 1fr conservaban el mínimo
   intrínseco de las tarjetas y podían ensanchar la grilla más que el viewport. */
@media (min-width: 769px) {
  body.tt-home-premium #look-grid {
    width: 100%;
    min-width: 0;
    grid-template-columns: repeat(3, minmax(0, 1fr));
  }

  body.tt-home-premium #look-grid > * {
    min-width: 0;
    max-width: 100%;
  }
}

/* A 481px Colecciones debe conservar sus dos columnas. El desborde provenía
   de la reserva de 360px usada por content-visibility para tarjetas fuera de
   pantalla, no de la cantidad de columnas. En este rango se usa el tamaño real. */
@media (min-width: 481px) and (max-width: 560px) {
  .tt-collections-page .tt-colls-page-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  .tt-collections-page .tt-coll-page-card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    content-visibility: visible;
    contain-intrinsic-size: none;
  }

  .tt-collections-page .tt-coll-page-img,
  .tt-collections-page .tt-coll-page-body {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* En el catálogo de dos columnas las tarjetas reservaban 340px de ancho por
   contain-intrinsic-size aunque cada pista real fuera mucho menor. El rango
   llega hasta 820px porque a 481px y 769px todavía existen pistas angostas. */
@media (max-width: 820px) {
  body.tt-catalog-maintenance .cat-wrap,
  body.tt-catalog-maintenance .cat-layout,
  body.tt-catalog-maintenance .cat-main,
  body.tt-catalog-maintenance .cat-grid {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.tt-catalog-maintenance .cat-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }

  body.tt-catalog-maintenance .cat-grid > .tt-card {
    width: 100%;
    min-width: 0;
    max-width: 100%;
    content-visibility: visible;
    contain-intrinsic-size: none;
  }

  body.tt-catalog-maintenance .tt-card-img-wrap,
  body.tt-catalog-maintenance .tt-card-info,
  body.tt-catalog-maintenance .cat-top,
  body.tt-catalog-maintenance .cat-controls,
  body.tt-catalog-maintenance .cat-tabs-mobile {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }
}

/* Inicio monta además paneles fijos del shell. En mobile esos paneles y las
   grillas remotas deben usar el ancho físico del viewport, nunca un ancho
   mínimo heredado del drawer desktop o del contenido todavía no cargado. */
@media (max-width: 768px) {
  html:has(body.tt-home-premium),
  body.tt-home-premium,
  body.tt-home-premium main,
  body.tt-home-premium .tt-hero,
  body.tt-home-premium .tt-hero-media,
  body.tt-home-premium .tt-hero-media picture,
  body.tt-home-premium .tt-trust-bar,
  body.tt-home-premium .tt-collections-section,
  body.tt-home-premium .tt-look-section,
  body.tt-home-premium .tt-products-section,
  body.tt-home-premium .tt-reviews-section,
  body.tt-home-premium .tt-footer {
    min-inline-size: 0;
    max-inline-size: 100%;
    box-sizing: border-box;
  }

  body.tt-home-premium :is(
    .tt-trust-grid,
    .tt-collections-grid,
    #look-grid,
    #products-grid,
    .tt-reviews-grid
  ) {
    width: 100%;
    min-width: 0;
    max-width: 100%;
  }

  body.tt-home-premium :is(
    .tt-trust-grid,
    .tt-collections-grid,
    #look-grid,
    #products-grid,
    .tt-reviews-grid
  ) > *,
  body.tt-home-premium .tt-home-runtime-state,
  body.tt-home-premium .tt-home-runtime-state-inner {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.tt-home-premium :is(
    .tt-mobile-menu,
    .tt-search-panel,
    .tt-search-results,
    .tt-cart-drawer,
    .tt-collections-sheet
  ) {
    width: 100vw !important;
    min-width: 0 !important;
    max-width: 100vw !important;
    box-sizing: border-box !important;
  }
}

/* El drawer mobile no usa 100vw: ese valor incluye la barra vertical en
   Chromium y puede superar innerWidth. El porcentaje se resuelve contra el
   viewport útil y los hijos flexibles pueden encogerse sin filtrarse. */
@media (max-width: 768px) {
  body.tt-home-premium .tt-cart-drawer {
    width: min(400px, 100%) !important;
    min-width: 0 !important;
    max-width: 100% !important;
    left: auto !important;
    right: 0 !important;
  }

  body.tt-home-premium :is(
    .tt-cart-header,
    .tt-cart-body,
    .tt-cart-footer,
    .tt-cart-item,
    .tt-cart-item-info,
    .tt-cart-total-row
  ) {
    min-width: 0;
    max-width: 100%;
    box-sizing: border-box;
  }

  body.tt-home-premium :is(
    .tt-cart-item-name,
    .tt-cart-empty-text,
    .tt-cart-goto-btn
  ) {
    max-width: 100%;
    white-space: normal;
    overflow-wrap: anywhere;
  }
}

@media (prefers-reduced-motion: reduce) {
  :root {
    --tt-motion-instant: 1ms;
    --tt-motion-fast: 1ms;
    --tt-motion-normal: 1ms;
    --tt-motion-slow: 1ms;
  }

  [data-tt-interactive="1"],
  .tt-state-surface,
  .tt-state-action {
    transition: none !important;
  }

  [data-tt-interactive="1"].tt-is-pressed,
  [data-tt-interactive="1"]:active {
    transform: none !important;
  }

  .tt-button-spinner,
  .tt-button-spinner::before,
  .tt-button-spinner::after,
  .tt-state-loading .tt-state-icon,
  .tt-state-loading .tt-state-icon::before,
  .tt-state-loading .tt-state-icon::after {
    animation-duration: 1.6s !important;
  }

  .tt-skeleton::after,
  [data-tt-state="loading"] [data-tt-skeleton]::after {
    display: none !important;
    animation: none !important;
  }
}


/* css/quality/accesibilidad-global.css */
/* TINTIN — Fase 10: accesibilidad y experiencia inclusiva */

.tt-skip-link {
  position: fixed;
  z-index: 2147483647;
  top: max(8px, env(safe-area-inset-top));
  left: max(8px, env(safe-area-inset-left));
  max-width: calc(100vw - 16px);
  padding: 12px 18px;
  border: 2px solid var(--color-brand-primary, #F8AACA);
  border-radius: 999px;
  background: #fff;
  color:var(--color-text-primary,#222222) !important;
  font: 800 14px/1.2 Montserrat, sans-serif;
  text-decoration: none;
  box-shadow: 0 10px 34px rgba(58, 20, 35, .22);
  transform: translateY(calc(-100% - 24px));
  transition: transform 160ms ease;
}

.tt-skip-link:focus-visible {
  transform: translateY(0);
}

:where(a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
  outline: 3px solid var(--color-brand-primary, #F8AACA) !important;
  outline-offset: 3px !important;
  box-shadow: 0 0 0 5px rgba(248,170,202, .16) !important;
}

[data-tt-a11y-touch="1"],
#wa-float,
.tt-cart-btn,
.tt-menu-toggle,
.tt-search-toggle,
.tt-modal-close {
  min-inline-size: 44px !important;
  min-block-size: 44px !important;
}

.tt-connectivity-status {
  pointer-events: none;
  position: fixed;
  z-index: 2147482987;
  right: max(14px, env(safe-area-inset-right));
  bottom: max(14px, env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: 12px;
  width: min(470px, calc(100vw - 28px));
  padding: 12px 14px 12px 18px;
  border: 1px solid rgba(248,170,202, .24);
  border-radius: 18px;
  background: #fff;
  color:#222222;
  box-shadow: 0 14px 42px rgba(58, 20, 35, .18);
  font: 600 12px/1.45 Montserrat, sans-serif;
}

.tt-connectivity-status[hidden] { display: none !important; }
.tt-connectivity-status-text { min-width: 0; flex: 1 1 auto; overflow-wrap: anywhere; }
.tt-connectivity-retry {
  pointer-events: auto;
  flex: 0 0 auto;
  min-width: 44px;
  min-height: 44px;
  padding: 10px 14px;
  border: 0;
  border-radius: 999px;
  background: var(--color-brand-primary, #F8AACA);
  color:#222222;
  font: 800 12px/1 Montserrat, sans-serif;
  cursor: pointer;
}

[aria-invalid="true"] {
  border-color: var(--color-brand-primary, #F8AACA) !important;
  box-shadow: 0 0 0 3px rgba(159, 18, 57, .14) !important;
}

:where(main, [role="main"], p, li, dd, td, th, label, .tt-state-message) {
  overflow-wrap: anywhere;
}

@media (max-width: 600px) {
  .tt-connectivity-status {
    right: max(12px, env(safe-area-inset-right));
    bottom: calc(92px + env(safe-area-inset-bottom));
    left: max(12px, env(safe-area-inset-left));
    width: auto;
  }
}

@media (prefers-contrast: more) {
  :where(a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])):focus-visible {
    outline-width: 4px !important;
    box-shadow: none !important;
  }
  .tt-connectivity-status { border-width: 2px; }
}

@media (forced-colors: active) {
  .tt-skip-link,
  .tt-connectivity-status,
  .tt-connectivity-retry { forced-color-adjust: auto; border: 2px solid ButtonText; }
}

@media (prefers-reduced-motion: reduce) {
  .tt-skip-link { transition: none !important; }
  :where([role="dialog"], dialog, .tt-connectivity-status) { scroll-behavior: auto !important; }
}


/* css/components/visual-studio-global-runtime.css */
.tt-global-campaign-bar{position:relative;z-index:1200;display:flex;align-items:center;justify-content:center;gap:10px;min-height:38px;padding:8px 42px;text-align:center;background:var(--tt-global-bg,var(--color-brand-primary, #F8AACA));color:var(--tt-global-text,#fff);font:800 11px/1.35 Montserrat,sans-serif;letter-spacing:.02em}.tt-global-campaign-bar a{color:inherit;text-decoration:underline;text-underline-offset:2px}.tt-global-campaign-bar button{position:absolute;right:10px;top:50%;transform:translateY(-50%);border:0;background:transparent;color:inherit;font-size:18px;line-height:1;cursor:pointer;padding:6px}
.tt-global-effects{position:fixed;inset:0;z-index:1190;pointer-events:none;overflow:hidden}.tt-global-effect-particle{position:absolute;top:-12vh;left:var(--tt-x);font-size:var(--tt-size);opacity:var(--tt-opacity);animation:tt-global-fall var(--tt-duration) linear var(--tt-delay) infinite;will-change:transform}.tt-global-effect-confetti{width:8px;height:16px;border-radius:2px;background:var(--tt-particle-color);font-size:0}.tt-global-effect-sparkles{filter:drop-shadow(0 0 5px rgba(255,220,100,.5))}@keyframes tt-global-fall{0%{transform:translate3d(0,-12vh,0) rotate(0deg)}100%{transform:translate3d(var(--tt-drift),115vh,0) rotate(540deg)}}
.tt-global-popup-backdrop{position:fixed;inset:0;z-index:6000;display:flex;align-items:center;justify-content:center;padding:20px;background:rgba(20,14,17,.42);backdrop-filter:blur(4px)}.tt-global-popup{--tt-popup-bg:#fff;--tt-popup-text:#30282c;--tt-popup-accent:var(--color-brand-primary, #F8AACA);position:relative;width:min(520px,calc(100vw - 30px));max-height:min(720px,calc(100vh - 30px));overflow:auto;background:var(--tt-popup-bg);color:var(--tt-popup-text);border-radius:22px;box-shadow:0 28px 90px rgba(30,15,22,.28);padding:26px;text-align:center;font-family:Montserrat}.tt-global-popup-image{display:block;width:100%;max-height:330px;object-fit:cover;border-radius:16px;margin:0 0 18px}.tt-global-popup h2{margin:0 0 9px;font-size:clamp(22px,4vw,34px);line-height:1.05;letter-spacing:-.03em}.tt-global-popup p{margin:0 auto 18px;max-width:48ch;font-size:14px;line-height:1.55}.tt-global-popup-action{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:10px 20px;border-radius:999px;background:var(--tt-popup-accent);color:#fff;text-decoration:none;font-weight:800;font-size:12px}.tt-global-popup-close{position:absolute;z-index:2;right:10px;top:10px;width:34px;height:34px;border:0;border-radius:50%;background:rgba(255,255,255,.9);color:#222222;font-size:20px;line-height:1;cursor:pointer;box-shadow:0 3px 14px rgba(0,0,0,.08)}
.tt-global-popup-backdrop[data-kind="bottom-sheet"]{align-items:flex-end;padding:0}.tt-global-popup-backdrop[data-kind="bottom-sheet"] .tt-global-popup{width:min(680px,100%);border-radius:24px 24px 0 0;padding-bottom:max(28px,env(safe-area-inset-bottom))}.tt-global-popup-backdrop[data-kind="floating"]{align-items:flex-end;justify-content:flex-end;background:transparent;backdrop-filter:none;pointer-events:none}.tt-global-popup-backdrop[data-kind="floating"] .tt-global-popup{pointer-events:auto;width:min(360px,calc(100vw - 24px));margin:12px;padding:20px;text-align:left;border-radius:18px}
.tt-global-popup-backdrop[data-kind="top-bar"],.tt-global-popup-backdrop[data-kind="bottom-bar"]{padding:0;background:transparent;backdrop-filter:none;pointer-events:none}.tt-global-popup-backdrop[data-kind="top-bar"]{align-items:flex-start;padding-top:var(--tt-global-campaign-bar-h,0px)}.tt-global-popup-backdrop[data-kind="bottom-bar"]{align-items:flex-end}.tt-global-popup-backdrop[data-kind="top-bar"] .tt-global-popup,.tt-global-popup-backdrop[data-kind="bottom-bar"] .tt-global-popup{pointer-events:auto;width:100%;max-width:none;border-radius:0;padding:14px 52px 14px 18px;display:flex;align-items:center;justify-content:center;gap:12px;text-align:center}.tt-global-popup-backdrop[data-kind="top-bar"] .tt-global-popup h2,.tt-global-popup-backdrop[data-kind="bottom-bar"] .tt-global-popup h2{font-size:14px;margin:0}.tt-global-popup-backdrop[data-kind="top-bar"] .tt-global-popup p,.tt-global-popup-backdrop[data-kind="bottom-bar"] .tt-global-popup p{font-size:11px;margin:0}.tt-global-popup-backdrop[data-kind="top-bar"] .tt-global-popup-image,.tt-global-popup-backdrop[data-kind="bottom-bar"] .tt-global-popup-image{display:none}.tt-global-popup-backdrop[data-kind="top-bar"] .tt-global-popup-action,.tt-global-popup-backdrop[data-kind="bottom-bar"] .tt-global-popup-action{min-height:32px;padding:7px 13px;font-size:10px}
.tt-global-popup[data-animation="fade"]{animation:tt-popup-fade .25s ease both}.tt-global-popup[data-animation="slide-up"]{animation:tt-popup-up .32s cubic-bezier(.2,.8,.2,1) both}.tt-global-popup[data-animation="slide-down"]{animation:tt-popup-down .32s cubic-bezier(.2,.8,.2,1) both}.tt-global-popup[data-animation="zoom"]{animation:tt-popup-zoom .28s ease both}.tt-global-popup[data-animation="pop"]{animation:tt-popup-pop .38s cubic-bezier(.2,1.35,.3,1) both}@keyframes tt-popup-fade{from{opacity:0}to{opacity:1}}@keyframes tt-popup-up{from{opacity:0;transform:translateY(30px)}to{opacity:1;transform:none}}@keyframes tt-popup-down{from{opacity:0;transform:translateY(-30px)}to{opacity:1;transform:none}}@keyframes tt-popup-zoom{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}@keyframes tt-popup-pop{0%{opacity:0;transform:scale(.85)}70%{opacity:1;transform:scale(1.03)}100%{transform:none}}
@media(max-width:600px){.tt-global-campaign-bar{font-size:10px;padding-inline:36px}.tt-global-popup{padding:22px 18px;border-radius:18px}.tt-global-popup-backdrop[data-kind="top-bar"] .tt-global-popup,.tt-global-popup-backdrop[data-kind="bottom-bar"] .tt-global-popup{flex-wrap:wrap;gap:6px;padding:11px 46px 11px 12px}.tt-global-popup-backdrop[data-kind="floating"] .tt-global-popup{margin:8px}}
@media(prefers-reduced-motion:reduce){.tt-global-effect-particle{display:none!important}.tt-global-popup{animation:none!important}}


/* css/components/editor-visual-runtime.css */
.tt-visual-managed{position:relative;background-color:var(--tt-visual-bg,revert-layer);color:var(--tt-visual-text,inherit);transition:background-color .2s ease,color .2s ease,box-shadow .2s ease,outline-color .15s ease}
.tt-visual-managed :where(a,.tt-btn,.tt-section-sub){--color-accent:var(--tt-visual-accent,var(--color-accent,var(--color-brand-primary, #F8AACA)))}
.tt-visual-managed[data-tt-visual-spacing="flush"]{padding-top:0!important;padding-bottom:0!important}.tt-visual-managed[data-tt-visual-spacing="compact"]{padding-top:clamp(20px,3vw,36px)!important;padding-bottom:clamp(20px,3vw,36px)!important}.tt-visual-managed[data-tt-visual-spacing="roomy"]{padding-top:clamp(60px,9vw,112px)!important;padding-bottom:clamp(60px,9vw,112px)!important}.tt-visual-managed[data-tt-visual-spacing="dramatic"]{padding-top:clamp(90px,12vw,160px)!important;padding-bottom:clamp(90px,12vw,160px)!important}
.tt-visual-managed[data-tt-visual-align="left"] :where(.container,.tt-visual-block-inner){text-align:left}.tt-visual-managed[data-tt-visual-align="center"] :where(.container,.tt-visual-block-inner){text-align:center}.tt-visual-managed[data-tt-visual-align="right"] :where(.container,.tt-visual-block-inner){text-align:right}
.tt-visual-managed[data-tt-visual-width="narrow"] :where(.container,.tt-visual-block-inner){max-width:820px;margin-inline:auto}.tt-visual-managed[data-tt-visual-width="contained"] :where(.container,.tt-visual-block-inner){max-width:1120px;margin-inline:auto}.tt-visual-managed[data-tt-visual-width="wide"] :where(.container,.tt-visual-block-inner){max-width:1380px;margin-inline:auto}.tt-visual-managed[data-tt-visual-width="full"] :where(.container,.tt-visual-block-inner){max-width:none;width:100%}
.tt-visual-managed[data-tt-visual-radius="small"]{border-radius:10px}.tt-visual-managed[data-tt-visual-radius="medium"]{border-radius:20px}.tt-visual-managed[data-tt-visual-radius="large"]{border-radius:36px}.tt-visual-managed[data-tt-visual-radius="pill"]{border-radius:999px}
.tt-visual-managed[data-tt-visual-shadow="soft"]{box-shadow:0 10px 34px rgba(50,20,35,.08)}.tt-visual-managed[data-tt-visual-shadow="medium"]{box-shadow:0 18px 54px rgba(50,20,35,.14)}.tt-visual-managed[data-tt-visual-shadow="large"]{box-shadow:0 28px 74px rgba(50,20,35,.2)}.tt-visual-managed[data-tt-visual-shadow="floating"]{box-shadow:0 34px 100px rgba(50,20,35,.24)}
.tt-visual-managed[data-tt-visual-image-fit="contain"] img{object-fit:contain!important}
.tt-visual-managed[data-tt-visual-variant="minimal"]{background:transparent!important;box-shadow:none!important}.tt-visual-managed[data-tt-visual-variant="editorial"] .tt-section-title{font-size:clamp(34px,6vw,72px);letter-spacing:-.04em}.tt-visual-managed[data-tt-visual-variant="spotlight"]{background:linear-gradient(135deg,var(--tt-visual-bg,#fff7fa),#fff)}.tt-visual-managed[data-tt-visual-variant="glass"] .tt-visual-block-inner{background:rgba(255,255,255,.72);backdrop-filter:blur(18px);border:1px solid rgba(255,255,255,.7);border-radius:24px;padding:clamp(24px,5vw,56px)}.tt-visual-managed[data-tt-visual-variant="outline"] .tt-visual-block-inner{border:1px solid color-mix(in srgb,var(--tt-visual-accent,var(--color-brand-primary, #F8AACA)) 35%,transparent);border-radius:20px;padding:clamp(24px,5vw,52px)}.tt-visual-managed[data-tt-visual-variant="split"] .tt-visual-block-inner:has(>.tt-visual-feature-image){display:grid;grid-template-columns:1fr 1fr;gap:clamp(20px,4vw,48px);align-items:center;text-align:left}.tt-visual-managed[data-tt-visual-variant="split"] .tt-visual-block-inner>.tt-visual-feature-image{grid-column:2;grid-row:1/-1;width:100%;height:100%;max-height:none;object-fit:cover;border-radius:20px}
.tt-visual-managed[data-tt-visual-variant="bar"]{padding:10px 5%!important}.tt-visual-managed[data-tt-visual-variant="bar"] :where(.tt-section-sub,.tt-section-desc){display:none}.tt-visual-managed[data-tt-visual-variant="bar"] .tt-section-title{font-size:14px;margin:0}
.tt-visual-managed[data-tt-visual-variant="carousel"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections){display:flex;overflow-x:auto;scroll-snap-type:x mandatory;gap:14px;padding-bottom:10px}.tt-visual-managed[data-tt-visual-variant="carousel"] :where(.tt-visual-product-card,.tt-visual-gallery>img,.tt-visual-collections>a){flex:0 0 min(280px,75vw);scroll-snap-align:start}
.tt-visual-managed[data-tt-visual-variant="mosaic"] .tt-visual-gallery{grid-template-columns:repeat(12,1fr)}.tt-visual-managed[data-tt-visual-variant="mosaic"] .tt-visual-gallery>img{grid-column:span 4}.tt-visual-managed[data-tt-visual-variant="mosaic"] .tt-visual-gallery>img:first-child{grid-column:span 8;grid-row:span 2;aspect-ratio:1.5}
.tt-visual-managed[data-tt-visual-variant="cards"] :where(.tt-visual-product-card,.tt-visual-collections a,.tt-visual-feature-card){border:1px solid rgba(80,45,60,.08);box-shadow:0 12px 36px rgba(50,20,35,.1)}
@media(prefers-reduced-motion:no-preference){.tt-visual-managed[data-tt-visual-animation="fade"]{animation:tt-visual-fade .45s ease both}.tt-visual-managed[data-tt-visual-animation="slide-up"]{animation:tt-visual-up .5s ease both}.tt-visual-managed[data-tt-visual-animation="slide-down"]{animation:tt-visual-down .5s ease both}.tt-visual-managed[data-tt-visual-animation="slide-left"]{animation:tt-visual-left .5s ease both}.tt-visual-managed[data-tt-visual-animation="slide-right"]{animation:tt-visual-right .5s ease both}.tt-visual-managed[data-tt-visual-animation="scale"]{animation:tt-visual-scale .4s ease both}.tt-visual-managed[data-tt-visual-animation="pop"]{animation:tt-visual-pop .5s cubic-bezier(.22,1.4,.36,1) both}.tt-visual-managed[data-tt-visual-animation="reveal"]{animation:tt-visual-reveal .7s cubic-bezier(.2,.8,.2,1) both}}
@keyframes tt-visual-fade{from{opacity:0}to{opacity:1}}@keyframes tt-visual-up{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}@keyframes tt-visual-down{from{opacity:0;transform:translateY(-18px)}to{opacity:1;transform:none}}@keyframes tt-visual-left{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}@keyframes tt-visual-right{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}@keyframes tt-visual-scale{from{opacity:0;transform:scale(.985)}to{opacity:1;transform:none}}@keyframes tt-visual-pop{0%{opacity:0;transform:scale(.9)}70%{opacity:1;transform:scale(1.02)}100%{opacity:1;transform:none}}@keyframes tt-visual-reveal{from{opacity:0;clip-path:inset(0 0 100% 0)}to{opacity:1;clip-path:inset(0)}}
.tt-visual-block{padding:clamp(38px,6vw,78px) 5%;overflow:hidden}.tt-visual-block-inner{width:min(1120px,100%);margin:auto}.tt-visual-feature-image{display:block;width:min(760px,100%);max-height:560px;object-fit:cover;border-radius:18px;margin:24px auto 0}.tt-visual-gallery,.tt-visual-products,.tt-visual-collections,.tt-visual-features{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:16px;margin:26px auto 0}.tt-visual-gallery img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px}.tt-visual-product-card,.tt-visual-collections a,.tt-visual-feature-card{display:block;background:#fff;color:inherit;text-decoration:none;border-radius:14px;padding:12px;text-align:left;box-shadow:0 5px 20px rgba(50,20,35,.08)}.tt-visual-product-card img,.tt-visual-product-placeholder{display:block;width:100%;aspect-ratio:1;object-fit:cover;border-radius:10px;background:linear-gradient(135deg,#f7d9e5,#fff)}.tt-visual-product-card strong,.tt-visual-product-card small{display:block;margin-top:8px}.tt-visual-product-card small{color:#222222}.tt-visual-collections a{text-align:center;font-weight:800;padding:28px 16px}.tt-visual-feature-card{padding:22px}.tt-visual-feature-card strong{display:block;margin-bottom:8px}.tt-visual-feature-card p{margin:0;line-height:1.55}
.tt-visual-testimonial-body{display:flex;flex-direction:column;align-items:center;gap:14px;max-width:640px;margin-inline:auto}.tt-visual-testimonial-avatar{width:76px;height:76px;border-radius:50%;object-fit:cover}.tt-visual-testimonial-quote{font-size:clamp(17px,2.2vw,22px);font-style:italic;line-height:1.5;margin:0}.tt-visual-testimonial-who{display:flex;flex-direction:column;gap:2px;font-size:13px}.tt-visual-testimonial-who span{opacity:.75}
.tt-visual-video-wrap{position:relative;width:min(920px,100%);aspect-ratio:16/9;margin:24px auto 0;border-radius:16px;overflow:hidden;background:#000}.tt-visual-video-wrap iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.tt-visual-faq{width:min(760px,100%);margin:24px auto 0;text-align:left;display:grid;gap:10px}.tt-visual-faq-item{background:#fff;border-radius:14px;padding:14px 18px;box-shadow:0 5px 20px rgba(50,20,35,.06)}.tt-visual-faq-item summary{cursor:pointer;font-weight:800;list-style:none}.tt-visual-faq-item summary::-webkit-details-marker{display:none}.tt-visual-faq-item summary::after{content:"+";float:right;font-weight:400}.tt-visual-faq-item[open] summary::after{content:"–"}.tt-visual-faq-item p{margin:10px 0 0;line-height:1.55}
.tt-visual-columns{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(20px,4vw,56px);align-items:center;text-align:left}.tt-visual-columns-right{direction:rtl}.tt-visual-columns-right>*{direction:ltr}.tt-visual-columns-image{width:100%;max-height:480px;object-fit:cover;border-radius:18px}.tt-visual-columns-text{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.tt-visual-divider-rule{width:min(1120px,100%);margin:0 auto;border:none;border-top:1px solid rgba(50,20,35,.14)}.tt-visual-block-spacer{padding:0!important}.tt-visual-block-spacer[data-tt-visual-spacer="small"]{height:24px}.tt-visual-block-spacer[data-tt-visual-spacer="medium"]{height:48px}.tt-visual-block-spacer[data-tt-visual-spacer="large"]{height:80px}.tt-visual-block-spacer[data-tt-visual-spacer="xlarge"]{height:128px}
.tt-visual-block-marquee{padding:14px 0!important;overflow:hidden}.tt-visual-marquee{overflow:hidden;white-space:nowrap}.tt-visual-marquee-track{display:inline-flex;gap:44px;min-width:max-content}.tt-visual-marquee-track span{font-weight:900;text-transform:uppercase;letter-spacing:.08em}.tt-visual-marquee-slow .tt-visual-marquee-track{animation:tt-marquee 28s linear infinite}.tt-visual-marquee-normal .tt-visual-marquee-track{animation:tt-marquee 18s linear infinite}.tt-visual-marquee-fast .tt-visual-marquee-track{animation:tt-marquee 10s linear infinite}@keyframes tt-marquee{to{transform:translateX(-50%)}}
.tt-visual-countdown{display:flex;justify-content:center;margin-top:22px}.tt-visual-countdown-value{font-size:clamp(28px,5vw,56px);font-variant-numeric:tabular-nums;letter-spacing:-.03em}
.tt-visual-editor-selected{outline:3px solid var(--color-brand-primary, #F8AACA)!important;outline-offset:-3px!important}.tt-visual-editor-selected::after{content:"Editando";position:absolute;z-index:9999;top:8px;left:8px;background:var(--color-brand-primary, #F8AACA);color:#222222;border-radius:999px;padding:5px 9px;font:700 10px/1 Montserrat,sans-serif;letter-spacing:.04em;text-transform:uppercase;pointer-events:none}
@media(min-width:1025px){.tt-visual-managed[data-tt-visual-desktop-visibility="hide"]{display:none!important}.tt-visual-managed[data-tt-visual-desktop-spacing="flush"]{padding-block:0!important}.tt-visual-managed[data-tt-visual-desktop-spacing="compact"]{padding-block:28px!important}.tt-visual-managed[data-tt-visual-desktop-spacing="roomy"]{padding-block:86px!important}.tt-visual-managed[data-tt-visual-desktop-spacing="dramatic"]{padding-block:130px!important}.tt-visual-managed[data-tt-visual-desktop-width="narrow"] :where(.container,.tt-visual-block-inner){max-width:820px}.tt-visual-managed[data-tt-visual-desktop-width="contained"] :where(.container,.tt-visual-block-inner){max-width:1120px}.tt-visual-managed[data-tt-visual-desktop-width="wide"] :where(.container,.tt-visual-block-inner){max-width:1380px}.tt-visual-managed[data-tt-visual-desktop-width="full"] :where(.container,.tt-visual-block-inner){max-width:none;width:100%}.tt-visual-managed[data-tt-visual-desktop-align="left"] :where(.container,.tt-visual-block-inner){text-align:left}.tt-visual-managed[data-tt-visual-desktop-align="center"] :where(.container,.tt-visual-block-inner){text-align:center}.tt-visual-managed[data-tt-visual-desktop-align="right"] :where(.container,.tt-visual-block-inner){text-align:right}}
@media(min-width:769px) and (max-width:1024px){.tt-visual-managed[data-tt-visual-tablet-visibility="hide"]{display:none!important}.tt-visual-managed[data-tt-visual-tablet-spacing="flush"]{padding-block:0!important}.tt-visual-managed[data-tt-visual-tablet-spacing="compact"]{padding-block:24px!important}.tt-visual-managed[data-tt-visual-tablet-spacing="roomy"]{padding-block:70px!important}.tt-visual-managed[data-tt-visual-tablet-spacing="dramatic"]{padding-block:100px!important}.tt-visual-managed[data-tt-visual-tablet-width="narrow"] :where(.container,.tt-visual-block-inner){max-width:720px}.tt-visual-managed[data-tt-visual-tablet-width="contained"] :where(.container,.tt-visual-block-inner){max-width:900px}.tt-visual-managed[data-tt-visual-tablet-width="wide"] :where(.container,.tt-visual-block-inner){max-width:1000px}.tt-visual-managed[data-tt-visual-tablet-width="full"] :where(.container,.tt-visual-block-inner){max-width:none;width:100%}.tt-visual-managed[data-tt-visual-tablet-align="left"] :where(.container,.tt-visual-block-inner){text-align:left}.tt-visual-managed[data-tt-visual-tablet-align="center"] :where(.container,.tt-visual-block-inner){text-align:center}.tt-visual-managed[data-tt-visual-tablet-align="right"] :where(.container,.tt-visual-block-inner){text-align:right}}
@media(max-width:768px){.tt-visual-columns{grid-template-columns:1fr}.tt-visual-columns-right{direction:ltr}.tt-visual-managed[data-tt-visual-variant="split"] .tt-visual-block-inner{grid-template-columns:1fr}.tt-visual-managed[data-tt-visual-variant="split"] .tt-visual-block-inner>.tt-visual-feature-image{grid-column:1;grid-row:auto;max-height:280px}.tt-visual-managed[data-tt-visual-mobile-visibility="hide"]{display:none!important}.tt-visual-managed[data-tt-visual-mobile-spacing="flush"]{padding-block:0!important}.tt-visual-managed[data-tt-visual-mobile-spacing="compact"]{padding-block:20px!important}.tt-visual-managed[data-tt-visual-mobile-spacing="roomy"]{padding-block:56px!important}.tt-visual-managed[data-tt-visual-mobile-spacing="dramatic"]{padding-block:82px!important}.tt-visual-managed[data-tt-visual-mobile-width="narrow"] :where(.container,.tt-visual-block-inner){max-width:560px}.tt-visual-managed[data-tt-visual-mobile-width="full"] :where(.container,.tt-visual-block-inner){max-width:none;width:100%}.tt-visual-managed[data-tt-visual-mobile-align="left"] :where(.container,.tt-visual-block-inner){text-align:left}.tt-visual-managed[data-tt-visual-mobile-align="center"] :where(.container,.tt-visual-block-inner){text-align:center}.tt-visual-managed[data-tt-visual-mobile-align="right"] :where(.container,.tt-visual-block-inner){text-align:right}.tt-visual-managed[data-tt-visual-mobile-columns="1"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:1fr}.tt-visual-managed[data-tt-visual-mobile-columns="2"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(2,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-mobile-columns="3"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(3,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-mobile-image-fit="contain"] img{object-fit:contain!important}}
@media(min-width:769px) and (max-width:1024px){.tt-visual-managed[data-tt-visual-tablet-columns="1"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:1fr}.tt-visual-managed[data-tt-visual-tablet-columns="2"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(2,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-tablet-columns="3"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(3,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-tablet-columns="4"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(4,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-tablet-image-fit="contain"] img{object-fit:contain!important}}
@media(min-width:1025px){.tt-visual-managed[data-tt-visual-desktop-columns="1"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:1fr}.tt-visual-managed[data-tt-visual-desktop-columns="2"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(2,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-desktop-columns="3"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(3,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-desktop-columns="4"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(4,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-desktop-columns="5"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(5,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-desktop-columns="6"] :where(.tt-visual-products,.tt-visual-gallery,.tt-visual-collections,.tt-visual-features){grid-template-columns:repeat(6,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-desktop-image-fit="contain"] img{object-fit:contain!important}}
@media(max-width:600px){.tt-visual-block{padding-inline:18px}.tt-visual-products,.tt-visual-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.tt-visual-managed[data-tt-visual-radius="large"]{border-radius:24px}.tt-visual-testimonial-avatar{width:64px;height:64px}.tt-visual-managed[data-tt-visual-variant="mosaic"] .tt-visual-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.tt-visual-managed[data-tt-visual-variant="mosaic"] .tt-visual-gallery>img{grid-column:auto;grid-row:auto;aspect-ratio:1}}
@media(prefers-reduced-motion:reduce){.tt-visual-marquee-track{animation:none!important;transform:none!important}}


/* css/components/notifications/notificaciones-sociales.css */
:root {
  --tt-notif-pink: var(--color-brand-primary, #F8AACA);
  --tt-notif-pink-strong: var(--color-brand-primary, #F8AACA);
  --tt-notif-pink-soft: #fff2f7;
  --tt-notif-pink-border: #efc8d7;
  --tt-notif-gold: #c79a3b;
  --tt-notif-ink: #4a3540;
  --tt-notif-muted: #836d77;
  --tt-notif-white: #ffffff;
}

.tt-notification-trigger {
  position: relative !important;
  overflow: visible !important;
}

/* El aviso debe leerse como una única unidad visual en cualquier cabecera:
   campana limpia sobre círculo neutro y contador rojo por encima.  Los
   encabezados conservan sus tamaños propios; esta capa sólo normaliza los
   botones de actividad y carrito. */
.tt-header-actions .tt-notification-trigger,
.tt-header-actions :is(#btn-cart, #btn-cart-tablet),
.tt-tablet-actions .tt-notification-trigger,
.tt-tablet-actions :is(#btn-cart-tablet),
#tt-tabbar :is(.tt-notification-trigger, #tabbar-cart) {
  background: #eef1f4 !important;
  color:#222222 !important;
  border-color: transparent !important;
  border-radius: 50% !important;
  box-shadow: none !important;
}

.tt-header-actions .tt-notification-trigger:hover,
.tt-header-actions .tt-notification-trigger:focus-visible,
.tt-header-actions :is(#btn-cart, #btn-cart-tablet):hover,
.tt-header-actions :is(#btn-cart, #btn-cart-tablet):focus-visible,
.tt-tablet-actions .tt-notification-trigger:hover,
.tt-tablet-actions .tt-notification-trigger:focus-visible,
.tt-tablet-actions #btn-cart-tablet:hover,
.tt-tablet-actions #btn-cart-tablet:focus-visible,
#tt-tabbar :is(.tt-notification-trigger, #tabbar-cart):hover,
#tt-tabbar :is(.tt-notification-trigger, #tabbar-cart):focus-visible {
  background: #e1e6eb !important;
  color:#222222 !important;
}

.tt-notification-trigger[hidden] {
  display: none !important;
}

.tt-notification-badge {
  position: absolute;
  /* Keep the count outside the icon's circle so it remains legible and never
     gets clipped by the header button. */
  top: -5px;
  right: -5px;
  min-width: 19px;
  height: 19px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--color-brand-primary, #F8AACA);
  color:#222222;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 3px 8px rgba(156, 25, 49, .26);
  z-index: 3;
}

.tt-notification-badge[hidden] {
  display: none !important;
}

/* Cart counts use the same external badge treatment as notifications.  The
   header buttons historically clipped their children, so explicitly opt both
   actions out of clipping here. */
.tt-header-actions :is(#btn-notifications, #btn-cart, #btn-notifications-tablet, #btn-cart-tablet),
#tt-tabbar :is(#tabbar-notifications, #tabbar-cart),
.tt-tablet-actions :is(#btn-notifications-tablet, #btn-cart-tablet) {
  position: relative;
  overflow: visible !important;
}

.tt-cart-badge,
#cart-badge-mobile {
  position: absolute;
  top: -5px;
  right: -5px;
  min-width: 19px;
  width: auto;
  height: 19px;
  padding: 0 5px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 2px solid #fff;
  border-radius: 999px;
  background: var(--color-brand-primary, #F8AACA);
  color:#222222;
  font-size: 10px;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 3px 8px rgba(156, 25, 49, .26);
  z-index: 3;
}

.tt-cart-badge.hidden,
#cart-badge-mobile.hidden {
  display: none !important;
}

.tt-notifications-drawer {
  position: fixed;
  z-index: var(--tt-z-notification, 1550);
  top: 0;
  right: 0;
  width: min(440px, 100vw);
  height: 100dvh;
  display: flex;
  flex-direction: column;
  background: linear-gradient(180deg, #fff 0%, #fff9fb 100%);
  border-left: 1px solid var(--tt-notif-pink-border);
  box-shadow: -22px 0 60px rgba(83, 42, 59, .16);
  clip-path: inset(0 0 0 100%);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transition: clip-path .28s cubic-bezier(.2,.82,.2,1), opacity .2s ease, visibility 0s linear .28s;
  color: var(--tt-notif-ink);
}

.tt-notifications-drawer.open {
  clip-path: inset(0);
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition-delay: 0s;
}

.tt-notifications-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 24px 22px 18px;
  border-bottom: 1px solid var(--tt-notif-pink-border);
  background: #fff7fa;
}

.tt-notifications-kicker {
  margin: 0 0 4px;
  color: var(--tt-notif-gold);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .11em;
  text-transform: uppercase;
}

.tt-notifications-title {
  margin: 0;
  color: var(--tt-notif-pink-strong);
  font-size: clamp(1.22rem, 3vw, 1.55rem);
  line-height: 1.15;
}

.tt-notifications-close,
.tt-notifications-mark-all {
  border: 1px solid var(--tt-notif-pink-border);
  background: #fff;
  color: var(--tt-notif-pink-strong);
  border-radius: 999px;
  font: inherit;
  cursor: pointer;
}

.tt-notifications-close {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  font-size: 20px;
}

.tt-notifications-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 18px;
  border-bottom: 1px solid #f5dce5;
}

.tt-notifications-count {
  color: var(--tt-notif-muted);
  font-size: 12px;
}

.tt-notifications-mark-all {
  min-height: 36px;
  padding: 7px 12px;
  font-size: 12px;
  font-weight: 700;
}

.tt-notifications-list {
  flex: 1 1 auto;
  min-height: 0;
  overflow: auto;
  overscroll-behavior: contain;
  padding: 10px 10px max(24px, env(safe-area-inset-bottom));
}

.tt-notification-card {
  width: 100%;
  display: grid;
  grid-template-columns: 46px minmax(0, 1fr) 56px;
  align-items: center;
  gap: 11px;
  padding: 12px;
  border: 1px solid transparent;
  border-radius: 18px;
  background: transparent;
  color: inherit;
  text-align: left;
  cursor: pointer;
  transition: background .18s ease, border-color .18s ease, transform .18s ease;
}

.tt-notification-card + .tt-notification-card {
  margin-top: 3px;
}

.tt-notification-card:hover,
.tt-notification-card:focus-visible {
  background: #fff;
  border-color: var(--tt-notif-pink-border);
  outline: none;
}

.tt-notification-card:active {
  transform: scale(.992);
}

.tt-notification-card.is-unread {
  background: var(--tt-notif-pink-soft);
  border-color: #f3d6e1;
}

.tt-notification-icon {
  width: 44px;
  height: 44px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  color: var(--tt-notif-pink-strong);
  background: #fff;
  border: 1px solid var(--tt-notif-pink-border);
  box-shadow: 0 7px 16px rgba(151, 55, 91, .08);
}

.tt-notification-icon[data-icon="heart"] {
  color:var(--color-text-primary,#222222);
  background: #fff1f6;
}

.tt-notification-icon[data-icon="order"] {
  color: var(--tt-notif-gold);
  background: #fffaf0;
  border-color: #ead7aa;
}

.tt-notification-icon[data-icon="comment"],
.tt-notification-icon[data-icon="review"] {
  color:var(--color-text-primary,#222222);
  background: #fff7fa;
}

.tt-notification-copy {
  min-width: 0;
}

.tt-notification-copy strong {
  display: block;
  color: var(--tt-notif-ink);
  font-size: 13px;
  line-height: 1.35;
}

.tt-notification-copy p {
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
  margin: 3px 0 0;
  color: var(--tt-notif-muted);
  font-size: 12px;
  line-height: 1.4;
}

.tt-notification-meta {
  display: flex;
  align-items: center;
  gap: 7px;
  margin-top: 6px;
  color: #a48090;
  font-size: 11px;
}

.tt-notification-dot {
  width: 7px;
  height: 7px;
  flex: 0 0 auto;
  border-radius: 50%;
  background: var(--tt-notif-pink-strong);
}

.tt-notification-thumb {
  width: 54px;
  height: 54px;
  object-fit: cover;
  border-radius: 14px;
  border: 1px solid var(--tt-notif-pink-border);
  background: #fff7fa;
}

.tt-notification-thumb-placeholder {
  width: 54px;
  height: 54px;
  display: grid;
  place-items: center;
  border-radius: 14px;
  color: var(--tt-notif-gold);
  background: #fffaf2;
  border: 1px solid #efdfbd;
  font-weight: 800;
}

.tt-notifications-empty,
.tt-notifications-loading,
.tt-notifications-error {
  margin: 38px 18px;
  padding: 28px 18px;
  text-align: center;
  border: 1px dashed var(--tt-notif-pink-border);
  border-radius: 20px;
  color: var(--tt-notif-muted);
  background: #fff;
}

.tt-notifications-error {
  color:var(--color-text-primary,#222222);
}

.tt-review-card.tt-review-deeplink-highlight {
  animation: tt-review-highlight 1.8s ease both;
}

@keyframes tt-review-highlight {
  0%, 100% { box-shadow: var(--tt-review-shadow, 0 12px 30px rgba(98, 44, 65, .08)); }
  35% { box-shadow: 0 0 0 4px rgba(199,154,59,.24), 0 18px 42px rgba(184,76,114,.16); }
}

@media (max-width: 767px) {
  #tt-tabbar:has(#tabbar-notifications:not([hidden])) {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    width: min(446px, calc(100vw - 12px));
    padding-inline: 7px;
  }

  #tt-tabbar:has(#tabbar-notifications:not([hidden])).tt-tabbar-compact {
    width: min(356px, calc(100vw - 28px));
  }

  #tt-tabbar #tabbar-notifications .tt-notification-badge {
    top: -4px;
    right: calc(50% - 17px);
  }

  #tt-tabbar #tabbar-cart #cart-badge-mobile {
    top: -4px;
    right: calc(50% - 17px);
  }

  .tt-notifications-drawer {
    top: auto;
    bottom: 0;
    width: 100%;
    height: min(82dvh, 720px);
    border-left: 0;
    border-top: 1px solid var(--tt-notif-pink-border);
    border-radius: 26px 26px 0 0;
    clip-path: inset(100% 0 0 0);
    box-shadow: 0 -22px 60px rgba(83, 42, 59, .18);
  }

  .tt-notifications-drawer.open {
    clip-path: inset(0);
  }

  .tt-notifications-head {
    padding: 18px 18px 14px;
    border-radius: 26px 26px 0 0;
  }

  .tt-notification-card {
    grid-template-columns: 42px minmax(0,1fr) 48px;
    gap: 9px;
    padding: 10px;
  }

  .tt-notification-icon {
    width: 40px;
    height: 40px;
  }

  .tt-notification-thumb,
  .tt-notification-thumb-placeholder {
    width: 46px;
    height: 46px;
    border-radius: 12px;
  }
}

@media (max-width: 360px) {
  #tt-tabbar:has(#tabbar-notifications:not([hidden])) .tt-tabbar-btn span:last-child {
    font-size: .47rem;
  }
  .tt-notification-card {
    grid-template-columns: 38px minmax(0,1fr) 42px;
  }
  .tt-notification-icon { width: 36px; height: 36px; }
  .tt-notification-thumb,
  .tt-notification-thumb-placeholder { width: 40px; height: 40px; }
}

@media (prefers-reduced-motion: reduce) {
  .tt-notifications-drawer,
  .tt-notification-card,
  .tt-review-card.tt-review-deeplink-highlight {
    transition: none !important;
    animation: none !important;
  }
}


/* css/components/navigation/escritorio/encabezado-escritorio.css */
@media (min-width: 1025px) {
/* Header surfaces bundle 2026-08-27: alignment refinements. */
/* TINTIN desktop header — source of truth for >=1025px. */
.tt-header-desktop { display: none !important; }

@media (min-width: 1025px) {
  .tt-header-desktop {
    display: block !important;
    visibility: visible !important;
    pointer-events: auto !important;
    height: 88px;
    background: #fff !important;
    border-bottom: 1px solid rgba(248,170,202,.13) !important;
    box-shadow: 0 10px 32px rgba(126,30,65,.045) !important;
    backdrop-filter: none;
  }

  .tt-header-desktop .tt-header-inner {
    display: grid;
    grid-template-columns: minmax(170px,1fr) auto minmax(170px,1fr);
    align-items: center;
    height: 88px;
    padding: 0 clamp(28px,3.4vw,64px);
    gap: 32px;
  }

  .tt-header-desktop .tt-logo-link {
    justify-self:start;
    display:inline-flex;
    align-items:center;
    gap:12px;
    min-width:0;
    color:var(--color-text-primary,#222222);
    text-decoration:none;
  }
  .tt-header-desktop .tt-logo-img { width:104px; height:56px; object-fit:cover; flex:0 0 auto; }
  .tt-header-desktop .tt-nav-desktop {
    position: relative;
    justify-self: center;
    display: flex !important;
    align-items: center;
    gap: 6px;
    isolation: isolate;
  }

  .tt-header-desktop .tt-desktop-active-pill {
    position: absolute;
    z-index: -1;
    top: 0;
    left: 0;
    width: 0;
    height: 44px;
    border: 1px solid rgba(248,170,202,.5);
    border-radius: 999px;
    background: var(--color-brand-primary, #F8AACA);
    box-shadow: 0 6px 18px rgba(248,170,202,.07);
    opacity: 0;
    transform: translateX(var(--tt-pill-x,0));
    transition: transform 420ms cubic-bezier(.2,.85,.2,1), width 340ms cubic-bezier(.2,.85,.2,1), opacity 160ms ease;
    pointer-events: none;
  }

  .tt-header-desktop .tt-desktop-active-pill.is-ready { opacity: 1; }
  .tt-header-desktop .tt-nav > a,
  .tt-header-desktop .tt-nav-dropdown > button {
    z-index: 1;
    min-height: 44px;
    padding: 12px 22px;
    font-weight: 600 !important;
    letter-spacing: .09em !important;
    color:var(--color-text-primary,#222222) !important;
    background: transparent !important;
    border: 1px solid transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  /* Tienda es parte de la navegación principal, no un botón de acción.
     Esta regla deliberadamente más específica neutraliza capas globales
     antiguas que le aplicaban un segundo marco blanco/rosado al activarse. */
  #tt-header-desktop-tablet #tt-nav-desktop-tablet #btn-tienda,
  #tt-header-desktop-tablet #tt-nav-desktop-tablet #btn-tienda:hover,
  #tt-header-desktop-tablet #tt-nav-desktop-tablet #btn-tienda:focus-visible,
  #tt-header-desktop-tablet #tt-nav-desktop-tablet #btn-tienda.active,
  #tt-header-desktop-tablet #tt-nav-desktop-tablet #btn-tienda[aria-expanded="true"] {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    border-color: transparent !important;
    box-shadow: none !important;
    transform: none !important;
  }

  .tt-header-desktop .tt-nav > a::after,
  .tt-header-desktop .tt-nav-dropdown > button::after { display: none; }
  .tt-header-desktop .tt-nav > a:hover,
  .tt-header-desktop .tt-nav-dropdown > button:hover { color:var(--color-text-primary,#222222) !important; }
  .tt-header-desktop .tt-header-actions { justify-self: end; gap: 10px; }
  .tt-header-desktop .tt-header-actions > button,
  .tt-header-desktop .tt-header-actions > .tt-nav-dropdown > button {
    width: 46px;
    height: 46px;
    color:#222222 !important;
    background: #fff !important;
    border: 1px solid rgba(248,170,202,.14) !important;
    box-shadow: none;
    transition: transform .22s cubic-bezier(.2,.85,.2,1), color .2s ease, background .2s ease, box-shadow .22s ease, border-color .2s ease;
  }

  .tt-header-desktop .tt-header-actions > button:hover,
  .tt-header-desktop .tt-header-actions > .tt-nav-dropdown > button:hover {
    color:var(--color-text-primary,#222222) !important;
    background: #fff4f8 !important;
    border-color: rgba(248,170,202,.22) !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 6px 16px rgba(248,170,202,.09) !important;
  }

  .tt-header-desktop .tt-dropdown {
    top: calc(100% + 20px);
    width: min(980px, calc(100vw - 64px)) !important;
    max-width: 980px !important;
  }

  .tt-header-desktop .tt-dropdown-grid {
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 20px;
  }

  .tt-header-desktop .tt-dropdown-card {
    min-width: 0;
    padding: 18px 10px;
  }

  .tt-header-desktop .tt-dropdown-icon {
    width: 84px !important;
    height: 84px !important;
    border-radius: 22px !important;
    overflow: hidden;
  }

  .tt-header-desktop .tt-dropdown-icon img {
    width: 100%;
    height: 100%;
    object-fit: cover;
  }

  html[data-tt-surface-controller="ready"] .tt-nav-dropdown:not(.open) .tt-dropdown {
    opacity: 0 !important;
    visibility: hidden !important;
    pointer-events: none !important;
    transform: translateX(-50%) translateY(-10px) scale(.98) !important;
  }
}

@media (min-width: 1025px) and (max-width: 1120px) {
  .tt-header-desktop .tt-header-inner {
    /* La reserva simétrica mantiene la navegación centrada y deja espacio
       real para Buscar + Alertas + Cuenta + Carrito en una sesión activa. */
    grid-template-columns: 196px minmax(0, 1fr) 196px !important;
    gap: 10px !important;
    padding-inline: 14px !important;
  }
  .tt-header-desktop .tt-logo-img { width:104px !important; height:56px !important; max-width:104px; object-fit:cover; }
  .tt-header-desktop .tt-logo-link { gap:6px; }
  .tt-header-desktop .tt-nav > a,
  .tt-header-desktop .tt-nav-dropdown > button { padding-inline: 11px !important; font-size: .72rem !important; }
  .tt-header-desktop .tt-header-actions { gap: 4px !important; }
  .tt-header-desktop .tt-header-actions > button,
  .tt-header-desktop .tt-header-actions > .tt-nav-dropdown > button { width: 44px !important; height: 44px !important; }
  .tt-header-desktop .tt-dropdown {
    width: min(800px, calc(100vw - 32px)) !important;
    max-width: min(800px, calc(100vw - 32px)) !important;
  }
  .tt-header-desktop .tt-dropdown-grid { grid-template-columns: repeat(4, minmax(0, 1fr)); }
}

@media (prefers-reduced-motion: reduce) {
  .tt-header-desktop .tt-desktop-active-pill { transition: none; }
}
/* Header surfaces bundle 2026-08-27: alignment refinements. */

}

/* css/components/navigation/tableta/encabezado-tableta.css */
@media (min-width: 768px) and (max-width: 1024px) {
/* TINTIN tablet header and menu — source of truth for 768–1024px. */
.tt-header-tablet,
.tt-tablet-menu { display: none !important; }

@media (min-width: 768px) and (max-width: 1024px) {
  .tt-header-tablet {
    display: block !important;
    position: fixed;
    inset: 0 0 auto;
    z-index: var(--z-header,900);
    height: 84px;
    background: #fff;
    border-bottom: 1px solid rgba(248,170,202,.13);
    box-shadow: 0 10px 32px rgba(126,30,65,.045);
    backdrop-filter: none;
  }

  .tt-tablet-header-inner {
    position: relative;
    display: grid;
    grid-template-columns: minmax(210px, 1fr) auto minmax(210px, 1fr);
    align-items: center;
    width: 100%;
    height: 84px;
    padding: 0 clamp(26px,4.2vw,48px);
    column-gap: 12px;
  }

  .tt-tablet-logo-link {
    position: static;
    justify-self: center;
    display:flex;
    align-items:center;
    gap:8px;
    min-width: 0;
    max-width: min(240px, 31vw);
    transform: none;
    color:var(--color-text-primary,#222222);
    text-decoration:none;
  }

  .tt-tablet-logo-img {
    width:104px;
    max-width:100%;
    height:56px;
    object-fit:cover;
  }
  .tt-tablet-menu-toggle,
  .tt-tablet-actions button,
  .tt-tablet-actions a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 46px;
    height: 46px;
    padding: 0;
    color:#222222;
    background: #fff;
    border: 1px solid rgba(248,170,202,.14);
    border-radius: 50%;
    cursor: pointer;
    text-decoration: none;
    transition: transform .22s cubic-bezier(.2,.85,.2,1), color .2s ease, background .2s ease, box-shadow .22s ease, border-color .2s ease;
  }

  .tt-tablet-menu-toggle {
    justify-self: start;
    border-color: transparent;
    border-radius: 14px;
  }
  .tt-tablet-actions {
    justify-self: end;
    display: flex;
    align-items: center;
    gap: 9px;
    min-width: 0;
  }
  .tt-tablet-menu-toggle:hover,
  .tt-tablet-actions button:hover,
  .tt-tablet-actions a:hover,
  .tt-tablet-actions button[aria-expanded="true"] {
    color:var(--color-text-primary,#222222);
    background:#fff4f8;
    border-color: rgba(248,170,202,.22);
    transform:translateY(-1px);
    box-shadow:0 6px 16px rgba(248,170,202,.09);
  }

  .tt-tablet-menu-lines { display:grid; gap:5px; width:23px; }
  .tt-tablet-menu-lines span { display:block; width:100%; height:2px; border-radius:3px; background:currentColor; transition:transform .25s ease, opacity .2s ease; }
  .tt-tablet-menu-toggle[aria-expanded="true"] .tt-tablet-menu-lines span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .tt-tablet-menu-toggle[aria-expanded="true"] .tt-tablet-menu-lines span:nth-child(2){opacity:0}
  .tt-tablet-menu-toggle[aria-expanded="true"] .tt-tablet-menu-lines span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}

  .tt-tablet-menu {
    display: flex !important;
    position: fixed;
    inset: 0;
    z-index: var(--tt-z-header, 1900);
    flex-direction: column;
    padding: max(24px,env(safe-area-inset-top)) clamp(28px,6vw,70px) max(28px,env(safe-area-inset-bottom));
    background: #fff;
    overflow-y: auto;
    visibility: hidden;
    pointer-events: none;
    opacity: 0;
    clip-path: circle(0 at var(--tt-menu-origin-x,42px) var(--tt-menu-origin-y,42px));
    transition: clip-path 420ms cubic-bezier(.2,.8,.2,1), opacity 180ms ease, visibility 420ms;
  }

  .tt-tablet-menu.open {
    visibility:visible;
    pointer-events:auto;
    opacity:1;
    clip-path:circle(var(--tt-menu-radius,150vmax) at var(--tt-menu-origin-x,42px) var(--tt-menu-origin-y,42px));
  }

  .tt-tablet-menu-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:clamp(20px,3.5vh,36px); }
  .tt-tablet-menu-logo { display:flex; align-items:center; gap:11px; color:var(--color-text-primary,#222222); text-decoration:none; }
  .tt-tablet-menu-logo-img { height:46px; width:auto; max-width:min(260px,50vw); object-fit:contain; }
  .tt-tablet-menu-close { display:inline-flex; align-items:center; justify-content:center; width:46px; height:46px; border:1px solid rgba(248,170,202,.14); border-radius:50%; background:#fff; color:#222222; cursor:pointer; transition:transform .22s cubic-bezier(.2,.85,.2,1), border-color .2s ease; }
  .tt-tablet-menu-close:hover { transform:translateY(-1px); border-color:rgba(248,170,202,.22); }
  .tt-tablet-nav { width:min(100%,780px); margin:0 auto; }
  .tt-tablet-nav > a,
  .tt-tablet-nav > button {
    display:flex;
    align-items:center;
    justify-content:space-between;
    width:100%;
    min-height:60px;
    padding:16px 20px;
    border:0;
    border-bottom:1px solid rgba(248,170,202,.1);
    background:transparent;
    color:#222222;
    font:600 clamp(1rem,2.3vw,1.25rem)/1.2 Montserrat;
    letter-spacing:.04em;
    text-decoration:none;
    text-align:left;
    cursor:pointer;
  }

  .tt-tablet-nav > .active,
  .tt-tablet-nav > [aria-current="page"] {
    color:var(--color-text-primary,#222222);
    background:#fde9f0;
    border-radius:16px;
    border-bottom-color:transparent;
  }
  .tt-tablet-cats { max-height:0; overflow:hidden; opacity:0; transition:max-height .32s cubic-bezier(.2,.8,.2,1),opacity .2s ease; }
  .tt-tablet-cats.open { max-height:620px; opacity:1; }
  .tt-tablet-cats-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:14px 0; }
  .tt-tablet-cat-card { display:flex; flex-direction:column; align-items:center; gap:7px; min-width:0; padding:10px 6px; color:#222222; font:650 .7rem/1.2 Montserrat; text-decoration:none; }
  .tt-tablet-cat-img { display:flex; align-items:center; justify-content:center; width:74px; height:74px; border-radius:18px; overflow:hidden; }
  .tt-tablet-cat-img img { width:100%; height:100%; object-fit:cover; }
  .tt-tablet-ver-todo { display:flex; justify-content:center; padding:13px; color:var(--color-text-primary,#222222); font-weight:700; text-decoration:none; }
  .tt-tablet-account-entry {
    width:min(100%,780px);
    min-height:50px;
    margin:28px auto 0;
    padding:12px 18px;
    border:1px solid #efcbd8;
    border-radius:16px;
    background:#FDECF2;
    color:var(--color-text-primary,#222222);
    font-weight:750;
    text-align:left;
    cursor:pointer;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tt-tablet-menu,.tt-tablet-cats,.tt-tablet-menu-lines span { transition:none !important; }
}

}

/* css/components/navigation/movil/encabezado-movil.css */
@media (max-width: 767px) {
/* TINTIN mobile tabbar — source of truth for 0–767px. */
@media (min-width: 768px) {
  #tt-tabbar { display:none !important; visibility:hidden !important; pointer-events:none !important; }
}

@media (max-width: 767px) {
  #tt-header-desktop-tablet,
  #tt-header-tablet { display:none !important; visibility:hidden !important; pointer-events:none !important; }

  #tt-tabbar {
    --tt-mobile-step: 0px;
    display:grid !important;
    grid-template-columns:repeat(5,minmax(0,1fr));
    align-items:center;
    left:50%;
    bottom:max(12px,env(safe-area-inset-bottom));
    width:min(420px,calc(100vw - 20px));
    max-width:none;
    min-height:70px;
    padding:8px 10px;
    gap:0;
    border:1px solid rgba(248,170,202,.2);
    border-radius:999px;
    background:#fff !important;
    box-shadow:0 14px 38px rgba(56,21,34,.18),0 0 0 1px rgba(255,255,255,.72) inset;
    overflow:visible;
    isolation:isolate;
    transition:width .34s cubic-bezier(.2,.85,.2,1),min-height .34s cubic-bezier(.2,.85,.2,1),padding .34s cubic-bezier(.2,.85,.2,1),border-radius .34s cubic-bezier(.2,.85,.2,1),box-shadow .34s ease;
    will-change:width,min-height,padding;
  }

  #tt-tabbar .tt-tabbar-btn {
    z-index:2;
    width:100%;
    min-width:0;
    min-height:54px;
    padding:4px 2px;
    gap:8px;
    color:#222222 !important;
    background:transparent !important;
    border:0 !important;
    box-shadow:none !important;
    transform:none;
  }

  #tt-tabbar .tt-tabbar-btn::after { display:none; }
  #tt-tabbar .tt-tabbar-btn svg,
  #tt-tabbar .tt-tabbar-avatar {
    width:23px !important;
    height:23px !important;
    inline-size:23px !important;
    block-size:23px !important;
    flex:0 0 auto;
    transition:transform .34s cubic-bezier(.2,.85,.2,1),color .2s ease;
  }

  #tt-tabbar .tt-tabbar-avatar {
    border-radius:50% !important;
    object-position:center;
    display:block;
    object-fit:cover !important;
  }

  #tt-tabbar .tt-tabbar-btn span:last-child {
    display:block !important;
    max-height:16px;
    opacity:1;
    font-size:clamp(.54rem,2.25vw,.64rem);
    letter-spacing:.025em;
    line-height:1.1;
    white-space:nowrap;
    transform:translateY(0);
    transition:max-height .28s cubic-bezier(.2,.85,.2,1),opacity .18s ease,transform .28s cubic-bezier(.2,.85,.2,1);
  }

  #tt-tabbar.tt-tabbar-compact {
    width:min(316px,calc(100vw - 54px));
    min-height:58px;
    padding:5px 8px;
    border-radius:25px;
    box-shadow:0 10px 28px rgba(56,21,34,.16),0 0 0 1px rgba(255,255,255,.8) inset;
  }

  #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn {
    min-height:48px;
    padding:5px 2px;
    gap:0;
  }

  #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn span:last-child {
    max-height:0;
    opacity:0;
    transform:translateY(5px);
  }

  #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn svg,
  #tt-tabbar.tt-tabbar-compact .tt-tabbar-avatar {
    width:24px !important;
    height:24px !important;
    inline-size:24px !important;
    block-size:24px !important;
  }

  #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn.active svg,
  #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn.active .tt-tabbar-avatar,
  #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn[aria-expanded="true"] svg,
  #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn[aria-expanded="true"] .tt-tabbar-avatar {
    transform:scale(1.08);
  }

  #tt-tabbar .tt-tabbar-btn.active,
  #tt-tabbar .tt-tabbar-btn[aria-expanded="true"] { color:var(--color-text-primary,#222222) !important; }
  #tt-tabbar .tt-tabbar-btn.active svg,
  #tt-tabbar .tt-tabbar-btn.active .tt-tabbar-avatar,
  #tt-tabbar .tt-tabbar-btn[aria-expanded="true"] svg,
  #tt-tabbar .tt-tabbar-btn[aria-expanded="true"] .tt-tabbar-avatar { transform:scale(1.12); }

  /* Configuración combinada: si el editor oculta Inicio solo quedan cuatro
     tabs para invitado y cinco cuando Auth habilita Alertas. La regla de
     notificaciones por sí sola reserva seis; aquí se recompone la geometría
     para respetar ambas configuraciones sin dejar una columna fantasma. */
  html[data-tt-mobile-home="hidden"] body #tt-tabbar:has(#tabbar-notifications:not([hidden])) {
    grid-template-columns:repeat(5,minmax(0,1fr)) !important;
    width:min(420px,calc(100vw - 20px)) !important;
    padding-inline:10px !important;
  }

  html[data-tt-mobile-home="hidden"] body #tt-tabbar.tt-tabbar-compact:has(#tabbar-notifications:not([hidden])) {
    width:min(316px,calc(100vw - 54px)) !important;
    padding-inline:8px !important;
  }

  .tt-mobile-nav-halo,
  .tt-mobile-nav-indicator {
    position:absolute;
    left:0;
    pointer-events:none;
    transform:translateX(var(--tt-mobile-x,0));
    /* La geometría sigue al icono en cada frame: una segunda interpolación
       dejaba el círculo atrás mientras la barra cambiaba de tamaño. */
    transition:opacity .15s ease;
    opacity:0;
  }

  .tt-mobile-nav-halo {
    z-index:0;
    top:-11px;
    width:var(--tt-mobile-w,54px);
    height:54px;
    border-radius:50%;
    background:#FDECF2;
    border:1px solid #f4c6d7;
    box-shadow:0 8px 18px rgba(248,170,202,.13);
  }

  .tt-mobile-nav-indicator {
    z-index:1;
    bottom:5px;
    width:var(--tt-mobile-w,54px);
    height:3px;
    border-radius:999px;
    background:var(--color-brand-primary, #F8AACA);
  }

  #tt-tabbar.tt-tabbar-compact .tt-mobile-nav-halo { top:-8px; height:48px; }
  #tt-tabbar.tt-tabbar-compact .tt-mobile-nav-indicator { bottom:3px; }

  #tt-tabbar.tt-mobile-nav-ready .tt-mobile-nav-halo,
  #tt-tabbar.tt-mobile-nav-ready .tt-mobile-nav-indicator { opacity:1; }
  #tt-store-gate-network-notice {
    bottom:max(92px,calc(82px + env(safe-area-inset-bottom))) !important;
  }
  body { padding-bottom:max(96px,calc(84px + env(safe-area-inset-bottom))) !important; }

  /* Superficies móviles: la hoja ocupa siempre todo el viewport. La barra
     debe quedar SIEMPRE por debajo del backdrop compartido (1450) y de las
     superficies modales (1460), para que un panel abierto (Tienda,
     notificaciones, carrito, cuenta) la cubra visualmente por completo y
     bloquee sus clics de forma real (además de `inert`, no solo por z-index).
     Con la barra en 1480 (por encima de 1450/1460) quedaba visible y activa
     encima de la hoja abierta: root cause del "clic detrás del panel". */
  #tt-tabbar { bottom:max(16px,env(safe-area-inset-bottom)); z-index:var(--tt-z-tabbar, 1400) !important; }
  #tt-tabbar .tt-tabbar-btn { position:relative; z-index:3; }
  #tt-tabbar .tt-tabbar-btn.active svg,
  #tt-tabbar .tt-tabbar-btn.active .tt-tabbar-avatar,
  #tt-tabbar .tt-tabbar-btn[aria-expanded="true"] svg,
  #tt-tabbar .tt-tabbar-btn[aria-expanded="true"] .tt-tabbar-avatar { transform:scale(1.06); }
  .tt-mobile-nav-halo { z-index:1; top:var(--tt-mobile-y,1px); width:36px; height:36px; }
  .tt-mobile-nav-indicator { z-index:2; bottom:4px; width:52px; }
  #tt-tabbar .tt-tabbar-btn.active,
  #tt-tabbar .tt-tabbar-btn[aria-expanded="true"] { z-index:4; }
  #tt-tabbar.tt-tabbar-compact .tt-mobile-nav-halo { top:var(--tt-mobile-y,0px); width:36px; height:36px; }
  #tt-tabbar.tt-tabbar-compact .tt-mobile-nav-indicator { bottom:3px; width:46px; }

  /* Menú legado y menú hamburguesa comparten la misma superficie limpia. */
  .tt-mobile-menu { padding:max(16px,env(safe-area-inset-top)) 16px max(24px,env(safe-area-inset-bottom)); }
  .tt-mobile-menu-header { min-height:52px; margin-bottom:24px; }
  .tt-mobile-close { width:44px; height:44px; display:inline-flex; align-items:center; justify-content:center; border:1px solid #efcbd8; border-radius:50%; background:#fff; }
  .tt-mobile-nav { width:min(100%,560px); margin:0 auto; }
  .tt-mobile-nav a, .tt-mobile-nav button { min-height:58px; padding:16px 18px; border-radius:14px; }
  .tt-mobile-nav a.active, .tt-mobile-nav button.active { margin:4px 0; padding-inline:18px; background:#fde9f0; box-shadow:none; }
}

@media (max-width: 350px) {
  #tt-tabbar:not(.tt-tabbar-compact) { width:calc(100vw - 12px); padding-inline:5px; }
  #tt-tabbar.tt-tabbar-compact { width:calc(100vw - 42px); padding-inline:6px; }
  html[data-tt-mobile-home="hidden"] body #tt-tabbar:not(.tt-tabbar-compact):has(#tabbar-notifications:not([hidden])) {
    width:calc(100vw - 12px) !important;
    padding-inline:5px !important;
  }
  html[data-tt-mobile-home="hidden"] body #tt-tabbar.tt-tabbar-compact:has(#tabbar-notifications:not([hidden])) {
    width:calc(100vw - 42px) !important;
    padding-inline:6px !important;
  }
  #tt-tabbar .tt-tabbar-btn span:last-child { font-size:.52rem; }
}

@media (prefers-reduced-motion: reduce) {
  .tt-mobile-nav-halo,
  .tt-mobile-nav-indicator,
  #tt-tabbar .tt-tabbar-btn svg,
  #tt-tabbar .tt-tabbar-avatar,
  #tt-tabbar .tt-tabbar-btn span:last-child,
  #tt-tabbar { transition:none !important; }
}

/* Selección completa: icono y etiqueta dentro de una cápsula del propio botón. */
@media (max-width:767px) {
  html body.tt-public-shell-mounted:not(:has(.adm-main)) { --tt-mobile-nav-clearance:108px !important; }
  html body #tt-tabbar,
  html body #tt-tabbar.tt-tabbar-compact,
  html[data-tt-mobile-home="hidden"] body #tt-tabbar:has(#tabbar-notifications:not([hidden])),
  html[data-tt-mobile-home="hidden"] body #tt-tabbar.tt-tabbar-compact:has(#tabbar-notifications:not([hidden])) {
    width:min(420px,calc(100vw - 24px)) !important;
    min-height:76px !important;
    padding:8px !important;
    gap:2px;
    border-radius:999px !important;
    transition:box-shadow .2s ease !important;
  }
  html body #tt-tabbar .tt-tabbar-btn,
  html body #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn, html body #tt-tabbar .tt-tabbar-btn:is(#tabbar-cart,#tabbar-notifications) {
    min-height:58px;
    padding:6px 4px;
    gap:5px;
    border-radius:999px !important;
  }
  html body #tt-tabbar .tt-tabbar-btn::before {
    content:'';
    position:absolute;
    inset:0;
    z-index:-1;
    border-radius:inherit;
    background:#FDECF2;
    opacity:0;
    pointer-events:none;
  }
  html body #tt-tabbar .tt-tabbar-btn.active::before,
  html body #tt-tabbar .tt-tabbar-btn[aria-expanded="true"]::before,
  html body #tt-tabbar .tt-tabbar-btn[aria-current="page"]::before { opacity:1; }
  html body #tt-tabbar:has(.tt-tabbar-btn[aria-expanded="true"]) .tt-tabbar-btn:not([aria-expanded="true"])::before { opacity:0; }
  html body #tt-tabbar .tt-mobile-nav-halo,
  html body #tt-tabbar .tt-mobile-nav-indicator { display:none !important; }
  html body #tt-tabbar.tt-tabbar-compact .tt-tabbar-btn span:last-child {
    max-height:16px;
    opacity:1;
    transform:none;
  }
  html body #tt-tabbar .tt-tabbar-btn > span:last-child {
    font-size:clamp(.5rem,2.3vw,.64rem);
    letter-spacing:0;
    text-transform:none;
  }
  /* La navegación queda por debajo de los cargadores y modales. */
  html body #tt-tabbar { z-index:1100 !important; }
  html body #tt-tabbar:has(.tt-tabbar-btn[aria-expanded="true"]) { z-index:2147483647 !important; }
  html body #collections-sheet,
  html body #account-drawer #account-panel,
  html body #notifications-drawer #tt-notifications-list {
    padding-bottom:calc(var(--tt-mobile-nav-clearance,108px) + env(safe-area-inset-bottom)) !important;
  }
}

}

/* css/components/navigation/compartido/transiciones-navegacion.css */
/* Header surfaces bundle 2026-08-27: shared cache invalidation marker. */
/* Shared navigation layout. Document View Transitions are deliberately not
   opted in here: Chromium can abort a cross-document transition after a
   regular location.assign() and emit a console InvalidStateError. */
::view-transition-old(root) { animation: tt-page-out var(--motion-fast,160ms) ease both; }
::view-transition-new(root) { animation: tt-page-in var(--motion-normal,280ms) var(--ease-tintin,ease) both; }
@keyframes tt-page-out { to { opacity: 0; transform: translateY(-4px); } }
@keyframes tt-page-in { from { opacity: 0; transform: translateY(7px); } }
@media (prefers-reduced-motion:reduce) {
  ::view-transition-old(root),::view-transition-new(root){animation:none!important}
}
/* La variante móvil no se descarga en tablet/desktop, por eso este límite
   compartido mantiene oculto el tabbar fuera de su rango. */
@media (min-width: 768px) {
  #tt-tabbar { display: none !important; visibility: hidden !important; pointer-events: none !important; }
}

@media (min-width: 768px) and (max-width: 1024px) {
  #tt-header-desktop-tablet { display: none !important; visibility: hidden !important; pointer-events: none !important; }
}

@media (max-width: 767px) {
  #tt-header-desktop-tablet,
  #tt-header-tablet,
  .tt-tablet-menu { display: none !important; visibility: hidden !important; pointer-events: none !important; }
}

@media (min-width: 1025px) {
  #tt-header-tablet,
  .tt-tablet-menu,
  #tt-tabbar { display: none !important; visibility: hidden !important; pointer-events: none !important; }
}


/* css/components/navigation/compartido/paneles.css */
:root {
  --tintin-primary: var(--color-brand-primary, #F8AACA);
  --tintin-primary-dark: var(--color-brand-primary, #F8AACA);
  --tintin-primary-soft: var(--primary-soft, #fde8f0);
  --tintin-surface: #fff;
  --tintin-text: var(--text, #171217);
  --tintin-muted: var(--text-muted, #746b70);
  --tintin-border: rgba(248,170,202, .2);
  --tintin-shadow: 0 24px 70px rgba(58, 13, 31, .18);
  --motion-fast: 160ms;
  --motion-normal: 280ms;
  --motion-slow: 420ms;
  --ease-tintin: cubic-bezier(.2, .82, .2, 1);
  --ease-tintin-spring: cubic-bezier(.18, 1.18, .32, 1);
}

.tt-shared-backdrop {
  position: fixed;
  inset: 0;
  z-index: var(--tt-z-dropdown, 1450);
  display: block;
  border: 0;
  background: rgba(38, 12, 23, .34);
  -webkit-backdrop-filter: blur(3px);
  backdrop-filter: blur(3px);
  opacity: 0;
  pointer-events: none;
  transition: opacity var(--motion-normal) var(--ease-tintin);
}
.tt-shared-backdrop.open { opacity: 1; pointer-events: auto; }
.tt-shared-backdrop[hidden] { display: none; }

.tt-shared-morph {
  position: fixed;
  top: 0;
  left: 0;
  z-index: calc(var(--tt-z-dropdown, 1450) + 5);
  display: none;
  transform-origin: 0 0;
  pointer-events: none;
  background: linear-gradient(145deg, var(--tintin-primary-soft), rgba(248,170,202,.42));
  box-shadow: var(--tintin-shadow);
  will-change: transform, opacity, border-radius;
}
.tt-shared-morph.is-active { display: block; }
.tt-surface-preparing { opacity: 0 !important; }

.tt-dropdown,
.tt-tablet-menu,
.tt-search-panel,
.tt-cart-drawer,
.tt-account-drawer,
.tt-collections-sheet { z-index: var(--tt-z-surface, 1460) !important; }

#tt-header-desktop-tablet:has([data-tt-surface].open) {
  z-index: var(--tt-z-surface-active, 1470) !important;
  isolation: isolate;
}

/* El aviso de conectividad (#tt-store-gate-network-notice) flota con un
   z-index deliberadamente altísimo y, al quedar sobre el pie de las hojas
   modales, tapa a la mitad botones como "Ver todas las colecciones". Se
   oculta mientras el panel modal está abierto; reaparece al cerrarlo. */
body:has(.tt-collections-sheet.open) #tt-store-gate-network-notice,
body:has(.tt-notifications-drawer.open) #tt-store-gate-network-notice {
  display: none !important;
}

.tt-dropdown {
  transition: opacity var(--motion-fast) ease, transform var(--motion-normal) var(--ease-tintin) !important;
}

html.tt-click-dropdown-ready .tt-dropdown.open,
.tt-dropdown.open {
  visibility: visible !important;
  pointer-events: auto !important;
  opacity: 1 !important;
  transform: translateX(-50%) translateY(0) scale(1) !important;
}

.tt-dropdown-grid .tt-dropdown-card,
.tt-tablet-cats-grid .tt-tablet-cat-card,
.tt-sheet-grid .tt-sheet-item,
.tt-search-results .tt-search-result-item,
.tt-cart-body .tt-cart-item {
  opacity: 0;
  transform: translateY(9px) scale(.985);
  transition: opacity var(--motion-normal) ease, transform var(--motion-normal) var(--ease-tintin);
}

.tt-sheet-item-img {
  display: block;
  width: 100%;
  aspect-ratio: 1;
  overflow: hidden;
  border-radius: 12px;
  background: var(--tintin-soft, #fff3f7);
}

.tt-sheet-item-img img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.open .tt-dropdown-card,
.tt-tablet-cats.open .tt-tablet-cat-card,
.tt-collections-sheet.open .tt-sheet-item,
.tt-search-panel.open .tt-search-result-item,
.tt-cart-drawer.open .tt-cart-item { opacity: 1; transform: none; }
.open :is(.tt-dropdown-card,.tt-tablet-cat-card,.tt-sheet-item,.tt-search-result-item,.tt-cart-item):nth-child(2) { transition-delay: 35ms; }
.open :is(.tt-dropdown-card,.tt-tablet-cat-card,.tt-sheet-item,.tt-search-result-item,.tt-cart-item):nth-child(3) { transition-delay: 65ms; }
.open :is(.tt-dropdown-card,.tt-tablet-cat-card,.tt-sheet-item,.tt-search-result-item,.tt-cart-item):nth-child(4) { transition-delay: 90ms; }
.open :is(.tt-dropdown-card,.tt-tablet-cat-card,.tt-sheet-item,.tt-search-result-item,.tt-cart-item):nth-child(n+5) { transition-delay: 110ms; }

.tt-search-panel {
  box-sizing: border-box;
  position: fixed;
  display: none !important;
  grid-template-columns: auto minmax(0, 1fr) auto;
  grid-template-rows: auto minmax(0, 1fr);
  align-items: center;
  gap: 12px;
  top: clamp(74px, 8vh, 104px) !important;
  left: 50% !important;
  right: auto !important;
  width: min(1120px, calc(100vw - 64px)) !important;
  max-height: min(82dvh, 780px);
  transform: translate(-50%, -18px) scale(.97) !important;
  padding: 20px !important;
  border: 1px solid var(--tintin-border) !important;
  border-radius: 24px !important;
  background: var(--tintin-surface) !important;
  box-shadow: var(--tintin-shadow) !important;
  overflow: hidden !important;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity var(--motion-fast) ease, transform var(--motion-normal) var(--ease-tintin), visibility 0s linear var(--motion-normal) !important;
}

.tt-search-panel.open {
  display: grid !important;
  transform: translate(-50%, 0) scale(1) !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transition-delay: 0s !important;
}

.tt-search-panel > svg { grid-column: 1; grid-row: 1; flex: none; }
.tt-search-panel .tt-search-input {
  grid-column: 2;
  grid-row: 1;
  min-width: 0;
  width: 100%;
}
.tt-search-panel .tt-search-close { grid-column: 3; grid-row: 1; }
.tt-search-results {
  position: static !important;
  inset: auto !important;
  grid-column: 1 / -1;
  grid-row: 2;
  width: 100% !important;
  min-height: 0;
  max-height: min(62dvh, 620px) !important;
  margin: 0 !important;
  overflow: auto !important;
  overscroll-behavior: contain;
}
.tt-search-results[hidden] { display: none !important; }
.tt-search-state { padding: 22px 14px; color: var(--tintin-muted); text-align: center; font-size: .9rem; }

.tt-cart-drawer,
.tt-account-drawer {
  position: fixed;
  inset: 0 0 0 auto;
  width: clamp(440px, 34vw, 500px);
  max-width: calc(100vw - 24px);
  height: 100dvh;
  display: none;
  flex-direction: column;
  border-left: 1px solid var(--tintin-border);
  background: var(--tintin-surface);
  box-shadow: var(--tintin-shadow);
  transform: translate3d(105%, 0, 0);
  visibility: hidden;
  pointer-events: none;
  transition: transform var(--motion-normal) var(--ease-tintin), visibility 0s linear var(--motion-normal) !important;
}

.tt-cart-drawer.open,
.tt-account-drawer.open {
  display: flex;
  transform: translate3d(0, 0, 0) !important;
  visibility: visible !important;
  pointer-events: auto !important;
  transition-delay: 0s !important;
}

.tt-account-drawer-header {
  min-height: 82px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 18px 22px;
  border-bottom: 1px solid rgba(255,255,255,.32);
  background: var(--color-brand-primary, #F8AACA) !important;
  color:#222222 !important;
  box-shadow: 0 10px 24px rgba(95,22,51,.16);
}

.tt-account-drawer-header h2 {
  margin: 0;
  color: #fff !important;
  font-size: 1rem;
  letter-spacing: .08em;
  text-shadow: 0 1px 1px rgba(0,0,0,.12);
}

.tt-account-drawer-header button,
.tt-tablet-cats-back {
  min-width: 44px;
  min-height: 44px;
  border: 1px solid var(--tintin-border);
  border-radius: 999px;
  background: #fff;
  color: var(--tintin-primary-dark);
  cursor: pointer;
}
.tt-account-drawer-header button { border-color: rgba(255,255,255,.72); }

.tt-account-drawer .tt-account-panel {
  position: static !important;
  inset: auto !important;
  width: auto !important;
  display: flex !important;
  flex: 1;
  flex-direction: column;
  gap: 8px;
  padding: 22px;
  border: 0 !important;
  border-radius: 0 !important;
  background: #fff !important;
  box-shadow: none !important;
  opacity: 1 !important;
  visibility: visible !important;
  transform: none !important;
  pointer-events: auto !important;
  overflow-y: auto;
}

.tt-account-loading {
  margin: auto;
  color: var(--tintin-muted);
  text-align: center;
}
.tt-account-drawer .tt-account-item { min-height: 48px !important; width: 100% !important; justify-content: flex-start !important; border-radius: 14px !important; }
.tt-tablet-cats-back,
.tt-tablet-cats-title { display: none; }

@media (min-width: 768px) and (max-width: 1024px) {
  /* El header de tablet es position:fixed (fuera del flujo): el espacio de
     84px que reserva para el contenido no depende de si el header ya
     terminó de montarse, así que se reserva desde el primer render — si
     quedara condicionado a .tt-public-shell-mounted, el contenido saltaría
     84px hacia abajo justo cuando el shell termina de montarse (CLS real,
     medido en producción, aunque el loader ya estuviera oculto o no). */
   body:not(:has(.login-page)):not(:has(.adm-main)):not(.tt-home-premium) { padding-top: 84px !important; }
  .tt-cart-drawer,
  .tt-account-drawer { width: min(72vw, 640px); }

  .tt-search-panel {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100dvh;
    max-height: none;
    border: 0 !important;
    border-radius: 0 !important;
    transform: translateY(-12px) scale(.99) !important;
    padding: max(24px, env(safe-area-inset-top)) 7vw 32px !important;
  }

  .tt-search-panel.open { transform: translateY(0) scale(1) !important; }
  .tt-search-results { max-height: none !important; height: 100%; }
  .tt-tablet-menu { overflow: hidden !important; }
  .tt-tablet-menu:not(.open) { display: none !important; }
  .tt-tablet-menu.open { display: flex !important; }
  .tt-tablet-nav,
  .tt-tablet-cats { transition: transform var(--motion-normal) var(--ease-tintin), opacity var(--motion-fast) ease !important; }
  .tt-tablet-menu.tt-tablet-shop-view .tt-tablet-nav { transform: translateX(-105%); opacity: 0; visibility: hidden; pointer-events: none; }
  .tt-tablet-cats {
    position: absolute !important;
    inset: 90px 5vw 24px !important;
    display: block !important;
    max-height: none !important;
    overflow: auto;
    transform: translateX(105%);
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }
  .tt-tablet-menu.tt-tablet-shop-view .tt-tablet-cats { transform: translateX(0); opacity: 1; visibility: visible; pointer-events: auto; }
  .tt-tablet-cats-back { display: inline-flex; align-items: center; justify-content: center; width: auto; padding: 0 16px; }
  .tt-tablet-cats-title { display: block; margin: 18px 0; color: var(--tintin-primary-dark); }
}

@media (max-width: 767px) {
  .tt-search-panel {
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    height: 100dvh;
    max-height: none;
    border: 0 !important;
    border-radius: 0 !important;
    transform: translateY(14px) scale(.985) !important;
    padding: max(18px, env(safe-area-inset-top)) 16px calc(100px + env(safe-area-inset-bottom)) !important;
  }

  .tt-search-panel.open { transform: translateY(0) scale(1) !important; }
  .tt-search-results { max-height: none !important; height: 100%; }
  .tt-cart-drawer,
  .tt-account-drawer {
    width: 100vw;
    max-width: 100vw;
  }

  .tt-cart-footer {
    padding-bottom: calc(20px + 82px + env(safe-area-inset-bottom));
  }

  .tt-collections-sheet {
    top: max(12px, env(safe-area-inset-top)) !important;
    bottom: 0 !important;
    max-height: none !important;
    height: calc(100dvh - max(12px, env(safe-area-inset-top))) !important;
    padding-bottom: calc(24px + env(safe-area-inset-bottom)) !important;
    overflow: auto;
    overscroll-behavior: contain;
  }

  .tt-collections-sheet .tt-sheet-handle { margin: 10px auto 4px; }
  .tt-collections-sheet .tt-sheet-header { min-height:68px; padding:14px 16px; }
  .tt-collections-sheet .tt-sheet-grid { gap:0; }

  .tt-sheet-grid { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
}

@media (max-width: 480px) {
  body.tt-public-shell-mounted:not(:has(.adm-main)) { --tt-mobile-nav-clearance: 100px; }
}

@media (max-width: 380px) and (max-height: 840px) {
  html body.tt-home-premium .tt-hero { grid-template-rows: clamp(250px, 42svh, 340px) auto; }
}

@media (prefers-reduced-motion: reduce) {
  .tt-shared-morph { display: none !important; }
  .tt-dropdown,
  .tt-tablet-menu,
  .tt-search-panel,
  .tt-cart-drawer,
  .tt-account-drawer,
  .tt-collections-sheet,
  .tt-dropdown-card,
  .tt-tablet-cat-card,
  .tt-sheet-item,
  .tt-search-result-item,
  .tt-cart-item {
    transition-duration: 1ms !important;
    transition-delay: 0ms !important;
    animation: none !important;
  }
}


/* css/components/navigation/compartido/superficie-notificaciones.css */
/* TINTIN — normalización de la superficie global de notificaciones.
   La bandeja comparte capa, fondo sólido y contrato visual con las demás
   superficies del header; su geometría y transición por dispositivo siguen en
   css/components/notifications/notificaciones-sociales.css. */
#notifications-drawer {
  /* Keep Alerts in the same top-level layer as the other shared surfaces. */
  z-index: 1460 !important;
  background: #FFFFFF !important;
  background-color: #FFFFFF !important;
  background-image: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  mix-blend-mode: normal !important;
  isolation: isolate !important;
}

@media (max-width: 767px) {
  #notifications-drawer {
    top: max(12px, env(safe-area-inset-top)) !important;
    bottom: 0 !important;
    height: calc(100dvh - max(12px, env(safe-area-inset-top))) !important;
    width: 100vw !important;
    border-radius: 24px 24px 0 0;
    border-left: 0 !important;
  }
}


/* css/components/navigation/compartido/busqueda.css */
/* Header surfaces bundle 2026-08-27: shared cache invalidation marker. */
/* Shared search content. Panel geometry lives in surfaces.css. */
#search-panel.tt-search-panel.open {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  grid-template-rows: minmax(48px, auto) minmax(0, 1fr) !important;
  align-items: center !important;
}

/* .tt-search-results usa overflow:auto, así que su tamaño mínimo automático
   colapsa a 0 (regla de CSS Sizing) y la fila 1fr se queda sin espacio salvo
   que el panel tenga una altura definida en vez de auto. Solo se fuerza
   cuando hay contenido real (carga, resultados o error) para no mostrar un
   recuadro vacío mientras el usuario todavía no escribió nada. */
#search-panel.tt-search-panel.open.tt-has-results {
  height: min(82dvh, 780px) !important;
}

#search-panel.tt-search-panel > svg {
  position: relative !important;
  inset: auto !important;
  grid-column: 1 !important;
  grid-row: 1 !important;
  z-index: 3 !important;
}

#search-panel.tt-search-panel .tt-search-input {
  position: relative !important;
  inset: auto !important;
  grid-column: 2 !important;
  grid-row: 1 !important;
  z-index: 3 !important;
  min-width: 0 !important;
  width: 100% !important;
}

#search-panel.tt-search-panel .tt-search-close {
  position: relative !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  grid-column: 3 !important;
  grid-row: 1 !important;
  z-index: 4 !important;
  transform: none !important;
}

#search-panel.tt-search-panel .tt-search-results {
  position: static !important;
  inset: auto !important;
  top: auto !important;
  right: auto !important;
  bottom: auto !important;
  left: auto !important;
  grid-column: 1 / -1 !important;
  grid-row: 2 !important;
  align-self: start !important;
  z-index: 1 !important;
  width: 100% !important;
  min-width: 0 !important;
  min-height: 0 !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 8px 2px 2px !important;
  overflow: auto !important;
  overscroll-behavior: contain;
  scrollbar-gutter: stable;
}

.tt-search-result-item {
  display: grid;
  grid-template-columns: 72px minmax(0, 1fr);
  align-items: center;
  gap: 14px;
  min-height: 84px;
  margin: 0 0 8px;
  padding: 8px 14px 8px 8px;
  border: 1px solid rgba(248,170,202, .14);
  border-radius: 16px;
  background: #fff;
  color:#222222;
  text-decoration: none;
  transition: border-color 160ms ease, background 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}

.tt-search-result-item:hover,
.tt-search-result-item:focus-visible,
.tt-search-result-item.is-active {
  border-color: rgba(248,170,202, .48);
  background: #fff7fa;
  box-shadow: 0 9px 24px rgba(94, 25, 51, .09);
  transform: translateY(-1px);
  outline: none;
}

.tt-search-result-image {
  display: block;
  width: 72px;
  height: 68px;
  border-radius: 12px;
  background: #f8eef2;
  object-fit: contain;
  overflow: hidden;
}

.tt-search-result-image--empty {
  background: linear-gradient(135deg, #f8e9ef, #f1cfdb);
}

.tt-search-result-copy {
  display: grid;
  min-width: 0;
  gap: 5px;
}

.tt-search-result-copy strong {
  overflow: hidden;
  color:#222222;
  font-size: .94rem;
  line-height: 1.3;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tt-search-result-copy > span {
  overflow: hidden;
  color: #7b6971;
  font-size: .78rem;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tt-search-state p { margin: 0; }
.tt-search-retry {
  min-height: 42px;
  margin-top: 12px;
  padding: 9px 18px;
  border: 0;
  border-radius: 999px;
  background: var(--color-brand-primary, #F8AACA);
  color:#222222;
  font-weight: 750;
  cursor: pointer;
}
.tt-search-retry:hover,
.tt-search-retry:focus-visible { background: var(--color-brand-primary, #F8AACA); outline: 3px solid rgba(248,170,202,.22); outline-offset: 2px; }

@media (max-width: 767px) {
  #search-panel.tt-search-panel .tt-search-results { padding-top: 12px !important; }
  .tt-search-result-item { grid-template-columns: 62px minmax(0, 1fr); min-height: 76px; gap: 11px; padding-right: 10px; }
  .tt-search-result-image { width: 62px; height: 60px; }
}

@media (prefers-reduced-motion: reduce) {
  .tt-search-result-item { transition: none; }
}
/* Header surfaces bundle 2026-08-27: shared cache invalidation marker. */


/* css/components/navigation/compartido/coherencia-visual.css */
/* TINTIN — coherencia visual de shell y superficies.
   Esta hoja se carga al final del paquete de navegación para que carrito,
   cuenta y notificaciones compartan la misma jerarquía sin reescribir sus
   componentes ni sus reglas de acceso. */
:root {
  /* Rosa Tintin estable: evita heredar violetas de temas legacy. */
  --tt-drawer-accent: var(--color-brand-primary, #F8AACA);
  --tt-drawer-accent-strong: var(--color-brand-primary, #F8AACA);
  --tt-drawer-soft: #fff0f5;
  --tt-drawer-border: #edbfd0;
  --tt-drawer-text: #2b1b23;
  --tt-drawer-muted: #6e5962;
}

/* El hero se mantiene reservado en layout, pero la imagen no se revela por
   franjas mientras el navegador la decodifica. El shell retira pending justo
   antes de quitar el loader global. */
body.tt-home-premium.tt-hero-atomic-pending .tt-hero-media {
  opacity: 0 !important;
}
body.tt-home-premium.tt-hero-atomic-ready .tt-hero-media {
  opacity: 1 !important;
}
body.tt-home-premium .tt-hero-media {
  transition: opacity 140ms ease-out;
}

/* Cabecera única para todas las hojas laterales. */
.tt-cart-header,
.tt-account-drawer-header,
.tt-notifications-head {
  min-height: 86px !important;
  box-sizing: border-box;
  display: flex !important;
  align-items: center !important;
  gap: 14px !important;
  padding: 18px 24px !important;
  border: 0 !important;
  border-bottom: 1px solid rgba(255,255,255,.18) !important;
  background: var(--tt-drawer-accent) !important;
  background-image: none !important;
  color:#222222 !important;
  box-shadow: 0 8px 24px rgba(92, 24, 50, .12) !important;
}

.tt-cart-title,
.tt-account-drawer-header h2,
.tt-notifications-title,
.tt-notifications-kicker {
  color: #222222 !important;
}

.tt-cart-title,
.tt-account-drawer-header h2,
.tt-notifications-title {
  margin: 0 !important;
  font-weight: 800 !important;
  letter-spacing: .045em !important;
}

.tt-account-drawer-heading {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.tt-account-drawer-kicker,
.tt-notifications-kicker {
  margin: 0 !important;
  font-size: .69rem !important;
  font-weight: 700 !important;
  letter-spacing: .14em !important;
  text-transform: uppercase;
  opacity: .78;
}

.tt-cart-close,
.tt-account-drawer-header #btn-account-close,
.tt-notifications-close {
  width: 44px !important;
  min-width: 44px !important;
  height: 44px !important;
  min-height: 44px !important;
  margin-left: auto !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: 1px solid rgba(255,255,255,.65) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.08) !important;
  color: #222222 !important;
  box-shadow: none !important;
}
.tt-cart-close:hover,
.tt-account-drawer-header #btn-account-close:hover,
.tt-notifications-close:hover {
  background: rgba(255,255,255,.17) !important;
}
.tt-cart-close svg,
.tt-account-drawer-header #btn-account-close svg {
  color: inherit !important;
  stroke: currentColor !important;
}

.tt-cart-sync-status {
  color: rgba(255,255,255,.82) !important;
  font-weight: 600 !important;
}

/* Cuenta: identidad compacta, navegación limpia y cierre separado. */
.tt-account-drawer .tt-account-panel {
  gap: 16px !important;
  padding: 24px !important;
  background: #fff !important;
  color: var(--tt-drawer-text) !important;
}

.tt-account-drawer .tt-account-header {
  display: flex !important;
  align-items: center !important;
  gap: 13px !important;
  width: 100%;
  box-sizing: border-box;
  padding: 15px 16px !important;
  margin: 0 !important;
  border: 1px solid var(--tt-drawer-border) !important;
  border-radius: 18px !important;
  background: var(--tt-drawer-soft) !important;
  box-shadow: none !important;
}

.tt-account-panel-avatar {
  width: 46px !important;
  height: 46px !important;
  min-width: 46px !important;
  flex: 0 0 46px !important;
  border-radius: 50% !important;
  object-fit: cover !important;
  border: 1px solid rgba(248,170,202,.16) !important;
  background: #fff !important;
}
.tt-account-panel-initials {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: var(--tt-drawer-accent) !important;
  color:#222222 !important;
  font-size: .82rem !important;
  font-weight: 800 !important;
  letter-spacing: .04em;
}

.tt-account-identity {
  min-width: 0;
  display: flex;
  flex: 1;
  flex-direction: column;
  gap: 3px;
}
.tt-account-identity strong {
  overflow: hidden;
  color: var(--tt-drawer-text) !important;
  font-size: .94rem;
  font-weight: 800;
  line-height: 1.25;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tt-account-identity span {
  overflow: hidden;
  color: var(--tt-drawer-muted) !important;
  font-size: .76rem;
  font-weight: 600;
  line-height: 1.35;
  text-overflow: ellipsis;
  white-space: nowrap;
}

.tt-account-links {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.tt-account-drawer .tt-account-item {
  width: 100% !important;
  min-height: 50px !important;
  box-sizing: border-box !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-start !important;
  padding: 13px 15px !important;
  border: 1px solid transparent !important;
  border-radius: 13px !important;
  background: transparent !important;
  color: var(--tt-drawer-accent) !important;
  font-size: .88rem !important;
  font-weight: 700 !important;
  line-height: 1.3 !important;
  text-align: left !important;
  text-decoration: none !important;
  box-shadow: none !important;
  transition: background-color 140ms ease, border-color 140ms ease, transform 140ms ease !important;
}
/* Las cabeceras y CTA conservan su contraste incluso frente a la tipografía global. */
html body :is(#account-drawer, #cart-drawer, #notifications-drawer) :is(.tt-account-drawer-header, .tt-cart-header, .tt-notifications-head) {
  background: var(--color-brand-primary, #F8AACA) !important;
  background-image: none !important;
  color:#222222 !important;
}
html body :is(#account-drawer, #cart-drawer, #notifications-drawer) :is(.tt-account-drawer-header, .tt-cart-header, .tt-notifications-head) :is(h2, span, button, svg) {
  color: #222222 !important;
}
html body #account-drawer .tt-account-primary,
html body #account-drawer .tt-account-primary:is(:visited, :hover, :focus-visible) {
  color: #222222 !important;
}
html body #account-drawer .tt-account-drawer-header {
  display: flex !important;
  min-height: 84px !important;
  padding: 18px 22px !important;
}
html body #account-drawer .tt-account-drawer-header::before {
  content: none;
  display: none;
}
html body #account-drawer .tt-account-drawer-heading { flex: 1; }
html body #account-drawer .tt-account-drawer-kicker { display: none; }
html body #account-drawer .tt-account-drawer-header h2 { margin: 0 !important; }
html body #account-drawer .tt-account-drawer-header h2::before { content: none !important; display:none !important; }

html body #account-drawer .tt-account-drawer-header {
  position: relative; align-items: center !important;
  min-height: 0 !important; padding: 20px 48px 18px !important;
}
html body #account-drawer .tt-account-drawer-heading {
  display: flex; flex-direction: column; align-items: center;
  justify-content: center; gap: 8px; width: 100%; margin: 0;
}
html body #account-drawer .tt-account-drawer-logo {
  display: block !important; width: 110px !important; height: 46px !important;
  margin: 0 !important; object-fit: contain; filter: brightness(0) invert(1) !important;
}
html body #account-drawer .tt-account-drawer-header h2,
html body #account-drawer .tt-account-drawer-header #btn-account-close,
html body #account-drawer .tt-account-drawer-header #btn-account-close svg {
  color: #fff !important;
}
html body #account-drawer .tt-account-drawer-header #btn-account-close {
  position: absolute; top: 12px; right: 12px; margin: 0;
}

.tt-account-drawer .tt-account-item:hover,
.tt-account-drawer .tt-account-item:focus-visible {
  border-color: var(--tt-drawer-border) !important;
  background: var(--tt-drawer-soft) !important;
  outline: 0 !important;
}
.tt-account-drawer .tt-account-internal {
  border-color: #efd0dc !important;
  background: #fff7fa !important;
  color: var(--tt-drawer-accent-strong) !important;
}
.tt-account-drawer .tt-account-logout {
  margin-top: auto !important;
  border-color: var(--tt-drawer-border) !important;
  background: #fff !important;
  color: var(--tt-drawer-accent) !important;
  cursor: pointer;
}

.tt-account-guest {
  padding: 6px 2px 2px;
}
.tt-account-guest-title {
  margin: 0 0 6px;
  color: var(--tt-drawer-text);
  font-size: 1rem;
  font-weight: 800;
}
.tt-account-guest-copy {
  margin: 0 !important;
  color: var(--tt-drawer-muted) !important;
  font-size: .85rem !important;
  line-height: 1.55 !important;
}
.tt-account-drawer .tt-account-primary {
  justify-content: center !important;
  border-color: var(--tt-drawer-accent) !important;
  background: var(--tt-drawer-accent) !important;
  color:#222222 !important;
}
.tt-account-drawer .tt-account-primary:hover,
.tt-account-drawer .tt-account-primary:focus-visible {
  border-color: var(--tt-drawer-accent-strong) !important;
  background: var(--tt-drawer-accent-strong) !important;
}

/* Cuenta: el CTA debe tener contraste real incluso si una hoja legacy declara
   colores de enlace sobre la superficie. La misma regla sirve para invitadas,
   clientes y cuentas internas sin alterar sus permisos o destinos. */
html body .tt-account-drawer .tt-account-primary,
html body .tt-account-drawer .tt-account-primary:visited {
  background: var(--tt-drawer-accent) !important;
  background-color: var(--tt-drawer-accent) !important;
  border: 1px solid var(--tt-drawer-accent) !important;
  color:#222222 !important;
  font-weight: 800 !important;
  letter-spacing: .01em;
  opacity: 1 !important;
  text-shadow: none !important;
}
html body .tt-account-drawer .tt-account-primary:hover,
html body .tt-account-drawer .tt-account-primary:focus-visible {
  background: var(--tt-drawer-accent-strong) !important;
  background-color: var(--tt-drawer-accent-strong) !important;
  border-color: var(--tt-drawer-accent-strong) !important;
  color:#222222 !important;
}

html body .tt-account-drawer .tt-account-item {
  color: var(--tt-drawer-accent-strong) !important;
}
html body .tt-account-drawer .tt-account-primary,
html body .tt-account-drawer .tt-account-primary:hover,
html body .tt-account-drawer .tt-account-primary:focus-visible {
  color: #222222 !important;
}
html body .tt-account-drawer .tt-account-internal {
  background: var(--tt-drawer-soft) !important;
  border-color: var(--tt-drawer-border) !important;
  color: var(--tt-drawer-accent-strong) !important;
}

@media (min-width: 1025px) {
  html body .tt-account-drawer {
    width: min(430px, calc(100vw - 32px)) !important;
  }
}

@media (min-width: 768px) and (max-width: 1024px) {
  html body .tt-account-drawer {
    width: min(560px, calc(100vw - 24px)) !important;
  }
}

.tt-account-loading {
  min-height: 180px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--tt-drawer-muted) !important;
  font-size: .84rem;
  font-weight: 650;
}
.tt-account-loading-dot {
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--tt-drawer-accent);
  box-shadow: 0 0 0 5px rgba(248,170,202,.11);
  animation: tt-account-pulse 1.1s ease-in-out infinite alternate;
}
@keyframes tt-account-pulse {
  to { opacity: .35; transform: scale(.8); }
}

/* Notificaciones mantiene su estructura funcional, pero hereda la misma
   cabecera que carrito/cuenta. */
.tt-notifications-head > div {
  min-width: 0;
}
.tt-notifications-toolbar {
  border-bottom-color: var(--tt-drawer-border) !important;
  background: #fff !important;
}

@media (max-width: 767px) {
  .tt-cart-header,
  .tt-account-drawer-header,
  .tt-notifications-head {
    min-height: 78px !important;
    padding: 14px 18px !important;
  }
  .tt-account-drawer .tt-account-panel {
    padding: 20px 18px calc(24px + env(safe-area-inset-bottom)) !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  body.tt-home-premium .tt-hero-media,
  .tt-account-drawer .tt-account-item,
  .tt-account-loading-dot {
    transition: none !important;
    animation: none !important;
  }
}

/* Colecciones: toda la fotografía cabe en su tarjeta y el nombre comparte
   el mismo eje inferior en escritorio, tablet y el panel móvil. */
:is(.tt-dropdown-grid,.tt-tablet-cats-grid,.tt-mobile-cats-grid,.tt-sheet-grid)
  :is(.tt-dropdown-card,.tt-tablet-cat-card,.tt-mobile-cat-card,.tt-sheet-item) {
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  justify-items: center;
  align-items: center;
  gap: 10px;
  min-width: 0;
  padding: 12px;
  background: #fff;
}
html body :is(.tt-dropdown-icon,.tt-tablet-cat-img,.tt-mobile-cat-img,.tt-sheet-item-img) {
  width: 100% !important;
  height: clamp(92px, 10vw, 132px) !important;
  max-width: 100%;
  border-radius: 0 !important;
  background: #fff !important;
}
html body :is(.tt-dropdown-icon,.tt-tablet-cat-img,.tt-mobile-cat-img,.tt-sheet-item-img) img {
  width: 100%;
  height: 100%;
  object-fit: contain !important;
  border-radius: 0;
}
html body :is(.tt-dropdown-label,.tt-tablet-cat-card > span,.tt-mobile-cat-card > span,.tt-sheet-item > span:last-child) {
  width: 100%;
  text-align: center;
  font-size: clamp(12px, 1.1vw, 15px);
  font-weight: 700;
  line-height: 1.35;
  overflow-wrap: anywhere;
}

html body :is(.tt-dropdown-card,.tt-sheet-item,.tt-tablet-cat-card,.tt-mobile-cat-card) { border-radius:12px; border:1px solid #ecd8e0; }

html body :is(#account-drawer,#cart-drawer,#notifications-drawer,#collections-sheet) :is(.tt-account-drawer-header,.tt-cart-header,.tt-notifications-head,.tt-sheet-header) {
  position:relative; display:flex !important; align-items:center !important; justify-content:center !important;
  min-height:0 !important; height:auto !important; padding:20px 48px 18px !important; margin:0 !important;
  background:var(--color-brand-primary,#F8AACA) !important; border-radius:0 !important;
}
html body .tt-drawer-brand-heading { flex:1; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; text-align:center; }
html body :is(#cart-drawer,#notifications-drawer,#collections-sheet) .tt-drawer-brand-logo { display:block !important; width:110px !important; height:46px !important; object-fit:contain !important; margin:0 !important; filter:brightness(0) invert(1) !important; }
html body :is(#account-drawer,#cart-drawer,#notifications-drawer,#collections-sheet) :is(.tt-account-drawer-header,.tt-cart-header,.tt-notifications-head,.tt-sheet-header) :is(h2,span,p,button,svg) { color:#fff !important; }
html body :is(.tt-drawer-brand-heading,.tt-account-drawer-heading) h2 { margin:0 !important; align-self:center !important; max-width:100%; font-size:14px !important; text-align:center; text-shadow:none !important; letter-spacing:.09em; }
html body :is(#btn-cart-close,#btn-account-close,#btn-notifications-close,#btn-close-sheet) { position:absolute !important; top:12px !important; right:12px !important; display:grid; place-items:center; width:36px !important; height:36px !important; border:1px solid #fff !important; border-radius:50% !important; margin:0 !important; padding:0 !important; background:transparent !important; }
html body .tt-notifications-kicker { display:none !important; }

.tt-sheet-header #btn-close-sheet,
.tt-search-close {
  display:inline-grid !important; place-items:center;
  width:44px !important; height:44px !important; min-height:44px;
  padding:0 !important; border:1px solid var(--tt-drawer-border) !important;
  border-radius:50% !important; background:#fff !important;
  color:var(--tt-drawer-text) !important;
}
.tt-collections-sheet .tt-sheet-grid { gap:12px !important; padding:16px !important; }
.tt-sheet-grid .tt-sheet-item { border:1px solid var(--tt-drawer-border); border-radius:18px !important; padding:14px 8px !important; gap:10px; }
.tt-sheet-grid .tt-sheet-item-img { width:clamp(68px,18vw,100px); height:clamp(68px,18vw,100px); }
.tt-cart-drawer { border-radius:24px 0 0 24px; overflow:hidden; }
@media (max-width:767px) {
  .tt-collections-sheet .tt-sheet-grid { grid-template-columns:repeat(2,minmax(0,1fr)) !important; }
  .tt-sheet-grid .tt-sheet-item { font-size:11px; line-height:1.4; }
}

.tt-sheet-info-links { display:flex; justify-content:center; gap:24px; margin:0 0 14px; }
.tt-sheet-info-links a { display:inline-flex; align-items:center; min-height:44px; color:var(--tt-drawer-text); font-weight:600; text-decoration:none; }
html body #btn-tablet-close,
html body #collections-sheet #btn-close-sheet {
  width:44px !important; height:44px !important; min-width:44px;
  display:grid !important; place-items:center; padding:0 !important;
  border:1px solid #fff !important; border-radius:50% !important;
  background:transparent !important; color:#fff !important;
}
html body .tt-header-desktop .tt-dropdown-grid { gap:14px; }
html body .tt-header-desktop .tt-dropdown-card { border-radius:18px !important; padding:16px 10px; }
html body .tt-header-desktop .tt-dropdown-icon img { object-fit:contain; }

/* Superficies sólidas con una cabecera continua, sin asa ni franjas laterales. */
html body :is(#cart-drawer,#account-drawer,#notifications-drawer,#collections-sheet) { box-sizing:border-box; overflow-x:hidden; }
html body :is(#cart-drawer,#account-drawer,#notifications-drawer,#collections-sheet) :is(.tt-cart-header,.tt-account-drawer-header,.tt-notifications-head,.tt-sheet-header) { box-sizing:border-box; width:100% !important; max-width:100% !important; margin:0; min-height:92px !important; flex-shrink:0; padding:16px 20px !important; box-shadow:none !important; }
html body .tt-drawer-brand-heading { min-width:0; }
html body .tt-drawer-brand-logo { width:72px; height:32px; margin-bottom:6px; }
html body #notifications-drawer .tt-notifications-toolbar { flex-wrap:wrap; align-items:center; gap:6px 14px; padding:12px 20px; background:#fff; }
html body #notifications-drawer .tt-notifications-auto-read { flex:1 1 180px; min-width:0; font-size:11px; line-height:1.5; color:var(--tt-drawer-muted); }
html body .tt-sheet-handle { display:none; }
html body #collections-sheet .tt-sheet-footer { padding:16px 20px; background:#fff; border-top:1px solid var(--tt-drawer-border); }
html body #collections-sheet .tt-sheet-footer .tt-btn { min-height:44px; }
@media(max-width:767px) {
  html body :is(#cart-drawer,#account-drawer,#notifications-drawer,#collections-sheet) { inset:0 !important; width:100vw !important; max-width:100vw !important; height:100dvh !important; max-height:none !important; border-radius:0 !important; padding:0 !important; }
  html body :is(#cart-drawer,#account-drawer,#notifications-drawer,#collections-sheet) :is(.tt-cart-header,.tt-account-drawer-header,.tt-notifications-head,.tt-sheet-header) { padding-top:max(16px,env(safe-area-inset-top)) !important; }
  html body #collections-sheet { display:flex; flex-direction:column; }
  html body #collections-sheet:not(.open) { display:none; }
  html body #collections-sheet .tt-sheet-grid { flex:1; min-height:0; overflow-y:auto; overscroll-behavior:contain; align-content:start; }
  html body #collections-sheet .tt-sheet-footer { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
  html body #cart-drawer .tt-cart-body, html body #notifications-drawer .tt-notifications-list { padding-bottom:calc(100px + env(safe-area-inset-bottom)); }
}

html body #collections-sheet { overflow:hidden; }
html body #collections-sheet.open { display:flex; flex-direction:column; }
html body #collections-sheet .tt-sheet-grid { flex:1 1 auto; min-height:0; overflow:auto; align-content:start; }
html body.tt-public-shell-mounted:not(:has(.adm-main)) #collections-sheet { padding-bottom:0 !important; }
html body :is(#cart-drawer,#account-drawer,#notifications-drawer,#collections-sheet) :is(#btn-cart-close,#btn-account-close,#btn-notifications-close,#btn-close-sheet) { width:44px !important; height:44px !important; }

html body .tt-catalog-all-link { display:flex; align-items:center; justify-content:center; min-height:44px; margin-top:12px; padding:12px; border-top:1px solid var(--tt-drawer-border); color:var(--color-text-primary,#222222); font-weight:600; font-size:.8rem; }
html body .tt-catalog-all-link:focus-visible { outline:2px solid var(--color-text-primary,#222222); outline-offset:2px; }


/* css/pages/home/mantenimiento-inicio.css */
/* =============================================================
   TINTIN — Mantenimiento integral de la página principal
   Se carga globalmente, pero todos los selectores quedan limitados a Inicio.
   ============================================================= */

body.tt-home-premium {
  background: var(--color-background-page, #FFFFFF) !important;
  color: var(--color-text-primary, #222222) !important;
  overflow-x: clip;
}

/* Durante la preparación inicial no se permite que colores, tamaños o fondos
   cambien mediante transiciones visibles. */
body.tt-home-premium:not(.tt-home-runtime-ready) *,
body.tt-home-premium:not(.tt-home-runtime-ready) *::before,
body.tt-home-premium:not(.tt-home-runtime-ready) *::after {
  transition-duration: 0s !important;
  animation-delay: 0s !important;
}

body.tt-home-premium .tt-hero,
body.tt-home-premium .tt-hero-media {
  background-color: var(--color-brand-secondary, #F8AACA);
}

body.tt-home-premium .tt-hero {
  isolation: isolate;
  overflow: hidden;
}

body.tt-home-premium .tt-hero-media {
  position: relative;
  inset: auto;
  z-index: 0;
  background-image: none !important;
  background-size: cover !important;
  background-position: center !important;
  background-repeat: no-repeat !important;
}

body.tt-home-premium .tt-hero-img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
  background: var(--color-brand-secondary, #F8AACA);
}

/* home-fit aporta un color sólido detrás de imágenes transparentes, pero el
   <picture> cubría también la imagen local del contenedor mientras el hero
   administrado cargaba. El fondo sigue en el <img>; la capa intermedia queda
   transparente para que el fallback responsive siempre sea visible. */
body.tt-home-premium .tt-hero-media picture {
  background: transparent !important;
}

body.tt-home-premium .tt-hero-content,
body.tt-home-premium .tt-hero-title,
body.tt-home-premium .tt-hero-subtitle {
  color: var(--color-text-inverse, #FFFFFF) !important;
  text-shadow: 0 2px 18px color-mix(in srgb, var(--color-brand-primary-hover, var(--color-brand-primary, #F8AACA)) 54%, transparent);
}

body.tt-home-premium .tt-hero-content {
  position: relative;
  z-index: 2;
}

body.tt-home-premium .tt-trust-bar,
body.tt-home-premium .tt-collections-section,
body.tt-home-premium .tt-look-section,
body.tt-home-premium .tt-products-section,
body.tt-home-premium .tt-reviews-section {
  background-color: var(--color-background-page, #FFFFFF) !important;
  background-image: none !important;
}

body.tt-home-premium .tt-editorial,
body.tt-home-premium .tt-watch-feature,
body.tt-home-premium .tt-review-card,
body.tt-home-premium .tt-product-card,
body.tt-home-premium .tt-look-card,
body.tt-home-premium .tt-trust-item {
  background-color: var(--color-background-surface, #FFFFFF) !important;
  border-color: var(--color-card-border, #FDECF2) !important;
  color: var(--color-text-primary, #222222) !important;
}

body.tt-home-premium .tt-section-title,
body.tt-home-premium .tt-editorial-title,
body.tt-home-premium .tt-watch-title,
body.tt-home-premium .tt-trust-title,
body.tt-home-premium .tt-review-name,
body.tt-home-premium .tt-product-name {
  color: var(--color-text-title, #222222) !important;
}

body.tt-home-premium .tt-section-sub,
body.tt-home-premium .tt-editorial-eyebrow,
body.tt-home-premium .tt-watch-eyebrow,
body.tt-home-premium .tt-product-price,
body.tt-home-premium .tt-review-stars {
  color:var(--color-text-primary,#222222) !important;
}

body.tt-home-premium .tt-section-desc,
body.tt-home-premium .tt-editorial-desc,
body.tt-home-premium .tt-watch-desc,
body.tt-home-premium .tt-trust-desc,
body.tt-home-premium .tt-review-text,
body.tt-home-premium .tt-review-product {
  color: var(--color-text-secondary, #222222) !important;
}

body.tt-home-premium .tt-btn {
  background-color: var(--color-button-primary-background, var(--color-brand-primary, #F8AACA));
  border-color: var(--color-button-primary-border, var(--color-brand-primary, #F8AACA));
  color: var(--color-button-primary-text, #FFFFFF) !important;
}

body.tt-home-premium .tt-btn-outline {
  background-color: var(--color-button-secondary-background, #FFFFFF);
  border-color: var(--color-button-secondary-border, var(--color-brand-primary, #F8AACA));
  color: var(--color-button-secondary-text, var(--color-brand-primary, #F8AACA)) !important;
}

body.tt-home-premium .tt-btn:focus-visible,
body.tt-home-premium a:focus-visible,
body.tt-home-premium button:focus-visible {
  outline: 3px solid var(--color-button-primary-focus-ring, rgba(248,170,202, .24));
  outline-offset: 3px;
}

/* Las secciones de contenido remoto siempre reservan espacio y muestran un
   estado comprensible, evitando huecos o saltos de layout. */
body.tt-home-premium #products-grid,
body.tt-home-premium #look-grid {
  min-height: 280px;
  align-content: start;
}

/* Control de recuperación del error de carga: objetivo táctil mínimo. */
body.tt-home-premium #products-grid [data-products-retry] {
  min-height: 44px;
}

body.tt-home-premium .tt-img-placeholder,
body.tt-home-premium .tt-coll-card-img,
body.tt-home-premium .tt-product-img,
body.tt-home-premium .tt-look-card-img {
  background-color: var(--color-skeleton-base, #FDECF2) !important;
}

body.tt-home-premium .tt-img-placeholder img,
body.tt-home-premium .tt-coll-card-img img,
body.tt-home-premium .tt-product-img img,
body.tt-home-premium .tt-look-card-img img {
  display: block;
  max-width: 100%;
}

body.tt-home-premium .tt-footer {
  background: var(--color-background-footer, #FFFFFF) !important;
  color: var(--color-text-primary, #222222) !important;
  border-top: 1px solid var(--color-border-primary, #FDECF2);
}

body.tt-home-premium .tt-footer a,
body.tt-home-premium .tt-footer-col-title,
body.tt-home-premium .tt-footer-bottom,
body.tt-home-premium .tt-footer-tagline {
  color: var(--color-text-primary, #222222) !important;
}

body.tt-home-premium .tt-footer-wa {
  background: var(--color-button-whatsapp-background, #0D8043) !important;
  color: var(--color-button-whatsapp-text, #FFFFFF) !important;
}

body.tt-home-premium .tt-footer-wa *,
body.tt-home-premium .tt-wa-float * {
  color: var(--color-button-whatsapp-text, #FFFFFF) !important;
}

/* Tablet */
@media (min-width: 769px) and (max-width: 1120px) {
  body.tt-home-premium .tt-editorial,
  body.tt-home-premium .tt-watch-feature {
    min-width: 0;
  }

  body.tt-home-premium #products-grid,
  body.tt-home-premium #look-grid {
    min-height: 240px;
  }
}

/* Mobile */
@media (max-width: 768px) {
  body.tt-home-premium {
    padding-bottom: calc(72px + env(safe-area-inset-bottom));
  }

  body.tt-home-premium .tt-look-actions {
    width: 100%;
  }

  body.tt-home-premium .tt-look-actions .tt-btn {
    width: 100%;
    min-height: 48px;
  }

  body.tt-home-premium #products-grid,
  body.tt-home-premium #look-grid {
    min-height: 210px;
  }
}

@media (max-width: 360px) {
  body.tt-home-premium .tt-section-title,
  body.tt-home-premium .tt-editorial-title,
  body.tt-home-premium .tt-watch-title {
    overflow-wrap: anywhere;
  }
}

@media (prefers-reduced-motion: reduce) {
  /* #tt-loader queda afuera a propósito: su spinner señala "todavía estoy
     cargando" (estado del sistema), no es una animación decorativa — apagarlo
     hace que el loader se vea congelado/roto en vez de simplemente sobrio. */
  body.tt-home-premium *:not(#tt-loader):not(#tt-loader *),
  body.tt-home-premium *::before,
  body.tt-home-premium *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }

  body.tt-home-premium #tt-loader .tt-loader-spinner::before,
  body.tt-home-premium #tt-loader .tt-loader-spinner::after {
    animation-duration: 1.6s !important;
    animation-iteration-count: infinite !important;
  }
}

