:root{
  --blue:#469FD5;
  --coral:#E76F51;
  --cream:#F7F5F0;
  --dark:#373F43;
  --muted:#55524f;
  --white:#ffffff;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  font-family:'Lato', Arial, sans-serif;
  color:var(--muted);
  background:var(--white);
  line-height:1.65;
}
h1,h2,h3{
  font-family:'Merriweather', Georgia, serif;
  color:var(--dark);
  line-height:1.3;
}
a{color:var(--blue); text-decoration:none;}
a:hover{text-decoration:underline;}
img{max-width:100%; display:block;}
ul{padding-left:1.2em;}
li{margin-bottom:.4em;}

.skip-link{position:absolute; left:-999px;}

/* Header / nav */
header.site-header{
  background:#000000;
  border-bottom:1px solid #000;
  position:sticky; top:0; z-index:100;
}
.header-inner{
  max-width:1100px; margin:0 auto; padding:16px 24px;
  display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:12px;
}
.site-title{
  font-family:'Merriweather', Georgia, serif;
  font-size:1.05rem;
  color:var(--white);
  font-weight:700;
  letter-spacing:.02em;
}
nav.main-nav{display:flex; flex-wrap:wrap; gap:22px;}
nav.main-nav a{
  color:var(--white);
  font-size:.85rem;
  font-weight:700;
  letter-spacing:.04em;
  text-transform:uppercase;
  opacity:.92;
}
nav.main-nav a:hover{color:var(--white); opacity:1; text-decoration:none;}
nav.main-nav a.active{color:var(--white); opacity:1; border-bottom:2px solid var(--coral); padding-bottom:4px;}

/* Hero */
.hero{
  position:relative;
  background-size:cover;
  background-position:center;
  background-attachment:fixed;
  color:var(--white);
  padding:160px 24px;
  text-align:center;
  overflow:hidden;
}
.hero::before{
  content:"";
  position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(20,26,32,.6), rgba(20,26,32,.7));
}
.hero-content{position:relative; max-width:780px; margin:0 auto;}
.hero h1{color:var(--white); font-size:2.3rem; margin-bottom:18px;}
.hero p{font-size:1.1rem; color:#ffffff;}

.hero.small{padding:100px 24px;}
.hero.small h1{font-size:1.9rem;}
.hero.plain{background:linear-gradient(135deg, var(--blue), var(--dark)); background-attachment:scroll;}
.hero.plain::before{content:none;}

/* iOS/Safari doesn't handle background-attachment:fixed well on mobile -> disable there */
@media (max-width:820px), (hover:none){
  .hero{background-attachment:scroll;}
}

.module-img{margin:14px 0 18px; border-radius:8px; overflow:hidden; max-width:420px;}
.module-img img{width:100%;}

/* Alternating content rows (image + text), Webador-style */
.content-row{
  display:flex;
  align-items:center;
  gap:52px;
  margin:10px 0 56px;
  flex-wrap:wrap;
}
.content-row:last-child{margin-bottom:0;}
.content-row.reverse{flex-direction:row-reverse;}
.content-row .col-text{flex:1 1 340px; min-width:280px;}
.content-row .col-img{flex:1 1 320px; min-width:260px;}
.content-row .col-img img{
  border-radius:14px;
  box-shadow:0 18px 40px rgba(30,40,50,.18);
  width:100%;
}
.content-row .col-text h2{margin-top:0;}

/* Scroll reveal */
.reveal{
  opacity:0;
  transform:translateY(28px);
  transition:opacity .8s ease, transform .8s ease;
}
.reveal.visible{opacity:1; transform:none;}
.reveal.from-left{transform:translateX(-40px);}
.reveal.from-right{transform:translateX(40px);}
.reveal.from-left.visible, .reveal.from-right.visible{transform:none;}

/* Sections */
section{padding:64px 24px;}
section.cream{background:var(--cream);}
.wrap{max-width:900px; margin:0 auto;}
.wrap-wide{max-width:1100px; margin:0 auto;}

section h2{font-size:1.5rem; margin-bottom:18px;}
section h3{font-size:1.15rem; margin:28px 0 10px; color:var(--blue);}

.lead{font-size:1.05rem; color:var(--dark);}

/* Team grid */
.team-grid{
  display:grid;
  grid-template-columns:repeat(3, 1fr);
  gap:36px;
  margin-top:30px;
}
.team-card{text-align:center;}
.team-card img{
  width:150px; height:150px; object-fit:cover;
  border-radius:50%;
  margin:0 auto 16px;
  border:3px solid var(--cream);
}
.team-card h3{margin:0 0 8px; font-size:1.05rem; color:var(--dark);}
.team-card p{font-size:.92rem; text-align:left; color:var(--muted);}

/* Program modules */
.module{
  border-top:1px solid #e7e3dc;
  padding:28px 0;
}
.module:first-child{border-top:none;}
.module h2{font-size:1.25rem; color:var(--blue); margin-bottom:10px;}
.module h4{margin:14px 0 6px; font-size:.95rem; color:var(--dark);}
.module ul{columns:2; column-gap:40px;}
.module ul li{break-inside:avoid;}

/* FAQ accordion */
details.faq{
  background:var(--white);
  border:1px solid #e7e3dc;
  border-radius:8px;
  padding:16px 20px;
  margin-bottom:14px;
}
details.faq summary{
  font-family:'Merriweather', Georgia, serif;
  font-weight:700;
  color:var(--dark);
  cursor:pointer;
  font-size:1rem;
}
details.faq[open] summary{color:var(--blue); margin-bottom:10px;}
details.faq ul{margin-top:8px;}

/* Buttons */
.btn{
  display:inline-block;
  background:var(--blue);
  color:var(--white) !important;
  padding:12px 28px;
  border-radius:30px;
  font-weight:700;
  text-decoration:none !important;
  margin-top:16px;
}
.btn:hover{background:#3a8bc0;}

.contact-box{
  background:linear-gradient(135deg, var(--blue), #2f6f97);
  color:#ffffff;
  border-radius:14px;
  padding:48px 36px;
  text-align:center;
  margin:20px 0 12px;
  box-shadow:0 16px 36px rgba(70,159,213,.28);
}
.contact-box h2{color:#ffffff; margin-top:0;}
.contact-box p{color:#eaf4fb; font-size:1.05rem;}
.contact-box a{
  display:inline-block;
  background:var(--coral);
  color:#ffffff !important;
  font-weight:700;
  padding:12px 30px;
  border-radius:30px;
  margin-top:10px;
  text-decoration:none !important;
  letter-spacing:.02em;
}
.contact-box a:hover{background:#d85f42;}

/* Footer */
footer.site-footer{
  background:var(--dark);
  color:#d9d9d9;
  text-align:center;
  padding:28px 24px;
  font-size:.85rem;
}
footer.site-footer a{color:#bfe0f5;}

@media (max-width:760px){
  .team-grid{grid-template-columns:repeat(2,1fr);}
  .module ul{columns:1;}
  .hero{padding:80px 20px;}
  .hero.small{padding:70px 20px;}
  .content-row, .content-row.reverse{flex-direction:column;}
}
@media (max-width:520px){
  .team-grid{grid-template-columns:1fr;}
  nav.main-nav{gap:14px; justify-content:center; width:100%;}
}
