/* ===== Brand & base ===== */
:root{
  --brand-blue:#333C63;
  --text-gray:#6c757d;
  --bs-primary:var(--brand-blue);
  --bs-link-color:var(--brand-blue);
  --bs-link-hover-color:#22283d;

  /* consistent card spacing controls */
  --card-pad: 1.25rem;      /* inner padding (top & bottom) */
  --card-gap: .75rem;       /* vertical gap between blocks inside card */
}
html{scroll-behavior:smooth;}
body{
  font-family:acumin-pro,"Acumin Pro",system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  color:var(--text-gray); line-height:1.6;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
}
p{color:var(--text-gray);}
h1,h2,h3,h4,h5,h6{color:var(--brand-blue);}
a,.nav-link{color:var(--brand-blue);}
a:hover,.nav-link:hover{color:var(--bs-link-hover-color);}

/* Headings */
h1{font-weight:700;font-size:clamp(2rem,3.2vw + 1rem,3.75rem);}
h2{font-weight:700;font-size:clamp(1.5rem,1.8vw + 1rem,2.5rem);}
h3{font-weight:600;font-size:clamp(1.125rem,0.6vw + 1rem,1.25rem);}

/*COLOURS*/
.brand-blue-bg { background-color: var(--brand-blue); }
.white-text { color:white !important; }

.section-title{letter-spacing:.2px;}

/* Layout rhythm */
.section{padding:4rem 0;}
@media(min-width:992px){.section{padding:5rem 0;}}
#site-header .navbar{padding:.75rem 0;}
#hero{padding-bottom:1rem;}
#site-footer{padding:1.25rem 0;}
.object-fit-cover{object-fit:cover;}
.hero-links .nav-link{text-decoration:underline;}

/* Focus styles */
a:focus,button:focus,.nav-link:focus,.form-control:focus{
  outline:2px solid rgba(51,60,99,.5);
  outline-offset:2px;
}

/* Reduce motion */
@media(prefers-reduced-motion:reduce){
  .carousel,.carousel-item{transition:none!important;}
}

/*ESTIMATE BUTTON*/
.est-btn {
  background-color: none !important;
  border: 1px solid var(--brand-blue) !important;
  border-radius: revert;
  padding: 15px 25px;
  font-size: 17px;
  text-decoration: none !important;
}

/* Carousels */
.carousel-caption{text-shadow:0 1px 2px rgba(0,0,0,.35);}
.ratio>img{width:100%;height:100%;object-fit:cover;}

/* Make carousel arrows visible in brand blue (global) */
.carousel-control-prev-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23333C63' viewBox='0 0 16 16'%3e%3cpath d='M11.354 1.646a.5.5 0 0 1 0 .708L6.707 7l4.647 4.646a.5.5 0 0 1-.708.708l-5-5a.5.5 0 0 1 0-.708l5-5a.5.5 0 0 1 .708 0z'/%3e%3c/svg%3e");
}
.carousel-control-next-icon{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' fill='%23333C63' viewBox='0 0 16 16'%3e%3cpath d='M4.646 1.646a.5.5 0 0 1 .708 0l5 5a.5.5 0 0 1 0 .708l-5 5a.5.5 0 0 1-.708-.708L9.293 7 4.646 2.354a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}

/*ABOUT*/
#about p { font-size: 1.6rem; font-weight: 700; text-align: center; }
/*ABOUT ENDS*/

/* ===================================================================
   SERVICES — styling (behaviour unchanged)
   =================================================================== */

/* Tabs for Residential/Commercial */
.services-tabs .nav-link{
  background: transparent;
  color: var(--brand-blue);     /* clickable = brand blue */
  border: 0;
  border-radius: 0;
  font-weight: 700;

  /* Our Work nav buttons are ~2rem; make this ~2pt smaller */
  font-size: 1.833rem;
  line-height: 1.2;

  padding: .25rem .75rem;
  transition: font-size .12s ease;
  text-decoration: none;        /* no underline */
}
.services-tabs .nav-link.active,
.services-tabs .show > .nav-link{
  color: var(--text-gray);      /* active = gray */
  font-weight: 700;
}
.services-tabs .nav-link:not(.active){
  font-size: calc(1.833rem + 0.167rem); /* ~+2pt */
  color: var(--brand-blue);
}

/* Intro paragraphs inside tabs */
#services .services-intro{
  max-width: 75ch;
  margin: 0 auto 0.75rem auto;
}

/* Full-bleed scroller wrapper */
#services .offer-wrapper{
  width: 100vw;
  margin-top: 6rem;
  position: relative;
  left: 50%;
  transform: translateX(-50%);
  padding-left: clamp(12px, 4vw, 40px);
  padding-right: clamp(12px, 4vw, 40px);
}

/* The horizontal track */
.offer-track{
  position:relative; z-index:1;
  display:grid;
  grid-auto-flow:column;
  grid-auto-columns:clamp(280px, 32%, 360px);
  gap:1.25rem;

  align-items:start;
  align-content:start;

  overflow-x:auto; overflow-y:hidden;
  padding:.25rem .5rem;
  scroll-snap-type:x mandatory;

  touch-action:none;
  cursor:grab;
  -webkit-overflow-scrolling:touch;

  scrollbar-width:none; -ms-overflow-style:none;
  will-change:scroll-position;
}
.offer-track::-webkit-scrollbar{width:0;height:0;}
.offer-track.dragging{
  cursor:grabbing;
  user-select:none; -webkit-user-select:none;
  scroll-snap-type:none;  /* disable snap while drag/glide */
}

/* Moving progress bar under the scroller */
.offer-progress{
  position: relative;
  height:10px;
  margin:12rem .75rem 0 .75rem;
  background:#eceff3;
  border-radius:999px;
  pointer-events:none;
  z-index:0;
}
.offer-progress-thumb{
  position:absolute; top:0; left:0; height:100%;
  background:#cfd4db;
  border-radius:inherit;
  width:40px;
  transform:translateX(0);
  transition:transform .12s linear;
}

/* Cards */
.offer-card{
  border:1px solid var(--brand-blue);
  padding:var(--card-pad);
  background:#fff;
  scroll-snap-align:start;
  user-select:none; -webkit-user-select:none;
  box-shadow:0 1px 0 rgba(0,0,0,.02);

  display:flex;
  flex-direction:column;
  height:auto;
}
.offer-card > * + *{ margin-top:var(--card-gap); }
.offer-card > :last-child{ margin-bottom:0; }
.offer-card h3{ margin:0; color:var(--brand-blue); font-weight:700; }
.offer-card .offer-list{ margin:0; padding-left:0; list-style:none; display:grid; row-gap:.5rem; }
.offer-card .offer-list li{ position:relative; padding-left:1.1rem; line-height:1.65; margin:0; }
.offer-card .offer-list li::before{ content:""; position:absolute; left:0; top:.62em; width:.45rem; height:.45rem; border-radius:50%; background:var(--brand-blue); }

/* Our Work */
#work  { background-color: var(--brand-blue); }
#work h2 { color: white; }
.work-figure img{width:100%;height:auto;display:block;}
.work-figure figcaption{color: white;}
#workTabs button { font-size: 2rem; }

/* Our Work — nav list */
#work .nav-pills .nav-link{
  background: transparent;
  color: white;
  border-radius: 0;
  font-weight: 500;
  padding-left: 0;
  box-shadow: none;
}
#work .nav-pills .nav-link:hover{ background: transparent; font-weight: 700; }
#work .nav-pills .nav-link.active,
#work .nav-pills .show > .nav-link{ background: transparent; color: white; font-weight: 700; }
#work .nav-pills .nav-link:focus{ box-shadow:none; }

/* ====================== CONTACT section begins here ====================== */
#contact > .container > header{ margin-bottom: 6.5rem; }
@media (max-width: 768px){ #contact > .container > header{ margin-bottom: 2.5rem; } }
#contact > .container > header p{ max-width: 60ch; margin-inline: auto; line-height: 1.7; }
#contact address{ font-size: 1.5rem; }
.contact-socials { font-size: 1.5rem; }
#contact .section-title{ margin-bottom: .5rem; }

#contact address{ color: var(--brand-blue); line-height: 1.9; }
#contact address a{ color: var(--brand-blue); text-decoration: none; }
#contact address a:hover{ text-decoration: underline; }

#contact .social-media{ margin-top: .75rem; }
.contact-socials .social-link{ text-decoration: none; font-weight: 600; }
.facebook-link { color: #1877F2; }
.instagram-link{ color: #E1306C; }
.linkedin-link { color: #0A66C2; }
.contact-socials .social-link:hover{ text-decoration: underline; }

/* Inputs as underlines */
#contact .form-control,
#contact .form-select{
  border: 0;
  border-bottom: 1px solid white;
  border-radius: 0;
  background: transparent;
  color: white;
  padding-left: 0; padding-right: 0;
}
#contact .form-control:focus,
#contact .form-select:focus,
#contact textarea.form-control:focus{
  border-bottom-color: white;
  outline: none !important;
  box-shadow: none !important;
}
#contact .form-control::placeholder{ color: white; opacity: .6; }
#contact .form-control:focus::placeholder{ color: transparent; }

/* Custom select caret (emoji) */
#contact .select-wrap{ position: relative; }
#contact .select-wrap .form-select{ -webkit-appearance: none; -moz-appearance: none; appearance: none; padding-right: 2rem; }
#contact .select-wrap .select-caret{ position: absolute; right: .25rem; top: 50%; transform: translateY(-50%); font-size: 1.1rem; color: var(--brand-blue); pointer-events: none; }

/* Hear-us checkboxes (inline, white) */
#contact .hearus-group{ display:flex; flex-wrap:wrap; gap:.5rem 1.25rem; align-items:center; }
#contact .form-check-input{ background: transparent; border-color: white; width:1.1rem; height:1.1rem; }
#contact .form-check-input:checked{ background-color:white; border-color:white; }
#contact .form-check-label{ color:white; margin-left:.35rem; }
#contact .optional-note{ color:white; opacity:.7; }

/* Submit button */
.btn-contact{
  display: inline-block;
  color: white;
  background: transparent;
  border: 1px solid white;
  padding: .625rem 1.25rem;
  font-weight: 500;
  transition: border-width .12s ease, font-weight .12s ease;
}
.btn-contact:hover{ border: 2px solid white; font-weight: 600; color: white; }

@media (max-width: 576px){
  #contact .hearus-group{ gap:.5rem 1rem; }
}
/* ======================= CONTACT section ends here ======================= */