@plumber-ai/modern-template
Version:
Modern professional plumbing website template - Generated by Plumber AI
119 lines (101 loc) • 2.31 kB
CSS
/* 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;
}
}