/*! MendozaGSM · rediseño 2026 («Placa» + botones «corte SIM») sobre el tema default de DHRU Fusion.
 *
 * REGLA DE ORO: nada de lo que está acá puede afectar a una página sin el gate.
 * El partial head.tpl pone la clase `mgsm26` en <html> sólo con el gate activo, así que
 * TODA regla cuelga de `html.mgsm26` o de una clase `.mgsm26-*` (que sólo existe en el
 * markup de nuestros partials). Los @font-face y @keyframes llevan prefijo propio.
 *
 * Contenido: tokens · base · botones corte SIM · barra superior propia (.mgsm26-bar: sólo tipografía; su hoja es site.css, sin gate) ·
 * header · acciones del header · hero · buscador · banners · firma · aviso de cookies de DHRU · piel global ligera ·
 * responsive · movimiento (sólo con prefers-reduced-motion: no-preference).
 */

/* ------------------------------------------------------------------ fuentes */
@font-face {
  font-family: "Mona Sans";
  src: url("fonts/mona-sans-latin-ext.woff2") format("woff2");
  font-weight: 200 900;
  font-stretch: 75% 125%;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
@font-face {
  font-family: "Mona Sans";
  src: url("fonts/mona-sans-latin.woff2") format("woff2");
  font-weight: 200 900;
  font-stretch: 75% 125%;
  font-style: normal;
  font-display: swap;
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

/* ------------------------------------------------------------------- tokens */
html.mgsm26 {
  /* Cierra con las fuentes de emoji del sistema (macOS/iOS, Windows, Android/Linux), antes del genérico: los nombres de los servicios llevan emojis (estrella, rayo, tilde…) como en la
     lista de precios. «Segoe UI Emoji» va sin «Segoe UI Symbol» (monocromo). Mona Sans no trae esos glifos: lo de afuera de su rango cae acá. */
  --m26-sans: "Mona Sans", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", "Noto Sans Arabic", "PingFang SC", "Microsoft YaHei", "Apple Color Emoji", "Segoe UI Emoji", "Noto Color Emoji", sans-serif;
  --m26-mono: ui-monospace, "SF Mono", "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;
  --m26-ease: cubic-bezier(.2, .8, .2, 1);
  --m26-max: 1140px;
  --m26-gut: clamp(16px, 4vw, 32px);
  --m26-hh: 72px;
  --m26-cut: 10px;
  /* el header del sitio es fijo: un salto a un ancla (#x) o un scrollIntoView (validación de formularios) no puede dejar el destino tapado por él */
  scroll-padding-top: calc(var(--m26-hh) + 8px);
}
html.mgsm26[data-mgsm26-theme="light"] {
  color-scheme: light;
  --m26-bg: #f6f5f1;
  --m26-bg-2: #eeece6;
  --m26-surface: #ffffff;
  --m26-surface-2: #f0eee8;
  --m26-surface-3: #e6e3db;
  --m26-ink: #111214;
  --m26-ink-2: #4a4c53;
  --m26-ink-3: #62646b;
  --m26-line: rgba(17, 18, 20, .1);
  --m26-line-2: rgba(17, 18, 20, .22);
  --m26-field: rgba(17, 18, 20, .5);
  --m26-accent: #2b59ff;
  --m26-accent-hover: #1f49e6;
  --m26-accent-t: #2447e0;
  --m26-on-accent: #ffffff;
  --m26-sweep: rgba(255, 255, 255, .26);
  --m26-copper: #9a5a2c;
  --m26-cta: #70401a;
  --m26-ok: #17803f;
  --m26-warn: #96590a;
  --m26-bad: #b3322a;
  --m26-halo: rgba(246, 245, 241, .74);
  --m26-header-bg: rgba(246, 245, 241, .88);
  --m26-shadow-pop: 0 26px 34px rgba(17, 18, 20, .24);
  --m26-shadow-1: 0 1px 2px rgba(17, 18, 20, .06), 0 8px 22px -12px rgba(17, 18, 20, .18);
}
html.mgsm26:not([data-mgsm26-theme="light"]) {
  color-scheme: dark;
  --m26-bg: #0b0c0e;
  --m26-bg-2: #101115;
  --m26-surface: #131418;
  --m26-surface-2: #1a1b20;
  --m26-surface-3: #23252b;
  --m26-ink: #f3f2ee;
  --m26-ink-2: #a9abb3;
  --m26-ink-3: #8d8f98;
  --m26-line: rgba(255, 255, 255, .09);
  --m26-line-2: rgba(255, 255, 255, .18);
  --m26-field: rgba(255, 255, 255, .42);
  --m26-accent: #2b59ff;
  --m26-accent-hover: #3a67ff;
  --m26-accent-t: #8ea2ff;
  --m26-on-accent: #ffffff;
  --m26-sweep: rgba(255, 255, 255, .26);
  --m26-copper: #d9a06c;
  --m26-cta: #e3b180;
  --m26-ok: #4cc38a;
  --m26-warn: #e5a23b;
  --m26-bad: #ec8c84;
  --m26-halo: rgba(11, 12, 14, .62);
  --m26-header-bg: rgba(11, 12, 14, .82);
  --m26-shadow-pop: 0 30px 40px rgba(0, 0, 0, .62);
  --m26-shadow-1: 0 1px 0 rgba(255, 255, 255, .03) inset, 0 12px 28px -16px rgba(0, 0, 0, .7);
}

/* --------------------------------------------------------------------- base
 * El fondo, la tipografía y la piel de componentes (más abajo) sólo se aplican a las páginas que se revisaron con el rediseño puesto: la portada
 * (body.page-index) y las listas de precios (body.page-resellerpricing); el modal de ingreso (#login, está en todas las páginas) y el cajón
 * del menú llevan lo suyo. El resto de DHRU conserva su tema, que ya sigue claro/oscuro, y recibe sólo el marco: barra, header y pie. */
html.mgsm26 body:where(.page-index, .page-resellerpricing) {
  background: var(--m26-bg) !important;
  color: var(--m26-ink);
  font-family: var(--m26-sans);
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .bg-gray { background: var(--m26-bg) !important; }
html.mgsm26 :focus-visible { outline: 2px solid var(--m26-accent-t); outline-offset: 3px; }
html.mgsm26 ::selection { background: color-mix(in srgb, var(--m26-accent) 32%, transparent); color: inherit; }
html.mgsm26 .mgsm26-sr {
  position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}
html.mgsm26 [class*="mgsm26-"][hidden] { display: none !important; }   /* sólo lo nuestro: un [hidden] de DHRU con una utilidad display de Bootstrap no se toca */

/* ------------------------------------------------- botones «corte SIM»
 * Una esquina cortada arriba a la derecha. El fondo vive en ::before (recortado con
 * clip-path) para que el foco y las marcas de visor (::after) queden afuera sin recortar. */
html.mgsm26 .mgsm26-btn,
html.mgsm26 .mgsm26-chipbtn {
  --cut: 10px;
  --h: 48px;
  --fill: var(--m26-accent);
  --fg: var(--m26-on-accent);
  --mark: var(--m26-accent-t);
  --edge: transparent;
  --sweep-c: var(--m26-sweep);
  --clip: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);
  position: relative; isolation: isolate;
  display: inline-flex; align-items: center; justify-content: center; gap: 10px;
  min-height: var(--h); min-width: 44px; padding: 0 22px;
  margin: 0; border: 0; background: none; box-shadow: none; border-radius: 0;
  font: 640 14px/1 var(--m26-sans); font-stretch: 112%; letter-spacing: .07em; text-transform: uppercase;
  text-decoration: none; white-space: nowrap; cursor: pointer;
  color: var(--fg) !important;
  -webkit-tap-highlight-color: transparent;
}
html.mgsm26 .mgsm26-btn:hover, html.mgsm26 .mgsm26-btn:focus { color: var(--fg) !important; text-decoration: none; }
html.mgsm26 .mgsm26-btn::before {
  content: ""; position: absolute; inset: 0; z-index: -1; clip-path: var(--clip);
  background:
    linear-gradient(to top right, transparent calc(50% - .75px), var(--edge) calc(50% - .75px), var(--edge) calc(50% + .75px), transparent calc(50% + .75px)),
    linear-gradient(100deg, transparent 35%, var(--sweep-c) 50%, transparent 65%),
    var(--fill);
  background-repeat: no-repeat;
  background-size: var(--cut) var(--cut), 60% 100%, auto;
  background-position: top right, -160% 0, 0 0;
  box-shadow: inset 0 0 0 1.5px var(--edge);
}
/* Marcas de encuadre (visor) en 3 esquinas: la cuarta es el corte. */
html.mgsm26 .mgsm26-btn::after,
html.mgsm26 .mgsm26-search__box::after {
  content: ""; position: absolute; inset: -6px; pointer-events: none; opacity: 0;
  --m: 9px; --t: 1.5px; --c: var(--mark, var(--m26-accent-t));
  background:
    linear-gradient(var(--c), var(--c)) top left / var(--m) var(--t),
    linear-gradient(var(--c), var(--c)) top left / var(--t) var(--m),
    linear-gradient(var(--c), var(--c)) bottom left / var(--m) var(--t),
    linear-gradient(var(--c), var(--c)) bottom left / var(--t) var(--m),
    linear-gradient(var(--c), var(--c)) bottom right / var(--m) var(--t),
    linear-gradient(var(--c), var(--c)) bottom right / var(--t) var(--m);
  background-repeat: no-repeat;
}
html.mgsm26 .mgsm26-btn:focus-visible { outline: 2px solid transparent; outline-offset: 6px; }
html.mgsm26 .mgsm26-btn:focus-visible::after { opacity: 1; --m: 12px; --t: 2px; }
html.mgsm26 .mgsm26-btn svg { flex: none; }
html.mgsm26 .mgsm26-btn--accent { --fill: var(--m26-accent); --fg: var(--m26-on-accent); --mark: var(--m26-accent-t); }
html.mgsm26 .mgsm26-btn--ghost { --fill: color-mix(in srgb, var(--m26-bg) 72%, transparent); --fg: var(--m26-ink); --edge: var(--m26-ink); --mark: var(--m26-ink); --sweep-c: var(--m26-line-2); }
html.mgsm26 .mgsm26-btn--soft { --fill: color-mix(in srgb, var(--m26-accent) 17%, var(--m26-surface)); --fg: var(--m26-ink); --edge: color-mix(in srgb, var(--m26-accent-t) 55%, transparent); --mark: var(--m26-accent-t); --sweep-c: var(--m26-line-2); }
html.mgsm26 .mgsm26-btn--soft svg:first-child { color: var(--m26-accent-t); }
html.mgsm26 .mgsm26-btn--sm { --cut: 7px; --h: 44px; padding: 0 16px; font-size: 12.5px; gap: 8px; }
html.mgsm26 .mgsm26-btn--lg { --cut: 13px; --h: 56px; padding: 0 28px; font-size: 14.5px; }
html.mgsm26 .mgsm26-btn[aria-busy="true"] { cursor: progress; }
html.mgsm26 .mgsm26-btn[aria-disabled="true"], html.mgsm26 .mgsm26-btn:disabled { --fill: transparent; --fg: var(--m26-ink-3); --edge: var(--m26-line-2); --mark: transparent; cursor: not-allowed; }
@media (hover: hover) {
  html.mgsm26 .mgsm26-btn:not([aria-disabled="true"]):not(:disabled):hover::after { opacity: 1; }
  html.mgsm26 .mgsm26-btn--accent:hover { --fill: var(--m26-accent-hover); }
}
html.mgsm26:lang(ar) .mgsm26-btn, html.mgsm26:lang(he) .mgsm26-btn { letter-spacing: 0; text-transform: none; font-stretch: 100%; }
html.mgsm26:lang(zh) .mgsm26-btn { letter-spacing: .04em; }
/* enlace «saltar al contenido»: sólo se ve al enfocarlo con el teclado */
html.mgsm26 .mgsm26-skip {
  position: fixed; z-index: 2147483000; top: -120px; inset-inline-start: 12px; display: inline-flex; align-items: center; min-height: 48px; padding: 0 22px;
  background: var(--m26-accent); color: var(--m26-on-accent) !important; text-decoration: none; font: 640 14px/1 var(--m26-sans);
  clip-path: polygon(0 0, calc(100% - 10px) 0, 100% 10px, 100% 100%, 0 100%);
}
html.mgsm26 .mgsm26-skip:focus, html.mgsm26 .mgsm26-skip:focus-visible { top: 12px; outline: 2px solid var(--m26-on-accent); outline-offset: -5px; }

/* Botón de ícono (tema, idioma, moneda): cuadrado con corte, contorno fino. */
html.mgsm26 .mgsm26-ico {
  --cut: 8px;
  position: relative; isolation: isolate;
  display: inline-flex; align-items: center; justify-content: center; gap: 6px;
  min-width: 44px; min-height: 44px; padding: 0 12px; margin: 0;
  border: 0; background: none; border-radius: 0; box-shadow: none;
  color: var(--m26-ink) !important; font: 600 12.5px/1 var(--m26-sans); letter-spacing: .06em; text-transform: uppercase;
  cursor: pointer; list-style: none; -webkit-tap-highlight-color: transparent;
}
html.mgsm26 .mgsm26-ico::-webkit-details-marker { display: none; }
html.mgsm26 .mgsm26-ico::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);
  background: linear-gradient(to top right, transparent calc(50% - .6px), var(--m26-line-2) calc(50% - .6px), var(--m26-line-2) calc(50% + .6px), transparent calc(50% + .6px)) no-repeat top right / var(--cut) var(--cut);
  box-shadow: inset 0 0 0 1px var(--m26-line-2);
}
html.mgsm26 .mgsm26-ico:focus-visible { outline: 2px solid var(--m26-accent-t); outline-offset: 3px; }
@media (hover: hover) { html.mgsm26 .mgsm26-ico:hover::before { background-color: var(--m26-surface-2); } }
html.mgsm26 .mgsm26-ico svg { flex: none; }

/* Enlace con flecha */
html.mgsm26 .mgsm26-link {
  display: inline-flex; align-items: center; gap: 8px; min-height: 44px; padding: 0 2px;
  font: 600 14px/1 var(--m26-sans); color: var(--m26-ink) !important; text-decoration: none;
  border-bottom: 1px solid var(--m26-line-2);
}
@media (hover: hover) { html.mgsm26 .mgsm26-link:hover { border-bottom-color: var(--m26-accent-t); } }

html.mgsm26 .mgsm26-kbd {
  font: 600 12px/1 var(--m26-mono); color: var(--m26-ink-3); padding: 7px 9px; min-width: 28px; text-align: center;
  border: 1px solid var(--m26-line-2); border-bottom-width: 2px; border-radius: 6px; background: transparent;
}

/* ---------------------------------------- barra superior propia (.mgsm26-bar)
 * La pieza, su marcado y sus estilos son de este paquete y NO dependen del rediseño: el marcado lo imprime site.tpl (sin gate) y la hoja es assets/mgsm2026/site.css,
 * que carga también con la cookie mgsm2026=0. Con el rediseño activo sólo se le agrega la tipografía de la marca; los colores (claro/oscuro, por data-mgsm26-theme), la
 * franja de una línea, los botones y los rótulos cortos/largos los resuelve site.css. */
html.mgsm26 .mgsm26-bar { font-family: var(--m26-sans); }

/* --------------------------------------------------------------- header DHRU */
/* Sólo el header del sitio (el que trae .header-middle): la página puede tener otros <header> (de un artículo, de una tarjeta) que no son una barra fija */
html.mgsm26 header:has(.header-middle) {
  position: sticky; top: 0; z-index: 1030;
  background: var(--m26-header-bg) !important; border-bottom: 1px solid var(--m26-line) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3);
}
html.mgsm26 header .header-top { display: none !important; }
html.mgsm26 header .header-middle, html.mgsm26 header .header-bottom { background: transparent !important; border: 0; box-shadow: none; }
html.mgsm26 header .header-middle .container { max-width: calc(var(--m26-max) + 30px); }
html.mgsm26 header .navbar-xl { min-height: var(--m26-hh); gap: 6px; }
html.mgsm26 header .navbar-brand { margin: 0 auto 0 0 !important; padding: 0; display: inline-flex; align-items: center; min-height: 44px; color: var(--m26-ink) !important; }
html.mgsm26 header .navbar-brand img {
  max-height: 46px; width: auto; border-radius: 8px; box-shadow: 0 0 0 1px var(--m26-line-2);
  min-width: 64px; /* piso: el flex del header lo comprimía hasta dejarlo del tamaño de un botón (medido 18×7 px en ruso a 360) */
}
html.mgsm26 header .navbar-toggler {
  position: relative; min-width: 44px; min-height: 44px; margin-inline-end: 8px; padding: 0; border: 1px solid var(--m26-line-2); border-radius: 0;
  color: var(--m26-ink) !important; background: none;
  clip-path: polygon(0 0, calc(100% - 8px) 0, 100% 8px, 100% 100%, 0 100%);
}
html.mgsm26 header .navbar-toggler i { font-size: 18px; }
html.mgsm26 header .navbar-mastermenu { gap: 2px; }
/* sólo el botón de ingreso nativo (el que abre #login) y «Registro»: un menú de cuenta que también lleve la clase .login no se toca */
html.mgsm26 header .navbar-mastermenu > li.mgsm26-dup { display: none !important; }
html.mgsm26 header .navbar-mastermenu > li.login:has(a[data-target="#login"]) { display: none !important; }
html.mgsm26 header .navbar-mastermenu > li:has(> a[href$="register"]) { display: none !important; }
html.mgsm26 header .navbar-expand-lg .navbar-nav .nav-link,
html.mgsm26 header .header-bottom.header-middle .navbar-expand-lg .navbar-nav .nav-link,
html.mgsm26 header .header-bottom.header-middle .navbar-expand-lg .navbar-nav .nav-item:hover .nav-link {
  display: inline-flex; align-items: center; gap: 6px; min-height: 44px; padding: 0 14px !important;
  border-radius: 999px; font: 550 15px/1 var(--m26-sans); color: var(--m26-ink-2) !important;
  background: none !important; white-space: nowrap;
}
html.mgsm26 header .navbar-expand-lg .navbar-nav .nav-item .nav-link:not(.bg-secondary)::before { display: none; }
html.mgsm26 header .nav-link:focus-visible, html.mgsm26 header .navbar-brand:focus-visible { outline: 2px solid var(--m26-accent-t) !important; outline-offset: 2px; }
@media (hover: hover) {
  html.mgsm26 header .navbar-mastermenu .nav-item:hover > .nav-link { color: var(--m26-ink) !important; background: color-mix(in srgb, var(--m26-ink) 7%, transparent) !important; }
}
html.mgsm26 header .navbar-expand-lg .navbar-nav .nav-item::after { display: none; }
html.mgsm26 header .dropdown-menu {
  background: var(--m26-surface) !important; border: 1px solid var(--m26-line-2); border-radius: 14px;
  box-shadow: var(--m26-shadow-pop); padding: 8px; min-width: 260px;
}
html.mgsm26 header .dropdown-menu .dropdown-item {
  display: flex; min-height: 44px; align-items: center; border-radius: 10px; padding: 8px 12px;
  background: none !important; color: var(--m26-ink) !important; white-space: normal;
}
html.mgsm26 header .dropdown-menu .dropdown-item:hover,
html.mgsm26 header .dropdown-menu .dropdown-item:focus { background: var(--m26-surface-2) !important; }
html.mgsm26 header .navbar-mastermenu .dropdown-menu { right: 0; left: auto; }

/* Respaldo sin :has() (Firefox < 121, Safari < 15.4: la regla entera se descarta): mgsm2026.js pone mgsm26-site-header en el header del sitio y mgsm26-with-hero en <html> cuando hay hero.
 * Mismas declaraciones que las reglas con :has() (tools/check.mjs comprueba que cada una tenga su gemela). */
html.mgsm26 header.mgsm26-site-header {
  position: sticky; top: 0; z-index: 1030;
  background: var(--m26-header-bg) !important; border-bottom: 1px solid var(--m26-line) !important;
  -webkit-backdrop-filter: blur(16px) saturate(1.3); backdrop-filter: blur(16px) saturate(1.3);
}

/* el header sobre la portada: transparente arriba, vidrio al bajar */
html.mgsm26 body.page-index:has(.mgsm26-hero) header:has(.header-middle) { margin-bottom: calc(var(--m26-hh) * -1); }
html.mgsm26 body.page-index:has(.mgsm26-hero) header:has(.header-middle):not([data-scrolled]) {
  background: transparent !important; border-bottom-color: transparent !important;
  -webkit-backdrop-filter: none; backdrop-filter: none;
}
html.mgsm26.mgsm26-with-hero body.page-index header.mgsm26-site-header { margin-bottom: calc(var(--m26-hh) * -1); }
html.mgsm26.mgsm26-with-hero body.page-index header.mgsm26-site-header:not([data-scrolled]) {
  background: transparent !important; border-bottom-color: transparent !important;
  -webkit-backdrop-filter: none; backdrop-filter: none;
}

/* --------------------------------------------------- acciones del header */
html.mgsm26 .mgsm26-actions { display: flex; align-items: center; gap: 8px; margin-inline-start: 10px; }
html.mgsm26 .mgsm26-actions .mgsm26-btn__t { display: inline; }
html.mgsm26 .mgsm26-drawer-theme { display: none; }
html.mgsm26 .mgsm26-opt__price:empty { display: none; }
html.mgsm26 .mgsm26-ico__sun { display: none; }
html.mgsm26[data-mgsm26-theme="light"] .mgsm26-ico__sun { display: block; }
html.mgsm26[data-mgsm26-theme="light"] .mgsm26-ico__moon { display: none; }

/* menús desplegables propios (idioma y moneda) */
html.mgsm26 .mgsm26-lang, html.mgsm26 .mgsm26-cur { position: relative; }
html.mgsm26 .mgsm26-lang > summary { padding-inline: 10px; }
html.mgsm26 .mgsm26-lang .flag { flex: none; transform: scale(1.1); }
html.mgsm26 .mgsm26-lang[open] > summary svg, html.mgsm26 .mgsm26-cur.is-open > .mgsm26-ico svg:last-child { transform: rotate(180deg); }
html.mgsm26 .mgsm26-menu {
  position: absolute; z-index: 1040; top: calc(100% + 8px); inset-inline-end: 0; width: 244px; max-height: min(78vh, 580px); overflow-y: auto;
  padding: 8px; background: var(--m26-surface); border: 1px solid var(--m26-line-2); border-radius: 14px; box-shadow: var(--m26-shadow-pop);
  overscroll-behavior: contain;
}
html.mgsm26 .mgsm26-menu__list { list-style: none; margin: 0; padding: 0; }
html.mgsm26 .mgsm26-menu__item {
  display: flex; align-items: center; min-height: 44px; padding: 8px 12px; border-radius: 10px; border: 0; width: 100%;
  background: none; color: var(--m26-ink) !important; font: 550 15px/1.2 var(--m26-sans); text-align: start; text-decoration: none; cursor: pointer;
}
/* Mona Sans no trae cirílico, árabe ni CJK: la fuente del sistema recibe 550 como negrita y el nombre del idioma se ve más pesado que los demás */
html.mgsm26 .mgsm26-menu__item:lang(ru), html.mgsm26 .mgsm26-menu__item:lang(ar), html.mgsm26 .mgsm26-menu__item:lang(zh), html.mgsm26 .mgsm26-menu__item:lang(uk), html.mgsm26 .mgsm26-menu__item:lang(he) { font-weight: 450; }
/* «Más idiomas» (cerrado) tiene «Čeština»: Chrome resuelve la fuente aunque el <details> esté cerrado y bajaba latin-ext (33 KB) en toda carga */
html.mgsm26 .mgsm26-more .mgsm26-menu__item { font-family: ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Noto Sans", sans-serif; }
html.mgsm26 .mgsm26-menu__item[aria-current="true"] { background: var(--m26-surface-2); box-shadow: inset 3px 0 0 var(--m26-accent); }
html.mgsm26 .mgsm26-menu__item:hover, html.mgsm26 .mgsm26-menu__item:focus-visible { background: var(--m26-surface-2); color: var(--m26-ink) !important; text-decoration: none; }
html.mgsm26 .mgsm26-more { margin-top: 6px; border-top: 1px solid var(--m26-line); padding-top: 6px; }
html.mgsm26 .mgsm26-more__sum {
  display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: 10px; cursor: pointer; list-style: none;
  font: 600 12px/1 var(--m26-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--m26-ink-2);
}
html.mgsm26 .mgsm26-more__sum::-webkit-details-marker { display: none; }
html.mgsm26 .mgsm26-more__sum::after { content: "+"; margin-inline-start: auto; font-size: 16px; }
html.mgsm26 .mgsm26-more[open] > .mgsm26-more__sum::after { content: "−"; }
html.mgsm26 .mgsm26-cur .mgsm26-menu { width: 168px; }

/* ---------------------------------------------------------------------- hero */
html.mgsm26 .mgsm26-hero {
  position: relative; z-index: 2; isolation: isolate;
  display: grid; place-items: center; text-align: center;
  min-height: clamp(560px, calc(100svh - 44px - 84px), 780px); /* deja asomar ~84 px de banners en el primer pliegue */
  padding: calc(var(--m26-hh) + 28px) var(--m26-gut) 56px;
  background: var(--m26-bg); color: var(--m26-ink);
}
html.mgsm26 .mgsm26-fondo {
  position: absolute; inset: 0; z-index: -1; overflow: hidden; pointer-events: none;
  /* sin JS o con el fondo caído: dos resplandores suaves, nada de retícula */
  background:
    radial-gradient(ellipse 55% 60% at 18% 78%, color-mix(in srgb, var(--m26-copper) 16%, transparent), transparent 70%),
    radial-gradient(ellipse 50% 55% at 84% 22%, color-mix(in srgb, var(--m26-accent) 16%, transparent), transparent 70%),
    var(--m26-bg);
}
html.mgsm26 .mgsm26-fondo.is-live { background: var(--m26-bg); }
html.mgsm26 .mgsm26-fondo canvas { position: absolute; inset: 0; width: 100%; height: 100%; display: block; }
html.mgsm26 .mgsm26-fondo video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: .55; }
/* halo detrás del texto: la legibilidad no depende del fondo que se monte */
html.mgsm26 .mgsm26-fondo::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background:
    radial-gradient(ellipse 46% 46% at 50% 44%, var(--m26-halo), transparent 76%),
    linear-gradient(to bottom, var(--m26-bg) 0, transparent 22%, transparent 78%, var(--m26-bg) 100%);
}
html.mgsm26 .mgsm26-hero__in { position: relative; width: min(100%, 900px); min-width: 0; }
html.mgsm26 .mgsm26-h1 {
  margin: 0; color: var(--m26-ink);
  font: 780 clamp(40px, 6vw, 82px)/.98 var(--m26-sans); font-stretch: 88%;
  letter-spacing: -.03em; word-spacing: .07em; text-wrap: balance; overflow-wrap: break-word;
}
html.mgsm26:lang(ar) .mgsm26-h1, html.mgsm26 .mgsm26-hero[dir="rtl"] .mgsm26-h1 { letter-spacing: 0; word-spacing: 0; line-height: 1.12; font-weight: 750; }
html.mgsm26 .mgsm26-hero:lang(zh) .mgsm26-h1 { letter-spacing: .01em; word-spacing: 0; line-height: 1.12; font-weight: 750; }
html.mgsm26 .mgsm26-hero:lang(ru) .mgsm26-h1, html.mgsm26 .mgsm26-hero:lang(tr) .mgsm26-h1 { font-size: clamp(36px, 5.2vw, 72px); }
/* con diacríticos (ç, ş, İ, Ü) el interlineado de .98 los deja pegados a la línea de abajo */
html.mgsm26 .mgsm26-hero:lang(tr) .mgsm26-h1 { line-height: 1.06; }
html.mgsm26 .mgsm26-sub {
  margin: 22px auto 0; max-width: 34em; color: var(--m26-ink-2);
  font: 450 clamp(16px, 1.5vw, 20px)/1.4 var(--m26-sans); text-wrap: balance;
}

/* ------------------------------------------------------------------ buscador */
html.mgsm26 .mgsm26-search { position: relative; margin: 34px auto 0; max-width: 780px; text-align: start; scroll-margin-top: 6px; /* + scroll-padding-top de <html> (header + 8 px): se SUMAN, no pisa uno al otro */ }
html.mgsm26 .mgsm26-search__box {
  --cut: 14px; --edge: var(--m26-field); --mark: var(--m26-accent-t);
  position: relative; isolation: isolate; display: flex; align-items: center; gap: 8px;
  height: 68px; padding: 0 9px 0 20px;
  filter: drop-shadow(var(--m26-shadow-pop));
}
html.mgsm26 .mgsm26-search__box::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);
  background:
    linear-gradient(to top right, transparent calc(50% - .75px), var(--edge) calc(50% - .75px), var(--edge) calc(50% + .75px), transparent calc(50% + .75px)) no-repeat top right / var(--cut) var(--cut),
    var(--m26-surface);
  box-shadow: inset 0 0 0 1.5px var(--edge);
}
html.mgsm26 .mgsm26-search__box::after { inset: -7px; --m: 12px; --t: 2px; }
html.mgsm26 .mgsm26-search__box:focus-within { --edge: var(--m26-accent-t); }
html.mgsm26 .mgsm26-search__box:focus-within::after { opacity: 1; }
html.mgsm26 .mgsm26-search__ico { flex: none; color: var(--m26-ink-3); }
html.mgsm26 .mgsm26-search__box:focus-within .mgsm26-search__ico { color: var(--m26-accent-t); }
html.mgsm26 .mgsm26-search__input {
  flex: 1; min-width: 0; height: 100%; padding: 0 6px; margin: 0; border: 0 !important; border-radius: 0;
  background: transparent !important; box-shadow: none !important; outline: 0;
  color: var(--m26-ink) !important; font: 500 18px/1.2 var(--m26-sans); letter-spacing: -.01em; -webkit-appearance: none; appearance: none;
}
html.mgsm26 .mgsm26-search__input::placeholder { color: var(--m26-ink-3); opacity: 1; font-weight: 450; text-overflow: ellipsis; }
html.mgsm26 .mgsm26-search__input { text-overflow: ellipsis; }
html.mgsm26 .mgsm26-search__input::-webkit-search-cancel-button, html.mgsm26 .mgsm26-search__input::-webkit-search-decoration { display: none; }
html.mgsm26 .mgsm26-search__clear {
  flex: none; width: 44px; height: 44px; display: inline-grid; place-items: center; padding: 0; border: 0; border-radius: 50%;
  background: color-mix(in srgb, var(--m26-ink) 8%, transparent); color: var(--m26-ink-2); cursor: pointer;
}
html.mgsm26 .mgsm26-search__clear:hover { background: color-mix(in srgb, var(--m26-ink) 15%, transparent); color: var(--m26-ink); }
html.mgsm26 .mgsm26-search__go { --h: 50px; --cut: 10px; flex: none; padding: 0 20px; }
html.mgsm26 .mgsm26-search__box:focus-within .mgsm26-kbd { display: none; }

/* panel de autocompletado */
html.mgsm26 .mgsm26-panel {
  --cut: 16px;
  position: absolute; z-index: 40; inset-inline: 0; top: calc(100% + 12px);
  display: flex; flex-direction: column; isolation: isolate;
  max-height: var(--m26-room, min(560px, calc(100svh - 150px)));
  filter: drop-shadow(var(--m26-shadow-pop));
}
html.mgsm26 .mgsm26-panel::before {
  content: ""; position: absolute; inset: 0; z-index: -1;
  clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);
  background:
    linear-gradient(to top right, transparent calc(50% - .75px), var(--m26-line-2) calc(50% - .75px), var(--m26-line-2) calc(50% + .75px), transparent calc(50% + .75px)) no-repeat top right / var(--cut) var(--cut),
    var(--m26-surface);
  box-shadow: inset 0 0 0 1px var(--m26-line-2);
}
html.mgsm26 .mgsm26-panel__list { list-style: none; margin: 0; padding: 6px 0 0; overflow-y: auto; overscroll-behavior: contain; min-height: 0; }
html.mgsm26 .mgsm26-opt {
  display: grid; grid-template-columns: minmax(0, 1fr) auto; align-items: center; column-gap: 16px;
  min-height: 60px; padding: 8px 16px 8px 20px; border-top: 1px solid var(--m26-line); position: relative;
  color: var(--m26-ink) !important; text-decoration: none; cursor: pointer;
}
html.mgsm26 .mgsm26-panel__list > li:first-child > .mgsm26-opt { border-top: 0; }
html.mgsm26 .mgsm26-opt::before {
  content: ""; position: absolute; inset-inline-start: 0; top: 12px; bottom: 12px; width: 3px; border-radius: 0 3px 3px 0;
  background: var(--m26-accent); transform: scaleY(0); transform-origin: center;
}
html.mgsm26 .mgsm26-opt[aria-selected="true"], html.mgsm26 .mgsm26-opt:hover { background: var(--m26-surface-2); text-decoration: none; }
html.mgsm26 .mgsm26-opt[aria-selected="true"]::before { transform: scaleY(1); }
html.mgsm26 .mgsm26-opt__name {
  font-size: 15.5px; font-weight: 600; letter-spacing: -.01em; line-height: 1.28; overflow-wrap: anywhere;
  display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;
}
html.mgsm26 .mgsm26-opt__meta { margin-top: 2px; font-size: 12.5px; color: var(--m26-ink-2); line-height: 1.3; overflow-wrap: anywhere; display: block; }
html.mgsm26 .mgsm26-opt__price { font: 600 14px/1.2 var(--m26-mono); font-variant-numeric: tabular-nums; white-space: nowrap; color: var(--m26-ink); justify-self: end; direction: ltr; unicode-bidi: isolate; }
html.mgsm26 .mgsm26-opt mark { background: color-mix(in srgb, var(--m26-accent) 24%, transparent); color: inherit; border-radius: 3px; padding: 0 1px; }
html.mgsm26 .mgsm26-panel__none { margin: 0; padding: 22px 20px 20px; color: var(--m26-ink-2); font-size: 15px; }
html.mgsm26 .mgsm26-panel__foot { display: flex; align-items: center; justify-content: flex-end; min-height: 52px; padding: 0 20px; border-top: 1px solid var(--m26-line-2); }
html.mgsm26 .mgsm26-panel__foot .mgsm26-link { border-bottom-color: transparent; }

/* en árabe las flechas de acción miran hacia donde se lee (scale es independiente de transform: el desplazamiento del hover queda espejado solo) */
html.mgsm26 .mgsm26-hero[dir="rtl"] :is(.mgsm26-btn, .mgsm26-link) > svg:last-child:not(:first-child) { scale: -1 1; }

/* CTAs */
html.mgsm26 .mgsm26-cta { display: flex; flex-wrap: wrap; justify-content: center; gap: 14px; margin-top: 28px; }
html.mgsm26 .mgsm26-cd-host { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
html.mgsm26 .mgsm26-hero .mgsm26-btn__t { display: inline; }

/* «Lista de precios»: un botón (mismo sistema corte SIM) que despliega las tres listas. El menú reutiliza .mgsm26-menu (idioma y moneda) y se ancla al borde final del botón;
 * en teléfono el botón ocupa el ancho de la columna y el menú también. */
html.mgsm26 .mgsm26-pl { position: relative; display: inline-flex; }
html.mgsm26 .mgsm26-pl__menu {
  z-index: 45; top: calc(100% + 10px); inset-inline-start: auto; inset-inline-end: 0;
  width: max-content; min-width: 100%; max-width: min(440px, calc(100vw - 2 * var(--m26-gut)));
  text-align: start; overflow-y: visible;
}
html.mgsm26 .mgsm26-pl__menu .mgsm26-menu__item { white-space: normal; }
html.mgsm26 .mgsm26-pl__chev { transform-origin: 50% 50%; }
html.mgsm26 .mgsm26-pl__btn[aria-expanded="true"] .mgsm26-pl__chev { transform: rotate(180deg); }

/* --------------------------------------------------------------------- banners */
html.mgsm26 .mgsm26-banners { position: relative; padding: 8px var(--m26-gut) 48px; background: var(--m26-bg); }
html.mgsm26 .mgsm26-banners__vp { max-width: var(--m26-max); margin-inline: auto; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none; overscroll-behavior-x: contain; -webkit-overflow-scrolling: touch; }
html.mgsm26 .mgsm26-banners__vp::-webkit-scrollbar { display: none; }
html.mgsm26 .mgsm26-banners__track { list-style: none; margin: 0; padding: 0; display: flex; gap: 16px; }
html.mgsm26 .mgsm26-banner {
  --cut: 16px;
  position: relative; isolation: isolate; flex: 0 0 calc((100% - 32px) / 3); min-width: 0; min-height: 132px;
  scroll-snap-align: start; overflow: hidden; display: flex; align-items: stretch;
  color: var(--m26-ink); background: var(--m26-b-bg, var(--m26-surface));
  text-align: start; /* Bootstrap fija text-align: left en el <body>: en RTL el texto se quedaba a la izquierda */
  clip-path: polygon(0 0, calc(100% - var(--cut)) 0, 100% var(--cut), 100% 100%, 0 100%);
  box-shadow: inset 0 0 0 1px var(--m26-line-2);
}
html.mgsm26 .mgsm26-banner--color, html.mgsm26 .mgsm26-banner--svg, html.mgsm26 .mgsm26-banner--image { color: #fff; }
html.mgsm26 .mgsm26-banner--color:not([style]), html.mgsm26 .mgsm26-banner--svg:not([style]) { color: var(--m26-ink); }
html.mgsm26 .mgsm26-banner[data-tone="on-light"] { color: #111214; }
html.mgsm26 .mgsm26-banner[data-tone="on-dark"] { color: #fff; }
/* el velo cubre todo el ancho: con una imagen que lleva un logo o texto a la derecha, el mensaje seguía ilegible sobre ella */
html.mgsm26 .mgsm26-banner--image .mgsm26-banner__body { background: linear-gradient(90deg, rgba(8, 9, 12, .94), rgba(8, 9, 12, .86) 62%, rgba(8, 9, 12, .74)); }
/* enlaces de acción de los banners del admin: mgsm2026.js les pone el sistema de botones (contorno + corte SIM); acá, los colores según el fondo que eligió el admin */
html.mgsm26 .mgsm26-banner--image .mgsm26-btn--ghost,
html.mgsm26 .mgsm26-banner[data-tone="on-dark"] .mgsm26-btn--ghost { --fill: rgba(8, 9, 12, .4); --fg: #fff; --edge: #fff; --mark: #fff; --sweep-c: rgba(255, 255, 255, .28); }
html.mgsm26 .mgsm26-banner[data-tone="on-light"] .mgsm26-btn--ghost { --fill: rgba(255, 255, 255, .55); --fg: #111214; --edge: #111214; --mark: #111214; --sweep-c: rgba(17, 18, 20, .16); }
html.mgsm26 .mgsm26-banner__body .mgsm26-btn { align-self: flex-start; margin-top: 8px; text-decoration: none; }
html.mgsm26 .mgsm26-banner__img { position: absolute; inset: 0; z-index: -1; width: 100%; height: 100%; max-width: none !important; object-fit: cover; }
html.mgsm26 .mgsm26-banner__body { position: relative; width: 100%; padding: 18px 22px; display: flex; flex-direction: column; justify-content: center; gap: 4px; font-size: 14px; line-height: 1.4; }
html.mgsm26 .mgsm26-banner__body :is(h1, h2, h3, h4, h5, h6) { margin: 0; font: 760 20px/1.15 var(--m26-sans); letter-spacing: -.02em; color: inherit; }
html.mgsm26 .mgsm26-banner--fb .mgsm26-banner__body :is(h2, h3) { font: 700 17px/1.2 var(--m26-sans); letter-spacing: -.01em; }
html.mgsm26 .mgsm26-banner__body p { margin: 0; color: inherit; }
html.mgsm26 .mgsm26-banner__body a:not(.mgsm26-btn) { color: inherit; text-decoration: underline; text-underline-offset: 3px; display: inline-flex; align-items: center; min-height: 44px; }
html.mgsm26 .mgsm26-banner__body img { max-width: 100%; height: auto; }
/* banners de pago de reserva (sin banners del admin): icono · texto · botón en una fila compacta */
html.mgsm26 .mgsm26-banner--fb { background: color-mix(in srgb, var(--m26-accent) 9%, var(--m26-surface)); min-height: 108px; }
html.mgsm26 .mgsm26-banner--fb-fiat { background: color-mix(in srgb, var(--m26-copper) 11%, var(--m26-surface)); }
/* todo alineado arriba: si un párrafo ocupa dos líneas y el de al lado una, los títulos, el ícono y el botón quedan a la misma altura en las dos tarjetas */
html.mgsm26 .mgsm26-banner--fb .mgsm26-banner__body { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: start; align-content: start; column-gap: 16px; row-gap: 2px; padding: 20px 22px; }
html.mgsm26 .mgsm26-banner--fb .mgsm26-banner__ico { grid-row: 1 / span 2; color: var(--m26-accent-t); }
html.mgsm26 .mgsm26-banner--fb-fiat .mgsm26-banner__ico { color: var(--m26-cta); }
html.mgsm26 .mgsm26-banner--fb :is(h2, h3) { grid-column: 2; align-self: start; font: 700 17px/1.2 var(--m26-sans); letter-spacing: -.01em; }
html.mgsm26 .mgsm26-banner--fb p { grid-column: 2; align-self: start; color: var(--m26-ink-2); font-size: 14px; text-wrap: balance; }
html.mgsm26 .mgsm26-banner--fb .mgsm26-btn { grid-column: 3; grid-row: 1 / span 2; align-self: start; margin-top: -4px; }
html.mgsm26 .mgsm26-banners--n1 .mgsm26-banner, html.mgsm26 .mgsm26-banners--n2 .mgsm26-banner { flex-basis: calc((100% - 16px) / 2); }
html.mgsm26 .mgsm26-banners--n1 .mgsm26-banner { flex-basis: 100%; }
html.mgsm26 .mgsm26-banners__ctl { display: flex; align-items: center; justify-content: center; gap: 6px; max-width: var(--m26-max); margin: 12px auto 0; }
html.mgsm26 .mgsm26-banners__dots { display: flex; align-items: center; }
html.mgsm26 .mgsm26-dot { width: 44px; height: 44px; display: inline-grid; place-items: center; padding: 0; border: 0; background: none; cursor: pointer; }
html.mgsm26 .mgsm26-dot::before { content: ""; width: 8px; height: 8px; border-radius: 50%; background: var(--m26-line-2); }
html.mgsm26 .mgsm26-dot[aria-current="true"]::before { width: 22px; border-radius: 4px; background: var(--m26-accent-t); }
html.mgsm26 .mgsm26-banners__nav { width: 44px; height: 44px; display: inline-grid; place-items: center; padding: 0; border: 1px solid var(--m26-line-2); background: none; color: var(--m26-ink); border-radius: 50%; cursor: pointer; }
html.mgsm26 .mgsm26-banners__nav:hover { background: var(--m26-surface-2); }
html.mgsm26 .mgsm26-banners__nav .mgsm26-ico-play { display: none; }
html.mgsm26 .mgsm26-banners__nav[data-state="paused"] .mgsm26-ico-pause { display: none; }
html.mgsm26 .mgsm26-banners__nav[data-state="paused"] .mgsm26-ico-play { display: block; }

/* --------------------------------------------------------------------- firma */
html.mgsm26 .mgsm26-firma { padding: 14px var(--m26-gut) 18px; text-align: center; background: var(--m26-bg-2); border-top: 1px solid var(--m26-line); }
/* En teléfonos el lanzador real del chat (cápsula fija abajo a la derecha, ~100 × 56 px) tapaba la firma al final de la página. */
@media (max-width: 600px) { html.mgsm26 .mgsm26-firma { padding-bottom: calc(88px + env(safe-area-inset-bottom, 0px)); } }
html.mgsm26 .mgsm26-firma__a {
  display: inline-flex; align-items: center; min-height: 44px; padding: 0 12px;
  font: 600 11.5px/1 var(--m26-mono); letter-spacing: .08em; text-transform: uppercase; color: var(--m26-ink-2) !important; text-decoration: none;
}
html.mgsm26 .mgsm26-firma__a:hover { color: var(--m26-ink) !important; text-decoration: underline; text-underline-offset: 4px; }

/* Barra del arcade («Sumá puntos gratis · Ver») del snippet de dhru-addons/games-sorteo. Eze la quitó (2026-10-12) y vació «Other HTML Code»: el arcade NO vuelve (site.tpl
 * sólo trae la barra superior y el chat). La regla queda de defensa: si alguien pega otra vez ese snippet en el campo, la barra no se ve con el rediseño puesto. */
html.mgsm26 #mgsm-arcade-root { display: none !important; }

/* Leyenda de la plataforma que el núcleo de DHRU agrega después de </html> (<div class="cn"> con un enlace a dhru.com).
 * Trae display y opacidad en línea con !important, que ninguna hoja puede pisar: se oculta con lo que el estilo en línea
 * no fija. Pedido de Eze (2026-10-11). mgsm2026.js además quita el nodo. Sin «body >»: el HTML de DHRU deja
 * etiquetas abiertas y el navegador la cuelga del último <div> abierto, no del <body>. */
html.mgsm26 div.cn:has(> a[href*="dhru.com" i]) {
  visibility: hidden !important; height: 0 !important; min-height: 0 !important; overflow: hidden !important;
  clip-path: inset(50%) !important; pointer-events: none !important; margin: 0 !important; border: 0 !important;
}

/* ----------------------------------------------- piel de componentes (páginas verificadas)
 * Fondo, texto, enlaces, botones, tarjetas, formularios, tablas, menús y modales: SOLO en la portada y las listas de precios (body.page-index y
 * body.page-resellerpricing, las páginas que se revisaron con el rediseño puesto) y en el modal de ingreso (#login) y el cajón del menú, que están en
 * todas. Cuenta, pedidos, tickets, addfunds, API, el asistente de pedidos, calendarios y gráficos conservan el tema de DHRU hasta que alguien los revise
 * con una cuenta real (claro y oscuro, 1440 y 390 px) y sume su clase de <body> a las listas de abajo. :where() deja la especificidad como era. */
html.mgsm26 body:where(.page-index, .page-resellerpricing),
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .page-title,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .h1,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .h2,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .h3,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .h4,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .h5,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .h6,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) h1,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) h2,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) h3,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) h4,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) h5,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) h6 { color: var(--m26-ink); }
/* :where() deja la especificidad en la del selector «a»: una regla de una sola clase del tema (p. ej. enlaces .badge-*, .text-white) le gana */
:where(html.mgsm26) :where(body:is(.page-index, .page-resellerpricing), #login) a { color: var(--m26-ink); }
:where(html.mgsm26) :where(body:is(.page-index, .page-resellerpricing), #login) a:hover { color: var(--m26-accent-t); text-decoration: none; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .text-muted { color: var(--m26-ink-2) !important; opacity: 1; }
/* los títulos de las páginas interiores pesaban 300 frente al 780 del H1 de la portada */
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .page-title { font-weight: 700; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .bg-white { background-color: var(--m26-surface) !important; color: var(--m26-ink); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .bg-light { background-color: var(--m26-surface-2) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .border,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .border-top,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .border-bottom,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .border-left,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .border-right { border-color: var(--m26-line-2) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) hr { border-top-color: var(--m26-line-2); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .breadcrumb a, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .breadcrumb { color: var(--m26-ink-3); }

/* botones DHRU: base neutra SOLO para el .btn pelado (sin variante); .btn-primary pasa al acento con corte.
 * Las variantes (.btn-warning, .btn-info, .btn-secondary, .btn-dark, .btn-outline-*, .btn-link, .btn-sm, .btn-small…) conservan los colores del tema
 * de DHRU, que ya sigue el modo claro/oscuro: acá sólo se verificó la portada, la lista de precios, el header, el pie y los modales. */
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn:not([class*="btn-"]) { border-radius: 10px; border: 1px solid var(--m26-line-2) !important; background: var(--m26-surface-2) !important; color: var(--m26-ink) !important; font-weight: 600; box-shadow: none; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn:not([class*="btn-"]):hover { background: var(--m26-surface-3) !important; color: var(--m26-ink) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn.btn-primary,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) button.btn.btn-primary,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn.bg-primary,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn-addtocart.btn-primary {
  background: var(--m26-accent) !important; border-color: transparent !important; color: var(--m26-on-accent) !important;
  border-radius: 0; clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 0 100%);
}
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn.btn-primary:hover, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn.bg-primary:hover { background: var(--m26-accent-hover) !important; color: var(--m26-on-accent) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn.btn-danger { background: var(--m26-bad) !important; border-color: transparent !important; color: #fff !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn.btn-success { background: var(--m26-ok) !important; border-color: transparent !important; color: #fff !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .btn:focus-visible { outline: 2px solid var(--m26-accent-t); outline-offset: 2px; }

/* tarjetas */
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .card, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .card-product .product-info { background: var(--m26-surface) !important; border: 1px solid var(--m26-line) !important; border-radius: 14px; box-shadow: var(--m26-shadow-1); color: var(--m26-ink); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .card .card { box-shadow: none; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .card-body,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .card-header,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .card-footer { background: transparent !important; border-color: var(--m26-line) !important; color: inherit; }

/* formularios */
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .form-control,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .input-group-text,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .custom-select,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .chosen-container-single .chosen-single,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .chosen-container .chosen-drop {
  background: var(--m26-surface) !important; color: var(--m26-ink) !important; border: 1px solid var(--m26-line-2) !important; border-radius: 10px; box-shadow: none;
}
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .form-control:not(.form-control-sm) { min-height: 44px; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .form-control::placeholder { color: var(--m26-ink-3); opacity: 1; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .form-control:focus { border-color: var(--m26-accent-t) !important; box-shadow: 0 0 0 3px color-mix(in srgb, var(--m26-accent) 28%, transparent) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .input-group > .form-control:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .input-group-prepend .input-group-text { border-top-right-radius: 0; border-bottom-right-radius: 0; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .chosen-container .chosen-results li { color: var(--m26-ink); border-bottom-color: var(--m26-line); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .chosen-container .chosen-results li.highlighted { background: var(--m26-surface-2) !important; color: var(--m26-ink) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) label, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login) .custom-control-label { color: var(--m26-ink-2); }

/* tablas (lista de precios): sin tocar anchos ni comportamiento */
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table { color: var(--m26-ink); background: transparent !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table th, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table td { border-color: var(--m26-line) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table thead th { background: var(--m26-surface-2) !important; color: var(--m26-ink-2); font-weight: 600; letter-spacing: .01em; border-bottom: 1px solid var(--m26-line-2) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table thead th h5, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table thead th .h5 { color: var(--m26-ink); font-size: 16px; font-weight: 700; margin: 0; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table-striped tbody tr:nth-of-type(odd) { background: color-mix(in srgb, var(--m26-surface-2) 55%, transparent) !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table-striped tbody tr:nth-of-type(even) { background: transparent !important; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table-hover tbody tr:hover { background: color-mix(in srgb, var(--m26-accent) 9%, transparent) !important; color: var(--m26-ink); }
/* DHRU deja .prefix/.suffix (el «$CRD» de cada precio) con opacity .6: sumado a ink-3 daba 2,5:1. Sin la opacidad y con ink-2 pasa 7:1 en los dos temas */
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table .prefix, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table .suffix { opacity: 1; color: var(--m26-ink-2); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table td .nowrap, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .table td.text-right { font-variant-numeric: tabular-nums; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .reseller-pricing .group.card { overflow: hidden; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .page-link { background: var(--m26-surface); border-color: var(--m26-line-2); color: var(--m26-ink); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .nav-pills .nav-link.active, html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) ul.nav-pills.flex-nowrap .nav-link.active { background: var(--m26-accent) !important; color: var(--m26-on-accent) !important; }

/* menús, modales */
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .dropdown-menu { background: var(--m26-surface) !important; border: 1px solid var(--m26-line-2); color: var(--m26-ink); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing)) .dropdown-item { color: var(--m26-ink); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login, .modal-menu) .modal-content { background: var(--m26-surface) !important; color: var(--m26-ink); border: 1px solid var(--m26-line-2); border-radius: 16px; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login, .modal-menu) .modal-header { background: var(--m26-surface-2) !important; color: var(--m26-ink); border-bottom: 1px solid var(--m26-line-2); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login, .modal-menu) .modal-body { background: var(--m26-surface) !important; color: var(--m26-ink); }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login, .modal-menu) .modal-title,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login, .modal-menu) .modal-header .close,
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login, .modal-menu) .modal-header .close span { color: var(--m26-ink) !important; opacity: 1; text-shadow: none; }
html.mgsm26 :where(body:is(.page-index, .page-resellerpricing), #login, .modal-menu) .modal-footer { border-top-color: var(--m26-line-2); background: var(--m26-surface); }
html.mgsm26 .modal-menu .modal-content, html.mgsm26 .modal-menu .modal-header, html.mgsm26 .modal-menu .modal-body { border-radius: 0; }
html.mgsm26 .modal-menu .nav-link, html.mgsm26 .modal-menu .dropdown-item, html.mgsm26 .modal-menu a { color: var(--m26-ink) !important; }
html.mgsm26 .modal-menu .dropdown-item { white-space: normal; }
html.mgsm26 .modal-menu .nav-link.dropdown-toggle { background: var(--m26-surface-2) !important; border-bottom-color: var(--m26-line); }
html.mgsm26 .modal-menu .modal-header .btn, html.mgsm26 .modal-menu .modal-header .btn.text-white { color: var(--m26-ink) !important; }
html.mgsm26 .modal-menu .modal-header .btn.bg-primary { color: var(--m26-on-accent) !important; }
/* botones del cajón con el mismo sistema que el header: «Registro» (Crear cuenta) destacado, «Iniciar sesión» en contorno, esquina cortada */
html.mgsm26 .modal-menu .modal-header .d-flex > .btn {
  min-height: 48px; border: 0 !important; border-radius: 0; font-weight: 640; letter-spacing: .04em; box-shadow: none;
  clip-path: polygon(0 0, calc(100% - 9px) 0, 100% 9px, 100% 100%, 0 100%);
}
/* el acento es del botón de REGISTRO, reconocido por lo que abre (register); un botón de cuenta («Panel», «Salir») del cajón con sesión no lo toma */
html.mgsm26 .modal-menu .modal-header .d-flex > .btn:is([onclick*="register" i], [href$="register" i]) { background: var(--m26-accent) !important; color: var(--m26-on-accent) !important; }
html.mgsm26 .modal-menu .modal-header .d-flex > .btn[data-target="#login"] { background: transparent !important; color: var(--m26-ink) !important; box-shadow: inset 0 0 0 1.5px var(--m26-ink); }
html.mgsm26 .modal-menu h3 a, html.mgsm26 .modal-menu .navbar-brand { color: var(--m26-ink) !important; }
html.mgsm26 .modal-backdrop.show { opacity: .62; }

/* pie
 * Pedido de Eze (2026-10-12): fuera la imagen de medios de pago (VISA, AmEx, PayPal, eBay, MasterCard: <img src="…/payment_logo.png"> del pie de DHRU) y el bloque de cuatro
 * columnas (MENDOZAGSM con el ícono RSS · Enlaces Útiles · Suscribirse · Contacto: <div class="footer-top">). Se ocultan bajo el gate, en todas las páginas, y NADA más:
 * quedan la línea de derechos de MendozaGSM (.footer-bottom) y la firma «Powered by GSM-Source.com» (la pone footer.tpl). Selectores del markup real del pie del tema default. */
html.mgsm26 footer .footer-top { display: none !important; }
html.mgsm26 footer .footer-bottom img[src*="payment_logo"] { display: none !important; }
html.mgsm26 .footer-bottom { background: var(--m26-bg) !important; border-top: 1px solid var(--m26-line); color: var(--m26-ink-3); }

/* ------------------------------------------------- aviso de cookies de DHRU (#COOKIELAW)
 * El núcleo imprime el aviso después del pie con estilos EN LÍNEA (negro, 100 % de ancho, texto blanco, position:fixed): acá se pisan con !important, sólo con el gate. No se toca su lógica ni
 * sus cookies; mgsm2026.js (módulo «cookies») traduce la frase, marca el aviso con mgsm26-ck y sus nodos con mgsm26-ck__* y, al terminar, pone mgsm26-ck-on en <html>. Todo el rediseño del aviso cuelga
 * de #COOKIELAW.mgsm26-ck: si el JS no llega o el marcado no es el conocido, el aviso queda como el de DHRU, sin tocar. Hasta que el JS lo marca está invisible (sin destello en inglés);
 * head-on.tpl lo muestra igual a los 4 s.
 * Forma: una franja compacta abajo a la IZQUIERDA, del ancho de su contenido (a lo sumo 880 px), con la esquina cortada arriba a la derecha (el corte SIM del sistema) y sin tocar la esquina inferior derecha: el
 * lanzador del chat de empleadovirtual.ai (cápsula fija, hasta ~100 px de ancho a 24 px del borde) queda libre aunque su z-index fuera bajo. Una línea en escritorio y tableta (desde ~700 px;
 * entre 601 y 699 una frase larga puede pasar a dos). En teléfono (≤ 600 px) pasa a ser una tarjeta a todo el ancho, dos líneas como máximo, POR ENCIMA del lanzador (los 88 px que la firma ya
 * le reserva abajo), no a su lado.
 * Para no tapar el pie: --m26-ck-h (el alto del aviso, lo mide el JS; 0 al cerrarlo) se suma como relleno al final de la página. Colores: los tokens del rediseño (claro y oscuro). */
html.mgsm26:not(.mgsm26-ck-on) #COOKIELAW { visibility: hidden !important; }
html.mgsm26 #COOKIELAW.mgsm26-ck {
  --ck-clear: 144px;
  --ck-cut: 12px;
  position: fixed !important; top: auto !important; right: auto !important; bottom: 0 !important; left: 0 !important;
  z-index: 1000 !important;
  width: max-content !important; max-width: min(880px, calc(100% - var(--ck-clear))) !important;
  margin: 0 !important; padding: 0 !important;
  isolation: isolate;
  background: none !important;
  color: var(--m26-ink) !important;
  font: 500 13.5px/1.45 var(--m26-sans);
  letter-spacing: 0;
  text-align: start;
}
html.mgsm26 #COOKIELAW.mgsm26-ck::before {
  content: ""; position: absolute; inset: 0; z-index: -1; pointer-events: none;
  clip-path: polygon(0 0, calc(100% - var(--ck-cut)) 0, 100% var(--ck-cut), 100% 100%, 0 100%);
  background:
    linear-gradient(to top right, transparent calc(50% - .6px), var(--m26-line-2) calc(50% - .6px), var(--m26-line-2) calc(50% + .6px), transparent calc(50% + .6px)) no-repeat top right / var(--ck-cut) var(--ck-cut),
    var(--m26-surface);
  box-shadow: inset 0 1px 0 var(--m26-line-2), inset -1px 0 0 var(--m26-line-2);
}
html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__in { display: flex !important; align-items: center; justify-content: space-between; gap: 6px; min-height: 56px; margin: 0; padding: 6px 8px 6px 20px; }
html.mgsm26 #COOKIELAW.mgsm26-ck[dir="rtl"] .mgsm26-ck__in { padding: 6px 20px 6px 8px; }
html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__txt { flex: 1 1 auto; min-width: 0; margin: 0; padding: 4px 0; }
html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__msg { color: var(--m26-ink); }
html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__set {
  position: relative; display: inline; margin: 0; padding: 0;
  color: var(--m26-accent-t) !important; font-weight: 640; white-space: nowrap; cursor: pointer;
  text-decoration: underline !important; text-decoration-thickness: 1.5px; text-underline-offset: 3px;
}
html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__set::after { content: ""; position: absolute; inset: -14px -10px; }   /* área de toque de 44 px sin agrandar la línea */
html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__set:focus-visible { outline: 2px solid var(--m26-accent-t); outline-offset: 3px; }
html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__x { flex: none; width: 44px; margin: 0 !important; padding: 0 !important; }
html.mgsm26.mgsm26-ck-on { padding-bottom: var(--m26-ck-h, 0px); }
/* El panel de configuración que abre «Configurar» (#COOKIESETT, de DHRU: pantalla negra con z-index 1000, en inglés) NO se toca salvo por una capa: el header fijo del rediseño (1030) quedaba
 * encima de su primera línea y la tapaba. Sube por encima del header (1030) y de los modales de Bootstrap (1050); su contenido, su lógica y su botón «Save and Close» son los de DHRU. */
html.mgsm26 #COOKIESETT { z-index: 1060 !important; }
@media (max-width: 600px) {
  html.mgsm26 #COOKIELAW.mgsm26-ck {
    right: 12px !important; left: 12px !important; width: auto !important; max-width: none !important;
    bottom: calc(92px + env(safe-area-inset-bottom, 0px)) !important;
    font-size: 12.5px; line-height: 1.4;
  }
  html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__in { min-height: 52px; padding: 4px 6px 4px 14px; }
  html.mgsm26 #COOKIELAW.mgsm26-ck[dir="rtl"] .mgsm26-ck__in { padding: 4px 14px 4px 6px; }
}

/* ------------------------------------------------------------------ responsive */
@media (min-width: 992px) and (max-width: 1099px) {
  html.mgsm26 .mgsm26-actions { gap: 6px; margin-inline-start: 6px; }
  html.mgsm26 .mgsm26-actions .mgsm26-btn--sm { padding: 0 12px; }
}
/* El menú de idioma mide 244 px y se ancla al botón: con el botón lejos del borde derecho (320–700 px) se salía por la izquierda.
 * Ahí se ancla al header (position-relative de DHRU), a 12 px del borde, con ancho que siempre entra. */
@media (max-width: 700px) {
  html.mgsm26 .mgsm26-lang { position: static; }
  html.mgsm26 .mgsm26-lang > .mgsm26-menu { top: 100%; inset-inline-end: 12px; margin-top: 2px; width: min(244px, calc(100vw - 24px)); }
}
@media (min-width: 576px) and (max-width: 991px) {
  /* tablet: el hero se ajusta a su contenido (sin vacíos arriba y abajo) y en claro el halo detrás del texto es más fuerte */
  html.mgsm26 .mgsm26-hero { min-height: 0; padding: calc(var(--m26-hh) + 36px) var(--m26-gut) 60px; }
  html.mgsm26[data-mgsm26-theme="light"] .mgsm26-fondo::after {
    background:
      radial-gradient(ellipse 80% 56% at 50% 44%, var(--m26-halo), transparent 84%),
      radial-gradient(ellipse 80% 56% at 50% 44%, var(--m26-halo), transparent 84%),
      linear-gradient(to bottom, var(--m26-bg) 0, transparent 22%, transparent 78%, var(--m26-bg) 100%);
  }
}
@media (max-width: 991px) {
  html.mgsm26 { --m26-hh: 64px; }
  html.mgsm26 .mgsm26-actions { margin-inline-start: auto; gap: 6px; }
  html.mgsm26 header .navbar-brand { margin-right: 0 !important; }
  html.mgsm26 header .navbar-brand img { max-height: 40px; }
  html.mgsm26 .mgsm26-cur { display: none; }
  html.mgsm26 .mgsm26-banner { flex-basis: calc((100% - 16px) / 2); }
  html.mgsm26 .mgsm26-hero { padding-top: calc(var(--m26-hh) + 20px); }
}
/* Acciones del header en el ancho de teléfono y tablet: el logo manda, el texto de los botones se gana su lugar.
 * Sin JS: íconos de 44 px por debajo de 760 px y texto desde 760. Con JS, mgsm2026.js mide el header y deja en <html> el nivel que entra SIN achicar
 * el logo ni desbordar (probado en los 10 idiomas, que miden distinto): t2 = «Iniciar sesión» y «Crear cuenta» con texto · t1 = sólo «Crear cuenta»
 * (la acción de captación) · t0 = los dos como ícono con su nombre accesible. */
@media (max-width: 759px) {
  html.mgsm26 .mgsm26-actions .mgsm26-btn--sm { padding: 0; width: 44px; }
  html.mgsm26 .mgsm26-actions .mgsm26-btn--sm .mgsm26-btn__t {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
}
@media (max-width: 991px) {
  html.mgsm26.mgsm26-hd-t0 .mgsm26-actions .mgsm26-btn--sm { padding: 0; width: 44px; }
  html.mgsm26.mgsm26-hd-t0 .mgsm26-actions .mgsm26-btn--sm .mgsm26-btn__t {
    position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
  }
  html.mgsm26.mgsm26-hd-t2 .mgsm26-actions .mgsm26-btn--sm,
  html.mgsm26.mgsm26-hd-t1 .mgsm26-actions [data-m26-register] { padding: 0 14px; width: auto; }
  html.mgsm26.mgsm26-hd-t2 .mgsm26-actions .mgsm26-btn--sm .mgsm26-btn__t,
  html.mgsm26.mgsm26-hd-t1 .mgsm26-actions [data-m26-register] .mgsm26-btn__t { position: static; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; }
}
@media (max-width: 575px) {
  html.mgsm26 header .navbar-xl { gap: 0; }
  html.mgsm26 header .navbar-toggler { margin-inline-end: 6px; }
  html.mgsm26 header .navbar-brand img { max-height: 34px; }
  /* en teléfono el tema vive en el cajón del menú (lo arma mgsm2026.js: clase mgsm26-drawer-on); sin ese selector queda en el header */
  html.mgsm26 .mgsm26-actions { gap: 4px; }
  html.mgsm26.mgsm26-drawer-on .mgsm26-actions > .mgsm26-ico[data-m26-theme] { display: none; }
  html.mgsm26 .mgsm26-drawer-theme { display: inline-flex; width: 100%; margin-top: 8px; }
  html.mgsm26.mgsm26-hd-t2 .mgsm26-actions .mgsm26-btn--sm,
  html.mgsm26.mgsm26-hd-t1 .mgsm26-actions [data-m26-register] { padding: 0 12px; font-size: 11.5px; letter-spacing: .05em; gap: 6px; }
  html.mgsm26.mgsm26-hd-t2 .mgsm26-actions .mgsm26-btn--sm svg,
  html.mgsm26.mgsm26-hd-t1 .mgsm26-actions [data-m26-register] svg { display: none; }
  html.mgsm26 .mgsm26-lang > summary { padding-inline: 6px; gap: 3px; }
  html.mgsm26 .mgsm26-lang > summary .flag { display: none; }
  html.mgsm26 .mgsm26-menu { width: min(244px, calc(100vw - 24px)); max-height: calc(100svh - var(--m26-hh) - 24px); }
  html.mgsm26 .mgsm26-hero { min-height: 0; padding: calc(var(--m26-hh) + 16px) 16px 40px; }
  html.mgsm26 .mgsm26-h1 { font-size: clamp(34px, 11vw, 46px); line-height: 1; }
  html.mgsm26 .mgsm26-sub { margin-top: 16px; font-size: 16px; }
  html.mgsm26 .mgsm26-search { margin-top: 26px; }
  html.mgsm26 .mgsm26-search__box { height: 60px; padding: 0 7px 0 14px; gap: 4px; }
  html.mgsm26 .mgsm26-search__input { font-size: 16px; }
  html.mgsm26 .mgsm26-search__go { padding: 0; width: 46px; --h: 46px; }
  html.mgsm26 .mgsm26-search__go .mgsm26-btn__t { position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
  html.mgsm26 .mgsm26-kbd { display: none; }
  html.mgsm26 .mgsm26-cta { flex-direction: column; align-items: stretch; gap: 12px; margin-top: 22px; }
  html.mgsm26 .mgsm26-cta .mgsm26-btn { width: 100%; }
  html.mgsm26 .mgsm26-pl { display: block; width: 100%; }
  html.mgsm26 .mgsm26-pl__menu { inset-inline: 0; width: auto; min-width: 0; max-width: none; max-height: none; }
  html.mgsm26 .mgsm26-opt { grid-template-columns: minmax(0, 1fr); row-gap: 4px; padding: 10px 14px 10px 18px; }
  html.mgsm26 .mgsm26-opt__price { justify-self: start; }
  html.mgsm26 .mgsm26-banner, html.mgsm26 .mgsm26-banners--n2 .mgsm26-banner { flex-basis: 86%; }
  html.mgsm26 .mgsm26-banners--n1 .mgsm26-banner { flex-basis: 100%; }
  /* sin flechas (se desliza) y con la esquina del chat libre: el lanzador mide 60 px a 24 px del borde */
  html.mgsm26 .mgsm26-banners__arrow { display: none; }
  html.mgsm26 .mgsm26-banners__ctl { justify-content: flex-start; padding-inline-end: 84px; }
}
/* con las dos tarjetas lado a lado en menos de ~1100 px el botón no cabe a la derecha: pasa debajo del texto */
@media (max-width: 1099px) {
  html.mgsm26 .mgsm26-banner--fb .mgsm26-banner__body { grid-template-columns: auto minmax(0, 1fr); row-gap: 4px; }
  html.mgsm26 .mgsm26-banner--fb .mgsm26-btn { grid-column: 1 / -1; grid-row: auto; margin-top: 8px; justify-self: start; }
}
/* entre 1100 y ~1320 px la tarjeta de la derecha termina a menos de 84 px del borde: su botón quedaba bajo el lanzador del chat (60 px a 24 px del borde) */
@media (min-width: 1100px) and (max-width: 1320px) {
  html.mgsm26 .mgsm26-banner--fb:last-child .mgsm26-banner__body { padding-inline-end: 84px; }
}
/* laptops bajas (1280×720, 1366×768): el hero llenaba la pantalla y no asomaba nada de abajo. Texto y espacios se ajustan a la altura para que
   siempre se vea el borde de los banners (señal de que hay más) */
@media (min-width: 992px) and (max-height: 800px) {
  html.mgsm26 .mgsm26-hero { padding-top: calc(var(--m26-hh) + 12px); padding-bottom: 28px; }
  html.mgsm26 .mgsm26-h1 { font-size: clamp(38px, min(6vw, 8.2vh), 82px); }
  html.mgsm26 .mgsm26-hero:lang(ru) .mgsm26-h1, html.mgsm26 .mgsm26-hero:lang(tr) .mgsm26-h1 { font-size: clamp(36px, min(5.2vw, 7.4vh), 72px); }
  html.mgsm26 .mgsm26-sub { margin-top: 14px; }
  html.mgsm26 .mgsm26-search { margin-top: 22px; }
  html.mgsm26 .mgsm26-cta { margin-top: 14px; }
}
/* teléfono: el placeholder entero («Rechercher des produits ou services», «Produkte oder Services suchen») a 360 y 390 px, sin cortarse con «…». La lupa se va (el botón de la
 * derecha ya es la acción) y la letra del PLACEHOLDER acompaña el ancho; el campo sigue en 16 px, que es lo que evita el zoom de iOS al enfocar. */
@media (max-width: 480px) {
  html.mgsm26 .mgsm26-search__ico { display: none; }
  html.mgsm26 .mgsm26-search__input::placeholder { font-size: clamp(12.5px, 3.9vw, 16px); }
}
@media (hover: none) { html.mgsm26 .mgsm26-kbd { display: none; } }

/* --------------------------------------------------------------- movimiento
 * Todo el movimiento vive acá. Con prefers-reduced-motion: reduce no se mueve nada: el fondo
 * queda estático (lo decide fondo.js) y los botones sólo cambian de color. */
@media (prefers-reduced-motion: no-preference) {
  /* cambio de tema: las superficies se funden en lugar de saltar (sólo mientras dura la clase mgsm26-theming) */
  html.mgsm26.mgsm26-theming body,
  html.mgsm26.mgsm26-theming header,
  html.mgsm26.mgsm26-theming .mgsm26-bar,
  html.mgsm26.mgsm26-theming .card,
  html.mgsm26.mgsm26-theming .mgsm26-hero,
  html.mgsm26.mgsm26-theming .mgsm26-panel::before,
  html.mgsm26.mgsm26-theming .mgsm26-search__box::before { transition: background-color .3s ease, color .3s ease, border-color .3s ease; }
  html.mgsm26 .mgsm26-btn { transition: transform .12s var(--m26-ease); }
  html.mgsm26 .mgsm26-btn::before { transition: background-position 0s, background-color .18s var(--m26-ease); }
  html.mgsm26 .mgsm26-btn::after { transition: opacity .18s var(--m26-ease); transform: scale(1.06); }
  html.mgsm26 .mgsm26-btn:hover::after, html.mgsm26 .mgsm26-btn:focus-visible::after { transform: none; transition: opacity .18s var(--m26-ease), transform .24s var(--m26-ease); }
  /* un barrido de luz que cruza una sola vez */
  html.mgsm26 .mgsm26-btn:hover::before { background-position: top right, 160% 0, 0 0; transition: background-position .55s var(--m26-ease); }
  /* desfase cromático de 1 px, 160 ms, una vez, sólo al entrar con el puntero */
  html.mgsm26 .mgsm26-btn:hover .mgsm26-btn__t { animation: mgsm26-aberr .16s steps(2, end) 1; }
  html.mgsm26 .mgsm26-btn:active { transform: translateY(1px); transition-duration: .06s; }
  html.mgsm26 .mgsm26-btn svg { transition: transform .2s var(--m26-ease); }
  html.mgsm26 .mgsm26-btn:hover svg:last-child:not(:first-child) { transform: translateX(3px); }
  html.mgsm26 .mgsm26-btn.mgsm26-pl__btn:hover svg.mgsm26-pl__chev { transform: none; }
  html.mgsm26 .mgsm26-btn.mgsm26-pl__btn[aria-expanded="true"]:hover svg.mgsm26-pl__chev { transform: rotate(180deg); }
  html.mgsm26 .mgsm26-pl__menu:not([hidden]) { animation: mgsm26-panel .16s var(--m26-ease) backwards; }
  html.mgsm26 .mgsm26-ico { transition: transform .12s var(--m26-ease); }
  html.mgsm26 .mgsm26-ico:active { transform: scale(.95); }
  html.mgsm26 .mgsm26-ico svg { transition: transform .35s var(--m26-ease); }
  html.mgsm26 .mgsm26-search__box::after { transition: opacity .18s var(--m26-ease), transform .24s var(--m26-ease); transform: scale(1.04); }
  html.mgsm26 .mgsm26-search__box:focus-within::after { transform: none; }
  html.mgsm26 .mgsm26-opt::before { transition: transform .2s var(--m26-ease); }
  html.mgsm26 .mgsm26-panel:not([hidden]) { animation: mgsm26-panel .18s var(--m26-ease) backwards; }
  /* sólo con el menú abierto: sobre el <details> cerrado la animación mantenía el hilo principal activo en TODAS las páginas (medido 2,8 % → 0,2 %) */
  html.mgsm26 .mgsm26-lang[open] > .mgsm26-menu, html.mgsm26 .mgsm26-cur.is-open > .mgsm26-menu { animation: mgsm26-panel .16s var(--m26-ease) backwards; }
  html.mgsm26 .mgsm26-banners__vp { scroll-behavior: smooth; }
  html.mgsm26 .mgsm26-hero__in > * { animation: mgsm26-in .5s var(--m26-ease) backwards; }
  html.mgsm26 .mgsm26-hero__in > .mgsm26-sub { animation-delay: .06s; }
  html.mgsm26 .mgsm26-hero__in > .mgsm26-search { animation-delay: .12s; }
  html.mgsm26 .mgsm26-hero__in > .mgsm26-cta { animation-delay: .22s; }
  html.mgsm26.mgsm26-ck-on #COOKIELAW.mgsm26-ck { animation: mgsm26-ck-in .24s var(--m26-ease) backwards; }
}
@keyframes mgsm26-aberr {
  0% { text-shadow: 1px 0 rgba(255, 64, 96, .75), -1px 0 rgba(64, 144, 255, .75); }
  100% { text-shadow: none; }
}
@keyframes mgsm26-panel { from { opacity: 0; transform: translateY(-4px); } }
@keyframes mgsm26-in { from { opacity: 0; transform: translateY(10px); } }
@keyframes mgsm26-ck-in { from { opacity: 0; transform: translateY(8px); } }

/* ------------------------------------------------------- alto contraste
 * Va al final a propósito: estas reglas tienen la misma especificidad que las de los puntos del carrusel y la barrita de la opción activa
 * (más arriba) y tienen que ganarles por orden. */
@media (forced-colors: active) {
  html.mgsm26 .mgsm26-btn { border: 1px solid ButtonText; }
  /* los bordes hechos con box-shadow inset y las pastillas de fondo desaparecen en alto contraste */
  html.mgsm26 .mgsm26-ico, html.mgsm26 .mgsm26-search__box { border: 1px solid ButtonText; }
  html.mgsm26 .mgsm26-opt[aria-selected="true"] { outline: 2px solid Highlight; outline-offset: -2px; }
  html.mgsm26 .mgsm26-opt::before { forced-color-adjust: none; background: Highlight; }
  html.mgsm26 .mgsm26-dot::before { forced-color-adjust: none; background: GrayText; }
  html.mgsm26 .mgsm26-dot[aria-current="true"]::before { background: Highlight; }
  /* el aviso de cookies dibuja su fondo y su contorno en ::before: en alto contraste se queda con un fondo y un borde de verdad */
  html.mgsm26 #COOKIELAW.mgsm26-ck { background: Canvas !important; border-top: 1px solid CanvasText; border-right: 1px solid CanvasText; }
  html.mgsm26 #COOKIELAW.mgsm26-ck .mgsm26-ck__set { color: LinkText !important; }
}
