:root{

--green:#556B5D;
--green-dark:#35473D;

--sage:#A8B8A0;

--gold:#C9A45C;

--cream:#F8F3EA;

--white:#FFFFFF;

--text:#292929;

--muted:#707070;


--shadow:
0 25px 60px rgba(0,0,0,.08);


--radius:32px;

}


/* =========================
RESET
========================= */


*{

box-sizing:border-box;

margin:0;

padding:0;

}


html{

scroll-behavior:smooth;

}


body{

font-family:
'Nunito',
sans-serif;

background:
linear-gradient(
180deg,
var(--cream),
#fff
);

color:var(--text);

line-height:1.7;

}



img{

max-width:100%;

display:block;

}



a{

text-decoration:none;

color:inherit;

}





/* =========================
HEADER
========================= */


.site-header{

position:sticky;

top:15px;

z-index:100;

max-width:1200px;

margin:auto;

background:
rgba(255,255,255,.75);

backdrop-filter:
blur(18px);

border-radius:30px;

box-shadow:
0 15px 40px rgba(0,0,0,.08);

}



.nav-container{

display:flex;

justify-content:space-between;

align-items:center;

padding:15px 30px;

}




.brand{

display:flex;

align-items:center;

gap:18px;

}



.logo{

width:70px;

height:70px;

border-radius:50%;

object-fit:cover;

border:5px solid white;

box-shadow:
0 15px 35px rgba(0,0,0,.15);

}




.brand-text h2{

font-family:
'Playfair Display',
serif;

font-size:28px;

color:var(--green-dark);

}



.brand-text p{

font-size:13px;

color:var(--muted);

}




.desktop-nav{

display:flex;

gap:10px;

}



.desktop-nav a{

padding:10px 18px;

border-radius:30px;

font-weight:700;

transition:.3s;

}



.desktop-nav a:hover{

background:var(--green);

color:white;

}





.menu-button{

display:none;

border:0;

background:none;

font-size:28px;

}





.mobile-menu{

display:none;

flex-direction:column;

padding:20px;

gap:10px;

}



.mobile-menu a{

padding:12px;

border-radius:15px;

background:white;

}





/* =========================
HERO
========================= */


.hero{

max-width:1200px;

margin:80px auto;

padding:30px;

display:grid;

grid-template-columns:
1fr 1fr;

gap:60px;

align-items:center;

}



.hero-label{

display:inline-block;

background:
rgba(85,107,93,.1);

color:var(--green);

padding:8px 18px;

border-radius:50px;

font-weight:700;

margin-bottom:20px;

}



.hero h1{

font-family:
'Playfair Display',
serif;

font-size:60px;

line-height:1.1;

color:var(--green-dark);

margin-bottom:25px;

}



.hero p{

font-size:20px;

color:var(--muted);

margin-bottom:35px;

}




.hero-buttons{

display:flex;

gap:15px;

}



.button{

padding:15px 32px;

border-radius:50px;

font-weight:700;

transition:.3s;

}



.primary{

background:var(--green);

color:white;

}



.secondary{

border:2px solid var(--green);

color:var(--green);

}



.button:hover{

transform:
translateY(-5px);

}




/* SLIDER */


.hero-slider{

overflow:hidden;

border-radius:40px;

box-shadow:var(--shadow);

}



.slides{

display:flex;

transition:.7s ease;

}



.slide{

min-width:100%;

height:520px;

}



.slide img{

width:100%;

height:100%;

object-fit:cover;

}



.slider-dots{

position:absolute;

}




/* =========================
SECTIONS
========================= */


.section{

max-width:1200px;

margin:70px auto;

padding:40px;

background:white;

border-radius:40px;

box-shadow:var(--shadow);

}


section[id]{

    scroll-margin-top:140px;

}


.section h2{

font-family:
'Playfair Display',
serif;

font-size:42px;

color:var(--green-dark);

margin-bottom:35px;

}



.section h3{

color:var(--green);

margin-bottom:15px;

}




.about{

display:grid;

grid-template-columns:
1.5fr 1fr;

gap:40px;

}




.section-card,
.quote-card{

padding:35px;

border-radius:30px;

background:
linear-gradient(
145deg,
#fff,
var(--cream)
);

}




.welcome{

font-weight:800;

color:var(--gold);

font-size:20px;

}




.contact-list{

margin-top:25px;

padding-left:20px;

}




.quote-card{

text-align:center;

font-style:italic;

}





/* =========================
FEATURE CARDS
========================= */


.feature-grid{

display:grid;

grid-template-columns:
repeat(4,1fr);

gap:25px;

}



.feature-card{

padding:30px;

border-radius:30px;

background:
linear-gradient(
145deg,
#fff,
var(--cream)
);

transition:.4s;

}



.feature-card:hover{

transform:
translateY(-10px);

box-shadow:var(--shadow);

}



.icon{

font-size:45px;

margin-bottom:15px;

}






/* =========================
PERSONAL
========================= */


.team-grid{

display:grid;

grid-template-columns:
repeat(4,1fr);

gap:25px;

}



.person-card{

background:white;

border-radius:35px;

overflow:hidden;

box-shadow:
0 15px 40px rgba(0,0,0,.08);

transition:.4s;

}



.person-card:hover{

transform:
translateY(-10px);

}



.person-card img{

height:320px;

width:100%;

object-fit:cover;

}



.person-card h3,
.person-card p{

padding-left:20px;

}





/* =========================
ACCORDION
========================= */


.accordion{

width:100%;

padding:18px 25px;

border:0;

border-radius:20px;

background:

linear-gradient(
135deg,
var(--green),
var(--green-dark)
);

color:white;

font-size:18px;

font-weight:700;

margin-bottom:10px;

cursor:pointer;

}



.panel{

display:none;

padding:25px;

background:var(--cream);

border-radius:0 0 20px 20px;

margin-bottom:20px;

}




/* =========================
LINKS
========================= */


.links-grid{

display:grid;

grid-template-columns:
repeat(3,1fr);

gap:20px;

}



.links-grid a{

padding:20px;

background:

var(--cream);

border-radius:20px;

font-weight:700;

color:var(--green);

transition:.3s;

}



.links-grid a:hover{

background:var(--green);

color:white;

transform:
translateY(-5px);

}





/* =========================
FOOTER
========================= */


footer{

margin-top:80px;

padding:50px;

text-align:center;

background:var(--green-dark);

color:white;

border-radius:50px 50px 0 0;

}





/* =========================
MOBILE
========================= */


@media(max-width:900px){


.site-header{

top:0;

border-radius:0;

}



.desktop-nav{

display:none;

}



.menu-button{

display:block;

}



.mobile-menu.show{

display:flex;

}



.hero{

grid-template-columns:1fr;

margin:40px auto;

}



.hero h1{

font-size:42px;

}



.slide{

height:350px;

}



.about{

grid-template-columns:1fr;

}



.feature-grid{

grid-template-columns:1fr;

}



.team-grid{

grid-template-columns:
repeat(2,1fr);

}



.links-grid{

grid-template-columns:1fr;

}



.section{

margin:30px 15px;

padding:25px;

}


}


@media(max-width:600px){


.team-grid{

grid-template-columns:1fr;

}


.hero h1{

font-size:34px;

}


.hero p{

font-size:17px;

}


}