/* ============================================================
   JINYU — Freight Corridor Systems
   Dawn freight marshalling yard in Tuen Mun
   Light theme over the yard with rail-steel accents.
   Palette solids only. No rgba, no gradients on text.
   ============================================================ */

:root{
  --dawn-yard:#F3F1E9;       /* pale morning paper over the yard  */
  --rail-ink:#262A30;        /* deep rail ink text                 */
  --rail-blue:#2F5D8C;       /* classic railway steel blue accent  */
  --wagon-oxide:#8A4A38;     /* freight wagon brown-red (small)    */
  --springs-steel:#6B7280;   /* secondary structure and rules      */
  --waybill-cream:#FAF7EE;   /* cards, sheets, plaques             */
  --buffers-dark:#2B2F36;    /* dark band and footer base          */
  --buffers-dark-deep:#22252B;
  --sleeper-shade:#E5E1D3;   /* pre-blended sleeper groove on dawn */
  --rail-on-dark:#B9C4D1;    /* steel text over dark band          */
  --signal-blue:#5E86B0;     /* pre-blended blue light on gantry   */
  --green-tint:#6FA487;      /* amber-free green light, preblend   */
  --yard-ink:#ECE8DA;        /* sub-panel text over railway dark   */
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

/* ============ RESET ============ */
body{
  margin:0;
  font-family:Georgia,"Times New Roman",serif;
  font-size:16px;
  line-height:1.62;
  color:var(--rail-ink);
  background:var(--dawn-yard);
  overflow-x:hidden;
}
img{max-width:100%;display:block;}
h1,h2,h3,h4,p{margin:0;}
a{color:var(--rail-blue);text-decoration:none;}
a:hover{color:var(--wagon-oxide);}


/* ============ SWITCH-BLADE NAVIGATION ============ */
.switchblade{
  background:var(--dawn-yard);
  border-bottom:2px solid var(--springs-steel);
  position:sticky;
  top:0;
  z-index:60;
}
.switchblade .shell{
  max-width:1180px;
  margin:0 auto;
  padding:0 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:74px;
  gap:20px;
}
.switchblade .brand{
  display:flex;
  align-items:center;
  gap:13px;
}
.switchblade .brand-link{display:flex;align-items:center;gap:13px;}
.switchblade .plate{
  background:var(--rail-blue);
  color:var(--waybill-cream);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:800;
  letter-spacing:2px;
  font-size:20px;
  padding:9px 17px;
  display:block;
  box-shadow:0 2px 0 var(--springs-steel);
}
.switchblade .blade-glyph{
  width:22px;
  height:26px;
  position:relative;
  display:block;
}
.switchblade .blade-glyph:before{
  content:"";
  position:absolute;
  left:0;top:11px;
  width:22px;height:2px;
  background:var(--rail-ink);
  box-shadow:0 6px 0 var(--rail-ink),0 12px 0 var(--rail-ink);
}
.switchblade .blade-glyph:after{
  content:"";
  position:absolute;
  left:2px;bottom:1px;
  border-left:7px solid var(--wagon-oxide);
  border-top:5px solid transparent;
  border-bottom:5px solid transparent;
}
.switchblade .tagline{
  font-family:Arial,Helvetica,sans-serif;
  font-size:11px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--springs-steel);
  max-width:150px;
  line-height:1.4;
  display:block;
}
.switchblade .links{
  display:flex;
  align-items:center;
  gap:4px;
}
.switchblade .links a.rail-link{
  position:relative;
  padding:12px 15px 16px;
  font-family:Arial,Helvetica,sans-serif;
  font-size:14px;
  font-weight:700;
  letter-spacing:.6px;
  color:var(--rail-ink);
  border-bottom:2px solid var(--rail-blue);
  text-transform:uppercase;
}
.switchblade .links a.rail-link:hover{background:var(--waybill-cream);}
.switchblade .links a.rail-link.is-active{background:var(--waybill-cream);}
.switchblade .cta-chip{
  margin-left:10px;
  background:var(--rail-blue);
  border:1px solid var(--rail-blue);
  color:var(--waybill-cream);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:700;
  font-size:12px;
  letter-spacing:1.2px;
  text-transform:uppercase;
  padding:11px 16px;
  white-space:nowrap;
}
.switchblade .cta-chip:hover{background:var(--rail-ink);border-color:var(--rail-ink);color:var(--waybill-cream);}
.switchblade .double-rail{
  display:block;
  height:3px;
  background:
    linear-gradient(to right,var(--springs-steel) 0 100%);
  border-top:1px solid var(--dawn-yard);
  position:relative;
}
.switchblade .double-rail:after{
  content:"";
  display:block;
  height:2px;
  background:var(--springs-steel);
  margin-top:1px;
}
.switchblade .toggle{
  display:none;
}
@media (max-width:840px){
  .switchblade .toggle{
    display:block;
    background:var(--rail-blue);
    border:0;
    color:var(--waybill-cream);
    font-family:Arial,Helvetica,sans-serif;
    font-weight:700;
    font-size:15px;
    padding:11px 15px;
    cursor:pointer;
  }
  .switchblade .rails-wrap{
    display:flex;
    flex-direction:column;
    gap:8px;
    width:100%;
  }
  .switchblade .links{
    display:flex;
    flex-direction:column;
    gap:2px;
    margin-top:14px;
  }
  .switchblade .links a.rail-link{display:block;}
  .switchblade .cta-chip{display:block;text-align:center;margin-left:0;}
  .switchblade{
    flex-direction:column;
  }
  .switchblade .bar{display:none;}
  .switchblade .bar.is-open{display:flex;}
  .switchblade .shell{flex-wrap:wrap;}
  .switchblade .brand{flex:1;}
}
.switchblade .mnav{
  background:var(--dawn-yard);
}
.switchblade .mnav .bar{
  display:flex;
  flex-direction:column;
  gap:2px;
  padding:0 24px 18px;
}
@media (min-width:841px){
  .switchblade .mnav{background:transparent;}
  .switchblade .mnav .bar{display:flex;flex-direction:row;gap:4px;padding:0;align-items:center;}
  .switchblade .links{display:flex;flex-direction:row;margin-top:0;}
}
.switchblade .links{flex-direction:row;margin:0;}

/* ============ HUMP YARD HERO ============ */
.yardwrap{
  background:var(--dawn-yard);
}
.hump-yard{
  max-width:none;
  background:var(--dawn-yard);
}
.hump-head{
  position:relative;
  background:var(--dawn-yard);
  padding:34px 0 0;
}
.hump-head .sky-stitch{
  position:absolute;
  inset:0 0 auto 0;
  height:auto;
  z-index:0;
}
.hump-canvas{
  position:relative;
  max-width:1180px;
  margin:0 auto;
  padding:20px 24px 10px;
  z-index:1;
}
.signal-gantry{
  position:absolute;
  top:34px;
  right:6%;
  width:210px;
  height:150px;
  z-index:0;
}
.signal-gantry .cross{
  position:absolute;
  left:0;right:0;top:8px;
  height:8px;
  background:var(--buffers-dark);
}
.signal-gantry .post{
  position:absolute;
  left:96px;top:14px;bottom:0;
  width:10px;
  background:var(--buffers-dark);
}
.signal-gantry .lamp{
  position:absolute;
  width:20px;height:20px;
  border-radius:50%;
  border:3px solid var(--buffers-dark);
}
.signal-gantry .lamp.b1{left:20px;top:16px;background:var(--signal-blue);}
.signal-gantry .lamp.b2{left:92px;top:30px;background:var(--wagon-oxide);}
.signal-gantry .lamp.g3{left:160px;top:16px;background:var(--green-tint);}
.yard-word{
  font-family:Arial,Helvetica,sans-serif;
  text-transform:uppercase;
  letter-spacing:2px;
  font-size:12px;
  color:var(--springs-steel);
  margin-bottom:10px;
}
.sleeper-cover-true{
  background:var(--dawn-yard);
}


/* rails drawn as track table */
.rail-fan{
  display:block;
  position:relative;
  height:270px;
  max-width:1180px;
  margin:6px auto 0;
  overflow:hidden;
  z-index:1;
}
.rail-fan .track{
  position:absolute;
  left:0;right:0;
  height:2px;
  background:var(--rail-blue);
  box-shadow:0 7px 0 var(--springs-steel);
}
.rail-fan .track:after{
  content:"tl";
  font-size:0;
}
.rail-fan .t1{top:28px;}
.rail-fan .t2{top:70px;}
.rail-fan .t3{top:112px;}
.rail-fan .t4{top:154px;}
.rail-fan .t5{top:196px;}
.rail-fan .hump-knob{
  position:absolute;
  left:2%;
  top:0;
  width:120px;
  height:120px;
}
.rail-fan .hump-knob .crest{
  position:absolute;
  left:0;top:0;
  width:0;height:0;
  border-left:64px solid transparent;
  border-right:64px solid transparent;
  border-bottom:96px solid var(--buffers-dark);
}
.rail-fan .waybill-hut{
  position:absolute;
  right:2%;
  top:10px;
  width:130px;
  height:110px;
  background:var(--waybill-cream);
  border:2px solid var(--rail-blue);
  box-shadow:6px 6px 0 var(--springs-steel);
}
.rail-fan .waybill-hut:before{
  content:"";
  position:absolute;
  left:0;right:0;top:0;
  border-top:7px solid var(--wagon-oxide);
}
.rail-fan .waybill-hut:after{
  content:"WAYBILL OFFICE";
  position:absolute;
  top:46px;left:0;right:0;
  text-align:center;
  font-family:Arial,Helvetica,sans-serif;
  font-size:10px;
  letter-spacing:1px;
  color:var(--wagon-oxide);
}
.sleeper-ticks{
  position:absolute;
  right:0;left:0;
}
.wagon{
  position:absolute;
  height:70px;
  bottom:0;
}
@media (max-width:760px){
  .rail-fan{height:210px;}
  .rail-fan .t1,{top:14px;}
  .wagon{width:86px;height:52px;}
}
/* wagon boxes as simple blocks */
.w-card{
  position:absolute;
  bottom:46px;
  width:150px;
  height:88px;
  display:flex;
  align-items:center;
  justify-content:center;
  border-radius:3px;
  box-sizing:border-box;
}
.w-card.w-oxide{left:34%;bottom:60px;width:158px;background:var(--wagon-oxide);}
.w-card.w-blue{left:55%;bottom:170px;width:132px;background:var(--rail-blue);}
.w-card .label{
  font-family:Arial,Helvetica,sans-serif;
  font-size:15px;
  letter-spacing:2px;
  color:var(--waybill-cream);
  font-weight:800;
}
.w-card:after{
  content:"";
  position:absolute;
  left:6px;right:6px;top:14px;bottom:14px;
  border:1px dashed var(--waybill-cream);
  opacity:1;
}
.w-card.w-blue .label{color:#E7ECF2;}

/* ============ WAYBILL DESK ============ */
.waybill-desk{
  background:#E9E4D4;
  border-top:2px solid var(--springs-steel);
}
.desk-inn{
  max-width:1120px;
  margin:0 auto;
  padding:52px 24px 60px;
  position:relative;
}
.eyebrow{
  font-family:Arial,Helvetica,sans-serif;
  text-transform:uppercase;
  letter-spacing:3px;
  font-size:13px;
  color:var(--wagon-oxide);
  font-weight:700;
  margin-bottom:14px;
}
.desk-h1{
  font-family:Georgia,serif;
  font-weight:700;
  font-size:54px;
  line-height:1.06;
  color:var(--rail-ink);
  max-width:860px;
  margin-bottom:22px;
}
.desk-h1 .keystar{
  color:var(--rail-blue);
}
.stamp{
  display:inline-block;
  background:var(--rail-blue);
  color:#E4ECF4;
  font-family:Arial,Helvetica,sans-serif;
  border:3px solid var(--rail-blue);
  outline:2px solid var(--rail-blue);
  font-size:15px;
  font-weight:800;
  letter-spacing:1px;
  padding:2px 8px;
  transform:rotate(-4deg);
  margin-left:8px;
}
.lead{
  font-size:19px;
  line-height:1.7;
  color:var(--rail-ink);
  max-width:800px;
  margin-bottom:28px;
}
.btn-row{
  display:flex;
  flex-wrap:wrap;
  gap:16px;
}
.btn{
  font-family:Arial,Helvetica,sans-serif;
  font-weight:700;
  font-size:14px;
  letter-spacing:1px;
  text-transform:uppercase;
  padding:15px 26px;
  display:inline-block;
}
.btn.solid{
  background:var(--rail-blue);
  border:2px solid var(--rail-blue);
  color:var(--waybill-cream);
}
.btn.solid:hover{background:var(--rail-ink);border-color:var(--rail-ink);color:var(--waybill-cream);}
.btn.outline{
  background:#FFFFFF;
  border:2px solid var(--springs-steel);
  color:var(--rail-ink);
}
.btn.outline:hover{background:var(--rail-ink);color:var(--waybill-cream);}
.desk-chips{
  margin-top:26px;
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.chipline{
  font-family:Arial,Helvetica,sans-serif;
  font-size:12px;
  letter-spacing:.8px;
  color:var(--springs-steel);
  display:flex;gap:6px;align-items:center;
}
.chipline:before{
  content:"";
  width:6px;height:6px;
  border-radius:50%;
  background:var(--wagon-oxide);
}
.statbar{
  background:var(--buffers-dark);
  color:var(--waybill-cream);
}
.statbar .stats{
  max-width:1120px;
  margin:0 auto;
  padding:26px 24px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:24px;
}
.statbar .stat{
  text-align:center;
  border-right:1px solid var(--rail-blue);
}
.statbar .stat:last-child{border-right:0;}
.statbar .stat .num{
  font-family:Georgia,serif;
  font-size:44px;
  font-weight:700;
  color:var(--waybill-cream);
  display:block;
}
.statbar .stat .cap{
  font-family:Arial,Helvetica,sans-serif;
  font-size:12px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--rail-on-dark);
  display:block;
  margin-top:6px;
}
@media (max-width:760px){
  .statbar .stats{grid-template-columns:1fr;}
  .statbar .stat{border-right:0;border-bottom:1px solid var(--rail-blue);padding-bottom:14px;margin-bottom:8px;}
  .desk-h1{font-size:38px;}
}

/* ============ STATEMENT BAND ============ */
.statement{
  background:var(--buffers-dark);
  color:var(--waybill-cream);
}
.statement .inner{
  max-width:1040px;
  margin:0 auto;
  padding:56px 24px;
  display:flex;
  align-items:center;
  gap:48px;
  flex-wrap:wrap;
}
.statement .fig{
  font-family:Georgia,serif;
  font-weight:800;
  font-size:120px;
  line-height:1;
  color:var(--waybill-cream);
  border-right:2px solid var(--rail-blue);
  padding-right:48px;
}
.statement .fig span{
  display:block;
  font-size:26px;
  color:var(--rail-on-dark);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:400;
  letter-spacing:1px;
}
.statement .blurb{
  flex:1;
  min-width:260px;
  font-size:20px;
  line-height:1.6;
}
.statement .blurb strong{color:#FFFFFF;}
@media (max-width:820px){
  .statement .fig{font-size:84px;border-right:0;padding-right:0;}
  .statement .inner{gap:24px;}
}

/* ============ WAYBILL ROWS ============ */
.waybillrow{
  background:var(--dawn-yard);
  padding:70px 0;
}
.waybillrow .sect-head{max-width:1180px;margin:0 auto 34px;padding:0 24px;}
.waybillrow .kicker{
  font-family:Arial,Helvetica,sans-serif;
  text-transform:uppercase;
  letter-spacing:2.4px;
  color:var(--rail-blue);
  font-weight:700;
  font-size:13px;
  margin-bottom:8px;
}
.waybillrow .sect-title{
  font-family:Georgia,serif;
  font-size:38px;
  font-weight:700;
  color:var(--rail-ink);
}
.rows-stack{
  max-width:1040px;
  margin:0 auto;
}
.valance-row{
  display:block;
  position:relative;
}
.way-sheet{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:22px;
  background:var(--waybill-cream);
  border:1px solid var(--springs-steel);
  border-left:6px solid var(--waybill-cream);
  position:relative;
  padding:24px 28px;
  margin-bottom:26px;
  transition:transform .18s ease;
  box-shadow:0 1px 0 #E1DCC8;
}
.way-sheet .perf-edge{
  display:none;
}
.way-sheet .sheet-no{
  font-family:Arial,Helvetica,sans-serif;
  font-weight:800;
  color:var(--springs-steel);
  font-size:12px;
  letter-spacing:1px;
}
.way-sheet .stamp-circle{
  width:92px;height:92px;
  border:3px solid var(--rail-blue);
  border-radius:50%;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  font-family:Arial,Helvetica,sans-serif;
  color:var(--rail-blue);
  flex:0 0 auto;
}
.way-sheet .stamp-circle b{
  font-size:17px;
  letter-spacing:1px;
  display:block;
  line-height:1.1;
}
.way-sheet .stamp-circle small{
  display:block;
  font-size:10px;
  letter-spacing:2px;
}
.way-sheet .body h3{
  font-family:Georgia,serif;
  font-size:25px;
  color:var(--rail-ink);
  margin-bottom:6px;
}
.way-sheet .body p{
  color:var(--rail-ink);
  font-size:16px;
  line-height:1.66;
  max-width:none;
}
.way-sheet .chip-right{
  display:none;
}
.way-sheet .meta-tag{
  font-family:Arial,Helvetica,sans-serif;
  font-size:12px;
  font-weight:700;
  letter-spacing:1.5px;
  text-transform:uppercase;
  color:var(--waybill-cream);
  background:var(--wagon-oxide);
  padding:6px 10px;
  align-self:end;
}
.way-sheet .cl-open{
  font-family:Arial,Helvetica,sans-serif;
  font-weight:700;
  font-size:14px;
  color:var(--rail-blue);
  border-bottom:2px dotted var(--rail-blue);
  text-transform:uppercase;
  letter-spacing:.8px;
}
.valance-row:nth-child(even) .way-sheet{
  transform:translateX(28px);
}
.valance-row:hover .way-sheet{
  box-shadow:6px 6px 0 #E1DCC8;
}
.valance-row:hover .way-sheet{transform:translateX(4px);}
.valance-row:nth-child(even):hover .way-sheet{transform:translateX(32px);}
@media (max-width:800px){
  .way-sheet{grid-template-columns:1fr;gap:12px;}
  .valance-row:nth-child(even) .way-sheet{transform:none;}
  .valance-row:nth-child(even):hover .way-sheet{transform:none;}
}

/* ============ MARSHAL SEQUENCE ============ */
.marshal{
  background:#E9E4D4;
  border-top:2px solid var(--springs-steel);
  padding:64px 0 72px;
}
.marshal .sect-head-in{max-width:1180px;margin:0 auto 30px;padding:0 24px;}
.sequence-rail{
  position:relative;
  max-width:1100px;
  margin:0 auto;
  padding:24px;
}
.sequence-rail .rail-line{
  position:absolute;
  left:24px;right:24px;top:120px;
  border-top:3px dashed var(--rail-blue);
}
.stops{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:18px;
  position:relative;
  z-index:2;
}
.stop{
  text-align:center;
  background:var(--waybill-cream);
  border:1px solid var(--springs-steel);
  border-top:8px solid var(--rail-blue);
  padding:20px 14px 18px;
}
.stop .cpl{
  width:46px;height:46px;
  margin:0 auto 12px;
  border-radius:50%;
  border:3px solid var(--wagon-oxide);
  background:var(--waybill-cream);
  position:relative;
  display:flex;align-items:center;justify-content:center;
  font-family:Arial,Helvetica,sans-serif;
  font-weight:800;
  color:var(--rail-blue);
}
.stop .cpl:after{
  content:"";
  position:absolute;
  left:-14px;top:18px;
  width:12px;height:3px;
  background:var(--wagon-oxide);
}
.stop h4{
  font-family:Arial,Helvetica,sans-serif;
  font-size:14px;
  letter-spacing:1.4px;
  text-transform:uppercase;
  color:var(--rail-ink);
  margin-bottom:8px;
}
.stop p{
  font-size:14px;
  line-height:1.55;
  color:var(--rail-ink);
}
.stop.final{border-top-color:var(--wagon-oxide);}
.stop.final .cpl{border-color:var(--rail-blue);}
@media (max-width:920px){
  .stops{grid-template-columns:1fr;}
  .sequence-rail .rail-line{display:none;}
}

/* ============ BOOKING BAND (accent strip) ============ */
.bookband{
  background:var(--rail-blue);
  color:var(--waybill-cream);
}
.bookband .inner{
  max-width:1120px;
  margin:0 auto;
  padding:44px 24px;
  display:flex;
  align-items:center;
  gap:30px;
  flex-wrap:wrap;
  justify-content:space-between;
}
.bookband .mark{
  background:var(--waybill-cream);
  border:3px double var(--rail-ink);
  padding:18px;
  font-family:Arial,Helvetica,sans-serif;
  font-weight:800;
  color:var(--rail-ink);
  letter-spacing:2px;
  text-align:center;
  transform:rotate(-3deg);
}
.bookband .pitch{
  flex:1;
  min-width:280px;
  font-size:19px;
  color:var(--waybill-cream);
}
.bookband .pitch strong{color:#FFFFFF;}
.bookband .book-cta{
  background:var(--waybill-cream);
  border:2px solid var(--buffers-dark);
  color:var(--rail-ink);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  font-size:14px;
  padding:15px 24px;
  white-space:nowrap;
}
.bookband .book-cta:hover{background:var(--buffers-dark);color:var(--waybill-cream);}

/* ============ SERVICE PAGE SPECIFICS ============ */
.svchero{
  background:var(--dawn-yard);
  padding:62px 0 30px;
}
.svchero .pager{
  max-width:1120px;margin:0 auto;padding:0 24px;
}
.svcband{background:#E9E4D4;}
.service-grid{
  max-width:1180px;
  margin:0 auto;
  padding:10px 24px 60px;
}
.service-block{
  background:var(--waybill-cream);
  border-left:8px solid var(--rail-blue);
  border:1px solid var(--springs-steel);
  padding:30px 34px;
  margin:22px 0;
  display:block;
  box-shadow:0 1px 0 #E1DCC8;
}
.service-block .tagline{
  font-family:Arial,Helvetica,sans-serif;
  font-size:12px;
  letter-spacing:1.6px;
  text-transform:uppercase;
  color:var(--wagon-oxide);
  font-weight:700;
}
.service-block h3{
  font-family:Georgia,serif;
  font-size:30px;
  color:var(--rail-ink);
  margin:6px 0 12px;
}
.service-block p{color:var(--rail-ink);font-size:16px;}
.service-block .well{
  margin:16px 0 0;
  font-size:15px;
  line-height:1.7;
}
.processband{
  background:var(--buffers-dark);
  color:var(--waybill-cream);
  padding:60px 0;
}
.processband .inner{
  max-width:1120px;margin:0 auto;padding:0 24px;
}
.processband .kicker{color:var(--rail-on-dark);}
.processband .proc-title{
  font-family:Georgia,serif;
  font-size:34px;
  color:var(--waybill-cream);
  margin:4px 0 0;
}
.proc-bar{
  display:grid;
  grid-template-columns:repeat(5,1fr);
  gap:12px;
  margin-top:26px;
}
.proc-step{
  background:#373C44;
  border-top:4px solid var(--rail-blue);
  padding:16px;
}
.proc-step .n{
  font-family:Arial,Helvetica,sans-serif;
  font-weight:800;
  color:var(--waybill-cream);
  font-size:22px;
}
.proc-step h4{
  font-family:Arial,Helvetica,sans-serif;
  font-size:13px;
  letter-spacing:1px;
  text-transform:uppercase;
  color:var(--waybill-cream);
  margin:6px 0 4px;
}
.proc-step p{color:var(--rail-on-dark);font-size:13px;line-height:1.5;}
@media (max-width:900px){.proc-bar{grid-template-columns:1fr;}}

.ctaband{
  background:var(--rail-blue);
  color:var(--waybill-cream);
}
.ctaband .inner{
  max-width:1120px;margin:0 auto;padding:50px 24px;text-align:center;
}
.ctaband h2{
  font-family:Georgia,serif;font-size:34px;color:var(--waybill-cream);margin-bottom:12px;
}
.ctaband p{color:#E4ECF4;max-width:720px;margin:0 auto 22px;font-size:17px;}
.ctaband .btn.ok{background:var(--buffers-dark);color:var(--waybill-cream);border-color:var(--buffers-dark);}
.ctaband .btn.ok:hover{background:#FFFFFF;color:var(--rail-ink);}

/* ============ CONTACT PAGE ============ */
.contact-layout{
  background:var(--dawn-yard);
  padding:56px 0 70px;
}
.contact-layout .wrap{
  max-width:1120px;margin:0 auto;padding:0 24px;
  display:grid;
  grid-template-columns:1.3fr 1fr;
  gap:40px;
}
@media (max-width:900px){.contact-layout .wrap{grid-template-columns:1fr;}}
.contact-form{
  background:var(--waybill-cream);
  border:1px solid var(--springs-steel);
  border-top:10px solid var(--rail-blue);
  padding:30px;
}
.contact-form label{
  font-family:Arial,Helvetica,sans-serif;
  font-size:13px;
  font-weight:700;
  letter-spacing:.8px;
  text-transform:uppercase;
  color:var(--rail-ink);
  display:block;
  margin:16px 0 6px;
}
.contact-form label:first-child{margin-top:0;}
.contact-form input,.contact-form textarea{
  width:100%;
  background:#FFFFFF;
  border:1px solid var(--springs-steel);
  padding:12px 13px;
  font-family:Georgia,serif;
  font-size:16px;
  color:var(--rail-ink);
}
.contact-form input:focus,.contact-form textarea:focus{
  border-color:var(--rail-blue);
  outline:2px solid var(--rail-blue);
}
.contact-form button{
  margin-top:22px;
  background:var(--rail-blue);
  border:2px solid var(--rail-blue);
  color:var(--waybill-cream);
  font-family:Arial,Helvetica,sans-serif;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:1px;
  font-size:15px;
  padding:14px 26px;
  cursor:pointer;
}
.contact-form button:hover{background:var(--buffers-dark);border-color:var(--buffers-dark);}
.contact-form .note{
  margin-top:12px;
  font-size:13px;
  color:var(--springs-steel);
  line-height:1.5;
}
.contact-form .form-status{display:none;}
.contact-form .form-status.is-ok{
  display:block;
  margin-top:14px;
  background:var(--waybill-cream);
  color:var(--rail-ink);
  font-weight:700;
}
.contact-side h2,.contact-form h2{
  font-family:Georgia,serif;
  font-size:28px;
  color:var(--rail-ink);
  margin-bottom:6px;
}
.contact-side .eye{
  font-size:13px;letter-spacing:1.5px;
}
.info-card{
  background:var(--waybill-cream);
  border:1px solid var(--springs-steel);
  padding:22px;
  margin:18px 0;
}
.info-card .k{
  font-family:Arial,Helvetica,sans-serif;
  font-size:12px;
  text-transform:uppercase;
  letter-spacing:1.4px;
  color:var(--wagon-oxide);
  font-weight:800;
}
.info-card .v{
  font-size:16px;
  color:var(--rail-ink);
  margin-top:4px;
  line-height:1.6;
}
.hours-card{
  background:var(--buffers-dark);
  color:var(--waybill-cream);
  padding:20px 22px;
  margin:18px 0;
}
.hours-card h4{
  font-family:Arial,Helvetica,sans-serif;
  color:var(--waybill-cream);
  letter-spacing:1px;
  text-transform:uppercase;
  font-size:14px;
  margin-bottom:10px;
}
.hours-card li{
  list-style:none;
  color:var(--rail-on-dark);
  font-size:15px;
  border-bottom:1px solid #3A4047;
  padding:5px 0;
}
.hours-card li b{color:var(--waybill-cream);font-weight:400;}
.faqq{
  background:var(--waybill-cream);
  border-left:6px solid var(--rail-blue);
  padding:16px 20px;
  margin:14px 0;
}
.faqq h5{
  font-family:Arial,Helvetica,sans-serif;
  font-size:15px;
  font-weight:800;
  color:var(--rail-ink);
  margin-bottom:5px;
}
.faqq p{color:var(--rail-ink);font-size:15px;}

/* ============ GENERIC HEADERS ============ */
.page-band{
  background:#E9E4D4;
  border-bottom:2px solid var(--springs-steel);
}
.page-band .in{
  max-width:1120px;margin:0 auto;padding:52px 24px 46px;
}
.page-band .kicker{
  font-family:Arial,Helvetica,sans-serif;
  color:var(--wagon-oxide);
  text-transform:uppercase;
  letter-spacing:2.5px;
  font-weight:700;
  font-size:13px;
}
.page-band h1{
  font-family:Georgia,serif;
  font-size:48px;
  line-height:1.1;
  color:var(--rail-ink);
  margin:8px 0 14px;
}
.page-band .led{max-width:760px;font-size:18px;color:#333840;}

/* ============ FOOTER: BUFFER STOPS ============ */
.bufferstops{
  background:var(--buffers-dark);
  color:var(--waybill-cream);
  border-top:8px solid var(--buffers-dark-deep);
}
.bufferstops .stoprow{
  background:var(--buffers-dark-deep);
  padding:16px 0;
}
.bufferstops .stoprow .in{
  max-width:1180px;margin:0 auto;padding:0 24px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  flex-wrap:wrap;
  gap:14px;
}
.bufferstops .the-stops{
  display:flex;
  align-items:flex-start;
  gap:10px;
}
.bufferstops .buff{
  position:relative;
}
.bufferstops .plateRed{
  width:64px;height:64px;
  background:var(--waybill-cream);
  border:6px solid var(--wagon-oxide);
  display:flex;
  flex-direction:column;
  justify-content:space-between;
  padding:0;
}
.bufferstops .plateRed:after{
  content:"";
  background:repeating-linear-gradient(45deg,var(--wagon-oxide) 0 8px,var(--waybill-cream) 8px 16px);
  position:absolute;inset:24px 4px 4px 4px;
  visibility:hidden;
}
.bufferstops .plateRed i{display:none;}
.bufferstops .buff .beam{
  width:70px;height:10px;
  background:var(--rail-blue);
  margin:0 auto;
}
.bufferstops .motto{
  font-family:Arial,Helvetica,sans-serif;
  letter-spacing:3px;
  text-transform:uppercase;
  color:#FFFFFF;
  font-weight:800;
  font-size:16px;
}
.bufferstops .columns{
  max-width:1180px;
  margin:0 auto;
  padding:44px 24px 30px;
  display:grid;
  grid-template-columns:1.4fr 1fr 1fr 1fr;
  gap:34px;
}
@media (max-width:880px){
  .bufferstops .columns{grid-template-columns:1fr 1fr;}
}
@media (max-width:560px){.bufferstops .columns{grid-template-columns:1fr;}}
.bcol h5{
  font-family:Arial,Helvetica,sans-serif;
  text-transform:uppercase;
  letter-spacing:1.6px;
  font-size:13px;
  color:#FFFFFF;
  margin-bottom:14px;
  border-bottom:1px solid #3A4047;
  padding-bottom:10px;
}
.bcol p{color:var(--rail-on-dark);font-size:15px;line-height:1.7;}
.bcol ul{list-style:none;margin:0;padding:0;}
.bcol li{margin:7px 0;}
.bcol a{color:var(--rail-on-dark);font-size:15px;}
.bcol a:hover{color:#FFFFFF;}
.plaque{
  background:var(--waybill-cream);
  color:var(--rail-ink);
  padding:20px 24px;
  margin-top:6px;
}
.plaque .pname{
  font-family:Arial,Helvetica,sans-serif;
  font-weight:800;
  letter-spacing:1px;
  font-size:15px;
  color:var(--rail-blue);
}
.plaque .paddr{font-size:14px;color:#333840;margin-top:4px;}
.plaque .pline{
  font-size:14px;color:#333840;margin-top:4px;
}
.plaque .pline a{color:var(--rail-blue);}
.base-plate{
  background:var(--buffers-dark-deep);
  border-top:1px solid #3A4047;
}
.base-plate .in{
  max-width:1180px;margin:0 auto;padding:18px 24px;
  color:var(--rail-blue);
  font-family:Arial,Helvetica,sans-serif;
  font-size:13px;
  display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;
}
.base-plate .in a{color:var(--rail-on-dark);}
.bcol .mini-note{color:var(--rail-on-dark);}

/* ============ SCROLL REVEAL ============ */
.reveal{
  opacity:1;
  transform:none;
  transition:opacity .7s ease,transform .7s ease;
}
.reveal.pre-hide{
  opacity:0;
  transform:translateY(22px);
}
.reveal.visible{
  opacity:1;
  transform:none;
}
/* noscript / no-js fallback: everything stays visible */
.js-off .reveal,.reveal.js-fall{opacity:1;transform:none;}

/* ============ CTA direction helpers ============ */
.two-cta{display:flex;gap:16px;flex-wrap:wrap;}
.centre{text-align:center;}
