/* ========================
   Global Styles
======================== */
html{
  overflow-x: hidden;
}
body {
  margin: 0;
  font-family: 'Lato', sans-serif;
  color: #000000;
  overflow-x: hidden;
}

html {
  scroll-behavior: smooth;
}

/* ========================
   Top Navigation Bar
======================== */
.nav-top {
  background-color: rgba(0,0,0,0.85);
  color: #ffffff;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 20px;
  padding: 12px 18px;
  font-size: 0.95rem;

  /* allow wrapping instead of hiding */
  flex-wrap: wrap;
  overflow-x: visible;
  white-space: normal;
}

/* Reset link styles */
.nav-top a {
  color: #ffffff;
  text-decoration: none;
  font-weight: normal;
  display: flex;
  align-items: center;
  gap: 6px;
}

.nav-top a:hover {
  opacity: 0.85;
}

/* Navigation icons (phone/mail) */
.nav-top i {
  color: #ffffff;
  margin-right: 5px;
  vertical-align: middle;
}

/* Outlook Schedule Button */
.schedule-btn {
  background: #0ea5a4;
  color: #fff !important;
  padding: 8px 16px;
  border-radius: 20px;
  font-weight: 600;
  font-size: 0.9rem;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  transition: background 0.2s ease, transform 0.15s ease;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.schedule-btn:hover {
  background: #0c8c8a;
  transform: translateY(-2px);
}

.schedule-btn:active {
  transform: translateY(0);
}

/* Mobile adjustments */
@media (max-width: 768px) {
  .nav-top {
    justify-content: center;   /* center items */
    flex-direction: column;    /* stack items vertically */
    gap: 12px;
    text-align: center;
  }

  .nav-top a,
  .schedule-btn {
    width: 100%;               /* full width for easy tapping */
    justify-content: center;
  }
}



/* ========================
   Main Navigation Bar
======================== */
.nav-bar {
  background-color: #ffffff !important;
  width: 100%;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
  position: relative;
  z-index: 10;
}

.nav-link {
  font-weight: 800 !important;
}

.nav-link:hover {
  border-bottom: 2px solid #000000;
}

/* ========================
   Global Heading Styles
======================== */
h1, h2 {
  font-family: 'Raleway', sans-serif !important;
  font-weight: 700 !important;
  letter-spacing: -1px !important;
  font-style: normal !important; /* remove italics */
  margin: 20px 0 !important;
  color: inherit;
}

h1 {
  font-size: 2.8rem !important;
}

h2 {
  font-size: 2rem !important;
}

/* Optional: center headings in sections */
.section1 h1, .section1 h2,
.section2 h1, .section2 h2,
.section3 h1, .section3 h2,
.section4 h1, .section4 h2,
.section5 h1, .section5 h2,
.section6 h1, .section6 h2 {
  text-align: center;
}

/* ========================
   Section 1
======================== */
/* Section Wrapper */
.section1 {
  position: relative;
  background-color: #ffffff;
  color: #000000;
  text-align: center;
  padding: 60px 0px;
  opacity: 0;
  transform: translateY(30px);
  animation: fadeUp 1.2s ease-out forwards;
  overflow: hidden;
  
  display: flex;
  flex-direction: column;
  justify-content: center;
}

/* Responsive decorative circle (top-right) */
.section1::before {
  content: "";
  position: absolute;
  top: -40px;
  right: -40px;
  width: clamp(100px, 12vw, 160px);  /* Slight bump in base size */
  height: clamp(100px, 12vw, 160px);
  background: #000000;
  border-radius: 50%;
  z-index: 0;
  opacity: 1;
  box-shadow: 0 0 20px rgba(0,0,0,0.3), 0 0 40px rgba(0,0,0,0.2);
  transition: width 0.3s ease, height 0.3s ease;
}


/* Fade-up animation */
@keyframes fadeUp {
  from { opacity: 0; transform: translateY(30px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* Max-width container for layout */
.container {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 20px;
}

/* Paragraph */
.section1 p {
  font-size: 1.1rem;
  max-width: 700px;
  margin: 0 auto 20px;
  line-height: 1.6;
}

/* Services list layout */
.services-list {
  display: flex;
  flex-wrap: wrap;
  gap: 15px 40px;
  align-items: center;
  justify-content: center;
  margin: 20px 0;
  font-size: 1rem;
}

/* Individual service items */
.services-list span {
  display: flex;
  align-items: center;
  gap: 8px;
  font-weight: 600;
  color: #222;
  transition: transform 0.2s ease, color 0.2s ease;
  cursor: pointer;
}

/* Icon styling */
.services-list i {
  color: #0ea5a4;
  font-size: 1.2rem;
  flex-shrink: 0;
}

/* Hover effect for services */
.services-list span:hover {
  color: #0ea5a4;
  transform: translateY(-2px);
}

/* Responsive stack on mobile */
@media (max-width: 768px) {
  .services-list {
    flex-direction: column;
    align-items: center;
    gap: 12px;
  }
}

/* Button styles */
.button01 {
  background-color: #0066cc !important;
  border: 2px solid #0066cc !important;
  color: #fff !important;
  padding: 12px 28px !important;
  font-weight: 600 !important;
  border-radius: 30px !important;
  transition: all 0.3s ease !important;
  box-shadow: 0 4px 10px rgba(0, 102, 204, 0.3);
  display: inline-block;
  margin-top: 20px;
}

/* Button hover */
.button01:hover {
  background: linear-gradient(135deg, #004c99, #0066cc) !important;
  transform: translateY(-3px) scale(1.05);
  box-shadow: 0 6px 15px rgba(0, 102, 204, 0.5);
  border-color: #004c99 !important;
}

/* Button active */
.button01:active {
  transform: translateY(0) scale(0.97);
  box-shadow: 0 3px 8px rgba(0, 102, 204, 0.4);
}

/* Extra spacing for ultra-wide screens */
@media (min-width: 1440px) {
  .section1 {
    padding: 100px 40px;
  }
}


/* ========================
   Section 2
======================== */
.section2 {
  background-image: url(sect2-bg.jpeg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #ffffff;
  text-align: center;
  padding: 30px;
  box-shadow: 0 4px 15px rgba(0, 0, 0, 0.15);
  position: relative;
  z-index: 10;
}

/* Fade-up animation utility */
.fade-up {
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.8s ease-out;
  transition-delay: calc(var(--i, 0) * 150ms);
}

.fade-up.show {
  opacity: 1;
  transform: translateY(0);
}

/* Section 2 Content */
.section2 p {
  font-size: 1.1rem;
  max-width: 700px;
  margin: 0 auto 20px;
  line-height: 1.6;
}

/* ========================
   Cards
======================== */
.card {
  border-radius: 20px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
  border: none;
}

.card:hover {
  transform: translateY(-8px);
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
}

.card-title img {
  width: 60px;
  height: 60px;
  object-fit: contain;
  margin-bottom: 15px;
}

.container {
  padding: 60px 0;
}

.card-subtitle {
  font-family: 'Raleway', sans-serif;
  font-weight: 700;
  font-size: 1.5rem;
  margin-bottom: 15px;
  position: relative;
}

.card-subtitle::after {
  content: '';
  display: block;
  width: 50px;
  height: 3px;
  background-color: #0066cc;
  margin-top: 5px;
  border-radius: 2px;
}

.card-text {
  font-family: 'Lato', sans-serif;
  font-weight: 400;
  font-size: 1rem;
  line-height: 1.6;
}

/* ========================
   Section 3
======================== */
.section3 {
  background-image: url(sec3bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #000000;
  padding-top: 20px;
  min-height: 75vh;
  position: relative;
}

/* Content Boxes */
.sec3div {
  background-color: #ffffff;
  color: black;
  display: inline-block;
  text-align: left;
  max-width: 100%;
  box-sizing: border-box;
  margin-bottom: 45px;
  padding: 15px;
  white-space: normal;
  border-radius: 12px;
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
  opacity: 0;
  transform: translateX(-50px);
  transition: all 1.8s ease-out;
  position: relative;
  z-index: 1;
  h2{
    text-align: left;
  }
}

.sec3div.show {
  opacity: 0.8;
  transform: translateX(0);
}

.section3 .sec3div:nth-of-type(1) {
  margin-top: 60px;
}

/* ========================
   Section 4
======================== */
.section4 {
  background-image: url(sec-4bg.jpg);
  background-size: cover;
  background-position: center;
  background-repeat: no-repeat;
  color: #ffffff;
  text-align: center;
  padding: 60px 20px;
  position: relative;
  z-index: 10;
  box-shadow: 0 20px 40px rgba(0, 0, 0, 0.5);
}

.section4 .card {
  opacity: 0;
  transform: translateY(40px);
  transition: all 0.8s ease-out;
  transition-delay: calc(var(--i, 0) * 150ms);
}

.section4 .card.show {
  opacity: 1;
  transform: translateY(0);
}

/* ========================
   Section 5 - Carousel
======================== */
.section5 {
  position: relative;
  background-color: #ffffff;
  text-align: center;
  padding: 60px 20px;
  overflow: visible;
}

.section5 h2 {
  font-size: 1.2rem;
  color: #333333;
  margin-bottom: 10px;
  text-transform: uppercase;
  letter-spacing: 1px;
}

.section5 h1 {
  font-size: 2.5rem;
  margin-bottom: 50px;
  color: #111111;
  font-weight: 700;
}

/* Carousel wrapper */
.carousel-3d-wrapper {
  position: relative;
  max-width: 1000px;
  height: 500px;
  margin: auto;
  perspective: 1000px;
  overflow: visible;
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 1;
}

/* Decorative circles */
.carousel-3d-wrapper::before,
.carousel-3d-wrapper::after {
  content: '';
  position: absolute;
  border-radius: 50%;
  background: #f0f0f0;
  opacity: 0.3;
  filter: blur(40px);
  z-index: 1;
}

.carousel-3d-wrapper::before {
  top: -50px;
  left: -50px;
  width: 350px;
  height: 350px;
}

.carousel-3d-wrapper::after {
  bottom: -60px;
  right: -60px;
  width: 400px;
  height: 400px;
}

/* Floating shadow */
.carousel-3d-wrapper .shadow-bg {
  position: absolute;
  top: 0;
  left: 50%;
  transform: translateX(-50%);
  width: 90%;
  height: 100%;
  background: radial-gradient(ellipse at center, rgba(0,0,0,0.08) 0%, transparent 80%);
  z-index: 0;
  pointer-events: none;
  border-radius: 30px;
}

/* Carousel container */
.carousel-3d {
  position: relative;
  width: 100%;
  height: 100%;
  z-index: 2;
}

/* Cards */
.carousel-card {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 400px;
  max-width: 90%;
  padding: 40px 30px;
  background: #111111;
  color: #ffffff;
  border-radius: 20px;
  box-shadow: 0 10px 35px rgba(0,0,0,0.4);
  text-align: center;
  transform: translate(-50%, -50%) scale(0.85);
  opacity: 0.7;
  transition: transform 0.8s ease, opacity 0.8s ease, box-shadow 0.5s ease;
  z-index: 0;
}

/* Active card */
.carousel-card.active {
  transform: translate(-50%, -50%) scale(1);
  opacity: 1;
  z-index: 3;
  box-shadow: 0 18px 50px rgba(0,0,0,0.5);
}

/* Avatar styling */
.avatar {
  width: 100px;
  height: 100px;
  border-radius: 50%;
  object-fit: cover;
  border: 3px solid #ffffff;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  margin-bottom: 20px;
  transition: transform 0.3s ease, box-shadow 0.3s ease;
}

.avatar:hover {
  transform: scale(1.05);
  box-shadow: 0 12px 30px rgba(0,0,0,0.3);
}

/* Carousel arrows */
.carousel-prev,
.carousel-next {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  background: rgba(0,0,0,0.3);
  border: none;
  color: #ffffff;
  font-size: 2rem;
  padding: 12px 18px;
  border-radius: 50%;
  cursor: pointer;
  z-index: 4;
  transition: background 0.3s ease;
}

.carousel-prev:hover,
.carousel-next:hover {
  background: rgba(0,0,0,0.6);
}

.carousel-prev { left: 10px; }
.carousel-next { right: 10px; }

/* Testimonials text */
.carousel-card p {
  font-size: 1rem;
  line-height: 1.6;
  color: #dddddd;
  margin-bottom: 15px;
}

.carousel-card h5 {
  font-size: 0.95rem;
  color: #bbbbbb;
  margin-top: 10px;
  font-weight: 500;
}

.carousel-card h5::before {
  content: '';
  display: block;
  width: 40px;
  height: 2px;
  background-color: #ffffff;
  margin: 8px auto 12px auto;
  border-radius: 1px;
}

/* ========================
   Section 6
======================== */
.section6 {
  background-color: #000000;
  color: #ffffff;
  text-align: center;
  padding: 50px 20px;
  font-family: Arial, Helvetica, sans-serif;
  position: relative;
  box-shadow: 0 -10px 30px rgba(0, 0, 0, 0.3), 0 10px 30px rgba(0, 0, 0, 0.3);
}

.section6 .contact-form label {
  color: #000000;
}

/* ========================
   Footer
======================== */
footer {
  background-color: #ffffff;
  text-align: center;
  padding: 15px 0;
}

footer p {
  margin-bottom: 0;
}
/* Social icons container */
.social-icons {
  display: flex;
  gap: 15px; /* spacing between icons */
  justify-content: center;
  margin: 20px 0;
}

/* Style all icons */
.social-icons a {
  font-size: 28px;   /* default size */
  color: #444;       /* base color */
  transition: transform 0.3s ease, color 0.3s ease;
}

/* Hover effect: enlarge + change color */
.social-icons a:hover {
  transform: scale(1.3); /* enlarge */
}

/* Optional: brand-specific colors on hover */
.social-icons a.instagram:hover {
  color: #E1306C;
}

.social-icons a.facebook:hover {
  color: #1877F2;
}


/* ========================
   Contact Form + Image
======================== */
/* Container: side-by-side layout */ .form-image-wrapper {
   display: flex; 
   justify-content: 
   center; align-items:
    stretch; 
    /* form + image same height */
     gap: 0; /* no gap between form and image */
      max-width: 1200px; /* keeps layout neat */
       margin: 0 auto; /* center with margins on both sides */
        padding: 0 40px; /* plenty of space on left/right */ } 
  /* Contact form */ 
  .contact-form { 
    flex: 1.2; /* form slightly bigger */ 
    text-align: left; 
    padding: 30px; 
    display: flex; 
    flex-direction: column; 
    justify-content: center; 
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); 
    border-radius: 12px 0 0 12px; /* rounded on left */ 
    background: #f9f9f9; } 
  /* Image wrapper */ 
  .image-wrapper { flex: 1; display: flex; } 
  .image-wrapper img { width: 100%; height: 100%; object-fit: cover; /* fills the same height as form */
     border-radius: 0 12px 12px 0; /* rounded on right */ 
     box-shadow: 0 4px 12px rgba(0, 0, 0, 0.2); } 
     /* Form fields */
      .form-group {
         margin-bottom: 20px; 
        }
          .form-group label { 
            display: block;
             margin-bottom: 5px; 
             font-weight: bold; 
            } 
      .form-group input, .form-group textarea { 
        width: 100%; 
        padding: 10px 15px; 
        border-radius: 8px; 
        border: 1px solid #ccc; 
        font-size: 1rem; 
      } 
    .form-group input:focus, .form-group textarea:focus {
       outline: 2px solid #007bff; 
       border-color: #007bff; 
      } 
      /* Button */ 
      .btn-primary {
         background-color: #007bff; 
         color: #fff; 
         padding: 12px 25px; 
         border: none; 
         border-radius: 8px; 
         font-size: 1rem; 
         cursor: pointer; 
         transition: 
         background 0.3s; 
        } 
         .btn-primary:hover { 
          background-color: #0056b3; 
        } 
        /* ✅ Stack on smaller screens */ 
        @media (max-width: 900px) { 
          .form-image-wrapper 
          { flex-direction: column;
             /* stack form above image */ 
             padding: 0 20px; /* reduce side padding */ } 
             .contact-form { 
              border-radius: 12px 12px 0 0; /* rounded top */ 
            } .image-wrapper img { 
              border-radius: 0 0 12px 12px; /* rounded bottom */ } }