/* Categories Page Styles */
.categories-page {
    min-height: 100vh;
    background: #f8fafc;
}

/* Hero Section */
.categories-hero {
    background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
    color: white;
    padding: 4rem 0 5rem;
    position: relative;
    overflow: hidden;
}

.hero-background {
    position: absolute;
    inset: 0;
    opacity: 0.1;
}

.hero-pattern {
    width: 100%;
    height: 100%;
    background-image: radial-gradient(circle at 25% 25%, rgba(255,255,255,0.2) 2px, transparent 2px),
                      radial-gradient(circle at 75% 75%, rgba(255,255,255,0.2) 2px, transparent 2px);
    background-size: 60px 60px;
    animation: float 25s linear infinite;
}

.hero-gradient {
    position: absolute;
    inset: 0;
    background: radial-gradient(ellipse at center, transparent 0%, rgba(0,0,0,0.1) 100%);
}

@keyframes float {
    0% { transform: translateX(0) translateY(0); }
    25% { transform: translateX(-10px) translateY(-15px); }
    50% { transform: translateX(10px) translateY(-10px); }
    75% { transform: translateX(-5px) translateY(-20px); }
    100% { transform: translateX(0) translateY(0); }
}

.categories-hero-content {
    position: relative;
    z-index: 2;
}

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

.hero-title {
    font-size: 3.5rem;
    font-weight: 800;
    margin-bottom: 1.5rem;
    line-height: 1.1;
    background: linear-gradient(135deg, #ffffff 0%, #f0f9ff 100%);
    -webkit-background-clip: text;
    -webkit-text-fill-color: transparent;
    background-clip: text;
}

.hero-description {
    font-size: 1.25rem;
    opacity: 0.9;
    margin-bottom: 2.5rem;
    line-height: 1.6;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.hero-stats {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 2rem;
    margin-bottom: 3rem;
    max-width: 800px;
    margin-left: auto;
    margin-right: auto;
}

.stat-item {
   display: flex;
   align-items: center;
   gap: 1rem;
   background: rgba(255, 255, 255, 0.1);
   padding: 1.5rem;
   border-radius: 16px;
   backdrop-filter: blur(10px);
   border: 1px solid rgba(255, 255, 255, 0.2);
   transition: all 0.3s ease;
}

.stat-item:hover {
   background: rgba(255, 255, 255, 0.15);
   transform: translateY(-2px);
}

.stat-icon {
   font-size: 2.5rem;
   opacity: 0.9;
}

.stat-info {
   flex: 1;
}

.stat-number {
   display: block;
   font-size: 2rem;
   font-weight: 700;
   margin-bottom: 0.25rem;
}

.stat-label {
   font-size: 0.875rem;
   opacity: 0.8;
   text-transform: uppercase;
   letter-spacing: 0.5px;
}

/* Hero Search */
.hero-search {
   background: rgba(255, 255, 255, 0.1);
   border-radius: 20px;
   padding: 2rem;
   backdrop-filter: blur(20px);
   border: 1px solid rgba(255, 255, 255, 0.2);
   box-shadow: 0 8px 32px rgba(0, 0, 0, 0.1);
}

.search-form {
  min-width: 100%;
}

.search-wrapper {
   display: grid;
   grid-template-columns: 1fr auto auto;
   gap: 1rem;
   align-items: center;
   min-width: inherit;
}

.search-input-group {
   position: relative;
   flex: 1;
}

.search-icon {
   position: absolute;
   left: 1.25rem;
   top: 50%;
   transform: translateY(-50%);
   opacity: 0.7;
   z-index: 2;
}

.search-input {
   width: 100%;
   padding: 1.25rem 1.25rem 1.25rem 3.5rem;
   border: 1px solid rgba(255, 255, 255, 0.3);
   border-radius: 16px;
   background: rgba(255, 255, 255, 0.95);
   color: #1f2937;
   font-size: 1rem;
   transition: all 0.3s ease;
   box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

.search-input::placeholder {
   color: #6b7280;
}

.search-input:focus {
   outline: none;
   background: white;
   border-color: rgba(255, 255, 255, 0.5);
   box-shadow: 0 0 0 3px rgba(255, 255, 255, 0.1);
}

.city-select {
   padding: 1.25rem 1rem;
   border: 1px solid rgba(255, 255, 255, 0.3);
   border-radius: 12px;
   background: rgba(255, 255, 255, 0.95);
   color: #1f2937;
   font-size: 0.875rem;
   min-width: 180px;
   box-shadow: 0 4px 6px rgba(0, 0, 0, 0.05);
}

.search-btn {
   padding: 1.25rem 2rem;
   background: linear-gradient(135deg, #ffffff 0%, #f8fafc 100%);
   color: #667eea;
   border: none;
   border-radius: 12px;
   font-weight: 600;
   display: flex;
   align-items: center;
   gap: 0.5rem;
   transition: all 0.3s ease;
   box-shadow: 0 4px 15px rgba(255, 255, 255, 0.2);
   white-space: nowrap;
}

.search-btn:hover {
   background: linear-gradient(135deg, #f8fafc 0%, #ffffff 100%);
   transform: translateY(-2px);
   box-shadow: 0 8px 25px rgba(255, 255, 255, 0.3);
}

/* Featured Categories */
.featured-categories {
   padding: 4rem 0;
   background: white;
}

.section-header {
   text-align: center;
   margin-bottom: 3rem;
}

.section-title {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 0.75rem;
   font-size: 2.5rem;
   font-weight: 700;
   color: #1f2937;
   margin-bottom: 1rem;
}

.title-icon {
   font-size: 2rem;
}

.section-subtitle {
   color: #6b7280;
   font-size: 1.125rem;
   max-width: 600px;
   margin: 0 auto;
}

.featured-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
   gap: 2rem;
}

.featured-category-card {
   background: white;
   border-radius: 24px;
   overflow: hidden;
   box-shadow: 0 8px 30px rgba(0, 0, 0, 0.08);
   transition: all 0.4s ease;
   border: 1px solid #e5e7eb;
   position: relative;
}

.featured-category-card:hover {
   transform: translateY(-8px);
   box-shadow: 0 20px 60px rgba(0, 0, 0, 0.15);
}

.card-background {
   position: absolute;
   inset: 0;
   opacity: 0.03;
   pointer-events: none;
}

.bg-pattern {
   width: 100%;
   height: 100%;
   background-image: radial-gradient(circle at 50% 50%, currentColor 1px, transparent 1px);
   background-size: 20px 20px;
}

.card-content {
   position: relative;
   z-index: 2;
   padding: 2rem;
}

.category-header {
   display: flex;
   align-items: flex-start;
   gap: 1.5rem;
   margin-bottom: 1.5rem;
}

.category-icon {
   font-size: 3rem;
   width: 80px;
   height: 80px;
   display: flex;
   align-items: center;
   justify-content: center;
   background: linear-gradient(135deg, #f8fafc 0%, #e5e7eb 100%);
   border-radius: 20px;
   flex-shrink: 0;
}

.category-info {
   flex: 1;
}

.category-name {
   font-size: 1.5rem;
   font-weight: 700;
   color: #1f2937;
   margin-bottom: 0.5rem;
}

.category-desc {
   color: #6b7280;
   line-height: 1.5;
   font-size: 0.875rem;
}

.category-stats {
   display: flex;
   gap: 2rem;
   margin-bottom: 1.5rem;
}

.stat {
   text-align: center;
}

.stat-value {
   display: block;
   font-size: 1.5rem;
   font-weight: 700;
   color: #1f2937;
   margin-bottom: 0.25rem;
}

.stat-label {
   font-size: 0.75rem;
   color: #6b7280;
   text-transform: uppercase;
   letter-spacing: 0.5px;
}

.category-preview {
   display: flex;
   gap: 0.5rem;
}

.preview-business {
   width: 60px;
   height: 60px;
   border-radius: 12px;
   overflow: hidden;
   border: 2px solid #f3f4f6;
}

.preview-business img {
   width: 100%;
   height: 100%;
   object-fit: cover;
}

.business-placeholder {
   width: 100%;
   height: 100%;
   display: flex;
   align-items: center;
   justify-content: center;
   background: #f3f4f6;
   font-size: 1.5rem;
   opacity: 0.7;
}

.preview-more {
   width: 60px;
   height: 60px;
   border-radius: 12px;
   background: #f3f4f6;
   display: flex;
   align-items: center;
   justify-content: center;
   font-size: 0.875rem;
   font-weight: 600;
   color: #6b7280;
}

.category-link {
   display: inline-flex;
   align-items: center;
   gap: 0.5rem;
   padding: 1rem 1.5rem;
   background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
   color: white;
   text-decoration: none;
   border-radius: 12px;
   font-weight: 600;
   transition: all 0.3s ease;
}

.category-link:hover {
   transform: translateX(4px);
   box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
}

/* Categories by Industry */
.categories-by-industry {
   padding: 4rem 0;
   background: #f8fafc;
}

.industry-section {
   margin-bottom: 3rem;
}

.industry-header {
   text-align: center;
   margin-bottom: 2rem;
}

.industry-title {
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 0.75rem;
   font-size: 2rem;
   font-weight: 700;
   color: #1f2937;
   margin-bottom: 0.5rem;
}

.industry-icon {
   font-size: 1.75rem;
}

.industry-desc {
   color: #6b7280;
   font-size: 1rem;
   max-width: 600px;
   margin: 0 auto;
}

.industry-categories {
   display: grid;
   grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
   gap: 1.5rem;
}

.category-item {
   position: relative;
}

.category-card {
   display: block;
   background: white;
   border-radius: 16px;
   padding: 1.5rem;
   text-decoration: none;
   color: inherit;
   border: 1px solid #e5e7eb;
   transition: all 0.3s ease;
   height: 100%;
}

.category-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
   border-color: #667eea;
}

.category-visual {
   display: flex;
   justify-content: space-between;
   align-items: flex-start;
   margin-bottom: 1rem;
}

.category-icon-bg {
   width: 60px;
   height: 60px;
   border-radius: 12px;
   background: linear-gradient(135deg, #f8fafc 0%, #e5e7eb 100%);
   display: flex;
   align-items: center;
   justify-content: center;
}

.category-icon {
   font-size: 1.75rem;
}

.trending-badge {
   display: flex;
   align-items: center;
   gap: 0.25rem;
   background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
   color: white;
   padding: 0.375rem 0.75rem;
   border-radius: 8px;
   font-size: 0.75rem;
   font-weight: 600;
}

.category-details {
   flex: 1;
}

.category-name {
   font-size: 1.125rem;
   font-weight: 700;
   color: #1f2937;
   margin-bottom: 0.75rem;
}

.category-meta {
   margin-bottom: 1rem;
}

.business-count {
   color: #6b7280;
   font-size: 0.875rem;
   font-weight: 500;
   display: block;
   margin-bottom: 0.5rem;
}

.top-cities {
   display: flex;
   align-items: center;
   gap: 0.375rem;
   color: #6b7280;
   font-size: 0.75rem;
}

.category-rating {
   display: flex;
   align-items: center;
   gap: 0.5rem;
}

.rating-stars {
   display: flex;
   gap: 0.125rem;
}

.rating-text {
   font-weight: 600;
   color: #374151;
   font-size: 0.875rem;
}

/* Quick Stats */
.quick-stats {
   padding: 4rem 0;
   background: white;
}

.stats-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
   gap: 2rem;
}

.stat-card {
   background: white;
   border-radius: 20px;
   padding: 2rem;
   border: 1px solid #e5e7eb;
   transition: all 0.3s ease;
   text-align: center;
}

.stat-card:hover {
   transform: translateY(-4px);
   box-shadow: 0 12px 40px rgba(0, 0, 0, 0.1);
}

.stat-card.highlight {
   background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
   color: white;
   border-color: transparent;
}

.stat-card .stat-icon {
   font-size: 3rem;
   margin-bottom: 1rem;
   display: block;
}

.stat-card h3 {
   font-size: 1rem;
   font-weight: 600;
   margin-bottom: 0.75rem;
   opacity: 0.8;
}

.stat-card .stat-value {
   font-size: 1.5rem;
   font-weight: 700;
   margin-bottom: 0.5rem;
   display: block;
}

.stat-card .stat-detail {
   font-size: 0.875rem;
   opacity: 0.7;
}

/* Business CTA */
.business-cta {
   padding: 5rem 0;
   background: linear-gradient(135deg, #1f2937 0%, #374151 100%);
   color: white;
   position: relative;
   overflow: hidden;
}

.cta-background {
   position: absolute;
   inset: 0;
   opacity: 0.05;
}

.cta-pattern {
   width: 100%;
   height: 100%;
   background-image: radial-gradient(circle at 25% 25%, currentColor 2px, transparent 2px);
   background-size: 50px 50px;
   animation: float 30s linear infinite reverse;
}

.cta-gradient {
   position: absolute;
   inset: 0;
   background: radial-gradient(ellipse at center, transparent 0%, rgba(0,0,0,0.2) 100%);
}

.cta-content {
   position: relative;
   z-index: 2;
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 4rem;
   align-items: center;
}

.cta-badge {
   display: inline-flex;
   align-items: center;
   gap: 0.5rem;
   background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
   color: white;
   padding: 0.75rem 1.5rem;
   border-radius: 50px;
   font-size: 0.875rem;
   font-weight: 600;
   margin-bottom: 2rem;
}

.cta-title {
   font-size: 3rem;
   font-weight: 800;
   line-height: 1.1;
   margin-bottom: 1.5rem;
}

.highlight {
   background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
   -webkit-background-clip: text;
   -webkit-text-fill-color: transparent;
   background-clip: text;
}

.cta-description {
   font-size: 1.125rem;
   opacity: 0.9;
   line-height: 1.6;
   margin-bottom: 2rem;
}

.benefits-grid {
   display: grid;
   grid-template-columns: 1fr 1fr;
   gap: 1.5rem;
   margin-bottom: 3rem;
}

.benefit-item {
   display: flex;
   align-items: flex-start;
   gap: 1rem;
   background: rgba(255, 255, 255, 0.05);
   padding: 1.5rem;
   border-radius: 12px;
   border: 1px solid rgba(255, 255, 255, 0.1);
}

.benefit-icon {
   font-size: 1.5rem;
   flex-shrink: 0;
}

.benefit-text {
   flex: 1;
}

.benefit-text strong {
   display: block;
   font-weight: 700;
   margin-bottom: 0.25rem;
}

.benefit-text span {
   opacity: 0.8;
   font-size: 0.875rem;
}

.social-proof {
   margin-bottom: 2rem;
}

.proof-stats {
   display: flex;
   gap: 2rem;
   margin-bottom: 2rem;
}

.proof-item {
   text-align: center;
}

.proof-number {
   display: block;
   font-size: 1.75rem;
   font-weight: 700;
   color: #fbbf24;
   margin-bottom: 0.25rem;
}

.proof-label {
   font-size: 0.875rem;
   opacity: 0.8;
}

.testimonial {
   background: rgba(255, 255, 255, 0.1);
   padding: 1.5rem;
   border-radius: 12px;
   border-left: 4px solid #fbbf24;
}

.testimonial p {
   font-style: italic;
   margin-bottom: 0.75rem;
   line-height: 1.5;
}

.testimonial cite {
   font-size: 0.875rem;
   opacity: 0.8;
   font-style: normal;
}

/* CTA Form */
.cta-action {
   display: flex;
   flex-direction: column;
   gap: 2rem;
}

.cta-form {
   background: rgba(255, 255, 255, 0.1);
   border-radius: 20px;
   padding: 2rem;
   backdrop-filter: blur(20px);
   border: 1px solid rgba(255, 255, 255, 0.2);
}

.cta-form h3 {
   font-size: 1.5rem;
   font-weight: 700;
   margin-bottom: 0.5rem;
   text-align: center;
}

.cta-form > p {
   text-align: center;
   opacity: 0.8;
   margin-bottom: 2rem;
}

.quick-signup {
   display: flex;
   flex-direction: column;
   gap: 1rem;
}

.form-group {
   position: relative;
}

.form-group input,
.form-group select {
   width: 100%;
   padding: 1rem 1.25rem;
   border: 1px solid rgba(255, 255, 255, 0.3);
   border-radius: 12px;
   background: rgba(255, 255, 255, 0.9);
   color: #1f2937;
   font-size: 0.875rem;
   transition: all 0.3s ease;
}

.form-group input::placeholder {
   color: #6b7280;
}

.form-group input:focus,
.form-group select:focus {
   outline: none;
   background: white;
   border-color: #fbbf24;
   box-shadow: 0 0 0 3px rgba(251, 191, 36, 0.1);
}

.signup-btn {
   padding: 1.25rem 2rem;
   background: linear-gradient(135deg, #fbbf24 0%, #f59e0b 100%);
   color: #1f2937;
   border: none;
   border-radius: 12px;
   font-weight: 700;
   font-size: 1rem;
   display: flex;
   align-items: center;
   justify-content: center;
   gap: 0.5rem;
   transition: all 0.3s ease;
   cursor: pointer;
}

.signup-btn:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 25px rgba(251, 191, 36, 0.3);
}

.cta-guarantees {
   display: flex;
   justify-content: space-between;
   margin-top: 1.5rem;
   padding-top: 1.5rem;
   border-top: 1px solid rgba(255, 255, 255, 0.2);
}

.guarantee {
   display: flex;
   align-items: center;
   gap: 0.375rem;
   font-size: 0.75rem;
   opacity: 0.8;
}

/* CTA Visual */
.cta-visual {
   display: flex;
   align-items: center;
   justify-content: center;
}

.success-preview {
   background: rgba(255, 255, 255, 0.1);
   border-radius: 16px;
   padding: 2rem;
   backdrop-filter: blur(20px);
   border: 1px solid rgba(255, 255, 255, 0.2);
   width: 100%;
   max-width: 400px;
}

.preview-header {
   text-align: center;
   margin-bottom: 1.5rem;
}

.preview-title {
   font-size: 0.875rem;
   opacity: 0.8;
}

.preview-mockup {
   background: white;
   border-radius: 12px;
   padding: 1.5rem;
   color: #1f2937;
}

.mockup-search {
   margin-bottom: 1.5rem;
}

.search-result {
   border: 1px solid #e5e7eb;
   border-radius: 8px;
   padding: 1rem;
   position: relative;
}

.search-result.featured {
   border-color: #fbbf24;
   background: #fffbeb;
}

.result-badge {
   position: absolute;
   top: -8px;
   left: 12px;
   background: #fbbf24;
   color: white;
   padding: 0.25rem 0.75rem;
   border-radius: 4px;
   font-size: 0.75rem;
   font-weight: 600;
}

.result-content h4 {
   font-weight: 700;
   margin-bottom: 0.5rem;
}

.result-rating {
   margin-bottom: 0.25rem;
   font-size: 0.875rem;
}

.result-content p {
   color: #059669;
   font-size: 0.875rem;
   margin: 0;
}

.mockup-stats {
   display: flex;
   gap: 1rem;
}

.mockup-stats .stat {
   display: flex;
   align-items: center;
   gap: 0.5rem;
   flex: 1;
   background: #f8fafc;
   padding: 0.75rem;
   border-radius: 8px;
}

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

.stat-value {
   font-weight: 700;
   font-size: 0.875rem;
}

.stat-label {
   font-size: 0.75rem;
   color: white;
}

/* City Categories */
.city-categories {
   padding: 4rem 0;
   background: white;
}

.city-tabs {
   display: flex;
   justify-content: center;
   gap: 0.5rem;
   margin-bottom: 3rem;
   flex-wrap: wrap;
}

.city-tab {
   display: flex;
   align-items: center;
   gap: 0.5rem;
   padding: 0.75rem 1.5rem;
   background: white;
   border: 1px solid #e5e7eb;
   border-radius: 12px;
   color: #6b7280;
   font-weight: 500;
   cursor: pointer;
   transition: all 0.3s ease;
}

.city-tab:hover,
.city-tab.active {
   background: #667eea;
   color: white;
   border-color: #667eea;
}

.city-count {
   background: rgba(255, 255, 255, 0.2);
   padding: 0.25rem 0.5rem;
   border-radius: 6px;
   font-size: 0.75rem;
   font-weight: 600;
}

.city-tab.active .city-count {
   background: rgba(255, 255, 255, 0.3);
}

.city-content {
   position: relative;
}

.city-panel {
   display: none;
}

.city-panel.active {
   display: block;
}

.city-categories-grid {
   display: grid;
   grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
   gap: 1.5rem;
   margin-bottom: 2rem;
}

.city-category-card {
   display: flex;
   align-items: center;
   gap: 1rem;
   padding: 1.5rem;
   background: white;
   border: 1px solid #e5e7eb;
   border-radius: 12px;
   text-decoration: none;
   color: inherit;
   transition: all 0.3s ease;
}

.city-category-card:hover {
   transform: translateY(-2px);
   box-shadow: 0 8px 25px rgba(0, 0, 0, 0.1);
   border-color: #667eea;
}

.city-category-card .category-icon {
   font-size: 2rem;
   width: 60px;
   height: 60px;
   display: flex;
   align-items: center;
   justify-content: center;
   background: #f8fafc;
   border-radius: 12px;
}

.city-category-card .category-info {
   flex: 1;
}

.city-category-card h4 {
   font-size: 1.125rem;
   font-weight: 600;
   margin-bottom: 0.25rem;
   color: #1f2937;
}

.city-category-card span {
   color: #6b7280;
   font-size: 0.875rem;
}

.category-arrow {
   color: #6b7280;
   transition: all 0.3s ease;
}

.city-category-card:hover .category-arrow {
   color: #667eea;
   transform: translateX(4px);
}

.city-action {
   text-align: center;
   padding-top: 2rem;
   border-top: 1px solid #e5e7eb;
}

/* Responsive Design */
@media (max-width: 1024px) {
   .hero-title {
       font-size: 2.5rem;
   }
   
   .search-wrapper {
       grid-template-columns: 1fr;
       gap: 1rem;
   }
   
   .featured-grid {
       grid-template-columns: 1fr;
   }
   
   .cta-content {
       grid-template-columns: 1fr;
       gap: 3rem;
   }
   
   .benefits-grid {
       grid-template-columns: 1fr;
   }
   
   .proof-stats {
       justify-content: center;
       flex-wrap: wrap;
   }
}

@media (max-width: 768px) {
   .categories-hero {
       padding: 3rem 0 4rem;
   }
   
   .hero-title {
       font-size: 2rem;
   }
   
   .hero-description {
       font-size: 1rem;
   }
   
   .hero-stats {
       grid-template-columns: repeat(2, 1fr);
       gap: 1rem;
   }
   
   .stat-item {
       padding: 1rem;
       flex-direction: column;
       text-align: center;
       gap: 0.5rem;
   }
   
   .stat-icon {
       font-size: 2rem;
   }
   
   .stat-number {
       font-size: 1.5rem;
   }
   
   .hero-search {
       padding: 1.5rem;
   }
   
   .section-title {
       font-size: 2rem;
   }
   
   .featured-category-card {
       margin: 0 1rem;
   }
   
   .category-header {
       flex-direction: column;
       text-align: center;
       gap: 1rem;
   }
   
   .category-stats {
       justify-content: center;
   }
   
   .industry-categories {
       grid-template-columns: 1fr;
   }
   
   .stats-grid {
       grid-template-columns: 1fr;
   }
   
   .cta-title {
       font-size: 2rem;
   }
   
   .cta-form {
       padding: 1.5rem;
   }
   
   .cta-guarantees {
       flex-direction: column;
       gap: 0.75rem;
       text-align: center;
   }
   
   .city-tabs {
       gap: 0.25rem;
   }
   
   .city-tab {
       padding: 0.5rem 1rem;
       font-size: 0.875rem;
   }
   
   .city-categories-grid {
       grid-template-columns: 1fr;
   }
   
   .city-category-card {
       padding: 1rem;
   }
}

@media (max-width: 480px) {
   .hero-stats {
       grid-template-columns: 1fr;
   }
   
   .stat-item {
       padding: 0.75rem;
   }
   
   .search-input,
   .city-select,
   .search-btn {
       padding: 1rem;
   }
   
   .featured-category-card {
       margin: 0;
   }
   
   .card-content {
       padding: 1.5rem;
   }
   
   .category-icon {
       width: 60px;
       height: 60px;
       font-size: 2rem;
   }
   
   .category-name {
       font-size: 1.25rem;
   }
   
   .category-stats {
       gap: 1rem;
   }
   
   .benefit-item {
       padding: 1rem;
       flex-direction: column;
       text-align: center;
       gap: 0.75rem;
   }
   
   .mockup-stats {
       flex-direction: column;
   }
}

/* Animation Classes */
@keyframes fadeInUp {
   from {
       opacity: 0;
       transform: translateY(30px);
   }
   to {
       opacity: 1;
       transform: translateY(0);
   }
}

@keyframes slideInLeft {
   from {
       opacity: 0;
       transform: translateX(-30px);
   }
   to {
       opacity: 1;
       transform: translateX(0);
   }
}

@keyframes pulse {
   0%, 100% {
       transform: scale(1);
   }
   50% {
       transform: scale(1.05);
   }
}

.animate-on-scroll {
   opacity: 0;
   transform: translateY(30px);
   transition: all 0.6s ease;
}

.animate-on-scroll.in-view {
   opacity: 1;
   transform: translateY(0);
}

/* Loading States */
.loading {
   opacity: 0.5;
   pointer-events: none;
}

.loading::after {
   content: '';
   position: absolute;
   inset: 0;
   background: rgba(255, 255, 255, 0.8);
   display: flex;
   align-items: center;
   justify-content: center;
}

/* Success States */
.success-message {
   background: #d1fae5;
   color: #065f46;
   padding: 1rem;
   border-radius: 8px;
   border: 1px solid #a7f3d0;
   display: flex;
   align-items: center;
   gap: 0.5rem;
   margin-top: 1rem;
}

.error-message {
   background: #fee2e2;
   color: #991b1b;
   padding: 1rem;
   border-radius: 8px;
   border: 1px solid #fecaca;
   display: flex;
   align-items: center;
   gap: 0.5rem;
   margin-top: 1rem;
}

/* Utility Classes */
.text-center { text-align: center; }
.text-left { text-align: left; }
.text-right { text-align: right; }

.mb-0 { margin-bottom: 0; }
.mb-1 { margin-bottom: 0.25rem; }
.mb-2 { margin-bottom: 0.5rem; }
.mb-3 { margin-bottom: 0.75rem; }
.mb-4 { margin-bottom: 1rem; }

.hidden { display: none; }
.visible { display: block; }

.fade-in {
   animation: fadeInUp 0.6s ease forwards;
}

.slide-in {
   animation: slideInLeft 0.6s ease forwards;
}

.pulse-animation {
   animation: pulse 2s infinite;
}


/* Form Validation Styles */
.form-group input.error,
.form-group select.error {
    border-color: #dc2626;
    background: #fef2f2;
}

.field-error {
    color: #dc2626;
    font-size: 0.75rem;
    margin-top: 0.25rem;
    display: flex;
    align-items: center;
    gap: 0.25rem;
}

.field-error::before {
    content: '⚠️';
    font-size: 0.75rem;
}

/* Button Loading State */
.signup-btn:disabled {
    opacity: 0.7;
    cursor: not-allowed;
}

.signup-btn:disabled:hover {
    transform: none;
    box-shadow: none;
}


.hidden-initially {
    display: none;
}

.show-more-container {
    text-align: center;
    margin-top: 1.5rem;
}

.show-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: transparent;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    color: #6b7280;
    font-weight: 500;
    cursor: pointer;
    transition: all 0.3s ease;
}

.show-more-btn:hover {
    background: #f9fafb;
    border-color: #667eea;
    color: #667eea;
}

.view-more-card {
    background: linear-gradient(135deg, #f8fafc 0%, #e5e7eb 100%);
    border: 2px dashed #d1d5db;
    border-radius: 16px;
    padding: 2rem;
    text-align: center;
    transition: all 0.3s ease;
    height: 100%;
    display: flex;
    align-items: center;
    justify-content: center;
}

.view-more-card:hover {
    border-color: #667eea;
    background: linear-gradient(135deg, #f0f9ff 0%, #dbeafe 100%);
}

.more-content {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
}

.more-icon {
    font-size: 2rem;
    color: #6b7280;
    transition: all 0.3s ease;
}

.view-more-card:hover .more-icon {
    color: #667eea;
    transform: scale(1.1);
}

.more-content h4 {
    font-size: 1.125rem;
    font-weight: 600;
    color: #1f2937;
    margin: 0;
}

.more-content p {
    color: #6b7280;
    margin: 0;
    font-size: 0.875rem;
}

.view-more-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.75rem 1.5rem;
    background: #667eea;
    color: white;
    text-decoration: none;
    border-radius: 8px;
    font-weight: 500;
    font-size: 0.875rem;
    transition: all 0.3s ease;
}

.view-more-btn:hover {
    background: #5a67d8;
    transform: translateY(-1px);
}