/* Basic Reset & Box-sizing */*,*::before,*::after {box-sizing: border-box;}body,h1,h2,h3,p,figure,blockquote,dl,dd {margin: 0;}ul[role='list'],ol[role='list'] {list-style: none;}html:focus-within {scroll-behavior: smooth;}body {min-height: 100vh;text-rendering: optimizeSpeed;line-height: 1.5;font-family: var(--font-body);color: var(--color-text);background-color: var(--color-bg);}a:not([class]) {text-decoration-skip-ink: auto;}img,picture,video,canvas,svg {max-width: 100%;display: block;}input,button,textarea,select {font: inherit;}@media (prefers-reduced-motion: reduce) {html:focus-within {scroll-behavior: auto;}*,*::before,*::after {animation-duration: 0.01ms !important;animation-iteration-count: 1 !important;transition-duration: 0.01ms !important;scroll-behavior: auto !important;}}/* Custom Properties */:root {--color-primary: #28a745;--color-accent: #ffc107;--color-text: #343a40;--color-bg: #f8f9fa;--color-surface: #ffffff;--font-heading: 'Montserrat', sans-serif;--font-body: 'Open Sans', sans-serif;--hero-min-height: 100vh;--hero-overlay-alpha: 0.45;--hero-focus: center;--animation-reveal-duration: 600ms;--animation-card-lift: -4px;--animation-image-scale: 1.05;}/* Typography */h1,h2,h3 {font-family: var(--font-heading);line-height: 1.2;color: var(--color-primary);margin-bottom: 0.8em;}h1 {font-size: clamp(2.5rem, 6vw, 4rem);color: #fff;}h2 {font-size: clamp(2rem, 5vw, 3rem);margin-top: 2em;}h3 {font-size: clamp(1.5rem, 4vw, 2rem);margin-top: 1.5em;}p {margin-bottom: 1em;line-height: 1.6;}/* Utility Classes */.container {max-width: 1200px;margin: 0 auto;padding: 1rem;}@media (min-width: 768px) {.container {padding: 1.5rem 2rem;}}.button {display: inline-block;padding: 0.8rem 1.8rem;background-color: var(--color-accent);color: var(--color-text);text-decoration: none;border-radius: 50px;font-weight: 600;text-align: center;white-space: nowrap;border: none;cursor: pointer;}.button:hover {filter: brightness(1.1);}.cta {background-color: var(--color-accent);color: var(--color-text);}/* Header & Navigation */.site-header {background-color: var(--color-surface);padding: 1rem 0;box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);position: sticky;top: 0;z-index: 100;}.site-header .container {display: flex;justify-content: space-between;align-items: center;}.site-logo {font-family: var(--font-heading);font-size: 1.5rem;font-weight: 700;color: var(--color-primary);text-decoration: none;}.main-nav {display: none;}.main-nav ul {display: flex;padding: 0;margin: 0;}.main-nav li {margin-left: 1.5rem;}.main-nav a {text-decoration: none;color: var(--color-text);font-weight: 600;padding: 0.5rem 0;position: relative;}.main-nav a::after {content: '';position: absolute;left: 0;bottom: 0;width: 0;height: 2px;background-color: var(--color-accent);transition: width 0.3s ease-out;}.main-nav a:hover::after {width: 100%;}.nav-toggle {background: none;border: none;font-size: 2rem;cursor: pointer;color: var(--color-primary);display: block;}@media (min-width: 768px) {.nav-toggle {display: none;}.main-nav {display: block !important;}.main-nav ul {flex-direction: row;}.main-nav li {margin-left: 1.5rem;margin-bottom: 0;}}.main-nav.is-open {display: block;position: absolute;top: 100%;left: 0;width: 100%;background-color: var(--color-surface);box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);}.main-nav.is-open ul {flex-direction: column;}.main-nav.is-open li {margin: 0;}.main-nav.is-open a {display: block;padding: 1rem 1.5rem;border-bottom: 1px solid var(--color-bg);}.main-nav.is-open a:hover {background-color: var(--color-bg);}/* Hero Section */.hero { min-height: var(--hero-min-height); display: grid; place-items: center; position: relative; overflow: hidden; }.hero__image { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; object-position: var(--hero-focus, center); z-index: 0; }.hero__overlay { position: relative; z-index: 1; max-width: 720px; padding: clamp(1rem, 4vw, 2.5rem); background: rgba(0, 0, 0, var(--hero-overlay-alpha, 0.45)); color: #fff; border-radius: 12px; text-align: center; }/* Sections */section {padding: 4rem 0;}.about {background-color: var(--color-bg);}.services {background-color: var(--color-surface);}.services-grid {display: grid;grid-template-columns: 1fr;gap: 1.5rem;margin-top: 2rem;}@media (min-width: 640px) {.services-grid {grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));}}/* Card Styles */.card {background-color: var(--color-surface);padding: 2rem;border-radius: 12px;box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);text-align: center;}.card h3 {color: var(--color-primary);margin-top: 0;margin-bottom: 0.5em;}.card p {font-size: 0.95rem;color: var(--color-text);}/* Gallery */.gallery {background-color: var(--color-bg);}.image-grid {display: grid;grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));gap: 1rem;margin-top: 2rem;}@media (min-width: 768px) {.image-grid {grid-template-columns: repeat(3, 1fr);}}.image-grid img {width: 100%;height: 200px;object-fit: cover;border-radius: 8px;box-shadow: 0 4px 12px rgba(0, 0, 0, 0.08);}/* Contact Section */.contact {background-color: var(--color-surface);text-align: center;}.contact-info {margin-top: 2rem;margin-bottom: 2rem;}.contact-info p {margin-bottom: 0.5rem;}.contact-info a {color: var(--color-primary);text-decoration: none;font-weight: 600;}.contact-info a:hover {text-decoration: underline;}.map-container {margin: 2rem 0;border-radius: 8px;overflow: hidden;}.map-container iframe {display: block;}/* Footer */.site-footer {background-color: var(--color-primary);color: #fff;padding: 2rem 0;text-align: center;font-size: 0.9rem;}.site-footer p {margin: 0;}.site-footer a {color: var(--color-accent);text-decoration: none;}/* Animations */@media (prefers-reduced-motion: no-preference) {@keyframes fadeInUp {from {opacity: 0;transform: translateY(20px);}to {opacity: 1;transform: translateY(0);}}.reveal {opacity: 0;will-change: transform, opacity;}.reveal.is-visible {animation: fadeInUp var(--animation-reveal-duration) ease-out forwards;}}@media (prefers-reduced-motion: reduce) {.reveal {opacity: 1;animation: none;}}/* Hover Effects */@media (hover: hover) and (prefers-reduced-motion: no-preference) {.card, .testimonial {transition: transform 200ms, box-shadow 200ms;}.card:hover {transform: translateY(var(--animation-card-lift, -4px));box-shadow: 0 8px 24px rgba(0, 0, 0, 0.12);}.gallery img, [class*="gallery"] img {transition: transform 300ms;}.gallery img:hover {transform: scale(var(--animation-image-scale, 1.05));}.button, a.cta {transition: filter 150ms;}.button:hover, a.cta:hover {filter: brightness(1.1);}}