:root{
  --espresso: #4B4038;
  --espresso-deep: #322A24;
  --charcoal: #4A4A4A;
  --sage: #8C9A8A;
  --sage-deep: #6E7C6D;
  --sand: #E7DED2;
  --cream: #FAF6F0;
  --ink: #2E2822;
  --white: #FFFFFF;
  --serif: 'Newsreader', serif;
  --sans: 'Inter', sans-serif;
  --heading-sans: 'Poppins', sans-serif;
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  font-family: var(--sans);
  color: var(--ink);
  background: var(--cream);
  line-height: 1.6;
  -webkit-font-smoothing: antialiased;
}
img{max-width:100%; display:block;}
a{color:inherit; text-decoration:none;}

/* ---------- NAV ---------- */
header.site-nav{
  position:absolute;
  top:0; left:0; right:0;
  z-index:20;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding: 18px 5vw;
}
header.site-nav.hero-nav{ padding: 28px 5vw; }
header.site-nav.on-light{ position:relative; background: var(--cream); }
header.site-nav.on-light .logo span,
header.site-nav.on-light nav.links a{ color: var(--charcoal); }
header.site-nav.on-light .logo img{ filter: none; }

header.site-nav .logo{ display:flex; align-items:center; gap:12px; }
header.site-nav .logo img{ height:38px; width:auto; }
header.site-nav .logo span{
  font-family: var(--serif);
  font-size: 1.05rem;
  letter-spacing:0.02em;
  color: var(--cream);
  font-weight:400;
}
nav.links{ display:flex; gap: clamp(16px, 3vw, 40px); }
nav.links a{
  font-size: 0.85rem;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--cream);
  font-weight: 500;
  opacity: 0.92;
  transition: opacity .2s ease;
  white-space: nowrap;
}
nav.links a.active{ opacity:1; border-bottom:1px solid currentColor; padding-bottom:3px; }
nav.links a:hover{ opacity: 1; border-bottom: 1px solid currentColor; padding-bottom: 3px; }

/* ---------- HERO (home) ---------- */
.hero{ position:relative; height: 100svh; min-height: 560px; width:100%; overflow:hidden; }
.hero img{ position:absolute; inset:0; width:100%; height:100%; object-fit: cover; object-position: 60% 40%; }
.hero::after{
  content:""; position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(74,74,74,0.55) 0%, rgba(74,74,74,0.15) 30%, rgba(74,74,74,0.05) 55%, rgba(74,74,74,0.25) 100%);
}
.hero-content{
  position:relative; z-index:5; height:100%;
  display:flex; flex-direction:column; align-items:center; justify-content:flex-start;
  text-align:center; padding: clamp(70px,10vw,110px) 6vw 0;
}
.hero-content h1{
  font-family: var(--serif); font-weight: 500; color: var(--cream);
  font-size: clamp(1.7rem, 4.2vw, 3.1rem); line-height: 1.22; max-width: 18ch;
  text-shadow: 0 2px 24px rgba(0,0,0,0.25);
}
.hero-content p.eyebrow{
  font-family: var(--sans); color: var(--sand); letter-spacing: 0.16em; text-transform: uppercase;
  font-size: 0.92rem; font-weight:600; margin-bottom: 22px; opacity:0.95;
}
/* ---------- PAGE HERO (inner pages) ---------- */
.page-hero{
  position:relative;
  padding: clamp(30px,4vw,42px) 6vw;
  background: var(--sage-deep);
  color: var(--white);
  text-align:center;
  overflow:hidden;
  margin-top:-1px;
}
.page-hero.blue{ background: #7E97A6; }
.page-hero-inner{ position:relative; z-index:2; max-width: 780px; margin:0 auto; }
.page-hero p.eyebrow{ display:none; }
.page-hero h1{
  font-family: var(--heading-sans); font-weight:600; font-style:normal; color: var(--white);
  font-size: clamp(1.3rem, 2.4vw, 1.7rem); line-height:1.3; letter-spacing:0.01em;
}

/* ---------- PROSE CONTENT ---------- */
.content-wrap{
  max-width: 760px;
  margin: 0 auto;
  padding: clamp(56px,8vw,96px) 6vw;
}
.content-wrap.narrow{ max-width: 680px; }
.content-wrap.wide{ max-width: 1080px; }
.prose h2{
  font-family: var(--heading-sans); font-weight:600; font-size: clamp(1.2rem,2vw,1.5rem);
  color: var(--charcoal); margin: 44px 0 18px; letter-spacing:-0.01em;
}
.prose h2:first-child{ margin-top:0; }
.prose p{ color: var(--charcoal); font-size: 1.02rem; margin-bottom: 18px; }
.prose ul{ margin: 4px 0 22px 0; padding-left: 0; list-style:none; }
.prose ul li{
  color: var(--charcoal); font-size: 1rem; padding-left: 26px; position:relative; margin-bottom:10px;
}
.prose ul li::before{
  content:""; position:absolute; left:0; top:0.55em; width:7px; height:7px; border-radius:50%;
  background: var(--sage);
}
.prose .lede{
  font-family: var(--serif); font-style: italic; font-size: 1.25rem; color: var(--charcoal);
  line-height:1.6; margin-bottom: 30px;
}
.prose .note{
  font-size: 0.88rem; color: var(--sage-deep); font-style: italic; margin-top: -6px; margin-bottom:26px;
}

/* pull quote block used mid-page */
.pull-quote{
  background: var(--sage);
  border-radius: 6px;
  padding: 40px clamp(26px,5vw,54px);
  margin: 40px 0;
  text-align:center;
}
.pull-quote p{
  font-family: var(--serif); font-style:italic; color: var(--white);
  font-size: clamp(1.15rem,2vw,1.45rem); line-height:1.55; margin:0;
}

/* image band inside content pages */
.content-image{ border-radius:6px; overflow:hidden; margin: 40px 0; }
.content-image img{ width:100%; object-fit:cover; max-height: 480px; }

/* ---------- MEET (home) ---------- */
.meet{
  position:relative; max-width: 1180px; margin: 0 auto;
  padding: clamp(36px,5vw,60px) 6vw clamp(60px,8vw,110px);
  display:grid; grid-template-columns: 0.85fr 1.15fr; gap: clamp(36px,6vw,90px); align-items:center;
}
.meet-image{ position:relative; border-radius: 4px; overflow:hidden; }
.meet-image img{ width:100%; aspect-ratio: 3/4; object-fit: cover; }
.meet-text .heading-row{ display:flex; align-items:center; justify-content:space-between; gap:20px; margin-bottom:22px; }
.meet-text .heading-row h2{ margin-bottom:0; }
.meet-text .mark{ width: 100px; height:100px; opacity: 0.6; flex-shrink:0; }
.meet-text .mark img{ filter: sepia(1) saturate(0.5) hue-rotate(50deg) brightness(0.75); width:100%; height:100%; object-fit:contain; }
.meet-text h2{
  font-family: var(--heading-sans); font-weight:600; font-size: clamp(1.5rem, 2.4vw, 2rem);
  color: var(--charcoal); margin-bottom: 22px; line-height:1.3; letter-spacing:-0.01em;
}
.meet-text p{ color: var(--charcoal); font-size: 1.02rem; max-width: 46ch; margin-bottom: 16px; }
.meet-text .signature{ font-family: var(--serif); font-style: italic; color: var(--sage-deep); margin-top: 24px; font-size: 1.05rem; }

.meet--solo{ grid-template-columns: 1fr; max-width: 780px; text-align:left; }
.meet--solo .meet-text p{ max-width: none; }
.meet--solo .heading-row{ justify-content:flex-start; gap:16px; }
.meet--solo .btn-outline{ margin-left:0; }
.btn-outline{
  display:inline-block; margin-top:20px; padding: 13px 32px; border-radius:999px;
  border: 1.5px solid var(--sage-deep); color: var(--charcoal); font-weight:600;
  font-size:0.9rem; transition: background .2s ease, color .2s ease;
}
.btn-outline:hover{ background: var(--sage-deep); color: var(--cream); }

/* ---------- OFFERINGS (home) ---------- */
.offerings{ background: #7E97A6; padding: clamp(70px,9vw,120px) 6vw; }
.offerings-head{ max-width: 640px; margin: 0 auto 56px; text-align:center; }
.offerings-head h2{ color: var(--cream) !important; }
.offerings-head p.eyebrow{
  letter-spacing:0.2em; text-transform:uppercase; font-size:0.72rem; color: var(--sage-deep); margin-bottom:14px; font-weight:600;
}
.offerings-head h2{ font-family: var(--heading-sans); font-weight:600; font-size: clamp(1.4rem,2.4vw,2rem); color: var(--charcoal); }
.cards{ max-width: 1180px; margin:0 auto; display:grid; grid-template-columns: repeat(3, 1fr); gap: 28px; }
.card{ background: var(--cream); padding: 42px 36px; border-radius: 6px; transition: transform .3s ease, box-shadow .3s ease; }
.card:hover{ transform: translateY(-4px); box-shadow: 0 18px 40px rgba(74,74,74,0.12); }
.card .icon{ width:52px; height:52px; margin: 0 auto 22px; display:block; color: var(--charcoal); }
.card .icon svg, .card .icon img{ width:100%; height:100%; object-fit:contain; }
.card{ text-align:center; }
.card h3{ font-family: var(--heading-sans); font-weight: 600; font-size: 1.3rem; color: var(--charcoal); margin-bottom: 14px; }
.card p{ color: var(--charcoal); font-size: 0.96rem; margin-bottom: 20px; }
.card a.card-link{
  font-size: 0.82rem; letter-spacing: 0.05em; text-transform: uppercase; color: var(--sage-deep);
  font-weight: 600; border-bottom: 1px solid var(--sage); padding-bottom: 2px;
}

/* ---------- VISION (home teaser + about full) ---------- */
.vision{
  position:relative; padding: clamp(90px,12vw,150px) 6vw; background: var(--charcoal);
  color: var(--cream); text-align:center; overflow:hidden;
}
.vision::before{
  content:""; position:absolute; inset:0; background-image: url('../img/tree-branches.jpg');
  background-size: cover; background-position: center; opacity: 0.16;
}
.vision-inner{ position:relative; z-index:2; max-width: 760px; margin:0 auto; }
.vision .mark{ width:90px; height:90px; margin:0 auto 30px; opacity:0.85; }
.vision .mark img{ filter: brightness(0) invert(1); }
.vision blockquote{
  font-family: var(--serif); font-style: italic; font-weight: 400; font-size: clamp(1.3rem, 2.6vw, 1.9rem);
  line-height: 1.55; margin-bottom: 34px;
}
.vision a.vision-link{
  display:inline-block; font-size: 0.78rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--sand); font-weight:600; border-bottom: 1px solid rgba(231,222,210,0.5); padding-bottom: 4px;
}

/* full vision text block on About page */
.vision-full{ background: var(--sand); padding: clamp(70px,9vw,110px) 6vw clamp(30px,4vw,50px); }
.vision-full .content-wrap{ background:transparent; }
.vision-full h2{ color: var(--charcoal); }
.vision-full .lede{ color: var(--charcoal); }

/* ---------- CTA BAND ---------- */
.cta-band{
  background: var(--sage);
  color: var(--cream);
  text-align:center;
  padding: clamp(56px,8vw,90px) 6vw;
}
.cta-band h2{ font-family: var(--serif); font-weight:500; font-size: clamp(1.4rem,2.4vw,2rem); margin-bottom:22px; }
.cta-band .sub{ font-size:0.95rem; opacity:0.92; margin-bottom:26px; max-width:46ch; margin-left:auto; margin-right:auto; }
.cta-band .btns{ display:flex; gap:14px; justify-content:center; flex-wrap:wrap; }
.cta-band a.btn.secondary{ background:transparent; color:var(--cream); border:1px solid rgba(250,246,240,0.6); }

/* language switcher */
.lang-switch{ display:flex; gap:6px; align-items:center; font-size:0.78rem; font-weight:600; letter-spacing:0.04em; margin-left: clamp(10px,2vw,28px); }
.lang-switch a{ opacity:0.6; color: var(--cream); }
.lang-switch a.active{ opacity:1; text-decoration:underline; text-underline-offset:3px; }

/* free-call banner */
.free-call{
  background: var(--white); text-align:center; padding: 6px 6vw;
  font-size:0.85rem; color: var(--charcoal); font-weight:500;
  border-bottom: 1px solid var(--sand);
}
.free-call.sage-tint{ background: var(--sage); color: var(--cream); border-bottom:none; }
.free-call.sage-tint a{ color: var(--cream); }
.free-call a{ text-decoration:underline; text-underline-offset:3px; font-weight:600; }
.cta-band a.btn{
  display:inline-block; background: var(--cream); color: var(--charcoal);
  padding: 14px 34px; border-radius: 999px; font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase; font-weight:600;
  transition: transform .2s ease;
}
.cta-band a.btn:hover{ transform: translateY(-2px); }

/* ---------- CONTACT FORM ---------- */
.contact-form{ margin: 24px 0 8px; }
.contact-form label{
  display:block; font-size:0.85rem; font-weight:600; color: var(--charcoal);
  margin-bottom:6px; margin-top:16px;
}
.contact-form label:first-child{ margin-top:0; }
.contact-form input, .contact-form textarea, .contact-form select{
  width:100%; padding:12px 14px; border:1px solid var(--sand); border-radius:6px;
  font-family: var(--sans); font-size:0.95rem; color: var(--ink); background: var(--white);
}
.contact-form select{ appearance:auto; }
.contact-form input:focus, .contact-form textarea:focus, .contact-form select:focus{ outline:none; border-color: var(--sage); }
.contact-form textarea{ min-height:120px; resize:vertical; }
.contact-form button{
  margin-top:20px; background: var(--sage); color: var(--cream); border:none;
  padding: 13px 32px; border-radius:999px; font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase;
  font-weight:600; cursor:pointer; transition: transform .2s ease;
}
.contact-form button:hover{ transform: translateY(-2px); }
.prose-columns{ column-count:2; column-gap:48px; }
.prose-columns p{ break-inside: avoid; margin-bottom:18px; }
@media (max-width: 780px){ .prose-columns{ column-count:1; } }

.two-col-section{ display:grid; grid-template-columns: 1fr 1fr; gap:40px; align-items:start; margin-top:44px; }
.two-col-section h2{ margin-top:0 !important; }
@media (max-width: 780px){ .two-col-section{ grid-template-columns:1fr; } }

/* ---------- NEWSLETTER ---------- */
.newsletter-box{
  background: var(--sage); color: var(--cream); border-radius:10px;
  padding: clamp(32px,5vw,48px); margin: 30px 0;
}
.newsletter-box h2, .newsletter-box p{ color: var(--cream); }
.newsletter-box h2{ margin-top:0; }
.newsletter-form{ display:flex; gap:10px; margin-top:20px; flex-wrap:wrap; }
.newsletter-form input[type="email"]{
  flex:1; min-width:220px; padding:12px 16px; border-radius:999px; border:none;
  font-family: var(--sans); font-size:0.95rem;
}
.newsletter-form button{
  background: var(--charcoal); color: var(--cream); border:none;
  padding:12px 28px; border-radius:999px; font-size:0.85rem; letter-spacing:0.06em; text-transform:uppercase;
  font-weight:600; cursor:pointer; transition: transform .2s ease; white-space:nowrap;
}
.newsletter-form button:hover{ transform: translateY(-2px); }

/* ---------- CONTACT CHANNELS ---------- */
.contact-channels{ display:flex; flex-direction:column; gap:18px; margin: 24px 0; }
.contact-channel{ display:flex; align-items:center; gap:16px; }
.contact-channel .icon{ width:38px; height:38px; flex-shrink:0; color: var(--charcoal); }
.contact-channel .icon svg{ width:100%; height:100%; }
.contact-channel a{ color: var(--charcoal); font-weight:600; }
.contact-channel a:hover{ color: var(--sage-deep); }
.contact-channel .label{ font-size:0.78rem; text-transform:uppercase; letter-spacing:0.05em; color: var(--sage-deep); font-weight:600; display:block; margin-bottom:2px; }

/* ---------- EVENTS ---------- */
.event-list{ display:flex; flex-direction:column; gap:56px; max-width:640px; margin:0 auto; }
.event-item{ padding:0; border-bottom:none; }
.event-item .cover{ width:100%; aspect-ratio: 16/9; border-radius:10px; overflow:hidden; margin-bottom:22px; }
.event-item .cover img{ width:100%; height:100%; object-fit:cover; }
.event-item .tag{
  display:inline-block; font-size:0.7rem; letter-spacing:0.08em; text-transform:uppercase;
  color: var(--sage-deep); background: var(--sand); padding:4px 12px; border-radius:999px;
  font-weight:600; margin-bottom:12px;
}
.event-item .date{ font-size:0.85rem; color: var(--sage-deep); font-weight:600; margin-bottom:6px; }
.event-item h3{ font-family: var(--serif); font-weight:500; font-size:1.25rem; color: var(--charcoal); margin-bottom:10px; }
.event-item p{ color: var(--charcoal); font-size:0.98rem; }

footer{ background: var(--cream); padding: 70px 6vw 40px; text-align:center; }
footer .logo img{ height:102px; margin: 0 auto 22px; opacity:0.85; }
footer nav.links{ justify-content:center; margin-bottom: 28px; flex-wrap: wrap; }
footer nav.links a{ color: var(--charcoal); }
footer .social{ display:flex; justify-content:center; gap:20px; margin-bottom: 26px; }
footer .social a{ width:30px; height:30px; color: var(--charcoal); display:block; transition: color .2s ease; }
footer .social a:hover{ color: var(--charcoal); }
footer .social svg{ width:100%; height:100%; }
footer .fine{ font-size: 0.78rem; color: var(--sage-deep); opacity:0.8; }

/* ---------- MOBILE ---------- */
@media (max-width: 860px){
  .meet{ grid-template-columns: 1fr; }
  .meet-image{ order: -1; max-width: 320px; margin: 0 auto; }
  .cards{ grid-template-columns: 1fr; }
  nav.links{ gap: 14px; }
  header.site-nav{ padding: 20px 5vw; }
}
@media (max-width: 620px){
  nav.links a{ font-size: 0.68rem; }
  header.site-nav .logo span{ display:none; }
  header.site-nav .logo img{ height: 30px; }
  .meet-text .mark{ width:60px; height:60px; }
}
