:root {
  --nc-shell-petroleum: var(--nc-petroleum, #17516f);
  --nc-shell-petroleum-dark: var(--nc-petroleum-dark, #183b57);
  --nc-shell-turquoise: var(--nc-turquoise, #007d78);
  --nc-shell-turquoise-bright: var(--nc-turquoise-bright, #05c4bb);
  --nc-shell-maize: var(--nc-maize, #fec43d);
  --nc-shell-coral: var(--nc-coral, #ec7056);
  --nc-shell-violet: var(--nc-violet, #6857a8);
  --nc-shell-muted: var(--nc-muted, #526674);
  --nc-shell-border: var(--nc-border, #d6e4e4);
}

.site-header.nc-floating-header {
  --shell-ink: var(--nc-shell-petroleum);
  --shell-muted: var(--nc-shell-muted);
  --shell-line: var(--nc-shell-border);
  position: sticky;
  top: 0 !important;
  z-index: 1045;
  margin: 0;
  border: 0;
  border-bottom: 1px solid rgba(126, 164, 171, .35);
  border-radius: 0;
  background: rgba(255, 255, 255, .97);
  box-shadow: 0 8px 28px rgba(22, 69, 83, .09);
  backdrop-filter: blur(18px);
  -webkit-backdrop-filter: blur(18px);
}

.site-header.nc-floating-header::after {
  right: 0;
  left: 0;
  z-index: 0;
  height: 3px;
  background: linear-gradient(90deg, var(--nc-shell-turquoise-bright), var(--nc-shell-maize) 52%, var(--nc-shell-coral));
}
.site-header.nc-floating-header .nc-mega-navbar { position: relative; z-index: 1; min-height: 76px; padding: 0; overflow: visible; }
.site-header.nc-floating-header .nc-mega-container { max-width: 1600px; min-height: 76px; margin: 0 auto; padding: 0 clamp(1rem, 2.4vw, 2.6rem); }
.site-header.nc-floating-header .navbar-brand { flex: none; margin-right: clamp(.7rem, 1.6vw, 1.65rem); padding: .35rem 0; }
.site-header.nc-floating-header .navbar-brand img { width: clamp(128px, 10.8vw, 154px); }
#mapa, #como-funciona, #acerca, #canales { scroll-margin-top: 6.5rem; }

.site-header.nc-floating-header .nc-mega-collapse { min-width: 0; align-items: center; }
.site-header.nc-floating-header .nc-mega-primary {
  position: relative;
  align-items: center;
  gap: .08rem;
  min-width: 0;
  margin-right: .7rem;
}
.site-header.nc-floating-header .nc-mega-home-item {
  --nc-nav-accent: #287ca3;
  --nc-nav-hover-bg: #e9f2f6;
  --nc-nav-hover-ink: #154a61;
  --nc-nav-focus: rgba(40, 124, 163, .45);
}
.site-header.nc-floating-header .nc-mega-item {
  --nc-nav-accent: var(--nc-shell-turquoise);
  --nc-nav-hover-bg: #e4f7f3;
  --nc-nav-hover-ink: #00645f;
  --nc-nav-focus: rgba(0, 125, 120, .42);
  position: static;
}
.site-header.nc-floating-header .nc-mega-item[data-nc-mega-tone="about"] {
  --nc-nav-accent: #d65742;
  --nc-nav-hover-bg: #fff0eb;
  --nc-nav-hover-ink: #8a3527;
  --nc-nav-focus: rgba(214, 87, 66, .42);
}
.site-header.nc-floating-header .nc-mega-item[data-nc-mega-tone="community"] {
  --nc-nav-accent: var(--nc-shell-violet);
  --nc-nav-hover-bg: #f1edff;
  --nc-nav-hover-ink: #51418c;
  --nc-nav-focus: rgba(104, 87, 168, .42);
}
.site-header.nc-floating-header .nc-mega-item[data-nc-mega-tone="government"] {
  --nc-nav-accent: #2f6ea3;
  --nc-nav-hover-bg: #eaf2ff;
  --nc-nav-hover-ink: #28529a;
  --nc-nav-focus: rgba(47, 110, 163, .42);
}
.site-header.nc-floating-header .nc-mega-item[data-nc-mega-tone="companies"] {
  --nc-nav-accent: #c88710;
  --nc-nav-hover-bg: #fff5d7;
  --nc-nav-hover-ink: #6b4a00;
  --nc-nav-focus: rgba(200, 135, 16, .46);
}
.site-header.nc-floating-header .nc-mega-item[data-nc-mega-tone="help"] {
  --nc-nav-accent: #b94b83;
  --nc-nav-hover-bg: #fdecf5;
  --nc-nav-hover-ink: #7b2d58;
  --nc-nav-focus: rgba(185, 75, 131, .42);
}
.site-header.nc-floating-header .nav-link,
.site-header.nc-floating-header .nc-mega-toggle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .38rem;
  min-height: 44px;
  padding: .58rem .62rem;
  border: 0;
  border-radius: .65rem;
  color: var(--shell-muted);
  background: transparent;
  font-size: clamp(.72rem, .7vw, .83rem);
  font-weight: 760;
  line-height: 1.15;
  text-decoration: none;
  white-space: nowrap;
  transition: color .16s ease, background-color .16s ease, box-shadow .16s ease, transform .16s ease;
}
.site-header.nc-floating-header .nc-mega-home:hover,
.site-header.nc-floating-header .nc-mega-home:focus-visible,
.site-header.nc-floating-header .nc-mega-toggle:hover,
.site-header.nc-floating-header .nc-mega-toggle:focus-visible,
.site-header.nc-floating-header .nc-mega-item.is-open > .nc-mega-toggle {
  color: var(--nc-nav-hover-ink);
  background: var(--nc-nav-hover-bg);
  box-shadow: inset 0 -3px 0 var(--nc-nav-accent);
}
.site-header.nc-floating-header .nc-mega-home:focus-visible,
.site-header.nc-floating-header .nc-mega-item > .nc-mega-toggle:focus-visible {
  outline: 3px solid var(--nc-nav-focus);
  outline-offset: 2px;
}
.site-header.nc-floating-header .nc-mega-link:focus-visible,
.site-header.nc-floating-header .nc-mega-feature:focus-visible {
  outline: 3px solid rgba(0, 125, 120, .42);
  outline-offset: 2px;
}
.site-header.nc-floating-header .nc-mega-home.active,
.site-header.nc-floating-header .nc-mega-item.is-current > .nc-mega-toggle { color: var(--nc-nav-hover-ink); }
.site-header.nc-floating-header .nav-link > i:first-child,
.site-header.nc-floating-header .nc-nav-tip > i:first-child,
.site-header.nc-floating-header .nc-mega-link-icon,
.site-header.nc-floating-header .nc-mega-feature > i:first-child {
  transform-origin: center;
  transition: transform .2s ease, color .2s ease;
}
.site-header.nc-floating-header .nav-link:hover > i:first-child,
.site-header.nc-floating-header .nav-link:focus-visible > i:first-child,
.site-header.nc-floating-header .nc-nav-tip:hover > i:first-child,
.site-header.nc-floating-header .nc-nav-tip:focus-visible > i:first-child { transform: translateY(-2px) rotate(-4deg) scale(1.08); }
.site-header.nc-floating-header .nc-mega-link:hover .nc-mega-link-icon,
.site-header.nc-floating-header .nc-mega-link:focus-visible .nc-mega-link-icon { transform: translateY(-2px) rotate(3deg) scale(1.06); }
.site-header.nc-floating-header .nav-link.active::after,
.site-header.nc-floating-header .nc-mega-item.is-current > .nc-mega-toggle::after {
  position: absolute;
  right: .65rem;
  bottom: .28rem;
  left: .65rem;
  height: 2px;
  border-radius: 99px;
  background: var(--nc-nav-accent);
  content: "";
}
.site-header.nc-floating-header .nc-mega-section-icon {
  display: inline-block;
  width: 1rem;
  color: var(--nc-nav-accent, #1b7778);
  text-align: center;
}
.site-header.nc-floating-header .nc-mega-chevron { font-size: .58rem; transition: transform .16s ease; }
.site-header.nc-floating-header .nc-mega-toggle[aria-expanded="true"] > .nc-mega-chevron { transform: rotate(180deg); }

.site-header.nc-floating-header .nc-mega-panel[hidden] { display: none !important; }
.site-header.nc-floating-header .nc-mega-panel {
  position: absolute;
  top: calc(100% + .55rem);
  left: var(--nc-mega-panel-left, 0);
  z-index: 1070;
  display: grid;
  grid-template-columns: minmax(210px, .8fr) minmax(340px, 1.5fr);
  gap: 1.15rem;
  width: min(760px, calc(100vw - 2rem));
  max-height: min(72vh, 620px);
  padding: .8rem;
  border: 1px solid var(--shell-line);
  border-radius: 1.25rem;
  background: #fff;
  box-shadow: 0 24px 55px rgba(26, 65, 79, .2);
  overflow: auto;
  overscroll-behavior: contain;
}
.site-header.nc-floating-header .nc-mega-panel::before {
  position: absolute;
  top: -.5rem;
  left: var(--nc-mega-arrow-left, 2.6rem);
  width: 1rem;
  height: 1rem;
  border-top: 1px solid var(--shell-line);
  border-left: 1px solid var(--shell-line);
  background: #f1faf8;
  content: "";
  transform: rotate(45deg);
}
.nc-mega-panel-intro {
  position: relative;
  padding: 1.15rem;
  border-radius: .9rem;
  background: linear-gradient(145deg, #effaf8, #fff9e8);
}
.nc-mega-panel-icon {
  display: grid;
  place-items: center;
  width: 2.5rem;
  height: 2.5rem;
  margin-bottom: .85rem;
  border-radius: .72rem;
  color: #fff;
  background: var(--nc-shell-turquoise);
  box-shadow: 0 7px 15px rgba(29, 83, 91, .14);
}
.nc-mega-icon-coral { background: var(--nc-shell-coral); }
.nc-mega-icon-violet { background: var(--nc-shell-violet); }
.nc-mega-icon-blue { background: var(--nc-shell-petroleum); }
.nc-mega-icon-gold { color: #3e3624; background: var(--nc-shell-maize); }
.nc-mega-eyebrow { margin: 0 0 .4rem; color: var(--nc-shell-turquoise); font-size: .62rem; font-weight: 850; letter-spacing: .11em; text-transform: uppercase; }
.nc-mega-panel-intro h2 { margin: 0; color: var(--nc-shell-petroleum-dark); font-size: 1.1rem; font-weight: 850; line-height: 1.24; letter-spacing: -.02em; }
.nc-mega-panel-intro > p:not(.nc-mega-eyebrow) { margin: .6rem 0 0; color: var(--shell-muted); font-size: .75rem; line-height: 1.5; }
.nc-mega-feature {
  display: flex;
  align-items: center;
  gap: .62rem;
  margin-top: 1rem;
  padding: .72rem .76rem;
  border: 1px solid #efcd78;
  border-radius: .75rem;
  color: #55400d;
  background: #fff7db;
  text-decoration: none;
}
.nc-mega-feature:hover { color: #3d2e0b; background: #ffefba; }
.nc-mega-feature > i:first-child { color: #b77713; }
.nc-mega-feature > i:last-child { margin-left: auto; font-size: .68rem; }
.nc-mega-feature strong,
.nc-mega-feature small { display: block; }
.nc-mega-feature strong { font-size: .72rem; }
.nc-mega-feature small { margin-top: .12rem; color: #765d27; font-size: .61rem; line-height: 1.3; }
.nc-mega-links { display: grid; align-content: start; gap: .35rem; padding: .25rem; }
.nc-mega-link {
  display: grid;
  grid-template-columns: 2.5rem minmax(0, 1fr) auto;
  align-items: center;
  gap: .75rem;
  min-height: 4.45rem;
  padding: .65rem .72rem;
  border: 1px solid transparent;
  border-radius: .82rem;
  color: #253e4b;
  text-decoration: none;
}
.nc-mega-link:hover,
.nc-mega-link:focus-visible { border-color: #d4e9e5; color: #153d50; background: #f4faf8; }
.nc-mega-link.active { border-color: #bfe2dc; background: #eaf8f5; }
.nc-mega-link-icon { display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: .7rem; color: var(--nc-shell-turquoise); background: #e0f4f0; }
.nc-mega-link-mascot { overflow: hidden; border: 1px solid color-mix(in srgb, var(--nc-shell-maize) 70%, #fff); background: var(--nc-shell-maize); }
.nc-mega-link-mascot img { display: block; width: 100%; height: 100%; object-fit: contain; }
.nc-mega-link strong,
.nc-mega-link small { display: block; }
.nc-mega-link strong { font-size: .79rem; font-weight: 820; }
.nc-mega-link small { margin-top: .18rem; color: var(--shell-muted); font-size: .67rem; line-height: 1.35; }
.nc-mega-link > i:last-child { color: #8aa0a4; font-size: .65rem; }

.site-header.nc-floating-header .nc-mega-drawer-toggle {
  display: none;
  width: 2.75rem;
  height: 2.75rem;
  padding: .62rem;
  border: 1px solid #acd2cf;
  border-radius: .72rem;
  background: #f2faf8;
}
.site-header.nc-floating-header .nc-mega-drawer-toggle span { display: block; width: 100%; height: 2px; margin: 4px 0; border-radius: 99px; background: #205568; }
.site-header.nc-floating-header .nc-mega-drawer-toggle:focus-visible { outline: 3px solid rgba(0, 125, 120, .35); outline-offset: 2px; box-shadow: none; }

.site-header.nc-floating-header .nc-nav-donate {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .34rem;
  min-height: 2.65rem;
  padding: .46rem .7rem;
  border: 1px solid #efb8b2;
  border-radius: 999px;
  color: #81322f;
  background: #fff0ed;
  font-size: .76rem;
  font-weight: 850;
  text-decoration: none;
}
.site-header.nc-floating-header .nc-nav-donate:hover,
.site-header.nc-floating-header .nc-nav-donate:focus-visible { border-color: #df8885; color: #722522; background: #ffe2dd; }
.site-header.nc-floating-header .nc-nav-donate:focus-visible { outline: 3px solid rgba(170, 91, 97, .45); outline-offset: 2px; }
.site-header.nc-floating-header .nc-nav-donate.active { box-shadow: inset 0 0 0 2px #d36e6b; }
.site-header.nc-floating-header .nc-nav-donate .nc-donate-heart { color: #d8404a; animation: nc-donate-heartbeat 2.7s ease-in-out infinite; transform-origin: center; }
@keyframes nc-donate-heartbeat {
  0%, 68%, 100% { transform: scale(1); }
  75% { transform: scale(1.22); }
  82% { transform: scale(1); }
  89% { transform: scale(1.14); }
}
.site-header.nc-floating-header .btn-brand { background: var(--nc-shell-maize); border-color: #e6a127; color: #26343f; box-shadow: 0 4px 12px rgba(190, 123, 20, .16); }
.site-header.nc-floating-header .btn-brand:hover,
.site-header.nc-floating-header .btn-brand:focus-visible { background: #ffb728; border-color: #d78d16; color: #26343f; }
.site-header.nc-floating-header .btn-outline-brand { color: var(--nc-shell-petroleum); border-color: #8bc6c5; background: #fff; }
.site-header.nc-floating-header .btn-outline-brand:hover,
.site-header.nc-floating-header .btn-outline-brand:focus-visible { color: #fff; border-color: var(--nc-shell-petroleum); background: var(--nc-shell-petroleum); }
.site-header.nc-floating-header .public-nav-location { border-color: #f0d27b; background: #fff7df; }
.site-header.nc-floating-header .public-locate-button { color: #155464; background: #d5f6f0; }
.site-header.nc-floating-header .public-locate-button:hover,
.site-header.nc-floating-header .public-locate-button:focus-visible { color: #0d4454; background: #b4eee4; }
.site-header.nc-floating-header .public-location-label { color: #6b4d15; }
.site-header.nc-floating-header .landing-report-nav { color: #8e3d2d; border: 1px solid #f5bbab; background: #ffebe3; }
.site-header.nc-floating-header .landing-report-nav:hover,
.site-header.nc-floating-header .landing-report-nav:focus-visible { color: #762c21; border-color: #ed9b87; background: #ffdfd3; }
.site-header.nc-floating-header .public-member-button { color: #4d428d; border-color: #d9caff; background: #f4efff; }
.site-header.nc-floating-header .public-member-button:hover,
.site-header.nc-floating-header .public-member-button:focus-visible { color: #3c3372; border-color: #b8a5f0; background: #e9e0ff; }
.nc-guest-actions { display: flex; gap: .35rem; flex-wrap: wrap; }
.nc-session-unavailable {
  display: inline-flex;
  align-items: center;
  gap: .42rem;
  max-width: 12rem;
  padding: .48rem .65rem;
  border: 1px solid #d7e2e5;
  border-radius: .8rem;
  background: #f5f8f9;
  color: #536b72;
  font-size: .68rem;
  font-weight: 700;
  line-height: 1.2;
}
.nc-session-unavailable i { color: #927018; }

body:has(.nc-floating-report) { position: relative; }
.nc-floating-report {
  position: fixed;
  z-index: 1035;
  right: clamp(12px, 2.1vw, 30px);
  bottom: calc(18px + env(safe-area-inset-bottom));
  display: flex;
  align-items: center;
  gap: 8px;
  color: #223743;
  text-decoration: none;
  filter: drop-shadow(0 10px 17px rgba(26, 65, 75, .2));
}
.nc-floating-report:hover,
.nc-floating-report:focus-visible { color: #223743; text-decoration: none; }
.nc-floating-report:focus-visible { outline: 3px solid #077f88; outline-offset: 5px; border-radius: 16px; }
.nc-floating-report.nc-floating-report-docked { position: absolute; bottom: auto; }
.nc-floating-mascot {
  position: relative;
  display: grid;
  place-items: center;
  flex: 0 0 86px;
  width: 86px;
  height: 72px;
  transform-origin: bottom center;
  animation: nc-mascot-idle 3s ease-in-out infinite;
}
.nc-floating-mascot img { display: block; width: 68px; height: 68px; object-fit: contain; }
.nc-mascot-gesture-art { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; pointer-events: none; }
.nc-mascot-pose { opacity: 0; transition: opacity .18s ease; }
.nc-mascot-stick { stroke: #172d36; stroke-width: 2.4; stroke-linecap: round; stroke-linejoin: round; }
.nc-mascot-binocular-object > circle { fill: #fff9e8; }
.nc-mascot-binocular-object .nc-mascot-binocular-lens { fill: #7dd2cf; stroke-width: 1.5; }
.nc-mascot-note-paper { fill: #fff8df; }
.nc-floating-report.is-gesture-rest .nc-mascot-pose-rest,
.nc-floating-report.is-gesture-wave .nc-mascot-pose-wave,
.nc-floating-report.is-gesture-binoculars .nc-mascot-pose-binoculars,
.nc-floating-report.is-gesture-note .nc-mascot-pose-note { opacity: 1; }
.nc-floating-report.is-gesture-wave .nc-mascot-wave-arm { transform-origin: 82px 54px; animation: nc-mascot-hand-wave .55s ease-in-out 4 alternate; }
.nc-floating-report.is-gesture-binoculars .nc-mascot-binocular-object,
.nc-floating-report.is-gesture-note .nc-mascot-note-object { animation: nc-mascot-raise .48s ease-out both; }
.nc-floating-speech {
  position: relative;
  display: flex;
  align-items: center;
  min-height: 46px;
  padding: 10px 15px;
  border: 1px solid #e5ae2d;
  border-radius: 15px;
  background: #ffc340;
  color: #332b1d;
  font-size: .9rem;
  font-weight: 850;
  white-space: nowrap;
  animation: nc-speech-bob 3.5s ease-in-out infinite;
  transition: background .18s ease, transform .18s ease;
}
.nc-floating-speech::before {
  content: "";
  position: absolute;
  top: 50%;
  left: -6px;
  width: 11px;
  height: 11px;
  border-bottom: 1px solid #e5ae2d;
  border-left: 1px solid #e5ae2d;
  background: inherit;
  transform: translateY(-50%) rotate(45deg);
}
.nc-floating-report:hover .nc-floating-speech,
.nc-floating-report:focus-visible .nc-floating-speech { background: #ffb31e; }
@keyframes nc-mascot-idle { 0%, 100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes nc-mascot-hand-wave { from { transform: rotate(-13deg); } to { transform: rotate(15deg); } }
@keyframes nc-mascot-raise { from { transform: translateY(5px); } to { transform: translateY(0); } }
@keyframes nc-speech-bob { 0%, 82%, 100% { transform: translateY(0); } 90% { transform: translateY(-4px); } }
@media (max-width: 480px) {
  .nc-floating-report { right: 10px; bottom: calc(11px + env(safe-area-inset-bottom)); gap: 5px; }
  .nc-floating-mascot { width: 70px; height: 60px; flex-basis: 70px; }
  .nc-floating-mascot img { width: 54px; height: 54px; }
  .nc-floating-speech { min-height: 44px; font-size: .78rem; padding: 8px 11px; }
}
@media (prefers-reduced-motion: reduce) {
  .nc-floating-mascot, .nc-floating-speech { animation: none; }
  .nc-mascot-gesture-art g, .nc-mascot-gesture-art rect { animation: none !important; }
  .nc-mascot-pose { transition: none; }
  .nc-floating-speech { transition: none; }
}

.nc-site-footer {
  position: relative;
  display: block;
  width: 100%;
  margin-top: 2rem;
  padding: 0;
  border: 0;
  border-radius: 0;
  color: #eaf0ef;
  background:
    radial-gradient(circle at 10% 0, rgba(8, 184, 174, .2), transparent 24rem),
    radial-gradient(circle at 95% 80%, rgba(255, 194, 71, .14), transparent 24rem),
    var(--nc-shell-petroleum-dark);
  box-shadow: 0 -8px 30px rgba(34, 52, 58, .07);
  font-size: .9rem;
  overflow: hidden;
}
.nc-site-footer::before {
  position: absolute;
  inset: 0;
  background: url("/assets/images/nodo-civico-red-footer.svg") 50% 0 / min(112%, 1500px) auto no-repeat;
  content: "";
  opacity: .28;
  pointer-events: none;
  animation: nc-footer-network-drift 22s ease-in-out infinite alternate;
}
.nc-site-footer::after {
  position: absolute;
  inset: -35% -15%;
  background:
    radial-gradient(circle at 25% 45%, rgba(8, 184, 174, .16), transparent 20rem),
    radial-gradient(circle at 72% 55%, rgba(255, 194, 71, .12), transparent 22rem);
  content: "";
  opacity: .75;
  pointer-events: none;
  transform: translate3d(-3%, 0, 0) scale(1.02);
  animation: nc-footer-light-drift 16s ease-in-out infinite alternate;
}
.nc-site-footer > * { position: relative; z-index: 1; }
@keyframes nc-footer-network-drift {
  from { background-position: 47% 0; transform: scale(1); opacity: .22; }
  to { background-position: 54% 16px; transform: scale(1.035); opacity: .34; }
}
@keyframes nc-footer-light-drift {
  from { transform: translate3d(-3%, 0, 0) scale(1.02); }
  to { transform: translate3d(4%, -3%, 0) scale(1.08); }
}
.nc-site-footer .nc-footer-inner {
  display: grid;
  gap: clamp(24px, 3vw, 38px);
  max-width: 1500px;
  margin: 0 auto;
  padding: clamp(34px, 4vw, 56px) clamp(20px, 4vw, 56px) 30px;
}
.nc-site-footer a { color: #eaf0ef; text-decoration: none; }
.nc-site-footer a:hover,
.nc-site-footer a:focus-visible { color: #ffe09a; text-decoration: underline; text-underline-offset: 4px; }
.nc-site-footer a:focus-visible,
.nc-site-footer button:focus-visible { outline: 3px solid rgba(254, 196, 61, .78); outline-offset: 3px; }
.nc-footer-about {
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(150px, 190px);
  align-items: center;
  gap: clamp(24px, 4vw, 58px);
  padding: clamp(24px, 3vw, 34px);
  border: 1px solid rgba(186, 225, 222, .2);
  border-radius: 26px;
  background: linear-gradient(125deg, rgba(13, 93, 102, .55), rgba(24, 59, 87, .72));
  box-shadow: inset 0 1px rgba(255, 255, 255, .05), 0 18px 38px rgba(5, 28, 40, .13);
}
.nc-footer-about-copy { min-width: 0; }
.nc-footer-eyebrow {
  margin: 0 0 11px;
  color: #9fe9e2;
  font-size: .68rem;
  font-weight: 850;
  letter-spacing: .1em;
  line-height: 1.2;
  text-transform: uppercase;
}
.nc-footer-brand { display: inline-flex; align-items: center; gap: 14px; font-size: clamp(1.15rem, 2vw, 1.42rem); font-weight: 850; line-height: 1.15; }
.nc-footer-brand:hover,
.nc-footer-brand:focus-visible { text-decoration: none !important; }
.nc-footer-brand small { display: block; margin-top: 5px; color: #c8d9d7; font-size: .71rem; font-weight: 650; }
.nc-footer-mark { display: grid; place-items: center; width: 50px; height: 50px; flex: 0 0 50px; overflow: hidden; border: 2px solid var(--nc-shell-maize); border-radius: 16px; background: #fff; box-shadow: 0 7px 20px rgba(3, 26, 38, .18); }
.nc-footer-mark img { display: block; width: 100%; height: 100%; object-fit: cover; }
.nc-footer-lead { max-width: 650px; margin: 17px 0 0; color: #deebe9; font-size: clamp(.84rem, 1.2vw, .95rem); line-height: 1.65; }
.nc-footer-notices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; max-width: 790px; margin-top: 17px; }
.nc-footer-disclaimer,
.nc-footer-ai {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  min-width: 0;
  padding: 10px 12px;
  border: 1px solid rgba(190, 221, 218, .16);
  border-radius: 12px;
  color: #c7d9d6;
  background: rgba(12, 44, 61, .3);
  font-size: .69rem;
  line-height: 1.45;
}
.nc-footer-disclaimer i { margin-top: 2px; }
.nc-footer-ai > i { margin-top: 2px; color: #a8ded9; font-size: .9rem; }
.nc-footer-ai strong { display: block; color: #e6f0ee; font-size: .69rem; line-height: 1.3; }
.nc-footer-ai small { display: block; margin-top: 2px; color: #b9ccca; font-size: .64rem; line-height: 1.4; }
.nc-footer-primary-actions { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 18px; }
.nc-footer-action {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 40px;
  padding: 9px 15px;
  border: 1px solid rgba(255, 255, 255, .2);
  border-radius: 11px;
  font-size: .75rem;
  font-weight: 820;
  line-height: 1.2;
}
.nc-site-footer .nc-footer-action:hover,
.nc-site-footer .nc-footer-action:focus-visible { text-decoration: none; transform: translateY(-1px); }
.nc-site-footer .nc-footer-action--primary { border-color: #64d9d1; color: #073d43; background: #9ce9df; }
.nc-site-footer .nc-footer-action--primary:hover,
.nc-site-footer .nc-footer-action--primary:focus-visible { color: #052f34; background: #b7f1ea; }
.nc-site-footer .nc-footer-action--donate { border-color: rgba(255, 214, 143, .62); color: #fff4d1; background: rgba(201, 102, 71, .42); }
.nc-site-footer .nc-footer-action--donate:hover,
.nc-site-footer .nc-footer-action--donate:focus-visible { color: #fff; background: rgba(221, 114, 81, .62); }
.nc-footer-social { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 14px; }
.nc-footer-social a { display: inline-flex; align-items: center; gap: 6px; min-height: 32px; padding: 6px 9px; border-radius: 9px; color: #c9dcda; background: rgba(255, 255, 255, .055); font-size: .68rem; font-weight: 720; }
.nc-footer-social a:hover,
.nc-footer-social a:focus-visible { color: #fff1b8; background: rgba(255, 255, 255, .1); text-decoration: none; }
.nc-footer-mascot { position: relative; align-self: end; justify-self: center; text-align: center; }
.nc-footer-mascot span {
  position: relative;
  display: inline-block;
  margin: 0 0 7px 16px;
  padding: 7px 11px;
  border: 1px solid #e8bb4f;
  border-radius: 12px;
  color: #3d321d;
  background: #ffda77;
  box-shadow: 0 7px 18px rgba(3, 29, 40, .15);
  font-size: .66rem;
  font-weight: 850;
}
.nc-footer-mascot span::after { position: absolute; right: 18px; bottom: -5px; width: 9px; height: 9px; border-right: 1px solid #e8bb4f; border-bottom: 1px solid #e8bb4f; background: inherit; content: ""; transform: rotate(45deg); }
.nc-footer-mascot img { display: block; width: min(132px, 100%); height: auto; margin: 0 auto; filter: drop-shadow(0 13px 13px rgba(2, 27, 39, .26)); animation: nc-footer-nodo-float 5s ease-in-out infinite; }
@keyframes nc-footer-nodo-float { 0%, 100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-5px) rotate(1deg); } }

.nc-footer-directory { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 12px; }
.nc-footer-column {
  --nc-footer-section: #8be3dc;
  position: relative;
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 8px;
  min-width: 0;
  padding: 18px 17px 19px;
  border: 1px solid rgba(205, 228, 226, .15);
  border-radius: 16px;
  background: rgba(9, 42, 59, .35);
  overflow: hidden;
}
.nc-footer-column::before { position: absolute; top: 0; right: 0; left: 0; height: 3px; background: var(--nc-footer-section); content: ""; }
.nc-footer-column--explore { --nc-footer-section: #44d5ca; }
.nc-footer-column--about { --nc-footer-section: #f18a72; }
.nc-footer-column--community { --nc-footer-section: #a997ea; }
.nc-footer-column--government { --nc-footer-section: #83bff0; }
.nc-footer-column--help { --nc-footer-section: #ffd268; }
.nc-footer-column h2 { margin: 0 0 6px; color: #fff; font-size: .78rem; font-weight: 850; letter-spacing: .025em; line-height: 1.25; }
.nc-footer-column h2 i { width: 1.1em; margin-right: .42rem; color: var(--nc-footer-section); text-align: center; }
.nc-footer-column > a { position: relative; width: 100%; padding-right: 14px; color: #cad9d7; font-size: .75rem; font-weight: 620; line-height: 1.4; }
.nc-footer-column > a::after { position: absolute; top: .12em; right: 0; color: var(--nc-footer-section); content: "›"; font-size: 1rem; opacity: .68; transition: transform .16s ease, opacity .16s ease; }
.nc-footer-column > a:hover,
.nc-footer-column > a:focus-visible { color: #fff; }
.nc-footer-column > a:hover::after,
.nc-footer-column > a:focus-visible::after { opacity: 1; transform: translateX(2px); }
.nc-site-footer .nc-footer-bottom { display: flex; justify-content: space-between; gap: 12px 20px; max-width: 1500px; margin: 0 auto; padding: 18px clamp(22px, 4vw, 56px) 25px; border-top: 1px solid rgba(222, 235, 231, .16); color: #becdca; font-size: .72rem; }
.nc-footer-bottom i { margin-right: 6px; }
.nc-footer-bottom-actions { display: flex; align-items: center; justify-content: flex-end; gap: 10px 18px; flex-wrap: wrap; }
.nc-footer-bottom .nc-footer-privacy-settings {
  display: inline-flex;
  align-items: center;
  width: auto;
  padding: .35rem .65rem;
  border: 1px solid rgba(145, 221, 216, .5);
  border-radius: 999px;
  color: #eaf0ef;
  background: rgba(36, 90, 106, .7);
  font-size: .72rem;
  font-weight: 750;
  line-height: 1.25;
}
.nc-footer-bottom .nc-footer-privacy-settings:hover,
.nc-footer-bottom .nc-footer-privacy-settings:focus-visible { border-color: #ffe09a; background: #245a6a; }
.nc-footer-bottom .nc-footer-emergency { color: #ffe3a0; font-weight: 760; }

/* Fondo claro para que la silueta turquesa de Nodo conserve contraste. */
.nc-site-footer {
  color: #173f4a;
  background:
    radial-gradient(circle at 8% 4%, rgba(8, 184, 174, .15), transparent 24rem),
    radial-gradient(circle at 94% 78%, rgba(255, 194, 71, .2), transparent 26rem),
    linear-gradient(155deg, #f3fbf8 0%, #fffaf0 58%, #edf8f6 100%);
  box-shadow: 0 -8px 30px rgba(34, 82, 84, .08);
}
.nc-site-footer::before { opacity: .11; filter: saturate(.7); mix-blend-mode: multiply; }
.nc-site-footer::after {
  background:
    radial-gradient(circle at 25% 45%, rgba(8, 184, 174, .12), transparent 20rem),
    radial-gradient(circle at 72% 55%, rgba(255, 194, 71, .15), transparent 22rem);
  opacity: .72;
}
.nc-site-footer a { color: #214f59; }
.nc-site-footer a:hover,
.nc-site-footer a:focus-visible { color: #075f68; }
.nc-footer-about {
  border-color: #c9e4df;
  background: linear-gradient(125deg, rgba(255,255,255,.9), rgba(228,247,242,.92));
  box-shadow: inset 0 1px #fff, 0 18px 38px rgba(30, 90, 87, .09);
}
.nc-footer-eyebrow { color: #087c78; }
.nc-footer-brand small { color: #557477; }
.nc-footer-lead { color: #355f65; }
.nc-footer-disclaimer,
.nc-footer-ai { border-color: #d3e8e3; color: #466c70; background: rgba(255,255,255,.7); }
.nc-footer-ai > i { color: #168b86; }
.nc-footer-ai strong { color: #234f56; }
.nc-footer-ai small { color: #607d80; }
.nc-site-footer .nc-footer-action--donate { border-color: #e6aa65; color: #71391f; background: #ffe1b4; }
.nc-site-footer .nc-footer-action--donate:hover,
.nc-site-footer .nc-footer-action--donate:focus-visible { color: #592b18; background: #ffd393; }
.nc-footer-social a { color: #315f65; background: rgba(255,255,255,.72); box-shadow: inset 0 0 0 1px #d8e8e5; }
.nc-footer-social a:hover,
.nc-footer-social a:focus-visible { color: #075f68; background: #fff; }
.nc-footer-mascot img { filter: drop-shadow(0 13px 13px rgba(16, 91, 88, .18)); }
.nc-footer-directory { grid-template-columns: repeat(6, minmax(0, 1fr)); }
.nc-footer-column { border-color: #d6e8e4; background: rgba(255,255,255,.76); box-shadow: 0 8px 24px rgba(28, 80, 78, .055); }
.nc-footer-column--companies { --nc-footer-section: #d89432; }
.nc-footer-column h2 { color: #214952; }
.nc-footer-column > a { color: #4e6d71; }
.nc-footer-column > a:hover,
.nc-footer-column > a:focus-visible { color: #075f68; }
.nc-site-footer .nc-footer-bottom { border-top-color: #cfe3df; color: #587477; }
.nc-footer-bottom .nc-footer-privacy-settings { border-color: #9bcfc7; color: #285d61; background: rgba(255,255,255,.72); }
.nc-footer-bottom .nc-footer-privacy-settings:hover,
.nc-footer-bottom .nc-footer-privacy-settings:focus-visible { border-color: #c98b24; background: #fff8e8; }
.nc-footer-bottom .nc-footer-emergency { color: #8d4c2b; }
body[data-map-guest="true"] .nc-site-footer,
body[data-portal-page="map"] .nc-site-footer { margin-top: 0; }

/* El panel usa solo el menú lateral; esta barra de utilidad sigue en el flujo. */
.portal-topbar {
  position: relative;
  top: auto;
  z-index: 1;
  height: 75px;
  min-height: 0;
  margin: 0;
  padding: 0 clamp(20px, 3vw, 52px);
  gap: 18px;
  border: 0;
  border-top: 3px solid #fec43d;
  border-bottom: 1px solid #dce9ea;
  border-radius: 0;
  background: #fff;
  box-shadow: 0 2px 12px rgba(29, 78, 100, .04);
  backdrop-filter: none;
  -webkit-backdrop-filter: none;
}
.portal-topbar-user { flex: none; color: #293941; }
.portal-topbar-user:hover,
.portal-topbar-user:focus-visible { color: #293941; }
.portal-topbar .portal-user-initial { background: #d7f7f3; color: #075d69; }
.portal-topbar .portal-topbar-location { margin-left: 0; }

@media (max-width: 930px) {
  .portal-topbar { height: 62px; padding: 0 15px; }
  .portal-topbar-user { margin-left: auto; }
}
@media (max-width: 430px) {
  .portal-topbar { gap: 7px; }
  .portal-topbar .public-nav-location { padding: 2px; }
  .portal-topbar .public-locate-button { font-size: 0; }
  .portal-topbar .public-locate-button i { font-size: .95rem; }
}

#publicAreaModal .modal-content { overflow: hidden; border: 1px solid #d9e1df; border-radius: 18px; box-shadow: 0 20px 60px rgba(31, 47, 51, .18); }
#publicAreaModal .modal-header { background: linear-gradient(95deg, #e8faf6, #fff2c9); border-bottom-color: #d4e9df; }
#publicAreaModal .modal-footer { border-top-color: #dfe7e2; }
#publicAreaModal .btn-primary { color: #26343f; border-color: #e5a126; background: #fec43d; }
#publicAreaModal .btn-primary:hover,
#publicAreaModal .btn-primary:focus-visible { color: #26343f; border-color: #d68b13; background: #ffb728; }
#publicAreaModal .btn-outline-primary { color: #365c59; border-color: #9fb9ac; background: #f3f7f1; }
#publicAreaModal .btn-outline-primary:hover,
#publicAreaModal .btn-outline-primary:focus-visible { color: #294e4a; border-color: #88a899; background: #e2eee4; }
#publicAreaModal .form-select:focus { border-color: #078c87; box-shadow: 0 0 0 .2rem rgba(8, 184, 174, .22); }
#publicAreaModal a { color: #355a61; }

.site-header .navbar-collapse { gap: 0; }
.site-header .nav-link { white-space: nowrap; }

.public-nav-actions {
  position: relative;
  z-index: 2;
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: .5rem;
  overflow: visible;
}

@media (min-width: 1200px) {
  .site-header.nc-floating-header .nc-mega-collapse { display: flex !important; }
  .site-header.nc-floating-header .public-nav-actions.nc-nav-divider {
    flex: none;
    flex-wrap: nowrap;
    gap: .35rem;
    margin-left: auto;
    border-left: 1px solid #d6e4e7;
    padding-left: .7rem;
  }
  .site-header.nc-floating-header .public-nav-location {
    position: relative;
    flex: none;
    gap: 0;
    padding: 0;
    border: 0;
    background: transparent;
  }
  .site-header.nc-floating-header .public-locate-button {
    display: grid;
    place-items: center;
    width: 2.65rem;
    min-width: 2.65rem;
    height: 2.65rem;
    padding: 0;
    border: 1px solid #b7dfd9;
    border-radius: 50%;
  }
  .site-header.nc-floating-header .public-locate-button .nc-nav-label,
  .site-header.nc-floating-header .public-location-label {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
  }
  .site-header.nc-floating-header .nc-guest-actions,
  .site-header.nc-floating-header .member-actions { flex-wrap: nowrap; overflow: visible; }
  .site-header.nc-floating-header .nc-guest-actions .btn,
  .site-header.nc-floating-header .public-member-button { min-height: 2.65rem; padding: .45rem .62rem; font-size: .72rem; }
  .site-header.nc-floating-header .public-member-button .member-name { max-width: 7.5rem; overflow: hidden; text-overflow: ellipsis; }
  .site-header.nc-floating-header .btn-brand .nc-nav-label,
  .site-header.nc-floating-header .btn-outline-brand .nc-nav-label { display: none; }
  .site-header.nc-floating-header .btn-brand.nc-nav-tip,
  .site-header.nc-floating-header .btn-outline-brand.nc-nav-tip { width: 2.65rem; min-width: 2.65rem; padding: .45rem; }
  .site-header.nc-floating-header .public-member-button .nc-nav-label { display: inline; }
  .site-header.nc-floating-header .nc-nav-tip { position: relative; }
  .site-header.nc-floating-header .nc-nav-tip[data-nav-tooltip]::before {
    position: absolute;
    top: calc(100% + .55rem);
    right: 0;
    z-index: 2000;
    width: max-content;
    max-width: min(18rem, calc(100vw - 2rem));
    padding: .38rem .58rem;
    border-radius: .5rem;
    color: #fff;
    background: #193b52;
    box-shadow: 0 7px 18px rgba(18, 49, 69, .2);
    content: attr(data-nav-tooltip);
    font-size: .7rem;
    font-weight: 680;
    line-height: 1.3;
    text-align: center;
    pointer-events: none;
    opacity: 0;
    visibility: hidden;
    transform: translateY(-.2rem);
    transition: opacity .12s ease, transform .12s ease, visibility .12s ease;
  }
  .site-header.nc-floating-header .nc-nav-tip[data-nav-tooltip]:hover::before,
  .site-header.nc-floating-header .nc-nav-tip[data-nav-tooltip]:focus-visible::before {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
  }
}

.public-nav-location {
  display: flex;
  align-items: center;
  gap: .45rem;
  padding: .3rem .48rem .3rem .3rem;
  border: 1px solid #f1dfaa;
  border-radius: .82rem;
  background: #fff8e5;
}

.public-locate-button {
  flex: none;
  padding: .42rem .68rem;
  border: 0;
  border-radius: .56rem;
  background: #e6f5f0;
  color: #116b64;
  font-size: .78rem;
  font-weight: 850;
  white-space: nowrap;
}

.public-locate-button:hover,
.public-locate-button:focus-visible {
  background: #c9ece1;
  color: #09544f;
}

.public-locate-button:disabled { opacity: .7; }
.public-locate-button.is-locating i { animation: public-locate-pulse .9s ease-in-out infinite alternate; }

.public-location-label {
  display: inline-block;
  max-width: 10.5rem;
  color: #7a5c1c;
  font-size: .68rem;
  font-weight: 750;
  line-height: 1.2;
  overflow-wrap: anywhere;
}

.public-location-label.is-error { color: #a13e36; }

.site-header .member-actions { flex-wrap: wrap; }
.public-member-button {
  display: inline-flex;
  align-items: center;
  gap: .3rem;
  min-height: 2.5rem;
  border: 1px solid #d9d4f3;
  border-radius: .68rem;
  background: #f1effc;
  color: #454390;
  font-size: .78rem;
  font-weight: 850;
  white-space: nowrap;
}
.public-member-button:hover,
.public-member-button:focus-visible { border-color: #aba5e3; background: #e6e3fa; color: #37357a; }
.public-member-button .member-name { max-width: 12rem; color: inherit; font-size: inherit; }
.public-member-menu { min-width: 11rem; padding: .35rem; border-color: #e3e4f2; border-radius: .75rem; box-shadow: 0 14px 30px #1c365226; }
.public-member-menu .dropdown-item { display: flex; align-items: center; gap: .4rem; padding: .55rem .7rem; border-radius: .42rem; font-size: .8rem; font-weight: 750; }
.public-member-menu .dropdown-item i { width: 1.1rem; color: #6468ad; text-align: center; }
.site-header .landing-report-nav {
  border-color: #ffd5c5;
  background: #ffe8dc;
  color: #923c32;
  font-weight: 800;
  white-space: nowrap;
}
.site-header .landing-report-nav:hover,
.site-header .landing-report-nav:focus-visible { border-color: #f5ae9e; background: #ffd9c8; color: #772b26; }
.map-section { scroll-margin-top: 5rem; }
.portal-topbar-location { min-width: 0; margin-left: auto; }
.portal-topbar-location .public-location-label { max-width: 12rem; }

@keyframes public-locate-pulse {
  from { opacity: .45; transform: scale(.88); }
  to { opacity: 1; transform: scale(1.13); }
}

@media (max-width: 1199.98px) {
  .site-header.nc-floating-header .nc-mega-navbar,
  .site-header.nc-floating-header .nc-mega-container { min-height: 68px; }
  .site-header.nc-floating-header .nc-mega-container { flex-wrap: wrap; padding-right: 1rem; padding-left: 1rem; }
  .site-header.nc-floating-header .navbar-brand img { width: 136px; }
  .site-header.nc-floating-header .nc-mega-drawer-toggle { display: block; margin-left: auto; }
  .site-header.nc-floating-header .nc-mega-drawer-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(6px) rotate(45deg); }
  .site-header.nc-floating-header .nc-mega-drawer-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
  .site-header.nc-floating-header .nc-mega-drawer-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-6px) rotate(-45deg); }
  .site-header.nc-floating-header .nc-mega-drawer-toggle span { transition: transform .16s ease, opacity .16s ease; }
  .site-header.nc-floating-header .nc-mega-collapse {
    flex-basis: 100%;
    width: 100%;
    padding: .55rem 0 1rem;
    border-top: 1px solid #deebea;
  }
  .site-header.nc-floating-header .nc-mega-collapse.show,
  .site-header.nc-floating-header .nc-mega-collapse.collapsing {
    max-height: calc(100dvh - 68px);
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
  }
  .site-header.nc-floating-header .nc-mega-primary { align-items: stretch; gap: .15rem; width: 100%; margin: 0; }
  .site-header.nc-floating-header .nc-mega-item { position: relative; }
  .site-header.nc-floating-header .nav-link,
  .site-header.nc-floating-header .nc-mega-toggle {
    justify-content: flex-start;
    width: 100%;
    min-height: 48px;
    padding: .72rem .75rem;
    font-size: .9rem;
    text-align: left;
  }
  .site-header.nc-floating-header .nc-mega-home { gap: .6rem; }
  .site-header.nc-floating-header .nc-mega-toggle > .nc-mega-chevron { margin-left: auto; }
  .site-header.nc-floating-header .nav-link.active::after,
  .site-header.nc-floating-header .nc-mega-item.is-current > .nc-mega-toggle::after {
    top: .72rem;
    right: auto;
    bottom: .72rem;
    left: .16rem;
    width: 3px;
    height: auto;
  }
  .site-header.nc-floating-header .nc-mega-panel {
    position: static;
    grid-template-columns: minmax(190px, .75fr) minmax(0, 1.5fr);
    width: 100%;
    max-height: none;
    margin: .12rem 0 .6rem;
    padding: .65rem;
    border-radius: .95rem;
    box-shadow: inset 0 0 0 1px rgba(221, 236, 233, .35);
    overflow: visible;
  }
  .site-header.nc-floating-header .nc-mega-panel::before { display: none; }
  .site-header.nc-floating-header .nc-mega-panel-intro { padding: 1rem; }
  .site-header.nc-floating-header .nc-mega-links { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .site-header.nc-floating-header .nc-mega-link { grid-template-columns: 2.35rem minmax(0, 1fr); min-height: 4.25rem; }
  .site-header.nc-floating-header .nc-mega-link > i:last-child { display: none; }
  .site-header.nc-floating-header .nc-mega-link-icon { width: 2.35rem; height: 2.35rem; }
  .site-header.nc-floating-header .public-nav-actions.nc-nav-divider {
    align-items: center;
    width: 100%;
    margin-top: .35rem;
    padding-top: .8rem;
    border-top: 1px solid #d6e4e7;
  }
  .site-header.nc-floating-header .public-nav-location { max-width: 100%; }
  .site-header.nc-floating-header .public-location-label { max-width: min(17rem, 45vw); }
}

@media (max-width: 1100px) {
  .nc-footer-directory { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 991px) {
  .nc-footer-about { grid-template-columns: minmax(0, 1fr) 145px; }
  .nc-footer-directory { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 767.98px) {
  .site-header.nc-floating-header .nc-mega-panel { grid-template-columns: 1fr; gap: .45rem; }
  .site-header.nc-floating-header .nc-mega-panel-intro { padding: .9rem; }
  .site-header.nc-floating-header .nc-mega-panel-icon { width: 2.25rem; height: 2.25rem; margin-bottom: .65rem; }
  .site-header.nc-floating-header .nc-mega-panel-intro h2 { font-size: 1rem; }
  .site-header.nc-floating-header .nc-mega-panel-intro > p:not(.nc-mega-eyebrow) { font-size: .72rem; }
  .nc-footer-about { grid-template-columns: 1fr; }
  .nc-footer-notices { grid-template-columns: 1fr; }
  .nc-footer-mascot { display: flex; flex-direction: row-reverse; align-items: center; justify-self: start; gap: 10px; }
  .nc-footer-mascot span { margin: 0; }
  .nc-footer-mascot span::after { top: 50%; right: auto; bottom: auto; left: -5px; border: 0; border-bottom: 1px solid #e8bb4f; border-left: 1px solid #e8bb4f; transform: translateY(-50%) rotate(45deg); }
  .nc-footer-mascot img { width: 88px; margin: 0; }
}

@media (max-width: 600px) {
  .site-header.nc-floating-header .nc-mega-links { grid-template-columns: 1fr; }
  .site-header.nc-floating-header .public-nav-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch; }
  .site-header.nc-floating-header .nc-nav-donate { width: 100%; border-radius: .72rem; }
  .site-header.nc-floating-header .public-nav-location { justify-content: center; min-width: 0; padding: .3rem; }
  .site-header.nc-floating-header .public-locate-button { justify-content: center; width: 100%; }
  .site-header.nc-floating-header .public-location-label { display: none; }
  .site-header.nc-floating-header .nc-guest-actions,
  .site-header.nc-floating-header .member-actions,
  .site-header.nc-floating-header .nc-session-unavailable { grid-column: 1 / -1; width: 100%; max-width: none; }
  .site-header.nc-floating-header .nc-guest-actions > .btn { flex: 1; }
  .site-header.nc-floating-header .member-actions > .dropdown,
  .site-header.nc-floating-header .public-member-button { width: 100%; }
  .public-nav-actions > .landing-report-nav { align-self: stretch; }
  .nc-site-footer { border-radius: 0; }
  .nc-site-footer .nc-footer-inner { gap: 22px; padding: 30px 18px 24px; }
  .nc-footer-about { padding: 22px 19px; border-radius: 20px; }
  .nc-footer-directory { gap: 10px; }
  .nc-footer-column { padding: 17px 15px; }
  .nc-site-footer .nc-footer-bottom { display: grid; padding: 18px 22px 25px; }
  .nc-footer-bottom-actions { justify-content: flex-start; }
}

@media (max-width: 430px) {
  .nc-footer-directory { grid-template-columns: 1fr; }
  .nc-footer-primary-actions { display: grid; grid-template-columns: 1fr; }
  .nc-footer-action { width: 100%; }
  .nc-footer-social a span { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; border: 0; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; }
  .nc-footer-social a { justify-content: center; width: 34px; padding: 6px; }
}

@media (max-width: 700px) {
  .portal-topbar-location { margin-left: auto; }
  .portal-topbar-location .public-location-label { display: none; }
  .portal-topbar-location .public-locate-button { padding: .4rem .55rem; }
}

@media (prefers-reduced-motion: reduce) {
  .public-locate-button.is-locating i { animation: none; }
  .site-header.nc-floating-header .nc-nav-donate .nc-donate-heart { animation: none; }
  .site-header.nc-floating-header .nc-mega-chevron,
  .site-header.nc-floating-header .nc-mega-drawer-toggle span,
  .site-header.nc-floating-header .nav-link > i:first-child,
  .site-header.nc-floating-header .nc-nav-tip > i:first-child,
  .site-header.nc-floating-header .nc-mega-link-icon,
  .site-header.nc-floating-header .nc-mega-feature > i:first-child { transition: none; transform: none; }
  .nc-footer-mascot img { animation: none; }
  .nc-footer-action,
  .nc-footer-column > a::after { transition: none; }
  .nc-site-footer::before,
  .nc-site-footer::after { animation: none; }
}

.site-header.nc-floating-header .nc-nav-tip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .35rem;
}
.site-header.nc-floating-header .nc-nav-tip i { flex: none; }
