/* TECNIMAX v2 · base global: tokens, botones, header y footer (todas las páginas) */

:root {
  --navy-950: #06192f;
  --navy-900: #0c2f5a;
  --navy-800: #173b6c;
  --blue: #2e86ff;
  --blue-700: #1d6fe0;
  --blue-200: #9cc6ff;
  --amber: #f4b400;
  --paper: #f4f7fb;
  --white: #ffffff;
  --head: #0a1f3c;
  --text: #253044;
  --muted: #5b6b80;
  --line: #dce3ee;

  --font: "TmxComma", "Poppins", system-ui, -apple-system, "Segoe UI", sans-serif;
  --wrap: 1400px;
  --gut: clamp(20px, 4vw, 48px);
  --edge: max(var(--gut), calc((100% - var(--wrap)) / 2));
  --sec: clamp(72px, 9vw, 128px);
  --topbar-h: 0px;
  --bar-h: 72px;
  --ease: cubic-bezier(.2, .7, .1, 1);
  --ease-io: cubic-bezier(.7, 0, .2, 1);
  --slash: polygon(22px 0, 100% 0, 100% 100%, 0 100%);
  --r: 8px;      /* radio de esquinas en todo el sitio */
  --r-lg: 12px;  /* bloques grandes (fotos, paneles, formularios) */
}
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; scroll-behavior: smooth; scroll-padding-top: calc(var(--bar-h) + 16px); }
:where(.tmx-header, .tmx-footer) :where(img, svg) { display: block; max-width: 100%; }
:where(.tmx-header, .tmx-footer) :where(a) { color: inherit; text-decoration: none; }
:where(.tmx-header, .tmx-footer) :where(button) { font: inherit; color: inherit; }
:where(.tmx-header, .tmx-footer) :where(h2, h3, p, figure, ul, ol) { margin: 0; }
:where(.tmx-header, .tmx-footer) :where(ul, ol) { padding: 0; list-style: none; }
.tmx-header, .tmx-footer { font-family: var(--font); -webkit-font-smoothing: antialiased; }

.tmx-v2 :focus:not(:focus-visible) { outline: none; }
.tmx-v2 :focus-visible { outline: 3px solid var(--amber); outline-offset: 3px; }
.tmx-ico { width: 20px; height: 20px; flex: 0 0 auto; }
.tmx-sr { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.tmx-wrap { width: 100%; max-width: calc(var(--wrap) + 2 * var(--gut)); margin-inline: auto; padding-inline: var(--gut); }
.tmx-skip {
  position: fixed; top: 8px; left: 8px; z-index: 2000;
  padding: 12px 18px; background: var(--amber); color: var(--navy-950); font-weight: 600;
  transform: translateY(-160%); transition: transform .2s;
}
.tmx-skip:focus-visible { transform: none; }
.tmx-btn {
  --fill: var(--navy-900);
  position: relative; isolation: isolate; overflow: hidden;
  display: inline-flex; align-items: center; justify-content: center; gap: 12px;
  min-height: 54px; padding: 0 26px;
  border: 1px solid transparent;
  font-size: 15px; font-weight: 600; line-height: 1.2; letter-spacing: .005em; white-space: nowrap;
  cursor: pointer;
  transition: color .4s var(--ease), border-color .4s var(--ease), transform .2s;
}
.tmx-btn::before {
  content: ""; position: absolute; inset: 0 -24px; z-index: -1;
  background: var(--fill);
  transform: translateX(-102%) skewX(-22deg);
  transition: transform .55s var(--ease-io);
}
.tmx-btn:hover::before, .tmx-btn:focus-visible::before { transform: translateX(0) skewX(-22deg); }
.tmx-btn .tmx-ico { width: 18px; height: 18px; transition: transform .45s var(--ease); }
.tmx-btn:hover .tmx-ico { transform: translate(3px, -3px); }
.tmx-btn:active { transform: translateY(1px); }
.tmx-btn--primary { background: var(--blue); color: #fff; }
.tmx-btn--ghost { --fill: #fff; border-color: rgba(255, 255, 255, .55); color: #fff; }
.tmx-btn--ghost:hover, .tmx-btn--ghost:focus-visible { color: var(--navy-950); border-color: #fff; }
.tmx-btn--line { border-color: rgba(23, 59, 108, .35); color: var(--navy-800); }
.tmx-btn--line:hover, .tmx-btn--line:focus-visible { color: #fff; border-color: var(--navy-900); }
.tmx-btn--dark { --fill: var(--blue); background: var(--navy-900); color: #fff; }
/* =========================================================
   HEADER · barra con pestaña central
   ========================================================= */
.tmx-header {
  --tab-w: 248px;   /* ancho superior de la pestaña */
  --tab-s: 34px;    /* desplazamiento de la diagonal a cada lado */
  --tab-p: 38px;    /* cuánto cuelga la pestaña bajo la barra */
  --tab-line: rgba(46, 134, 255, .62);
  position: sticky; top: 0; z-index: 1000;
  height: var(--bar-h);
}
.tmx-header__bg {
  position: absolute; inset: 0; z-index: 0;
  background: #fff; border-bottom: 1px solid var(--tab-line);
  transition: box-shadow .4s var(--ease);
}
.tmx-header.is-scrolled .tmx-header__bg { box-shadow: 0 16px 34px -22px rgba(6, 25, 47, .55); }
.tmx-header__progress {
  position: absolute; left: 0; right: 0; bottom: 0; z-index: 1; height: 3px;
  background: linear-gradient(90deg, var(--blue), var(--blue-200));
  transform: scaleX(var(--sp, 0)); transform-origin: left; pointer-events: none;
}
.tmx-tab {
  position: absolute; z-index: 2; top: 0; left: 50%;
  width: var(--tab-w); margin-left: calc(var(--tab-w) / -2);
  height: calc(var(--bar-h) + var(--tab-p));
  pointer-events: none;
  transition: height .6s var(--ease);
}
.tmx-tab::before, .tmx-tab__shape { content: ""; position: absolute; inset: 0; }
/* Capa exterior = color de la línea; capa interior blanca 1 px más adentro en ambas diagonales y en la base */
.tmx-tab::before {
  background: var(--tab-line);
  clip-path: polygon(0 calc(var(--bar-h) - 1px), 100% calc(var(--bar-h) - 1px), 100% var(--bar-h), calc(100% - var(--tab-s)) 100%, var(--tab-s) 100%, 0 var(--bar-h));
}
.tmx-tab__shape {
  background: #fff;
  clip-path: polygon(0 0, 100% 0, 100% calc(var(--bar-h) - 1px), calc(100% - var(--tab-s) - 1px) calc(100% - 1px), calc(var(--tab-s) + 1px) calc(100% - 1px), 0 calc(var(--bar-h) - 1px));
}
/* Sin sombra difusa bajo la pestaña del logo: solo su contorno fino */
.tmx-header.is-compact, .tmx-header.is-mega, body.tmx-menu-open .tmx-header { --tab-p: 0px !important; }
.tmx-bar {
  position: relative; z-index: 3; height: 100%;
  display: grid; grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr); align-items: stretch;
  column-gap: clamp(12px, 1.6vw, 24px);
  width: 100%; max-width: calc(var(--wrap) + 2 * var(--gut)); margin-inline: auto; padding-inline: var(--gut);
}
.tmx-brand {
  position: absolute; z-index: 2; top: 0; left: 50%;
  width: calc(var(--tab-w) - 2 * var(--tab-s)); margin-left: calc((var(--tab-w) - 2 * var(--tab-s)) / -2);
  height: calc(var(--bar-h) + var(--tab-p));
  display: grid; place-items: center;
  transition: height .6s var(--ease);
}
.tmx-brand__logo { height: 44px; width: auto; transition: height .6s var(--ease), transform .6s var(--ease); }
.tmx-brand:hover .tmx-brand__logo { transform: scale(1.04); }
.tmx-header.is-compact .tmx-brand__logo, .tmx-header.is-mega .tmx-brand__logo, body.tmx-menu-open .tmx-brand__logo { height: 38px; }
.tmx-brand:focus-visible { outline-offset: -6px; }
.tmx-flank { display: flex; align-items: center; gap: 12px; min-width: 0; }
.tmx-flank--l { grid-column: 1; }
.tmx-flank--r { grid-column: 3; justify-content: flex-end; }
.tmx-flank__phone { display: inline-flex; align-items: center; gap: 10px; font-size: 14.5px; font-weight: 500; color: var(--navy-800); white-space: nowrap; transition: color .25s; }
.tmx-flank__phone .tmx-ico {
  width: 34px; height: 34px; padding: 8px; color: var(--blue); border: 1px solid var(--line);
  transition: background .3s, color .3s, border-color .3s;
}
.tmx-flank__phone:hover { color: var(--navy-950); }
.tmx-flank__phone:hover .tmx-ico { background: var(--blue); border-color: var(--blue); color: #fff; }
.tmx-flank__wa { display: none; }
.tmx-bar__cta { flex: none; min-height: 46px; padding: 0 20px; font-size: 14.5px; white-space: nowrap; }
/* Con el carrito al lado (tienda) o en pantallas medianas, el botón se acorta a "Cotizar" */
.tmx-header--shop .tmx-bar__cta-long { display: none; }
@media (max-width: 1360px) { .tmx-bar__cta-long { display: none; } }
.tmx-bar__cta svg { flex: none; width: 19px; height: 19px; }
.tmx-bar__cta:hover svg { transform: none; }
.tmx-nav {
  grid-column: 2; position: static;
  /* Columnas laterales iguales: el hueco queda centrado bajo la pestaña del
     logo y ningún subrayado la toca (margen extra de 14px a cada lado). */
  display: grid; grid-template-columns: minmax(0, 1fr) calc(var(--tab-w) + 28px) minmax(0, 1fr); align-items: stretch;
}
.tmx-nav__list { display: flex; align-items: stretch; gap: 2px; }
.tmx-nav__list--l { grid-column: 1; justify-content: flex-end; }
.tmx-nav__list--r { grid-column: 3; }
.tmx-nav__gap { grid-column: 2; }
.tmx-nav__item { display: flex; }
.tmx-v2 .tmx-link {
  position: relative; z-index: 1; display: flex; align-items: center; gap: 6px; height: 100%;
  padding: 0 clamp(10px, 1.1vw, 18px); font-size: 15px; font-weight: 500; color: var(--navy-800); white-space: nowrap;
  transition: color .3s;
}
.tmx-v2 .tmx-link.is-active { font-weight: 600; color: var(--navy-950); }
.tmx-v2 .tmx-link.is-hot { color: var(--navy-950); }
.tmx-v2 .tmx-link:focus-visible { outline-offset: -12px; }
.tmx-nav__glider {
  position: absolute; z-index: 4; left: 0; bottom: 0; height: 3px;
  width: var(--gw, 0px); transform: translateX(var(--gx, 0px));
  background: var(--blue); opacity: 0; pointer-events: none;
  transition: transform .55s var(--ease), width .45s var(--ease), opacity .3s;
}
.tmx-nav.is-ready .tmx-nav__glider { opacity: 1; }
/* Al pasar de un lado del logo al otro, el subrayado se desvanece y reaparece en vez de cruzar el logo */
.tmx-nav.is-ready .tmx-nav__glider.is-jump { opacity: 0; transition: opacity .14s ease; }
.tmx-nav__foot { display: none; }
.tmx-v2 .tmx-dd__chev { display: inline-flex; width: 14px; height: 14px; transition: transform .35s var(--ease); }
.tmx-v2 .tmx-dd__chev svg { width: 14px; height: 14px; transition: transform .4s var(--ease); }
.tmx-mega-host:hover .tmx-dd__chev svg, .tmx-mega-host:focus-within .tmx-dd__chev svg { transform: rotate(135deg); }
.tmx-mega {
  position: absolute; left: 0; right: 0; top: 100%; z-index: 5;
  background: #fff; border-top: 1px solid var(--line);
  box-shadow: 0 50px 70px -40px rgba(6, 25, 47, .5);
  visibility: hidden; clip-path: inset(0 0 100% 0);
  transition: clip-path .45s var(--ease-io), visibility 0s .45s;
}
.tmx-mega-host:hover .tmx-mega {
  visibility: visible; clip-path: inset(0 0 -100px 0);
  transition: clip-path .55s var(--ease-io) .06s, visibility 0s .06s;
}
.tmx-mega-host:focus-within .tmx-mega { visibility: visible; clip-path: inset(0 0 -100px 0); transition: clip-path .55s var(--ease-io), visibility 0s; }
.tmx-mega__inner {
  display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr) minmax(0, .85fr); gap: 16px;
  max-width: calc(var(--wrap) + 2 * var(--gut)); margin-inline: auto; padding: 26px var(--gut) 30px;
}
.tmx-mega__card {
  position: relative; display: grid; grid-template-columns: minmax(0, .9fr) minmax(0, 1fr); align-items: stretch; gap: 20px;
  padding: 12px; border: 1px solid var(--line);
}
.tmx-mega__card:hover, .tmx-mega__card:focus-visible { border-color: var(--navy-800); background: var(--paper); }
.tmx-mega__card:focus-visible { outline-offset: 2px; }
.tmx-mega__media { display: block; min-height: 150px; overflow: hidden; background: var(--paper); }
.tmx-mega__body { display: flex; flex-direction: column; justify-content: center; padding: 6px 4px 6px 0; }
.tmx-mega__img { width: 100%; height: 100%; object-fit: cover; transition: transform 1s var(--ease); }
.tmx-mega__card:hover .tmx-mega__img { transform: scale(1.07); }
.tmx-mega__title { display: block; font-size: 17px; font-weight: 600; line-height: 1.3; color: var(--head); }
.tmx-mega__text { display: block; margin-top: 6px; font-size: 14px; line-height: 1.5; color: var(--muted); }
.tmx-mega__aside { display: grid; align-content: center; gap: 8px; padding: 22px 26px; background: var(--navy-950); color: #fff; }
.tmx-mega__q { font-size: 17px; font-weight: 600; line-height: 1.3; }
.tmx-mega__a { font-size: 14px; line-height: 1.5; color: rgba(255, 255, 255, .72); margin-bottom: 6px !important; }
.tmx-mega__link {
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 11px 0; border-top: 1px solid rgba(255, 255, 255, .14); font-size: 14.5px; font-weight: 600;
  transition: color .25s;
}
.tmx-mega__link .tmx-ico { width: 18px; height: 18px; transition: transform .4s var(--ease); }
.tmx-mega__link:hover { color: var(--blue-200); }
.tmx-mega__link:hover .tmx-ico { transform: translate(3px, -3px); }
.tmx-mega__card, .tmx-mega__aside { opacity: 0; transform: translateY(14px); transition: opacity .4s, transform .6s var(--ease), border-color .3s, background .3s; }
.tmx-mega-host:hover .tmx-mega__card, .tmx-mega-host:focus-within .tmx-mega__card,
.tmx-mega-host:hover .tmx-mega__aside, .tmx-mega-host:focus-within .tmx-mega__aside { opacity: 1; transform: none; }
.tmx-mega-host:hover .tmx-mega__card:nth-child(1), .tmx-mega-host:focus-within .tmx-mega__card:nth-child(1) { transition-delay: .12s, .12s, 0s, 0s; }
.tmx-mega-host:hover .tmx-mega__card:nth-child(2), .tmx-mega-host:focus-within .tmx-mega__card:nth-child(2) { transition-delay: .2s, .2s, 0s, 0s; }
.tmx-mega-host:hover .tmx-mega__aside, .tmx-mega-host:focus-within .tmx-mega__aside { transition-delay: .28s, .28s, 0s, 0s; }
.tmx-v2 .tmx-toggle { display: none; }
.tmx-hero__toggle .tmx-ico { width: 16px; height: 16px; fill: currentColor; stroke: none; }
.tmx-tile__link .tmx-ico { width: 18px; height: 18px; transition: transform .45s var(--ease); }
.tmx-tile:hover .tmx-tile__link .tmx-ico, .tmx-tile:focus-within .tmx-tile__link .tmx-ico { transform: translate(4px, -4px); }
.tmx-why__ico .tmx-ico { width: 22px; height: 22px; }
.tmx-sectors__tab .tmx-ico { opacity: 0; transform: translateX(-10px); transition: opacity .3s, transform .45s var(--ease); color: var(--blue); }
.tmx-sectors__tab[aria-selected="true"] .tmx-ico, .tmx-sectors__tab:hover .tmx-ico { opacity: 1; transform: none; }
@keyframes tmx-rise { from { opacity: 0; transform: translateY(24px); } to { opacity: 1; transform: none; } }
.tmx-post__more .tmx-ico { width: 18px; height: 18px; transition: transform .45s var(--ease); }
.tmx-post:hover .tmx-post__more .tmx-ico { transform: translate(4px, -4px); }
.tmx-faq__side .tmx-btn svg { width: 18px; height: 18px; }
.tmx-quote__list .tmx-ico { width: 22px; height: 22px; padding: 3px; background: var(--blue); color: #fff; stroke-width: 2.4; }
/* =========================================================
   FOOTER
   ========================================================= */
.tmx-footer { background: #041325; color: rgba(255, 255, 255, .72); border-top: 1px solid rgba(255, 255, 255, .08); }
.tmx-footer__top { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2.1fr); gap: clamp(48px, 6vw, 112px); padding-top: clamp(72px, 8vw, 112px); padding-bottom: clamp(56px, 6vw, 88px); }
.tmx-footer__logo img { height: 42px; width: auto; }
.tmx-footer__brand > p { margin: 26px 0 30px; font-size: 15px; line-height: 1.7; max-width: 40ch; }
.tmx-footer__contact { display: grid; gap: 16px; }
.tmx-footer__contact a, .tmx-footer__addr { display: inline-flex; align-items: flex-start; gap: 12px; font-size: 15px; line-height: 1.45; transition: color .25s; }
.tmx-footer__contact a:hover { color: #fff; }
.tmx-footer__contact svg { width: 18px; height: 18px; flex: 0 0 18px; margin-top: 1px; color: var(--blue-200); }
.tmx-footer__groups { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)) minmax(0, 1.15fr); gap: 48px 40px; }
.tmx-v2 .tmx-footer__group h2 { margin-bottom: 22px; font-size: 16px; line-height: 1.3; color: #fff; letter-spacing: 0; }
.tmx-footer__group ul { display: grid; gap: 14px; }
.tmx-footer__group ul a { position: relative; display: inline-block; font-size: 15px; line-height: 1.45; transition: color .25s, transform .35s var(--ease); }
.tmx-footer__group ul a::before { content: ""; position: absolute; left: -14px; top: 50%; width: 8px; height: 2px; background: var(--blue); transform: scaleX(0); transform-origin: left; transition: transform .35s var(--ease); }
.tmx-footer__group ul a:hover { color: #fff; transform: translateX(14px); }
.tmx-footer__group ul a:hover::before { transform: scaleX(1); }
.tmx-footer__libro { display: inline-block; padding: 14px 16px; border: 1px solid rgba(255, 255, 255, .22); transition: transform .35s var(--ease), border-color .3s; }
.tmx-footer__libro:hover { transform: translateY(-3px); border-color: var(--blue); }
.tmx-footer__libro img { width: 190px; height: auto; }
.tmx-footer__bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 32px; padding-top: 28px; padding-bottom: 36px; border-top: 1px solid rgba(255, 255, 255, .1); font-size: 13.5px; color: rgba(255, 255, 255, .58); }
.tmx-footer__bottom p:nth-child(2) { margin-right: auto; }
.tmx-footer__top-link { display: inline-flex; align-items: center; gap: 10px; padding: 10px 14px; border: 1px solid rgba(255, 255, 255, .2); color: #fff; font-weight: 500; transition: background .3s, border-color .3s; }
.tmx-footer__top-link svg { width: 16px; height: 16px; transition: transform .4s var(--ease); }
.tmx-footer__top-link:hover { background: var(--blue); border-color: var(--blue); }
.tmx-footer__top-link:hover svg { transform: translateY(-3px); }
@media (max-width: 1280px) {
  .tmx-flank__phone span { display: none; }
}
@media (max-width: 1180px) {
  .tmx-v2 .tmx-link { padding: 0 10px; font-size: 14.5px; }
  .tmx-bar__cta { width: 46px; padding: 0; }
  .tmx-bar__cta-label { display: none; }
  .tmx-mega__card { grid-template-columns: minmax(0, 1fr); align-items: start; gap: 14px; }
  .tmx-mega__media { min-height: 0; aspect-ratio: 16 / 10; }
  .tmx-footer__groups { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .tmx-footer__claims { grid-column: 1 / -1; }
}
@media (max-width: 1024px) {
  .tmx-header { --tab-w: 212px; --tab-s: 30px; }
  .tmx-brand__logo { height: 38px; }
  .tmx-v2 .tmx-link { padding: 0 8px; font-size: 14px; }
  .tmx-footer__top { grid-template-columns: minmax(0, 1fr); }
}
@media (max-width: 820px) {
  :root { --bar-h: 62px; }
  .tmx-header { --tab-w: 172px; --tab-s: 24px; --tab-p: 28px; }
  .tmx-bar { grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); }
  .tmx-brand__logo { height: 32px; }
  .tmx-header.is-compact .tmx-brand__logo, .tmx-header.is-mega .tmx-brand__logo, body.tmx-menu-open .tmx-brand__logo { height: 30px; }
  .tmx-flank--r { grid-column: 2; }
  .tmx-flank__phone { display: none; }
  .tmx-flank__wa {
    display: grid; place-items: center; width: 44px; height: 44px;
    background: var(--blue); color: #fff; transition: background .3s;
  }
  .tmx-flank__wa:hover { background: var(--navy-900); }
  .tmx-flank__wa svg { width: 21px; height: 21px; }
  .tmx-bar__cta { display: none; }
  .tmx-nav__gap { display: none; }
  .tmx-v2 .tmx-toggle {
    display: grid; place-content: center; gap: 5px; width: 44px; height: 44px;
    background: var(--navy-950); border: 0; cursor: pointer;
  }
  .tmx-v2 .tmx-toggle span { display: block; width: 22px; height: 2px; background: #fff; transition: transform .35s var(--ease), opacity .2s; }
  .tmx-v2 .tmx-toggle.is-open span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .tmx-v2 .tmx-toggle.is-open span:nth-child(2) { opacity: 0; }
  .tmx-v2 .tmx-toggle.is-open span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .tmx-v2 .tmx-toggle:focus-visible { outline-offset: -4px; }
  .tmx-nav {
    position: fixed; top: var(--bar-h); left: 0; right: 0; bottom: 0; z-index: 999;
    display: flex; flex-direction: column; justify-content: flex-start; gap: 0;
    padding: 8px var(--gut) calc(28px + env(safe-area-inset-bottom));
    background: var(--navy-950); overflow-y: auto; overscroll-behavior: contain;
    clip-path: inset(0 0 100% 0); visibility: hidden;
    transition: clip-path .6s var(--ease-io), visibility 0s .6s;
  }
  .tmx-nav.is-open { clip-path: inset(0); visibility: visible; transition: clip-path .6s var(--ease-io), visibility 0s; }
  .tmx-nav::before {
    content: ""; position: absolute; top: 0; right: -10%; width: 55%; height: 100%; pointer-events: none;
    background: linear-gradient(180deg, rgba(46, 134, 255, .0), rgba(46, 134, 255, .16));
    clip-path: polygon(40% 0, 100% 0, 60% 100%, 0 100%);
  }
  .tmx-nav__glider { display: none; }
  .tmx-nav__list { display: block; }
  .tmx-nav__item {
    display: block; border-bottom: 1px solid rgba(255, 255, 255, .1);
    opacity: 0; transform: translateY(28px);
    transition: opacity .45s, transform .7s var(--ease);
  }
  .tmx-nav.is-open .tmx-nav__item { opacity: 1; transform: none; transition-delay: calc(var(--i) * 55ms + 180ms); }
  .tmx-v2 .tmx-link {
    height: auto; min-height: 64px; padding: 0; justify-content: space-between;
    font-size: 25px; font-weight: 500; letter-spacing: -.02em; color: #fff;
  }
  .tmx-v2 .tmx-link.is-active { color: var(--blue-200); }
  .tmx-v2 .tmx-link.is-active span::before {
    content: ""; display: inline-block; width: 10px; height: 18px; margin-right: 12px; vertical-align: -1px;
    background: var(--blue); clip-path: polygon(45% 0, 100% 0, 55% 100%, 0 100%);
  }
  .tmx-v2 .tmx-link.is-hot { color: #fff; }
  .tmx-v2 .tmx-dd__chev { width: 38px; height: 38px; display: grid; place-items: center; border: 1px solid rgba(255, 255, 255, .25); }
  .tmx-mega-host:hover .tmx-dd__chev svg, .tmx-mega-host:focus-within .tmx-dd__chev svg { transform: none; }
  .tmx-v2 .tmx-dd.is-open .tmx-dd__chev { background: var(--blue); border-color: var(--blue); }
  .tmx-v2 .tmx-dd.is-open .tmx-dd__chev svg { transform: rotate(135deg); }
  .tmx-mega, .tmx-mega-host:hover .tmx-mega, .tmx-mega-host:focus-within .tmx-mega {
    position: static; display: none; visibility: visible; clip-path: none; background: transparent; border: 0; box-shadow: none; transition: none;
  }
  .tmx-dd.is-open .tmx-mega { display: block; }
  .tmx-mega__inner { grid-template-columns: minmax(0, 1fr); gap: 8px; padding: 0 0 18px; }
  .tmx-mega__card, .tmx-mega__aside { opacity: 1; transform: none; }
  .tmx-mega__card { grid-template-columns: 88px minmax(0, 1fr); gap: 14px; padding: 8px; border-color: rgba(255, 255, 255, .14); }
  .tmx-mega__media { min-height: 0; aspect-ratio: 4 / 3; align-self: center; }
  .tmx-mega__card:hover { background: rgba(255, 255, 255, .06); border-color: rgba(255, 255, 255, .3); }
  .tmx-mega__title { color: #fff; font-size: 16px; }
  .tmx-mega__text { color: rgba(255, 255, 255, .65); font-size: 13px; }
  .tmx-mega__aside { clip-path: none; padding: 4px 0 0; background: transparent; }
  .tmx-mega__q, .tmx-mega__a { display: none; }
  .tmx-nav__foot {
    position: relative; display: grid; gap: 14px; justify-items: start; margin-top: auto; padding-top: 32px;
    opacity: 0; transform: translateY(20px); transition: opacity .45s, transform .7s var(--ease);
  }
  .tmx-nav.is-open .tmx-nav__foot { opacity: 1; transform: none; transition-delay: .55s; }
  .tmx-nav__foot .tmx-btn { width: 100%; }
  .tmx-nav__foot .tmx-btn svg { width: 20px; height: 20px; }
  .tmx-nav__contact { display: inline-flex; align-items: center; gap: 10px; font-size: 15px; color: rgba(255, 255, 255, .78); }
  .tmx-nav__contact .tmx-ico { width: 17px; height: 17px; color: var(--blue-200); }
  body.tmx-menu-open { overflow: hidden; }
  .tmx-footer__groups { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 44px 24px; }
  .tmx-footer__bottom { flex-direction: column; align-items: flex-start; }
  .tmx-footer__bottom p:nth-child(2) { margin-right: 0; }
}
/* Logo oficial de WhatsApp: verde de marca en el acceso rápido */
.tmx-wa-ico { flex: none; }
@media (max-width: 820px) {
  .tmx-flank__wa { background: #25d366 !important; }
  .tmx-flank__wa:hover { background: #1ebe5b !important; }
  .tmx-flank__wa svg { width: 24px; height: 24px; }

  /* ---------- Menú móvil v2 ---------- */
  .tmx-nav { overflow-x: hidden; padding-top: 18px; counter-reset: tmxnav;
    background:
      radial-gradient(90% 50% at 100% 100%, rgba(46, 134, 255, .14), transparent 70%),
      var(--navy-950); }
  .tmx-nav::before { display: none; }
  .tmx-nav__item { counter-increment: tmxnav; border-bottom-color: rgba(255, 255, 255, .08); }
  .tmx-v2 .tmx-link { justify-content: flex-start; gap: 16px; min-height: 62px; font-size: 22px; font-weight: 500; }
  .tmx-v2 .tmx-link::before { content: counter(tmxnav, decimal-leading-zero); flex: none; width: 24px; font-size: 12px; font-weight: 600; letter-spacing: .04em; color: rgba(255, 255, 255, .4); }
  .tmx-v2 .tmx-link:not(.tmx-dd__trigger)::after { content: ""; margin-left: auto; width: 16px; height: 16px; background: rgba(255, 255, 255, .45); -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M6.5 17.5 17 7M8.5 6.5H17.5V15.5'/%3E%3C/svg%3E") center / contain no-repeat; mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23000' stroke-width='2' stroke-linecap='square'%3E%3Cpath d='M6.5 17.5 17 7M8.5 6.5H17.5V15.5'/%3E%3C/svg%3E") center / contain no-repeat; transition: transform .3s var(--ease), background .3s; }
  .tmx-v2 .tmx-link:not(.tmx-dd__trigger):active::after { transform: translate(3px, -3px); }
  .tmx-v2 .tmx-link.is-active::before { color: var(--blue); }
  .tmx-v2 .tmx-link.is-active span::before { display: none; }
  .tmx-v2 .tmx-link.is-active { color: #fff; font-weight: 600; }
  .tmx-v2 .tmx-link.is-active::after { background: var(--blue) !important; }
  .tmx-v2 .tmx-dd__chev { margin-left: auto; width: 34px; height: 34px; border-color: rgba(255, 255, 255, .2); }
  .tmx-nav__item.is-current, .tmx-nav__item:has(.is-active) { box-shadow: inset 3px 0 0 var(--blue); padding-left: 14px; }
  .tmx-mega__inner { padding: 0 0 16px 40px; }
  .tmx-mega__card { border-color: rgba(255, 255, 255, .12); }
  .tmx-mega__aside .tmx-mega__link { font-size: 14px; color: var(--blue-200); }
  .tmx-nav__foot { justify-items: stretch; gap: 10px; padding-top: 28px; }
  .tmx-nav__wa { display: grid; grid-template-columns: 52px minmax(0, 1fr); align-items: center; gap: 14px; padding: 14px 16px; background: #25d366; color: #fff; transition: background .3s; }
  .tmx-nav__wa:hover { background: #1ebe5b; }
  .tmx-nav__wa svg { width: 30px; height: 30px; justify-self: center; }
  .tmx-nav__wa span { display: grid; gap: 1px; }
  .tmx-nav__wa strong { font-size: 17px; font-weight: 600; }
  .tmx-nav__wa small { font-size: 13px; opacity: .9; }
  .tmx-nav__duo { display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; }
  @media (min-width: 560px) { .tmx-nav__duo { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
  .tmx-nav__duo .tmx-nav__contact { display: grid; grid-template-columns: 20px minmax(0, 1fr); align-items: center; gap: 10px; padding: 14px; border: 1px solid rgba(255, 255, 255, .14); font-size: 14px; font-weight: 500; color: #fff; overflow-wrap: anywhere; transition: border-color .3s, background .3s; }
  .tmx-nav__duo .tmx-nav__contact:hover { border-color: var(--blue); background: rgba(46, 134, 255, .1); }
  .tmx-nav__duo .tmx-nav__contact span { display: grid; gap: 2px; }
  .tmx-nav__duo .tmx-nav__contact small { font-size: 12px; font-weight: 500; color: rgba(255, 255, 255, .55); }
  .tmx-nav__duo .tmx-ico { margin-top: 2px; }
}
@media (max-width: 420px) {
  .tmx-hero__actions .tmx-btn { width: 100%; }
}
@media (prefers-reduced-motion: reduce) {

  html { scroll-behavior: auto; }
  .tmx-v2 *, .tmx-v2 *::before, .tmx-v2 *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; transition-delay: 0s !important; }
  .tmx-js [data-reveal], .tmx-js [data-hero-step], .tmx-js .tmx-hero__media, .tmx-js [data-reveal="mask"] { opacity: 1 !important; transform: none !important; clip-path: none !important; }
  .tmx-js [data-reveal="mask"] img { transform: none !important; }
  .tmx-split .wi { transform: none !important; }
  .tmx-js .tmx-hero__title { visibility: visible !important; }
  .tmx-marquee__track { flex-wrap: wrap; width: auto; row-gap: 24px; }
  .tmx-marquee { -webkit-mask-image: none; mask-image: none; }

}

/* Carrito en el header (Tienda, producto, carrito) */
.tmx-cart {
  position: relative; display: grid; place-items: center; width: 46px; height: 46px; flex: none;
  border: 1px solid var(--line); border-radius: var(--r); color: var(--navy-800); transition: background .3s, color .3s, border-color .3s;
}
.tmx-cart:hover { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.tmx-cart .tmx-ico { width: 21px; height: 21px; }
.tmx-cart .tmx-cart-badge-header {
  position: absolute; top: -7px; right: -7px; display: grid; place-items: center;
  min-width: 20px; height: 20px; padding: 0 5px;
  background: var(--blue); color: #fff; border: 2px solid #fff; border-radius: 999px; font-size: 11px; font-weight: 700; line-height: 1;
}
.tmx-content-anchor { display: block; height: 0; outline: none; }
.tmx-cart--m { display: none; }
@media (max-width: 820px) {
  .tmx-cart { width: 44px; height: 44px; }
  .tmx-cart--d { display: none; }
  .tmx-header--shop .tmx-cart--m { display: grid; }
  .tmx-header--shop .tmx-flank__wa { display: none; }
}

/* Filas de categorías con botón "Más" (Home y Tienda) */
.tmx-chip { flex: none; white-space: nowrap; }
.tmx-chip {
  display: inline-flex; align-items: center; min-height: 42px; padding: 0 16px;
  background: #fff; border: 1px solid var(--line); font-size: 14px; font-weight: 500; color: var(--navy-800);
  transition: background .25s, color .25s, border-color .25s;
}
.tmx-chip:hover { border-color: var(--navy-800); }
.tmx-chip.is-active { background: var(--navy-900); border-color: var(--navy-900); color: #fff; }
.tmx-shop__more { position: relative; flex: none; }
.tmx-shop__more[hidden] { display: none; }
.tmx-chip--more { gap: 8px; cursor: pointer; font: inherit; font-size: 14px; font-weight: 500; }
.tmx-chip--more svg { width: 14px; height: 14px; transition: transform .3s var(--ease); }
.tmx-chip--more[aria-expanded="true"] svg { transform: rotate(180deg); }
.tmx-chip--more.has-active { border-color: var(--navy-900); box-shadow: inset 0 -3px 0 var(--blue); }
.tmx-shop__menu {
  position: absolute; right: 0; top: calc(100% + 6px); z-index: 20; min-width: 230px; max-width: min(320px, 86vw);
  display: grid; padding: 6px 0; background: #fff; border: 1px solid var(--line); border-top: 3px solid var(--blue);
  box-shadow: 0 30px 50px -24px rgba(6, 25, 47, .45);
  animation: tmx-rise .35s var(--ease) both;
}
.tmx-shop__menu[hidden] { display: none; }
.tmx-shop__menu .tmx-chip { width: 100%; min-height: 44px; border: 0; border-bottom: 1px solid var(--line); background: transparent; white-space: normal; }
.tmx-shop__menu .tmx-chip:last-child { border-bottom: 0; }
.tmx-shop__menu .tmx-chip:hover { background: var(--paper); }
.tmx-shop__menu .tmx-chip.is-active { background: var(--navy-900); color: #fff; }
.tmx-prow { flex-wrap: nowrap !important; }
.tmx-prow.is-measuring { overflow: hidden !important; }

/* =========================================================
   ESQUINAS REDONDEADAS (8px mínimo en todo el sitio)
   ========================================================= */
.tmx-btn, .tmx-chip, .tmx-flank__wa, .tmx-v2 .tmx-toggle, .tmx-flank__phone .tmx-ico, .tmx-skip,
.tmx-field input, .tmx-field select, .tmx-faq__icon, .tmx-why__ico, .tmx-step__n, .tmx-hero__toggle,
.tmx-quote__direct a, .tmx-quote__list .tmx-ico, .tmx-footer__libro, .tmx-footer__top-link,
.tmx-mega__card, .tmx-mega__media, .tmx-mega__aside, .tmx-v2 .tmx-dd__chev,
.tmx-nav__wa, .tmx-nav__duo .tmx-nav__contact, .tmx-sectors__caption li, .home-shop-product-card__image img { border-radius: var(--r); }
.tmx-tile, .tmx-why__main, .tmx-why__second, .tmx-why__badge, .tmx-sectors__stage, .tmx-sectors__caption,
.tmx-post, .tmx-post__media, .tmx-v2 .home-shop-product-card, .tmx-v2 .home-shop-empty, .tmx-form, .tmx-hero__facts { border-radius: var(--r-lg); }
.tmx-why__visual::before { border-radius: var(--r-lg); }
.tmx-tile, .tmx-why__main, .tmx-why__second, .tmx-sectors__stage, .tmx-post, .tmx-post__media, .tmx-v2 .home-shop-product-card, .tmx-form { overflow: hidden; }
.tmx-v2 .home-shop-product-card__image { border-radius: var(--r-lg) var(--r-lg) 0 0; }
.tmx-sectors__caption { border-radius: 0 var(--r-lg) 0 var(--r-lg); }
.tmx-mega__img { border-radius: calc(var(--r) - 2px); }

/* Menú móvil: Alquiler se abre y se cierra con una animación suave */
@media (max-width: 820px) {
  .tmx-mega, .tmx-mega-host:hover .tmx-mega, .tmx-mega-host:focus-within .tmx-mega {
    display: grid !important; grid-template-rows: 0fr; visibility: hidden;
    transition: grid-template-rows .55s var(--ease-io), visibility 0s .55s !important;
  }
  .tmx-dd.is-open .tmx-mega, .tmx-dd.is-open:hover .tmx-mega, .tmx-dd.is-open:focus-within .tmx-mega {
    grid-template-rows: 1fr; visibility: visible;
    transition: grid-template-rows .55s var(--ease-io), visibility 0s !important;
  }
  .tmx-mega__inner { min-height: 0; overflow: hidden; padding-bottom: 0 !important; }
  .tmx-mega__inner > :last-child { margin-bottom: 16px; }
  .tmx-mega__card, .tmx-mega__aside { opacity: 0 !important; transform: translateY(-10px) !important; transition: opacity .35s, transform .45s var(--ease) !important; }
  .tmx-dd.is-open .tmx-mega__card, .tmx-dd.is-open .tmx-mega__aside { opacity: 1 !important; transform: none !important; }
  .tmx-dd.is-open .tmx-mega__card:nth-child(1) { transition-delay: .12s !important; }
  .tmx-dd.is-open .tmx-mega__card:nth-child(2) { transition-delay: .2s !important; }
  .tmx-dd.is-open .tmx-mega__aside { transition-delay: .28s !important; }
  .tmx-v2 .tmx-dd__chev { transition: transform .45s var(--ease), background .3s, border-color .3s; }
}

/* Aviso "Producto añadido al carrito" (theme.js) y texto solo para lectores de pantalla de WooCommerce */
.screen-reader-text { position: absolute !important; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); clip-path: inset(50%); white-space: nowrap; border: 0; }
.tmx-cart-toast {
  position: fixed; z-index: 2000; left: 50%; bottom: 24px; display: inline-flex; align-items: center; gap: 10px;
  padding: 12px 18px 12px 14px; border-radius: 12px; background: var(--navy-950); color: #fff;
  font-size: 14px; font-weight: 500; box-shadow: 0 20px 40px -16px rgba(6, 25, 47, .6);
  opacity: 0; visibility: hidden; transform: translate(-50%, 16px); pointer-events: none;
  transition: opacity .35s var(--ease), transform .45s var(--ease), visibility 0s .45s;
}
.tmx-cart-toast::before {
  content: ""; width: 22px; height: 22px; flex: none; border-radius: 50%;
  background: #22b573 url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 12.5 10 16.5 18 8'/%3E%3C/svg%3E") center / 14px no-repeat;
}
.tmx-cart-toast.is-visible { opacity: 1; visibility: visible; transform: translate(-50%, 0); transition: opacity .35s var(--ease), transform .45s var(--ease); }
