@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@400;700&family=Open+Sans:wght@400;600&display=swap');:root{--color-primary:#004e64;--color-accent:#ff6b6b;--color-text:#333333;--color-bg:#f5f5f5;--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;}*,*::before,*::after{box-sizing:border-box;}html{scroll-behavior:smooth;}body{font-family:var(--font-body);margin:0;line-height:1.6;color:var(--color-text);background-color:var(--color-bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;}h1,h2,h3{font-family:var(--font-heading);color:var(--color-primary);line-height:1.2;margin-top:0;}h1{font-size:clamp(2.5rem, 6vw, 4rem);color:#fff;}h2{font-size:clamp(2rem, 5vw, 3rem);text-align:center;margin-bottom:2rem;}h3{font-size:clamp(1.5rem, 4vw, 2rem);}p{margin-bottom:1rem;}a{color:var(--color-primary);text-decoration:none;}a:hover{text-decoration:underline;}.container{max-width:1200px;margin:0 auto;padding:0 1rem;}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0, 0, 0, 0);white-space:nowrap;border-width:0;}.button,a.cta{display:inline-block;background-color:var(--color-accent);color:#fff;padding:0.8rem 1.8rem;border-radius:5px;text-decoration:none;font-weight:bold;font-family:var(--font-heading);border:none;cursor:pointer;text-align:center;transition:filter 150ms;}.button:hover,a.cta:hover{filter:brightness(1.1);}.site-header{background-color:var(--color-surface);padding:1rem 0;box-shadow:0 2px 8px 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;}.logo{font-family:var(--font-heading);font-size:1.5rem;font-weight:bold;color:var(--color-primary);text-decoration:none;}.main-nav .nav-list{list-style:none;margin:0;padding:0;display:flex;}.main-nav .nav-list li{margin-left:1.5rem;}.main-nav .nav-list a{color:var(--color-primary);font-weight:600;padding:0.5rem 0;transition:color 0.2s ease;text-decoration:none;}.main-nav .nav-list a:hover{color:var(--color-accent);text-decoration:none;}.menu-toggle{display:none;background:none;border:none;font-size:1.8rem;cursor:pointer;color:var(--color-primary);padding:0.5rem;}.burger-icon{display:block;width:24px;height:2px;background:var(--color-primary);position:relative;transition:background-color 0.3s ease;}.burger-icon::before,.burger-icon::after{content:'';display:block;width:24px;height:2px;background:var(--color-primary);position:absolute;transition:transform 0.3s ease, top 0.3s ease;}.burger-icon::before{top:-8px;}.burger-icon::after{top:8px;}.menu-toggle[aria-expanded="true"] .burger-icon{background:transparent;}.menu-toggle[aria-expanded="true"] .burger-icon::before{transform:translateY(8px) rotate(45deg);}.menu-toggle[aria-expanded="true"] .burger-icon::after{transform:translateY(-8px) rotate(-45deg);}@media (max-width: 767px){.menu-toggle{display:block;}.main-nav .nav-list{display:none;flex-direction:column;position:absolute;top:100%;left:0;width:100%;background-color:var(--color-surface);box-shadow:0 2px 8px rgba(0,0,0,0.05);border-top:1px solid rgba(0,0,0,0.1);z-index:99;}.main-nav .nav-list.is-open{display:flex;}.main-nav .nav-list li{margin:0;border-bottom:1px solid var(--color-bg);}.main-nav .nav-list li:last-child{border-bottom:none;}.main-nav .nav-list a{display:block;padding:1rem;text-align:center;width:100%;}}section{padding:4rem 0;position:relative;}section:nth-of-type(even){background-color:var(--color-bg);}.hero__overlay p.tagline{font-size:clamp(1.2rem, 3vw, 1.8rem);margin-bottom:2rem;color:#fff;}.hero .button{margin-top:1.5rem;}.about p{max-width:800px;margin-left:auto;margin-right:auto;text-align:center;font-size:1.1rem;}.services__grid{display:grid;grid-template-columns:repeat(auto-fit, minmax(280px, 1fr));gap:1.5rem;}.card{background-color:var(--color-surface);border-radius:12px;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,0.08);display:flex;flex-direction:column;text-align:center;}.card img{width:100%;height:200px;object-fit:cover;display:block;}.card h3{margin:1.5rem 1rem 0.5rem;color:var(--color-primary);}.card p{padding:0 1rem 1.5rem;margin:0;flex-grow:1;font-size:0.95rem;}.contact{text-align:center;}.contact address{font-style:normal;margin-bottom:1rem;font-size:1.1rem;}.contact .phone-link{font-size:1.3rem;font-weight:bold;color:var(--color-accent);display:inline-block;margin-bottom:2rem;}.map-container{margin-top:2rem;margin-bottom:2rem;border-radius:12px;overflow:hidden;box-shadow:0 4px 15px rgba(0,0,0,0.08);}.map-container iframe{width:100%;height:350px;display:block;}form[data-wc-form="contact"]{max-width:500px;margin:0 auto;background-color:var(--color-surface);padding:2rem;border-radius:12px;box-shadow:0 4px 15px rgba(0,0,0,0.08);text-align:left;}.site-footer{background-color:var(--color-primary);color:#fff;padding:2rem 0;text-align:center;font-size:0.9rem;}.site-footer a{color:#fff;}.site-footer a:hover{text-decoration:underline;}@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, 600ms) ease-out forwards;}}@media (prefers-reduced-motion: reduce){.reveal{opacity:1;animation:none;}}@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);}}@media (min-width: 768px){h2{margin-bottom:3rem;}.services__grid{grid-template-columns:repeat(auto-fit, minmax(300px, 1fr));}.site-header .container{padding:0 2rem;}.main-nav .nav-list{display:flex;}.menu-toggle{display:none;}section{padding:6rem 0;}}