
:root{
  --ink:#0b0b0b; --graphite:#1a1a1a; --paper:#f6f3ee; --white:#fff; --muted:#6f6b64; --line:#d8d3c9; --accent:#8c7853;
  --serif: Georgia, "Times New Roman", serif; --sans: Inter, "Helvetica Neue", Arial, sans-serif;
}
*{box-sizing:border-box} html{scroll-behavior:smooth} body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65} a{color:inherit;text-decoration:none} img{max-width:100%;display:block}.wrap{width:min(1180px,calc(100% - 44px));margin:auto}.site-header{position:sticky;top:0;z-index:20;background:rgba(246,243,238,.94);backdrop-filter:blur(16px);border-bottom:1px solid rgba(11,11,11,.12)}.nav{height:94px;display:flex;align-items:center;justify-content:space-between;gap:30px}.brand img{width:232px;max-height:58px;object-fit:contain}.menu{display:flex;align-items:center;gap:28px;font-size:13px;letter-spacing:.12em;text-transform:uppercase}.menu a{position:relative}.menu a:after{content:"";position:absolute;left:0;right:0;bottom:-8px;height:1px;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:.22s}.menu a:hover:after,.menu a.active:after{transform:scaleX(1)}.menu-toggle{display:none;align-items:center;justify-content:center;position:relative;min-height:44px;width:min(275px,78vw);padding:10px 22px;border:1px solid var(--ink);background:transparent;color:var(--ink);font-size:12px;letter-spacing:.16em;text-transform:uppercase;font-family:var(--sans);transition:width .22s ease,background .2s,color .2s,border-color .2s}.menu-toggle[aria-expanded="true"]{background:var(--ink);color:var(--paper)}.button{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:12px 20px;border:1px solid var(--ink);font-size:12px;letter-spacing:.12em;text-transform:uppercase;transition:.2s}.button.primary{background:var(--ink);color:var(--white)}.button:hover{background:var(--accent);border-color:var(--accent);color:var(--white)}.button.light{border-color:var(--paper);color:var(--paper)}.button.light:hover{background:var(--paper);color:var(--ink)}.hero{display:grid;grid-template-columns:1.02fr .98fr;min-height:calc(100vh - 94px);border-bottom:1px solid var(--line)}.hero-copy{display:flex;align-items:center;padding:78px max(42px,calc((100vw - 1180px)/2)) 78px max(42px,calc((100vw - 1180px)/2))}.eyebrow{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:24px}.hero h1,.page-hero h1{font-family:var(--serif);font-weight:400;line-height:.98;letter-spacing:-.045em;margin:0}.hero h1{font-size:clamp(52px,7vw,112px);max-width:780px}.lead{font-size:clamp(18px,2vw,24px);line-height:1.55;color:#393631;max-width:680px;margin:28px 0 0}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.hero-media{position:relative;min-height:520px;overflow:hidden}.hero-media img,.image-panel img{width:100%;height:100%;object-fit:cover}.hero-card{position:absolute;left:0;bottom:0;background:var(--ink);color:var(--paper);width:min(470px,88%);padding:34px 38px}.hero-card p{margin:0;color:#ded9ce}.section{padding:96px 0;border-bottom:1px solid var(--line)}.section.tight{padding:72px 0}.section-title{display:grid;grid-template-columns:.52fr 1fr;gap:48px;align-items:start;margin-bottom:48px}.section-title h2{font-family:var(--serif);font-weight:400;font-size:clamp(38px,5vw,72px);line-height:1;margin:0;letter-spacing:-.035em}.section-title p{font-size:20px;margin:0;color:#38342f;max-width:760px}.practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.practice-card{background:var(--paper);padding:34px;min-height:330px;display:flex;flex-direction:column;justify-content:space-between}.practice-card .num{font-family:var(--serif);font-size:44px;color:var(--accent)}.practice-card h3{font-family:var(--serif);font-weight:400;font-size:34px;line-height:1.05;margin:20px 0}.practice-card p{color:#4a463f}.text-link{font-size:12px;text-transform:uppercase;letter-spacing:.14em;border-bottom:1px solid currentColor;padding-bottom:5px;align-self:flex-start}.split{display:grid;grid-template-columns:1fr 1fr;gap:70px;align-items:center}.image-panel{min-height:560px;position:relative;overflow:hidden;background:#111}.quote-block{background:var(--ink);color:var(--paper);padding:94px 0}.quote-block .wrap{display:grid;grid-template-columns:.42fr 1fr;gap:50px}.quote-block h2{font-family:var(--serif);font-weight:400;font-size:clamp(44px,6vw,86px);line-height:1;margin:0}.quote-block p{font-size:22px;color:#ded9ce;margin:0}.values{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line);margin-top:40px}.value{background:var(--paper);padding:28px}.value h3{font-family:var(--serif);font-weight:400;font-size:28px;margin:0 0 10px}.value p{color:#554f47;margin:0}.cta-band{background:var(--ink);color:var(--paper);padding:78px 0}.cta-band .wrap{display:flex;align-items:center;justify-content:space-between;gap:40px}.cta-band h2{font-family:var(--serif);font-size:54px;font-weight:400;line-height:1;margin:0}.site-footer{background:#050505;color:var(--paper);padding:62px 0 34px}.footer-grid{display:grid;grid-template-columns:1.4fr .7fr .9fr 1fr;gap:42px}.footer-logo{width:214px;margin-bottom:24px}.footer-grid h4{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#aaa;margin:0 0 16px}.footer-grid p,.footer-grid a{color:#d8d3c9}.footer-grid a{display:block;margin:6px 0}.disclaimer{border-top:1px solid rgba(255,255,255,.18);margin-top:42px;padding-top:22px;font-size:12px;color:#aaa}.page-hero{padding:94px 0 72px;border-bottom:1px solid var(--line)}.page-hero h1{font-size:clamp(56px,8vw,116px);max-width:1000px}.page-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:70px;padding:78px 0}.side-note{position:sticky;top:120px;border-left:1px solid var(--ink);padding-left:24px;color:#514c45}.content h2{font-family:var(--serif);font-weight:400;font-size:48px;line-height:1.05;margin:0 0 18px}.content h3{font-family:var(--serif);font-weight:400;font-size:32px;margin:42px 0 12px}.content p{color:#403b35}.service-list{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line);border:1px solid var(--line);margin:34px 0}.service-list div{background:var(--paper);padding:26px}.contact-card{border:1px solid var(--line);padding:38px;background:#fff}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:26px 0 28px}.field-label{display:flex;flex-direction:column;gap:8px;font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#5b554d}.field-label.full{grid-column:1/-1}.field{width:100%;border:1px solid var(--line);padding:14px;background:var(--paper);color:#2e2a25;font:inherit;letter-spacing:0;text-transform:none}.field.full{grid-column:1/-1;min-height:130px;resize:vertical}.hp-field{position:absolute;left:-9999px;opacity:0}.recaptcha-field{grid-column:1/-1;margin:4px 0 8px}.form-message{margin:24px 0;padding:16px 18px;border:1px solid var(--line);font-size:15px}.form-message.success{background:#eef3ea;color:#283420}.form-message.error{background:#f7ece8;color:#4a241d}.benchmark-note{font-size:13px;color:#716b62;border-top:1px solid var(--line);padding-top:18px;margin-top:34px}@media(max-width:920px){.nav{height:auto;padding:18px 0;align-items:center;flex-direction:column;gap:14px}.brand img{width:min(275px,78vw);max-height:68px}.menu-toggle{display:inline-flex}.menu{display:none;width:100%;align-items:center;flex-direction:column;gap:0;padding:10px 0 18px;border-top:1px solid var(--line);font-size:13px}.menu.is-open{display:flex}.menu a{padding:13px 0}.menu a:after{display:none}.menu .button{margin-top:8px;width:100%}.site-header.is-compact .nav{flex-direction:row;justify-content:space-between;align-items:center;gap:16px;padding:10px 0}.site-header.is-compact .brand img{width:174px;max-height:44px}.site-header.is-compact .menu-toggle{width:48px;min-height:44px;padding:0;font-size:0;letter-spacing:0}.site-header.is-compact .menu-toggle:before,.site-header.is-compact .menu-toggle:after{content:"";position:absolute;left:13px;right:13px;height:1px;background:currentColor;transition:.2s}.site-header.is-compact .menu-toggle:before{top:16px;box-shadow:0 6px 0 currentColor}.site-header.is-compact .menu-toggle:after{top:28px}.site-header.is-compact .menu{position:absolute;left:22px;right:22px;top:65px;width:auto;background:var(--paper);padding:16px 22px 22px;border:1px solid var(--line);box-shadow:0 18px 40px rgba(0,0,0,.14);align-items:flex-start}.hero,.split,.section-title,.quote-block .wrap,.page-layout,.footer-grid{grid-template-columns:1fr}.hero-copy{padding:68px 22px}.hero-media{min-height:420px}body:not(.home-page) .image-panel{min-height:0;aspect-ratio:1/1}body:not(.home-page) .image-panel img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.side-note{position:static;top:auto}.practice-grid,.values,.service-list{grid-template-columns:1fr}.cta-band .wrap{display:block}.cta-band .button{margin-top:24px}.footer-grid{gap:28px}.form-grid{grid-template-columns:1fr}.section{padding:72px 0}}


/* Home-only subtle motion */
.home-page .button{overflow:hidden;position:relative}.home-page .button:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 0%,rgba(255,255,255,.18) 42%,transparent 68%);transform:translateX(-120%);transition:transform .7s ease;pointer-events:none}.home-page .button:hover:before{transform:translateX(120%)}.home-page .button:not(.primary):before{background:linear-gradient(110deg,transparent 0%,rgba(140,120,83,.16) 42%,transparent 68%)}.home-page .motion-item{opacity:0;transform:translateY(22px);transition:opacity .7s ease,transform .7s ease;transition-delay:var(--motion-delay,0ms)}.home-page .motion-item.is-visible{opacity:1;transform:none}.home-page .practice-card{position:relative;overflow:hidden}.home-page .practice-card:before{content:"";position:absolute;left:0;top:0;height:1px;width:100%;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform .85s ease;transition-delay:calc(var(--motion-delay,0ms) + 140ms)}.home-page .practice-card.is-visible:before{transform:scaleX(1)}.home-page .quote-block{position:relative;overflow:hidden}.home-page .quote-block:after{content:"";position:absolute;right:-12%;top:0;width:44%;height:100%;background:repeating-linear-gradient(135deg,rgba(246,243,238,.11) 0 1px,transparent 1px 22px);opacity:.45;pointer-events:none;transform:translateX(18px);transition:transform 1.1s ease}.home-page .quote-block.is-visible:after{transform:translateX(0)}@media(prefers-reduced-motion:reduce){.home-page .motion-item{opacity:1;transform:none;transition:none}.home-page .button:before,.home-page .practice-card:before,.home-page .quote-block:after{transition:none}}

/* CSS-only mobile menu fallback */
.menu-state{position:absolute;inline-size:1px;block-size:1px;margin:-1px;padding:0;border:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap}
@media(max-width:920px){
  .nav{position:relative;transition:padding .34s cubic-bezier(.22,.61,.36,1),gap .34s cubic-bezier(.22,.61,.36,1)}
  .brand{display:inline-flex;align-items:center;justify-content:center;min-width:0;transition:transform .34s cubic-bezier(.22,.61,.36,1)}
  .brand img{transition:width .34s cubic-bezier(.22,.61,.36,1),max-height .34s cubic-bezier(.22,.61,.36,1),transform .34s cubic-bezier(.22,.61,.36,1)}
  .menu-toggle{flex:0 0 auto;transition:width .34s cubic-bezier(.22,.61,.36,1),min-height .34s cubic-bezier(.22,.61,.36,1),padding .34s cubic-bezier(.22,.61,.36,1),font-size .2s ease,letter-spacing .2s ease,background .2s ease,color .2s ease,border-color .2s ease,transform .34s cubic-bezier(.22,.61,.36,1)}
  .menu{
    display:flex;
    max-height:0;
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    overflow:hidden;
    padding-top:0;
    padding-bottom:0;
    border-top-color:transparent;
    transform:translateY(-6px);
    transition:max-height .34s cubic-bezier(.22,.61,.36,1),opacity .24s ease,visibility 0s linear .34s,transform .34s cubic-bezier(.22,.61,.36,1),padding .34s cubic-bezier(.22,.61,.36,1),border-color .24s ease,top .34s cubic-bezier(.22,.61,.36,1),left .34s cubic-bezier(.22,.61,.36,1),right .34s cubic-bezier(.22,.61,.36,1),box-shadow .34s ease;
  }
  .menu.is-open,
  .menu-state:checked ~ .menu{
    max-height:560px;
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    padding-top:10px;
    padding-bottom:18px;
    border-top-color:var(--line);
    transform:none;
    transition-delay:0s;
  }
  .menu-state:checked + .menu-toggle{background:var(--ink);color:var(--paper)}

  /* Compact mobile header: logo left, CSS-only sandwich button right. */
  .site-header.is-compact .nav{
    position:relative;
    flex-direction:row;
    flex-wrap:nowrap;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:10px 0;
  }
  .site-header.is-compact .brand{
    flex:0 1 auto;
    justify-content:flex-start;
    margin-right:auto;
    min-width:0;
  }
  .site-header.is-compact .brand img{
    width:clamp(142px,46vw,174px);
    max-height:44px;
  }
  .site-header.is-compact .menu-toggle{
    flex:0 0 48px;
    width:48px;
    margin-left:auto;
  }
  .site-header.is-compact .menu{
    left:0;
    right:0;
    top:calc(100% + 10px);
    width:auto;
    max-height:0;
  }
  .site-header.is-compact .menu.is-open,
  .site-header.is-compact .menu-state:checked ~ .menu{
    max-height:min(560px,calc(100vh - 88px));
  }
}
@media(max-width:920px) and (prefers-reduced-motion:reduce){
  .nav,.brand,.brand img,.menu-toggle,.menu{transition:none}
}
