/* ==========================================
   RESPONSIVE CSS - MOBILE FIRST APPROACH
   ========================================== */

/* ==========================================
   MOBILE STYLES (Default - 320px+)
   ========================================== */

/* Base mobile styles */
body {
  overflow-x: hidden;
}

.container {
  padding-left: 1rem;
  padding-right: 1rem;
}

/* Navigation - Mobile */
.navbar-toggler {
  border: none;
  padding: 0.25rem 0.5rem;
}

.navbar-toggler:focus {
  box-shadow: none;
}

.navbar-collapse {
  margin-top: 1rem;
}

.navbar-nav .nav-link {
  padding: 0.75rem 0;
  border-bottom: 1px solid #f0f0f0;
}

.navbar-nav .nav-link:last-child {
  border-bottom: none;
}

/* Hero Section - Mobile */
.hero-section {
  min-height: 70vh;
  text-align: center;
  padding: 2rem 0;
}

.hero-content h1 {
  font-size: 1.62rem;
  margin-bottom: 1rem;
}

.hero-content h2 {
  font-size: 1.25rem;
  margin-bottom: 1rem;
}

.hero-content p {
  font-size: 0.95rem;
  margin-bottom: 1.68rem;
}

/* Sections - Mobile */
.section {
  padding: 2rem 0;
}

.section-title h2 {
  font-size: 1.64rem;
  margin-bottom: 1rem;
}

.section-title p {
  font-size: 1.00rem;
}

/* Cards - Mobile */
.card-body {
  padding: 1rem;
}

.services-card {
  margin-bottom: 1.68rem;
  padding: 1.5rem;
}

.services-price {
  font-size: 1.56rem;
}

/* Team - Mobile */
.team-member {
  margin-bottom: 2rem;
}

.team-member img {
  width: 100px;
  height: 100px;
}

/* Contact Form - Mobile */
.contact-form {
  padding: 2rem 1rem;
}

.form-control {
  margin-bottom: 1rem;
}

/* Footer - Mobile */
.footer {
  padding: 2rem 0 1rem;
  text-align: center;
}

.footer .col-md-3 {
  margin-bottom: 2rem;
}

.footer .col-md-3:last-child {
  margin-bottom: 0;
}

/* Gallery - Mobile */
.gallery-item {
  margin-bottom: 1rem;
}

.gallery-item img {
  height: 150px;
}

/* FAQ - Mobile */
.faq-card {
  margin-bottom: 1rem;
  padding: 1rem;
}

.faq-question {
  font-size: 1rem;
}

.faq-answer {
  font-size: 0.96rem;
}

/* Price Cards - Mobile */
.price-card {
  margin-bottom: 2rem;
  padding: 1.5rem;
}

.price {
  font-size: 2rem;
}

/* Blog - Mobile */
.blog-card {
  margin-bottom: 2rem;
}

.blog-card img {
  height: 150px;
}

.blog-card-body {
  padding: 1rem;
}

/* ==========================================
   TABLET STYLES (768px+)
   ========================================== */
@media (min-width: 768px) {
  .container {
    padding-left: 1.5rem;
    padding-right: 1.5rem;
  }

  /* Navigation - Tablet */
  .navbar-nav .nav-link {
    padding: 0.5rem 1rem;
    border-bottom: none;
  }

  /* Hero Section - Tablet */
  .hero-section {
    min-height: 80vh;
    text-align: left;
  }

  .hero-content h1 {
    font-size: 1.89rem;
  }

  .hero-content h2 {
    font-size: 1.27rem;
  }

  .hero-content p {
    font-size: 1rem;
  }

  /* Sections - Tablet */
  .section {
    padding: 3rem 0;
  }

  .section-title h2 {
    font-size: 1.83rem;
  }

  .section-title p {
    font-size: 1rem;
  }

  /* Services - Tablet */
  .services-card {
    margin-bottom: 2rem;
  }

  .services-price {
    font-size: 1.80rem;
  }

  /* Team - Tablet */
  .team-member {
    margin-bottom: 1.66rem;
  }

  .team-member img {
    width: 120px;
    height: 120px;
  }

  /* Contact Form - Tablet */
  .contact-form {
    padding: 2.5rem;
  }

  /* Footer - Tablet */
  .footer {
    text-align: left;
  }

  .footer .col-md-3 {
    margin-bottom: 1rem;
  }

  /* Gallery - Tablet */
  .gallery-item img {
    height: 180px;
  }

  /* FAQ - Tablet */
  .faq-card {
    padding: 1.25rem;
  }

  /* Price Cards - Tablet */
  .price-card {
    margin-bottom: 1.57rem;
  }

  .price {
    font-size: 2.36rem;
  }

  /* Blog - Tablet */
  .blog-card {
    margin-bottom: 1.63rem;
  }

  .blog-card img {
    height: 180px;
  }

  .blog-card-body {
    padding: 1.25rem;
  }
}

/* ==========================================
   DESKTOP STYLES (992px+)
   ========================================== */
@media (min-width: 992px) {
  .container {
    padding-left: 2rem;
    padding-right: 2rem;
  }

  /* Hero Section - Desktop */
  .hero-section {
    min-height: 100vh;
  }

  .hero-content h1 {
    font-size: 2rem;
  }

  .hero-content h2 {
    font-size: 1.60rem;
  }

  .hero-content p {
    font-size: 1.22rem;
  }

  /* Sections - Desktop */
  .section {
    padding: 4rem 0;
  }

  .section-title h2 {
    font-size: 2rem;
  }

  .section-title p {
    font-size: 1.27rem;
  }

  /* Services - Desktop */
  .services-card {
    margin-bottom: 0;
    padding: 2rem;
  }

  .services-price {
    font-size: 2rem;
  }

  /* Team - Desktop */
  .team-member {
    margin-bottom: 0;
  }

  /* Contact Form - Desktop */
  .contact-form {
    padding: 3rem;
  }

  /* Gallery - Desktop */
  .gallery-item img {
    height: 200px;
  }

  /* FAQ - Desktop */
  .faq-card {
    padding: 1.5rem;
  }

  /* Price Cards - Desktop */
  .price-card {
    margin-bottom: 0;
    padding: 2rem;
  }

  .price {
    font-size: 2.62rem;
  }

  /* Blog - Desktop */
  .blog-card {
    margin-bottom: 0;
  }

  .blog-card img {
    height: 200px;
  }

  .blog-card-body {
    padding: 1.5rem;
  }
}

/* ==========================================
   LARGE DESKTOP STYLES (1200px+)
   ========================================== */
@media (min-width: 1200px) {
  .container {
    max-width: 1200px;
  }

  /* Hero Section - Large Desktop */
  .hero-content h1 {
    font-size: 2.26rem;
  }

  .hero-content h2 {
    font-size: 1.74rem;
  }

  /* Sections - Large Desktop */
  .section-title h2 {
    font-size: 2.39rem;
  }

  /* Services - Large Desktop */
  .services-card {
    padding: 2.5rem;
  }

  /* Contact Form - Large Desktop */
  .contact-form {
    padding: 3.5rem;
  }

  /* Gallery - Large Desktop */
  .gallery-item img {
    height: 220px;
  }

  /* FAQ - Large Desktop */
  .faq-card {
    padding: 2rem;
  }

  /* Price Cards - Large Desktop */
  .price-card {
    padding: 2.5rem;
  }

  /* Blog - Large Desktop */
  .blog-card-body {
    padding: 2rem;
  }
}

/* ==========================================
   EXTRA LARGE DESKTOP STYLES (1400px+)
   ========================================== */
@media (min-width: 1400px) {
  .container {
    max-width: 1320px;
  }

  /* Hero Section - Extra Large Desktop */
  .hero-content h1 {
    font-size: 2.60rem;
  }

  /* Sections - Extra Large Desktop */
  .section-title h2 {
    font-size: 2.54rem;
  }

  /* Gallery - Extra Large Desktop */
  .gallery-item img {
    height: 250px;
  }
}

/* ==========================================
   PRINT STYLES
   ========================================== */
@media print {
  .navbar,
  .footer,
  .hero-section::before,
  .btn,
  .contact-form {
    display: none;
  }

  .hero-section {
    min-height: auto;
    padding: 2rem 0;
  }

  .section {
    padding: 1rem 0;
  }

  .card {
    box-shadow: none;
    border: 1px solid #f0f0f0;
  }

  .page-break {
    page-break-before: always;
  }
}

/* ==========================================
   HIGH CONTRAST MODE
   ========================================== */
@media (prefers-contrast: high) {
  .card {
    border: 2px solid var(--neutral-dark);
  }

  .btn-primary {
    border: 2px solid var(--primary-dark);
  }

  .form-control {
    border: 2px solid var(--neutral-dark);
  }

  .form-control:focus {
    border: 2px solid var(--primary-dark);
  }
}

/* ==========================================
   DARK MODE SUPPORT
   ========================================== */