:root{
  --bg:#060606;
  --bg-soft:#0d0d0d;
  --panel:#111;
  --panel-2:#171717;
  --text:#f4f2ef;
  --muted:#c9c2ba;
  --line:rgba(255,255,255,.14);

  --red:#9f1717;
  --red-bright:#cb2a2a;
  --gold:#c8a23b;
  --gold-soft:#efcf72;

  --shadow:0 14px 28px rgba(0,0,0,.28);
  --max:1280px;
  --nav-h:68px;
}

*{box-sizing:border-box}

[hidden]{
  display:none !important;
}

html{
  scroll-behavior:smooth;
  /* Sticky header + sticky section nav both sit above anchor targets. */
  scroll-padding-top:calc(var(--nav-h) + 66px);
}

body{
  margin:0;
  background:var(--bg);
  color:var(--text);
  font:16px/1.55 "Inter","Segoe UI",Arial,sans-serif;
}

body.has-public-map-modal{
  overflow:hidden;
}

img{
  max-width:100%;
  display:block;
}

a{
  color:inherit;
  text-decoration:none;
}

button,
input,
select,
textarea{
  font:inherit;
}

a:focus-visible,
button:focus-visible,
[role="button"]:focus-visible,
summary:focus-visible{
  outline:2px solid var(--gold-soft);
  outline-offset:2px;
}

@media (prefers-reduced-motion: reduce){
  html{
    scroll-behavior:auto;
  }

  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
}

.skip-link{
  position:absolute;
  left:-9999px;
  top:auto;
}
.skip-link:focus{
  left:16px;
  top:16px;
  z-index:9999;
  background:#fff;
  color:#000;
  padding:10px 14px;
}

.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  background:rgba(6,6,6,.9);
  backdrop-filter:blur(8px);
}

.site-header__inner{
  max-width:var(--max);
  margin:0 auto;
  min-height:var(--nav-h);
  padding:10px 20px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
  min-width:0;
}

.brand__patch{
  width:56px;
  height:56px;
  display:grid;
  place-items:center;
  overflow:hidden;
  flex:0 0 56px;
}

.brand__patch-img{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}

.brand__text{
  display:flex;
  flex-direction:column;
  min-width:0;
}

.brand__name{
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
  font-size:clamp(1rem, 1.2vw, 1.3rem);
  line-height:1;
}

.brand__sub{
  color:var(--gold-soft);
  font-size:.78rem;
  font-weight:700;
  margin-top:4px;
}

.site-header__actions{
  position:relative;
  display:flex;
  align-items:center;
  gap:18px;
}

.header-link{
  appearance:none;
  -webkit-appearance:none;
  border:0;
  background:transparent;
  color:var(--text);
  text-decoration:none;
  font:inherit;
  line-height:1;
  cursor:pointer;
  padding:0;
}

.header-link:hover{
  color:#fff;
}

.header-link--button{
  appearance:none;
  -webkit-appearance:none;
}

.header-link:hover{
  color:var(--gold-soft);
}

.header-link--button{
  padding:10px 14px;
  background:var(--red);
  font-weight:800;
  color:#fff;
}

.account-chip{
  border:1px solid rgba(255,255,255,.14);
  background:#111;
  color:var(--text);
  padding:9px 12px;
  display:inline-flex;
  align-items:center;
  gap:10px;
  cursor:pointer;
}

.account-chip__name{
  font-weight:700;
  line-height:1;
}

.account-chip__count{
  min-width:18px;
  height:18px;
  padding:0 5px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.06);
  color:var(--gold-soft);
  font-size:.72rem;
  font-weight:900;
  line-height:1;
}

.account-menu{
  position:absolute;
  top:calc(100% + 8px);
  right:0;
  min-width:260px;
  background:#0f0f0f;
  border:1px solid rgba(255,255,255,.12);
  box-shadow:var(--shadow);
  padding:8px;
  gap:2px;
}

.account-menu[hidden]{
  display:none !important;
}

.account-menu:not([hidden]){
  display:grid;
}

.account-menu__item{
  width:100%;
  padding:10px 12px;
  border:0;
  background:transparent;
  color:var(--text);
  text-align:left;
  font:inherit;
  cursor:pointer;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.account-menu__item:hover{
  background:rgba(255,255,255,.05);
}

.account-menu__item--logout{
  text-decoration:none;
  color:var(--text);
}

.account-menu__item--status{
  align-items:center;
}

.account-menu__status{
  display:inline-flex;
  align-items:center;
  gap:8px;
  white-space:nowrap;
  font-size:.88rem;
  font-weight:700;
}

.account-menu__status-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  display:block;
  background:#7a7a7a;
}

.account-menu__status--paid .account-menu__status-dot{
  background:#4caf50;
}

.account-menu__status--due_soon .account-menu__status-dot{
  background:#d6b437;
}

.account-menu__status--overdue .account-menu__status-dot{
  background:#c73737;
}

.account-menu__status--unknown .account-menu__status-dot{
  background:#7a7a7a;
}

.hero{
  position:relative;
  min-height:min(92vh, 920px);
  display:grid;
  align-items:end;
  overflow:hidden;
}

.hero__media{
  position:absolute;
  inset:0;
}

.hero__media img{
  width:100%;
  height:100%;
  object-fit:cover;
  filter:saturate(.88) contrast(1.03);
}

.hero__overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(0,0,0,.34), rgba(0,0,0,.54) 34%, rgba(0,0,0,.86) 82%, rgba(0,0,0,.96) 100%),
    linear-gradient(90deg, rgba(0,0,0,.78), rgba(0,0,0,.30) 58%, rgba(0,0,0,.7));
  z-index:1;
}

.hero__content{
  position:relative;
  z-index:2;
  max-width:var(--max);
  margin:0 auto;
  width:100%;
  padding:72px 20px 34px;
  display:grid;
  gap:18px;
}

.hero__eyebrow{
  color:var(--red-bright);
  text-transform:uppercase;
  letter-spacing:.14em;
  font-size:.8rem;
  font-weight:900;
  max-width:72rem;
}

.hero__title{
  margin:0;
  width:max-content;
  max-width:100%;
  font-size:clamp(2.4rem, 4.7vw, 5rem);
  line-height:.94;
  letter-spacing:0;
  text-transform:uppercase;
  font-weight:900;
}

.hero__title .hero__line{
  display:block;
  white-space:nowrap;
}

.hero__lede{
  max-width:72rem;
  width:100%;
  color:#ece7e0;
  font-size:clamp(1rem, 1.45vw, 1.18rem);
  line-height:1.55;
  text-align:justify;
  text-justify:inter-word;
  text-wrap:pretty;
  margin:6px 0 0;
}

.hero__actions{
  display:flex;
  flex-wrap:nowrap;
  gap:8px;
  width:max-content;
  max-width:100%;
}

.hero__actions .btn{
  white-space:nowrap;
}

.btn{
  border:1px solid rgba(255,255,255,.18);
  padding:12px 18px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  font-weight:900;
  cursor:pointer;
  text-transform:none;
  transition:background .16s ease, color .16s ease, border-color .16s ease, transform .16s ease;
}

.btn:hover{
  border-color:rgba(255,255,255,.3);
}

.btn--primary{
  background:var(--red);
  border-color:var(--red);
  color:#fff;
}

.btn--secondary{
  background:rgba(200,162,59,.14);
  color:var(--gold-soft);
  border-color:rgba(200,162,59,.4);
}

#openContactModal{
  background:var(--red);
  color:#fff;
  border-color:var(--red);
}

.btn--ghost{
  background:rgba(255,255,255,.04);
  color:#fff;
}

.btn--full{
  width:100%;
}

/* ============================= */
/* HERO UTILITY / BURN WIDGET   */
/* ============================= */

.hero__utility{
  display:grid;
  grid-template-columns:minmax(0, 440px) minmax(0, 640px);
  justify-content:start;
  align-items:end;
  gap:10px;
  margin-top:8px;
}

.hero__utility-left{
  display:grid;
  gap:12px;
  align-content:start;
}

.hero .burn-widget{
  justify-self:start;
}

.burn-widget{
  --burn-accent:#4cbb17;
  --burn-accent-soft:rgba(76,187,23,.22);

  width:min(100%, 440px);
  display:grid;
  grid-template-columns:88px minmax(0, 1fr);
  grid-template-areas:
    "heading heading"
    "dial status"
    "dial stats";
  column-gap:14px;
  row-gap:8px;
  padding:0;
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
  border:none;
  box-shadow:none;
}

.burn-widget__topline{
  display:contents;
}

.burn-widget__heading{
  grid-area:heading;
  margin:0;
  color:var(--gold-soft);
  text-transform:uppercase;
  letter-spacing:.12em;
  font-weight:900;
  font-size:.82rem;
  line-height:1;
  white-space:nowrap;
}

.burn-widget__body{
  display:contents;
}

.burn-widget__dial{
  grid-area:dial;
  position:relative;
  width:88px;
  height:88px;
  border-radius:50%;
  align-self:start;
  background:
    radial-gradient(circle at 50% 50%, rgba(255,255,255,.04), rgba(255,255,255,0) 62%);
  border:1px solid rgba(255,255,255,.10);
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.03),
    0 6px 18px rgba(0,0,0,.18);
}

.burn-widget__dial::before{
  content:"";
  position:absolute;
  inset:10px;
  border-radius:50%;
  border:1px solid rgba(255,255,255,.06);
}

.burn-widget__needle{
  position:absolute;
  left:50%;
  bottom:50%;
  width:3px;
  height:29px;
  border-radius:999px;
  background:var(--burn-accent);
  transform-origin:center bottom;
  transform:translate(-50%, 0) rotate(0deg);
  z-index:2;
  box-shadow:0 0 10px rgba(0,0,0,.28);
}

.burn-widget__needle::after{
  content:"";
  position:absolute;
  left:50%;
  bottom:-4px;
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--burn-accent);
  transform:translateX(-50%);
  box-shadow:0 0 10px var(--burn-accent-soft);
}

.burn-widget__tick{
  position:absolute;
  z-index:3;
  font-size:.62rem;
  line-height:1;
  font-weight:900;
  letter-spacing:.04em;
  color:rgba(255,255,255,.26);
  text-transform:uppercase;
  transition:color .15s ease, text-shadow .15s ease, opacity .15s ease;
  pointer-events:none;
}

.burn-widget__tick.is-active{
  color:#fff;
  text-shadow:0 0 10px rgba(255,255,255,.22);
}

.burn-widget__tick--n{ top:5px; left:50%; transform:translateX(-50%); }
.burn-widget__tick--ne{ top:14px; right:12px; }
.burn-widget__tick--e{ top:50%; right:4px; transform:translateY(-50%); }
.burn-widget__tick--se{ right:11px; bottom:14px; }
.burn-widget__tick--s{ bottom:5px; left:50%; transform:translateX(-50%); }
.burn-widget__tick--sw{ bottom:14px; left:10px; }
.burn-widget__tick--w{ top:50%; left:5px; transform:translateY(-50%); }
.burn-widget__tick--nw{ top:14px; left:10px; }

.burn-widget__status{
  grid-area:status;
  align-self:start;
  display:flex;
  align-items:center;
  justify-content:flex-start;
  min-height:36px;
  width:min(100%, 228px);
  padding:7px 12px;
  margin:0;
  background:
    linear-gradient(180deg, rgba(255,255,255,.08), rgba(255,255,255,.02)),
    var(--burn-accent-soft);
  backdrop-filter:blur(8px) saturate(115%);
  -webkit-backdrop-filter:blur(8px) saturate(115%);
  border:1px solid rgba(255,255,255,.12);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    0 6px 18px rgba(0,0,0,.20);
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.05em;
}

.burn-widget__status::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--burn-accent);
  margin-right:10px;
  flex:0 0 auto;
  box-shadow:0 0 8px var(--burn-accent-soft);
}

.burn-widget__stats{
  grid-area:stats;
  align-self:end;
  display:grid;
  grid-template-columns:repeat(2, minmax(0, max-content));
  gap:10px 20px;
  min-height:44px;
  margin:0;
}

.burn-widget__stats > div{
  color:#f2ede6;
  font-size:1rem;
  line-height:1.1;
  white-space:nowrap;
}

.burn-widget__stats .label{
  color:var(--gold-soft);
  font-weight:800;
  margin-right:6px;
}

.burn-widget.is-danger{
  --burn-accent:#cb2a2a;
  --burn-accent-soft:rgba(203,42,42,.26);
}

.burn-widget.is-risky{
  --burn-accent:#ff8a00;
  --burn-accent-soft:rgba(255,138,0,.24);
}

.burn-widget.is-caution{
  --burn-accent:#ffd34f;
  --burn-accent-soft:rgba(255,211,79,.22);
}

.burn-widget.is-watch{
  --burn-accent:#8fd66d;
  --burn-accent-soft:rgba(143,214,109,.22);
}

.burn-widget.is-burn{
  --burn-accent:#4cbb17;
  --burn-accent-soft:rgba(76,187,23,.22);
}

.burn-widget.is-unavailable{
  --burn-accent:#9ca5af;
  --burn-accent-soft:rgba(156,165,175,.20);
}

/* ============================= */
/* PRIMARY NAV                  */
/* ============================= */

.primary-nav{
  position:sticky;
  top:var(--nav-h);
  z-index:950;
  background:rgba(6,6,6,.9);
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
  border-top:none;
}

.primary-nav__inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px;
  min-height:54px;
  display:flex;
  flex-wrap:wrap;
  align-items:center;
  gap:20px;
}

.primary-nav a{
  color:#f1efe9;
  font-weight:800;
  padding:10px 0;
  white-space:nowrap;
  text-transform:uppercase;
  font-size:.92rem;
  letter-spacing:.03em;
}

.primary-nav a:hover{
  color:var(--gold-soft);
}

/* ============================= */
/* URGENT NOTICES               */
/* ============================= */

.hero__actions{
  position:relative;
  z-index:4;
}

.urgent-notices{
  position:relative;
  z-index:1;
  background:transparent;
  border:none;
  align-self:end;
}

.urgent-notices[hidden]{
  display:none !important;
}

.urgent-notices--hero{
  width:min(100%, 640px);
  justify-self:start;
}

.urgent-notices__inner{
  width:100%;
  margin:0;
  padding:0;
  display:grid;
  gap:0;
}

.notice-banner{
  --notice-shift:calc(var(--notice-index, 0) * 5px);

  position:relative;
  z-index:calc(100 - var(--notice-index, 0));
  width:100%;
  min-height:28px;
  margin-top:calc(var(--notice-index, 0) * -1px);
  padding:0;
  border:none;
  color:rgba(255,255,255,.90);
  overflow:hidden;
  isolation:isolate;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.03),
    0 6px 14px rgba(0,0,0,.16);
  backdrop-filter:blur(8px) saturate(118%);
  -webkit-backdrop-filter:blur(8px) saturate(118%);
  transform:translateX(calc(-8px + var(--notice-shift)));
  opacity:0;
  animation:noticeCardEnter .42s cubic-bezier(.2,.72,.18,1) forwards;
  animation-delay:calc(var(--notice-index, 0) * 45ms);
}

.notice-banner::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(
      90deg,
      rgba(255,255,255,0) 0%,
      rgba(255,255,255,0) 18%,
      rgba(255,255,255,.03) 24%,
      rgba(255,255,255,0) 100%
    );
  pointer-events:none;
  z-index:0;
}

.notice-banner::after{
  content:"";
  position:absolute;
  inset:0;
  background:none;
  pointer-events:none;
  z-index:0;
}

.notice-banner.is-pinned{
  z-index:200;
}

.notice-banner__body{
  position:relative;
  z-index:1;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto auto;
  align-items:center;
  gap:10px;
  min-height:28px;
  padding:3px 10px 3px 46px;
}

.notice-banner__main{
  min-width:0;
  display:flex;
  align-items:center;
  overflow:hidden;
}

.notice-banner__title-track{
  position:relative;
  min-width:0;
  width:100%;
  overflow:hidden;
  white-space:nowrap;
  line-height:1.1;
}

.notice-banner__title-text{
  display:inline-block;
  min-width:max-content;
  max-width:100%;
  color:rgba(255,255,255,.90);
  font-size:.84rem;
  font-weight:900;
  line-height:1.1;
  vertical-align:middle;
  will-change:transform;
}

.notice-banner__title-track.is-marquee-running .notice-banner__title-text{
  animation:noticeMarquee 8s linear infinite;
  animation-delay:.18s;
}

.notice-banner__meta{
  align-self:center;
  justify-self:end;
  color:rgba(255,255,255,.82);
  font-size:.68rem;
  font-weight:800;
  line-height:1;
  white-space:nowrap;
}

.notice-banner__close{
  align-self:center;
  justify-self:end;
  position:relative;
  z-index:1;
  border:none;
  background:transparent;
  color:rgba(255,255,255,.88);
  font-size:.78rem;
  line-height:1;
  cursor:pointer;
  width:14px;
  height:14px;
  display:grid;
  place-items:center;
  padding:0;
  opacity:.9;
  transition:opacity .16s ease, transform .16s ease;
}

.notice-banner__close:hover{
  opacity:1;
  transform:scale(1.05);
}

.notice-banner--alert-red{
  background:
    linear-gradient(90deg, rgba(248,0,0,0) 0%, rgba(248,0,0,.80) 20%, rgba(248,0,0,.80) 100%);
}
.notice-banner--alert-orange1{
  background:
    linear-gradient(90deg, rgba(242,101,34,0) 0%, rgba(242,101,34,.80) 20%, rgba(242,101,34,.80) 100%);
}
.notice-banner--alert-orange2{
  background:
    linear-gradient(90deg, rgba(247,148,29,0) 0%, rgba(247,148,29,.80) 20%, rgba(247,148,29,.80) 100%);
}
.notice-banner--alert-orange3{
  background:
    linear-gradient(90deg, rgba(249,160,58,0) 0%, rgba(249,160,58,.80) 20%, rgba(249,160,58,.80) 100%);
}
.notice-banner--alert-orange4{
  background:
    linear-gradient(90deg, rgba(255,122,0,0) 0%, rgba(255,122,0,.80) 20%, rgba(255,122,0,.80) 100%);
}
.notice-banner--alert-amber{
  background:
    linear-gradient(90deg, rgba(244,178,45,0) 0%, rgba(244,178,45,.80) 20%, rgba(244,178,45,.80) 100%);
}
.notice-banner--alert-yellow{
  background:
    linear-gradient(90deg, rgba(240,224,97,0) 0%, rgba(240,224,97,.80) 20%, rgba(240,224,97,.80) 100%);
}
.notice-banner--alert-blue{
  background:
    linear-gradient(90deg, rgba(47,149,232,0) 0%, rgba(47,149,232,.80) 20%, rgba(47,149,232,.80) 100%);
}
.notice-banner--alert-olive{
  background:
    linear-gradient(90deg, rgba(109,143,45,0) 0%, rgba(109,143,45,.80) 20%, rgba(109,143,45,.80) 100%);
}
.notice-banner--alert-earth{
  background:
    linear-gradient(90deg, rgba(169,132,88,0) 0%, rgba(169,132,88,.80) 20%, rgba(169,132,88,.80) 100%);
}
.notice-banner--alert-white{
  background:
    linear-gradient(90deg, rgba(239,239,239,0) 0%, rgba(239,239,239,.80) 20%, rgba(239,239,239,.80) 100%);
}
.notice-banner--alert-lime{
  background:
    linear-gradient(90deg, rgba(183,239,0,0) 0%, rgba(183,239,0,.80) 20%, rgba(183,239,0,.80) 100%);
}

.notice-expired{
  margin-top:6px;
  border:none;
  background:
    linear-gradient(90deg, rgba(110,110,110,0) 0%, rgba(110,110,110,.76) 20%, rgba(110,110,110,.76) 100%);
  box-shadow:0 6px 14px rgba(0,0,0,.14);
  backdrop-filter:blur(8px) saturate(108%);
  -webkit-backdrop-filter:blur(8px) saturate(108%);
}

.notice-expired[open]{
  background:
    linear-gradient(90deg, rgba(110,110,110,0) 0%, rgba(110,110,110,.80) 20%, rgba(110,110,110,.80) 100%);
}

.notice-expired__summary{
  list-style:none;
  cursor:pointer;
  min-height:28px;
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:8px;
  padding:3px 10px 3px 46px;
  color:rgba(255,255,255,.88);
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.04em;
  line-height:1;
}

.notice-expired__summary::-webkit-details-marker{
  display:none;
}

.notice-expired__label{
  min-width:0;
}

.notice-expired__count{
  color:rgba(255,255,255,.72);
  font-size:.72rem;
  line-height:1;
}

.notice-expired__list{
  display:grid;
  gap:0;
  border-top:1px solid rgba(255,255,255,.06);
}

.notice-expired__item{
  display:grid;
  grid-template-columns:minmax(0, 1fr) auto;
  align-items:center;
  gap:10px;
  padding:4px 10px 4px 46px;
  border-top:1px solid rgba(255,255,255,.05);
}

.notice-expired__item:first-child{
  border-top:none;
}

.notice-expired__title{
  color:rgba(255,255,255,.88);
  font-size:.8rem;
  font-weight:800;
  line-height:1.1;
  min-width:0;
}

.notice-expired__meta{
  color:rgba(255,255,255,.68);
  font-size:.66rem;
  font-weight:700;
  line-height:1;
  white-space:nowrap;
}

@keyframes noticeCardEnter{
  from{
    opacity:0;
    transform:translateX(calc(-14px + var(--notice-shift)));
  }
  to{
    opacity:1;
    transform:translateX(var(--notice-shift));
  }
}

@keyframes noticeMarquee{
  0%{
    transform:translateX(0);
  }
  8%{
    transform:translateX(0);
  }
  92%{
    transform:translateX(calc(var(--marquee-distance, 0px) * -1));
  }
  100%{
    transform:translateX(calc(var(--marquee-distance, 0px) * -1));
  }
}

/* ============================= */
/* GENERAL SECTIONS             */
/* ============================= */

.section{
  padding:72px 0;
}

.section__inner{
  max-width:var(--max);
  margin:0 auto;
  padding:0 20px;
}

.section__inner--split{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  gap:24px;
  align-items:start;
}

.section-heading{
  max-width:860px;
  margin-bottom:24px;
}

.kicker,
.public-calendar__detail-kicker,
.public-calendar__event-kicker{
  color:var(--red-bright);
}

.kicker{
  margin:0 0 10px;
  text-transform:uppercase;
  letter-spacing:.12em;
  font-size:.8rem;
  font-weight:900;
}

.section h2{
  margin:0 0 12px;
  font-size:clamp(1.8rem, 3vw, 3rem);
  line-height:1.02;
  text-transform:uppercase;
}

.info-card-grid,
.station-grid{
  display:grid;
  gap:14px;
}

.info-card-grid{
  grid-template-columns:repeat(2, minmax(0, 1fr));
}

.info-card,
.station-card,
.history-panel__item,
.update-card,
.calendar-card,
.map-sidepanel__block,
.support-card{
  background:var(--panel);
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow);
}

.info-card,
.station-card,
.history-panel__item,
.support-card{
  padding:16px;
}

h3{
  color:var(--gold-soft);
}

.info-card h3,
.station-card h3,
.history-panel__item h3,
.support-card h3{
  margin:0 0 8px;
  text-transform:uppercase;
  font-size:1rem;
  letter-spacing:.02em;
}

.section--intro{
  background:
    linear-gradient(
      180deg,
      rgba(0,0,0,.26) 0%,
      rgba(0,0,0,.18) 6%,
      rgba(0,0,0,.08) 12%,
      rgba(0,0,0,0) 25%
    ),
    transparent;
}

.section{
  padding:72px 0;
}

/* ============================= */
/* LISTS / CALENDAR / UPDATES   */
/* ============================= */

.plain-list{
  list-style:none;
  padding:0;
  margin:0;
  display:grid;
  gap:8px;
}

/* ============================= */
/* PUBLIC EVENTS CALENDAR        */
/* ============================= */

.section--calendar .section__inner{
  display:grid;
  gap:12px;
}

.section--calendar{
  background:
    linear-gradient(180deg, rgba(159,23,23,.03), rgba(159,23,23,0) 100%),
    transparent;
}

.public-calendar{
  width:100%;
}

.public-calendar__grid{
  display:grid;
  grid-template-columns:minmax(320px, 1.05fr) minmax(320px, .95fr);
  gap:20px;
  align-items:stretch;
}

.public-calendar__left,
.public-calendar__right{
  min-width:0;
}

.public-calendar__left{
  display:grid;
  gap:14px;
}

.public-calendar__nav{
  display:grid;
  grid-template-columns:52px minmax(0,1fr) 52px;
  gap:10px;
  align-items:center;
}

.public-calendar__nav-btn{
  border:1px solid rgba(255,255,255,.14);
  background:rgba(255,255,255,.04);
  color:var(--text);
  min-height:46px;
  font-size:1.6rem;
  line-height:1;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, color .16s ease;
}

.public-calendar__nav-btn:hover{
  border-color:rgba(200,162,59,.38);
  background:rgba(200,162,59,.10);
  color:var(--gold-soft);
}

.public-calendar__nav-label{
  min-width:0;
  min-height:46px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  padding:10px 12px;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03);
  font-weight:900;
  letter-spacing:.03em;
  text-transform:uppercase;
}

#pc-currentMonth{
  color:#fff;
}

#pc-currentYear{
  color:var(--gold-soft);
}

.public-calendar__table-wrap{
  overflow:hidden;
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.025), rgba(255,255,255,.01));
}

.public-calendar__table{
  width:100%;
  border-collapse:collapse;
  table-layout:fixed;
}

.public-calendar__table th{
  padding:10px 6px;
  border-bottom:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03);
  color:var(--gold-soft);
  font-size:.76rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.public-calendar__table td{
  height:84px;
  padding:0;
  vertical-align:top;
  border-right:1px solid rgba(255,255,255,.06);
  border-bottom:1px solid rgba(255,255,255,.06);
  background:rgba(255,255,255,.01);
}

.public-calendar__table tr td:last-child{
  border-right:0;
}

.public-calendar__day{
  appearance:none;
  width:100%;
  height:100%;
  border:0;
  background:transparent;
  color:var(--text);
  text-align:left;
  padding:8px 8px 10px;
  display:grid;
  grid-template-rows:auto 1fr;
  gap:6px;
  cursor:pointer;
  transition:background .14s ease, color .14s ease, box-shadow .14s ease;
}

.public-calendar__day:hover{
  background:rgba(255,255,255,.04);
}

.public-calendar__day.is-selected{
  background:rgba(159,23,23,.26);
  box-shadow:inset 0 0 0 1px rgba(203,42,42,.44);
}

.public-calendar__day.is-today .public-calendar__day-number{
  color:var(--gold-soft);
}

.public-calendar__day-number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:28px;
  height:28px;
  font-size:.95rem;
  font-weight:900;
  line-height:1;
}

.public-calendar__day-markers{
  display:flex;
  flex-wrap:wrap;
  align-content:flex-start;
  gap:4px;
  min-height:18px;
}

.public-calendar__marker{
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--red-bright);
  box-shadow:0 0 0 1px rgba(255,255,255,.08);
}

.public-calendar__day--placeholder{
  cursor:default;
  pointer-events:none;
}

.public-calendar__table td.is-outside-month{
  background:rgba(255,255,255,.005);
}

.public-calendar__right{
  border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.015));
  min-height:100%;
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
}

.public-calendar__detail-head{
  padding:16px 18px 14px;
  border-bottom:1px solid rgba(255,255,255,.08);
}

.public-calendar__detail-kicker{
  margin:0 0 6px;
  font-size:.76rem;
  font-weight:900;
  letter-spacing:.1em;
  text-transform:uppercase;
}

.public-calendar__detail-title{
  margin:0;
  color:#fff;
  font-size:1.15rem;
  line-height:1.2;
}

.public-calendar__detail-body{
  min-height:0;
  padding:18px;
  overflow:auto;
}

.public-calendar__default{
  color:#e7e0d7;
}

.public-calendar__default p{
  margin:0;
}

.public-calendar__detail-layout{
  display:grid;
  gap:16px;
}

.public-calendar__event-list{
  display:grid;
  gap:8px;
}

.public-calendar__event-chip{
  appearance:none;
  width:100%;
  border:1px solid rgba(255,255,255,.10);
  background:rgba(255,255,255,.03);
  color:var(--text);
  padding:10px 12px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  gap:10px;
  align-items:flex-start;
  text-align:left;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, transform .16s ease;
}

.public-calendar__event-chip:hover{
  border-color:rgba(200,162,59,.30);
  background:rgba(200,162,59,.08);
}

.public-calendar__event-chip.is-active{
  border-color:rgba(203,42,42,.40);
  background:rgba(159,23,23,.22);
}

.public-calendar__event-chip-icon{
  font-size:1rem;
  line-height:1.2;
}

.public-calendar__event-chip-text{
  min-width:0;
  display:grid;
  gap:3px;
}

.public-calendar__event-chip-title{
  font-weight:800;
  color:#fff;
}

.public-calendar__event-chip-time{
  color:var(--muted);
  font-size:.88rem;
}

.public-calendar__event-card{
  display:grid;
  gap:10px;
  padding:14px 14px 16px;
  border:1px solid rgba(255,255,255,.08);
  background:rgba(255,255,255,.025);
}

.public-calendar__event-kicker{
  margin:0;
  font-size:.74rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}

.public-calendar__event-title{
  margin:0;
  display:flex;
  align-items:flex-start;
  gap:10px;
  color:#fff;
  font-size:1.1rem;
  line-height:1.2;
}

.public-calendar__event-icon{
  flex:0 0 auto;
}

.public-calendar__event-time{
  margin:0;
  color:var(--muted);
  font-weight:700;
}

.public-calendar__event-copy p{
  margin:0;
  color:#ece7e0;
}

@media (max-width: 980px){
  .public-calendar__grid{
    grid-template-columns:1fr;
  }

  .public-calendar__table td{
    height:84px;
  }
}

@media (max-width: 640px){
  .public-calendar__nav{
    grid-template-columns:44px minmax(0,1fr) 44px;
  }

  .public-calendar__nav-btn{
    min-height:42px;
  }

  .public-calendar__nav-label{
    min-height:42px;
    padding:8px 10px;
    font-size:.92rem;
  }

  .public-calendar__table th{
    font-size:.68rem;
    padding:8px 4px;
  }

  .public-calendar__table td{
    height:70px;
  }

  .public-calendar__day{
    padding:6px 6px 8px;
  }

  .public-calendar__day-number{
    width:24px;
    height:24px;
    font-size:.88rem;
  }

  .public-calendar__detail-head,
  .public-calendar__detail-body{
    padding:14px;
  }
}

.update-grid{
  display:grid;
  grid-template-columns:repeat(3, minmax(0, 1fr));
  gap:14px;
}

.update-card{
  padding:18px;
}

.update-card h3{
  margin:0 0 10px;
  text-transform:uppercase;
}

.text-link{
  color:var(--gold-soft);
  font-weight:800;
}

/* ============================= */
/* HISTORY                      */
/* ============================= */

.section--history{
  background:
    linear-gradient(180deg, rgba(159,23,23,0), rgba(159,23,23,.03) 100%),
    transparent;
}

.history-panel{
  display:grid;
  gap:24px;
}

.section--history .section__inner--split{
  align-items:end;
}

@media (max-width: 980px){
  .section--history .section__inner--split{
    align-items:start;
  }
}

.section--history .history-panel__item{
  background:linear-gradient(180deg, rgba(17,17,17,98), rgba(13,13,13,98));
}

.section--history .history-panel__item p{
  margin:0;
}

/* ============================= */
/* SERVICES EXPLORER            */
/* ============================= */

.section--services-explorer{
  background:
    linear-gradient(180deg, rgba(159,23,23,.03), rgba(159,23,23,0) 100%),
    transparent;
}

.services-explorer{
  align-items:stretch;
}

.services-explorer__intro,
.services-explorer__detail{
  min-height:min(78vh, 820px);
}

.services-explorer__intro{
  display:flex;
  flex-direction:column;
  justify-content:center;
}

.services-explorer__detail{
  padding:28px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:var(--panel);
  border:1px solid rgba(255,255,255,08);
  box-shadow:var(--shadow);
}

.services-explorer__detail h3{
  margin:0 0 10px;
  text-transform:uppercase;
  font-size:clamp(1.5rem, 2.2vw, 2.2rem);
  line-height:1.02;
}

.services-explorer__detail p{
  margin:0 0 14px;
}

.services-explorer__note{
  margin-top:auto;
  color:var(--muted);
  font-size:.98rem;
}

.services-explorer__list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:12px;
  margin-top:24px;
}

.service-chip{
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.03);
  color:var(--text);
  padding:14px 16px;
  text-align:left;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.02em;
  cursor:pointer;
  transition:border-color .16s ease, background .16s ease, color .16s ease, transform .16s ease;
}

.service-chip:hover,
.service-chip:focus-visible,
.service-chip.is-active{
  border-color:rgba(200,162,59,.42);
  background:rgba(200,162,59,.12);
  color:var(--gold-soft);
  outline:none;
  transform:translateY(-1px);
}

.services-explorer{
  display:grid;
  grid-template-columns:minmax(0, .86fr) 400px;
  gap:28px;
  align-items:stretch;
}

.services-explorer__intro{
  min-width:0;
}

.services-explorer__list{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
  margin-top:24px;
  max-width:620px;
}

.service-chip{
  min-height:62px;
  padding:20px 22px;
  border:1px solid rgba(255,255,255,.12);
  background:#0b0b0b;
  color:#fff;
  text-align:left;
  text-transform:uppercase;
  font-weight:900;
  letter-spacing:.02em;
  cursor:pointer;
  transition:border-color .18s ease, background .18s ease, color .18s ease, transform .18s ease;
}

.service-chip:hover,
.service-chip:focus-visible{
  border-color:rgba(200,162,59,.55);
}

.service-chip.is-active{
  background:rgba(200,162,59,.12);
  border-color:rgba(200,162,59,.6);
  color:var(--gold-soft);
}

.services-explorer__detail{
  --service-bg-image:none;
  position:relative;
  overflow:hidden;
  min-height:100%;
  padding:24px 24px 26px;
  background:#111;
  border:1px solid rgba(255,255,255,.08);
  box-shadow:var(--shadow);
  isolation:isolate;
}

.services-explorer__detail-bg,
.services-explorer__detail-overlay{
  position:absolute;
  inset:0;
  pointer-events:none;
}

.services-explorer__detail-bg{
  z-index:0;
  background-image:var(--service-bg-image);
  background-size:cover;
  background-position:center center;
  background-repeat:no-repeat;
  opacity:.34;
  transform:scale(1.02);
  transition:background-image .2s ease, opacity .22s ease, transform .22s ease;
}

.services-explorer__detail-overlay{
  z-index:1;
  background:
    linear-gradient(180deg, rgba(0,0,0,.58) 0%, rgba(0,0,0,.72) 40%, rgba(0,0,0,.84) 100%),
    rgba(0,0,0,.28);
}

.services-explorer__detail-content{
  position:relative;
  z-index:2;
}

.services-explorer__detail h3{
  margin:0 0 14px;
  text-transform:uppercase;
}

.services-explorer__copy{
  display:grid;
  gap:12px;
}

.services-explorer__copy p{
  margin:0;
  color:#f2ede6;
}

@media (max-width: 980px){
  .services-explorer{
    grid-template-columns:1fr;
  }

  .services-explorer__detail{
    min-height:420px;
  }
}

@media (max-width: 640px){
  .services-explorer__list{
    grid-template-columns:1fr;
  }

  .services-explorer__detail{
    padding:20px 18px 22px;
    min-height:360px;
  }
}

/* ============================= */
/* SUPPORT                      */
/* ============================= */

.section--support-page{
  background:
    linear-gradient(180deg, rgba(159,23,23,0), rgba(159,23,23,.03) 100%),
    transparent;
}

.support-page{
  grid-template-columns:1fr;
  gap:26px;
}

.support-page__intro{
  max-width:900px;
}

.support-page__grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:14px;
}

.support-card{
  padding:20px;
  min-height:100%;
  display:flex;
  flex-direction:column;
}

.support-card p{
  margin:0;
}

.support-card__actions{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  margin-top:auto;
  padding-top:16px;
}

/* ============================= */
/* STATIONS                     */
/* ============================= */

.section--stations{
  background:rgba(159,23,23,.03);
}

.station-grid{
  grid-template-columns:repeat(3, minmax(0, 1fr));
}

.station-card p{
  margin:0;
}

/* ============================= */
/* FOOTER / MODAL       */
/* ============================= */

.empty-state{
  padding:24px;
  border:1px dashed rgba(255,255,255,.16);
  color:var(--muted);
}

.site-footer{
  border-top:1px solid rgba(255,255,255,.08);
  background:#080808;
}

.site-footer__inner{
  max-width:var(--max);
  margin:0 auto;
  padding:30px 20px 38px;
  display:grid;
  grid-template-columns:1.2fr 1fr 1fr 1fr;
  gap:22px;
}

.site-footer h3{
  margin:0 0 10px;
  text-transform:uppercase;
  font-size:1rem;
}

.modal{
  border:none;
  padding:0;
  background:transparent;
}

.modal::backdrop{
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(4px);
}

.modal__card{
  width:min(760px, calc(100vw - 24px));
  margin:auto;
  background:#101010;
  border:1px solid rgba(255,255,255,.1);
  box-shadow:var(--shadow);
  color:var(--text);
  overflow:hidden;
}

.modal__header,
.modal__footer{
  padding:18px 20px;
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
}

.modal__footer{
  border-bottom:none;
  border-top:1px solid rgba(255,255,255,.08);
  justify-content:flex-end;
}

.modal__body{
  padding:20px;
}

.modal__notice{
  margin-top:0;
  padding:12px 14px;
  background:rgba(200,162,59,.12);
  color:#f0dfaa;
  border:1px solid rgba(200,162,59,.22);
}

.icon-button{
  width:40px;
  height:40px;
  border:none;
  background:rgba(255,255,255,.08);
  color:#fff;
  cursor:pointer;
  font-size:1.3rem;
}

.form-grid{
  display:grid;
  grid-template-columns:repeat(2, minmax(0, 1fr));
  gap:16px;
}

.form-grid label{
  display:grid;
  gap:8px;
}

.form-grid__full{
  grid-column:1 / -1;
}

input,
select,
textarea{
  width:100%;
  border:1px solid rgba(255,255,255,.12);
  background:#171717;
  color:#fff;
  padding:12px 14px;
}

input::placeholder,
textarea::placeholder{
  color:#999;
}

code{
  background:rgba(255,255,255,.08);
  padding:2px 6px;
}

/* ============================= */
/* RESPONSIVE                   */
/* ============================= */

@media (max-width: 1200px){
  .hero__content{
    gap:16px;
  }

  .hero__title{
    font-size:clamp(2.2rem, 5.1vw, 4.8rem);
  }

  .hero__lede{
    max-width:64rem;
  }

  .resources-carousel__grid{
    grid-template-columns:repeat(3, minmax(0, 1fr));
  }
}

.footer-link-button{
  appearance:none;
  background:none;
  border:0;
  padding:0;
  margin:0;
  color:inherit;
  font:inherit;
  line-height:inherit;
  text-decoration:none;
  cursor:pointer;
}

.footer-link-button:hover,
.footer-link-button:focus-visible{
  text-decoration:underline;
}

.footer-link-button:focus-visible{
  outline:1px solid rgba(255,255,255,.45);
  outline-offset:2px;
}

dialog.modal--footer{
  width:min(920px, calc(100vw - 48px));
  max-width:920px;
  height:min(88vh, 980px);
  max-height:min(88vh, 980px);
  padding:0;
  border:1px solid rgba(239,207,114,.16);
  background:#060405;
  color:#f4f4f4;
  box-shadow:0 28px 80px rgba(0,0,0,.58);
  overflow:hidden;
}

dialog.modal--footer::backdrop{
  background:rgba(0,0,0,.72);
  backdrop-filter:blur(4px);
}

dialog.modal--footer .modal__card{
  width:100%;
  height:100%;
  margin:0;
  display:flex;
  flex-direction:column;
  background:
    linear-gradient(180deg, rgba(255,255,255,.02), rgba(255,255,255,0)),
    #060405;
  border:none;
  box-shadow:none;
  overflow:hidden;
}

dialog.modal--footer .modal__header{
  flex:0 0 auto;
  padding:22px 24px;
  border-bottom:1px solid rgba(255,255,255,.08);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
}

dialog.modal--footer .modal__header h2{
  margin:0;
  color:#f4f4f4;
  font-size:2rem;
  line-height:1.1;
}

dialog.modal--footer .icon-button{
  flex:0 0 auto;
}

dialog.modal--footer .modal__body{
  flex:1 1 auto;
  min-height:0;
  overflow-y:auto;
  overflow-x:hidden;
  padding:28px 24px 30px;
  scrollbar-width:thin;
  scrollbar-color:rgba(200,162,59,.82) rgba(255,255,255,.06);
}

dialog.modal--footer .modal__body::-webkit-scrollbar{
  width:10px;
}

dialog.modal--footer .modal__body::-webkit-scrollbar-track{
  background:rgba(255,255,255,.04);
}

dialog.modal--footer .modal__body::-webkit-scrollbar-thumb{
  background:rgba(200,162,59,.82);
  border:2px solid #060405;
  border-radius:2px;
}

dialog.modal--footer .modal__body::-webkit-scrollbar-thumb:hover{
  background:rgba(239,207,114,.92);
}

.footer-modal-content{
  display:flex;
  flex-direction:column;
  gap:28px;
}

.footer-modal-section{
  display:flex;
  flex-direction:column;
  gap:10px;
}

.footer-modal-section h3{
  margin:0;
  color:#efcf72;
  font-size:1.1rem;
  line-height:1.2;
}

.footer-modal-section h4{
  margin:8px 0 0;
  color:#d4a63c;
  font-size:.98rem;
  line-height:1.2;
}

.footer-modal-section p,
.footer-modal-section li{
  margin:0;
  color:#f4f4f4;
  line-height:1.65;
}

.footer-modal-section ul,
.footer-modal-section ol{
  margin:0;
  padding-left:20px;
}

.footer-faq-list{
  display:flex;
  flex-direction:column;
  gap:10px;
  margin:0;
  padding-left:20px;
}

.footer-faq-list li{
  line-height:1.55;
}

@media (max-width: 1080px){
  .section__inner--split,
  .site-footer__inner{
    grid-template-columns:1fr;
  }

  .update-grid,
  .station-grid,
  .support-page__grid{
    grid-template-columns:1fr 1fr;
  }

  .services-explorer__intro,
  .services-explorer__detail{
    min-height:unset;
  }

  .resources-page__header{
    grid-template-columns:1fr;
    align-items:start;
  }

  .resources-page__search{
    justify-self:start;
    max-width:none;
  }

  .resources-carousel__grid{
    grid-template-columns:repeat(2, minmax(0, 1fr));
  }

  .hero__title{
    width:100%;
    max-width:100%;
    font-size:clamp(2.15rem, 5.4vw, 4.35rem);
  }

  .hero__title .hero__line{
    white-space:normal;
  }

  .hero__lede{
    max-width:100%;
    text-align:left;
    text-wrap:pretty;
  }

  .hero__utility{
    grid-template-columns:1fr;
    gap:14px;
  }

  .hero__utility-left{
    max-width:470px;
  }

  .urgent-notices{
    align-self:start;
  }

  .urgent-notices--hero{
    width:min(100%, 640px);
    justify-self:start;
  }
}

@media (max-width: 760px){
  .site-header__inner{
    padding:10px 14px;
  }

  .hero__content,
  .section__inner,
  .site-footer__inner,
  .primary-nav__inner{
    padding-left:14px;
    padding-right:14px;
  }

  .hero{
    min-height:unset;
  }

  .hero__content{
    padding-top:56px;
    padding-bottom:28px;
  }

  .hero__title{
    font-size:clamp(2rem, 9vw, 3.4rem);
    line-height:.96;
  }

  .hero__eyebrow{
    letter-spacing:.1em;
    font-size:.76rem;
  }

  .hero__lede{
    font-size:1rem;
  }

  .hero__utility{
    gap:12px;
  }

  .hero__utility-left,
  .urgent-notices--hero{
    max-width:none;
    width:100%;
  }

  .burn-widget{
    width:100%;
    grid-template-columns:72px minmax(0, 1fr);
    column-gap:12px;
    row-gap:7px;
  }

  .burn-widget__dial{
    width:72px;
    height:72px;
  }

  .burn-widget__dial::before{
    inset:8px;
  }

  .burn-widget__needle{
    height:22px;
  }

  .burn-widget__tick{
    font-size:.54rem;
  }

  .burn-widget__tick--n{ top:4px; }
  .burn-widget__tick--ne{ top:11px; right:9px; }
  .burn-widget__tick--e{ right:3px; }
  .burn-widget__tick--se{ right:9px; bottom:11px; }
  .burn-widget__tick--s{ bottom:4px; }
  .burn-widget__tick--sw{ bottom:11px; left:8px; }
  .burn-widget__tick--w{ left:3px; }
  .burn-widget__tick--nw{ top:11px; left:8px; }

  .burn-widget__status{
    width:min(100%, 210px);
    min-height:32px;
  }

  .burn-widget__stats{
    gap:8px 14px;
    min-height:36px;
  }

  .burn-widget__stats > div{
    font-size:.96rem;
  }

  .notice-banner{
    min-height:24px;
    margin-top:calc(var(--notice-index, 0) * -1px);
  }

  .notice-banner__body{
    position:relative;
    z-index:1;
    display:grid;
    grid-template-columns:minmax(0, 1fr) max-content auto;
    align-items:center;
    column-gap:14px;
    min-height:28px;
    padding:3px 10px 3px 46px;
  }

  .notice-banner__meta{
    display:none;
  }

  .notice-banner__title-text{
    font-size:.84rem;
  }

  .form-grid,
  .info-card-grid,
  .update-grid,
  .station-grid,
  .support-page__grid,
  .services-explorer__list{
    grid-template-columns:1fr;
  }

  .services-explorer__detail{
    padding:20px;
  }

  .primary-nav__inner{
    gap:14px;
    overflow-x:auto;
    flex-wrap:nowrap;
    scrollbar-width:none;
    -webkit-mask-image:linear-gradient(90deg, #000 calc(100% - 36px), transparent);
    mask-image:linear-gradient(90deg, #000 calc(100% - 36px), transparent);
    padding-right:36px;
  }

  .primary-nav__inner::-webkit-scrollbar{
    display:none;
  }

  .site-footer__inner{
    padding-bottom:34px;
  }
}

/* Long notice titles fade out instead of butting into the timestamp. */
.notice-banner__title-track{
  -webkit-mask-image:linear-gradient(90deg, #000 calc(100% - 22px), transparent);
  mask-image:linear-gradient(90deg, #000 calc(100% - 22px), transparent);
}

.notice-banner__title-track.is-marquee-running{
  -webkit-mask-image:none;
  mask-image:none;
}

/* Phone header: one line, no wrapped brand or buttons. */
@media (max-width: 560px){
  .brand{
    gap:10px;
  }

  .brand__patch{
    width:44px;
    height:44px;
    flex-basis:44px;
  }

  .brand__sub{
    display:none;
  }

  .brand__name{
    font-size:.95rem;
    line-height:1.1;
  }

  .site-header__actions{
    gap:12px;
    flex-shrink:0;
  }

  .header-link,
  .account-chip{
    white-space:nowrap;
  }

  .header-link--button{
    padding:9px 12px;
  }
}
/* Shown while crew leadership is viewing the site as a public account. */
.impersonation-bar{
  position:relative;
  z-index:1100;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  flex-wrap:wrap;
  padding:8px 16px;
  background:#5a1010;
  border-bottom:2px solid var(--gold);
  color:#fff;
  font-size:.9rem;
}

.impersonation-bar .btn{
  padding:8px 12px;
}
