
:root {
--color-primary: #349a9c;
--color-primary-dark: #2a7d7f;
--color-primary-soft: #eaf5f5;
--color-bg: #ffffff;
--color-bg-alt: #f1f7f7;
--color-text: #334155;
--color-heading: #0f172a;
--color-muted: #64748b;
--font-heading: 'Lora', serif;
--font-body: 'Merriweather Sans', sans-serif;
--container-width: 1200px;
--spacing-section: 6rem;
--radius-card: 4px;
--transition: 0.4s ease;
}
* { margin: 0; padding: 0; box-sizing: border-box; }
body { font-family: var(--font-body); color: var(--color-text); line-height: 1.6; background-color: var(--color-bg); overflow-x: hidden; }
h1, h2, h3, h4 { font-family: var(--font-heading); color: var(--color-heading); font-weight: 700; line-height: 1.2; }
a { text-decoration: none; transition: var(--transition); color: inherit; }
ul { list-style: none; }
img { max-width: 100%; height: auto; }
.container { max-width: var(--container-width); margin: 0 auto; padding: 0 1.5rem; }
.btn-primary { background-color: var(--color-primary); color: #ffffff; padding: 0.8rem 2rem; border-radius: var(--radius-card); display: inline-flex; align-items: center; gap: 0.5rem; font-weight: 700; border: 2px solid var(--color-primary); }
.btn-primary:hover { background-color: var(--color-primary-dark); border-color: var(--color-primary-dark); transform: translateY(-4px); color: #ffffff; }
.btn-outline { border: 2px solid var(--color-primary); color: var(--color-primary); padding: 0.8rem 2rem; border-radius: var(--radius-card); font-weight: 700; background: transparent; }
.btn-outline:hover { background-color: var(--color-primary); color: #ffffff; transform: translateY(-4px); }
header { position: fixed; top: 0; width: 100%; background: rgba(255, 255, 255, 0.95); backdrop-filter: blur(10px); z-index: 1000; border-bottom: 1px solid var(--color-primary-soft); height: 80px; display: flex; align-items: center; }
.nav-container { display: flex; justify-content: space-between; align-items: center; width: 100%; max-width: var(--container-width); margin: 0 auto; padding: 0 1.5rem; }
.logo { font-family: var(--font-heading); font-size: 1.8rem; font-weight: 700; color: var(--color-primary); }
.nav-menu { display: flex; align-items: center; gap: 2.5rem; }
.nav-links { display: flex; gap: 2rem; align-items: center; }
.nav-link { font-weight: 400; font-size: 0.95rem; }
.nav-link:hover { color: var(--color-primary); }
.nav-toggle { display: none; background: none; border: none; font-size: 1.5rem; cursor: pointer; color: var(--color-primary); }
.hero { padding: 12rem 0 10rem 0; position: relative; background: linear-gradient(135deg, #ffffff 50%, var(--color-primary-soft) 100%); overflow: hidden; }
.hero-content { display: grid; grid-template-columns: 1fr 1fr; gap: 4rem; align-items: center; }
.hero-text { max-width: 600px; opacity: 0; animation: fadeIn 0.4s forwards; }
.hero h1 { font-size: clamp(2.5rem, 5vw, 4.5rem); margin-bottom: 1.5rem; line-height: 1.1; }
.hero p { font-size: 1.25rem; margin-bottom: 2.5rem; color: var(--color-muted); max-width: 500px; }
.hero-actions { display: flex; gap: 1rem; }
.hero-graphic { position: relative; opacity: 0; animation: fadeIn 0.4s forwards; animation-delay: 0.2s; }
.hero-box { aspect-ratio: 1; background-color: var(--color-primary); border-radius: 40% 60% 70% 30% / 40% 50% 60% 70%; transform: rotate(-5deg); opacity: 0.1; position: absolute; width: 100%; top: 0; z-index: -1; }
.hero-icon { font-size: 10rem; color: var(--color-primary); display: flex; justify-content: center; align-items: center; height: 100%; }
.wave-divider { position: absolute; bottom: 0; width: 100%; line-height: 0; }
.section { padding: var(--spacing-section) 0; opacity: 0; transition: opacity 0.4s ease; }
.section.revealed { opacity: 1; }
.bg-alt { background-color: var(--color-bg-alt); }
.about-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 5rem; align-items: center; }
.about-text { order: 1; }
.about-visual { order: 2; position: relative; padding: 2rem; }
.about-visual::before { content: ""; position: absolute; top: 0; right: 0; width: 80%; height: 80%; border: 15px solid var(--color-primary-soft); z-index: -1; }
.about-tagline { color: var(--color-primary); text-transform: uppercase; letter-spacing: 2px; font-weight: 700; font-size: 0.85rem; margin-bottom: 1rem; display: block; }
.section-title { font-size: 2.5rem; margin-bottom: 1.5rem; }
.featured-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(300px, 1fr)); gap: 2rem; margin-top: 3rem; }
.category-card { background: var(--color-bg); padding: 3rem 2rem; border-radius: var(--radius-card); transition: var(--transition); border-bottom: 4px solid transparent; text-align: center; }
.category-card:hover { transform: translateY(-4px); border-bottom-color: var(--color-primary); box-shadow: 0 20px 40px rgba(0,0,0,0.05); }
.category-icon { font-size: 2.5rem; color: var(--color-primary); margin-bottom: 1.5rem; }
.reviews-container { max-width: 800px; margin: 0 auto; }
.testimonial-card { padding: 3rem; position: relative; font-family: var(--font-heading); font-style: italic; font-size: 1.5rem; text-align: center; }
.testimonial-card i { color: var(--color-primary-soft); font-size: 3rem; position: absolute; top: 0; left: 0; z-index: -1; }
.testimonial-author { display: block; font-style: normal; font-family: var(--font-body); font-size: 1rem; font-weight: 700; margin-top: 2rem; text-transform: uppercase; color: var(--color-primary); }
.info-grid { display: grid; grid-template-columns: 1fr 1.5fr; gap: 4rem; }
.info-card { background: var(--color-bg); padding: 2.5rem; border-radius: var(--radius-card); box-shadow: 0 10px 30px rgba(0,0,0,0.03); }
.info-item { display: flex; gap: 1rem; margin-bottom: 2rem; }
.info-item i { font-size: 1.25rem; color: var(--color-primary); margin-top: 0.25rem; }
.info-item h4 { font-size: 1.1rem; margin-bottom: 0.25rem; }
.hours-list li { display: flex; justify-content: space-between; padding: 0.5rem 0; border-bottom: 1px solid var(--color-primary-soft); font-size: 0.9rem; }
.hours-list li:last-child { border: none; }
.map-container { border-radius: 8px; overflow: hidden; height: 100%; min-height: 400px; }
footer { background-color: var(--color-heading); color: #e2e8f0; padding: 5rem 0 2rem 0; }
.footer-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 3rem; margin-bottom: 4rem; }
.footer-column h3 { color: #ffffff; font-size: 1.2rem; margin-bottom: 1.5rem; }
.footer-about p { font-size: 0.9rem; margin-bottom: 1.5rem; }
.social-links { display: flex; gap: 1rem; }
.social-link { width: 36px; height: 36px; background: rgba(255,255,255,0.1); display: flex; align-items: center; justify-content: center; border-radius: 50%; }
.social-link:hover { background: var(--color-primary); color: #ffffff; }
.footer-links li { margin-bottom: 0.8rem; }
.footer-links a:hover { color: var(--color-primary); padding-left: 5px; }
.footer-bottom { border-top: 1px solid rgba(255,255,255,0.1); padding-top: 2rem; text-align: center; font-size: 0.85rem; }
.legal-links { margin-top: 1rem; display: flex; justify-content: center; gap: 1.5rem; }
@keyframes fadeIn { from { opacity: 0; } to { opacity: 1; } }
@media (max-width: 768px) {
header { height: 70px; }
.nav-toggle { display: block; }
.nav-links { display: none; position: absolute; top: 70px; left: 0; width: 100%; background: #ffffff; flex-direction: column; padding: 2rem; gap: 1.5rem; border-bottom: 2px solid var(--color-primary); box-shadow: 0 10px 20px rgba(0,0,0,0.1); }
.nav-links.active { display: flex; }
.hero { padding: 8rem 0 4rem 0; text-align: center; }
.hero-content { grid-template-columns: 1fr; gap: 2rem; }
.hero-text { margin: 0 auto; }
.hero-actions { justify-content: center; flex-direction: column; }
.hero-graphic { display: none; }
.about-grid, .info-grid { grid-template-columns: 1fr; gap: 3rem; }
.about-text { order: 2; }
.about-visual { order: 1; }
.section { padding: 4rem 0; }
}
a:focus,button:focus{outline:2px solid var(--color-accent);outline-offset:2px;}@font-face{font-display:swap;}.btn:not(.btn-primary):not(.btn-outline):not(.btn-secondary):hover,a.btn:not(.btn-primary):not(.btn-outline):not(.btn-secondary):hover{color:#fff}.btn-primary,.btn-primary:hover{color:#fff}@media(max-width:768px){.btn+.btn,a.btn+a.btn,.hero-buttons .btn,.hero-cta .btn,.hero .btn+.btn,.hero a+a{margin-top:0.75rem;}}.nav-container,.container{max-width:var(--container-width,1200px);margin-left:auto;margin-right:auto;padding-left:1.5rem;padding-right:1.5rem;width:100%;box-sizing:border-box;}main>section:nth-of-type(odd),body>section:nth-of-type(odd){background:var(--color-bg,#fff);}main>section:nth-of-type(even),body>section:nth-of-type(even){background:var(--color-bg-alt,var(--color-secondary,#f5f0eb));}.section-on-dark,.section-on-dark *{color:#fff!important}.section-on-dark .section-tag,.section-on-dark .featured-badge{color:rgba(255,255,255,0.85)!important}.section-on-dark .btn-outline{border-color:rgba(255,255,255,0.8)}.section-on-light h2,.section-on-light h3{color:var(--color-heading,#0F172A)!important}.section-on-light p,.section-on-light span,.section-on-light li{color:var(--color-text,#334155)!important}.section-on-light .section-tag,.section-on-light .featured-badge{color:var(--color-primary,#B91C1C)!important}.section-on-light a:not(.btn){color:var(--color-primary,#B91C1C)!important}.cta-section,.cta-section *{color:#fff}footer{background:var(--color-primary,var(--color-accent,var(--color-heading,#0F172A)))!important;margin-top:0}footer.footer-on-dark,footer.footer-on-dark *{color:#E2E8F0!important}footer.footer-on-dark h3,footer.footer-on-dark h4,footer.footer-on-dark .footer-logo{color:#fff!important;margin-bottom:1rem}footer.footer-on-dark a,footer.footer-on-dark a:visited{color:#E2E8F0!important}footer.footer-on-dark a:hover{color:#fff!important}footer.footer-on-dark .footer-bottom{border-top-color:rgba(255,255,255,0.15)}footer.footer-on-light,footer.footer-on-light *{color:#1a1a1a!important}footer.footer-on-light h3,footer.footer-on-light h4,footer.footer-on-light .footer-logo{color:#0F172A!important;margin-bottom:1rem}footer.footer-on-light a,footer.footer-on-light a:visited{color:#334155!important}footer.footer-on-light a:hover{color:#000!important}footer.footer-on-light .footer-bottom{border-top-color:rgba(0,0,0,0.15)}footer:not(.footer-on-light):not(.footer-on-dark){color:#E2E8F0}footer:not(.footer-on-light):not(.footer-on-dark) h3,footer:not(.footer-on-light):not(.footer-on-dark) h4,footer:not(.footer-on-light):not(.footer-on-dark) .footer-logo{color:#fff}footer:not(.footer-on-light):not(.footer-on-dark) a{color:#E2E8F0}.footer-about p{margin-bottom:1.5rem}.footer-bottom{border-top:1px solid rgba(127,127,127,0.15);padding-top:2rem;margin-top:3rem;text-align:center;font-size:0.85rem}.footer-bottom .legal-links{border:none;margin-top:0.5rem;font-size:0.75rem}[class*='dark-bg'],[class*='bg-dark'],[class*='bg-secondary']{color:#fff}.featured .btn-outline{border-color:rgba(255,255,255,0.8)}.nav .btn-primary,nav .btn-primary,.hero .btn-primary,header .btn-primary{background:var(--color-primary);color:#fff;border-radius:var(--radius-card,8px);padding:0.75rem 1.5rem;border:none;font-weight:600}.section-tag{color:var(--color-primary,#B91C1C)}.stat-card h3,.stat-card h4,.stat-number{color:var(--color-primary,#B91C1C);font-weight:700}@media(prefers-reduced-motion:no-preference){.fl-fade-in{opacity:0;transform:translateY(24px);will-change:opacity,transform;}.fl-fade-in.fl-ready{transition:opacity .7s ease-out,transform .7s ease-out;}.fl-fade-in.fl-visible{opacity:1;transform:none;}.fl-fade-in.fl-stagger > *{opacity:0;transform:translateY(16px);}.fl-fade-in.fl-ready.fl-stagger > *{transition:opacity .6s ease-out,transform .6s ease-out;}.fl-fade-in.fl-visible.fl-stagger > *{opacity:1;transform:none;}.fl-fade-in.fl-visible.fl-stagger > *:nth-child(1){transition-delay:.05s}.fl-fade-in.fl-visible.fl-stagger > *:nth-child(2){transition-delay:.12s}.fl-fade-in.fl-visible.fl-stagger > *:nth-child(3){transition-delay:.19s}.fl-fade-in.fl-visible.fl-stagger > *:nth-child(4){transition-delay:.26s}.fl-fade-in.fl-visible.fl-stagger > *:nth-child(5){transition-delay:.33s}.fl-fade-in.fl-visible.fl-stagger > *:nth-child(6){transition-delay:.40s}.fl-fade-in.fl-visible.fl-stagger > *:nth-child(n+7){transition-delay:.45s}}

.cookie-banner{position:fixed;bottom:0;left:0;right:0;background:#1e293b;color:#e2e8f0;padding:1rem 1.5rem;display:flex;flex-wrap:wrap;align-items:center;gap:1rem;z-index:9999;font-size:0.85rem;box-shadow:0 -2px 10px rgba(0,0,0,0.3)}
.cookie-banner a{color:#93c5fd}
.cookie-banner button{padding:0.4rem 1rem;border:none;border-radius:6px;cursor:pointer;font-size:0.8rem;font-weight:600}
.cookie-banner .cb-accept{background:#2563eb;color:#fff}
.cookie-banner .cb-reject{background:transparent;color:#e2e8f0;border:1px solid #475569}
