/* ============================================================
   FORWARD PACKAGING — Design System
   Navy #161A5A · Orange #FF8500 · industrial / premium B2B
   ============================================================ */
:root{
  --navy:#161A5A;
  --navy-700:#10143f;
  --navy-900:#0a0c2b;
  --navy-soft:#1d2370;
  --orange:#FF8500;
  --orange-600:#e67500;
  --orange-glow:rgba(255,133,0,.32);
  --ink:#23242b;
  --slate:#5a5e6b;
  --gray:#6E6E6E;
  --bg:#ffffff;
  --bg-soft:#F5F6F8;
  --bg-soft2:#eef1f6;
  --line:#e4e7ef;
  --line-2:#d6dae6;
  --white:#ffffff;

  --ff-display:"Archivo",system-ui,sans-serif;
  --ff-body:"Hanken Grotesk",system-ui,sans-serif;
  --ff-mono:"IBM Plex Mono",ui-monospace,monospace;

  --maxw:1220px;
  --pad:clamp(20px,5vw,64px);
  --r:12px;
  --r-sm:8px;
  --shadow-sm:0 1px 2px rgba(16,20,63,.06), 0 2px 6px rgba(16,20,63,.05);
  --shadow:0 6px 24px rgba(16,20,63,.09), 0 2px 8px rgba(16,20,63,.05);
  --shadow-lg:0 24px 60px rgba(16,20,63,.16), 0 8px 24px rgba(16,20,63,.10);
  --ease:cubic-bezier(.22,.61,.36,1);
}

/* tweakable knobs (set on :root by tweaks) */
:root{ --accent:var(--orange); --accent-600:var(--orange-600); }

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0; background:var(--bg); color:var(--ink);
  font-family:var(--ff-body); font-size:17px; line-height:1.6;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  overflow-x:hidden;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}
button{font-family:inherit;}

/* ---------- layout ---------- */
.container{ width:100%; max-width:var(--maxw); margin:0 auto; padding-inline:var(--pad); }
.section{ padding:clamp(64px,9vw,120px) 0; position:relative; }
.section.soft{ background:var(--bg-soft); }
.section-head{ max-width:760px; margin-bottom:clamp(36px,5vw,60px); }
.section-head.center{ margin-inline:auto; text-align:center; }

/* ---------- type ---------- */
h1,h2,h3,h4{ font-family:var(--ff-display); font-weight:700; line-height:1.04; letter-spacing:-.02em; margin:0; color:var(--navy); }
.display{ font-size:clamp(2.7rem,6.2vw,5.1rem); font-weight:800; letter-spacing:-.035em; line-height:.98; }
h2.title{ font-size:clamp(2rem,4.2vw,3.25rem); font-weight:800; letter-spacing:-.03em; }
h3{ font-size:clamp(1.15rem,1.7vw,1.4rem); font-weight:700; }
.lead{ font-size:clamp(1.05rem,1.5vw,1.28rem); color:var(--slate); line-height:1.55; font-weight:400; }
p{ margin:0 0 1em; }
.muted{ color:var(--slate); }

.eyebrow{
  font-family:var(--ff-mono); font-size:.78rem; font-weight:600; letter-spacing:.22em;
  text-transform:uppercase; color:var(--accent); display:inline-flex; align-items:center; gap:.6em;
  margin-bottom:1.1em;
}
.eyebrow::before{ content:"›››"; letter-spacing:-.12em; color:var(--accent); font-weight:700; }
.eyebrow.on-dark{ color:#ffb265; }

/* chevron divider accent */
.kicker-line{ width:54px; height:4px; background:var(--accent); border-radius:2px; }

/* ---------- buttons ---------- */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  font-family:var(--ff-body); font-weight:700; font-size:1rem; letter-spacing:.01em;
  padding:.92em 1.5em; border-radius:8px; border:2px solid transparent; cursor:pointer;
  transition:transform .25s var(--ease), box-shadow .25s var(--ease), background .2s, color .2s;
  position:relative; white-space:nowrap;
}
.btn .arw{ transition:transform .25s var(--ease); }
.btn:hover .arw{ transform:translateX(4px); }
.btn-primary{ background:var(--accent); color:#fff; box-shadow:0 8px 22px var(--orange-glow); }
.btn-primary:hover{ background:var(--accent-600); transform:translateY(-2px); box-shadow:0 14px 30px var(--orange-glow); }
.btn-navy{ background:var(--navy); color:#fff; }
.btn-navy:hover{ background:var(--navy-700); transform:translateY(-2px); box-shadow:var(--shadow); }
.btn-ghost{ background:transparent; color:var(--navy); border-color:var(--line-2); }
.btn-ghost:hover{ border-color:var(--navy); transform:translateY(-2px); }
.btn-ghost-light{ background:rgba(255,255,255,.06); color:#fff; border-color:rgba(255,255,255,.45); backdrop-filter:blur(4px); }
.btn-ghost-light:hover{ background:rgba(255,255,255,.14); border-color:#fff; transform:translateY(-2px); }
.btn-wa{ background:#25D366; color:#06351b; }
.btn-wa:hover{ background:#1fc15b; transform:translateY(-2px); box-shadow:0 12px 26px rgba(37,211,102,.3); }

/* ---------- reveal ---------- */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:none; }
.reveal.d1{ transition-delay:.08s;} .reveal.d2{transition-delay:.16s;} .reveal.d3{transition-delay:.24s;} .reveal.d4{transition-delay:.32s;}
@media (prefers-reduced-motion:reduce){ .reveal{opacity:1; transform:none; transition:none;} html{scroll-behavior:auto;} }

/* ============================================================
   HEADER / NAV
   ============================================================ */
.site-header{
  position:fixed; inset:0 0 auto 0; z-index:60;
  transition:background .35s var(--ease), box-shadow .35s var(--ease), border-color .35s;
  border-bottom:1px solid transparent;
}
.site-header .bar{ display:flex; align-items:center; justify-content:space-between; height:78px; }
.brand-lockup{ display:flex; align-items:center; gap:11px; }
.brand-lockup img{ height:38px; width:auto; }
.brand-fallback{ font-family:var(--ff-display); font-weight:800; letter-spacing:-.02em; font-size:1.15rem; color:#fff; }
.nav{ display:flex; align-items:center; gap:clamp(14px,2vw,30px); }
.nav a{ font-weight:600; font-size:.98rem; color:rgba(255,255,255,.9); transition:color .2s; position:relative; padding:6px 0; }
.nav a::after{ content:""; position:absolute; left:0; bottom:0; height:2px; width:0; background:var(--accent); transition:width .25s var(--ease); }
.nav a:hover{ color:#fff; } .nav a:hover::after{ width:100%; }
.nav-cta{ display:flex; align-items:center; gap:14px; }
.header-tel{ font-family:var(--ff-mono); font-weight:600; font-size:.9rem; color:#fff; display:inline-flex; gap:.5em; align-items:center; opacity:.92; }

/* scrolled state */
.site-header.scrolled{ background:rgba(255,255,255,.96); backdrop-filter:blur(10px); box-shadow:var(--shadow-sm); border-color:var(--line); }
.site-header.scrolled .nav a{ color:var(--slate); }
.site-header.scrolled .nav a:hover{ color:var(--navy); }
.site-header.scrolled .brand-fallback{ color:var(--navy); }
.site-header.scrolled .header-tel{ color:var(--navy); }
.site-header.scrolled .logo-light{ display:none; }
.logo-dark{ display:none; } .site-header.scrolled .logo-dark{ display:block; }

.hamburger{ display:none; width:46px; height:46px; border:none; background:transparent; cursor:pointer; flex-direction:column; gap:5px; align-items:center; justify-content:center; }
.hamburger span{ width:24px; height:2.5px; background:#fff; border-radius:2px; transition:.3s var(--ease); }
.site-header.scrolled .hamburger span{ background:var(--navy); }

/* mobile menu */
.mobile-menu{ position:fixed; inset:0; z-index:70; background:var(--navy-900); display:flex; flex-direction:column; padding:28px var(--pad);
  transform:translateX(100%); transition:transform .4s var(--ease); }
.mobile-menu.open{ transform:none; }
.mobile-menu .mm-top{ display:flex; justify-content:space-between; align-items:center; margin-bottom:40px; }
.mobile-menu .mm-close{ background:none; border:none; color:#fff; font-size:2rem; cursor:pointer; line-height:1; }
.mobile-menu a{ color:#fff; font-family:var(--ff-display); font-weight:700; font-size:1.7rem; padding:14px 0; border-bottom:1px solid rgba(255,255,255,.12); display:flex; justify-content:space-between; align-items:center; }
.mobile-menu a .arw{ color:var(--accent); }
.mobile-menu .mm-actions{ margin-top:auto; display:flex; flex-direction:column; gap:12px; }

@media (max-width:900px){
  .nav, .header-tel{ display:none; }
  .nav-cta .btn-desktop{ display:none; }
  .hamburger{ display:flex; }
}
