#component-footer{
  --lsa-blue:#003F87;
  --lsa-soft:#79A6DA;
  --lsa-bg:#F3F8F0;
  --lsa-line:#E6E6E6;
  --lsa-ink:#1B1B1B;
  --lsa-muted:#333333;
  --white:#fff;
  --footer-h:clamp(300px,34vw,500px);
  --pad:clamp(14px,2.1vw,32px);
  --gap:clamp(12px,1.8vw,28px);
  --radius:clamp(20px,3vw,42px);
  --spring:cubic-bezier(.18,.9,.25,1.12);
}
#component-footer *{box-sizing:border-box}
#component-footer,#component-footer{
  width:100%;
  min-width:300px;
  min-height:100%;
  margin:0;
  font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  color:var(--lsa-ink);
  background:transparent;
}
#component-footer{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
}
#component-footer button,#component-footer input{
  font:inherit;
}
#component-footer button,#component-footer a,#component-footer input{
  touch-action:manipulation;
}
#component-footer a{
  color:inherit;
}
#component-footer .lsa-footer{
  position:relative;
  isolation:isolate;
  width:100%;
  min-height:min(var(--footer-h),100svh);
  container:lsa-footer / inline-size;
  overflow:hidden;
  background:
    linear-gradient(90deg,var(--lsa-bg) 0%,var(--lsa-bg) 61%,var(--lsa-blue) 61%,var(--lsa-blue) 100%);
  color:var(--lsa-ink);
}
#component-footer .lsa-footer::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(90deg,rgba(243,248,240,.96),rgba(243,248,240,.88) 45%,rgba(0,63,135,.03) 56%,rgba(0,63,135,.2) 62%,rgba(0,63,135,.02) 100%);
  pointer-events:none;
}
#component-footer .lsa-footer::after{
  content:"";
  position:absolute;
  inset:-28%;
  z-index:-1;
  opacity:0;
  pointer-events:none;
  background:
    radial-gradient(circle at 18% 78%,rgba(121,166,218,.86),transparent 24%),
    radial-gradient(circle at 78% 18%,rgba(0,148,196,.72),transparent 28%),
    radial-gradient(circle at 63% 88%,rgba(0,63,135,.76),transparent 26%),
    radial-gradient(circle at 29% 22%,rgba(18,222,227,.46),transparent 24%);
  filter:blur(42px) saturate(140%);
  transform:scale(.92) rotate(0deg);
  transition:opacity 360ms ease, transform 900ms var(--spring);
}
#component-footer .lsa-footer.search-open{
  background:#061522;
}
#component-footer .lsa-footer.search-open::before{
  z-index:0;
  background:
    linear-gradient(135deg,rgba(2,10,20,.88),rgba(0,34,73,.76)),
    radial-gradient(circle at 50% 112%,rgba(121,166,218,.34),transparent 42%);
}
#component-footer .lsa-footer.search-open::after{
  z-index:0;
  opacity:1;
  transform:scale(1) rotate(8deg);
  animation:footer-lavaDrift 8s ease-in-out infinite alternate;
}
#component-footer .lsa-footer.search-open.search-committing::after{
  animation:footer-lavaDrift 1.7s ease-in-out infinite alternate;
}
#component-footer .lsa-footer.search-open.search-pulse::after{
  animation:footer-lavaDrift 3.2s ease-in-out infinite alternate;
}
@keyframes footer-lavaDrift{
  0%{
    transform:translate3d(-2%,1%,0) scale(1) rotate(0deg);
  }
  50%{
    transform:translate3d(3%,-2%,0) scale(1.07) rotate(9deg);
  }
  100%{
    transform:translate3d(-1%,-3%,0) scale(1.03) rotate(-7deg);
  }
}
#component-footer .footer-layout{
  transition:opacity 260ms ease, transform 460ms var(--spring), filter 360ms ease;
}
#component-footer .lsa-footer.search-open .footer-layout{
  opacity:0;
  pointer-events:none;
  transform:scale(.985);
  filter:blur(8px);
}
#component-footer .lsa-footer.search-open .footer-credit{
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(8px) scale(.98);
}
#component-footer .footer-layout{
  position:relative;
  display:grid;
  grid-template-columns:minmax(340px,1.08fr) minmax(170px,.46fr) minmax(300px,.78fr);
  align-items:center;
  gap:var(--gap);
  width:100%;
  min-height:min(var(--footer-h),100svh);
  padding:var(--pad);
}
#component-footer .contact-block{
  min-width:0;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  justify-content:center;
  padding-bottom:clamp(48px,7vh,72px);
}
#component-footer .school-title{
  margin:0 0 clamp(12px,1.6vw,20px);
  color:var(--lsa-blue);
  font-size:clamp(24px,4vw,72px);
  line-height:.95;
  font-weight:900;
  letter-spacing:0;
  white-space:nowrap;
  word-break:keep-all;
}
#component-footer .contact-list{
  display:grid;
  gap:clamp(6px,1vw,12px);
  max-width:620px;
}
#component-footer .contact-item{
  display:grid;
  gap:6px;
  color:var(--lsa-muted);
  font-size:clamp(14px,1.45vw,28px);
  line-height:1.24;
  font-weight:500;
  text-decoration:none;
}
#component-footer .contact-trigger{
  width:100%;
  display:grid;
  justify-items:start;
  gap:1px;
  padding:0;
  border:0;
  border-radius:18px;
  color:inherit;
  background:transparent;
  text-align:left;
  text-decoration:none;
  cursor:pointer;
  -webkit-tap-highlight-color:transparent;
  transition:background 180ms ease, box-shadow 180ms ease, transform 180ms var(--spring);
}
#component-footer .contact-trigger:focus-visible,#component-footer .detail-pill:focus-visible,#component-footer .map-btn:focus-visible,#component-footer .result-card:focus-visible{
  outline:3px solid rgba(121,166,218,.72);
  outline-offset:3px;
}
@media (hover:hover){#component-footer .contact-trigger:hover .contact-summary{
    color:var(--lsa-blue);
  }}
#component-footer .contact-summary{
  color:var(--lsa-muted);
}
#component-footer .contact-label{
  color:var(--lsa-soft);
  font-size:clamp(17px,1.75vw,33px);
  line-height:1.05;
  font-weight:800;
}
#component-footer .contact-detail{
  display:none;
  position:fixed;
  z-index:170;
  width:min(440px,calc(100vw - 20px));
  max-height:calc(100svh - 92px);
  padding:14px;
  overflow:auto;
  border:1px solid rgba(255,255,255,.38);
  border-radius:22px;
  color:rgba(27,27,27,.78);
  font-size:clamp(13px,1.1vw,17px);
  line-height:1.4;
  background:linear-gradient(135deg,rgba(255,255,255,.72),rgba(121,166,218,.32));
  box-shadow:0 30px 90px rgba(0,0,0,.26),inset 0 1px 0 rgba(255,255,255,.72);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
}
#component-footer .contact-address .contact-detail{
  display:none;
}
#component-footer .info-item.open .contact-detail{
  display:block;
  animation:footer-panelPop 320ms var(--spring);
}
#component-footer .contact-detail strong{
  color:var(--lsa-blue);
  font-size:1.02em;
}
#component-footer .phone-trigger .contact-summary{
  display:block;
  width:auto;
  max-width:100%;
  padding:0;
  margin-top:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
#component-footer .detail-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
#component-footer .detail-pill{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:7px;
  padding:8px 12px;
  border:0;
  border-radius:999px;
  color:var(--lsa-blue);
  background:rgba(255,255,255,.72);
  box-shadow:0 10px 24px rgba(0,63,135,.12);
  font-size:12px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}
#component-footer .detail-pill.primary{
  color:#fff;
  background:linear-gradient(135deg,var(--lsa-soft),var(--lsa-blue));
}
#component-footer .detail-pill.map-pill{
  color:var(--lsa-blue);
  background:rgba(255,255,255,.68);
  box-shadow:
    0 8px 18px rgba(0,63,135,.1),
    inset 0 1px 0 rgba(255,255,255,.7);
}
#component-footer .detail-pill svg{
  width:15px;
  height:15px;
}
#component-footer .photo-medallion{
  position:relative;
  z-index:2;
  width:min(28vw,320px);
  aspect-ratio:1;
  justify-self:center;
  border-radius:999px;
  overflow:hidden;
  background:#dfe8f6;
  box-shadow:
    0 28px 70px rgba(0,0,0,.18),
    0 0 0 clamp(8px,1.2vw,16px) rgba(243,248,240,.38);
}
#component-footer .photo-medallion img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
#component-footer .action-panel{
  position:relative;
  z-index:4;
  align-self:stretch;
  min-width:0;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  gap:clamp(16px,3vw,52px);
  padding:clamp(14px,2vw,32px) 0 clamp(58px,8vh,86px) clamp(36px,4vw,74px);
}
#component-footer .org-logo{
  position:absolute;
  top:clamp(8px,1.6vw,22px);
  right:clamp(8px,1.9vw,30px);
  width:clamp(130px,18vw,260px);
  height:clamp(48px,6.5vw,92px);
  display:grid;
  place-items:center;
  border:0;
  border-radius:0;
  padding:0;
  background:transparent;
  pointer-events:none;
}
#component-footer .org-logo img{
  max-width:100%;
  max-height:100%;
  object-fit:contain;
}
#component-footer .action-stack{
  width:min(100%,380px);
  display:grid;
  gap:clamp(12px,2vw,24px);
  margin-top:clamp(46px,7vw,96px);
  transition:opacity 220ms ease, transform 300ms var(--spring);
}
#component-footer .footer-credit{
  max-width:420px;
  margin:clamp(-8px,-.8vw,-2px) auto 0;
  color:rgba(255,255,255,.78);
  font-size:clamp(10px,.78vw,13px);
  font-weight:500;
  line-height:1.35;
  text-align:center;
  text-wrap:balance;
  text-shadow:0 8px 20px rgba(0,0,0,.2);
  transition:opacity 220ms ease, transform 300ms var(--spring);
}
#component-footer .footer-credit a{
  color:#fff;
  font-weight:800;
  text-decoration:underline;
  text-decoration-thickness:1px;
  text-underline-offset:3px;
}
#component-footer .spring-btn{
  position:relative;
  min-height:clamp(56px,6.7vw,96px);
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  padding:clamp(12px,1.5vw,18px) clamp(20px,3.4vw,48px);
  border:0;
  border-radius:999px;
  cursor:pointer;
  color:var(--lsa-muted);
  background:rgba(121,166,218,.94);
  box-shadow:
    0 16px 34px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.34);
  font-size:clamp(16px,1.55vw,25px);
  line-height:1.1;
  font-weight:500;
  text-align:center;
  text-decoration:none;
  will-change:transform;
  -webkit-tap-highlight-color:transparent;
}
#component-footer .spring-btn.compact{
  min-height:44px;
  padding:10px 16px;
  color:#fff;
  background:linear-gradient(135deg,var(--lsa-soft),var(--lsa-blue));
  font-size:13px;
  font-weight:800;
  box-shadow:0 12px 26px rgba(0,63,135,.24);
}
#component-footer .spring-btn::after{
  content:"";
  position:absolute;
  inset:-2px;
  z-index:-1;
  border-radius:inherit;
  background:inherit;
  opacity:0;
  filter:blur(12px);
  transition:opacity .25s ease;
}
#component-footer .spring-btn:hover::after{
  opacity:.45;
}
#component-footer .spring-btn svg{
  width:17px;
  height:17px;
  flex:0 0 auto;
}
#component-footer .instagram-btn svg{
  width:20px;
  height:20px;
  color:var(--lsa-blue);
}
#component-footer .bottom-bar{
  position:absolute;
  left:var(--pad);
  right:var(--pad);
  bottom:clamp(10px,1.5vw,18px);
  z-index:80;
  display:grid;
  grid-template-columns:minmax(220px,460px);
  align-items:center;
  gap:10px;
  transition:opacity 220ms ease, transform 300ms var(--spring);
}
#component-footer .lsa-footer.map-open .bottom-bar{
  opacity:0;
  pointer-events:none;
  transform:translateY(14px) scale(.98);
}
#component-footer .quickfind{
  position:relative;
  min-width:0;
  z-index:2;
}
#component-footer .search-shell{
  position:relative;
  display:flex;
  align-items:center;
  gap:9px;
  height:48px;
  padding:0 48px 0 15px;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.34);
  background:rgba(255,255,255,.58);
  box-shadow:
    0 18px 46px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.6);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
}
#component-footer .search-shell svg{
  width:19px;
  height:19px;
  color:var(--lsa-blue);
  flex:0 0 auto;
}
#component-footer .quickfind-input{
  width:100%;
  min-width:0;
  border:0;
  outline:0;
  background:transparent;
  color:var(--lsa-ink);
  font-size:14px;
  font-weight:700;
}
#component-footer .quickfind-input::placeholder{
  color:rgba(27,27,27,.55);
  font-weight:600;
}
#component-footer .quickfind-input::-webkit-search-cancel-button,#component-footer .quickfind-input::-webkit-search-decoration{
  -webkit-appearance:none;
  appearance:none;
}
#component-footer .clear-search{
  position:absolute;
  top:50%;
  right:46px;
  translate:0 -50%;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  color:var(--lsa-blue);
  background:rgba(121,166,218,.2);
  cursor:pointer;
  opacity:0;
  pointer-events:none;
}
#component-footer .quickfind.has-value .clear-search{
  opacity:1;
  pointer-events:auto;
}
#component-footer .search-exit{
  position:absolute;
  top:clamp(12px,3vh,24px);
  right:clamp(12px,3vw,24px);
  translate:0 0;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  color:#dff2ff;
  background:rgba(255,255,255,.12);
  cursor:pointer;
  opacity:0;
  pointer-events:none;
  z-index:300;
  box-shadow:
    0 18px 42px rgba(0,0,0,.32),
    inset 0 1px 0 rgba(255,255,255,.22);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  transition:opacity 180ms ease, transform 360ms var(--spring), background 180ms ease;
}
#component-footer .search-exit svg{
  width:18px;
  height:18px;
}
#component-footer .lsa-footer.search-open .search-exit{
  opacity:1;
  pointer-events:auto;
  transform:scale(1);
}
#component-footer .quickfind-results{
  position:absolute;
  left:0;
  bottom:58px;
  width:min(520px,calc(100vw - 28px));
  max-height:min(300px,58svh);
  overflow:auto;
  padding:10px;
  border-radius:22px;
  border:1px solid rgba(255,255,255,.35);
  background:
    linear-gradient(135deg,rgba(255,255,255,.64),rgba(121,166,218,.28));
  box-shadow:
    0 30px 90px rgba(0,0,0,.3),
    inset 0 1px 0 rgba(255,255,255,.62);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  z-index:120;
  opacity:0;
  pointer-events:none;
  transform:translateY(14px) scale(.96);
  transform-origin:18% 100%;
  transition:opacity 180ms ease, transform 320ms var(--spring);
}
#component-footer .quickfind.open .quickfind-results,#component-footer .quickfind.fullscreen .quickfind-results{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}
#component-footer .empty-state{
  color:rgba(27,27,27,.68);
  font-size:13px;
  line-height:1.45;
}
#component-footer .result-label{
  margin:4px 8px 8px;
  color:rgba(27,27,27,.56);
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
#component-footer .result-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  width:100%;
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  gap:10px;
  align-items:center;
  margin:0 0 8px;
  padding:12px;
  border:1px solid rgba(255,255,255,.76);
  border-radius:16px;
  color:var(--lsa-ink);
  background:
    radial-gradient(circle at 12% 0%,rgba(255,255,255,.98),transparent 38%),
    linear-gradient(145deg,rgba(255,255,255,.9),rgba(230,242,253,.76));
  box-shadow:
    0 20px 48px rgba(0,63,135,.16),
    0 8px 20px rgba(27,27,27,.08),
    inset 0 1px 0 rgba(255,255,255,.96);
  backdrop-filter:blur(22px) saturate(150%);
  -webkit-backdrop-filter:blur(22px) saturate(150%);
  text-align:left;
  text-decoration:none;
  cursor:pointer;
}
#component-footer .result-card::before{
  content:"";
  position:absolute;
  inset:1px;
  z-index:-1;
  border-radius:15px;
  pointer-events:none;
  background:linear-gradient(125deg,rgba(255,255,255,.68),transparent 28%,transparent 72%,rgba(121,166,218,.14));
}
#component-footer .result-media{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  align-self:start;
  border-radius:14px;
  overflow:hidden;
  color:var(--lsa-blue);
  background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(121,166,218,.24));
  box-shadow:
    0 8px 18px rgba(0,63,135,.1),
    inset 0 1px 0 rgba(255,255,255,.94);
  font-size:15px;
  font-weight:900;
}
#component-footer .staff-card-result .result-media{
  width:56px;
  height:64px;
  border-radius:12px;
  background:linear-gradient(145deg,rgba(216,234,252,.94),rgba(244,249,239,.96));
}
#component-footer .staff-card-result .result-media img{
  object-position:center top;
}
#component-footer .result-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
#component-footer .result-media svg{
  width:21px;
  height:21px;
}
#component-footer .result-title{
  display:block;
  color:var(--lsa-blue);
  font-size:14px;
  font-weight:900;
  line-height:1.25;
}
#component-footer .result-body{
  display:block;
  margin-top:4px;
  color:rgba(27,27,27,.74);
  font-size:12.5px;
  font-weight:500;
  line-height:1.4;
}
#component-footer .result-actions{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:9px;
}
#component-footer .mini-action{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:32px;
  padding:7px 10px;
  border-radius:999px;
  color:var(--lsa-blue);
  border:1px solid rgba(255,255,255,.86);
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(218,235,252,.78));
  box-shadow:0 7px 16px rgba(0,63,135,.1),inset 0 1px 0 rgba(255,255,255,.94);
  font-size:12px;
  font-weight:900;
  text-decoration:none;
}
#component-footer .result-go{
  width:34px;
  height:34px;
  display:grid;
  place-items:center;
  border-radius:999px;
  color:#fff;
  background:linear-gradient(135deg,var(--lsa-soft),var(--lsa-blue));
  box-shadow:0 12px 24px rgba(0,63,135,.18);
}
#component-footer .result-go svg{
  width:16px;
  height:16px;
}
#component-footer .mini-actions{
  display:none;
  gap:8px;
  justify-content:end;
}
#component-footer .icon-btn{
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border:1px solid rgba(255,255,255,.34);
  border-radius:999px;
  color:var(--lsa-blue);
  background:rgba(255,255,255,.66);
  box-shadow:
    0 18px 46px rgba(0,0,0,.16),
    inset 0 1px 0 rgba(255,255,255,.62);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
  cursor:pointer;
  text-decoration:none;
}
#component-footer .icon-btn svg{
  width:20px;
  height:20px;
}
#component-footer .map-stage{
  --genie-x:50%;
  position:absolute;
  inset:clamp(10px,1.4vw,18px);
  z-index:50;
  overflow:hidden;
  border-radius:var(--radius);
  border:1px solid rgba(255,255,255,.36);
  background:rgba(255,255,255,.58);
  box-shadow:
    0 36px 110px rgba(0,0,0,.36),
    inset 0 1px 0 rgba(255,255,255,.6);
  backdrop-filter:blur(22px) saturate(180%);
  -webkit-backdrop-filter:blur(22px) saturate(180%);
  opacity:0;
  pointer-events:none;
  transform:translateY(28px) scale(.2,.08);
  transform-origin:var(--genie-x) 100%;
  clip-path:ellipse(20px 16px at var(--genie-x) 100%);
  transition:
    opacity 220ms ease,
    transform 720ms var(--spring),
    clip-path 720ms var(--spring);
}
#component-footer .lsa-footer.map-open .map-stage{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0) scale(1);
  clip-path:ellipse(150% 120% at 50% 50%);
}
#component-footer .map-canvas{
  width:100%;
  height:100%;
  min-height:260px;
  border-radius:inherit;
  background:#dfe8f6;
}
#component-footer .map-toolbar{
  position:absolute;
  z-index:720;
  top:12px;
  left:12px;
  right:12px;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:10px;
  pointer-events:none;
}
#component-footer .map-leading{
  min-width:0;
  max-width:min(520px,72%);
  display:flex;
  align-items:center;
  gap:6px;
  pointer-events:auto;
}
#component-footer .map-leading > .map-btn{
  flex:0 0 auto;
  border:1px solid rgba(255,255,255,.32);
  background:rgba(255,255,255,.72);
  box-shadow:
    0 18px 44px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.68);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
}
#component-footer .map-title,#component-footer .map-controls,#component-footer .settings-panel{
  border:1px solid rgba(255,255,255,.32);
  background:rgba(255,255,255,.62);
  box-shadow:
    0 18px 44px rgba(0,0,0,.18),
    inset 0 1px 0 rgba(255,255,255,.64);
  backdrop-filter:blur(18px) saturate(180%);
  -webkit-backdrop-filter:blur(18px) saturate(180%);
}
#component-footer .map-title{
  min-width:0;
  max-width:100%;
  padding:10px 13px;
  border-radius:999px;
  color:var(--lsa-ink);
  font-size:13px;
  font-weight:900;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
  pointer-events:auto;
}
#component-footer .map-controls{
  display:flex;
  gap:6px;
  padding:6px;
  border-radius:999px;
  pointer-events:auto;
}
#component-footer .map-btn{
  width:38px;
  height:38px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:999px;
  color:var(--lsa-blue);
  background:rgba(255,255,255,.7);
  cursor:pointer;
  text-decoration:none;
}
#component-footer .map-directions-btn{
  width:auto;
  min-width:38px;
  padding:0 13px;
  gap:7px;
  font-size:12px;
  font-weight:900;
  white-space:nowrap;
}
#component-footer .map-btn.primary{
  color:#fff;
  background:linear-gradient(135deg,var(--lsa-soft),var(--lsa-blue));
}
#component-footer .map-btn svg{
  width:18px;
  height:18px;
  flex:0 0 auto;
}
#component-footer .settings-panel{
  position:absolute;
  z-index:740;
  top:68px;
  right:12px;
  width:min(290px,calc(100% - 24px));
  padding:12px;
  border-radius:20px;
  opacity:0;
  pointer-events:none;
  transform:translateY(-10px) scale(.96);
  transform-origin:100% 0;
  transition:opacity 180ms ease, transform 280ms var(--spring);
}
#component-footer .settings-panel.open{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}
#component-footer .settings-title{
  margin:2px 4px 10px;
  color:rgba(27,27,27,.56);
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
#component-footer .settings-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px;
  border-radius:16px;
}
#component-footer .settings-row b{
  display:block;
  color:var(--lsa-ink);
  font-size:13px;
}
#component-footer .settings-row span{
  display:block;
  color:rgba(27,27,27,.62);
  font-size:11px;
}
#component-footer .switch{
  position:relative;
  width:48px;
  height:28px;
  flex:0 0 auto;
}
#component-footer .switch input{
  position:absolute;
  inset:0;
  opacity:0;
}
#component-footer .track{
  position:absolute;
  inset:0;
  border-radius:999px;
  background:rgba(27,27,27,.18);
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.1);
}
#component-footer .thumb{
  position:absolute;
  top:3px;
  left:3px;
  width:22px;
  height:22px;
  border-radius:999px;
  background:rgba(255,255,255,.94);
  box-shadow:0 10px 20px rgba(0,0,0,.18);
  transition:transform .16s ease;
}
#component-footer .switch input:checked + .track{
  background:rgba(0,63,135,.45);
}
#component-footer .switch input:checked + .track .thumb{
  transform:translateX(20px);
}
#component-footer .settings-action{
  width:100%;
  min-height:42px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  border:0;
  border-radius:15px;
  color:var(--lsa-blue);
  background:rgba(255,255,255,.76);
  font-size:13px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}
#component-footer .settings-action.primary{
  color:#fff;
  background:rgba(0,63,135,.92);
}
#component-footer .map-attribution{
  position:absolute;
  right:12px;
  bottom:10px;
  z-index:650;
  color:rgba(27,27,27,.68);
  font-size:11px;
  pointer-events:none;
}
#component-footer .map-fallback{
  position:absolute;
  inset:0;
  z-index:500;
  display:none;
  place-items:center;
  padding:24px;
  color:var(--lsa-blue);
  text-align:center;
  font-weight:900;
  background:linear-gradient(135deg,rgba(255,255,255,.78),rgba(243,248,240,.74));
}
#component-footer .map-fallback.visible{
  display:grid;
}
#component-footer .leaflet-container{
  font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
  background:#dfe8f6;
}
#component-footer .leaflet-control-zoom{
  display:flex;
  flex-direction:column;
  gap:10px;
  border:0 !important;
  box-shadow:none !important;
}
#component-footer .leaflet-control-zoom a{
  width:40px !important;
  height:40px !important;
  line-height:40px !important;
  border:0 !important;
  border-radius:15px !important;
  color:var(--lsa-ink) !important;
  background:rgba(255,255,255,.68) !important;
  box-shadow:
    0 18px 38px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.62);
  backdrop-filter:blur(16px) saturate(180%);
  -webkit-backdrop-filter:blur(16px) saturate(180%);
}
#component-footer .leaflet-popup-content-wrapper,#component-footer .leaflet-popup-tip{
  border:1px solid rgba(255,255,255,.28) !important;
  border-radius:18px !important;
  background:rgba(255,255,255,.62) !important;
  box-shadow:
    0 20px 55px rgba(0,0,0,.26),
    inset 0 1px 0 rgba(255,255,255,.55) !important;
  backdrop-filter:blur(18px) saturate(190%) contrast(110%);
  -webkit-backdrop-filter:blur(18px) saturate(190%) contrast(110%);
}
#component-footer .leaflet-popup-content{
  margin:12px 14px !important;
  font-family:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
}
#component-footer .popup-dir{
  display:inline-flex;
  margin-top:8px;
  padding:8px 11px;
  border-radius:999px;
  color:var(--lsa-blue) !important;
  background:rgba(255,255,255,.84);
  font-weight:900;
  text-decoration:none !important;
}
#component-footer .call-pop{
  position:fixed;
  z-index:9999;
  width:min(320px,calc(100vw - 28px));
  padding:12px;
  border-radius:18px;
  border:1px solid rgba(255,255,255,.28);
  background:rgba(255,255,255,.62);
  box-shadow:
    0 34px 95px rgba(0,0,0,.38),
    inset 0 1px 0 rgba(255,255,255,.55);
  backdrop-filter:blur(18px) saturate(190%) contrast(112%);
  -webkit-backdrop-filter:blur(18px) saturate(190%) contrast(112%);
  opacity:0;
  pointer-events:none;
  transform:translateY(10px) scale(.96);
}
#component-footer .call-pop.open{
  opacity:1;
  pointer-events:auto;
  transform:translateY(0) scale(1);
  animation:footer-callPopIn 420ms var(--spring);
}
@keyframes footer-callPopIn{
  0%{opacity:0;transform:translateY(12px) scale(.94)}
  55%{opacity:1;transform:translateY(-2px) scale(1.015)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
@keyframes footer-panelPop{
  0%{opacity:0;transform:translateY(10px) scale(.96)}
  60%{opacity:1;transform:translateY(-2px) scale(1.01)}
  100%{opacity:1;transform:translateY(0) scale(1)}
}
#component-footer .call-pop-arrow{
  position:absolute;
  width:12px;
  height:12px;
  transform:rotate(45deg);
  background:rgba(255,255,255,.62);
  border-left:1px solid rgba(255,255,255,.28);
  border-top:1px solid rgba(255,255,255,.28);
}
#component-footer .call-pop-title{
  margin:2px 4px 10px;
  color:rgba(27,27,27,.56);
  font-size:12px;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}
#component-footer .call-pop-body{
  margin:0 4px 10px;
  color:rgba(27,27,27,.78);
  font-size:13px;
  line-height:1.45;
}
#component-footer .call-pop-actions{
  display:grid;
  gap:10px;
}
#component-footer .call-pop-btn{
  min-height:43px;
  display:flex;
  align-items:center;
  justify-content:center;
  border:0;
  border-radius:14px;
  color:var(--lsa-blue);
  background:rgba(255,255,255,.72);
  box-shadow:0 14px 30px rgba(0,0,0,.16);
  font-size:13px;
  font-weight:900;
  text-decoration:none;
  cursor:pointer;
}
#component-footer .call-pop-btn.primary{
  color:#fff;
  background:rgba(0,63,135,.9);
}
@container lsa-footer (max-width: 900px){#component-footer .lsa-footer{
    --footer-h:clamp(360px,58vw,560px);
    background:
      linear-gradient(90deg,var(--lsa-bg) 0%,var(--lsa-bg) 56%,var(--lsa-blue) 56%,var(--lsa-blue) 100%);
  }
#component-footer .footer-layout{
    grid-template-columns:minmax(270px,1fr) minmax(160px,.5fr);
    grid-template-areas:
      "contact action"
      "photo action";
  }
#component-footer .contact-block{
    grid-area:contact;
    padding-bottom:72px;
  }
#component-footer .photo-medallion{
    grid-area:photo;
    justify-self:start;
    width:clamp(120px,30vw,220px);
    margin-left:clamp(10px,5vw,70px);
    margin-top:-28px;
  }
#component-footer .action-panel{
    grid-area:action;
  }
#component-footer .org-logo{
    width:clamp(112px,26vw,180px);
  }
#component-footer .spring-btn{
    min-height:clamp(50px,9vw,76px);
    font-size:clamp(14px,2vw,18px);
  }}
@container lsa-footer (max-width: 780px){#component-footer .lsa-footer{
    --footer-h:auto;
    min-height:100svh;
    background:
      linear-gradient(180deg,var(--lsa-bg) 0%,var(--lsa-bg) 57%,var(--lsa-blue) 57%,var(--lsa-blue) 100%);
  }
#component-footer .footer-layout{
    height:100svh;
    min-height:480px;
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(100px,.8fr) auto;
    grid-template-areas:
      "contact"
      "photo"
      "action";
    align-content:start;
    gap:10px;
    padding-bottom:74px;
  }
#component-footer .contact-block{
    padding-bottom:0;
    justify-content:flex-start;
  }
#component-footer .school-title{
    font-size:clamp(30px,11vw,48px);
    margin-bottom:8px;
  }
#component-footer .contact-list{
    gap:5px;
  }
#component-footer .contact-item{
    font-size:clamp(13px,4.2vw,18px);
  }
#component-footer .contact-label{
    font-size:clamp(16px,5vw,22px);
  }
#component-footer .photo-medallion{
    justify-self:center;
    width:clamp(118px,38vw,190px);
    margin:0;
  }
#component-footer .action-panel{
    min-height:184px;
    padding:46px 0 0;
  }
#component-footer .org-logo{
    top:10px;
    right:50%;
    translate:50% 0;
    width:clamp(130px,42vw,190px);
  }
#component-footer .action-stack{
    width:min(100%,360px);
    margin-top:30px;
    gap:10px;
  }
#component-footer .spring-btn{
    min-height:48px;
    font-size:15px;
    font-weight:600;
  }
#component-footer .bottom-bar{
    grid-template-columns:minmax(0,1fr) auto auto;
    left:10px;
    right:10px;
    bottom:10px;
  }
#component-footer .search-shell{
    height:44px;
  }
#component-footer .quickfind-results{
    width:calc(100vw - 20px);
    max-height:48svh;
  }}
@media (max-width: 900px){#component-footer .lsa-footer{
    --footer-h:clamp(360px,58vw,560px);
    background:
      linear-gradient(90deg,var(--lsa-bg) 0%,var(--lsa-bg) 56%,var(--lsa-blue) 56%,var(--lsa-blue) 100%);
  }
#component-footer .footer-layout{
    grid-template-columns:minmax(270px,1fr) minmax(160px,.5fr);
    grid-template-areas:
      "contact action"
      "photo action";
  }
#component-footer .contact-block{
    grid-area:contact;
    padding-bottom:72px;
  }
#component-footer .photo-medallion{
    grid-area:photo;
    justify-self:start;
    width:clamp(120px,30vw,220px);
    margin-left:clamp(10px,5vw,70px);
    margin-top:-28px;
  }
#component-footer .action-panel{
    grid-area:action;
  }
#component-footer .org-logo{
    width:clamp(112px,26vw,180px);
  }
#component-footer .spring-btn{
    min-height:clamp(50px,9vw,76px);
    font-size:clamp(14px,2vw,18px);
  }}
@media (max-width: 780px){#component-footer .lsa-footer{
    --footer-h:auto;
    min-height:100svh;
    background:
      linear-gradient(180deg,var(--lsa-bg) 0%,var(--lsa-bg) 57%,var(--lsa-blue) 57%,var(--lsa-blue) 100%);
  }
#component-footer .footer-layout{
    height:100svh;
    min-height:480px;
    grid-template-columns:1fr;
    grid-template-rows:auto minmax(100px,.8fr) auto;
    grid-template-areas:
      "contact"
      "photo"
      "action";
    align-content:start;
    gap:10px;
    padding-bottom:74px;
  }
#component-footer .contact-block{
    padding-bottom:0;
    justify-content:flex-start;
  }
#component-footer .school-title{
    max-width:100%;
    font-size:clamp(30px,11vw,48px);
    margin-bottom:8px;
    overflow-wrap:normal;
  }
#component-footer .contact-list{
    gap:5px;
  }
#component-footer .contact-item{
    font-size:clamp(13px,4.2vw,18px);
  }
#component-footer .contact-label{
    font-size:clamp(16px,5vw,22px);
  }
#component-footer .photo-medallion{
    justify-self:center;
    width:clamp(118px,38vw,190px);
    margin:0;
  }
#component-footer .action-panel{
    min-height:184px;
    padding:46px 0 0;
  }
#component-footer .org-logo{
    top:10px;
    right:50%;
    translate:50% 0;
    width:clamp(130px,42vw,190px);
  }
#component-footer .action-stack{
    width:min(100%,360px);
    margin-top:30px;
    gap:10px;
  }
#component-footer .spring-btn{
    min-height:48px;
    font-size:15px;
    font-weight:600;
  }
#component-footer .bottom-bar{
    grid-template-columns:minmax(0,1fr) auto auto;
    left:10px;
    right:10px;
    bottom:10px;
  }
#component-footer .search-shell{
    height:44px;
  }
#component-footer .quickfind-results{
    width:calc(100vw - 20px);
    max-height:48svh;
    background:rgba(255,255,255,.97);
  }}
@media (max-height: 360px) and (min-width: 700px){#component-footer .lsa-footer,#component-footer .footer-layout{
    min-height:100svh;
  }
#component-footer .school-title{
    font-size:clamp(28px,4vw,52px);
    margin-bottom:8px;
  }
#component-footer .contact-item{
    font-size:clamp(13px,1.2vw,18px);
  }
#component-footer .contact-label{
    font-size:clamp(15px,1.4vw,22px);
  }
#component-footer .photo-medallion{
    width:min(24vw,240px);
  }
#component-footer .action-stack{
    gap:12px;
  }
#component-footer .spring-btn{
    min-height:48px;
    font-size:15px;
  }}
@media (max-width: 780px) and (max-height: 720px){#component-footer .footer-layout{
    min-height:100svh;
    padding-top:10px;
    padding-bottom:66px;
    gap:6px;
  }
#component-footer .school-title{
    font-size:clamp(27px,10vw,42px);
    margin-bottom:5px;
  }
#component-footer .contact-list{
    gap:3px;
  }
#component-footer .contact-item{
    font-size:clamp(12px,3.7vw,15px);
    line-height:1.18;
  }
#component-footer .contact-label{
    font-size:clamp(14px,4.4vw,18px);
  }
#component-footer .photo-medallion{
    width:clamp(100px,31vw,150px);
  }
#component-footer .action-panel{
    min-height:150px;
    padding-top:36px;
  }
#component-footer .org-logo{
    width:clamp(116px,36vw,160px);
    height:42px;
  }
#component-footer .action-stack{
    margin-top:22px;
    gap:8px;
  }
#component-footer .spring-btn{
    min-height:42px;
    font-size:14px;
  }
#component-footer .bottom-bar{
    bottom:8px;
  }
#component-footer .search-shell,#component-footer .icon-btn{
    height:42px;
  }
#component-footer .icon-btn{
    width:42px;
  }}
@media (max-width: 780px){#component-footer,#component-footer{
    overflow:hidden;
  }
#component-footer{
    min-width:0;
  }
#component-footer .lsa-footer.search-open .action-stack{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(8px) scale(.98);
  }
#component-footer .lsa-footer.search-open .footer-credit{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(8px) scale(.98);
  }
#component-footer .lsa-footer.search-open .org-logo{
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(8px) scale(.98);
  }
#component-footer .lsa-footer{
    min-height:100svh;
    height:100svh;
    background:var(--lsa-bg);
  }
#component-footer .lsa-footer::before{
    background:
      linear-gradient(90deg,rgba(243,248,240,.98),rgba(243,248,240,.82) 58%,rgba(121,166,218,.24) 100%);
  }
#component-footer .footer-layout{
    height:100svh;
    min-height:0;
    grid-template-columns:1fr;
    grid-template-rows:auto 1fr;
    grid-template-areas:
      "contact"
      "action";
    gap:clamp(8px,2vh,14px);
    padding:max(14px,env(safe-area-inset-top)) clamp(10px,3.8vw,18px) 72px;
  }
#component-footer .contact-block{
    min-height:0;
    padding-bottom:0;
    justify-content:flex-start;
  }
#component-footer .bottom-bar{
    grid-template-columns:minmax(0,1fr);
  }
#component-footer .school-title{
    width:100%;
    margin-bottom:clamp(8px,1.8vh,12px);
    font-size:clamp(22px,6.7vw,32px);
    line-height:1.08;
    text-align:center;
  }
#component-footer .contact-list{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
  }
#component-footer .contact-item{
    min-width:0;
    gap:0;
  }
#component-footer .contact-trigger{
    min-height:clamp(50px,9.5vh,64px);
    place-content:center;
    justify-items:center;
    padding:9px 8px;
    border:1px solid rgba(255,255,255,.38);
    border-radius:18px;
    background:linear-gradient(145deg,rgba(255,255,255,.84),rgba(235,242,247,.78));
    box-shadow:
      0 7px 18px rgba(0,63,135,.08),
      inset 0 1px 0 rgba(255,255,255,.92),
      inset 0 -1px 0 rgba(0,63,135,.045);
    transition:transform 140ms ease-out,box-shadow 180ms ease,background 180ms ease;
    backdrop-filter:blur(16px) saturate(170%);
    -webkit-backdrop-filter:blur(16px) saturate(170%);
  }
#component-footer .contact-label{
    font-size:clamp(15px,4.7vw,18px);
    line-height:1;
    text-align:center;
    color:var(--lsa-soft);
    text-shadow:0 1px 0 rgba(255,255,255,.98),0 -.6px .5px rgba(0,45,100,.32);
  }
#component-footer .contact-trigger.is-pressed{
    transform:scale(.95);
    box-shadow:0 2px 7px rgba(0,63,135,.05),inset 0 2px 5px rgba(0,63,135,.09),inset 0 -1px 0 rgba(255,255,255,.85);
  }
#component-footer .contact-trigger[aria-expanded="true"]{
    background:linear-gradient(145deg,rgba(242,248,255,.94),rgba(224,237,249,.86));
  }
#component-footer .quickfind-input{
    font-size:16px;
  }
#component-footer .contact-summary{
    display:none !important;
  }
#component-footer .contact-detail{
    display:none;
    position:fixed;
    left:10px;
    right:10px;
    top:auto;
    bottom:auto;
    z-index:170;
    padding:14px;
    border:1px solid rgba(255,255,255,.38);
    border-radius:22px;
    background:
      linear-gradient(135deg,rgba(255,255,255,.6),rgba(121,166,218,.3));
    box-shadow:
      0 30px 90px rgba(0,0,0,.26),
      inset 0 1px 0 rgba(255,255,255,.65);
    backdrop-filter:blur(22px) saturate(180%);
    -webkit-backdrop-filter:blur(22px) saturate(180%);
    max-height:calc(100svh - 92px);
    overflow:auto;
    animation:footer-panelPop 320ms var(--spring);
  }
#component-footer .contact-detail::before{
    content:"";
    position:absolute;
    width:12px;
    height:12px;
    left:var(--arrow-x,50%);
    background:rgba(255,255,255,.55);
    border-left:1px solid rgba(255,255,255,.34);
    border-top:1px solid rgba(255,255,255,.34);
    transform:translateX(-50%) rotate(45deg);
  }
#component-footer .contact-detail.place-below::before{
    top:-6px;
  }
#component-footer .contact-detail.place-above::before{
    bottom:-6px;
    transform:translateX(-50%) rotate(225deg);
  }
#component-footer .contact-address .contact-detail{
    display:none;
  }
#component-footer .info-item.open .contact-detail{
    display:block;
  }
#component-footer .photo-medallion{
    display:none;
  }
#component-footer .action-panel{
    grid-area:action;
    align-self:stretch;
    min-height:0;
    justify-content:end;
    gap:8px;
    padding:0 0 clamp(6px,2vh,14px);
  }
#component-footer .org-logo{
    position:relative;
    top:auto;
    right:auto;
    translate:none;
    width:clamp(116px,38vw,156px);
    height:clamp(42px,8vh,56px);
    margin:0 auto 2px;
  }
#component-footer .action-stack{
    width:100%;
    max-width:460px;
    gap:8px;
    margin:0;
  }
#component-footer .footer-credit{
    max-width:320px;
    margin-top:0;
    color:rgba(27,27,27,.72);
    font-size:11px;
    text-shadow:none;
  }
#component-footer .footer-credit a{
    color:var(--lsa-blue);
  }
#component-footer .spring-btn{
    min-height:clamp(40px,7.5vh,52px);
    padding:10px 18px;
    font-size:clamp(14px,4vw,17px);
  }
#component-footer .quickfind.fullscreen .quickfind-results{
    position:fixed;
    left:10px;
    right:10px;
    bottom:70px;
    top:auto;
    width:auto;
    max-height:min(360px,52svh);
    overflow:auto;
    padding:16px;
    border-radius:26px;
    background:
      linear-gradient(135deg,rgba(255,255,255,.52),rgba(121,166,218,.3));
    transform:translateY(18px) scale(.96);
    transform-origin:50% 100%;
  }
#component-footer .quickfind.fullscreen.open .quickfind-results{
    transform:translateY(0) scale(1);
  }
#component-footer .result-card{
    grid-template-columns:auto minmax(0,1fr);
  }
#component-footer .result-go{
    display:none;
  }
#component-footer .map-stage{
    inset:8px;
  }
#component-footer .map-title{
    max-width:100%;
  }
#component-footer .map-leading{
    max-width:72%;
  }
#component-footer .map-directions-btn span{
    display:inline;
  }}
@media (max-width: 420px){#component-footer .map-directions-btn{
    max-width:146px;
  }
#component-footer .map-directions-btn span{
    max-width:92px;
    overflow:hidden;
    text-overflow:ellipsis;
  }}
@media (max-width: 780px) and (max-height: 600px){#component-footer .footer-layout{
    padding-top:8px;
    padding-bottom:62px;
    gap:6px;
  }
#component-footer .school-title{
    font-size:clamp(20px,6.2vw,28px);
    margin-bottom:6px;
  }
#component-footer .contact-trigger{
    min-height:46px;
    border-radius:16px;
  }
#component-footer .contact-label{
    font-size:14px;
  }
#component-footer .org-logo{
    display:none;
  }
#component-footer .spring-btn{
    min-height:38px;
    font-size:13px;
  }
#component-footer .search-shell{
    height:40px;
  }}
#component-footer .lsa-footer.search-open{
  min-height:min(560px,100svh);
}
#component-footer .lsa-footer.search-open .bottom-bar{
  position:absolute;
  left:clamp(12px,4vw,48px);
  right:clamp(12px,4vw,48px);
  bottom:clamp(14px,4.5vh,34px);
  z-index:260;
  grid-template-columns:minmax(0,1fr);
  justify-items:center;
  opacity:1;
  pointer-events:auto;
  transform:none;
}
#component-footer .lsa-footer.search-open .quickfind{
  width:min(820px,100%);
}
#component-footer .lsa-footer.search-open .search-shell{
  height:clamp(58px,7.2vw,74px);
  padding:0 52px 0 clamp(18px,2.5vw,26px);
  border:1px solid rgba(206,239,255,.42);
  background:
    linear-gradient(135deg,rgba(255,255,255,.18),rgba(121,166,218,.16));
  box-shadow:
    0 22px 68px rgba(0,0,0,.42),
    0 0 44px rgba(84,202,255,.38),
    inset 0 1px 0 rgba(255,255,255,.36),
    inset 0 -1px 0 rgba(255,255,255,.12);
  backdrop-filter:blur(26px) saturate(190%) contrast(112%);
  -webkit-backdrop-filter:blur(26px) saturate(190%) contrast(112%);
  transform:translateY(-7px) scale(1.012);
  transition:
    box-shadow 260ms ease,
    background 260ms ease,
    transform 460ms var(--spring),
    height 360ms var(--spring);
}
#component-footer .lsa-footer.search-open .search-shell::before{
  content:"";
  position:absolute;
  inset:-1px;
  z-index:-1;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(121,166,218,.82),rgba(18,222,227,.34),rgba(255,255,255,.28));
  filter:blur(18px);
  opacity:.56;
}
#component-footer .lsa-footer.search-open .search-shell svg{
  width:clamp(21px,2.6vw,28px);
  height:clamp(21px,2.6vw,28px);
  color:#9ddcff;
}
#component-footer .lsa-footer.search-open .quickfind-input{
  color:#fff;
  font-size:clamp(17px,2.2vw,22px);
  font-weight:700;
}
#component-footer .lsa-footer.search-open .quickfind-input::placeholder{
  color:rgba(231,247,255,.66);
}
#component-footer .lsa-footer.search-open .clear-search{
  right:10px;
  color:#dff2ff;
  background:rgba(255,255,255,.1);
}
#component-footer .lsa-footer.search-open .quickfind-results{
  position:absolute;
  left:50%;
  right:auto;
  bottom:calc(100% + clamp(16px,3vh,28px));
  top:auto;
  width:min(820px,calc(100vw - 28px));
  max-height:min(330px,calc(100svh - 142px));
  padding:clamp(6px,1.2vw,10px);
  border-radius:0;
  border:0;
  color:#fff;
  background:transparent;
  box-shadow:none;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  transform:translate(-50%,20px) scale(.96);
  transform-origin:50% 100%;
}
#component-footer .lsa-footer.search-open .quickfind.open .quickfind-results,#component-footer .lsa-footer.search-open .quickfind.fullscreen .quickfind-results{
  transform:translate(-50%,0) scale(1);
}
#component-footer .lsa-footer.search-open .result-label{
  margin:0 0 10px;
  color:rgba(230,247,255,.62);
}
#component-footer .lsa-footer.search-open .empty-state{
  color:rgba(230,247,255,.78);
}
#component-footer .search-intro{
  display:grid;
  gap:8px;
  padding:0 4px 2px;
  animation:footer-thoughtFloat 540ms var(--spring) both;
}
#component-footer .search-intro-title{
  color:#fff;
  font-size:clamp(24px,4vw,44px);
  font-weight:900;
  line-height:1.02;
  text-shadow:0 16px 42px rgba(0,0,0,.42);
}
#component-footer .search-intro-copy{
  max-width:680px;
  color:rgba(230,247,255,.76);
  font-size:clamp(14px,1.7vw,18px);
  line-height:1.45;
}
#component-footer .lsa-footer.search-open .result-card{
  margin-bottom:10px;
  border:1px solid rgba(255,255,255,.7);
  color:var(--lsa-ink);
  background:
    radial-gradient(circle at 12% 0%,rgba(255,255,255,.96),transparent 38%),
    linear-gradient(145deg,rgba(248,252,255,.86),rgba(211,231,250,.7));
  box-shadow:
    0 22px 52px rgba(0,0,0,.2),
    0 0 38px rgba(65,177,255,.13),
    inset 0 1px 0 rgba(255,255,255,.94);
  backdrop-filter:blur(24px) saturate(160%);
  -webkit-backdrop-filter:blur(24px) saturate(160%);
  animation:footer-resultLift 420ms var(--spring) both;
  animation-delay:calc(var(--result-i,0) * 55ms);
}
#component-footer .lsa-footer.search-open .result-card.answer-card{
  display:grid;
  padding:12px;
  border-radius:16px;
}
#component-footer .lsa-footer.search-open .result-card.answer-card .result-title{
  color:var(--lsa-blue);
  font-size:clamp(14px,1.8vw,17px);
  line-height:1.25;
  font-weight:900;
  text-shadow:none;
}
#component-footer .lsa-footer.search-open .result-card.answer-card .result-body{
  max-width:760px;
  color:rgba(27,27,27,.76);
  font-size:clamp(12.5px,1.45vw,15px);
  font-weight:500;
  line-height:1.42;
}
#component-footer .lsa-footer.search-open .staff-card-result{
  grid-template-columns:56px minmax(0,1fr) auto;
  min-height:88px;
}
#component-footer .lsa-footer.search-open .result-actions{
  margin-top:14px;
}
#component-footer .lsa-footer.search-open .mini-action{
  min-height:42px;
  padding:10px 16px;
  border:1px solid rgba(255,255,255,.22);
  color:var(--lsa-blue);
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(218,235,252,.76));
  box-shadow:
    0 14px 30px rgba(0,0,0,.22),
    inset 0 1px 0 rgba(255,255,255,.25);
  backdrop-filter:blur(18px) saturate(170%);
  -webkit-backdrop-filter:blur(18px) saturate(170%);
  animation:footer-buttonBounce 520ms var(--spring) both;
  animation-delay:calc(var(--result-i,0) * 55ms + 120ms);
}
@keyframes footer-thoughtFloat{
  0%{
    opacity:0;
    transform:translateY(42px) scale(.94);
    filter:blur(10px);
  }
  58%{
    opacity:1;
    transform:translateY(-8px) scale(1.018);
    filter:blur(0);
  }
  78%{
    transform:translateY(3px) scale(.992);
  }
  100%{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}
@keyframes footer-buttonBounce{
  0%{
    opacity:0;
    transform:translateY(18px) scale(.88);
  }
  62%{
    opacity:1;
    transform:translateY(-5px) scale(1.045);
  }
  100%{
    opacity:1;
    transform:translateY(0) scale(1);
  }
}
@keyframes footer-resultLift{
  0%{
    opacity:0;
    transform:translateY(28px) scale(.94);
    filter:blur(8px);
  }
  62%{
    opacity:1;
    transform:translateY(-3px) scale(1.012);
    filter:blur(0);
  }
  100%{
    opacity:1;
    transform:translateY(0) scale(1);
    filter:blur(0);
  }
}
@media (max-width: 780px){#component-footer .lsa-footer.search-open .bottom-bar{
    left:10px;
    right:10px;
    bottom:max(10px,env(safe-area-inset-bottom));
  }
#component-footer .lsa-footer.search-open .quickfind{
    width:100%;
  }
#component-footer .lsa-footer.search-open .quickfind-results{
    left:10px;
    right:10px;
    bottom:calc(100% + 18px);
    width:auto;
    max-height:min(470px,calc(100svh - 124px));
    transform:translateY(20px) scale(.96);
  }
#component-footer .lsa-footer.search-open .quickfind.open .quickfind-results,#component-footer .lsa-footer.search-open .quickfind.fullscreen .quickfind-results{
    transform:translateY(0) scale(1);
  }
#component-footer .lsa-footer.search-open .staff-card-result{
    grid-template-columns:52px minmax(0,1fr);
    min-height:82px;
  }
#component-footer .lsa-footer.search-open .staff-card-result .result-media{
    width:52px;
    height:60px;
  }}
#component-footer .quickfind-backdrop{
  position:fixed;
  inset:0;
  z-index:200;
  overflow:clip;
  contain:paint;
  visibility:hidden;
  opacity:0;
  pointer-events:none;
  background:
    radial-gradient(ellipse 70% 45% at 8% 85%,rgba(91,151,207,.38),transparent 75%),
    radial-gradient(ellipse 70% 50% at 97% 65%,rgba(18,104,159,.35),transparent 78%),
    linear-gradient(to bottom,transparent 6%,rgba(6,21,34,.08) 20%,rgba(6,21,34,.48) 40%,rgba(6,21,34,.86) 68%,#061522 100%);
  transition:opacity 340ms ease,visibility 340ms;
}
#component-footer .lsa-footer.search-open .quickfind-backdrop{
  visibility:visible;
  opacity:1;
  pointer-events:auto;
}
#component-footer .lsa-footer.search-open .bottom-bar{
  position:fixed;
  left:50%;
  right:auto;
  top:calc(50% + clamp(36px,6vh,64px));
  bottom:auto;
  z-index:260;
  width:min(820px,calc(100vw - 36px));
  transform:translate(-50%,-50%);
}
#component-footer .lsa-footer.search-open .search-exit{
  position:fixed;
  top:94px;
  right:clamp(14px,3vw,32px);
  z-index:300;
}
@media(max-width:780px){#component-footer .lsa-footer.search-open .bottom-bar{
    left:50%;
    right:auto;
    top:calc(50% + 48px);
    bottom:auto;
    width:calc(100vw - 24px);
    transform:translate(-50%,-50%);
  }
#component-footer .lsa-footer.search-open .search-exit{top:74px;right:12px}
#component-footer .lsa-footer.search-open .quickfind-results{left:50%;right:auto;width:calc(100vw - 24px);max-height:calc(100dvh - 210px)}
#component-footer .lsa-footer.search-open .quickfind.open .quickfind-results,#component-footer .lsa-footer.search-open .quickfind.fullscreen .quickfind-results{transform:translate(-50%,0) scale(1)}}
@media(prefers-reduced-motion:reduce){#component-footer .quickfind-backdrop{transition:none}}
@media (prefers-reduced-motion: reduce){#component-footer *,#component-footer *::before,#component-footer *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }}