*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{margin:0;background:#0a0a0a;font-family:'Open Sans',sans-serif;-webkit-font-smoothing:antialiased;}
::selection{background:#2b97d6;color:#fff;}
a{color:inherit;text-decoration:none;}
button{border:none;cursor:pointer;}

/* Nav links */
.nav-link{
  font-family:'Oswald',sans-serif;font-size:14px;letter-spacing:1.5px;
  text-transform:uppercase;text-decoration:none;padding:8px 13px;
  color:#fff;transition:color .15s;background:none;border:none;cursor:pointer;
}
.nav-link:hover{color:#2b97d6;}
.nav-link.active{color:#2b97d6;}

/* Footer nav */
.footer-link{
  font-family:'Oswald',sans-serif;font-size:14px;letter-spacing:1.5px;
  text-transform:uppercase;padding:6px 14px;color:#cfcfcf;transition:color .15s;
  background:none;border:none;cursor:pointer;
}
.footer-link:hover{color:#2b97d6;}

/* Social */
.social-link{color:#cfcfcf;font-size:19px;transition:color .15s;}
.social-link:hover{color:#2b97d6;}

/* CTA buttons */
.btn-primary{
  display:inline-block;background:#2b97d6;color:#fff;
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:1.5px;
  font-size:15px;font-weight:500;padding:16px 42px;text-decoration:none;
  cursor:pointer;border:none;transition:background .15s;
}
.btn-primary:hover{background:#1f86c2;}
.btn-primary.lg{padding:18px 48px;}

/* Gallery grid buttons */
.gallery-item{
  position:relative;display:block;aspect-ratio:4/3;overflow:hidden;
  background:#141414;border:1px solid #1c1c1c;padding:0;cursor:pointer;width:100%;
}
.gallery-item img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .45s;}
.gallery-item:hover img{transform:scale(1.06);}

/* Home hero grid */
.hero-grid-btn{
  display:block;aspect-ratio:4/3;overflow:hidden;background:#111;
  border:none;padding:0;cursor:pointer;width:100%;
}
.hero-grid-btn img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .4s;}
.hero-grid-btn:hover img{transform:scale(1.05);}

/* Option cards */
.option-card{
  position:relative;display:flex;flex-direction:column;background:#111;
  cursor:pointer;text-align:left;padding:0;overflow:hidden;transition:border-color .15s;
  border:1px solid #262626;
}
.option-card.selected{border:2px solid #2b97d6;}

/* Builder tabs */
.step-tab{
  display:flex;align-items:center;gap:9px;padding:9px 15px;cursor:pointer;
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:1px;
  font-size:13px;border:1px solid #2a2a2a;background:transparent;color:#9a9a9a;
  transition:all .15s;
}
.step-tab.active{border-color:#2b97d6;background:#2b97d6;color:#fff;}
.step-num{
  display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;
  border-radius:50%;font-size:11px;font-family:'Oswald',sans-serif;
  background:#2a2a2a;color:#cfcfcf;
}
.step-tab.active .step-num{background:#fff;color:#2b97d6;}

/* Filter chips */
.filter-chip{
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:1px;
  font-size:13px;padding:8px 16px;cursor:pointer;border:1px solid #2b2b2b;
  background:transparent;color:#bdbdbd;transition:all .15s;
}
.filter-chip.active{background:#2b97d6;color:#fff;border-color:#2b97d6;}

/* FAQ (native <details>/<summary> disclosure) */
.faq-toggle{
  width:100%;display:flex;align-items:center;justify-content:space-between;gap:16px;
  background:transparent;border:none;cursor:pointer;padding:20px 22px;text-align:left;
  list-style:none;
}
.faq-toggle::-webkit-details-marker{display:none;}
.faq-toggle::marker{content:'';display:none;}
.faq-icon::after{content:'+';}
details[open]>.faq-toggle .faq-icon::after{content:'\2013';}

/* Form inputs */
.form-input{
  background:#0a0a0a;border:1px solid #2b2b2b;color:#fff;
  font-family:'Open Sans',sans-serif;font-size:15px;padding:13px 15px;
  outline:none;width:100%;transition:border-color .15s;
}
.form-input:focus{border-color:#2b97d6;}

/* Lightbox */
.lb-thumb{flex:0 0 auto;width:74px;height:56px;object-fit:cover;cursor:pointer;display:block;border:2px solid transparent;opacity:.55;transition:opacity .15s,border-color .15s;}
.lb-thumb.active{border-color:#2b97d6;opacity:1;}
.lb-nav-btn{
  flex:0 0 auto;width:52px;height:52px;border-radius:50%;border:1px solid #333;
  background:rgba(20,20,20,0.8);color:#fff;font-size:18px;cursor:pointer;transition:background .15s,border-color .15s;
}
.lb-nav-btn:hover{background:#2b97d6;border-color:#2b97d6;}

/* Builder nav buttons */
.builder-btn-prev{
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:1.5px;
  font-size:14px;padding:13px 26px;background:#1a1a1a;color:#fff;border:none;cursor:pointer;
}
.builder-btn-prev.disabled{color:#555;pointer-events:none;opacity:.5;}
.builder-btn-next{
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:1.5px;
  font-size:14px;padding:13px 26px;background:#2b97d6;color:#fff;border:none;cursor:pointer;
  transition:background .15s;
}
.builder-btn-next:hover{background:#1f86c2;}

/* Directions card */
.directions-card{
  display:flex;align-items:center;justify-content:space-between;gap:18px;
  margin-top:30px;background:#111;border:1px solid #232323;padding:22px 24px;
  text-decoration:none;transition:border-color .15s;
}
.directions-card:hover{border-color:#2b97d6;}

/* Quote sidebar button */
.quote-sidebar-btn{
  display:block;width:100%;text-align:center;background:#2b97d6;color:#fff;
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:1.5px;
  font-size:15px;font-weight:500;padding:15px;border:none;cursor:pointer;
  transition:background .15s;
}
.quote-sidebar-btn:hover{background:#1f86c2;}

/* Edit build link */
.edit-build-btn{
  background:transparent;border:none;cursor:pointer;font-family:'Oswald',sans-serif;
  text-transform:uppercase;letter-spacing:1.5px;font-size:13px;color:#9a9a9a;padding:0;
  margin-bottom:18px;transition:color .15s;
}
.edit-build-btn:hover{color:#2b97d6;}

/* Build another button */
.build-another-btn{
  background:transparent;border:1px solid #2b97d6;color:#2b97d6;
  font-family:'Oswald',sans-serif;text-transform:uppercase;letter-spacing:1.5px;
  font-size:13px;padding:12px 24px;cursor:pointer;transition:all .15s;
}
.build-another-btn:hover{background:#2b97d6;color:#fff;}
