/* 
 * Responsive Design Standardization
 * 
 * This file standardizes responsive design across the entire site
 * using 1024px as the primary breakpoint (mobile-first approach)
 * 
 * Breakpoints:
 * - Mobile: < 1024px (default)
 * - Desktop: >= 1024px
 * 
 * Usage: Include this file after main.css to override any conflicting styles
 */

/* ========================================
   GLOBAL RESPONSIVE STANDARDS
   ======================================== */

/* Mobile-first base styles (default for all screen sizes) */
:root {
  --mobile-padding: 1rem;
  --tablet-padding: 1.5rem;
  --desktop-padding: 2rem;
  --mobile-margin: 1rem;
  --tablet-margin: 1.5rem;
  --desktop-margin: 2rem;
  --mobile-font-size: 0.875rem;
  --tablet-font-size: 1rem;
  --desktop-font-size: 1.125rem;
}

/* ========================================
   LAYOUT & CONTAINER STANDARDIZATION
   ======================================== */

/* Mobile-first container adjustments */
.container {
  padding-left: var(--mobile-padding);
  padding-right: var(--mobile-padding);
  margin-top: 20px;
}

/* Desktop container adjustments */
@media (min-width: 1024px) {
  .container {
    padding-left: var(--desktop-padding);
    padding-right: var(--desktop-padding);
    margin-top: 30px;
  }
}

@media (min-width: 1024px) {
  .container {
    padding-left: var(--desktop-padding);
    padding-right: var(--desktop-padding);
    margin-top: 30px;
  }
}

/* ========================================
   HEADER & NAVIGATION STANDARDIZATION
   ======================================== */

/* Mobile header adjustments */
@media (max-width: 1023px) {
  .header {
    padding: 20px 0 0 0;
    height: 90px;
  }

  .header .header-container {
    margin-left: 10px;
    margin-right: 10px;
    padding: 10px 15px;
    border-radius: 25px;
  }

  .header .logo h1 {
    font-size: 20px;
  }

  .header .logo img {
    max-height: 30px;
  }

  /* Mobile navigation improvements */
  .navmenu ul {
    padding: 15px 0;
  }

  .navmenu a {
    padding: 12px 20px;
    font-size: 16px;
  }

  /* Mobile dropdown improvements */
  .navmenu .dropdown ul {
    margin: 5px 20px;
    padding: 8px 0;
  }

  .navmenu .dropdown ul a {
    padding: 8px 15px;
    font-size: 14px;
  }

  /* Mobile user button adjustments */
  .btn-getstarted.dropdown-toggle {
    min-width: 60px !important;
    max-width: 60px !important;
    width: 60px !important;
    padding: 6px 10px !important;
    font-size: 12px !important;
  }

  .user-name-mobile {
    min-width: 28px !important;
    max-width: 28px !important;
    height: 28px !important;
    font-size: 12px !important;
  }
}

/* Tablet header adjustments */
@media (min-width: 1024px) {
  .header {
    padding: 25px 0 0 0;
    height: 100px;
  }

  .header .header-container {
    margin-left: 15px;
    margin-right: 15px;
    padding: 12px 20px;
  }

  .header .logo h1 {
    font-size: 22px;
  }

  .header .logo img {
    max-height: 32px;
  }
}

/* Desktop header adjustments */
@media (min-width: 1024px) {
  .header {
    padding: 30px 0 0 0;
    height: 110px;
  }

  .header .header-container {
    margin-left: 20px;
    margin-right: 20px;
    padding: 15px 25px;
  }

  .header .logo h1 {
    font-size: 24px;
  }

  .header .logo img {
    max-height: 36px;
  }
}

/* ========================================
   TYPOGRAPHY STANDARDIZATION
   ======================================== */

/* Mobile typography */
@media (max-width: 1023px) {
  h1 {
    font-size: 1.75rem;
    line-height: 1.2;
  }

  h2 {
    font-size: 1.5rem;
    line-height: 1.3;
  }

  h3 {
    font-size: 1.25rem;
    line-height: 1.4;
  }

  h4 {
    font-size: 1.125rem;
    line-height: 1.4;
  }

  h5 {
    font-size: 1rem;
    line-height: 1.5;
  }

  h6 {
    font-size: 0.875rem;
    line-height: 1.5;
  }

  p {
    font-size: var(--mobile-font-size);
    line-height: 1.6;
  }

  .section-title h2 {
    font-size: 1.75rem;
  }

  .hero .hero-content h1 {
    font-size: 2rem;
  }
}



/* Desktop typography */
@media (min-width: 1024px) {
  h1 {
    font-size: 2.75rem;
  }

  h2 {
    font-size: 2.25rem;
  }

  h3 {
    font-size: 1.75rem;
  }

  h4 {
    font-size: 1.5rem;
  }

  h5 {
    font-size: 1.25rem;
  }

  h6 {
    font-size: 1.125rem;
  }

  p {
    font-size: var(--desktop-font-size);
  }

  .section-title h2 {
    font-size: 2.75rem;
  }

  .hero .hero-content h1 {
    font-size: 3.5rem;
  }
}

/* ========================================
   SECTION & SPACING STANDARDIZATION
   ======================================== */

/* Mobile section adjustments */
@media (max-width: 1023px) {
  section,
  .section {
    padding: 40px 0;
    scroll-margin-top: 100px;
  }

  .section-title {
    padding-bottom: 40px;
  }

  .section-title h2 {
    font-size: 1.75rem;
    margin-bottom: 15px;
    padding-bottom: 15px;
  }

  .section-title h2:after {
    width: 40px;
    height: 2px;
  }

  /* Mobile spacing utilities */
  .mb-4 {
    margin-bottom: 1rem !important;
  }

  .mb-3 {
    margin-bottom: 0.75rem !important;
  }

  .mb-2 {
    margin-bottom: 0.5rem !important;
  }

  .mb-1 {
    margin-bottom: 0.25rem !important;
  }

  .mt-4 {
    margin-top: 1rem !important;
  }

  .mt-3 {
    margin-top: 0.75rem !important;
  }

  .mt-2 {
    margin-top: 0.5rem !important;
  }

  .mt-1 {
    margin-top: 0.25rem !important;
  }

  .py-4 {
    padding-top: 1rem !important;
    padding-bottom: 1rem !important;
  }

  .py-3 {
    padding-top: 0.75rem !important;
    padding-bottom: 0.75rem !important;
  }

  .py-2 {
    padding-top: 0.5rem !important;
    padding-bottom: 0.5rem !important;
  }

  .py-1 {
    padding-top: 0.25rem !important;
    padding-bottom: 0.25rem !important;
  }
}

/* Tablet section adjustments */
@media (min-width: 1024px) {
  section,
  .section {
    padding: 50px 0;
    scroll-margin-top: 110px;
  }

  .section-title {
    padding-bottom: 50px;
  }

  .section-title h2 {
    font-size: 2.25rem;
    margin-bottom: 18px;
    padding-bottom: 18px;
  }
}

/* Desktop section adjustments */
@media (min-width: 1024px) {
  section,
  .section {
    padding: 60px 0;
    scroll-margin-top: 100px;
  }

  .section-title {
    padding-bottom: 60px;
  }

  .section-title h2 {
    font-size: 2.75rem;
    margin-bottom: 20px;
    padding-bottom: 20px;
  }
}

/* ========================================
   HERO SECTION STANDARDIZATION
   ======================================== */

/* Mobile hero adjustments */
@media (max-width: 1023px) {
  .hero {
    padding-top: 20px;
  }

  .hero .hero-content {
    text-align: center;
    margin-bottom: 2rem;
  }

  .hero .hero-content h1 {
    font-size: 2rem;
    margin-bottom: 1rem;
  }

  .hero .hero-content p {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
  }

  .hero .hero-image {
    margin-top: 1rem;
  }

  .hero .hero-image img {
    max-width: 100%;
    height: auto;
  }

  .hero .stats-row {
    margin-top: 3rem;
    padding-bottom: 1.5rem;
  }

  .hero .stat-item {
    padding: 1.5rem;
    text-align: center;
  }

  .hero .stat-item .stat-icon {
    width: 48px;
    height: 48px;
    margin: 0 auto 1rem;
  }

  .hero .stat-item .stat-icon i {
    font-size: 1.25rem;
  }

  .hero .stat-item .stat-content h4 {
    font-size: 1.125rem;
    margin-bottom: 0.25rem;
  }

  .hero .stat-item .stat-content p {
    font-size: 0.8rem;
  }

  .hero .customers-badge {
    position: static;
    margin: 1rem auto;
    max-width: 250px;
  }
}

/* Tablet hero adjustments */
@media (min-width: 1024px) {
  .hero {
    padding-top: 30px;
  }

  .hero .hero-content h1 {
    font-size: 2.5rem;
  }

  .hero .hero-content p {
    font-size: 1rem;
  }

  .hero .stats-row {
    margin-top: 4rem;
  }

  .hero .stat-item {
    padding: 2rem;
  }

  .hero .stat-item .stat-icon {
    width: 56px;
    height: 56px;
  }

  .hero .stat-item .stat-icon i {
    font-size: 1.375rem;
  }
}

/* Desktop hero adjustments */
@media (min-width: 1024px) {
  .hero {
    padding-top: 40px;
  }

  .hero .hero-content h1 {
    font-size: 3.5rem;
  }

  .hero .hero-content p {
    font-size: 1.125rem;
  }

  .hero .stats-row {
    margin-top: 5rem;
  }

  .hero .stat-item {
    padding: 2rem;
  }

  .hero .stat-item .stat-icon {
    width: 64px;
    height: 64px;
  }

  .hero .stat-item .stat-icon i {
    font-size: 1.5rem;
  }
}

/* ========================================
   FORM STANDARDIZATION
   ======================================== */

/* Mobile form adjustments */
@media (max-width: 1023px) {
  .contact .contact-form {
    padding: 1.5rem;
  }

  .contact .contact-form h3 {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
  }

  .contact .contact-form h4 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
  }

  .contact .contact-form p {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
  }

  .contact .contact-form .form-control,
  .contact .contact-form .form-select {
    padding: 0.75rem 1rem;
    font-size: 16px; /* Prevent zoom on iOS */
    border-radius: 0.375rem;
  }

  .contact .contact-form .form-label {
    font-size: 0.875rem;
    margin-bottom: 0.25rem;
  }

  .contact .contact-form .btn {
    padding: 0.875rem 1.5rem;
    font-size: 0.9rem;
    width: 100%;
  }

  /* Contact info box mobile adjustments */
  .contact .info-box {
    padding: 1.5rem;
    margin-bottom: 1.5rem;
  }

  .contact .info-box h3 {
    font-size: 1.5rem;
    margin-bottom: 0.75rem;
  }

  .contact .info-box p {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
  }

  .contact .info-item {
    gap: 1rem;
    margin-bottom: 1.5rem;
  }

  .contact .info-item .icon-box {
    width: 3rem;
    height: 3rem;
  }

  .contact .info-item .icon-box i {
    font-size: 1.25rem;
  }

  .contact .info-item .content h4 {
    font-size: 1.125rem;
    margin-bottom: 0.25rem;
  }

  .contact .info-item .content p {
    font-size: 0.875rem;
  }
}

/* Tablet form adjustments */
@media (min-width: 1024px) {
  .contact .contact-form {
    padding: 2rem;
  }

  .contact .contact-form h3 {
    font-size: 1.75rem;
  }

  .contact .contact-form h4 {
    font-size: 1.5rem;
  }

  .contact .contact-form .btn {
    padding: 1rem 2rem;
  }

  .contact .info-box {
    padding: 2rem;
  }

  .contact .info-box h3 {
    font-size: 1.75rem;
  }
}

/* Desktop form adjustments */
@media (min-width: 1024px) {
  .contact .contact-form {
    padding: 3rem;
  }

  .contact .contact-form h3 {
    font-size: 2rem;
  }

  .contact .contact-form h4 {
    font-size: 1.5rem;
  }

  .contact .contact-form .btn {
    padding: 1rem 2rem;
  }

  .contact .info-box {
    padding: 3rem;
  }

  .contact .info-box h3 {
    font-size: 2rem;
  }
}

/* ========================================
   CARD & COMPONENT STANDARDIZATION
   ======================================== */

/* Mobile card adjustments */
@media (max-width: 1023px) {
  .card {
    border-radius: 0.5rem;
    margin-bottom: 1rem;
  }

  .card-header {
    padding: 1rem;
    font-size: 1rem;
  }

  .card-body {
    padding: 1rem;
  }

  .card-footer {
    padding: 1rem;
  }

  /* Service cards */
  .services .service-card {
    padding: 1.5rem;
    margin-bottom: 1rem;
  }

  .services .service-card .icon {
    width: 48px;
    height: 48px;
    margin-right: 1rem;
    font-size: 1.5rem;
  }

  .services .service-card h3 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
  }

  .services .service-card p {
    font-size: 0.9rem;
    margin-bottom: 1rem;
  }

  /* Feature cards */
  .features-cards .feature-box {
    padding: 1.5rem;
    margin-bottom: 1rem;
  }

  .features-cards .feature-box i {
    font-size: 2rem;
    margin-bottom: 1rem;
  }

  .features-cards .feature-box h4 {
    font-size: 1.125rem;
    margin-bottom: 0.75rem;
  }

  .features-cards .feature-box p {
    font-size: 0.9rem;
  }

  /* Pricing cards */
  .pricing .pricing-card {
    padding: 1.5rem;
    margin-bottom: 1rem;
  }

  .pricing .pricing-card h3 {
    font-size: 1.25rem;
    margin-bottom: 0.75rem;
  }

  .pricing .pricing-card .price .amount {
    font-size: 2.5rem;
  }

  .pricing .pricing-card .description {
    font-size: 0.9rem;
    margin-bottom: 1.5rem;
  }
}

/* Tablet card adjustments */
@media (min-width: 1024px) {
  .services .service-card {
    padding: 2rem;
  }

  .services .service-card .icon {
    width: 56px;
    height: 56px;
    font-size: 1.75rem;
  }

  .services .service-card h3 {
    font-size: 1.5rem;
  }

  .features-cards .feature-box {
    padding: 2rem;
  }

  .features-cards .feature-box i {
    font-size: 2.5rem;
  }

  .features-cards .feature-box h4 {
    font-size: 1.25rem;
  }

  .pricing .pricing-card {
    padding: 2rem;
  }

  .pricing .pricing-card h3 {
    font-size: 1.5rem;
  }

  .pricing .pricing-card .price .amount {
    font-size: 3rem;
  }
}

/* Desktop card adjustments */
@media (min-width: 1024px) {
  .services .service-card {
    padding: 2.5rem;
  }

  .services .service-card .icon {
    width: 64px;
    height: 64px;
    font-size: 2rem;
  }

  .services .service-card h3 {
    font-size: 1.75rem;
  }

  .features-cards .feature-box {
    padding: 2.5rem;
  }

  .features-cards .feature-box i {
    font-size: 3rem;
  }

  .features-cards .feature-box h4 {
    font-size: 1.5rem;
  }

  .pricing .pricing-card {
    padding: 2.5rem;
  }

  .pricing .pricing-card h3 {
    font-size: 1.75rem;
  }

  .pricing .pricing-card .price .amount {
    font-size: 3.5rem;
  }
}

/* ========================================
   BUTTON STANDARDIZATION
   ======================================== */

/* Mobile button adjustments */
@media (max-width: 1023px) {
  .btn {
    min-height: 44px; /* Touch-friendly minimum */
    min-width: 44px;
    padding: 0.75rem 1rem;
    font-size: 0.9rem;
    border-radius: 0.375rem;
  }

  .btn-sm {
    min-height: 32px;
    min-width: 32px;
    padding: 0.5rem 0.75rem;
    font-size: 0.8rem;
  }

  .btn-lg {
    min-height: 48px;
    min-width: 48px;
    padding: 1rem 1.5rem;
    font-size: 1rem;
  }

  /* Hero buttons */
  .hero .btn-primary {
    padding: 0.875rem 2rem;
    font-size: 0.9rem;
  }

  .hero .btn-link {
    font-size: 0.9rem;
  }

  /* Contact form button */
  .contact .contact-form .btn {
    width: 100%;
    padding: 1rem 2rem;
    font-size: 0.9rem;
  }
}

/* Tablet button adjustments */
@media (min-width: 1024px) {
  .btn {
    padding: 0.875rem 1.25rem;
    font-size: 1rem;
  }

  .btn-sm {
    padding: 0.625rem 1rem;
    font-size: 0.875rem;
  }

  .btn-lg {
    padding: 1.125rem 1.75rem;
    font-size: 1.125rem;
  }

  .hero .btn-primary {
    padding: 1rem 2.5rem;
    font-size: 1rem;
  }

  .contact .contact-form .btn {
    width: auto;
    padding: 1rem 2rem;
  }
}

/* Desktop button adjustments */
@media (min-width: 1024px) {
  .btn {
    padding: 1rem 1.5rem;
    font-size: 1.125rem;
  }

  .btn-sm {
    padding: 0.75rem 1.25rem;
    font-size: 1rem;
  }

  .btn-lg {
    padding: 1.25rem 2rem;
    font-size: 1.25rem;
  }

  .hero .btn-primary {
    padding: 1.125rem 3rem;
    font-size: 1.125rem;
  }
}

/* ========================================
   FOOTER STANDARDIZATION
   ======================================== */

/* Mobile footer adjustments */
@media (max-width: 1023px) {
  .footer {
    padding: 0.25rem 0 0.75rem 0 !important;
  }

  .footer .footer-top {
    padding-top: 0.25rem !important;
  }

  .footer-about {
    text-align: center;
    margin-bottom: 1.25rem;
  }

  .footer-about .logo {
    justify-content: center;
  }

  .footer-about .logo span {
    font-size: 1.25rem;
  }

  .footer h4 {
    font-size: 1.25rem;
  }

  .footer-links ul {
    text-align: center;
  }

  .footer-links ul li {
    justify-content: center;
  }

  .footer-about p {
    font-size: 0.8rem;
    margin-bottom: 0.25rem;
  }

  .footer-links {
    text-align: center;
    margin-bottom: 1rem;
  }

  .footer-links h4 {
    font-size: 0.95rem;
    margin-bottom: 0.5rem;
  }

  .footer-links ul li {
    margin-bottom: 0.25rem;
    padding: 5px 0;
  }

  .footer-links ul li a {
    font-size: 0.8rem;
  }

  .social-links {
    justify-content: center;
    gap: 0.75rem;
  }

  .social-links a {
    width: 32px;
    height: 32px;
    font-size: 0.8rem;
  }

  .copyright {
    padding: 0;
    font-size: 0.7rem;
  }

  .copyright p {
    margin: 0;
    line-height: 1.4;
  }
}

/* Tablet footer adjustments */
@media (min-width: 1024px) {
  .footer {
    padding: 1rem 0 1.25rem 0;
  }

  .footer .footer-top {
    padding-top: 1rem;
  }

  .footer-about .logo span {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--heading-color) !important;
  }

  .footer-about p {
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
  }

  .footer h4 {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--heading-color) !important;
    margin-bottom: 0.75rem;
  }

  .footer-links ul li {
    padding: 8px 0;
  }

  .footer-links ul li a {
    font-size: 0.9rem;
  }

  .social-links a {
    width: 35px;
    height: 35px;
    font-size: 0.875rem;
  }

  .copyright {
    padding: 0;
    font-size: 0.75rem;
  }
}

/* Desktop footer adjustments */
@media (min-width: 1024px) {
  .footer {
    padding: 0.25rem 0 1rem 0 !important;
  }

  .footer .footer-top {
    padding-top: 0 !important;
  }

  .footer-about .logo span {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--heading-color) !important;
  }

  .footer-about p {
    font-size: 0.9rem;
    margin-bottom: 0.5rem;
  }

  .footer h4 {
    font-size: 1rem !important;
    font-weight: 700 !important;
    color: var(--heading-color) !important;
    margin-bottom: 0.75rem;
  }

  .footer-links ul li {
    padding: 8px 0;
  }

  .footer-links ul li a {
    font-size: 0.95rem;
  }

  .social-links a {
    width: 35px;
    height: 35px;
    font-size: 0.875rem;
  }

  .copyright {
    padding: 0;
    font-size: 0.75rem;
  }
}

/* ========================================
   UTILITY CLASSES FOR RESPONSIVE DESIGN
   ======================================== */

/* Mobile-only utilities */
@media (max-width: 1023px) {
  .d-mobile-block {
    display: block !important;
  }

  .d-mobile-none {
    display: none !important;
  }

  .d-mobile-flex {
    display: flex !important;
  }

  .text-mobile-center {
    text-align: center !important;
  }

  .text-mobile-left {
    text-align: left !important;
  }

  .text-mobile-right {
    text-align: right !important;
  }

  .w-mobile-100 {
    width: 100% !important;
  }

  .h-mobile-auto {
    height: auto !important;
  }
}

/* Tablet and desktop utilities */
@media (min-width: 1024px) {
  .d-tablet-block {
    display: block !important;
  }

  .d-tablet-none {
    display: none !important;
  }

  .d-tablet-flex {
    display: flex !important;
  }

  .text-tablet-center {
    text-align: center !important;
  }

  .text-tablet-left {
    text-align: left !important;
  }

  .text-tablet-right {
    text-align: right !important;
  }
}

/* Desktop-only utilities */
@media (min-width: 1024px) {
  .d-desktop-block {
    display: block !important;
  }

  .d-desktop-none {
    display: none !important;
  }

  .d-desktop-flex {
    display: flex !important;
  }

  .text-desktop-center {
    text-align: center !important;
  }

  .text-desktop-left {
    text-align: left !important;
  }

  .text-desktop-right {
    text-align: right !important;
  }
}

/* ========================================
   ACCESSIBILITY IMPROVEMENTS
   ======================================== */

/* Focus indicators for better accessibility */
.btn:focus,
.form-control:focus,
.form-select:focus,
.nav-link:focus {
  outline: 2px solid var(--accent-color);
  outline-offset: 2px;
}

/* High contrast mode support */
@media (prefers-contrast: high) {
  .btn {
    border: 2px solid currentColor;
  }

  .form-control,
  .form-select {
    border: 2px solid currentColor;
  }
}

/* Reduced motion support */
@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}

/* ========================================
   PRINT STYLES
   ======================================== */

@media print {
  .header,
  .footer,
  .scroll-top,
  .mobile-nav-toggle,
  .btn-getstarted {
    display: none !important;
  }

  .container {
    margin-top: 0 !important;
    padding: 0 !important;
  }

  section,
  .section {
    padding: 1rem 0 !important;
    page-break-inside: avoid;
  }

  .hero {
    page-break-after: always;
  }

  h1, h2, h3, h4, h5, h6 {
    page-break-after: avoid;
  }

  p, li {
    orphans: 3;
    widows: 3;
  }
}

/* ========================================
   BROWSER COMPATIBILITY FIXES
   ======================================== */

/* Safari-specific fixes */
@supports (-webkit-touch-callout: none) {
  .form-control,
  .form-select {
    font-size: 16px; /* Prevent zoom on iOS Safari */
  }
}

/* Firefox-specific fixes */
@supports (-moz-appearance: none) {
  .btn {
    line-height: 1.2;
  }
}

/* Edge-specific fixes */
@supports (-ms-ime-align: auto) {
  .container {
    max-width: 100%;
  }
}
