/* ==========================================================
   Steadman Parking Services — shared stylesheet
   ========================================================== */
:root{
  --asphalt:#1b1c1e;
  --asphalt-2:#26282b;
  --orange:#e7551f;
  --orange-dim:#c2451a;
  --yellow:#f5b400;
  --concrete:#f7f5f0;
  --concrete-2:#ece8de;
  --line:#ddd7c8;
  --steel:#5b5f63;
  --ink:#1b1c1e;
  --white:#ffffff;
}
*{box-sizing:border-box;margin:0;padding:0;}
html{scroll-behavior:smooth;}
body{
  font-family:'Work Sans',sans-serif;
  color:var(--ink);
  background:var(--concrete);
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
::selection{background:var(--orange);color:var(--white);}
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2.5px solid var(--orange);outline-offset:2px;border-radius:1px;
}
.skip-link{
  position:absolute;left:12px;top:-60px;background:var(--asphalt);color:var(--white);
  padding:10px 18px;border-radius:2px;font-size:0.9rem;font-weight:600;z-index:1000;
  transition:top .15s ease;
}
.skip-link:focus{top:12px;}
h1,h2,h3,.display{
  font-family:'Oswald',sans-serif;
  text-transform:uppercase;
  letter-spacing:0.01em;
  line-height:1.08;
  font-weight:600;
}
a{color:inherit;text-decoration:none;}
img{display:block;max-width:100%;}
.wrap{max-width:1180px;margin:0 auto;padding:0 28px;}
ul{list-style:none;}

.hazard-rule{
  height:7px;
  background:repeating-linear-gradient(115deg,var(--yellow) 0 24px,var(--asphalt) 24px 48px);
}
.lane-divider{
  height:3px;
  background-image:linear-gradient(90deg,var(--yellow) 0 38px,transparent 38px 60px);
  background-size:60px 3px;
  background-repeat:repeat-x;
  opacity:0.85;
}

/* ---------- BUTTONS ---------- */
.btn-primary{
  background:var(--orange);color:var(--white);
  padding:14px 28px;font-weight:600;border-radius:3px;
  font-size:0.98rem;display:inline-flex;align-items:center;gap:10px;
  border:1px solid var(--orange);cursor:pointer;
  transition:background .15s, border-color .15s, transform .15s, box-shadow .15s;
}
.btn-primary:hover{background:var(--orange-dim);border-color:var(--orange-dim);transform:translateY(-2px);box-shadow:0 10px 22px rgba(231,85,31,0.28);}
.btn-ghost{
  border:1.5px solid rgba(255,255,255,0.45);color:var(--white);
  padding:13px 26px;border-radius:3px;font-weight:500;font-size:0.98rem;
  transition:border-color .15s, color .15s, background .15s;
}
.btn-ghost:hover{border-color:var(--yellow);color:var(--yellow);background:rgba(255,255,255,0.04);}
.btn-dark{
  background:var(--asphalt);color:var(--white);
  padding:14px 28px;font-weight:600;border-radius:3px;font-size:0.98rem;
  display:inline-flex;align-items:center;gap:10px;
}
.btn-dark:hover{background:#000;}

/* ---------- HEADER / NAV ---------- */
header.site-header{
  position:sticky;top:0;z-index:100;
  background:var(--white);
  border-bottom:1px solid var(--line);
  transition:box-shadow .2s ease;
}
header.site-header.scrolled{box-shadow:0 6px 18px rgba(20,20,20,0.08);}
.nav{
  display:flex;align-items:center;justify-content:space-between;
  padding:14px 28px;max-width:1180px;margin:0 auto;gap:20px;
}
.brand{display:flex;align-items:center;gap:12px;}
.brand img{height:42px;width:auto;}
nav.links{display:flex;gap:30px;align-items:center;}
nav.links a.nav-link{
  color:var(--steel);font-size:0.92rem;font-weight:500;
  padding:6px 2px;border-bottom:2px solid transparent;
  transition:border-color .15s, color .15s;
}
nav.links a.nav-link:hover,
nav.links a.nav-link.active{color:var(--ink);border-color:var(--orange);}
.nav-cta{display:flex;align-items:center;gap:18px;}
.nav-phone{font-family:'Oswald',sans-serif;font-size:0.95rem;color:var(--ink);display:flex;flex-direction:column;line-height:1.2;}
.nav-phone span{font-size:0.68rem;color:var(--steel);text-transform:uppercase;font-family:'Work Sans',sans-serif;letter-spacing:0.03em;}
.call-btn{
  background:var(--orange);color:var(--white);
  padding:10px 20px;font-weight:600;font-size:0.88rem;
  border-radius:3px;
}
.call-btn:hover{background:var(--orange-dim);}
.nav-toggle{
  display:none;background:none;border:none;cursor:pointer;
  width:34px;height:34px;position:relative;flex:none;padding:0;
}
.nav-toggle span{
  position:absolute;left:5px;right:5px;height:2px;background:var(--ink);
  transition:transform .25s ease, opacity .2s ease, top .25s ease;
}
.nav-toggle span:nth-child(1){top:11px;}
.nav-toggle span:nth-child(2){top:17px;}
.nav-toggle span:nth-child(3){top:23px;}
.nav-toggle.is-open span:nth-child(1){top:17px;transform:rotate(45deg);}
.nav-toggle.is-open span:nth-child(2){opacity:0;}
.nav-toggle.is-open span:nth-child(3){top:17px;transform:rotate(-45deg);}

/* ---------- PAGE HERO BANNER (inner pages) ---------- */
.page-hero{
  position:relative;background:var(--asphalt);color:var(--white);
  padding:84px 0;overflow:hidden;
}
.page-hero .bg-photo{
  position:absolute;inset:0;background-size:cover;background-position:center;
  filter:brightness(0.5) saturate(1.1) contrast(1.05);
  transform:scale(1.03);
}
.page-hero::before{
  content:"";position:absolute;inset:0;z-index:1;
  background:linear-gradient(100deg, rgba(15,16,17,0.92) 0%, rgba(15,16,17,0.68) 48%, rgba(15,16,17,0.38) 100%);
}
.page-hero .wrap{position:relative;z-index:2;}
.page-hero .crumb{color:var(--yellow);font-weight:600;font-size:0.88rem;margin-bottom:12px;}
.page-hero h1{font-size:clamp(2rem,4vw,2.9rem);}
.page-hero p{margin-top:14px;color:#d7d8da;max-width:56ch;font-size:1.02rem;}

/* ---------- HOME HERO ---------- */
.home-hero{position:relative;background:var(--asphalt);color:var(--white);overflow:hidden;}
.home-hero .bg-photo{
  position:absolute;inset:0;background-size:cover;background-position:center 30%;
  filter:brightness(0.34) saturate(1.05);
}
.home-hero::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(100deg, rgba(15,16,17,0.94) 0%, rgba(15,16,17,0.72) 42%, rgba(15,16,17,0.35) 78%);
}
.home-hero .wrap{position:relative;z-index:2;padding:118px 28px 96px;}
.home-hero .kicker{color:var(--yellow);font-weight:600;font-size:0.95rem;margin-bottom:16px;}
.home-hero h1{font-size:clamp(2.5rem,5vw,3.8rem);max-width:16ch;margin-bottom:22px;}
.home-hero h1 em{color:var(--orange);font-style:normal;}
.home-hero p.lead{color:#d3d4d6;font-size:1.08rem;max-width:48ch;margin-bottom:32px;}
.hero-actions{display:flex;gap:14px;flex-wrap:wrap;align-items:center;}
.hero-stats{
  margin-top:44px;display:flex;gap:32px;flex-wrap:wrap;
  border-top:1px solid rgba(255,255,255,0.15);padding-top:24px;max-width:640px;
}
.hero-stats div b{display:block;font-family:'Oswald',sans-serif;font-size:1.7rem;color:var(--white);}
.hero-stats div span{font-size:0.78rem;color:#a9abad;}

/* ---------- SECTION GENERIC ---------- */
.section{padding:88px 0;}
.section.tight{padding:64px 0;}
.section-head{max-width:660px;margin-bottom:48px;}
.section-head h2{font-size:clamp(1.7rem,3vw,2.3rem);color:var(--ink);margin-bottom:14px;}
.section-head p{color:var(--steel);font-size:1.02rem;}
.section-tag{display:inline-block;color:var(--orange-dim);font-weight:600;font-size:0.9rem;margin-bottom:10px;}
.section.dark{background:var(--asphalt);color:var(--white);}
.section.dark .section-head h2{color:var(--white);}
.section.dark .section-head p{color:#b7b8ba;}
.section.alt{background:var(--concrete-2);}
.centered{text-align:center;margin-left:auto;margin-right:auto;}

/* ---------- SERVICES GRID (home preview + services page) ---------- */
.services-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);}
.service-card{padding:36px 32px;border-right:1px solid var(--line);position:relative;background:var(--white);transition:box-shadow .2s ease, transform .2s ease;}
.service-card:last-child{border-right:none;}
.service-card:hover{box-shadow:0 14px 32px rgba(20,20,20,0.08);transform:translateY(-3px);z-index:2;}
.service-card .icon{width:44px;height:44px;margin-bottom:22px;}
.service-card h3{font-size:1.18rem;margin-bottom:12px;color:var(--ink);}
.service-card p{color:var(--steel);font-size:0.96rem;margin-bottom:16px;}
.service-card .num{position:absolute;top:32px;right:32px;font-family:'Oswald',sans-serif;font-size:0.85rem;color:#c9c4b6;}
.service-card a.more{font-size:0.88rem;font-weight:600;color:var(--orange-dim);}
.service-card a.more:hover{color:var(--orange);}

/* ---------- SERVICE DETAIL (services.php) ---------- */
.service-detail{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;padding:64px 0;border-bottom:1px solid var(--line);}
.service-detail:last-child{border-bottom:none;}
.service-detail.reverse .sd-copy{order:2;}
.service-detail.reverse .sd-photo{order:1;}
.sd-photo{position:relative;overflow:hidden;border-radius:3px;box-shadow:0 20px 44px rgba(20,20,20,0.14);}
.sd-photo img{width:100%;height:340px;object-fit:cover;border-radius:3px;transition:transform .4s ease;}
.sd-photo:hover img{transform:scale(1.04);}
.sd-photo .tag{
  position:absolute;bottom:-16px;left:-16px;background:var(--orange);color:var(--white);
  padding:10px 18px;font-family:'Oswald',sans-serif;font-size:0.88rem;border-radius:2px;
}
.sd-copy .section-tag{margin-bottom:8px;}
.sd-copy h2{font-size:1.7rem;margin-bottom:16px;color:var(--ink);}
.sd-copy p{color:var(--steel);margin-bottom:14px;}
.sd-list{margin-top:18px;}
.sd-list li{
  display:flex;gap:10px;align-items:flex-start;color:var(--steel);
  font-size:0.95rem;margin-bottom:10px;
}
.sd-list li svg{flex:none;width:18px;height:18px;margin-top:2px;}

/* ---------- PROCESS STEPS ---------- */
.process-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);}
.process-step{padding:30px 26px;border-right:1px solid var(--line);}
.process-step:last-child{border-right:none;}
.process-step .step-num{font-family:'Oswald',sans-serif;font-size:1.6rem;color:var(--orange-dim);margin-bottom:10px;}
.process-step h4{font-family:'Work Sans',sans-serif;font-weight:600;font-size:1rem;text-transform:none;margin-bottom:8px;color:var(--ink);}
.process-step p{font-size:0.9rem;color:var(--steel);}

/* ---------- WHY / STATS ---------- */
.why-grid{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center;}
.why-copy p{color:var(--steel);margin-bottom:16px;font-size:1.02rem;}
.why-photo img{width:100%;height:360px;object-fit:cover;border-radius:3px;box-shadow:0 20px 44px rgba(20,20,20,0.14);}
.stat-list{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:26px;}
.stat{background:var(--white);border:1px solid var(--line);padding:20px 20px;}
.stat b{display:block;font-family:'Oswald',sans-serif;font-size:1.7rem;color:var(--orange-dim);}
.stat span{font-size:0.83rem;color:var(--steel);}

/* ---------- GALLERY (about) ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:3px;}
.gallery-grid figure{position:relative;overflow:hidden;height:260px;background:var(--asphalt);}
.gallery-grid img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease;}
.gallery-grid figure:hover img{transform:scale(1.06);}
.gallery-grid figcaption{
  position:absolute;left:0;right:0;bottom:0;padding:16px 18px;
  background:linear-gradient(0deg, rgba(0,0,0,0.75), transparent);
  color:var(--white);font-size:0.9rem;font-weight:500;
}

/* ---------- VALUES / MISSION ---------- */
.values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;}
.value-card{background:var(--white);border:1px solid var(--line);padding:30px 26px;transition:box-shadow .2s ease, transform .2s ease;}
.value-card:hover{box-shadow:0 14px 32px rgba(20,20,20,0.08);transform:translateY(-3px);}
.value-card .icon{width:38px;height:38px;margin-bottom:18px;}
.value-card h3{font-size:1.05rem;margin-bottom:10px;color:var(--ink);text-transform:none;font-family:'Work Sans',sans-serif;font-weight:600;}
.value-card p{color:var(--steel);font-size:0.93rem;}

/* ---------- CLIENTS ---------- */
.clients-row{display:flex;flex-wrap:wrap;gap:16px;align-items:stretch;}
.client-badge{
  border:1px solid var(--line);background:var(--white);
  padding:20px 26px;flex:1 1 190px;display:flex;align-items:center;justify-content:center;
  min-height:88px;transition:box-shadow .2s ease, transform .2s ease;
}
.client-badge:hover{box-shadow:0 10px 26px rgba(20,20,20,0.07);transform:translateY(-2px);}
.client-badge img{max-height:44px;width:auto;max-width:150px;object-fit:contain;filter:grayscale(15%);}

/* ---------- CTA BAND ---------- */
.cta-section{background:var(--orange);color:var(--white);padding:64px 0;}
.cta-grid{display:grid;grid-template-columns:1.3fr 1fr;gap:40px;align-items:center;}
.cta-grid h2{font-size:clamp(1.7rem,3.2vw,2.3rem);margin-bottom:12px;color:var(--white);}
.cta-grid p{color:#fde6da;font-size:1.02rem;max-width:48ch;}
.cta-phone{background:var(--asphalt);padding:28px 30px;border-radius:3px;}
.cta-phone .label{font-size:0.85rem;color:#c7c8ca;margin-bottom:6px;}
.cta-phone .num{font-family:'Oswald',sans-serif;font-size:1.9rem;color:var(--yellow);margin-bottom:14px;}
.cta-phone .fax{font-size:0.88rem;color:#c7c8ca;}

/* ---------- CONTACT PAGE ---------- */
.contact-grid{display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;align-items:start;}
.contact-cards{display:grid;gap:16px;margin-bottom:28px;}
.contact-card{
  background:var(--white);border:1px solid var(--line);padding:22px 24px;
  display:flex;gap:16px;align-items:flex-start;
}
.contact-card .icon{width:26px;height:26px;flex:none;margin-top:2px;}
.contact-card h4{font-size:0.95rem;margin-bottom:4px;text-transform:none;font-family:'Work Sans',sans-serif;font-weight:600;}
.contact-card p, .contact-card a{color:var(--steel);font-size:0.92rem;display:block;}
.contact-card a:hover{color:var(--orange-dim);}
.map-frame{border:1px solid var(--line);height:260px;overflow:hidden;}
.map-frame iframe{width:100%;height:100%;border:0;}

.form-card{background:var(--white);border:1px solid var(--line);padding:34px;}
.form-card h3{font-size:1.2rem;margin-bottom:6px;color:var(--ink);}
.form-card > p{color:var(--steel);font-size:0.92rem;margin-bottom:22px;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-bottom:16px;}
.form-field{display:flex;flex-direction:column;gap:6px;}
.form-field.full{grid-column:1 / -1;}
.form-field label{font-size:0.82rem;font-weight:600;color:var(--ink);}
.form-field input, .form-field select, .form-field textarea{
  border:1px solid var(--line);background:var(--concrete);
  padding:11px 13px;font-family:'Work Sans',sans-serif;font-size:0.95rem;
  border-radius:2px;color:var(--ink);
}
.form-field input:focus, .form-field select:focus, .form-field textarea:focus{
  outline:2px solid var(--orange);outline-offset:1px;background:var(--white);
}
.form-field textarea{resize:vertical;min-height:110px;}
.form-note{font-size:0.82rem;color:var(--steel);margin-top:14px;}

/* ---------- FOOTER ---------- */
footer{background:var(--asphalt);color:#9a9b9d;padding:48px 0 26px;font-size:0.9rem;}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:36px;padding-bottom:30px;border-bottom:1px solid #35373a;margin-bottom:22px;}
.footer-brand{display:flex;align-items:center;gap:10px;margin-bottom:16px;}
.footer-brand img{height:34px;filter:brightness(0) invert(1);}
.footer-grid h4{color:var(--white);font-family:'Oswald',sans-serif;font-size:0.92rem;text-transform:uppercase;margin-bottom:14px;letter-spacing:0.02em;font-weight:600;}
.footer-grid p, .footer-grid a{display:block;color:#a8a9ab;margin-bottom:9px;}
.footer-grid a:hover{color:var(--yellow);}
.footer-bottom{display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:0.82rem;color:#77787a;}

/* ---------- RESPONSIVE ---------- */
@media (max-width:1024px){
  .section{padding:72px 0;}
  .why-grid{gap:40px;}
}
@media (max-width:960px){
  .home-hero .wrap{padding:90px 24px 70px;}
  .services-grid{grid-template-columns:1fr 1fr;}
  .service-card{border-bottom:1px solid var(--line);}
  .service-card:nth-child(odd){border-right:1px solid var(--line);}
  .service-card:last-child{border-right:none;}
  .service-detail{grid-template-columns:1fr;gap:28px;}
  .service-detail.reverse .sd-copy{order:1;}
  .service-detail.reverse .sd-photo{order:2;}
  .process-grid{grid-template-columns:1fr 1fr;}
  .process-step{border-bottom:1px solid var(--line);}
  .why-grid{grid-template-columns:1fr;}
  .why-photo img{height:280px;}
  .gallery-grid{grid-template-columns:1fr 1fr;}
  .values-grid{grid-template-columns:1fr 1fr;}
  .cta-grid{grid-template-columns:1fr;text-align:left;}
  .contact-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr 1fr;}
  .form-row{grid-template-columns:1fr;}
}
@media (max-width:600px){
  .wrap{padding:0 20px;}
  .section{padding:56px 0;}
  .section.tight{padding:44px 0;}
  .page-hero{padding:56px 0;}
  .home-hero .wrap{padding:76px 20px 56px;}
  .services-grid{grid-template-columns:1fr;}
  .service-card{border-right:none !important;}
  .process-grid{grid-template-columns:1fr;}
  .gallery-grid{grid-template-columns:1fr;}
  .gallery-grid figure{height:220px;}
  .values-grid{grid-template-columns:1fr;}
  .footer-grid{grid-template-columns:1fr;gap:26px;}
  .hero-stats{gap:22px;}
  .clients-row{gap:12px;}
  .client-badge{flex:1 1 130px;padding:14px 16px;min-height:70px;}
  .cta-phone{padding:22px 22px;}
  .sd-photo img{height:240px;}
}
@media (max-width:760px){
  nav.links{
    position:fixed;top:73px;left:0;right:0;bottom:0;
    background:var(--white);flex-direction:column;
    padding:34px 28px;gap:8px;align-items:stretch;
    transform:translateX(100%);transition:transform .28s cubic-bezier(.4,0,.2,1);
    border-top:1px solid var(--line);overflow-y:auto;
    box-shadow:-8px 0 24px rgba(0,0,0,0.06);
  }
  nav.links.open{transform:translateX(0);}
  nav.links a.nav-link{
    font-size:1.05rem;padding:14px 4px;border-bottom:1px solid var(--line);width:100%;
  }
  .nav-toggle{display:block;}
  .nav-cta{display:none;}
  nav.links .call-btn{display:inline-block;margin-top:16px;text-align:center;padding:14px 20px;}
  .gallery-grid{grid-template-columns:1fr;}
  body.menu-open{overflow:hidden;}
}
@media (min-width:761px) and (max-width:1024px){
  .nav{padding:12px 22px;}
  nav.links{gap:20px;}
  .nav-phone{display:none;}
}
/* ---------- REVEAL ON SCROLL (restrained, single effect) ---------- */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .55s ease, transform .55s ease;}
.reveal-in{opacity:1;transform:translateY(0);}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto;}
  nav.links{transition:none;}
  .gallery-grid img{transition:none;}
}
