/* ============================================================
   MAIN.CSS — 247trucks.ca
   ============================================================ */
:root {
  --orange:    #FF5722;
  --orange-hv: #ff6a00;
  --dark:      #2D2D2D;
  --darker:    #1a1a1a;
  --card-bg:   #383838;
  --blue:      #0061FF;
  --white:     #ffffff;
  --gray-50:   #f9fafb;
  --gray-100:  #f3f4f6;
  --gray-300:  #d1d5db;
  --gray-400:  #9ca3af;
  --gray-500:  #6b7280;
  --gray-600:  #4b5563;
  --gray-700:  #374151;
  --gray-800:  #1f2937;
  --gray-900:  #111827;
  --green:     #22c55e;
  --yellow:    #fbbf24;
  --border:    #334155;
  --radius:    8px;
  --radius-lg: 16px;
  --shadow:    0 4px 24px rgba(0,0,0,.1);
  --shadow-lg: 0 20px 40px rgba(0,0,0,.2);
  --font:      'Roboto', system-ui, sans-serif;
}
*,*::before,*::after { box-sizing:border-box;margin:0;padding:0 }
html { scroll-behavior:smooth }
body { font-family:var(--font);color:var(--gray-800);background:var(--white);
  line-height:1.6;overflow-x:hidden;padding-bottom:72px }
img  { max-width:100%;display:block }
a    { text-decoration:none;color:inherit }

/* --- Typography --- */
h1 { font-size:clamp(2.2rem,5vw,3.8rem);font-weight:900;line-height:1.15;
  text-transform:uppercase;letter-spacing:-.02em;color:var(--gray-900) }
h2 { font-size:clamp(1.8rem,4vw,2.8rem);font-weight:900;text-transform:uppercase;
  color:var(--orange) }
h3 { font-size:1.1rem;font-weight:800;text-transform:uppercase;color:var(--gray-800) }
p  { margin-bottom:1.2rem;color:var(--gray-600);font-size:1rem }

/* --- Container --- */
.container { width:100%;max-width:1200px;margin:0 auto;padding:0 1.5rem }

/* --- Sticky Header --- */
.site-header { position:sticky;top:0;z-index:900;background:var(--orange);
  box-shadow:0 2px 12px rgba(255,87,34,.4) }
.header-inner { max-width:1200px;margin:0 auto;padding:10px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px }
.logo { font-size:1.3rem;font-weight:900;color:var(--white);
  text-transform:uppercase;letter-spacing:-.01em }
.js-sitelinks { display:flex;gap:4px;flex-wrap:wrap }
.js-sitelinks a { font-size:.72rem;font-weight:700;text-transform:uppercase;
  letter-spacing:.08em;padding:5px 10px;border:1px solid rgba(255,255,255,.3);
  border-radius:4px;color:rgba(255,255,255,.9);transition:background .2s }
.js-sitelinks a:hover { background:rgba(255,255,255,.2) }
.header-call { display:flex;flex-direction:column;align-items:center;
  background:var(--white);color:var(--orange);padding:8px 18px;
  border-radius:50px;font-weight:900;transition:transform .15s,box-shadow .15s }
.header-call:hover { transform:scale(1.04);box-shadow:0 4px 14px rgba(0,0,0,.2) }
.header-call .num { font-size:1rem;font-weight:900;line-height:1.2 }
.header-call .sub { font-size:.55rem;text-transform:uppercase;letter-spacing:.1em;opacity:.8 }

/* --- Call Button --- */
.btn-call { display:inline-flex;flex-direction:column;align-items:center;
  justify-content:center;background:var(--orange);color:var(--white);
  padding:.75rem 2rem;border-radius:50px;font-weight:700;cursor:pointer;
  border:none;text-align:center;box-shadow:0 4px 15px rgba(255,87,34,.3);
  transition:all .3s;min-width:220px }
.btn-call:hover { background:var(--orange-hv);transform:translateY(-2px);
  box-shadow:0 6px 20px rgba(255,87,34,.4) }
.btn-call .num { font-size:1.3rem;font-weight:900;line-height:1.2 }
.btn-call .sub { font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;opacity:.9 }
.btn-call--white { background:var(--white);color:var(--gray-900);
  box-shadow:0 4px 15px rgba(255,255,255,.2) }
.btn-call--white:hover { background:#e2e8f0;color:var(--gray-900) }
.btn-call--white .num,.btn-call--white .sub { color:var(--gray-900) }

/* --- Hero --- */
.hero { min-height:88vh;display:flex;align-items:center;
  background:linear-gradient(rgba(2,6,23,.85),rgba(2,6,23,.95)),
    url('/images/hero.webp') center/cover no-repeat;
  padding:80px 0 60px;position:relative }
.hero-inner { max-width:1200px;margin:0 auto;padding:0 24px }
.hero-badges { display:flex;gap:.75rem;margin-bottom:1.5rem;flex-wrap:wrap }
.badge { background:rgba(255,87,34,.15);color:var(--orange);padding:.4rem .9rem;
  border-radius:50px;font-weight:700;font-size:.82rem;
  border:1px solid rgba(255,87,34,.3) }
.hero h1 { color:var(--white);margin-bottom:1rem;max-width:800px }
.hero h1 em { color:var(--orange);font-style:normal }
.hero-sub { font-size:1.15rem;color:#cbd5e1;max-width:580px;margin-bottom:2rem }
.hero-btns { display:flex;gap:1.2rem;flex-wrap:wrap;margin-top:2rem }

/* --- Section --- */
section { padding:80px 0;border-bottom:1px solid var(--gray-100) }

/* --- Form section --- */
.form-section { background:var(--gray-50) }
.form-wrap { max-width:640px;margin:0 auto;background:var(--white);
  padding:40px;border-radius:24px;box-shadow:0 4px 24px rgba(0,0,0,.08);
  border:1px solid var(--gray-100) }
.form-wrap h2 { color:var(--gray-900);text-align:center;margin-bottom:8px }
.form-wrap .sub { text-align:center;color:var(--gray-500);margin-bottom:28px }
.form-group { margin-bottom:20px }
.form-group label { display:block;margin-bottom:6px;font-weight:700;
  font-size:.82rem;color:var(--gray-700) }
.form-group input,.form-group textarea {
  width:100%;padding:12px 14px;border:1px solid var(--gray-300);
  border-radius:var(--radius);color:var(--gray-800);font-family:var(--font);
  font-size:.95rem;background:var(--white);transition:border-color .2s;outline:none }
.form-group input:focus,.form-group textarea:focus { border-color:var(--orange) }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:16px }
.req { color:var(--orange) }
.btn-submit { width:100%;padding:16px;background:var(--blue);color:var(--white);
  font-family:var(--font);font-size:1rem;font-weight:700;border:none;
  border-radius:var(--radius);cursor:pointer;transition:opacity .2s,transform .15s }
.btn-submit:hover { opacity:.9;transform:scale(1.01) }

/* --- Steps --- */
.steps-section { background:var(--white) }
.steps-header { text-align:center;margin-bottom:60px }
.steps-header h2 { color:var(--orange) }
.steps-header p { color:var(--gray-600);font-weight:700;font-size:.85rem }
.steps-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:40px }
.step-item { display:flex;flex-direction:column;align-items:center;text-align:center;gap:16px }
.step-icon { color:var(--gray-700) }
.step-icon svg { width:64px;height:64px }
.step-item h3 { color:var(--orange) }
.step-item p { font-size:.88rem;color:var(--gray-600) }

/* --- Dark services section --- */
.services-dark { background:var(--dark) }
.services-dark h2 { color:var(--orange) }
.services-dark .sub1 { color:var(--gray-300);font-weight:700;font-size:.85rem }
.services-dark .sub2 { color:var(--gray-400);font-size:.78rem;margin-bottom:0 }
.services-grid { display:grid;grid-template-columns:repeat(2,1fr);gap:24px;margin-top:48px }
.service-card { background:var(--card-bg);padding:28px;border-radius:var(--radius);
  display:flex;gap:14px }
.service-card svg { width:22px;height:22px;color:var(--green);flex-shrink:0;margin-top:2px }
.service-card h3 { color:var(--gray-100);margin-bottom:6px;font-size:.95rem }
.service-card p { color:var(--gray-400);font-size:.78rem;margin:0 }

/* --- Testimonials --- */
.testi-section { background:var(--gray-50) }
.testi-section .eyebrow { font-size:.72rem;font-weight:700;
  text-transform:uppercase;letter-spacing:.18em;color:var(--gray-500) }
.testi-grid { display:grid;grid-template-columns:repeat(2,1fr);
  gap:20px;max-width:1000px;margin:48px auto 0 }
.testi-card { background:var(--white);padding:24px;border-radius:12px;
  box-shadow:0 1px 4px rgba(0,0,0,.06);display:flex;align-items:flex-start;gap:14px;
  border:1px solid var(--gray-100) }
.testi-avatar { width:48px;height:48px;border-radius:50%;background:var(--orange);
  color:#fff;display:flex;align-items:center;justify-content:center;
  font-weight:700;font-size:1.1rem;flex-shrink:0 }
.testi-name { font-weight:700;font-size:.9rem;margin-bottom:4px }
.testi-stars { color:var(--yellow);font-size:.75rem;margin-bottom:6px }
.testi-text { color:var(--gray-500);font-size:.8rem;margin:0 }

/* --- FAQ --- */
.faq-section { background:var(--white) }
.faq-list { max-width:800px;margin:0 auto }
.faq-item { border-left:4px solid var(--orange);background:var(--gray-50);
  padding:20px 24px;border-radius:0 var(--radius) var(--radius) 0;margin-bottom:12px }
.faq-item h4 { font-weight:700;color:var(--gray-700);margin-bottom:8px;font-size:.95rem }
.faq-item p { color:var(--gray-500);font-size:.88rem;margin:0 }

/* --- Why Us --- */
.why-section { background:var(--gray-50) }
.why-inner { display:flex;align-items:center;gap:64px;flex-wrap:wrap }
.why-img { flex:1 1 340px }
.why-img img { border-radius:24px;box-shadow:0 20px 40px rgba(0,0,0,.12);width:100% }
.why-text { flex:1 1 340px }
.why-text h2 { margin-bottom:28px }
.why-list { display:flex;flex-direction:column;gap:20px;margin-bottom:32px }
.why-item { display:flex;align-items:flex-start;gap:14px }
.why-item svg { width:22px;height:22px;color:var(--green);flex-shrink:0;margin-top:2px }
.why-item h4 { font-weight:900;color:var(--gray-800);margin-bottom:4px }
.why-item p { color:var(--gray-500);font-size:.88rem;margin:0 }

/* --- Sticky Footer Call Bar --- */
.sticky-bar { position:fixed;bottom:0;left:0;right:0;z-index:950;
  background:var(--orange);padding:10px 20px;
  box-shadow:0 -4px 16px rgba(255,87,34,.4) }
.sticky-bar-inner { max-width:1200px;margin:0 auto;display:flex;justify-content:center }
.sticky-bar .btn-call { background:var(--white);color:var(--orange);
  box-shadow:0 4px 14px rgba(0,0,0,.15);animation:pulse 2.5s infinite }
.sticky-bar .btn-call .num,.sticky-bar .btn-call .sub { color:var(--orange) }
.sticky-bar .btn-call:hover { animation:none }
@keyframes pulse {
  0%,100% { box-shadow:0 4px 14px rgba(0,0,0,.15) }
  50% { box-shadow:0 4px 24px rgba(0,0,0,.3),0 0 0 6px rgba(255,255,255,.2) }
}

/* --- Thank You --- */
.ty-wrap { min-height:90vh;display:flex;align-items:center;justify-content:center;
  flex-direction:column;text-align:center;padding:48px 24px;gap:20px }
.ty-check { width:88px;height:88px;background:var(--orange);border-radius:50%;
  display:flex;align-items:center;justify-content:center }
.ty-check svg { width:44px;height:44px;color:#fff }
.ty-wrap h1 { color:var(--orange);font-size:2.6rem }
.ty-wrap p { color:var(--gray-600);max-width:460px }
.btn-home { display:inline-flex;align-items:center;gap:8px;background:var(--dark);
  color:#fff;padding:14px 28px;border-radius:var(--radius);font-weight:700;
  font-size:.9rem;text-transform:uppercase;letter-spacing:.06em;transition:opacity .2s }
.btn-home:hover { opacity:.85 }

/* --- Responsive --- */
@media(max-width:1024px) {
  .steps-grid { grid-template-columns:1fr 1fr }
  .services-grid { grid-template-columns:1fr }
}
@media(max-width:768px) {
  .js-sitelinks { display:none }
  .hero-btns { flex-direction:column }
  .btn-call { width:100% }
  .testi-grid { grid-template-columns:1fr }
  .steps-grid { grid-template-columns:1fr }
  .form-row { grid-template-columns:1fr }
  .sticky-bar .btn-call { width:100%;justify-content:center }
}
@media(max-width:480px) {
  .header-call .sub { display:none }
}
