
:root{
  --bg:#000000;
  --bg2:#000000;
  --panel:#2a4659;
  --panel-2:#1f3545;
  --line:rgba(255,255,255,.08);
  --text:#ffffff;
  --muted:#d7e0e6;
  --gold:#f2ac21;
  --gold-soft:#ffd36e;
  --shadow:0 18px 42px rgba(0,0,0,.35);
  --radius:26px;
  --max:1200px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body.rfn-body{
  margin:0;
  font-family:"Open Sauce Sans", Arial, Helvetica, sans-serif;
  color:var(--text);
  background:
    radial-gradient(circle at top right, rgba(242,172,33,.06), transparent 24%),
    linear-gradient(180deg, #000000 0%, #000000 55%, #000000 100%);
  overflow-x:hidden;
}
img{max-width:100%;display:block}
a{text-decoration:none;color:inherit}
.container{max-width:var(--max);margin:0 auto;padding:0 20px}

.site-header{
  position:sticky;
  top:0;
  z-index:1000;
  backdrop-filter:blur(12px);
  background:rgba(0,0,0,.82);
  border-bottom:1px solid var(--line);
}
.header-inner{
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
}
.brand img{height:60px;width:auto}
.site-nav{
  display:flex;
  align-items:center;
  gap:18px;
}
.site-nav a{
  color:var(--muted);
  font-size:15px;
}
.site-nav a:hover,.site-nav a.active{color:#fff}
.lang-switch{
  display:flex;
  align-items:center;
  gap:8px;
  margin-left:8px;
}
.lang-switch a{
  padding:7px 10px;
  border-radius:999px;
  border:1px solid transparent;
}
.lang-switch a.active{
  border-color:var(--line);
  background:rgba(255,255,255,.05);
  color:#fff;
}
.nav-toggle{
  display:none;
  background:transparent;
  border:1px solid var(--line);
  color:#fff;
  border-radius:12px;
  padding:10px 12px;
  font-size:18px;
}
.top-cta{
  display:inline-flex;
  align-items:center;
  gap:8px;
  min-height:46px;
  padding:0 16px;
  border-radius:999px;
  background:var(--gold);
  color:#111;
  font-weight:700;
  box-shadow:0 12px 24px rgba(242,172,33,.18);
}
.top-cta:hover{background:var(--gold-soft)}

.page-stack{
  display:grid;
  gap:28px;
  padding:24px 0 54px;
}
.snap-panel{
  width:100%;
}
.snap-panel img{
  width:100%;
  height:auto;
  border-radius:var(--radius);
  box-shadow:var(--shadow);
}
.snap-panel.first img{
  width:100%;
  max-width:none;
}
.grid-panels{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:28px;
}
.full-panel{
  grid-column:1 / -1;
}
.footer{
  margin-top:12px;
  background:#2a4659;
  border-top:1px solid var(--line);
}
.footer-inner{
  padding:24px 20px 38px;
  display:grid;
  grid-template-columns:1.2fr .9fr .9fr;
  gap:22px;
}
.footer p,.footer a{color:var(--muted)}
.footer strong{display:block;margin-bottom:10px}
.footer-brand img{height:46px;width:auto;margin-bottom:12px}

.footer-meta{
  display:flex;
  flex-wrap:wrap;
  justify-content:center;
  align-items:center;
  gap:10px 22px;
  font-size:.98rem;
}
.footer-meta a{
  display:inline-flex;
  align-items:center;
  gap:6px;
  white-space:nowrap;
}
@media (max-width: 700px){
  .footer-meta{
    flex-direction:column;
    gap:8px;
    font-size:.92rem;
  }
  .footer-meta a{
    white-space:normal;
    text-align:center;
    justify-content:center;
  }
}

/* Locator */
.locator-intro{
  padding:26px 0 12px;
}
.locator-intro h1{
  margin:0 0 8px;
  font-size:clamp(2rem, 4vw, 3.4rem);
  line-height:1.06;
  letter-spacing:-.03em;
}
.locator-intro p{
  margin:0;
  max-width:780px;
  color:var(--muted);
  font-size:1.02rem;
}
.locator-shell{
  display:grid;
  grid-template-columns:minmax(340px, 430px) minmax(0, 1fr);
  gap:22px;
  align-items:start;
  padding:18px 0 40px;
}
.locator-side-column,
.locator-main-column{
  display:grid;
  gap:22px;
  align-items:start;
}
.locator-side-column{
  grid-template-rows:auto minmax(0, 1fr);
}
.locator-main-column{
  min-height:100%;
}
.sidebar-card,.map-card,.results-card{
  background:#2a4659;
  border:1px solid var(--line);
  border-radius:24px;
  box-shadow:var(--shadow);
}
.sidebar-card{
  position:sticky;
  top:96px;
  padding:18px;
  z-index:3;
}
.sidebar-card h2,.results-head h2{
  margin:0 0 6px;
  font-size:1.35rem;
}
.sidebar-card p,.results-head p{
  margin:0;
  color:var(--muted);
}
.filter-controls{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
  justify-content:flex-start !important;
  margin-top:16px;
}
#search-input,#province-filter,#reset-filter,#sort-az{
  padding:10px 12px;
  border-radius:12px;
  border:1px solid var(--line) !important;
  background:#2a4659 !important;
  color:var(--text) !important;
  font-family:"Open Sauce Sans", Arial, sans-serif;
  font-size:.95rem;
  transition:background-color .2s ease, border-color .2s ease, transform .2s ease;
}
#search-input{
  flex:1;
  min-width:220px;
}
#province-filter{min-width:170px}
#reset-filter,#sort-az{
  cursor:pointer;
}
#reset-filter:hover,#sort-az:hover{
  background:var(--gold) !important;
  color:#111 !important;
  transform:translateY(-1px);
}

.map-card{padding:0;overflow:hidden;position:sticky;top:96px}
#map{
  height:calc(100vh - 126px) !important;
  min-height:560px;
  max-height:820px;
  width:100% !important;
  margin:0 !important;
  border-radius:24px;
  z-index:1;
  box-shadow:none !important;
}
.results-card{
  overflow:hidden;
  display:flex;
  flex-direction:column;
}
.results-head{
  padding:20px 22px 0;
  flex:0 0 auto;
}
.locations{
  width:100% !important;
  margin:0 !important;
  background:transparent !important;
  border-radius:0 !important;
  padding:16px 22px 22px !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  flex:1 1 auto;
  min-height:0;
  overflow:hidden;
}
.locations h2{display:none}
#stations-list{
  max-height:none !important;
  overflow:visible !important;
}
.station{
  border-bottom:1px solid rgba(255,255,255,.10) !important;
  padding:16px 0 !important;
  transition:background .22s ease, transform .22s ease;
}
.station:hover{
  background:#2a4659;
}
.station h3{margin:0 0 6px;font-size:1.12rem;color:#fff}
.station p{margin:3px 0;color:var(--muted)}
.station a.address-link,.leaflet-popup-content a.address-link{
  color:var(--gold) !important;
  text-decoration:underline;
}
.station a.phone-link,.leaflet-popup-content a.phone-link{
  color:var(--gold);
}
.get-directions{
  display:inline-flex;
  align-items:center;
  gap:6px;
  margin-top:10px;
  color:var(--gold);
  text-decoration:none;
  font-weight:700;
  font-size:.95rem;
  padding:7px 12px;
  background:rgba(242,172,33,.10);
  border:1px solid rgba(242,172,33,.28);
  border-radius:999px;
}
.get-directions:hover{
  background:var(--gold);
  color:#111;
}
.amenities{
  display:flex;
  flex-wrap:wrap;
  gap:8px;
  margin-top:10px;
}
.amenity{
  display:inline-flex;
  align-items:center;
  gap:6px;
  color:var(--muted);
  font-size:.9rem;
  padding:6px 10px;
  border-radius:999px;
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.08);
}
.amenity i{color:var(--gold)}
.amenity-icon{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  width:1.2rem;
  height:1.2rem;
  min-width:1.2rem;
  color:#f7941d;
  line-height:1;
  flex:0 0 auto;
}
.amenity-svg{
  display:block;
  width:1.2rem;
  height:1.2rem;
  stroke:currentColor;
  fill:none;
}
.station-help{
  font-size:.8rem;
  color:var(--gold);
  margin-top:7px;
  padding-top:7px;
  border-top:1px solid rgba(242,172,33,.20);
}

.leaflet-control-amenities-filter{
  background:rgba(28,28,28,.96) !important;
  border-radius:14px !important;
  padding:10px !important;
  box-shadow:0 8px 20px rgba(0,0,0,.22) !important;
  color:var(--text) !important;
  border:1px solid rgba(255,255,255,.10) !important;
  width:min(280px, calc(100vw - 36px));
  font-family:"Open Sauce Sans", Arial, sans-serif !important;
}
.leaflet-control-amenities-filter .filter-header{
  width:100%;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  cursor:pointer;
  font-size:1rem;
  color:var(--gold) !important;
  padding:4px 2px;
  background:transparent;
  border:0;
  text-align:left;
}
.leaflet-control-amenities-filter .filter-title-wrap,
.leaflet-control-amenities-filter .filter-header-actions,
.leaflet-control-amenities-filter .filter-body-head{
  display:flex;
  align-items:center;
  gap:10px;
}
.leaflet-control-amenities-filter .filter-header-actions{margin-left:auto}
.leaflet-control-amenities-filter .filter-count{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:24px;
  height:24px;
  padding:0 7px;
  border-radius:999px;
  background:rgba(242,172,33,.14);
  border:1px solid rgba(242,172,33,.28);
  color:var(--gold);
  font-size:.82rem;
  font-weight:700;
}
.leaflet-control-amenities-filter .filter-chevron{
  transition:transform .2s ease;
}
.leaflet-control-amenities-filter:not(.is-collapsed) .filter-chevron{
  transform:rotate(180deg);
}
.leaflet-control-amenities-filter .filter-body{
  margin-top:10px;
  padding-top:10px;
  border-top:1px solid rgba(255,255,255,0.12);
}
.leaflet-control-amenities-filter .filter-body-title{
  color:var(--text);
  font-size:.94rem;
  font-weight:600;
}
.leaflet-control-amenities-filter .filter-close{
  margin-left:auto;
  width:34px;
  height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:999px;
  border:1px solid rgba(255,255,255,.12);
  background:rgba(255,255,255,.04);
  color:var(--text);
  cursor:pointer;
}
.leaflet-control-amenities-filter .filter-close:hover{
  border-color:rgba(242,172,33,.28);
  color:var(--gold);
}
.leaflet-control-amenities-filter .filter-checkboxes{
  max-height:180px;
  overflow-y:auto;
  margin-top:10px;
  padding-right:4px;
}
.leaflet-control-amenities-filter label{
  display:flex;
  align-items:center;
  gap:8px;
  margin:6px 0;
  font-size:.9rem;
}
.leaflet-control-amenities-filter .hidden{display:none}
.leaflet-popup-content{
  font-family:"Open Sauce Sans", Arial, sans-serif;
}

@media (min-width: 981px){
  .locator-shell{
    grid-template-columns:minmax(360px, 430px) minmax(0, 1fr);
    gap:24px;
    min-height:calc(100vh - 220px);
  }
  .locator-side-column,
  .locator-main-column{
    min-height:calc(100vh - 220px);
  }
  .sidebar-card{
    padding:16px;
  }
  .results-card{
    min-height:0;
  }
  .locations{
    padding-top:14px !important;
  }
  #stations-list{
    max-height:calc(100vh - 380px) !important;
    overflow-y:auto !important;
    padding-right:8px;
    scrollbar-width:thin;
  }
  .map-card{
    height:calc(100vh - 126px);
    min-height:560px;
    max-height:820px;
    align-self:start;
  }
  #map{
    height:100% !important;
    min-height:0;
    max-height:none;
  }
}

@media (min-width: 981px){
  .locator-shell{
    grid-template-columns:minmax(360px, 430px) minmax(0, 1fr);
    gap:24px;
  }
  .locator-side-column{
    gap:18px;
  }
  .results-card{
    min-width:0;
  }
}
@media (max-width: 980px){
  .grid-panels,.footer-inner,.locator-shell{grid-template-columns:1fr}
  .sidebar-card,.map-card,.results-card{position:static}
}
@media (max-width: 760px){
  .leaflet-top.leaflet-right{right:10px}
  .leaflet-control-amenities-filter{width:min(250px, calc(100vw - 28px)); padding:8px !important}
  .leaflet-control-amenities-filter .filter-header{font-size:.95rem}
  .brand img{height:52px;width:auto}

  .nav-toggle{display:inline-flex}
  .site-nav{
    position:absolute;
    left:20px;
    right:20px;
    top:86px;
    display:none;
    flex-direction:column;
    align-items:stretch;
    gap:8px;
    padding:14px;
    border:1px solid var(--line);
    border-radius:18px;
    background:rgba(0,0,0,.96);
  }
  .site-nav.open{display:flex}
  .site-nav a,.lang-switch{padding:8px 6px}
  .page-stack{gap:18px;padding-top:16px}
  .grid-panels{gap:18px}
  .footer-inner{padding-top:20px}
}


/* Launch theme refinements */
.get-directions,
#reset-filter,
#sort-az{
  background:#2a4659 !important;
  color:#f2ac21 !important;
}
.get-directions:hover,
#reset-filter:hover,
#sort-az:hover{
  background:#f2ac21 !important;
  color:#2a4659 !important;
}
.top-cta{
  background:#2a4659;
  color:#f2ac21;
}
.top-cta:hover{
  background:#f2ac21;
  color:#2a4659;
}
.footer a{
  color:#f2ac21 !important;
}
.footer a:hover{
  color:#ffd36e !important;
}

/* FIX LOGO MOBILE SHRINK */
.logo img {height:60px;width:auto;max-width:none;object-fit:contain;}
.logo {flex-shrink:0;}
@media (max-width:768px){.logo img{height:55px;}}


.map-offline-message{display:flex;flex-direction:column;gap:10px;justify-content:center;align-items:center;min-height:100%;padding:32px;border-radius:20px;background:linear-gradient(180deg,#1b232b,#11161b);color:#fff;text-align:center}
.map-offline-message strong{color:#f2ac21;font-size:1.1rem}
.map-offline-message span{max-width:48ch;line-height:1.5}
