@import './variables.css';
/************** Common Styles**************/
* {
  box-sizing: border-box;
}
h1,
h2,
h3,
h4,
h5,
h6,
ul,
li {
  margin: 0px;
  padding: 0px;
  font-weight: normal;
}
ul,
li {
  list-style: none;
}
body {
  font-family: var(--primary-font);
  font-size: 16px;
  line-height: 24px;
  margin: 0;
  padding: 0;
  font-weight: normal;
  font-style: normal;
  background-color: var(--dark-color);
}
a {
  color: #000;
  text-decoration: none;
}
section {
  padding: 40px 0px;
}

.nav-item {
  text-transform: uppercase;
}

.btn {
  border-radius: 0;
  font-weight: 500;
}

.hero{
  background-color: #000;
  padding: 0px !important;
}
.hero img{
   vertical-align: middle;
}

.hero-title {
  font-weight: bold;
  /* font-size: 8.875rem; */
  font-size: 9.2rem;
  white-space: nowrap;
  padding: 0 40px;
  text-align: left;
}

.hero-title .outline-text {
  color: transparent;
  -webkit-text-stroke: 1px var(--white-color);
}

.hero-text {
  color: #ccc;
  text-align: left;
  padding-left:45px;
}

.img-100 {
  width: 100%;
}

.inner-banner {
  overflow: hidden;
  height: 300px;
  position: relative;
}

.inner-banner::after {
  content: '';
  height: 100%;
  width: 100%;
  position: absolute;
  left: 0;
  top: 0;
  background: url('../images/pattern.png') center repeat;
  background-size: 20%;
  opacity: 0.075;
}

.inner-banner-img {
  opacity: 0.3;
  vertical-align: top;
}

.inner-banner-title {
  font-size: 3rem;
  font-family: 'Fuji Medium';
  text-transform: uppercase;
  padding-top: 50px;
  text-align: center;
  position: relative;
  z-index: 1;
}
.home-description {
  background-color: #000;
  padding: 80px 0 !important;
  position: relative;
  top: -1px;
}

.service-description {
  background-color: #11427A;
  padding: 80px 0 !important;
  text-align: center;
}

.service-description h3 {
  color: #fff;
  margin-bottom: 20px;
  font-size: 3rem;
  font-weight: 500;
}

.home-description p, .service-description p{
    width: 75%;
    margin: 0 auto;
}
.home-about h2,
.service-home h2,
.projects h2 {
  font-size: 4rem;
  text-transform: uppercase;
  /* font-family: 'Fuji Bold'; */
  font-family: 'Fuji Medium';
  line-height: 1;
}

.hedaing-variant-color {
  color: var(--primary-color);
}

.x-represents {
  background-image: url(../images/logo_bg.png);
  background-repeat: no-repeat;
  background-position: center;
  background-size: contain;
}

.x-represents h5 {
  text-transform: uppercase;
  font-weight: 500;
}

.x-represents h2 {
  font-weight: bold;
}

.service-home h5 {
  text-transform: uppercase;
  font-weight: 500;
}

.service-card {
  background: var(--dark-gray-color);
  height: 100%;
}

.service-img {
  flex: 1;
  min-width: 50%;
}

.service-img img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.service-content {
  flex: 1;
  padding: 30px;
  display: flex;
  flex-direction: column;
  justify-content: center;
}

.service-content h4 {
  text-transform: capitalize;
  font-weight: bold;
  font-size: 1.5rem;
}

.service-content p {
  color: var(--gray-color);
  font-size: 0.875rem;
}

.line {
  width: 40px;
  height: 3px;
  background: #0d6efd;
  margin: 10px 0 20px;
}

.service-content .btn {
  margin-top: 15px;
  width: fit-content;
  border: var(--border-color) 1px solid;
  color: var(--white-color);
}

.service-content .btn:hover {
  background-color: var(--white-color);
  border-color: var(--white-color);
  color: var(--dark-color);
}

/* Mobile Fix */
@media (max-width: 768px) {
  .service-card {
    flex-direction: column !important;
  }
}

/* gallery */

.projects {
  background: #0b0b0b;
}

/* Masonry Layout */
.masonry {
  column-count: 3;
  column-gap: 15px;
  position: relative;
}

.masonry-item {
  break-inside: avoid;
  margin-bottom: 15px;
  position: relative;
  overflow: hidden;
  transition: 0.5s;
}

.masonry-item img {
  width: 100%;
  display: block;
}

.masonry-breif {
  position: absolute;
  inset: 0;
  background-color: rgba(17, 67, 121, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 20px;
  opacity: 0;
  transition: 0.5s;
}

.masonry-item:hover .masonry-breif {
  opacity: 1;
}

.masonry-breif h4 {
  font-size: 1.563rem;
  font-weight: bold;
}

.masonry-breif p {
  font-size: 0.875rem;
}

.masonry-breif .btn {
  margin-top: 10px;
}

.masonry-item img {
  transition: 0.3s;
}

.masonry-item:hover img {
  transform: scale(1.05);
}


.masonry-breif-all {
  position: absolute;
  inset: 0;
  background-color: rgba(17, 67, 121, 0.4);
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 20px;
  opacity: 1;
  transition: 0.5s;
  height:300px;
}

.masonry-item-all {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 30px;
  margin-top: 30px;
}

/* Responsive */
@media (max-width: 992px) {
  .masonry {
    column-count: 2;
  }
}

@media (max-width: 576px) {
  .masonry {
    column-count: 1;
  }
}

.what-next-title {
  text-transform: uppercase;
  font-weight: bold;
  font-size: 5rem;
}

.what-next-text {
  font-size: 1.125rem;
  font-weight: 600;
  width: 80%;
  margin: 0 auto;
}

.btn-primary {
  background-color: var(--primary-color);
}

footer h3 {
  font-size: 1.563rem;
  color: var(--primary-color);
  font-weight: 600;
}
footer p {
  font-size: 0.938rem;
  color: var(--white-color);
}
footer ul {
  list-style: none;
}
footer ul li {
  font-size: 0.938rem;
  color: var(--white-color);
  margin: 10px 0;
}
footer ul li a {
  color: inherit;
}
footer .border-start,
footer .border-end,
footer .border-top {
  border-color: rgba(255, 255, 255, 0.2) !important;
}

.footer-contact-icon {
  width: 16px;
  filter: invert(32%) sepia(93%) saturate(1360%) hue-rotate(190deg)
    brightness(95%) contrast(92%);
}

.footer-social-icon-container {
  display: flex;
  align-items: center;
  gap: 10px;
  justify-content: flex-end;
}
.footer-social-icon {
  width: 42px;
  height: 42px;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 5px;
  background-color: var(--primary-color);
  border-radius: 100vmax;
}
.footer-social-icon img {
  width: 20px;
  filter: brightness(0) invert(1);
}

.cta-section {
  overflow: hidden;
  position: relative;
  /* background-color: var(--primary-color); */
  background-color: #003063;
}

.cta-section h3 {
  font-weight: 700;
  font-size: 2.1rem;
}
.cta-section p {
  font-size: 1.125rem;
}

/* Background X Image */
.cta-section::before {
  content: '';
  position: absolute;
  top: 50%;
  left: 50%;
  width: 100%;
  height: 100%;
  background: url('../images/logo_bg-x.png') no-repeat center;
  background-size: contain;
  transform: translate(-50%, -50%);
}
.cta-section .btn-outline-light {
  border-color: var(--primary-color);
}

.contact-icon {
  background-color: var(--dark-color);
  width: 60px;
  height: 60px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 100vmax;
}
.contact-icon img {
  width: 24px;
  filter: brightness(0) invert(1);
}

.contact-bar {
  background-color: var(--medium-blue-color);
}

.contact-bar h4 {
  font-size: 1.75rem;
  font-weight: bold;
}

.nav-link {
  font-weight: 500;
  color: var(--white-color);
}
.active {
  color: var(--primary-color) !important;
  position: relative;
  /* border-bottom: var(--primary-color) 2px solid; */
}
.active:after {
  content: '';
  width: calc(100% - 1rem);
  height: 3px;
  background-color: var(--primary-color);
  position: absolute;
  bottom: 0;
  left: 0.5rem;
}

/* image slider */

.carousel-item img {
  height: 500px;
  object-fit: cover;
}

/* Thumbnails */

.thumbnails .thumb {
  cursor: pointer;
  opacity: 0.6;
  border: 2px solid transparent;
  transition: 0.3s;
}

.thumbnails .thumb:hover {
  opacity: 1;
}

.thumbnails .active .thumb {
  opacity: 1;
}

/* .thumbnails .thumb.active {
  opacity: 1;
  border: 2px solid var(--primary-color);
} */

.thumbnails .carousel-thumb.active {
  opacity: 1;
  border: 2px solid var(--primary-color);
}
.thumbnails .carousel-thumb.active::after {
  display: none;
}

/* .thumbnails > div {
  height: 125px;
  overflow: hidden;
} */

/* .thumbnails > div > img {
  object-fit: cover;
} */

.carousel-thumb {
    height: 120px; /* or whatever height you want */
    overflow: hidden;
    min-width: 190px;
}

.carousel-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;   /* 🔥 fills without stretching */
    object-position: center;
}

.carousel-item {
  position: relative;
}

.carousel-item::after {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0, 0, 0, 0.3);
}
.carousel-control-prev,
.carousel-control-next {
  position: relative;
   display: none;
   max-width: 60px;
}

.project-details h2,
.other-projects h2 {
  font-size: 3.75rem;
  font-weight: 600;
}
.project-details h3 {
  font-size: 1.563rem;
  font-weight: 600;
  margin-top: 25px;
  margin-bottom: 10px;
}

.project-details ul {
  list-style: none;
  padding-left: 0;
  padding-top: 16px;
  padding-bottom: 16px;
}

.project-details ul li {
  position: relative;
  padding-left: 25px;
  margin-bottom: 10px;
}

/* Arrow */
.project-details ul li::before {
  content: '➜';
  position: absolute;
  left: 0;
  top: 0;
  color: var(--primary-color);
  font-size: 14px;
}

.thumbnails {
  scroll-behavior: smooth;
}

.thumb {
  min-width: 100px; /* important for horizontal scroll */
  cursor: pointer;
  opacity: 0.6;
  border: 2px solid transparent;
  flex-shrink: 0;
}

.thumb.active {
  opacity: 1;
  border: 2px solid #1c74c0;
}

.thumbnails::-webkit-scrollbar {
  display: none;
}
.thumbnails {
  -ms-overflow-style: none;
  scrollbar-width: none;
  flex: 1;
}

.thumb.active {
  transform: scale(1.05);
  transition: 0.3s;
}
.other-thumb img {
  width: 100%;
}

.contact-form {
  padding: 80px 0;
  background: linear-gradient(90deg, #1a1a1a, #0d0d0d);
}

.contact-title {
  font-size: 2.813rem;
  font-weight: 700;
  text-align: center;
  margin-bottom: 50px;
  color: var(--white-color);
}

.form-control {
  background: var(--dark-color);
  border: 1px solid #333;
  color: #fff;
  height: 50px;
}

.form-control:focus {
  background: var(--dark-color);
  color: #fff;
  border-color: var(--primary-color);
  box-shadow: none;
}

textarea.form-control {
  height: 150px;
  resize: none;
}

label {
  color: #aaa;
  margin-bottom: 6px;
}

.submit-btn:hover {
  opacity: 0.9;
}

.form-part {
  background-color: var(--form-gray-color);
}

.map iframe {
  vertical-align: middle;
}

.location-row{
  column-count: 3;
  /* margin-top: 30px; */
}
.location-items {
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
}
.location-items h3{
  margin-top:0px;
}

/* .spinner {
      width: 100vw;
      height: 100vh;
      background-color: rgba(0,0,0,0.8);
      position: fixed;
      left: 0;
      right: 0;
      z-index: 1000;
    }

    .spinner::after {
      content: "Loading...";
      width: auto;
       width: 40px;
      height: 40px;
      border: 4px solid #ccc;
      border-top: 4px solid #333;
      border-radius: 50%; 
      animation: spin 1s linear infinite;
      position: fixed;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      z-index: 10;
      transform-origin: center; 
      color: white;
      font-size: 1.2rem;
      font-weight: bold;
    }

    @keyframes spin {
      100% { transform: rotate(360deg); }
    } */

 .section-wrapper {
    position: relative;
    min-height: 200px;
}

/* Loader overlay inside section */
.loader {
    position: relative;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(255,255,255,0.2);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 10;
}

/* Hide by default */
.loader.hidden {
    display: none;
}
.loaderhidden{
    display: none;
}
/* Spinner Center */
.spinner {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);

    width: 40px;
    height: 40px;
    border: 4px solid #ccc;
    border-top: 4px solid #3498db;
    border-radius: 50%;

    animation: spin 1s linear infinite;
    z-index: 10;
}

/* Animation */
@keyframes spin {
    0% { transform: translate(-50%, -50%) rotate(0deg); }
    100% { transform: translate(-50%, -50%) rotate(360deg); }
}

.captcha-alert{
    display: inline-flex;
    left: 50%;
    position: relative;
    transform: translateX(-50%);
}


/* ===== Toaster Message ===== */

#toast-container {
  position: fixed;
  top: 20px;
  right: 20px;
  z-index: 9999;
}

.toast {
  min-width: 250px;
  margin-bottom: 10px;
  padding: 14px 18px;
  border-radius: 8px;
  color: #fff;
  font-size: 14px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.15);
  opacity: 0;
  transform: translateX(100%);
  transition: all 0.4s ease;
}

/* types */
.toast.success { background: #28a745; }
.toast.error   { background: #dc3545; }
.toast.warning { background: #f0ad4e; }

/* show animation */
.toast.show {
  opacity: 1;
  transform: translateX(0);
}

.projectul{
  padding-top: 5px !important;
}
/********************************** Responsive CSS **********************************/

/* `xxl` applies to x-large devices (large desktops, less than 1400px) */
@media (max-width: 1399.98px) {
  .hero-title{
    font-size: 8rem;
  }
}

/* `xl` applies to large devices (desktops, less than 1200px) */
@media (max-width: 1199.98px) {
  .hero-title {
    font-size: 6rem;
  }
  .cta-section::before {
    opacity: 0.2;
  }
}

/* `lg` applies to medium devices (tablets, less than 992px) */
@media (max-width: 991.98px) {
  .hero-title {
    font-size: 4rem;
  }
  footer .border-start,
  footer .border-end {
    border-color: transparent !important;
  }
  .active:after {
    width: 100%;
    left: 0;
  }
  .navbar-collapse.show {
    background-color: var(--dark-color);
    padding: 15px 20px;
  }

  .what-next-title {
    font-size: 4rem;
  }

  .what-next-text {
    font-size: 1rem;
  }
}

/* `md` applies to small devices (landscape phones, less than 768px) */
@media (max-width: 767.98px) {
  .hero-title {
    font-size: 3rem;
  }
  .navbar-brand img {
    height: 75px;
  }

  .what-next-title {
    font-size: 3rem;
  }

  .what-next-text {
    font-size: 0.8rem;
  }
}

/* `sm` applies to x-small devices (portrait phones, less than 576px) */
@media (max-width: 575.98px) {
  .hero-title {
    font-size: 2rem;
  }
  .navbar-brand img {
    height: 50px;
  }
  .contact-bar h4 {
    font-size: 1.1rem;
  }
  .what-next-title {
    font-size: 2rem;
  }
}
