/* ==========================================================================
   4S Logistics Services — base.css
   Reset, design tokens, typography, buttons, helpers (mobile first)
   ========================================================================== */

:root{
  /* Brand palette taken from the logo */
  --blue:#14528f;
  --blue-dark:#0e3d6b;
  --blue-light:#2b73bb;
  --red:#d8232a;
  --red-dark:#b01a20;

  --ink:#16202b;
  --body:#55636f;
  --muted:#7b8794;
  --line:#e3e8ef;
  --soft:#f4f7fb;
  --white:#ffffff;

  --radius:14px;
  --radius-sm:8px;
  --shadow-sm:0 2px 10px rgba(16,42,67,.06);
  --shadow:0 10px 30px rgba(16,42,67,.10);
  --shadow-lg:0 18px 45px rgba(16,42,67,.16);

  --wrap:1180px;
  --gap:18px;
  --sec-pad:56px;

  --ff:"Poppins","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --ff-head:"Poppins","Segoe UI",Roboto,Arial,sans-serif;
  --t:.28s cubic-bezier(.4,.2,.2,1);
}

*,*::before,*::after{box-sizing:border-box;}

html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;}

body{
  margin:0;
  font-family:var(--ff);
  font-size:15px;
  line-height:1.75;
  color:var(--body);
  background:var(--white);
  overflow-x:hidden;
}

img{max-width:100%;height:auto;display:block;border:0;}
svg{display:block;}

a{color:var(--blue);text-decoration:none;transition:color var(--t);}
a:hover{color:var(--red);}

h1,h2,h3,h4,h5,h6{
  margin:0 0 14px;
  font-family:var(--ff-head);
  color:var(--ink);
  line-height:1.25;
  font-weight:700;
}
h1{font-size:29px;}
h2{font-size:24px;}
h3{font-size:19px;}
h4{font-size:17px;}
h5{font-size:15px;}

p{margin:0 0 16px;}
p:last-child{margin-bottom:0;}

ul,ol{margin:0 0 16px;padding-left:20px;}
li{margin-bottom:8px;}

hr{border:0;border-top:1px solid var(--line);margin:28px 0;}

strong,b{color:var(--ink);font-weight:600;}

::selection{background:var(--blue);color:#fff;}

:focus-visible{outline:3px solid rgba(20,82,143,.45);outline-offset:2px;border-radius:4px;}

/* ---------- Layout helpers ---------- */
.wrap{width:100%;max-width:var(--wrap);margin:0 auto;padding:0 18px;}
.section{padding:var(--sec-pad) 0;}
.section--soft{background:var(--soft);}
.section--tight{padding:36px 0;}

.grid{display:grid;gap:var(--gap);}
.grid--2,.grid--3,.grid--4{grid-template-columns:1fr;}

.text-center{text-align:center;}
.mb-0{margin-bottom:0;}
.mt-24{margin-top:24px;}
.lead{font-size:16px;color:var(--body);}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0;}

/* ---------- Section headings ---------- */
.sec-head{margin-bottom:30px;}
.sec-head--center{text-align:center;max-width:720px;margin-left:auto;margin-right:auto;}

.eyebrow{
  display:inline-flex;align-items:center;gap:8px;
  font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;
  color:var(--red);margin-bottom:10px;
}
.eyebrow::before{content:"";width:26px;height:2px;background:var(--red);border-radius:2px;}
.sec-head--center .eyebrow::after{content:"";width:26px;height:2px;background:var(--red);border-radius:2px;}

.sec-title{font-size:25px;margin-bottom:12px;}
.sec-title span{color:var(--blue);}
.sec-text{margin-bottom:0;}

/* ---------- Buttons ---------- */
.btn{
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  padding:12px 24px;
  font-family:var(--ff-head);font-size:14px;font-weight:600;line-height:1.2;
  border:2px solid transparent;border-radius:50px;cursor:pointer;
  text-align:center;white-space:nowrap;
  transition:background var(--t),color var(--t),border-color var(--t),transform var(--t),box-shadow var(--t);
}
.btn:hover{transform:translateY(-2px);}
.btn svg{width:16px;height:16px;flex:none;}

.btn--primary{background:var(--red);border-color:var(--red);color:#fff;box-shadow:0 8px 20px rgba(216,35,42,.25);}
.btn--primary:hover{background:var(--red-dark);border-color:var(--red-dark);color:#fff;}

.btn--blue{background:var(--blue);border-color:var(--blue);color:#fff;box-shadow:0 8px 20px rgba(20,82,143,.25);}
.btn--blue:hover{background:var(--blue-dark);border-color:var(--blue-dark);color:#fff;}

.btn--outline{background:transparent;border-color:var(--blue);color:var(--blue);}
.btn--outline:hover{background:var(--blue);color:#fff;}

.btn--ghost{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.7);color:#fff;}
.btn--ghost:hover{background:#fff;color:var(--blue);border-color:#fff;}

.btn--sm{padding:9px 18px;font-size:13px;}
.btn--block{display:flex;width:100%;}

.btn-row{display:flex;flex-wrap:wrap;gap:12px;}
.btn-row--center{justify-content:center;}

/* ---------- Link with arrow ---------- */
.link-more{
  display:inline-flex;align-items:center;gap:7px;
  font-size:13px;font-weight:600;color:var(--blue);
  font-family:var(--ff-head);
}
.link-more svg{width:14px;height:14px;transition:transform var(--t);}
.link-more:hover svg{transform:translateX(4px);}

/* ---------- Reveal on scroll ---------- */
/* Only hide when JS is available to reveal them again — otherwise a blocked
   or failed main.js would leave most of the page invisible. */
.js .reveal{opacity:0;transform:translateY(24px);transition:opacity .6s ease,transform .6s ease;}
.reveal.is-visible{opacity:1;transform:none;}
@media (prefers-reduced-motion:reduce){
  *{animation-duration:.001ms !important;transition-duration:.001ms !important;scroll-behavior:auto !important;}
  .reveal{opacity:1;transform:none;}
}
