:root{--accent:#1293D4;--text:#0B1222;--muted:#5B6477;--card:#ffffff;--ring:rgba(18,147,212,.32);--radius:14px}
*{box-sizing:border-box}html,body{margin:0;padding:0}
body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;color:var(--text);line-height:1.6;background:#F7F8FB}
img{max-width:100%;display:block}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.container{width:min(1100px,92vw);margin:0 auto}.row{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.muted{color:#6b7280;margin:.2rem 0 .6rem}
.site-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:saturate(180%) blur(8px);border-bottom:1px solid #eaeaf1}
.brand img{height:88px}.nav-toggle{display:none;border:0;background:transparent;padding:.5rem;cursor:pointer}
.nav-toggle span{display:block;width:22px;height:2px;background:#1f2937;margin:4px 0}
.nav-menu{display:flex;gap:1rem;list-style:none;padding:0;margin:0;align-items:center}
.nav-menu a{padding:.6rem .8rem;border-radius:10px}.nav-menu a:hover{background:#f1f4fb;text-decoration:none}
.btn{display:inline-block;padding:.8rem 1.1rem;border-radius:12px;font-weight:600;background:var(--accent);color:#fff}
.btn--sm{padding:.5rem .8rem}
.hero{background:#fff;color:#0b1222;padding:clamp(2rem,5vw,4rem) 0;border-bottom:1px solid #eef0f7}
.hero__grid{display:grid;grid-template-columns:1.2fr .8fr;gap:clamp(1rem,3vw,2rem);align-items:center}
.hero h1{font-size:clamp(2rem,3.6vw,3.2rem);line-height:1.15;margin:0 0 1rem 0}
.lede{color:#445066;max-width:70ch}.cta{display:flex;gap:.8rem;margin:1.2rem 0 1.6rem}
.badges{display:flex;gap:1rem;list-style:none;padding:0;margin:1rem 0 0 0;color:#334155}
.badges li{border:1px solid #e5eaf4;padding:.4rem .6rem;border-radius:999px;background:#f8fbff}
.hero__img img{border-radius:16px;border:1px solid #eaeaf1;box-shadow:0 8px 30px rgba(2,8,20,.06)}
.section{padding:clamp(2rem,5vw,4rem) 0}.section--alt{background:#fff}.section__head h2{margin:.2rem 0}
.section__head p{color:var(--muted);margin-top:.2rem}
.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:clamp(.8rem,2vw,1.4rem);margin-top:1.4rem}
.card{background:var(--card);border:1px solid #eef0f7;border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:0 1px 0 rgba(10,10,20,.03)}
.services .card,.projects .project,.contact-grid .card{grid-column:span 6}
.projects .project img{width:100%;max-height:520px;object-fit:contain;background:#fff;border-bottom:1px solid #eef0f7}
.projects .project figcaption{padding:1rem 1.1rem}
.notice{margin-top:1.2rem;background:#F4FBFF;border:1px solid #CDEBFF;border-radius:12px;padding:.9rem 1rem}
.notice--split{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.notice-card{background:#fff;border:1px dashed #bfe6ff;border-radius:12px;padding:1rem}
.contact{background:#fff;border:1px solid #eef0f7;border-radius:var(--radius);padding:1rem 1.1rem;box-shadow:0 1px 0 rgba(10,10,20,.03)}
.contact .row{gap:1rem}label{display:block;font-weight:600;margin:.6rem 0 .3rem}
input,textarea{width:100%;font:inherit;padding:.75rem .8rem;border-radius:10px;border:1px solid #dfe3ee;background:#FBFCFF}
input:focus,textarea:focus{outline:none;box-shadow:0 0 0 4px var(--ring);border-color:var(--accent)}
.form-note{color:#667085;margin:.6rem 0 0}.contact-grid .card{grid-column:span 4}
/* Reviews slider */.reviews-slider{position:relative;overflow:hidden;border:1px solid #eef0f7;background:#fff;border-radius:12px;padding:1rem}
.reviews-slider .slides{display:flex;transition:transform .4s ease;will-change:transform}
.reviews-slider .slide{min-width:100%;padding:1rem;display:flex;flex-direction:column;gap:.5rem}
.reviews-slider .stars{font-size:1.1rem;letter-spacing:.1em;color:#f59e0b}
.reviews-slider .nav{position:absolute;top:50%;transform:translateY(-50%);background:#fff;border:1px solid #e5e7eb;border-radius:999px;width:36px;height:36px}
.reviews-slider .prev{left:.6rem}.reviews-slider .next{right:.6rem}
.reviews-slider .dots{display:flex;gap:.4rem;justify-content:center;margin-top:.6rem}
.reviews-slider .dots button{width:8px;height:8px;border-radius:999px;border:0;background:#e5e7eb}
.reviews-slider .dots button.active{background:var(--accent)}
/* Lightbox */.lightbox-backdrop{position:fixed;inset:0;background:rgba(0,0,0,.75);display:none;align-items:center;justify-content:center;z-index:1000;padding:1rem}
.lightbox-backdrop.show{display:flex}.lightbox-img{max-width:95vw;max-height:85vh;border-radius:12px;box-shadow:0 10px 40px rgba(0,0,0,.5)}
.lightbox-caption{color:#fff;margin-top:.6rem;text-align:center}
.site-footer{padding:1.2rem 0;border-top:1px solid #eaeaf1;background:#fff}.site-footer .small{color:#667085}
.site-footer .social{list-style:none;display:flex;gap:.9rem;padding:0;margin:0}
@media (max-width:880px){.nav-toggle{display:block}.nav-menu{position:absolute;top:64px;right:1rem;background:#fff;border:1px solid #eaeaf1;border-radius:12px;padding:.4rem;flex-direction:column;gap:.1rem;min-width:220px;display:none;box-shadow:0 6px 22px rgba(15,23,42,.12)}.nav-menu.show{display:flex}
.grid > *{grid-column:span 12}.contact .row{flex-direction:column}.hero__grid{grid-template-columns:1fr}.contact-grid .card{grid-column:span 12}.notice--split{grid-template-columns:1fr}}
/* AVS custom heading color */
.section__head h2,
.services .card h3 { color: var(--accent); }

/* header logo size override */
.brand img{height:88px}

/* Project captions normal weight */
.projects .project figcaption .caption{font-weight:400;color:#4b5563;margin:.6rem 0 0}

.badges--center{justify-content:center; gap:.8rem; flex-wrap:wrap}
.bottom-quote{margin-top:1rem}
.contact--inline{display:grid; grid-template-columns: repeat(12,1fr); gap:.8rem; align-items:end}
.contact--inline > label:nth-child(3), .contact--inline > label:nth-child(4){grid-column: span 4}
.contact--inline > label:nth-child(5){grid-column: span 12}
.contact--inline > button{grid-column: span 3}
.hidden{display:none}
@media (max-width:880px){
  .brand img{height:68px}
  .contact--inline{grid-template-columns:1fr}
  .contact--inline > button{grid-column: span 1}
}

.blue{color:var(--accent)}

/* Bottom badges styling */
#bottom-badges .badges{justify-content:center;gap:1.2rem}
#bottom-badges .badges li{font-size:1.1rem;padding:.6rem 1rem;border-radius:999px;background:#f0f9ff;border:1px solid #cce6ff;color:#1e40af;font-weight:600}

/* Hero badge styling */
.hero-badge{justify-content:center;margin-top:1rem}
.hero-badge li{font-size:1rem;padding:.5rem .9rem;border-radius:999px;background:#f0f9ff;border:1px solid #cce6ff;color:#1e40af;font-weight:600;display:inline-block}

/* CTA row with badge inline */
.cta{display:flex;align-items:center;gap:.8rem;flex-wrap:wrap}
.hero-badge-inline{display:flex;gap:.6rem;align-items:center;margin:0;padding:0;list-style:none}
.hero-badge-inline li{font-size:.95rem;padding:.5rem .8rem;border-radius:999px;background:#f0f9ff;border:1px solid #cce6ff;color:#1e40af;font-weight:600;white-space:nowrap}

/* Fixed promo banner */
.promo-bar{position:fixed;top:0;left:0;right:0;z-index:1000;background:var(--accent);color:#fff}
.promo-bar .container{display:flex;align-items:center;justify-content:center;gap:.9rem; padding:.55rem 1rem; flex-wrap:wrap}
.promo-bar .promo-link{background:#ffffff; color:#0b1222; font-weight:700; padding:.35rem .7rem; border-radius:999px; text-decoration:none}
.promo-bar .promo-link:hover{text-decoration:none; filter:brightness(0.95)}
/* Push header down below promo bar */
.site-header{top:44px}
@media (max-width:880px){
  .site-header{top:52px}
}
/* Ensure page content isn't hidden under the fixed bar in browsers that don't respect sticky offsets */
body{padding-top:44px}
@media (max-width:880px){
  body{padding-top:52px}
}

/* Service Areas styling */
.service-list{columns:2;max-width:600px;margin:1rem auto;gap:1rem;list-style:disc;padding-left:1.2rem}
.service-list li{margin:.25rem 0;color:#1e293b}
@media(max-width:640px){
  .service-list{columns:1}
}

/* Projects slider */
.projects-slider{position:relative;overflow:hidden;border:1px solid #eef0f7;background:#fff;border-radius:12px;padding:1rem}
.projects-slider .slides{display:flex;transition:transform .4s ease;will-change:transform}
.projects-page{min-width:100%;display:grid;grid-template-columns:1fr 1fr;gap:clamp(.8rem,2vw,1.4rem)}
.projects-page .project{grid-column:auto}
.projects-slider .nav{position:absolute;top:50%;transform:translateY(-50%);background:#fff;border:1px solid #e5e7eb;border-radius:999px;width:36px;height:36px}
.projects-slider .prev{left:.6rem}.projects-slider .next{right:.6rem}
.projects-slider .dots{display:flex;gap:.4rem;justify-content:center;margin-top:.6rem}
.projects-slider .dots button{width:8px;height:8px;border-radius:999px;border:0;background:#e5e7eb}
.projects-slider .dots button.active{background:var(--accent)}
@media (max-width:880px){
  .projects-page{grid-template-columns:1fr}
}

/* Projects slider full-width overrides */
.grid.projects{display:block}
.projects-slider{border:none;background:transparent;border-radius:0;padding:0;margin-top:.5rem}
.projects-slider .slides{display:flex}
.projects-page{min-width:100%;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(1rem,2vw,1.4rem)}
.projects-page .project{background:#fff;border:1px solid #eef0f7;border-radius:12px;overflow:hidden}
.projects-page .project img{width:100%;max-height:520px;object-fit:contain;background:#fff}
.projects-slider .nav{box-shadow:0 2px 8px rgba(0,0,0,.08)}
@media (max-width:880px){
  .projects-page{grid-template-columns:1fr}
}

/* Blue nav arrows for projects slider */
.projects-slider .nav{color:var(--accent);border-color:var(--accent)}
.projects-slider .nav:hover{background:var(--accent);color:#fff}

.form-status{margin-top:.5rem;font-size:.95rem;color:#0b1222}

/* Wider contact form */
form.contact{max-width:800px;margin:0 auto}
form.contact .row{display:flex;gap:1rem;flex-wrap:wrap}
form.contact input, form.contact textarea{flex:1 1 48%}
form.contact textarea{flex:1 1 100%}

/* Center the form section */
section#get-a-quote .container{display:flex;justify-content:center}
section#get-a-quote form.contact{margin:0 auto}

/* Style form panel with background and shadow */
section#get-a-quote form.contact{
  background:#f9fafb;
  padding:2rem;
  border-radius:12px;
  box-shadow:0 4px 12px rgba(0,0,0,0.08);
}

/* Make contact section full-width layout */
#contact .contact-grid{display:grid;grid-template-columns:1fr;gap:1rem}
#contact form.contact{max-width:none;width:100%}
#contact .card{width:100%}
#contact .container{display:block}

/* Contact layout: 3 cards side-by-side, form full width below */
#contact .contact-grid{
  display:grid;
  grid-template-columns:repeat(12, minmax(0,1fr));
  gap:1rem;
}
#contact .card{grid-column:span 4}
#contact form.contact{grid-column:1 / -1; max-width:none; width:100%}
@media (max-width:980px){
  #contact .card{grid-column:span 6}
}
@media (max-width:640px){
  #contact .card{grid-column:span 12}
}

/* Forcefully hide skip-to-content link */
.skip-to-content{display:none !important;visibility:hidden !important;position:absolute;left:-9999px}

/* Ensure form spans full width beneath contact cards */
#contact .contact-grid{
  display:grid;
  grid-template-columns:repeat(12, minmax(0,1fr));
  gap:1rem;
}
#contact .card{grid-column:span 4}
#contact form.contact{
  grid-column:1 / -1;
  max-width:100%;
  width:100%;
}
@media (max-width:980px){
  #contact .card{grid-column:span 6}
}
@media (max-width:640px){
  #contact .card{grid-column:span 12}
}

/* Make form inputs and textarea span full width */
#contact form.contact input,
#contact form.contact textarea{
  width:100%;
  max-width:100%;
  flex:1 1 100%;
}
#contact form.contact .row{
  display:flex;
  flex-wrap:wrap;
  gap:1rem;
}
#contact form.contact .row input{
  flex:1 1 calc(50% - 1rem);
}
@media (max-width:640px){
  #contact form.contact .row input{
    flex:1 1 100%;
  }
}

/* Force full-width inputs inside the contact form */
#contact form.contact label{display:block;width:100%}
#contact form.contact input,
#contact form.contact textarea,
#contact form.contact select{
  display:block;
  width:100% !important;
  max-width:100% !important;
  box-sizing:border-box;
}
/* Ensure the internal row doesn't constrain width */
#contact form.contact .row{display:block}


/* Slider dots */
.reviews-slider .dots, .projects-slider .dots { display:flex; gap:.4rem; justify-content:center; margin-top:.6rem; }
.dots .dot { width:10px; height:10px; border-radius:50%; border:1px solid #c7d2fe; background:#eef2ff; opacity:.8; }
.dots .dot.active { background:var(--accent); border-color:var(--accent); opacity:1; }
.projects-slider, .reviews-slider { position:relative; }
.projects-slider .nav, .reviews-slider .nav {
  position:absolute; top:50%; transform:translateY(-50%);
  border:0; background:rgba(0,0,0,.45); color:#fff; width:36px; height:36px; border-radius:999px;
  display:grid; place-items:center; cursor:pointer;
}
.projects-slider .nav.prev, .reviews-slider .nav.prev { left:6px; }
.projects-slider .nav.next, .reviews-slider .nav.next { right:6px; }

.form-section {
  padding: 2rem 1rem;
}
.form-wrap {
  width: 100%;
  max-width: 900px;
  margin: 0 auto;
}
#contactForm {
  display: grid;
  gap: 1rem;
  background: #fff;
  padding: 1.5rem;
  border-radius: 12px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.06);
}
@media (min-width: 1200px) {
  .form-wrap { max-width: 1100px; }
}

/* Make the form card span the entire row */
.contact-grid .form-card {
  grid-column: 1 / -1 !important;
}
.form-wrap {
  width: 100%;
  max-width: 100% !important;
  margin: 0 auto;
}
