/* Shared public service story. Scoped so legacy templates cannot change these pages. */
.public-shell .cp-service {
  --svc-ink:#1b1f1d; --svc-green:#1f7a4f; --svc-deep:#0f3f2e;
  --svc-copy:#4b5b50; --svc-muted:#647368; --svc-line:#dce6dc;
  --svc-paper:#f6f5f1; --svc-mint:#edf5ed; --svc-white:#fff;
  color:var(--svc-ink); background:var(--svc-white); font-family:Inter,'Plus Jakarta Sans',sans-serif;
}
.public-shell .cp-service * { box-sizing:border-box; }
.public-shell .cp-service-container { width:min(100% - 48px,1240px); margin-inline:auto; }
.public-shell .cp-service h1,.public-shell .cp-service h2,.public-shell .cp-service h3,.public-shell .cp-service p { margin:0; }
.public-shell .cp-service-kicker { display:block; color:var(--svc-green); font:700 14px/1.35 Inter,sans-serif; letter-spacing:.015em; }
.public-shell .cp-service h1,.public-shell .cp-service h2 { color:var(--svc-ink); font-family:Fraunces,Georgia,serif; font-weight:400; letter-spacing:-.02em; }
.public-shell .cp-service-hero { padding:clamp(124px,12vw,180px) 0 clamp(78px,8vw,120px); background:var(--svc-paper); }
.public-shell .cp-service-hero > .cp-service-container { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); align-items:center; gap:clamp(42px,5vw,88px); }
.public-shell .cp-service-hero h1 { max-width:11ch; margin-top:19px; font-size:clamp(48px,5.2vw,80px); line-height:1.02; text-wrap:balance; }
.public-shell .cp-service-hero-copy > p:not(.cp-service-fine) { max-width:51ch; margin-top:30px; color:var(--svc-copy); font-size:18px; line-height:1.68; }
.public-shell .cp-service-actions { display:flex; align-items:center; flex-wrap:wrap; gap:16px 27px; margin-top:32px; }
.public-shell .cp-service-button { display:inline-flex; align-items:center; justify-content:center; gap:16px; min-height:54px; padding:13px 24px; border:1px solid var(--svc-green); border-radius:999px; background:var(--svc-white); color:var(--svc-deep); font:700 15px/1.25 Inter,sans-serif; text-decoration:none; cursor:pointer; text-align:center; }
.public-shell .cp-service-button--primary { color:var(--svc-white); background:var(--svc-green); }
.public-shell .cp-service-button:hover,.public-shell .cp-service-button:focus-visible { background:var(--svc-green); border-color:var(--svc-green); color:var(--svc-white); }
.public-shell .cp-service-link { display:inline-flex; align-items:center; gap:9px; min-height:48px; padding:0; border:0; background:transparent; color:var(--svc-deep); text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:5px; font:700 15px/1.4 Inter,sans-serif; cursor:pointer; }
.public-shell .cp-service-link:hover,.public-shell .cp-service-link:focus-visible { color:var(--svc-green); }
.public-shell .cp-service-button:focus-visible,.public-shell .cp-service-link:focus-visible,.public-shell .cp-service-faq summary:focus-visible { outline:3px solid var(--svc-green); outline-offset:4px; }
.public-shell .cp-service-fine { margin-top:21px!important; max-width:55ch; color:var(--svc-muted); font-size:14px; line-height:1.55; }

.public-shell .cp-service-display { min-width:0; overflow:hidden; border:1px solid var(--svc-line); border-radius:20px; background:var(--svc-white); box-shadow:0 28px 80px rgba(15,63,46,.12); }
.public-shell .cp-service-display-top { display:flex; align-items:center; gap:12px; min-height:64px; padding:12px 22px; border-bottom:1px solid var(--svc-line); font-size:14px; font-weight:700; }
.public-shell .cp-service-display-top > span:last-child { margin-left:auto; color:var(--svc-muted); font-size:14px; font-weight:500; }
.public-shell .cp-service-mark { display:grid; place-items:center; width:34px; height:34px; flex:none; border:1px solid var(--svc-line); border-radius:8px; background:#fff; }
.public-shell .cp-service-mark img { display:block; width:24px; height:24px; object-fit:contain; }
.public-shell .cp-service-display-note { padding:15px 22px; border-top:1px solid var(--svc-line); color:var(--svc-muted); font-size:14px; line-height:1.5; }

/* Local context: a deliberately unranked map and evidence ledger. */
.public-shell .cp-visibility-scene { display:grid; grid-template-columns:1fr 1fr; min-height:460px; }
.public-shell .cp-visibility-map { position:relative; min-height:360px; overflow:hidden; background:#e9efdf; }
.public-shell .cp-map-road { position:absolute; display:block; background:#fff; box-shadow:0 0 0 10px #d8e2d0; }
.public-shell .cp-map-road--one { width:760px; height:24px; top:34%; left:-30%; transform:rotate(-18deg); }
.public-shell .cp-map-road--two { width:740px; height:22px; top:74%; left:-30%; transform:rotate(18deg); }
.public-shell .cp-map-road--three { width:22px; height:700px; top:-30%; left:38%; transform:rotate(10deg); }
.public-shell .cp-map-pin { position:absolute; z-index:1; padding:11px 14px; border-radius:12px; box-shadow:0 9px 26px #183b2740; font-size:14px; font-weight:700; white-space:nowrap; }
.public-shell .cp-map-pin--own { top:45%; left:17%; background:var(--svc-deep); color:#fff; }
.public-shell .cp-map-pin--peer { top:20%; right:5%; background:#fff; color:var(--svc-ink); }
.public-shell .cp-visibility-readout { padding:30px 26px; }
.public-shell .cp-visibility-readout > span { color:var(--svc-green); font-size:14px; font-weight:700; }
.public-shell .cp-visibility-readout h2 { margin:14px 0 24px; font-size:30px; line-height:1.1; }
.public-shell .cp-visibility-readout > div { padding:14px 0; border-top:1px solid var(--svc-line); }
.public-shell .cp-visibility-readout strong,.public-shell .cp-visibility-readout small { display:block; font-size:14px; line-height:1.48; }
.public-shell .cp-visibility-readout small { margin-top:5px; color:var(--svc-muted); }

/* Market context: compare available facts without invented practice metrics. */
.public-shell .cp-market-comparison { padding:30px 26px; }
.public-shell .cp-market-comparison > span { color:var(--svc-green); font-size:14px; font-weight:700; }
.public-shell .cp-market-comparison h2 { margin:15px 0 27px; max-width:16ch; font-size:34px; line-height:1.1; }
.public-shell .cp-market-table { border-top:1px solid var(--svc-line); }
.public-shell .cp-market-table > div { display:grid; grid-template-columns:.65fr 1fr 1fr; gap:18px; padding:19px 0; border-bottom:1px solid var(--svc-line); font-size:14px; line-height:1.5; }
.public-shell .cp-market-table-head { color:var(--svc-green); }
.public-shell .cp-market-table span { color:var(--svc-copy); }
.public-shell .cp-market-question { margin-top:26px; padding:22px; border-radius:12px; background:var(--svc-mint); }
.public-shell .cp-market-question > span { display:block; color:var(--svc-green); font-size:14px; }
.public-shell .cp-market-question strong { display:block; margin-top:9px; font:400 24px/1.2 Fraunces,Georgia,serif; }
.public-shell .cp-market-question p { margin-top:12px; color:var(--svc-copy); font-size:14px; line-height:1.55; }

/* Search proposal: recognizable ad chrome without fabricated CPC or leads. */
.public-shell .cp-ads-scene { padding:27px; background:#f7f9f6; }
.public-shell .cp-ads-search { display:flex; justify-content:space-between; gap:20px; padding:16px 20px; border:1px solid var(--svc-line); border-radius:40px; background:#fff; color:var(--svc-ink); font-size:16px; }
.public-shell .cp-ads-result { margin-top:20px; padding:24px; border:1px solid var(--svc-line); border-radius:16px; background:#fff; }
.public-shell .cp-ads-result > span,.public-shell .cp-ads-result > small { display:block; color:var(--svc-muted); font-size:14px; }
.public-shell .cp-ads-result > small { margin-top:8px; color:var(--svc-green); }
.public-shell .cp-ads-result h2 { margin:12px 0; color:#204f86; font:600 23px/1.2 Inter,sans-serif; letter-spacing:-.02em; }
.public-shell .cp-ads-result p { color:var(--svc-copy); font-size:15px; line-height:1.5; }
.public-shell .cp-ads-plan { display:grid; grid-template-columns:1fr 1fr; gap:1px; overflow:hidden; margin-top:18px; border:1px solid var(--svc-line); border-radius:14px; background:var(--svc-line); }
.public-shell .cp-ads-plan > div { padding:16px; background:#fff; }
.public-shell .cp-ads-plan span,.public-shell .cp-ads-plan strong { display:block; font-size:14px; line-height:1.4; }
.public-shell .cp-ads-plan span { color:var(--svc-muted); }
.public-shell .cp-ads-plan strong { margin-top:6px; color:var(--svc-ink); }

/* Website preview: big enough to read, clearly unpublished. */
.public-shell .cp-sites-browser { margin:20px; overflow:hidden; border:1px solid var(--svc-line); border-radius:14px; background:#fff; }
.public-shell .cp-sites-browser-top { display:flex; gap:16px; padding:13px 18px; border-bottom:1px solid var(--svc-line); color:var(--svc-muted); font-size:14px; }
.public-shell .cp-sites-example { background:#faf8f1; }
.public-shell .cp-sites-nav { display:flex; justify-content:space-between; gap:20px; padding:19px 23px; color:var(--svc-ink); font-size:14px; }
.public-shell .cp-sites-nav strong { font-family:Fraunces,serif; font-size:18px; }
.public-shell .cp-sites-hero { display:grid; grid-template-columns:1.1fr .9fr; align-items:stretch; min-height:310px; }
.public-shell .cp-sites-hero > div:first-child { padding:35px 24px; }
.public-shell .cp-sites-hero small { color:var(--svc-green); font-size:14px; font-weight:700; }
.public-shell .cp-sites-hero h2 { margin:16px 0; font-size:clamp(30px,3vw,42px); line-height:1.07; }
.public-shell .cp-sites-hero p { color:var(--svc-copy); font-size:15px; line-height:1.5; }
.public-shell .cp-sites-hero span { display:inline-block; margin-top:24px; padding:11px 16px; border-radius:30px; background:var(--svc-deep); color:#fff; font-size:14px; font-weight:700; }
.public-shell .cp-sites-photo { min-height:290px; background:#dce6dc url('/static/images/editorial/independent-practices-20261002-v1.jpg') 0 16%/400% auto no-repeat; }
.public-shell .cp-sites-foot { display:flex; justify-content:space-around; flex-wrap:wrap; gap:8px; padding:15px; border-top:1px solid var(--svc-line); color:var(--svc-copy); font-size:14px; }
.public-shell .cp-sites-comment { display:flex; align-items:center; gap:12px; padding:0 22px 22px; color:var(--svc-copy); }
.public-shell .cp-sites-comment > span { display:grid; place-items:center; width:37px; height:37px; flex:none; border-radius:50%; background:var(--svc-mint); color:var(--svc-green); font-size:22px; }
.public-shell .cp-sites-comment strong,.public-shell .cp-sites-comment p,.public-shell .cp-sites-comment small { font-size:14px; line-height:1.45; }
.public-shell .cp-sites-comment p { margin-top:4px; }
.public-shell .cp-sites-comment small { margin-left:auto; white-space:nowrap; }

.public-shell .cp-service-band { padding:clamp(80px,9vw,130px) 0; }
.public-shell .cp-service-band--paper { background:var(--svc-paper); }
.public-shell .cp-service-band--mint { background:var(--svc-mint); }
.public-shell .cp-service-band--ink { background:var(--svc-deep); color:#f2f6f1; }
.public-shell .cp-service-band h2 { max-width:14ch; margin-top:18px; font-size:clamp(38px,4.2vw,62px); line-height:1.06; text-wrap:balance; }
.public-shell .cp-service-band p { max-width:52ch; margin-top:22px; color:var(--svc-copy); font-size:17px; line-height:1.7; }
.public-shell .cp-service-intro,.public-shell .cp-service-process,.public-shell .cp-service-close { display:grid; grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(45px,8vw,140px); }
.public-shell .cp-service-rows > div { display:flex; gap:24px; padding:24px 0; border-top:1px solid var(--svc-line); }
.public-shell .cp-service-rows > div:last-child { border-bottom:1px solid var(--svc-line); }
.public-shell .cp-service-rows > div > span { flex:none; color:var(--svc-green); font-size:14px; font-weight:700; }
.public-shell .cp-service-rows h3 { font:400 24px/1.2 Fraunces,Georgia,serif; color:var(--svc-ink); }
.public-shell .cp-service-rows p { margin-top:8px; font-size:15px; line-height:1.65; }
.public-shell .cp-service-process h2,.public-shell .cp-service-process p { color:#f2f6f1; }
.public-shell .cp-service-process .cp-service-kicker { color:#acd8b4; }
.public-shell .cp-service-process ol { margin:0; padding:0; list-style:none; border-top:1px solid #ffffff50; }
.public-shell .cp-service-process li { display:flex; gap:23px; padding:25px 0; border-bottom:1px solid #ffffff50; }
.public-shell .cp-service-process li > span { flex:none; color:#acd8b4; font-size:14px; }
.public-shell .cp-service-process strong { font:400 24px/1.2 Fraunces,Georgia,serif; }
.public-shell .cp-service-process li p { margin-top:8px; color:#d4e6d7; font-size:15px; }
.public-shell .cp-service-availability { align-self:start; padding:30px; border:1px solid #aacba8; border-radius:18px; background:#fff; }
.public-shell .cp-service-availability span { display:block; margin-top:22px; color:var(--svc-green); font-size:14px; font-weight:700; }
.public-shell .cp-service-availability span:first-child { margin-top:0; }
.public-shell .cp-service-availability p { margin-top:8px; font-size:15px; }
.public-shell .cp-service-specialty { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); align-items:center; gap:clamp(40px,7vw,110px); }
.public-shell .cp-service-specialty-visual { padding:30px; border-radius:20px; background:#fff; }
.public-shell .cp-service-specialty-visual > span { color:var(--svc-green); font-size:14px; font-weight:700; }
.public-shell .cp-service-specialty-visual > div { padding:20px 0; border-bottom:1px solid var(--svc-line); }
.public-shell .cp-service-specialty-visual strong,.public-shell .cp-service-specialty-visual small { display:block; font-size:15px; line-height:1.45; }
.public-shell .cp-service-specialty-visual small { margin-top:5px; color:var(--svc-muted); }
.public-shell .cp-service-specialty-visual p { margin-top:22px; font-size:14px; }
.public-shell .cp-service-faq { padding:85px 0 110px; border-top:1px solid var(--svc-line); }
.public-shell .cp-service-faq > .cp-service-container { display:grid; grid-template-columns:1fr 1fr; gap:clamp(45px,8vw,130px); }
.public-shell .cp-service-faq h2 { max-width:14ch; font-size:clamp(34px,3.7vw,54px); line-height:1.08; }
.public-shell .cp-service-faq details { padding:20px 0; border-bottom:1px solid var(--svc-line); }
.public-shell .cp-service-faq details:first-child { border-top:1px solid var(--svc-line); }
.public-shell .cp-service-faq summary { color:var(--svc-ink); font-size:17px; font-weight:700; cursor:pointer; }
.public-shell .cp-service-faq details p { margin-top:15px; color:var(--svc-copy); font-size:15px; line-height:1.7; }

@media (max-width:1100px) {
  .public-shell .cp-service-hero > .cp-service-container,.public-shell .cp-service-intro,.public-shell .cp-service-process,.public-shell .cp-service-close,.public-shell .cp-service-specialty { gap:38px; }
  .public-shell .cp-service-hero h1 { font-size:clamp(45px,5.5vw,62px); }
  .public-shell .cp-visibility-scene { grid-template-columns:1fr; }
  .public-shell .cp-visibility-map { min-height:250px; }
}
@media (max-width:780px) {
  .public-shell .cp-service-container { width:min(100% - 36px,680px); }
  .public-shell .cp-service-hero { padding:112px 0 76px; }
  .public-shell .cp-service-hero > .cp-service-container,.public-shell .cp-service-intro,.public-shell .cp-service-process,.public-shell .cp-service-close,.public-shell .cp-service-specialty,.public-shell .cp-service-faq > .cp-service-container { grid-template-columns:1fr; }
  .public-shell .cp-service-display { max-width:680px; }
  .public-shell .cp-service-band { padding:72px 0; }
  .public-shell .cp-service-hero h1 { max-width:14ch; }
}
@media (max-width:520px) {
  .public-shell .cp-service-container { width:min(100% - 32px,440px); }
  .public-shell .cp-service-hero h1 { font-size:clamp(42px,11.5vw,58px); }
  .public-shell .cp-service-actions { align-items:stretch; flex-direction:column; }
  .public-shell .cp-service-button { width:100%; }
  .public-shell .cp-service-hero-copy > p:not(.cp-service-fine) { font-size:16px; }
  .public-shell .cp-service-display-top { flex-wrap:wrap; }
  .public-shell :is(.cp-service--sites,.cp-service--advertising) .cp-service-display-top { flex-wrap:nowrap; gap:9px; padding:16px; }
  .public-shell :is(.cp-service--sites,.cp-service--advertising) .cp-service-display-top > span:nth-child(2) { min-width:0; flex:1; font-size:13px; }
  .public-shell :is(.cp-service--sites,.cp-service--advertising) .cp-service-display-top > span:last-child { flex:none; font-size:12px; white-space:nowrap; }
  .public-shell :is(.cp-service--sites,.cp-service--advertising) .cp-service-hero-copy > p:not(.cp-service-fine) { margin-top:20px; }
  .public-shell :is(.cp-service--sites,.cp-service--advertising) .cp-service-actions { margin-top:24px; gap:14px; }
  .public-shell .cp-visibility-map { min-height:235px; }
  .public-shell .cp-map-pin--own { left:7%; }
  .public-shell .cp-map-pin--peer { right:4%; }
  .public-shell .cp-ads-scene { padding:14px; }
  .public-shell .cp-market-comparison { padding:24px 18px; }
  .public-shell .cp-market-comparison h2 { font-size:30px; }
  .public-shell .cp-market-table > div { grid-template-columns:.65fr 1fr 1fr; gap:10px; padding:17px 0; }
  .public-shell .cp-ads-result { padding:17px; }
  .public-shell .cp-ads-plan { grid-template-columns:1fr; }
  .public-shell .cp-sites-browser { margin:13px; }
  .public-shell .cp-sites-browser-top { flex-wrap:wrap; }
  .public-shell .cp-sites-nav > span { display:none; }
  .public-shell .cp-sites-hero { grid-template-columns:1fr; }
  .public-shell .cp-sites-hero > div:first-child { padding:25px 19px; }
  .public-shell .cp-sites-photo { min-height:220px; background-size:400% auto; }
  .public-shell .cp-sites-comment { align-items:flex-start; flex-wrap:wrap; padding:3px 16px 20px; }
  .public-shell .cp-sites-comment small { margin-left:49px; }
}
