/* Banyan One Group — shared styles
   Palette: deep banyan green, aged bronze/gold, warm ivory, charcoal.
   Type: Fraunces (display serif, headlines) + Inter (sans, body/UI). */

@import url('https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Inter:wght@400;500;600&display=swap');

:root{
  --ivory: #F7F3EA;
  --green-deep: #14251F;
  --green-mid: #1E362E;
  --bronze: #B08A3E;
  --bronze-soft: #C9A967;
  --ink: #1E211D;
  --ink-muted: #5B6259;
  --line: #DAD3C2;
  --line-dark: #2C4038;
  --max: 1120px;
}

*{box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  margin:0;
  background:var(--ivory);
  color:var(--ink);
  font-family:'Inter', -apple-system, BlinkMacSystemFont, sans-serif;
  font-size:16px;
  line-height:1.6;
  -webkit-font-smoothing:antialiased;
}

h1,h2,h3,h4{
  font-family:'Fraunces', Georgia, serif;
  font-weight:500;
  line-height:1.15;
  margin:0 0 0.5em;
  color:var(--green-deep);
  letter-spacing:-0.01em;
}
h1{font-size:clamp(2.2rem, 4.2vw, 3.6rem); font-weight:500;}
h2{font-size:clamp(1.6rem, 2.6vw, 2.3rem);}
h3{font-size:1.25rem;}
p{margin:0 0 1em; max-width:66ch; color:var(--ink);}
p.lede{font-size:1.15rem; color:var(--ink-muted); max-width:52ch;}
a{color:inherit;}

.container{max-width:var(--max); margin:0 auto; padding:0 32px;}

/* ---------- Header ---------- */
.site-header{
  position:sticky; top:0; z-index:50;
  background:rgba(247,243,234,0.92);
  backdrop-filter:blur(6px);
  border-bottom:1px solid var(--line);
}
.site-header .container{
  display:flex; align-items:center; justify-content:space-between;
  height:76px;
}
.brand{display:flex; align-items:center; gap:12px; text-decoration:none;}
.brand img{display:block; width:38px; height:38px;}
.brand-name{
  font-family:'Fraunces', serif; font-weight:500; font-size:1.05rem;
  color:var(--green-deep); letter-spacing:0.005em;
}
.brand-name span{display:block; font-family:'Inter',sans-serif; font-size:0.68rem; font-weight:500; color:var(--ink-muted); letter-spacing:0.06em;}

nav.primary-nav{display:flex; align-items:center; gap:34px;}
nav.primary-nav a{
  text-decoration:none; color:var(--ink); font-size:0.94rem; font-weight:500;
  position:relative; padding:4px 0;
}
nav.primary-nav a.active{color:var(--green-deep);}
nav.primary-nav a.active::after{
  content:""; position:absolute; left:0; right:0; bottom:-2px; height:2px; background:var(--bronze);
}
.btn{
  display:inline-flex; align-items:center; gap:8px;
  background:var(--green-deep); color:var(--ivory);
  padding:11px 22px; border-radius:2px; text-decoration:none;
  font-size:0.92rem; font-weight:500; border:1px solid var(--green-deep);
  transition:background 0.15s ease, color 0.15s ease;
}
.btn:hover{background:var(--green-mid);}
.btn.outline{background:transparent; color:var(--green-deep);}
.btn.outline:hover{background:var(--green-deep); color:var(--ivory);}
.btn.on-dark{background:var(--bronze); border-color:var(--bronze); color:var(--green-deep);}
.btn.on-dark:hover{background:var(--bronze-soft);}

/* ---------- Hero ---------- */
.hero{padding:88px 0 64px;}
.hero .container{
  display:grid; grid-template-columns:1.15fr 0.85fr; gap:56px; align-items:center;
}
.hero-eyebrow{color:var(--bronze); font-weight:600; font-size:0.85rem; margin-bottom:14px;}
.hero-actions{display:flex; gap:16px; margin-top:32px; flex-wrap:wrap;}
.hero-art{display:flex; justify-content:center; align-items:center;}
.hero-art svg{max-width:100%; height:auto;}

/* ---------- Stat strip ---------- */
.stat-strip{
  border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  padding:34px 0;
}
.stat-strip .container{
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:24px;
}
.stat{padding:0 28px; border-left:1px solid var(--line);}
.stat:first-child{border-left:none; padding-left:0;}
.stat .num{font-family:'Fraunces',serif; font-size:1.9rem; color:var(--green-deep); font-weight:500;}
.stat .label{font-size:0.86rem; color:var(--ink-muted); margin-top:2px;}

/* ---------- Section ---------- */
.section{padding:88px 0;}
.section.tight{padding:56px 0;}
.section-head{max-width:640px; margin-bottom:48px;}
.section.on-green{background:var(--green-deep); color:var(--ivory);}
.section.on-green h2, .section.on-green h3{color:var(--ivory);}
.section.on-green p{color:#C9D2CB;}

/* ---------- Service rows (not cards — a list of distinct instruments) ---------- */
.service-list{border-top:1px solid var(--line);}
.service-row{
  display:grid; grid-template-columns:220px 1fr auto; gap:32px; align-items:start;
  padding:34px 0; border-bottom:1px solid var(--line);
}
.service-row h3{margin-bottom:8px;}
.service-row .tag{font-size:0.82rem; color:var(--bronze); font-weight:600;}
.service-row .go{align-self:center; white-space:nowrap; font-size:0.9rem; font-weight:500; text-decoration:none; color:var(--green-deep); border-bottom:1px solid var(--bronze);}

/* ---------- Process (a genuine sequence — numbered) ---------- */
.process{display:grid; grid-template-columns:repeat(4,1fr); gap:0; counter-reset:step;}
.process-step{
  padding:0 26px 0 0; border-right:1px solid var(--line-dark);
}
.process-step:last-child{border-right:none; padding-right:0;}
.process-step .step-num{
  font-family:'Fraunces',serif; font-size:2.2rem; color:var(--bronze); margin-bottom:10px; display:block;
}

/* ---------- Two column ---------- */
.two-col{display:grid; grid-template-columns:1fr 1fr; gap:64px; align-items:start;}
.two-col img, .two-col svg{width:100%; height:auto;}

/* ---------- Values grid ---------- */
.values{display:grid; grid-template-columns:repeat(3,1fr); gap:44px;}
.values h3{font-size:1.1rem;}

/* ---------- CTA band ---------- */
.cta-band{
  background:var(--green-deep); color:var(--ivory); padding:64px 0; text-align:left;
}
.cta-band .container{display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap;}
.cta-band h2{color:var(--ivory); margin-bottom:6px;}
.cta-band p{color:#C9D2CB; margin-bottom:0;}

/* ---------- Footer ---------- */
footer.site-footer{background:var(--green-deep); color:#C9D2CB; padding:56px 0 28px;}
footer.site-footer .container{
  display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:40px; padding-bottom:36px; border-bottom:1px solid var(--line-dark);
}
footer.site-footer .brand-name{color:var(--ivory);}
footer.site-footer .brand-name span{color:#8FA098;}
footer.site-footer h4{color:var(--ivory); font-family:'Inter',sans-serif; font-size:0.82rem; letter-spacing:0.04em; font-weight:600; margin-bottom:14px;}
footer.site-footer a{color:#C9D2CB; text-decoration:none; display:block; margin-bottom:10px; font-size:0.94rem;}
footer.site-footer a:hover{color:var(--ivory);}
.footer-bottom{display:flex; justify-content:space-between; padding-top:22px; font-size:0.82rem; color:#8FA098; flex-wrap:wrap; gap:8px;}

/* ---------- Contact page ---------- */
.contact-grid{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px;}
.contact-detail{display:flex; gap:16px; padding:20px 0; border-bottom:1px solid var(--line);}
.contact-detail .k{font-size:0.82rem; color:var(--ink-muted); width:110px; flex-shrink:0; padding-top:2px;}
.contact-detail .v{font-weight:500;}
.contact-detail a{color:var(--green-deep); text-decoration:none; border-bottom:1px solid var(--bronze);}

form.contact-form{display:flex; flex-direction:column; gap:20px;}
.field{display:flex; flex-direction:column; gap:8px;}
.field label{font-size:0.86rem; color:var(--ink-muted); font-weight:500;}
.field input, .field select, .field textarea{
  border:1px solid var(--line); background:#fff; padding:12px 14px; font-family:'Inter',sans-serif;
  font-size:0.96rem; border-radius:2px; color:var(--ink);
}
.field textarea{resize:vertical; min-height:120px;}
.field input:focus, .field select:focus, .field textarea:focus{outline:2px solid var(--bronze); outline-offset:1px;}
.field-row{display:grid; grid-template-columns:1fr 1fr; gap:20px;}
.form-note{font-size:0.84rem; color:var(--ink-muted); margin-top:-6px;}

/* ---------- Page hero (interior pages) ---------- */
.page-hero{padding:56px 0 48px; border-bottom:1px solid var(--line);}
.page-hero .hero-eyebrow{margin-bottom:12px;}

/* ---------- Utility ---------- */
.mb-0{margin-bottom:0;}

/* ---------- Responsive ---------- */
@media (max-width: 860px){
  .hero .container{grid-template-columns:1fr; gap:32px;}
  .hero-art{order:-1;}
  .stat-strip .container{gap:16px;}
  .stat{border-left:none; padding:0; width:45%;}
  .process{grid-template-columns:1fr 1fr; row-gap:32px;}
  .process-step{border-right:none; border-bottom:1px solid var(--line-dark); padding:0 0 24px;}
  .two-col{grid-template-columns:1fr;}
  .values{grid-template-columns:1fr;}
  footer.site-footer .container{grid-template-columns:1fr; gap:28px;}
  .contact-grid{grid-template-columns:1fr;}
  .field-row{grid-template-columns:1fr;}
  nav.primary-nav{gap:18px;}
  .service-row{grid-template-columns:1fr; gap:10px;}
}

@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto;}
  *{transition:none !important;}
}
