/* TLM EXPRESS — global page loading & transitions */
:root{
  --tlm-loader-green:#0d725f;
  --tlm-loader-dark:#102d27;
  --tlm-loader-yellow:#f3b92f;
  --tlm-loader-bg:#f6fbf9;
}

body.site-is-loading{
  overflow:hidden !important;
}

.site-loader{
  position:fixed;
  inset:0;
  z-index:99999;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:
    radial-gradient(circle at 18% 18%, rgba(13,114,95,.08), transparent 32%),
    radial-gradient(circle at 82% 76%, rgba(243,185,47,.10), transparent 30%),
    var(--tlm-loader-bg);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity .28s ease,visibility .28s ease;
}

.site-loader.is-active{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
}

.site-loader-panel{
  width:min(92vw,410px);
  padding:30px 28px 25px;
  border:1px solid rgba(13,114,95,.12);
  border-radius:24px;
  background:rgba(255,255,255,.88);
  backdrop-filter:blur(14px);
  box-shadow:0 30px 90px rgba(16,45,39,.11);
}

.site-loader-brand{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:13px;
  direction:ltr;
}

.site-loader-logo{
  width:54px;
  height:54px;
  border-radius:16px;
  display:grid;
  place-items:center;
  background:var(--tlm-loader-green);
  color:#fff;
  font-size:16px;
  font-weight:900;
  letter-spacing:.4px;
  box-shadow:0 12px 28px rgba(13,114,95,.22);
  animation:tlmLoaderPulse 1.2s ease-in-out infinite alternate;
}

.site-loader-brand-copy{
  display:flex;
  flex-direction:column;
  text-align:left;
  line-height:1;
}

.site-loader-brand-copy strong{
  color:var(--tlm-loader-dark);
  font-size:18px;
  letter-spacing:.8px;
}

.site-loader-brand-copy small{
  margin-top:6px;
  color:#82918c;
  font-size:8px;
  letter-spacing:2.7px;
}

.site-loader-route{
  position:relative;
  height:40px;
  margin:27px 5px 16px;
}

.site-loader-route:before{
  content:"";
  position:absolute;
  top:19px;
  right:10px;
  left:10px;
  border-top:2px dashed #d5e7e0;
}

.site-loader-route .route-point{
  position:absolute;
  top:12px;
  width:16px;
  height:16px;
  border-radius:50%;
  background:#fff;
  border:4px solid #bcdacf;
  box-shadow:0 0 0 3px rgba(255,255,255,.9);
}

.site-loader-route .route-point:first-child{right:5px}
.site-loader-route .route-point:last-child{left:5px;border-color:var(--tlm-loader-yellow)}

.site-loader-truck{
  position:absolute;
  top:1px;
  right:8%;
  width:36px;
  height:36px;
  display:grid;
  place-items:center;
  border-radius:11px;
  background:var(--tlm-loader-dark);
  color:#fff;
  font-size:17px;
  animation:tlmTruckMove 1.25s ease-in-out infinite;
}

.site-loader-status{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:24px;
  color:#5f746d;
  font-size:11px;
  font-weight:700;
}

.site-loader-status .loader-dot{
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--tlm-loader-green);
  box-shadow:0 0 0 5px rgba(13,114,95,.10);
  animation:tlmDotBlink .85s ease-in-out infinite alternate;
}

.site-loader-progress{
  height:5px;
  margin-top:16px;
  overflow:hidden;
  border-radius:999px;
  background:#e5efeb;
}

.site-loader-progress i{
  display:block;
  width:38%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--tlm-loader-green),#28a384,var(--tlm-loader-yellow));
  animation:tlmLoaderSweep 1.05s ease-in-out infinite;
}

@keyframes tlmLoaderPulse{
  from{transform:translateY(0) scale(1)}
  to{transform:translateY(-2px) scale(1.025)}
}

@keyframes tlmTruckMove{
  0%{right:8%;transform:translateY(0)}
  50%{transform:translateY(-2px)}
  100%{right:78%;transform:translateY(0)}
}

@keyframes tlmDotBlink{
  from{opacity:.4}
  to{opacity:1}
}

@keyframes tlmLoaderSweep{
  0%{transform:translateX(170%)}
  100%{transform:translateX(-270%)}
}

@media(max-width:560px){
  .site-loader-panel{padding:25px 20px 21px;border-radius:20px}
  .site-loader-logo{width:48px;height:48px;border-radius:14px;font-size:14px}
  .site-loader-brand-copy strong{font-size:16px}
  .site-loader-route{margin-top:22px}
}

@media(prefers-reduced-motion:reduce){
  .site-loader-logo,
  .site-loader-truck,
  .site-loader-status .loader-dot,
  .site-loader-progress i{
    animation:none !important;
  }
}
