:root{
--bg:#fcfbf8;
--bg-soft:#f3f4ef;
--text:#1f1f1f;
--muted:#5a5d59;
--accent:#7e9a82;
--accent-deep:#5f7866;
--accent-tint:#e7efe9;
--border:#d7ddd7;
--white:#ffffff;
--max:1200px;
--shadow:0 8px 24px rgba(31,31,31,.05);
}

*,
*::before,
*::after{
box-sizing:border-box;
}

html{
scroll-behavior:smooth;
}

@media (prefers-reduced-motion: reduce){
html{scroll-behavior:auto;}
*{animation:none !important; transition:none !important;}
}

body{
margin:0;
background:var(--bg);
color:var(--text);
font-family:Arial, Helvetica, sans-serif;
line-height:1.55;
}

img{
max-width:100%;
display:block;
}

a{
color:inherit;
text-decoration:none;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible{
outline:3px solid var(--text);
outline-offset:3px;
}

.skip-link{
position:absolute;
left:1rem;
top:-3.5rem;
background:#fff;
color:#111;
padding:.8rem 1rem;
border:2px solid #111;
z-index:5000;
}
.skip-link:focus{
top:1rem;
}

.wrap{
width:min(calc(100% - 2rem), var(--max));
margin:0 auto;
}

/* Header */

.site-header{
position:sticky;
top:0;
z-index:1000;
background:rgba(252,251,248,.98);
border-bottom:1px solid rgba(0,0,0,.06);
backdrop-filter:blur(8px);
}

.header-inner{
display:flex;
align-items:center;
justify-content:space-between;
gap:2rem;
padding:1rem 0;
}

.logo{
display:inline-flex;
align-items:center;
flex:0 0 auto;
}

.logo img{
height:42px;
width:auto;
display:block;
}

.nav{
display:flex;
align-items:center;
justify-content:flex-end;
flex-wrap:nowrap;
gap:1.1rem;
font-size:.92rem;
flex:1 1 auto;
}

.nav a{
color:var(--text);
text-decoration:none;
white-space:nowrap;
line-height:1;
}

.nav .button-link{
display:inline-block;
background:var(--accent);
color:#ffffff !important;
border:1px solid var(--accent-deep);
padding:.78rem 1rem;
border-radius:6px;
font-size:.88rem;
font-weight:600;
line-height:1;
box-shadow:none;
}

.nav .button-link:hover{
background:var(--accent-deep);
}

/* Buttons */

.button-link,
button{
display:inline-block;
background:var(--accent);
color:#ffffff !important;
border:1px solid var(--accent-deep);
padding:.78rem 1rem;
border-radius:6px;
font-size:.88rem;
font-weight:600;
box-shadow:none;
}

.button-link:hover,
button:hover{
background:var(--accent-deep);
}

.secondary-link{
display:inline-block;
padding:.78rem 1rem;
border:1px solid var(--border);
border-radius:6px;
background:#ffffff;
color:var(--text);
font-size:.88rem;
font-weight:600;
}

/* Typography */

h1,
h2,
h3{
font-family:Georgia, "Times New Roman", serif;
line-height:1.15;
margin:0 0 1rem;
font-weight:500;
}

h1{
font-size:clamp(2rem, 3.2vw, 3rem);
}

h2{
font-size:clamp(1.4rem, 2.2vw, 2rem);
}

h3{
font-size:1.1rem;
}

p{
margin:0 0 1rem;
max-width:32rem;
color:var(--muted);
font-size:.95rem;
}

.lead{
font-size:1rem;
color:var(--muted);
}

.eyebrow{
text-transform:uppercase;
letter-spacing:.14em;
font-size:.78rem;
color:var(--accent-deep);
margin:0 0 .9rem;
font-weight:700;
}

/* Layout */

.section{
padding:3.5rem 0;
}

.grid{
display:grid;
grid-template-columns:repeat(12, 1fr);
gap:1rem;
}

.col-7{grid-column:span 8;}
.col-5{grid-column:span 4;}
.col-6{grid-column:span 6;}

.card{
background:#fff;
border:1px solid rgba(95,120,102,.12);
box-shadow:var(--shadow);
}

.panel{
padding:1.2rem 1.2rem 1.4rem;
}

.panel p,
.panel h2,
.panel h3{
max-width:32rem;
}

/* Hero */

.hero{
padding:1.5rem 0 3rem;
}

.hero-grid{
display:grid;
grid-template-columns:1fr 1fr;
gap:1rem;
}

.hero-copy{
padding:2rem;
display:flex;
flex-direction:column;
justify-content:center;
min-height:600px;
}

.hero-actions{
display:flex;
flex-wrap:wrap;
gap:.9rem;
margin-top:1.5rem;
}

.hero-image{
min-height:600px;
border-radius:18px;
background:
linear-gradient(rgba(31,31,31,.14), rgba(31,31,31,.14)),
url('images/hero.jpg') center/cover no-repeat;
}

/* Images */

.image-panel{
min-height:400px;
border-radius:18px;
background:#ddd center/cover no-repeat;
}

.tall{
min-height:500px;
}

.intro-image{
background-image:url('images/intro.jpg');
}

.bio-image{
background-image:url('images/founder.jpg');
}

.course-image{
background-image:url('images/course.jpg');
}

.wide-image{
min-height:420px;
background-image:url('images/wide.jpg');
background-position:center;
background-size:cover;
background-repeat:no-repeat;
}

/* Lists */

.list-clean{
list-style:none;
padding:0;
margin:1rem 0 0;
}

.list-clean li{
padding:.55rem 0;
border-bottom:1px solid rgba(95,120,102,.12);
color:var(--text);
}

.list-clean li:last-child{
border-bottom:0;
}

/* Testimonials */

.testimonials{
display:grid;
grid-template-columns:repeat(3, 1fr);
gap:1rem;
}

.quote{
padding:1.2rem;
}

.quote blockquote{
margin:0 0 1rem;
font-family:Georgia, "Times New Roman", serif;
font-size:1.02rem;
line-height:1.45;
color:var(--text);
}

/* Gallery */

.gallery{
display:grid;
grid-template-columns:1fr 1fr;
gap:1rem;
}

.gallery-col{
display:grid;
gap:1rem;
}

.gallery-card{
min-height:260px;
border-radius:18px;
background:#ddd center/cover no-repeat;
}

.g1{background-image:url('images/gallery1.jpg');}
.g2{background-image:url('images/gallery2.jpg');}
.g3{background-image:url('images/gallery3.jpg');}
.g4{background-image:url('images/gallery4.jpg');}

/* CTA */

.cta-band{
background:var(--accent-tint);
border:1px solid rgba(95,120,102,.12);
padding:2rem;
border-radius:18px;
}

/* Contact */

.form-panel{
padding:1.5rem;
}

form{
display:grid;
gap:1rem;
}

label{
display:block;
font-weight:700;
margin-bottom:.35rem;
}

input,
textarea{
width:100%;
border:1px solid #aeb7b1;
padding:.85rem .95rem;
border-radius:6px;
background:#fff;
color:var(--text);
font:inherit;
}

textarea{
min-height:180px;
resize:vertical;
}

.small-note{
font-size:.85rem;
color:var(--muted);
}

/* Footer */

.footer{
border-top:1px solid rgba(95,120,102,.12);
padding:2rem 0;
margin-top:2rem;
background:#fff;
}

.footer-inner{
padding:0;
}

.footer-grid{
display:grid;
grid-template-columns:1fr 1fr 1fr;
gap:1rem;
}

.footer-links,
.social-links{
display:grid;
gap:.5rem;
}

.copyright{
margin-top:1.25rem;
padding-top:1rem;
border-top:1px solid rgba(95,120,102,.12);
color:var(--muted);
font-size:.85rem;
}

/* Mobile */

@media (max-width: 980px){
.header-inner{
flex-direction:column;
align-items:flex-start;
gap:1rem;
}

.nav{
flex-wrap:wrap;
justify-content:flex-start;
gap:.9rem 1rem;
}

.hero-grid,
.grid,
.gallery,
.testimonials,
.footer-grid{
grid-template-columns:1fr;
}

.col-7,
.col-5,
.col-6{
grid-column:1 / -1;
}

.hero-image,
.hero-copy{
min-height:420px;
}
}
