html {
  scroll-behavior: smooth;
}

.tmp-portfolio,
.tmp-portfolio * {
  box-sizing: border-box;
}

.tmp-portfolio {
  --tmp-columns: 4;
  --tmp-gap: 14px;       /* gap base (fallback para column y row) */
  --tmp-gap-x: 14px;     /* gap horizontal entre columnas */
  --tmp-gap-y: 8px;      /* gap vertical entre filas (menor para masonry ajustado) */
  --tmp-row: 8px;        /* unidad base; el bloque v2.9 la sobrescribe en desktop con clamp() */
  --tmp-radius: 24px;
  --tmp-overlay-opacity: .72;
  --tmp-dim-opacity: .28;
  --tmp-hover-scale: 1.065;
  --tmp-ease: cubic-bezier(.16, 1, .3, 1);
  --tmp-overlay-opacity-rest: .14;
  width: 100%;
  position: relative;
}

.tmp-grid {
  display: grid;
  grid-template-columns: repeat(var(--tmp-columns), minmax(0, 1fr));
  grid-auto-rows: var(--tmp-row, 4px);
  grid-auto-flow: dense;
  /* BUG FIX: usar column-gap y row-gap separados para que los controles de Elementor
     --tmp-gap-x y --tmp-gap-y funcionen correctamente */
  column-gap: var(--tmp-gap-x, var(--tmp-gap, 14px));
  row-gap: var(--tmp-gap-y, var(--tmp-gap, 8px));
  align-items: stretch;
  position: relative;
  perspective: 1300px;
}

.tmp-card {
  position: relative;
  grid-row: span 34;    /* equivale a tmp-card--normal: 12×34-8 = 400px */
  min-height: 200px;
  border-radius: var(--tmp-radius);
  overflow: visible;
  isolation: isolate;
  opacity: 0;
  transform: translateY(18px) scale(.985);
  transition: opacity .55s var(--tmp-ease), transform .55s var(--tmp-ease), filter .55s var(--tmp-ease);
  will-change: transform, opacity, filter;
}

.tmp-card.is-visible {
  opacity: 1;
  transform: translateY(0) scale(1);
}


body.elementor-editor-active .tmp-card,
body.elementor-editor-preview .tmp-card,
.elementor-editor-active .tmp-card {
  opacity: 1;
  transform: translateY(0) scale(1);
}

.tmp-card--placeholder .tmp-card__button::before {
  content: "";
  position: absolute;
  inset: 14px;
  z-index: 2;
  border: 1px solid rgba(255,255,255,.24);
  border-radius: calc(var(--tmp-radius) - 10px);
  pointer-events: none;
}

.tmp-card--placeholder .tmp-card__image {
  filter: saturate(.92) contrast(.98);
}

/*
 * Alturas con row=4px y row-gap=8px → altura = 12×span − 8
 * small  span 22 → 256px | normal span 34 → 400px
 * tall   span 48 → 568px | wide   span 32 (2col) → 376px
 * feature span 50 (2col) → 592px
 */
.tmp-card--small   { grid-row: span 22; }
.tmp-card--normal  { grid-row: span 34; }
.tmp-card--tall    { grid-row: span 48; }
.tmp-card--wide    { grid-column: span 2; grid-row: span 32; }
.tmp-card--feature { grid-column: span 2; grid-row: span 50; }

/* Variaciones Pinterest con primos distintos → patrón irregular, ~720 posiciones antes de repetir */
.tmp-card:nth-child(7n+2).tmp-card--normal   { grid-row: span 40; }
.tmp-card:nth-child(11n+3).tmp-card--normal  { grid-row: span 28; }
.tmp-card:nth-child(9n+5).tmp-card--tall     { grid-row: span 56; }
.tmp-card:nth-child(13n+1).tmp-card--tall    { grid-row: span 42; }
.tmp-card:nth-child(5n+4).tmp-card--wide     { grid-row: span 38; }
.tmp-card:nth-child(17n+6).tmp-card--small   { grid-row: span 26; }
.tmp-card:nth-child(19n+8).tmp-card--small   { grid-row: span 18; }
.tmp-card:nth-child(23n+10).tmp-card--normal { grid-row: span 44; }
.tmp-card:nth-child(29n+12).tmp-card--wide   { grid-row: span 29; }
.tmp-card:nth-child(31n+14).tmp-card--feature{ grid-row: span 44; }

.tmp-card__button {
  appearance: none;
  border: 0;
  padding: 0;
  width: 100%;
  height: 100%;
  min-height: inherit;
  display: block;
  position: relative;
  overflow: hidden;
  border-radius: var(--tmp-radius);
  background: #17110d;
  color: #fff;
  cursor: pointer;
  text-align: left;
  box-shadow: 0 12px 32px rgba(33, 24, 17, .11);
  transition: transform .62s var(--tmp-ease), box-shadow .62s var(--tmp-ease), filter .62s var(--tmp-ease);
  transform-origin: center center;
}

.tmp-card__button::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 2;
  background:
    linear-gradient(180deg, rgba(0,0,0,.03) 0%, rgba(0,0,0,.02) 38%, rgba(0,0,0,var(--tmp-overlay-opacity-rest)) 100%),
    radial-gradient(circle at 18% 15%, rgba(255,255,255,.13), transparent 34%);
  pointer-events: none;
  transition: background .55s var(--tmp-ease), opacity .55s var(--tmp-ease);
}

.tmp-card__image {
  position: absolute;
  inset: 0;
  z-index: 1;
  display: block;
  background-size: cover;
  background-position: center;
  transform: scale(1.015);
  transition: transform .8s var(--tmp-ease), filter .8s var(--tmp-ease);
}

.tmp-card__shine {
  position: absolute;
  inset: -40% auto auto -55%;
  width: 70%;
  height: 180%;
  z-index: 3;
  display: block;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,.24), transparent);
  transform: rotate(16deg) translateX(-140%);
  transition: transform .9s var(--tmp-ease);
  pointer-events: none;
}

.tmp-card__number {
  position: absolute;
  top: 16px;
  right: 17px;
  z-index: 4;
  color: rgba(255,255,255,.78);
  font-size: clamp(13px, .95vw, 17px);
  font-weight: 600;
  line-height: 1;
  letter-spacing: .02em;
  text-shadow: 0 2px 10px rgba(0,0,0,.25);
}

.tmp-card__content {
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
  padding: clamp(16px, 2vw, 24px);
  transform: translateY(14px);
  opacity: 0;
  transition: transform .58s var(--tmp-ease), opacity .58s var(--tmp-ease);
}

.tmp-card__category {
  display: inline-flex;
  font-size: 11px;
  line-height: 1;
  font-weight: 700;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .86;
}

.tmp-card__title {
  display: block;
  color: #fff;
  font-size: clamp(18px, 1.7vw, 30px);
  font-weight: 800;
  line-height: .98;
  letter-spacing: -.04em;
  text-shadow: 0 5px 20px rgba(0,0,0,.25);
}

.tmp-card__excerpt {
  display: block;
  max-width: 94%;
  color: rgba(255,255,255,.82);
  font-size: clamp(12px, .85vw, 14px);
  font-weight: 500;
  line-height: 1.25;
  opacity: .92;
  text-shadow: 0 3px 14px rgba(0,0,0,.28);
}

.tmp-card:hover,
.tmp-card:focus-within,
.tmp-card.is-hovered {
  z-index: 20;
}

.tmp-card:hover .tmp-card__button,
.tmp-card:focus-within .tmp-card__button,
.tmp-card.is-hovered .tmp-card__button {
  transform: translateY(-14px) scale(var(--tmp-hover-scale));
  box-shadow: 0 36px 92px rgba(21, 14, 9, .42);
}

.tmp-card:hover .tmp-card__button::after,
.tmp-card:focus-within .tmp-card__button::after,
.tmp-card.is-hovered .tmp-card__button::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.06) 32%, rgba(0,0,0,var(--tmp-overlay-opacity)) 100%),
    radial-gradient(circle at 18% 15%, rgba(255,255,255,.20), transparent 34%);
}

.tmp-card:hover .tmp-card__image,
.tmp-card:focus-within .tmp-card__image,
.tmp-card.is-hovered .tmp-card__image {
  transform: scale(1.14);
  filter: saturate(1.05) contrast(1.02);
}

.tmp-card:hover .tmp-card__content,
.tmp-card:focus-within .tmp-card__content,
.tmp-card.is-hovered .tmp-card__content {
  transform: translateY(-4px);
  opacity: 1;
}

.tmp-card:hover .tmp-card__shine,
.tmp-card:focus-within .tmp-card__shine,
.tmp-card.is-hovered .tmp-card__shine {
  transform: rotate(16deg) translateX(255%);
}

.tmp-grid.is-hovering .tmp-card:not(.is-hovered):not(:hover):not(:focus-within) {
  opacity: var(--tmp-dim-opacity);
  filter: blur(1px) saturate(.65) brightness(.72);
  transform: scale(.982);
}

.tmp-card__button:focus-visible {
  outline: 3px solid rgba(255,255,255,.88);
  outline-offset: 4px;
}

.tmp-empty {
  margin: 0;
  padding: 28px;
  border-radius: 18px;
  background: #f2ede7;
  color: #4c4038;
  font-weight: 600;
}

.tmp-modal {
  position: fixed;
  inset: 0;
  z-index: 999999;
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .35s var(--tmp-ease), visibility .35s var(--tmp-ease);
}

.tmp-modal.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.tmp-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(22, 16, 12, .66);
  backdrop-filter: blur(10px);
}

.tmp-modal__dialog {
  position: relative;
  z-index: 2;
  width: min(1120px, calc(100vw - 34px));
  max-height: min(88vh, 920px);
  margin: 6vh auto;
  transform: translateY(26px) scale(.97);
  transition: transform .42s var(--tmp-ease);
}

.tmp-modal.is-open .tmp-modal__dialog {
  transform: translateY(0) scale(1);
}

.tmp-modal__panel {
  overflow: hidden;
  max-height: min(88vh, 920px);
  border-radius: 30px;
  background: #f7f1e9;
  box-shadow: 0 38px 100px rgba(0,0,0,.34);
  display: grid;
  grid-template-columns: minmax(0, 1.05fr) minmax(340px, .95fr);
}

.tmp-modal__close {
  position: absolute;
  top: -18px;
  right: -16px;
  z-index: 5;
  width: 48px;
  height: 48px;
  display: inline-grid;
  place-items: center;
  border: 0;
  border-radius: 999px;
  background: rgba(38, 30, 24, .92);
  color: #fff;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
  box-shadow: 0 16px 38px rgba(0,0,0,.26);
  transition: transform .25s ease, background .25s ease;
}

.tmp-modal__close:hover,
.tmp-modal__close:focus-visible {
  transform: scale(1.06) rotate(6deg);
  background: #15100d;
}

.tmp-modal__media {
  min-height: 560px;
  background: #d8cab7;
  overflow: hidden;
}

.tmp-modal__media img {
  width: 100%;
  height: 100%;
  min-height: 560px;
  object-fit: cover;
  display: block;
}

.tmp-modal__body {
  padding: clamp(28px, 5vw, 62px);
  overflow: auto;
  color: #5b4d43;
}

.tmp-modal__eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 14px;
}

.tmp-modal__eyebrow span {
  display: inline-flex;
  align-items: center;
  border: 1px solid rgba(61, 47, 35, .18);
  border-radius: 999px;
  padding: 7px 11px;
  color: rgba(47, 40, 31, .72);
  font-size: 11px;
  line-height: 1;
  font-weight: 800;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tmp-modal__title {
  margin: 0;
  color: #2c2119;
  font-size: clamp(34px, 5.2vw, 72px);
  font-weight: 850;
  line-height: .9;
  letter-spacing: -.065em;
}

.tmp-modal__subtitle {
  margin: 16px 0 0;
  color: rgba(44, 33, 25, .72);
  font-size: clamp(16px, 1.6vw, 22px);
  line-height: 1.25;
  font-weight: 650;
}

.tmp-modal__specs {
  margin-top: 22px;
  padding: 18px 20px;
  border-radius: 18px;
  background: rgba(255,255,255,.52);
  color: rgba(44, 33, 25, .76);
  font-size: 14px;
  line-height: 1.55;
  font-weight: 560;
}

.tmp-modal__description {
  margin-top: 22px;
  font-size: 16px;
  line-height: 1.72;
  color: #5b4d43;
}

.tmp-modal__description > *:first-child { margin-top: 0; }
.tmp-modal__description > *:last-child { margin-bottom: 0; }

.tmp-modal__cta {
  margin-top: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  min-height: 52px;
  padding: 15px 22px;
  border-radius: 999px;
  background: #2f281f;
  color: #fff;
  text-decoration: none !important;
  font-weight: 800;
  line-height: 1;
  box-shadow: 0 14px 30px rgba(47, 40, 31, .22);
  transition: transform .25s ease, box-shadow .25s ease, filter .25s ease;
}

.tmp-modal__cta:hover,
.tmp-modal__cta:focus-visible {
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 20px 42px rgba(47, 40, 31, .30);
  filter: brightness(1.05);
}

body.tmp-modal-lock {
  overflow: hidden;
}

@media (max-width: 1024px) {
  /* En tablet los wide/feature pierden su segunda columna para que quepan */
  .tmp-card--wide,
  .tmp-card--feature {
    grid-column: span 1;
  }

  .tmp-card--feature { grid-row: span 44; }
  .tmp-card--wide { grid-row: span 34; }

  .tmp-modal__panel {
    grid-template-columns: 1fr;
    overflow: auto;
  }

  .tmp-modal__media,
  .tmp-modal__media img {
    min-height: 390px;
    max-height: 48vh;
  }

  .tmp-modal__body {
    overflow: visible;
  }
}

@media (max-width: 767px) {
  .tmp-grid {
    grid-auto-rows: 8px;
    /* mantener dense para que el patrón 2-col siga siendo Pinterest en mobile */
    grid-auto-flow: dense;
  }

  /* Mobile: 2 columnas con tamaños variados, no uniform */
  .tmp-card          { grid-column: span 1; grid-row: span 30; }
  .tmp-card--small   { grid-column: span 1; grid-row: span 22; }
  .tmp-card--normal  { grid-column: span 1; grid-row: span 30; }
  .tmp-card--tall    { grid-column: span 1; grid-row: span 38; }
  /* wide y feature se contraen a una columna pero manteniendo proporción */
  .tmp-card--wide    { grid-column: span 1; grid-row: span 28; }
  .tmp-card--feature { grid-column: span 1; grid-row: span 34; }

  /* Mantener las variaciones nth-child en mobile para ritmo visual */
  .tmp-card:nth-child(7n+2).tmp-card--normal  { grid-row: span 36; }
  .tmp-card:nth-child(11n+3).tmp-card--normal { grid-row: span 24; }
  .tmp-card:nth-child(9n+5).tmp-card--tall    { grid-row: span 44; }

  .tmp-card:hover .tmp-card__button,
  .tmp-card:focus-within .tmp-card__button,
  .tmp-card.is-hovered .tmp-card__button {
    transform: translateY(-4px) scale(1.015);
  }

  .tmp-grid.is-hovering .tmp-card:not(.is-hovered):not(:hover):not(:focus-within) {
    opacity: 1;
    filter: none;
    transform: none;
  }

  .tmp-card__content {
    opacity: 1;
    transform: translateY(0);
  }

  .tmp-card__button::after {
    background:
      linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.03) 35%, rgba(0,0,0,var(--tmp-overlay-opacity)) 100%),
      radial-gradient(circle at 18% 15%, rgba(255,255,255,.14), transparent 34%);
  }

  .tmp-card__content {
    padding: 18px;
  }

  .tmp-modal__dialog {
    width: calc(100vw - 20px);
    max-height: 92vh;
    margin: 4vh auto;
  }

  .tmp-modal__panel {
    border-radius: 22px;
    max-height: 92vh;
  }

  .tmp-modal__close {
    top: 10px;
    right: 10px;
    width: 42px;
    height: 42px;
    font-size: 26px;
    background: rgba(38, 30, 24, .78);
  }

  .tmp-modal__media,
  .tmp-modal__media img {
    min-height: 320px;
    max-height: 42vh;
  }

  .tmp-modal__body {
    padding: 26px 22px 30px;
  }

  .tmp-modal__cta {
    width: 100%;
  }
}

/* ===== Tehia v2 widgets ===== */
.tmp-sections{position:relative;min-height:100vh;padding:90px 44px 140px;font-family:Inter,Montserrat,Arial,sans-serif;overflow:clip;scroll-behavior:smooth}.tmp-section-block{min-height:70vh;scroll-margin-top:80px;margin-bottom:90px}.tmp-section-title{font-size:clamp(42px,7vw,94px);line-height:.9;text-align:center;margin:0 0 42px;font-weight:900;letter-spacing:-.06em}.tmp-auto-masonry{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:42px;gap:24px;grid-auto-flow:dense}.tmp-masonry-card{grid-column:span 3;grid-row:span 8;opacity:0;transform:translateY(28px);transition:opacity .6s ease,transform .6s ease}.tmp-masonry-card:nth-child(6n+1){grid-column:span 4;grid-row:span 10}.tmp-masonry-card:nth-child(6n+2){grid-column:span 3;grid-row:span 7}.tmp-masonry-card:nth-child(6n+3){grid-column:span 5;grid-row:span 12}.tmp-masonry-card:nth-child(6n+4){grid-column:span 2;grid-row:span 5}.tmp-masonry-card:nth-child(6n+5){grid-column:span 4;grid-row:span 7}.tmp-masonry-card.is-visible{opacity:1;transform:none}.tmp-masonry-card button{appearance:none;border:0;padding:0;margin:0;width:100%;height:100%;display:block;background:transparent;color:inherit;cursor:pointer;position:relative;overflow:hidden}.tmp-masonry-img{position:absolute;inset:0;background:center/cover no-repeat;transition:transform .55s cubic-bezier(.2,.8,.2,1),filter .35s ease}.tmp-masonry-copy{position:absolute;left:18px;right:18px;bottom:16px;z-index:2;opacity:0;transform:translateY(12px);transition:.3s ease;text-align:left}.tmp-masonry-copy strong{display:block;font-size:22px;line-height:1;font-weight:900}.tmp-masonry-copy em{display:block;font-style:normal;margin-top:7px;font-size:13px;line-height:1.25;opacity:.82}.tmp-masonry-card button:after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.68),rgba(0,0,0,0));opacity:0;transition:.3s}.tmp-masonry-card:hover{z-index:10;transform:translateY(-8px) scale(1.035)}.tmp-masonry-card:hover .tmp-masonry-img{transform:scale(1.12);filter:saturate(1.04)}.tmp-masonry-card:hover button:after,.tmp-masonry-card:hover .tmp-masonry-copy{opacity:1;transform:none}.tmp-float-menu{position:fixed;left:36px;top:50%;transform:translateY(-50%);z-index:20;width:min(220px,35vw);padding:24px 26px;border:1px solid rgba(255,255,255,.22);background:rgba(0,0,0,.34);backdrop-filter:blur(16px);display:flex;flex-direction:column;gap:8px}.tmp-float-menu strong{font-size:14px;margin-bottom:16px}.tmp-float-menu a{color:inherit;text-decoration:none;font-weight:800;font-size:18px;line-height:1.12;opacity:.75;border-bottom:1px solid transparent;width:max-content;max-width:100%}.tmp-float-menu a:hover,.tmp-float-menu a.is-active{opacity:1;text-decoration:none}.tmp-modal-pro{position:fixed;inset:0;z-index:99999;display:none}.tmp-modal-pro[aria-hidden="false"]{display:block}.tmp-modal-pro__shade{position:absolute;inset:0;background:rgba(0,0,0,.82);backdrop-filter:blur(5px)}.tmp-modal-pro__dialog{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:46px}.tmp-modal-pro__close{position:absolute;right:36px;top:24px;z-index:3;background:transparent;border:0;color:#fff;font-size:58px;line-height:1;cursor:pointer}.tmp-modal-pro__inner{position:relative;display:grid;grid-template-columns:minmax(320px,48vw) minmax(320px,42vw);gap:44px;align-items:center;width:min(1500px,94vw);color:#fff}.tmp-modal-pro__image{position:relative;aspect-ratio:4/5;background:#111;overflow:hidden}.tmp-modal-pro__image img{width:100%;height:100%;object-fit:cover;display:block}.tmp-modal-pro__body{padding-right:80px}.tmp-modal-pro__body h3{font-size:clamp(42px,5vw,76px);line-height:.92;margin:0 0 44px;text-transform:uppercase;letter-spacing:-.06em;color:inherit}.tmp-modal-pro__specs{display:grid;grid-template-columns:120px 1fr;gap:14px 26px;font-size:24px;line-height:1.2;font-weight:700}.tmp-modal-pro__specs b{font-weight:900}.tmp-modal-pro__text{font-size:18px;line-height:1.5;max-width:650px;opacity:.86;margin:28px 0}.tmp-modal-pro__cta{display:inline-flex;margin-top:18px;color:#fff;text-decoration:underline;font-size:20px;font-weight:900}.tmp-modal-pro__thumbs{display:flex;gap:18px;margin-top:42px;overflow:auto}.tmp-modal-pro__thumbs button{border:0;background:transparent;padding:0;width:150px;height:110px;flex:0 0 auto;cursor:pointer;opacity:.75}.tmp-modal-pro__thumbs button.is-active{opacity:1;outline:2px solid #fff}.tmp-modal-pro__thumbs img{width:100%;height:100%;object-fit:cover}.tmp-cat-carousel{position:relative;padding:70px 54px 110px;overflow:hidden;font-family:Inter,Montserrat,Arial,sans-serif}.tmp-cat-title{text-align:center;font-size:clamp(44px,7vw,92px);line-height:.9;margin:0 0 44px;font-weight:900;letter-spacing:-.06em}.tmp-car-track{display:flex;gap:32px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;padding:0 0 16px}.tmp-car-track::-webkit-scrollbar{height:0}.tmp-car-item{min-width:min(360px,70vw);scroll-snap-align:start;position:relative}.tmp-car-item img{width:100%;aspect-ratio:4/5;object-fit:cover;display:block;transition:transform .35s ease}.tmp-car-item:hover img{transform:scale(1.035)}.tmp-car-item span{display:block;margin-top:12px;font-weight:800}.tmp-car-arrow{position:absolute;top:55%;transform:translateY(-50%);z-index:2;background:transparent;border:0;color:inherit;font-size:58px;cursor:pointer}.tmp-car-arrow.prev{left:20px}.tmp-car-arrow.next{right:20px}.tmp-about{display:grid;grid-template-columns:1fr 1.2fr 1fr;gap:70px;align-items:center;min-height:100vh;padding:110px 56px;font-family:Inter,Montserrat,Arial,sans-serif;font-size:clamp(22px,2.1vw,36px);line-height:1.13;font-weight:700;letter-spacing:-.04em}.tmp-about img{width:100%;filter:grayscale(1);display:block}.tmp-contact{min-height:100vh;padding:110px 56px 54px;font-family:Inter,Montserrat,Arial,sans-serif;display:grid;grid-template-columns:28vw 1fr;gap:50px}.tmp-contact h2{font-size:clamp(34px,3.8vw,66px);line-height:1.05;margin:0;font-weight:900;letter-spacing:-.05em;color:inherit}.tmp-contact form{display:grid;grid-template-columns:1fr 1fr;gap:18px}.tmp-contact input,.tmp-contact textarea{background:transparent;border:1px solid var(--tmp-form-color,#fff);color:inherit;font:inherit;font-weight:700;padding:10px 12px;min-height:48px}.tmp-contact textarea{grid-column:1/-1;min-height:140px;resize:vertical}.tmp-contact button{grid-column:1/-1;justify-self:start;border:1px solid currentColor;background:transparent;color:inherit;border-radius:999px;padding:12px 24px;font-weight:900;cursor:pointer}.tmp-contact ::placeholder{color:currentColor;opacity:.9}.tmp-contact-links{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:44px;margin-top:90px;font-size:clamp(24px,3vw,48px);line-height:1.05;font-weight:700}.tmp-contact-links a{color:inherit;text-decoration:underline}.tmp-footer-reveal{position:fixed;left:0;right:0;bottom:0;z-index:80;display:flex;gap:min(8vw,120px);padding:28px 56px;transform:translateY(110%);transition:transform .35s ease;font-family:Inter,Montserrat,Arial,sans-serif}.tmp-footer-reveal.is-visible{transform:none}.tmp-footer-reveal a{text-decoration:none;font-weight:900;font-size:18px}
@media(max-width:1024px){.tmp-sections{padding:70px 18px 110px}.tmp-auto-masonry{grid-template-columns:repeat(6,1fr);gap:14px}.tmp-masonry-card,.tmp-masonry-card:nth-child(n){grid-column:span 3;grid-row:span 7}.tmp-masonry-card:nth-child(4n+1){grid-column:span 6;grid-row:span 9}.tmp-float-menu{position:sticky;top:10px;left:auto;transform:none;width:auto;flex-direction:row;overflow:auto;margin:0 0 24px;padding:14px}.tmp-float-menu strong{margin:0 16px 0 0}.tmp-modal-pro__inner{grid-template-columns:1fr}.tmp-modal-pro__dialog{overflow:auto;align-items:flex-start}.tmp-modal-pro__body{padding:0}.tmp-about{grid-template-columns:1fr;gap:30px;padding:80px 22px}.tmp-contact{grid-template-columns:1fr;padding:80px 22px}.tmp-contact-links{grid-template-columns:1fr;font-size:32px;margin-top:50px}}@media(max-width:640px){.tmp-auto-masonry{display:block}.tmp-masonry-card{height:72vw;margin-bottom:14px;opacity:1;transform:none}.tmp-masonry-copy,.tmp-masonry-card button:after{opacity:1;transform:none}.tmp-modal-pro__dialog{padding:54px 16px 28px}.tmp-modal-pro__close{right:14px;top:12px;font-size:44px}.tmp-modal-pro__body h3{font-size:42px}.tmp-modal-pro__specs{grid-template-columns:1fr;font-size:19px}.tmp-contact form{grid-template-columns:1fr}.tmp-footer-reveal{padding:18px 22px;gap:24px;overflow:auto}}

/* Integrated sticky category menu inside main masonry grid */
.tmp-portfolio--category-flow .tmp-grid--category-flow {
  align-items: stretch;
}

.tmp-integrated-menu {
  /* --tmp-menu-span controla cuántas filas ocupa el menú en el grid.
     Con row=4px + row-gap=8px, span 200 ≈ 2392px de zona sticky.
     Si tu portfolio es muy largo, podés aumentar este valor. */
  grid-column: span 1;
  grid-row: span var(--tmp-menu-span, 200);
  min-height: 360px;
  position: sticky;
  top: clamp(76px, 10vh, 132px);
  z-index: 18;
  align-self: start;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: var(--tmp-radius);
  padding: clamp(22px, 2vw, 34px);
  color: #fff;
  background: #050505;
  box-shadow: 0 34px 90px rgba(0,0,0,.28);
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 14px;
  overflow: hidden;
}

.tmp-integrated-menu:after {
  content: "";
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 10% 0%, rgba(255,255,255,.14), transparent 28%), linear-gradient(135deg, rgba(255,255,255,.06), transparent 45%);
  pointer-events: none;
}

.tmp-integrated-menu__title {
  position: relative;
  z-index: 2;
  margin-bottom: 10px;
  font-size: clamp(14px, 1.1vw, 18px);
  font-weight: 900;
  letter-spacing: -.04em;
}

.tmp-integrated-menu a {
  position: relative;
  z-index: 2;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  width: fit-content;
  color: #fff;
  font-size: clamp(18px, 1.7vw, 31px);
  font-weight: 800;
  line-height: .98;
  letter-spacing: -.055em;
  text-decoration: none;
  opacity: .88;
  transition: opacity .28s var(--tmp-ease), transform .28s var(--tmp-ease), color .28s var(--tmp-ease);
}

.tmp-integrated-menu a:before {
  content: "";
  width: 0;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  transition: width .28s var(--tmp-ease);
}

.tmp-integrated-menu a:hover,
.tmp-integrated-menu a.is-active {
  opacity: 1;
  transform: translateX(5px);
}

.tmp-integrated-menu a.is-active:before,
.tmp-integrated-menu a:hover:before {
  width: 18px;
}

.tmp-category-anchor {
  grid-column: 1 / -1;
  grid-row: span 1;
  height: 1px;
  min-height: 1px;
  scroll-margin-top: 120px;
  opacity: 0;
  pointer-events: none;
}

.tmp-portfolio--category-flow .tmp-card:nth-of-type(7n+3) { transform-origin: 25% 50%; }
.tmp-portfolio--category-flow .tmp-card:nth-of-type(9n+5) { transform-origin: 75% 35%; }

.tmp-modal__media--gallery {
  display: flex;
  flex-direction: column;
  min-height: 0;
  background: #080808;
}

.tmp-modal__media--gallery > img {
  min-height: 0;
  flex: 1 1 auto;
}

.tmp-modal__thumbs {
  display: flex;
  gap: 10px;
  padding: 12px;
  overflow-x: auto;
  background: rgba(0,0,0,.82);
}

.tmp-modal__thumbs button {
  flex: 0 0 82px;
  height: 70px;
  border: 2px solid transparent;
  border-radius: 14px;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  background: transparent;
  opacity: .66;
  transition: opacity .2s ease, border-color .2s ease, transform .2s ease;
}

.tmp-modal__thumbs button:hover,
.tmp-modal__thumbs button.is-active {
  opacity: 1;
  border-color: #fff;
  transform: translateY(-2px);
}

.tmp-modal__thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

@media (min-width: 981px) {
  .tmp-portfolio--category-flow .tmp-grid--category-flow {
    grid-template-columns: repeat(var(--tmp-columns), minmax(0, 1fr));
  }
}

@media (max-width: 980px) {
  .tmp-integrated-menu {
    grid-column: 1 / -1;
    grid-row: span 16;
    min-height: 0;
    position: sticky;
    top: 10px;
    flex-direction: row;
    justify-content: flex-start;
    align-items: center;
    gap: 16px;
    overflow-x: auto;
    padding: 14px 16px;
    border-radius: 18px;
  }
  .tmp-integrated-menu__title { margin: 0 6px 0 0; white-space: nowrap; }
  .tmp-integrated-menu a { white-space: nowrap; font-size: 16px; letter-spacing: -.03em; }
  .tmp-integrated-menu a:before { display: none; }
}

@media (max-width: 767px) {
  .tmp-category-anchor { scroll-margin-top: 88px; }
  .tmp-modal__thumbs button { flex-basis: 66px; height: 58px; }
}

/* Tehia dynamic front-menu + environmental masonry motion */
@media (min-width: 981px) {
  .tmp-portfolio--category-flow .tmp-grid--category-flow {
    grid-auto-rows: clamp(9px, .8vw, 13px);
    perspective: 1600px;
    contain: layout style;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu {
    grid-column: span 1;
    grid-row: span var(--tmp-menu-span, 200);
    min-height: 430px;
    position: sticky;
    top: clamp(72px, 12vh, 150px);
    z-index: 80;
    width: min(340px, calc(100% + clamp(46px, 5vw, 96px)));
    margin-right: calc(clamp(28px, 4vw, 76px) * -1);
    transform: translate3d(0, 0, 90px);
    transform-style: preserve-3d;
    background: rgba(0,0,0,.82);
    border-color: rgba(255,255,255,.22);
    outline: 1px solid rgba(255,255,255,.06);
    box-shadow: 0 42px 120px rgba(0,0,0,.62), 0 0 0 1px rgba(255,255,255,.035) inset;
    backdrop-filter: blur(18px) saturate(1.05);
    -webkit-backdrop-filter: blur(18px) saturate(1.05);
    transition: transform .62s var(--tmp-ease), box-shadow .62s var(--tmp-ease), opacity .4s var(--tmp-ease);
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu:hover,
  .tmp-portfolio--category-flow .tmp-grid.is-hovering .tmp-integrated-menu {
    transform: translate3d(10px, -4px, 120px) scale(1.015);
    box-shadow: 0 54px 150px rgba(0,0,0,.76), 0 0 0 1px rgba(255,255,255,.07) inset;
  }

  .tmp-portfolio--category-flow .tmp-card {
    transition: opacity .55s var(--tmp-ease), transform .55s var(--tmp-ease), filter .55s var(--tmp-ease), grid-row-end .55s var(--tmp-ease), grid-column-end .55s var(--tmp-ease);
  }

  .tmp-portfolio--category-flow .tmp-card.is-grid-open {
    grid-column: span 2;
    grid-row: span 48;
    z-index: 60;
  }

  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--small,
  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--normal,
  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--tall {
    grid-column: span 2;
  }

  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--wide,
  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--feature {
    grid-column: span 2;
    grid-row: span 54;
  }

  .tmp-portfolio--category-flow .tmp-grid.is-hovering .tmp-card:not(.is-hovered) {
    filter: brightness(.64) saturate(.86);
  }

  .tmp-portfolio--category-flow .tmp-grid.is-hovering .tmp-card:not(.is-hovered) .tmp-card__button {
    transform: scale(.965);
  }

  .tmp-portfolio--category-flow .tmp-card.is-hovered .tmp-card__button {
    transform: translateY(-10px) scale(var(--tmp-hover-scale));
    box-shadow: 0 48px 120px rgba(0,0,0,.42);
  }

  .tmp-portfolio--category-flow .tmp-card.is-hovered .tmp-card__content {
    opacity: 1;
    transform: translateY(0);
  }

  .tmp-portfolio--category-flow .tmp-card.is-hovered .tmp-card__image {
    transform: scale(1.13);
  }

  .tmp-portfolio--category-flow .tmp-category-anchor {
    grid-column: span 1;
    grid-row: span 1;
    width: 1px;
    min-width: 1px;
    margin: 0;
  }
}

@media (max-width: 980px) {
  .tmp-portfolio--category-flow .tmp-integrated-menu {
    z-index: 80;
    background: rgba(0,0,0,.82);
    backdrop-filter: blur(16px);
    -webkit-backdrop-filter: blur(16px);
  }
}

/* Tehia draggable floating menu: overlay, no layout impact */
.tmp-portfolio--category-flow {
  position: relative;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating {
  position: fixed !important;
  left: 32px;
  top: 110px;
  right: auto !important;
  bottom: auto !important;
  z-index: 9990;
  width: min(250px, 78vw);
  grid-column: auto !important;
  grid-row: auto !important;
  padding: 14px 14px 16px !important;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 28px;
  background: rgba(0,0,0,.48);
  -webkit-backdrop-filter: blur(18px) saturate(1.2);
  backdrop-filter: blur(18px) saturate(1.2);
  box-shadow: 0 24px 70px rgba(0,0,0,.35);
  display: grid;
  grid-template-columns: 30px 1fr 34px;
  gap: 10px;
  align-items: start;
  transform: translate3d(0,0,0) !important;
  transition: opacity .25s ease, box-shadow .25s ease, border-color .25s ease, width .25s ease, padding .25s ease;
  cursor: default;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating:hover,
.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-dragging {
  border-color: rgba(255,255,255,.35);
  box-shadow: 0 30px 90px rgba(0,0,0,.5);
}
.tmp-portfolio--category-flow .tmp-integrated-menu__drag,
.tmp-portfolio--category-flow .tmp-integrated-menu__toggle {
  appearance: none;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.07);
  color: inherit;
  width: 30px;
  height: 30px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  line-height: 1;
  cursor: grab;
  font-weight: 900;
  padding: 0;
}
.tmp-portfolio--category-flow .tmp-integrated-menu__toggle {
  cursor: pointer;
  font-size: 20px;
}
.tmp-portfolio--category-flow .tmp-integrated-menu.is-dragging .tmp-integrated-menu__drag {
  cursor: grabbing;
}
.tmp-portfolio--category-flow .tmp-integrated-menu__body {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: 7px;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating .tmp-integrated-menu__title {
  margin: 1px 0 12px;
  opacity: .92;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating a {
  max-width: 100%;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating:after {
  display: none !important;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
  width: 84px;
  padding: 12px !important;
  grid-template-columns: 30px 30px;
  gap: 0 8px;
  border-radius: 999px;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__body {
  display: none;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__toggle {
  font-size: 0;
}
.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__toggle:before {
  content: '+';
  font-size: 20px;
}
.tmp-portfolio--category-flow .tmp-grid--category-flow {
  position: relative;
  z-index: 1;
}
.tmp-portfolio--category-flow .tmp-grid--category-flow.is-hovering .tmp-card:not(.is-hovered) {
  opacity: .58;
  filter: saturate(.78) brightness(.72);
}
.tmp-portfolio--category-flow .tmp-card.is-grid-open,
.tmp-portfolio--category-flow .tmp-card.is-hovered {
  z-index: 6;
}
.tmp-portfolio--category-flow .tmp-card {
  transition: opacity .38s ease, filter .38s ease, transform .45s cubic-bezier(.16,1,.3,1), box-shadow .45s cubic-bezier(.16,1,.3,1);
}

@media (max-width: 767px) {
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    position: sticky !important;
    top: 8px;
    left: auto !important;
    width: auto;
    margin: 0 0 16px;
    display: flex;
    align-items: center;
    padding: 10px !important;
    border-radius: 18px;
    overflow-x: auto;
    transform: none !important;
  }
  .tmp-portfolio--category-flow .tmp-integrated-menu__drag,
  .tmp-portfolio--category-flow .tmp-integrated-menu__toggle {
    display: none;
  }
  .tmp-portfolio--category-flow .tmp-integrated-menu__body {
    flex-direction: row;
    align-items: center;
    gap: 14px;
  }
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating .tmp-integrated-menu__title,
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating a {
    white-space: nowrap;
  }
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
    width: auto;
  }
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__body {
    display: flex;
  }
}

/* Tehia v2.3 - menú flotante drag & drop más intuitivo, monocromo y minimizado hamburguesa */
.tmp-portfolio--category-flow .tmp-integrated-menu--floating {
  width: min(292px, calc(100vw - 32px));
  min-height: 0 !important;
  padding: 12px !important;
  border-radius: 24px;
  background: rgba(0,0,0,.86) !important;
  color: #fff;
  border: 1px solid rgba(255,255,255,.22);
  -webkit-backdrop-filter: blur(20px) saturate(1.15);
  backdrop-filter: blur(20px) saturate(1.15);
  box-shadow: 0 28px 90px rgba(0,0,0,.48), inset 0 1px 0 rgba(255,255,255,.10);
  display: grid;
  grid-template-columns: 1fr 42px;
  grid-template-areas:
    "drag toggle"
    "body body";
  gap: 10px;
  align-items: start;
  overflow: visible;
  isolation: isolate;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating:before {
  content: "";
  position: absolute;
  inset: -1px;
  border-radius: inherit;
  background: linear-gradient(135deg, rgba(255,255,255,.22), rgba(255,255,255,0) 42%, rgba(255,255,255,.12));
  opacity: .55;
  pointer-events: none;
  z-index: -1;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating:hover,
.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-dragging {
  border-color: rgba(255,255,255,.38);
  box-shadow: 0 34px 110px rgba(0,0,0,.60), inset 0 1px 0 rgba(255,255,255,.16);
}

.tmp-portfolio--category-flow .tmp-integrated-menu__drag {
  grid-area: drag;
  width: 100%;
  height: 42px;
  padding: 0 14px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.16);
  background: rgba(255,255,255,.075);
  color: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: flex-start;
  gap: 10px;
  cursor: grab;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .08em;
  text-transform: uppercase;
  opacity: .94;
  transition: background .22s ease, border-color .22s ease, opacity .22s ease, transform .22s ease;
}

.tmp-portfolio--category-flow .tmp-integrated-menu__drag:hover {
  background: rgba(255,255,255,.13);
  border-color: rgba(255,255,255,.28);
  opacity: 1;
}

.tmp-portfolio--category-flow .tmp-integrated-menu.is-dragging .tmp-integrated-menu__drag {
  cursor: grabbing;
  transform: scale(.985);
}

.tmp-portfolio--category-flow .tmp-integrated-menu__drag-icon {
  position: relative;
  width: 16px;
  height: 16px;
  flex: 0 0 16px;
  opacity: .9;
  background-image: radial-gradient(circle, currentColor 1.5px, transparent 1.6px);
  background-size: 7px 7px;
  background-position: 0 0;
}

.tmp-portfolio--category-flow .tmp-integrated-menu__toggle {
  grid-area: toggle;
  width: 42px;
  height: 42px;
  border-radius: 16px;
  border: 1px solid rgba(255,255,255,.16);
  background: #fff;
  color: #000;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease;
}

.tmp-portfolio--category-flow .tmp-integrated-menu__toggle:hover {
  transform: translateY(-1px);
  border-color: rgba(255,255,255,.46);
}

.tmp-portfolio--category-flow .tmp-menu-toggle-icon {
  position: relative;
  width: 18px;
  height: 2px;
  display: block;
  border-radius: 999px;
  background: currentColor;
}

.tmp-portfolio--category-flow .tmp-menu-toggle-icon:before,
.tmp-portfolio--category-flow .tmp-menu-toggle-icon:after {
  content: "";
  position: absolute;
  left: 0;
  width: 18px;
  height: 2px;
  border-radius: 999px;
  background: currentColor;
  opacity: 0;
  transform: translateY(0);
  transition: opacity .18s ease, transform .18s ease;
}

.tmp-portfolio--category-flow .tmp-integrated-menu__body {
  grid-area: body;
  min-width: 0;
  padding: 8px 6px 6px;
  display: flex;
  flex-direction: column;
  gap: 7px;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating .tmp-integrated-menu__title {
  margin: 0 0 10px;
  color: #fff;
  opacity: .56;
  font-size: 11px;
  font-weight: 900;
  letter-spacing: .10em;
  text-transform: uppercase;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating a {
  width: 100%;
  max-width: 100%;
  color: #fff;
  opacity: .74;
  font-size: clamp(17px, 1.18vw, 21px);
  line-height: 1.05;
  letter-spacing: -.045em;
  padding: 5px 0;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating a:before {
  height: 1px;
  background: #fff;
  opacity: .92;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating a:hover,
.tmp-portfolio--category-flow .tmp-integrated-menu--floating a.is-active {
  color: #fff;
  opacity: 1;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
  width: 58px;
  height: 58px;
  min-width: 58px;
  min-height: 58px !important;
  padding: 0 !important;
  border-radius: 999px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: grab;
  overflow: hidden;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized.is-dragging {
  cursor: grabbing;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__drag,
.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__body {
  display: none !important;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__toggle {
  width: 58px;
  height: 58px;
  border: 0;
  border-radius: 999px;
  background: #000;
  color: #fff;
  box-shadow: inset 0 0 0 1px rgba(255,255,255,.24);
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon {
  width: 22px;
  background: currentColor;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon:before,
.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon:after {
  width: 22px;
  opacity: 1;
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon:before {
  transform: translateY(-7px);
}

.tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon:after {
  transform: translateY(7px);
}

@media (max-width: 767px) {
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    position: sticky !important;
    top: 8px;
    left: auto !important;
    width: auto;
    min-width: 0;
    height: auto;
    margin: 0 0 16px;
    display: block;
    padding: 10px 12px !important;
    border-radius: 18px;
    overflow-x: auto;
    transform: none !important;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__drag,
  .tmp-portfolio--category-flow .tmp-integrated-menu__toggle {
    display: none !important;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__body,
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__body {
    display: flex !important;
    flex-direction: row;
    align-items: center;
    gap: 16px;
    padding: 0;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating .tmp-integrated-menu__title,
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating a {
    white-space: nowrap;
  }
}


/* ===== Tehia v2.4 - ajustes UX móvil, hover desktop y modal ===== */
@media (min-width: 981px) {
  .tmp-portfolio--category-flow {
    --tmp-gap: clamp(24px, 2vw, 34px);
    --tmp-hover-scale: 1.032;
    --tmp-dim-opacity: .46;
  }

  .tmp-portfolio--category-flow .tmp-grid--category-flow {
    gap: var(--tmp-gap);
    padding: clamp(4px, .5vw, 10px);
  }

  .tmp-portfolio--category-flow .tmp-card.is-grid-open {
    grid-column: span 2;
    grid-row: span 44;
  }

  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--wide,
  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--feature {
    grid-column: span 2;
    grid-row: span 48;
  }

  .tmp-portfolio--category-flow .tmp-card.is-hovered .tmp-card__button,
  .tmp-portfolio--category-flow .tmp-card:hover .tmp-card__button,
  .tmp-portfolio--category-flow .tmp-card:focus-within .tmp-card__button {
    transform: translateY(-7px) scale(var(--tmp-hover-scale));
  }

  .tmp-portfolio--category-flow .tmp-grid.is-hovering .tmp-card:not(.is-hovered):not(:hover):not(:focus-within) .tmp-card__button {
    transform: scale(.985);
  }
}

.tmp-modal__panel {
  gap: clamp(18px, 2.1vw, 34px);
  padding: clamp(10px, 1.25vw, 18px);
}

.tmp-modal__media--gallery {
  border-radius: 22px;
  overflow: hidden;
}

.tmp-modal__body {
  border-radius: 22px;
  background: #f7f1e9;
  padding: clamp(34px, 4.4vw, 66px) clamp(30px, 4.2vw, 60px);
}

.tmp-modal__eyebrow {
  margin-bottom: 18px;
}

.tmp-modal__subtitle {
  margin-top: 20px;
}

.tmp-modal__specs {
  margin-top: 28px;
  padding: 22px 24px;
}

.tmp-modal__description {
  margin-top: 30px;
}

.tmp-modal__cta {
  margin-top: 34px;
}

.tmp-modal__thumbs {
  padding: 14px;
  gap: 12px;
}

@media (max-width: 1024px) {
  .tmp-modal__panel {
    gap: 16px;
    padding: 10px;
  }

  .tmp-modal__body {
    padding: 34px 28px 38px;
  }
}

@media (max-width: 767px) {
  .tmp-modal__dialog {
    width: calc(100vw - 18px);
    max-height: 94vh;
    margin: 3vh auto;
  }

  .tmp-modal__panel {
    gap: 16px;
    padding: 8px;
    border-radius: 26px;
  }

  .tmp-modal__media--gallery {
    border-radius: 20px 20px 14px 14px;
  }

  .tmp-modal__body {
    padding: 30px 24px 34px;
    border-radius: 18px 18px 22px 22px;
  }

  .tmp-modal__specs {
    margin-top: 24px;
    padding: 18px 18px;
  }

  .tmp-modal__description {
    margin-top: 24px;
  }
}

/* Menú flotante: en móvil conserva el mismo patrón desktop, pero inicia minimizado */
.tmp-portfolio--category-flow .tmp-integrated-menu--floating,
.tmp-portfolio--category-flow .tmp-integrated-menu--floating * {
  -webkit-user-select: none;
  user-select: none;
  -webkit-tap-highlight-color: transparent;
}

@media (max-width: 767px) {
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    position: fixed !important;
    left: 14px !important;
    top: 18px;
    right: auto !important;
    bottom: auto !important;
    z-index: 9995;
    width: min(292px, calc(100vw - 28px));
    min-width: 0;
    height: auto;
    margin: 0;
    display: grid !important;
    grid-template-columns: 1fr 46px;
    grid-template-areas: "body toggle";
    gap: 10px;
    align-items: start;
    overflow: visible;
    padding: 12px !important;
    border-radius: 24px;
    transform: none !important;
  }

  body.admin-bar .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    top: 64px;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__drag {
    display: none !important;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__toggle {
    display: inline-flex !important;
    grid-area: toggle;
    width: 46px;
    height: 46px;
    border-radius: 16px;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__body,
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating:not(.is-minimized) .tmp-integrated-menu__body {
    grid-area: body;
    display: flex !important;
    flex-direction: column;
    align-items: flex-start;
    gap: 7px;
    padding: 6px 4px 4px;
    min-width: 0;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating .tmp-integrated-menu__title,
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating a {
    white-space: normal;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating a {
    font-size: 18px;
    line-height: 1.05;
    padding: 4px 0;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
    position: fixed !important;
    left: 16px !important;
    top: 86px;
    width: 56px !important;
    height: 56px !important;
    min-width: 56px !important;
    min-height: 56px !important;
    padding: 0 !important;
    border-radius: 999px;
    display: flex !important;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }

  body.admin-bar .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
    top: 64px;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__body {
    display: none !important;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__toggle {
    display: inline-flex !important;
    width: 56px;
    height: 56px;
    border-radius: 999px;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon {
    width: 22px;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon:before,
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon:after {
    width: 22px;
    opacity: 1;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon:before {
    transform: translateY(-7px);
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-menu-toggle-icon:after {
    transform: translateY(7px);
  }
}

/* ===== Tehia v2.5 - menú flotante default derecha + header logo offcanvas ===== */
@media (min-width: 768px) {
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    left: auto !important;
    right: clamp(18px, 3vw, 46px) !important;
    top: clamp(92px, 13vh, 150px) !important;
  }

  body.admin-bar .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    top: clamp(106px, 15vh, 166px) !important;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
    left: auto !important;
    right: clamp(18px, 3vw, 46px) !important;
  }
}

@media (max-width: 767px) {
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating,
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
    left: auto !important;
    right: 16px !important;
  }
}

.tmp-header-canvas {
  position: relative;
  z-index: 10020;
  font-family: Inter, Montserrat, Arial, sans-serif;
}

.tmp-header-logo-btn {
  --tmp-header-logo-w: 72px;
  appearance: none;
  border: 0;
  width: var(--tmp-header-logo-w);
  min-width: var(--tmp-header-logo-w);
  height: auto;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 0;
  cursor: pointer;
  color: #fff;
  line-height: 1;
  transition: opacity .22s ease, transform .22s ease, filter .22s ease;
  -webkit-tap-highlight-color: transparent;
}

.tmp-header-logo-btn:hover,
.tmp-header-logo-btn:focus-visible {
  opacity: .82;
  transform: translateY(-1px);
  outline: none;
}

.tmp-header-logo-btn img,
.tmp-header-logo-btn svg {
  display: block;
  width: 100%;
  height: auto;
  max-height: 92px;
  object-fit: contain;
}

.tmp-header-logo-svg {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  line-height: 0;
  color: currentColor;
}

.tmp-header-logo-svg svg {
  display: block;
  width: 100%;
  height: auto;
  max-height: 92px;
}

.tmp-header-canvas-brand .tmp-header-logo-svg {
  width: min(150px, 42vw);
}

.tmp-header-canvas-brand .tmp-header-logo-svg svg {
  max-height: 80px;
}

.tmp-header-logo-mark {
  position: relative;
  display: inline-block;
  width: var(--tmp-header-logo-w, 72px);
  aspect-ratio: 1;
  color: #fff;
  border-radius: 999px;
}

.tmp-header-logo-mark:before,
.tmp-header-logo-mark:after {
  content: "";
  position: absolute;
  left: 10%;
  right: 10%;
  top: 50%;
  height: 28%;
  transform: translateY(-50%);
  background: currentColor;
  border-radius: 999px;
}

.tmp-header-logo-mark:after {
  left: 38%;
  right: 38%;
  top: 50%;
  height: 42%;
  background: #000;
  box-shadow: 0 0 0 999px transparent;
}

.tmp-header-canvas-backdrop {
  position: fixed;
  inset: 0;
  z-index: 10010;
  opacity: 0;
  pointer-events: none;
  -webkit-backdrop-filter: blur(0px) saturate(1);
  backdrop-filter: blur(0px) saturate(1);
  transition: opacity .34s ease, backdrop-filter .34s ease, -webkit-backdrop-filter .34s ease;
}

.tmp-header-canvas-panel {
  --tmp-canvas-w: 460px;
  position: fixed;
  z-index: 10030;
  top: 0;
  bottom: 0;
  width: min(var(--tmp-canvas-w), calc(100vw - 22px));
  max-width: 94vw;
  color: #fff;
  display: grid;
  grid-template-rows: auto 1fr auto;
  gap: clamp(28px, 5vh, 70px);
  padding: clamp(24px, 4vw, 54px);
  box-shadow: 0 0 80px rgba(0,0,0,.55);
  opacity: 0;
  pointer-events: none;
  transition: transform .48s cubic-bezier(.16, 1, .3, 1), opacity .28s ease;
  overflow-y: auto;
  overscroll-behavior: contain;
}

.tmp-header-canvas--left .tmp-header-canvas-panel {
  left: 0;
  transform: translateX(-102%);
}

.tmp-header-canvas--right .tmp-header-canvas-panel {
  right: 0;
  transform: translateX(102%);
}

.tmp-header-canvas.is-open .tmp-header-canvas-backdrop {
  opacity: 1;
  pointer-events: auto;
  -webkit-backdrop-filter: blur(12px) saturate(.9);
  backdrop-filter: blur(12px) saturate(.9);
}

.tmp-header-canvas.is-open .tmp-header-canvas-panel {
  opacity: 1;
  pointer-events: auto;
  transform: translateX(0);
}

.tmp-header-canvas-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 22px;
}

.tmp-header-canvas-brand {
  display: flex;
  align-items: center;
  gap: 16px;
  min-width: 0;
}

.tmp-header-canvas-brand img,
.tmp-header-canvas-brand svg {
  display: block;
  width: min(150px, 42vw);
  max-height: 80px;
  object-fit: contain;
}

.tmp-header-canvas-brand .tmp-header-logo-mark {
  --tmp-header-logo-w: 74px;
}

.tmp-header-canvas-title {
  display: block;
  opacity: .62;
  font-size: 12px;
  font-weight: 900;
  text-transform: uppercase;
  letter-spacing: .16em;
}

.tmp-header-canvas-close {
  appearance: none;
  border: 1px solid currentColor;
  background: transparent;
  width: 48px;
  height: 48px;
  border-radius: 999px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font-size: 32px;
  line-height: 1;
  cursor: pointer;
  opacity: .76;
  transition: opacity .2s ease, transform .2s ease, background .2s ease;
}

.tmp-header-canvas-close:hover,
.tmp-header-canvas-close:focus-visible {
  opacity: 1;
  transform: rotate(90deg);
  outline: none;
}

.tmp-header-canvas-nav {
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 0;
}

.tmp-header-canvas-nav a {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
  color: inherit;
  text-decoration: none;
  border-bottom: 1px solid rgba(255,255,255,.18);
  padding: clamp(16px, 2.6vh, 28px) 0;
  font-size: clamp(34px, 5.5vw, 76px);
  line-height: .92;
  font-weight: 900;
  letter-spacing: -.075em;
  transition: opacity .22s ease, transform .22s ease, padding-left .22s ease;
}

.tmp-header-canvas-nav a span {
  font-size: .42em;
  opacity: 0;
  transform: translateX(-8px);
  transition: opacity .22s ease, transform .22s ease;
}

.tmp-header-canvas-nav a:hover,
.tmp-header-canvas-nav a:focus-visible {
  opacity: .74;
  padding-left: 12px;
  outline: none;
}

.tmp-header-canvas-nav a:hover span,
.tmp-header-canvas-nav a:focus-visible span {
  opacity: 1;
  transform: translateX(0);
}

.tmp-header-canvas-social {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px 24px;
  border-top: 1px solid rgba(255,255,255,.18);
  padding-top: 24px;
  font-size: 14px;
  line-height: 1.2;
  font-weight: 800;
}

.tmp-header-canvas-social a {
  color: inherit;
  text-decoration: none;
  opacity: .78;
  transition: opacity .2s ease, transform .2s ease;
}

.tmp-header-canvas-social a:hover,
.tmp-header-canvas-social a:focus-visible {
  opacity: 1;
  transform: translateY(-1px);
  outline: none;
}

.tmp-header-canvas-social strong {
  display: inline-block;
  margin-top: 4px;
  font-size: 13px;
  font-weight: 900;
}

body.tmp-header-canvas-lock {
  overflow: hidden;
}

@media (max-width: 767px) {
  .tmp-header-logo-btn {
    --tmp-header-logo-w: 54px;
  }

  .tmp-header-canvas-panel {
    width: min(var(--tmp-canvas-w), calc(100vw - 18px));
    padding: 24px 22px 28px;
    gap: 34px;
  }

  .tmp-header-canvas-nav a {
    font-size: clamp(36px, 14vw, 62px);
    padding: 18px 0;
  }

  .tmp-header-canvas-social {
    grid-template-columns: 1fr;
  }
}


/* ===== Tehia v2.5.1 - fix desktop hover estable + menú flotante ===== */
@media (min-width: 981px) {
  .tmp-portfolio--category-flow {
    --tmp-gap: clamp(30px, 2.7vw, 52px);
    --tmp-row: clamp(9px, .62vw, 12px);
    --tmp-hover-scale: 1.035;
  }

  .tmp-portfolio--category-flow .tmp-grid--category-flow {
    gap: var(--tmp-gap) !important;
    align-items: stretch;
    overflow: visible;
    padding: clamp(10px, 1vw, 18px);
  }

  /* El hover ya no modifica grid-column/grid-row: evita saltos, solapamientos y grillas blancas. */
  .tmp-portfolio--category-flow .tmp-card.is-grid-open,
  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--wide,
  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--feature {
    grid-column: revert-layer;
    grid-row: revert-layer;
  }

  .tmp-portfolio--category-flow .tmp-card.is-hovered {
    z-index: 30;
    transform: translateY(-10px) scale(1.012);
    opacity: 1;
    filter: none;
  }

  .tmp-portfolio--category-flow .tmp-card.is-hovered .tmp-card__button,
  .tmp-portfolio--category-flow .tmp-card:hover .tmp-card__button,
  .tmp-portfolio--category-flow .tmp-card:focus-within .tmp-card__button {
    transform: translateY(-5px) scale(var(--tmp-hover-scale)) !important;
    box-shadow: 0 30px 90px rgba(0,0,0,.22);
  }

  .tmp-portfolio--category-flow .tmp-grid.is-hovering .tmp-card:not(.is-hovered):not(:hover):not(:focus-within) {
    opacity: .72 !important;
    filter: saturate(.9) brightness(.82) !important;
    transform: none !important;
  }

  .tmp-portfolio--category-flow .tmp-grid.is-hovering .tmp-card:not(.is-hovered):not(:hover):not(:focus-within) .tmp-card__button {
    transform: none !important;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    z-index: 9998 !important;
    pointer-events: auto;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized .tmp-integrated-menu__toggle {
    pointer-events: auto;
  }
}

@supports not (grid-template-rows: masonry) {
  .tmp-portfolio--category-flow .tmp-card.is-grid-open,
  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--wide,
  .tmp-portfolio--category-flow .tmp-card.is-grid-open.tmp-card--feature {
    grid-column: auto;
  }
}

@media (min-width: 981px) {
  .tmp-portfolio--category-flow .tmp-card--small.is-grid-open { grid-row: span 19 !important; grid-column: auto !important; }
  .tmp-portfolio--category-flow .tmp-card--normal.is-grid-open { grid-row: span 30 !important; grid-column: auto !important; }
  .tmp-portfolio--category-flow .tmp-card--tall.is-grid-open { grid-row: span 43 !important; grid-column: auto !important; }
  .tmp-portfolio--category-flow .tmp-card--wide.is-grid-open { grid-row: span 28 !important; grid-column: span 2 !important; }
  .tmp-portfolio--category-flow .tmp-card--feature.is-grid-open { grid-row: span 44 !important; grid-column: span 2 !important; }
}


/* ===== Tehia v2.6 FIX REAL - grilla estable + menú flotante funcional ===== */
.tmp-portfolio {
  --tmp-gap: var(--tmp-gap, 22px);
  --tmp-row-gap-safe: clamp(10px, calc(var(--tmp-gap) * .42), 18px);
  --tmp-column-gap-safe: var(--tmp-gap);
  --tmp-hover-scale: min(var(--tmp-hover-scale, 1.035), 1.035);
}

.tmp-grid {
  column-gap: var(--tmp-column-gap-safe) !important;
  row-gap: var(--tmp-row-gap-safe) !important;
  contain: layout paint;
}

.tmp-card {
  overflow: visible;
  transform: none !important;
  transition: opacity .28s ease, filter .28s ease !important;
  will-change: opacity, filter;
}

.tmp-card.is-visible {
  transform: none !important;
}

.tmp-card__button {
  overflow: hidden !important;
  transform: translate3d(0,0,0) !important;
  transition: box-shadow .28s ease, filter .28s ease !important;
  will-change: auto;
}

.tmp-card:hover .tmp-card__button,
.tmp-card:focus-within .tmp-card__button,
.tmp-card.is-hovered .tmp-card__button {
  transform: translate3d(0,0,0) !important;
  box-shadow: 0 22px 58px rgba(21, 14, 9, .28) !important;
}

.tmp-card:hover .tmp-card__image,
.tmp-card:focus-within .tmp-card__image,
.tmp-card.is-hovered .tmp-card__image {
  transform: scale(1.06) !important;
  filter: saturate(1.04) contrast(1.02);
}

.tmp-grid.is-hovering .tmp-card:not(.is-hovered):not(:hover):not(:focus-within) {
  opacity: .82 !important;
  filter: saturate(.88) brightness(.82) !important;
  transform: none !important;
}

.tmp-portfolio--category-flow .tmp-grid--category-flow.is-hovering .tmp-card:not(.is-hovered) {
  opacity: .82 !important;
  filter: saturate(.88) brightness(.82) !important;
  transform: none !important;
}

.tmp-card__content {
  pointer-events: none;
}

@media (min-width: 768px) {
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating,
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
    position: fixed !important;
    z-index: 10050 !important;
    pointer-events: auto !important;
    touch-action: none;
    left: auto;
    right: auto;
    top: auto;
    bottom: auto;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    cursor: default;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__drag {
    cursor: grab !important;
    touch-action: none;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu.is-dragging,
  .tmp-portfolio--category-flow .tmp-integrated-menu.is-dragging .tmp-integrated-menu__drag {
    cursor: grabbing !important;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__toggle {
    pointer-events: auto !important;
    cursor: pointer !important;
    position: relative;
    z-index: 3;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__body {
    pointer-events: auto;
  }

  .tmp-portfolio--category-flow .tmp-integrated-menu__body a {
    pointer-events: auto;
  }
}

@media (max-width: 767px) {
  .tmp-grid {
    row-gap: var(--tmp-gap) !important;
    column-gap: var(--tmp-gap) !important;
    contain: none;
  }
}

/* ===== Tehia v2.7 - hover suave + masonry más cuadrado/horizontal ===== */
.tmp-portfolio {
  --tmp-hover-scale: min(var(--tmp-hover-scale, 1.022), 1.028);
}

.tmp-card--small { grid-row: span 22 !important; }
.tmp-card--normal { grid-row: span 26 !important; }
.tmp-card--tall { grid-row: span 38 !important; }
.tmp-card--wide { grid-column: span 2 !important; grid-row: span 24 !important; }
.tmp-card--feature { grid-column: span 2 !important; grid-row: span 34 !important; }

/* Patrón editorial más equilibrado: más cuadrados y horizontales, menos verticales dominantes. */
.tmp-card:nth-child(9n+2).tmp-card--normal { grid-row: span 27 !important; }
.tmp-card:nth-child(11n+4).tmp-card--normal { grid-row: span 24 !important; }
.tmp-card:nth-child(13n+6).tmp-card--tall { grid-row: span 40 !important; }
.tmp-card:nth-child(10n+8).tmp-card--wide { grid-row: span 25 !important; }

.tmp-card,
.tmp-card__button,
.tmp-card__image,
.tmp-card__content,
.tmp-card__button::after {
  transition-duration: .58s !important;
  transition-timing-function: cubic-bezier(.22, .72, .22, 1) !important;
}

.tmp-card:hover .tmp-card__button,
.tmp-card:focus-within .tmp-card__button,
.tmp-card.is-hovered .tmp-card__button {
  box-shadow: 0 18px 46px rgba(21, 14, 9, .18) !important;
}

.tmp-card:hover .tmp-card__image,
.tmp-card:focus-within .tmp-card__image,
.tmp-card.is-hovered .tmp-card__image {
  transform: scale(1.028) !important;
  filter: saturate(1.015) contrast(1.01) !important;
}

.tmp-grid.is-hovering .tmp-card:not(.is-hovered):not(:hover):not(:focus-within),
.tmp-portfolio--category-flow .tmp-grid--category-flow.is-hovering .tmp-card:not(.is-hovered) {
  opacity: .9 !important;
  filter: saturate(.94) brightness(.94) !important;
}

@media (min-width: 981px) {
  .tmp-portfolio--category-flow {
    --tmp-hover-scale: 1.018;
  }

  .tmp-portfolio--category-flow .tmp-card.is-hovered {
    transform: none !important;
  }

  .tmp-portfolio--category-flow .tmp-card.is-hovered .tmp-card__button,
  .tmp-portfolio--category-flow .tmp-card:hover .tmp-card__button,
  .tmp-portfolio--category-flow .tmp-card:focus-within .tmp-card__button {
    transform: translate3d(0,-2px,0) scale(1.018) !important;
  }

  .tmp-portfolio--category-flow .tmp-card--small.is-grid-open { grid-row: span 22 !important; grid-column: auto !important; }
  .tmp-portfolio--category-flow .tmp-card--normal.is-grid-open { grid-row: span 26 !important; grid-column: auto !important; }
  .tmp-portfolio--category-flow .tmp-card--tall.is-grid-open { grid-row: span 38 !important; grid-column: auto !important; }
  .tmp-portfolio--category-flow .tmp-card--wide.is-grid-open { grid-row: span 24 !important; grid-column: span 2 !important; }
  .tmp-portfolio--category-flow .tmp-card--feature.is-grid-open { grid-row: span 34 !important; grid-column: span 2 !important; }
}

@media (max-width: 980px) {
  .tmp-card--feature,
  .tmp-card--wide {
    grid-row: span 30 !important;
  }
}


/* ===== Tehia v2.8 - masonry compacto con relleno de huecos ===== */
.tmp-portfolio {
  /* Row más fino = la grilla puede acomodar mejor piezas diferentes sin dejar huecos grandes. */
  --tmp-row: clamp(7px, .58vw, 10px);
}

.tmp-grid {
  grid-auto-flow: dense !important;
  align-items: stretch !important;
}

/* Las anclas de categorías ahora viven en la primera tarjeta de cada categoría, no agregan filas vacías. */
.tmp-card[data-tmp-category-section] {
  scroll-margin-top: 120px;
}

/* Rebalance de piezas: mayoría cuadradas y horizontales, algunas verticales controladas. */
.tmp-card--small {
  grid-column: span 1 !important;
  grid-row: span 24 !important;
}

.tmp-card--normal {
  grid-column: span 1 !important;
  grid-row: span 30 !important;
}

.tmp-card--tall {
  grid-column: span 1 !important;
  grid-row: span 42 !important;
}

.tmp-card--wide {
  grid-column: span 2 !important;
  grid-row: span 28 !important;
}

.tmp-card--feature {
  grid-column: span 2 !important;
  grid-row: span 36 !important;
}

/* Microvariaciones para que no se vea una pared rígida, pero sin romper la compactación. */
.tmp-card:nth-child(6n+2).tmp-card--normal,
.tmp-card:nth-child(10n+7).tmp-card--normal {
  grid-row: span 28 !important;
}

.tmp-card:nth-child(8n+3).tmp-card--small,
.tmp-card:nth-child(12n+9).tmp-card--small {
  grid-row: span 26 !important;
}

.tmp-card:nth-child(7n+4).tmp-card--wide {
  grid-row: span 26 !important;
}

.tmp-card:nth-child(11n+5).tmp-card--tall {
  grid-row: span 38 !important;
}

/* En pantallas intermedias/mobile con grilla de 2 columnas: los wide ocupan todo el ancho,
   y las cuadradas/verticales van rellenando los huecos de cada columna. */
@media (max-width: 980px) {
  .tmp-portfolio {
    --tmp-columns: 2 !important;
    --tmp-row: clamp(6px, 1.35vw, 9px);
  }

  .tmp-grid {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: dense !important;
    row-gap: var(--tmp-gap) !important;
    column-gap: var(--tmp-gap) !important;
  }

  .tmp-card--small,
  .tmp-card--normal {
    grid-column: span 1 !important;
    grid-row: span 30 !important;
  }

  .tmp-card--tall {
    grid-column: span 1 !important;
    grid-row: span 44 !important;
  }

  .tmp-card--wide,
  .tmp-card--feature {
    grid-column: span 2 !important;
    grid-row: span 34 !important;
  }

  .tmp-card:nth-child(5n+2).tmp-card--normal,
  .tmp-card:nth-child(6n+4).tmp-card--small {
    grid-row: span 28 !important;
  }

  .tmp-card[data-tmp-category-section] {
    scroll-margin-top: 86px;
  }
}

@media (max-width: 520px) {
  .tmp-portfolio {
    --tmp-gap: clamp(14px, 4vw, 22px);
    --tmp-row: 6px;
  }

  .tmp-card {
    min-height: 0 !important;
  }

  .tmp-card--small,
  .tmp-card--normal {
    grid-row: span 28 !important;
  }

  .tmp-card--tall {
    grid-row: span 42 !important;
  }

  .tmp-card--wide,
  .tmp-card--feature {
    grid-row: span 32 !important;
  }
}

/* === Tehia modal producto v2: galería visible + layout editable Elementor === */
.tmp-modal__panel {
  isolation: isolate;
  align-items: stretch;
}

.tmp-modal__media--gallery {
  position: relative;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  min-height: clamp(420px, 72vh, 760px);
  background: #111;
}

.tmp-modal__media--gallery > img[data-tmp-modal-main] {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  object-position: center;
  transition: opacity .24s ease, transform .36s ease;
}

.tmp-modal__thumbs {
  position: relative;
  z-index: 4;
  display: flex !important;
  align-items: center;
  gap: 12px;
  min-height: 94px;
  padding: 14px 18px 16px;
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  background: linear-gradient(180deg, rgba(0,0,0,.04), rgba(0,0,0,.82) 24%, rgba(0,0,0,.90));
}

.tmp-modal__thumbs button {
  flex: 0 0 92px;
  height: 68px;
  border-radius: 14px;
  border: 2px solid rgba(255,255,255,.18);
  background: transparent;
  box-shadow: none;
  opacity: .72;
}

.tmp-modal__thumbs button.is-active,
.tmp-modal__thumbs button:hover,
.tmp-modal__thumbs button:focus-visible {
  opacity: 1;
  border-color: #fff;
  transform: translateY(-2px);
}

.tmp-modal__gal-arrow {
  position: absolute;
  z-index: 6;
  top: 50%;
  transform: translateY(-50%);
  width: 42px;
  height: 42px;
  border: 1px solid rgba(255,255,255,.36);
  border-radius: 999px;
  background: rgba(0,0,0,.38);
  color: #fff;
  font-size: 34px;
  line-height: 1;
  display: grid;
  place-items: center;
  cursor: pointer;
  backdrop-filter: blur(8px);
  transition: transform .22s ease, background .22s ease, opacity .22s ease;
}

.tmp-modal__gal-arrow:hover,
.tmp-modal__gal-arrow:focus-visible {
  transform: translateY(-50%) scale(1.06);
  background: rgba(0,0,0,.68);
}

.tmp-modal__gal-arrow--prev { left: 18px; }
.tmp-modal__gal-arrow--next { right: 18px; }

.tmp-modal__body {
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.tmp-modal__eyebrow { order: 1; }
.tmp-modal__title { order: 2; max-width: 9.8em; }
.tmp-modal__subtitle { order: 3; max-width: 18em; }
.tmp-modal__specs { order: 4; max-width: 520px; }
.tmp-modal__description { order: 5; max-width: 590px; }
.tmp-modal__cta { order: 6; align-self: flex-start; }

@media (min-width: 981px) {
  .tmp-modal__dialog {
    width: min(1280px, calc(100vw - 48px));
    margin: 3.5vh auto;
    max-height: 93vh;
  }

  .tmp-modal__panel {
    max-height: 93vh;
    grid-template-columns: minmax(420px, 1.08fr) minmax(380px, .92fr);
  }

  .tmp-modal__body {
    max-height: 93vh;
  }
}

@media (max-width: 980px) {
  .tmp-modal__panel {
    grid-template-columns: 1fr;
  }

  .tmp-modal__media--gallery {
    min-height: 420px;
  }

  .tmp-modal__body {
    justify-content: flex-start;
  }
}

@media (max-width: 767px) {
  .tmp-modal__media--gallery {
    min-height: 320px;
  }

  .tmp-modal__thumbs {
    min-height: 78px;
    padding: 10px 12px 12px;
  }

  .tmp-modal__thumbs button {
    flex-basis: 72px;
    height: 54px;
    border-radius: 10px;
  }

  .tmp-modal__gal-arrow {
    width: 36px;
    height: 36px;
    font-size: 28px;
  }

  .tmp-modal__gal-arrow--prev { left: 10px; }
  .tmp-modal__gal-arrow--next { right: 10px; }
}

/* 2026-05 modal refinement: gallery below description, smoother black & white layout */
.tmp-modal {
  --tmp-modal-bw-bg: #f7f4ef;
  --tmp-modal-bw-ink: #070707;
  --tmp-modal-bw-muted: rgba(7,7,7,.66);
}

.tmp-modal__backdrop {
  background: rgba(0,0,0,.78);
  backdrop-filter: blur(13px) saturate(.85);
  -webkit-backdrop-filter: blur(13px) saturate(.85);
}

.tmp-modal__dialog {
  width: min(1420px, calc(100vw - 54px));
  max-height: min(84vh, 820px);
  margin: 5vh auto;
  transform: translateY(18px) scale(.985);
  transition: transform .58s cubic-bezier(.19,1,.22,1), opacity .42s ease;
}

.tmp-modal__panel {
  height: min(82vh, 780px);
  max-height: min(82vh, 780px);
  display: grid;
  grid-template-columns: minmax(420px, .98fr) minmax(430px, 1.02fr);
  gap: clamp(18px, 2vw, 34px);
  padding: clamp(10px, 1.15vw, 18px);
  background: var(--tmp-modal-bw-bg);
  color: var(--tmp-modal-bw-ink);
  box-shadow: 0 36px 120px rgba(0,0,0,.48);
}

.tmp-modal__media--gallery {
  position: relative;
  min-height: 0;
  height: 100%;
  background: #000;
  border-radius: 22px;
  overflow: hidden;
  display: block;
}

.tmp-modal__media--gallery > img {
  width: 100%;
  height: 100%;
  min-height: 0;
  object-fit: cover;
  display: block;
  opacity: 1;
  transform: scale(1);
  transition: opacity .42s ease, transform .72s cubic-bezier(.19,1,.22,1), filter .42s ease;
}

.tmp-modal__media--gallery.is-changing > img,
.tmp-modal__media--gallery img.is-changing {
  opacity: .38;
  transform: scale(1.012);
  filter: grayscale(.25);
}

.tmp-modal__body {
  overflow: auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: clamp(30px, 4vw, 66px) clamp(30px, 4.5vw, 76px);
  background: transparent;
  color: var(--tmp-modal-bw-muted);
  scrollbar-width: thin;
}

.tmp-modal__eyebrow span {
  border-color: rgba(0,0,0,.15);
  color: rgba(0,0,0,.58);
  background: rgba(255,255,255,.36);
}

.tmp-modal__title {
  color: var(--tmp-modal-bw-ink);
  font-size: clamp(42px, 5.8vw, 86px);
  letter-spacing: -.075em;
}

.tmp-modal__subtitle {
  color: rgba(0,0,0,.68);
  max-width: 570px;
}

.tmp-modal__specs {
  max-width: 620px;
  background: rgba(255,255,255,.58);
  color: rgba(0,0,0,.72);
  box-shadow: inset 0 0 0 1px rgba(0,0,0,.035);
}

.tmp-modal__description {
  max-width: 650px;
  color: rgba(0,0,0,.68);
  margin-top: clamp(20px, 2vw, 30px);
}

.tmp-modal__gallery-inline {
  margin-top: clamp(22px, 2.2vw, 34px);
  max-width: 660px;
}

.tmp-modal__gallery-title {
  display: block;
  margin-bottom: 10px;
  color: rgba(0,0,0,.72);
  font-size: 12px;
  font-weight: 900;
  letter-spacing: .12em;
  text-transform: uppercase;
}

.tmp-modal__thumbs {
  display: flex;
  gap: 12px;
  padding: 0 0 6px;
  overflow-x: auto;
  background: transparent;
  scroll-snap-type: x mandatory;
  scrollbar-width: thin;
}

.tmp-modal__thumbs button {
  flex: 0 0 78px;
  width: 78px;
  height: 58px;
  border: 1px solid rgba(0,0,0,.16);
  border-radius: 14px;
  padding: 0;
  overflow: hidden;
  cursor: pointer;
  background: #000;
  opacity: .62;
  scroll-snap-align: start;
  transition: opacity .32s ease, border-color .32s ease, transform .32s cubic-bezier(.19,1,.22,1), box-shadow .32s ease;
}

.tmp-modal__thumbs button:hover,
.tmp-modal__thumbs button.is-active {
  opacity: 1;
  border-color: #000;
  transform: translateY(-2px);
  box-shadow: 0 10px 26px rgba(0,0,0,.16);
}

.tmp-modal__thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  filter: grayscale(.04);
}

.tmp-modal__gal-arrow {
  position: absolute;
  top: 50%;
  z-index: 4;
  width: 44px;
  height: 44px;
  display: inline-grid;
  place-items: center;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  background: #000;
  color: #fff;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
  opacity: .68;
  transform: translateY(-50%);
  transition: opacity .3s ease, transform .3s cubic-bezier(.19,1,.22,1), background .3s ease;
}

.tmp-modal__gal-arrow:hover,
.tmp-modal__gal-arrow:focus-visible {
  opacity: 1;
  transform: translateY(-50%) scale(1.06);
}

.tmp-modal__gal-arrow--prev { left: 18px; }
.tmp-modal__gal-arrow--next { right: 18px; }

.tmp-modal__cta {
  align-self: flex-start;
  background: #000;
  color: #fff;
  box-shadow: none;
  border: 1px solid #000;
}

.tmp-modal__cta:hover,
.tmp-modal__cta:focus-visible {
  background: #fff;
  color: #000;
  box-shadow: none;
}

.tmp-modal__close {
  background: #000;
  color: #fff;
  box-shadow: 0 18px 42px rgba(0,0,0,.30);
}

@media (max-width: 1024px) {
  .tmp-modal__dialog {
    width: calc(100vw - 24px);
    max-height: 92vh;
    margin: 4vh auto;
  }
  .tmp-modal__panel {
    height: auto;
    max-height: 92vh;
    grid-template-columns: 1fr;
    overflow: auto;
  }
  .tmp-modal__media--gallery {
    height: min(48vh, 520px);
  }
  .tmp-modal__body {
    justify-content: flex-start;
    overflow: visible;
    padding: 28px 24px 34px;
  }
}

@media (max-width: 767px) {
  .tmp-modal__dialog {
    width: calc(100vw - 14px);
    margin: 2.5vh auto;
  }
  .tmp-modal__panel {
    border-radius: 24px;
    padding: 7px;
    gap: 8px;
  }
  .tmp-modal__media--gallery {
    height: min(42vh, 380px);
    border-radius: 18px;
  }
  .tmp-modal__title {
    font-size: clamp(36px, 12vw, 54px);
  }
  .tmp-modal__body {
    padding: 24px 18px 30px;
  }
  .tmp-modal__gal-arrow {
    width: 38px;
    height: 38px;
    font-size: 28px;
  }
  .tmp-modal__thumbs button {
    flex-basis: 64px;
    width: 64px;
    height: 48px;
  }
}

/* ===== Tehia v2.9 - default Pinterest irregular =====
   El modo automático por defecto ya no intenta copiar tanto la proporción real.
   Usa un patrón editorial tipo Pinterest: más piezas cuadradas/horizontales y verticales puntuales. */
.tmp-portfolio {
  --tmp-row: clamp(6px, .52vw, 9px);
}

.tmp-grid {
  grid-auto-flow: dense !important;
  align-items: start !important;
}

@media (min-width: 981px) {
  .tmp-card--small {
    grid-column: span 1 !important;
    grid-row: span 22 !important;
  }

  .tmp-card--normal {
    grid-column: span 1 !important;
    grid-row: span 31 !important;
  }

  .tmp-card--tall {
    grid-column: span 1 !important;
    grid-row: span 44 !important;
  }

  .tmp-card--wide {
    grid-column: span 2 !important;
    grid-row: span 27 !important;
  }

  .tmp-card--feature {
    grid-column: span 2 !important;
    grid-row: span 38 !important;
  }

  /* Variaciones visibles para que no quede una grilla “pareja”. */
  .tmp-card:nth-child(4n+1).tmp-card--normal { grid-row: span 34 !important; }
  .tmp-card:nth-child(5n+2).tmp-card--normal { grid-row: span 27 !important; }
  .tmp-card:nth-child(6n+3).tmp-card--small { grid-row: span 24 !important; }
  .tmp-card:nth-child(7n+4).tmp-card--wide { grid-row: span 31 !important; }
  .tmp-card:nth-child(8n+5).tmp-card--feature { grid-row: span 42 !important; }
  .tmp-card:nth-child(9n+6).tmp-card--tall { grid-row: span 39 !important; }
  .tmp-card:nth-child(10n+7).tmp-card--wide { grid-row: span 24 !important; }
  .tmp-card:nth-child(11n+8).tmp-card--small { grid-row: span 28 !important; }

  /* Cuando el menú flotante convive con la grilla no debe imponer un patrón regular. */
  .tmp-portfolio--category-flow .tmp-card.is-grid-open {
    transform: none !important;
  }

  .tmp-portfolio--category-flow .tmp-card--small.is-grid-open { grid-column: span 1 !important; grid-row: span 22 !important; }
  .tmp-portfolio--category-flow .tmp-card--normal.is-grid-open { grid-column: span 1 !important; grid-row: span 31 !important; }
  .tmp-portfolio--category-flow .tmp-card--tall.is-grid-open { grid-column: span 1 !important; grid-row: span 44 !important; }
  .tmp-portfolio--category-flow .tmp-card--wide.is-grid-open { grid-column: span 2 !important; grid-row: span 27 !important; }
  .tmp-portfolio--category-flow .tmp-card--feature.is-grid-open { grid-column: span 2 !important; grid-row: span 38 !important; }
}

@media (min-width: 621px) and (max-width: 980px) {
  .tmp-card--small { grid-column: span 1 !important; grid-row: span 24 !important; }
  .tmp-card--normal { grid-column: span 1 !important; grid-row: span 32 !important; }
  .tmp-card--tall { grid-column: span 1 !important; grid-row: span 44 !important; }
  .tmp-card--wide { grid-column: span 2 !important; grid-row: span 31 !important; }
  .tmp-card--feature { grid-column: span 2 !important; grid-row: span 38 !important; }
}

@media (max-width: 620px) {
  .tmp-portfolio { --tmp-row: 5px; }
  .tmp-card--small { grid-column: span 1 !important; grid-row: span 24 !important; }
  .tmp-card--normal { grid-column: span 1 !important; grid-row: span 31 !important; }
  .tmp-card--tall { grid-column: span 1 !important; grid-row: span 43 !important; }
  .tmp-card--wide,
  .tmp-card--feature { grid-column: span 2 !important; grid-row: span 31 !important; }
}


/* ===== Tehia v4.0 SAFE Masonry: columnas tipo Pinterest sin huecos =====
   Esta capa deja de depender de CSS Grid para el portfolio principal. CSS columns rellena
   de arriba hacia abajo como Pinterest, por eso no genera filas vacías cuando hay piezas
   horizontales/verticales. Mantiene el mismo widget, CPT, menú y modal del plugin original. */
.tmp-portfolio {
  --tmp-gap-x: var(--tmp-gap, 18px);
  --tmp-gap-y: var(--tmp-gap, 18px);
  /* Alturas con mínimos generosos para que nunca se vean uniformes en pantallas chicas.
     Con --tmp-row=12px (default Elementor): small=288px, normal=372px, tall=528px */
  --tmp-card-small-h: clamp(220px, calc(var(--tmp-row, 12px) * 24), 520px);
  --tmp-card-normal-h: clamp(300px, calc(var(--tmp-row, 12px) * 31), 640px);
  --tmp-card-tall-h: clamp(400px, calc(var(--tmp-row, 12px) * 44), 760px);
  --tmp-card-wide-h: clamp(260px, calc(var(--tmp-row, 12px) * 27), 560px);
  --tmp-card-feature-h: clamp(360px, calc(var(--tmp-row, 12px) * 38), 700px);
}

/* Fallback anti pantalla vacía: si JS no carga, las tarjetas igual se ven. */
.tmp-portfolio:not(.tmp-has-js) .tmp-card,
body.elementor-editor-active .tmp-portfolio .tmp-card,
body.elementor-editor-preview .tmp-portfolio .tmp-card {
  opacity: 1 !important;
  transform: none !important;
}

.tmp-portfolio .tmp-grid,
.tmp-portfolio--category-flow .tmp-grid--category-flow {
  display: block !important;
  column-count: var(--tmp-columns) !important;
  column-gap: var(--tmp-gap-x) !important;
  gap: 0 !important;
  grid-template-columns: none !important;
  grid-auto-rows: auto !important;
  grid-auto-flow: initial !important;
  align-items: initial !important;
  contain: none !important;
  overflow: visible !important;
  perspective: none !important;
  width: 100%;
}

.tmp-portfolio .tmp-card,
.tmp-portfolio--category-flow .tmp-card,
.tmp-portfolio--category-flow .tmp-card.is-grid-open,
.tmp-portfolio--category-flow .tmp-card--wide.is-grid-open,
.tmp-portfolio--category-flow .tmp-card--feature.is-grid-open {
  display: inline-block !important;
  width: 100% !important;
  max-width: 100% !important;
  grid-column: auto !important;
  grid-row: auto !important;
  break-inside: avoid !important;
  -webkit-column-break-inside: avoid !important;
  page-break-inside: avoid !important;
  margin: 0 0 var(--tmp-gap-y) !important;
  min-height: 0 !important;
  overflow: visible !important;
  vertical-align: top !important;
}

.tmp-portfolio .tmp-card__button {
  min-height: 0 !important;
  height: var(--tmp-card-normal-h) !important;
  transform: translate3d(0,0,0) !important;
}

.tmp-portfolio .tmp-card--small .tmp-card__button { height: var(--tmp-card-small-h) !important; }
.tmp-portfolio .tmp-card--normal .tmp-card__button { height: var(--tmp-card-normal-h) !important; }
.tmp-portfolio .tmp-card--tall .tmp-card__button { height: var(--tmp-card-tall-h) !important; }
.tmp-portfolio .tmp-card--wide .tmp-card__button { height: var(--tmp-card-wide-h) !important; }
.tmp-portfolio .tmp-card--feature .tmp-card__button { height: var(--tmp-card-feature-h) !important; }

/* ── Microvariaciones Pinterest: usa primos distintos para que la repetición sea
      imperceptible. Los multiplicadores oscilan entre .72 y 1.28 para variedad real. ── */
@media (min-width: 981px) {
  /* normal: varía entre 72% y 122% de la altura base */
  .tmp-portfolio .tmp-card:nth-child(5n+1).tmp-card--normal   .tmp-card__button { height: calc(var(--tmp-card-normal-h) * 1.18) !important; }
  .tmp-portfolio .tmp-card:nth-child(7n+2).tmp-card--normal   .tmp-card__button { height: calc(var(--tmp-card-normal-h) * .80)  !important; }
  .tmp-portfolio .tmp-card:nth-child(11n+3).tmp-card--normal  .tmp-card__button { height: calc(var(--tmp-card-normal-h) * 1.06) !important; }
  .tmp-portfolio .tmp-card:nth-child(13n+4).tmp-card--normal  .tmp-card__button { height: calc(var(--tmp-card-normal-h) * .92)  !important; }

  /* small: varía entre 85% y 128% */
  .tmp-portfolio .tmp-card:nth-child(6n+2).tmp-card--small    .tmp-card__button { height: calc(var(--tmp-card-small-h) * 1.22) !important; }
  .tmp-portfolio .tmp-card:nth-child(9n+5).tmp-card--small    .tmp-card__button { height: calc(var(--tmp-card-small-h) * .85)  !important; }
  .tmp-portfolio .tmp-card:nth-child(17n+8).tmp-card--small   .tmp-card__button { height: calc(var(--tmp-card-small-h) * 1.10) !important; }

  /* tall: varía entre 78% y 114% */
  .tmp-portfolio .tmp-card:nth-child(8n+3).tmp-card--tall     .tmp-card__button { height: calc(var(--tmp-card-tall-h) * .82)   !important; }
  .tmp-portfolio .tmp-card:nth-child(12n+6).tmp-card--tall    .tmp-card__button { height: calc(var(--tmp-card-tall-h) * 1.10)  !important; }

  /* wide y feature: variaciones más sutiles para no romper columnas */
  .tmp-portfolio .tmp-card:nth-child(7n+4).tmp-card--wide     .tmp-card__button { height: calc(var(--tmp-card-wide-h) * .88)   !important; }
  .tmp-portfolio .tmp-card:nth-child(10n+7).tmp-card--wide    .tmp-card__button { height: calc(var(--tmp-card-wide-h) * 1.14)  !important; }
  .tmp-portfolio .tmp-card:nth-child(9n+5).tmp-card--feature  .tmp-card__button { height: calc(var(--tmp-card-feature-h) * .86) !important; }
  .tmp-portfolio .tmp-card:nth-child(14n+9).tmp-card--feature .tmp-card__button { height: calc(var(--tmp-card-feature-h) * 1.12) !important; }
}

/* Hover estable: no mueve el layout, solo zoom interno de imagen. */
.tmp-portfolio .tmp-card:hover,
.tmp-portfolio .tmp-card:focus-within,
.tmp-portfolio .tmp-card.is-hovered,
.tmp-portfolio--category-flow .tmp-card.is-hovered {
  transform: none !important;
  z-index: 20;
}
.tmp-portfolio .tmp-card:hover .tmp-card__button,
.tmp-portfolio .tmp-card:focus-within .tmp-card__button,
.tmp-portfolio .tmp-card.is-hovered .tmp-card__button,
.tmp-portfolio--category-flow .tmp-card.is-hovered .tmp-card__button {
  transform: translate3d(0,0,0) !important;
  box-shadow: 0 18px 46px rgba(21,14,9,.22) !important;
}
.tmp-portfolio .tmp-card:hover .tmp-card__image,
.tmp-portfolio .tmp-card:focus-within .tmp-card__image,
.tmp-portfolio .tmp-card.is-hovered .tmp-card__image {
  transform: scale(1.035) !important;
}

/* v5.11: ELIMINADO el bloqueo de columnas fijas en mobile/tablet.
   Ahora el control responsive de Elementor maneja el column-count via --tmp-columns. */
@media (min-width: 768px) and (max-width: 980px) {
  .tmp-portfolio,
  .tmp-portfolio--category-flow {
    --tmp-row: 8px;
  }
}

@media (max-width: 767px) {
  .tmp-portfolio,
  .tmp-portfolio--category-flow {
    --tmp-row: 7px;
    --tmp-gap-x: var(--tmp-gap, 18px);
    --tmp-gap-y: var(--tmp-gap, 18px);
  }
  .tmp-portfolio .tmp-grid,
  .tmp-portfolio--category-flow .tmp-grid--category-flow {
    column-gap: 0 !important;
    padding-left: max(14px, env(safe-area-inset-left)) !important;
    padding-right: max(14px, env(safe-area-inset-right)) !important;
  }
  .tmp-portfolio .tmp-card__button {
    height: clamp(210px, calc(var(--tmp-row, 7px) * 34), 420px) !important;
  }
  .tmp-portfolio .tmp-card--small .tmp-card__button,
  .tmp-portfolio .tmp-card--normal .tmp-card__button { height: clamp(220px, calc(var(--tmp-row, 7px) * 35), 420px) !important; }
  .tmp-portfolio .tmp-card--tall .tmp-card__button { height: clamp(270px, calc(var(--tmp-row, 7px) * 46), 520px) !important; }
  .tmp-portfolio .tmp-card--wide .tmp-card__button,
  .tmp-portfolio .tmp-card--feature .tmp-card__button { height: clamp(210px, calc(var(--tmp-row, 7px) * 34), 430px) !important; }
}

/* ========================================================================
   ===== TEHIA v5.0 — FINAL OVERRIDE LAYER (gana sobre todo lo anterior) ====
   Esta es la única capa que importa para la grilla, el menú y el modal.
   Reemplaza el comportamiento de v2.x/v4.x. No tocar las capas anteriores
   porque hay clases compartidas con otros widgets.
   ======================================================================== */

/* ---- A. Variables base canónicas (un solo lugar de verdad) ---- */
.tmp-portfolio {
  --tmp-cols-desktop: var(--tmp-columns, 4);
  --tmp-gap-x-final: var(--tmp-gap-x, 16px);
  --tmp-gap-y-final: var(--tmp-gap-y, 12px);
  --tmp-radius-final: var(--tmp-radius, 22px);
  --tmp-shadow-rest: 0 8px 22px rgba(15, 12, 8, .10);
  --tmp-shadow-hover: 0 24px 60px rgba(15, 12, 8, .26);
  /* FIX v5.4: removido contain: layout porque crea containing block para position:fixed,
     rompiendo el centrado del modal. Mantenemos solo style. */
  contain: style;
  -webkit-font-smoothing: antialiased;
}

/* ---- B. Reset de capas previas que causaban conflicto ---- */
.tmp-portfolio :where(.tmp-card, .tmp-card__button) {
  /* Limpia transforms y transitions exagerados de capas viejas */
  will-change: auto;
}

/* ---- C. Masonry column-count limpio (Pinterest puro) ---- */
.tmp-portfolio .tmp-grid,
.tmp-portfolio--category-flow .tmp-grid--category-flow {
  display: block !important;
  column-count: var(--tmp-cols-desktop) !important;
  column-gap: var(--tmp-gap-x-final) !important;
  column-fill: balance !important;
  width: 100%;
  padding: 0;
  overflow: visible !important;
  /* FIX v5.4: removido contain:layout, era innecesario y rompía positioning */
  contain: none;
}

/* ---- D. Tarjeta como bloque inmutable (no se reposiciona en hover) ---- */
.tmp-portfolio .tmp-card,
.tmp-portfolio--category-flow .tmp-card {
  display: block !important;
  width: 100% !important;
  margin: 0 0 var(--tmp-gap-y-final) !important;
  padding: 0 !important;
  border-radius: var(--tmp-radius-final) !important;
  overflow: hidden !important;
  break-inside: avoid !important;
  -webkit-column-break-inside: avoid !important;
  page-break-inside: avoid !important;
  /* CRITICAL: sin transform en el contenedor (causaba el tiemble) */
  transform: none !important;
  transition: opacity .35s ease, filter .35s ease !important;
  position: relative;
  z-index: 1;
  /* GPU layer estable */
  -webkit-transform: translateZ(0);
  transform: translateZ(0);
}

/* ---- E. Botón con altura fluida vía clamp() — sin --tmp-row, sin JS ---- */
.tmp-portfolio .tmp-card__button {
  display: block !important;
  width: 100% !important;
  /* default = normal */
  height: clamp(280px, 24vw, 420px) !important;
  margin: 0 !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: var(--tmp-radius-final) !important;
  overflow: hidden !important;
  position: relative !important;
  background: #1a1310 !important;
  color: #fff !important;
  cursor: pointer !important;
  text-align: left !important;
  box-shadow: var(--tmp-shadow-rest) !important;
  /* CRITICAL: NO transform aquí. El hover usa SOLO box-shadow + filter */
  transform: none !important;
  transition: box-shadow .42s cubic-bezier(.2,.7,.2,1),
              filter .42s cubic-bezier(.2,.7,.2,1) !important;
  will-change: box-shadow, filter;
}

/* Tamaños diferenciados — escalan con vw para ritmo Pinterest natural */
.tmp-portfolio .tmp-card--small .tmp-card__button    { height: clamp(220px, 18vw, 320px) !important; }
.tmp-portfolio .tmp-card--normal .tmp-card__button   { height: clamp(280px, 24vw, 420px) !important; }
.tmp-portfolio .tmp-card--tall .tmp-card__button     { height: clamp(380px, 34vw, 580px) !important; }
.tmp-portfolio .tmp-card--wide .tmp-card__button     { height: clamp(260px, 22vw, 380px) !important; }
.tmp-portfolio .tmp-card--feature .tmp-card__button  { height: clamp(360px, 30vw, 520px) !important; }

/* ---- F. Microvariaciones CSS puras (estables, no shakean) ---- */
@media (min-width: 981px) {
  /* normal: 6 variaciones distintas usando primos */
  .tmp-portfolio .tmp-card:nth-child(5n+1).tmp-card--normal   .tmp-card__button { height: clamp(330px, 28vw, 480px) !important; }
  .tmp-portfolio .tmp-card:nth-child(7n+2).tmp-card--normal   .tmp-card__button { height: clamp(240px, 20vw, 360px) !important; }
  .tmp-portfolio .tmp-card:nth-child(11n+4).tmp-card--normal  .tmp-card__button { height: clamp(310px, 26vw, 440px) !important; }
  .tmp-portfolio .tmp-card:nth-child(13n+6).tmp-card--normal  .tmp-card__button { height: clamp(260px, 22vw, 400px) !important; }

  /* small: 3 variaciones */
  .tmp-portfolio .tmp-card:nth-child(6n+3).tmp-card--small    .tmp-card__button { height: clamp(260px, 22vw, 360px) !important; }
  .tmp-portfolio .tmp-card:nth-child(9n+5).tmp-card--small    .tmp-card__button { height: clamp(190px, 16vw, 280px) !important; }

  /* tall: 3 variaciones */
  .tmp-portfolio .tmp-card:nth-child(8n+1).tmp-card--tall     .tmp-card__button { height: clamp(440px, 38vw, 620px) !important; }
  .tmp-portfolio .tmp-card:nth-child(10n+5).tmp-card--tall    .tmp-card__button { height: clamp(330px, 28vw, 500px) !important; }

  /* wide / feature: variaciones sutiles */
  .tmp-portfolio .tmp-card:nth-child(7n+4).tmp-card--wide     .tmp-card__button { height: clamp(300px, 26vw, 420px) !important; }
  .tmp-portfolio .tmp-card:nth-child(9n+2).tmp-card--feature  .tmp-card__button { height: clamp(420px, 36vw, 580px) !important; }
  .tmp-portfolio .tmp-card:nth-child(11n+7).tmp-card--feature .tmp-card__button { height: clamp(320px, 28vw, 460px) !important; }
}

/* ---- G. Imagen y contenido de la tarjeta ---- */
.tmp-portfolio .tmp-card__image {
  position: absolute !important;
  inset: 0 !important;
  background-size: cover !important;
  background-position: center !important;
  transform: scale(1.005);
  transition: transform .55s cubic-bezier(.2,.7,.2,1), filter .35s ease !important;
  z-index: 1 !important;
  will-change: transform;
}

.tmp-portfolio .tmp-card__button::after {
  background:
    linear-gradient(180deg, rgba(0,0,0,0) 50%, rgba(0,0,0,.55) 100%) !important;
  opacity: .9 !important;
  transition: opacity .35s ease !important;
}

.tmp-portfolio .tmp-card__content {
  z-index: 3 !important;
  /* En desktop el contenido se revela en hover */
  opacity: 0;
  transform: translateY(8px);
  transition: opacity .35s ease, transform .35s ease !important;
}

/* ---- H. Hover: SOLO efectos visuales, NUNCA layout ---- */
.tmp-portfolio .tmp-card:hover,
.tmp-portfolio .tmp-card:focus-within,
.tmp-portfolio .tmp-card.is-hovered {
  /* sin transform, sin scale, sin nada que mueva la grilla */
  z-index: 5 !important;
}

.tmp-portfolio .tmp-card:hover .tmp-card__button,
.tmp-portfolio .tmp-card:focus-within .tmp-card__button,
.tmp-portfolio .tmp-card.is-hovered .tmp-card__button {
  transform: none !important;
  box-shadow: var(--tmp-shadow-hover) !important;
  filter: brightness(1.02);
}

.tmp-portfolio .tmp-card:hover .tmp-card__image,
.tmp-portfolio .tmp-card:focus-within .tmp-card__image,
.tmp-portfolio .tmp-card.is-hovered .tmp-card__image {
  transform: scale(1.06) !important;
  filter: saturate(1.04);
}

.tmp-portfolio .tmp-card:hover .tmp-card__content,
.tmp-portfolio .tmp-card:focus-within .tmp-card__content,
.tmp-portfolio .tmp-card.is-hovered .tmp-card__content {
  opacity: 1 !important;
  transform: translateY(0) !important;
}

.tmp-portfolio .tmp-card:hover .tmp-card__button::after,
.tmp-portfolio .tmp-card:focus-within .tmp-card__button::after,
.tmp-portfolio .tmp-card.is-hovered .tmp-card__button::after {
  opacity: 1 !important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,.20) 45%, rgba(0,0,0,.78) 100%) !important;
}

/* Dim del resto al hacer hover sobre una — sin filter blur (causaba lag) */
.tmp-portfolio .tmp-grid.is-hovering .tmp-card:not(.is-hovered):not(:hover):not(:focus-within) .tmp-card__button {
  filter: brightness(.62) saturate(.86);
  transform: none !important;
}

/* ---- I. Responsive — breakpoints limpios ---- */
@media (max-width: 1280px) {
  .tmp-portfolio {
    --tmp-cols-desktop: 3;
    --tmp-columns: 3;
  }
}

@media (max-width: 900px) {
  .tmp-portfolio {
    --tmp-cols-desktop: 2;
    --tmp-columns: 2;
    --tmp-gap-x-final: 10px;
    --tmp-gap-y-final: 10px;
  }
  /* En mobile, todos los tamaños son más uniformes (cards más cuadradas) */
  .tmp-portfolio .tmp-card--small .tmp-card__button    { height: clamp(180px, 38vw, 240px) !important; }
  .tmp-portfolio .tmp-card--normal .tmp-card__button   { height: clamp(220px, 48vw, 320px) !important; }
  .tmp-portfolio .tmp-card--tall .tmp-card__button     { height: clamp(280px, 62vw, 420px) !important; }
  .tmp-portfolio .tmp-card--wide .tmp-card__button     { height: clamp(200px, 42vw, 280px) !important; }
  .tmp-portfolio .tmp-card--feature .tmp-card__button  { height: clamp(260px, 58vw, 380px) !important; }

  /* En mobile el contenido siempre visible (sin necesidad de hover) */
  .tmp-portfolio .tmp-card__content {
    opacity: 1 !important;
    transform: none !important;
  }
  .tmp-portfolio .tmp-card__button::after {
    background:
      linear-gradient(180deg, rgba(0,0,0,0) 35%, rgba(0,0,0,.62) 100%) !important;
    opacity: 1 !important;
  }
}

@media (max-width: 480px) {
  .tmp-portfolio {
    --tmp-cols-desktop: 1;
    --tmp-columns: 1;
  }
  .tmp-portfolio .tmp-card--small .tmp-card__button    { height: clamp(240px, 60vw, 320px) !important; }
  .tmp-portfolio .tmp-card--normal .tmp-card__button   { height: clamp(280px, 72vw, 380px) !important; }
  .tmp-portfolio .tmp-card--tall .tmp-card__button     { height: clamp(360px, 92vw, 480px) !important; }
  .tmp-portfolio .tmp-card--wide .tmp-card__button,
  .tmp-portfolio .tmp-card--feature .tmp-card__button  { height: clamp(280px, 78vw, 400px) !important; }
}

/* ---- J. Menú flotante: z-index máximo, sobre headers ---- */
.tmp-portfolio--category-flow .tmp-integrated-menu,
.tmp-portfolio--category-flow .tmp-integrated-menu--floating {
  /* SOBRE headers de Elementor (z:9999), themes (z:1000-9999) y admin bar */
  z-index: 99999 !important;
  /* Posicionamiento más estable */
  position: fixed !important;
  isolation: isolate;
  /* GPU layer separado para que no re-pinte con scroll */
  transform: translateZ(0);
  will-change: transform;
}

/* En mobile: posición estable arriba sin tapar contenido */
@media (max-width: 767px) {
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    position: fixed !important;
    top: 14px !important;
    right: 14px !important;
    left: auto !important;
    bottom: auto !important;
    z-index: 99999 !important;
  }
  body.admin-bar .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    top: 60px !important;
  }
  /* Si está minimizado, queda más chico y arriba a la derecha */
  .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
    top: 14px !important;
    right: 14px !important;
    width: 52px !important;
    height: 52px !important;
    min-height: 52px !important;
  }
  body.admin-bar .tmp-portfolio--category-flow .tmp-integrated-menu--floating.is-minimized {
    top: 60px !important;
  }
}

/* ---- K. Modal: z-index por encima del menú ---- */
.tmp-modal {
  z-index: 999999 !important;
}

/* ---- L. Editor de Elementor: forzar visibilidad ---- */
body.elementor-editor-active .tmp-portfolio .tmp-card,
body.elementor-editor-preview .tmp-portfolio .tmp-card,
.elementor-editor-active .tmp-portfolio .tmp-card {
  opacity: 1 !important;
  transform: translateZ(0) !important;
  filter: none !important;
}

/* ---- M. Accessibility: respetar prefers-reduced-motion ---- */
@media (prefers-reduced-motion: reduce) {
  .tmp-portfolio .tmp-card,
  .tmp-portfolio .tmp-card__button,
  .tmp-portfolio .tmp-card__image,
  .tmp-portfolio .tmp-card__content {
    transition: none !important;
    animation: none !important;
  }
}

/* ========================================================================
   ===== TEHIA v5.2 — FIXES: arrows SVG + menu bulletproof + modal extras
   Esta capa va al final y gana sobre TODO lo anterior (incluso v5.0).
   ======================================================================== */

/* ---- A. Slider arrows: rediseño completo con SVG ---- */
.tmp-modal__gal-arrow {
  /* el position-set ya viene de capas anteriores, lo reseteamos a limpio */
  width: 50px !important;
  height: 50px !important;
  padding: 0 !important;
  border: 1.5px solid rgba(255,255,255,.36) !important;
  border-radius: 999px !important;
  background: rgba(0, 0, 0, .55) !important;
  color: #ffffff !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  cursor: pointer !important;
  -webkit-backdrop-filter: blur(10px) !important;
  backdrop-filter: blur(10px) !important;
  box-shadow: 0 8px 22px rgba(0,0,0,.32) !important;
  transition: transform .25s ease, background .25s ease, box-shadow .25s ease !important;
  /* limpiar el font-size grande del chevron texto */
  font-size: 0 !important;
  line-height: 1 !important;
}

.tmp-modal__gal-arrow svg {
  width: 22px !important;
  height: 22px !important;
  display: block !important;
  stroke: currentColor !important;
  fill: none !important;
  pointer-events: none;
}

.tmp-modal__gal-arrow:hover,
.tmp-modal__gal-arrow:focus-visible {
  background: rgba(0, 0, 0, .82) !important;
  transform: translateY(-50%) scale(1.08) !important;
  box-shadow: 0 12px 30px rgba(0,0,0,.45) !important;
}

/* Mobile: flechas más grandes y mejor posicionadas */
@media (max-width: 768px) {
  .tmp-modal__gal-arrow {
    width: 54px !important;
    height: 54px !important;
  }
  .tmp-modal__gal-arrow svg {
    width: 24px !important;
    height: 24px !important;
  }
  .tmp-modal__gal-arrow--prev { left: 10px !important; }
  .tmp-modal__gal-arrow--next { right: 10px !important; }
}

/* ---- B. Chips/badges en eyebrow ---- */
.tmp-modal__eyebrow {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-bottom: 18px;
}
.tmp-modal__eyebrow span {
  display: inline-flex;
  align-items: center;
  padding: 8px 18px;
  background: rgba(255,255,255,.65);
  color: #2c2119;
  border-radius: 999px;
  font-size: .76em;
  font-weight: 600;
  letter-spacing: .04em;
  text-transform: uppercase;
  white-space: nowrap;
}

/* ---- C. Botón cerrar: tamaño y centrado consistentes ---- */
.tmp-modal__close {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: 0 !important;
  border-radius: 999px !important;
  cursor: pointer !important;
  line-height: 1 !important;
  z-index: 10 !important;
  transition: transform .22s ease, background .22s ease !important;
}
.tmp-modal__close:hover,
.tmp-modal__close:focus-visible {
  transform: scale(1.06) !important;
}

/* ---- D. Specs box defaults ---- */
.tmp-modal__specs {
  padding: 18px 22px;
  border-radius: 16px;
  background: rgba(255,255,255,.52);
  color: #2c2119;
  font-size: .96em;
  line-height: 1.55;
}

/* ---- E. Modal max-width default fluido ---- */
.tmp-modal__dialog {
  max-width: 1080px;
}

/* ---- F. Floating menu BULLETPROOF (anula v2.x sticky) ---- */
/* Specificity alta para ganar sobre todas las reglas viejas */
html body .tmp-portfolio--category-flow .tmp-integrated-menu,
html body .tmp-portfolio--category-flow .tmp-integrated-menu--floating,
html body .tmp-portfolio--category-flow nav.tmp-integrated-menu--floating {
  position: fixed !important;
  z-index: 99999 !important;
  /* anti-ancestor-transform: forzamos al menú a vivir fuera del flujo */
  contain: none !important;
}

/* Mobile: posición fija arriba derecha siempre */
@media (max-width: 767px) {
  html body .tmp-portfolio--category-flow .tmp-integrated-menu,
  html body .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    position: fixed !important;
    top: 16px !important;
    right: 16px !important;
    left: auto !important;
    bottom: auto !important;
    width: auto !important;
    max-width: calc(100vw - 32px) !important;
    z-index: 99999 !important;
    margin: 0 !important;
    /* override del position: sticky de v2.x */
  }
  html body.admin-bar .tmp-portfolio--category-flow .tmp-integrated-menu--floating {
    top: 62px !important;
  }
}

/* ---- G. Eliminar perspective/transform en ancestros que rompen position:fixed ---- */
@media (min-width: 981px) {
  /* el grid de category-flow NO debe tener perspective si rompe el menú */
  .tmp-portfolio--category-flow .tmp-grid--category-flow {
    perspective: none !important;
    transform-style: flat !important;
  }
}

/* Reset 3D transforms en los items del category-flow que añadían lag/tiemble */
.tmp-portfolio--category-flow .tmp-card,
.tmp-portfolio--category-flow .tmp-grid--category-flow .tmp-card {
  transform: none !important;
  transform-style: flat !important;
}

/* ---- H. Eyebrow chips: forzar display correcto en mobile ---- */
@media (max-width: 768px) {
  .tmp-modal__eyebrow {
    margin-bottom: 14px;
  }
  .tmp-modal__eyebrow span {
    padding: 7px 14px;
    font-size: .72em;
  }
}

/* ---- I. Gallery title (label "GALERÍA") ---- */
.tmp-modal__gallery-title {
  display: block;
  font-size: .78em;
  letter-spacing: .12em;
  text-transform: uppercase;
  margin: 8px 0 12px;
  opacity: .8;
  font-weight: 600;
}

/* ========================================================================
   ===== TEHIA v5.3 — Pinterest nav + modal black fix ====
   ======================================================================== */

/* ---- A. Modal panel: fondo defensivo siempre visible (fix "popup negro") ---- */
html body .tmp-modal__panel,
html body [data-tmp-modal-content] {
  background: var(--tmp-modal-bg, #f7f1e9);
  min-height: 220px;
  position: relative;
  z-index: 5;
}

/* Asegurar que .tmp-modal NO tenga background sólido propio (es solo el wrapper) */
html body .tmp-modal {
  background: transparent !important;
}

/* El backdrop SÍ es el overlay oscuro */
html body .tmp-modal__backdrop {
  background: rgba(22, 16, 12, 0.66);
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

/* ---- B. Pinterest Layout: desktop sidebar + grid ---- */
.tmp-portfolio--pinterest .tmp-pinterest-layout {
  display: grid;
  grid-template-columns: 220px 1fr;
  gap: 40px;
  align-items: start;
  width: 100%;
}

/* DESKTOP: sidebar visible, topbar oculto */
.tmp-portfolio--pinterest .tmp-cat-sidebar {
  position: sticky;
  top: 100px;
  padding: 12px 0;
  z-index: 5;
  align-self: start;
}

.tmp-portfolio--pinterest .tmp-cat-sidebar__title {
  display: block;
  font-size: .78em;
  font-weight: 700;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .58;
  margin: 0 16px 14px;
}

.tmp-portfolio--pinterest .tmp-cat-sidebar__list {
  list-style: none;
  margin: 0;
  padding: 0;
}

.tmp-portfolio--pinterest .tmp-cat-sidebar__list li {
  margin: 0;
  padding: 0;
  list-style: none;
}

.tmp-portfolio--pinterest .tmp-cat-sidebar__link {
  display: block;
  padding: 11px 16px;
  margin: 2px 0;
  font-weight: 500;
  font-size: 15px;
  color: inherit;
  text-decoration: none;
  border-left: 2px solid transparent;
  border-radius: 0 10px 10px 0;
  transition: background .22s ease, color .22s ease, border-color .22s ease, padding .22s ease;
}

.tmp-portfolio--pinterest .tmp-cat-sidebar__link:hover {
  background: rgba(0, 0, 0, .045);
  padding-left: 20px;
}

.tmp-portfolio--pinterest .tmp-cat-sidebar__link.is-active {
  background: rgba(0, 0, 0, .07);
  font-weight: 700;
  border-left-color: currentColor;
}

.tmp-portfolio--pinterest .tmp-cat-topbar { display: none; }

/* ---- C. Mobile: topbar fija arriba, sidebar oculto ---- */
@media (max-width: 900px) {
  .tmp-portfolio--pinterest .tmp-pinterest-layout {
    display: block;
    grid-template-columns: 1fr;
  }

  .tmp-portfolio--pinterest .tmp-cat-sidebar { display: none; }

  .tmp-portfolio--pinterest .tmp-cat-topbar {
    display: block;
    position: sticky;
    top: 0;
    z-index: 9990;
    margin: 0 -16px 18px;
    padding: 10px 0;
    background: rgba(255, 255, 255, 0.92);
    -webkit-backdrop-filter: blur(14px);
    backdrop-filter: blur(14px);
    border-bottom: 1px solid rgba(0, 0, 0, .06);
    box-shadow: 0 4px 14px rgba(0, 0, 0, .04);
  }

  body.admin-bar .tmp-portfolio--pinterest .tmp-cat-topbar { top: 46px; }

  .tmp-portfolio--pinterest .tmp-cat-topbar__scroll {
    display: flex;
    gap: 8px;
    overflow-x: auto;
    overflow-y: hidden;
    padding: 4px 16px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    scroll-snap-type: x proximity;
  }

  .tmp-portfolio--pinterest .tmp-cat-topbar__scroll::-webkit-scrollbar {
    display: none;
  }

  .tmp-portfolio--pinterest .tmp-cat-topbar__link {
    flex: 0 0 auto;
    padding: 9px 18px;
    border-radius: 999px;
    background: rgba(0, 0, 0, .06);
    color: inherit;
    text-decoration: none;
    font-size: 14px;
    font-weight: 500;
    white-space: nowrap;
    border: 1.5px solid transparent;
    scroll-snap-align: start;
    transition: background .22s, color .22s, transform .22s;
  }

  .tmp-portfolio--pinterest .tmp-cat-topbar__link:hover,
  .tmp-portfolio--pinterest .tmp-cat-topbar__link:active {
    transform: translateY(-1px);
  }

  .tmp-portfolio--pinterest .tmp-cat-topbar__link.is-active {
    background: #2c2119;
    color: #fff;
    border-color: #2c2119;
  }
}

/* ---- D. Anular el viejo menú flotante draggable en modo Pinterest ---- */
.tmp-portfolio--pinterest .tmp-integrated-menu,
.tmp-portfolio--pinterest .tmp-integrated-menu--floating {
  display: none !important;
}

/* ---- E. Ajustes pequeños del category-flow para que respete el sidebar ---- */
.tmp-portfolio--pinterest .tmp-grid--category-flow {
  min-width: 0; /* importante en CSS grid para que el column-count no desborde */
}

/* ---- F. Category anchor scroll-margin ajustado al sticky ---- */
.tmp-category-anchor {
  scroll-margin-top: 120px;
}

@media (max-width: 900px) {
  .tmp-category-anchor {
    scroll-margin-top: 80px;
  }
}

body.admin-bar .tmp-category-anchor {
  scroll-margin-top: 152px;
}

@media (max-width: 900px) {
  body.admin-bar .tmp-category-anchor {
    scroll-margin-top: 110px;
  }
}

/* ========================================================================
   ===== TEHIA v5.4 — Pinterest refined + lightbox + swipe + modal centering
   Cierra los issues de mobile (X, swipe, lightbox) y desktop (sidebar fino).
   ======================================================================== */

/* ---- A. NUKE containment en cualquier ancestor del modal ---- */
/* Defensivo: si el tema del cliente agrega contain/transform/will-change a la sección,
   el modal con position:fixed se rompe. Forzamos a no crear containing block. */
html body .tmp-portfolio,
html body .tmp-portfolio--category-flow,
html body .tmp-portfolio--pinterest {
  contain: style !important;       /* solo style, NUNCA layout/paint/strict */
  transform: none !important;
  perspective: none !important;
  filter: none !important;
  will-change: auto !important;
  backdrop-filter: none !important;
}

/* ---- B. Modal: garantizar viewport-fixed + centrado correcto ---- */
html body .tmp-modal {
  position: fixed !important;
  inset: 0 !important;
  z-index: 999999 !important;
  background: transparent !important;
}

html body .tmp-modal__dialog {
  position: relative !important;
  width: min(1080px, calc(100vw - 28px)) !important;
  max-width: 100% !important;
  max-height: min(92vh, 940px) !important;
  margin: 0 auto !important;
  /* Centrado vertical real usando flex en el wrapper */
}

/* El wrapper .tmp-modal se vuelve un flex container para centrar el dialog vertical */
html body .tmp-modal {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: max(20px, env(safe-area-inset-top)) max(14px, env(safe-area-inset-right)) max(20px, env(safe-area-inset-bottom)) max(14px, env(safe-area-inset-left)) !important;
}

/* Body lock cuando modal abierto */
body.tmp-modal-lock { overflow: hidden !important; }

/* X button: garantizar tappable y visible en mobile */
html body .tmp-modal__close {
  position: absolute !important;
  top: 12px !important;
  right: 12px !important;
  z-index: 100 !important;
  min-width: 44px !important;
  min-height: 44px !important;
  cursor: pointer !important;
}

@media (max-width: 768px) {
  html body .tmp-modal__close {
    top: 8px !important;
    right: 8px !important;
    min-width: 48px !important;
    min-height: 48px !important;
    font-size: 22px !important;
  }
}

/* La imagen grande del modal: cursor zoom para indicar que abre lightbox */
html body .tmp-modal__media--gallery [data-tmp-modal-main] {
  cursor: zoom-in !important;
}

/* ---- C. SIDEBAR DESKTOP refinado (Pinterest narrow style) ---- */
html body .tmp-portfolio--pinterest .tmp-pinterest-layout {
  grid-template-columns: 160px 1fr !important;
  gap: 32px !important;
}

@media (min-width: 1400px) {
  html body .tmp-portfolio--pinterest .tmp-pinterest-layout {
    grid-template-columns: 180px 1fr !important;
    gap: 40px !important;
  }
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar {
  padding: 4px 0 !important;
  top: 100px !important;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__title {
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: .18em !important;
  text-transform: uppercase !important;
  opacity: .42 !important;
  margin: 0 0 14px 12px !important;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__link {
  display: block !important;
  padding: 7px 12px !important;
  margin: 1px 0 !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  color: inherit !important;
  text-decoration: none !important;
  border-left: 0 !important;
  border-radius: 8px !important;
  opacity: .72 !important;
  transition: opacity .18s ease, background .18s ease, padding .18s ease !important;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__link:hover {
  background: rgba(0, 0, 0, .04) !important;
  opacity: 1 !important;
  padding-left: 14px !important;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__link.is-active {
  background: rgba(0, 0, 0, .06) !important;
  opacity: 1 !important;
  font-weight: 700 !important;
  border-left: 0 !important;
}

/* ---- D. TOPBAR MOBILE refinado (text-only + underline activo, B&W) ---- */
@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest .tmp-cat-topbar {
    position: sticky !important;
    top: 0 !important;
    z-index: 9990 !important;
    margin: 0 -16px 16px !important;
    padding: 0 !important;
    background: rgba(255, 255, 255, 0.96) !important;
    -webkit-backdrop-filter: blur(14px) !important;
    backdrop-filter: blur(14px) !important;
    border-bottom: 1px solid rgba(0, 0, 0, .08) !important;
    box-shadow: none !important;
  }

  body.admin-bar html body .tmp-portfolio--pinterest .tmp-cat-topbar { top: 46px !important; }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__scroll {
    display: flex !important;
    gap: 0 !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    padding: 0 14px !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__scroll::-webkit-scrollbar {
    display: none !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link {
    flex: 0 0 auto !important;
    padding: 14px 12px 12px !important;
    margin: 0 !important;
    background: transparent !important;
    color: #0a0a0a !important;
    text-decoration: none !important;
    font-size: 14px !important;
    font-weight: 500 !important;
    line-height: 1.2 !important;
    white-space: nowrap !important;
    border: 0 !important;
    border-bottom: 2px solid transparent !important;
    border-radius: 0 !important;
    opacity: .55 !important;
    transition: opacity .18s ease, border-color .18s ease !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link:hover,
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link:active {
    opacity: 1 !important;
    transform: none !important;
    background: transparent !important;
    color: #0a0a0a !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link.is-active {
    opacity: 1 !important;
    font-weight: 700 !important;
    border-bottom-color: #0a0a0a !important;
    background: transparent !important;
    color: #0a0a0a !important;
  }
}

/* ---- E. LIGHTBOX styles (fullscreen carrusel) ---- */
.tmp-lightbox {
  position: fixed;
  inset: 0;
  z-index: 9999999;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(0, 0, 0, .96);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transition: opacity .25s ease, visibility .25s ease;
}

.tmp-lightbox.is-open {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

body.tmp-lightbox-lock { overflow: hidden; }

.tmp-lightbox__stage {
  position: relative;
  width: 100%;
  height: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 64px 80px;
  cursor: zoom-out;
}

.tmp-lightbox__img {
  max-width: 100%;
  max-height: 100%;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
  border-radius: 6px;
  box-shadow: 0 30px 100px rgba(0, 0, 0, .6);
  cursor: default;
  -webkit-user-drag: none;
  user-select: none;
}

.tmp-lightbox__close {
  position: absolute;
  top: 20px;
  right: 20px;
  z-index: 5;
  width: 48px;
  height: 48px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
  color: #fff;
  cursor: pointer;
  padding: 0;
  transition: background .2s ease, transform .2s ease;
}

.tmp-lightbox__close:hover,
.tmp-lightbox__close:focus-visible {
  background: rgba(255, 255, 255, .18);
  transform: scale(1.06);
}

.tmp-lightbox__arrow {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 5;
  width: 54px;
  height: 54px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 999px;
  background: rgba(255, 255, 255, .08);
  color: #fff;
  cursor: pointer;
  padding: 0;
  transition: background .2s ease, transform .2s ease;
}

.tmp-lightbox__arrow:hover,
.tmp-lightbox__arrow:focus-visible {
  background: rgba(255, 255, 255, .22);
  transform: translateY(-50%) scale(1.06);
}

.tmp-lightbox__arrow--prev { left: 22px; }
.tmp-lightbox__arrow--next { right: 22px; }

.tmp-lightbox__counter {
  position: absolute;
  bottom: 22px;
  left: 50%;
  transform: translateX(-50%);
  color: rgba(255, 255, 255, .72);
  font-size: 13px;
  letter-spacing: .08em;
  font-variant-numeric: tabular-nums;
  background: rgba(0, 0, 0, .4);
  padding: 6px 14px;
  border-radius: 999px;
  -webkit-backdrop-filter: blur(8px);
  backdrop-filter: blur(8px);
}

@media (max-width: 768px) {
  .tmp-lightbox__stage {
    padding: 64px 14px 80px;
  }
  .tmp-lightbox__close {
    top: 12px;
    right: 12px;
    width: 44px;
    height: 44px;
  }
  .tmp-lightbox__arrow {
    width: 46px;
    height: 46px;
    bottom: 14px;
    top: auto;
    transform: none;
  }
  .tmp-lightbox__arrow:hover,
  .tmp-lightbox__arrow:focus-visible {
    transform: scale(1.06);
  }
  .tmp-lightbox__arrow--prev { left: 14px; }
  .tmp-lightbox__arrow--next { right: 14px; }
  .tmp-lightbox__counter {
    bottom: 78px;
    font-size: 12px;
  }
}

/* ========================================================================
   ===== TEHIA v5.5 — Sidebar colapsable con logo, links extra + tooltips
   ======================================================================== */

/* ---- A. SIDEBAR base (desktop) — soporta states minimized/expanded ---- */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar {
  position: sticky !important;
  top: 100px !important;
  align-self: start !important;
  padding: 14px 8px !important;
  border-radius: 16px !important;
  background: #fafafa !important;
  border: 1px solid rgba(0,0,0,.06) !important;
  transition: width .28s cubic-bezier(.2,.7,.2,1) !important;
  overflow: visible !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 4px !important;
}

/* Estado MINIMIZADO: 64px ancho, solo iconos */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar.is-minimized {
  width: 64px !important;
}

/* Estado EXPANDIDO: 220px ancho, iconos + texto */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar.is-expanded {
  width: 220px !important;
}

/* El grid layout se ajusta al ancho del sidebar */
html body .tmp-portfolio--pinterest .tmp-pinterest-layout {
  grid-template-columns: auto 1fr !important;
  gap: 28px !important;
}

@media (min-width: 1400px) {
  html body .tmp-portfolio--pinterest .tmp-pinterest-layout {
    gap: 40px !important;
  }
}

/* ---- B. LOGO arriba del sidebar ---- */
html body .tmp-cat-sidebar__logo {
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 6px !important;
  margin: 0 0 4px !important;
  border-radius: 10px !important;
  transition: background .2s ease !important;
}

html body .tmp-cat-sidebar__logo:hover {
  background: rgba(0,0,0,.04) !important;
}

html body .tmp-cat-sidebar__logo img {
  max-width: 40px !important;
  max-height: 40px !important;
  width: auto !important;
  height: auto !important;
  display: block !important;
  object-fit: contain !important;
}

/* ---- C. TOGGLE button (chevron) ---- */
html body .tmp-cat-sidebar__toggle {
  position: absolute !important;
  top: 18px !important;
  right: -12px !important;
  width: 26px !important;
  height: 26px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  border: 1px solid rgba(0,0,0,.1) !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  color: #0a0a0a !important;
  cursor: pointer !important;
  box-shadow: 0 2px 8px rgba(0,0,0,.08) !important;
  z-index: 12 !important;
  transition: transform .2s ease, box-shadow .2s ease !important;
}

html body .tmp-cat-sidebar__toggle:hover,
html body .tmp-cat-sidebar__toggle:focus-visible {
  transform: scale(1.1) !important;
  box-shadow: 0 4px 14px rgba(0,0,0,.16) !important;
}

html body .tmp-cat-sidebar__toggle svg {
  width: 14px !important;
  height: 14px !important;
  display: block !important;
}

/* ---- D. LISTA: items con iconos y texto ---- */
html body .tmp-cat-sidebar__list {
  list-style: none !important;
  margin: 0 !important;
  padding: 0 !important;
  display: flex !important;
  flex-direction: column !important;
  gap: 2px !important;
}

html body .tmp-cat-sidebar__list li {
  margin: 0 !important;
  padding: 0 !important;
  list-style: none !important;
}

/* Link: container flex de icono + texto */
html body .tmp-cat-sidebar__link {
  display: flex !important;
  align-items: center !important;
  gap: 12px !important;
  padding: 10px 12px !important;
  border-radius: 10px !important;
  color: #1a1a1a !important;
  text-decoration: none !important;
  font-size: 14px !important;
  font-weight: 500 !important;
  line-height: 1 !important;
  opacity: .78 !important;
  white-space: nowrap !important;
  overflow: hidden !important;
  position: relative !important;
  transition: background .18s ease, opacity .18s ease !important;
  border-left: 0 !important;
}

html body .tmp-cat-sidebar__link:hover {
  background: rgba(0,0,0,.05) !important;
  opacity: 1 !important;
}

html body .tmp-cat-sidebar__link.is-active {
  background: rgba(0,0,0,.08) !important;
  opacity: 1 !important;
  font-weight: 700 !important;
}

/* Icono dentro del link: tamaño fijo, no se encoge */
html body .tmp-cat-sidebar__icon {
  flex: 0 0 24px !important;
  width: 24px !important;
  height: 24px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  color: currentColor !important;
}

html body .tmp-cat-sidebar__icon svg {
  /* v5.6: tamaño controlado por --tmp-icon-size variable, sin !important para no bloquear Elementor */
  width: var(--tmp-icon-size, 20px);
  height: var(--tmp-icon-size, 20px);
  display: block;
}

/* Texto: visible en expanded, oculto en minimized */
html body .tmp-cat-sidebar__text {
  flex: 1 1 auto !important;
  opacity: 1 !important;
  transition: opacity .2s ease !important;
}

html body .tmp-cat-sidebar.is-minimized .tmp-cat-sidebar__text {
  opacity: 0 !important;
  width: 0 !important;
  visibility: hidden !important;
}

/* En minimized: el link se vuelve cuadrado, centra el icono */
html body .tmp-cat-sidebar.is-minimized .tmp-cat-sidebar__link {
  justify-content: center !important;
  padding: 12px !important;
}

/* Title "PRODUCTOS": visible expanded, oculto minimizado */
html body .tmp-cat-sidebar__title {
  display: block !important;
  font-size: 10px !important;
  font-weight: 700 !important;
  letter-spacing: .16em !important;
  text-transform: uppercase !important;
  opacity: .45 !important;
  margin: 14px 12px 6px !important;
  transition: opacity .2s ease !important;
}

html body .tmp-cat-sidebar.is-minimized .tmp-cat-sidebar__title {
  opacity: 0 !important;
  height: 0 !important;
  margin: 8px 0 !important;
  overflow: hidden !important;
}

/* Divider entre links extra y categorías */
html body .tmp-cat-sidebar__divider {
  height: 1px !important;
  background: rgba(0,0,0,.08) !important;
  margin: 10px 8px !important;
}

html body .tmp-cat-sidebar.is-minimized .tmp-cat-sidebar__divider {
  margin: 8px 12px !important;
}

/* ---- E. TOOLTIPS — solo visibles cuando sidebar está minimizado ---- */
html body .tmp-cat-sidebar.is-minimized [data-tmp-tooltip] {
  position: relative !important;
}

html body .tmp-cat-sidebar.is-minimized [data-tmp-tooltip]::after {
  content: attr(data-tmp-tooltip);
  position: absolute;
  left: calc(100% + 16px);
  top: 50%;
  transform: translateY(-50%) translateX(-6px);
  background: #0a0a0a;
  color: #ffffff;
  font-size: 12px;
  font-weight: 500;
  padding: 7px 12px;
  border-radius: 6px;
  white-space: nowrap;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 100;
  box-shadow: 0 4px 14px rgba(0,0,0,.18);
}

html body .tmp-cat-sidebar.is-minimized [data-tmp-tooltip]::before {
  content: '';
  position: absolute;
  left: calc(100% + 10px);
  top: 50%;
  transform: translateY(-50%) translateX(-6px);
  border: 6px solid transparent;
  border-right-color: #0a0a0a;
  pointer-events: none;
  opacity: 0;
  visibility: hidden;
  transition: opacity .18s ease, transform .18s ease, visibility .18s ease;
  z-index: 101;
}

html body .tmp-cat-sidebar.is-minimized [data-tmp-tooltip]:hover::after,
html body .tmp-cat-sidebar.is-minimized [data-tmp-tooltip]:focus-visible::after,
html body .tmp-cat-sidebar.is-minimized [data-tmp-tooltip]:hover::before,
html body .tmp-cat-sidebar.is-minimized [data-tmp-tooltip]:focus-visible::before {
  opacity: 1;
  visibility: visible;
  transform: translateY(-50%) translateX(0);
}

/* ---- F. MOBILE TOPBAR: dos filas (custom links + categorías) ---- */
@media (max-width: 900px) {
  /* En mobile, ocultar el sidebar — usar topbar exclusivamente */
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar { display: none !important; }

  /* Fila superior con links custom: iconos + label visible */
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom {
    display: flex !important;
    align-items: flex-end !important;
    justify-content: flex-start !important;
    gap: 4px !important;
    padding: 8px 12px 0 !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    border-bottom: 1px solid rgba(0,0,0,.04) !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom::-webkit-scrollbar { display: none !important; }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-link {
    flex: 0 0 auto !important;
    min-width: 64px !important;
    padding: 6px 8px 8px !important;
    display: flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 2px !important;
    color: #0a0a0a !important;
    text-decoration: none !important;
    opacity: .75 !important;
    transition: opacity .15s ease !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-link:hover,
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-link:active {
    opacity: 1 !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 26px !important;
    height: 26px !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-icon svg {
    /* v5.6: tamaño via variable */
    width: var(--tmp-icon-size, 22px);
    height: var(--tmp-icon-size, 22px);
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-label {
    font-size: 10px !important;
    font-weight: 500 !important;
    line-height: 1.1 !important;
    letter-spacing: .02em !important;
    white-space: nowrap !important;
  }

  /* La fila de categorías (existente) queda DEBAJO de los custom links */
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__scroll {
    border-top: 0 !important;
  }
}

/* ---- G. Ajustes específicos para sidebar en pantallas chicas-medias ---- */
@media (min-width: 901px) and (max-width: 1100px) {
  /* En tablets horizontal o desktop chico, sidebar arranca minimizado */
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar.is-expanded {
    width: 200px !important;
  }
}

/* ========================================================================
   ===== TEHIA v5.6 — Sidebar scrolleable, iconos editables, modal overflow,
                       preview de modal en editor de Elementor.
   ======================================================================== */

/* ---- A. Variables base v5.6 ---- */
html body .tmp-portfolio--pinterest {
  --tmp-icon-size: 20px;          /* Tamaño iconos (Elementor lo override) */
  --tmp-sticky-offset: 100px;     /* Top sticky del sidebar */
  --tmp-sidebar-bottom: 40px;     /* Espacio mínimo del bottom para scroll */
}

/* ---- B. Iconos sin !important — usan CSS variable, Elementor puede sobrescribir ---- */
html body .tmp-cat-sidebar__icon svg {
  width: var(--tmp-icon-size, 20px);
  height: var(--tmp-icon-size, 20px);
}

html body .tmp-cat-sidebar__icon {
  flex: 0 0 calc(var(--tmp-icon-size, 20px) + 4px);
  width: calc(var(--tmp-icon-size, 20px) + 4px);
  height: calc(var(--tmp-icon-size, 20px) + 4px);
}

@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-icon svg {
    width: var(--tmp-icon-size, 22px);
    height: var(--tmp-icon-size, 22px);
  }
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-icon {
    width: calc(var(--tmp-icon-size, 22px) + 4px);
    height: calc(var(--tmp-icon-size, 22px) + 4px);
  }
}

/* ---- C. SIDEBAR scrolleable cuando hay muchas categorías ---- */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar {
  /* Altura máxima = viewport - top sticky - bottom offset */
  max-height: calc(100vh - var(--tmp-sticky-offset, 100px) - var(--tmp-sidebar-bottom, 40px)) !important;
  overflow-y: auto !important;
  overflow-x: visible;
  /* Padding right más grande para que los tooltips de la primera fila tengan espacio */
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.2) transparent;
  /* anti-jumping al expandir/colapsar */
  scroll-behavior: smooth;
}

/* Scrollbar custom estilo Pinterest/Linear */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar::-webkit-scrollbar {
  width: 4px;
  height: 4px;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar::-webkit-scrollbar-track {
  background: transparent;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.15);
  border-radius: 999px;
  transition: background .2s ease;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar:hover::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.3);
}

/* Ajustar admin bar para sticky offset */
body.admin-bar html body .tmp-portfolio--pinterest .tmp-cat-sidebar {
  max-height: calc(100vh - var(--tmp-sticky-offset, 100px) - var(--tmp-sidebar-bottom, 40px) - 32px) !important;
}

/* ---- D. MODAL — bulletproof overflow handling ---- */
/* Panel: clip rounded corners y reset overflow */
html body .tmp-modal__panel {
  overflow: hidden !important;
  display: grid !important;
  position: relative !important;
}

/* En desktop: body scrolleable independiente (info side) */
@media (min-width: 769px) {
  html body .tmp-modal__panel {
    grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr) !important;
  }
  html body .tmp-modal__body {
    overflow-y: auto !important;
    overflow-x: hidden !important;
    max-height: min(92vh, 940px) !important;
    scrollbar-width: thin;
    scrollbar-color: rgba(0,0,0,0.18) transparent;
  }
  html body .tmp-modal__body::-webkit-scrollbar { width: 5px; }
  html body .tmp-modal__body::-webkit-scrollbar-track { background: transparent; }
  html body .tmp-modal__body::-webkit-scrollbar-thumb {
    background: rgba(0,0,0,0.18);
    border-radius: 999px;
  }
}

/* Imagen: clip rounded corners también */
html body .tmp-modal__media,
html body .tmp-modal__media--gallery {
  overflow: hidden !important;
  position: relative !important;
}

/* TITLE: previene desborde horizontal con words muy largos */
html body .tmp-modal__title {
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  hyphens: auto !important;
  font-size: clamp(24px, 4vw, 56px) !important;
  line-height: 1.05 !important;
  max-width: 100% !important;
}

/* SUBTITLE / DESCRIPTION / SPECS: previene desborde */
html body .tmp-modal__subtitle,
html body .tmp-modal__description,
html body .tmp-modal__specs {
  word-break: break-word !important;
  overflow-wrap: anywhere !important;
  max-width: 100% !important;
}

/* Mobile: cambio a single column scrolleable */
@media (max-width: 768px) {
  html body .tmp-modal__panel {
    grid-template-columns: 1fr !important;
    overflow-y: auto !important;
    max-height: 100% !important;
  }
  html body .tmp-modal__body {
    overflow: visible !important;
  }
  html body .tmp-modal__title {
    font-size: clamp(22px, 7vw, 36px) !important;
  }
}

/* ---- E. EDITOR DE ELEMENTOR: modal abierto y editable ---- */
body.elementor-editor-active .tmp-portfolio.tmp-editor-modal-preview .tmp-modal,
.elementor-editor-active .tmp-portfolio.tmp-editor-modal-preview .tmp-modal {
  /* Forzar visibilidad para que se vea aunque elementor-editor-active esté en otra capa */
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}

body.elementor-editor-active .tmp-portfolio.tmp-editor-modal-preview .tmp-modal__backdrop,
.elementor-editor-active .tmp-portfolio.tmp-editor-modal-preview .tmp-modal__backdrop {
  /* Backdrop más sutil en editor para que el resto del editor sea visible */
  background: rgba(22, 16, 12, 0.4) !important;
}

/* En editor, NO bloquear scroll del body (interfiere con el editor de Elementor) */
body.elementor-editor-active.tmp-modal-lock { overflow: auto !important; }

/* ========================================================================
   ===== TEHIA v5.7 — Toggle visible, icon size que SIEMPRE actualiza,
                       hover overflow fix, iconos custom por categoría.
   ======================================================================== */

/* ---- A. SIDEBAR: estructura wrapper/inner para que el toggle no se corte ---- */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar {
  /* El sidebar contenedor: overflow VISIBLE para que el toggle pueda salir */
  overflow: visible !important;
  /* La max-height limita el sidebar pero NO la fuerza al inner */
  max-height: none !important;
  /* Padding right para hacer espacio al toggle saliente */
  padding: 14px 8px !important;
  position: sticky !important;
  /* removemos el overflow-y que tenía v5.6 — ahora vive en __inner */
  scrollbar-width: auto;
}

/* Anular reglas de scroll de v5.6 que apuntaban al sidebar */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar::-webkit-scrollbar {
  width: 0; /* el scrollbar va al __inner */
}

/* Inner: ESTE es el área scrolleable */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__inner {
  max-height: calc(100vh - var(--tmp-sticky-offset, 100px) - var(--tmp-sidebar-bottom, 40px) - 28px) !important;
  overflow-y: auto !important;
  overflow-x: visible;
  scrollbar-width: thin;
  scrollbar-color: rgba(0,0,0,0.18) transparent;
  display: flex;
  flex-direction: column;
  gap: 4px;
  padding-right: 4px;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__inner::-webkit-scrollbar {
  width: 4px;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__inner::-webkit-scrollbar-track {
  background: transparent;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__inner::-webkit-scrollbar-thumb {
  background: rgba(0,0,0,0.18);
  border-radius: 999px;
}

body.admin-bar html body .tmp-portfolio--pinterest .tmp-cat-sidebar__inner {
  max-height: calc(100vh - var(--tmp-sticky-offset, 100px) - var(--tmp-sidebar-bottom, 40px) - 60px) !important;
}

/* TOGGLE: ahora vive en el sidebar PADRE (overflow:visible) → nunca se corta */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__toggle {
  position: absolute !important;
  top: 18px !important;
  right: -13px !important;
  z-index: 30 !important; /* arriba del scrollbar */
  width: 28px !important;
  height: 28px !important;
  border-radius: 999px !important;
  background: #ffffff !important;
  border: 1px solid rgba(0,0,0,.1) !important;
  box-shadow: 0 3px 10px rgba(0,0,0,.12) !important;
  cursor: pointer !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  padding: 0 !important;
  color: #0a0a0a !important;
  transition: transform .2s ease, box-shadow .2s ease !important;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__toggle:hover,
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__toggle:focus-visible {
  transform: scale(1.12) !important;
  box-shadow: 0 5px 16px rgba(0,0,0,.18) !important;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__toggle svg {
  width: 14px !important;
  height: 14px !important;
}

/* ---- B. ICON SIZE — !important + variable, para que SIEMPRE gane ---- */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__icon svg,
html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-icon svg {
  width: var(--tmp-icon-size, 20px) !important;
  height: var(--tmp-icon-size, 20px) !important;
}

html body .tmp-portfolio--pinterest .tmp-cat-sidebar__icon {
  flex: 0 0 calc(var(--tmp-icon-size, 20px) + 6px) !important;
  width: calc(var(--tmp-icon-size, 20px) + 6px) !important;
  height: calc(var(--tmp-icon-size, 20px) + 6px) !important;
}

/* ---- C. CARD HOVER — descripción nunca se sale del cuadro ---- */
html body .tmp-portfolio .tmp-card__content {
  position: absolute !important;
  inset: auto 0 0 0 !important;          /* fijado al BOTTOM del card */
  padding: 20px !important;
  max-height: 60% !important;             /* máximo 60% de la altura del card */
  overflow: hidden !important;
  z-index: 4 !important;
  box-sizing: border-box !important;
}

/* v5.7 line-clamp ANULADO en v5.8 — descripciones se ven completas con scroll si excede */

/* Mobile: contenido siempre visible y aún más compacto */
/* v5.7 mobile font-size !important removido — Elementor controla tipografía vía typography control */

/* El badge del código (DEMO-035) queda en la esquina opuesta */
html body .tmp-portfolio .tmp-card__code,
html body .tmp-portfolio .tmp-card__number {
  position: absolute !important;
  top: 12px !important;
  right: 14px !important;
  z-index: 4 !important;
}

/* ---- D. Estilo del admin de WordPress para el select del ícono de categoría ---- */
.tmp-term-icon-field select {
  min-width: 240px;
}

/* ========================================================================
   ===== TEHIA v5.8 — Logo en mobile, descripciones completas, mobile live edit
   ======================================================================== */

/* ---- A. ANULAR el line-clamp y font-size !important que bloqueaba edits en mobile ---- */
/* IMPORTANTE: usamos `all: unset` o `revert` específico para LIBERAR las propiedades
   que Elementor necesita poder sobrescribir desde el panel del editor */

html body .tmp-portfolio .tmp-card__title {
  /* Sin line-clamp: el título se ve completo */
  display: block !important;
  -webkit-line-clamp: unset !important;
  overflow: visible !important;
  text-overflow: clip !important;
  word-break: break-word !important;
  margin: 0 0 6px !important;
}

html body .tmp-portfolio .tmp-card__description,
html body .tmp-portfolio .tmp-card__subtitle {
  /* Sin line-clamp: descripción se ve COMPLETA en hover */
  display: block !important;
  -webkit-line-clamp: unset !important;
  overflow: visible !important;
  text-overflow: clip !important;
  word-break: break-word !important;
  margin: 0 !important;
  line-height: 1.4 !important;
}

/* ---- B. Card content: expande naturalmente con scroll si es muy largo ---- */
html body .tmp-portfolio .tmp-card__content {
  position: absolute !important;
  inset: auto 0 0 0 !important;
  padding: 18px 20px 22px !important;
  /* Por defecto solo cubre lo necesario para mostrar título+desc */
  max-height: 90% !important;
  /* Scroll interno SI la descripción es realmente larga (>500 chars) */
  overflow-y: auto !important;
  overflow-x: hidden !important;
  z-index: 4 !important;
  box-sizing: border-box !important;
  /* Gradient más fuerte para legibilidad sin importar la foto */
  background: linear-gradient(180deg,
              rgba(0, 0, 0, 0) 0%,
              rgba(0, 0, 0, 0.35) 25%,
              rgba(0, 0, 0, 0.75) 65%,
              rgba(0, 0, 0, 0.92) 100%) !important;
  /* Scrollbar thin */
  scrollbar-width: thin;
  scrollbar-color: rgba(255, 255, 255, 0.3) transparent;
}

html body .tmp-portfolio .tmp-card__content::-webkit-scrollbar {
  width: 3px;
}
html body .tmp-portfolio .tmp-card__content::-webkit-scrollbar-thumb {
  background: rgba(255, 255, 255, 0.3);
  border-radius: 999px;
}

/* Mobile: contenido siempre visible, SIN font-size !important para que
   Elementor pueda controlar tipografías en vivo */
@media (max-width: 900px) {
  html body .tmp-portfolio .tmp-card__content {
    padding: 14px 16px 16px !important;
    max-height: 88% !important;
  }
  /* REMOVIDO el font-size !important para que Elementor controle tipografía */
}

/* ---- C. LOGO en mobile topbar ---- */
@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__brand-row {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
    padding: 8px 14px 0 !important;
    border-bottom: 1px solid rgba(0, 0, 0, 0.04) !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__logo {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    padding: 6px 10px 6px 0;
    border-right: 1px solid rgba(0, 0, 0, 0.08);
    margin-right: 6px;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__logo img {
    max-height: 32px;
    max-width: 60px;
    width: auto;
    height: auto;
    display: block;
    object-fit: contain;
  }

  /* Si NO hay logo, el custom no tiene border-left */
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__brand-row .tmp-cat-topbar__custom {
    flex: 1 1 auto !important;
    min-width: 0 !important;
    overflow-x: auto !important;
    border-bottom: 0 !important;
    padding: 4px 0 8px !important;
  }
}

/* ---- D. Restaurar libertad de typography en cards (sin font-size hardcoded) ---- */
/* En mi v5.7 había:
     .tmp-card__title { font-size: clamp(14px, 4vw, 18px) !important; }
   Eso bloqueaba el control de tipografía de Elementor en mobile.
   Lo eliminamos en v5.8 — Elementor maneja los tamaños de fuente. */

html body .tmp-portfolio .tmp-card__title {
  /* Sin font-size hardcoded — lo controla Elementor typography */
  line-height: 1.15 !important;
}

html body .tmp-portfolio .tmp-card__description,
html body .tmp-portfolio .tmp-card__subtitle {
  /* Sin font-size hardcoded */
  line-height: 1.4 !important;
}

/* ---- E. Hover suave: anti-tiemble al mostrar contenido ---- */
html body .tmp-portfolio .tmp-card__content {
  /* Opacity transition sin que la tarjeta se mueva */
  opacity: 0;
  transition: opacity .32s cubic-bezier(.2, .7, .2, 1);
  pointer-events: none;
}

html body .tmp-portfolio .tmp-card:hover .tmp-card__content,
html body .tmp-portfolio .tmp-card:focus-within .tmp-card__content,
html body .tmp-portfolio .tmp-card.is-hovered .tmp-card__content {
  opacity: 1;
  pointer-events: auto;
}

/* En mobile el contenido siempre se ve (no hay hover real) */
@media (max-width: 900px) {
  html body .tmp-portfolio .tmp-card__content {
    opacity: 1 !important;
    pointer-events: auto !important;
  }
}

/* ========================================================================
   ===== TEHIA v5.9 — Iconos custom (imagen propia) por categoría
   ======================================================================== */

/* Iconos como <img> (uploaded) heredan el mismo tamaño que los SVG */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__icon img,
html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-icon img {
  width: var(--tmp-icon-size, 20px) !important;
  height: var(--tmp-icon-size, 20px) !important;
  object-fit: contain !important;
  display: block !important;
  border-radius: 4px;
}

/* Aseguramos que el span contenedor del icono mantenga su tamaño consistente
   tanto si tiene SVG como IMG */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__icon {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ========================================================================
   ===== TEHIA v5.10 — Columnas mobile fix, iconos en topbar tabs,
                        modal inline preview en editor, top padding mobile
   ======================================================================== */

/* v5.11: Reglas v5.10 reemplazadas — la versión anterior creaba referencia circular
   con --tmp-columns: var(--tmp-columns). Ahora dejamos que el column-count desktop
   (línea ~2735) heredado funcione, ya que Elementor inyecta --tmp-columns por device. */

/* ---- B. ICONOS en topbar mobile (junto a nombres de categorías) ---- */
@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link {
    display: inline-flex !important;
    align-items: center !important;
    gap: 6px !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: calc(var(--tmp-icon-size, 18px) * 0.85) !important;
    height: calc(var(--tmp-icon-size, 18px) * 0.85) !important;
    flex: 0 0 auto !important;
    color: inherit !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link-icon svg,
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link-icon img {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
    object-fit: contain !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link-label {
    display: inline-block !important;
  }
}

/* En desktop ocultamos los iconos del topbar (que solo aparecen en mobile) */
@media (min-width: 901px) {
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__link-icon {
    display: none !important;
  }
}

/* ---- C. TOP PADDING mobile: la grilla NO queda tapada por el topbar sticky ---- */
@media (max-width: 900px) {
  /* Más espacio entre el topbar y la primera fila de cards */
  html body .tmp-portfolio--pinterest .tmp-grid--category-flow,
  html body .tmp-portfolio--pinterest .tmp-grid {
    padding-top: 20px !important;
  }

  /* Scroll margin más generoso para anclas (al hacer click en una categoría) */
  html body .tmp-category-anchor,
  html body [data-tmp-category-section] {
    scroll-margin-top: 140px !important;
  }
  body.admin-bar html body .tmp-category-anchor,
  body.admin-bar html body [data-tmp-category-section] {
    scroll-margin-top: 186px !important;
  }
}

/* ---- D. MODAL INLINE PREVIEW (solo en editor de Elementor) ---- */
/* Cuando el server detecta editor + toggle ON → emite script que agrega .tmp-modal--editor-inline */
html body .tmp-modal.tmp-modal--editor-inline {
  position: relative !important;
  inset: auto !important;
  z-index: auto !important;
  display: block !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  height: auto !important;
  width: 100% !important;
  padding: 0 !important;
  margin: 30px 0 !important;
  background: transparent !important;
  align-items: initial !important;
  justify-content: initial !important;
}

html body .tmp-modal.tmp-modal--editor-inline::before {
  content: '👁️  Vista previa del modal (solo en editor) — apagá el toggle antes de publicar';
  display: block;
  background: #fff4d6;
  color: #6b4a00;
  border: 2px dashed #f59e0b;
  border-radius: 10px;
  padding: 10px 16px;
  margin-bottom: 16px;
  font-size: 13px;
  font-weight: 600;
  text-align: center;
}

html body .tmp-modal.tmp-modal--editor-inline .tmp-modal__backdrop {
  display: none !important;
}

html body .tmp-modal.tmp-modal--editor-inline .tmp-modal__dialog {
  position: relative !important;
  width: 100% !important;
  max-width: 100% !important;
  max-height: none !important;
  margin: 0 !important;
  transform: none !important;
}

html body .tmp-modal.tmp-modal--editor-inline .tmp-modal__close {
  display: none !important;
}

html body .tmp-modal.tmp-modal--editor-inline .tmp-modal__panel {
  max-height: none !important;
  border-radius: 14px !important;
  box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08) !important;
}

/* En el editor el body no debe quedar lockeado (interfiere con Elementor) */
body.elementor-editor-active.tmp-modal-lock,
body.elementor-preview .tmp-modal-lock {
  overflow: auto !important;
}

/* ========================================================================
   ===== TEHIA v5.11 — Modal scroll mobile, columnas, alineación, espaciado
   ======================================================================== */

/* ---- A. MODAL SCROLLEABLE EN MOBILE ---- */
/* El problema: max-height: 100% no funciona si el parent no tiene height explícito.
   Solución: usar vh directamente + smooth scroll touch para iOS. */
@media (max-width: 768px) {
  html body .tmp-modal__dialog {
    width: calc(100vw - 24px) !important;
    max-width: 100% !important;
    max-height: calc(100vh - 80px) !important;  /* 80px = padding del modal flex container */
    height: auto !important;
    margin: 0 !important;
  }

  html body .tmp-modal__panel {
    max-height: calc(100vh - 80px) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: thin;
    /* Reset del grid: single column scroll vertical */
    display: block !important;
    grid-template-columns: none !important;
  }

  html body .tmp-modal__panel::-webkit-scrollbar {
    width: 4px;
  }
  html body .tmp-modal__panel::-webkit-scrollbar-thumb {
    background: rgba(0, 0, 0, 0.2);
    border-radius: 999px;
  }

  /* En mobile el wrapper modal tiene menos padding (para que el dialog sea más alto) */
  html body .tmp-modal {
    padding: 20px 12px !important;
  }

  /* La imagen en mobile NO necesita ser tan grande (ahorra espacio para el body scrolleable) */
  html body .tmp-modal__media,
  html body .tmp-modal__media--gallery {
    max-height: 50vh !important;
  }
  html body .tmp-modal__media img,
  html body .tmp-modal__media--gallery img[data-tmp-modal-main] {
    max-height: 50vh !important;
    object-fit: contain !important;
  }
}

/* iPhone con notch / safe area */
@supports (padding: max(0px)) {
  @media (max-width: 768px) {
    html body .tmp-modal {
      padding-top: max(20px, env(safe-area-inset-top)) !important;
      padding-bottom: max(20px, env(safe-area-inset-bottom)) !important;
    }
  }
}

/* ---- B. COLUMNAS mobile: ahora respeta el control responsive ---- */
/* Las reglas viejas con !important fueron BORRADAS (no override). El column-count
   ya está definido en la capa v5.0 (línea ~2893): `column-count: var(--tmp-cols-desktop) !important`
   donde --tmp-cols-desktop = var(--tmp-columns, 4). Elementor inyecta --tmp-columns por device
   dentro de media queries, así que ahora Mobile=3 funciona. */

/* ---- C. ALINEACIÓN DEFAULT de custom links en mobile (centrada) ---- */
/* Si el usuario NO seteó el control, default es center via justify-content */
@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__brand-row {
    justify-content: center !important;  /* default — override-eado por Elementor control */
    flex-wrap: wrap;
    row-gap: 6px;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom {
    justify-content: center !important;  /* mismo default */
    flex-wrap: nowrap !important;
    width: 100% !important;
  }

  /* Si NO hay logo, el custom toma todo el ancho y se centra */
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__brand-row:not(:has(.tmp-cat-topbar__logo)) .tmp-cat-topbar__custom {
    justify-content: center !important;
  }
}

/* ---- D. ESPACIO entre topbar y grilla en mobile (default 24px) ---- */
@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest .tmp-grid,
  html body .tmp-portfolio--pinterest .tmp-grid--category-flow {
    padding-top: 24px !important;  /* default — Elementor control puede sobreescribir */
  }
}

/* ---- E. Tweaks adicionales: icons del custom-link más visibles en mobile ---- */
@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-link {
    /* Iconos arriba, label abajo, centrado */
    display: inline-flex !important;
    flex-direction: column !important;
    align-items: center !important;
    gap: 4px !important;
    min-width: 64px !important;
    padding: 6px 10px 8px !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-icon {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: calc(var(--tmp-icon-size, 22px) + 2px) !important;
    height: calc(var(--tmp-icon-size, 22px) + 2px) !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-icon svg {
    width: 100% !important;
    height: 100% !important;
    display: block !important;
  }

  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom-label {
    font-size: 11px !important;
    line-height: 1.2 !important;
    font-weight: 500 !important;
    text-align: center;
  }
}

/* ========================================================================
   ===== TEHIA v5.12 — Ajustes finales solicitados
   - Respeta 2/3 columnas en mobile desde el control responsive del widget.
   - Permite ocultar iconos de categorías en mobile.
   - Centra iconos del sidebar desktop.
   - Reubica el botón de expandir/minimizar para no molestar al logo.
   - Ubica la galería inline debajo de la descripción.
   - Muestra siempre botones de categoría y tienda.
   ======================================================================== */

/* Columnas: usar variables renderizadas inline por PHP, no forzar 1 columna en celulares chicos. */
@media (max-width: 900px) {
  html body .tmp-portfolio,
  html body .tmp-portfolio--category-flow {
    --tmp-cols-desktop: var(--tmp-cols-tablet, var(--tmp-columns, 2)) !important;
  }
  html body .tmp-portfolio .tmp-grid,
  html body .tmp-portfolio--category-flow .tmp-grid--category-flow {
    column-count: var(--tmp-cols-desktop, 2) !important;
    column-gap: var(--tmp-gap-x-final, var(--tmp-gap-x, 10px)) !important;
  }
}

@media (max-width: 480px) {
  html body .tmp-portfolio,
  html body .tmp-portfolio--category-flow {
    --tmp-cols-desktop: var(--tmp-cols-mobile, 2) !important;
    --tmp-columns: var(--tmp-cols-mobile, 2) !important;
  }
  html body .tmp-portfolio .tmp-grid,
  html body .tmp-portfolio--category-flow .tmp-grid--category-flow {
    column-count: var(--tmp-cols-mobile, 2) !important;
    column-gap: var(--tmp-gap-x-final, var(--tmp-gap-x, 8px)) !important;
  }
}

/* Si el usuario elige 3 columnas mobile, achicar alturas para que entren bien. */
@media (max-width: 480px) {
  html body .tmp-portfolio .tmp-card__button { height: clamp(150px, 52vw, 310px) !important; }
  html body .tmp-portfolio .tmp-card--small .tmp-card__button { height: clamp(135px, 44vw, 240px) !important; }
  html body .tmp-portfolio .tmp-card--normal .tmp-card__button { height: clamp(160px, 54vw, 300px) !important; }
  html body .tmp-portfolio .tmp-card--tall .tmp-card__button { height: clamp(200px, 68vw, 390px) !important; }
  html body .tmp-portfolio .tmp-card--wide .tmp-card__button,
  html body .tmp-portfolio .tmp-card--feature .tmp-card__button { height: clamp(145px, 48vw, 280px) !important; }
}

/* Mobile: opción para ocultar iconos de categorías y dejar solo texto. */
@media (max-width: 900px) {
  html body .tmp-hide-mobile-cat-icons .tmp-cat-topbar__link-icon {
    display: none !important;
  }
  html body .tmp-hide-mobile-cat-icons .tmp-cat-topbar__link {
    padding-left: 12px !important;
    padding-right: 12px !important;
  }
}

/* Desktop: centrar iconos dentro de la barra y evitar desalineaciones por SVG/IMG. */
@media (min-width: 901px) {
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar__link {
    display: flex !important;
    align-items: center !important;
    gap: 10px !important;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar__icon,
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar__icon svg,
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar__icon img {
    width: var(--tmp-icon-size, 20px) !important;
    height: var(--tmp-icon-size, 20px) !important;
    min-width: var(--tmp-icon-size, 20px) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    object-fit: contain !important;
    line-height: 1 !important;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar__text {
    line-height: 1.1 !important;
  }
}

/* Botón expandir/minimizar: abajo y afuera de la barra, para que no tape el logo. */
@media (min-width: 901px) {
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar {
    position: sticky !important;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar__toggle {
    top: auto !important;
    bottom: 10px !important;
    right: -48px !important;
    left: auto !important;
    transform: none !important;
    z-index: 20 !important;
  }
}

/* Modal: la galería inline debe ir debajo de la descripción, no arriba del título. */
html body .tmp-modal__body {
  display: flex !important;
  flex-direction: column !important;
}
html body .tmp-modal__eyebrow { order: 1 !important; }
html body .tmp-modal__title { order: 2 !important; font-weight: 500 !important; letter-spacing: -0.06em !important; }
html body .tmp-modal__subtitle { order: 3 !important; font-weight: 500 !important; }
html body .tmp-modal__specs { order: 4 !important; }
html body .tmp-modal__description { order: 5 !important; }
html body .tmp-modal__gallery-inline { order: 6 !important; }
html body .tmp-modal__actions { order: 7 !important; }

/* Botones del modal: categoría + tienda nube siempre visibles. */
html body .tmp-modal__actions {
  display: flex !important;
  flex-wrap: wrap !important;
  gap: 10px !important;
  margin-top: clamp(18px, 2vw, 28px) !important;
  align-items: center !important;
}
html body .tmp-modal__actions .tmp-modal__cta {
  order: initial !important;
  margin: 0 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 8px !important;
  text-decoration: none !important;
  line-height: 1.1 !important;
}
html body .tmp-modal__cta--category {
  background: transparent !important;
  color: #000 !important;
  border: 1px solid rgba(0,0,0,.22) !important;
}
html body .tmp-modal__cta--category:hover,
html body .tmp-modal__cta--category:focus-visible {
  background: rgba(0,0,0,.06) !important;
  color: #000 !important;
}

@media (max-width: 768px) {
  html body .tmp-modal__title {
    font-weight: 500 !important;
    font-size: clamp(38px, 12vw, 58px) !important;
    line-height: .92 !important;
  }
  html body .tmp-modal__actions {
    width: 100% !important;
  }
  html body .tmp-modal__actions .tmp-modal__cta {
    flex: 1 1 160px !important;
    min-height: 44px !important;
  }
}


/* ========================================================================
   TEHIA v5.15 — producción real: columnas responsive persistentes + modal desktop
   ======================================================================== */
html body .tmp-portfolio .tmp-grid,
html body .tmp-portfolio--category-flow .tmp-grid--category-flow {
  column-count: var(--tmp-active-cols, var(--tmp-cols-desktop, var(--tmp-columns, 4))) !important;
  -webkit-column-count: var(--tmp-active-cols, var(--tmp-cols-desktop, var(--tmp-columns, 4))) !important;
  column-gap: var(--tmp-gap-x-final, var(--tmp-gap-x, 12px)) !important;
  -webkit-column-gap: var(--tmp-gap-x-final, var(--tmp-gap-x, 12px)) !important;
  display: block !important;
  width: 100% !important;
}

@media (max-width: 900px) {
  html body .tmp-portfolio,
  html body .tmp-portfolio--category-flow {
    --tmp-active-cols: var(--tmp-cols-tablet, 2) !important;
    --tmp-cols-desktop: var(--tmp-cols-tablet, 2) !important;
    --tmp-columns: var(--tmp-cols-tablet, 2) !important;
  }
}

@media (max-width: 480px) {
  html body .tmp-portfolio,
  html body .tmp-portfolio--category-flow {
    --tmp-active-cols: var(--tmp-cols-mobile, 2) !important;
    --tmp-cols-desktop: var(--tmp-cols-mobile, 2) !important;
    --tmp-columns: var(--tmp-cols-mobile, 2) !important;
  }
  html body .tmp-portfolio .tmp-grid,
  html body .tmp-portfolio--category-flow .tmp-grid--category-flow {
    column-count: var(--tmp-cols-mobile, 2) !important;
    -webkit-column-count: var(--tmp-cols-mobile, 2) !important;
  }
}

@media (max-width: 480px) {
  html body .tmp-portfolio[data-tmp-cols-mobile="1"] { --tmp-active-cols: 1 !important; --tmp-cols-desktop: 1 !important; --tmp-columns: 1 !important; }
  html body .tmp-portfolio[data-tmp-cols-mobile="2"] { --tmp-active-cols: 2 !important; --tmp-cols-desktop: 2 !important; --tmp-columns: 2 !important; }
  html body .tmp-portfolio[data-tmp-cols-mobile="3"] { --tmp-active-cols: 3 !important; --tmp-cols-desktop: 3 !important; --tmp-columns: 3 !important; }
  html body .tmp-portfolio[data-tmp-cols-mobile="1"] .tmp-grid,
  html body .tmp-portfolio[data-tmp-cols-mobile="1"] .tmp-grid--category-flow { column-count: 1 !important; -webkit-column-count: 1 !important; }
  html body .tmp-portfolio[data-tmp-cols-mobile="2"] .tmp-grid,
  html body .tmp-portfolio[data-tmp-cols-mobile="2"] .tmp-grid--category-flow { column-count: 2 !important; -webkit-column-count: 2 !important; }
  html body .tmp-portfolio[data-tmp-cols-mobile="3"] .tmp-grid,
  html body .tmp-portfolio[data-tmp-cols-mobile="3"] .tmp-grid--category-flow { column-count: 3 !important; -webkit-column-count: 3 !important; }

  html body .tmp-portfolio[data-tmp-cols-mobile="2"] .tmp-card--small .tmp-card__button,
  html body .tmp-portfolio[data-tmp-cols-mobile="3"] .tmp-card--small .tmp-card__button { height: clamp(130px, 42vw, 240px) !important; }
  html body .tmp-portfolio[data-tmp-cols-mobile="2"] .tmp-card--normal .tmp-card__button,
  html body .tmp-portfolio[data-tmp-cols-mobile="3"] .tmp-card--normal .tmp-card__button { height: clamp(150px, 50vw, 300px) !important; }
  html body .tmp-portfolio[data-tmp-cols-mobile="2"] .tmp-card--tall .tmp-card__button,
  html body .tmp-portfolio[data-tmp-cols-mobile="3"] .tmp-card--tall .tmp-card__button { height: clamp(190px, 62vw, 390px) !important; }
  html body .tmp-portfolio[data-tmp-cols-mobile="2"] .tmp-card--wide .tmp-card__button,
  html body .tmp-portfolio[data-tmp-cols-mobile="2"] .tmp-card--feature .tmp-card__button,
  html body .tmp-portfolio[data-tmp-cols-mobile="3"] .tmp-card--wide .tmp-card__button,
  html body .tmp-portfolio[data-tmp-cols-mobile="3"] .tmp-card--feature .tmp-card__button { height: clamp(135px, 45vw, 280px) !important; }
}

/* Modal desktop: evitar título cortado y hacer que el contenido respire. */
@media (min-width: 981px) {
  html body .tmp-modal__dialog {
    width: min(1380px, calc(100vw - 56px)) !important;
    max-height: calc(100vh - 54px) !important;
    margin: 27px auto !important;
  }
  html body .tmp-modal__panel {
    height: auto !important;
    max-height: calc(100vh - 54px) !important;
    min-height: 0 !important;
    grid-template-columns: minmax(420px, .95fr) minmax(430px, 1.05fr) !important;
    overflow: hidden !important;
    align-items: stretch !important;
  }
  html body .tmp-modal__body {
    justify-content: flex-start !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-top: clamp(34px, 3.4vw, 56px) !important;
    padding-bottom: clamp(34px, 3.4vw, 56px) !important;
  }
  html body .tmp-modal__title {
    font-size: clamp(34px, 4.1vw, 64px) !important;
    line-height: 1.02 !important;
    letter-spacing: -.055em !important;
    font-weight: 500 !important;
    max-width: none !important;
    overflow: visible !important;
    text-wrap: balance;
    margin-bottom: clamp(14px, 1.4vw, 22px) !important;
  }
  html body .tmp-modal__subtitle {
    font-size: clamp(17px, 1.55vw, 26px) !important;
    line-height: 1.18 !important;
    max-width: 100% !important;
  }
  html body .tmp-modal__media--gallery {
    height: auto !important;
    min-height: 0 !important;
  }
}

/* Si SG Optimizer combina CSS en otro orden, esta regla debe ganar por estar al final. */
html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-card {
  break-inside: avoid !important;
  -webkit-column-break-inside: avoid !important;
}


/* ========================================================================
   TEHIA v5.16 — mobile spacing, logo divider, modal image cover, production-safe vars
   ======================================================================== */

/* 1) Producción: leer siempre los valores inline del widget, no depender de CSS cacheado. */
html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-grid,
html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-grid--category-flow {
  column-gap: var(--tmp-gap-x-desktop, var(--tmp-gap-x, 14px)) !important;
  -webkit-column-gap: var(--tmp-gap-x-desktop, var(--tmp-gap-x, 14px)) !important;
}
html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-card {
  margin-bottom: var(--tmp-gap-y-desktop, var(--tmp-gap-y, 10px)) !important;
}

@media (max-width: 900px) {
  html body .tmp-portfolio[data-tmp-version="5.16.0"],
  html body .tmp-portfolio--category-flow[data-tmp-version="5.16.0"] {
    --tmp-active-cols: var(--tmp-cols-tablet, 2) !important;
    --tmp-columns: var(--tmp-cols-tablet, 2) !important;
    --tmp-cols-desktop: var(--tmp-cols-tablet, 2) !important;
    --tmp-gap-x-final: var(--tmp-gap-x-tablet, var(--tmp-gap-x, 14px)) !important;
    --tmp-gap-y-final: var(--tmp-gap-y-tablet, var(--tmp-gap-y, 12px)) !important;
    --tmp-row: var(--tmp-row-tablet, 9px) !important;
  }

  html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-grid,
  html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-grid--category-flow {
    column-count: var(--tmp-cols-tablet, 2) !important;
    -webkit-column-count: var(--tmp-cols-tablet, 2) !important;
    column-gap: max(12px, var(--tmp-gap-x-tablet, var(--tmp-gap-x, 14px))) !important;
    -webkit-column-gap: max(12px, var(--tmp-gap-x-tablet, var(--tmp-gap-x, 14px))) !important;
    padding-top: max(24px, var(--tmp-mobile-grid-top-gap, 28px)) !important;
    padding-left: max(16px, env(safe-area-inset-left)) !important;
    padding-right: max(16px, env(safe-area-inset-right)) !important;
  }

  html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-card {
    margin-bottom: max(12px, var(--tmp-gap-y-tablet, var(--tmp-gap-y, 12px))) !important;
  }
}

@media (max-width: 480px) {
  html body .tmp-portfolio[data-tmp-version="5.16.0"],
  html body .tmp-portfolio--category-flow[data-tmp-version="5.16.0"] {
    --tmp-active-cols: var(--tmp-cols-mobile, 2) !important;
    --tmp-columns: var(--tmp-cols-mobile, 2) !important;
    --tmp-cols-desktop: var(--tmp-cols-mobile, 2) !important;
    --tmp-gap-x-final: var(--tmp-gap-x-mobile, var(--tmp-gap-x, 14px)) !important;
    --tmp-gap-y-final: var(--tmp-gap-y-mobile, var(--tmp-gap-y, 12px)) !important;
    --tmp-row: var(--tmp-row-mobile, 8px) !important;
  }

  html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-grid,
  html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-grid--category-flow {
    column-count: var(--tmp-cols-mobile, 2) !important;
    -webkit-column-count: var(--tmp-cols-mobile, 2) !important;
    column-gap: max(12px, var(--tmp-gap-x-mobile, var(--tmp-gap-x, 14px))) !important;
    -webkit-column-gap: max(12px, var(--tmp-gap-x-mobile, var(--tmp-gap-x, 14px))) !important;
    padding-left: max(14px, env(safe-area-inset-left)) !important;
    padding-right: max(14px, env(safe-area-inset-right)) !important;
    padding-top: max(26px, var(--tmp-mobile-grid-top-gap, 30px)) !important;
  }

  html body .tmp-portfolio[data-tmp-version="5.16.0"] .tmp-card {
    margin-bottom: max(12px, var(--tmp-gap-y-mobile, var(--tmp-gap-y, 12px))) !important;
  }

  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="1"] .tmp-grid,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="1"] .tmp-grid--category-flow {
    column-count: 1 !important;
    -webkit-column-count: 1 !important;
  }
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="2"] .tmp-grid,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="2"] .tmp-grid--category-flow {
    column-count: 2 !important;
    -webkit-column-count: 2 !important;
  }
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="3"] .tmp-grid,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="3"] .tmp-grid--category-flow {
    column-count: 3 !important;
    -webkit-column-count: 3 !important;
  }
}

/* 2) Separación visual entre menú mobile y grilla. */
@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest[data-tmp-version="5.16.0"] .tmp-cat-topbar {
    margin: 0 -16px 24px !important;
    padding-top: 10px !important;
    padding-bottom: 4px !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.16.0"] .tmp-cat-topbar__brand-row {
    padding: 14px 18px 12px !important;
    border-bottom: 0 !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.16.0"] .tmp-cat-topbar__scroll {
    padding: 8px 16px 10px !important;
  }
}

/* 3) Quitar línea que separa el logo mobile. */
@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest[data-tmp-version="5.16.0"] .tmp-cat-topbar__logo {
    border-right: 0 !important;
    margin-right: 0 !important;
    padding-right: 8px !important;
  }
}

/* 4) Desktop: iconos perfectamente centrados en sidebar minimizado/expandido. */
@media (min-width: 901px) {
  html body .tmp-portfolio--pinterest[data-tmp-version="5.16.0"] .tmp-cat-sidebar__link {
    align-items: center !important;
  }
  html body .tmp-portfolio--pinterest[data-tmp-version="5.16.0"] .tmp-cat-sidebar__icon {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    line-height: 0 !important;
  }
  html body .tmp-portfolio--pinterest[data-tmp-version="5.16.0"] .tmp-cat-sidebar__icon svg,
  html body .tmp-portfolio--pinterest[data-tmp-version="5.16.0"] .tmp-cat-sidebar__icon img {
    margin: auto !important;
    display: block !important;
  }
}

/* 5) Modal: la imagen debe cubrir el espacio, no quedar contenida con bandas negras. */
html body .tmp-modal__media--gallery {
  background: #0a0a0a !important;
}
html body .tmp-modal__media--gallery > img,
html body .tmp-modal__media--gallery img[data-tmp-modal-main] {
  width: 100% !important;
  height: 100% !important;
  max-width: none !important;
  max-height: none !important;
  object-fit: cover !important;
  object-position: center center !important;
  display: block !important;
}

@media (min-width: 981px) {
  html body .tmp-modal__media--gallery {
    height: auto !important;
    min-height: min(74vh, 720px) !important;
    aspect-ratio: 4 / 5 !important;
  }
}

@media (max-width: 768px) {
  html body .tmp-modal {
    padding: 20px 10px !important;
  }
  html body .tmp-modal__dialog {
    width: calc(100vw - 20px) !important;
    max-height: calc(100vh - 40px) !important;
  }
  html body .tmp-modal__panel {
    max-height: calc(100vh - 40px) !important;
  }
  html body .tmp-modal__media,
  html body .tmp-modal__media--gallery {
    height: clamp(420px, 68vh, 620px) !important;
    max-height: none !important;
    min-height: 340px !important;
    aspect-ratio: auto !important;
  }
  html body .tmp-modal__media img,
  html body .tmp-modal__media--gallery img[data-tmp-modal-main] {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
  }
  html body .tmp-modal__body {
    padding-top: 28px !important;
  }
}

/* 6) Ajustes de altura de cards para mobile con 2/3 columnas, con más aire. */
@media (max-width: 480px) {
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="2"] .tmp-card--small .tmp-card__button,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="3"] .tmp-card--small .tmp-card__button { height: clamp(150px, 48vw, 260px) !important; }
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="2"] .tmp-card--normal .tmp-card__button,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="3"] .tmp-card--normal .tmp-card__button { height: clamp(180px, 58vw, 320px) !important; }
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="2"] .tmp-card--tall .tmp-card__button,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="3"] .tmp-card--tall .tmp-card__button { height: clamp(230px, 72vw, 420px) !important; }
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="2"] .tmp-card--wide .tmp-card__button,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="2"] .tmp-card--feature .tmp-card__button,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="3"] .tmp-card--wide .tmp-card__button,
  html body .tmp-portfolio[data-tmp-version="5.16.0"][data-tmp-cols-mobile="3"] .tmp-card--feature .tmp-card__button { height: clamp(165px, 52vw, 300px) !important; }
}


/* =========================================================
   TEHIA v5.17 — mobile menu compact + editable colors hard override
   ========================================================= */
html body .tmp-portfolio--pinterest .tmp-cat-topbar,
html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar {
  background: var(--tmp-topbar-bg, rgba(255,255,255,.92)) !important;
  border-bottom: 0 !important;
  box-shadow: none !important;
}

@media (max-width: 900px) {
  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar {
    margin: 0 -16px var(--tmp-mobile-grid-top-gap, 18px) !important;
    padding: 0 !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__brand-row {
    padding: var(--tmp-mobile-menu-compact-gap, 10px) 14px var(--tmp-mobile-menu-compact-gap, 10px) !important;
    min-height: 0 !important;
    gap: 14px !important;
    border: 0 !important;
    border-bottom: 0 !important;
    box-shadow: none !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__logo {
    border: 0 !important;
    border-right: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-height: 0 !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__logo::before,
  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__logo::after,
  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__brand-row::before,
  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__brand-row::after {
    display: none !important;
    content: none !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__custom {
    gap: 28px !important;
    padding: 0 !important;
    margin: 0 !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__custom-link {
    padding: 0 !important;
    min-height: 0 !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__scroll {
    background: var(--tmp-topbar-bg, rgba(255,255,255,.92)) !important;
    padding: calc(var(--tmp-mobile-menu-compact-gap, 10px) * .55) 16px calc(var(--tmp-mobile-menu-compact-gap, 10px) * .8) !important;
    gap: 18px !important;
    border: 0 !important;
    border-top: 0 !important;
    box-shadow: none !important;
    margin: 0 !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__link {
    background: var(--tmp-topbar-pill-bg, transparent) !important;
    color: var(--tmp-topbar-pill-color, #333) !important;
    border-color: var(--tmp-topbar-pill-border, transparent) !important;
    padding: 8px 0 !important;
    min-height: 0 !important;
    line-height: 1.1 !important;
    box-shadow: none !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__link svg {
    stroke: var(--tmp-topbar-pill-color, #333) !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__link.is-active {
    background: var(--tmp-topbar-active-bg, #111) !important;
    border-color: var(--tmp-topbar-active-bg, #111) !important;
    color: var(--tmp-topbar-active-color, #fff) !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-cat-topbar__link.is-active svg {
    stroke: var(--tmp-topbar-active-color, #fff) !important;
  }

  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-grid,
  html body .tmp-portfolio--pinterest[data-tmp-version="5.17.0"] .tmp-grid--category-flow {
    padding-top: var(--tmp-mobile-grid-top-gap, 18px) !important;
  }
}

/* Botón tienda/categoría en modal: editable desde variables previas y consistente. */
html body .tmp-modal__actions .tmp-modal__cta {
  background: var(--tmp-button-bg, #ffffff) !important;
  color: var(--tmp-button-color, #111111) !important;
}

/* Modal imagen: cubrir sin bandas, con mejor lectura en mobile. */
html body .tmp-modal__media--gallery,
html body .tmp-modal__media {
  overflow: hidden !important;
}
html body .tmp-modal__media--gallery img[data-tmp-modal-main],
html body .tmp-modal__media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: cover !important;
  object-position: center center !important;
}

/* ========================================================================
   v5.20 — Menú independiente + carrusel categoría con hover/modal
   ======================================================================== */
html body .tmp-menu-only{
  --tmp-icon-size:20px;
  position:relative!important;
  z-index:9990!important;
  min-height:0!important;
  pointer-events:none!important;
}
html body .tmp-menu-only .tmp-cat-sidebar,
html body .tmp-menu-only .tmp-cat-topbar{
  pointer-events:auto!important;
}
@media (min-width:768px){
  html body .tmp-menu-only{height:0!important;margin:0!important;padding:0!important;}
  html body .tmp-menu-only .tmp-cat-sidebar{
    position:fixed!important;
    left:24px!important;
    top:100px!important;
    z-index:9995!important;
  }
  html body .tmp-menu-only .tmp-cat-topbar{display:none!important;}
}
@media (max-width:767px){
  html body .tmp-menu-only{height:auto!important;margin:0!important;padding:0!important;}
  html body .tmp-menu-only .tmp-cat-sidebar{display:none!important;}
  html body .tmp-menu-only .tmp-cat-topbar{
    display:block!important;
    position:sticky!important;
    top:0!important;
    left:0!important;
    right:0!important;
    width:100%!important;
    z-index:9995!important;
    border-bottom:1px solid rgba(0,0,0,.08)!important;
    box-shadow:0 8px 28px rgba(0,0,0,.06)!important;
  }
  body.admin-bar html body .tmp-menu-only .tmp-cat-topbar,
  body.admin-bar .tmp-menu-only .tmp-cat-topbar{top:46px!important;}
  html body .tmp-menu-only .tmp-cat-topbar__brand-row{padding:14px 14px 10px!important;gap:12px!important;}
  html body .tmp-menu-only .tmp-cat-topbar__custom{gap:22px!important;}
  html body .tmp-menu-only .tmp-cat-topbar__scroll{padding:8px 14px 12px!important;gap:10px!important;}
}

html body .tmp-cat-carousel--modal .tmp-car-track{align-items:stretch!important;}
html body .tmp-cat-carousel--modal .tmp-car-item--product{
  min-width:min(380px,78vw)!important;
  min-height:480px!important;
  border-radius:28px!important;
  overflow:hidden!important;
  isolation:isolate!important;
  cursor:pointer!important;
  transition:transform .48s cubic-bezier(.16,1,.3,1), filter .35s ease, opacity .35s ease!important;
}
html body .tmp-cat-carousel--modal .tmp-car-card-btn{
  appearance:none!important;border:0!important;margin:0!important;padding:0!important;
  width:100%!important;height:100%!important;min-height:480px!important;
  display:block!important;position:relative!important;overflow:hidden!important;
  border-radius:28px!important;background:#111!important;color:#fff!important;cursor:pointer!important;text-align:left!important;
}
html body .tmp-cat-carousel--modal .tmp-car-card-img{
  position:absolute!important;inset:0!important;background:center/cover no-repeat!important;
  transform:scale(1.001)!important;
  transition:transform .62s cubic-bezier(.16,1,.3,1), filter .35s ease!important;
}
html body .tmp-cat-carousel--modal .tmp-car-card-overlay{
  position:absolute!important;inset:0!important;z-index:1!important;
  background:linear-gradient(to top,rgba(0,0,0,.74),rgba(0,0,0,.10) 58%,rgba(0,0,0,0))!important;
  opacity:.75!important;transition:opacity .35s ease!important;
}
html body .tmp-cat-carousel--modal .tmp-car-card-copy{
  position:absolute!important;left:24px!important;right:22px!important;bottom:24px!important;z-index:2!important;
  transform:translateY(12px)!important;transition:transform .35s ease!important;
}
html body .tmp-cat-carousel--modal .tmp-car-card-copy em{
  display:block!important;font-style:normal!important;text-transform:uppercase!important;letter-spacing:.14em!important;
  font-size:13px!important;font-weight:900!important;margin-bottom:8px!important;color:rgba(255,255,255,.72)!important;
}
html body .tmp-cat-carousel--modal .tmp-car-card-copy strong{
  display:block!important;font-size:clamp(24px,3vw,36px)!important;line-height:.96!important;font-weight:900!important;letter-spacing:-.045em!important;color:#fff!important;
}
html body .tmp-cat-carousel--modal .tmp-car-card-copy small{
  display:block!important;margin-top:10px!important;font-size:15px!important;line-height:1.25!important;font-weight:700!important;color:rgba(255,255,255,.78)!important;
}
html body .tmp-cat-carousel--modal .tmp-car-item--product:hover,
html body .tmp-cat-carousel--modal .tmp-car-item--product:focus-within{transform:translateY(-8px) scale(1.035)!important;z-index:4!important;}
html body .tmp-cat-carousel--modal .tmp-car-item--product:hover .tmp-car-card-img,
html body .tmp-cat-carousel--modal .tmp-car-item--product:focus-within .tmp-car-card-img{transform:scale(1.12)!important;filter:saturate(1.04)!important;}
html body .tmp-cat-carousel--modal .tmp-car-item--product:hover .tmp-car-card-overlay{opacity:1!important;}
html body .tmp-cat-carousel--modal .tmp-car-item--product:hover .tmp-car-card-copy{transform:none!important;}
html body .tmp-cat-carousel--modal .tmp-car-arrow{
  width:48px!important;height:48px!important;border-radius:999px!important;background:rgba(0,0,0,.36)!important;color:#fff!important;
  display:flex!important;align-items:center!important;justify-content:center!important;font-size:34px!important;line-height:1!important;
  backdrop-filter:blur(8px)!important;border:1px solid rgba(255,255,255,.18)!important;
}
@media(max-width:640px){
  html body .tmp-cat-carousel--modal{padding:54px 18px 80px!important;}
  html body .tmp-cat-carousel--modal .tmp-car-track{gap:18px!important;}
  html body .tmp-cat-carousel--modal .tmp-car-item--product{min-width:82vw!important;min-height:420px!important;border-radius:22px!important;}
  html body .tmp-cat-carousel--modal .tmp-car-card-btn{min-height:420px!important;border-radius:22px!important;}
}

/* =========================================================
   Tehia v5.21 — Carrusel de categoría con estética idéntica
   a la grilla: hover editorial + modal unificado.
   No modifica la grilla principal.
   ========================================================= */
.tmp-cat-carousel--modal {
  --tmp-car-hover-scale: var(--tmp-hover-scale, 1.045);
  --tmp-car-radius: 22px;
  --tmp-car-overlay: linear-gradient(180deg, rgba(0,0,0,.02) 0%, rgba(0,0,0,.18) 42%, rgba(0,0,0,.78) 100%);
}

.tmp-cat-carousel--modal .tmp-car-track {
  align-items: stretch;
  gap: clamp(16px, 2.2vw, 28px);
  scroll-padding-inline: clamp(16px, 4vw, 48px);
}

.tmp-cat-carousel--modal .tmp-car-item--product {
  position: relative;
  flex: 0 0 clamp(240px, 28vw, 390px);
  min-height: clamp(330px, 43vw, 520px);
  opacity: 0;
  transform: translateY(28px);
  transition:
    opacity .55s cubic-bezier(.16,1,.3,1),
    transform .55s cubic-bezier(.16,1,.3,1),
    filter .45s cubic-bezier(.16,1,.3,1);
}

.tmp-cat-carousel--modal .tmp-car-item--product.is-visible {
  opacity: 1;
  transform: translateY(0);
}

.tmp-cat-carousel--modal .tmp-car-card-btn {
  position: relative;
  display: block;
  width: 100%;
  min-height: inherit;
  height: 100%;
  padding: 0;
  border: 0;
  border-radius: var(--tmp-car-radius);
  overflow: hidden;
  background: #111;
  color: #fff;
  text-align: left;
  cursor: pointer;
  box-shadow: 0 22px 70px rgba(0,0,0,.24);
  transform: translateY(0) scale(1);
  transform-origin: center center;
  transition:
    transform .55s cubic-bezier(.16,1,.3,1),
    box-shadow .55s cubic-bezier(.16,1,.3,1),
    filter .45s cubic-bezier(.16,1,.3,1);
}

.tmp-cat-carousel--modal .tmp-car-card-btn:focus-visible {
  outline: 2px solid currentColor;
  outline-offset: 5px;
}

.tmp-cat-carousel--modal .tmp-car-card-img {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  transform: scale(1.02);
  transition: transform .8s cubic-bezier(.16,1,.3,1), filter .55s cubic-bezier(.16,1,.3,1);
}

.tmp-cat-carousel--modal .tmp-car-card-overlay {
  position: absolute;
  inset: 0;
  background: var(--tmp-car-overlay);
  opacity: .86;
  transition: opacity .45s cubic-bezier(.16,1,.3,1), background .45s cubic-bezier(.16,1,.3,1);
}

.tmp-cat-carousel--modal .tmp-car-card-copy {
  position: absolute;
  left: clamp(18px, 2vw, 28px);
  right: clamp(18px, 2vw, 28px);
  bottom: clamp(18px, 2vw, 30px);
  z-index: 2;
  display: flex;
  flex-direction: column;
  gap: 7px;
  opacity: .96;
  transform: translateY(12px);
  transition: opacity .45s cubic-bezier(.16,1,.3,1), transform .45s cubic-bezier(.16,1,.3,1);
}

.tmp-cat-carousel--modal .tmp-car-card-copy em {
  font-style: normal;
  font-size: 11px;
  line-height: 1;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .78;
}

.tmp-cat-carousel--modal .tmp-car-card-copy strong {
  font-size: clamp(22px, 2.4vw, 38px);
  line-height: .96;
  letter-spacing: -.055em;
  font-weight: 500;
}

.tmp-cat-carousel--modal .tmp-car-card-copy small {
  max-width: 30em;
  font-size: clamp(12px, .95vw, 14px);
  line-height: 1.35;
  opacity: .84;
}

.tmp-cat-carousel--modal .tmp-car-track.is-hovering .tmp-car-item--product:not(.is-hovered):not(:hover):not(:focus-within) {
  opacity: .54;
  filter: saturate(.78) brightness(.74);
}

.tmp-cat-carousel--modal .tmp-car-item--product:hover,
.tmp-cat-carousel--modal .tmp-car-item--product:focus-within,
.tmp-cat-carousel--modal .tmp-car-item--product.is-hovered {
  z-index: 5;
}

.tmp-cat-carousel--modal .tmp-car-item--product:hover .tmp-car-card-btn,
.tmp-cat-carousel--modal .tmp-car-item--product:focus-within .tmp-car-card-btn,
.tmp-cat-carousel--modal .tmp-car-item--product.is-hovered .tmp-car-card-btn {
  transform: translateY(-10px) scale(var(--tmp-car-hover-scale));
  box-shadow: 0 46px 115px rgba(0,0,0,.42);
}

.tmp-cat-carousel--modal .tmp-car-item--product:hover .tmp-car-card-img,
.tmp-cat-carousel--modal .tmp-car-item--product:focus-within .tmp-car-card-img,
.tmp-cat-carousel--modal .tmp-car-item--product.is-hovered .tmp-car-card-img {
  transform: scale(1.13);
}

.tmp-cat-carousel--modal .tmp-car-item--product:hover .tmp-car-card-copy,
.tmp-cat-carousel--modal .tmp-car-item--product:focus-within .tmp-car-card-copy,
.tmp-cat-carousel--modal .tmp-car-item--product.is-hovered .tmp-car-card-copy {
  opacity: 1;
  transform: translateY(0);
}

.tmp-cat-carousel--modal .tmp-car-arrow {
  z-index: 8;
}

/* Modal PRO alineado visualmente con el modal de la grilla */
.tmp-modal-pro[aria-hidden="true"] {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}

.tmp-modal-pro[aria-hidden="false"] {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
}

.tmp-modal-pro {
  position: fixed;
  inset: 0;
  z-index: 99999;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: clamp(16px, 4vw, 48px);
  transition: opacity .28s ease, visibility .28s ease;
}

.tmp-modal-pro__shade {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,.74);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

.tmp-modal-pro__dialog {
  position: relative;
  z-index: 2;
  width: min(1180px, 96vw);
  max-height: min(88vh, 880px);
  overflow: hidden;
  border-radius: clamp(20px, 2.2vw, 34px);
  background: #fff;
  color: #111;
  box-shadow: 0 46px 150px rgba(0,0,0,.48);
}

.tmp-modal-pro__inner {
  display: grid;
  grid-template-columns: minmax(0, 1.02fr) minmax(360px, .98fr);
  min-height: min(76vh, 720px);
}

.tmp-modal-pro__image {
  position: relative;
  min-height: 520px;
  background: #111;
  overflow: hidden;
}

.tmp-modal-pro__image img {
  width: 100%;
  height: 100%;
  min-height: inherit;
  object-fit: cover;
  object-position: center;
  display: block;
}

.tmp-modal-pro__body {
  padding: clamp(28px, 4vw, 58px);
  overflow: auto;
}

.tmp-modal-pro__body h3 {
  margin: 0 0 16px;
  font-size: clamp(34px, 4.4vw, 74px);
  line-height: .88;
  letter-spacing: -.075em;
  font-weight: 400;
}

.tmp-modal-pro__specs {
  display: grid;
  grid-template-columns: minmax(82px, .24fr) minmax(0, 1fr);
  gap: 9px 18px;
  margin: 22px 0;
  padding: 18px 0;
  border-top: 1px solid rgba(0,0,0,.12);
  border-bottom: 1px solid rgba(0,0,0,.12);
}

.tmp-modal-pro__specs b {
  font-size: 10px;
  line-height: 1.2;
  letter-spacing: .12em;
  text-transform: uppercase;
  opacity: .58;
}

.tmp-modal-pro__specs span,
.tmp-modal-pro__text {
  font-size: 14px;
  line-height: 1.55;
}

.tmp-modal-pro__thumbs {
  display: flex;
  gap: 10px;
  margin-top: 24px;
  padding-bottom: 3px;
  overflow-x: auto;
}

.tmp-modal-pro__thumbs button {
  width: 82px;
  height: 62px;
  flex: 0 0 82px;
  border: 2px solid transparent;
  border-radius: 14px;
  overflow: hidden;
  padding: 0;
  background: #eee;
  cursor: pointer;
  opacity: .68;
}

.tmp-modal-pro__thumbs button.is-active {
  border-color: #111;
  opacity: 1;
}

.tmp-modal-pro__thumbs img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}

.tmp-modal-pro__cta {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-top: 18px;
  min-height: 44px;
  padding: 0 18px;
  border: 1px solid currentColor;
  border-radius: 999px;
  color: #111;
  text-decoration: none;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}

.tmp-modal-pro__close {
  position: absolute;
  top: 16px;
  right: 16px;
  z-index: 4;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  background: rgba(0,0,0,.78);
  color: #fff;
  font-size: 24px;
  line-height: 1;
  cursor: pointer;
}

@media (max-width: 767px) {
  .tmp-cat-carousel--modal .tmp-car-track {
    gap: 16px;
  }
  .tmp-cat-carousel--modal .tmp-car-item--product {
    flex-basis: min(76vw, 310px);
    min-height: 390px;
  }
  .tmp-cat-carousel--modal .tmp-car-item--product:hover .tmp-car-card-btn,
  .tmp-cat-carousel--modal .tmp-car-item--product:focus-within .tmp-car-card-btn,
  .tmp-cat-carousel--modal .tmp-car-item--product.is-hovered .tmp-car-card-btn {
    transform: translateY(-4px) scale(1.015);
  }
  .tmp-modal-pro {
    padding: 12px;
    align-items: flex-end;
  }
  .tmp-modal-pro__dialog {
    width: 100%;
    max-height: 92vh;
    border-radius: 24px 24px 0 0;
    overflow: auto;
  }
  .tmp-modal-pro__inner {
    display: block;
    min-height: 0;
  }
  .tmp-modal-pro__image {
    min-height: 42vh;
    height: 42vh;
  }
  .tmp-modal-pro__body {
    padding: 24px 18px 26px;
  }
  .tmp-modal-pro__body h3 {
    font-size: clamp(34px, 13vw, 52px);
    line-height: .92;
  }
}
.tmp-modal-pro__kicker {
  margin: 0 0 14px;
  font-size: 11px;
  line-height: 1;
  letter-spacing: .14em;
  text-transform: uppercase;
  opacity: .58;
  font-weight: 700;
}

/* ===== v5.22 CAROUSEL PRO UNIFICADO CON GRILLA ===== */
html body .tmp-cat-carousel--pro{
  position:relative!important;
  overflow:hidden!important;
  font-family:Inter,Montserrat,Arial,sans-serif!important;
}
html body .tmp-cat-carousel--pro .tmp-cat-title{
  text-align:center!important;
  font-weight:900!important;
  letter-spacing:-.065em!important;
  line-height:.86!important;
  margin:0 0 44px!important;
  font-size:clamp(52px,7.2vw,118px)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-track{
  display:flex!important;
  align-items:stretch!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
  scroll-snap-type:x mandatory!important;
  scroll-behavior:smooth!important;
  padding:14px 0 26px!important;
  -webkit-overflow-scrolling:touch!important;
}
html body .tmp-cat-carousel--pro .tmp-car-track::-webkit-scrollbar{height:0!important;display:none!important;}
html body .tmp-cat-carousel--pro .tmp-car-item--product{
  position:relative!important;
  flex:0 0 auto!important;
  scroll-snap-align:center!important;
  transition:transform .36s cubic-bezier(.2,.8,.2,1), opacity .36s ease, filter .36s ease!important;
  will-change:transform,opacity!important;
  opacity:1!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-btn{
  position:relative!important;
  width:100%!important;
  display:block!important;
  overflow:hidden!important;
  border:0!important;
  padding:0!important;
  cursor:pointer!important;
  color:inherit!important;
  text-align:left!important;
  box-shadow:0 18px 50px rgba(0,0,0,.22)!important;
  transform:translateZ(0)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-img{
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  display:block!important;
  background-size:cover!important;
  background-position:center!important;
  transition:transform .55s cubic-bezier(.2,.8,.2,1), filter .45s ease!important;
  opacity:1!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-img img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
  opacity:1!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-overlay{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  transition:opacity .35s ease!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-copy{
  position:absolute!important;
  left:clamp(18px,2vw,32px)!important;
  right:clamp(18px,2vw,32px)!important;
  bottom:clamp(18px,2vw,30px)!important;
  z-index:2!important;
  display:block!important;
  opacity:1!important;
  transform:none!important;
  transition:transform .35s ease, opacity .35s ease!important;
  text-shadow:0 8px 32px rgba(0,0,0,.45)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-copy em,
html body .tmp-cat-carousel--pro .tmp-car-card-code{
  display:block!important;
  font-style:normal!important;
  text-transform:uppercase!important;
  letter-spacing:.18em!important;
  font-size:clamp(12px,.9vw,17px)!important;
  line-height:1.1!important;
  font-weight:800!important;
  opacity:.78!important;
  margin-bottom:9px!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-code{position:absolute!important;right:0!important;top:-4px!important;margin:0!important;}
html body .tmp-cat-carousel--pro .tmp-car-card-copy strong{
  display:block!important;
  font-size:clamp(28px,2.6vw,56px)!important;
  line-height:.92!important;
  letter-spacing:-.065em!important;
  font-weight:900!important;
  max-width:92%!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-copy small{
  display:block!important;
  margin-top:12px!important;
  font-size:clamp(14px,1.05vw,20px)!important;
  line-height:1.22!important;
  font-weight:750!important;
  opacity:.86!important;
  max-width:98%!important;
}
html body .tmp-cat-carousel--pro.tmp-cat-carousel--dim-others .tmp-car-track.is-hovering .tmp-car-item--product:not(.is-hovered):not(:hover):not(:focus-within){
  opacity:.36!important;
  filter:saturate(.7)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered{
  transform:translateY(calc(var(--tmp-car-hover-lift,8px) * -1)) scale(1.035)!important;
  z-index:10!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover .tmp-car-card-img,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within .tmp-car-card-img,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-img{
  transform:scale(var(--tmp-car-hover-zoom,1.12))!important;
  filter:saturate(1.08) contrast(1.02)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover .tmp-car-card-copy,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within .tmp-car-card-copy,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-copy{
  transform:translateY(-4px)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-arrow{
  position:absolute!important;
  top:56%!important;
  transform:translateY(-50%)!important;
  z-index:20!important;
  border:1px solid!important;
  border-radius:999px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  cursor:pointer!important;
  font-size:0!important;
  backdrop-filter:blur(14px)!important;
  transition:transform .25s ease, opacity .25s ease, background .25s ease!important;
}
html body .tmp-cat-carousel--pro .tmp-car-arrow:hover{transform:translateY(-50%) scale(1.06)!important;}
html body .tmp-cat-carousel--pro .tmp-car-arrow.prev{left:18px!important;}
html body .tmp-cat-carousel--pro .tmp-car-arrow.next{right:18px!important;}
html body .tmp-cat-carousel--pro .tmp-car-arrow span{display:block!important;width:12px!important;height:12px!important;border-left:2px solid currentColor!important;border-bottom:2px solid currentColor!important;}
html body .tmp-cat-carousel--pro .tmp-car-arrow.prev span{transform:rotate(45deg)!important;margin-left:4px!important;}
html body .tmp-cat-carousel--pro .tmp-car-arrow.next span{transform:rotate(225deg)!important;margin-right:4px!important;}

/* Modal PRO del carrusel: mismo lenguaje visual, siempre legible */
html body .tmp-cat-carousel--pro .tmp-modal-pro__shade{background:rgba(0,0,0,.82)!important;backdrop-filter:blur(6px)!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{padding:clamp(18px,3vw,46px)!important;align-items:center!important;justify-content:center!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner{
  width:min(1540px,94vw)!important;
  max-height:min(880px,88vh)!important;
  display:grid!important;
  grid-template-columns:minmax(340px,1.03fr) minmax(360px,.97fr)!important;
  gap:0!important;
  overflow:hidden!important;
  box-shadow:0 30px 110px rgba(0,0,0,.52)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__image{height:100%!important;min-height:620px!important;aspect-ratio:auto!important;background:#111!important;overflow:hidden!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__image img{width:100%!important;height:100%!important;object-position:center!important;display:block!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body{padding:clamp(34px,4.8vw,78px)!important;overflow:auto!important;max-height:88vh!important;background:inherit!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__kicker{font-size:13px!important;letter-spacing:.18em!important;text-transform:uppercase!important;font-weight:850!important;opacity:.72!important;margin-bottom:18px!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body h3{font-size:clamp(42px,4.2vw,78px)!important;line-height:.88!important;letter-spacing:-.07em!important;text-transform:none!important;margin:0 0 24px!important;font-weight:850!important;color:inherit!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs{display:block!important;margin:0 0 26px!important;padding:20px 22px!important;border-radius:18px!important;background:rgba(255,255,255,.12)!important;font-size:16px!important;line-height:1.35!important;font-weight:700!important;color:inherit!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs b{display:inline!important;text-transform:none!important;font-weight:900!important;margin-right:6px!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs span{display:block!important;margin:0 0 8px!important;opacity:.9!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__text{font-size:18px!important;line-height:1.52!important;max-width:640px!important;margin:24px 0!important;opacity:.9!important;color:inherit!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__cta{display:inline-flex!important;align-items:center!important;justify-content:center!important;text-decoration:none!important;border-radius:999px!important;padding:15px 26px!important;font-size:14px!important;line-height:1!important;letter-spacing:.08em!important;text-transform:uppercase!important;font-weight:900!important;margin:12px 0 30px!important;border:1px solid currentColor!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs{display:flex!important;gap:14px!important;margin-top:6px!important;overflow:auto!important;padding-bottom:4px!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs button{width:86px!important;height:64px!important;flex:0 0 86px!important;border:1px solid rgba(255,255,255,.25)!important;border-radius:12px!important;overflow:hidden!important;background:transparent!important;padding:0!important;opacity:.62!important;cursor:pointer!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs button.is-active{opacity:1!important;outline:2px solid currentColor!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__close{right:clamp(20px,3vw,42px)!important;top:clamp(18px,2vw,34px)!important;width:56px!important;height:56px!important;border-radius:50%!important;background:rgba(0,0,0,.68)!important;color:#fff!important;font-size:34px!important;line-height:1!important;display:flex!important;align-items:center!important;justify-content:center!important;border:1px solid rgba(255,255,255,.18)!important;}
@media (max-width: 767px){
  html body .tmp-cat-carousel--pro .tmp-cat-title{font-size:clamp(46px,17vw,86px)!important;margin-bottom:24px!important;}
  html body .tmp-cat-carousel--pro .tmp-car-arrow{width:46px!important;height:46px!important;}
  html body .tmp-cat-carousel--pro .tmp-car-arrow.prev{left:8px!important;}
  html body .tmp-cat-carousel--pro .tmp-car-arrow.next{right:8px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{padding:12px!important;align-items:flex-start!important;overflow:auto!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner{display:block!important;width:100%!important;max-height:none!important;border-radius:24px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__image{min-height:0!important;height:auto!important;aspect-ratio:4/5!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__body{padding:28px 24px 34px!important;max-height:none!important;overflow:visible!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__body h3{font-size:clamp(40px,13vw,68px)!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__text{font-size:17px!important;}
}


/* v5.23 — carrusel editable en vivo + modal preview en Elementor */
html body .tmp-cat-carousel--pro .tmp-car-track{gap:var(--tmp-car-gap,32px)!important;}
html body .tmp-cat-carousel--pro .tmp-car-item--product{min-width:var(--tmp-car-card-w,360px)!important;flex:0 0 var(--tmp-car-card-w,360px)!important;}
html body .tmp-cat-carousel--pro .tmp-car-card-btn{height:var(--tmp-car-card-h,520px)!important;min-height:var(--tmp-car-card-h,520px)!important;}
html body .tmp-cat-carousel--pro .tmp-car-card-img{background-size:cover!important;background-position:center!important;}
html body .tmp-cat-carousel--pro .tmp-car-card-img img{opacity:1!important;visibility:visible!important;width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview{position:absolute!important;inset:0!important;z-index:50!important;display:block!important;pointer-events:auto!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal-pro__shade{position:absolute!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal-pro__dialog{position:relative!important;min-height:720px!important;}
html body.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview{outline:2px dashed rgba(255,255,255,.35)!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner{background:var(--tmp-modal-bg,inherit)!important;color:var(--tmp-modal-text,inherit)!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body h3{overflow:visible!important;white-space:normal!important;}
@media (max-width: 767px){
  html body .tmp-cat-carousel--pro .tmp-car-item--product{min-width:min(var(--tmp-car-card-w,78vw),88vw)!important;flex-basis:min(var(--tmp-car-card-w,78vw),88vw)!important;}
}

/* v5.24 — Carrusel PRO: modal igual al lenguaje de la grilla, editable en Elementor y con galería bajo la imagen */
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner{
  background:var(--tmp-modal-bg,#000)!important;
  color:var(--tmp-modal-text,#fff)!important;
  border-radius:var(--tmp-modal-radius,32px)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{
  width:min(1560px,94vw)!important;
  height:auto!important;
  max-height:calc(100vh - 56px)!important;
  display:grid!important;
  grid-template-columns:minmax(360px,1.02fr) minmax(360px,.98fr)!important;
  gap:0!important;
  overflow:hidden!important;
  align-items:stretch!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual{
  min-height:0!important;
  height:auto!important;
  display:flex!important;
  flex-direction:column!important;
  background:#050505!important;
  overflow:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image{
  height:auto!important;
  min-height:0!important;
  flex:1 1 auto!important;
  aspect-ratio:4/5!important;
  max-height:calc(100vh - 190px)!important;
  background:#080808!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__thumbs{
  flex:0 0 auto!important;
  display:flex!important;
  gap:14px!important;
  margin:0!important;
  padding:18px 20px 20px!important;
  background:rgba(0,0,0,.86)!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body{
  padding:clamp(34px,4.2vw,76px)!important;
  max-height:calc(100vh - 56px)!important;
  overflow:auto!important;
  background:inherit!important;
  color:inherit!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body h3{
  color:inherit!important;
  margin:0 0 clamp(18px,2.2vw,34px)!important;
  overflow:visible!important;
  white-space:normal!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs{
  background:rgba(255,255,255,.12)!important;
  color:inherit!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__cta{
  background:var(--tmp-modal-cta-bg,#fff)!important;
  color:var(--tmp-modal-cta-color,#000)!important;
  border-color:currentColor!important;
  text-decoration:none!important;
  width:max-content!important;
  max-width:100%!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__cta:after{
  content:'→';
  display:inline-block;
  margin-left:12px;
  transition:transform .2s ease;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__cta:hover:after{transform:translateX(4px);}
html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs button{
  width:92px!important;
  height:68px!important;
  flex:0 0 92px!important;
  border-radius:14px!important;
  border:1px solid rgba(255,255,255,.3)!important;
  overflow:hidden!important;
  background:transparent!important;
  padding:0!important;
  opacity:.64!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs button.is-active{
  opacity:1!important;
  outline:2px solid currentColor!important;
  outline-offset:2px!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview{
  position:absolute!important;
  inset:0!important;
  min-height:760px!important;
  z-index:60!important;
  display:block!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal-pro__dialog{
  position:absolute!important;
  inset:0!important;
  min-height:760px!important;
}
@media(max-width:1024px){
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{
    grid-template-columns:1fr!important;
    max-height:none!important;
    overflow:visible!important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{align-items:flex-start!important;overflow:auto!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__body{max-height:none!important;overflow:visible!important;justify-content:flex-start!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image{max-height:none!important;aspect-ratio:4/5!important;}
}
@media(max-width:767px){
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{padding:10px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{width:100%!important;border-radius:24px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__body{padding:26px 22px 32px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__thumbs{padding:14px 14px 16px!important;gap:10px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs button{width:74px!important;height:54px!important;flex-basis:74px!important;}
}

/* v5.24 — footer reveal como widget separado para Theme Builder */
html body .tmp-footer-reveal{
  transform:translateY(115%)!important;
  opacity:.98!important;
  transition:transform .45s cubic-bezier(.2,.8,.2,1), opacity .25s ease!important;
  box-shadow:0 -18px 70px rgba(0,0,0,.25)!important;
  align-items:center!important;
  justify-content:center!important;
}
html body .tmp-footer-reveal.is-visible{transform:translateY(0)!important;}
html body.elementor-editor-active .tmp-footer-reveal{position:relative!important;transform:none!important;z-index:1!important;}

/* v5.25 — Theia footer reveal final: no toca grilla/carrusel */
html body .tmp-footer-reveal.tmp-footer-reveal--theia{
  position:fixed!important;left:0!important;right:0!important;bottom:0!important;z-index:80!important;
  display:block!important;width:100%!important;padding:0!important;margin:0!important;
  transform:translateY(112%)!important;transition:transform .55s cubic-bezier(.22,.9,.22,1)!important;
  font-family:Inter,Montserrat,Arial,sans-serif!important;line-height:1.08!important;color:#000;
  background:transparent!important;overflow:hidden!important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.is-visible{transform:translateY(0)!important;}
html body.elementor-editor-active .tmp-footer-reveal.tmp-footer-reveal--theia{position:relative!important;transform:none!important;z-index:1!important;}
html body .tmp-footer-reveal--theia *{box-sizing:border-box!important;}
html body .tmp-footer-reveal--theia a{color:inherit!important;text-decoration:none!important;}
html body .tmp-footer-reveal__top{
  display:grid!important;grid-template-columns:minmax(210px,1.05fr) minmax(320px,1.45fr) minmax(160px,.72fr) minmax(260px,1.25fr)!important;
  gap:clamp(26px,4vw,76px)!important;align-items:start!important;background:#fff;color:#000;
  border-top:1px solid rgba(0,0,0,.18)!important;
}
html body .tmp-footer-brand img{display:block!important;width:100%!important;height:auto!important;max-width:100%!important;}
html body .tmp-footer-brand__fallback{display:flex!important;align-items:center!important;gap:22px!important;}
html body .tmp-footer-symbol{display:block!important;width:78px!important;height:78px!important;border-radius:50%!important;background:#000!important;position:relative!important;flex:0 0 auto!important;}
html body .tmp-footer-symbol:before{content:""!important;position:absolute!important;left:-7px!important;right:-7px!important;top:50%!important;height:18px!important;transform:translateY(-50%)!important;background:#fff!important;}
html body .tmp-footer-symbol:after{content:""!important;position:absolute!important;left:50%!important;top:50%!important;width:34px!important;height:34px!important;border-radius:50%!important;background:#fff!important;transform:translate(-50%,-50%)!important;}
html body .tmp-footer-brand__fallback strong{display:block!important;font-size:clamp(44px,4.5vw,78px)!important;line-height:.82!important;font-weight:900!important;letter-spacing:-.055em!important;color:inherit!important;}
html body .tmp-footer-brand__fallback small{display:block!important;margin-top:8px!important;font-size:13px!important;font-weight:900!important;letter-spacing:.08em!important;color:inherit!important;}
html body .tmp-footer-locations{display:flex!important;flex-direction:column!important;gap:28px!important;font-size:18px!important;font-weight:800!important;}
html body .tmp-footer-place strong{display:block!important;font-size:18px!important;font-weight:950!important;margin:0 0 4px!important;color:inherit!important;}
html body .tmp-footer-place p{margin:0!important;font-size:18px!important;line-height:1.12!important;font-weight:800!important;color:inherit!important;}
html body .tmp-footer-place a{display:inline-block!important;margin-top:4px!important;text-decoration:underline!important;text-underline-offset:3px!important;font-weight:950!important;color:inherit!important;}
html body .tmp-footer-nav{display:flex!important;flex-direction:column!important;gap:3px!important;font-size:18px!important;font-weight:950!important;}
html body .tmp-footer-nav a{display:block!important;width:max-content!important;max-width:100%!important;color:inherit!important;font-weight:950!important;line-height:1.05!important;}
html body .tmp-footer-contact{display:flex!important;flex-direction:column!important;gap:22px!important;font-size:18px!important;font-weight:800!important;}
html body .tmp-footer-contact a{display:flex!important;align-items:center!important;gap:12px!important;color:inherit!important;line-height:1.05!important;}
html body .tmp-footer-contact span{width:24px!important;min-width:24px!important;height:24px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;font-size:24px!important;line-height:1!important;font-weight:600!important;color:inherit!important;}
html body .tmp-footer-reveal__bottom{
  display:grid!important;grid-template-columns:1.35fr .9fr 1fr 1fr!important;gap:36px!important;align-items:center!important;
  background:#000;color:#fff;font-size:18px!important;font-weight:950!important;
}
html body .tmp-footer-reveal__bottom a,html body .tmp-footer-reveal__bottom div{color:inherit!important;font-weight:950!important;line-height:1.1!important;}
@media(max-width:1024px){
  html body .tmp-footer-reveal__top{grid-template-columns:1fr 1.2fr!important;gap:28px!important;}
  html body .tmp-footer-nav{grid-column:1/2!important;}
  html body .tmp-footer-contact{grid-column:2/3!important;}
  html body .tmp-footer-reveal__bottom{grid-template-columns:1fr 1fr!important;gap:16px 28px!important;}
}
@media(max-width:767px){
  html body .tmp-footer-reveal.tmp-footer-reveal--theia{max-height:80vh!important;overflow:auto!important;-webkit-overflow-scrolling:touch!important;}
  html body .tmp-footer-reveal__top{grid-template-columns:1fr!important;gap:22px!important;padding:30px 22px!important;}
  html body .tmp-footer-brand{max-width:230px!important;}
  html body .tmp-footer-brand__fallback strong{font-size:48px!important;}
  html body .tmp-footer-symbol{width:58px!important;height:58px!important;}
  html body .tmp-footer-locations,html body .tmp-footer-place p,html body .tmp-footer-place strong,html body .tmp-footer-nav,html body .tmp-footer-contact{font-size:16px!important;}
  html body .tmp-footer-contact{gap:14px!important;}
  html body .tmp-footer-reveal__bottom{grid-template-columns:1fr!important;padding:22px!important;font-size:15px!important;gap:18px!important;}
}


/* ========================================================================
   v5.26 — Archive title automático + menú independiente visible en archives
   ======================================================================== */
html body .tmp-cat-carousel--pro .tmp-cat-title {
  text-transform: none;
}
html body .tmp-menu-only.tmp-menu-only--standalone,
html body .tmp-menu-only.tmp-menu-only--standalone * {
  box-sizing: border-box;
}
html body .tmp-menu-only.tmp-menu-only--standalone {
  display: block !important;
  visibility: visible !important;
  opacity: 1 !important;
  position: relative !important;
  z-index: 99990 !important;
  font-family: Inter, Montserrat, Arial, sans-serif;
}
html body .tmp-menu-only__logo-fallback {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
}
html body .tmp-menu-only__mark {
  width: 52px;
  height: 52px;
  border-radius: 999px;
  background: currentColor;
  color: #000;
  display: inline-block;
  position: relative;
  -webkit-mask: radial-gradient(circle at center, transparent 0 31%, #000 32% 100%);
          mask: radial-gradient(circle at center, transparent 0 31%, #000 32% 100%);
}
html body .tmp-menu-only__mark::before {
  content: "";
  position: absolute;
  left: -10%;
  right: -10%;
  top: 43%;
  height: 14%;
  background: #fff;
}
@media (min-width: 768px) {
  html body .tmp-menu-only.tmp-menu-only--standalone {
    height: 0 !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-topbar {
    display: none !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-sidebar {
    display: flex !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: fixed !important;
    left: 24px !important;
    top: 96px !important;
    z-index: 99991 !important;
  }
  html body.admin-bar .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-sidebar {
    top: 128px !important;
  }
}
@media (max-width: 767px) {
  html body .tmp-menu-only.tmp-menu-only--standalone {
    height: auto !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: visible !important;
    pointer-events: none !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-sidebar {
    display: none !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-topbar {
    display: block !important;
    visibility: visible !important;
    opacity: 1 !important;
    pointer-events: auto !important;
    position: sticky !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    z-index: 99991 !important;
  }
  body.admin-bar .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-topbar {
    top: 46px !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-topbar__brand-row {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 14px 16px 8px !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-topbar__custom {
    display: flex !important;
    justify-content: center !important;
    gap: 22px !important;
    width: 100% !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-topbar__scroll {
    display: flex !important;
    gap: 10px !important;
    overflow-x: auto !important;
    padding: 8px 14px 12px !important;
  }
}
.elementor-editor-active .tmp-menu-only.tmp-menu-only--standalone,
.elementor-editor-preview .tmp-menu-only.tmp-menu-only--standalone,
.tmp-menu-only.tmp-menu-only--standalone.is-elementor-edit {
  outline: 1px dashed rgba(0,0,0,.08);
}

/* ========================================================================
   v5.27 — Carrusel de categoría con hover igual a la grilla + modal grilla
   ======================================================================== */
html body .tmp-cat-carousel--pro .tmp-car-card-btn::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:2!important;
  background:
    linear-gradient(180deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.06) 32%, rgba(0,0,0,var(--tmp-car-overlay-opacity, .72)) 100%),
    radial-gradient(circle at 18% 15%, rgba(255,255,255,.18), transparent 34%)!important;
  opacity:0!important;
  pointer-events:none!important;
  transition:opacity .58s var(--tmp-ease, cubic-bezier(.2,.8,.2,1))!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-overlay{
  opacity:0!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-copy{
  opacity:0!important;
  transform:translateY(14px)!important;
  transition:transform .58s var(--tmp-ease, cubic-bezier(.2,.8,.2,1)), opacity .58s var(--tmp-ease, cubic-bezier(.2,.8,.2,1))!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-number{
  position:absolute!important;
  top:16px!important;
  right:17px!important;
  z-index:4!important;
  color:rgba(255,255,255,.78)!important;
  font-size:clamp(13px,.95vw,17px)!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.02em!important;
  text-shadow:0 2px 10px rgba(0,0,0,.25)!important;
  opacity:0!important;
  transform:translateY(-6px)!important;
  transition:opacity .42s ease, transform .42s ease!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover .tmp-car-card-btn::after,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within .tmp-car-card-btn::after,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-btn::after{
  opacity:1!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover .tmp-car-card-overlay,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within .tmp-car-card-overlay,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-overlay{
  opacity:var(--tmp-car-overlay-opacity, .72)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover .tmp-car-card-copy,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within .tmp-car-card-copy,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-copy{
  opacity:1!important;
  transform:translateY(-4px)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover .tmp-car-card-number,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within .tmp-car-card-number,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-number{
  opacity:1!important;
  transform:none!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-copy em{
  display:inline-flex!important;
  font-size:11px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  opacity:.86!important;
  margin:0 0 5px!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-copy strong{
  font-size:clamp(18px,1.7vw,30px)!important;
  line-height:.98!important;
  letter-spacing:-.04em!important;
  font-weight:800!important;
  text-shadow:0 5px 20px rgba(0,0,0,.25)!important;
  max-width:94%!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-copy small{
  max-width:94%!important;
  color:rgba(255,255,255,.82)!important;
  font-size:clamp(12px,.85vw,14px)!important;
  font-weight:500!important;
  line-height:1.25!important;
  opacity:.92!important;
  text-shadow:0 3px 14px rgba(0,0,0,.28)!important;
}
@media (hover:none), (pointer:coarse){
  html body .tmp-cat-carousel--pro .tmp-car-card-btn::after,
  html body .tmp-cat-carousel--pro .tmp-car-card-overlay{opacity:var(--tmp-car-overlay-opacity,.72)!important;}
  html body .tmp-cat-carousel--pro .tmp-car-card-copy,
  html body .tmp-cat-carousel--pro .tmp-car-card-number{opacity:1!important;transform:none!important;}
}

/* Modal del carrusel usando exactamente la estructura visual de la grilla principal */
html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{
  align-items:center!important;
  justify-content:center!important;
  padding:clamp(22px,3vw,46px)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog > [data-tmp-pro-content]{
  width:min(1120px, calc(100vw - 34px))!important;
  max-height:min(88vh,920px)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel.tmp-modal__panel--carousel{
  width:100%!important;
  max-height:min(88vh,920px)!important;
  border-radius:var(--tmp-modal-radius,30px)!important;
  background:var(--tmp-modal-bg,#f7f1e9)!important;
  color:var(--tmp-modal-text,#5b4d43)!important;
  overflow:hidden!important;
  box-shadow:0 38px 100px rgba(0,0,0,.34)!important;
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__media--gallery,
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__media--gallery > img[data-tmp-modal-main]{
  min-height:560px!important;
  height:100%!important;
  object-fit:cover!important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__body{
  padding:clamp(28px,5vw,62px)!important;
  overflow:auto!important;
  color:inherit!important;
  background:transparent!important;
  display:block!important;
  max-height:min(88vh,920px)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__title,
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__subtitle,
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__description,
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__specs{
  color:inherit!important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  margin-top:24px!important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__cta{
  display:inline-flex!important;
  align-items:center!important;
  gap:10px!important;
  border-radius:999px!important;
  text-decoration:none!important;
  border:1px solid currentColor!important;
  width:auto!important;
  max-width:100%!important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__cta--store{
  background:var(--tmp-modal-cta-bg,#fff)!important;
  color:var(--tmp-modal-cta-color,#000)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__cta--category{
  background:transparent!important;
  color:inherit!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__close.tmp-modal__close,
html body .tmp-cat-carousel--pro .tmp-modal-pro__close{
  position:absolute!important;
  top:calc(clamp(22px,3vw,46px) - 18px)!important;
  right:calc(clamp(22px,3vw,46px) - 16px)!important;
  z-index:5!important;
}
@media(max-width:1024px){
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog > [data-tmp-pro-content]{width:min(720px, calc(100vw - 28px))!important;max-height:none!important;}
  html body .tmp-cat-carousel--pro .tmp-modal__panel.tmp-modal__panel--carousel{grid-template-columns:1fr!important;max-height:none!important;}
  html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__media--gallery,
  html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__media--gallery > img[data-tmp-modal-main]{min-height:0!important;height:auto!important;aspect-ratio:4/5!important;}
  html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__body{max-height:none!important;overflow:visible!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{align-items:flex-start!important;overflow:auto!important;}
}
@media(max-width:767px){
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{padding:12px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog > [data-tmp-pro-content]{width:100%!important;}
  html body .tmp-cat-carousel--pro .tmp-modal__panel.tmp-modal__panel--carousel{border-radius:24px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__body{padding:26px 22px 32px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__close.tmp-modal__close,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__close{top:18px!important;right:18px!important;}
}

/* v5.28 — Corrección profesional: carrusel hover, modal único, editor live y modales full viewport sin scroll */
html body .tmp-cat-carousel--pro{overflow:hidden!important;}
html body .tmp-cat-carousel--pro .tmp-car-track{
  padding-top:34px!important;
  margin-top:-34px!important;
  padding-left:2px!important;
  padding-right:2px!important;
  overflow-x:auto!important;
  overflow-y:visible!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product{transition:opacity .28s ease,filter .28s ease,transform .32s cubic-bezier(.2,.8,.2,1)!important;}
html body .tmp-cat-carousel--pro .tmp-car-card-btn{
  overflow:hidden!important;
  border-radius:inherit!important;
  position:relative!important;
  isolation:isolate!important;
  box-shadow:0 18px 60px rgba(0,0,0,.24)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-img,
html body .tmp-cat-carousel--pro .tmp-car-card-img img{
  border-radius:inherit!important;
  overflow:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-copy{
  opacity:0!important;
  transform:translateY(20px)!important;
  transition:opacity .3s ease,transform .3s ease!important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-overlay{
  opacity:0!important;
  transition:opacity .3s ease!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover .tmp-car-card-copy,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within .tmp-car-card-copy,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-copy,
html body.elementor-editor-active .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-copy{
  opacity:1!important;
  transform:translateY(0)!important;
}
html body .tmp-cat-carousel--pro .tmp-car-item--product:hover .tmp-car-card-overlay,
html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within .tmp-car-card-overlay,
html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered .tmp-car-card-overlay{
  opacity:var(--tmp-car-overlay-opacity,1)!important;
}
@media (hover:none), (pointer:coarse){
  html body .tmp-cat-carousel--pro .tmp-car-card-copy{opacity:1!important;transform:none!important;}
  html body .tmp-cat-carousel--pro .tmp-car-card-overlay{opacity:.95!important;}
}

/* Modal de grilla principal: siempre dentro del viewport */
html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:clamp(10px,1.6vw,24px)!important;
  overflow:hidden!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel{
  width:min(1500px,96vw)!important;
  height:min(850px,calc(100svh - 32px))!important;
  max-height:calc(100svh - 32px)!important;
  display:grid!important;
  grid-template-columns:minmax(320px,1.06fr) minmax(340px,.94fr)!important;
  gap:0!important;
  overflow:hidden!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery{
  min-height:0!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery > img{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  width:100%!important;
  object-fit:cover!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__gallery-inline{
  flex:0 0 auto!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__body{
  min-height:0!important;
  max-height:none!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding:clamp(24px,3.5vw,58px)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__title{
  font-size:clamp(38px,4vw,70px)!important;
  line-height:.9!important;
  margin-bottom:clamp(12px,1.4vw,24px)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__subtitle{font-size:clamp(16px,1.4vw,24px)!important;line-height:1.12!important;margin-bottom:clamp(14px,1.6vw,26px)!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__specs{font-size:clamp(14px,1vw,18px)!important;line-height:1.35!important;padding:clamp(14px,1.5vw,24px)!important;margin-bottom:clamp(12px,1.5vw,24px)!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__description{font-size:clamp(14px,1.1vw,20px)!important;line-height:1.38!important;max-height:18vh!important;overflow:hidden!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__actions{margin-top:clamp(12px,1.5vw,24px)!important;}

/* Modal del carrusel PRO: misma estructura de la grilla, completo en pantalla y editable por variables */
html body .tmp-cat-carousel--pro .tmp-modal-pro:not(.is-editor-preview){position:fixed!important;inset:0!important;z-index:99999!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{
  padding:clamp(10px,1.6vw,24px)!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner,
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{
  width:min(1500px,96vw)!important;
  height:min(850px,calc(100svh - 32px))!important;
  max-height:calc(100svh - 32px)!important;
  display:grid!important;
  grid-template-columns:minmax(320px,1.06fr) minmax(340px,.94fr)!important;
  gap:0!important;
  align-items:stretch!important;
  overflow:hidden!important;
  border-radius:var(--tmp-modal-radius,32px)!important;
  background:var(--tmp-modal-bg,#f7f1e9)!important;
  color:var(--tmp-modal-text,#5b4d43)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual{
  min-height:0!important;
  height:100%!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  background:#070707!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  max-height:none!important;
  aspect-ratio:auto!important;
  overflow:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__thumbs{
  flex:0 0 82px!important;
  min-height:82px!important;
  padding:12px 16px!important;
  gap:10px!important;
  margin:0!important;
  background:rgba(0,0,0,.88)!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__thumbs button{
  width:74px!important;
  height:54px!important;
  flex:0 0 74px!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body{
  min-height:0!important;
  max-height:none!important;
  height:100%!important;
  overflow:hidden!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  padding:clamp(24px,3.5vw,58px)!important;
  background:inherit!important;
  color:inherit!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body h3{
  font-size:clamp(38px,4vw,70px)!important;
  line-height:.9!important;
  letter-spacing:-.065em!important;
  margin:0 0 clamp(12px,1.4vw,24px)!important;
  color:inherit!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__kicker{margin-bottom:12px!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs{
  font-size:clamp(14px,1vw,18px)!important;
  line-height:1.35!important;
  padding:clamp(14px,1.5vw,24px)!important;
  margin:0 0 clamp(12px,1.5vw,24px)!important;
  max-height:22vh!important;
  overflow:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__text{
  font-size:clamp(14px,1.1vw,20px)!important;
  line-height:1.38!important;
  max-height:18vh!important;
  overflow:hidden!important;
  margin:0 0 clamp(12px,1.5vw,24px)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__actions{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  margin-top:0!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__cta{
  margin:0!important;
  background:var(--tmp-modal-cta-bg,#2f281f)!important;
  color:var(--tmp-modal-cta-color,#fff)!important;
  border-color:currentColor!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__close{z-index:10!important;}

/* Preview del modal en Elementor: permite ver cambios de estilo sin romper el iframe */
html body.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  z-index:60!important;
  min-height:760px!important;
  pointer-events:auto!important;
}
html body.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal-pro__dialog{
  position:absolute!important;
  inset:0!important;
  min-height:760px!important;
}

@media(max-width:1024px){
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{overflow:auto!important;align-items:flex-start!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{
    height:auto!important;
    min-height:0!important;
    max-height:none!important;
    grid-template-columns:1fr!important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__body,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__body{overflow:visible!important;justify-content:flex-start!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__description,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__text{max-height:none!important;overflow:visible!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image{aspect-ratio:4/5!important;}
}
@media(max-width:767px){
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{padding:10px!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{width:100%!important;border-radius:24px!important;}
}


/* v5.29 — Fix crítico carrusel modal + polish modal grilla/carrusel
   - Corrige estilos full viewport sin scroll en desktop
   - Reduce paddings/bordes incómodos del modal de grilla
   - Evita recortes visuales en cards del carrusel al hover
*/
html body.tmp-modal-lock{overflow:hidden!important;}

/* Carrusel: que el hover no corte el radio ni tape la parte superior */
html body .tmp-cat-carousel--pro,
html body .tmp-cat-carousel--pro .tmp-car-track{overflow:visible!important;}
html body .tmp-cat-carousel--pro .tmp-car-track{padding-top:clamp(12px,1.2vw,22px)!important;padding-bottom:clamp(18px,1.5vw,30px)!important;}
html body .tmp-cat-carousel--pro .tmp-car-item,
html body .tmp-cat-carousel--pro [data-tmp-pro-card]{overflow:visible!important;}
html body .tmp-cat-carousel--pro .tmp-car-card,
html body .tmp-cat-carousel--pro .tmp-car-item__inner,
html body .tmp-cat-carousel--pro .tmp-car-item button,
html body .tmp-cat-carousel--pro [data-tmp-pro-card] > *{border-radius:inherit!important;}
html body .tmp-cat-carousel--pro .tmp-car-card img,
html body .tmp-cat-carousel--pro .tmp-car-item img{display:block!important;width:100%!important;height:100%!important;object-fit:cover!important;border-radius:inherit!important;}

/* Modal grilla principal: más limpio, sin bordes raros, full viewport desktop */
html body .tmp-modal[aria-hidden="false"]{position:fixed!important;inset:0!important;z-index:99999!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog{
  padding:clamp(12px,1.4vw,22px)!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel{
  width:min(1540px,calc(100vw - 24px))!important;
  height:min(850px,calc(100svh - 24px))!important;
  max-height:calc(100svh - 24px)!important;
  display:grid!important;
  grid-template-columns:minmax(320px,1fr) minmax(360px,.98fr)!important;
  gap:0!important;
  overflow:hidden!important;
  border-radius:clamp(22px,2vw,34px)!important;
  box-shadow:0 28px 90px rgba(0,0,0,.46)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery{
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  border-radius:0!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery > img[data-tmp-modal-main]{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__body{
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  padding:clamp(28px,3.4vw,56px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__title{
  font-size:clamp(38px,3.9vw,68px)!important;
  line-height:.92!important;
  margin:0 0 clamp(12px,1.3vw,22px)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__subtitle{
  font-size:clamp(16px,1.25vw,23px)!important;
  line-height:1.18!important;
  margin:0 0 clamp(12px,1.4vw,22px)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__specs{
  font-size:clamp(14px,1vw,18px)!important;
  line-height:1.35!important;
  padding:clamp(14px,1.4vw,24px)!important;
  margin:0 0 clamp(12px,1.4vw,22px)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__description{
  font-size:clamp(14px,1vw,18px)!important;
  line-height:1.35!important;
  max-height:16vh!important;
  overflow:hidden!important;
  margin:0!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__gallery-inline{margin-top:clamp(12px,1.2vw,20px)!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__thumbs{gap:10px!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__thumbs button{width:74px!important;height:54px!important;flex-basis:74px!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__actions{margin-top:clamp(14px,1.4vw,24px)!important;gap:12px!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__close{z-index:20!important;}

/* Modal carrusel PRO: mismo comportamiento full viewport y sin scroll desktop */
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"]{display:block!important;position:fixed!important;inset:0!important;z-index:99999!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{
  padding:clamp(12px,1.4vw,22px)!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner,
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{
  width:min(1540px,calc(100vw - 24px))!important;
  height:min(850px,calc(100svh - 24px))!important;
  max-height:calc(100svh - 24px)!important;
  display:grid!important;
  grid-template-columns:minmax(320px,1fr) minmax(360px,.98fr)!important;
  gap:0!important;
  align-items:stretch!important;
  overflow:hidden!important;
  border-radius:var(--tmp-modal-radius,clamp(22px,2vw,34px))!important;
  background:var(--tmp-modal-bg,#050505)!important;
  color:var(--tmp-modal-text,#fff)!important;
  box-shadow:0 28px 90px rgba(0,0,0,.46)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual{height:100%!important;min-height:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;background:#060606!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image{flex:1 1 auto!important;height:auto!important;min-height:0!important;aspect-ratio:auto!important;border-radius:0!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image img{width:100%!important;height:100%!important;object-fit:cover!important;display:block!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__thumbs{flex:0 0 82px!important;min-height:82px!important;margin:0!important;padding:12px 16px!important;gap:10px!important;background:rgba(0,0,0,.9)!important;overflow-x:auto!important;overflow-y:hidden!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__thumbs button{width:74px!important;height:54px!important;flex:0 0 74px!important;border-radius:12px!important;overflow:hidden!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body{height:100%!important;min-height:0!important;overflow:hidden!important;padding:clamp(28px,3.4vw,56px)!important;display:flex!important;flex-direction:column!important;justify-content:center!important;background:inherit!important;color:inherit!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body h3{font-size:clamp(38px,3.9vw,68px)!important;line-height:.92!important;margin:0 0 clamp(12px,1.3vw,22px)!important;color:inherit!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs{font-size:clamp(14px,1vw,18px)!important;line-height:1.35!important;padding:clamp(14px,1.4vw,24px)!important;margin:0 0 clamp(12px,1.4vw,22px)!important;max-height:20vh!important;overflow:hidden!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__text{font-size:clamp(14px,1vw,18px)!important;line-height:1.35!important;max-height:16vh!important;overflow:hidden!important;margin:0 0 clamp(14px,1.4vw,24px)!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__actions{display:flex!important;flex-wrap:wrap!important;gap:12px!important;margin-top:0!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__cta{margin:0!important;}

@media(max-width:1024px){
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{overflow:auto!important;align-items:flex-start!important;padding:12px!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{width:100%!important;height:auto!important;max-height:none!important;grid-template-columns:1fr!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image{height:auto!important;aspect-ratio:4/5!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__body,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__body{height:auto!important;overflow:visible!important;justify-content:flex-start!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__description,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__text{max-height:none!important;overflow:visible!important;}
}

/* ===== v5.30 — Modal unificado real + editor live variables =====
   Mantiene grilla/carrusel. Corrige modal del carrusel y respeta controles de Elementor.
*/
html body.tmp-modal-lock{overflow:hidden!important;}

/* Variables editables desde Elementor para modal de la grilla */
html body .tmp-modal{
  --tmp-grid-modal-bg: var(--tmp-modal-bw-bg,#f7f1e9);
  --tmp-grid-modal-title: #2c2119;
  --tmp-grid-modal-text: #5b4d43;
  --tmp-grid-specs-bg: rgba(255,255,255,.52);
  --tmp-grid-modal-radius: clamp(24px,2vw,34px);
  --tmp-grid-image-radius: 0px;
}

/* Modal grilla: layout compacto, redondeado, sin scroll en desktop */
html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog{
  width:100vw!important;
  height:100svh!important;
  max-height:100svh!important;
  margin:0!important;
  padding:clamp(16px,2.2vw,34px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel{
  width:min(1500px,calc(100vw - 32px))!important;
  height:min(820px,calc(100svh - 32px))!important;
  max-height:calc(100svh - 32px)!important;
  padding:0!important;
  gap:0!important;
  display:grid!important;
  grid-template-columns:minmax(420px,1.05fr) minmax(380px,.95fr)!important;
  overflow:hidden!important;
  border-radius:var(--tmp-grid-modal-radius)!important;
  background:var(--tmp-grid-modal-bg)!important;
  color:var(--tmp-grid-modal-text)!important;
  box-shadow:0 34px 110px rgba(0,0,0,.48)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery{
  height:100%!important;
  min-height:0!important;
  border-radius:var(--tmp-grid-image-radius) 0 0 var(--tmp-grid-image-radius)!important;
  overflow:hidden!important;
  background:#050505!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery > img[data-tmp-modal-main]{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  display:block!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__body{
  min-width:0!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  padding:clamp(30px,3.7vw,62px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  background:transparent!important;
  color:var(--tmp-grid-modal-text)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__title{
  color:var(--tmp-grid-modal-title)!important;
  font-size:clamp(40px,4.2vw,76px)!important;
  line-height:.9!important;
  margin:0 0 clamp(10px,1.2vw,18px)!important;
  max-width:100%!important;
  word-break:normal!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__subtitle{
  font-size:clamp(16px,1.25vw,22px)!important;
  line-height:1.2!important;
  margin:0 0 clamp(12px,1.3vw,20px)!important;
  max-width:100%!important;
  color:var(--tmp-grid-modal-text)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__specs{
  background:var(--tmp-grid-specs-bg)!important;
  color:var(--tmp-grid-modal-text)!important;
  font-size:clamp(13px,.95vw,17px)!important;
  line-height:1.3!important;
  padding:clamp(14px,1.4vw,22px)!important;
  margin:0 0 clamp(12px,1.4vw,22px)!important;
  max-width:100%!important;
  max-height:17vh!important;
  overflow:hidden!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__description{
  color:var(--tmp-grid-modal-text)!important;
  font-size:clamp(13px,.98vw,17px)!important;
  line-height:1.35!important;
  max-width:100%!important;
  max-height:14vh!important;
  overflow:hidden!important;
  margin:0!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__gallery-inline{margin-top:clamp(12px,1.2vw,20px)!important;max-width:100%!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__thumbs{gap:10px!important;max-width:100%!important;overflow-x:auto!important;padding-bottom:4px!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__thumbs button{width:72px!important;height:52px!important;flex:0 0 72px!important;border-radius:12px!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__cta{margin-top:clamp(14px,1.4vw,22px)!important;white-space:nowrap!important;}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__close{right:clamp(22px,3vw,46px)!important;top:clamp(18px,2.4vw,38px)!important;z-index:30!important;}

/* Modal carrusel PRO: usa variables del widget y no desborda */
html body .tmp-cat-carousel--pro .tmp-modal-pro{
  --tmp-modal-bg:#050505;
  --tmp-modal-text:#ffffff;
  --tmp-modal-radius:clamp(24px,2vw,34px);
  --tmp-modal-cta-bg:#ffffff;
  --tmp-modal-cta-color:#111111;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"]{
  position:fixed!important;
  inset:0!important;
  z-index:99999!important;
  display:block!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{
  position:absolute!important;
  inset:0!important;
  width:100vw!important;
  height:100svh!important;
  max-height:100svh!important;
  margin:0!important;
  padding:clamp(16px,2.2vw,34px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  background:transparent!important;
  box-shadow:none!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner,
html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{
  width:min(1500px,calc(100vw - 32px))!important;
  height:min(820px,calc(100svh - 32px))!important;
  max-height:calc(100svh - 32px)!important;
  min-height:0!important;
  display:grid!important;
  grid-template-columns:minmax(420px,1.05fr) minmax(380px,.95fr)!important;
  gap:0!important;
  align-items:stretch!important;
  overflow:hidden!important;
  border-radius:var(--tmp-modal-radius)!important;
  background:var(--tmp-modal-bg)!important;
  color:var(--tmp-modal-text)!important;
  box-shadow:0 34px 110px rgba(0,0,0,.48)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual{
  min-width:0!important;
  height:100%!important;
  min-height:0!important;
  display:flex!important;
  flex-direction:column!important;
  overflow:hidden!important;
  background:#050505!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image{
  flex:1 1 auto!important;
  min-height:0!important;
  height:auto!important;
  aspect-ratio:auto!important;
  overflow:hidden!important;
  background:#050505!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center!important;
  display:block!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__thumbs{
  flex:0 0 78px!important;
  min-height:78px!important;
  margin:0!important;
  padding:12px 16px!important;
  gap:10px!important;
  overflow-x:auto!important;
  overflow-y:hidden!important;
  background:rgba(0,0,0,.92)!important;
  box-sizing:border-box!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__thumbs button{
  width:70px!important;
  height:52px!important;
  flex:0 0 70px!important;
  border-radius:12px!important;
  overflow:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body{
  min-width:0!important;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
  padding:clamp(30px,3.7vw,62px)!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  background:var(--tmp-modal-bg)!important;
  color:var(--tmp-modal-text)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__kicker{margin:0 0 clamp(8px,.9vw,14px)!important;color:inherit!important;opacity:.68!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__body h3{
  color:inherit!important;
  font-size:clamp(40px,4.2vw,76px)!important;
  line-height:.9!important;
  letter-spacing:-.075em!important;
  margin:0 0 clamp(10px,1.2vw,18px)!important;
  max-width:100%!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs{
  display:block!important;
  color:inherit!important;
  background:rgba(255,255,255,.12)!important;
  border:0!important;
  border-radius:18px!important;
  font-size:clamp(13px,.95vw,17px)!important;
  line-height:1.3!important;
  padding:clamp(14px,1.4vw,22px)!important;
  margin:0 0 clamp(12px,1.4vw,22px)!important;
  max-width:100%!important;
  max-height:18vh!important;
  overflow:hidden!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs b{display:block!important;margin:0 0 4px!important;font-size:10px!important;letter-spacing:.14em!important;opacity:.62!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__specs span{display:block!important;margin:0 0 10px!important;line-height:1.3!important;}
html body .tmp-cat-carousel--pro .tmp-modal-pro__text{
  color:inherit!important;
  opacity:.82!important;
  font-size:clamp(13px,.98vw,17px)!important;
  line-height:1.35!important;
  max-height:14vh!important;
  max-width:100%!important;
  overflow:hidden!important;
  margin:0 0 clamp(14px,1.4vw,22px)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__actions{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:12px!important;
  margin:0!important;
  max-width:100%!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__cta{
  min-width:0!important;
  max-width:100%!important;
  white-space:nowrap!important;
  margin:0!important;
  background:var(--tmp-modal-cta-bg)!important;
  color:var(--tmp-modal-cta-color)!important;
  border-color:var(--tmp-modal-cta-bg)!important;
  text-decoration:none!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro__close{
  right:clamp(22px,3vw,46px)!important;
  top:clamp(18px,2.4vw,38px)!important;
  z-index:30!important;
}

/* Editor: preview visible, sin romper el canvas */
html.elementor-html .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview,
body.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview{
  position:absolute!important;
  inset:0!important;
  min-height:640px!important;
  z-index:50!important;
}
html.elementor-html .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal-pro__dialog,
body.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal-pro__dialog{
  height:100%!important;
  min-height:640px!important;
  padding:18px!important;
}

@media(max-width:1024px){
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__dialog{align-items:flex-start!important;overflow:auto!important;padding:12px!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__inner--gallery{width:100%!important;height:auto!important;max-height:none!important;grid-template-columns:1fr!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__image{height:auto!important;aspect-ratio:4/5!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__body,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__body{height:auto!important;overflow:visible!important;justify-content:flex-start!important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__description,
  html body .tmp-cat-carousel--pro .tmp-modal-pro__text{max-height:none!important;overflow:visible!important;}
  html body .tmp-cat-carousel--pro .tmp-modal-pro__visual .tmp-modal-pro__thumbs{flex-basis:auto!important;}
}


/* v5.31 - Modal unificado grilla/carrusel + controles reales */
html body .tmp-modal__close,
html body .tmp-modal-pro__close,
html body .tmp-cat-carousel--pro .tmp-modal-pro__close.tmp-modal__close{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
  padding:0!important;
  font-family:Arial, Helvetica, sans-serif!important;
}
html body .tmp-modal__close svg,
html body .tmp-modal-pro__close svg{display:block!important;margin:auto!important;}

html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel.tmp-modal__panel--carousel,
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal__panel,
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal__panel{
  width:min(1500px,calc(100vw - 32px))!important;
  height:min(820px,calc(100svh - 32px))!important;
  max-height:calc(100svh - 32px)!important;
  grid-template-columns:minmax(420px,1.04fr) minmax(390px,.96fr)!important;
  gap:0!important;
  overflow:hidden!important;
  border-radius:var(--tmp-grid-modal-radius, var(--tmp-modal-radius, 32px))!important;
  background:var(--tmp-grid-modal-bg, var(--tmp-modal-bg, #050505))!important;
  color:var(--tmp-grid-modal-text, var(--tmp-modal-text, #fff))!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal__dialog,
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal-pro__dialog{
  position:fixed!important;
  inset:0!important;
  width:100vw!important;
  height:100svh!important;
  padding:clamp(14px,2vw,30px)!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  overflow:hidden!important;
  box-sizing:border-box!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] [data-tmp-pro-content],
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview [data-tmp-pro-content]{
  width:auto!important;
  max-width:none!important;
  height:auto!important;
  max-height:none!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal__body,
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal__body{
  background:var(--tmp-modal-bg,#050505)!important;
  color:var(--tmp-modal-text,#ffffff)!important;
}
html body .tmp-modal[aria-hidden="false"] .tmp-modal__specs,
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal__specs,
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal__specs{
  background:var(--tmp-grid-specs-bg, var(--tmp-modal-specs-bg, rgba(255,255,255,.16)))!important;
  color:var(--tmp-grid-specs-color, var(--tmp-modal-specs-color, var(--tmp-grid-modal-text, var(--tmp-modal-text,#fff))))!important;
  font-size:var(--tmp-grid-specs-font-size, var(--tmp-modal-specs-size, clamp(13px,.95vw,17px)))!important;
  font-weight:var(--tmp-grid-specs-font-weight, var(--tmp-modal-specs-weight,700))!important;
  line-height:var(--tmp-grid-specs-line-height,1.35)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal__cta,
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal__cta{
  background:var(--tmp-modal-cta-bg,#fff)!important;
  color:var(--tmp-modal-cta-color,#111)!important;
  border-color:var(--tmp-modal-cta-bg,#fff)!important;
}
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal__close,
html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal__close{
  right:clamp(22px,3vw,46px)!important;
  top:clamp(18px,2.4vw,38px)!important;
  z-index:40!important;
}
@media(max-width:1024px){
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel.tmp-modal__panel--carousel,
  html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal-pro.is-editor-preview .tmp-modal__panel{
    width:100%!important;height:auto!important;max-height:none!important;grid-template-columns:1fr!important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"] .tmp-modal-pro__dialog{align-items:flex-start!important;overflow:auto!important;}
}


/* v5.32 - Carrusel usa exactamente el modal visual de la grilla */
html body .tmp-modal.tmp-modal--carousel-source .tmp-modal__panel{
  display:grid!important;
  grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr)!important;
  overflow:hidden!important;
}
html body .tmp-modal.tmp-modal--carousel-source .tmp-modal__body{
  overflow:auto!important;
}
html body .tmp-modal.tmp-modal--carousel-source .tmp-modal__close,
html body .tmp-modal__close{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  text-align:center!important;
  line-height:1!important;
  padding:0!important;
}
html body .tmp-modal.tmp-modal--carousel-source .tmp-modal__close span,
html body .tmp-modal__close span{
  display:block!important;
  line-height:1!important;
  transform:translateY(-1px)!important;
}
html body .tmp-modal.tmp-modal--carousel-source .tmp-modal__actions--carousel{
  display:flex!important;
  flex-wrap:wrap!important;
  gap:14px!important;
}
@media (max-width:768px){
  html body .tmp-modal.tmp-modal--carousel-source .tmp-modal__panel{
    grid-template-columns:1fr!important;
    overflow-y:auto!important;
  }
  html body .tmp-modal.tmp-modal--carousel-source .tmp-modal__body{
    overflow:visible!important;
  }
}

/* ========================================================================
   TEHIA v5.33 — Carousel modal: same visual language as grid + editor live
   ======================================================================== */
.tmp-cat-carousel--pro {
  --tmp-car-modal-bg: var(--tmp-modal-bg, #050505);
  --tmp-car-modal-text: var(--tmp-modal-text, #ffffff);
  --tmp-car-modal-radius: var(--tmp-modal-radius, 32px);
  --tmp-car-modal-desc-color: var(--tmp-modal-text, rgba(255,255,255,.82));
  --tmp-car-modal-body-padding: clamp(26px, 3.2vw, 56px) clamp(28px, 4vw, 68px);
}

html body .tmp-cat-carousel--pro .tmp-modal__panel,
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel,
html body .tmp-cat-carousel--pro [data-tmp-pro-content] {
  background: var(--tmp-car-modal-bg) !important;
  color: var(--tmp-car-modal-text) !important;
  border-radius: var(--tmp-car-modal-radius) !important;
  overflow: hidden !important;
  box-sizing: border-box !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__dialog {
  width: min(1480px, calc(100vw - 44px)) !important;
  max-height: calc(100vh - 44px) !important;
  margin: 22px auto !important;
}

@media (min-width: 981px) {
  html body .tmp-cat-carousel--pro .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel,
  html body .tmp-cat-carousel--pro [data-tmp-pro-content] {
    height: min(82vh, 780px) !important;
    max-height: calc(100vh - 44px) !important;
    display: grid !important;
    grid-template-columns: minmax(430px, 1.02fr) minmax(430px, .98fr) !important;
    gap: 0 !important;
    align-items: stretch !important;
  }

  html body .tmp-cat-carousel--pro .tmp-modal__body {
    overflow: visible !important;
    max-height: none !important;
    min-height: 0 !important;
    justify-content: center !important;
    gap: clamp(9px, .9vw, 15px) !important;
    padding: var(--tmp-car-modal-body-padding) !important;
    color: var(--tmp-car-modal-text) !important;
    box-sizing: border-box !important;
  }

  html body .tmp-cat-carousel--pro .tmp-modal__media--gallery {
    height: 100% !important;
    min-height: 0 !important;
    border-radius: 0 !important;
  }

  html body .tmp-cat-carousel--pro .tmp-modal__media--gallery > img,
  html body .tmp-cat-carousel--pro .tmp-modal__media--gallery img[data-tmp-modal-main] {
    height: 100% !important;
    width: 100% !important;
    object-fit: cover !important;
  }
}

html body .tmp-cat-carousel--pro .tmp-modal__title {
  max-width: 100% !important;
  margin: 0 !important;
  color: var(--tmp-car-modal-text) !important;
  line-height: .94 !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__subtitle {
  max-width: 100% !important;
  margin: 0 !important;
  color: var(--tmp-car-modal-text) !important;
  opacity: .86 !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__specs {
  max-width: 100% !important;
  margin: clamp(8px, .8vw, 12px) 0 0 !important;
  background: var(--tmp-modal-specs-bg, rgba(255,255,255,.16)) !important;
  color: var(--tmp-modal-specs-color, inherit) !important;
  font-size: var(--tmp-modal-specs-size, inherit) !important;
  font-weight: var(--tmp-modal-specs-weight, inherit) !important;
  line-height: 1.28 !important;
  padding: clamp(14px, 1.3vw, 20px) clamp(16px, 1.7vw, 26px) !important;
  border-radius: clamp(14px, 1.3vw, 22px) !important;
  box-sizing: border-box !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__description {
  max-width: 100% !important;
  margin: clamp(8px, .8vw, 12px) 0 0 !important;
  color: var(--tmp-car-modal-desc-color) !important;
  line-height: 1.35 !important;
  overflow: visible !important;
  display: block !important;
  white-space: normal !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__description p {
  margin: 0 !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__gallery-inline {
  max-width: 100% !important;
  margin-top: clamp(12px, 1.2vw, 18px) !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__actions {
  margin-top: clamp(16px, 1.6vw, 24px) !important;
  gap: clamp(10px, 1vw, 16px) !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__actions .tmp-modal__cta {
  min-height: 50px !important;
  padding: 0 clamp(22px, 2vw, 34px) !important;
  white-space: nowrap !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__close {
  display: inline-grid !important;
  place-items: center !important;
  line-height: 1 !important;
}

html body .tmp-cat-carousel--pro .tmp-modal__close span {
  display: block !important;
  line-height: 1 !important;
  transform: translateY(-1px) !important;
}

@media (max-width: 980px) {
  html body .tmp-cat-carousel--pro .tmp-modal__dialog {
    width: calc(100vw - 20px) !important;
    max-height: calc(100vh - 20px) !important;
    margin: 10px auto !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel,
  html body .tmp-cat-carousel--pro [data-tmp-pro-content] {
    display: block !important;
    max-height: calc(100vh - 20px) !important;
    overflow-y: auto !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal__media--gallery {
    height: min(46vh, 430px) !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal__body {
    padding: 22px 18px 28px !important;
    overflow: visible !important;
  }
}

/* ========================================================================
   TEHIA v5.34 — Modal profesional unificado: grilla + carrusel
   - En desktop entra completa en viewport, sin scroll interno en detalles.
   - Imagen y texto más juntos, paddings compactos.
   - Controles del modal del carrusel impactan vía variables/Elementor.
   ======================================================================== */
@media (min-width: 981px) {
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog,
  html body .tmp-modal.is-editor-preview .tmp-modal__dialog {
    width: min(1360px, calc(100vw - 56px)) !important;
    max-width: min(1360px, calc(100vw - 56px)) !important;
    height: auto !important;
    max-height: calc(100vh - 46px) !important;
    margin: 23px auto !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    overflow: visible !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel.tmp-modal__panel--carousel,
  html body .tmp-modal.is-editor-preview .tmp-modal__panel,
  html body .tmp-modal.is-editor-preview .tmp-modal__panel.tmp-modal__panel--carousel {
    width: 100% !important;
    height: min(78vh, 700px) !important;
    max-height: calc(100vh - 46px) !important;
    min-height: 560px !important;
    display: grid !important;
    grid-template-columns: minmax(0, .94fr) minmax(0, 1fr) !important;
    gap: 0 !important;
    overflow: hidden !important;
    align-items: stretch !important;
    box-sizing: border-box !important;
  }

  /* El carrusel usa exactamente el mismo frame visual, pero respeta sus controles propios. */
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"] .tmp-modal__panel.tmp-modal__panel--carousel,
  html body .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel.tmp-modal__panel--carousel {
    background: var(--tmp-modal-bg, var(--tmp-car-modal-bg, #050505)) !important;
    color: var(--tmp-modal-text, var(--tmp-car-modal-text, #ffffff)) !important;
    border-radius: var(--tmp-modal-radius, var(--tmp-car-modal-radius, 32px)) !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery,
  html body .tmp-modal.is-editor-preview .tmp-modal__media--gallery {
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery > img,
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery img[data-tmp-modal-main],
  html body .tmp-modal.is-editor-preview .tmp-modal__media--gallery > img,
  html body .tmp-modal.is-editor-preview .tmp-modal__media--gallery img[data-tmp-modal-main] {
    width: 100% !important;
    height: 100% !important;
    max-height: none !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__body,
  html body .tmp-modal.is-editor-preview .tmp-modal__body {
    height: 100% !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    display: flex !important;
    flex-direction: column !important;
    justify-content: center !important;
    gap: clamp(7px, .72vw, 12px) !important;
    padding: clamp(28px, 3.15vw, 50px) clamp(30px, 3.4vw, 58px) !important;
    box-sizing: border-box !important;
  }

  html body .tmp-cat-carousel--pro .tmp-modal__body {
    padding: var(--tmp-car-modal-body-padding, clamp(28px, 3.15vw, 50px) clamp(30px, 3.4vw, 58px)) !important;
    color: var(--tmp-modal-text, var(--tmp-car-modal-text, #fff)) !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__eyebrow,
  html body .tmp-modal.is-editor-preview .tmp-modal__eyebrow {
    margin: 0 0 clamp(2px, .25vw, 5px) !important;
    gap: 10px !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__eyebrow span,
  html body .tmp-modal.is-editor-preview .tmp-modal__eyebrow span {
    min-height: 30px !important;
    padding: 6px 18px !important;
    line-height: 1 !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__title,
  html body .tmp-modal.is-editor-preview .tmp-modal__title {
    font-size: clamp(42px, 4.1vw, 66px) !important;
    line-height: .92 !important;
    letter-spacing: -0.055em !important;
    margin: 0 !important;
    max-width: 100% !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__subtitle,
  html body .tmp-modal.is-editor-preview .tmp-modal__subtitle {
    font-size: clamp(16px, 1.25vw, 21px) !important;
    line-height: 1.18 !important;
    margin: 0 !important;
    max-width: 100% !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__specs,
  html body .tmp-modal.is-editor-preview .tmp-modal__specs {
    font-size: var(--tmp-modal-specs-size, clamp(13px, .95vw, 16px)) !important;
    font-weight: var(--tmp-modal-specs-weight, 700) !important;
    line-height: 1.18 !important;
    padding: clamp(11px, .95vw, 15px) clamp(14px, 1.25vw, 20px) !important;
    border-radius: clamp(10px, 1vw, 16px) !important;
    margin: clamp(4px, .45vw, 8px) 0 0 !important;
    max-width: 100% !important;
    flex: 0 0 auto !important;
    overflow: visible !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__description,
  html body .tmp-modal.is-editor-preview .tmp-modal__description {
    font-size: clamp(14px, .98vw, 17px) !important;
    line-height: 1.25 !important;
    margin: clamp(4px, .45vw, 8px) 0 0 !important;
    max-width: 100% !important;
    max-height: none !important;
    overflow: visible !important;
    display: block !important;
    flex: 0 1 auto !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__description p,
  html body .tmp-modal.is-editor-preview .tmp-modal__description p {
    margin: 0 !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__gallery-inline,
  html body .tmp-modal.is-editor-preview .tmp-modal__gallery-inline {
    margin-top: clamp(5px, .65vw, 10px) !important;
    flex: 0 0 auto !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__gallery-title,
  html body .tmp-modal.is-editor-preview .tmp-modal__gallery-title {
    margin-bottom: 9px !important;
    line-height: 1 !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__thumbs,
  html body .tmp-modal.is-editor-preview .tmp-modal__thumbs {
    gap: 10px !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__thumbs button,
  html body .tmp-modal.is-editor-preview .tmp-modal__thumbs button {
    width: clamp(58px, 5.1vw, 82px) !important;
    height: clamp(42px, 3.7vw, 60px) !important;
    flex: 0 0 clamp(58px, 5.1vw, 82px) !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__actions,
  html body .tmp-modal.is-editor-preview .tmp-modal__actions {
    margin-top: clamp(10px, 1vw, 18px) !important;
    gap: 12px !important;
    flex: 0 0 auto !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__cta,
  html body .tmp-modal.is-editor-preview .tmp-modal__cta {
    min-height: 48px !important;
    padding: 0 clamp(20px, 1.7vw, 30px) !important;
    font-size: clamp(13px, .95vw, 16px) !important;
    white-space: nowrap !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__close,
  html body .tmp-modal.is-editor-preview .tmp-modal__close {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    padding: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
    z-index: 70 !important;
  }

  html body .tmp-modal[aria-hidden="false"] .tmp-modal__close span,
  html body .tmp-modal.is-editor-preview .tmp-modal__close span {
    display: block !important;
    line-height: 1 !important;
    transform: translateY(-1px) !important;
  }
}

@media (min-width: 981px) and (max-height: 760px) {
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-modal.is-editor-preview .tmp-modal__panel {
    height: calc(100vh - 34px) !important;
    max-height: calc(100vh - 34px) !important;
    min-height: 0 !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__body,
  html body .tmp-modal.is-editor-preview .tmp-modal__body {
    padding: 22px 42px !important;
    gap: 6px !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__title,
  html body .tmp-modal.is-editor-preview .tmp-modal__title {
    font-size: clamp(34px, 3.4vw, 52px) !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__description,
  html body .tmp-modal.is-editor-preview .tmp-modal__description {
    font-size: 14px !important;
    line-height: 1.22 !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__cta,
  html body .tmp-modal.is-editor-preview .tmp-modal__cta { min-height: 44px !important; }
}


/* ========================================================================
   TEHIA v5.35 — Carousel/editor/modal stability hotfix
   - Preview modal del carrusel usa el mismo contenedor que producción.
   - Carrusel contenido dentro del viewport, sin irse del DOM.
   - Modal compacto y editable por variables del widget.
   ======================================================================== */
.tmp-cat-carousel--pro{
  position:relative;
  overflow:hidden !important;
  max-width:100%;
  box-sizing:border-box;
}
.tmp-cat-carousel--pro .tmp-car-track{
  width:100%;
  max-width:100%;
  box-sizing:border-box;
  overflow-x:auto !important;
  overflow-y:visible !important;
  display:flex !important;
  gap:var(--tmp-car-gap,32px);
  scroll-snap-type:x mandatory;
  scroll-padding-left:0;
  overscroll-behavior-x:contain;
  -webkit-overflow-scrolling:touch;
  padding:12px 0 20px !important;
}
.tmp-cat-carousel--pro .tmp-car-item--product{
  flex:0 0 var(--tmp-car-card-w,360px) !important;
  min-width:var(--tmp-car-card-w,360px) !important;
  max-width:min(var(--tmp-car-card-w,360px), calc(100vw - 48px));
  scroll-snap-align:start;
}
.tmp-cat-carousel--pro .tmp-car-card-btn{
  height:var(--tmp-car-card-h,520px) !important;
  min-height:var(--tmp-car-card-h,520px) !important;
  overflow:hidden !important;
  transform-origin:center center;
}
.tmp-cat-carousel--pro .tmp-car-arrow{
  z-index:15;
  display:inline-flex !important;
  align-items:center;
  justify-content:center;
}

/* En Elementor el modal de prueba no debe tapar todo el iframe ni duplicar estructuras. */
.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal.is-editor-preview,
.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal.is-open.is-editor-preview{
  position:relative !important;
  inset:auto !important;
  display:block !important;
  width:100% !important;
  height:auto !important;
  margin:24px auto 0 !important;
  z-index:2 !important;
  pointer-events:auto !important;
  background:transparent !important;
}
.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__backdrop{display:none !important;}
.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__dialog{
  position:relative !important;
  inset:auto !important;
  width:min(1120px,100%) !important;
  max-width:100% !important;
  height:auto !important;
  max-height:none !important;
  margin:0 auto !important;
  padding:0 !important;
  overflow:visible !important;
  display:block !important;
}

@media (min-width:981px){
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog,
  html body .tmp-modal.is-editor-preview .tmp-modal__dialog{
    width:min(1220px,calc(100vw - 64px)) !important;
    max-width:min(1220px,calc(100vw - 64px)) !important;
    max-height:calc(100vh - 44px) !important;
    margin:22px auto !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-modal.is-editor-preview .tmp-modal__panel{
    height:min(76vh,640px) !important;
    min-height:500px !important;
    max-height:calc(100vh - 44px) !important;
    grid-template-columns:minmax(0,.95fr) minmax(0,1fr) !important;
    gap:0 !important;
    overflow:hidden !important;
    border-radius:var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) !important;
    background:var(--tmp-modal-bg,var(--tmp-car-modal-bg,#050505)) !important;
    color:var(--tmp-modal-text,var(--tmp-car-modal-text,#fff)) !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel,
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"] .tmp-modal__panel{
    background:var(--tmp-modal-bg,var(--tmp-car-modal-bg,#050505)) !important;
    color:var(--tmp-modal-text,var(--tmp-car-modal-text,#fff)) !important;
    border-radius:var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery,
  html body .tmp-modal.is-editor-preview .tmp-modal__media--gallery{
    height:100% !important;
    min-height:0 !important;
    display:block !important;
    background:#111 !important;
    border-radius:0 !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery > img[data-tmp-modal-main],
  html body .tmp-modal.is-editor-preview .tmp-modal__media--gallery > img[data-tmp-modal-main]{
    width:100% !important;
    height:100% !important;
    object-fit:cover !important;
    display:block !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__body,
  html body .tmp-modal.is-editor-preview .tmp-modal__body{
    height:100% !important;
    max-height:100% !important;
    min-height:0 !important;
    overflow:hidden !important;
    justify-content:center !important;
    gap:8px !important;
    padding:var(--tmp-car-modal-body-padding, clamp(26px,2.8vw,44px) clamp(30px,3vw,52px)) !important;
    box-sizing:border-box !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__title,
  html body .tmp-modal.is-editor-preview .tmp-modal__title{
    font-size:clamp(38px,3.6vw,58px) !important;
    line-height:.93 !important;
    margin:0 !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__subtitle,
  html body .tmp-modal.is-editor-preview .tmp-modal__subtitle{
    font-size:clamp(15px,1.1vw,19px) !important;
    line-height:1.18 !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__specs,
  html body .tmp-modal.is-editor-preview .tmp-modal__specs{
    background:var(--tmp-modal-specs-bg,rgba(255,255,255,.16)) !important;
    color:var(--tmp-modal-specs-color,#fff) !important;
    font-size:var(--tmp-modal-specs-size,clamp(12px,.9vw,15px)) !important;
    line-height:1.16 !important;
    padding:11px 16px !important;
    margin:4px 0 0 !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__description,
  html body .tmp-modal.is-editor-preview .tmp-modal__description{
    color:var(--tmp-car-modal-desc-color,currentColor) !important;
    font-size:clamp(13px,.92vw,16px) !important;
    line-height:1.22 !important;
    margin:4px 0 0 !important;
    max-height:none !important;
    overflow:visible !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__gallery-inline,
  html body .tmp-modal.is-editor-preview .tmp-modal__gallery-inline{margin-top:6px !important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__actions,
  html body .tmp-modal.is-editor-preview .tmp-modal__actions{margin-top:12px !important;gap:12px !important;}
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__close,
  html body .tmp-modal.is-editor-preview .tmp-modal__close{
    top:18px !important;right:18px !important;width:50px !important;height:50px !important;
    display:flex !important;align-items:center !important;justify-content:center !important;
  }
}
@media (max-width:767px){
  .tmp-cat-carousel--pro .tmp-car-item--product{
    flex-basis:min(var(--tmp-car-card-w,78vw),84vw) !important;
    min-width:min(var(--tmp-car-card-w,78vw),84vw) !important;
  }
}

/* === v5.36 Carousel stable + unified modal polish === */
.tmp-cat-carousel--pro{
  overflow:hidden !important;
  max-width:100% !important;
  contain:layout paint;
}
.tmp-cat-carousel--pro .tmp-car-track{
  overflow:visible !important;
  max-width:none !important;
  width:max-content !important;
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:var(--tmp-car-gap,32px) !important;
  padding:10px 0 24px !important;
  margin:0 !important;
  will-change:transform;
  scroll-snap-type:none !important;
  scrollbar-width:none !important;
}
.tmp-cat-carousel--pro .tmp-car-track::-webkit-scrollbar{display:none!important;}
.tmp-cat-carousel--pro .tmp-car-item--product{
  flex:0 0 var(--tmp-car-card-w,360px) !important;
  min-width:var(--tmp-car-card-w,360px) !important;
  width:var(--tmp-car-card-w,360px) !important;
  max-width:var(--tmp-car-card-w,360px) !important;
  overflow:visible !important;
  scroll-snap-align:none !important;
}
.tmp-cat-carousel--pro .tmp-car-card-btn{
  overflow:hidden !important;
  height:var(--tmp-car-card-h,520px) !important;
  min-height:var(--tmp-car-card-h,520px) !important;
  transform:translateZ(0);
  backface-visibility:hidden;
}
.tmp-cat-carousel--pro .tmp-car-card-img,
.tmp-cat-carousel--pro .tmp-car-card-img img{
  border-radius:inherit !important;
}
.tmp-cat-carousel--pro .tmp-car-arrow{
  z-index:50 !important;
  display:grid !important;
  place-items:center !important;
}
.tmp-cat-carousel--pro .tmp-car-arrow.is-disabled,
.tmp-cat-carousel--pro .tmp-car-arrow:disabled{
  opacity:.28 !important;
  cursor:not-allowed !important;
  pointer-events:none !important;
}

/* Modal: one source of truth for grid + carousel */
.tmp-modal--carousel-source .tmp-modal__dialog,
.tmp-modal .tmp-modal__dialog{
  padding:clamp(12px,2vw,28px) !important;
  align-items:center !important;
  justify-content:center !important;
}
.tmp-modal--carousel-source .tmp-modal__panel,
.tmp-modal__panel--carousel{
  background:var(--tmp-modal-bg,var(--tmp-car-modal-bg,#050505)) !important;
  color:var(--tmp-modal-text,var(--tmp-car-modal-text,#fff)) !important;
  border-radius:var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) !important;
  width:min(1360px,96vw) !important;
  height:min(740px,90vh) !important;
  max-height:90vh !important;
  display:grid !important;
  grid-template-columns:minmax(420px,48%) minmax(420px,52%) !important;
  gap:0 !important;
  overflow:hidden !important;
}
.tmp-modal--carousel-source .tmp-modal__media--gallery,
.tmp-modal__panel--carousel .tmp-modal__media--gallery{
  height:100% !important;
  min-height:0 !important;
  position:relative !important;
  overflow:hidden !important;
  border-radius:var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) 0 0 var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) !important;
}
.tmp-modal--carousel-source .tmp-modal__media--gallery > img,
.tmp-modal__panel--carousel .tmp-modal__media--gallery > img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  display:block !important;
}
.tmp-modal--carousel-source .tmp-modal__body,
.tmp-modal__panel--carousel .tmp-modal__body{
  height:100% !important;
  max-height:none !important;
  overflow:hidden !important;
  padding:clamp(34px,4.2vw,64px) clamp(34px,4.8vw,78px) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:clamp(10px,1.4vh,18px) !important;
}
.tmp-modal--carousel-source .tmp-modal__title,
.tmp-modal__panel--carousel .tmp-modal__title{
  font-size:clamp(44px,4.4vw,74px) !important;
  line-height:.9 !important;
  margin:0 !important;
  max-width:100% !important;
}
.tmp-modal--carousel-source .tmp-modal__subtitle,
.tmp-modal__panel--carousel .tmp-modal__subtitle{
  font-size:clamp(17px,1.3vw,24px) !important;
  line-height:1.15 !important;
  margin:0 !important;
  max-width:100% !important;
}
.tmp-modal--carousel-source .tmp-modal__specs,
.tmp-modal__panel--carousel .tmp-modal__specs{
  background:var(--tmp-modal-specs-bg,rgba(255,255,255,.16)) !important;
  color:var(--tmp-modal-specs-color,currentColor) !important;
  font-size:var(--tmp-modal-specs-size,15px) !important;
  font-weight:var(--tmp-modal-specs-weight,700) !important;
  line-height:1.24 !important;
  padding:clamp(14px,1.6vw,22px) clamp(18px,2vw,28px) !important;
  border-radius:16px !important;
  max-width:100% !important;
  margin:0 !important;
}
.tmp-modal--carousel-source .tmp-modal__description,
.tmp-modal__panel--carousel .tmp-modal__description{
  color:var(--tmp-car-modal-desc-color,currentColor) !important;
  font-size:clamp(14px,1vw,17px) !important;
  line-height:1.32 !important;
  margin:0 !important;
  max-width:100% !important;
  overflow:visible !important;
}
.tmp-modal--carousel-source .tmp-modal__gallery-inline,
.tmp-modal__panel--carousel .tmp-modal__gallery-inline{
  margin:clamp(6px,1vh,12px) 0 0 !important;
}
.tmp-modal--carousel-source .tmp-modal__thumbs,
.tmp-modal__panel--carousel .tmp-modal__thumbs{
  gap:12px !important;
  margin-top:12px !important;
}
.tmp-modal--carousel-source .tmp-modal__thumbs button,
.tmp-modal__panel--carousel .tmp-modal__thumbs button{
  width:74px !important;
  height:58px !important;
  flex:0 0 74px !important;
}
.tmp-modal--carousel-source .tmp-modal__actions,
.tmp-modal__panel--carousel .tmp-modal__actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:14px !important;
  margin-top:clamp(8px,1.3vh,18px) !important;
}
.tmp-modal--carousel-source .tmp-modal__cta,
.tmp-modal__panel--carousel .tmp-modal__cta{
  min-height:54px !important;
  padding:14px 26px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
}
.tmp-modal--carousel-source .tmp-modal__cta--store,
.tmp-modal__panel--carousel .tmp-modal__cta--store{
  background:var(--tmp-modal-cta-bg,#fff) !important;
  color:var(--tmp-modal-cta-color,#111) !important;
}
.tmp-modal__close,
.tmp-modal-pro__close{
  display:grid !important;
  place-items:center !important;
  text-align:center !important;
  line-height:1 !important;
}
.tmp-modal__close span,
.tmp-modal-pro__close span{
  display:block !important;
  line-height:1 !important;
  transform:translateY(-1px) !important;
}

.elementor-editor-active .tmp-modal--carousel-source.is-editor-preview .tmp-modal__panel{
  background:var(--tmp-modal-bg,var(--tmp-car-modal-bg,#050505)) !important;
  color:var(--tmp-modal-text,var(--tmp-car-modal-text,#fff)) !important;
  border-radius:var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) !important;
}

@media (max-height:760px) and (min-width:900px){
  .tmp-modal--carousel-source .tmp-modal__panel,
  .tmp-modal__panel--carousel{height:min(650px,88vh)!important;}
  .tmp-modal--carousel-source .tmp-modal__body,
  .tmp-modal__panel--carousel .tmp-modal__body{padding:28px 46px!important;gap:10px!important;}
  .tmp-modal--carousel-source .tmp-modal__title,
  .tmp-modal__panel--carousel .tmp-modal__title{font-size:clamp(36px,3.8vw,58px)!important;}
  .tmp-modal--carousel-source .tmp-modal__thumbs button,
  .tmp-modal__panel--carousel .tmp-modal__thumbs button{width:62px!important;height:48px!important;flex-basis:62px!important;}
  .tmp-modal--carousel-source .tmp-modal__cta,
  .tmp-modal__panel--carousel .tmp-modal__cta{min-height:48px!important;padding:12px 22px!important;}
}
@media (max-width:767px){
  .tmp-cat-carousel--pro .tmp-car-track{overflow-x:auto!important;transform:none!important;width:auto!important;scroll-snap-type:x mandatory!important;}
  .tmp-cat-carousel--pro .tmp-car-item--product{scroll-snap-align:start!important;}
  .tmp-modal--carousel-source .tmp-modal__panel,
  .tmp-modal__panel--carousel{
    width:min(94vw,720px)!important;
    height:auto!important;
    max-height:92vh!important;
    grid-template-columns:1fr!important;
    overflow:auto!important;
  }
  .tmp-modal--carousel-source .tmp-modal__media--gallery,
  .tmp-modal__panel--carousel .tmp-modal__media--gallery{
    height:44vh!important;
    border-radius:var(--tmp-modal-radius,var(--tmp-car-modal-radius,24px)) var(--tmp-modal-radius,var(--tmp-car-modal-radius,24px)) 0 0!important;
  }
  .tmp-modal--carousel-source .tmp-modal__body,
  .tmp-modal__panel--carousel .tmp-modal__body{
    padding:24px!important;
    overflow:visible!important;
    height:auto!important;
  }
}

/* =========================================================
   TEHIA v5.37 — Carrusel móvil nativo + modal full viewport
   ========================================================= */
html body .tmp-cat-carousel--pro{
  overflow:hidden !important;
  max-width:100% !important;
  contain:none !important;
  isolation:isolate;
}
html body .tmp-cat-carousel--pro .tmp-car-track{
  display:flex !important;
  flex-wrap:nowrap !important;
  gap:var(--tmp-car-gap,32px) !important;
  width:100% !important;
  max-width:100% !important;
  min-width:0 !important;
  overflow-x:auto !important;
  overflow-y:visible !important;
  transform:none !important;
  transition:none !important;
  scroll-snap-type:x mandatory !important;
  scroll-behavior:smooth !important;
  -webkit-overflow-scrolling:touch !important;
  overscroll-behavior-x:contain !important;
  touch-action:pan-x pan-y !important;
  padding:10px 0 28px !important;
  margin:0 !important;
  scrollbar-width:none !important;
}
html body .tmp-cat-carousel--pro .tmp-car-track::-webkit-scrollbar{display:none !important;}
html body .tmp-cat-carousel--pro .tmp-car-item--product{
  flex:0 0 var(--tmp-car-card-w,360px) !important;
  width:var(--tmp-car-card-w,360px) !important;
  min-width:var(--tmp-car-card-w,360px) !important;
  max-width:var(--tmp-car-card-w,360px) !important;
  scroll-snap-align:start !important;
  scroll-snap-stop:normal !important;
  overflow:visible !important;
}
html body .tmp-cat-carousel--pro .tmp-car-card-btn{
  overflow:hidden !important;
  border-radius:var(--tmp-car-card-radius,28px) !important;
}
html body .tmp-cat-carousel--pro.is-touch-dragging .tmp-car-card-btn{pointer-events:none !important;}
html body .tmp-cat-carousel--pro .tmp-car-arrow{
  z-index:12 !important;
  -webkit-tap-highlight-color:transparent;
}
html body .tmp-cat-carousel--pro .tmp-car-arrow.is-disabled,
html body .tmp-cat-carousel--pro .tmp-car-arrow:disabled{
  opacity:.32 !important;
  pointer-events:none !important;
}

/* El modal debe quedar por encima del menú/header y no quedar atrapado por el carrusel */
html body .tmp-modal,
html body .tmp-cat-carousel--pro .tmp-modal{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483000 !important;
  max-width:none !important;
  max-height:none !important;
  overflow:hidden !important;
  background:transparent !important;
  contain:none !important;
  transform:none !important;
}
html body .tmp-modal.is-open,
html body .tmp-modal.is-editor-preview{display:block !important;}
html body .tmp-modal__backdrop{
  position:absolute !important;
  inset:0 !important;
  background:rgba(0,0,0,.78) !important;
  backdrop-filter:blur(6px) !important;
}
html body .tmp-modal__dialog{
  position:absolute !important;
  inset:0 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  padding:clamp(12px,2vw,28px) !important;
  pointer-events:none !important;
  max-width:none !important;
  max-height:none !important;
  overflow:hidden !important;
}
html body .tmp-modal__panel,
html body .tmp-modal__panel--carousel,
html body .tmp-modal--carousel-source .tmp-modal__panel{
  pointer-events:auto !important;
  background:var(--tmp-modal-bg,var(--tmp-car-modal-bg,#050505)) !important;
  color:var(--tmp-modal-text,var(--tmp-car-modal-text,#fff)) !important;
  border-radius:var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) !important;
  width:min(1320px,95vw) !important;
  height:min(700px,88vh) !important;
  max-height:88vh !important;
  display:grid !important;
  grid-template-columns:minmax(390px,47%) minmax(420px,53%) !important;
  gap:0 !important;
  overflow:hidden !important;
  box-shadow:0 24px 70px rgba(0,0,0,.35) !important;
}
html body .tmp-modal__media--gallery,
html body .tmp-modal__panel--carousel .tmp-modal__media--gallery{
  height:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
  border-radius:var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) 0 0 var(--tmp-modal-radius,var(--tmp-car-modal-radius,32px)) !important;
}
html body .tmp-modal__media--gallery > img,
html body .tmp-modal__panel--carousel .tmp-modal__media--gallery > img{
  width:100% !important;
  height:100% !important;
  object-fit:cover !important;
  object-position:center !important;
  display:block !important;
}
html body .tmp-modal__body,
html body .tmp-modal__panel--carousel .tmp-modal__body{
  height:100% !important;
  min-height:0 !important;
  overflow:hidden !important;
  padding:clamp(28px,3.6vw,54px) clamp(30px,4.2vw,66px) !important;
  display:flex !important;
  flex-direction:column !important;
  justify-content:center !important;
  gap:clamp(8px,1.25vh,15px) !important;
}
html body .tmp-modal__title,
html body .tmp-modal__panel--carousel .tmp-modal__title{
  font-size:clamp(36px,4vw,64px) !important;
  line-height:.92 !important;
  letter-spacing:-.055em !important;
  margin:0 !important;
  max-width:100% !important;
}
html body .tmp-modal__subtitle,
html body .tmp-modal__panel--carousel .tmp-modal__subtitle{
  font-size:clamp(15px,1.15vw,22px) !important;
  line-height:1.16 !important;
  margin:0 !important;
  max-width:100% !important;
}
html body .tmp-modal__specs,
html body .tmp-modal__panel--carousel .tmp-modal__specs{
  background:var(--tmp-modal-specs-bg,rgba(255,255,255,.16)) !important;
  color:var(--tmp-modal-specs-color,currentColor) !important;
  font-size:var(--tmp-modal-specs-size,clamp(12px,.9vw,15px)) !important;
  font-weight:var(--tmp-modal-specs-weight,700) !important;
  line-height:1.18 !important;
  padding:clamp(11px,1.2vw,18px) clamp(14px,1.7vw,24px) !important;
  border-radius:14px !important;
  margin:0 !important;
  max-height:none !important;
  overflow:visible !important;
}
html body .tmp-modal__description,
html body .tmp-modal__panel--carousel .tmp-modal__description{
  color:var(--tmp-car-modal-desc-color,currentColor) !important;
  font-size:clamp(13px,.95vw,16px) !important;
  line-height:1.26 !important;
  margin:0 !important;
  max-height:none !important;
  overflow:visible !important;
  max-width:100% !important;
}
html body .tmp-modal__gallery-inline,
html body .tmp-modal__panel--carousel .tmp-modal__gallery-inline{margin-top:2px !important;}
html body .tmp-modal__thumbs,
html body .tmp-modal__panel--carousel .tmp-modal__thumbs{gap:10px !important;margin-top:8px !important;}
html body .tmp-modal__thumbs button,
html body .tmp-modal__panel--carousel .tmp-modal__thumbs button{width:66px !important;height:52px !important;flex:0 0 66px !important;}
html body .tmp-modal__actions,
html body .tmp-modal__panel--carousel .tmp-modal__actions{
  display:flex !important;
  flex-wrap:wrap !important;
  gap:12px !important;
  margin-top:clamp(6px,1vh,14px) !important;
}
html body .tmp-modal__cta,
html body .tmp-modal__panel--carousel .tmp-modal__cta{
  min-height:48px !important;
  padding:12px 22px !important;
  border-radius:999px !important;
  white-space:nowrap !important;
}
html body .tmp-modal__close{
  z-index:5 !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:52px !important;
  height:52px !important;
  line-height:1 !important;
  padding:0 !important;
}
html body .tmp-modal__close span{
  display:block !important;
  line-height:1 !important;
  transform:translateY(-1px) !important;
}

@media (max-width:767px){
  html body .tmp-cat-carousel--pro{
    padding-left:18px !important;
    padding-right:18px !important;
  }
  html body .tmp-cat-carousel--pro .tmp-car-track{
    overflow-x:auto !important;
    overflow-y:visible !important;
    transform:none !important;
    width:100% !important;
    max-width:100% !important;
    padding:8px 0 26px !important;
    scroll-padding-left:0 !important;
  }
  html body .tmp-cat-carousel--pro .tmp-car-item--product{
    flex-basis:min(var(--tmp-car-card-w,78vw),82vw) !important;
    width:min(var(--tmp-car-card-w,78vw),82vw) !important;
    min-width:min(var(--tmp-car-card-w,78vw),82vw) !important;
    max-width:min(var(--tmp-car-card-w,78vw),82vw) !important;
  }
  html body .tmp-cat-carousel--pro .tmp-car-arrow{
    top:58% !important;
  }
  html body .tmp-modal__dialog{
    padding:10px !important;
    align-items:flex-start !important;
    overflow:hidden !important;
  }
  html body .tmp-modal__panel,
  html body .tmp-modal__panel--carousel,
  html body .tmp-modal--carousel-source .tmp-modal__panel{
    width:calc(100vw - 20px) !important;
    height:auto !important;
    max-height:calc(100dvh - 20px) !important;
    display:flex !important;
    flex-direction:column !important;
    overflow:auto !important;
    border-radius:24px !important;
  }
  html body .tmp-modal__media--gallery,
  html body .tmp-modal__panel--carousel .tmp-modal__media--gallery{
    height:min(48dvh,430px) !important;
    min-height:300px !important;
    flex:0 0 auto !important;
    border-radius:24px 24px 0 0 !important;
  }
  html body .tmp-modal__body,
  html body .tmp-modal__panel--carousel .tmp-modal__body{
    height:auto !important;
    min-height:auto !important;
    overflow:visible !important;
    padding:22px 22px 26px !important;
    justify-content:flex-start !important;
    gap:12px !important;
  }
  html body .tmp-modal__title,
  html body .tmp-modal__panel--carousel .tmp-modal__title{
    font-size:clamp(42px,13vw,62px) !important;
    line-height:.92 !important;
  }
  html body .tmp-modal__subtitle,
  html body .tmp-modal__panel--carousel .tmp-modal__subtitle{
    font-size:20px !important;
    line-height:1.18 !important;
  }
  html body .tmp-modal__specs,
  html body .tmp-modal__panel--carousel .tmp-modal__specs{
    font-size:16px !important;
    line-height:1.28 !important;
    padding:16px !important;
  }
  html body .tmp-modal__description,
  html body .tmp-modal__panel--carousel .tmp-modal__description{
    font-size:16px !important;
    line-height:1.36 !important;
  }
  html body .tmp-modal__thumbs button,
  html body .tmp-modal__panel--carousel .tmp-modal__thumbs button{width:72px !important;height:58px !important;flex-basis:72px !important;}
  html body .tmp-modal__actions,
  html body .tmp-modal__panel--carousel .tmp-modal__actions{gap:10px !important;}
  html body .tmp-modal__cta,
  html body .tmp-modal__panel--carousel .tmp-modal__cta{min-height:48px !important;padding:12px 18px !important;font-size:14px !important;}
  html body .tmp-modal__close{right:14px !important;top:14px !important;width:54px !important;height:54px !important;}
}


/* ========================================================================
   v5.38 — Menú: toggle abajo centrado + scroll sin barra visible.
            Footer reveal: aparece cerca del final con transición suave.
   ======================================================================== */

/* Todos los menús laterales: el scroll funciona, pero la barra no se ve */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__inner,
html body .tmp-menu-only .tmp-cat-sidebar__inner,
html body .tmp-cat-sidebar__inner,
html body .tmp-cat-topbar__scroll,
html body .tmp-menu-only .tmp-cat-topbar__scroll,
html body .tmp-cat-topbar__custom,
html body .tmp-float-menu {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__inner::-webkit-scrollbar,
html body .tmp-menu-only .tmp-cat-sidebar__inner::-webkit-scrollbar,
html body .tmp-cat-sidebar__inner::-webkit-scrollbar,
html body .tmp-cat-topbar__scroll::-webkit-scrollbar,
html body .tmp-menu-only .tmp-cat-topbar__scroll::-webkit-scrollbar,
html body .tmp-cat-topbar__custom::-webkit-scrollbar,
html body .tmp-float-menu::-webkit-scrollbar {
  width: 0 !important;
  height: 0 !important;
  display: none !important;
  background: transparent !important;
}

/* Toggle/flechita del menú lateral: abajo, centrado, sin molestar al producto */
html body .tmp-portfolio--pinterest .tmp-cat-sidebar,
html body .tmp-menu-only .tmp-cat-sidebar {
  padding-bottom: 34px !important;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__toggle,
html body .tmp-menu-only .tmp-cat-sidebar__toggle,
html body .tmp-cat-sidebar__toggle {
  top: auto !important;
  right: auto !important;
  bottom: 10px !important;
  left: 50% !important;
  transform: translateX(-50%) !important;
  z-index: 35 !important;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__toggle:hover,
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__toggle:focus-visible,
html body .tmp-menu-only .tmp-cat-sidebar__toggle:hover,
html body .tmp-menu-only .tmp-cat-sidebar__toggle:focus-visible,
html body .tmp-cat-sidebar__toggle:hover,
html body .tmp-cat-sidebar__toggle:focus-visible {
  transform: translateX(-50%) scale(1.08) !important;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar.is-minimized .tmp-cat-sidebar__toggle,
html body .tmp-menu-only .tmp-cat-sidebar.is-minimized .tmp-cat-sidebar__toggle {
  bottom: 8px !important;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar.is-expanded .tmp-cat-sidebar__toggle,
html body .tmp-menu-only .tmp-cat-sidebar.is-expanded .tmp-cat-sidebar__toggle {
  bottom: 12px !important;
}
html body .tmp-portfolio--pinterest .tmp-cat-sidebar__inner,
html body .tmp-menu-only .tmp-cat-sidebar__inner {
  padding-right: 0 !important;
  padding-bottom: 6px !important;
}

/* Mobile/topbar: scroll horizontal limpio sin barra visible */
@media (max-width: 767px) {
  html body .tmp-cat-topbar__scroll {
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
    -ms-overflow-style: none !important;
  }
}

/* Footer reveal más profesional: oculto hasta llegar al final y aparición más suave */
html body .tmp-footer-reveal,
html body .tmp-footer-reveal.tmp-footer-reveal--theia {
  transform: translate3d(0, 108%, 0) !important;
  opacity: 0 !important;
  pointer-events: none !important;
  will-change: transform, opacity !important;
  transition:
    transform .95s cubic-bezier(.16, 1, .3, 1),
    opacity .72s ease,
    box-shadow .72s ease !important;
}
html body .tmp-footer-reveal.is-visible,
html body .tmp-footer-reveal.tmp-footer-reveal--theia.is-visible {
  transform: translate3d(0, 0, 0) !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}
html body.elementor-editor-active .tmp-footer-reveal,
html body.elementor-editor-active .tmp-footer-reveal.tmp-footer-reveal--theia {
  position: relative !important;
  transform: none !important;
  opacity: 1 !important;
  pointer-events: auto !important;
}

/* Seguridad: el footer no muestra barra propia salvo en mobile si el contenido no entra */
html body .tmp-footer-reveal.tmp-footer-reveal--theia {
  scrollbar-width: none !important;
  -ms-overflow-style: none !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia::-webkit-scrollbar {
  display: none !important;
  width: 0 !important;
  height: 0 !important;
}


/* ========================================================================
   v5.39 — Footer reveal progresivo + alineación desktop de menú
   ======================================================================== */
html body .tmp-footer-reveal.tmp-footer-reveal--theia{
  transform:translateY(var(--tmp-footer-offset,112%)) !important;
  opacity:var(--tmp-footer-opacity,0) !important;
  transition:transform .9s cubic-bezier(.19,1,.22,1), opacity .55s ease !important;
  will-change:transform,opacity !important;
  pointer-events:none !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.is-visible{
  pointer-events:auto !important;
}
html body.elementor-editor-active .tmp-footer-reveal.tmp-footer-reveal--theia{
  transform:none !important;
  opacity:1 !important;
  pointer-events:auto !important;
}

/* Menú lateral desktop: mejor alineación inicial con la grilla/carrusel. */
@media (min-width: 901px){
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar{
    align-self:start !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-sidebar{
    top:96px !important;
    left:24px !important;
  }
}

/* Menús: ocultar scrollbar visual sin quitar el scroll táctil/mouse. */
html body .tmp-cat-sidebar__inner,
html body .tmp-cat-sidebar,
html body .tmp-cat-topbar__scroll,
html body .tmp-menu-only .tmp-cat-sidebar__inner{
  scrollbar-width:none !important;
  -ms-overflow-style:none !important;
}
html body .tmp-cat-sidebar__inner::-webkit-scrollbar,
html body .tmp-cat-sidebar::-webkit-scrollbar,
html body .tmp-cat-topbar__scroll::-webkit-scrollbar,
html body .tmp-menu-only .tmp-cat-sidebar__inner::-webkit-scrollbar{
  width:0 !important;
  height:0 !important;
  display:none !important;
}


/* ========================================================================
   v5.40 — Footer reveal por scroll sin fade + modo fijo/estático
   ======================================================================== */
html body .tmp-footer-reveal.tmp-footer-reveal--theia{
  opacity:1 !important;
  transform:translate3d(0,var(--tmp-footer-offset,112%),0) !important;
  transition:none !important;
  will-change:transform !important;
  pointer-events:none !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.is-visible{
  opacity:1 !important;
  pointer-events:auto !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-fixed{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  transform:translate3d(0,0,0) !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-static{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  transform:none !important;
  opacity:1 !important;
  pointer-events:auto !important;
}
html body.elementor-editor-active .tmp-footer-reveal.tmp-footer-reveal--theia{
  position:relative !important;
  transform:none !important;
  opacity:1 !important;
  pointer-events:auto !important;
}


/* ========================================================================
   v5.41 — Footer reveal real fijo debajo de la página
   ------------------------------------------------------------------------
   El footer en modo reveal queda fixed debajo del viewport y se descubre
   con el avance real sobre un spacer final. Sin fade, sin aparición brusca.
   ======================================================================== */
html body .tmp-footer-reveal-spacer{
  display:block !important;
  width:100% !important;
  height:var(--tmp-footer-spacer-height,0px) !important;
  min-height:0 !important;
  pointer-events:none !important;
  background:transparent !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  z-index:80 !important;
  opacity:1 !important;
  transform:translate3d(0,var(--tmp-footer-reveal-y,105%),0) !important;
  transition:none !important;
  will-change:transform !important;
  pointer-events:none !important;
  max-height:min(92dvh, calc(100vh - 24px)) !important;
  overflow:auto !important;
  -webkit-overflow-scrolling:touch !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal.is-visible{
  pointer-events:auto !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-fixed{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  z-index:80 !important;
  opacity:1 !important;
  transform:translate3d(0,0,0) !important;
  transition:none !important;
  pointer-events:auto !important;
  max-height:min(92dvh, calc(100vh - 24px)) !important;
  overflow:auto !important;
  -webkit-overflow-scrolling:touch !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-static{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  top:auto !important;
  z-index:auto !important;
  transform:none !important;
  opacity:1 !important;
  pointer-events:auto !important;
  max-height:none !important;
  overflow:visible !important;
}
html body.elementor-editor-active .tmp-footer-reveal.tmp-footer-reveal--theia,
html body.elementor-editor-preview .tmp-footer-reveal.tmp-footer-reveal--theia{
  position:relative !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  top:auto !important;
  transform:none !important;
  opacity:1 !important;
  pointer-events:auto !important;
  max-height:none !important;
  overflow:visible !important;
}
html body.elementor-editor-active .tmp-footer-reveal-spacer,
html body.elementor-editor-preview .tmp-footer-reveal-spacer{
  display:none !important;
}


/* ========================================================================
   v5.42 — Footer reveal suave + modal por encima del menú + cierre clickeable
   ======================================================================== */
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  z-index:80 !important;
  opacity:1 !important;
  transform:translate3d(0,var(--tmp-footer-reveal-y,112%),0) !important;
  transition:none !important;
  will-change:transform !important;
  max-height:min(92dvh, calc(100vh - 24px)) !important;
  overflow:auto !important;
  -webkit-overflow-scrolling:touch !important;
  contain:layout paint style !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal.is-visible{
  opacity:1 !important;
}
html body .tmp-footer-reveal-spacer{
  display:block !important;
  height:var(--tmp-footer-spacer-height,0px) !important;
  min-height:0 !important;
  width:100% !important;
  flex:0 0 auto !important;
  pointer-events:none !important;
  background:transparent !important;
}

/* Que cualquier modal quede sobre menús, headers sticky, topbars y widgets flotantes. */
html body .tmp-modal,
html body .tmp-modal.is-open,
html body .tmp-modal[aria-hidden="false"],
html body .tmp-modal-pro,
html body .tmp-modal-pro.is-open,
html body .tmp-modal-pro[aria-hidden="false"],
html body .tmp-cat-carousel--pro .tmp-modal-pro[aria-hidden="false"],
html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"]{
  position:fixed !important;
  inset:0 !important;
  z-index:2147483600 !important;
  isolation:isolate !important;
  transform:none !important;
  contain:none !important;
}
html body .tmp-modal__backdrop,
html body .tmp-modal-pro__shade{
  z-index:0 !important;
}
html body .tmp-modal__dialog,
html body .tmp-modal-pro__dialog{
  position:absolute !important;
  inset:0 !important;
  z-index:1 !important;
}
html body .tmp-modal__panel,
html body .tmp-modal-pro__inner{
  position:relative !important;
  z-index:2 !important;
}
html body .tmp-modal__close,
html body .tmp-modal-pro__close,
html body .tmp-modal [data-tmp-close],
html body .tmp-modal-pro [data-tmp-pro-close]{
  pointer-events:auto !important;
  cursor:pointer !important;
  z-index:2147483602 !important;
}
html body .tmp-modal__close{
  display:grid !important;
  place-items:center !important;
  line-height:1 !important;
  text-align:center !important;
}
html body .tmp-modal__close svg,
html body .tmp-modal-pro__close svg{
  pointer-events:none !important;
}

/* En mobile, el modal no debe quedar por debajo de la barra superior del template. */
@media(max-width:767px){
  html body .tmp-modal.is-open,
  html body .tmp-modal[aria-hidden="false"],
  html body .tmp-modal-pro.is-open,
  html body .tmp-modal-pro[aria-hidden="false"]{
    z-index:2147483600 !important;
  }
  html body .tmp-modal__dialog,
  html body .tmp-modal-pro__dialog{
    padding-top:10px !important;
  }
}


/* ========================================================================
   v5.43 — Modal layer hard-fix: evita modal blureada / panel debajo del backdrop
   ------------------------------------------------------------------------
   Fix defensivo: el overlay queda abajo, el dialog/panel siempre arriba del
   backdrop y del menú. No cambia la grilla ni el carrusel.
   ======================================================================== */
html body .tmp-modal.is-open,
html body .tmp-modal[aria-hidden="false"],
html body .tmp-modal.is-editor-preview {
  position: fixed !important;
  inset: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: 100vw !important;
  height: 100dvh !important;
  max-width: none !important;
  max-height: none !important;
  overflow: hidden !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  z-index: 2147483600 !important;
  isolation: isolate !important;
  contain: none !important;
  transform: none !important;
  filter: none !important;
  -webkit-filter: none !important;
  background: transparent !important;
}

html body .tmp-modal.is-open > .tmp-modal__backdrop,
html body .tmp-modal[aria-hidden="false"] > .tmp-modal__backdrop,
html body .tmp-modal.is-editor-preview > .tmp-modal__backdrop {
  position: fixed !important;
  inset: 0 !important;
  z-index: 0 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  background: rgba(0,0,0,.74) !important;
  -webkit-backdrop-filter: blur(7px) saturate(.92) !important;
  backdrop-filter: blur(7px) saturate(.92) !important;
  transform: none !important;
}

html body .tmp-modal.is-open > .tmp-modal__dialog,
html body .tmp-modal[aria-hidden="false"] > .tmp-modal__dialog,
html body .tmp-modal.is-editor-preview > .tmp-modal__dialog {
  position: relative !important;
  inset: auto !important;
  z-index: 2 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  width: min(var(--tmp-modal-editor-width, 1320px), calc(100vw - 28px)) !important;
  height: auto !important;
  max-width: calc(100vw - 28px) !important;
  max-height: calc(100dvh - 28px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: visible !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: none !important;
  transform: none !important;
  filter: none !important;
  -webkit-filter: none !important;
  background: transparent !important;
  isolation: isolate !important;
}

html body .tmp-modal.is-open .tmp-modal__panel,
html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
html body .tmp-modal.is-editor-preview .tmp-modal__panel {
  position: relative !important;
  z-index: 3 !important;
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
  filter: none !important;
  -webkit-filter: none !important;
  -webkit-backdrop-filter: none !important;
  backdrop-filter: none !important;
  transform: none !important;
  overflow: hidden !important;
  max-width: 100% !important;
  max-height: calc(100dvh - 28px) !important;
}

html body .tmp-modal.is-open .tmp-modal__close,
html body .tmp-modal[aria-hidden="false"] .tmp-modal__close,
html body .tmp-modal.is-editor-preview .tmp-modal__close {
  position: absolute !important;
  z-index: 10 !important;
  display: grid !important;
  place-items: center !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  line-height: 1 !important;
  text-align: center !important;
}

html body .tmp-modal.is-open .tmp-modal__close span,
html body .tmp-modal[aria-hidden="false"] .tmp-modal__close span {
  display: block !important;
  line-height: 1 !important;
  pointer-events: none !important;
  transform: translateY(-1px) !important;
}

/* Mobile: el panel queda por encima de la topbar y nunca detrás del backdrop. */
@media (max-width: 767px) {
  html body .tmp-modal.is-open,
  html body .tmp-modal[aria-hidden="false"],
  html body .tmp-modal.is-editor-preview {
    align-items: center !important;
    justify-content: center !important;
    padding: 10px !important;
  }
  html body .tmp-modal.is-open > .tmp-modal__dialog,
  html body .tmp-modal[aria-hidden="false"] > .tmp-modal__dialog,
  html body .tmp-modal.is-editor-preview > .tmp-modal__dialog {
    width: calc(100vw - 20px) !important;
    max-width: calc(100vw - 20px) !important;
    max-height: calc(100dvh - 20px) !important;
  }
  html body .tmp-modal.is-open .tmp-modal__panel,
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-modal.is-editor-preview .tmp-modal__panel {
    width: 100% !important;
    max-height: calc(100dvh - 20px) !important;
    overflow: auto !important;
    -webkit-overflow-scrolling: touch !important;
  }
}

/* Si algún header/menú usa z-index extremo, la modal sigue arriba. */
html body .tmp-cat-carousel--pro .tmp-modal.is-open,
html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"],
html body .tmp-portfolio .tmp-modal.is-open,
html body .tmp-portfolio .tmp-modal[aria-hidden="false"] {
  z-index: 2147483600 !important;
}


/* ========================================================================
   v5.44 — Lightbox sobre modal + cierre sincronizado
   ------------------------------------------------------------------------
   El lightbox de imágenes debe estar por encima de cualquier modal. Además,
   al cerrar la modal se fuerza el cierre del lightbox para evitar que quede
   activo detrás del panel.
   ======================================================================== */
html body .tmp-lightbox,
html body .tmp-lightbox.is-open {
  z-index: 2147483646 !important;
  position: fixed !important;
  inset: 0 !important;
  isolation: isolate !important;
}
html body .tmp-lightbox.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
html body .tmp-lightbox__close,
html body .tmp-lightbox__arrow,
html body .tmp-lightbox__counter,
html body .tmp-lightbox__stage {
  z-index: 2147483647 !important;
}
html body.tmp-lightbox-lock .tmp-modal.is-open .tmp-modal__panel,
html body.tmp-lightbox-lock .tmp-modal[aria-hidden="false"] .tmp-modal__panel {
  pointer-events: none !important;
}

/* v5.45 — Lightbox singleton estable */
html body .tmp-lightbox {
  position: fixed !important;
  inset: 0 !important;
  z-index: 2147483646 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: rgba(0,0,0,.94) !important;
  opacity: 0 !important;
  visibility: hidden !important;
  pointer-events: none !important;
  isolation: isolate !important;
}
html body .tmp-lightbox.is-open {
  opacity: 1 !important;
  visibility: visible !important;
  pointer-events: auto !important;
}
html body .tmp-lightbox__stage {
  position: relative !important;
  z-index: 2 !important;
  width: 100vw !important;
  height: 100dvh !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  pointer-events: auto !important;
}
html body .tmp-lightbox__img {
  max-width: min(96vw, 1680px) !important;
  max-height: 92dvh !important;
  width: auto !important;
  height: auto !important;
  object-fit: contain !important;
  display: block !important;
}
html body .tmp-lightbox__close,
html body .tmp-lightbox__arrow,
html body .tmp-lightbox__counter {
  position: fixed !important;
  z-index: 2147483647 !important;
  pointer-events: auto !important;
}
html body .tmp-lightbox__close {
  top: 18px !important;
  right: 18px !important;
  width: 56px !important;
  height: 56px !important;
  border-radius: 999px !important;
  border: 0 !important;
  display: grid !important;
  place-items: center !important;
  background: #fff !important;
  color: #000 !important;
  cursor: pointer !important;
}
html body .tmp-lightbox__arrow {
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: 58px !important;
  height: 58px !important;
  border-radius: 999px !important;
  border: 1px solid rgba(255,255,255,.42) !important;
  display: grid !important;
  place-items: center !important;
  background: rgba(255,255,255,.1) !important;
  color: #fff !important;
  cursor: pointer !important;
}
html body .tmp-lightbox__arrow--prev { left: 22px !important; }
html body .tmp-lightbox__arrow--next { right: 22px !important; }
html body .tmp-lightbox__counter {
  left: 50% !important;
  bottom: 18px !important;
  transform: translateX(-50%) !important;
  color: #fff !important;
  font: 700 13px/1.1 system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  letter-spacing: .08em !important;
  background: rgba(0,0,0,.35) !important;
  border-radius: 999px !important;
  padding: 9px 14px !important;
}
html body.tmp-lightbox-lock .tmp-modal.is-open .tmp-modal__panel,
html body.tmp-lightbox-lock .tmp-modal[aria-hidden="false"] .tmp-modal__panel {
  pointer-events: none !important;
}
@media (max-width: 767px){
  html body .tmp-lightbox__img { max-width: 100vw !important; max-height: 88dvh !important; }
  html body .tmp-lightbox__arrow { width: 46px !important; height: 46px !important; }
  html body .tmp-lightbox__arrow--prev { left: 10px !important; }
  html body .tmp-lightbox__arrow--next { right: 10px !important; }
  html body .tmp-lightbox__close { width: 48px !important; height: 48px !important; top: 12px !important; right: 12px !important; }
}

/* v5.49 — Modal compacta + lightbox singleton estable */
html body .tmp-modal.is-open {
  z-index: 2147483000 !important;
}
html body .tmp-modal__dialog {
  width: min(94vw, 1520px) !important;
  height: min(86vh, 760px) !important;
  max-width: min(94vw, 1520px) !important;
  max-height: 86vh !important;
  margin: auto !important;
  padding: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}
html body .tmp-modal__panel,
html body [data-tmp-modal-content].tmp-modal__panel,
html body .tmp-modal__panel--carousel {
  width: 100% !important;
  height: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(320px, 42%) minmax(360px, 58%) !important;
  gap: var(--tmp-modal-content-gap, 20px) !important;
  align-items: stretch !important;
  overflow: hidden !important;
  border-radius: var(--tmp-grid-modal-radius, var(--tmp-modal-radius, 34px)) !important;
  background: var(--tmp-grid-modal-bg, var(--tmp-car-modal-bg, var(--tmp-modal-bg, #050505))) !important;
  color: var(--tmp-grid-modal-text, var(--tmp-car-modal-text, var(--tmp-modal-text, #fff))) !important;
  box-sizing: border-box !important;
}
html body .tmp-modal__media,
html body .tmp-modal__media--gallery {
  width: 100% !important;
  min-width: 0 !important;
  height: 100% !important;
  min-height: 0 !important;
  overflow: hidden !important;
  border-radius: var(--tmp-grid-image-radius, 24px) !important;
  cursor: zoom-in;
}
html body .tmp-modal__media--gallery > img[data-tmp-modal-main],
html body .tmp-modal__media--gallery > img,
html body .tmp-modal__media img {
  width: 100% !important;
  height: 100% !important;
  object-fit: var(--tmp-modal-image-fit, cover) !important;
  display: block !important;
}
html body .tmp-modal__body {
  min-width: 0 !important;
  min-height: 0 !important;
  height: 100% !important;
  overflow: auto !important;
  scrollbar-width: thin;
  display: flex !important;
  flex-direction: column !important;
  justify-content: center !important;
  gap: clamp(8px, 1.15vh, 16px) !important;
  padding: var(--tmp-car-modal-body-padding, var(--tmp-grid-modal-body-padding, 34px 42px)) !important;
  box-sizing: border-box !important;
}
html body .tmp-modal__title {
  margin: 0 !important;
  font-size: clamp(34px, 4.1vw, 68px) !important;
  line-height: .92 !important;
  color: var(--tmp-grid-modal-title, inherit) !important;
}
html body .tmp-modal__subtitle,
html body .tmp-modal__description {
  margin: 0 !important;
  color: var(--tmp-car-modal-desc-color, var(--tmp-grid-modal-text, inherit)) !important;
  font-size: clamp(15px, 1.2vw, 20px) !important;
  line-height: 1.35 !important;
}
html body .tmp-modal__specs {
  margin: 0 !important;
  background: var(--tmp-grid-specs-bg, var(--tmp-modal-specs-bg, rgba(255,255,255,.16))) !important;
  color: var(--tmp-grid-specs-color, var(--tmp-modal-specs-color, inherit)) !important;
  font-size: var(--tmp-grid-specs-font-size, var(--tmp-modal-specs-size, clamp(14px, 1.05vw, 18px))) !important;
  font-weight: var(--tmp-grid-specs-font-weight, var(--tmp-modal-specs-weight, 700)) !important;
  line-height: var(--tmp-grid-specs-line-height, 1.15) !important;
  padding: 14px 18px !important;
  border-radius: 10px !important;
  max-height: 5.2em !important;
  overflow: hidden !important;
}
html body .tmp-modal__gallery-inline { margin-top: 4px !important; }
html body .tmp-modal__thumbs { gap: 10px !important; overflow-x: auto !important; padding-bottom: 2px !important; }
html body .tmp-modal__thumbs button {
  width: var(--tmp-modal-thumb-size, 78px) !important;
  flex: 0 0 var(--tmp-modal-thumb-size, 78px) !important;
  height: calc(var(--tmp-modal-thumb-size, 78px) * .66) !important;
}
html body .tmp-modal__actions { display: flex !important; gap: 12px !important; flex-wrap: wrap !important; margin-top: 10px !important; }
html body .tmp-modal__cta { min-height: 44px !important; padding: 12px 24px !important; font-size: 15px !important; }
html body .tmp-modal__close {
  z-index: 2147483100 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  pointer-events: auto !important;
}
html body .tmp-modal__close span { display: block; line-height: 1; transform: translateY(-1px); }

.tmp-lightbox-singleton {
  position: fixed;
  inset: 0;
  z-index: 2147483600;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,.94);
  padding: 44px;
  box-sizing: border-box;
}
.tmp-lightbox-singleton.is-open { display: flex; }
.tmp-lightbox-singleton__img {
  max-width: min(94vw, 1500px);
  max-height: 88vh;
  width: auto;
  height: auto;
  object-fit: contain;
  display: block;
}
.tmp-lightbox-singleton__close,
.tmp-lightbox-singleton__nav {
  position: absolute;
  z-index: 2;
  width: 58px;
  height: 58px;
  border-radius: 999px;
  border: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(255,255,255,.92);
  color: #000;
  font-size: 34px;
  line-height: 1;
  cursor: pointer;
}
.tmp-lightbox-singleton__close { right: 22px; top: 22px; }
.tmp-lightbox-singleton__nav--prev { left: 22px; top: 50%; transform: translateY(-50%); }
.tmp-lightbox-singleton__nav--next { right: 22px; top: 50%; transform: translateY(-50%); }
body.tmp-lightbox-lock { overflow: hidden !important; }

@media (max-width: 767px) {
  html body .tmp-modal__dialog {
    width: min(92vw, 680px) !important;
    height: min(88vh, 860px) !important;
    max-height: 88vh !important;
  }
  html body .tmp-modal__panel,
  html body [data-tmp-modal-content].tmp-modal__panel,
  html body .tmp-modal__panel--carousel {
    display: flex !important;
    flex-direction: column !important;
    gap: 0 !important;
  }
  html body .tmp-modal__media,
  html body .tmp-modal__media--gallery {
    height: 48vh !important;
    min-height: 300px !important;
    flex: 0 0 auto !important;
    border-radius: var(--tmp-grid-image-radius, 22px) var(--tmp-grid-image-radius, 22px) 0 0 !important;
  }
  html body .tmp-modal__body {
    justify-content: flex-start !important;
    padding: 26px 28px 30px !important;
    overflow: auto !important;
  }
  html body .tmp-modal__title { font-size: clamp(42px, 11vw, 64px) !important; }
  .tmp-lightbox-singleton { padding: 18px; }
  .tmp-lightbox-singleton__close,
  .tmp-lightbox-singleton__nav { width: 48px; height: 48px; font-size: 30px; }
}


/* v5.50 — editor live fix para modal del carrusel
   No usamos valores inline viejos; todo sale de variables CSS dinámicas de Elementor. */
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel{
  background: var(--tmp-car-modal-bg, var(--tmp-modal-bg, #050505)) !important;
  color: var(--tmp-car-modal-text, var(--tmp-modal-text, #ffffff)) !important;
  border-radius: var(--tmp-car-modal-radius, var(--tmp-modal-radius, 34px)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__media--gallery{
  border-radius: var(--tmp-grid-image-radius, var(--tmp-modal-image-radius, 24px)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__media--gallery > img[data-tmp-modal-main],
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__media--gallery > img{
  object-fit: var(--tmp-modal-image-fit, cover) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__body{
  padding: var(--tmp-car-modal-body-padding, var(--tmp-grid-modal-body-padding, 34px 42px)) !important;
  color: var(--tmp-car-modal-text, var(--tmp-modal-text, #ffffff)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__description,
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__subtitle{
  color: var(--tmp-car-modal-desc-color, var(--tmp-car-modal-text, var(--tmp-modal-text, #ffffff))) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__specs{
  background: var(--tmp-modal-specs-bg, rgba(255,255,255,.16)) !important;
  color: var(--tmp-modal-specs-color, inherit) !important;
  font-size: var(--tmp-modal-specs-size, clamp(14px, 1.05vw, 18px)) !important;
  font-weight: var(--tmp-modal-specs-weight, 700) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__cta--store{
  background: var(--tmp-modal-cta-bg, #2f281f) !important;
  color: var(--tmp-modal-cta-color, #ffffff) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__cta--category{
  color: var(--tmp-car-modal-text, var(--tmp-modal-text, #ffffff)) !important;
  border-color: currentColor !important;
}
body.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel--carousel,
body.elementor-editor-preview .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel--carousel{
  background: var(--tmp-car-modal-bg, var(--tmp-modal-bg, #050505)) !important;
  color: var(--tmp-car-modal-text, var(--tmp-modal-text, #ffffff)) !important;
  border-radius: var(--tmp-car-modal-radius, var(--tmp-modal-radius, 34px)) !important;
}


/* ========================================================================
   v5.54 — Drag & drop seguro del menú desktop
   ======================================================================== */
@media (min-width: 768px){
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar,
  html body .tmp-menu-only .tmp-cat-sidebar{
    cursor: grab;
    will-change: transform;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar.is-dragging,
  html body .tmp-menu-only .tmp-cat-sidebar.is-dragging{
    cursor: grabbing !important;
    user-select: none !important;
    transition: none !important;
    z-index: 9990 !important;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar a,
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar button,
  html body .tmp-menu-only .tmp-cat-sidebar a,
  html body .tmp-menu-only .tmp-cat-sidebar button{
    cursor: pointer;
  }
}
@media (max-width: 767px){
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar,
  html body .tmp-menu-only .tmp-cat-sidebar{
    transform: none !important;
    cursor: auto !important;
  }
}


/* ========================================================================
   v5.54 — Handle visible para arrastrar menú desktop
   ======================================================================== */
@media (min-width: 768px){
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar,
  html body .tmp-menu-only .tmp-cat-sidebar{
    position: relative;
  }
  html body .tmp-cat-sidebar__drag-handle{
    position: absolute !important;
    top: 10px !important;
    left: 50% !important;
    transform: translateX(-50%) !important;
    width: 42px !important;
    height: 24px !important;
    border: 0 !important;
    background: rgba(0,0,0,.06) !important;
    border-radius: 999px !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: grab !important;
    z-index: 12 !important;
    padding: 0 !important;
    opacity: .78 !important;
    transition: opacity .18s ease, background .18s ease, transform .18s ease !important;
    touch-action: none !important;
  }
  html body .tmp-cat-sidebar__drag-handle:hover{
    opacity: 1 !important;
    background: rgba(0,0,0,.12) !important;
    transform: translateX(-50%) translateY(-1px) !important;
  }
  html body .tmp-cat-sidebar.is-dragging .tmp-cat-sidebar__drag-handle{
    cursor: grabbing !important;
    background: rgba(0,0,0,.18) !important;
    opacity: 1 !important;
  }
  html body .tmp-cat-sidebar__drag-dots,
  html body .tmp-cat-sidebar__drag-dots::before,
  html body .tmp-cat-sidebar__drag-dots::after{
    width: 4px !important;
    height: 4px !important;
    border-radius: 50% !important;
    background: currentColor !important;
    color: #555 !important;
    display: block !important;
    box-shadow: 8px 0 0 currentColor, 16px 0 0 currentColor, 0 8px 0 currentColor, 8px 8px 0 currentColor, 16px 8px 0 currentColor !important;
    content: '' !important;
  }
  html body .tmp-cat-sidebar__drag-dots::before,
  html body .tmp-cat-sidebar__drag-dots::after{
    display:none !important;
  }
  html body .tmp-cat-sidebar.is-dragging,
  html body .tmp-cat-sidebar.is-dragging *{
    cursor: grabbing !important;
  }
  html body .tmp-cat-sidebar__inner{
    padding-top: max(var(--tmp-sidebar-inner-pad-top, 0px), 28px) !important;
  }
  html body .tmp-cat-sidebar__logo{
    margin-top: 6px !important;
  }
}
@media (max-width: 767px){
  html body .tmp-cat-sidebar__drag-handle{display:none !important;}
}


/* ========================================================================
   v5.54 — Corrección final drag handle desktop
   - Puntitos centrados visualmente.
   - Zona de arrastre claramente clickeable.
   - Cursor grabbing global mientras se arrastra.
   ======================================================================== */
@media (min-width: 768px){
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar,
  html body .tmp-menu-only .tmp-cat-sidebar{
    will-change: transform !important;
    touch-action: none;
  }

  html body .tmp-cat-sidebar__drag-handle{
    left: 50% !important;
    right: auto !important;
    top: 10px !important;
    width: 48px !important;
    height: 26px !important;
    transform: translateX(-50%) !important;
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: grab !important;
    pointer-events: auto !important;
    touch-action: none !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }

  html body .tmp-cat-sidebar__drag-handle:hover,
  html body .tmp-cat-sidebar__drag-handle:focus-visible{
    transform: translateX(-50%) translateY(-1px) !important;
  }

  html body .tmp-cat-sidebar__drag-dots{
    width: 25px !important;
    height: 16px !important;
    display: block !important;
    color: #5c5c5c !important;
    background: radial-gradient(circle, currentColor 2.35px, transparent 2.6px) 0 0 / 9px 9px !important;
    box-shadow: none !important;
    border-radius: 0 !important;
    content: none !important;
  }

  html body .tmp-cat-sidebar__drag-dots::before,
  html body .tmp-cat-sidebar__drag-dots::after{
    display: none !important;
    content: none !important;
    box-shadow: none !important;
    background: transparent !important;
  }

  html.tmp-is-dragging-menu,
  html.tmp-is-dragging-menu *,
  html body .tmp-cat-sidebar.is-dragging,
  html body .tmp-cat-sidebar.is-dragging *{
    cursor: grabbing !important;
    -webkit-user-select: none !important;
    user-select: none !important;
  }

  html body .tmp-cat-sidebar.is-dragging{
    transition: none !important;
    z-index: 2147482000 !important;
  }
}


/* ========================================================================
   v5.55 — Handle drag usable también en widget independiente
   ======================================================================== */
@media (min-width: 768px){
  html body .tmp-cat-sidebar[data-tmp-sidebar] .tmp-cat-sidebar__drag-handle{
    pointer-events: auto !important;
    cursor: grab !important;
    touch-action: none !important;
    user-select: none !important;
    -webkit-user-select: none !important;
    z-index: 999999 !important;
  }
  html body .tmp-cat-sidebar[data-tmp-sidebar] .tmp-cat-sidebar__drag-handle:active,
  html body .tmp-cat-sidebar[data-tmp-sidebar] .tmp-cat-sidebar__drag-handle.is-grabbing,
  html body .tmp-cat-sidebar[data-tmp-sidebar].is-dragging .tmp-cat-sidebar__drag-handle{
    cursor: grabbing !important;
  }
  html body .tmp-menu-only.tmp-menu-only--standalone .tmp-cat-sidebar[data-tmp-sidebar].is-dragging,
  html body .tmp-portfolio--pinterest .tmp-cat-sidebar[data-tmp-sidebar].is-dragging{
    transition: none !important;
    will-change: transform !important;
  }
  html body .tmp-cat-sidebar__drag-dots{
    margin: 0 auto !important;
    transform: translateX(0) !important;
  }
}

/* ========================================================================
   v5.56 — Drag estable + footer reveal por detrás de la página
   ======================================================================== */
html body .tmp-cat-sidebar[data-tmp-sidebar] [data-tmp-drag-handle]{
  touch-action:none !important;
  cursor:grab !important;
  display:flex !important;
  align-items:center !important;
  justify-content:center !important;
  margin-left:auto !important;
  margin-right:auto !important;
}
html body .tmp-cat-sidebar[data-tmp-sidebar] [data-tmp-drag-handle].is-grabbing,
html body .tmp-cat-sidebar[data-tmp-sidebar].is-dragging [data-tmp-drag-handle]{
  cursor:grabbing !important;
}
html.tmp-is-dragging-menu,
html.tmp-is-dragging-menu body{
  user-select:none !important;
  cursor:grabbing !important;
}
html body .tmp-cat-sidebar[data-tmp-sidebar].is-dragging{
  will-change:transform !important;
  transition:none !important;
}

/* Footer reveal clásico: el footer queda fijo detrás y el final transparente de la página lo descubre. */
html body .tmp-footer-reveal-spacer.tmp-footer-reveal-spacer--behind{
  display:block !important;
  width:100% !important;
  height:var(--tmp-footer-spacer-height,0px) !important;
  min-height:var(--tmp-footer-spacer-height,0px) !important;
  background:transparent !important;
  pointer-events:none !important;
  position:relative !important;
  z-index:1 !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal.is-behind-reveal{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  z-index:0 !important;
  opacity:1 !important;
  transform:none !important;
  transition:none !important;
  will-change:auto !important;
  pointer-events:auto !important;
  max-height:min(92dvh, calc(100vh - 18px)) !important;
  overflow:auto !important;
  -webkit-overflow-scrolling:touch !important;
}
html body.tmp-footer-behind-active #page,
html body.tmp-footer-behind-active .site,
html body.tmp-footer-behind-active .site-main,
html body.tmp-footer-behind-active main,
html body.tmp-footer-behind-active .elementor-location-single,
html body.tmp-footer-behind-active .elementor-location-archive,
html body.tmp-footer-behind-active .elementor-location-header,
html body.tmp-footer-behind-active .elementor-location-footer:not(:has(.tmp-footer-reveal)){
  position:relative !important;
  z-index:2 !important;
}
html body.elementor-editor-active .tmp-footer-reveal.tmp-footer-reveal--theia,
html body.elementor-editor-preview .tmp-footer-reveal.tmp-footer-reveal--theia{
  position:relative !important;
  z-index:1 !important;
  transform:none !important;
  opacity:1 !important;
  pointer-events:auto !important;
}


/* ========================================================================
   v5.57 — Footer reveal detrás de la página, sin overlay sobre la grilla
   ------------------------------------------------------------------------
   Corrige el caso donde el footer se veía por encima/entre las cards.
   El footer queda fijo en una capa baja y la página lo tapa hasta llegar
   al spacer final. No usa fade ni transform sobre el footer.
   ======================================================================== */
html body.tmp-footer-behind-active{
  background:#000 !important;
}
html body.tmp-footer-behind-active .site,
html body.tmp-footer-behind-active #page,
html body.tmp-footer-behind-active #content,
html body.tmp-footer-behind-active .site-content,
html body.tmp-footer-behind-active main,
html body.tmp-footer-behind-active .elementor-location-header,
html body.tmp-footer-behind-active .elementor-location-single,
html body.tmp-footer-behind-active .elementor-location-archive,
html body.tmp-footer-behind-active .elementor-location-footer,
html body.tmp-footer-behind-active .elementor:not(.elementor-location-footer .elementor){
  position:relative !important;
}
html body .tmp-footer-reveal-spacer.tmp-footer-reveal-spacer--behind{
  display:block !important;
  width:100% !important;
  height:var(--tmp-footer-spacer-height,0px) !important;
  min-height:var(--tmp-footer-spacer-height,0px) !important;
  background:transparent !important;
  pointer-events:none !important;
  flex:0 0 auto !important;
  clear:both !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal{
  position:fixed !important;
  left:0 !important;
  right:0 !important;
  bottom:0 !important;
  top:auto !important;
  z-index:0 !important;
  opacity:1 !important;
  visibility:visible !important;
  transform:none !important;
  transition:none !important;
  will-change:auto !important;
  pointer-events:auto !important;
  max-height:min(92dvh, calc(100vh - 24px)) !important;
  overflow:auto !important;
  -webkit-overflow-scrolling:touch !important;
  box-shadow:none !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal.is-visible{
  transform:none !important;
  opacity:1 !important;
  visibility:visible !important;
}
html body.elementor-editor-active .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal,
html body.elementor-editor-preview .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-reveal{
  position:relative !important;
  z-index:1 !important;
  transform:none !important;
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
  max-height:none !important;
  overflow:visible !important;
}
html body.elementor-editor-active .tmp-footer-reveal-spacer.tmp-footer-reveal-spacer--behind,
html body.elementor-editor-preview .tmp-footer-reveal-spacer.tmp-footer-reveal-spacer--behind{
  display:none !important;
}
/* Mantener fixed y static por encima cuando se eligen esos modos explícitamente */
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-fixed{
  z-index:80 !important;
}
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-mode-static{
  z-index:auto !important;
}

/* v5.58 — Footer como bloque normal para Theme Builder: sin reveal/fixed */
html body .tmp-footer-reveal.tmp-footer-block,
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-block,
html body .elementor .tmp-footer-reveal.tmp-footer-block{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:100%!important;
  max-width:none!important;
  transform:none!important;
  opacity:1!important;
  visibility:visible!important;
  z-index:1!important;
  display:block!important;
  overflow:visible!important;
  transition:none!important;
}
html body .tmp-footer-reveal.tmp-footer-block.is-visible{
  transform:none!important;
}
html body .tmp-footer-reveal-spacer,
html body .tmp-footer-reveal-spacer--behind{
  display:none!important;
  height:0!important;
  min-height:0!important;
}
html body.tmp-footer-behind-active,
html body.tmp-footer-reveal-active{
  padding-bottom:0!important;
}

/* v5.58 — Footer como bloque normal para Theme Builder: sin reveal/fixed */
html body .tmp-footer-reveal.tmp-footer-block,
html body .tmp-footer-reveal.tmp-footer-reveal--theia.tmp-footer-block,
html body .elementor .tmp-footer-reveal.tmp-footer-block{
  position:relative!important;
  left:auto!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  width:100%!important;
  max-width:none!important;
  transform:none!important;
  opacity:1!important;
  visibility:visible!important;
  z-index:1!important;
  display:block!important;
  overflow:visible!important;
  transition:none!important;
}
html body .tmp-footer-reveal.tmp-footer-block.is-visible{
  transform:none!important;
}
html body .tmp-footer-reveal-spacer,
html body .tmp-footer-reveal-spacer--behind{
  display:none!important;
  height:0!important;
  min-height:0!important;
}
html body.tmp-footer-behind-active,
html body.tmp-footer-reveal-active{
  padding-bottom:0!important;
}


/* v5.59 Footer Outfit + editable Font Awesome icons */
html body .tmp-footer-reveal,
html body .tmp-footer-reveal *{
  font-family:'Outfit', Arial, sans-serif;
}
html body .tmp-footer-contact .tmp-footer-contact-icon{
  width:24px!important;
  min-width:24px!important;
  height:24px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  line-height:1!important;
  color:inherit;
}
html body .tmp-footer-contact .tmp-footer-contact-icon svg,
html body .tmp-footer-contact .tmp-footer-contact-icon i{
  width:24px;
  height:24px;
  font-size:24px;
  line-height:1;
  display:block;
  color:inherit;
  fill:currentColor;
}
html body .tmp-footer-contact .tmp-footer-contact-icon + *{margin-left:0!important;}

/* v5.60 - Theia Quiénes Somos alignment refinements */
.tmp-about{align-items:flex-start;}
.tmp-about__text{align-self:flex-start;}
.tmp-about__image{align-self:flex-start;}
.tmp-about__text p:first-child{margin-top:0;}
.tmp-about__text p:last-child{margin-bottom:0;}
@media(max-width:1024px){
  .tmp-about{align-items:flex-start;}
  .tmp-about__text,.tmp-about__image{align-self:flex-start;}
}


/* v5.62 - editor-safe live controls for About + modal ficha */
.elementor-widget-tehia_about_block .tmp-about{
  align-items: var(--tmp-about-align, flex-start);
}
.elementor-widget-tehia_about_block .tmp-about__text,
.elementor-widget-tehia_about_block .tmp-about__image{
  align-self:flex-start;
}
html body .tmp-modal .tmp-modal__specs,
html body .tmp-modal__panel--carousel .tmp-modal__specs,
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__specs{
  background:var(--tmp-grid-specs-bg, var(--tmp-modal-specs-bg, rgba(255,255,255,.16))) !important;
  color:var(--tmp-grid-specs-color, var(--tmp-modal-specs-color, #ffffff)) !important;
  font-size:var(--tmp-grid-specs-font-size, var(--tmp-modal-specs-size, clamp(14px, 1.05vw, 18px))) !important;
  font-weight:var(--tmp-grid-specs-font-weight, var(--tmp-modal-specs-weight, 700)) !important;
  line-height:var(--tmp-grid-specs-line-height, var(--tmp-modal-specs-line-height, 1.25)) !important;
  padding:var(--tmp-grid-specs-padding, var(--tmp-modal-specs-padding, 14px 18px)) !important;
  border-radius:var(--tmp-grid-specs-radius, var(--tmp-modal-specs-radius, 10px)) !important;
}


/* ========================================================================
   v5.64 — Emergency editor/web stable rollback
   ------------------------------------------------------------------------
   Base estable 5.62. No usa MutationObserver global ni limpieza agresiva.
   Mantiene drag/menu y specs, pero evita loops que congelan Elementor.
   ======================================================================== */
@media (max-width: 767px){
  html body .tmp-cat-sidebar[data-tmp-sidebar]{
    transform:none !important;
    translate:none !important;
  }
  html body .tmp-cat-sidebar__drag-handle{display:none !important;}
}
html body .tmp-modal .tmp-modal__specs,
html body .tmp-modal__panel--carousel .tmp-modal__specs,
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel .tmp-modal__specs{
  background:var(--tmp-modal-specs-bg, var(--tmp-grid-specs-bg, rgba(255,255,255,.16))) !important;
  color:var(--tmp-modal-specs-color, var(--tmp-grid-specs-color, inherit)) !important;
  font-size:var(--tmp-modal-specs-size, var(--tmp-grid-specs-font-size, inherit)) !important;
  font-weight:var(--tmp-modal-specs-weight, var(--tmp-grid-specs-font-weight, inherit)) !important;
  line-height:var(--tmp-modal-specs-line-height, var(--tmp-grid-specs-line-height, inherit)) !important;
  padding:var(--tmp-modal-specs-padding, var(--tmp-grid-specs-padding, inherit)) !important;
  border-radius:var(--tmp-modal-specs-radius, var(--tmp-grid-specs-radius, inherit)) !important;
}


/* ========================================================================
   TEHIA v5.65 — Menú seguro + Modal mobile/editor estable
   Base: v5.64 estable. Solo overrides CSS; sin observers agresivos.
   ======================================================================== */

/* 1) Menús: evitar que una posición drag guardada saque el menú del DOM. */
.tmp-cat-sidebar[data-tmp-sidebar]{
  will-change: transform;
  max-width: min(86vw, 320px);
}
.tmp-cat-sidebar[data-tmp-sidebar].is-dragging{
  cursor: grabbing !important;
  user-select: none !important;
}
.tmp-cat-sidebar [data-tmp-drag-handle],
.tmp-cat-sidebar__drag-handle{
  cursor: grab !important;
  touch-action: none !important;
}
.tmp-cat-sidebar [data-tmp-drag-handle].is-grabbing,
.tmp-cat-sidebar__drag-handle.is-grabbing{
  cursor: grabbing !important;
}

@media (max-width: 767px){
  html body .tmp-cat-sidebar[data-tmp-sidebar]{
    transform: none !important;
    translate: none !important;
    --tmp-menu-drag-x: 0px !important;
    --tmp-menu-drag-y: 0px !important;
  }
  html body .tmp-cat-sidebar [data-tmp-drag-handle],
  html body .tmp-cat-sidebar__drag-handle{
    display: none !important;
  }
}

/* 2) Variables del cuadro técnico: grilla y carrusel respetan los controles. */
html body .tmp-modal .tmp-modal__specs,
html body .tmp-modal[aria-hidden="false"] .tmp-modal__specs,
html body .tmp-modal.is-editor-preview .tmp-modal__specs{
  background: var(--tmp-grid-specs-bg, var(--tmp-modal-specs-bg, rgba(255,255,255,.52))) !important;
  color: var(--tmp-grid-specs-color, var(--tmp-modal-specs-color, inherit)) !important;
  font-size: var(--tmp-grid-specs-size, var(--tmp-modal-specs-size, inherit)) !important;
  font-weight: var(--tmp-grid-specs-weight, var(--tmp-modal-specs-weight, inherit)) !important;
  line-height: var(--tmp-grid-specs-line-height, var(--tmp-modal-specs-line-height, inherit)) !important;
  padding: var(--tmp-grid-specs-padding, var(--tmp-modal-specs-padding, inherit)) !important;
  border-radius: var(--tmp-grid-specs-radius, var(--tmp-modal-specs-radius, inherit)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__specs,
html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"] .tmp-modal__specs,
html body .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__specs{
  background: var(--tmp-modal-specs-bg, rgba(255,255,255,.16)) !important;
  color: var(--tmp-modal-specs-color, #fff) !important;
  font-size: var(--tmp-modal-specs-size, clamp(14px,1.1vw,18px)) !important;
  font-weight: var(--tmp-modal-specs-weight, 700) !important;
  line-height: var(--tmp-modal-specs-line-height, 1.25) !important;
  padding: var(--tmp-modal-specs-padding, 14px 18px) !important;
  border-radius: var(--tmp-modal-specs-radius, 12px) !important;
}

/* 3) Modal del carrusel: que Elementor vea exactamente el mismo estilo que producción. */
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel,
html body .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel--carousel{
  background: var(--tmp-modal-bg, var(--tmp-car-modal-bg, #050505)) !important;
  color: var(--tmp-modal-text, var(--tmp-car-modal-text, #fff)) !important;
  border-radius: var(--tmp-modal-radius, var(--tmp-car-modal-radius, 32px)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__description,
html body .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__description{
  color: var(--tmp-car-modal-desc-color, currentColor) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__body,
html body .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__body{
  padding: var(--tmp-car-modal-body-padding, clamp(22px,3vw,48px)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__media--gallery > img,
html body .tmp-cat-carousel--pro .tmp-modal__media--gallery img[data-tmp-modal-main]{
  object-fit: var(--tmp-modal-image-fit, cover) !important;
}

/* 4) Mobile real: modal contenido, sin cortarse horizontalmente. */
@media (max-width: 767px){
  html body .tmp-modal[aria-hidden="false"],
  html body .tmp-modal.is-open{
    position: fixed !important;
    inset: 0 !important;
    width: 100vw !important;
    height: 100dvh !important;
    overflow: hidden !important;
    z-index: 999999 !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__dialog,
  html body .tmp-modal.is-open .tmp-modal__dialog{
    width: 100vw !important;
    height: 100dvh !important;
    min-height: 0 !important;
    display: flex !important;
    align-items: flex-start !important;
    justify-content: center !important;
    padding: max(12px, env(safe-area-inset-top)) 10px max(16px, env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    box-sizing: border-box !important;
    -webkit-overflow-scrolling: touch;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel,
  html body .tmp-modal.is-open .tmp-modal__panel,
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__panel--carousel,
  html body .tmp-modal.is-open .tmp-modal__panel--carousel{
    width: calc(100vw - 20px) !important;
    max-width: 520px !important;
    min-width: 0 !important;
    min-height: 0 !important;
    max-height: none !important;
    margin: 0 auto !important;
    display: grid !important;
    grid-template-columns: 1fr !important;
    gap: 0 !important;
    overflow: hidden !important;
    box-sizing: border-box !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media,
  html body .tmp-modal.is-open .tmp-modal__media,
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media--gallery,
  html body .tmp-modal.is-open .tmp-modal__media--gallery{
    width: 100% !important;
    height: clamp(220px, 47vh, 390px) !important;
    min-height: 0 !important;
    max-height: none !important;
    border-radius: 0 !important;
    overflow: hidden !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__media img,
  html body .tmp-modal.is-open .tmp-modal__media img,
  html body .tmp-modal[aria-hidden="false"] img[data-tmp-modal-main],
  html body .tmp-modal.is-open img[data-tmp-modal-main]{
    width: 100% !important;
    height: 100% !important;
    object-fit: var(--tmp-modal-image-fit, cover) !important;
    display: block !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__body,
  html body .tmp-modal.is-open .tmp-modal__body{
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: var(--tmp-car-modal-body-padding, 22px 20px 26px) !important;
    overflow: visible !important;
    box-sizing: border-box !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__title,
  html body .tmp-modal.is-open .tmp-modal__title{
    font-size: clamp(34px, 12vw, 56px) !important;
    line-height: .95 !important;
    letter-spacing: -0.06em !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
    word-break: normal !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__subtitle,
  html body .tmp-modal.is-open .tmp-modal__subtitle,
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__description,
  html body .tmp-modal.is-open .tmp-modal__description{
    font-size: clamp(16px, 4.5vw, 22px) !important;
    line-height: 1.35 !important;
    max-width: 100% !important;
    overflow-wrap: break-word !important;
  }
  html body .tmp-modal[aria-hidden="false"] .tmp-modal__close,
  html body .tmp-modal.is-open .tmp-modal__close{
    top: max(8px, env(safe-area-inset-top)) !important;
    right: 10px !important;
    width: 58px !important;
    height: 58px !important;
    z-index: 5 !important;
  }
}

/* 5) Elementor mobile/tablet preview: no usar fixed fullscreen dentro del canvas. */
html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview,
html.elementor-html .tmp-modal.is-editor-preview,
body.elementor-editor-active .tmp-modal.is-editor-preview{
  position: relative !important;
  inset: auto !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  padding: 14px 0 !important;
  overflow: visible !important;
  z-index: 20 !important;
  background: transparent !important;
}
html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__backdrop,
body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__backdrop{
  display: none !important;
}
html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__dialog,
body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__dialog{
  position: relative !important;
  width: 100% !important;
  height: auto !important;
  min-height: 0 !important;
  max-height: none !important;
  display: block !important;
  padding: 0 !important;
  overflow: visible !important;
}
html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__panel,
body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__panel,
html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__panel--carousel,
body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__panel--carousel{
  width: min(100%, 860px) !important;
  max-width: calc(100vw - 28px) !important;
  margin: 0 auto !important;
  display: grid !important;
  grid-template-columns: minmax(0, .9fr) minmax(0, 1fr) !important;
  gap: 0 !important;
  max-height: none !important;
  overflow: hidden !important;
  background: var(--tmp-modal-bg, var(--tmp-car-modal-bg, var(--tmp-grid-modal-bg, #050505))) !important;
  color: var(--tmp-modal-text, var(--tmp-car-modal-text, var(--tmp-grid-modal-text, #fff))) !important;
  border-radius: var(--tmp-modal-radius, var(--tmp-car-modal-radius, var(--tmp-grid-modal-radius, 32px))) !important;
  box-sizing: border-box !important;
}
@media (max-width: 767px){
  html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__panel,
  body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__panel,
  html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__panel--carousel,
  body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__panel--carousel{
    width: min(100%, 390px) !important;
    max-width: calc(100vw - 32px) !important;
    grid-template-columns: 1fr !important;
  }
  html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__media--gallery,
  body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__media--gallery{
    height: clamp(200px, 44vh, 320px) !important;
  }
  html.elementor-html body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__title,
  body.elementor-editor-active .tmp-modal.is-editor-preview .tmp-modal__title{
    font-size: clamp(32px, 11vw, 48px) !important;
  }
}

/* ========================================================================
   TEHIA v5.66 — Mobile production/editor safe fixes
   - El topbar mobile de la grilla no puede salir del viewport.
   - La modal del carrusel usa las variables reales del widget también en producción.
   - Evita que reglas globales blanco/negro pisen el estilo de categorías.
   ======================================================================== */

/* 1) Topbar mobile de grilla principal: sin márgenes negativos ni ancho extra. */
@media (max-width: 900px){
  html body .tmp-portfolio--pinterest,
  html body .tmp-portfolio--pinterest .tmp-pinterest-layout,
  html body .tmp-portfolio--pinterest .tehia-muebles-grid-wrap{
    max-width: 100% !important;
    overflow-x: hidden !important;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-topbar{
    left: 0 !important;
    right: 0 !important;
    width: 100% !important;
    max-width: 100vw !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    transform: none !important;
    box-sizing: border-box !important;
    overflow: hidden !important;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__brand-row,
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__custom,
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__scroll{
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    transform: none !important;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__scroll{
    padding-left: max(14px, env(safe-area-inset-left)) !important;
    padding-right: max(14px, env(safe-area-inset-right)) !important;
    overflow-x: auto !important;
    overflow-y: hidden !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }
  html body .tmp-portfolio--pinterest .tmp-cat-topbar__scroll::-webkit-scrollbar{ display:none!important; }
}

/* 2) Modal de categorías/carrusel: producción = editor. */
html body .tmp-cat-carousel--pro .tmp-modal,
html body .tmp-cat-carousel--pro .tmp-modal--carousel-source{
  --tmp-modal-bw-bg: var(--tmp-modal-bg, var(--tmp-car-modal-bg, #050505));
  --tmp-modal-bw-ink: var(--tmp-modal-text, var(--tmp-car-modal-text, #ffffff));
  --tmp-modal-bw-muted: var(--tmp-car-modal-desc-color, rgba(255,255,255,.78));
}
html body .tmp-cat-carousel--pro .tmp-modal__panel--carousel,
html body .tmp-cat-carousel--pro .tmp-modal.is-open .tmp-modal__panel--carousel,
html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"] .tmp-modal__panel--carousel,
html body .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel--carousel{
  background: var(--tmp-modal-bg, var(--tmp-car-modal-bg, #050505)) !important;
  color: var(--tmp-modal-text, var(--tmp-car-modal-text, #ffffff)) !important;
  border-radius: var(--tmp-modal-radius, var(--tmp-car-modal-radius, 32px)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__body,
html body .tmp-cat-carousel--pro .tmp-modal__title,
html body .tmp-cat-carousel--pro .tmp-modal__subtitle,
html body .tmp-cat-carousel--pro .tmp-modal__description,
html body .tmp-cat-carousel--pro .tmp-modal__gallery-title{
  color: var(--tmp-modal-text, var(--tmp-car-modal-text, #ffffff)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__subtitle,
html body .tmp-cat-carousel--pro .tmp-modal__description,
html body .tmp-cat-carousel--pro .tmp-modal__gallery-title{
  color: var(--tmp-car-modal-desc-color, rgba(255,255,255,.78)) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__eyebrow span{
  color: var(--tmp-modal-text, var(--tmp-car-modal-text, #ffffff)) !important;
  background: rgba(255,255,255,.12) !important;
  border-color: rgba(255,255,255,.22) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__specs{
  background: var(--tmp-modal-specs-bg, rgba(255,255,255,.16)) !important;
  color: var(--tmp-modal-specs-color, var(--tmp-modal-text, #ffffff)) !important;
  font-size: var(--tmp-modal-specs-size, clamp(14px,1.1vw,18px)) !important;
  font-weight: var(--tmp-modal-specs-weight, 700) !important;
  line-height: var(--tmp-modal-specs-line-height, 1.25) !important;
  padding: var(--tmp-modal-specs-padding, 14px 18px) !important;
  border-radius: var(--tmp-modal-specs-radius, 12px) !important;
  box-shadow: none !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__cta--store{
  background: var(--tmp-modal-cta-bg, #2f281f) !important;
  color: var(--tmp-modal-cta-color, #ffffff) !important;
}
html body .tmp-cat-carousel--pro .tmp-modal__media--gallery > img,
html body .tmp-cat-carousel--pro img[data-tmp-modal-main]{
  object-fit: var(--tmp-modal-image-fit, cover) !important;
}

/* 3) Mobile real: la modal del carrusel entra completa, con scroll interno limpio. */
@media (max-width: 767px){
  html body .tmp-cat-carousel--pro .tmp-modal.is-open:not(.is-editor-preview),
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"]:not(.is-editor-preview){
    background: transparent !important;
    overflow: hidden !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal.is-open:not(.is-editor-preview) .tmp-modal__dialog,
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"]:not(.is-editor-preview) .tmp-modal__dialog{
    align-items: flex-start !important;
    justify-content: center !important;
    padding: max(10px, env(safe-area-inset-top)) 0 max(14px, env(safe-area-inset-bottom)) !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal.is-open:not(.is-editor-preview) .tmp-modal__panel--carousel,
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"]:not(.is-editor-preview) .tmp-modal__panel--carousel{
    width: min(100vw - 20px, 480px) !important;
    max-width: min(100vw - 20px, 480px) !important;
    min-width: 0 !important;
    margin: 0 auto !important;
    grid-template-columns: 1fr !important;
    border-radius: var(--tmp-modal-radius, 24px) !important;
    max-height: none !important;
    overflow: hidden !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal.is-open:not(.is-editor-preview) .tmp-modal__media--gallery,
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"]:not(.is-editor-preview) .tmp-modal__media--gallery{
    height: clamp(220px, 43vh, 360px) !important;
    border-radius: 0 !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal.is-open:not(.is-editor-preview) .tmp-modal__body,
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"]:not(.is-editor-preview) .tmp-modal__body{
    padding: var(--tmp-car-modal-body-padding, 22px 20px 28px) !important;
    background: transparent !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal.is-open:not(.is-editor-preview) .tmp-modal__title,
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"]:not(.is-editor-preview) .tmp-modal__title{
    font-size: clamp(34px, 11vw, 54px) !important;
    line-height: .96 !important;
    letter-spacing: -.055em !important;
    word-break: normal !important;
    overflow-wrap: anywhere !important;
  }
  html body .tmp-cat-carousel--pro .tmp-modal.is-open:not(.is-editor-preview) .tmp-modal__close,
  html body .tmp-cat-carousel--pro .tmp-modal[aria-hidden="false"]:not(.is-editor-preview) .tmp-modal__close{
    right: max(10px, env(safe-area-inset-right)) !important;
    top: max(10px, env(safe-area-inset-top)) !important;
  }
}

/* 4) Elementor mobile preview: que se parezca a producción pero sin fixed fullscreen dentro del iframe. */
@media (max-width: 767px){
  body.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel--carousel,
  html.elementor-html body.elementor-editor-active .tmp-cat-carousel--pro .tmp-modal.is-editor-preview .tmp-modal__panel--carousel{
    width: min(100%, 390px) !important;
    max-width: calc(100vw - 28px) !important;
    margin: 0 auto !important;
    grid-template-columns: 1fr !important;
    background: var(--tmp-modal-bg, var(--tmp-car-modal-bg, #050505)) !important;
    color: var(--tmp-modal-text, var(--tmp-car-modal-text, #ffffff)) !important;
  }
}


/* ========================================================================
   TEHIA v5.67 — Modal categorías sobre menú + lightbox/subslider estable
   ======================================================================== */
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"],
html body .tmp-modal.tmp-modal--carousel-source.is-open,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"],
html body .tmp-modal.tmp-modal--carousel-detached.is-open{
  position: fixed !important;
  inset: 0 !important;
  top: 0 !important;
  right: 0 !important;
  bottom: 0 !important;
  left: 0 !important;
  z-index: 2147483200 !important;
  width: 100vw !important;
  height: 100svh !important;
  max-width: none !important;
  max-height: none !important;
  margin: 0 !important;
  padding: max(10px, env(safe-area-inset-top)) max(10px, env(safe-area-inset-right)) max(10px, env(safe-area-inset-bottom)) max(10px, env(safe-area-inset-left)) !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  background: transparent !important;
  overflow: hidden !important;
  isolation: isolate !important;
  transform: none !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__backdrop,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__backdrop{
  z-index: 0 !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__dialog,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__dialog{
  position: relative !important;
  z-index: 2 !important;
  width: min(1500px, calc(100vw - 24px)) !important;
  max-width: calc(100vw - 24px) !important;
  height: min(820px, calc(100svh - 24px)) !important;
  max-height: calc(100svh - 24px) !important;
  margin: 0 auto !important;
  padding: 0 !important;
  overflow: visible !important;
  display: flex !important;
  align-items: stretch !important;
  justify-content: center !important;
  transform: none !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__panel--carousel,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__panel--carousel{
  width: 100% !important;
  height: 100% !important;
  max-height: 100% !important;
  display: grid !important;
  grid-template-columns: minmax(320px, 1fr) minmax(340px, .95fr) !important;
  gap: 0 !important;
  overflow: hidden !important;
  background: var(--tmp-modal-bg, var(--tmp-car-modal-bg, #050505)) !important;
  color: var(--tmp-modal-text, var(--tmp-car-modal-text, #ffffff)) !important;
  border-radius: var(--tmp-modal-radius, var(--tmp-car-modal-radius, 32px)) !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__body,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__body,
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__title,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__title{
  color: var(--tmp-modal-text, var(--tmp-car-modal-text, #ffffff)) !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__subtitle,
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__description,
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__gallery-title,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__subtitle,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__description,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__gallery-title{
  color: var(--tmp-car-modal-desc-color, rgba(255,255,255,.78)) !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__specs,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__specs{
  background: var(--tmp-modal-specs-bg, rgba(255,255,255,.16)) !important;
  color: var(--tmp-modal-specs-color, var(--tmp-modal-text, #ffffff)) !important;
  font-size: var(--tmp-modal-specs-size, clamp(14px,1.1vw,18px)) !important;
  font-weight: var(--tmp-modal-specs-weight, 700) !important;
  line-height: var(--tmp-modal-specs-line-height, 1.25) !important;
  padding: var(--tmp-modal-specs-padding, 14px 18px) !important;
  border-radius: var(--tmp-modal-specs-radius, 12px) !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__close,
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__close{
  z-index: 2147483300 !important;
  pointer-events: auto !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] [data-tmp-modal-main],
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] [data-tmp-modal-main]{
  cursor: zoom-in !important;
}
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] [data-tmp-gallery-thumb],
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] [data-tmp-gallery-prev],
html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] [data-tmp-gallery-next],
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] [data-tmp-gallery-thumb],
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] [data-tmp-gallery-prev],
html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] [data-tmp-gallery-next]{
  pointer-events: auto !important;
}
.tmp-lightbox-singleton,
.tmp-lightbox-singleton.is-open{
  z-index: 2147483600 !important;
}

@media (max-width: 767px){
  html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"],
  html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"]{
    align-items: flex-start !important;
    justify-content: center !important;
    overflow-y: auto !important;
    overflow-x: hidden !important;
    padding-top: max(8px, env(safe-area-inset-top)) !important;
  }
  html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__dialog,
  html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__dialog{
    width: min(100vw - 16px, 520px) !important;
    max-width: min(100vw - 16px, 520px) !important;
    height: auto !important;
    max-height: none !important;
    overflow: visible !important;
  }
  html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__panel--carousel,
  html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__panel--carousel{
    grid-template-columns: 1fr !important;
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    overflow: hidden !important;
    border-radius: var(--tmp-modal-radius, var(--tmp-car-modal-radius, 24px)) !important;
  }
  html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__media--gallery,
  html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__media--gallery{
    height: clamp(230px, 42vh, 360px) !important;
    min-height: 230px !important;
    border-radius: 0 !important;
  }
  html body .tmp-modal.tmp-modal--carousel-source[aria-hidden="false"] .tmp-modal__body,
  html body .tmp-modal.tmp-modal--carousel-detached[aria-hidden="false"] .tmp-modal__body{
    padding: var(--tmp-car-modal-body-padding, 22px 20px 30px) !important;
    overflow: visible !important;
  }
}

/* ========================================================================
   TEHIA v5.68 — Flechas lightbox/subslider alineadas + blanco/negro hover
   Ajuste final seguro: no toca estructura, modal, carrusel ni menús.
   ======================================================================== */

/* Subslider dentro de la modal: galería principal + categorías */
html body .tmp-modal .tmp-modal__media--gallery,
html body .tmp-modal__panel--carousel .tmp-modal__media--gallery,
html body .tmp-modal--carousel-source .tmp-modal__media--gallery,
html body .tmp-modal--carousel-detached .tmp-modal__media--gallery {
  position: relative !important;
}

html body .tmp-modal .tmp-modal__gal-arrow,
html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow,
html body .tmp-modal--carousel-source .tmp-modal__gal-arrow,
html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: clamp(46px, 4.4vw, 58px) !important;
  height: clamp(46px, 4.4vw, 58px) !important;
  min-width: clamp(46px, 4.4vw, 58px) !important;
  min-height: clamp(46px, 4.4vw, 58px) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid rgba(0,0,0,.16) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.94) !important;
  color: #000 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-size: 0 !important;
  box-shadow: 0 12px 32px rgba(0,0,0,.22) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  backdrop-filter: blur(10px) !important;
  z-index: 20 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease !important;
}

html body .tmp-modal .tmp-modal__gal-arrow--prev,
html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow--prev,
html body .tmp-modal--carousel-source .tmp-modal__gal-arrow--prev,
html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow--prev {
  left: clamp(12px, 2vw, 24px) !important;
  right: auto !important;
}

html body .tmp-modal .tmp-modal__gal-arrow--next,
html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow--next,
html body .tmp-modal--carousel-source .tmp-modal__gal-arrow--next,
html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow--next {
  right: clamp(12px, 2vw, 24px) !important;
  left: auto !important;
}

html body .tmp-modal .tmp-modal__gal-arrow svg,
html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow svg,
html body .tmp-modal--carousel-source .tmp-modal__gal-arrow svg,
html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow svg {
  width: 22px !important;
  height: 22px !important;
  display: block !important;
  stroke: currentColor !important;
  fill: none !important;
  transform: none !important;
  pointer-events: none !important;
}

html body .tmp-modal .tmp-modal__gal-arrow:hover,
html body .tmp-modal .tmp-modal__gal-arrow:focus-visible,
html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow:hover,
html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow:focus-visible,
html body .tmp-modal--carousel-source .tmp-modal__gal-arrow:hover,
html body .tmp-modal--carousel-source .tmp-modal__gal-arrow:focus-visible,
html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow:hover,
html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow:focus-visible {
  background: #000 !important;
  color: #fff !important;
  border-color: #000 !important;
  transform: translateY(-50%) scale(1.06) !important;
  box-shadow: 0 16px 38px rgba(0,0,0,.34) !important;
}

/* Lightbox fullscreen: flechas siempre centradas y consistentes */
html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav,
html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav {
  position: absolute !important;
  top: 50% !important;
  transform: translateY(-50%) !important;
  width: clamp(50px, 5.2vw, 64px) !important;
  height: clamp(50px, 5.2vw, 64px) !important;
  min-width: clamp(50px, 5.2vw, 64px) !important;
  min-height: clamp(50px, 5.2vw, 64px) !important;
  padding: 0 !important;
  margin: 0 !important;
  border: 1px solid rgba(0,0,0,.16) !important;
  border-radius: 999px !important;
  background: rgba(255,255,255,.96) !important;
  color: #000 !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  line-height: 1 !important;
  font-size: 0 !important;
  font-family: Arial, sans-serif !important;
  box-shadow: 0 14px 40px rgba(0,0,0,.3) !important;
  -webkit-backdrop-filter: blur(10px) !important;
  backdrop-filter: blur(10px) !important;
  z-index: 2147483646 !important;
  opacity: 1 !important;
  pointer-events: auto !important;
  cursor: pointer !important;
  transition: background .22s ease, color .22s ease, border-color .22s ease, transform .22s ease, box-shadow .22s ease !important;
}

html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav::before,
html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav::before {
  display: block !important;
  font-size: 34px !important;
  line-height: 1 !important;
  font-weight: 400 !important;
  color: currentColor !important;
  transform: translateY(-1px) !important;
}

html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav--prev,
html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav--prev {
  left: clamp(12px, 3vw, 36px) !important;
  right: auto !important;
}

html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav--prev::before,
html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav--prev::before {
  content: '‹' !important;
}

html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav--next,
html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav--next {
  right: clamp(12px, 3vw, 36px) !important;
  left: auto !important;
}

html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav--next::before,
html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav--next::before {
  content: '›' !important;
}

html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav:hover,
html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav:focus-visible,
html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav:hover,
html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav:focus-visible {
  background: #000 !important;
  color: #fff !important;
  border-color: #fff !important;
  transform: translateY(-50%) scale(1.06) !important;
  box-shadow: 0 18px 46px rgba(0,0,0,.42) !important;
}

@media (max-width: 767px) {
  html body .tmp-modal .tmp-modal__gal-arrow,
  html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow,
  html body .tmp-modal--carousel-source .tmp-modal__gal-arrow,
  html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow {
    width: 52px !important;
    height: 52px !important;
    min-width: 52px !important;
    min-height: 52px !important;
  }
  html body .tmp-modal .tmp-modal__gal-arrow--prev,
  html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow--prev,
  html body .tmp-modal--carousel-source .tmp-modal__gal-arrow--prev,
  html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow--prev { left: 10px !important; }
  html body .tmp-modal .tmp-modal__gal-arrow--next,
  html body .tmp-modal__panel--carousel .tmp-modal__gal-arrow--next,
  html body .tmp-modal--carousel-source .tmp-modal__gal-arrow--next,
  html body .tmp-modal--carousel-detached .tmp-modal__gal-arrow--next { right: 10px !important; }

  html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav,
  html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav {
    width: 54px !important;
    height: 54px !important;
    min-width: 54px !important;
    min-height: 54px !important;
  }
  html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav::before,
  html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav::before {
    font-size: 34px !important;
  }
  html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav--prev,
  html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav--prev { left: 12px !important; }
  html body .tmp-lightbox-singleton .tmp-lightbox-singleton__nav--next,
  html body .tmp-lightbox-singleton--v567 .tmp-lightbox-singleton__nav--next { right: 12px !important; }
}


/* ========================================================================
   TEHIA v5.69 — Carrusel de categoría mobile centrado, 1 card por vista
   No toca modal, lightbox, footer ni drag.
   ======================================================================== */
@media (max-width: 767px) {
  html body .tmp-cat-carousel--pro {
    overflow: hidden !important;
  }

  html body .tmp-cat-carousel--pro .tmp-car-track {
    display: flex !important;
    width: 100% !important;
    max-width: 100% !important;
    gap: 0 !important;
    column-gap: 0 !important;
    row-gap: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    overflow-x: auto !important;
    overflow-y: visible !important;
    scroll-snap-type: x mandatory !important;
    scroll-padding-inline: 0 !important;
    scroll-behavior: smooth !important;
    overscroll-behavior-x: contain !important;
    -webkit-overflow-scrolling: touch !important;
    scrollbar-width: none !important;
  }

  html body .tmp-cat-carousel--pro .tmp-car-track::-webkit-scrollbar {
    width: 0 !important;
    height: 0 !important;
    display: none !important;
  }

  html body .tmp-cat-carousel--pro .tmp-car-item,
  html body .tmp-cat-carousel--pro .tmp-car-item--product {
    flex: 0 0 100% !important;
    width: 100% !important;
    min-width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
    scroll-snap-align: center !important;
    scroll-snap-stop: always !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  html body .tmp-cat-carousel--pro .tmp-car-card-btn {
    width: 100% !important;
    max-width: 100% !important;
    box-sizing: border-box !important;
  }

  html body .tmp-cat-carousel--pro .tmp-car-item--product:hover,
  html body .tmp-cat-carousel--pro .tmp-car-item--product:focus-within,
  html body .tmp-cat-carousel--pro .tmp-car-item--product.is-hovered {
    transform: none !important;
  }
}
