/* JWLogistics — Blueprint Engineering (blueprint aesthetic, zero images) */
:root{
  --ink:#0A2A52; --ink-deep:#061B38; --paper:#EAF1F9; --line:#FFFFFF;
  --orange:#FF7A1A; --mono:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;
  --sans:Inter,"Helvetica Neue",Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font-family:var(--sans);color:#12233f;background-color:var(--ink-deep);
  background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),
  linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);
  background-size:34px 34px;line-height:1.7}
a{color:var(--ink)}
.wrap{max-width:1080px;margin:0 auto;padding:0 24px}
/* header */
.site-header{background:rgba(6,27,56,.92);border-bottom:2px solid rgba(255,255,255,.85);
  position:sticky;top:0;z-index:50}
.site-header .wrap{display:flex;align-items:center;gap:28px;padding-top:12px;padding-bottom:12px}
.brand{color:#fff;text-decoration:none;font-weight:800;letter-spacing:.14em;font-size:1.05rem;white-space:nowrap}
.brand small{display:block;font-family:var(--mono);font-weight:400;font-size:.62rem;color:var(--orange);letter-spacing:.3em}
.mainnav{margin-left:auto}
.mainnav ul{list-style:none;display:flex;gap:4px;align-items:center}
.mainnav>ul>li{position:relative}
.mainnav a{color:#fff;text-decoration:none;font-size:.92rem;padding:10px 12px;display:block;letter-spacing:.04em}
@media(hover:hover){
  .mainnav a:hover{color:var(--orange)}
  .btn:hover{background:#ff8c3a}
  .btn:hover::after{border-color:rgba(255,255,255,.9);animation:tracedash 1.4s cubic-bezier(.2,.7,.3,1) infinite}
  .has-drop:hover .drop{display:block}
  .site-footer a:hover{color:var(--orange)}
}
.has-drop .drop{display:none;position:absolute;left:0;top:100%;min-width:230px;background:var(--ink-deep);
  border:1px solid rgba(255,255,255,.7);list-style:none;padding:8px 0}
.has-drop:focus-within .drop{display:block}
.has-drop .drop a{padding:8px 16px;font-size:.85rem}
.header-mail{font-family:var(--mono);font-size:.78rem;color:var(--orange);text-decoration:none;white-space:nowrap}
/* hero */
.hero{background:linear-gradient(180deg,var(--ink) 0%,var(--ink-deep) 100%);
  border-bottom:2px solid rgba(255,255,255,.85);color:#fff;padding:44px 0 40px;position:relative}
.sheet-tag{display:inline-block;font-family:var(--mono);font-size:.75rem;letter-spacing:.28em;
  border:1px dashed rgba(255,255,255,.8);color:#fff;padding:6px 14px;margin-bottom:18px}
.hero h1{font-size:2.1rem;line-height:1.25;font-weight:800;letter-spacing:.02em;max-width:860px}
.hero .sub{font-family:var(--mono);font-size:.85rem;color:rgba(255,255,255,.75);margin-top:10px;letter-spacing:.06em}
.route-trace{margin:26px 0 8px;border:1px solid rgba(255,255,255,.35);background:rgba(255,255,255,.03)}
.route-trace-svg{display:block;width:100%;height:auto}
.rt-route{fill:none;stroke:#fff;stroke-width:2.5;stroke-dasharray:8 6;stroke-dashoffset:600;
  animation:tracedash 2.2s cubic-bezier(.25,.8,.35,1) forwards}
.rt-route.thin{stroke-width:1.25}
@keyframes tracedash{to{stroke-dashoffset:0}}
.port{fill:var(--orange);stroke:#fff;stroke-width:1.5}
.dest{fill:#fff}
.wp{fill:var(--orange);opacity:.9;animation:wppulse 2s ease-in-out infinite}
@keyframes wppulse{0%,100%{opacity:1}50%{opacity:.25}}
.coord{font-family:var(--mono);font-size:11px;fill:rgba(255,255,255,.85);letter-spacing:.08em}
.coord.end{text-anchor:end}
.coord.note{fill:var(--orange);letter-spacing:.3em;font-size:12px}
.regmark line{stroke:rgba(255,255,255,.4);stroke-width:1}
.zone{fill:none;stroke:var(--orange);stroke-width:1.5;stroke-dasharray:5 4}
.evidence-bar{display:grid;grid-template-columns:repeat(4,1fr);gap:0;margin:22px 0;
  border:1px solid rgba(255,255,255,.55)}
.evidence-bar div{font-family:var(--mono);font-size:.74rem;color:#fff;padding:12px 14px;min-width:0;
  border-right:1px solid rgba(255,255,255,.25);letter-spacing:.04em}
.evidence-bar div:last-child{border-right:none}
.evidence-bar div b{color:var(--orange);display:block;font-size:.68rem;letter-spacing:.2em;margin-bottom:4px}
.cta-row{margin-top:6px}
.cta-note{font-family:var(--mono);font-size:.8rem;color:var(--orange);letter-spacing:.06em;margin-bottom:10px}
.btn{display:inline-block;background:var(--orange);color:#061B38!important;font-weight:800;
  text-decoration:none;padding:14px 30px;font-size:1.02rem;letter-spacing:.05em;position:relative;overflow:hidden}
.btn .cta-tag{font-family:var(--mono);font-weight:400;font-size:.72rem;margin-left:10px;letter-spacing:.14em}
.btn::after{content:"";position:absolute;inset:0;border:2px dashed rgba(255,255,255,0);
  transition:border-color .2s cubic-bezier(.2,.7,.3,1)}
.btn:active{transform:translateY(1px)}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001s!important;animation-iteration-count:1!important;transition:none!important}
  .rt-route{stroke-dashoffset:0}
  .wp{opacity:1}
}
/* content paper */
.content{background:var(--paper);padding:48px 0 56px}
.content h2{font-size:1.45rem;color:var(--ink);margin:34px 0 14px;padding-bottom:8px;
  border-bottom:2px solid var(--ink);letter-spacing:.02em}
.content h2:first-child{margin-top:0}
.content h3{font-size:1.1rem;color:var(--ink);margin:26px 0 10px}
.content p{margin:0 0 14px}
.content ul,.content ol{margin:0 0 16px 24px}
.content li{margin-bottom:6px}
.content table{width:100%;border-collapse:collapse;margin:18px 0;font-size:.93rem}
.content th,.content td{border:1px solid var(--ink);padding:10px 12px;text-align:left}
.content th{background:var(--ink);color:#fff;font-family:var(--mono);font-size:.78rem;letter-spacing:.1em}
.content details{border:1px solid var(--ink);margin:10px 0;background:#fff}
.content summary{cursor:pointer;font-weight:700;padding:12px 16px;color:var(--ink)}
.content details p{padding:0 16px 12px}
.content a{color:var(--ink);font-weight:600}
/* quote form */
.quote-form{background:#fff;border:2px solid var(--ink);padding:30px;margin:36px 0}
.quote-form h2{margin-top:0}
.quote-form label{display:block;font-family:var(--mono);font-size:.78rem;letter-spacing:.14em;
  color:var(--ink);margin:16px 0 6px}
.quote-form input,.quote-form textarea{width:100%;padding:12px;border:1px solid var(--ink);
  font-family:var(--sans);font-size:.95rem;background:var(--paper)}
.quote-form textarea{min-height:130px;resize:vertical}
.quote-form .btn{border:none;cursor:pointer;margin-top:20px;font-family:var(--sans)}
.form-side{display:grid;grid-template-columns:1fr 320px;gap:30px;align-items:start}
.mail-card{background:var(--ink);color:#fff;padding:26px;font-family:var(--mono);font-size:.88rem;line-height:1.9}
.mail-card b{color:var(--orange);letter-spacing:.2em;font-size:.72rem;display:block;margin-bottom:10px}
.mail-card a{color:#fff;font-size:1rem;word-break:break-all}
@media(max-width:760px){.form-side{grid-template-columns:1fr}.evidence-bar{grid-template-columns:1fr 1fr}
  .mainnav{display:none}.hero h1{font-size:1.6rem}}
/* cta band */
.cta-band{background:var(--ink);color:#fff;padding:44px 0;text-align:center;border-top:2px solid #fff}
.cta-band h2{color:#fff;margin-bottom:8px;font-size:1.5rem}
.cta-band p{font-family:var(--mono);font-size:.85rem;color:rgba(255,255,255,.8);margin-bottom:18px}
/* footer */
.site-footer{background:var(--ink-deep);color:#fff;padding:48px 0 30px;border-top:2px solid #fff}
.foot-grid{display:grid;grid-template-columns:1.2fr 1fr 1fr 1fr;gap:30px;margin-bottom:30px}
.site-footer h4{font-family:var(--mono);font-size:.72rem;letter-spacing:.26em;color:var(--orange);margin-bottom:14px}
.site-footer ul{list-style:none}
.site-footer li{margin-bottom:8px}
.site-footer a{color:#fff;text-decoration:none;font-size:.9rem}
.foot-evidence{font-family:var(--mono);font-size:.78rem;color:rgba(255,255,255,.8);
  border-top:1px solid rgba(255,255,255,.3);border-bottom:1px solid rgba(255,255,255,.3);
  padding:14px 0;margin-bottom:18px;line-height:2}
.foot-legal{font-family:var(--mono);font-size:.75rem;color:rgba(255,255,255,.6)}
.foot-legal a{color:rgba(255,255,255,.8)}
@media(max-width:760px){.foot-grid{grid-template-columns:1fr 1fr}}