/* ============================================================
   SODHI SERVICES — shared stylesheet
   ============================================================ */

:root{
  --asphalt: #0e1626;
  --asphalt-2: #16213a;
  --asphalt-3: #1e2c4a;
  --steel: #7c8aa3;
  --steel-line: #29354f;
  --paper: #eef1f5;
  --paper-2: #dbe1e8;
  --white: #ffffff;
  --ink: #0e1626;
  --amber: #ff5a1f;
  --amber-deep: #e0470f;
  --red: #c73838;
  --max: 1220px;
  --ease: cubic-bezier(.22,.61,.36,1);
}

*{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
html,body{ margin:0; padding:0; }
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Inter',sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
@media (prefers-reduced-motion: reduce){
  html{ scroll-behavior:auto; }
  *{ animation-duration:0.001ms !important; animation-iteration-count:1 !important; transition-duration:0.001ms !important; }
}

h1,h2,h3,h4{
  font-family:'Oswald',sans-serif;
  text-transform:uppercase;
  letter-spacing:.01em;
  margin:0;
  color:var(--ink);
  font-weight:600;
}
p{ margin:0; line-height:1.65; color:#3d4550; }
a{ color:inherit; }
ul{ margin:0; padding:0; list-style:none; }
.mono{
  font-family:'JetBrains Mono',monospace;
  letter-spacing:.06em;
  text-transform:uppercase;
}
img,svg{ display:block; }
button{ font-family:inherit; cursor:pointer; }

.wrap{ max-width:var(--max); margin:0 auto; padding:0 32px; }
@media (max-width:640px){ .wrap{ padding:0 20px; } }

::selection{ background:var(--amber); color:var(--asphalt); }
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible{
  outline:2px solid var(--amber); outline-offset:2px;
}

/* ---------- top progress bar ---------- */
#top-progress{
  position:fixed; top:0; left:0; height:3px; width:0%;
  background:var(--amber); z-index:60; transition:width .08s linear;
}

/* ---------- Header ---------- */
header{
  position:fixed; top:0; left:0; right:0; z-index:50;
  background:rgba(20,23,27,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid rgba(255,255,255,0.06);
  transition:background .3s var(--ease);
}
.nav{
  max-width:var(--max); margin:0 auto; padding:0 32px;
  height:76px; display:flex; align-items:center; justify-content:space-between;
}
@media (max-width:640px){ .nav{ padding:0 20px; height:64px; } }
.brand{ display:flex; align-items:center; gap:10px; text-decoration:none; }
.brand-mark{ width:30px; height:30px; flex:none; }
.brand-text{ color:var(--white); font-family:'Oswald',sans-serif; font-weight:600; font-size:19px; letter-spacing:.03em; }
.brand-text span{ color:var(--amber); }

nav.links{ display:flex; align-items:center; gap:34px; }
nav.links a{
  color:var(--paper); text-decoration:none; font-family:'JetBrains Mono',monospace;
  font-size:12.5px; letter-spacing:.08em; text-transform:uppercase;
  position:relative; padding:4px 0; opacity:.78; transition:opacity .2s;
}
nav.links a:hover{ opacity:1; }
nav.links a.current{ opacity:1; color:var(--amber); }
nav.links a::after{
  content:''; position:absolute; left:0; bottom:-4px; height:2px; width:0;
  background:var(--amber); transition:width .25s var(--ease);
}
nav.links a:hover::after, nav.links a.current::after{ width:100%; }

.nav-cta{
  background:var(--amber); color:var(--asphalt); text-decoration:none;
  font-family:'JetBrains Mono',monospace; font-size:12.5px; letter-spacing:.08em; text-transform:uppercase;
  padding:11px 20px; border-radius:2px; font-weight:600;
  transition:transform .2s var(--ease), background .2s;
  white-space:nowrap;
}
.nav-cta:hover{ background:#ff7a47; transform:translateY(-2px); }

.nav-phone{
  display:flex; align-items:center; gap:8px;
  color:var(--paper); text-decoration:none;
  font-size:13px; letter-spacing:.04em; white-space:nowrap;
  opacity:.85; transition:opacity .2s, color .2s;
}
.nav-phone svg{ width:15px; height:15px; color:var(--amber); flex:none; }
.nav-phone:hover{ opacity:1; color:var(--amber); }
@media (max-width:1120px){ .nav-phone{ display:none; } }

.burger{ display:none; background:none; border:none; padding:8px; }
.burger span{ display:block; width:22px; height:2px; background:var(--white); margin:5px 0; }

@media (max-width:900px){
  nav.links{
    position:fixed; top:64px; left:0; right:0; bottom:0;
    background:var(--asphalt); flex-direction:column; justify-content:flex-start;
    padding:40px 28px; gap:26px; transform:translateX(100%); transition:transform .35s var(--ease);
  }
  nav.links.open{ transform:translateX(0); }
  nav.links a{ font-size:16px; opacity:1; }
  .nav-cta{ display:none; }
  .burger{ display:block; }
}
@media (max-width:400px){
  .brand-text{ font-size:16px; }
  .brand-mark{ width:26px; height:26px; }
}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{
  position:relative; min-height:62vh;
  background:var(--asphalt) center/cover no-repeat;
  display:flex; align-items:flex-end;
  padding-top:76px;
}
.page-hero::before{
  content:''; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,23,27,0.55) 0%, rgba(20,23,27,0.55) 40%, rgba(20,23,27,0.94) 100%);
}
.page-hero-inner{ position:relative; z-index:2; max-width:var(--max); margin:0 auto; padding:0 32px 64px; width:100%; }
@media (max-width:640px){ .page-hero-inner{ padding:0 20px 36px; } .page-hero{ min-height:44vh; } }
@media (max-width:420px){ .page-hero{ min-height:auto; padding-bottom:6px; } .page-hero-inner{ padding-bottom:32px; } .page-hero p{ font-size:15px; } }
.page-hero .eyebrow{ display:inline-flex; align-items:center; gap:10px; color:var(--amber); font-size:12.5px; margin-bottom:20px; }
.page-hero .eyebrow .dash{ width:28px; height:2px; background:var(--amber); }
.page-hero h1{ color:var(--white); font-size:clamp(34px,5.6vw,64px); line-height:1.02; max-width:16ch; }
.page-hero p{ margin-top:20px; max-width:560px; color:#c3c9cf; font-size:16.5px; }
.page-hero .crumb{ margin-top:26px; font-family:'JetBrains Mono',monospace; font-size:11.5px; color:#8b939b; letter-spacing:.06em; text-transform:uppercase; }
.page-hero .crumb a{ text-decoration:none; color:#8b939b; }
.page-hero .crumb a:hover{ color:var(--amber); }

/* image sources per page (baked in) */
.hero-home{ background-image:linear-gradient(rgba(20,23,27,.15),rgba(20,23,27,.15)), url('https://images.unsplash.com/photo-1783428673235-77dafc15eb59?w=2000&q=80&auto=format&fit=crop'); }
.hero-about{ background-image:linear-gradient(rgba(20,23,27,.15),rgba(20,23,27,.15)), url('https://images.unsplash.com/photo-1578857371787-189d8b9eda84?w=2000&q=80&auto=format&fit=crop'); }
.hero-services{ background-image:linear-gradient(rgba(20,23,27,.15),rgba(20,23,27,.15)), url('https://images.unsplash.com/photo-1746349086423-06ea6b4d73f7?w=2000&q=80&auto=format&fit=crop'); }
.hero-fleet{ background-image:linear-gradient(rgba(20,23,27,.15),rgba(20,23,27,.15)), url('https://images.unsplash.com/photo-1565793298595-6a879b1d9492?w=2000&q=80&auto=format&fit=crop'); }
.hero-industries{ background-image:linear-gradient(rgba(20,23,27,.15),rgba(20,23,27,.15)), url('https://images.unsplash.com/photo-1591768793355-74d04bb6608f?w=2000&q=80&auto=format&fit=crop'); }
.hero-contact{ background-image:linear-gradient(rgba(20,23,27,.15),rgba(20,23,27,.15)), url('https://images.unsplash.com/photo-1616432043562-3671ea2e5242?w=2000&q=80&auto=format&fit=crop'); }

/* full-bleed home hero variant (taller, with lane animation) */
.hero-full{ min-height:100svh; align-items:center; }
.hero-full .page-hero-inner{ padding:70px 32px 90px; }
@media (max-width:640px){ .hero-full .page-hero-inner{ padding:40px 20px 70px; } }
.hero-road{ position:absolute; left:0; right:0; bottom:0; height:38%; overflow:hidden; z-index:1; }
.hero-road .lane{ position:absolute; bottom:14%; left:-20%; width:140%; height:5px; display:flex; gap:34px; animation:lane-move 4.5s linear infinite; }
.hero-road .lane i{ display:block; width:52px; height:100%; background:var(--amber); opacity:.85; flex:none; transform:skewX(-20deg); }
@keyframes lane-move{ from{ transform:translateX(0);} to{ transform:translateX(-172px);} }
.hero-meta{ margin-top:64px; display:flex; gap:44px; flex-wrap:wrap; padding-top:28px; border-top:1px solid rgba(255,255,255,0.16); }
.hero-meta div{ display:flex; flex-direction:column; gap:6px; }
.hero-meta b{ font-family:'Oswald',sans-serif; color:var(--white); font-size:26px; }
.hero-meta span{ color:#c3c9cf; font-size:11.5px; font-family:'JetBrains Mono',monospace; letter-spacing:.08em; text-transform:uppercase; }

/* ---------- Buttons ---------- */
.hero-actions{ margin-top:36px; display:flex; gap:16px; flex-wrap:wrap; align-items:center; }
.btn{
  display:inline-flex; align-items:center; gap:10px;
  font-family:'JetBrains Mono',monospace; font-size:13px; letter-spacing:.07em; text-transform:uppercase;
  padding:16px 26px; border-radius:2px; text-decoration:none; font-weight:600;
  transition:transform .2s var(--ease), background .2s, color .2s;
  border:1px solid transparent;
}
.btn-primary{ background:var(--amber); color:var(--asphalt); }
.btn-primary:hover{ background:#ff7a47; transform:translateY(-2px); }
.btn-ghost{ border-color:rgba(255,255,255,0.28); color:var(--white); }
.btn-ghost:hover{ border-color:var(--amber); color:var(--amber); transform:translateY(-2px); }

/* ---------- Section shell ---------- */
section{ position:relative; padding:120px 0; }
@media (max-width:640px){ section{ padding:76px 0; } }
.section-dark{ background:var(--asphalt); }
.section-mid{ background:var(--asphalt-2); }
.tight-top{ padding-top:88px; }
@media (max-width:640px){ .tight-top{ padding-top:60px; } }

.kicker{
  display:flex; align-items:center; gap:12px;
  font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.12em; text-transform:uppercase;
  color:var(--amber-deep); margin-bottom:18px;
}
.kicker::before{ content:''; width:8px; height:8px; background:var(--amber); border-radius:1px; transform:rotate(45deg); flex:none; }
section.section-dark .kicker, section.section-mid .kicker{ color:var(--amber); }

.section-head{ max-width:680px; margin-bottom:64px; }
.section-head h2{ font-size:clamp(30px,4vw,46px); line-height:1.05; }
section.section-dark h2, section.section-mid h2{ color:var(--white); }
.section-head p{ margin-top:20px; font-size:16.5px; }
section.section-dark .section-head p, section.section-mid .section-head p{ color:#aab1b9; }

.reveal{ opacity:0; transform:translateY(28px); transition:opacity .7s var(--ease), transform .7s var(--ease); }
.reveal.in{ opacity:1; transform:translateY(0); }

/* ---------- Photo band (editorial image + caption) ---------- */
.photo-band{ position:relative; height:52vh; min-height:340px; background:center/cover no-repeat; }
.photo-band .cap{
  position:absolute; left:0; right:0; bottom:0; padding:26px 32px;
  background:linear-gradient(0deg, rgba(14,22,38,0.88), transparent);
  display:flex; justify-content:space-between; align-items:flex-end; gap:20px; flex-wrap:wrap;
}
.photo-band .cap h3{ color:#fff; font-size:20px; }
.photo-band .cap span{ color:var(--amber); font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; }
@media (max-width:640px){
  .photo-band{ height:38vh; min-height:240px; }
  .photo-band .cap{ padding:20px 20px; }
  .photo-band .cap h3{ font-size:17px; }
}

/* ---------- About / principles ---------- */
.principles{ display:grid; grid-template-columns:repeat(3,1fr); gap:2px; background:var(--paper-2); border:1px solid var(--paper-2); margin-top:8px; }
@media (max-width:820px){ .principles{ grid-template-columns:1fr; } }
.principle{ background:var(--paper); padding:40px 36px; }
.principle .num{ font-family:'JetBrains Mono',monospace; color:var(--amber-deep); font-size:13px; margin-bottom:22px; display:block; }
.principle h3{ font-size:21px; margin-bottom:14px; }
.principle p{ font-size:15px; }

.about-grid{ display:grid; grid-template-columns:0.85fr 1fr; gap:64px; align-items:start; }
@media (max-width:900px){ .about-grid{ grid-template-columns:1fr; gap:40px; } }
.about-card{ background:var(--white); border:1px solid var(--paper-2); padding:36px; }
.about-card .abn{ margin-top:22px; padding-top:22px; border-top:1px dashed var(--paper-2); font-size:13px; }
.about-card .abn a{ color:var(--amber-deep); text-decoration:none; border-bottom:1px solid currentColor; }

/* ---------- Services ---------- */
.service-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--steel-line); }
@media (max-width:900px){ .service-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:600px){ .service-grid{ grid-template-columns:1fr; } }
.service-card{ background:var(--asphalt); padding:38px 32px; min-height:270px; display:flex; flex-direction:column; transition:background .3s var(--ease); }
.service-card:hover{ background:var(--asphalt-3); }
.service-card .icon{ width:34px; height:34px; color:var(--amber); margin-bottom:26px; }
.service-card h3{ color:var(--white); font-size:18px; margin-bottom:12px; letter-spacing:.02em; }
.service-card p{ color:#98a0a8; font-size:14px; flex:1; }
.service-card .tags{ margin-top:18px; display:flex; flex-wrap:wrap; gap:8px; }
.service-card .tags span{ font-family:'JetBrains Mono',monospace; font-size:10px; letter-spacing:.05em; text-transform:uppercase; color:var(--steel); border:1px solid var(--steel-line); padding:4px 8px; border-radius:2px; }

/* ---------- Process steps (original content) ---------- */
.process{ display:grid; grid-template-columns:repeat(5,1fr); gap:1px; background:var(--paper-2); margin-top:8px; counter-reset:step; }
@media (max-width:980px){ .process{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .process{ grid-template-columns:1fr; } }
.process-step{ background:var(--white); padding:30px 26px; position:relative; }
.process-step .step-no{ font-family:'JetBrains Mono',monospace; color:var(--amber-deep); font-size:12px; margin-bottom:16px; display:block; }
.process-step h4{ font-size:15.5px; margin-bottom:10px; letter-spacing:.01em; }
.process-step p{ font-size:13px; }

/* ---------- FAQ ---------- */
.faq{ max-width:820px; }
.faq-item{ border-bottom:1px solid var(--paper-2); }
section.section-dark .faq-item, section.section-mid .faq-item{ border-color:var(--steel-line); }
.faq-q{
  width:100%; text-align:left; background:none; border:none; padding:24px 0;
  display:flex; justify-content:space-between; align-items:center; gap:20px;
  font-family:'Oswald',sans-serif; text-transform:none; letter-spacing:0;
  font-size:17px; font-weight:500; color:var(--ink);
}
section.section-dark .faq-q, section.section-mid .faq-q{ color:var(--white); }
.faq-q .plus{ flex:none; width:20px; height:20px; position:relative; }
.faq-q .plus::before, .faq-q .plus::after{ content:''; position:absolute; background:var(--amber-deep); transition:transform .25s var(--ease); }
section.section-dark .faq-q .plus::before, section.section-dark .faq-q .plus::after,
section.section-mid .faq-q .plus::before, section.section-mid .faq-q .plus::after{ background:var(--amber); }
.faq-q .plus::before{ left:0; top:9px; width:20px; height:2px; }
.faq-q .plus::after{ left:9px; top:0; width:2px; height:20px; }
.faq-item.open .plus::after{ transform:rotate(90deg); opacity:0; }
.faq-a{ max-height:0; overflow:hidden; transition:max-height .35s var(--ease); }
.faq-item.open .faq-a{ max-height:240px; }
.faq-a p{ padding-bottom:24px; max-width:64ch; font-size:14.5px; }
section.section-dark .faq-a p, section.section-mid .faq-a p{ color:#aab1b9; }

/* ---------- Fleet ---------- */
.fleet-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:70px; align-items:center; }
@media (max-width:900px){ .fleet-wrap{ grid-template-columns:1fr; gap:44px; } }
.fleet-list{ display:grid; grid-template-columns:1fr 1fr; gap:14px 26px; margin-top:30px; }
@media (max-width:480px){ .fleet-list{ grid-template-columns:1fr; } }
.fleet-list li{ display:flex; align-items:baseline; gap:10px; font-size:14.5px; color:#404850; }
.fleet-list li::before{ content:'—'; color:var(--amber-deep); flex:none; }
.fleet-types{ display:flex; flex-wrap:wrap; gap:10px; margin-top:26px; }
.fleet-types span{ font-family:'JetBrains Mono',monospace; font-size:12px; letter-spacing:.04em; background:var(--asphalt); color:var(--amber); padding:9px 14px; border-radius:2px; }

/* ---------- Industries ---------- */
.industry-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:980px){ .industry-grid{ grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px){ .industry-grid{ grid-template-columns:1fr; } }
.industry-card{ border:1px solid var(--paper-2); background:var(--white); padding:28px 24px; transition:border-color .25s, transform .25s var(--ease); }
.industry-card:hover{ border-color:var(--amber-deep); transform:translateY(-4px); }
.industry-card h3{ font-size:15.5px; margin-bottom:10px; letter-spacing:.01em; }
.industry-card p{ font-size:13.5px; }

/* ---------- Why us ---------- */
.why-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:1px; background:var(--steel-line); margin-top:8px; }
@media (max-width:700px){ .why-grid{ grid-template-columns:1fr; } }
.why-card{ background:var(--asphalt); padding:34px 32px; }
.why-card h3{ color:var(--white); font-size:17px; margin-bottom:10px; }
.why-card p{ color:#98a0a8; font-size:14px; }

/* ---------- Team ---------- */
.team-strip{ display:flex; flex-wrap:wrap; }
.team-item{ flex:1 1 220px; padding:34px 30px; border-right:1px solid var(--steel-line); display:flex; flex-direction:column; gap:8px; }
.team-item:last-child{ border-right:none; }
.team-item .role-num{ font-family:'JetBrains Mono',monospace; font-size:12px; color:var(--amber-deep); }
.team-item h3{ font-size:16px; }

/* ---------- Commitment ---------- */
.commitment{ background:var(--asphalt); position:relative; overflow:hidden; }
.commitment::after{
  content:''; position:absolute; right:-10%; top:50%; width:520px; height:520px;
  background:radial-gradient(circle, rgba(255,90,31,0.12), transparent 65%);
  transform:translateY(-50%); pointer-events:none;
}
.commitment-inner{ max-width:820px; }
.commitment blockquote{ margin:0; color:var(--white); font-family:'Oswald',sans-serif; font-weight:500; font-size:clamp(24px,3.4vw,38px); line-height:1.28; text-transform:none; letter-spacing:0; }
.commitment blockquote b{ color:var(--amber); font-weight:600; }
.commitment .pillars{ margin-top:40px; display:flex; flex-wrap:wrap; gap:12px; }
.commitment .pillars span{ font-family:'JetBrains Mono',monospace; font-size:11.5px; letter-spacing:.06em; text-transform:uppercase; border:1px solid rgba(255,255,255,0.18); color:#cfd5da; padding:9px 15px; border-radius:2px; }

/* ---------- CTA band (bottom of pages) ---------- */
.cta-band{ background:var(--asphalt); position:relative; overflow:hidden; padding:90px 0; }
.cta-band::before{ content:''; position:absolute; inset:0; background:repeating-linear-gradient(180deg, transparent 0 46px, rgba(255,255,255,0.02) 46px 48px); }
.cta-band-inner{ position:relative; z-index:1; display:flex; justify-content:space-between; align-items:center; gap:30px; flex-wrap:wrap; }
.cta-band h2{ color:#fff; font-size:clamp(26px,3.4vw,38px); max-width:14ch; }

/* ---------- Contact / quote form ---------- */
.cta-grid{ display:grid; grid-template-columns:1fr 1fr; gap:70px; }
@media (max-width:900px){ .cta-grid{ grid-template-columns:1fr; gap:46px; } }
.cta-copy h2{ font-size:clamp(30px,4vw,46px); line-height:1.05; }
.cta-copy p{ margin-top:22px; font-size:16px; max-width:44ch; }
.cta-points{ margin-top:34px; display:flex; flex-direction:column; gap:14px; }
.cta-points li{ display:flex; gap:12px; align-items:flex-start; font-size:14.5px; color:#3d4550; }
.cta-points li svg{ width:18px; height:18px; flex:none; color:var(--amber-deep); margin-top:2px; }

.contact-cards{ display:grid; grid-template-columns:repeat(2,1fr); gap:16px; margin-top:36px; }
@media (max-width:520px){ .contact-cards{ grid-template-columns:1fr; } }
.contact-card{ border:1px solid var(--paper-2); background:var(--white); padding:22px 22px; }
.contact-card .lbl{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--amber-deep); margin-bottom:10px; display:block; }
.contact-card p{ font-size:14.5px; }
.contact-card a{ color:var(--ink); text-decoration:none; border-bottom:1px solid var(--paper-2); }
.contact-card a:hover{ border-color:var(--amber-deep); color:var(--amber-deep); }

.map-wrap{ position:relative; width:100%; height:420px; border:1px solid var(--paper-2); overflow:hidden; }
.map-wrap iframe{ width:100%; height:100%; border:0; filter:grayscale(0.15) contrast(1.05); }
@media (max-width:640px){ .map-wrap{ height:280px; } }

form#quote-form{ background:var(--white); border:1px solid var(--paper-2); padding:36px; display:flex; flex-direction:column; gap:18px; }
.field{ display:flex; flex-direction:column; gap:8px; }
.field label{ font-family:'JetBrains Mono',monospace; font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:#5a6470; }
.field input, .field select, .field textarea{
  border:1px solid var(--paper-2); background:var(--paper); padding:13px 14px;
  font-family:'Inter',sans-serif; font-size:14.5px; color:var(--ink); border-radius:2px;
  transition:border-color .2s, background .2s;
}
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--amber-deep); background:var(--white); }
.field-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:480px){ .field-row{ grid-template-columns:1fr; } }
textarea{ resize:vertical; min-height:88px; }
.field.err input, .field.err select, .field.err textarea{ border-color:var(--red); }
.field .err-msg{ display:none; color:var(--red); font-size:12px; }
.field.err .err-msg{ display:block; }

#submit-btn{
  background:var(--amber); color:var(--asphalt); border:none; padding:16px 24px;
  font-family:'JetBrains Mono',monospace; font-size:13px; letter-spacing:.07em; text-transform:uppercase;
  font-weight:600; border-radius:2px; display:flex; align-items:center; justify-content:center; gap:10px;
  transition:background .2s, transform .2s var(--ease);
}
#submit-btn:hover{ background:#ff7a47; transform:translateY(-2px); }
#submit-btn:disabled{ opacity:.6; cursor:not-allowed; transform:none; }
.spinner{ width:14px; height:14px; border-radius:50%; border:2px solid rgba(20,23,27,0.25); border-top-color:var(--asphalt); display:none; animation:spin .7s linear infinite; }
#submit-btn.loading .spinner{ display:inline-block; }
#submit-btn.loading .btn-label{ opacity:.7; }
@keyframes spin{ to{ transform:rotate(360deg); } }

#form-status{ display:none; align-items:center; gap:10px; padding:14px 16px; border-radius:2px; font-size:13.5px; font-family:'JetBrains Mono',monospace; }
#form-status.show{ display:flex; }
#form-status.ok{ background:#eaf6ec; color:#1c6b32; border:1px solid #b9e3c1; }
#form-status.bad{ background:#fbeaea; color:#9c2b2b; border:1px solid #f0bcbc; }

/* ---------- Footer ---------- */
footer{ background:var(--asphalt); border-top:1px solid var(--steel-line); padding:60px 0 30px; }
.footer-top{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:50px; padding-bottom:44px; border-bottom:1px solid var(--steel-line); }
.footer-top-4{ grid-template-columns:1.2fr 0.75fr 0.9fr 1.15fr; }
@media (max-width:900px){ .footer-top-4{ grid-template-columns:1fr 1fr; gap:34px 40px; } .footer-top-4 .footer-brand{ grid-column:1 / -1; } }
@media (max-width:760px){ .footer-top{ grid-template-columns:1fr; gap:34px; } .footer-top-4{ grid-template-columns:1fr; } .footer-top-4 .footer-brand{ grid-column:auto; } }
.footer-brand p{ margin-top:16px; color:#8a929a; font-size:13.5px; max-width:34ch; }
footer h4{ color:var(--white); font-size:13px; letter-spacing:.08em; margin-bottom:18px; }
footer ul li{ margin-bottom:10px; line-height:1.55; }
footer ul li, footer ul li a{ color:#9aa2a9; font-size:13.5px; text-decoration:none; }
footer ul li a:hover{ color:var(--amber); }
.footer-bottom{ padding-top:26px; display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px; color:#66707a; font-size:12px; font-family:'JetBrains Mono',monospace; }

/* ---------- Extra small-screen refinements ---------- */
@media (max-width:640px){
  .hero-meta{ gap:26px; margin-top:44px; padding-top:22px; }
  .hero-meta b{ font-size:21px; }
  .hero-actions{ gap:12px; }
  .hero-actions .btn{ flex:1 1 auto; justify-content:center; }
  .cta-band{ padding:56px 0; }
  .cta-band-inner{ justify-content:center; text-align:center; flex-direction:column; }
  form#quote-form{ padding:26px 22px; }
  .about-card{ padding:26px 22px; }
  .principle{ padding:30px 24px; }
  .service-card{ padding:30px 24px; min-height:0; }
  .contact-card{ padding:18px; }
  .footer-bottom{ flex-direction:column; gap:8px; }
  section{ overflow-x:hidden; }
}
@media (max-width:380px){
  .wrap{ padding:0 16px; }
  .hero h1, .page-hero h1{ font-size:30px; }
}
