:root{--cream:#f3e4cc;--ink:#3c2416;--green:#33451e;--green-dark:#222d16;--gold:#d8b77a;--line:rgba(60,36,22,.22)}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);font-family:Georgia,"Times New Roman",serif;background:linear-gradient(rgba(247,236,216,.94),rgba(247,236,216,.94)),repeating-linear-gradient(0deg,#ead5b5 0,#ead5b5 2px,#f2e3ca 3px,#f2e3ca 7px)}img{max-width:100%}a{color:inherit}.site-header{position:sticky;top:0;z-index:20;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:28px;padding:12px clamp(18px,4vw,54px);background:rgba(248,239,223,.96);border-bottom:1px solid var(--line);backdrop-filter:blur(8px)}.header-logo img{display:block;width:210px;height:auto}.main-nav{display:flex;justify-content:center;gap:28px}.main-nav a,.social-nav a{text-decoration:none;font:700 .79rem Arial,Helvetica,sans-serif;letter-spacing:.08em;text-transform:uppercase}.main-nav a:hover,.social-nav a:hover{color:var(--green)}.social-nav{display:flex;gap:12px}.hero{min-height:720px;display:grid;grid-template-columns:minmax(320px,44%) minmax(0,56%);border-bottom:1px solid var(--line)}.hero-art{position:relative;overflow:hidden;min-height:720px}.hero-art img{width:100%;height:100%;object-fit:cover;object-position:47% center;display:block;filter:saturate(.92) contrast(.98);-webkit-mask-image:linear-gradient(to right,#000 0%,#000 73%,transparent 100%);mask-image:linear-gradient(to right,#000 0%,#000 73%,transparent 100%)}.hero-art::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,transparent 58%,rgba(243,228,204,.94) 100%)}.hero-copy{padding:64px 7vw 60px 2vw;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.hero-logo{width:min(590px,94%);margin:0 auto 18px;display:block}.tagline{margin:0 0 34px;color:var(--green);font-size:clamp(.9rem,1.4vw,1.14rem);letter-spacing:.2em;text-transform:uppercase}.eyebrow{margin:0 0 11px;color:var(--green);font:700 .77rem Arial,Helvetica,sans-serif;letter-spacing:.16em;text-transform:uppercase}.hero h1{max-width:720px;margin:0;color:var(--green-dark);font-size:clamp(2.25rem,4.6vw,4rem);line-height:1.08;font-weight:500}.hero p.lead{max-width:670px;margin:22px auto 0;font-size:clamp(1.08rem,1.7vw,1.32rem);line-height:1.65}.actions{display:flex;flex-wrap:wrap;justify-content:center;gap:13px;margin-top:31px}.button{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:12px 25px;border-radius:999px;border:1px solid var(--green);text-decoration:none;font:700 .9rem Arial,Helvetica,sans-serif;letter-spacing:.04em;transition:.18s}.button.primary{background:var(--green);color:#fff7e9}.button.secondary{background:rgba(255,255,255,.30);color:var(--green)}.button:hover{transform:translateY(-2px)}.intro,.contact-cta{max-width:1080px;margin:0 auto;padding:74px 28px;text-align:center}.intro h2,.contact-cta h2,.services-heading h2,.about-preview h2{margin:0;color:var(--green-dark);font-weight:500;line-height:1.18;font-size:clamp(2rem,3.6vw,3rem)}.intro p,.contact-cta p,.about-preview p{max-width:790px;margin:20px auto 0;font-size:clamp(1.06rem,1.55vw,1.24rem);line-height:1.72}.mission{max-width:860px;margin:34px auto 0;padding:26px 32px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);color:var(--green);font-size:clamp(1.15rem,2vw,1.5rem);font-style:italic;line-height:1.55}.services{padding:60px max(24px,6vw) 64px;background:var(--green-dark);color:#f2dfb9}.services-heading{text-align:center;max-width:790px;margin:0 auto 38px}.services-heading .eyebrow{color:var(--gold)}.services-heading h2{color:#fff0d1}.service-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:repeat(4,1fr)}.service{padding:8px 24px 14px;text-align:center;border-right:1px solid rgba(242,223,185,.28)}.service:last-child{border-right:0}.service-icon{width:64px;height:64px;margin:0 auto 16px;display:grid;place-items:center;border:1px solid rgba(216,183,122,.7);border-radius:50%;color:var(--gold);font-size:1.9rem}.service h3{margin:0 0 10px;color:#fff0d1;font-size:1rem;font-weight:500;letter-spacing:.055em;text-transform:uppercase;line-height:1.35}.service p{margin:0;color:rgba(255,245,222,.82);font:.92rem/1.56 Arial,Helvetica,sans-serif}.service-link{display:inline-block;margin-top:13px;color:var(--gold);font:700 .78rem Arial,Helvetica,sans-serif;text-transform:uppercase;letter-spacing:.08em;text-decoration:none}.about-preview{max-width:1120px;margin:0 auto;padding:74px 28px;display:grid;grid-template-columns:1fr 1fr;gap:54px;align-items:center}.about-card{background:rgba(255,255,255,.33);border:1px solid rgba(60,36,22,.15);border-radius:20px;padding:34px}.about-preview p{margin-left:0;margin-right:0}.values{display:grid;gap:16px}.value{padding:20px 22px;border-left:3px solid var(--gold);background:rgba(255,255,255,.28)}.value strong{display:block;color:var(--green);font-size:1.08rem;margin-bottom:6px}.value span{font:.94rem/1.55 Arial,Helvetica,sans-serif;color:#5a4638}.contact-band{background:linear-gradient(rgba(245,231,207,.94),rgba(245,231,207,.94)),repeating-linear-gradient(90deg,#e4c9a4 0,#e4c9a4 2px,#f2e3ca 3px,#f2e3ca 8px);border-top:1px solid var(--line)}.contact-options{display:flex;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:28px}.contact-option{min-width:245px;padding:20px 24px;border:1px solid rgba(60,36,22,.17);background:rgba(255,255,255,.38);border-radius:15px;text-decoration:none}.contact-option strong{display:block;color:var(--green);margin-bottom:5px}.contact-option span{font:.92rem Arial,Helvetica,sans-serif}.site-footer{background:var(--green-dark);color:#f2dfb9;padding:34px 24px;text-align:center}.footer-logo{width:240px;filter:invert(92%) sepia(21%) saturate(321%) hue-rotate(339deg) brightness(106%);opacity:.94}.footer-links,.footer-social{display:flex;justify-content:center;flex-wrap:wrap;gap:18px;margin-top:19px}.footer-links a,.footer-social a{font:.8rem Arial,Helvetica,sans-serif;text-decoration:none;color:rgba(255,245,222,.82)}.footer-note{margin-top:20px;color:var(--gold);font-style:italic}.footer-small{margin-top:9px;color:rgba(255,245,222,.62);font:.73rem Arial,Helvetica,sans-serif;letter-spacing:.06em;text-transform:uppercase}@media(max-width:980px){.site-header{grid-template-columns:1fr auto}.main-nav{grid-column:1/-1;grid-row:2;justify-content:flex-start;overflow-x:auto;padding-bottom:3px}.hero{grid-template-columns:1fr}.hero-art{min-height:360px;height:46vw;max-height:500px}.hero-art img{object-position:center 34%;-webkit-mask-image:linear-gradient(to bottom,#000 0%,#000 78%,transparent 100%);mask-image:linear-gradient(to bottom,#000 0%,#000 78%,transparent 100%)}.hero-art::after{background:linear-gradient(to bottom,transparent 60%,var(--cream) 100%)}.hero-copy{padding:12px 7vw 54px;margin-top:-26px}.service-grid{grid-template-columns:1fr 1fr;row-gap:28px}.service:nth-child(2){border-right:0}.service:nth-child(3),.service:nth-child(4){border-top:1px solid rgba(242,223,185,.24);padding-top:28px}.about-preview{grid-template-columns:1fr;text-align:center}}@media(max-width:650px){.site-header{gap:12px}.header-logo img{width:170px}.social-nav{display:none}.main-nav{gap:17px}.main-nav a{font-size:.72rem}.hero-art{min-height:300px;height:72vw}.hero-logo{width:min(440px,96%)}.actions{flex-direction:column;width:min(360px,100%)}.button{width:100%}.service-grid{grid-template-columns:1fr}.service,.service:nth-child(2),.service:nth-child(3),.service:nth-child(4){border-right:0;border-top:1px solid rgba(242,223,185,.24);padding:24px 8px}.service:first-child{border-top:0}.contact-options{flex-direction:column}.contact-option{min-width:0;width:100%}}


/* ---------- SERVICES PAGE ---------- */
.page-hero{
  padding:72px 28px 64px;
  text-align:center;
  border-bottom:1px solid var(--line);
}
.page-hero .page-logo{
  display:block;
  width:min(430px,82%);
  margin:0 auto 24px;
}
.page-hero h1{
  max-width:820px;
  margin:0 auto;
  color:var(--green-dark);
  font-size:clamp(2.35rem,5vw,4.2rem);
  line-height:1.08;
  font-weight:500;
}
.page-hero p{
  max-width:790px;
  margin:22px auto 0;
  font-size:clamp(1.08rem,1.65vw,1.3rem);
  line-height:1.7;
}
.service-detail-wrap{
  max-width:1120px;
  margin:0 auto;
  padding:72px 28px 80px;
}
.service-detail{
  display:grid;
  grid-template-columns:110px 1fr;
  gap:28px;
  align-items:start;
  padding:34px 0;
  border-bottom:1px solid var(--line);
}
.service-detail:first-child{padding-top:0}
.service-detail:last-child{border-bottom:0;padding-bottom:0}
.service-detail-icon{
  width:88px;
  height:88px;
  border:1px solid rgba(60,36,22,.22);
  border-radius:50%;
  display:grid;
  place-items:center;
  background:rgba(255,255,255,.34);
  color:var(--green);
  font-size:2.25rem;
}
.service-detail h2{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(1.75rem,3vw,2.55rem);
  font-weight:500;
}
.service-detail .service-summary{
  margin:11px 0 0;
  font-size:1.08rem;
  line-height:1.65;
}
.service-detail h3{
  margin:24px 0 9px;
  color:var(--green);
  font-size:1.12rem;
  font-weight:600;
}
.service-detail ul{
  margin:0;
  padding-left:1.2rem;
  font: .98rem/1.65 Arial,Helvetica,sans-serif;
  color:#503d30;
}
.service-detail li+li{margin-top:7px}
.service-detail .note{
  margin-top:18px;
  padding:16px 18px;
  border-left:3px solid var(--gold);
  background:rgba(255,255,255,.29);
  font-size:.98rem;
  line-height:1.58;
}
.service-cta{
  margin-top:24px;
}
.service-cta .button{margin-right:8px}
.pricing-note{
  background:var(--green-dark);
  color:#f2dfb9;
  padding:58px 28px;
  text-align:center;
}
.pricing-note h2{
  margin:0;
  color:#fff0d1;
  font-size:clamp(1.9rem,3.5vw,2.8rem);
  font-weight:500;
}
.pricing-note p{
  max-width:760px;
  margin:18px auto 0;
  font-size:1.08rem;
  line-height:1.68;
  color:rgba(255,245,222,.84);
}
.pricing-note .button{
  margin-top:28px;
  border-color:var(--gold);
  background:transparent;
  color:var(--gold);
}
.pricing-note .button:hover,
.pricing-note .button:focus-visible{
  background:rgba(255,255,255,.06);
}
@media(max-width:700px){
  .service-detail{
    grid-template-columns:1fr;
    text-align:center;
  }
  .service-detail-icon{margin:0 auto}
  .service-detail ul{text-align:left}
  .service-detail .note{text-align:left}
  .service-cta .button{margin:5px 0;width:100%}
}


/* ---------- ABOUT PAGE ---------- */
.about-hero{
  max-width:1180px;
  margin:0 auto;
  padding:74px 28px 62px;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(300px,.95fr);
  gap:58px;
  align-items:center;
}
.about-hero-copy h1{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2.45rem,5vw,4.4rem);
  line-height:1.06;
  font-weight:500;
}
.about-hero-copy .lead{
  margin:22px 0 0;
  font-size:clamp(1.08rem,1.7vw,1.3rem);
  line-height:1.7;
}
.about-tree{
  position:relative;
  min-height:480px;
  border-radius:24px;
  overflow:hidden;
  border:1px solid rgba(60,36,22,.14);
  background:rgba(255,255,255,.25);
}
.about-tree img{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
}
.about-tree::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(34,45,22,.28),transparent 48%);
}
.about-story{
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
  background:rgba(255,255,255,.18);
}
.about-story-inner{
  max-width:940px;
  margin:0 auto;
  padding:70px 28px;
}
.about-story-inner h2,
.research-approach h2,
.training-section h2{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2rem,3.7vw,3rem);
  line-height:1.16;
  font-weight:500;
}
.about-story-inner p{
  margin:20px 0 0;
  font-size:1.08rem;
  line-height:1.72;
}
.pull-quote{
  margin:36px 0 0;
  padding:26px 30px;
  border-left:4px solid var(--gold);
  background:rgba(255,255,255,.35);
  color:var(--green);
  font-size:clamp(1.2rem,2vw,1.55rem);
  line-height:1.55;
  font-style:italic;
}
.research-approach{
  max-width:1120px;
  margin:0 auto;
  padding:72px 28px;
  text-align:center;
}
.research-approach > p{
  max-width:800px;
  margin:19px auto 36px;
  font-size:1.06rem;
  line-height:1.7;
}
.approach-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:20px;
  text-align:left;
}
.approach-card{
  padding:28px 27px;
  border:1px solid rgba(60,36,22,.16);
  background:rgba(255,255,255,.31);
  border-radius:18px;
}
.approach-number{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  margin-bottom:18px;
  border-radius:50%;
  background:var(--green);
  color:#fff4df;
  font:700 .86rem Arial,Helvetica,sans-serif;
}
.approach-card h3{
  margin:0;
  color:var(--green);
  font-size:1.18rem;
  font-weight:600;
}
.approach-card p{
  margin:11px 0 0;
  color:#564235;
  font:.96rem/1.62 Arial,Helvetica,sans-serif;
}
.training-section{
  background:var(--green-dark);
  color:#f2dfb9;
}
.training-inner{
  max-width:1030px;
  margin:0 auto;
  padding:68px 28px;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  gap:54px;
  align-items:start;
}
.training-section h2{color:#fff0d1}
.training-section .eyebrow{color:var(--gold)}
.training-copy p{
  margin:18px 0 0;
  font-size:1.05rem;
  line-height:1.7;
  color:rgba(255,245,222,.84);
}
.training-list{
  display:grid;
  gap:15px;
}
.training-item{
  padding:19px 21px;
  border:1px solid rgba(216,183,122,.25);
  background:rgba(255,255,255,.04);
  border-radius:13px;
}
.training-item strong{
  display:block;
  margin-bottom:6px;
  color:#fff0d1;
  font-size:1rem;
}
.training-item span{
  color:rgba(255,245,222,.78);
  font:.91rem/1.55 Arial,Helvetica,sans-serif;
}
.personal-note{
  max-width:920px;
  margin:0 auto;
  padding:72px 28px;
  text-align:center;
}
.personal-note h2{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2rem,3.5vw,2.9rem);
  font-weight:500;
}
.personal-note p{
  max-width:790px;
  margin:20px auto 0;
  font-size:1.08rem;
  line-height:1.72;
}
.about-contact{
  margin-top:34px;
}
@media(max-width:850px){
  .about-hero{grid-template-columns:1fr;text-align:center}
  .about-tree{min-height:390px}
  .training-inner{grid-template-columns:1fr;text-align:center}
  .approach-grid{grid-template-columns:1fr}
}
@media(max-width:600px){
  .about-hero{padding-top:48px}
  .about-tree{min-height:320px}
  .pull-quote{padding:22px 20px}
}


/* ---------- CONTACT PAGE ---------- */
.contact-page-hero{
  max-width:980px;
  margin:0 auto;
  padding:70px 28px 34px;
  text-align:center;
}
.contact-page-hero h1{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2.4rem,5vw,4.1rem);
  line-height:1.08;
  font-weight:500;
}
.contact-page-hero p{
  max-width:760px;
  margin:20px auto 0;
  font-size:clamp(1.06rem,1.6vw,1.25rem);
  line-height:1.7;
}
.contact-layout{
  max-width:1120px;
  margin:0 auto;
  padding:28px 28px 76px;
  display:grid;
  grid-template-columns:minmax(0,1.2fr) minmax(300px,.8fr);
  gap:38px;
  align-items:start;
}
.contact-form-card,
.contact-info-card{
  background:rgba(255,255,255,.38);
  border:1px solid rgba(60,36,22,.16);
  border-radius:20px;
  box-shadow:0 10px 30px rgba(60,36,22,.07);
}
.contact-form-card{padding:32px}
.contact-form-card h2,
.contact-info-card h2{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(1.65rem,2.8vw,2.25rem);
  font-weight:500;
}
.contact-form-card > p,
.contact-info-card > p{
  margin:12px 0 0;
  line-height:1.62;
  color:#5a4638;
}
.contact-form{
  margin-top:26px;
}
.contact-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:18px;
}
.contact-field{
  display:flex;
  flex-direction:column;
  gap:7px;
}
.contact-field-wide{grid-column:1/-1}
.contact-field label{
  color:var(--green-dark);
  font:700 .88rem Arial,Helvetica,sans-serif;
}
.contact-field .optional{
  color:#766456;
  font-size:.77rem;
  font-weight:400;
}
.contact-field input,
.contact-field textarea{
  width:100%;
  padding:12px 14px;
  border:1px solid rgba(60,36,22,.27);
  border-radius:10px;
  background:rgba(255,255,255,.74);
  color:var(--ink);
  font:1rem Arial,Helvetica,sans-serif;
}
.contact-field textarea{
  min-height:190px;
  resize:vertical;
  line-height:1.5;
}
.contact-field input:focus,
.contact-field textarea:focus{
  outline:2px solid rgba(51,69,30,.24);
  border-color:var(--green);
}
.contact-submit{
  display:inline-flex;
  justify-content:center;
  align-items:center;
  min-height:50px;
  margin-top:22px;
  padding:12px 28px;
  border:0;
  border-radius:999px;
  background:var(--green);
  color:#fff7e9;
  cursor:pointer;
  font:700 .9rem Arial,Helvetica,sans-serif;
  letter-spacing:.04em;
}
.contact-submit:hover,
.contact-submit:focus-visible{background:var(--green-dark)}
.contact-form-note{
  margin:13px 0 0 !important;
  color:#6b594b !important;
  font:.82rem/1.45 Arial,Helvetica,sans-serif !important;
}
.contact-info-card{
  padding:30px;
  position:sticky;
  top:118px;
}
.contact-methods{
  display:grid;
  gap:14px;
  margin-top:24px;
}
.contact-method{
  display:block;
  padding:18px 18px;
  border:1px solid rgba(60,36,22,.14);
  border-radius:13px;
  background:rgba(255,255,255,.34);
  text-decoration:none;
}
.contact-method strong{
  display:block;
  color:var(--green);
  margin-bottom:5px;
}
.contact-method span{
  color:#513e31;
  font:.92rem Arial,Helvetica,sans-serif;
}
.contact-tip{
  margin-top:25px;
  padding:18px 19px;
  border-left:3px solid var(--gold);
  background:rgba(255,255,255,.27);
}
.contact-tip strong{
  display:block;
  color:var(--green);
  margin-bottom:7px;
}
.contact-tip p{
  margin:0;
  font:.92rem/1.58 Arial,Helvetica,sans-serif;
  color:#584436;
}
.contact-socials{
  margin-top:25px;
}
.contact-socials h3{
  margin:0 0 12px;
  color:var(--green-dark);
  font-size:1rem;
}
.contact-social-links{
  display:flex;
  flex-wrap:wrap;
  gap:10px;
}
.contact-social-links a{
  padding:9px 12px;
  border:1px solid rgba(60,36,22,.16);
  border-radius:999px;
  background:rgba(255,255,255,.34);
  text-decoration:none;
  font:700 .75rem Arial,Helvetica,sans-serif;
}
.contact-social-links a:hover,
.contact-social-links a:focus-visible{color:var(--green)}
@media(max-width:860px){
  .contact-layout{grid-template-columns:1fr}
  .contact-info-card{position:static}
}
@media(max-width:620px){
  .contact-page-hero{padding-top:48px}
  .contact-layout{padding-left:16px;padding-right:16px}
  .contact-form-card,.contact-info-card{padding:23px 18px}
  .contact-grid{grid-template-columns:1fr}
  .contact-field-wide{grid-column:auto}
  .contact-submit{width:100%}
}


/* ---------- WELCOME / QR LANDING PAGE ---------- */
.welcome-hero{
  max-width:1120px;
  margin:0 auto;
  padding:54px 28px 42px;
  display:grid;
  grid-template-columns:minmax(280px,.88fr) minmax(0,1.12fr);
  gap:48px;
  align-items:center;
}
.welcome-tree{
  min-height:430px;
  border-radius:24px;
  overflow:hidden;
  border:1px solid rgba(60,36,22,.14);
  background:rgba(255,255,255,.22);
}
.welcome-tree img{
  width:100%;
  height:100%;
  min-height:430px;
  object-fit:cover;
}
.welcome-copy{
  text-align:left;
}
.welcome-logo{
  display:block;
  width:min(410px,90%);
  margin:0 0 18px;
}
.welcome-copy h1{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2.35rem,5vw,4.25rem);
  line-height:1.07;
  font-weight:500;
}
.welcome-copy .lead{
  margin:21px 0 0;
  font-size:clamp(1.06rem,1.7vw,1.24rem);
  line-height:1.7;
}
.welcome-intro{
  max-width:880px;
  margin:0 auto;
  padding:26px 28px 60px;
  text-align:center;
}
.welcome-intro h2{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(1.95rem,3.5vw,2.8rem);
  font-weight:500;
}
.welcome-intro p{
  margin:18px auto 0;
  max-width:760px;
  font-size:1.06rem;
  line-height:1.7;
}
.welcome-services{
  max-width:1120px;
  margin:0 auto;
  padding:0 28px 68px;
}
.welcome-services .service-grid{
  margin-top:26px;
}
.welcome-process{
  background:rgba(255,255,255,.18);
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.welcome-process-inner{
  max-width:1060px;
  margin:0 auto;
  padding:66px 28px;
  text-align:center;
}
.welcome-process-inner h2{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(1.95rem,3.5vw,2.8rem);
  font-weight:500;
}
.welcome-steps{
  margin-top:34px;
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:22px;
  text-align:left;
}
.welcome-step{
  padding:24px;
  border:1px solid rgba(60,36,22,.15);
  border-radius:16px;
  background:rgba(255,255,255,.32);
}
.welcome-step strong{
  display:block;
  margin-bottom:8px;
  color:var(--green);
  font-size:1.05rem;
}
.welcome-step span{
  color:#574437;
  font:.94rem/1.6 Arial,Helvetica,sans-serif;
}
.welcome-contact{
  max-width:1040px;
  margin:0 auto;
  padding:70px 28px 76px;
}
.welcome-contact-head{
  text-align:center;
  margin-bottom:28px;
}
.welcome-contact-head h2{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2rem,3.8vw,3rem);
  font-weight:500;
}
.welcome-contact-head p{
  max-width:740px;
  margin:17px auto 0;
  line-height:1.68;
  font-size:1.05rem;
}
.welcome-contact .contact-form-card{
  max-width:780px;
  margin:0 auto;
}
.welcome-direct{
  margin-top:24px;
  text-align:center;
  font:.92rem/1.6 Arial,Helvetica,sans-serif;
}
.welcome-direct a{
  font-weight:700;
}

/* ---------- THANK YOU PAGE ---------- */
.thankyou-main{
  min-height:calc(100vh - 260px);
  display:grid;
  place-items:center;
  padding:70px 28px 84px;
}
.thankyou-card{
  width:min(760px,100%);
  padding:48px 40px;
  text-align:center;
  border:1px solid rgba(60,36,22,.16);
  border-radius:24px;
  background:rgba(255,255,255,.38);
  box-shadow:0 12px 34px rgba(60,36,22,.08);
}
.thankyou-logo{
  display:block;
  width:min(360px,82%);
  margin:0 auto 24px;
}
.thankyou-check{
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  margin:0 auto 22px;
  border-radius:50%;
  background:var(--green);
  color:#fff6e6;
  font:700 1.6rem Arial,Helvetica,sans-serif;
}
.thankyou-card h1{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2rem,4vw,3rem);
  font-weight:500;
  line-height:1.13;
}
.thankyou-card p{
  max-width:620px;
  margin:18px auto 0;
  font-size:1.05rem;
  line-height:1.7;
}
.thankyou-card .actions{
  justify-content:center;
  margin-top:28px;
}

@media(max-width:820px){
  .welcome-hero{grid-template-columns:1fr;text-align:center}
  .welcome-copy{text-align:center}
  .welcome-logo{margin-left:auto;margin-right:auto}
  .welcome-tree{min-height:330px}
  .welcome-tree img{min-height:330px}
  .welcome-steps{grid-template-columns:1fr}
}
@media(max-width:600px){
  .welcome-hero{padding-top:38px}
  .thankyou-card{padding:36px 22px}
}


/* ---------- WELCOME SERVICES CONTRAST FIX ---------- */
.welcome-services{
  max-width:none;
  margin:0;
  padding:60px max(24px,6vw) 64px;
  background:var(--green-dark);
  color:#f2dfb9;
}
.welcome-services .services-heading{
  max-width:790px;
  margin:0 auto 38px;
  text-align:center;
}
.welcome-services .services-heading .eyebrow{
  color:var(--gold);
}
.welcome-services .services-heading h2{
  color:#fff0d1;
}
.welcome-services .service h3{
  color:#fff0d1;
}
.welcome-services .service p{
  color:rgba(255,245,222,.82);
}
.welcome-services .service-icon{
  color:var(--gold);
  border-color:rgba(216,183,122,.7);
}
.welcome-services .button.secondary{
  color:#fff0d1;
  border-color:rgba(255,240,209,.65);
  background:rgba(255,255,255,.06);
}
.welcome-services .button.secondary:hover{
  background:rgba(255,255,255,.12);
}


/* ---------- MOBILE HERO + ANCHOR OFFSET FIX ---------- */

/* Leave room for the sticky navigation when following in-page links. */
html{
  scroll-padding-top:110px;
}

#contact,
.welcome-contact{
  scroll-margin-top:110px;
}

@media(max-width:980px){
  /* Keep the tree and logo as two distinct sections on tablets/phones. */
  .hero-copy{
    margin-top:0;
    padding-top:30px;
  }

  /* The mobile header becomes two rows, so anchors need a larger offset. */
  html{
    scroll-padding-top:205px;
  }

  #contact,
  .welcome-contact{
    scroll-margin-top:205px;
  }
}

@media(max-width:650px){
  .hero-art{
    margin-bottom:0;
  }

  .hero-copy{
    margin-top:0;
    padding-top:34px;
  }

  html{
    scroll-padding-top:215px;
  }

  #contact,
  .welcome-contact{
    scroll-margin-top:215px;
  }
}


/* ---------- CONTACT ANCHOR POSITION CORRECTION ---------- */
/*
   The sticky-header offset is already handled by html scroll-padding-top.
   Do not add a second offset to the contact target.
*/
#contact,
.welcome-contact{
  scroll-margin-top:0;
}

@media(max-width:980px){
  #contact,
  .welcome-contact{
    scroll-margin-top:0;
  }
}

@media(max-width:650px){
  #contact,
  .welcome-contact{
    scroll-margin-top:0;
  }
}


/* ---------- PRIVACY PAGE ---------- */
.legal-hero{
  max-width:900px;
  margin:0 auto;
  padding:70px 28px 34px;
  text-align:center;
}
.legal-hero h1{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2.4rem,5vw,4rem);
  line-height:1.08;
  font-weight:500;
}
.legal-hero p{
  max-width:720px;
  margin:18px auto 0;
  font-size:1.06rem;
  line-height:1.7;
}
.legal-content{
  max-width:900px;
  margin:0 auto;
  padding:20px 28px 78px;
}
.legal-card{
  padding:38px 40px;
  border:1px solid rgba(60,36,22,.16);
  border-radius:20px;
  background:rgba(255,255,255,.36);
  box-shadow:0 10px 30px rgba(60,36,22,.06);
}
.legal-card h2{
  margin:32px 0 10px;
  color:var(--green-dark);
  font-size:1.45rem;
  font-weight:600;
}
.legal-card h2:first-child{margin-top:0}
.legal-card p,
.legal-card li{
  color:#4f3d31;
  font:1rem/1.72 Arial,Helvetica,sans-serif;
}
.legal-card ul{
  margin:10px 0 0;
  padding-left:1.35rem;
}
.legal-card li+li{margin-top:7px}
.legal-note{
  margin:25px 0;
  padding:20px 22px;
  border-left:4px solid var(--gold);
  background:rgba(255,255,255,.32);
}
.legal-note strong{
  display:block;
  margin-bottom:7px;
  color:var(--green);
}
.legal-meta{
  margin-top:30px;
  padding-top:22px;
  border-top:1px solid rgba(60,36,22,.14);
  color:#6a5749;
  font:.9rem/1.55 Arial,Helvetica,sans-serif;
}
@media(max-width:620px){
  .legal-hero{padding-top:48px}
  .legal-content{padding-left:16px;padding-right:16px}
  .legal-card{padding:28px 21px}
}


/* ---------- 404 PAGE ---------- */
.error-page{
  min-height:calc(100vh - 250px);
  display:grid;
  place-items:center;
  padding:68px 28px 82px;
}
.error-layout{
  width:min(1050px,100%);
  display:grid;
  grid-template-columns:minmax(280px,.8fr) minmax(0,1.2fr);
  gap:54px;
  align-items:center;
}
.error-tree{
  min-height:430px;
  overflow:hidden;
  border:1px solid rgba(60,36,22,.14);
  border-radius:24px;
  background:rgba(255,255,255,.24);
}
.error-tree img{
  width:100%;
  height:100%;
  min-height:430px;
  object-fit:cover;
}
.error-copy .error-number{
  margin:0 0 4px;
  color:var(--gold);
  font:700 clamp(4.5rem,10vw,8rem)/.9 Georgia,serif;
  letter-spacing:.02em;
}
.error-copy h1{
  margin:0;
  color:var(--green-dark);
  font-size:clamp(2.2rem,4.5vw,3.7rem);
  line-height:1.08;
  font-weight:500;
}
.error-copy p{
  max-width:610px;
  margin:20px 0 0;
  color:#503e31;
  font-size:1.08rem;
  line-height:1.7;
}
.error-copy .actions{
  justify-content:flex-start;
  margin-top:28px;
}
.error-help{
  margin-top:25px;
  padding-top:20px;
  border-top:1px solid rgba(60,36,22,.16);
  color:#695649;
  font:.9rem/1.55 Arial,Helvetica,sans-serif;
}
@media(max-width:820px){
  .error-page{padding-top:44px}
  .error-layout{grid-template-columns:1fr;text-align:center}
  .error-tree{min-height:310px}
  .error-tree img{min-height:310px}
  .error-copy p{margin-left:auto;margin-right:auto}
  .error-copy .actions{justify-content:center}
}


/* ---------- PRIVACY WIDTH + 404 LAYOUT REFINEMENTS ---------- */

/* Keep privacy content comfortably inset and readable at all desktop widths. */
.legal-hero,
.legal-content{
  width:calc(100% - 56px);
  max-width:900px;
  box-sizing:border-box;
}
.legal-card{
  width:100%;
  box-sizing:border-box;
}

/* Keep the 404 in the same side-by-side visual language as the site's hero pages. */
.error-page{
  display:block;
  min-height:0;
  padding:54px 28px 76px;
}
.error-layout{
  max-width:1120px;
  width:100%;
  margin:0 auto;
  grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);
  gap:52px;
  align-items:start;
}
.error-copy{
  grid-column:1;
  grid-row:1;
  padding-top:18px;
}
.error-tree{
  grid-column:2;
  grid-row:1;
  min-height:430px;
}
.error-tree img{
  min-height:430px;
}

@media(max-width:820px){
  .error-layout{
    grid-template-columns:minmax(0,1.08fr) minmax(230px,.92fr);
    gap:28px;
    text-align:left;
  }
  .error-copy{
    grid-column:1;
    grid-row:1;
    padding-top:0;
  }
  .error-tree{
    grid-column:2;
    grid-row:1;
    min-height:330px;
  }
  .error-tree img{
    min-height:330px;
  }
  .error-copy p{
    margin-left:0;
    margin-right:0;
  }
  .error-copy .actions{
    justify-content:flex-start;
  }
}

@media(max-width:650px){
  .legal-hero,
  .legal-content{
    width:calc(100% - 32px);
  }

  /* On narrow phones keep text first, with the tree beneath it. */
  .error-layout{
    grid-template-columns:1fr;
    text-align:left;
  }
  .error-copy{
    grid-column:1;
    grid-row:1;
  }
  .error-tree{
    grid-column:1;
    grid-row:2;
    min-height:280px;
  }
  .error-tree img{
    min-height:280px;
  }
}
