:root {
  --bs-primary: #112a71;
  --bs-primary-light: #31457e;
  --bs-transparent: transparent;
  --bg-footer: #0f2769;
  --bs-body-font-size: clamp(14px, 1vw + 0.5rem, 16px);;
  --text-dark: #6c757d;
  --text-black: #000000;
  --bg-light: #efefef;
  --lime: #2f40b7;
  --text-like-dark: #14142b;
}

html {
  font-size: clamp(14px, 1vw + 0.5rem, 16px);
}

.wow {
  visibility: visible !important;
}
/* Typhography */

@media (min-width: 1401px) {
  .container {
    width: 95%;
    max-width: 1600px;
  }
}

body {
  font-family: "Plus Jakarta Sans", sans-serif;
  font-size: var(--bs-body-font-size); 
  line-height: 1.6;
}
a {
  color: var(--text-dark);
  text-decoration: none;
}
h1,
h2,
.h1,
.h2,
.fs-48 {
  font-size: 3rem;
  margin: 0;
}

p {
  margin: 0;
}
.extra p{
    margin-bottom: .90rem;
}
.like-dark {
  color: var(--text-like-dark) !important;
}
.text-like-dark{
  color: var(--text-like-dark);
}
.text-primary {
  color: var(--bs-primary) !important;
}

.nav-link {
  color: #6e7191 !important;
}
.nav-link:focus-visible {
  outline: 0;
  box-shadow: none;
}

.lime {
  color: var(--lime);
}

.small,
small {
  font-size: 0.88rem;
}

.breadcrumb-item + .breadcrumb-item::before {
  content: ">";
  color: #4e4b66;
}

/* Font Size */
.fs-14 {
  font-size: 0.875rem;
}

.fs-18 {
  font-size: 1.125rem;
}

.fs-24 {
  font-size: 1.5rem;
}

/* Buttons */
.btn-primary {
  background-color: var(--bs-primary);
  outline: var(--bs-primary);
  border-color: var(--bs-primary);
}

.btn-primary-outline {
  background-color: var(--bs-transparent);
  border-color: var(--bs-primary);
}

.btn-outline-secondary:hover {
  background: transparent;
  color: var(--text-dark);
  transition: color 0.15s ease-in-out, border-color 0.15s ease-in-out,
    box-shadow 0.15s ease-in-out;
}

.btn {
  --bs-btn-padding-x: 30px;
  --bs-btn-padding-y: 11px;
}

.submit-button {
  background-color: var(--bs-primary);
  color: #fff;
  border: none;
  border-radius: 0 4px 4px 0;
  cursor: pointer;
}

.input-group {
  display: flex;
  position: relative;
}

/* Background And Colors */
.bg-primary {
  background-color: var(--bs-primary) !important;
}

.bg-primary-light {
  background-color: var(--bs-primary-light);
}

.bg-light {
  background-color: var(--bg-light) !important;
}

.bg-footer {
  background-color: var(--bg-footer);
}

.dotbg {
  background-image: url("../img/dot.png");
  background-repeat: repeat-x;
  background-size: auto 100%;
  background-position: center bottom;
}


.page-link:focus {
    box-shadow: none;
}

/* Images */
img,
.project-img {
  object-fit: cover;
  width: 100%;
}

.rounded-circle {
  width: auto;
}

.team-img {
  height: 296px;
  object-fit: fill;
}

.testimonial-image {
  height: 64px;
  width: 64px;
}

.m-260px {
  max-height: 260px;
  min-height: 260px;
  background-size: cover;
  background-position: center;
  border-radius: 0;
}

.object-fit-cover {
  object-fit: cover !important;
}

/* Forms */

.subscribe-wrapper {
  padding-left: 64px;
  padding-right: 64px;
  border-radius: 8px;
  height: 250px;
}

.subscribe-form-container {
  min-height: 250px;
}
input.form-control,
.subscribe-section input.form-control {
  box-shadow: inset 0 0 0 2px #595959;
  border: none;
  background-color: #fff;
}

.contact-section input.form-control {
  box-shadow: inset 0 0 0 1px #a0a3bd;
  border: none;
  background-color: #fff;
}

.form-control:focus {
  outline: 0;
  box-shadow: inset 0 0 0 2px #595959;
}

.email-input {
  width: 315px;
  height: 48px;
  padding: 13px 16px;
  border: 1px solid #414141;
  border-radius: 4px 0 0 4px;
  font-size: var(--regular-text-small-font-size);
  line-height: var(--regular-text-small-line-height);
  font-family: var(--regular-text-small-font-family);
}

.email-input::placeholder {
  color: var(--default-gray-stylelabel);
}

/* Utility */
/* Padding */

.py-6 {
  padding: 4rem 0 3rem;
}
.pt-35 {
  padding-top: 2.1875rem;
}
.pb-35 {
  padding-bottom: 2.1875rem;
}
.py-35 {
  padding: 2.1875rem 0;
}

.pt-64,
.py-64 {
  padding-top: 4rem !important;
}
.pb-64,
.py-64 {
  padding-bottom: 4rem !important;
}

.pt-70 {
  padding-top: 4.4rem !important;
}
.pb-70 {
  padding-bottom: 4.4rem !important;
}
.py-70 {
  padding: 4.4rem 0 !important;
}

.pt-80 {
  padding-top: 5rem;
}


/* Tablets and below */
@media (max-width: 991.98px) {
  .pt-80 {
    padding-top: 3rem; /* 48px */
  }
}

/* Mobile phones */
@media (max-width: 575.98px) {
  .pt-80 {
    padding-top: 2rem; /* 32px */
  }
}
.pt-80-pb-64 {
  padding: 5rem 0 4rem;
}

.pt-120 {
  padding-top: 7.5rem;
}
.pb-120 {
  padding-bottom: 7.5rem;
}
.py-100 {
  padding-top: 7.14rem !important;
  padding-bottom: 7.14rem !important;
}

.py-60 {
  padding: 3.75rem 0 !important;
}

.h-80 {
  padding-top: 0.82rem !important;
  padding-bottom: 0.82rem !important;
}

.g-36 {
  padding-top: 2.2rem !important;
  padding-bottom: 2.2rem !important;
}

.gb-36 {
  padding-bottom: 2.2rem !important;
}

.custom-heading-block h2 {
  padding-bottom: 1.5rem;
}

/* Accordion */
.accordion-button {
  background-color: var(--bs-primary);
  color: #fff;
  box-shadow: none;
  font-weight: 500;
  border-radius: 0;
}

.accordion-button:not(.collapsed),
.accordion-body {
  background-color: var(--bs-primary);
  color: #fff;
}

.accordion-button::after {
  display: none;
}

.toggle-icon {
  font-size: 1.25rem;
}

.accordion-button:not(.collapsed) .bi-plus {
  display: none;
}

.accordion-button:not(.collapsed) .toggle-icon::before {
  content: "\f068";
  font-family: bootstrap-icons;
  font-style: normal;
}

.accordion-item {
  outline: none;
}

.accordion-button:focus {
  box-shadow: none;
}

.accordion-item:last-of-type,
.accordion-item:last-of-type > .accordion-collapse,
.accordion-item:last-of-type > .accordion-header .accordion-button.collapsed {
  border-bottom-right-radius: 0;
  border-bottom-left-radius: 0;
}

/* Accebility */
[aria-hidden="true"] a,
[aria-hidden="true"] button,
[aria-hidden="true"] input,
[aria-hidden="true"] textarea,
[aria-hidden="true"] select {
  display: none !important;
}

button:focus-visible {
  outline: 2px solid #4a90e2 !important;
  outline: -webkit-focus-ring-color auto 5px !important;
}

.btn-primary:hover {
  color: var(--bs-btn-hover-color);
  background-color: var(--bs-primary-light);
  border-color: var(--bs-primary-light);
}

.page-link {
  color: var(--bs-primary);
}

.active > .page-link,
.page-link.active {
  background-color: var(--bs-primary);
  border-color: var(--bs-primary);
}

#menu-company li,
#menu-quick-links li,
#contact-menu-bottom li {
  padding: 7px 0;
}

.our-portfolio-content .isotope-item {
  margin-top: 0;
  margin-bottom: 1.32rem !important;
}

.our-portfolio-content .custom-heading-block {
  padding-top: 0rem;
  padding-bottom: 1rem;
}

.our-portfolio-content .custom-heading-block h2 {
  padding-bottom: 0;
}

.sticky-gallery {
  position: -webkit-sticky; /* Safari */
  position: sticky;
  top: 100px; /* Adjust this based on your header height */
  z-index: 10;
}

.vc_column-inner {
  overflow: visible !important;
}

.op-30 {
  opacity: 0.3;
}

.our-portfolio-content .wpb_image_grid_ul {
  position: relative;
  top: -2rem;
}

.featured-img-wrapper {
  overflow: hidden;
}

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

/* Paragraphs */
.post-content {
    overflow-wrap: break-word;
    word-wrap: break-word;
    
}

.post-content p {
  margin-bottom: 1.5rem !important;
  font-size: 1.3rem;
}

/* Headings */
.post-content h1,
.post-content h2,
.post-content h3,
.post-content h4,
.post-content h5,
.post-content h6 {
  margin-top: 2rem;
  margin-bottom: 1rem;
  line-height: 1.3;
  font-weight: 600;
  color: #111;
}

.post-content h1 {
  font-size: 2.25rem;
}
.post-content h2 {
  font-size: 1.875rem;
}
.post-content h3 {
  font-size: 1.5rem;
}
.post-content h4 {
  font-size: 1.25rem;
}
.post-content h5 {
  font-size: 1.125rem;
}
.post-content h6 {
  font-size: 1rem;
}

/* Links */
.post-content a {
  color: #007bff;
  text-decoration: underline;
  transition: color 0.2s ease;
}

.post-content a:hover {
  color: #0056b3;
  text-decoration: none;
}

/* Lists */
.post-content ul,
.post-content ol {
  margin-bottom: 1.5rem;
  padding-left: 2rem;
}

.post-content li {
  margin-bottom: 0.5rem;
}

/* Images */
.post-content img {
    max-width: 100%;
    width: auto;
    height: auto;
    display: block;
    margin: 1.5rem auto;
}


/* Basic table styling for post content */
.post-content table {
  @apply table; /* If using Tailwind, otherwise ignore */
  width: 100%;
  margin-bottom: 1.5rem;
  border-collapse: collapse;
}

.post-content table,
.post-content th,
.post-content td {
  border: 1px solid #dee2e6;
}

.post-content th,
.post-content td {
  padding: 0.75rem;
  vertical-align: top;
}

.post-content thead {
  background-color: #f8f9fa;
  font-weight: 600;
}

.dotbgsub {
  background-image: url("../img/dot.png"),
    linear-gradient(to right, #c1dee8, #fbd9b9);
  background-repeat: repeat-x, no-repeat;
  background-size: auto 100%, cover;
  background-position: center bottom, center;
  padding-left: 64px;
  padding-right: 64px;
  border-radius: 8px;
  height: 250px;
}

.bg-building {
  background-image: url("../img/bg_building.png");
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center;
  justify-content: center;
  min-height: 250px;
}

@media (max-width: 767.98px) {
  .subscribe-wrapper {
    padding-left: 30px !important;
    padding-right: 30px !important;
    height: auto !important;
    flex-direction: column;
  }

  .subscribe-form {
    width: 100% !important;
  }

  .bg-building {
    min-height: 80px !important;
    background-position: right center;
  }
}
/* =================== */
/* Responsive Additions */
/* =================== */

/* Mobile and small tablets */
@media (max-width: 991.98px) {
  /* Bootstrap md breakpoint and below */

  /* Typography - smaller headings */
  h1,
  h2,
  .h1,
  .h2,
  .fs-48 {
    font-size: 2.25rem; /* reduce from 3rem */
  }

  .fs-24 {
    font-size: 1.25rem;
  }

  .fs-18 {
    font-size: 1rem;
  }

  .fs-14 {
    font-size: 0.8125rem;
  }

  /* Container max width */
  .container1 {
    max-width: 720px;
  }

  /* Buttons - reduce padding */
  .btn {
    --bs-btn-padding-x: 20px;
    --bs-btn-padding-y: 8px;
  }

  /* Email input smaller on smaller screens */
  .email-input {
    width: 100%;
    max-width: 100%;
    height: 44px;
    padding: 10px 12px;
    font-size: 14px;
  }

  /* Featured images smaller height */
  .featured-img-wrapper {
    height: 280px;
  }

  /* Team image adjusts height */
  .team-img {
    height: auto;
  }

  /* Testimonial image smaller */
  .testimonial-image {
    height: 48px;
    width: 48px;
  }

  /* Padding tweaks */
  .pt-35,
  .pb-35,
  .py-35 {
    padding-top: 1.5rem;
    padding-bottom: 1.5rem;
  }

  .pt-64,
  .py-64,
  .pb-64 {
    padding-top: 2.5rem !important;
    padding-bottom: 2.5rem !important;
  }

  .pt-70,
  .pb-70,
  .py-70 {
    padding-top: 3rem !important;
    padding-bottom: 3rem !important;
  }

  /* Text alignment fallback for smaller screens */
  .text-left,
  .text-right {
    text-align: center !important;
  }
}

/* Extra small devices (phones) */
@media (max-width: 575.98px) {
  /* Further reduce headings */
  h1,
  h2,
  .h1,
  .h2,
  .fs-48 {
    font-size: 1.75rem;
  }

  .fs-24 {
    font-size: 1.125rem;
  }

  .fs-18 {
    font-size: 0.9rem;
  }

  .fs-14 {
    font-size: 0.75rem;
  }

  /* Container width */
  .container {
    max-width: 100%;
    padding-left: 15px;
    padding-right: 15px;
  }

  /* Buttons smaller */
  .btn {
    --bs-btn-padding-x: 16px;
    --bs-btn-padding-y: 7px;
    font-size: 14px;
  }

  /* Email input full width */
  .email-input {
    width: 100%;
    height: 40px;
    padding: 8px 10px;
    font-size: 13px;
  }

  /* Reduce margin/padding on cards */
  .card {
    padding: 1rem !important;
  }

  /* Smaller testimonial images */
  .testimonial-image {
    height: 40px;
    width: 40px;
  }

  /* Adjust featured image wrapper */
  .featured-img-wrapper {
    height: 200px;
  }

  /* Reduce padding in sections */
  .pt-35,
  .pb-35,
  .py-35 {
    padding-top: 1rem;
    padding-bottom: 1rem;
  }

  .pt-64,
  .py-64,
  .pb-64 {
    padding-top: 1.75rem !important;
    padding-bottom: 1.75rem !important;
  }

  .pt-70,
  .pb-70,
  .py-70 {
    padding-top: 2rem !important;
    padding-bottom: 2rem !important;
  }
}

button:focus-visible {
  outline: none !important;
  box-shadow: 0 0 0 2px rgba(74, 144, 226, 0.6) !important; /* Soft blue glow */
  background-color: transparent !important;
}

.vc_col-has-fill>.vc_column-inner, .vc_row-has-fill+.vc_row-full-width+.vc_row>.vc_column_container>.vc_column-inner, .vc_row-has-fill+.vc_row>.vc_column_container>.vc_column-inner, .vc_row-has-fill+.vc_vc_row>.vc_row>.vc_vc_column>.vc_column_container>.vc_column-inner, .vc_row-has-fill+.vc_vc_row_inner>.vc_row>.vc_vc_column_inner>.vc_column_container>.vc_column-inner, .vc_row-has-fill>.vc_column_container>.vc_column-inner, .vc_row-has-fill>.vc_row>.vc_vc_column>.vc_column_container>.vc_column-inner, .vc_row-has-fill>.vc_vc_column_inner>.vc_column_container>.vc_column-inner, .vc_section.vc_section-has-fill, .vc_section.vc_section-has-fill+.vc_row-full-width+.vc_section, .vc_section.vc_section-has-fill+.vc_section {
    padding-top: 0 !important;
}

.wpb_single_image .vc_figure {
    display: block !important;
}
.wpb_single_image .vc_single_image-wrapper {
    display: block !important;
}

.form-check{
    padding-left: 0 !important;
}
.wpcf7-list-item {
    margin: 0;
}

.sidebar-sticky {
    position: -webkit-sticky !important;
    position: sticky !important;
    top: 90px;
    z-index: 100;
}

/* Disable sticky for screens smaller than 992px (md and down) */
@media (max-width: 991.98px) {
    .sidebar-sticky {
        position: static !important;
        top: auto !important;
        padding-bottom: 2rem;
    }
}


.wpb_button, .wpb_content_element, ul.wpb_thumbnails-fluid>li {
    margin-bottom: 0;
}

.twentytwenty-container img {
  width: 100% !important;
  height: auto !important;
  position: relative !important;
}