/* Reset & Base Styles */ :root { --primary-color: #2563eb; --secondary-color: #64748b; --text-color: #1f2937; --bg-color: #ffffff; --radius: 0.5rem; --shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1); --section-padding: 5rem 1.5rem; } * { box-sizing: border-box; margin: 0; padding: 0; } body { font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; color: var(--text-color); background-color: var(--bg-color); line-height: 1.6; transition: background-color 0.3s ease, color 0.3s ease; } h1, h2, h3 { line-height: 1.2; margin-bottom: 1.5rem; color: var(--text-color); } p { margin-bottom: 1rem; } .container { max-width: 1200px; margin: 0 auto; padding: 0 1.5rem; } section { padding: var(--section-padding); } /* Common Components */ .btn { display: inline-block; padding: 0.75rem 1.5rem; border-radius: var(--radius); font-weight: 600; text-decoration: none; transition: all 0.2s; cursor: pointer; border: 2px solid transparent; } .btn-primary { background-color: var(--primary-color); color: white; box-shadow: var(--shadow); } .btn-secondary { background-color: transparent; border-color: var(--secondary-color); color: var(--secondary-color); } .btn:hover { opacity: 0.9; transform: translateY(-1px); } /* Header & Nav */ header { padding: 1.5rem 0; background-color: var(--bg-color); border-bottom: 1px solid rgba(0,0,0,0.05); } nav .container { display: flex; justify-content: space-between; align-items: center; } .logo img { height: 2.5rem; } /* Footer */ footer { background-color: var(--secondary-color); color: white; padding: 4rem 0; margin-top: 2rem; } footer h4, footer p { color: white; } /* Section specific */ .section-header { text-align: center; margin-bottom: 3rem; } /* Hero */ .hero { background-color: var(--bg-color); text-align: center; padding: calc(var(--section-padding) * 1.5); border-bottom: 1px solid rgba(0,0,0,0.05); } .hero h1 { font-size: 3.5rem; font-weight: 900; letter-spacing: -0.025em; } .hero .subtitle { font-size: 1.5rem; color: var(--secondary-color); margin-bottom: 2.5rem; max-width: 800px; margin-left: auto; margin-right: auto; } .hero-actions { display: flex; gap: 1rem; justify-content: center; } /* Services */ .services-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; } .service-card { padding: 2.5rem; border: 1px solid rgba(0,0,0,0.05); background-color: white; border-radius: var(--radius); box-shadow: var(--shadow); transition: all 0.3s ease; } .service-card:hover { transform: translateY(-8px); } .price { font-weight: 800; font-size: 1.25rem; color: var(--primary-color); margin-top: 1.5rem; } /* Gallery */ .gallery-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 1.5rem; } .gallery-item img { width: 100%; height: 300px; object-fit: cover; border-radius: var(--radius); box-shadow: var(--shadow); } /* FAQ */ .faq-list { max-width: 800px; margin: 0 auto; } .faq-item { margin-bottom: 2rem; border-bottom: 1px solid rgba(0,0,0,0.05); padding-bottom: 2rem; } .faq-item h3 { font-size: 1.25rem; margin-bottom: 1rem; } /* Contact */ .contact-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; } .contact-form { background-color: white; padding: 2.5rem; border-radius: var(--radius); box-shadow: var(--shadow); } .contact-form .form-group { margin-bottom: 1.25rem; } .contact-form input, .contact-form textarea { width: 100%; padding: 1rem; border: 1px solid #e5e7eb; border-radius: var(--radius); font-family: inherit; } .contact-form input:focus, .contact-form textarea:focus { outline: none; border-color: var(--primary-color); } @media (max-width: 768px) { .contact-grid { grid-template-columns: 1fr; } .hero h1 { font-size: 2.5rem; } .hero-actions { flex-direction: column; } }