/*! enMonterrey — portal de ciudad: header, menú móvil, buscador, footer y bloques de portada.
 * Paquete diseno_portal · 28-10-2026. Usa los tokens de enm-ds.css (diseno_sistema); no los redefine.
 * Se carga sólo con website_header_style = portal (head.php, bloque emty:diseno_portal).
 */

/* ============================== Header ============================== */
:root { --emh-h: 64px; }
@media (min-width: 1024px) { :root { --emh-h: 72px; } }
body { padding-top: var(--emh-h) !important; }
html { scroll-padding-top: calc(var(--emh-h) + 8px); }
/* Un bloque que se desborde a lo ancho (p. ej. un carrusel sin overflow) no debe ensanchar el viewport de layout en teléfono:
   si lo hace, el header fijo crece con él y los botones de buscar, cuenta y menú quedan fuera de pantalla. */
html, body { overflow-x: clip; }
@supports not (overflow-x: clip) { html, body { overflow-x: hidden; } }
#em-main { display: block; height: 0; outline: none; }

.emh {
  position: fixed; top: 0; left: 0; right: 0; z-index: 1030; height: var(--emh-h);
  background: #fff; border-bottom: 1px solid var(--enm-color-border, #dde3eb);
  transition: box-shadow .2s ease;
  font-family: var(--enm-font-sans);
}
.emh.is-scrolled { box-shadow: 0 6px 20px rgba(17, 26, 46, .08); }
.emh__bar {
  height: 100%; max-width: 1280px; margin: 0 auto; padding: 0 var(--enm-gutter, 16px);
  display: flex; align-items: center; gap: 12px;
}
.emh__logo { display: inline-flex; align-items: center; flex: 0 0 auto; min-height: 44px; margin-right: auto; text-decoration: none; }
.emh__logo img, .emh__logo picture img { display: block; height: 34px; width: auto; max-width: 160px; object-fit: contain; }
.emh__logo-text { font-weight: 800; font-size: 1.35rem; color: var(--enm-navy-800); }
@media (min-width: 1024px) { .emh__logo img, .emh__logo picture img { height: 40px; max-width: 190px; } .emh__logo { margin-right: 8px; } }

.emh__nav { display: none; }
@media (min-width: 1024px) { .emh__nav { display: block; flex: 1 1 auto; min-width: 0; } }
.emh__menu { display: flex; align-items: center; gap: 2px; list-style: none; margin: 0; padding: 0; }
.emh__item { position: relative; }
.emh__link {
  position: relative; display: inline-flex; align-items: center; gap: 6px; height: 44px; padding: 0 12px;
  font-size: .97rem; font-weight: 600; color: var(--enm-navy-800) !important; text-decoration: none !important;
  background: none; border: 0; border-radius: var(--enm-radius-md); cursor: pointer; white-space: nowrap;
}
.emh__link:hover { background: var(--enm-gray-50); color: var(--enm-color-primary) !important; }
.emh__link.is-active { color: var(--enm-color-primary) !important; }
.emh__link.is-active::after { content: ""; position: absolute; left: 12px; right: 12px; bottom: -14px; height: 3px; border-radius: 3px 3px 0 0; background: var(--enm-sky-400); }
.emh__link i { font-size: .7em; opacity: .7; }
.emh__sub {
  position: absolute; top: calc(100% + 10px); left: 0; z-index: 5; min-width: 220px; margin: 0; padding: 8px; list-style: none;
  background: #fff; border: 1px solid var(--enm-color-border); border-radius: var(--enm-radius-lg); box-shadow: var(--enm-shadow-lg);
}
.emh__sub--end { left: auto; right: 0; }
.emh__sub a { display: flex; align-items: center; min-height: 44px; padding: 0 12px; border-radius: var(--enm-radius-md); color: var(--enm-color-text) !important; text-decoration: none !important; font-weight: 500; }
.emh__sub a:hover { background: var(--enm-gray-50); color: var(--enm-color-primary) !important; }
.emh__sub-head { padding: 8px 12px; font-size: var(--enm-text-sm); font-weight: 700; color: var(--enm-color-text-muted); border-bottom: 1px solid var(--enm-color-border); margin-bottom: 4px; }

.emh__actions { display: flex; align-items: center; gap: 6px; flex: 0 0 auto; }
.emh__acct { position: relative; }
.emh__icon-btn {
  display: inline-flex; align-items: center; justify-content: center; gap: 8px; width: 44px; height: 44px; padding: 0;
  color: var(--enm-navy-800); background: transparent; border: 0; border-radius: 12px; cursor: pointer; font-size: 1.1rem;
  transition: background-color .15s ease, color .15s ease;
}
.emh__icon-btn:hover { background: var(--enm-gray-100); color: var(--enm-color-primary); }
.emh__account.is-in { color: var(--enm-color-success); }
.emh__search-hint { display: none; }
@media (min-width: 1200px) {
  .emh__search-btn { width: auto; padding: 0 14px 0 12px; min-width: 150px; justify-content: flex-start; background: var(--enm-gray-50); border: 1px solid var(--enm-color-border); border-radius: var(--enm-radius-pill); font-size: .95rem; color: var(--enm-color-text-muted); }
  .emh__search-btn i { color: var(--enm-navy-800); }
  .emh__search-hint { display: inline; }
  .emh__search-btn:hover { background: #fff; border-color: var(--enm-color-primary); }
}
.emh__cta { display: none !important; }
@media (min-width: 1100px) { .emh__cta { display: inline-flex !important; min-height: 42px; padding: 0 16px; font-size: .95rem; margin-left: 4px; border-radius: var(--enm-radius-pill); } }
.emh__burger { margin-right: -6px; }
@media (min-width: 1100px) { .emh__burger { display: none; } }
.emh__burger-lines { display: flex; flex-direction: column; justify-content: space-between; width: 22px; height: 16px; }
.emh__burger-lines span { display: block; height: 2.5px; border-radius: 2px; background: currentColor; }
.emh__burger-lines span:nth-child(2) { width: 70%; align-self: flex-end; }
@media (max-width: 379px) { .emh__account { display: none; } }

/* ============================== Menú móvil ============================== */
.emd.offcanvas { width: min(88vw, 380px) !important; border: 0 !important; background: #fff; z-index: 2000; font-family: var(--enm-font-sans); }
.emd__head { display: flex; align-items: center; justify-content: space-between; padding: 10px 12px 10px 20px; border-bottom: 1px solid var(--enm-color-border); min-height: 64px; }
.emd__title { font-weight: 700; font-size: 1.05rem; color: var(--enm-navy-800); }
.emd__body { padding: 16px 16px 32px; overflow-y: auto; flex: 1 1 auto; }
.emd__search-wrap { position: relative; margin-bottom: 14px; }
.emd__search .enm-search__input { min-height: 48px; }
.emd__menu, .emd__quick, .emd__sub, .emd__social { list-style: none; margin: 0; padding: 0; }
.emd__link {
  display: flex; align-items: center; gap: 14px; min-height: 60px; padding: 8px 10px; border-radius: var(--enm-radius-lg);
  color: var(--enm-navy-800) !important; text-decoration: none !important;
}
.emd__link:hover, .emd__link.is-active { background: var(--enm-sky-50); }
.emd__link strong { display: block; font-size: 1.02rem; font-weight: 700; line-height: 1.2; }
.emd__link small { display: block; font-size: .82rem; color: var(--enm-color-text-muted); margin-top: 2px; }
.emd__link.is-active strong { color: var(--enm-color-primary); }
.emd__ico { flex: 0 0 42px; width: 42px; height: 42px; border-radius: 12px; display: inline-flex; align-items: center; justify-content: center; background: var(--enm-gray-50); color: var(--enm-navy-700); font-size: 1rem; }
.emd__link.is-active .emd__ico { background: var(--enm-navy-800); color: var(--enm-sky-400); }
.emd__sub { padding-left: 66px; }
.emd__sub a { display: flex; align-items: center; min-height: 44px; color: var(--enm-color-text) !important; text-decoration: none !important; }
.emd__quick { margin-top: 12px; padding-top: 12px; border-top: 1px solid var(--enm-color-border); }
.emd__quick a { display: flex; align-items: center; gap: 12px; min-height: 48px; padding: 0 10px; color: var(--enm-color-text) !important; text-decoration: none !important; font-weight: 500; border-radius: var(--enm-radius-md); }
.emd__quick a:hover { background: var(--enm-gray-50); }
.emd__quick i { width: 20px; text-align: center; color: var(--enm-gray-500); }
.emd__cta { margin-top: 16px; padding: 16px; border-radius: var(--enm-radius-lg); background: var(--enm-gradient-hero); color: #dbe7f5; }
.emd__cta p { margin: 0 0 12px; font-size: .92rem; line-height: 1.45; }
.emd__cta strong { color: #fff; }
.emd__pwa { margin-top: 12px; }
.emd__social { display: flex; gap: 8px; margin-top: 18px; }
.emd__social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--enm-gray-50); color: var(--enm-navy-800) !important; }

/* ============================== Buscador (diálogo + sugerencias) ============================== */
.ems { position: fixed; inset: 0; z-index: 1065; font-family: var(--enm-font-sans); }
.ems[hidden] { display: none; }
html.ems-open { overflow: hidden; }
.ems__backdrop { position: absolute; inset: 0; background: rgba(17, 26, 46, .55); -webkit-backdrop-filter: blur(3px); backdrop-filter: blur(3px); }
.ems__panel {
  position: relative; margin: 0 auto; max-width: 720px; background: #fff; padding: 14px 16px 18px;
  border-radius: 0 0 var(--enm-radius-xl) var(--enm-radius-xl); box-shadow: var(--enm-shadow-lg); max-height: 100vh; overflow-y: auto;
}
@media (min-width: 768px) { .ems__panel { margin-top: 10vh; border-radius: var(--enm-radius-xl); padding: 20px 24px 24px; } }
.ems__top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ems__title { font-size: 1.05rem; font-weight: 700; margin: 0; color: var(--enm-navy-800); }
.ems__form .enm-btn { display: none; }
@media (min-width: 480px) { .ems__form .enm-btn { display: inline-flex; } }
.ems__results { margin-top: 10px; }
.ems__results[hidden] { display: none; }
.ems__results--pop {
  position: absolute; left: 0; right: 0; top: calc(100% + 8px); z-index: 30; max-height: min(60vh, 460px); overflow-y: auto;
  background: #fff; color: var(--enm-color-text); border-radius: var(--enm-radius-lg); box-shadow: var(--enm-shadow-lg); padding: 6px; text-align: left;
}
.ems__group-title { padding: 10px 10px 4px; font-size: .74rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--enm-color-text-muted); }
.ems__opt { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 6px 10px; border-radius: var(--enm-radius-md); color: var(--enm-color-text) !important; text-decoration: none !important; }
.ems__opt:hover, .ems__opt[aria-selected="true"] { background: var(--enm-sky-50); }
.ems__opt[aria-selected="true"] { box-shadow: inset 3px 0 0 var(--enm-color-primary); }
.ems__media { flex: 0 0 40px; width: 40px; height: 40px; border-radius: 10px; overflow: hidden; display: inline-flex; align-items: center; justify-content: center; background: var(--enm-gray-50); color: var(--enm-navy-700); }
.ems__media img { width: 100%; height: 100%; object-fit: cover; }
.ems__txt { display: flex; flex-direction: column; min-width: 0; }
.ems__t { font-weight: 600; line-height: 1.25; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ems__s { font-size: .82rem; color: var(--enm-color-text-muted); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.ems__opt--all { border-top: 1px solid var(--enm-color-border); border-radius: 0 0 var(--enm-radius-md) var(--enm-radius-md); margin-top: 4px; }
.ems__opt--all .ems__t { color: var(--enm-color-primary); }
.ems__empty { margin: 8px 10px; font-size: .92rem; color: var(--enm-color-text-muted); }
.ems__hints { margin-top: 16px; }
.ems__hints-title { display: block; font-size: .78rem; font-weight: 700; letter-spacing: .06em; text-transform: uppercase; color: var(--enm-color-text-muted); margin-bottom: 8px; }
form[data-em-ac].is-loading .enm-search__icon i { animation: ems-pulse 1s ease-in-out infinite; }
@keyframes ems-pulse { 50% { opacity: .35; } }

/* ============================== Footer ============================== */
.emf { background: var(--enm-navy-900); color: #cbd5e1; padding: 48px 0 24px; margin-top: 0; font-family: var(--enm-font-sans); font-size: .95rem; }
.emf a { color: #e2e8f0; text-decoration: none; }
.emf a:hover { color: var(--enm-sky-300); text-decoration: underline; text-underline-offset: 3px; }
.emf__top { display: grid; gap: 32px; }
@media (min-width: 1024px) { .emf__top { grid-template-columns: minmax(260px, 1fr) 2.4fr; gap: 56px; } }
.emf__logo img { display: block; height: 40px; width: auto; filter: brightness(0) invert(1); }
.emf__logo-text { font-weight: 800; font-size: 1.4rem; color: #fff; }
.emf__about { margin: 14px 0 0; line-height: 1.55; max-width: 46ch; }
.emf__stats { display: flex; flex-wrap: wrap; gap: 6px 16px; list-style: none; margin: 14px 0 0; padding: 0; font-size: .88rem; }
.emf__stats strong { color: #fff; }
.emf__contact-btns { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 16px; }
.emf__contact-btns .enm-btn { min-height: 44px; }
.emf__social { display: flex; gap: 8px; list-style: none; margin: 16px 0 0; padding: 0; }
.emf__social a { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: rgba(255,255,255,.08); color: #fff; }
.emf__social a:hover { background: var(--enm-sky-400); color: var(--enm-navy-900); text-decoration: none; }
.emf__cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px 20px; }
@media (min-width: 768px) { .emf__cols { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.emf__col--wide { grid-column: 1 / -1; }
@media (min-width: 768px) { .emf__col--wide { grid-column: auto; } }
.emf__h { font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: #fff; margin: 0 0 10px; }
.emf__col ul { list-style: none; margin: 0; padding: 0; }
.emf__col li a { display: inline-flex; align-items: center; min-height: 36px; }
@media (pointer: coarse) { .emf__col li a { min-height: 44px; } }
.emf__inline { display: flex; flex-wrap: wrap; gap: 0 14px; }
@media (min-width: 768px) { .emf__inline { display: block; } }
.emf__lead { margin-top: 36px; border: 1px solid rgba(255,255,255,.14); border-radius: var(--enm-radius-lg); background: rgba(255,255,255,.03); }
.emf__lead > summary { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 56px; padding: 0 18px; cursor: pointer; color: #fff; font-weight: 600; list-style: none; }
.emf__lead > summary::-webkit-details-marker { display: none; }
.emf__lead > summary span i { color: var(--enm-sky-400); margin-right: 8px; }
.emf__lead[open] > summary > i { transform: rotate(180deg); }
.emf__lead-body { padding: 0 18px 18px; }
.emf__form-grid { display: grid; gap: 0 16px; }
@media (min-width: 768px) { .emf__form-grid { grid-template-columns: repeat(3, 1fr); } .emf__form-msg { grid-column: 1 / -1; } }
.emf .enm-label { color: #e2e8f0; }
.emf__opt { font-weight: 400; color: #94a3b8; }
.emf .enm-input, .emf .enm-textarea { background: rgba(255,255,255,.06); border-color: rgba(255,255,255,.22); color: #fff; }
.emf .enm-input:focus, .emf .enm-textarea:focus { border-color: var(--enm-sky-400); box-shadow: 0 0 0 3px rgba(77,210,255,.3); }
.emf__ok { color: #86efac; font-weight: 600; padding: 8px 0; }
.emf__bottom { position: relative; display: flex; flex-wrap: wrap; align-items: center; gap: 8px 24px; margin-top: 32px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.12); font-size: .86rem; padding-right: 56px; }
.emf__copy { margin: 0; }
.emf__legal { display: flex; flex-wrap: wrap; gap: 4px 18px; list-style: none; margin: 0; padding: 0; }
.emf__legal a { display: inline-flex; align-items: center; min-height: 44px; }
.emf__source { flex-basis: 100%; margin: 0; color: #94a3b8; font-size: .8rem; }
.emf__top-btn { position: absolute; right: 0; top: 16px; color: #fff; background: rgba(255,255,255,.08); border-radius: 50%; }
.emf__top-btn:hover { background: var(--enm-sky-400); color: var(--enm-navy-900); }

/* ============================== Bloques de portada (.emp) ============================== */
.emp { padding-block: clamp(2.25rem, 1.4rem + 3vw, 4rem); font-family: var(--enm-font-sans); color: var(--enm-color-text); }
.emp--white { background: #fff; }
.emp--gray { background: var(--enm-color-bg); }
.emp--navy { background: var(--enm-gradient-hero); color: #dbe7f5; }
.emp :where(ul, ol) { list-style: none; margin: 0; padding: 0; }
.emp__head { display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: 8px 16px; margin-bottom: 20px; }
.emp__eyebrow { margin: 0 0 6px; font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--enm-color-primary); }
.emp--navy .emp__eyebrow { color: var(--enm-sky-300); }
.emp__title { margin: 0; font-size: var(--enm-text-2xl); font-weight: 800; line-height: 1.15; letter-spacing: -.015em; color: var(--enm-navy-800); }
.emp--navy .emp__title { color: #fff; }
.emp__sub { margin: 6px 0 0; color: var(--enm-color-text-muted); max-width: 62ch; }
.emp--navy .emp__sub { color: #dbe7f5; }
.emp__more { display: inline-flex; align-items: center; gap: 8px; min-height: 44px; font-weight: 700; color: var(--enm-color-primary) !important; text-decoration: none !important; white-space: nowrap; }
.emp__more:hover i { transform: translateX(3px); }
.emp__more i { transition: transform .15s ease; }
.emp--navy .emp__more { color: var(--enm-sky-300) !important; }
.emp__admin-note { margin: 12px 0; padding: 10px 14px; border: 1px dashed var(--enm-color-warning); border-radius: var(--enm-radius-md); background: var(--enm-color-warning-soft); color: var(--enm-color-warning-text); font-size: .9rem; }
.emp__admin-note span { opacity: .75; }

/* ---------- Hero ---------- */
.emp-hero { position: relative; overflow: hidden; background: var(--enm-gradient-hero); color: #fff; padding: 36px 0 112px; isolation: isolate; }
@media (min-width: 768px) { .emp-hero { padding: 64px 0 170px; } }
@media (min-width: 1200px) { .emp-hero { padding: 76px 0 190px; } }
.emp-hero::before { content: ""; position: absolute; z-index: -1; inset: 0; background: radial-gradient(ellipse 60% 70% at 100% 0%, rgba(77,210,255,.20) 0%, rgba(77,210,255,0) 70%); }
.emp-hero__bg { position: absolute; inset: 0; z-index: -1; pointer-events: none; }
.emp-hero__bg picture, .emp-hero__photo { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.emp-hero__shade { position: absolute; inset: 0; background: linear-gradient(180deg, #111a2e 0%, #1a2741 100%); }
.emp-hero__mountains { position: absolute; left: 0; right: 0; bottom: -1px; width: 100%; height: 110px; display: block; }
@media (min-width: 768px) { .emp-hero__mountains { height: 190px; } }
.emp-hero__m1 { fill: rgba(77, 210, 255, .16); }
.emp-hero__m2 { fill: #0b1322; opacity: .85; }
.emp-hero__m3 { fill: #fff; }
.emp-hero__inner { position: relative; text-align: left; }
@media (min-width: 768px) { .emp-hero__inner { text-align: center; } }
.emp-hero__eyebrow { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 12px; padding: 6px 12px; border-radius: var(--enm-radius-pill); background: rgba(255,255,255,.1); color: #e0f5ff; font-size: .85rem; font-weight: 600; }
.emp-hero__eyebrow i { color: var(--enm-sky-400); }
.emp-hero__title { margin: 0 auto; max-width: 18ch; font-size: clamp(2.05rem, 1.25rem + 3.6vw, 3.6rem); font-weight: 800; line-height: 1.06; letter-spacing: -.025em; color: #fff; }
@media (max-width: 767px) { .emp-hero__title { margin: 0; } }
.emp-hero__title .hl { color: var(--enm-sky-400); }
.emp-hero__sub { margin: 14px auto 0; max-width: 54ch; font-size: clamp(1.02rem, .95rem + .4vw, 1.2rem); line-height: 1.5; color: #dbe7f5; }
@media (max-width: 767px) { .emp-hero__sub { margin-left: 0; } }
.emp-hero__search { position: relative; max-width: 760px; margin: 24px auto 0; text-align: left; }
.emp-hero__scopes { display: flex; gap: 6px; margin-bottom: 10px; overflow-x: auto; scrollbar-width: none; -webkit-overflow-scrolling: touch; }
.emp-hero__scopes::-webkit-scrollbar { display: none; }
@media (min-width: 768px) { .emp-hero__scopes { justify-content: center; } }
.emp-scope {
  flex: 0 0 auto; min-height: 40px; padding: 0 14px; border-radius: var(--enm-radius-pill); cursor: pointer;
  border: 1px solid rgba(255,255,255,.28); background: rgba(255,255,255,.06); color: #fff; font-size: .9rem; font-weight: 600; font-family: inherit;
}
@media (pointer: coarse) { .emp-scope { min-height: 44px; } }
.emp-scope:hover { background: rgba(255,255,255,.16); }
.emp-scope[aria-pressed="true"] { background: #fff; color: var(--enm-navy-800); border-color: #fff; }
.emp-hero__form { border: 0; box-shadow: 0 18px 40px rgba(0,0,0,.28); }
.emp-hero__form .enm-search__input { min-height: 58px; font-size: 1.05rem; }
.emp-hero__form .enm-btn { min-height: 50px; padding: 0 22px; font-size: 1rem; }
.emp-hero__btn-ico { display: none; }
@media (max-width: 420px) { .emp-hero__btn-txt { display: none; } .emp-hero__btn-ico { display: inline; } .emp-hero__form .enm-btn { width: 50px; padding: 0; } }
.emp-hero__quick { display: flex; flex-wrap: wrap; align-items: center; gap: 8px; max-width: 860px; margin: 16px auto 0; }
@media (min-width: 768px) { .emp-hero__quick { justify-content: center; } .emp-hero__chips { justify-content: center; } }
.emp-hero__quick-label { font-size: .86rem; color: #c7d6ea; }
.emp-hero__chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; margin: 0; padding: 0; }
.emp-hero__chip { display: inline-flex; align-items: center; gap: 7px; min-height: 36px; padding: 0 12px; border-radius: var(--enm-radius-pill); background: rgba(255,255,255,.1); border: 1px solid rgba(255,255,255,.16); color: #fff !important; font-size: .88rem; font-weight: 500; text-decoration: none !important; }
@media (pointer: coarse) { .emp-hero__chip { min-height: 44px; } }
.emp-hero__chip:hover { background: rgba(255,255,255,.2); }
.emp-hero__chip i { color: var(--enm-sky-300); font-size: .85em; }
.emp-hero__stats { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-width: 860px; margin: 24px auto 0; list-style: none; padding: 0; }
@media (min-width: 768px) { .emp-hero__stats { display: flex; justify-content: center; gap: 12px; } }
.emp-hero__stats a { display: flex; flex-direction: column; padding: 12px 14px; border-radius: var(--enm-radius-lg); background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.12); color: #fff !important; text-decoration: none !important; min-width: 150px; }
.emp-hero__stats a:hover { background: rgba(255,255,255,.13); }
.emp-hero__stats strong { font-size: 1.55rem; font-weight: 800; line-height: 1.1; }
.emp-hero__stats span { font-size: .84rem; color: #c7d6ea; }

/* ---------- Categorías ---------- */
.emp-cats__grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
@media (min-width: 600px) { .emp-cats__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 14px; } }
@media (min-width: 1024px) { .emp-cats__grid { grid-template-columns: repeat(6, minmax(0, 1fr)); } }
.emp-cat {
  --emp-cat: var(--enm-color-primary);
  display: flex; flex-direction: column; align-items: center; justify-content: flex-start; gap: 6px; height: 100%; min-height: 112px;
  padding: 14px 8px 12px; text-align: center; border-radius: var(--enm-radius-lg); background: #fff; border: 1px solid var(--enm-color-border);
  color: var(--enm-navy-800) !important; text-decoration: none !important; transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.emp--white .emp-cat { background: var(--enm-gray-25); }
.emp-cat:hover { border-color: var(--emp-cat); box-shadow: var(--enm-shadow-md); transform: translateY(-2px); }
.emp-cat__ico { display: inline-flex; align-items: center; justify-content: center; width: 46px; height: 46px; border-radius: 14px; font-size: 1.15rem;
  background: #e8eef7; color: var(--enm-navy-700);
  background: color-mix(in srgb, var(--emp-cat) 14%, #fff); color: color-mix(in srgb, var(--emp-cat) 70%, #111a2e); }
.emp-cat__name { font-size: .9rem; font-weight: 700; line-height: 1.2; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.emp-cat__count { font-size: .76rem; color: var(--enm-color-text-muted); }
.emp-cat--all { background: var(--enm-navy-800) !important; border-color: var(--enm-navy-800); color: #fff !important; }
.emp-cat--all .emp-cat__ico { background: rgba(255,255,255,.12); color: var(--enm-sky-400); }
.emp-cat--all .emp-cat__count { color: #c7d6ea; }

/* ---------- Carrusel horizontal genérico ---------- */
.emp-scroller { position: relative; }
.emp-scroller__track {
  display: grid; grid-auto-flow: column; grid-auto-columns: 80%; gap: 14px; overflow-x: auto; overscroll-behavior-x: contain;
  scroll-snap-type: x mandatory; scroll-padding-left: var(--enm-gutter, 16px); scrollbar-width: none; -webkit-overflow-scrolling: touch;
  margin: 0 calc(-1 * var(--enm-gutter, 16px)); padding: 4px var(--enm-gutter, 16px) 12px !important;
}
.emp-scroller__track::-webkit-scrollbar { display: none; }
.emp-scroller__track > li { scroll-snap-align: start; min-width: 0; }
@media (min-width: 600px) { .emp-scroller__track { grid-auto-columns: 46%; } }
@media (min-width: 1024px) { .emp-scroller__track { grid-auto-columns: calc((100% - 3 * 16px) / 4); gap: 16px; margin: 0; padding: 4px 0 12px !important; } }
.emp-scroller__btn {
  display: none; position: absolute; top: 38%; z-index: 3; width: 44px; height: 44px; border-radius: 50%; border: 1px solid var(--enm-color-border);
  background: #fff; color: var(--enm-navy-800); box-shadow: var(--enm-shadow-md); align-items: center; justify-content: center; cursor: pointer;
}
.emp-scroller__btn:disabled { opacity: 0; pointer-events: none; }
.emp-scroller__btn--prev { left: -20px; }
.emp-scroller__btn--next { right: -20px; }
@media (min-width: 1024px) and (pointer: fine) { .emp-scroller.is-scrollable .emp-scroller__btn { display: inline-flex; } }

/* ---------- Eventos ---------- */
.emp-ev { position: relative; display: flex; flex-direction: column; height: 100%; background: #fff; border: 1px solid var(--enm-color-border); border-radius: var(--enm-radius-lg); overflow: hidden; box-shadow: var(--enm-shadow-xs); transition: box-shadow .15s ease, transform .15s ease; }
.emp-ev:hover, .emp-ev:focus-within { box-shadow: var(--enm-shadow-lg); transform: translateY(-2px); }
.emp-ev__media { position: relative; aspect-ratio: 16 / 10; background: var(--enm-gradient-hero); overflow: hidden; }
.emp-ev__media picture, .emp-ev__img { width: 100%; height: 100%; object-fit: cover; display: block; }
.emp-ev__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: flex-end; padding: 18px; color: rgba(77,210,255,.35); font-size: 3.4rem; }
.emp-ev__date { position: absolute; top: 10px; left: 10px; display: flex; flex-direction: column; align-items: center; min-width: 54px; padding: 6px 8px; border-radius: 12px; background: #fff; color: var(--enm-navy-800); box-shadow: var(--enm-shadow-md); line-height: 1; }
.emp-ev__wd, .emp-ev__mon { font-size: .7rem; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.emp-ev__wd { color: var(--enm-color-accent); }
.emp-ev__day { font-size: 1.45rem; font-weight: 800; margin: 2px 0; }
.emp-ev__body { display: flex; flex-direction: column; gap: 4px; padding: 12px 14px 14px; flex: 1 1 auto; }
.emp-ev__cat { font-size: .74rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--enm-color-primary); }
.emp-ev__title { margin: 0; font-size: 1.02rem; font-weight: 700; line-height: 1.3; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.emp-ev__title a { color: var(--enm-navy-800) !important; text-decoration: none !important; }
.emp-ev__title a::after { content: ""; position: absolute; inset: 0; }
.emp-ev__when, .emp-ev__venue { margin: 0; font-size: .86rem; color: var(--enm-color-text-muted); display: flex; gap: 6px; align-items: baseline; }
.emp-ev__when i, .emp-ev__venue i { color: var(--enm-gray-500); width: 14px; flex: 0 0 14px; }
.emp-ev__badges { display: flex; gap: 6px; margin-top: auto; padding-top: 6px; }
.emp-events__next { margin: 22px 0 10px; font-size: 1.1rem; font-weight: 700; color: var(--enm-navy-800); }
.emp-events__none { margin: 0 0 14px; color: var(--enm-color-text-muted); }
.emp-events__cta { margin: 12px 0 0; color: var(--enm-color-text-muted); font-size: .95rem; }
.emp-events__cta a { color: var(--enm-color-link); font-weight: 600; }

/* ---------- Sitios ---------- */
.emp-sites__chips { margin-bottom: 16px; }
.emp-site { position: relative; height: 100%; min-height: 230px; border-radius: var(--enm-radius-lg); overflow: hidden; background: var(--enm-navy-800); color: #fff; isolation: isolate; box-shadow: var(--enm-shadow-sm); }
.emp-site__media { position: absolute; inset: 0; z-index: -2; }
.emp-site__media picture, .emp-site__img { width: 100%; height: 100%; object-fit: cover; display: block; transition: transform .4s ease; }
.emp-site:hover .emp-site__img { transform: scale(1.04); }
.emp-site::after { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(17,26,46,0) 30%, rgba(17,26,46,.55) 58%, rgba(17,26,46,.92) 100%); }
.emp-site__ph { position: absolute; inset: 0; display: flex; align-items: center; justify-content: center; background: var(--enm-gradient-hero); color: rgba(77,210,255,.4); font-size: 3rem; }
.emp-site__body { position: absolute; left: 0; right: 0; bottom: 0; padding: 14px 16px 16px; display: flex; flex-direction: column; gap: 4px; }
.emp-site__cat { display: inline-flex; align-items: center; align-self: flex-start; gap: 6px; padding: 4px 10px; border-radius: var(--enm-radius-pill); background: rgba(11, 19, 34, .78); -webkit-backdrop-filter: blur(4px); backdrop-filter: blur(4px); font-size: .74rem; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: #fff; }
.emp-site__cat i { color: var(--enm-sky-300); }
.emp-site__title { margin: 0; font-size: 1.08rem; font-weight: 800; line-height: 1.25; }
.emp-site__title a { color: #fff !important; text-decoration: none !important; }
.emp-site__title a::after { content: ""; position: absolute; inset: 0; z-index: 1; }
.emp-site__text { margin: 2px 0 0; font-size: .92rem; line-height: 1.45; color: #e2e8f0; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.emp-site__meta { display: flex; flex-wrap: wrap; gap: 6px 12px; align-items: center; font-size: .84rem; color: #e2e8f0; }
.emp-site__meta i { margin-right: 4px; color: var(--enm-sky-300); }
.emp-site--big .emp-site__title { font-size: clamp(1.2rem, 1rem + .9vw, 1.6rem); }
.emp-sites__bento > li { min-height: 260px; }
@media (min-width: 1024px) {
  .emp-sites__scroller .emp-scroller__track.emp-sites__bento { grid-auto-flow: row dense; grid-template-columns: repeat(4, minmax(0, 1fr)); grid-auto-rows: 230px; grid-auto-columns: auto; overflow: visible; }
  .emp-sites__bento > li { min-height: 0; }
  .emp-sites__bento > li.is-big { grid-column: span 2; grid-row: span 2; }
}
.emp-sites__row > li { min-height: 240px; }
.emp-sites__links { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 16px; }

/* ---------- Negocios ---------- */
.emp-tabs { display: inline-flex; gap: 4px; padding: 4px; margin-bottom: 16px; border-radius: var(--enm-radius-pill); background: var(--enm-gray-100); max-width: 100%; overflow-x: auto; }
.emp--gray .emp-tabs { background: #e3e8ef; }
.emp-tab { min-height: 40px; padding: 0 16px; border: 0; border-radius: var(--enm-radius-pill); background: transparent; color: var(--enm-color-text-muted); font-weight: 600; font-size: .95rem; font-family: inherit; cursor: pointer; white-space: nowrap; }
@media (pointer: coarse) { .emp-tab { min-height: 44px; } }
.emp-tab[aria-selected="true"] { background: #fff; color: var(--enm-navy-800); box-shadow: var(--enm-shadow-sm); }
.emp-bizs__grid { display: grid; grid-template-columns: 1fr; gap: 10px; }
@media (min-width: 600px) { .emp-bizs__grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; } }
@media (min-width: 1024px) { .emp-bizs__grid { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
.emp-biz { position: relative; display: flex; gap: 12px; align-items: flex-start; height: 100%; padding: 14px; background: #fff; border: 1px solid var(--enm-color-border); border-radius: var(--enm-radius-lg); transition: box-shadow .15s ease, border-color .15s ease; }
.emp-biz:hover, .emp-biz:focus-within { box-shadow: var(--enm-shadow-md); border-color: var(--enm-color-border-strong); }
.emp-biz__media { flex: 0 0 64px; width: 64px; height: 64px; border-radius: 14px; overflow: hidden; border: 1px solid var(--enm-color-border); background: #fff; display: flex; align-items: center; justify-content: center; }
.emp-biz__media picture { display: contents; }
.emp-biz__logo { width: 100%; height: 100%; object-fit: contain; padding: 4px; }
.emp-biz__ph { display: flex; align-items: center; justify-content: center; width: 100%; height: 100%; background: var(--enm-sky-50); color: var(--enm-navy-600); font-size: 1.4rem; }
.emp-biz__body { min-width: 0; flex: 1 1 auto; display: flex; flex-direction: column; gap: 2px; }
.emp-biz__title { margin: 0; font-size: 1rem; font-weight: 700; line-height: 1.25; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.emp-biz__title a { color: var(--enm-navy-800) !important; text-decoration: none !important; }
.emp-biz__title a::after { content: ""; position: absolute; inset: 0; }
.emp-biz__cat { margin: 0; font-size: .84rem; color: var(--enm-color-primary); font-weight: 600; }
.emp-biz__meta { display: flex; flex-wrap: wrap; gap: 2px 10px; font-size: .82rem; color: var(--enm-color-text-muted); }
.emp-biz__place { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.emp-biz__place i { margin-right: 4px; color: var(--enm-gray-500); }
.emp-biz__stars i { color: #b45309; }
.emp-biz__badge { align-self: flex-start; margin-top: 6px; }

/* ---------- CTA registro ---------- */
.emp-cta { position: relative; overflow: hidden; }
.emp-cta::before { content: ""; position: absolute; width: 520px; height: 520px; right: -160px; bottom: -260px; background: radial-gradient(circle, rgba(77,210,255,.22), rgba(77,210,255,0) 65%); pointer-events: none; }
.emp-cta__inner { position: relative; display: grid; gap: 24px; align-items: center; }
@media (min-width: 1024px) { .emp-cta__inner { grid-template-columns: 1.4fr 1fr; gap: 48px; } }
.emp-cta__title { margin: 0; font-size: var(--enm-text-3xl); font-weight: 800; line-height: 1.1; letter-spacing: -.02em; color: #fff; }
.emp--white .emp-cta__title, .emp--gray .emp-cta__title { color: var(--enm-navy-800); }
.emp-cta__lead { margin: 12px 0 0; font-size: 1.08rem; line-height: 1.5; max-width: 56ch; }
.emp-cta__lead strong { color: #fff; }
.emp--white .emp-cta__lead strong, .emp--gray .emp-cta__lead strong { color: var(--enm-navy-800); }
.emp-cta__points { margin-top: 16px !important; display: grid; gap: 8px; }
.emp-cta__points li { display: flex; gap: 10px; align-items: baseline; }
.emp-cta__points i { color: var(--enm-sky-400); }
.emp--white .emp-cta__points i, .emp--gray .emp-cta__points i { color: var(--enm-color-success); }
.emp-cta__actions { display: flex; flex-direction: column; gap: 10px; }
.emp-cta__actions .enm-btn { width: 100%; white-space: normal; text-align: center; }
.emp--white .emp-cta__actions .enm-btn--on-dark, .emp--gray .emp-cta__actions .enm-btn--on-dark { --_fg: var(--enm-color-primary); --_bd: currentColor; --_bg-h: var(--enm-color-primary-soft); }
.emp-cta__note { margin: 0; font-size: .86rem; text-align: center; opacity: .9; }

/* ---------- Noticias ---------- */
.emp-news__layout { display: grid; gap: 18px; }
@media (min-width: 900px) { .emp-news__layout { grid-template-columns: 5fr 7fr; gap: 28px; } .emp-news__layout.has-widget { grid-template-columns: 4fr 5fr 3fr; } }
.emp-news__lead { position: relative; border-radius: var(--enm-radius-lg); overflow: hidden; border: 1px solid var(--enm-color-border); background: #fff; align-self: start; }
.emp-news__lead-media { aspect-ratio: 16 / 9; background: var(--enm-gray-100); }
.emp-news__lead-media img { width: 100%; height: 100%; object-fit: cover; display: block; }
.emp-news__lead-body { padding: 14px 16px 18px; }
.emp-news__lead-title { margin: 4px 0 0; font-size: 1.25rem; font-weight: 800; line-height: 1.25; }
.emp-news__lead-title a, .emp-news__title a { color: var(--enm-navy-800) !important; text-decoration: none !important; }
.emp-news__lead-title a::after, .emp-news__title a::after { content: ""; position: absolute; inset: 0; }
.emp-news__lead-text { margin: 8px 0 0; color: var(--enm-color-text-muted); font-size: .95rem; line-height: 1.5; }
.emp-news__meta { margin: 0; display: flex; flex-wrap: wrap; gap: 4px 10px; font-size: .78rem; color: var(--enm-color-text-muted); }
.emp-news__src { font-weight: 700; color: var(--enm-color-primary); text-transform: uppercase; letter-spacing: .04em; }
.emp-news__list { display: flex; flex-direction: column; }
.emp-news__item { position: relative; display: flex; gap: 14px; align-items: flex-start; padding: 12px 0; border-bottom: 1px solid var(--enm-color-border); }
.emp-news__item:first-child { padding-top: 0; }
.emp-news__item:last-child { border-bottom: 0; }
.emp-news__item:hover .emp-news__title a { color: var(--enm-color-primary) !important; }
.emp-news__thumb { order: 2; flex: 0 0 96px; width: 96px; height: 72px; margin-left: auto; border-radius: 10px; overflow: hidden; background: var(--enm-gray-100); }
.emp-news__thumb img { width: 100%; height: 100%; object-fit: cover; display: block; }
.emp-news__title { margin: 3px 0 0; font-size: 1rem; font-weight: 700; line-height: 1.35; display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.emp-news__widget { min-width: 0; }

/* ---------- Guías ---------- */
.emp-guides__grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 300px), 1fr)); }
.emp-guides__grid > li { display: flex; min-width: 0; }
.emp-guides__grid > li > .enm-card { flex: 1 1 auto; }
.emp-guides__grid .enm-card__meta { margin-top: auto; }

/* ---------- Ajustes teléfono ---------- */
@media (max-width: 767px) {
  .emp-hero__quick { flex-wrap: nowrap; margin-right: calc(-1 * var(--enm-gutter, 16px)); }
  .emp-hero__quick-label { display: none; }
  .emp-hero__chips { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: none; padding-right: var(--enm-gutter, 16px); -webkit-overflow-scrolling: touch; }
  .emp-hero__chips::-webkit-scrollbar { display: none; }
  .emp-hero__chip { white-space: nowrap; }
  .emp-bizs__grid > li:nth-child(n+6) { display: none; }
}
.emp-cat__name { overflow-wrap: anywhere; -webkit-hyphens: auto; hyphens: auto; }
@media (max-width: 420px) { .emp-cat__name { font-size: .84rem; } }
@media (min-width: 1024px) { .emf__col--mun .emf__inline { columns: 2; column-gap: 16px; } .emf__cols { grid-template-columns: 1fr 1fr 1.1fr 1.5fr; } }

/* imágenes responsivas dentro de <picture> */
.emp picture { display: block; width: 100%; height: 100%; }
.emp-biz__media picture { display: contents; }
/* Widget «Hoy en Monterrey» (noticias_eventos) dentro de la columna lateral */
@media (min-width: 900px) and (max-width: 1199px) { .emp-news__layout.has-widget { grid-template-columns: 5fr 7fr; } .emp-news__layout.has-widget .emp-news__widget { grid-column: 1 / -1; } }
@media (min-width: 1200px) { .emp-news__layout.has-widget { grid-template-columns: minmax(0, 4fr) minmax(0, 5fr) minmax(300px, 3.3fr); } }
@media (min-width: 1200px) { .emp-news__widget .hem__grid { display: block !important; } .emp-news__widget .hem__grid > * + * { margin-top: 16px; } }
/* Aviso de cookies más compacto en teléfono (el contenido y la lógica no cambian) */
@media (max-width: 768px) {
  #cookie-consent-banner { flex-direction: row !important; align-items: center !important; gap: 12px !important; padding: 10px 14px calc(10px + env(safe-area-inset-bottom, 0px)) !important; border-radius: 14px 14px 0 0 !important; }
  #cookie-consent-banner .cookie-content { flex: 1 1 auto; min-width: 0; }
  #cookie-consent-banner .cookie-text { font-size: .8rem !important; line-height: 1.4 !important; }
  #cookie-consent-banner .cookie-actions { flex: 0 0 auto; width: auto !important; }
  #cookie-consent-banner .cookie-btn { width: auto !important; min-height: 44px !important; padding: 0 16px !important; font-size: .85rem !important; white-space: nowrap; }
}
@media (max-width: 767px) {
  .emp-hero__stats { margin-top: 18px; }
  .emp-hero__stats li:last-child:nth-child(odd) { grid-column: 1 / -1; }
  .emp-hero__stats a { flex-direction: row; align-items: baseline; gap: 8px; padding: 10px 12px; }
  .emp-hero__stats strong { font-size: 1.3rem; }
}
