: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; }
}
Skip to main content
Tag: Fall energy saving tips

October 25, 2016
Fall and Winter Energy Saving Tips We are always looking for ways to save our customers money, below are some…