:root { /* Colors - Brand */ --color-primary: #0066CC; /* Blue - main brand */ --color-primary-dark: #004C99; /* Hover/active states */ --color-primary-light: #E6F2FF; /* Backgrounds/badges */ --color-secondary: #FF6B35; /* Orange - accent/CTA */ --color-secondary-dark: #E55A2B; --color-secondary-light: #FFF0EB; /* Neutrals */ --color-white: #FFFFFF; --color-black: #1A1A1A; --color-gray-50: #F9FAFB; --color-gray-100: #F3F4F6; --color-gray-200: #E5E7EB; --color-gray-300: #D1D5DB; --color-gray-400: #9CA3AF; --color-gray-500: #6B7280; --color-gray-600: #4B5563; --color-gray-700: #374151; --color-gray-800: #1F2937; --color-gray-900: #111827; /* Semantic colors */ --color-success: #10B981; --color-warning: #F59E0B; --color-error: #EF4444; --color-info: #3B82F6; /* Typography */ --font-primary: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif; --font-heading: 'Poppins', var(--font-primary); --font-size-xs: 0.75rem; /* 12px */ --font-size-sm: 0.875rem; /* 14px */ --font-size-base: 1rem; /* 16px */ --font-size-lg: 1.125rem; /* 18px */ --font-size-xl: 1.25rem; /* 20px */ --font-size-2xl: 1.5rem; /* 24px */ --font-size-3xl: 1.875rem; /* 30px */ --font-size-4xl: 2.25rem; /* 36px */ --font-size-5xl: 3rem; /* 48px */ --font-size-6xl: 3.75rem; /* 60px */ --font-weight-normal: 400; --font-weight-medium: 500; --font-weight-semibold: 600; --font-weight-bold: 700; --line-height-tight: 1.25; --line-height-normal: 1.5; --line-height-relaxed: 1.75; /* Spacing scale (8px base) */ --space-1: 0.25rem; /* 4px */ --space-2: 0.5rem; /* 8px */ --space-3: 0.75rem; /* 12px */ --space-4: 1rem; /* 16px */ --space-5: 1.25rem; /* 20px */ --space-6: 1.5rem; /* 24px */ --space-8: 2rem; /* 32px */ --space-10: 2.5rem; /* 40px */ --space-12: 3rem; /* 48px */ --space-16: 4rem; /* 64px */ --space-20: 5rem; /* 80px */ --space-24: 6rem; /* 96px */ --space-32: 8rem; /* 128px */ /* Border radius */ --radius-sm: 0.25rem; /* 4px */ --radius-md: 0.5rem; /* 8px */ --radius-lg: 0.75rem; /* 12px */ --radius-xl: 1rem; /* 16px */ --radius-2xl: 1.5rem; /* 24px */ --radius-full: 9999px; /* Shadows */ --shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, 0.05); --shadow-md: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); --shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -2px rgba(0, 0, 0, 0.05); --shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, 0.1), 0 10px 10px -5px rgba(0, 0, 0, 0.04); /* Container widths */ --container-sm: 640px; --container-md: 768px; --container-lg: 1024px; --container-xl: 1280px; --container-2xl: 1536px; /* Transitions */ --transition-fast: 150ms ease-in-out; --transition-base: 250ms ease-in-out; --transition-slow: 350ms ease-in-out; /* Z-index scale */ --z-dropdown: 1000; --z-sticky: 1020; --z-fixed: 1030; --z-modal-backdrop: 1040; --z-modal: 1050; --z-popover: 1060; --z-tooltip: 1070; }/* Container */ .container { width: 100%; max-width: var(--container-xl); margin-left: auto; margin-right: auto; padding-left: var(--space-4); padding-right: var(--space-4); } @media (min-width: 768px) { .container { padding-left: var(--space-6); padding-right: var(--space-6); } } @media (min-width: 1024px) { .container { padding-left: var(--space-8); padding-right: var(--space-8); } } .container-sm { max-width: var(--container-sm); } .container-md { max-width: var(--container-md); } .container-lg { max-width: var(--container-lg); } .container-2xl { max-width: var(--container-2xl); } /* Full-width sections */ .section { padding-top: var(--space-16); padding-bottom: var(--space-16); } @media (min-width: 768px) { .section { padding-top: var(--space-20); padding-bottom: var(--space-20); } } @media (min-width: 1024px) { .section { padding-top: var(--space-24); padding-bottom: var(--space-24); } } .section-sm { padding-top: var(--space-12); padding-bottom: var(--space-12); } .section-lg { padding-top: var(--space-24); padding-bottom: var(--space-24); } @media (min-width: 1024px) { .section-lg { padding-top: var(--space-32); padding-bottom: var(--space-32); } }/* Vertical rhythm - use on parent containers */ .stack-xs > * + * { margin-top: var(--space-2); } .stack-sm > * + * { margin-top: var(--space-4); } .stack-md > * + * { margin-top: var(--space-6); } .stack-lg > * + * { margin-top: var(--space-8); } .stack-xl > * + * { margin-top: var(--space-12); } .stack-2xl > * + * { margin-top: var(--space-16); } /* Responsive stacks */ @media (min-width: 768px) { .stack-md@md > * + * { margin-top: var(--space-6); } .stack-lg@md > * + * { margin-top: var(--space-8); } .stack-xl@md > * + * { margin-top: var(--space-12); } } @media (min-width: 1024px) { .stack-lg@lg > * + * { margin-top: var(--space-8); } .stack-xl@lg > * + * { margin-top: var(--space-12); } .stack-2xl@lg > * + * { margin-top: var(--space-16); } }/* Horizontal rhythm - use on parent flex containers */ .cluster { display: flex; flex-wrap: wrap; gap: var(--space-4); align-items: center; } .cluster-xs { gap: var(--space-2); } .cluster-sm { gap: var(--space-3); } .cluster-md { gap: var(--space-6); } .cluster-lg { gap: var(--space-8); } .cluster-xl { gap: var(--space-12); } /* Alignment variants */ .cluster-start { justify-content: flex-start; } .cluster-center { justify-content: center; } .cluster-end { justify-content: flex-end; } .cluster-between { justify-content: space-between; } /* Auto-fit grid */ .grid { display: grid; gap: var(--space-6); } .grid-2 { grid-template-columns: repeat(2, 1fr); } .grid-3 { grid-template-columns: repeat(3, 1fr); } .grid-4 { grid-template-columns: repeat(4, 1fr); } /* Responsive grids */ @media (max-width: 767px) { .grid-2, .grid-3, .grid-4 { grid-template-columns: 1fr; } } @media (min-width: 768px) and (max-width: 1023px) { .grid-3, .grid-4 { grid-template-columns: repeat(2, 1fr); } } /* Auto-fit (responsive without breakpoints) */ .grid-auto { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); } .grid-auto-sm { grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); } .grid-auto-lg { grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); } /* Gap variants */ .grid-gap-sm { gap: var(--space-4); } .grid-gap-md { gap: var(--space-6); } .grid-gap-lg { gap: var(--space-8); } .grid-gap-xl { gap: var(--space-12); } /* Headings */ .h1, .h2, .h3, .h4, .h5, .h6 { font-family: var(--font-heading); font-weight: var(--font-weight-bold); line-height: var(--line-height-tight); color: var(--color-gray-900); margin: 0; } .h1 { font-size: var(--font-size-3xl); } .h2 { font-size: var(--font-size-2xl); } .h3 { font-size: var(--font-size-xl); } .h4 { font-size: var(--font-size-lg); } .h5 { font-size: var(--font-size-base); } .h6 { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); } @media (min-width: 768px) { .h1 { font-size: var(--font-size-4xl); } .h2 { font-size: var(--font-size-3xl); } .h3 { font-size: var(--font-size-2xl); } } @media (min-width: 1024px) { .h1 { font-size: var(--font-size-5xl); } .h2 { font-size: var(--font-size-4xl); } .h3 { font-size: var(--font-size-3xl); } } /* Display headings (hero) */ .display-1 { font-family: var(--font-heading); font-size: var(--font-size-4xl); font-weight: var(--font-weight-bold); line-height: var(--line-height-tight); color: var(--color-gray-900); } @media (min-width: 768px) { .display-1 { font-size: var(--font-size-5xl); } } @media (min-width: 1024px) { .display-1 { font-size: var(--font-size-6xl); } } /* Body text */ .text-base { font-size: var(--font-size-base); line-height: var(--line-height-normal); } .text-sm { font-size: var(--font-size-sm); line-height: var(--line-height-normal); } .text-lg { font-size: var(--font-size-lg); line-height: var(--line-height-relaxed); } .text-xl { font-size: var(--font-size-xl); line-height: var(--line-height-relaxed); } /* Lead paragraph */ .lead { font-size: var(--font-size-lg); line-height: var(--line-height-relaxed); color: var(--color-gray-600); } @media (min-width: 768px) { .lead { font-size: var(--font-size-xl); } } /* Text colors */ .text-primary { color: var(--color-primary); } .text-secondary { color: var(--color-secondary); } .text-white { color: var(--color-white); } .text-gray-600 { color: var(--color-gray-600); } .text-gray-700 { color: var(--color-gray-700); } .text-gray-900 { color: var(--color-gray-900); } /* Font weights */ .font-normal { font-weight: var(--font-weight-normal); } .font-medium { font-weight: var(--font-weight-medium); } .font-semibold { font-weight: var(--font-weight-semibold); } .font-bold { font-weight: var(--font-weight-bold); } /* Text alignment */ .text-left { text-align: left; } .text-center { text-align: center; } .text-right { text-align: right; } @media (min-width: 768px) { .text-left@md { text-align: left; } .text-center@md { text-align: center; } } /* Base button */ .btn { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-2); padding: var(--space-3) var(--space-6); font-family: var(--font-primary); font-size: var(--font-size-base); font-weight: var(--font-weight-semibold); line-height: 1.5; text-align: center; text-decoration: none; white-space: nowrap; border: 2px solid transparent; border-radius: var(--radius-md); cursor: pointer; transition: all var(--transition-base); user-select: none; } .btn:focus-visible { outline: 2px solid var(--color-primary); outline-offset: 2px; } /* Primary button */ .btn-primary { background-color: var(--color-primary); color: var(--color-white); border-color: var(--color-primary); } .btn-primary:hover { background-color: var(--color-primary-dark); border-color: var(--color-primary-dark); transform: translateY(-1px); box-shadow: var(--shadow-md); } .btn-primary:active { transform: translateY(0); } /* Secondary button */ .btn-secondary { background-color: var(--color-secondary); color: var(--color-white); border-color: var(--color-secondary); } .btn-secondary:hover { background-color: var(--color-secondary-dark); border-color: var(--color-secondary-dark); transform: translateY(-1px); box-shadow: var(--shadow-md); } /* Outline button */ .btn-outline { background-color: transparent; color: var(--color-primary); border-color: var(--color-primary); } .btn-outline:hover { background-color: var(--color-primary); color: var(--color-white); } /* Ghost button */ .btn-ghost { background-color: transparent; color: var(--color-gray-700); border-color: transparent; } .btn-ghost:hover { background-color: var(--color-gray-100); } /* White button (for dark backgrounds) */ .btn-white { background-color: var(--color-white); color: var(--color-primary); border-color: var(--color-white); } .btn-white:hover { background-color: var(--color-gray-100); border-color: var(--color-gray-100); } /* Button sizes */ .btn-sm { padding: var(--space-2) var(--space-4); font-size: var(--font-size-sm); } .btn-lg { padding: var(--space-4) var(--space-8); font-size: var(--font-size-lg); } .btn-xl { padding: var(--space-5) var(--space-10); font-size: var(--font-size-xl); } /* Full width button */ .btn-block { display: flex; width: 100%; } /* Icon buttons */ .btn-icon { padding: var(--space-3); aspect-ratio: 1; } .btn-icon-sm { padding: var(--space-2); } .btn-icon-lg { padding: var(--space-4); } /* Base card */ .card { background-color: var(--color-white); border-radius: var(--radius-lg); box-shadow: var(--shadow-md); overflow: hidden; transition: all var(--transition-base); } .card:hover { box-shadow: var(--shadow-lg); transform: translateY(-2px); } .card-body { padding: var(--space-6); } .card-body-sm { padding: var(--space-4); } .card-body-lg { padding: var(--space-8); } /* Service card (for your HVAC services) */ .service-card { background-color: var(--color-white); border-radius: var(--radius-lg); padding: var(--space-8); box-shadow: var(--shadow-md); text-align: center; transition: all var(--transition-base); } .service-card:hover { box-shadow: var(--shadow-xl); transform: translateY(-4px); } .service-card__icon { width: 64px; height: 64px; margin: 0 auto var(--space-4); display: flex; align-items: center; justify-content: center; background-color: var(--color-primary-light); color: var(--color-primary); border-radius: var(--radius-xl); font-size: var(--font-size-3xl); } .service-card__title { font-size: var(--font-size-xl); font-weight: var(--font-weight-bold); margin-bottom: var(--space-3); color: var(--color-gray-900); } .service-card__description { color: var(--color-gray-600); margin-bottom: var(--space-6); } /* Testimonial card */ .testimonial-card { background-color: var(--color-white); border-radius: var(--radius-lg); padding: var(--space-6); box-shadow: var(--shadow-md); border-left: 4px solid var(--color-primary); } .testimonial-card__quote { font-size: var(--font-size-lg); line-height: var(--line-height-relaxed); color: var(--color-gray-700); margin-bottom: var(--space-4); font-style: italic; } .testimonial-card__author { font-weight: var(--font-weight-semibold); color: var(--color-gray-900); } .testimonial-card__role { font-size: var(--font-size-sm); color: var(--color-gray-600); } /* Badge */ .badge { display: inline-flex; align-items: center; gap: var(--space-1); padding: var(--space-1) var(--space-3); font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); line-height: 1; border-radius: var(--radius-full); } .badge-primary { background-color: var(--color-primary-light); color: var(--color-primary-dark); } .badge-secondary { background-color: var(--color-secondary-light); color: var(--color-secondary-dark); } .badge-success { background-color: #D1FAE5; color: #065F46; } .badge-warning { background-color: #FEF3C7; color: #92400E; } .badge-error { background-color: #FEE2E2; color: #991B1B; } /* Trust badge (for license, reviews, etc.) */ .trust-badge { display: inline-flex; align-items: center; gap: var(--space-2); padding: var(--space-2) var(--space-4); background-color: var(--color-gray-100); border-radius: var(--radius-md); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-gray-700); } .trust-badge__icon { color: var(--color-primary); } /* Form group */ .form-group { margin-bottom: var(--space-6); } /* Label */ .form-label { display: block; margin-bottom: var(--space-2); font-size: var(--font-size-sm); font-weight: var(--font-weight-medium); color: var(--color-gray-700); } /* Input */ .form-input, .form-select, .form-textarea { display: block; width: 100%; padding: var(--space-3) var(--space-4); font-family: var(--font-primary); font-size: var(--font-size-base); line-height: 1.5; color: var(--color-gray-900); background-color: var(--color-white); border: 2px solid var(--color-gray-300); border-radius: var(--radius-md); transition: all var(--transition-base); } .form-input:focus, .form-select:focus, .form-textarea:focus { outline: none; border-color: var(--color-primary); box-shadow: 0 0 0 3px var(--color-primary-light); } .form-input::placeholder { color: var(--color-gray-400); } /* Textarea */ .form-textarea { min-height: 120px; resize: vertical; } /* Checkbox & Radio */ .form-check { display: flex; align-items: center; gap: var(--space-2); } .form-check-input { width: 18px; height: 18px; cursor: pointer; } .form-check-label { font-size: var(--font-size-sm); color: var(--color-gray-700); cursor: pointer; } /* Error state */ .form-input.error, .form-select.error, .form-textarea.error { border-color: var(--color-error); } .form-error { display: block; margin-top: var(--space-2); font-size: var(--font-size-sm); color: var(--color-error); } /* Hero */ .hero { position: relative; padding-top: var(--space-20); padding-bottom: var(--space-20); background: linear-gradient(135deg, var(--color-primary) 0%, var(--color-primary-dark) 100%); color: var(--color-white); } @media (min-width: 1024px) { .hero { padding-top: var(--space-32); padding-bottom: var(--space-32); } } .hero__content { max-width: 800px; } .hero__title { font-size: var(--font-size-4xl); font-weight: var(--font-weight-bold); line-height: var(--line-height-tight); margin-bottom: var(--space-6); } @media (min-width: 768px) { .hero__title { font-size: var(--font-size-5xl); } } @media (min-width: 1024px) { .hero__title { font-size: var(--font-size-6xl); } } .hero__subtitle { font-size: var(--font-size-lg); line-height: var(--line-height-relaxed); margin-bottom: var(--space-8); opacity: 0.95; } @media (min-width: 768px) { .hero__subtitle { font-size: var(--font-size-xl); } } .hero__cta { display: flex; flex-wrap: wrap; gap: var(--space-4); } /* Header */ .site-header { position: sticky; top: 0; z-index: var(--z-sticky); background-color: var(--color-white); box-shadow: var(--shadow-sm); } .site-header__inner { display: flex; align-items: center; justify-content: space-between; padding-top: var(--space-4); padding-bottom: var(--space-4); } .site-header__logo img { height: 48px; width: auto; } .site-header__nav { display: none; } @media (min-width: 1024px) { .site-header__nav { display: flex; align-items: center; gap: var(--space-8); } } .site-header__nav-link { font-size: var(--font-size-base); font-weight: var(--font-weight-medium); color: var(--color-gray-700); text-decoration: none; transition: color var(--transition-base); } .site-header__nav-link:hover { color: var(--color-primary); } .site-header__cta { display: flex; align-items: center; gap: var(--space-3); } /* Phone link (tap-to-call) */ .phone-link { display: inline-flex; align-items: center; gap: var(--space-2); font-size: var(--font-size-lg); font-weight: var(--font-weight-bold); color: var(--color-primary); text-decoration: none; transition: color var(--transition-base); } .phone-link:hover { color: var(--color-primary-dark); } @media (max-width: 767px) { .phone-link__text { display: none; } } /* Footer */ .site-footer { background-color: var(--color-gray-900); color: var(--color-gray-300); padding-top: var(--space-16); padding-bottom: var(--space-8); } .site-footer a { color: var(--color-gray-300); text-decoration: none; transition: color var(--transition-base); } .site-footer a:hover { color: var(--color-white); } .site-footer__title { font-size: var(--font-size-lg); font-weight: var(--font-weight-semibold); color: var(--color-white); margin-bottom: var(--space-4); } .site-footer__bottom { margin-top: var(--space-12); padding-top: var(--space-8); border-top: 1px solid var(--color-gray-700); text-align: center; font-size: var(--font-size-sm); } /* Display */ .block { display: block; } .inline-block { display: inline-block; } .flex { display: flex; } .inline-flex { display: inline-flex; } .grid { display: grid; } .hidden { display: none; } /* Flex utilities */ .flex-col { flex-direction: column; } .flex-wrap { flex-wrap: wrap; } .items-start { align-items: flex-start; } .items-center { align-items: center; } .items-end { align-items: flex-end; } .justify-start { justify-content: flex-start; } .justify-center { justify-content: center; } .justify-end { justify-content: flex-end; } .justify-between { justify-content: space-between; } /* Spacing utilities */ .m-0 { margin: 0; } .mt-auto { margin-top: auto; } .mb-0 { margin-bottom: 0; } /* Background colors */ .bg-white { background-color: var(--color-white); } .bg-gray-50 { background-color: var(--color-gray-50); } .bg-gray-100 { background-color: var(--color-gray-100); } .bg-primary { background-color: var(--color-primary); } .bg-primary-light { background-color: var(--color-primary-light); } .bg-secondary { background-color: var(--color-secondary); } /* Border radius */ .rounded-sm { border-radius: var(--radius-sm); } .rounded-md { border-radius: var(--radius-md); } .rounded-lg { border-radius: var(--radius-lg); } .rounded-xl { border-radius: var(--radius-xl); } .rounded-full { border-radius: var(--radius-full); } /* Shadows */ .shadow-sm { box-shadow: var(--shadow-sm); } .shadow-md { box-shadow: var(--shadow-md); } .shadow-lg { box-shadow: var(--shadow-lg); } .shadow-xl { box-shadow: var(--shadow-xl); } /* Width */ .w-full { width: 100%; } .max-w-full { max-width: 100%; } /* Responsive visibility */ @media (max-width: 767px) { .hidden-mobile { display: none !important; } } @media (min-width: 768px) { .hidden-tablet { display: none !important; } } @media (min-width: 1024px) { .hidden-desktop { display: none !important; } } @media (max-width: 1023px) { .visible-desktop { display: none !important; } }

Spring's Trusted HVAC Experts

AC Repair · Heating · Installation · Maintenance — Serving Spring, The Woodlands & the Greater Houston Area

Licensed & Insured

20+ Years Experience

24/7 Emergency Service

100% Satisfaction Guaranteed

Our HVAC Services

From routine maintenance to emergency repairs — we keep your home comfortable year-round.

AC Repair

Fast, reliable air conditioning repair to restore your comfort — same-day service available.
Learn More

Heating Repair

Keep your home warm all winter. We repair furnaces, heat pumps, and all heating systems.
Learn More

AC Installation

New system installations and replacements. We help you choose the right unit for your home and budget.
Learn More

HVAC Maintenance

Annual tune-ups and maintenance plans to prevent costly breakdowns and extend system life.
Learn More

Indoor Air Quality

Air purifiers, filtration systems, UV lights, and humidity control for healthier indoor air.
Learn More

Emergency Service

HVAC emergency? We're available 24/7 with fast response times when you need help most.
Call Now

Why Choose Quality Comfort Air?

Local Spring, TX Experts

We're your neighbors — a locally owned business that knows the Houston-area climate and your comfort needs.

Upfront, Honest Pricing

No hidden fees, no surprises. We provide clear quotes before any work begins so you always know what to expect.

NATE-Certified Technicians

Our technicians hold industry certifications and undergo continuous training on the latest HVAC technologies.

Workmanship Warranty

We stand behind every job with a workmanship warranty. If something isn't right, we make it right.

Serving the Greater Spring Area

Quality Comfort Air proudly serves Spring and surrounding communities throughout the Houston metro.
SpringThe WoodlandsTomballConroeKingwoodHumbleCypressNorth Houston

What Our Customers Say

★★★★★
“Quality Comfort Air saved us during a July heat wave. They arrived within 2 hours and had our AC running like new. Highly recommend!”
— Jennifer M., Spring TX
★★★★★
“Fair prices, honest technicians, and excellent work. They installed our new Carrier system perfectly and explained everything. 5 stars!”
— David R., The Woodlands TX
★★★★★
“Our go-to HVAC company for years. Always professional, always on time, and they truly care about doing the job right. Wouldn’t use anyone else.”
— Maria T., Tomball TX

Need HVAC Service Today?

Spring's most trusted HVAC team is standing by. Fast response, fair prices, done right the first time.
☎ Call (832) 663-5373