:root{
  --bg:#faf8f3;--fg:#1f2533;--card:#fff;--secondary:#f2efe8;--muted:#6b7080;
  --border:#e4dfd3;--navy:#1f2940;--navy-deep:#141a2b;--navy-fg:#f4f1ea;
  --gold:#c9a86a;--gold-soft:#e2d3b3;
  --display:"Cormorant Garamond",Georgia,serif;--sans:"Karla",system-ui,sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:5.5rem}
body{background:var(--bg);color:var(--fg);font-family:var(--sans);-webkit-font-smoothing:antialiased;line-height:1.5}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
ul,ol{list-style:none}
h1,h2,h3{font-family:var(--display);font-weight:500;letter-spacing:-.01em;line-height:1.15}
h2{font-size:clamp(1.9rem,3.5vw,2.75rem);margin-top:1.25rem}
.gold{color:var(--gold)}
.container{max-width:80rem;margin:0 auto;padding:0 1.25rem}
@media(min-width:640px){.container{padding:0 2rem}}
.section{padding-top:6rem;padding-bottom:6rem}
@media(min-width:1024px){.section{padding-top:8rem;padding-bottom:8rem}}
.band{background:rgba(242,239,232,.5);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.eyebrow{font-size:.6875rem;letter-spacing:.22em;text-transform:uppercase;font-weight:600;color:#a88b52}
.rule-gold{height:1px;width:3rem;margin-top:1.75rem;background:linear-gradient(to right,var(--gold),transparent)}
.lead{margin-top:1.25rem;color:var(--muted);font-size:.975rem;line-height:1.7}
.head{max-width:42rem}
.center{text-align:center;justify-content:center}
.narrow{max-width:32rem}

/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;padding:1rem 2rem;font-size:.75rem;letter-spacing:.16em;text-transform:uppercase;transition:.25s;border:1px solid transparent;cursor:pointer;font-family:var(--sans)}
.btn:disabled{opacity:.65;cursor:wait}
.btn.block{display:flex;width:100%}
.btn-gold{background:var(--gold);color:var(--navy-deep)}
.btn-gold:hover{background:var(--gold-soft)}
.btn-outline-light{border-color:rgba(244,241,234,.3);color:var(--navy-fg)}
.btn-outline-light:hover{border-color:var(--gold);color:var(--gold)}
.btn-navy{background:var(--navy);color:var(--navy-fg)}
.btn-navy:hover{background:var(--navy-deep)}
.btn-outline{background:var(--card);border-color:var(--border)}
.btn-outline:hover{border-color:var(--gold);color:var(--gold)}
.btn-row{display:flex;flex-wrap:wrap;gap:1rem;margin-top:2.5rem}

/* header */
.header{position:fixed;inset:0 0 auto 0;z-index:50;transition:.3s}
.header.scrolled{background:rgba(250,248,243,.92);backdrop-filter:blur(8px);border-bottom:1px solid var(--border)}
.nav{height:5rem;display:flex;align-items:center;justify-content:space-between}
.logo{display:flex;flex-direction:column;line-height:1}
.logo > .logo-name{width:8rem;height:auto;object-fit:contain}
.logo-name{font-family:var(--display);font-size:1.5rem;letter-spacing:.3em;color:var(--navy-fg)}
.logo-sub{margin-top:.35rem;font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;color:rgba(244,241,234,.6)}
.scrolled .logo-name{color:var(--fg)}.scrolled .logo-sub{color:var(--muted)}
.nav-links{display:none;gap:2rem}
.nav-links a{position:relative;font-size:.875rem;color:rgba(244,241,234,.7);transition:.2s}
.nav-links a::after{content:"";position:absolute;left:0;bottom:-6px;height:1px;width:0;background:var(--gold);transition:.3s}
.nav-links a:hover{color:var(--gold)}.nav-links a:hover::after{width:100%}
.scrolled .nav-links a{color:var(--muted)}.scrolled .nav-links a:hover{color:var(--fg)}
.nav-actions{display:flex;gap:.75rem;align-items:center}
.btn-nav{display:none;padding:.75rem 1.5rem;font-size:.75rem;letter-spacing:.14em;text-transform:uppercase;border:1px solid rgba(201,168,106,.6);color:var(--gold);transition:.25s}
.btn-nav:hover{background:var(--gold);color:var(--navy-deep)}
.scrolled .btn-nav{background:var(--navy);border-color:var(--navy);color:var(--navy-fg)}
.menu-btn{width:2.75rem;height:2.75rem;display:inline-flex;align-items:center;justify-content:center;background:none;border:1px solid rgba(244,241,234,.3);color:var(--navy-fg);cursor:pointer}
.scrolled .menu-btn{border-color:var(--border);color:var(--fg)}
.mobile-menu{max-height:0;overflow:hidden;background:var(--bg);transition:max-height .3s}
.mobile-menu.open{max-height:30rem;border-top:1px solid var(--border)}
.mobile-menu ul{padding-top:1rem;padding-bottom:1rem}
.mobile-menu a{display:block;padding:.9rem 0;font-size:.875rem;border-bottom:1px solid var(--border)}
.mobile-menu .pt{padding-top:1rem}.mobile-menu .pt a{border:0;color:var(--navy-fg)}
@media(min-width:640px){.btn-nav{display:inline-flex}.logo > .logo-name{width:8.75rem}}
@media(min-width:1024px){
  .nav{display:grid;grid-template-columns:auto 1fr auto;gap:2rem}
  .nav-links{display:flex;justify-content:center;gap:clamp(1rem,2.2vw,2rem)}
  .nav-actions{justify-self:end}
  .logo > .logo-name{width:9.5rem}
  .menu-btn,.mobile-menu{display:none}
}

/* hero */
.hero{background:var(--navy-deep);color:var(--navy-fg);overflow:hidden}
.hero-grid{display:grid;gap:3.5rem;align-items:center;padding-top:8rem;padding-bottom:5rem}
@media(min-width:1024px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:4rem;padding-top:10rem;padding-bottom:7rem}}
.hero-eyebrow{display:flex;align-items:center;gap:.75rem;font-size:.6875rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--gold)}
.hero-eyebrow .line{width:2rem;height:1px;background:var(--gold)}
.hero h1{margin-top:1.75rem;font-size:clamp(2.6rem,5vw,3.75rem);line-height:1.08}
.hero-text{margin-top:1.75rem;max-width:36rem;color:rgba(244,241,234,.7);font-size:1.05rem;line-height:1.7}
.hero-img-wrap{position:relative}
.hero-frame{position:absolute;inset:-.75rem;border:1px solid rgba(201,168,106,.25)}
.hero-img-wrap img{position:relative;width:100%;height:auto;max-height:34rem;object-fit:contain}

/* about */
.about-grid{display:grid;gap:3.5rem}
@media(min-width:1024px){.about-grid{grid-template-columns:.85fr 1.15fr;gap:5rem}}
.about-img{position:relative;align-self:start}
.about-img img{width:100%;height:26rem;object-fit:cover;object-position:top}
@media(min-width:640px){.about-img img{height:34rem}}
.corner{position:absolute;right:-.75rem;bottom:-.75rem;width:6rem;height:6rem;border-right:1px solid rgba(201,168,106,.5);border-bottom:1px solid rgba(201,168,106,.5)}
.prose{margin-top:1.75rem;color:var(--muted);font-size:.975rem;line-height:1.7}
.prose p+p{margin-top:1.25rem}
.pillars{margin-top:2.5rem;display:grid;gap:1px;background:var(--border);border:1px solid var(--border)}
@media(min-width:640px){.pillars{grid-template-columns:1fr 1fr}}
.pillars li{background:var(--card);padding:1.5rem;font-size:.875rem;letter-spacing:.02em;transition:.2s}
.pillars li:hover{background:var(--secondary)}
.pillars span{display:block;width:1.5rem;height:1px;background:var(--gold);margin-bottom:.75rem}

/* practice cards */
.cards{margin-top:3.5rem;display:grid;gap:1.5rem}
@media(min-width:640px){.cards{grid-template-columns:1fr 1fr}}
@media(min-width:1024px){.cards{grid-template-columns:repeat(3,1fr)}}
.card{background:var(--card);border:1px solid var(--border);padding:2rem;transition:.3s}
.card:hover{transform:translateY(-4px);border-color:rgba(201,168,106,.6);box-shadow:0 24px 48px -24px rgba(20,26,43,.3)}
.icon{width:1.5rem;height:1.5rem;fill:none;stroke:var(--gold);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;transition:.3s}
.card:hover .icon{transform:scale(1.1)}
.card h3{margin-top:1.5rem;font-size:1.25rem}
.card p{margin-top:.75rem;font-size:.875rem;color:var(--muted);line-height:1.65}
.practice-card h3{margin-top:0}
.practice-card ul,.partner-body ul{margin-top:1.25rem;display:grid;gap:.65rem}
.practice-card li,.partner-body li{position:relative;padding-left:1rem;font-size:.875rem;color:var(--muted);line-height:1.55;overflow-wrap:anywhere}
.practice-card li::before,.partner-body li::before{content:"";position:absolute;left:0;top:.7em;width:.3rem;height:1px;background:var(--gold)}

/* partners */
.partner-list{margin-top:3.5rem;display:grid;gap:1rem}
.partner-card{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--card)}
.partner-card summary{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;padding:1.5rem 1.25rem;cursor:pointer;list-style:none}
.partner-card summary::-webkit-details-marker{display:none}
.partner-card summary strong{display:block;font-family:var(--display);font-size:1.35rem;font-weight:500;letter-spacing:.03em}
.partner-card summary small{display:block;margin-top:.3rem;color:var(--muted);font-size:.75rem;letter-spacing:.08em;text-transform:uppercase}
.partner-card summary i{position:relative;width:1.25rem;height:1.25rem;flex-shrink:0}
.partner-card summary i::before,.partner-card summary i::after{content:"";position:absolute;left:50%;top:50%;background:var(--gold);transform:translate(-50%,-50%)}
.partner-card summary i::before{width:100%;height:1px}.partner-card summary i::after{width:1px;height:100%;transition:transform .25s}
.partner-card[open] summary i::after{transform:translate(-50%,-50%) rotate(90deg)}
.partner-body{padding:0 1.25rem 1.75rem;color:var(--muted);font-size:.9rem;line-height:1.7}
.partner-body p+p{margin-top:1rem}
.partner-body .partner-meta{color:var(--fg)}
.partner-body h4{margin-top:1.5rem;color:var(--fg);font-family:var(--display);font-size:1.15rem;font-weight:500}
.partner-columns{display:grid;gap:1.5rem}
.expertise-list{grid-template-columns:1fr 1fr}
@media(min-width:640px){
  .partner-card summary{padding:1.75rem 2rem}
  .partner-body{padding:0 2rem 2.25rem}
  .partner-columns{grid-template-columns:1fr 1fr}
}
@media(max-width:639px){.expertise-list{grid-template-columns:1fr}}

/* approach */
.steps{position:relative;margin-top:4rem;display:grid;gap:2.5rem}
.steps::before{content:"";position:absolute;top:.75rem;left:.4375rem;width:1px;height:calc(100% - 1.5rem);background:var(--border)}
.steps li{position:relative;padding-left:2.5rem}
.diamond{position:absolute;top:.5rem;left:0;width:.875rem;height:.875rem;transform:rotate(45deg);border:1px solid var(--gold);background:var(--bg)}
.no{font-family:var(--display);font-size:.875rem;letter-spacing:.2em;color:var(--gold)}
.steps h3{margin-top:.5rem;font-size:1.5rem}
.steps p{margin-top:.75rem;max-width:20rem;font-size:.875rem;color:var(--muted);line-height:1.65}
@media(min-width:768px){
  .steps{grid-template-columns:repeat(4,1fr);gap:2rem}
  .steps::before{top:.4375rem;left:0;width:100%;height:1px}
  .steps li{padding-left:0;padding-top:2.5rem}
  .diamond{top:0}
}

/* guidance */
.two-col{display:grid;gap:3.5rem;align-items:center}
@media(min-width:1024px){.two-col{grid-template-columns:1fr 1fr;gap:5rem}}
.points{margin-top:2.5rem}
.points div{border-left:1px solid rgba(201,168,106,.5);padding-left:1.5rem}
.points div+div{margin-top:2rem}
.points dt{font-family:var(--display);font-size:1.25rem}
.points dd{margin-top:.5rem;font-size:.875rem;color:var(--muted);line-height:1.65}
.guidance-img{width:100%;height:18rem;object-fit:cover}
@media(min-width:640px){.guidance-img{height:28rem}}

/* cta */
.cta{background:var(--navy-deep);color:var(--navy-fg)}
.cta-inner{max-width:48rem;margin:0 auto;padding:6rem 1.25rem;text-align:center}
.cta h2{margin:0}
.cta p{margin:1.5rem auto 0;max-width:36rem;color:rgba(244,241,234,.7);line-height:1.7}

/* faq */
.faq-wrap{max-width:56rem;margin:0 auto;padding-left:1.25rem;padding-right:1.25rem}
.faq{margin-top:3rem;border-top:1px solid var(--border)}
.faq-item{border-bottom:1px solid var(--border)}
.faq-q{width:100%;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;padding:1.5rem 0;background:none;border:0;text-align:left;cursor:pointer;color:inherit;font-family:var(--display);font-size:1.2rem;transition:.2s}
.faq-q:hover{color:var(--gold)}
.faq-q i{position:relative;width:1.25rem;height:1.25rem;flex-shrink:0;transition:transform .3s}
.faq-q i::before,.faq-q i::after{content:"";position:absolute;background:var(--gold);left:50%;top:50%;transform:translate(-50%,-50%)}
.faq-q i::before{width:100%;height:1.5px}.faq-q i::after{height:100%;width:1.5px}
.faq-item.open i{transform:rotate(45deg)}
.faq-a{display:grid;grid-template-rows:0fr;opacity:0;transition:.3s}
.faq-a p{min-height:0;overflow:hidden;padding-right:2.5rem;font-size:.875rem;color:var(--muted);line-height:1.65}
.faq-item.open .faq-a{grid-template-rows:1fr;opacity:1;padding-bottom:1.5rem}

/* contact */
.contact-grid{margin-top:3.5rem;display:grid;gap:3rem}
@media(min-width:1024px){.contact-grid{grid-template-columns:.9fr 1.1fr;gap:4rem}}
.details{border-top:1px solid var(--border);border-bottom:1px solid var(--border)}
.details div{padding:1.25rem 0 1.25rem 1.25rem;border-left:2px solid var(--gold)}
.details div+div{border-top:1px solid var(--border)}
.details dt{font-size:.625rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.details dd{margin-top:.25rem;font-size:.875rem}
.details a:hover{color:var(--gold)}
.contact-grid .btn-row{margin-top:2rem;gap:.75rem}
.form{background:var(--card);border:1px solid var(--border);padding:1.75rem}
@media(min-width:640px){.form{padding:2.25rem}}
.form h3{font-size:1.5rem}
.form-grid{margin:1.75rem 0;display:grid;gap:1.25rem}
@media(min-width:640px){.form-grid{grid-template-columns:1fr 1fr}.full{grid-column:span 2}}
label{display:block;margin-bottom:.5rem;font-size:.75rem;letter-spacing:.02em}
input,textarea{width:100%;border:1px solid var(--border);background:var(--card);padding:.9rem 1rem;font:inherit;font-size:.875rem;color:var(--fg);outline:none;transition:.2s}
input:focus,textarea:focus{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}

/* footer */
.footer{background:var(--navy-deep);color:var(--navy-fg);padding:4rem 0}
.footer-grid{display:grid;gap:2.5rem}
@media(min-width:768px){.footer-grid{grid-template-columns:repeat(3,1fr)}}
.footer ul li+li,.footer address p+p{margin-top:.75rem}
.footer ul,.footer address{font-size:.875rem;color:rgba(244,241,234,.7);font-style:normal}
.footer a:hover{color:var(--gold)}
.footer-bottom{margin-top:3.5rem;padding-top:2rem;border-top:1px solid rgba(244,241,234,.15);font-size:.75rem;color:rgba(244,241,234,.5);line-height:1.65}
.copy{margin-top:1.5rem;letter-spacing:.03em}

/* reveal + toast */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s cubic-bezier(.22,1,.36,1)}
.reveal.in{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}
.toast{position:fixed;left:50%;bottom:1.5rem;transform:translate(-50%,150%);background:var(--navy);color:var(--navy-fg);padding:1rem 1.5rem;font-size:.875rem;max-width:90vw;transition:.35s;z-index:60;border-left:3px solid var(--gold)}
.toast.show{transform:translate(-50%,0)}
