/* Public services directory: a readable path from evidence to managed work. */
.public-shell .cp-portfolio {
  --pf-ink:#1b1f1d; --pf-green:#1f7a4f; --pf-deep:#0f3f2e;
  --pf-paper:#f6f5f1; --pf-white:#fff; --pf-copy:#4b5b50;
  --pf-muted:#647368; --pf-line:#dce6dc;
  color:var(--pf-ink); background:var(--pf-white); font-family:Inter,'Plus Jakarta Sans',sans-serif;
}
.public-shell .cp-portfolio * { box-sizing:border-box; }
.public-shell .cp-portfolio-container { width:min(100% - 48px,1240px); margin-inline:auto; }
.public-shell .cp-portfolio h1,.public-shell .cp-portfolio h2,.public-shell .cp-portfolio h3,.public-shell .cp-portfolio p { margin:0; }
.public-shell .cp-portfolio h1,.public-shell .cp-portfolio h2,.public-shell .cp-portfolio h3 {
  font-family:Fraunces,Georgia,serif; font-weight:400; letter-spacing:-.02em;
}
.public-shell .cp-portfolio-kicker { display:block; color:var(--pf-green); font:700 14px/1.35 Inter,sans-serif; }
.public-shell .cp-portfolio-button {
  display:inline-flex; align-items:center; justify-content:center; gap:14px; min-height:54px;
  padding:13px 24px; border:1px solid var(--pf-deep); border-radius:10px;
  background:#fff; color:var(--pf-deep); font:700 15px/1.3 Inter,sans-serif;
  text-decoration:none; text-align:center; cursor:pointer;
}
.public-shell .cp-portfolio-button--primary { background:var(--pf-deep); color:#fff; }
.public-shell .cp-portfolio-button:hover,.public-shell .cp-portfolio-button:focus-visible { border-color:var(--pf-green); background:var(--pf-green); color:#fff; }
.public-shell .cp-portfolio-link,.public-shell .cp-portfolio-text-action {
  display:inline-flex; align-items:center; gap:10px; min-height:48px; padding:0; border:0;
  background:transparent; color:var(--pf-deep); text-decoration:underline; text-underline-offset:5px;
  font:700 15px/1.4 Inter,sans-serif; cursor:pointer;
}
.public-shell .cp-portfolio :is(a,button):focus-visible { outline:3px solid var(--pf-green); outline-offset:4px; }
.public-shell .cp-portfolio-hero { padding:clamp(124px,12vw,180px) 0 clamp(82px,8vw,120px); background:var(--pf-paper); }
.public-shell .cp-portfolio-hero-grid { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(42px,5vw,86px); align-items:center; }
.public-shell .cp-portfolio-hero h1 { margin-top:19px; max-width:12ch; font-size:clamp(48px,5vw,78px); line-height:1.04; text-wrap:balance; }
.public-shell .cp-portfolio-hero-grid > div:first-child > p { max-width:51ch; margin-top:27px; color:var(--pf-copy); font-size:18px; line-height:1.66; }
.public-shell .cp-portfolio-hero-grid > div:first-child > p.cp-portfolio-small { margin-top:18px; color:var(--pf-muted); font-size:14px; line-height:1.55; }
.public-shell .cp-portfolio-actions { display:flex; flex-wrap:wrap; align-items:center; gap:14px 26px; margin-top:32px; }
.public-shell .cp-portfolio-preview { min-width:0; overflow:hidden; border:1px solid var(--pf-line); border-radius:20px; background:#fff; box-shadow:0 28px 80px rgba(15,63,46,.12); }
.public-shell .cp-portfolio-preview-top { display:flex; align-items:center; gap:12px; min-height:65px; padding:13px 22px; border-bottom:1px solid var(--pf-line); font-size:14px; }
.public-shell .cp-portfolio-preview-top > span:last-child { margin-left:auto; color:var(--pf-muted); white-space:nowrap; }
.public-shell .cp-portfolio-mark { display:grid; place-items:center; width:34px; height:34px; flex:none; border:1px solid var(--pf-line); border-radius:8px; background:#fff; }
.public-shell .cp-portfolio-mark img { display:block; width:24px; height:24px; object-fit:contain; }
.public-shell .cp-portfolio-preview-body { padding:clamp(25px,3.4vw,43px); }
.public-shell .cp-portfolio-preview-body h2 { max-width:15ch; font-size:clamp(30px,3vw,42px); line-height:1.1; }
.public-shell .cp-portfolio-preview-body > div { display:flex; gap:20px; padding:17px 0; border-top:1px solid var(--pf-line); }
.public-shell .cp-portfolio-preview-body > div:first-of-type { margin-top:25px; }
.public-shell .cp-portfolio-preview-body > div > span { flex:none; color:var(--pf-green); font-size:14px; font-weight:700; }
.public-shell .cp-portfolio-preview-body strong { font-size:15px; }
.public-shell .cp-portfolio-preview-body p { margin-top:5px; color:var(--pf-copy); font-size:14px; line-height:1.55; }
.public-shell .cp-portfolio-preview-note { padding:15px 22px; border-top:1px solid var(--pf-line); color:var(--pf-muted); font-size:14px; line-height:1.5; }
.public-shell .cp-portfolio-band { padding:clamp(82px,8.5vw,126px) 0; }
.public-shell .cp-portfolio-band--warm { background:var(--pf-paper); }
.public-shell .cp-portfolio-band--ink { background:var(--pf-deep); color:#fff; }
.public-shell .cp-portfolio-band--ink :is(h2,h3) { color:#fff; }
.public-shell .cp-portfolio-band--ink .cp-portfolio-kicker { color:#add8b7; }
.public-shell .cp-portfolio-band--ink p { color:#d7e9da!important; }
.public-shell .cp-portfolio-split,.public-shell .cp-portfolio-specialty,.public-shell .cp-portfolio-availability {
  display:grid; grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr); gap:clamp(48px,8vw,132px); align-items:start;
}
.public-shell .cp-portfolio-band h2,.public-shell .cp-portfolio-close h2 { max-width:15ch; margin-top:18px; font-size:clamp(38px,4.2vw,62px); line-height:1.08; text-wrap:balance; }
.public-shell .cp-portfolio-band .cp-portfolio-split > div:first-child > p,
.public-shell .cp-portfolio-specialty > div:first-child > p { max-width:50ch; margin-top:23px; color:var(--pf-copy); font-size:17px; line-height:1.68; }
.public-shell .cp-portfolio-ledger { border-top:1px solid var(--pf-line); }
.public-shell .cp-portfolio-ledger article { display:flex; gap:23px; padding:24px 0; border-bottom:1px solid var(--pf-line); }
.public-shell .cp-portfolio-ledger article > span { flex:none; color:var(--pf-green); font-size:14px; font-weight:700; }
.public-shell .cp-portfolio-ledger h3 { font-size:25px; line-height:1.18; }
.public-shell .cp-portfolio-ledger p { margin-top:8px; color:var(--pf-copy); font-size:15px; line-height:1.62; }
.public-shell .cp-portfolio-ledger a,.public-shell .cp-portfolio-service-list a { display:inline-block; margin-top:12px; color:var(--pf-deep); font-size:15px; font-weight:700; text-underline-offset:4px; }
.public-shell .cp-portfolio-text-action { margin-top:9px; min-height:30px; }
.public-shell .cp-portfolio-section-head { display:grid; grid-template-columns:.9fr 1.1fr; gap:0 clamp(48px,8vw,132px); align-items:start; margin-bottom:40px; }
.public-shell .cp-portfolio-section-head .cp-portfolio-kicker,.public-shell .cp-portfolio-section-head h2 { grid-column:1; }
.public-shell .cp-portfolio-section-head p { grid-column:2; grid-row:1 / 3; margin-top:0; color:var(--pf-copy); font-size:17px; line-height:1.68; }
.public-shell .cp-portfolio-service-list { border-top:1px solid var(--pf-line); }
.public-shell .cp-portfolio-service-list article { display:grid; grid-template-columns:55px 1fr auto; gap:24px; align-items:start; padding:28px 0; border-bottom:1px solid var(--pf-line); }
.public-shell .cp-portfolio-service-list article > span { color:var(--pf-green); font-size:14px; font-weight:700; }
.public-shell .cp-portfolio-service-list h3 { font-size:27px; }
.public-shell .cp-portfolio-service-list p { max-width:57ch; margin-top:7px; color:var(--pf-copy); font-size:15px; line-height:1.6; }
.public-shell .cp-portfolio-service-list a { margin:5px 0 0; white-space:nowrap; }
.public-shell .cp-portfolio-specialty .cp-portfolio-actions { margin-top:30px; }
.public-shell .cp-portfolio-specialty-note { padding:31px; border:1px solid var(--pf-line); border-radius:18px; background:var(--pf-paper); }
.public-shell .cp-portfolio-specialty-note strong { display:block; margin-top:23px; color:var(--pf-green); font-size:15px; }
.public-shell .cp-portfolio-specialty-note strong:first-child { margin-top:0; }
.public-shell .cp-portfolio-specialty-note p { margin-top:7px; color:var(--pf-copy); font-size:15px; line-height:1.6; }
.public-shell .cp-portfolio-steps { margin:0; padding:0; list-style:none; border-top:1px solid #ffffff56; }
.public-shell .cp-portfolio-steps li { display:flex; gap:23px; padding:24px 0; border-bottom:1px solid #ffffff56; }
.public-shell .cp-portfolio-steps li > span { color:#add8b7; font-size:14px; }
.public-shell .cp-portfolio-steps strong { font:400 25px/1.2 Fraunces,Georgia,serif; }
.public-shell .cp-portfolio-steps p { margin-top:8px; font-size:15px; line-height:1.6; }
.public-shell .cp-portfolio-availability > div:last-child { border-top:1px solid var(--pf-line); }
.public-shell .cp-portfolio-availability strong { display:block; margin-top:24px; color:var(--pf-green); font-size:15px; }
.public-shell .cp-portfolio-availability p { padding-bottom:24px; border-bottom:1px solid var(--pf-line); margin-top:8px; color:var(--pf-copy); font-size:15px; line-height:1.6; }
.public-shell .cp-portfolio-availability ul { margin:0; padding:0 0 24px 20px; border-bottom:1px solid var(--pf-line); color:var(--pf-copy); font-size:15px; line-height:1.65; }
.public-shell .cp-portfolio-availability li + li { margin-top:6px; }
.public-shell .cp-portfolio-close { padding:clamp(82px,8.5vw,125px) 0; background:#eaf3e9; }
.public-shell .cp-portfolio-close p { max-width:56ch; margin-top:22px; color:var(--pf-copy); font-size:17px; line-height:1.65; }
.public-shell .cp-portfolio-close small { display:block; margin-top:18px; color:var(--pf-muted); font-size:14px; line-height:1.5; }
@media (max-width:920px) {
  .public-shell .cp-portfolio-hero-grid,.public-shell .cp-portfolio-split,
  .public-shell .cp-portfolio-specialty,.public-shell .cp-portfolio-availability,
  .public-shell .cp-portfolio-section-head { grid-template-columns:1fr; gap:42px; }
  .public-shell .cp-portfolio-section-head .cp-portfolio-kicker,
  .public-shell .cp-portfolio-section-head h2,.public-shell .cp-portfolio-section-head p { grid-column:1; grid-row:auto; }
  .public-shell .cp-portfolio-preview { width:min(100%,710px); }
}
@media (max-width:650px) {
  .public-shell .cp-portfolio-container { width:min(100% - 36px,1240px); }
  .public-shell .cp-portfolio-hero { padding:104px 0 76px; }
  .public-shell .cp-portfolio-hero h1 { font-size:clamp(42px,10.5vw,58px); }
  .public-shell .cp-portfolio-hero-grid > div:first-child > p { font-size:16px; }
  .public-shell .cp-portfolio-actions { align-items:stretch; flex-direction:column; gap:7px; }
  .public-shell .cp-portfolio-actions .cp-portfolio-button { width:100%; }
  .public-shell .cp-portfolio-preview-body { padding:24px 20px; }
  .public-shell .cp-portfolio-band { padding:76px 0; }
  .public-shell .cp-portfolio-service-list article { grid-template-columns:34px 1fr; gap:15px; }
  .public-shell .cp-portfolio-service-list article a { grid-column:2; white-space:normal; margin-top:0; }
}
