/* Landing page + shared design tokens (:root variables).
   Extracted from the original inline <style> block 1. */

  :root{
    --primary:#0F4C45; --primary-dk:#0A3833; --accent:#C9A24B; --accent-dk:#A6822F; --accent-hero:#C9A24B; --accent2-bg:#C9A24B; --accent2-text:#0A3833; --accent3-bg:#003F91; --accent3-text:#FFFFFF; --accent4-text:#C9A24B; --footer-bg:#0A3833; --report-bar-bg:#0F4C45; --report-bar-text:#FFFFFF;
    --cream:#F7F4ED; --paper:#FFFFFF; --ink:#22312E; --muted:#5C6B66; --line:#E4DECE;
    --shadow:0 18px 50px rgba(15,76,69,.13); --shadow-sm:0 6px 20px rgba(15,76,69,.08);
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth;
       /* The nav is position:sticky at top:0, so without this every anchor
          link parks the target section's top edge UNDERNEATH it. Sections
          with no background hide the overlap; #approach and #contact have
          coloured backgrounds, so theirs butted straight against the nav.
          Nav is 73px (14px padding x2 + 44px logo + 1px border); 88px
          leaves 15px of breathing room. One declaration covers every
          anchor on the page. */
       scroll-padding-top:88px}
  body{background:var(--cream);color:var(--ink);font-family:'Libre Franklin',system-ui,sans-serif;-webkit-font-smoothing:antialiased;line-height:1.6}
  h1,h2,h3,h4,.disp{font-family:'Fraunces',Georgia,serif;line-height:1.1}
  a{color:inherit;text-decoration:none}
  .wrap{max-width:1100px;margin:0 auto;padding-left:28px;padding-right:28px}
  /* NOTE: .wrap sets ONLY horizontal padding. It previously used the
     shorthand padding:0 28px, which (being a class) out-specified
     section{padding:74px 0} and silently killed the vertical spacing on
     every <section class="wrap"> — #about and #help. Keep it long-hand. */
  ::selection{background:var(--accent);color:#fff}
  .eyebrow{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--accent-dk)}
  .btn{display:inline-block;padding:14px 28px;border-radius:11px;font-weight:600;font-size:15px;transition:transform .15s, box-shadow .15s;cursor:pointer;border:none;font-family:inherit}
  .btn:hover{transform:translateY(-2px)}
  .btn-accent{background:var(--accent);color:var(--primary-dk);box-shadow:var(--shadow-sm)}
  .btn-accent2{background:var(--accent2-bg);color:var(--accent2-text);box-shadow:var(--shadow-sm)}
  .btn-accent3{background:var(--accent3-bg);color:var(--accent3-text);box-shadow:var(--shadow-sm)}
  .btn-accent3:hover{background:var(--accent3-bg);color:var(--accent3-text)}
  .btn-ghost{background:transparent;color:#fff;border:1.5px solid rgba(255,255,255,.45)}
  .btn-pine{background:var(--primary);color:#fff;box-shadow:var(--shadow-sm)}
  @keyframes rise{from{opacity:0;transform:translateY(22px)}to{opacity:1;transform:none}}
  .rise{animation:rise .8s cubic-bezier(.2,.7,.2,1) both}
  .d1{animation-delay:.08s}.d2{animation-delay:.18s}.d3{animation-delay:.28s}.d4{animation-delay:.38s}
  /* logo */
  .logo{display:flex;align-items:center;gap:12px}
  /* Brand lockup: the firm name STACKED over its descriptor.
     Previously .logo-wm was an inline span, so a 19px serif name and a
     9.5px caps descriptor sat SIDE BY SIDE with no gap — and the
     margin-top on .sub did nothing (margins don't apply vertically to
     inline elements). Flex-column makes it a real lockup. */
  .logo-wm{display:inline-flex;flex-direction:column;justify-content:center;line-height:1.05}
  .logo-img{height:60px;width:auto;max-width:280px;object-fit:contain;flex:0 0 auto}
  .logo-wm .nm{font-family:'Fraunces',serif;font-weight:600;font-size:19px;letter-spacing:.005em;white-space:nowrap}
  .logo-wm .sub{font-size:9px;letter-spacing:.12em;text-transform:uppercase;opacity:.72;margin-top:5px;white-space:nowrap;font-weight:500}
  @media(max-width:520px){ .logo-wm .nm{font-size:16px;white-space:normal} }
  /* nav */
  nav.top{position:sticky;top:0;z-index:30;background:rgba(247,244,237,.86);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
  nav.top .wrap{display:flex;align-items:center;gap:18px;padding:14px 28px}
  nav.top .links{margin-left:auto;display:flex;gap:26px;align-items:center;font-size:14px;font-weight:500}
  nav.top .links a:not(.btn):hover{color:var(--accent-dk)}
  @media(max-width:720px){nav.top .links a:not(.btn){display:none}}
  /* hero */
  .hero{background:linear-gradient(160deg,var(--primary) 0%, var(--primary-dk) 100%);color:#fff;position:relative;overflow:hidden}
  .hero:before{content:"";position:absolute;inset:0;background:
    radial-gradient(circle at 80% 20%, rgba(201,162,75,.16), transparent 40%),
    radial-gradient(circle at 10% 90%, rgba(201,162,75,.10), transparent 45%);}
  .hero .wrap{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center;padding:72px 28px 80px}
  @media(max-width:840px){.hero .wrap{grid-template-columns:1fr;gap:34px;text-align:center}}
  .hero h1{font-size:clamp(36px,6vw,60px);font-weight:600;margin:18px 0 10px}
  .hero .creds{font-size:15px;letter-spacing:.04em;opacity:.85;margin-bottom:18px}
  .hero .tag{font-family:'Fraunces',serif;font-style:italic;font-size:clamp(19px,2.6vw,24px);color:var(--accent-hero);margin-bottom:28px;font-weight:400}
  .hero .cta{display:flex;gap:14px;flex-wrap:wrap}
  @media(max-width:840px){.hero .cta{justify-content:center}}
  .portrait{position:relative;justify-self:center}
  .portrait img{width:min(360px,80vw);aspect-ratio:1;object-fit:cover;border-radius:20px;box-shadow:0 30px 70px rgba(0,0,0,.35);border:1px solid rgba(255,255,255,.12)}
  .portrait .badge{position:absolute;bottom:-18px;left:50%;transform:translateX(-50%);background:#fff;color:var(--primary);border-radius:14px;padding:12px 20px;box-shadow:var(--shadow);text-align:center;white-space:nowrap}
  .portrait .badge b{font-family:'Fraunces',serif;font-size:22px;display:block;color:var(--accent-dk)}
  .portrait .badge span{font-size:11px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
  /* trust strip */
  .trust{background:var(--paper);border-bottom:1px solid var(--line)}
  .trust .wrap{display:flex;justify-content:space-around;gap:24px;padding:30px 28px;flex-wrap:wrap;text-align:center}
  .trust .item b{font-family:'Fraunces',serif;font-size:30px;color:var(--primary);display:block}
  .trust .item span{font-size:13px;color:var(--muted)}
  /* sections */
  section{padding:74px 0}
  .lede{font-size:clamp(22px,3.4vw,30px);font-family:'Fraunces',serif;color:var(--primary);line-height:1.3;max-width:760px}
  .bio-grid{display:grid;grid-template-columns:1fr 1fr;gap:40px;margin-top:30px}
  @media(max-width:760px){.bio-grid{grid-template-columns:1fr}}
  .bio-grid p{margin-bottom:16px;color:#3a4a46}
  .pull{border-left:3px solid var(--accent);padding:6px 0 6px 22px;font-family:'Fraunces',serif;font-style:italic;font-size:20px;color:var(--primary);margin:8px 0 20px}
  /* philosophy cards */
  .philo{background:var(--primary);color:#fff}
  .philo .cards{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:34px}
  @media(max-width:820px){.philo .cards{grid-template-columns:1fr}}
  .philo .c{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12);border-radius:16px;padding:26px}
  .philo .c .n{font-family:'Fraunces',serif;font-size:14px;color:var(--accent4-text);letter-spacing:.1em}
  .philo .c h4{font-size:21px;margin:8px 0 10px;font-weight:600}
  .philo .c p{opacity:.82;font-size:14.5px}
  /* help list */
  .help-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin-top:30px}
  @media(max-width:760px){.help-grid{grid-template-columns:1fr}}
  .help{background:#fff;border:1px solid var(--line);border-radius:14px;padding:22px 24px;box-shadow:var(--shadow-sm);display:flex;gap:16px;align-items:flex-start}
  .help .ic{width:42px;height:42px;border-radius:11px;background:var(--cream);display:grid;place-items:center;flex:0 0 auto}
  .help h4{font-size:17px;color:var(--primary);margin-bottom:4px;font-weight:600}
  .help p{font-size:13.5px;color:var(--muted)}
  /* tools */
  .tools{background:var(--paper);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
  .tools .row{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:30px}
  @media(max-width:760px){.tools .row{grid-template-columns:1fr}}
  .tool{border:1px solid var(--line);border-radius:16px;padding:24px;background:linear-gradient(180deg,#fff,#FBF8F0);transition:transform .15s,box-shadow .15s}
  .tool:hover{transform:translateY(-3px);box-shadow:var(--shadow)}
  .tool .dn{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-dk)}
  .tool h4{font-size:20px;color:var(--primary);margin:6px 0 8px;font-weight:600}
  .tool p{font-size:14px;color:var(--muted)}
  /* contact */
  .contact{background:linear-gradient(160deg,var(--primary),var(--primary-dk));color:#fff}
  .contact .box{display:grid;grid-template-columns:1fr 1fr;gap:44px;align-items:center}
  @media(max-width:760px){.contact .box{grid-template-columns:1fr;gap:28px}}
  .contact h2{font-size:clamp(28px,4.4vw,40px);font-weight:600;margin-bottom:14px}
  .contact .info a{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.14);font-size:16px}
  .contact .info a:hover{color:var(--accent)}
  .contact .ic{width:34px;height:34px;border-radius:9px;background:rgba(255,255,255,.10);display:grid;place-items:center;flex:0 0 auto}
  /* footer */
  footer{background:var(--footer-bg);color:rgba(255,255,255,.7);padding:38px 0 50px}
  footer .wrap{display:flex;gap:30px;justify-content:space-between;flex-wrap:wrap;align-items:flex-start}
  footer .disc{font-size:11px;line-height:1.6;opacity:.7}
  .footer-logo{display:block;height:60px;width:auto;max-width:260px;object-fit:contain;margin-bottom:14px}
  .footer-advisors{font-size:13px;opacity:.85;line-height:1.5}
  .footer-advisors div + div{margin-top:2px}

  /* ===== embedded live-tools overlay ===== */
  #suite-overlay{position:fixed;inset:0;z-index:1000;background:var(--cream);display:none;flex-direction:column}
  #suite-overlay.open{display:flex}
  #suiteBar{flex:0 0 auto;height:54px;display:flex;align-items:center;gap:14px;padding:0 18px;background:var(--primary);color:#fff;box-shadow:0 2px 14px rgba(15,76,69,.25)}
  #suiteBar .sb-mark{width:30px;height:30px;border-radius:8px;background:#fff;display:grid;place-items:center;overflow:hidden;padding:3px}
  #suiteBar .sb-mark img{width:100%;height:100%;object-fit:contain;display:block}
  #suiteBar .sb-name{font-family:'Fraunces',serif;font-weight:600;font-size:15px;line-height:1}
  #suiteBar .sb-name small{display:block;font-family:'Libre Franklin',sans-serif;font-weight:400;font-size:10.5px;letter-spacing:.14em;text-transform:uppercase;opacity:.7;margin-top:3px}
  #suiteBack{margin-left:auto;background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.32);border-radius:999px;padding:9px 18px;font-weight:600;font-size:13.5px;cursor:pointer;font-family:inherit;transition:background .15s}
  #suiteBack:hover{background:rgba(255,255,255,.26)}
  #suite-overlay #suiteFrame{flex:1 1 auto;width:100%;border:0;display:block;overflow-y:auto;-webkit-overflow-scrolling:touch}

