:root {
    --primary: #0d9488;
    --primary-dark: #0f766e;
    --primary-light: #14b8a6;
    --secondary: #6366f1;
    --accent: #f59e0b;
    --dark: #0f172a;
    --glass: rgba(255,255,255,0.08);
}

* { font-family: 'Inter', -apple-system, sans-serif; }
body { background: #fafbfc; }
section { padding-top: 1rem; padding-bottom: 1rem; }
.section-spacer { padding-top: 3rem; padding-bottom: 3rem; }

/* NAVBAR */
.navbar { backdrop-filter: blur(16px); background: rgba(255,255,255,0.92) !important; }
.navbar-brand span { background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; font-weight: 800; font-size: 1.2rem; }
.btn-nav-cta { background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white !important; border: none; padding: 0.5rem 1.5rem; border-radius: 50px; font-weight: 600; transition: all 0.3s; box-shadow: 0 4px 15px rgba(13,148,136,0.3); }
.btn-nav-cta:hover { transform: translateY(-2px); box-shadow: 0 6px 20px rgba(13,148,136,0.4); }
@keyframes pulse { 0%,100%{box-shadow:0 0 0 0 rgba(13,148,136,0.4)} 50%{box-shadow:0 0 0 10px rgba(13,148,136,0)} }
.btn-nav-cta { animation: pulse 2.5s infinite; }

/* HERO */
.hero-section {
    background: linear-gradient(135deg, #0f172a 0%, #1e293b 30%, var(--primary-dark) 70%, var(--primary) 100%);
    min-height: 520px;
    position: relative;
    overflow: hidden;
}
.hero-section::before {
    content: '';
    position: absolute;
    top: -50%;
    right: -20%;
    width: 600px;
    height: 600px;
    background: radial-gradient(circle, rgba(99,102,241,0.15) 0%, transparent 70%);
    border-radius: 50%;
}
.hero-section::after {
    content: '';
    position: absolute;
    bottom: -30%;
    left: -10%;
    width: 400px;
    height: 400px;
    background: radial-gradient(circle, rgba(13,148,136,0.2) 0%, transparent 70%);
    border-radius: 50%;
}
.hero-content { position: relative; z-index: 2; }
.hero-badge { background: rgba(255,255,255,0.1); backdrop-filter: blur(10px); border: 1px solid rgba(255,255,255,0.15); }
.hero-search { background: rgba(255,255,255,0.95); backdrop-filter: blur(10px); border: 2px solid rgba(255,255,255,0.3); transition: all 0.3s; }
.hero-search:focus-within { border-color: var(--primary); box-shadow: 0 0 0 4px rgba(13,148,136,0.15); }

/* TRUST BAR */
.trust-bar { background: linear-gradient(135deg, #f0fdfa, #e0f2fe); border-bottom: 1px solid #e2e8f0; }
.trust-bar-item { display: flex; align-items: center; gap: 0.5rem; font-size: 0.85rem; font-weight: 600; color: var(--primary-dark); }

/* TRUST BADGE */
.trust-card { border: none; background: linear-gradient(135deg, #fff 0%, #f0fdfa 100%); position: relative; overflow: hidden; }
.trust-card::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--primary), var(--secondary)); }
.trust-score-badge { background: linear-gradient(135deg, var(--accent), #f97316); }

/* CTA SECTION */
.cta-section {
    background: linear-gradient(135deg, var(--primary-dark), var(--primary), var(--secondary));
    position: relative;
    overflow: hidden;
}
.cta-section::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0; bottom: 0;
    background: url("data:image/svg+xml,%3Csvg width='60' height='60' viewBox='0 0 60 60' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M30 0 L60 30 L30 60 L0 30 Z' fill='none' stroke='rgba(255,255,255,0.05)' stroke-width='1'/%3E%3C/svg%3E");
    background-size: 60px 60px;
}
.cta-content { position: relative; z-index: 2; }
.btn-cta-main { background: white; color: var(--primary-dark); font-weight: 700; padding: 1rem 2.5rem; border-radius: 50px; font-size: 1.15rem; border: none; transition: all 0.3s; box-shadow: 0 8px 30px rgba(0,0,0,0.25); letter-spacing: 0.01em; }
.btn-cta-main:hover { transform: translateY(-3px) scale(1.03); box-shadow: 0 14px 45px rgba(0,0,0,0.35); color: var(--primary-dark); }

/* STAT CARDS */
.stat-card-v2 {
    border: none;
    background: white;
    border-radius: 16px;
    transition: all 0.3s;
    position: relative;
    overflow: hidden;
}
.stat-card-v2::before { content: ''; position: absolute; top: 0; left: 0; right: 0; height: 3px; background: linear-gradient(90deg, var(--primary), var(--secondary)); }
.stat-card-v2:hover { transform: translateY(-5px); box-shadow: 0 12px 30px rgba(0,0,0,0.08); }
.stat-icon { width: 48px; height: 48px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; }
.stat-number { font-size: 1.8rem; font-weight: 800; background: linear-gradient(135deg, var(--primary), var(--secondary)); -webkit-background-clip: text; -webkit-text-fill-color: transparent; }

/* TREATMENT CARDS */
.treatment-card {
    border: 1px solid #e2e8f0;
    border-radius: 20px;
    transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
    overflow: hidden;
    position: relative;
}
.treatment-card::before {
    content: '';
    position: absolute;
    top: 0; left: 0; right: 0;
    height: 4px;
    background: linear-gradient(90deg, var(--primary), var(--secondary));
    transform: scaleX(0);
    transition: transform 0.4s;
}
.treatment-card:hover::before { transform: scaleX(1); }
.treatment-card:hover { transform: translateY(-8px); box-shadow: 0 20px 40px rgba(0,0,0,0.08); border-color: transparent; }
.treatment-icon {
    width: 80px; height: 80px;
    background: linear-gradient(135deg, #f0fdfa, #e0f2fe);
    border-radius: 20px;
    display: flex; align-items: center; justify-content: center;
    font-size: 2rem;
    color: var(--primary);
    transition: all 0.3s;
}
.treatment-card:hover .treatment-icon { transform: scale(1.1) rotate(-5deg); background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; }
.price-tag { background: linear-gradient(135deg, #f0fdfa, #e0f2fe); color: var(--primary-dark); font-weight: 700; padding: 0.5rem 1.2rem; border-radius: 50px; display: inline-block; }

/* HOW IT WORKS */
.step-card { border: none; border-radius: 20px; transition: all 0.3s; }
.step-card:hover { transform: translateY(-5px); box-shadow: 0 15px 30px rgba(0,0,0,0.06); }
.step-num { width: 56px; height: 56px; background: linear-gradient(135deg, var(--primary), var(--secondary)); border-radius: 16px; display: flex; align-items: center; justify-content: center; font-size: 1.3rem; font-weight: 800; color: white; }
.step-connector { position: relative; }
.step-connector::after { content: ''; position: absolute; top: 50%; right: -30px; width: 60px; height: 2px; background: linear-gradient(90deg, var(--primary), transparent); display: none; }
@media(min-width:768px) { .step-connector::after { display: block; } }

/* SAVINGS */
.savings-card {
    border: none;
    border-radius: 16px;
    border-left: 4px solid var(--primary);
    transition: all 0.3s;
    background: white;
}
.savings-card:hover { transform: translateX(5px); box-shadow: 0 8px 25px rgba(0,0,0,0.06); }
.savings-card:nth-child(2) { border-left-color: var(--secondary); }
.savings-card:nth-child(3) { border-left-color: var(--accent); }
.savings-icon { width: 44px; height: 44px; border-radius: 12px; display: flex; align-items: center; justify-content: center; font-size: 1.2rem; }

/* PROVIDERS */
.provider-card {
    border: 1px solid #e2e8f0;
    border-radius: 16px;
    transition: all 0.3s;
    overflow: hidden;
}
.provider-card:hover { box-shadow: 0 8px 25px rgba(0,0,0,0.06); border-color: var(--primary-light); background: linear-gradient(135deg, #fff 0%, #f0fdfa 100%); }
.provider-card .btn-provider { background: linear-gradient(135deg, var(--primary), var(--primary-light)); color: white; border: none; border-radius: 50px; font-weight: 600; font-size: 0.8rem; padding: 0.4rem 1rem; transition: all 0.3s; }
.provider-card .btn-provider:hover { transform: scale(1.05); box-shadow: 0 4px 12px rgba(13,148,136,0.3); }

/* FAQ */
.faq-accordion .accordion-item { border: 1px solid #e2e8f0; border-radius: 16px !important; margin-bottom: 0.75rem; overflow: hidden; transition: all 0.3s; }
.faq-accordion .accordion-item:hover { border-color: var(--primary-light); }
.faq-accordion .accordion-button { font-weight: 600; border-radius: 16px !important; padding: 1.2rem 1.5rem; }
.faq-accordion .accordion-button:not(.collapsed) { background: linear-gradient(135deg, #f0fdfa, #ede9fe); color: var(--primary-dark); box-shadow: none; }
.faq-accordion .accordion-button:focus { box-shadow: 0 0 0 3px rgba(13,148,136,0.15); }
.faq-accordion .accordion-body { max-height: 1000px; overflow-y: auto; }

/* TESTIMONIALS */
.testimonial-card { background: white; border-radius: 20px; border: 1px solid #e2e8f0; }
.testimonial-avatar { width: 48px; height: 48px; border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white; font-weight: 700; font-size: 1.1rem; }
.testimonial-avatar-1 { background: linear-gradient(135deg, var(--primary), var(--secondary)); }
.testimonial-avatar-2 { background: linear-gradient(135deg, var(--secondary), #ec4899); }
.testimonial-avatar-3 { background: linear-gradient(135deg, var(--accent), #ef4444); }
.testimonial-stars { color: var(--accent); }

/* SEO CONTENT */
.seo-content { border-radius: 20px; border: 1px solid #e2e8f0; }
.seo-content h2 { font-size: 1.2rem; color: var(--dark); }

/* NEARBY */
.nearby-link { display: flex; justify-content: space-between; align-items: center; padding: 0.75rem 1rem; background: white; border: 1px solid #e2e8f0; border-radius: 12px; transition: all 0.2s; text-decoration: none; color: var(--dark); }
.nearby-link:hover { background: #f0fdfa; border-color: var(--primary-light); color: var(--primary); transform: translateX(3px); }
.nearby-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 0.6rem; }

/* VILLE GRID (state page) */
.ville-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 0.75rem; }
.ville-link { display: flex; justify-content: space-between; align-items: center; padding: 0.85rem 1rem; background: white; border: 1px solid #e2e8f0; border-radius: 12px; transition: all 0.2s; color: var(--dark); }
.ville-link:hover { background: #f0fdfa; border-color: var(--primary-light); color: var(--primary); transform: translateX(3px); }

/* STATE CARD (home) */
.state-card { transition: all 0.3s; border-radius: 14px !important; }
.state-card:hover { transform: translateY(-3px); box-shadow: 0 10px 25px rgba(0,0,0,0.08) !important; }

/* SEARCH */
.search-box { position: relative; }
.search-results { position: absolute; top: 100%; left: 0; display: none; margin-top: 0.5rem; padding: 0.5rem; border: 1px solid #e2e8f0; border-radius: 14px; background: white; max-height: 360px; overflow-y: auto; }
.search-results.show { display: block; }
.search-results .dropdown-item { border-radius: 8px; padding: 0.6rem 0.8rem; }
.search-results .dropdown-item:hover { background: #f0fdfa; color: var(--primary); }

/* FLOATING CTA */
.floating-cta { position: fixed; bottom: 2rem; right: 2rem; z-index: 90; opacity: 0; transform: translateY(20px); pointer-events: none; transition: all 0.4s cubic-bezier(0.4,0,0.2,1); }
.floating-cta.visible { opacity: 1; transform: translateY(0); pointer-events: all; }
.floating-cta .btn { background: linear-gradient(135deg, var(--primary), var(--secondary)); color: white; border: none; border-radius: 50px; padding: 0.9rem 1.8rem; font-weight: 700; box-shadow: 0 8px 30px rgba(13,148,136,0.4); transition: all 0.3s; }
.floating-cta .btn:hover { transform: translateY(-3px); box-shadow: 0 12px 40px rgba(13,148,136,0.5); }

/* FOOTER */
.footer-section { background: linear-gradient(180deg, #0f172a, #020617); }
.footer-section a { transition: color 0.2s; }
.footer-section a:hover { color: var(--primary-light) !important; }

/* SECTION HEADERS */
.section-subtitle { color: #64748b; font-size: 0.95rem; max-width: 500px; margin: 0 auto; }

/* DIVIDER */
.section-divider { height: 1px; background: linear-gradient(90deg, transparent, #e2e8f0, transparent); margin: 1rem 0; }

/* RESPONSIVE */
@media(max-width:768px) {
    .nearby-grid { grid-template-columns: 1fr; }
    .floating-cta { bottom: 1rem; right: 1rem; left: 1rem; }
    .floating-cta .btn { width: 100%; justify-content: center; }
    .hero-section { min-height: 450px; }
    .hero-section h1 { font-size: 2rem !important; }
    .stat-number { font-size: 1.4rem !important; }
    .btn-cta-main { padding: 0.8rem 1.8rem; font-size: 1rem; }
    .footer-section .row { text-align: center; }
    .hero-stats-row { flex-direction: column; gap: 0.5rem !important; }
    .hero-stats-row > div { border-left: none !important; padding-left: 0 !important; border-top: 1px solid rgba(255,255,255,0.1); padding-top: 0.5rem; }
    .hero-stats-row > div:first-child { border-top: none; padding-top: 0; }
    .trust-bar .d-flex { flex-wrap: wrap; justify-content: center; }
}
