/* ==========================================================================
   CSS Variables & Design System
   ========================================================================== */
:root {
   --primary: #2563EB;
   /* Trustworthy, vibrant blue */
   --primary-hover: #1D4ED8;
   --secondary: #0F172A;
   /* Deep slate, almost black */
   --accent: #F59E0B;
   /* Star color / highlight */

   --bg-light: #F8FAFC;
   --bg-white: #FFFFFF;
   --text-main: #334155;
   --text-light: #94A3B8;

   --radius-sm: 8px;
   --radius-md: 12px;
   --radius-lg: 24px;

   --shadow-sm: 0 4px 6px -1px rgba(0, 0, 0, 0.05);
   --shadow-md: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
   --shadow-lg: 0 20px 25px -5px rgba(0, 0, 0, 0.1);

   --transition: all 0.3s cubic-bezier(0.4, 0, 0.2, 1);
}

/* ==========================================================================
   Base & Reset
   ========================================================================== */
* {
   margin: 0;
   padding: 0;
   box-sizing: border-box;
}

html {
   scroll-behavior: smooth;
}

body {
   font-family: 'Inter', sans-serif;
   color: var(--text-main);
   line-height: 1.6;
   background-color: var(--bg-light);
   overflow-x: hidden;
}

h1,
h2,
h3,
h4,
h5,
h6 {
   font-family: 'Outfit', sans-serif;
   color: var(--secondary);
   font-weight: 700;
   line-height: 1.2;
}

a {
   text-decoration: none;
   color: var(--primary);
   transition: var(--transition);
}

img {
   max-width: 100%;
   display: block;
   border-radius: var(--radius-sm);
}

ul {
   list-style: none;
}

.container {
   width: 100%;
   max-width: 1200px;
   margin: 0 auto;
   padding: 0 20px;
}

.section {
   padding: 80px 0;
}

.bg-dark {
   background-color: var(--secondary);
   color: var(--bg-white);
}

.bg-dark h2,
.bg-dark p.subtitle {
   color: var(--bg-white);
}

.bg-gray {
   background-color: #E2E8F0;
}

.center {
   text-align: center;
}

/* ==========================================================================
   Typography Utilities
   ========================================================================== */
.section-title {
   font-size: 2.5rem;
   margin-bottom: 16px;
   position: relative;
}

.subtitle {
   font-size: 1.125rem;
   color: var(--text-light);
   margin-bottom: 48px;
   max-width: 600px;
   margin-left: auto;
   margin-right: auto;
}

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

/* ==========================================================================
   Buttons
   ========================================================================== */
.btn {
   display: inline-block;
   padding: 12px 28px;
   border-radius: var(--radius-md);
   font-weight: 600;
   font-family: 'Outfit', sans-serif;
   cursor: pointer;
   transition: var(--transition);
   border: 2px solid transparent;
}

.btn-primary {
   background: var(--primary);
   color: white;
   box-shadow: var(--shadow-md);
}

.btn-primary:hover {
   background: var(--primary-hover);
   transform: translateY(-2px);
   box-shadow: var(--shadow-lg);
}

.btn-secondary {
   background: white;
   color: var(--secondary);
   box-shadow: var(--shadow-md);
}

.btn-secondary:hover {
   background: #F1F5F9;
   transform: translateY(-2px);
}

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

.btn-outline:hover {
   background: var(--primary);
   color: white;
}

.btn-outline.light {
   border-color: white;
   color: white;
}

.btn-outline.light:hover {
   background: white;
   color: var(--secondary);
}

.btn-large {
   padding: 16px 36px;
   font-size: 1.125rem;
}

/* ==========================================================================
   Navigation
   ========================================================================== */
.navbar {
   position: fixed;
   top: 0;
   left: 0;
   width: 100%;
   background: rgba(255, 255, 255, 0.95);
   backdrop-filter: blur(10px);
   box-shadow: var(--shadow-sm);
   z-index: 1000;
   padding: 15px 0;
   transition: var(--transition);
   border-bottom: 1px solid rgba(0, 0, 0, 0.05);
}

.nav-content {
   display: flex;
   justify-content: space-between;
   align-items: center;
}

.logo {
   display: flex;
   align-items: center;
}

.nav-logo {
   max-height: 120px;
   width: auto;
   margin-right: 15px;
}

.nav-links {
   display: flex;
   gap: 30px;
}

.desktop-link {
   font-weight: 600;
   font-family: 'Outfit', sans-serif;
   color: var(--secondary);
   font-size: 1.125rem;
   transition: var(--transition);
}

.desktop-link:hover {
   color: var(--primary);
}

/* Mobile Menu Toggle */
.menu-toggle {
   display: none;
   flex-direction: column;
   gap: 5px;
   background: none;
   border: none;
   cursor: pointer;
   z-index: 1001;
}

.menu-toggle span {
   display: block;
   width: 25px;
   height: 3px;
   background-color: var(--secondary);
   transition: var(--transition);
   border-radius: 3px;
}

.menu-toggle.active span:nth-child(1) {
   transform: translateY(8px) rotate(45deg);
}

.menu-toggle.active span:nth-child(2) {
   opacity: 0;
}

.menu-toggle.active span:nth-child(3) {
   transform: translateY(-8px) rotate(-45deg);
}

.mobile-menu {
   display: none;
   position: absolute;
   top: 100%;
   left: 0;
   width: 100%;
   background: white;
   padding: 20px;
   box-shadow: var(--shadow-md);
   border-top: 1px solid #eee;
   flex-direction: column;
   gap: 15px;
}

.mobile-menu.active {
   display: flex;
   animation: slideDown 0.3s ease forwards;
}

.mobile-link {
   font-weight: 600;
   font-family: 'Outfit', sans-serif;
   color: var(--secondary);
   font-size: 1.125rem;
   padding: 10px 0;
   border-bottom: 1px solid #f1f5f9;
}

@keyframes slideDown {
   from {
      opacity: 0;
      transform: translateY(-10px);
   }

   to {
      opacity: 1;
      transform: translateY(0);
   }
}

/* ==========================================================================
   Hero Section
   ========================================================================== */
.hero {
   position: relative;
   min-height: 90vh;
   display: flex;
   align-items: center;
   background: url('assets/gallery1.webp') center/cover no-repeat;
   padding-top: 80px;
}

.hero-overlay {
   position: absolute;
   top: 0;
   left: 0;
   width: 100%;
   height: 100%;
   background: linear-gradient(to right, rgba(15, 23, 42, 0.95) 0%, rgba(15, 23, 42, 0.6) 100%);
}

.hero-content {
   position: relative;
   z-index: 2;
   max-width: 800px;
   color: white;
}

.hero h1 {
   font-size: clamp(1.8rem, 4.5vw, 4.5rem);
   color: white;
   margin-bottom: 20px;
   letter-spacing: -1px;
}

.hero p {
   font-size: clamp(1.125rem, 2vw, 1.35rem);
   margin-bottom: 40px;
   color: #E2E8F0;
   opacity: 0.9;
}

.hero-buttons {
   display: flex;
   gap: 16px;
   margin-bottom: 60px;
   flex-wrap: wrap;
}

.rating-badge {
   display: inline-flex;
   align-items: center;
   gap: 10px;
   background: rgba(255, 255, 255, 0.1);
   padding: 12px 24px;
   border-radius: 50px;
   backdrop-filter: blur(5px);
   border: 1px solid rgba(255, 255, 255, 0.2);
}

.stars {
   color: var(--accent);
   font-size: 1.25rem;
   font-family: sans-serif;
}

/* Animations */
.animate-up {
   opacity: 0;
   transform: translateY(30px);
   animation: fadeUp 0.8s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.delay-1 {
   animation-delay: 0.2s;
}

.delay-2 {
   animation-delay: 0.4s;
}

.delay-3 {
   animation-delay: 0.6s;
}

@keyframes fadeUp {
   to {
      opacity: 1;
      transform: translateY(0);
   }
}

/* ==========================================================================
   About Section
   ========================================================================== */
.about-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 60px;
   align-items: center;
}

.about-text p {
   margin-bottom: 20px;
   font-size: 1.125rem;
   color: var(--text-main);
}

.about-image-wrapper {
   position: relative;
   border-radius: var(--radius-lg);
   overflow: hidden;
}

.about-image {
   border-radius: var(--radius-lg);
   box-shadow: var(--shadow-lg);
   transition: var(--transition);
   width: 100%;
   height: auto;
}

.shadow-hover:hover {
   transform: translateY(-5px);
   box-shadow: 0 25px 30px -5px rgba(0, 0, 0, 0.15);
}

/* ==========================================================================
   Reviews Section
   ========================================================================== */
.reviews-carousel {
   display: flex;
   overflow-x: auto;
   scroll-snap-type: x mandatory;
   gap: 30px;
   padding-bottom: 20px;
   margin-bottom: 40px;
   scrollbar-width: thin;
   scrollbar-color: rgba(255, 255, 255, 0.2) transparent;
}

.reviews-carousel::-webkit-scrollbar {
   height: 8px;
}

.reviews-carousel::-webkit-scrollbar-thumb {
   background: rgba(255, 255, 255, 0.2);
   border-radius: 4px;
}

.review-card {
   min-width: 320px;
   max-width: 380px;
   scroll-snap-align: start;
   flex: 0 0 auto;
   background: rgba(255, 255, 255, 0.05);
   padding: 30px;
   border-radius: var(--radius-md);
   border: 1px solid rgba(255, 255, 255, 0.1);
   display: flex;
   flex-direction: column;
}

.review-text {
   font-size: 1.05rem;
   font-style: italic;
   margin: 15px 0;
   color: #E2E8F0;
   flex-grow: 1;
}

.reviewer {
   color: var(--accent);
   font-weight: 600;
   font-size: 0.95rem;
}

/* ==========================================================================
   Gallery Section
   ========================================================================== */
.gallery-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
   gap: 30px;
}

.gallery-item {
   position: relative;
   border-radius: var(--radius-md);
   overflow: hidden;
}

.gallery-caption {
   position: absolute;
   bottom: 20px;
   left: 20px;
   background: rgba(15, 23, 42, 0.85);
   color: white;
   padding: 8px 16px;
   border-radius: var(--radius-sm);
   font-weight: 600;
   font-family: 'Outfit', sans-serif;
   letter-spacing: 1px;
   backdrop-filter: blur(4px);
   text-transform: uppercase;
   z-index: 5;
}

.gallery-img {
   width: 100%;
   height: 300px;
   object-fit: cover;
   border-radius: var(--radius-md);
   transition: var(--transition);
   cursor: pointer;
}

.zoom-hover:hover {
   transform: scale(1.03);
   box-shadow: var(--shadow-md);
   z-index: 2;
}

/* ==========================================================================
   Towing Section
   ========================================================================== */
.towing-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 40px;
   margin-top: 40px;
}

/* ==========================================================================
   Contact / Location
   ========================================================================== */
.contact-grid {
   display: grid;
   grid-template-columns: 1fr 2fr;
   gap: 40px;
}

.card {
   background: white;
   padding: 40px;
   border-radius: var(--radius-lg);
   box-shadow: var(--shadow-md);
}

.info-block {
   border-bottom: 1px solid #E2E8F0;
   padding-bottom: 20px;
   margin-bottom: 20px;
}

.info-label {
   font-size: 0.9rem;
   color: var(--text-light);
   text-transform: uppercase;
   letter-spacing: 1px;
   margin-bottom: 8px;
}

.info-text {
   font-size: 1.125rem;
   font-weight: 500;
}

.phone-link {
   color: var(--primary);
   font-size: 1.5rem;
   font-weight: 700;
}

.hours-list li {
   display: flex;
   justify-content: space-between;
   margin-bottom: 8px;
   border-bottom: 1px dashed #E2E8F0;
   padding-bottom: 4px;
}

.contact-map {
   border-radius: var(--radius-lg);
   overflow: hidden;
   min-height: 400px;
   box-shadow: var(--shadow-md);
}

/* ==========================================================================
   Footer
   ========================================================================== */
.footer {
   padding: 60px 0 30px;
   border-top: 1px solid rgba(255, 255, 255, 0.1);
}

.footer-grid {
   display: grid;
   grid-template-columns: 2fr 1fr 1fr 1.2fr;
   gap: 40px;
}

.footer-logo {
   max-height: 120px;
   width: auto;
}

.footer-brand h3 {
   font-size: 1.5rem;
   color: white;
   margin-bottom: 10px;
}

.footer-brand p {
   color: #94A3B8;
   max-width: 400px;
}

.footer-links h4 {
   color: white;
   margin-bottom: 20px;
   font-size: 1.125rem;
}

.footer-links ul li {
   color: #94A3B8;
   margin-bottom: 10px;
   font-size: 0.95rem;
}

.footer-copyright {
   margin-top: 50px;
   border-top: 1px solid rgba(255, 255, 255, 0.1);
   padding-top: 20px;
   color: #64748B;
   font-size: 0.875rem;
   text-align: center;
}

/* ==========================================================================
   Media Queries
   ========================================================================== */
@media (max-width: 992px) {
   .about-grid {
      grid-template-columns: 1fr;
      gap: 40px;
   }

   .contact-grid, .towing-grid {
      grid-template-columns: 1fr;
   }

   .contact-map {
      min-height: 300px;
   }
}

@media (max-width: 768px) {
   .hide-mobile {
      display: none;
   }

   .menu-toggle {
      display: flex;
   }

   .hero-buttons {
      flex-direction: column;
      width: 100%;
   }

   .hero-buttons .btn {
      width: 100%;
      text-align: center;
   }

   .section {
      padding: 50px 0;
   }

   .card {
      padding: 25px;
   }

   .footer-grid {
      grid-template-columns: 1fr;
      gap: 30px;
   }
}