UNPKG

@plumber-ai/modern-template

Version:

Modern professional plumbing website template - Generated by Plumber AI

119 lines (101 loc) 2.31 kB
/* src/templates/modern/components/Services.module.css */ .services { padding: var(--spacing-xl) 0; background: var(--color-bg-light); font-family: var(--font-body); } .title { font-family: var(--font-heading); text-align: center; margin-bottom: var(--spacing-lg); font-size: 2.5rem; color: var(--color-text-on-light); } .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(350px, 1fr)); gap: var(--spacing-md); margin-bottom: var(--spacing-lg); } .card { background: white; color: var(--color-text-on-light); padding: var(--spacing-lg); border-radius: var(--border-radius-lg); box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08); transition: transform 0.3s ease; border: 2px solid #f0f0f0; animation: fadeInUp 0.6s ease forwards; display: flex; flex-direction: column; overflow: hidden; /* Ensures the border radius is respected by children */ } .card:hover { transform: translateY(-5px); border-color: var(--color-accent); } .imageWrapper { width: 100%; height: 200px; /* Or a fixed aspect ratio */ position: relative; overflow: hidden; } .image { object-fit: cover; transition: transform 0.3s ease; } .card:hover .image { transform: scale(1.05); } .cardContent { padding: var(--spacing-lg); flex-grow: 1; display: flex; flex-direction: column; } .card h3 { font-family: var(--font-heading); color: var(--color-text-on-light); margin-bottom: var(--spacing-sm); } .callBtn, .ctaBtn { background: var(--color-accent); color: var(--color-text-on-dark); padding: var(--spacing-sm) var(--spacing-lg); border-radius: 999px; /* Pill shape */ text-decoration: none; transition: all 0.2s ease; font-weight: 700; text-shadow: 0 1px 1px rgba(0, 0, 0, 0.2); box-shadow: 0 4px 10px rgba(0, 0, 0, 0.2); border: none; cursor: pointer; } .callBtn:hover, .ctaBtn:hover { background: var(--color-brand); transform: translateY(-2px); box-shadow: 0 6px 12px rgba(0, 0, 0, 0.25); } .callBtn { margin-top: var(--spacing-md); width: 100%; } .cta { text-align: center; margin-top: var(--spacing-lg); } .ctaText { margin-bottom: var(--spacing-md); font-size: 1.1rem; } .ctaBtn { font-size: 1.2rem; } /* Responsive */ @media (max-width: 768px) { .grid { grid-template-columns: 1fr; } }