/* Core Capital Investments — shared stylesheet.
   Self-hosted fonts: no third-party requests are made by this site. */

@font-face{
  font-family:"Source Serif 4";
  src:url("/assets/fonts/source-serif-4-var-latin.woff2") format("woff2-variations"),
      url("/assets/fonts/source-serif-4-var-latin.woff2") format("woff2");
  font-weight:200 900; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
                U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,
                U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:"IBM Plex Sans";
  src:url("/assets/fonts/ibm-plex-sans-var-latin.woff2") format("woff2-variations"),
      url("/assets/fonts/ibm-plex-sans-var-latin.woff2") format("woff2");
  font-weight:100 700; font-style:normal; font-display:swap;
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,
                U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,
                U+2212,U+2215,U+FEFF,U+FFFD;
}

:root{
  --paper:#faf9f7;
  --surface:#ffffff;
  --ink:#131619;
  --ink-2:#4c545d;
  --ink-3:#656d76;          /* 4.99:1 on paper — was #7b838c at 3.65:1, below AA */
  --rule:#e5e2dc;
  --rule-2:#efece7;
  --accent:#27374f;
  --accent-2:#41597a;
  --accent-soft:#eceef2;
  --flag:#7a5a1e;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --sans:"IBM Plex Sans",system-ui,-apple-system,"Segoe UI",sans-serif;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#101215; --surface:#171a1f; --ink:#e9e7e3; --ink-2:#adb4bd; --ink-3:#8c939c;
    --rule:#272b31; --rule-2:#1f2328; --accent:#9fb6d4; --accent-2:#b9cbe4; --accent-soft:#1b222d;
    --flag:#d4b483;
  }
}
:root[data-theme="dark"]{
  --paper:#101215; --surface:#171a1f; --ink:#e9e7e3; --ink-2:#adb4bd; --ink-3:#8c939c;
  --rule:#272b31; --rule-2:#1f2328; --accent:#9fb6d4; --accent-2:#b9cbe4; --accent-soft:#1b222d;
  --flag:#d4b483;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;
                       transition-duration:.01ms!important}
}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);
     font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;
     text-rendering:optimizeLegibility}
.wrap{max-width:1040px;margin:0 auto;padding:0 28px}
.wrap.narrow{max-width:760px}
a{color:inherit}
a:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:2px}

.skip{position:absolute;left:-9999px;top:0;background:var(--surface);color:var(--ink);
      border:1px solid var(--accent);padding:10px 16px;border-radius:0 0 4px 0;z-index:50;
      font-size:15px;text-decoration:none}
.skip:focus{left:0}

/* ---------- header ---------- */
header.site{border-bottom:1px solid var(--rule);background:var(--paper);position:sticky;top:0;z-index:20}
.hrow{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:70px;
      flex-wrap:wrap;padding:10px 0}
.mark{font-family:var(--serif);font-weight:700;font-size:19px;letter-spacing:-.01em;
      text-decoration:none;display:flex;align-items:baseline;gap:9px}
.mark span{font-family:var(--sans);font-weight:500;font-size:11px;letter-spacing:.16em;
           text-transform:uppercase;color:var(--ink-3)}
nav.site{display:flex;gap:26px;font-size:15px;flex-wrap:wrap}
nav.site a{color:var(--ink-2);text-decoration:none;padding:2px 0}
nav.site a:hover{color:var(--ink)}
nav.site a[aria-current="page"]{color:var(--ink);box-shadow:inset 0 -1px 0 var(--accent)}
@media(max-width:620px){
  .hrow{flex-direction:column;align-items:flex-start;gap:9px;min-height:0;padding:14px 0 12px}
  nav.site{gap:20px;font-size:14px}
}

/* ---------- hero ---------- */
.hero{padding:86px 0 62px;border-bottom:1px solid var(--rule)}
h1{font-family:var(--serif);font-weight:600;font-size:clamp(32px,5.1vw,52px);line-height:1.13;
   margin:0 0 22px;letter-spacing:-.018em;max-width:24ch;text-wrap:balance}
.lede{font-size:19px;color:var(--ink-2);max-width:62ch;margin:0 0 16px}
.lede:last-child{margin-bottom:0}
.facts{display:flex;flex-wrap:wrap;gap:0 54px;margin:44px 0 0}
.facts div{padding-top:14px;border-top:2px solid var(--accent)}
.facts dt{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);margin:0 0 3px}
.facts dd{margin:0;font-family:var(--serif);font-weight:600;font-size:25px;font-variant-numeric:tabular-nums}

/* ---------- sections ---------- */
main{display:block}
section{padding:66px 0;border-bottom:1px solid var(--rule)}
section:last-of-type{border-bottom:0}
.kicker{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:var(--accent);
        font-weight:600;margin:0 0 14px}
h2{font-family:var(--serif);font-weight:600;font-size:clamp(25px,3.4vw,33px);line-height:1.2;
   margin:0 0 16px;letter-spacing:-.012em;text-wrap:balance}
h3{letter-spacing:-.005em}
.intro{color:var(--ink-2);max-width:64ch;margin:0 0 14px;font-size:17px}
.intro:last-child{margin-bottom:0}
.more{display:inline-block;margin-top:6px;font-size:15px;font-weight:500;color:var(--accent-2);
      text-decoration:none;border-bottom:1px solid var(--rule);padding-bottom:1px}
.more:hover{border-bottom-color:var(--accent-2)}

/* ---------- two practices ---------- */
.practices{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:0;
           margin-top:34px;border-top:1px solid var(--rule)}
.practice{padding:26px 34px 28px 0;border-bottom:1px solid var(--rule)}
.practice:first-child{border-right:1px solid var(--rule);padding-right:38px}
.practice h3{font-family:var(--serif);font-weight:600;font-size:21px;margin:0 0 9px}
.practice p{margin:0 0 10px;color:var(--ink-2);font-size:16px}
@media(max-width:700px){
  .practice{padding-right:0}
  .practice:first-child{border-right:0}
}

/* ---------- products ---------- */
ul.products{list-style:none;margin:34px 0 0;padding:0;border-top:1px solid var(--rule)}
ul.products li{border-bottom:1px solid var(--rule)}
.prod{display:grid;grid-template-columns:minmax(0,1fr) 190px;gap:28px;padding:26px 0;align-items:start}
.prod h3{font-family:var(--serif);font-weight:600;font-size:22px;margin:0 0 6px}
.prod h3 a{text-decoration:none;background-image:linear-gradient(var(--accent),var(--accent));
           background-size:0% 1px;background-repeat:no-repeat;background-position:0 100%;
           transition:background-size .25s ease}
.prod h3 a:hover{background-size:100% 1px}
.prod p{margin:0;color:var(--ink-2);font-size:16px;max-width:56ch}
.where{display:flex;flex-direction:column;gap:7px;align-items:flex-start}
.badge{font-size:12px;letter-spacing:.03em;color:var(--ink-2);border:1px solid var(--rule);
       border-radius:3px;padding:3px 9px;text-decoration:none;background:var(--surface);white-space:nowrap}
.badge:hover{border-color:var(--accent);color:var(--accent)}
@media(max-width:700px){
  .prod{grid-template-columns:1fr;gap:14px}
  .where{flex-direction:row;flex-wrap:wrap}
}

/* ---------- column sets ---------- */
.cols{display:grid;grid-template-columns:repeat(auto-fit,minmax(255px,1fr));gap:38px;margin-top:34px}
.cols h3{font-size:16px;font-weight:600;margin:0 0 9px}
.cols p{margin:0 0 10px;color:var(--ink-2);font-size:16px}
.cols p:last-child{margin-bottom:0}

/* ---------- record / definition table ---------- */
table.record{width:100%;border-collapse:collapse;margin:22px 0 0;font-size:15.5px;max-width:560px}
table.record th{text-align:left;font-size:11px;letter-spacing:.11em;text-transform:uppercase;
                color:var(--ink-3);font-weight:600;padding:0 14px 8px 0;border-bottom:1px solid var(--rule)}
table.record td{padding:10px 14px 10px 0;border-bottom:1px solid var(--rule);vertical-align:top;
                color:var(--ink-2)}
table.record td:first-child{color:var(--ink-3);white-space:nowrap;font-size:13px;
                            letter-spacing:.04em;text-transform:uppercase;padding-top:12px}
table.record td:last-child{color:var(--ink);font-variant-numeric:tabular-nums}

/* ---------- prose (research, privacy) ---------- */
.prose{max-width:68ch}
.prose h2{margin-top:46px}
.prose h3{font-family:var(--serif);font-weight:600;font-size:20px;margin:30px 0 8px}
.prose p{margin:0 0 15px;color:var(--ink-2)}
.prose p.strong{color:var(--ink)}
.prose ul,.prose ol{margin:0 0 15px;padding-left:22px;color:var(--ink-2)}
.prose li{margin-bottom:8px}
.prose li::marker{color:var(--ink-3)}
.prose a{color:var(--accent-2);font-weight:500}
.prose .updated{color:var(--ink-3);font-size:14px;margin:0 0 38px}

/* ---------- boxes ---------- */
.box{background:var(--surface);border:1px solid var(--rule);border-radius:5px;
     padding:20px 22px;margin:24px 0}
.box p:last-child{margin-bottom:0}
.box h3{margin-top:0}
.box.flag{border-left:3px solid var(--flag)}
.box .label{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);
            font-weight:600;margin:0 0 9px}
.quotestring{font-family:var(--sans);font-weight:500;font-size:14.5px;letter-spacing:.02em;
             color:var(--ink);background:var(--accent-soft);border-radius:3px;
             padding:2px 7px;display:inline-block;margin:1px 0}

/* ---------- statute list ---------- */
dl.states{margin:22px 0 0;padding:0;border-top:1px solid var(--rule)}
dl.states div{padding:18px 0;border-bottom:1px solid var(--rule)}
dl.states dt{font-family:var(--serif);font-weight:600;font-size:18px;margin:0 0 5px;color:var(--ink)}
dl.states dd{margin:0;color:var(--ink-2);font-size:16px}
dl.states .when{display:block;margin-top:6px;font-size:13px;letter-spacing:.04em;
                text-transform:uppercase;color:var(--ink-3)}

/* ---------- contact ---------- */
.contact{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:34px;margin-top:30px}
.contact h3{font-size:11px;letter-spacing:.13em;text-transform:uppercase;color:var(--ink-3);
            font-weight:600;margin:0 0 8px}
.contact p{margin:0;color:var(--ink-2);font-size:16px}
.contact a{color:var(--accent-2);font-weight:500}

/* ---------- footer ---------- */
footer.site{padding:34px 0 54px;color:var(--ink-3);font-size:14px;border-top:1px solid var(--rule)}
footer.site p{margin:0 0 7px;max-width:76ch}
footer.site a{color:var(--ink-2)}
footer.site a:hover{color:var(--ink)}
.footlinks{display:flex;flex-wrap:wrap;gap:18px;margin:0 0 14px}
.footlinks a{text-decoration:none}

@media(max-width:620px){
  body{font-size:16px}
  .wrap{padding:0 20px}
  .hero{padding:52px 0 44px}
  section{padding:50px 0}
  .facts{gap:0 34px}
}

/* ---------- print ---------- */
@media print{
  :root{--paper:#fff;--surface:#fff;--ink:#000;--ink-2:#222;--ink-3:#555;--rule:#bbb;
        --accent:#000;--accent-2:#000;--accent-soft:#f0f0f0}
  header.site{position:static}
  .skip,nav.site,.badge{display:none}
  body{font-size:11pt}
  section{padding:18pt 0;break-inside:avoid}
  h1,h2,h3{break-after:avoid}
  .prose a::after{content:" (" attr(href) ")";font-size:9pt;color:#555;word-break:break-all}
}

table.record caption{text-align:left;caption-side:top;margin-bottom:4px}

.intro.verify{margin-top:16px;font-size:15px;color:var(--ink-3);max-width:58ch}
.intro.verify a{color:var(--accent-2);font-weight:500}
footer.site p.stamp{margin-top:12px;font-size:13px;color:var(--ink-3)}
