/* =========================================================
   TAT TRUCKING & MATERIAL
   COMPLETE STYLE REDESIGN
   Industrial / Contractor / Heavy Equipment Direction
========================================================= */

:root{
  --black:#20282f;
  --black-2:#2b343b;
  --black-3:#364047;

  --orange:#123f78;
  --orange-dark:#0b2f5c;

  --cream:#bfc4c7;
  --paper:#d0d4d6;

  --gray:#626b70;
  --gray-light:#b4b9bc;
  --line:#9fa6aa;

  --white:#e1e3e4;

  --max:1280px;
  --header-height:84px;
}

*{
  box-sizing:border-box;
}

html{
  scroll-behavior:smooth;
}

body{
  margin:0;
  background:var(--paper);
  color:var(--black);
  font-family:Inter,Arial,sans-serif;
  overflow-x:hidden;
}

img{
  width:100%;
  display:block;
}

a{
  color:inherit;
}

button,
input,
select,
textarea{
  font:inherit;
}

/* =========================================================
   TYPOGRAPHY
========================================================= */

h1,
h2,
h3{
  margin:0;
  font-family:"Archivo Black",Impact,Arial,sans-serif;
  text-transform:uppercase;
  letter-spacing:-.035em;
}

h1{
  font-size:clamp(48px,5.5vw,82px);
  line-height:.9;
  letter-spacing:-.045em;
}

h2{
  font-size:clamp(40px,5vw,72px);
  line-height:.94;
}

h3{
  font-size:20px;
  line-height:1.05;
}

p{
  line-height:1.7;
}

.eyebrow{
  display:flex;
  align-items:center;
  gap:12px;
  margin:0 0 18px;
  color:var(--orange);
  font-size:11px;
  font-weight:900;
  letter-spacing:.18em;
  text-transform:uppercase;
}

.eyebrow::before{
  content:"";
  width:38px;
  height:3px;
  background:currentColor;
}

.eyebrow.dark{
  color:var(--orange);
}

/* =========================================================
   BUTTONS
========================================================= */

.btn{
  display:inline-flex;
  min-height:52px;
  align-items:center;
  justify-content:center;
  padding:0 24px;
  border:2px solid transparent;
  border-radius:0;
  text-decoration:none;
  text-transform:uppercase;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
  transition:
    background .18s ease,
    color .18s ease,
    border-color .18s ease,
    transform .18s ease;
}

.btn:hover{
  transform:translateY(-2px);
}

.btn-primary{
  background:var(--orange);
  color:var(--white);
}

.btn-primary:hover{
  background:var(--orange-dark);
}

.btn-outline{
  border-color:currentColor;
  background:transparent;
}

.full{
  width:100%;
}

/* =========================================================
   HEADER
========================================================= */

.site-header{
  height:var(--header-height);
  position:sticky;
  top:0;
  z-index:100;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 max(22px,calc((100vw - var(--max))/2));
  background:var(--black);
  border-bottom:3px solid var(--orange);
  color:var(--white);
}

.brand{
  display:flex;
  align-items:center;
  gap:14px;
  text-decoration:none;
}

.brand-mark{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:62px;
  height:46px;
  padding:0 8px;
  background:var(--orange);
  color:#fff;
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:27px;
  letter-spacing:-.09em;
}

.brand-copy{
  display:flex;
  flex-direction:column;
  gap:3px;
}

.brand-copy strong{
  font-size:12px;
  letter-spacing:.12em;
}

.brand-copy small{
  color:#9fa4a1;
  font-size:10px;
  font-weight:700;
  letter-spacing:.08em;
}

.nav{
  display:flex;
  align-items:center;
  gap:27px;
}

.nav a{
  position:relative;
  color:#e9e9e6;
  text-decoration:none;
  text-transform:uppercase;
  font-size:10px;
  font-weight:900;
  letter-spacing:.09em;
}

.nav a:not(.nav-cta)::after{
  content:"";
  position:absolute;
  left:0;
  right:100%;
  bottom:-8px;
  height:2px;
  background:var(--orange);
  transition:right .18s ease;
}

.nav a:not(.nav-cta):hover::after{
  right:0;
}

.nav-cta{
  min-height:42px;
  display:inline-flex;
  align-items:center;
  padding:0 16px;
  background:var(--orange);
  color:#fff !important;
}

.menu-button{
  display:none;
  min-height:40px;
  padding:0 14px;
  border:1px solid #555a58;
  background:transparent;
  color:#fff;
  font-size:11px;
  font-weight:900;
  letter-spacing:.1em;
}

/* =========================================================
   HERO
========================================================= */

.hero{
  position:relative;
  min-height:620px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);
  background:var(--black);
  color:#fff;
  overflow:hidden;
}

.hero-content{
  position:relative;
  z-index:5;
  grid-column:1;
  grid-row:1;
  align-self:center;
  max-width:720px;
  margin-left:max(22px,calc((100vw - var(--max))/2));
  padding:70px 55px 125px 0;
}

.hero-content h1 em{
  color:var(--orange);
  font-style:normal;
}

.hero-lead{
  max-width:660px;
  margin:28px 0 0;
  color:#c9cdcb;
  font-size:17px;
}

.hero-actions{
  display:flex;
  flex-wrap:wrap;
  gap:12px;
  margin-top:34px;
}

.hero .btn-outline{
  color:#fff;
}

.hero-photo{
  position:relative;
  grid-column:2;
  grid-row:1;
  min-height:620px;
  overflow:hidden;
}

.hero-photo::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  pointer-events:none;
  background:
    linear-gradient(90deg,var(--black) 0%,rgba(17,19,19,.76) 17%,rgba(17,19,19,.08) 50%),
    linear-gradient(0deg,rgba(17,19,19,.45),transparent 40%);
}

.hero-overlay{
  display:none;
}

.placeholder-photo{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  min-height:180px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.02),rgba(255,255,255,0)),
    repeating-linear-gradient(
      -45deg,
      #404545 0,
      #404545 14px,
      #363b3b 14px,
      #363b3b 28px
    );
  color:#a6aaa7;
  font-size:10px;
  font-weight:900;
  letter-spacing:.16em;
  text-align:center;
  text-transform:uppercase;
}

.hero-stats{
  position:absolute;
  z-index:8;
  left:max(22px,calc((100vw - var(--max))/2));
  bottom:0;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  background:var(--cream);
  color:var(--black);
}

.hero-stats div{
  min-width:170px;
  padding:22px 27px;
  border-right:1px solid #bbbdb8;
}

.hero-stats strong{
  display:block;
  color:var(--orange);
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:28px;
  line-height:1;
}

.hero-stats span{
  display:block;
  margin-top:7px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  text-transform:uppercase;
}

/* =========================================================
   RED STRIP / QUICK PROMPTS
========================================================= */

.strip{
  min-height:58px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:24px;
  padding:12px 24px;
  background:var(--orange);
  color:#fff;
  overflow:hidden;
}

.strip p{
  margin:0;
  white-space:nowrap;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}

.strip span{
  width:28px;
  height:2px;
  flex:0 0 28px;
  background:rgba(255,255,255,.45);
}

/* =========================================================
   COMMON SECTION LAYOUT
========================================================= */

.section{
  width:min(var(--max),calc(100% - 44px));
  margin:0 auto;
  padding:105px 0;
}

.section-heading{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  gap:90px;
  align-items:end;
  margin-bottom:54px;
}

.section-heading>p:last-child{
  margin:0;
  max-width:500px;
  color:var(--gray);
}

/* =========================================================
   SERVICES
========================================================= */

.services{
  position:relative;
}

.services::before{
  content:"SERVICES";
  position:absolute;
  right:0;
  top:45px;
  z-index:-1;
  color:#eeece5;
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:clamp(90px,14vw,210px);
  letter-spacing:-.08em;
  line-height:1;
}

.service-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  border-top:4px solid var(--black);
}

.service-card{
  position:relative;
  min-height:250px;
  display:grid;
  grid-template-columns:70px 1fr;
  align-content:start;
  padding:34px 34px 34px 0;
  border-bottom:1px solid var(--line);
  background:transparent;
}

.service-card:nth-child(odd){
  border-right:1px solid var(--line);
  padding-right:45px;
}

.service-card:nth-child(even){
  padding-left:45px;
}

.service-number{
  grid-row:1/5;
  color:#bbbdb8;
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:28px;
  line-height:1;
}

.service-card h3{
  margin-bottom:13px;
  font-size:24px;
}

.service-card p{
  max-width:470px;
  margin:0;
  color:var(--gray);
  font-size:14px;
}

.service-card a{
  display:inline-block;
  margin-top:18px;
  color:var(--orange);
  text-decoration:none;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}

.home-section-link{
  display:flex;
  justify-content:flex-end;
  margin-top:36px;
}

/* =========================================================
   MATERIALS
========================================================= */

.materials-section{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:100px;
  padding:105px max(22px,calc((100vw - var(--max))/2));
  background:var(--cream);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}

.materials-copy{
  align-self:center;
}

.materials-copy p:not(.eyebrow){
  max-width:450px;
  color:var(--gray);
}

.text-link{
  display:inline-block;
  margin-top:14px;
  color:var(--orange);
  text-decoration:none;
  font-size:10px;
  font-weight:900;
  letter-spacing:.1em;
}

.material-list{
  border-top:4px solid var(--black);
}

.material-list div{
  display:grid;
  grid-template-columns:70px 1fr auto;
  align-items:center;
  min-height:76px;
  border-bottom:1px solid #babdb7;
}

.material-list div::after{
  content:"→";
  color:var(--orange);
  font-weight:900;
}

.material-list span{
  color:#9a9e9a;
  font-size:10px;
  font-weight:900;
}

.material-list strong{
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:24px;
  text-transform:uppercase;
}

/* =========================================================
   EQUIPMENT
========================================================= */

.compact{
  grid-template-columns:1fr;
  margin-bottom:40px;
}

.equipment-grid{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:16px;
}

.equipment-item{
  background:var(--black);
  color:#fff;
}

.equipment-photo{
  aspect-ratio:4/3;
  min-height:0;
}

.equipment-item h3{
  margin:0;
  padding:18px 18px 20px;
  font-size:15px;
  letter-spacing:-.015em;
}

/* =========================================================
   PROJECTS
========================================================= */

.projects{
  padding:105px max(22px,calc((100vw - var(--max))/2));
  background:var(--black);
  color:#fff;
}

.projects .eyebrow.dark{
  color:var(--orange);
}

.projects-heading{
  display:grid;
  grid-template-columns:1fr .75fr;
  gap:90px;
  align-items:end;
  margin-bottom:50px;
}

.projects-heading p{
  color:#aeb3b0;
}

.dark-link{
  color:var(--orange);
}

.project-grid{
  display:grid;
  grid-template-columns:1.2fr .8fr .8fr;
  grid-template-rows:280px 280px;
  gap:10px;
}

.project-photo{
  min-height:0;
  border:1px solid #3d4241;
}

.project-photo.tall{
  grid-row:1/3;
}

.project-photo.wide{
  grid-column:2/4;
}

/* =========================================================
   ABOUT
========================================================= */

.about{
  display:grid;
  grid-template-columns:210px 1fr;
  gap:90px;
}

.about-badge{
  align-self:start;
  padding:22px 0 0;
  border-top:6px solid var(--orange);
}

.about-badge strong{
  display:block;
  color:var(--orange);
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:68px;
  line-height:.9;
}

.about-badge span{
  display:block;
  margin-top:10px;
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
}

.about-copy{
  max-width:850px;
}

.large-copy{
  margin-top:28px;
  color:#313533;
  font-size:20px;
  line-height:1.75;
}

.about-copy>p:not(.eyebrow):not(.large-copy){
  color:var(--gray);
}

/* if older full about page still uses these */
.family-placeholder{
  display:grid;
  grid-template-columns:1fr 1fr;
  margin-top:38px;
  border-top:3px solid var(--black);
}

.family-placeholder div{
  padding:18px 0;
  border-bottom:1px solid var(--line);
}

.family-placeholder div:nth-child(odd){
  padding-right:25px;
  border-right:1px solid var(--line);
}

.family-placeholder div:nth-child(even){
  padding-left:25px;
}

.family-placeholder strong,
.family-placeholder span{
  display:block;
}

.family-placeholder strong{
  font-size:11px;
  font-weight:900;
}

.family-placeholder span{
  margin-top:4px;
  color:var(--gray);
  font-size:12px;
}

/* =========================================================
   HOMEPAGE CTA
========================================================= */

.home-cta{
  padding:95px max(22px,calc((100vw - var(--max))/2));
  background:var(--orange);
  color:#fff;
}

.home-cta .eyebrow{
  color:#fff;
}

.home-cta .eyebrow::before{
  background:#fff;
}

.home-cta-inner{
  display:grid;
  grid-template-columns:1fr .85fr;
  gap:100px;
  align-items:end;
}

.home-cta-copy{
  max-width:520px;
}

.home-cta-copy>p{
  margin:0;
  color:#ffe8de;
  font-size:17px;
}

.home-cta .btn-primary{
  background:var(--black);
}

.home-cta .btn-outline{
  color:#fff;
}

/* =========================================================
   QUOTE / CONTACT
   Clean two-column layout for contact.php
========================================================= */

.quote-section{
  display:block;
  width:100%;
  padding:90px 22px 100px;
  background:var(--cream);
}

.quote-layout{
  width:min(1180px,100%);
  margin:0 auto;
  display:grid;
  grid-template-columns:minmax(340px,.82fr) minmax(0,1.18fr);
  gap:72px;
  align-items:start;
}

.quote-info{
  min-width:0;
  padding-top:16px;
}

.quote-info h2{
  margin:18px 0 24px;
  font-family:"Archivo Black",Impact,Arial,sans-serif;
  font-size:clamp(46px,4.35vw,66px);
  line-height:.94;
  letter-spacing:-.045em;
  color:var(--black);
}

.quote-intro{
  max-width:500px;
  margin:0 0 42px;
  color:var(--black-3);
  font-size:17px;
  line-height:1.7;
}

.contact-list{
  max-width:520px;
  border-top:3px solid var(--black);
}

.contact-item{
  display:grid;
  grid-template-columns:56px minmax(0,1fr);
  gap:18px;
  align-items:center;
  padding:22px 0;
  border-bottom:1px solid #b9bbb6;
}

.contact-icon{
  width:50px;
  height:50px;
  display:flex;
  align-items:center;
  justify-content:center;
  flex:0 0 50px;
  border-radius:50%;
  background:var(--orange);
  color:#fff;
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:21px;
  line-height:1;
}

.contact-item span{
  display:block;
  margin-bottom:5px;
  color:var(--black);
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}

.contact-item a,
.contact-item strong{
  display:block;
  color:var(--black);
  text-decoration:none;
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:19px;
  line-height:1.3;
}

.contact-item a:hover{
  color:var(--orange);
}

.contact-item p{
  max-width:390px;
  margin:4px 0 0;
  color:var(--gray);
  font-size:14px;
  line-height:1.55;
}


/* Quote form card */

.quote-form-card{
  min-width:0;
  width:100%;
  padding:38px 42px 42px;
  background:#fff;
  border:1px solid var(--line);
  border-top:6px solid var(--orange);
  box-shadow:0 18px 45px rgba(0,0,0,.08);
}

.quote-form-heading{
  margin-bottom:28px;
}

.quote-form-heading h3{
  margin:8px 0 7px;
  font-family:"Archivo Black",Impact,sans-serif;
  font-size:32px;
  line-height:1;
}

.quote-form-heading p:last-child{
  margin:0;
  color:var(--gray);
  font-size:14px;
}


/* Form */

.quote-form{
  display:flex;
  flex-direction:column;
  gap:20px;
  padding:0;
  background:transparent;
  border:0;
}

.form-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:18px;
}

.form-group{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:8px;
}

.form-group label,
.quote-form label{
  display:block;
  margin:0;
  color:var(--black);
  font-size:10px;
  font-weight:900;
  letter-spacing:.13em;
  line-height:1.35;
  text-transform:uppercase;
}

.optional{
  color:#919590;
  font-weight:700;
}

.form-group input,
.form-group select,
.form-group textarea,
.quote-form input,
.quote-form select,
.quote-form textarea{
  width:100%;
  min-width:0;
  margin:0;
  padding:14px 15px;
  border:1px solid #c8cac5;
  border-radius:0;
  outline:none;
  background:#fafafa;
  color:var(--black);
  font:inherit;
  font-size:14px;
  transition:
    border-color .18s ease,
    background .18s ease,
    box-shadow .18s ease;
}

.form-group input,
.form-group select{
  height:52px;
}

.form-group textarea,
.quote-form textarea{
  min-height:145px;
  resize:vertical;
}

.form-group input:focus,
.form-group select:focus,
.form-group textarea:focus,
.quote-form input:focus,
.quote-form select:focus,
.quote-form textarea:focus{
  border-color:var(--orange);
  background:#fff;
  box-shadow:0 0 0 2px rgba(216,92,36,.12);
}

.form-group small{
  color:#686c69;
  font-size:12px;
  line-height:1.45;
}

.file-upload{
  padding:11px 12px;
  border:1px solid #c8cac5;
  background:#fafafa;
}

.file-upload input{
  height:auto;
  padding:0;
  border:0;
  background:transparent;
}

.quote-submit{
  min-width:225px;
  align-self:flex-start;
  border:0;
  cursor:pointer;
  padding:16px 24px;
}

.form-disclaimer{
  margin:0;
  color:#747875;
  font-size:11px;
  line-height:1.55;
}


/* Form feedback */

.form-message{
  margin-bottom:24px;
  padding:16px 18px;
  border-left:5px solid;
}

.form-message strong{
  font-family:"Archivo Black",Impact,sans-serif;
}

.form-message p{
  margin:5px 0 0;
}

.form-message.success{
  background:#eef5ec;
  border-color:#518347;
}

.form-message.error{
  background:#fff0ed;
  border-color:var(--orange);
}

.form-message.error ul{
  margin:8px 0 0;
  padding-left:20px;
}


/* Quote page responsive */

@media(max-width:980px){

  .quote-layout{
    grid-template-columns:1fr;
    gap:52px;
  }

  .quote-info{
    max-width:720px;
  }

  .contact-list{
    max-width:none;
  }

  .quote-form-card{
    max-width:760px;
  }
}

@media(max-width:620px){

  .quote-section{
    padding:65px 18px 75px;
  }

  .quote-info h2{
    font-size:42px;
  }

  .contact-item{
    grid-template-columns:48px minmax(0,1fr);
    gap:14px;
  }

  .contact-icon{
    width:44px;
    height:44px;
    flex-basis:44px;
    font-size:18px;
  }

  .contact-item a,
  .contact-item strong{
    font-size:17px;
  }

  .quote-form-card{
    padding:27px 20px 30px;
  }

  .quote-form-heading h3{
    font-size:27px;
  }

  .form-row{
    grid-template-columns:1fr;
  }

  .quote-submit{
    width:100%;
  }
}


/* =========================================================
   GENERIC INNER PAGE SUPPORT
========================================================= */

.page-hero{
  padding:90px max(22px,calc((100vw - var(--max))/2));
  background:var(--black);
  color:#fff;
  border-bottom:6px solid var(--orange);
}

.page-hero p{
  max-width:650px;
  color:#bbc0bd;
}

.page-section{
  width:min(var(--max),calc(100% - 44px));
  margin:0 auto;
  padding:90px 0;
}

.page-grid{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:28px;
}

.content-card{
  padding:28px;
  border-top:4px solid var(--orange);
  background:var(--cream);
}

.content-card p{
  color:var(--gray);
}

/* =========================================================
   FOOTER
========================================================= */

footer{
  display:grid;
  grid-template-columns:1fr auto;
  gap:40px;
  align-items:center;
  padding:54px max(22px,calc((100vw - var(--max))/2));
  background:#090a0a;
  color:#fff;
}

footer .brand-mark{
  background:var(--orange);
}

.footer-brand{
  display:flex;
  align-items:center;
  gap:15px;
}

.footer-brand p{
  margin:0;
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
}

.footer-brand small{
  color:#777d79;
  font-weight:600;
}

.footer-links{
  display:flex;
  gap:22px;
}

.footer-links a{
  color:#aeb3b0;
  text-decoration:none;
  text-transform:uppercase;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
}

.copyright{
  grid-column:1/-1;
  margin:0;
  padding-top:20px;
  border-top:1px solid #303333;
  color:#616663;
  font-size:9px;
}

/* =========================================================
   TABLET
========================================================= */

@media(max-width:980px){

  .nav{
    display:none;
    position:absolute;
    top:var(--header-height);
    left:0;
    right:0;
    flex-direction:column;
    align-items:flex-start;
    gap:0;
    padding:12px 22px 20px;
    background:var(--black);
    border-bottom:3px solid var(--orange);
  }

  .nav.open{
    display:flex;
  }

  .nav a{
    width:100%;
    padding:14px 0;
    border-bottom:1px solid #313535;
  }

  .nav-cta{
    width:auto !important;
    margin-top:12px;
    padding:0 16px !important;
    border:0 !important;
  }

  .menu-button{
    display:block;
  }

  .hero{
    grid-template-columns:1fr;
  }

  .hero-photo{
    grid-column:1;
    grid-row:1;
    min-height:470px;
  }

  .hero-photo::before{
    background:linear-gradient(0deg,var(--black) 0%,rgba(17,19,19,.18) 55%);
  }

  .hero-content{
    grid-column:1;
    grid-row:2;
    margin-left:0;
    max-width:none;
    padding:55px 24px 145px;
  }

  .hero-stats{
    left:24px;
    right:24px;
  }

  .hero-stats div{
    min-width:0;
  }

  .section-heading,
  .materials-section,
  .projects-heading,
  .about,
  .home-cta-inner,
  .quote-section{
    grid-template-columns:1fr;
    gap:42px;
  }

  .materials-section{
    padding-left:24px;
    padding-right:24px;
  }

  .equipment-grid{
    grid-template-columns:repeat(2,1fr);
  }

  .project-grid{
    grid-template-columns:1fr 1fr;
    grid-template-rows:240px 240px 240px;
  }

  .project-photo.tall{
    grid-row:auto;
  }

  .project-photo.wide{
    grid-column:1/3;
  }

  .about-badge{
    max-width:180px;
  }

  .page-grid{
    grid-template-columns:1fr;
  }
}

/* =========================================================
   MOBILE
========================================================= */

@media(max-width:620px){

  :root{
    --header-height:74px;
  }

  .site-header{
    padding-left:16px;
    padding-right:16px;
  }

  .brand-copy{
    display:none;
  }

  .brand-mark{
    min-width:56px;
    height:40px;
    font-size:24px;
  }

  h1{
    font-size:48px;
    letter-spacing:-.045em;
  }

  h2{
    font-size:39px;
  }

  .hero-photo{
    min-height:320px;
  }

  .hero-content{
    padding:44px 18px 155px;
  }

  .hero-lead{
    font-size:15px;
  }

  .hero-actions{
    flex-direction:column;
  }

  .hero-actions .btn{
    width:100%;
  }

  .hero-stats{
    left:18px;
    right:18px;
  }

  .hero-stats div{
    padding:15px 10px;
  }

  .hero-stats strong{
    font-size:20px;
  }

  .hero-stats span{
    font-size:7px;
  }

  .strip{
    justify-content:flex-start;
    overflow:hidden;
  }

  .section{
    width:calc(100% - 36px);
    padding:72px 0;
  }

  .section-heading{
    gap:28px;
  }

  .service-grid{
    grid-template-columns:1fr;
  }

  .service-card,
  .service-card:nth-child(odd),
  .service-card:nth-child(even){
    padding:27px 0;
    border-right:0;
  }

  .service-card{
    grid-template-columns:52px 1fr;
  }

  .service-number{
    font-size:21px;
  }

  .service-card h3{
    font-size:20px;
  }

  .home-section-link{
    justify-content:flex-start;
  }

  .materials-section,
  .projects,
  .home-cta,
  .quote-section{
    padding:72px 18px;
  }

  .material-list strong{
    font-size:19px;
  }

  .equipment-grid{
    grid-template-columns:1fr;
  }

  .project-grid{
    grid-template-columns:1fr;
    grid-template-rows:repeat(4,220px);
  }

  .project-photo.wide{
    grid-column:auto;
  }

  .about{
    grid-template-columns:1fr;
    gap:36px;
  }

  .about-badge strong{
    font-size:56px;
  }

  .family-placeholder{
    grid-template-columns:1fr;
  }

  .family-placeholder div:nth-child(odd),
  .family-placeholder div:nth-child(even){
    padding-left:0;
    padding-right:0;
    border-right:0;
  }

  .form-row{
    grid-template-columns:1fr;
  }

  .quote-form{
    padding:24px 18px;
  }

  footer{
    grid-template-columns:1fr;
    padding:45px 18px;
  }

  .footer-links{
    display:none;
  }

  .page-hero{
    padding:65px 18px;
  }

  .page-section{
    width:calc(100% - 36px);
    padding:70px 0;
  }
}

.project-photo,
.equipment-photo {
    position: relative;
    overflow: hidden;
}

.project-photo img,
.equipment-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}

.project-caption {
    position: absolute;
    left: 0;
    bottom: 0;
    width: 100%;
    padding: 14px 16px;
    background: rgba(17, 19, 19, 0.82);
    color: #fff;
    font-size: 14px;
    font-weight: 700;
}

/* =========================================
   OUR WORK - DYNAMIC GALLERY
========================================= */

.work-gallery-section,
.work-equipment-section {
    padding: 100px 5%;
    background: var(--paper);
    color: var(--black);
}

.work-equipment-section {
    background: var(--cream);
}

.work-gallery-heading {
    max-width: var(--max);
    margin: 0 auto 50px;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: end;
}

.work-gallery-heading h2 {
    margin: 0;
}

.work-gallery-heading > p {
    max-width: 560px;
    margin: 0;
    color: var(--gray);
    line-height: 1.7;
}


/* Gallery */

.work-gallery {
    max-width: var(--max);
    margin: 0 auto;
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 18px;
}

.gallery-item {
    position: relative;
    display: block;
    width: 100%;
    height: 340px;
    padding: 0;
    border: 0;
    background: var(--black);
    overflow: hidden;
    cursor: pointer;

    opacity: 1;
    transform: translateY(0);

    transition:
        opacity .45s ease,
        transform .45s ease;
}

.gallery-item:nth-child(6n + 1),
.gallery-item:nth-child(6n + 5) {
    height: 460px;
}

.gallery-item img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;

    transition: transform .6s ease;
}

.gallery-item:hover img {
    transform: scale(1.055);
}

.gallery-item::after {
    content: "";
    position: absolute;
    inset: 0;
    background: linear-gradient(
        to top,
        rgba(17, 19, 19, .72),
        rgba(17, 19, 19, .02) 55%
    );

    opacity: 0;
    transition: opacity .3s ease;
}

.gallery-item:hover::after {
    opacity: 1;
}

.gallery-overlay {
    position: absolute;
    left: 18px;
    right: 18px;
    bottom: 18px;
    z-index: 2;

    color: #fff;
    font-weight: 700;
    text-align: left;

    opacity: 0;
    transform: translateY(10px);

    transition:
        opacity .3s ease,
        transform .3s ease;
}

.gallery-item:hover .gallery-overlay {
    opacity: 1;
    transform: translateY(0);
}


/* Hidden items */

.gallery-hidden {
    display: none;
}

.gallery-reveal {
    animation: galleryReveal .6s ease both;
}

@keyframes galleryReveal {

    from {
        opacity: 0;
        transform: translateY(25px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }

}


/* Load more */

.gallery-load-wrap {
    max-width: var(--max);
    margin: 45px auto 0;
    display: flex;
    justify-content: center;
}

.gallery-load-button {
    min-width: 220px;
}


/* Empty gallery */

.gallery-empty {
    max-width: var(--max);
    margin: 0 auto;
    padding: 80px 30px;

    border: 2px dashed var(--line);

    text-align: center;
    color: var(--gray);
    font-weight: 700;
}


/* =========================================
   EQUIPMENT
========================================= */

.work-equipment-grid {
    max-width: var(--max);
    margin: 0 auto;

    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}

.work-equipment-card {
    background: var(--paper);
    border: 1px solid var(--line);
}

.work-equipment-photo {
    height: 260px;
    overflow: hidden;
    background: var(--black-2);
}

.work-equipment-photo img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;

    transition: transform .5s ease;
}

.work-equipment-card:hover .work-equipment-photo img {
    transform: scale(1.045);
}

.work-equipment-card h3 {
    margin: 0;
    padding: 18px 20px;
}


/* =========================================
   LIGHTBOX
========================================= */

body.lightbox-open {
    overflow: hidden;
}

.gallery-lightbox {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 50px 100px;

    background: rgba(5, 6, 6, .96);

    opacity: 0;
    visibility: hidden;
    pointer-events: none;

    transition:
        opacity .25s ease,
        visibility .25s ease;
}

.gallery-lightbox.is-open {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
}

.lightbox-content {
    max-width: 1100px;
    max-height: 90vh;

    display: flex;
    flex-direction: column;
    align-items: center;
}

.lightbox-content img {
    display: block;

    max-width: 100%;
    max-height: 78vh;

    object-fit: contain;
}

.lightbox-content p {
    margin: 18px 0 0;
    color: #fff;
    font-weight: 700;
    text-align: center;
}

.lightbox-close {
    position: absolute;
    top: 25px;
    right: 35px;

    border: 0;
    background: transparent;

    color: #fff;
    font-size: 52px;
    line-height: 1;

    cursor: pointer;
}

.lightbox-arrow {
    position: absolute;
    top: 50%;

    transform: translateY(-50%);

    width: 56px;
    height: 70px;

    border: 1px solid rgba(255, 255, 255, .25);

    background: rgba(255, 255, 255, .06);

    color: #fff;
    font-size: 46px;

    cursor: pointer;

    transition:
        background .2s ease,
        border-color .2s ease;
}

.lightbox-arrow:hover {
    background: var(--orange);
    border-color: var(--orange);
}

.lightbox-prev {
    left: 25px;
}

.lightbox-next {
    right: 25px;
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1000px) {

    .work-gallery {
        grid-template-columns: repeat(2, 1fr);
    }

    .work-equipment-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .work-gallery-heading {
        grid-template-columns: 1fr;
        gap: 25px;
    }

}

@media (max-width: 650px) {

    .work-gallery-section,
    .work-equipment-section {
        padding: 70px 20px;
    }

    .work-gallery {
        grid-template-columns: 1fr;
    }

    .gallery-item,
    .gallery-item:nth-child(6n + 1),
    .gallery-item:nth-child(6n + 5) {
        height: 300px;
    }

    .work-equipment-grid {
        grid-template-columns: 1fr;
    }

    .gallery-lightbox {
        padding: 70px 15px 40px;
    }

    .lightbox-arrow {
        width: 44px;
        height: 58px;
        font-size: 34px;
    }

    .lightbox-prev {
        left: 8px;
    }

    .lightbox-next {
        right: 8px;
    }

    .lightbox-close {
        right: 18px;
        top: 15px;
    }

}

/* =========================================
   OUR WORK - CONTINUOUS PROJECT MARQUEE
========================================= */

.work-showcase,
.work-equipment-section {
    padding: 100px 0;
    background: var(--paper);
    color: var(--black);
}

.work-equipment-section {
    background: var(--cream);
}

.work-showcase-heading {
    max-width: var(--max);
    margin: 0 auto 55px;
    padding: 0 30px;

    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 60px;
    align-items: end;
}

.work-showcase-heading h2 {
    margin: 0;
}

.work-showcase-heading > p {
    max-width: 560px;
    margin: 0;

    color: var(--gray);
    line-height: 1.7;
}


/* =========================================
   SLIDING PROJECT STRIP
========================================= */

.project-marquee {
    width: 100%;
    overflow: hidden;
    position: relative;

    padding: 20px 0 35px;
}

.project-marquee::before,
.project-marquee::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 110px;
    z-index: 5;
    pointer-events: none;
}

.project-marquee::before {
    left: 0;

    background: linear-gradient(
        to right,
        var(--paper),
        transparent
    );
}

.project-marquee::after {
    right: 0;

    background: linear-gradient(
        to left,
        var(--paper),
        transparent
    );
}


.project-marquee-track {
    display: flex;
    width: max-content;
    gap: 18px;

    animation: projectMarquee 75s linear infinite;
}


/* Pause when someone wants to inspect a photo */

.project-marquee:hover .project-marquee-track {
    animation-play-state: paused;
}


/* =========================================
   PROJECT PHOTOS
========================================= */

.marquee-photo {
    position: relative;

    flex: 0 0 370px;

    height: 280px;

    padding: 0;
    border: 0;

    background: var(--black);

    overflow: hidden;
    cursor: pointer;
}


/* Different widths to make the line feel less repetitive */

.marquee-photo:nth-child(5n + 1) {
    flex-basis: 470px;
}

.marquee-photo:nth-child(5n + 3) {
    flex-basis: 320px;
}


.marquee-photo img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform .55s ease;
}


.marquee-photo:hover img {
    transform: scale(1.06);
}


.marquee-photo::after {
    content: "";

    position: absolute;
    inset: 0;

    background: linear-gradient(
        to top,
        rgba(17, 19, 19, .75),
        transparent 60%
    );

    opacity: 0;

    transition: opacity .3s ease;
}


.marquee-photo:hover::after {
    opacity: 1;
}


.marquee-caption {
    position: absolute;

    left: 20px;
    right: 20px;
    bottom: 18px;

    z-index: 2;

    color: #fff;

    font-size: 15px;
    font-weight: 700;

    text-align: left;

    opacity: 0;

    transform: translateY(8px);

    transition:
        opacity .3s ease,
        transform .3s ease;
}


.marquee-photo:hover .marquee-caption {
    opacity: 1;
    transform: translateY(0);
}


/* =========================================
   LOOP ANIMATION
========================================= */

@keyframes projectMarquee {

    from {
        transform: translateX(0);
    }

    to {
        transform: translateX(calc(-50% - 9px));
    }

}


/* =========================================
   EQUIPMENT
========================================= */

.work-equipment-grid {
    max-width: var(--max);

    margin: 0 auto;
    padding: 0 30px;

    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 20px;
}


.work-equipment-card {
    background: var(--paper);
    border: 1px solid var(--line);
}


.work-equipment-photo {
    height: 260px;

    overflow: hidden;

    background: var(--black-2);
}


.work-equipment-photo img {
    width: 100%;
    height: 100%;

    display: block;

    object-fit: cover;

    transition: transform .5s ease;
}


.work-equipment-card:hover .work-equipment-photo img {
    transform: scale(1.045);
}


.work-equipment-card h3 {
    margin: 0;
    padding: 18px 20px;
}


/* =========================================
   EMPTY GALLERY
========================================= */

.gallery-empty {
    max-width: var(--max);

    margin: 0 auto;
    padding: 70px 30px;

    border: 2px dashed var(--line);

    text-align: center;

    color: var(--gray);
}


/* =========================================
   LIGHTBOX
========================================= */

body.lightbox-open {
    overflow: hidden;
}


.gallery-lightbox {
    position: fixed;
    inset: 0;

    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 60px;

    background: rgba(5, 6, 6, .96);

    opacity: 0;
    visibility: hidden;

    pointer-events: none;

    transition:
        opacity .25s ease,
        visibility .25s ease;
}


.gallery-lightbox.is-open {
    opacity: 1;
    visibility: visible;

    pointer-events: auto;
}


.lightbox-content {
    max-width: 1200px;
    max-height: 90vh;

    display: flex;
    flex-direction: column;
    align-items: center;
}


.lightbox-content img {
    max-width: 100%;
    max-height: 78vh;

    object-fit: contain;
}


.lightbox-content p {
    margin: 18px 0 0;

    color: #fff;

    font-weight: 700;
    text-align: center;
}


.lightbox-close {
    position: absolute;

    top: 24px;
    right: 35px;

    padding: 0;

    border: 0;

    background: transparent;

    color: #fff;

    font-size: 52px;
    line-height: 1;

    cursor: pointer;
}


/* =========================================
   RESPONSIVE
========================================= */

@media (max-width: 1000px) {

    .work-showcase-heading {
        grid-template-columns: 1fr;
        gap: 25px;
    }

    .work-equipment-grid {
        grid-template-columns: repeat(2, 1fr);
    }

    .marquee-photo {
        flex-basis: 320px;
        height: 240px;
    }

    .marquee-photo:nth-child(5n + 1) {
        flex-basis: 390px;
    }

}


@media (max-width: 650px) {

    .work-showcase,
    .work-equipment-section {
        padding: 70px 0;
    }

    .work-showcase-heading {
        padding: 0 20px;
    }

    .project-marquee::before,
    .project-marquee::after {
        width: 45px;
    }

    .marquee-photo,
    .marquee-photo:nth-child(5n + 1),
    .marquee-photo:nth-child(5n + 3) {
        flex-basis: 280px;
        height: 210px;
    }

    .project-marquee-track {
        gap: 12px;

        animation-duration: 55s;
    }

    .work-equipment-grid {
        padding: 0 20px;

        grid-template-columns: 1fr;
    }

    .gallery-lightbox {
        padding: 70px 15px 30px;
    }

    .lightbox-close {
        top: 14px;
        right: 18px;
    }

}

/* =========================================
   MATERIALS - PROJECT STEPS
========================================= */

.materials-section + .projects .content-card {
    background: var(--black-2);
    border: 1px solid #343838;
    border-top: 4px solid var(--orange);
    color: var(--white);
}

.materials-section + .projects .content-card h3 {
    color: var(--white);
}

.materials-section + .projects .content-card p {
    color: #b9bdbb;
}

.materials-section + .projects .content-card .eyebrow {
    color: var(--orange);
}

/* MATERIALS PAGE - PROJECT STEPS */

.material-steps .content-card {
    background: #1a1d1d;
    border: 1px solid #343838;
    border-top: 4px solid var(--orange);
}

.material-steps .content-card h3 {
    color: #ffffff;
}

.material-steps .content-card > p:not(.eyebrow) {
    color: #b9bdbb;
}

.material-steps .content-card .eyebrow {
    color: var(--orange);
}

.hero-photo img {
    width: 100%;
    height: 100%;
    display: block;
    object-fit: cover;
}