:root{
--primary:#2d6a4f;
--primary-dark:#1b4332;
--secondary:#95d5b2;
--accent:#e9c46a;
--light:#f8f9fa;
--dark:#212529;
--muted:#6c757d;
--font-sans:'Inter',system-ui,-apple-system,sans-serif;
--shadow-sm:0 .125rem .25rem rgba(0,0,0,.075);
--shadow-md:0 .5rem 1rem rgba(0,0,0,.1);
--shadow-lg:0 1rem 3rem rgba(0,0,0,.15);
--transition:all .3s ease
}
body{
font-family:var(--font-sans);
color:var(--dark);
overflow-x:hidden
}
h1,h2,h3,h4,h5,h6{
font-weight:700;
letter-spacing:-.02em
}
h1{font-size:clamp(2rem,5vw,3.5rem)}
h2{font-size:clamp(1.75rem,4vw,2.75rem)}
h3{font-size:clamp(1.25rem,3vw,2rem)}
p{font-size:1.0625rem;line-height:1.7;color:var(--dark)}
a{color:var(--primary);transition:var(--transition)}
a:hover{color:var(--primary-dark)}
.btn-primary{
background:var(--primary);
border-color:var(--primary);
color:#fff;
font-weight:600;
padding:.75rem 2rem;
border-radius:2rem;
transition:var(--transition)
}
.btn-primary:hover{
background:var(--primary-dark);
border-color:var(--primary-dark);
transform:translateY(-2px);
box-shadow:var(--shadow-md)
}
.btn-outline-primary{
color:var(--primary);
border-color:var(--primary);
border-radius:2rem;
font-weight:600;
padding:.75rem 2rem
}
.btn-outline-primary:hover{
background:var(--primary);
color:#fff;
transform:translateY(-2px)
}
.navbar{
padding:1rem 0;
transition:var(--transition)
}
.navbar.scrolled{
background:rgba(255,255,255,.98)!important;
backdrop-filter:blur(10px);
box-shadow:0 2px 20px rgba(0,0,0,.08)
}
.navbar-brand img{
height:40px
}
.nav-link{
font-weight:500;
color:var(--dark)!important;
margin:0 .5rem;
position:relative
}
.nav-link::after{
content:'';
position:absolute;
bottom:0;
left:50%;
transform:translateX(-50%);
width:0;
height:2px;
background:var(--primary);
transition:var(--transition)
}
.nav-link:hover::after{width:100%}
.hero{
min-height:90vh;
display:flex;
align-items:center;
position:relative;
overflow:hidden;
background-size:cover;
background-position:center;
background-attachment:fixed;
background-color: #1b4332
}
.hero::before{
content:'';
position:absolute;
inset:0;
background:linear-gradient(135deg,rgba(27,67,50,.8),rgba(45,106,79,.6))
}
.hero *{position:relative;z-index:2}
.hero h1{color:#fff;font-size:clamp(2.5rem,6vw,4.5rem);line-height:1.1}
.hero p{color:rgba(255,255,255,.9);font-size:1.25rem;max-width:600px}
.hero .btn-light{
background:#fff;
color:var(--primary-dark);
border-radius:2rem;
font-weight:600;
padding:.75rem 2.5rem;
box-shadow:var(--shadow-lg)
}
.section-padding{
padding:6rem 0
}
.bg-soft{background:var(--light)}
.bg-primary{background:var(--primary)!important}
.text-primary{color:var(--primary)!important}
.card{
border:none;
border-radius:1rem;
overflow:hidden;
transition:var(--transition);
box-shadow:var(--shadow-sm)
}
.card:hover{
transform:translateY(-6px);
box-shadow:var(--shadow-lg)
}
.card-img-top{
height:260px;
object-fit:cover
}
.service-card .card-body{
padding:2rem
}
.service-card .icon{
font-size:2.5rem;
color:var(--primary);
margin-bottom:1rem
}
.pricing-card{
background:#fff;
border-radius:1.5rem;
padding:2.5rem 2rem;
text-align:center;
box-shadow:var(--shadow-sm);
transition:var(--transition);
position:relative
}
.pricing-card.featured{
background:var(--primary);
color:#fff;
transform:scale(1.03);
box-shadow:var(--shadow-lg)
}
.pricing-card.featured .btn{
background:#fff;
color:var(--primary-dark);
border:none
}
.pricing-card .price{
font-size:3rem;
font-weight:700;
margin:1rem 0
}
.pricing-card ul{
list-style:none;
padding:0;
text-align:left
}
.pricing-card ul li{
padding:.5rem 0;
border-bottom:1px solid rgba(0,0,0,.05)
}
.pricing-card.featured ul li{border-color:rgba(255,255,255,.15)}
.testimonial-card{
background:#fff;
border-radius:1rem;
padding:2rem;
box-shadow:var(--shadow-sm);
position:relative
}
.testimonial-card::before{
content:'\f10d';
font-family:'Font Awesome 6 Free';
font-weight:900;
position:absolute;
top:1rem;
right:1.5rem;
font-size:2rem;
color:var(--secondary);
opacity:.3
}
.testimonial-card .stars{color:var(--accent)}
.gallery-item{
position:relative;
overflow:hidden;
border-radius:1rem;
margin-bottom:1.5rem;
cursor:pointer
}
.gallery-item img{
transition:var(--transition);
height:300px;
width:100%;
object-fit:cover
}
.gallery-item:hover img{transform:scale(1.05)}
.gallery-item .overlay{
position:absolute;
inset:0;
background:rgba(27,67,50,.7);
display:flex;
align-items:center;
justify-content:center;
opacity:0;
transition:var(--transition);
color:#fff;
font-size:1.5rem
}
.gallery-item:hover .overlay{opacity:1}
.contact-form .form-control{
border-radius:1rem;
border:2px solid #e9ecef;
padding:.75rem 1.25rem;
font-size:1rem;
transition:var(--transition)
}
.contact-form .form-control:focus{
border-color:var(--primary);
box-shadow:0 0 0 .2rem rgba(45,106,79,.15)
}
/* Fix contrast: form labels inside bg-overlay sections inherit white text from .bg-overlay>* */
.bg-overlay .contact-form .form-label,
.bg-overlay .contact-form label {
    color: var(--dark) !important;
}
/* Ensure form text elements have proper contrast on white form background */
.bg-overlay .contact-form p,
.bg-overlay .contact-form .form-text,
.bg-overlay .contact-form .form-check-label {
    color: var(--dark) !important;
}
footer{
background:var(--primary-dark);
color:rgba(255,255,255,.85);
padding:4rem 0 2rem
}
footer a{
color:rgba(255,255,255,.7);
text-decoration:none;
transition:var(--transition)
}
footer a:hover{color:#fff}
footer h5{color:#fff;font-weight:600;margin-bottom:1.5rem}
footer p, footer span, footer .text-muted, footer .small, footer .text-white-50 {
    color: rgba(255,255,255,.85) !important;
}
footer .social-links a{
display:inline-flex;
align-items:center;
justify-content:center;
width:40px;
height:40px;
border-radius:50%;
background:rgba(255,255,255,.1);
margin-right:.5rem;
font-size:1.1rem
}
footer .social-links a:hover{background:var(--accent);color:var(--dark)}
.footer-bottom{
border-top:1px solid rgba(255,255,255,.1);
padding-top:1.5rem;
margin-top:2rem
}
.aos-animate{
opacity:1!important;
transform:none!important
}
.form-notification{
position:fixed;
top:2rem;
right:2rem;
background:var(--primary);
color:#fff;
padding:1rem 2rem;
border-radius:2rem;
box-shadow:var(--shadow-lg);
z-index:9999;
opacity:0;
transform:translateY(-20px);
transition:opacity .3s,transform .3s;
pointer-events:none
}
.form-notification.show{
opacity:1;
transform:translateY(0);
pointer-events:auto
}
.cookie-banner{
position:fixed;
bottom:0;
left:0;
right:0;
background:#fff;
padding:1.5rem 2rem;
box-shadow:0 -4px 20px rgba(0,0,0,.1);
z-index:9998;
display:none;
align-items:center;
justify-content:space-between;
flex-wrap:wrap;
gap:1rem
}
.cookie-banner.show{display:flex}
.cookie-banner p{margin:0;font-size:.95rem}
.cookie-banner .btn{
border-radius:2rem;
padding:.5rem 1.5rem;
font-size:.9rem;
font-weight:600
}
.carousel-indicators button{
width:12px;
height:12px;
border-radius:50%!important;
background:var(--primary)!important;
opacity:.4
}
.carousel-indicators .active{opacity:1}
.faq-accordion .accordion-button{
background:transparent;
color:var(--dark);
font-weight:600;
box-shadow:none
}
.faq-accordion .accordion-button:not(.collapsed){
color:var(--primary);
background:transparent
}
.faq-accordion .accordion-button::after{
background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%232d6a4f'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e\")\n}
.faq-accordion .accordion-body{padding-top:0}
.section-header{
margin-bottom:3rem
}
.section-header .subtitle{
text-transform:uppercase;
letter-spacing:3px;
color:var(--primary);
font-weight:600;
font-size:.85rem
}
.section-header h2{margin:.5rem 0 1rem}
.bg-overlay{
background-size:cover;
background-position:center;
position:relative;
background-color: #1b4332
}
.bg-overlay::before{
content:'';
position:absolute;
inset:0;
background:linear-gradient(rgba(0,0,0,.6),rgba(0,0,0,.6))
}
.bg-overlay>*{position:relative;z-index:2;color:#fff}
.cta-section{
background:var(--primary);
color:#fff;
border-radius:2rem;
padding:4rem
}
@media(max-width:576px){
.section-padding{padding:3rem 0}
.cta-section{padding:2rem;border-radius:1rem}
.pricing-card.featured{transform:scale(1)}
.hero{padding-top:72px}
}