@import url('https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,500;12..96,700&family=Source+Serif+4:opsz,wght@8..60,400;8..60,600&display=swap');

:root{
  --spruce:#1f3d36; --spruce-2:#2c5249; --birch:#f2f4f1; --paper:#fff;
  --gold:#d9a21b; --ink:#1b2326; --stone:#66706d; --mist:#dce3df;
  --display:'Bricolage Grotesque',system-ui,sans-serif;
  --body:'Source Serif 4',Georgia,serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{font:18px/1.7 var(--body);color:var(--ink);background:var(--birch)}
img{display:block;max-width:100%;height:auto}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.08;letter-spacing:-.02em;color:var(--spruce)}
h1{font-size:clamp(2.6rem,6.4vw,5.2rem)}
h2{font-size:clamp(1.9rem,3.6vw,2.9rem);margin-bottom:.6em}
h3{font-size:1.3rem;letter-spacing:-.01em;margin-bottom:.35em}
p+p{margin-top:1em}
a{color:var(--spruce-2);text-underline-offset:3px}
:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.wrap{max-width:1160px;margin-inline:auto;padding-inline:24px}
.measure{max-width:62ch}
.lede{font-size:1.2rem;color:var(--stone)}

/* header */
.site-head{background:var(--paper);border-bottom:1px solid var(--mist);position:sticky;top:0;z-index:10}
.site-head .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.8rem 2rem;padding-block:16px}
.logo{font:700 1.35rem var(--display);color:var(--spruce);text-decoration:none;letter-spacing:-.02em;display:flex;align-items:center;gap:.5rem}
.logo::before{content:"";width:14px;height:14px;background:var(--gold);border-radius:50% 50% 50% 0}
.site-head nav{display:flex;flex-wrap:wrap;align-items:center;gap:.3rem 1.6rem;font:500 1rem var(--display)}
.site-head nav a{color:var(--ink);text-decoration:none;padding:4px 0;border-bottom:2px solid transparent}
.site-head nav a:hover{border-color:var(--mist)}
.site-head nav a[aria-current]{border-color:var(--gold)}
.site-head nav .call{background:var(--spruce);color:#fff;padding:8px 16px;border-radius:6px;border:0}

/* buttons */
.btn{display:inline-block;font:500 1.05rem var(--display);background:var(--gold);color:var(--ink);padding:14px 26px;border-radius:6px;text-decoration:none;border:0;cursor:pointer}
.btn:hover{background:#e8b331}
.btn.ghost{background:transparent;color:#fff;box-shadow:inset 0 0 0 2px rgba(255,255,255,.7)}
.btn.ghost:hover{background:rgba(255,255,255,.1)}

/* hero */
.hero{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);min-height:min(calc(100vh - 72px),680px);background:var(--spruce);color:#fff}
.hero .copy{align-self:center;padding:48px 56px 48px max(24px,calc((100vw - 1160px)/2 + 24px))}
.hero img{width:100%;height:100%;object-fit:cover;object-position:50% 40%}
.hero h1{color:#fff;font-size:clamp(2.3rem,min(4.2vw,7vh),3.8rem);animation:rise .9s ease-out both}
.hero p{font-size:1.15rem;max-width:40ch;margin:1.2rem 0 1.8rem;color:#dfe7e3;animation:rise .9s .15s ease-out both}
.hero .actions{display:flex;flex-wrap:wrap;gap:12px;animation:rise .9s .3s ease-out both}
@keyframes rise{from{opacity:0;transform:translateY(18px)}}

/* page header (inner pages) */
.page-hero{background:var(--spruce);color:#e6ece9;padding:88px 0 64px}
.page-hero h1{color:#fff;font-size:clamp(2.4rem,5vw,4rem);max-width:16ch}
.page-hero p{max-width:56ch;margin-top:1.2rem;font-size:1.2rem}

/* sections */
.section{padding:96px 0}
.section.white{background:var(--paper)}
.split{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.split.wide-left{grid-template-columns:1.25fr 1fr}
.split img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:4px}
.checklist{list-style:none;margin-top:1.4rem;display:grid;gap:.8rem}
.checklist li{padding-left:1.8rem;position:relative}
.checklist li::before{content:"";position:absolute;left:0;top:.62em;width:10px;height:10px;border-radius:50% 50% 50% 0;background:var(--gold)}

/* practice tiles on home */
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:32px;margin-top:40px}
.tile{text-decoration:none;color:inherit;display:block}
.tile img{aspect-ratio:4/5;object-fit:cover;width:100%;border-radius:4px;margin-bottom:18px;transition:filter .3s}
.tile:hover img{filter:brightness(1.06) saturate(1.1)}
.tile:hover h3{text-decoration:underline;text-decoration-color:var(--gold);text-underline-offset:5px}
.tile p{color:var(--stone)}
.more{margin-top:40px;font:500 1.05rem var(--display)}

/* the path: signature element */
.path-section{background:var(--spruce);color:#dfe7e3}
.path-section h2{color:#fff}
.path{list-style:none;counter-reset:step;display:grid;grid-template-columns:repeat(4,1fr);gap:32px;margin-top:56px;position:relative}
.path::before{content:"";position:absolute;top:22px;left:22px;right:0;height:3px;background:linear-gradient(90deg,var(--gold) 0 75%,rgba(217,162,27,.25))}
.path li{counter-increment:step;position:relative;padding-top:72px}
.path li::before{content:counter(step);position:absolute;top:0;left:0;width:46px;height:46px;border-radius:50%;background:var(--gold);color:var(--ink);font:700 1.2rem/46px var(--display);text-align:center}
.path h3{color:#fff}

/* faq */
.faq{max-width:780px}
.faq details{border-top:1px solid var(--mist);padding:20px 0}
.faq details:last-child{border-bottom:1px solid var(--mist)}
.faq summary{font:500 1.2rem var(--display);color:var(--spruce);cursor:pointer;list-style:none;display:flex;justify-content:space-between;gap:1rem}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--gold);font-size:1.6rem;line-height:1}
.faq details[open] summary::after{content:"–"}
.faq details p{margin-top:.8rem;color:var(--stone);max-width:65ch}

/* cta band */
.cta{display:grid;grid-template-columns:1fr 1fr;background:var(--paper)}
.cta img{width:100%;height:100%;object-fit:cover;min-height:420px}
.cta .inner{padding:80px 64px;align-self:center}
.cta p{color:var(--stone);margin:1rem 0 2rem;max-width:44ch}

/* practice page */
.practice-layout{display:grid;grid-template-columns:220px 1fr;gap:64px;align-items:start}
.jump{position:sticky;top:110px;display:grid;gap:.5rem;font:500 .98rem var(--display)}
.jump a{color:var(--stone);text-decoration:none}
.jump a:hover{color:var(--spruce)}
.area{padding-bottom:64px;margin-bottom:64px;border-bottom:1px solid var(--mist);scroll-margin-top:110px}
.area:last-child{border:0;margin-bottom:0}
.area .split{align-items:start;gap:48px}
.area img{aspect-ratio:3/2}

/* team */
.team{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:48px 32px}
.person .photo{aspect-ratio:4/5;background:linear-gradient(160deg,var(--mist),#c9d3ce);border-radius:4px;margin-bottom:18px;display:grid;place-items:center;color:var(--stone);font:500 .9rem var(--display)}
.person .role{font:500 1rem var(--display);color:var(--spruce-2);margin-bottom:.6rem}
.person p{color:var(--stone);font-size:1rem}

/* values */
.values{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;margin-top:40px}
.values div{border-top:3px solid var(--gold);padding-top:20px}
.values p{color:var(--stone)}

/* contact */
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
form{display:grid;gap:18px}
.row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
label{font:500 .98rem var(--display);display:grid;gap:6px}
input,select,textarea{font:1rem var(--body);padding:13px 14px;border:1px solid #c5cfca;border-radius:6px;background:#fff;color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:3px solid var(--gold);outline-offset:0;border-color:var(--gold)}
.small{font-size:.92rem;color:var(--stone)}
.info h3{margin-top:1.8rem}
.info h3:first-child{margin-top:0}
.safety{background:#fbf3dc;border-left:4px solid var(--gold);padding:18px 22px;margin-top:2rem;font-size:1rem}

/* footer */
.site-foot{background:var(--ink);color:#b9c3bf;padding:64px 0 40px;font-size:.98rem}
.site-foot .cols{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:40px}
.site-foot h3{color:#fff;font-size:1.05rem}
.site-foot a{color:#dfe7e3}
.site-foot ul{list-style:none;display:grid;gap:.3rem}
.site-foot .legal{border-top:1px solid #2f3a3d;margin-top:48px;padding-top:24px;font-size:.88rem}

@media (max-width:900px){
  .hero{grid-template-columns:1fr}
  .hero img{order:-1;height:42vh}
  .hero .copy{padding:48px 24px}
  .split,.split.wide-left,.cta,.practice-layout{grid-template-columns:1fr}
  .tiles,.values,.path{grid-template-columns:1fr 1fr}
  .path::before{display:none}
  .jump{position:static;grid-auto-flow:column;gap:1.4rem;overflow-x:auto;padding-bottom:8px;white-space:nowrap;scrollbar-width:none}
  .jump::-webkit-scrollbar{display:none}
  .site-head{position:static}
  .cta .inner{padding:56px 24px}
  .site-foot .cols{grid-template-columns:1fr}
  .section{padding:64px 0}
}
@media (max-width:560px){
  .site-head nav{gap:.2rem 1.1rem;font-size:.95rem}
  .site-head nav .call{padding:6px 12px}
  body{font-size:17px}
  .tiles,.values,.path,.row{grid-template-columns:1fr}
  .split img{aspect-ratio:4/3}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
