:root{
  --yellow:#F1B636;
  --yellow-hover:#e0a525;
  --navy:#0f172a;
  --navy-deep:#0a0f1d;
  --whatsapp:#25D366;
  --wa:#25D366;
  --text:#1e293b;
  --muted:#475569;
  --soft:#f8fafc;
  --line:#e2e8f0;
  --yellow-line:#fde68a;
  --yellow-soft:#fffbeb;
  --container:min(1320px,calc(100% - 40px));
  --shadow:0 10px 28px rgba(15,23,42,.08);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:"Open Sans",Arial,sans-serif;color:var(--text);background:#fff;line-height:1.65;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%;height:auto}
a{text-decoration:none;color:inherit}
button{font:inherit}
.container{width:var(--container);margin-inline:auto}
.skip-link{position:fixed;top:-60px;left:16px;z-index:9999;background:#fff;color:#000;padding:10px 14px;border-radius:6px}
.skip-link:focus{top:16px}

/* Header — deliberately close to Copiallave */
.topbar{background:var(--navy-deep);color:#cbd5e1;font-size:.78rem}
.topbar__inner{min-height:34px;display:flex;justify-content:space-between;align-items:center;gap:20px}
.topbar__inner>div{display:flex;gap:9px}
.topbar a:hover{color:var(--yellow)}
.header{position:sticky;top:0;z-index:1000;background:#fff;border-bottom:1px solid #e2e8f0;box-shadow:0 4px 15px rgba(0,0,0,.04)}
.header__inner{min-height:80px;display:flex;align-items:center;gap:24px}
.header__logo{flex:0 0 auto}
.header__logo img{width:225px}
.header__menu{margin-left:auto;display:flex;align-items:center;gap:4px;color:#334155;font-family:"Rajdhani",Arial,sans-serif;font-weight:700}
.header__menu>a,.dropdown>button{padding:8px 9px;border:0;background:none;color:#334155;font-weight:700;font-size:.95rem;white-space:nowrap}
.header__menu>a:hover,.dropdown>button:hover,.header__menu [aria-current="page"]{color:var(--yellow-hover)}
.dropdown{position:relative}
.dropdown>button{display:flex;gap:5px;align-items:center;cursor:pointer}
.dropdown__menu{position:absolute;top:calc(100% + 18px);left:0;min-width:245px;padding:9px 0;background:#fff;border:1px solid #e2e8f0;border-radius:8px;box-shadow:0 10px 25px rgba(0,0,0,.12);opacity:0;visibility:hidden;transform:translateY(8px);transition:.18s ease}
.dropdown:hover .dropdown__menu,.dropdown:focus-within .dropdown__menu,.dropdown.is-open .dropdown__menu{opacity:1;visibility:visible;transform:none}
.dropdown__menu a{display:block;padding:9px 14px;font-family:"Open Sans",Arial,sans-serif;font-size:.87rem;font-weight:600;color:#334155}
.dropdown__menu a:hover,.dropdown__menu a[aria-current="page"]{background:var(--yellow-soft);color:#815a00}
.header__phone{margin-left:4px;border:1px solid #cbd5e1;background:#f1f5f9;border-radius:20px;padding:7px 14px;font-family:"Rajdhani",Arial,sans-serif;font-weight:700;color:var(--navy);white-space:nowrap}
.header__cta{margin-left:5px!important}
.menu-toggle{display:none;margin-left:auto;width:44px;height:44px;border:1px solid var(--line);border-radius:7px;background:#fff;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.menu-toggle span{width:20px;height:2px;background:var(--navy)}

/* Buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 20px;border-radius:6px;border:1px solid transparent;font-weight:700;font-size:.93rem;transition:.2s ease}
.btn:hover{transform:translateY(-1px)}
.btn--yellow{background:var(--yellow);color:#111;box-shadow:0 4px 12px rgba(241,182,54,.28)}
.btn--yellow:hover{background:var(--yellow-hover)}
.btn--whatsapp{background:var(--whatsapp);color:#fff;box-shadow:0 4px 12px rgba(37,211,102,.24)}
.btn--outline{background:#fff;border-color:#cbd5e1;color:var(--navy)}
.btn--outline:hover{border-color:var(--yellow);background:var(--yellow-soft)}


/* Shared content tokens */
.eyebrow,.section-kicker{
  color:var(--yellow);
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1.25px;
  font-size:.82rem
}

/* Shared footer */
/* Footer */
.footer{padding:58px 0 20px;background:var(--navy-deep);color:#94a3b8;border-top:1px solid rgba(255,255,255,.06)}
.footer__grid{display:grid;grid-template-columns:1.5fr .7fr .7fr .9fr;gap:45px}
.footer__brand img{width:220px;margin-bottom:16px;filter:drop-shadow(0 0 0 transparent)}
.footer__brand p{max-width:390px;margin:0}
.footer h2{font-family:"Rajdhani",Arial,sans-serif;color:#fff;text-transform:uppercase;letter-spacing:1px;font-size:.88rem;margin:0 0 12px}
.footer a{display:block;padding:3px 0;color:#9ba8ba;font-size:.84rem}
.footer a:hover{color:var(--yellow)}
.footer p{font-size:.84rem}
.footer__bottom{margin-top:38px;padding-top:18px;border-top:1px solid rgba(255,255,255,.08);display:flex;justify-content:space-between;gap:20px;font-size:.73rem}
.footer__bottom>div{display:flex;gap:15px}
.footer__bottom a{padding:0}

.whatsapp-float{position:fixed;right:22px;bottom:22px;z-index:900;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;background:var(--whatsapp);color:#fff;font-weight:700;font-size:.74rem;box-shadow:0 6px 18px rgba(37,211,102,.35)}


/* Shared Systems contact component */
/* Contacto especializado · Sistemas de Cierre */
.systems-contact{
    scroll-margin-top:110px;
  padding:54px 0;
  background:#f8fafc;
  border-top:1px solid #e2e8f0;
  border-bottom:1px solid #e2e8f0
}
.systems-contact__card{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:50px;
  padding:36px 40px;
  background:#fff;
  border:1px solid #e2e8f0;
  border-left:4px solid #F1B636;
  border-radius:10px;
  box-shadow:0 8px 24px rgba(15,23,42,.06)
}
.systems-contact__content{max-width:760px}
.systems-contact__content h2{
  margin:6px 0 10px;
  color:#0f172a;
  font-family:"Rajdhani",Arial,sans-serif;
  font-size:clamp(1.8rem,3vw,2.35rem);
  font-weight:700;
  line-height:1.1
}
.systems-contact__content>p{
  margin:0 0 22px;
  color:#475569;
  font-size:.96rem;
  line-height:1.65
}
.systems-contact__profile{display:flex;align-items:center;gap:14px}
.systems-contact__avatar{
  width:48px;
  height:48px;
  border-radius:50%;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  background:#0f172a;
  border:2px solid #F1B636;
  color:#F1B636;
  font-family:"Rajdhani",Arial,sans-serif;
  font-size:.95rem;
  font-weight:700
}
.systems-contact__profile strong{display:block;color:#1e293b;font-size:.94rem}
.systems-contact__profile a{display:inline-block;margin-top:2px;color:#8a6100;font-size:.9rem;font-weight:700}
.systems-contact__profile a:hover{color:#e0a525}
.systems-contact__actions{display:flex;flex-direction:column;gap:10px;min-width:220px}
.systems-contact__actions .btn{width:100%}


@media(max-width:1180px){
  .header__phone{display:none}
  .header__menu{gap:1px}
  .header__menu>a,.dropdown>button{font-size:.9rem;padding-inline:7px}
}
@media(max-width:920px){
  :root{--container:min(100% - 30px,1320px)}
  .topbar{display:none}
  .header__inner{min-height:70px}
  .header__logo img{width:190px}
  .menu-toggle{display:flex}
  .header__menu{
    display:none;position:absolute;top:70px;left:15px;right:15px;margin:0;padding:10px;
    flex-direction:column;align-items:stretch;background:#fff;border:1px solid var(--line);
    border-radius:10px;box-shadow:var(--shadow)
  }
  .header__menu.is-open{display:flex}
  .header__menu>a,.dropdown>button{width:100%;text-align:left;padding:11px}
  .dropdown>button{justify-content:space-between}
  .dropdown__menu{
    position:static;display:none;opacity:1;visibility:visible;transform:none;box-shadow:none;
    border:0;padding:0 0 5px 12px
  }
  .dropdown.is-open .dropdown__menu{display:block}
  .header__cta{margin-left:0!important}
  .footer__grid{grid-template-columns:1fr 1fr}
  .footer__brand{grid-column:1/-1}
}
@media(max-width:820px){
  .systems-contact__card{grid-template-columns:1fr;gap:26px;padding:28px 24px}
  .systems-contact__actions{width:100%}
}
@media(max-width:600px){
  .footer__grid{grid-template-columns:1fr}
  .footer__brand{grid-column:auto}
  .footer__bottom{flex-direction:column}
  .footer__bottom>div{flex-wrap:wrap}
}

/* ==========================================================
   KEYSMAN · MENÚ PREMIUM V3
   Añadir al FINAL de /assets/css/keysman.css
   Compatible con el menú compartido /includes/menu.php
   ========================================================== */

.header{
  backdrop-filter:saturate(150%) blur(12px);
  background:rgba(255,255,255,.97);
}

.header__inner{
  min-height:82px;
  gap:20px;
}

.header__logo img{
  transition:transform .2s ease,opacity .2s ease;
}

.header__logo:hover img{
  transform:translateY(-1px);
}

.header__menu.km-menu{
  gap:2px;
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
  font-weight:750;
}

.km-menu__toplink,
.km-menu__trigger{
  position:relative;
  min-height:46px;
  display:inline-flex!important;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:0 12px!important;
  border-radius:10px;
  color:#334155!important;
  font-size:.86rem!important;
  font-weight:750!important;
  letter-spacing:-.01em;
  transition:
    color .18s ease,
    background .18s ease,
    box-shadow .18s ease,
    transform .18s ease;
}

.km-menu__toplink::after,
.km-menu__trigger::after{
  content:"";
  position:absolute;
  left:12px;
  right:12px;
  bottom:5px;
  height:2px;
  border-radius:999px;
  background:var(--yellow);
  transform:scaleX(0);
  transform-origin:center;
  transition:transform .18s ease;
}

.km-menu__toplink:hover,
.km-menu__trigger:hover,
.km-menu__toplink[aria-current="page"],
.km-menu__trigger.is-current,
.km-dropdown.is-current>.km-menu__trigger{
  color:#6f4d00!important;
  background:#fffbeb!important;
}

.km-menu__toplink:hover::after,
.km-menu__trigger:hover::after,
.km-menu__toplink[aria-current="page"]::after,
.km-menu__trigger.is-current::after,
.km-dropdown.is-current>.km-menu__trigger::after{
  transform:scaleX(1);
}

.km-menu__chevron{
  width:15px;
  height:15px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.8;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:transform .18s ease;
}

.km-dropdown:hover>.km-menu__trigger .km-menu__chevron,
.km-dropdown:focus-within>.km-menu__trigger .km-menu__chevron,
.km-dropdown.is-open>.km-menu__trigger .km-menu__chevron{
  transform:rotate(180deg);
}

/* Mega menus */
.header__menu .km-mega{
  top:calc(100% + 13px);
  padding:0;
  overflow:hidden;
  border:1px solid #dfe6ee;
  border-radius:18px;
  background:#fff;
  box-shadow:
    0 26px 70px rgba(15,23,42,.16),
    0 8px 22px rgba(15,23,42,.08);
}

.header__menu .km-mega::before{
  content:"";
  position:absolute;
  top:-8px;
  width:16px;
  height:16px;
  border-left:1px solid #dfe6ee;
  border-top:1px solid #dfe6ee;
  background:#fff;
  transform:rotate(45deg);
}

.km-dropdown--services .km-mega{
  left:-175px;
  width:min(860px,calc(100vw - 40px));
}

.km-dropdown--services .km-mega::before{
  left:238px;
}

.km-dropdown--zones .km-mega{
  left:-240px;
  width:min(740px,calc(100vw - 40px));
}

.km-dropdown--zones .km-mega::before{
  left:286px;
}

.km-dropdown--brands .km-mega{
  left:auto;
  right:-115px;
  width:min(470px,calc(100vw - 40px));
}

.km-dropdown--brands .km-mega::before{
  right:155px;
}

.km-mega__top{
  min-height:86px;
  display:flex;
  justify-content:space-between;
  align-items:center;
  gap:24px;
  padding:20px 24px;
  background:
    radial-gradient(circle at 92% 15%,rgba(241,182,54,.14),transparent 30%),
    linear-gradient(180deg,#fff,#fbfcfe);
  border-bottom:1px solid #e9edf2;
}

.km-mega__top>div{
  min-width:0;
}

.km-mega__eyebrow{
  display:block;
  margin-bottom:4px;
  color:#9a6a00;
  font-size:.56rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.km-mega__top strong{
  display:block;
  max-width:560px;
  color:#0f172a;
  font-size:.93rem;
  line-height:1.3;
  letter-spacing:-.015em;
}

.km-mega__all{
  flex:0 0 auto;
  display:inline-flex!important;
  align-items:center;
  gap:8px;
  padding:9px 11px!important;
  border-radius:8px;
  background:#0f172a;
  color:#fff!important;
  font-size:.65rem!important;
  font-weight:800!important;
  white-space:nowrap;
}

.km-mega__all:hover{
  background:#172640!important;
  color:#f1b636!important;
}

.km-mega__content{
  display:grid;
  grid-template-columns:1fr 1fr 230px;
  gap:0;
  align-items:stretch;
}

.km-mega__group{
  padding:22px 18px 20px;
}

.km-mega__group+.km-mega__group{
  border-left:1px solid #edf0f3;
}

.km-mega__group-title{
  display:block;
  margin:0 8px 12px;
  color:#8793a3;
  font-size:.54rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.header__menu .km-mega__item{
  display:grid;
  grid-template-columns:40px 1fr;
  gap:11px;
  align-items:center;
  min-height:66px;
  margin:2px 0;
  padding:9px 10px!important;
  border-radius:10px;
  color:#334155!important;
  background:transparent!important;
  transition:
    background .15s ease,
    transform .15s ease,
    box-shadow .15s ease;
}

.header__menu .km-mega__item:hover,
.header__menu .km-mega__item[aria-current="page"]{
  background:#fff9e9!important;
  color:#0f172a!important;
  transform:translateX(2px);
  box-shadow:inset 0 0 0 1px rgba(241,182,54,.24);
}

.km-mega__icon{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:1px solid #e1e7ed;
  border-radius:10px;
  background:#f8fafc;
  color:#56657a;
  transition:
    background .15s ease,
    color .15s ease,
    border-color .15s ease;
}

.km-mega__item:hover .km-mega__icon,
.km-mega__item[aria-current="page"] .km-mega__icon{
  border-color:#eed48a;
  background:#f1b636;
  color:#0f172a;
}

.km-mega__icon svg{
  width:19px;
  height:19px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.km-mega__item>span:last-child{
  min-width:0;
}

.km-mega__item strong,
.km-mega__item small{
  display:block;
}

.km-mega__item strong{
  color:#172033;
  font-size:.74rem;
  line-height:1.25;
}

.km-mega__item small{
  margin-top:3px;
  overflow:hidden;
  color:#7a8797;
  font-size:.59rem;
  font-weight:500;
  line-height:1.38;
  text-overflow:ellipsis;
}

.km-mega__promo{
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  min-height:100%;
  padding:24px;
  color:#fff;
  background:
    radial-gradient(circle at 90% 10%,rgba(241,182,54,.16),transparent 28%),
    linear-gradient(150deg,#0a0f1d,#0f172a);
}

.km-mega__promo-tag{
  color:#f1b636;
  font-size:.54rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.km-mega__promo strong{
  margin-top:11px;
  color:#fff;
  font-size:1.05rem;
  line-height:1.17;
  letter-spacing:-.02em;
}

.km-mega__promo p{
  margin:10px 0 18px;
  color:#aebbd0;
  font-size:.64rem;
  line-height:1.55;
}

.km-mega__promo a{
  display:inline-flex!important;
  align-items:center;
  gap:8px;
  align-self:flex-start;
  padding:0!important;
  color:#f1b636!important;
  background:none!important;
  font-size:.64rem!important;
  font-weight:850!important;
}

/* Zonas */
.km-zones{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:9px;
  padding:18px;
}

.header__menu .km-zone{
  display:grid;
  grid-template-columns:34px 1fr;
  gap:10px;
  align-items:center;
  min-height:78px;
  padding:13px!important;
  border:1px solid #e4e9ef;
  border-radius:11px;
  background:#fff!important;
  color:#334155!important;
  transition:
    border-color .15s ease,
    background .15s ease,
    transform .15s ease,
    box-shadow .15s ease;
}

.header__menu .km-zone:hover,
.header__menu .km-zone[aria-current="page"]{
  transform:translateY(-2px);
  border-color:#e4be5c;
  background:#fffaf0!important;
  box-shadow:0 8px 20px rgba(15,23,42,.06);
}

.km-zone--primary{
  background:
    linear-gradient(145deg,#fffaf0,#fff)!important;
}

.km-zone__pin{
  width:31px;
  height:31px;
  display:grid;
  place-items:center;
  border-radius:9px;
  background:#f3f5f7;
  color:#7c8797;
  font-size:.54rem;
  font-weight:900;
}

.km-zone:hover .km-zone__pin,
.km-zone[aria-current="page"] .km-zone__pin{
  background:#f1b636;
  color:#0f172a;
}

.km-zone strong,
.km-zone small{
  display:block;
}

.km-zone strong{
  color:#172033;
  font-size:.72rem;
}

.km-zone small{
  margin-top:2px;
  color:#7a8797;
  font-size:.57rem;
  font-weight:500;
  line-height:1.35;
}

.km-zones__footer{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:13px 20px;
  border-top:1px solid #e9edf2;
  background:#f8fafc;
  color:#64748b;
  font-size:.6rem;
}

.km-zones__footer strong{
  color:#334155;
}

.km-zones__footer a{
  flex:0 0 auto;
  padding:0!important;
  background:none!important;
  color:#8a6000!important;
  font-size:.61rem!important;
  font-weight:850!important;
}

/* Marcas */
.km-mega--brands{
  padding-bottom:15px!important;
}

.km-brand-card{
  display:block!important;
  margin:15px;
  padding:20px!important;
  border:1px solid #dfe5eb;
  border-radius:14px;
  background:
    radial-gradient(circle at 94% 8%,rgba(241,182,54,.15),transparent 30%),
    linear-gradient(145deg,#0a0f1d,#0f172a)!important;
  color:#fff!important;
  box-shadow:0 12px 30px rgba(15,23,42,.10);
  transition:transform .17s ease,box-shadow .17s ease;
}

.km-brand-card:hover{
  transform:translateY(-2px);
  box-shadow:0 17px 38px rgba(15,23,42,.17);
}

.km-brand-card__badge{
  display:inline-flex;
  padding:5px 8px;
  border-radius:999px;
  background:#f1b636;
  color:#0f172a;
  font-size:.55rem;
  font-weight:950;
  letter-spacing:.07em;
}

.km-brand-card>strong{
  display:block;
  margin-top:18px;
  max-width:330px;
  color:#fff;
  font-size:1.02rem;
  line-height:1.2;
}

.km-brand-card>p{
  margin:8px 0 15px;
  max-width:360px;
  color:#aebbd0;
  font-size:.64rem;
  line-height:1.5;
}

.km-brand-card__meta{
  display:flex;
  flex-wrap:wrap;
  gap:5px;
}

.km-brand-card__meta>span{
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.11);
  border-radius:999px;
  color:#ccd5e2;
  font-size:.52rem;
}

.km-brand-card__link{
  display:flex;
  justify-content:space-between;
  align-items:center;
  margin-top:18px;
  padding-top:14px;
  border-top:1px solid rgba(255,255,255,.08);
  color:#f1b636;
  font-size:.61rem;
  font-weight:850;
}

.km-brands__note{
  padding:0 20px;
  color:#7b8797;
  font-size:.57rem;
  line-height:1.45;
}

/* Acciones */
.km-menu__actions{
  display:flex;
  align-items:center;
  gap:7px;
  margin-left:4px;
}

.km-menu__wa{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:#25D366;
  color:#06391c;
  box-shadow:0 5px 14px rgba(37,211,102,.22);
  transition:transform .18s ease,box-shadow .18s ease;
}

.km-menu__wa:hover{
  transform:translateY(-2px);
  box-shadow:0 9px 22px rgba(37,211,102,.30);
}

.km-menu__wa svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.55;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.km-menu__phone{
  min-height:42px!important;
  padding:0 15px!important;
  border-radius:11px!important;
  font-size:.76rem!important;
  font-weight:850!important;
  box-shadow:0 5px 14px rgba(241,182,54,.20)!important;
}

.km-menu__phone-icon{
  display:grid;
  place-items:center;
}

.km-menu__phone-icon svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.7;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Mobile contact block hidden on desktop */
.km-mobile-contact{
  display:none;
}

/* Botón hamburguesa premium */
.menu-toggle{
  position:relative;
  overflow:hidden;
  border-radius:11px;
  background:#fff;
  transition:border-color .18s ease,background .18s ease,box-shadow .18s ease;
}

.menu-toggle:hover{
  border-color:#e4bd55;
  background:#fffaf0;
}

.menu-toggle span{
  border-radius:99px;
  transition:transform .2s ease,opacity .18s ease;
}

.menu-toggle[aria-expanded="true"] span:nth-child(1){
  transform:translateY(7px) rotate(45deg);
}

.menu-toggle[aria-expanded="true"] span:nth-child(2){
  opacity:0;
}

.menu-toggle[aria-expanded="true"] span:nth-child(3){
  transform:translateY(-7px) rotate(-45deg);
}

/* Desktop refinements */
@media(max-width:1240px) and (min-width:921px){
  .km-menu__toplink,
  .km-menu__trigger{
    padding-inline:9px!important;
    font-size:.8rem!important;
  }

  .km-menu__wa{
    display:none;
  }

  .km-menu__phone{
    padding-inline:12px!important;
  }

  .km-dropdown--services .km-mega{
    left:-210px;
  }

  .km-dropdown--zones .km-mega{
    left:-285px;
  }
}

/* MOBILE */
@media(max-width:920px){
  .header{
    backdrop-filter:none;
    background:#fff;
  }

  .header__menu.km-menu{
    top:72px;
    left:12px;
    right:12px;
    max-height:calc(100dvh - 86px);
    overflow:auto;
    gap:3px;
    padding:10px;
    border-radius:16px;
    border:1px solid #dfe5eb;
    box-shadow:0 24px 60px rgba(15,23,42,.18);
    overscroll-behavior:contain;
  }

  .km-menu__toplink,
  .km-menu__trigger{
    min-height:48px;
    justify-content:space-between;
    width:100%;
    padding:0 13px!important;
    border-radius:9px;
    font-size:.82rem!important;
  }

  .km-menu__toplink::after,
  .km-menu__trigger::after{
    display:none;
  }

  .km-menu__toplink[aria-current="page"],
  .km-menu__trigger.is-current,
  .km-dropdown.is-current>.km-menu__trigger{
    background:#fff9e8!important;
    box-shadow:inset 3px 0 0 #f1b636;
  }

  .header__menu .km-mega{
    position:static;
    width:auto!important;
    margin:2px 0 6px;
    border:0;
    border-radius:10px;
    background:#f8fafc;
    box-shadow:none;
    transform:none;
    overflow:hidden;
  }

  .header__menu .km-mega::before{
    display:none;
  }

  .km-dropdown--services .km-mega,
  .km-dropdown--zones .km-mega,
  .km-dropdown--brands .km-mega{
    left:auto;
    right:auto;
  }

  .km-mega__top{
    min-height:auto;
    padding:14px;
    background:#f3f6f9;
  }

  .km-mega__top strong{
    font-size:.75rem;
  }

  .km-mega__eyebrow{
    font-size:.5rem;
  }

  .km-mega__all{
    display:none!important;
  }

  .km-mega__content{
    grid-template-columns:1fr;
  }

  .km-mega__group{
    padding:8px;
  }

  .km-mega__group+.km-mega__group{
    border-left:0;
    border-top:1px solid #e2e8f0;
  }

  .km-mega__group-title{
    margin:7px 8px 6px;
    font-size:.5rem;
  }

  .header__menu .km-mega__item{
    min-height:58px;
    grid-template-columns:34px 1fr;
    padding:8px!important;
  }

  .km-mega__icon{
    width:32px;
    height:32px;
    border-radius:8px;
  }

  .km-mega__icon svg{
    width:17px;
    height:17px;
  }

  .km-mega__item strong{
    font-size:.7rem;
  }

  .km-mega__item small{
    font-size:.56rem;
  }

  .km-mega__promo{
    min-height:auto;
    margin:6px;
    padding:17px;
    border-radius:10px;
  }

  .km-mega__promo strong{
    font-size:.88rem;
  }

  .km-zones{
    grid-template-columns:1fr 1fr;
    gap:7px;
    padding:10px;
  }

  .header__menu .km-zone{
    min-height:67px;
    padding:10px!important;
  }

  .km-zones__footer{
    display:block;
    padding:12px 14px;
  }

  .km-zones__footer a{
    display:block!important;
    margin-top:5px;
  }

  .km-brand-card{
    margin:10px;
    padding:17px!important;
  }

  .km-brands__note{
    padding:0 14px 13px;
  }

  .km-menu__actions{
    display:none;
  }

  .km-mobile-contact{
    display:block;
    margin-top:5px;
    padding:14px;
    border-radius:11px;
    background:
      radial-gradient(circle at 92% 12%,rgba(241,182,54,.13),transparent 30%),
      #0f172a;
  }

  .km-mobile-contact__info span,
  .km-mobile-contact__info small{
    display:block;
  }

  .km-mobile-contact__info span{
    color:#fff;
    font-size:.68rem;
    font-weight:800;
  }

  .km-mobile-contact__info small{
    margin-top:2px;
    color:#9eacc0;
    font-size:.57rem;
  }

  .km-mobile-contact__actions{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:7px;
    margin-top:11px;
  }

  .km-mobile-contact__actions a{
    display:grid!important;
    place-items:center;
    min-height:40px;
    padding:0 10px!important;
    border-radius:8px;
    background:#f1b636!important;
    color:#111827!important;
    font-size:.65rem!important;
    font-weight:900!important;
  }

  .km-mobile-contact__actions a.is-wa{
    background:#25D366!important;
    color:#06391c!important;
  }
}

@media(max-width:560px){
  .km-zones{
    grid-template-columns:1fr;
  }

  .km-mega__top{
    display:block;
  }
}

/* Accesibilidad */
.km-menu a:focus-visible,
.km-menu button:focus-visible{
  outline:3px solid #b77900;
  outline-offset:2px;
}

@media(prefers-reduced-motion:reduce){
  .km-menu *,
  .menu-toggle span{
    transition:none!important;
  }
}

/* ==========================================================
   KEYSMAN · MENÚ PREMIUM V3.1 · NORMALIZACIÓN GLOBAL
   Corrige diferencias entre keysman-core.css y keysman.css.
   ========================================================== */

@media(min-width:921px){
  .header .header__inner{
    min-height:82px!important;
  }

  .header .header__menu.km-menu{
    display:flex!important;
    position:static!important;
    inset:auto!important;
    margin-left:auto!important;
    padding:0!important;
    flex-direction:row!important;
    align-items:center!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  .header .header__menu.km-menu>.dropdown{
    position:relative!important;
  }

  .header .header__menu.km-menu .dropdown__menu.km-mega{
    display:block!important;
    opacity:0!important;
    visibility:hidden!important;
    pointer-events:none!important;
    transform:translateY(8px)!important;
  }

  .header .header__menu.km-menu .dropdown:hover>.dropdown__menu.km-mega,
  .header .header__menu.km-menu .dropdown:focus-within>.dropdown__menu.km-mega,
  .header .header__menu.km-menu .dropdown.is-open>.dropdown__menu.km-mega{
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }

  .header .menu-toggle{
    display:none!important;
  }
}

@media(max-width:920px){
  .header .menu-toggle{
    display:flex!important;
  }

  .header .header__menu.km-menu{
    display:none!important;
    position:absolute!important;
    top:72px!important;
    left:12px!important;
    right:12px!important;
    margin:0!important;
    padding:10px!important;
    flex-direction:column!important;
    align-items:stretch!important;
    overflow:auto!important;
    border:1px solid #dfe5eb!important;
    border-radius:16px!important;
    background:#fff!important;
    box-shadow:0 24px 60px rgba(15,23,42,.18)!important;
  }

  .header .header__menu.km-menu.is-open{
    display:flex!important;
  }

  .header .header__menu.km-menu .dropdown__menu.km-mega{
    position:static!important;
    display:none!important;
    opacity:1!important;
    visibility:visible!important;
    pointer-events:auto!important;
    transform:none!important;
  }

  .header .header__menu.km-menu .dropdown.is-open>.dropdown__menu.km-mega{
    display:block!important;
  }
}

/* ==========================================================
   KEYSMAN · FOOTER PREMIUM V1
   Añadir al FINAL de /assets/css/keysman.css
   ========================================================== */

.km-footer{
  --kmf-deep:#080d18;
  --kmf-navy:#0f172a;
  --kmf-navy2:#121e33;
  --kmf-yellow:#f1b636;
  --kmf-yellow2:#e0a525;
  --kmf-text:#d6deea;
  --kmf-muted:#8f9caf;
  --kmf-line:rgba(255,255,255,.09);
  font-family:system-ui,-apple-system,"Segoe UI",Roboto,Arial,sans-serif;
}

/* CTA superior */
.km-footer__cta{
  padding:54px 0;
  border-top:1px solid #efd17b;
  background:
    radial-gradient(circle at 85% 10%,rgba(241,182,54,.20),transparent 25%),
    linear-gradient(135deg,#fff8df,#fff2c8);
}

.km-footer__cta-inner{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  gap:52px;
  align-items:center;
}

.km-footer__eyebrow{
  display:block;
  color:#906300;
  font-size:.59rem;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
}

.km-footer__cta-copy h2{
  max-width:820px;
  margin:8px 0 10px;
  color:#0f172a;
  font-size:clamp(1.8rem,3.4vw,2.85rem);
  line-height:1.02;
  letter-spacing:-.045em;
}

.km-footer__cta-copy p{
  max-width:760px;
  margin:0;
  color:#665d4b;
  font-size:.83rem;
  line-height:1.7;
}

.km-footer__cta-actions{
  display:flex;
  flex-wrap:wrap;
  gap:9px;
  justify-content:flex-end;
}

.km-footer__btn{
  min-height:45px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:0 17px;
  border-radius:10px;
  font-size:.7rem;
  font-weight:900;
  text-decoration:none;
  transition:
    transform .17s ease,
    box-shadow .17s ease,
    background .17s ease;
}

.km-footer__btn:hover{
  transform:translateY(-2px);
}

.km-footer__btn--primary{
  background:#0f172a;
  color:#fff;
  box-shadow:0 7px 18px rgba(15,23,42,.16);
}

.km-footer__btn--primary:hover{
  background:#17243b;
  color:#f1b636;
}

.km-footer__btn--wa{
  background:#25D366;
  color:#06391c;
  box-shadow:0 7px 18px rgba(37,211,102,.18);
}

.km-footer__btn--wa svg{
  width:18px;
  height:18px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.5;
  stroke-linecap:round;
  stroke-linejoin:round;
}

/* Cuerpo */
.km-footer__main{
  position:relative;
  overflow:hidden;
  padding:62px 0 0;
  color:var(--kmf-text);
  background:
    radial-gradient(circle at 10% 0%,rgba(241,182,54,.08),transparent 20%),
    radial-gradient(circle at 95% 75%,rgba(56,88,135,.10),transparent 25%),
    linear-gradient(145deg,var(--kmf-deep),var(--kmf-navy) 62%,#101b2f);
}

.km-footer__main::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  opacity:.18;
  background-image:
    linear-gradient(rgba(255,255,255,.025) 1px,transparent 1px),
    linear-gradient(90deg,rgba(255,255,255,.025) 1px,transparent 1px);
  background-size:44px 44px;
  mask-image:linear-gradient(to bottom,#000,transparent 75%);
}

.km-footer__main>.container{
  position:relative;
  z-index:1;
}

.km-footer__top-grid{
  display:grid;
  grid-template-columns:1.55fr .9fr .9fr .9fr;
  gap:46px;
  padding-bottom:45px;
}

.km-footer__brand{
  max-width:400px;
}

.km-footer__logo{
  display:inline-flex;
  align-items:center;
}

.km-footer__logo img{
  width:min(280px,100%);
  height:auto;
}

.km-footer__brand>p{
  max-width:390px;
  margin:20px 0 0;
  color:#9eabbc;
  font-size:.75rem;
  line-height:1.7;
}

.km-footer__brand-meta{
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  margin-top:22px;
}

.km-footer__brand-meta span{
  padding:6px 9px;
  border:1px solid var(--kmf-line);
  border-radius:999px;
  color:#aab6c5;
  background:rgba(255,255,255,.025);
  font-size:.56rem;
  font-weight:700;
}

.km-footer__title{
  display:block;
  margin-bottom:15px;
  color:#f1b636;
  font-size:.6rem;
  font-weight:900;
  letter-spacing:.11em;
  text-transform:uppercase;
}

.km-footer__nav{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
}

.km-footer__nav a{
  position:relative;
  display:inline-flex;
  align-items:center;
  min-height:31px;
  padding:3px 0;
  color:#a9b5c4;
  font-size:.68rem;
  font-weight:600;
  line-height:1.35;
  text-decoration:none;
  transition:
    color .15s ease,
    transform .15s ease;
}

.km-footer__nav a::before{
  content:"";
  width:0;
  height:1px;
  margin-right:0;
  background:#f1b636;
  transition:width .15s ease,margin-right .15s ease;
}

.km-footer__nav a:hover{
  color:#fff;
  transform:translateX(2px);
}

.km-footer__nav a:hover::before{
  width:12px;
  margin-right:7px;
}

/* Contacto */
.km-footer__contact-grid{
  display:grid;
  grid-template-columns:1.25fr .9fr 1fr;
  gap:12px;
  padding:14px 0 42px;
  border-top:1px solid var(--kmf-line);
}

.km-footer__store,
.km-footer__schedule,
.km-footer__contact{
  min-height:210px;
  padding:25px;
  border:1px solid var(--kmf-line);
  border-radius:14px;
  background:rgba(255,255,255,.028);
  backdrop-filter:blur(8px);
}

.km-footer__store-head{
  display:flex;
  gap:13px;
  align-items:center;
}

.km-footer__store-icon{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  flex:0 0 auto;
  border-radius:11px;
  background:#f1b636;
  color:#0f172a;
}

.km-footer__store-icon svg{
  width:20px;
  height:20px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.km-footer__store .km-footer__eyebrow{
  color:#f1b636;
  font-size:.52rem;
}

.km-footer__store h3{
  margin:4px 0 0;
  color:#fff;
  font-size:1.05rem;
}

.km-footer__store address{
  margin:19px 0 0;
  color:#aab5c4;
  font-size:.7rem;
  font-style:normal;
  line-height:1.6;
}

.km-footer__map-link{
  display:inline-flex;
  gap:7px;
  align-items:center;
  margin-top:17px;
  color:#f1b636;
  font-size:.64rem;
  font-weight:850;
  text-decoration:none;
}

.km-footer__schedule-row{
  display:flex;
  justify-content:space-between;
  gap:18px;
  padding:11px 0;
  border-bottom:1px solid rgba(255,255,255,.07);
}

.km-footer__schedule-row span{
  color:#8998ab;
  font-size:.63rem;
}

.km-footer__schedule-row strong{
  color:#e3e9f0;
  font-size:.67rem;
}

.km-footer__schedule p{
  margin:17px 0 0;
  color:#7f8da0;
  font-size:.6rem;
  line-height:1.55;
}

.km-footer__contact{
  display:flex;
  flex-direction:column;
}

.km-footer__contact-row{
  display:grid;
  grid-template-columns:39px 1fr;
  gap:11px;
  align-items:center;
  min-height:62px;
  padding:8px 0;
  border-bottom:1px solid rgba(255,255,255,.07);
  text-decoration:none;
}

.km-footer__contact-row:last-child{
  border-bottom:0;
}

.km-footer__contact-icon{
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:1px solid var(--kmf-line);
  border-radius:9px;
  background:rgba(255,255,255,.035);
  color:#f1b636;
  transition:background .15s ease,color .15s ease;
}

.km-footer__contact-row:hover .km-footer__contact-icon{
  background:#f1b636;
  color:#0f172a;
}

.km-footer__contact-icon svg{
  width:17px;
  height:17px;
  fill:none;
  stroke:currentColor;
  stroke-width:1.65;
  stroke-linecap:round;
  stroke-linejoin:round;
}

.km-footer__contact-row small,
.km-footer__contact-row strong{
  display:block;
}

.km-footer__contact-row small{
  color:#7e8da1;
  font-size:.54rem;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}

.km-footer__contact-row strong{
  margin-top:3px;
  color:#e8edf3;
  font-size:.7rem;
}

/* Ecosistema */
.km-footer__ecosystem{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  gap:42px;
  align-items:center;
  padding:27px 0;
  border-top:1px solid var(--kmf-line);
}

.km-footer__ecosystem>div:first-child p{
  max-width:480px;
  margin:6px 0 0;
  color:#8290a2;
  font-size:.61rem;
  line-height:1.55;
}

.km-footer__ecosystem-links{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}

.km-footer__ecosystem-links a{
  min-height:72px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding:13px;
  border:1px solid var(--kmf-line);
  border-radius:10px;
  background:rgba(255,255,255,.025);
  text-decoration:none;
  transition:
    border-color .15s ease,
    background .15s ease,
    transform .15s ease;
}

.km-footer__ecosystem-links a:hover{
  transform:translateY(-2px);
  border-color:rgba(241,182,54,.34);
  background:rgba(241,182,54,.05);
}

.km-footer__ecosystem-links a.is-current{
  border-color:rgba(241,182,54,.30);
  background:rgba(241,182,54,.07);
}

.km-footer__ecosystem-links span{
  color:#f1b636;
  font-size:.55rem;
  font-weight:900;
  letter-spacing:.06em;
}

.km-footer__ecosystem-links small{
  margin-top:4px;
  color:#8c99ab;
  font-size:.56rem;
  line-height:1.35;
}

/* Legal */
.km-footer__bottom{
  min-height:74px;
  display:flex;
  justify-content:space-between;
  gap:30px;
  align-items:center;
  border-top:1px solid var(--kmf-line);
}

.km-footer__copyright{
  display:flex;
  flex-wrap:wrap;
  gap:10px 20px;
  color:#68778b;
  font-size:.58rem;
}

.km-footer__legal{
  display:flex;
  flex-wrap:wrap;
  gap:18px;
}

.km-footer__legal a{
  color:#7d8b9e;
  font-size:.58rem;
  text-decoration:none;
  transition:color .15s ease;
}

.km-footer__legal a:hover{
  color:#f1b636;
}

/* Accesibilidad */
.km-footer a:focus-visible{
  outline:3px solid #f1b636;
  outline-offset:3px;
  border-radius:4px;
}

/* Responsive */
@media(max-width:1050px){
  .km-footer__top-grid{
    grid-template-columns:1.4fr 1fr 1fr;
  }

  .km-footer__brand{
    grid-column:1/-1;
    max-width:none;
    padding-bottom:10px;
  }

  .km-footer__contact-grid{
    grid-template-columns:1fr 1fr;
  }

  .km-footer__store{
    grid-column:1/-1;
  }

  .km-footer__ecosystem{
    grid-template-columns:1fr;
    gap:18px;
  }
}

@media(max-width:760px){
  .km-footer__cta{
    padding:42px 0;
  }

  .km-footer__cta-inner{
    grid-template-columns:1fr;
    gap:25px;
  }

  .km-footer__cta-actions{
    justify-content:flex-start;
  }

  .km-footer__main{
    padding-top:44px;
  }

  .km-footer__top-grid{
    grid-template-columns:1fr 1fr;
    gap:30px 22px;
  }

  .km-footer__brand{
    grid-column:1/-1;
  }

  .km-footer__contact-grid{
    grid-template-columns:1fr;
  }

  .km-footer__store{
    grid-column:auto;
  }

  .km-footer__ecosystem-links{
    grid-template-columns:1fr;
  }

  .km-footer__bottom{
    align-items:flex-start;
    flex-direction:column;
    justify-content:center;
    padding:20px 0;
  }
}

@media(max-width:520px){
  .km-footer__top-grid{
    grid-template-columns:1fr;
  }

  .km-footer__brand{
    grid-column:auto;
  }

  .km-footer__brand-meta{
    display:block;
  }

  .km-footer__brand-meta span{
    display:inline-flex;
    margin:0 5px 5px 0;
  }

  .km-footer__cta-actions{
    display:grid;
    grid-template-columns:1fr 1fr;
  }

  .km-footer__btn{
    width:100%;
  }

  .km-footer__store,
  .km-footer__schedule,
  .km-footer__contact{
    padding:20px;
  }

  .km-footer__schedule-row{
    display:block;
  }

  .km-footer__schedule-row strong{
    display:block;
    margin-top:4px;
  }

  .km-footer__legal{
    gap:11px 15px;
  }
}

@media(prefers-reduced-motion:reduce){
  .km-footer *{
    transition:none!important;
  }
}

/* ==========================================================
   KEYSMAN · FOOTER PREMIUM V1.1 · NORMALIZACIÓN GLOBAL
   Igualación visual entre keysman.css y keysman-core.css.
   ========================================================== */

.km-footer{
  display:block!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  clear:both!important;
}

.km-footer *,
.km-footer *::before,
.km-footer *::after{
  box-sizing:border-box!important;
}

.km-footer .container{
  width:min(1180px,calc(100% - 32px))!important;
  max-width:1180px!important;
  margin-inline:auto!important;
}

.km-footer a{
  text-decoration:none!important;
}

.km-footer img{
  display:block!important;
  max-width:100%!important;
  height:auto!important;
}

.km-footer h2,
.km-footer h3,
.km-footer p,
.km-footer address{
  margin-top:0;
}

.km-footer__main,
.km-footer__cta{
  width:100%!important;
}

@media(max-width:760px){
  .km-footer .container{
    width:min(100% - 24px,1180px)!important;
  }
}
