@import url("https://fonts.googleapis.com/css2?family=Cormorant+Garamond:ital,wght@0,500;0,600;1,500;1,600&family=Manrope:wght@400;500;600;700&display=swap");

:root { --forest:#2f4f3e; --forest-dark:#20382d; --sage:#a8b8a3; --cream:#f6f3ee; --sand:#d8d2c8; --clay:#c6a48a; --charcoal:#292a27; --font-display:"Cormorant Garamond"; --font-sans:"Manrope"; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:105px; }
body { margin:0; background:var(--cream); color:var(--charcoal); font-family:var(--font-sans),sans-serif; }
a { color:inherit; text-decoration:none; }
img { display:block; max-width:100%; }
p { line-height:1.72; }
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible { outline:3px solid var(--clay); outline-offset:4px; }
.section-pad { padding:clamp(90px,10vw,160px) clamp(24px,7vw,112px); }
.eyebrow { color:var(--forest); font-size:13px; font-weight:700; letter-spacing:.17em; text-transform:uppercase; margin:0 0 26px; line-height:1.45; }
.eyebrow.light { color:#e4cdb9; }
h1,h2,h3 { text-wrap:balance; }
h2 { font-family:var(--font-display),serif; font-size:clamp(48px,5.5vw,86px); line-height:.98; letter-spacing:-.035em; font-weight:500; margin:0; color:var(--forest); }
h2 em { font-weight:500; color:var(--clay); }
h3 { font-family:var(--font-display),serif; font-weight:500; }
blockquote { font-family:var(--font-display),serif; font-size:clamp(25px,2.4vw,38px); line-height:1.2; font-style:italic; margin:36px 0; }
.button { display:inline-flex; align-items:center; justify-content:center; width:max-content; max-width:100%; padding:18px 28px; text-transform:uppercase; letter-spacing:.09em; font-size:11px; font-weight:700; border:0; cursor:pointer; transition:transform .2s ease,background .2s ease; }
.button:hover { transform:translateY(-2px); }
.button-primary { background:var(--forest); color:var(--cream); }
.button-light { background:var(--cream); color:var(--forest-dark); }
.button-clay { background:var(--clay); color:var(--forest-dark); }
.brand-promise { font-family:var(--font-display),serif; color:var(--forest); font-style:italic; font-size:clamp(28px,3vw,45px); line-height:1.12; }

.site-header { min-height:106px; padding:17px clamp(24px,5vw,76px); display:flex; align-items:center; justify-content:space-between; gap:40px; border-bottom:1px solid rgba(47,79,62,.16); background:rgba(246,243,238,.95); backdrop-filter:blur(12px); position:sticky; top:0; z-index:20; }
.brand { width:clamp(230px,22vw,330px); height:72px; display:flex; align-items:center; }
.brand img { width:100%; height:100%; object-fit:contain; object-position:left center; }
.desktop-nav { display:flex; align-items:center; gap:clamp(18px,2.4vw,38px); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.desktop-nav a:not(.nav-cta) { padding:16px 0; border-bottom:1px solid transparent; }
.desktop-nav a:not(.nav-cta):hover { border-color:var(--forest); }
.nav-cta { background:var(--forest); color:var(--cream); padding:16px 21px; }
.mobile-menu { display:none; }
.menu-toggle { width:48px; height:48px; border:1px solid rgba(47,79,62,.28); background:transparent; padding:0; align-items:center; justify-content:center; flex-direction:column; gap:5px; cursor:pointer; }
.menu-toggle span { display:block; width:21px; height:1.5px; background:var(--forest); transition:transform .2s ease,opacity .2s ease; }
.mobile-menu.is-open .menu-toggle span:first-child { transform:translateY(6.5px) rotate(45deg); }
.mobile-menu.is-open .menu-toggle span:nth-child(2) { opacity:0; }
.mobile-menu.is-open .menu-toggle span:last-child { transform:translateY(-6.5px) rotate(-45deg); }
.mobile-navigation { display:none; position:absolute; left:0; right:0; top:100%; padding:18px clamp(24px,5vw,76px) 26px; background:var(--cream); border-top:1px solid rgba(47,79,62,.12); border-bottom:1px solid rgba(47,79,62,.18); box-shadow:0 20px 35px rgba(32,56,45,.12); }
.mobile-menu.is-open .mobile-navigation { display:flex; flex-direction:column; align-items:stretch; }
.mobile-navigation a { padding:16px 0; border-bottom:1px solid rgba(47,79,62,.13); font-size:12px; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.mobile-navigation .nav-cta { margin-top:18px; padding:17px 20px; text-align:center; border-bottom:0; }

.hero { min-height:calc(100vh - 106px); display:grid; grid-template-columns:minmax(0,.98fr) minmax(0,1.02fr); }
.hero-copy { padding:clamp(82px,6vw,108px) clamp(32px,6vw,94px) clamp(58px,5vw,80px); display:flex; flex-direction:column; justify-content:flex-start; position:relative; }
.hero-copy::before { content:""; position:absolute; width:68px; height:1px; background:var(--clay); top:clamp(40px,3.5vw,57px); }
h1 { font-family:var(--font-display),serif; font-size:clamp(56px,5.7vw,88px); line-height:.93; letter-spacing:-.043em; font-weight:500; color:var(--forest); max-width:820px; margin:0; }
.hero-question { font-family:var(--font-display),serif; font-size:clamp(27px,2.6vw,41px); line-height:1.08; color:var(--clay); font-style:italic; margin:27px 0 8px; }
.hero-lede { font-size:clamp(16px,1.15vw,19px); line-height:1.68; max-width:700px; margin:19px 0 0; }
.hero-lede.compact { margin-top:13px; }
.hero-emphasis { font-family:var(--font-display),serif; color:var(--forest); font-size:clamp(21px,1.8vw,28px); line-height:1.25; margin:21px 0 0; }
.hero-cta { margin-top:30px; }
.hero-emblem { width:clamp(180px,12vw,225px); aspect-ratio:1; overflow:hidden; margin:clamp(34px,3.4vw,54px) auto 0; opacity:.76; }
.hero-emblem img { height:100%; width:auto; max-width:none; }
.hero-image { min-height:780px; position:relative; overflow:hidden; background:var(--forest); }
.hero-image>img { width:100%; height:100%; object-fit:cover; object-position:53% 32%; }
.hero-image::after { content:""; position:absolute; inset:0; background:linear-gradient(180deg,transparent 55%,rgba(25,44,34,.8)); }
.hero-note { position:absolute; z-index:1; left:clamp(28px,4vw,64px); bottom:clamp(30px,5vw,70px); color:#fff; display:grid; font-family:var(--font-display),serif; font-size:clamp(23px,2vw,33px); line-height:1.08; }
.hero-note strong { font-style:italic; font-weight:500; color:#dfc3ad; }

.recognition { background:#fff; }
.recognition-intro { display:block; max-width:1200px; margin-bottom:72px; }
.recognition-intro h2 { max-width:1120px; }
.struggle-list { border-top:1px solid var(--sand); display:grid; grid-template-columns:1fr 1fr; }
.struggle { display:grid; grid-template-columns:58px 1fr; align-items:start; border-bottom:1px solid var(--sand); padding:30px 30px 32px 0; }
.struggle:nth-child(odd) { border-right:1px solid var(--sand); }
.struggle span { font-size:10px; letter-spacing:.16em; color:var(--clay); padding-top:8px; }
.struggle h3 { color:var(--forest); font-size:clamp(23px,2vw,31px); line-height:1.1; margin:0 0 8px; }
.struggle p { margin:0; max-width:570px; font-size:15px; line-height:1.65; }
.recognition-close { text-align:center; max-width:1120px; margin:80px auto 0; }
.recognition-close>p:first-child { font-size:18px; max-width:760px; margin:0 auto; }
.pull-quote { font-family:var(--font-display),serif; font-style:italic; color:var(--forest); font-size:clamp(32px,4vw,58px); line-height:1.04; margin:45px auto; }

.philosophy { display:grid; grid-template-columns:.9fr 1.1fr; min-height:1000px; background:var(--forest-dark); color:var(--cream); }
.philosophy-photo { min-height:780px; overflow:hidden; }
.philosophy-photo img { width:100%; height:100%; object-fit:cover; object-position:center; filter:saturate(.75) sepia(.06); }
.philosophy-copy { padding:clamp(75px,8vw,130px) clamp(34px,7vw,110px); align-self:center; }
.philosophy h2 { color:var(--cream); font-size:clamp(47px,5vw,76px); }
.philosophy h3 { color:#e2c6ae; font-size:clamp(28px,3vw,44px); line-height:1.08; margin:25px 0 40px; font-style:italic; }
.philosophy-copy>p:not(.eyebrow,.approach-advice) { color:#e1ddd5; max-width:720px; margin:16px 0; }
.philosophy .approach-advice { font-family:var(--font-display),serif; font-size:clamp(24px,2.3vw,36px); line-height:1.2; color:#e2c6ae; }
.philosophy blockquote { color:#e2c6ae; border-left:1px solid var(--clay); padding-left:28px; }
.philosophy .button { margin-top:26px; }

.insight { background:var(--cream); }
.insight-opening { display:grid; grid-template-columns:.85fr 1.15fr; gap:clamp(28px,3vw,42px) 6vw; align-items:center; padding-bottom:90px; border-bottom:1px solid var(--sand); }
.insight-opening .eyebrow { grid-column:1/-1; margin-bottom:0; }
.insight-opening h2 { font-size:clamp(46px,4.8vw,72px); }
.insight-copy { display:grid; gap:30px; align-self:center; }
.insight-copy p { margin:0; }
.insight-copy>p:first-child { font-size:18px; }
.insight-copy .brand-promise { font-size:clamp(26px,2.5vw,40px); }
.pattern-explainer { padding-top:90px; max-width:1260px; margin:0 auto; }
.pattern-explainer h3 { color:var(--forest); font-size:clamp(36px,4vw,59px); line-height:1; margin:0 0 24px; }
.pattern-explainer p { max-width:850px; font-size:17px; }
.pattern-lede { font-family:var(--font-display),serif; font-size:clamp(25px,2.3vw,35px)!important; line-height:1.25!important; color:var(--clay); }
.pattern-cycle { display:grid; grid-template-columns:repeat(5,1fr); margin:64px 0; border-top:1px solid var(--sand); border-bottom:1px solid var(--sand); }
.pattern-cycle div { min-height:150px; position:relative; padding:28px 24px; border-right:1px solid var(--sand); display:flex; flex-direction:column; justify-content:space-between; }
.pattern-cycle div:last-child { border-right:0; }
.pattern-cycle span { color:var(--clay); font-size:10px; letter-spacing:.15em; }
.pattern-cycle strong { color:var(--forest); font-family:var(--font-display),serif; font-size:clamp(21px,2vw,28px); line-height:1.08; font-weight:500; }
.pattern-cycle i { position:absolute; right:-14px; top:50%; transform:translateY(-50%); z-index:2; width:28px; height:28px; border-radius:50%; background:var(--cream); color:var(--clay); display:grid; place-items:center; font-style:normal; }

.waymakers-path { background:var(--forest); color:var(--cream); overflow:hidden; }
.path-heading { max-width:1100px; }
.path-heading h2 { color:var(--cream); font-size:clamp(45px,5vw,76px); }
.path-ladder { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; align-items:end; padding-top:170px; margin-top:55px; }
.path-step { background:var(--cream); color:var(--charcoal); padding:34px 28px 38px; min-height:360px; position:relative; }
.path-step-2 { transform:translateY(-42px); }
.path-step-3 { transform:translateY(-84px); }
.path-step-4 { transform:translateY(-126px); }
.path-step>span { color:var(--clay); font-family:var(--font-display),serif; font-size:56px; line-height:1; }
.path-step h3 { color:var(--forest); font-size:clamp(31px,3vw,43px); margin:25px 0 20px; line-height:1; }
.path-step strong { color:var(--forest); display:block; font-size:14px; text-transform:uppercase; letter-spacing:.08em; line-height:1.5; }
.path-step p { font-size:14px; }
.path-step em { font-family:var(--font-display),serif; color:var(--clay); font-size:22px; line-height:1.15; }
.path-close { max-width:980px; margin:30px auto 0; text-align:center; }
.path-close h3 { color:#e2c6ae; font-size:clamp(38px,4.4vw,65px); line-height:1; margin:0 0 35px; }
.path-close p:not(.brand-promise) { max-width:800px; margin:18px auto; color:#e2ded6; }
.light-promise { color:#e2c6ae; margin:40px auto; }

.progress { display:block; background:#fff; }
.progress-main { display:grid; grid-template-columns:.8fr 1.2fr; column-gap:9vw; align-items:start; }
.progress-title { position:sticky; top:150px; align-self:start; }
.progress-title>p:last-child { margin-top:35px; font-size:18px; }
.progress-list p { border-bottom:1px solid var(--sand); padding:22px 0; margin:0; font-family:var(--font-display),serif; font-size:clamp(22px,2vw,31px); line-height:1.2; }
.progress-list p::before { content:"↗"; color:var(--clay); margin-right:18px; }
.progress-note { font-family:var(--font-display),serif; font-size:clamp(34px,4.4vw,66px); line-height:1.02; color:var(--forest); text-align:center; max-width:1100px; margin:110px auto 0; font-style:italic; }
.section-action { text-align:center; margin-top:52px; }

.coaching { background:#e9e5dc; }
.coaching-lead { max-width:960px; margin-bottom:70px; }
.coaching-lead>p:last-child { max-width:670px; font-size:18px; }
.coaching-strengths { background:var(--forest-dark); color:var(--cream); display:grid; grid-template-columns:.85fr 1.15fr; gap:6vw; align-items:center; padding:clamp(42px,5vw,70px); margin-bottom:24px; }
.coaching-strengths h3 { color:var(--cream); font-size:clamp(34px,4vw,55px); line-height:1; margin:0 0 25px; }
.coaching-strengths p { color:#dedbd3; }
.strength-cloud { display:flex; flex-wrap:wrap; gap:12px; }
.strength-cloud span { border:1px solid rgba(255,255,255,.32); padding:12px 15px; font-family:var(--font-display),serif; font-size:clamp(18px,1.7vw,24px); }
.strength-cloud span.accent { color:#dfc3ad; border-color:var(--clay); }
.service-cards { display:grid; grid-template-columns:1fr 1fr; gap:22px; }
.service-cards article { padding:clamp(34px,5vw,70px); background:var(--cream); }
.service-cards article.featured { background:var(--forest); color:var(--cream); }
.service-label { font-size:10px; letter-spacing:.18em; text-transform:uppercase; color:var(--clay); font-weight:700; }
.service-cards h3 { font-size:clamp(35px,4vw,55px); line-height:1; margin:32px 0 18px; color:var(--forest); }
.service-cards .featured h3 { color:var(--cream); }
.service-meta { font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; }
.service-cards article>p:not(.service-label,.service-meta) { margin:28px 0 34px; }

.about { display:grid; grid-template-columns:.9fr 1.1fr; background:#fff; }
.about-image { min-height:1250px; }
.about-image img { width:100%; height:100%; object-fit:cover; object-position:center 28%; }
.about-copy { padding:clamp(70px,8vw,125px) clamp(34px,7vw,110px); align-self:center; }
.about-copy h2 { font-size:clamp(48px,5vw,78px); }
.about-copy h3 { color:var(--clay); font-size:clamp(26px,2.5vw,38px); line-height:1.1; margin:24px 0 38px; }
.about-copy>p { font-size:15.5px; }
.about-copy blockquote { color:var(--forest); border-top:1px solid var(--sand); border-bottom:1px solid var(--sand); padding:28px 0; }
.about-promise { color:var(--forest); font-family:var(--font-display),serif; font-size:clamp(24px,2vw,33px)!important; line-height:1.2!important; font-style:italic; }

.expect>div:first-child { display:block; }
.expect>div:first-child h2 { max-width:1100px; margin-left:auto; }
.expect-subhead { margin:32px 0 0 auto; max-width:1100px; font-family:var(--font-display),serif; color:var(--clay); font-size:clamp(28px,3vw,44px); font-style:italic; }
.expect-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; background:var(--sand); margin-top:72px; }
.expect-grid article { background:var(--cream); padding:42px; }
.expect-grid span { color:var(--forest); text-transform:uppercase; letter-spacing:.13em; font-size:12px; font-weight:700; }

.faq { background:var(--forest-dark); color:var(--cream); display:grid; grid-template-columns:.75fr 1.25fr; gap:9vw; }
.faq h2 { color:var(--cream); font-size:clamp(45px,4.8vw,74px); }
.faq-list { border-top:1px solid rgba(255,255,255,.25); }
details { border-bottom:1px solid rgba(255,255,255,.25); }
summary { list-style:none; cursor:pointer; padding:27px 0; display:flex; justify-content:space-between; gap:30px; font-family:var(--font-display),serif; font-size:clamp(21px,2vw,30px); }
summary::-webkit-details-marker { display:none; }
summary span { color:var(--clay); font-family:var(--font-sans),sans-serif; font-weight:400; }
details[open] summary span { transform:rotate(45deg); }
details p { color:#d6d4ce; margin:0; padding:0 50px 28px 0; }

.contact { padding:clamp(95px,10vw,150px) clamp(24px,7vw,112px); background:var(--forest); color:var(--cream); display:grid; grid-template-columns:minmax(0,.9fr) minmax(430px,1.1fr); gap:clamp(55px,8vw,130px); align-items:center; }
.contact-copy { text-align:center; }
.contact-mark { width:138px; height:138px; border-radius:50%; overflow:hidden; margin:0 auto 38px; }
.contact-mark img { width:100%; height:100%; object-fit:contain; }
.contact h2 { color:var(--cream); font-size:clamp(45px,4.5vw,72px); }
.contact-copy>p:not(.eyebrow,.contact-promise) { max-width:690px; margin:35px auto; font-size:18px; }
.contact-promise { font-family:var(--font-display),serif; font-style:italic; color:#e2c6ae; font-size:clamp(27px,3vw,42px); line-height:1.15; margin:35px auto; }
.contact-form { background:var(--cream); color:var(--charcoal); padding:clamp(30px,4vw,58px); display:grid; gap:24px; }
.form-kicker { margin:0; color:var(--forest); font-family:var(--font-display),serif; font-size:clamp(34px,3vw,48px); line-height:1; }
.form-intro { margin:0; font-size:14px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
.contact-form label { display:grid; gap:9px; }
.contact-form label>span { color:var(--forest); font-size:10px; font-weight:700; letter-spacing:.14em; text-transform:uppercase; }
.contact-form label em { color:#8b8a84; font-style:normal; font-weight:400; letter-spacing:.05em; }
.contact-form input,.contact-form select,.contact-form textarea { width:100%; border:0; border-bottom:1px solid #99958d; background:transparent; color:var(--charcoal); padding:11px 2px; border-radius:0; font:inherit; }
.contact-form textarea { border:1px solid #99958d; padding:14px; resize:vertical; }
.contact-form .button { justify-self:start; }
.form-honey { position:absolute!important; left:-9999px!important; }
.form-note { margin:0; color:#62615d; font-size:12px; line-height:1.55; }
.form-success { display:none; margin:0; padding:14px 16px; background:#dce6da; color:var(--forest); font-weight:700; }
.form-success:target { display:block; }

footer { padding:60px clamp(24px,7vw,112px) 44px; background:#f0ece5; display:grid; grid-template-columns:1fr 1fr; gap:24px 7vw; align-items:center; }
footer>img { width:290px; height:90px; object-fit:contain; object-position:left center; }
footer>p { text-align:right; color:var(--forest); font-family:var(--font-display),serif; font-size:24px; }
footer>div { display:flex; flex-wrap:wrap; gap:24px; font-size:11px; text-transform:uppercase; letter-spacing:.09em; font-weight:700; }
footer .footer-credential { justify-self:end; align-items:center; justify-content:flex-end; gap:16px; max-width:370px; color:var(--forest); line-height:1.55; }
.footer-credential img { width:92px; height:92px; object-fit:contain; flex:0 0 auto; }
.footer-credential span { max-width:230px; }
footer>small { grid-column:1/-1; padding-top:22px; border-top:1px solid rgba(47,79,62,.14); line-height:1.55; color:#5f5f5a; }

@media (max-width:1050px) {
  .desktop-nav { display:none; }
  .mobile-menu { display:block; }
  .menu-toggle { display:flex; }
  .hero,.philosophy,.about { grid-template-columns:1fr; }
  .hero-copy { min-height:760px; }
  .hero-image { min-height:760px; }
  .philosophy-photo { height:680px; min-height:0; }
  .insight-opening,.coaching-strengths,.progress-main,.faq,.contact { grid-template-columns:1fr; }
  .insight-opening .brand-promise { grid-column:1; }
  .pattern-cycle { grid-template-columns:1fr; border-bottom:0; }
  .pattern-cycle div { min-height:0; border-right:0; border-bottom:1px solid var(--sand); padding:25px 45px 25px 10px; }
  .pattern-cycle strong { margin-top:10px; }
  .pattern-cycle i { right:8px; top:auto; bottom:-14px; transform:rotate(90deg); }
  .path-ladder { grid-template-columns:1fr 1fr; padding-top:0; }
  .path-step-2,.path-step-3,.path-step-4 { transform:none; }
  .progress-title { position:static; margin-bottom:55px; }
  .faq-heading { margin-bottom:40px; }
  .about-image { height:850px; min-height:0; }
}

@media (max-width:700px) {
  html { scroll-padding-top:82px; }
  .site-header { min-height:82px; padding:10px 18px; }
  .brand { width:180px; height:58px; }
  .menu-toggle { width:44px; height:44px; }
  .eyebrow { font-size:12px; letter-spacing:.14em; }
  .hero-copy { padding:78px 24px 60px; min-height:0; }
  .hero-copy::before { top:42px; }
  h1 { font-size:clamp(50px,15vw,68px); }
  .hero-question { margin-top:24px; }
  .hero-emblem { width:185px; margin-top:38px; }
  .hero-image { min-height:590px; }
  .recognition-intro h2 { font-size:clamp(42px,13vw,58px); }
  .struggle-list,.path-ladder,.service-cards,.expect-grid { grid-template-columns:1fr; }
  .struggle:nth-child(odd) { border-right:0; }
  .struggle { grid-template-columns:45px 1fr; padding-right:0; }
  .philosophy-photo { height:520px; }
  .philosophy-copy { padding:80px 24px; }
  .insight-opening { padding-bottom:65px; }
  .pattern-explainer { padding-top:65px; }
  .path-ladder { gap:12px; margin-top:50px; }
  .path-step { min-height:0; }
  .coaching-strengths { padding:38px 24px; }
  .service-cards { gap:14px; }
  .about-image { height:620px; }
  .about-copy { padding:85px 24px; }
  .expect>div:first-child h2,.expect-subhead { margin-left:0; }
  .form-row { grid-template-columns:1fr; }
  .contact { gap:55px; }
  .contact-form { padding:30px 22px; }
  footer { grid-template-columns:1fr; }
  footer>p,footer>small { text-align:left; }
  footer .footer-credential { justify-self:start; justify-content:flex-start; margin-top:10px; }
}

@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms!important; transition-duration:.01ms!important; }
}
