/* Dentplicity commercial public system — dentist-first narrative surfaces. */
.public-shell {
  --cp-ink: #171914;
  --cp-copy: #50544d;
  --cp-muted: #71766e;
  --cp-paper: #fbfaf7;
  --cp-cream: #f4f0e8;
  --cp-mint: #e2f4eb;
  --cp-green: #078a62;
  --cp-green-dark: #056247;
  --cp-coral: #d6755c;
  --cp-violet: #7657d6;
  --cp-rule: #dedbd2;
  --cp-shadow: 0 28px 70px -48px rgba(23, 25, 20, .48);
  --cp-display: clamp(3rem, 4.45vw, 4rem);
  --cp-title: clamp(2.2rem, 3.05vw, 2.75rem);
  --cp-subtitle: clamp(1.7rem, 2.3vw, 2.2rem);
  overflow-x: clip;
}

.public-shell .header-container-edge {
  background: rgba(251, 250, 247, .96);
}

.public-shell .header-dark-hero:not(.header-scrolled) .header-logo,
.public-shell .header-dark-hero:not(.header-scrolled) .header-logo-word,
.public-shell .header-dark-hero:not(.header-scrolled) .header-logo-mark {
  color: var(--cp-ink) !important;
  filter: none !important;
  opacity: 1 !important;
}

.public-shell .header-ctas { gap: 4px; }
.public-shell .header-ctas .nav-link { padding-inline: 10px; white-space: nowrap; }

.public-shell .cp-page { overflow: clip; background: var(--cp-paper); color: var(--cp-ink); }
.public-shell .cp-container { width: min(1180px, calc(100% - 40px)); margin-inline: auto; }
.public-shell .cp-narrow { width: min(820px, calc(100% - 40px)); margin-inline: auto; }
.public-shell .cp-section { position: relative; padding: clamp(72px, 9vw, 120px) 0; }
.public-shell .cp-section--cream { background: var(--cp-cream); }
.public-shell .cp-section--ink { background: var(--cp-ink); color: #fff; }
.public-shell .cp-section--mint { background: linear-gradient(135deg, #edf9f4, #f8fbfa 58%, #eef3ff); }

.public-shell .cp-eyebrow {
  display: inline-flex; align-items: center; gap: 8px; min-height: 30px;
  padding: 7px 12px; border: 1px solid #c9e8d9; border-radius: 999px;
  background: rgba(226, 244, 235, .78); color: var(--cp-green-dark);
  font-size: 11px; font-weight: 800; letter-spacing: .1em; text-transform: uppercase;
}
.public-shell .cp-eyebrow::before { content: ""; width: 7px; height: 7px; border-radius: 50%; background: var(--cp-green); }
.public-shell .cp-eyebrow--violet { border-color: #ded5fa; background: #f0ebff; color: #5336b0; }
.public-shell .cp-eyebrow--violet::before { background: var(--cp-violet); }
.public-shell .cp-eyebrow--coral { border-color: #f1d3ca; background: #fff0ea; color: #98432e; }
.public-shell .cp-eyebrow--coral::before { background: var(--cp-coral); }

.public-shell .cp-display,
.public-shell .cp-page h1,
.public-shell .cp-page h2 {
  margin: 0; color: inherit; font-family: Fraunces, Georgia, serif;
  font-variation-settings: "opsz" 120; letter-spacing: -.035em; text-wrap: balance;
}
.public-shell .cp-display { font-size: var(--cp-display); line-height: .98; }
.public-shell .cp-title { font-size: var(--cp-title); line-height: 1.07; }
.public-shell .cp-subtitle { font-size: var(--cp-subtitle); line-height: 1.1; }
.public-shell .cp-lede { max-width: 720px; margin: 24px 0 0; color: var(--cp-copy); font-size: clamp(1.08rem, 1.5vw, 1.3rem); line-height: 1.65; }
.public-shell .cp-section--ink .cp-lede { color: rgba(255,255,255,.72); }

.public-shell .cp-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 32px; }
.public-shell .cp-button {
  display: inline-flex; align-items: center; justify-content: center; min-height: 52px;
  padding: 0 24px; border: 1px solid var(--cp-rule); border-radius: 14px;
  background: #fff; color: var(--cp-ink); font-weight: 750; text-decoration: none;
  transition: transform .2s ease, box-shadow .2s ease, background .2s ease;
}
.public-shell .cp-button:hover { transform: translateY(-2px); box-shadow: var(--cp-shadow); }
.public-shell .cp-button--primary { position: relative; border-color: var(--cp-green); background: var(--cp-green); color: #fff; }
.public-shell .cp-button--primary:hover { background: var(--cp-green-dark); color: #fff; }
.public-shell .cp-button--pulse::before {
  content: ""; position: absolute; inset: -1px; border: 2px solid rgba(7,138,98,.42);
  border-radius: inherit; pointer-events: none; animation: cp-pulse 2.8s ease-out infinite;
}
@keyframes cp-pulse { 0%, 38% { opacity: 0; transform: scale(1); } 52% { opacity: .7; } 78%,100% { opacity: 0; transform: scale(1.13); } }

.public-shell .cp-hero { position: relative; padding: clamp(90px, 11vw, 150px) 0 92px; background: radial-gradient(circle at 10% 5%, rgba(167,233,206,.35), transparent 29rem), radial-gradient(circle at 92% 82%, rgba(246,205,185,.35), transparent 26rem), var(--cp-paper); }
.public-shell .cp-hero::after,
.public-shell .cp-halftone::after {
  content: ""; position: absolute; width: 250px; height: 250px; right: 2%; top: 16%;
  opacity: .16; pointer-events: none; mask-image: linear-gradient(135deg,#000,transparent 78%);
  background-image: radial-gradient(circle, var(--cp-green) 1.6px, transparent 1.8px);
  background-size: 13px 13px;
}
.public-shell .cp-hero-grid { position: relative; z-index: 1; display: grid; grid-template-columns: minmax(0,.95fr) minmax(480px,1.05fr); gap: clamp(44px,6vw,88px); align-items: center; }
.public-shell .cp-hero-copy .cp-display { max-width: 760px; margin-top: 22px; }
.public-shell .cp-hero-note { margin-top: 20px; color: var(--cp-muted); font-size: 13px; line-height: 1.6; }

.public-shell .cp-product-window { position: relative; padding: 18px; border: 1px solid var(--cp-rule); border-radius: 28px; background: rgba(255,255,255,.92); box-shadow: 0 42px 100px -58px rgba(23,25,20,.62); transform: rotate(1deg); }
.public-shell .cp-product-bar { display:flex; justify-content:space-between; gap:16px; padding: 5px 4px 17px; border-bottom:1px solid var(--cp-rule); font-size:12px; color:var(--cp-muted); }
.public-shell .cp-product-brand { color:var(--cp-ink); font-weight:800; }
.public-shell .cp-status { display:inline-flex; align-items:center; gap:6px; color:var(--cp-green-dark); font-weight:750; }
.public-shell .cp-status::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--cp-green); }
.public-shell .cp-window-body { display:grid; gap:12px; padding-top:16px; }
.public-shell .cp-window-card { padding:17px; border:1px solid var(--cp-rule); border-radius:16px; background:#fff; }
.public-shell .cp-window-label { color:var(--cp-muted); font-size:12px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; }
.public-shell .cp-window-card h3 { margin:7px 0 5px; font-size:17px; }
.public-shell .cp-window-card p { margin:0; color:var(--cp-copy); font-size:14px; line-height:1.58; }
.public-shell .cp-window-row { display:grid; grid-template-columns: repeat(3,1fr); gap:10px; }
.public-shell .cp-window-stat { padding:14px; border-radius:13px; background:var(--cp-cream); }
.public-shell .cp-window-stat strong { display:block; font-family:Fraunces,serif; font-size:24px; }
.public-shell .cp-window-stat span { color:var(--cp-copy); font-size:12px; line-height:1.45; }

.public-shell .cp-trust-strip { border-block:1px solid var(--cp-rule); background:#fff; }
.public-shell .cp-trust-grid { display:grid; grid-template-columns:repeat(4,1fr); }
.public-shell .cp-trust-item { padding:20px 24px; border-right:1px solid var(--cp-rule); }
.public-shell .cp-trust-item:last-child { border-right:0; }
.public-shell .cp-trust-item strong { display:block; font-size:14px; }
.public-shell .cp-trust-item span { color:var(--cp-muted); font-size:12px; }

.public-shell .cp-intro { display:grid; grid-template-columns:minmax(0,.8fr) minmax(420px,1.2fr); gap:clamp(42px,7vw,100px); align-items:start; }
.public-shell .cp-intro-copy { color:var(--cp-copy); font-size:1.08rem; line-height:1.75; }
.public-shell .cp-intro-copy p:first-child { margin-top:0; }

.public-shell .cp-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; margin-top:42px; }
.public-shell .cp-grid--2 { grid-template-columns:repeat(2,minmax(0,1fr)); }
.public-shell .cp-grid--4 { grid-template-columns:repeat(4,minmax(0,1fr)); }
.public-shell .cp-card { position:relative; display:flex; flex-direction:column; min-height:100%; padding:27px; border:1px solid var(--cp-rule); border-radius:20px; background:#fff; box-shadow:0 22px 55px -50px rgba(23,25,20,.55); }
.public-shell .cp-card--featured { background:var(--cp-ink); color:#fff; }
.public-shell .cp-card-number { color:var(--cp-green); font:700 12px/1 "Plus Jakarta Sans",sans-serif; letter-spacing:.1em; }
.public-shell .cp-card h3 { margin:16px 0 9px; color:inherit; font:700 clamp(1.25rem,2vw,1.55rem)/1.15 Fraunces,serif; letter-spacing:-.02em; }
.public-shell .cp-card p { margin:0; color:var(--cp-copy); line-height:1.65; }
.public-shell .cp-card--featured p { color:rgba(255,255,255,.72); }
.public-shell .cp-card-link { display:inline-flex; margin-top:auto; padding-top:22px; color:var(--cp-green-dark); font-weight:750; text-decoration:none; }
.public-shell .cp-card--featured .cp-card-link { color:#8de2bf; }
.public-shell .cp-card-list { display:grid; gap:9px; margin:17px 0 0; padding:0; list-style:none; color:var(--cp-copy); font-size:14px; }
.public-shell .cp-card-list li { position:relative; padding-left:18px; }
.public-shell .cp-card-list li::before { content:""; position:absolute; left:0; top:.58em; width:7px; height:7px; border-radius:50%; background:var(--cp-green); }

.public-shell .cp-loop { display:grid; grid-template-columns:repeat(6,1fr); gap:10px; margin-top:42px; counter-reset:loop; }
.public-shell .cp-loop-step { position:relative; padding:23px 17px; border:1px solid rgba(255,255,255,.15); border-radius:16px; background:rgba(255,255,255,.055); counter-increment:loop; }
.public-shell .cp-loop-step::before { content:"0" counter(loop); display:block; margin-bottom:24px; color:#7cddb7; font-size:11px; font-weight:800; letter-spacing:.1em; }
.public-shell .cp-loop-step strong { display:block; margin-bottom:6px; }
.public-shell .cp-loop-step span { color:rgba(255,255,255,.62); font-size:13px; line-height:1.55; }

.public-shell .cp-specialty { display:grid; grid-template-columns:minmax(0,1.05fr) minmax(400px,.95fr); gap:clamp(40px,7vw,92px); align-items:center; }
.public-shell .cp-specialty-panel { padding:30px; border:1px solid #dacffa; border-radius:24px; background:linear-gradient(145deg,#fbf9ff,#f0ebff); box-shadow:var(--cp-shadow); }
.public-shell .cp-specialty-row { display:flex; justify-content:space-between; gap:18px; padding:16px 0; border-bottom:1px solid #ded5fa; }
.public-shell .cp-specialty-row:last-child { border-bottom:0; }
.public-shell .cp-specialty-row strong { font-size:14px; }
.public-shell .cp-specialty-row span { color:#675d79; font-size:13px; text-align:right; }

.public-shell .cp-paths { display:grid; grid-template-columns:repeat(2,1fr); gap:20px; margin-top:42px; }
.public-shell .cp-path { padding:34px; border:1px solid var(--cp-rule); border-radius:24px; background:#fff; }
.public-shell .cp-path--green { background:linear-gradient(145deg,#eff9f4,#fff); }
.public-shell .cp-path--violet { background:linear-gradient(145deg,#f4f0ff,#fff); }
.public-shell .cp-path h3 { margin:16px 0 8px; font:700 1.8rem/1.1 Fraunces,serif; }
.public-shell .cp-path p { color:var(--cp-copy); line-height:1.65; }

.public-shell .cp-quote { margin:0; padding:0; border:0; }
.public-shell .cp-quote p { margin:0; font:600 clamp(1.7rem,3.3vw,3.1rem)/1.2 Fraunces,serif; letter-spacing:-.02em; }
.public-shell .cp-quote footer { margin-top:20px; color:rgba(255,255,255,.62); font-size:14px; }

.public-shell .cp-final { text-align:center; }
.public-shell .cp-final .cp-title { max-width:860px; margin-inline:auto; }
.public-shell .cp-final .cp-lede { margin-inline:auto; }
.public-shell .cp-final .cp-actions { justify-content:center; }

.public-shell .cp-faq { display:grid; gap:0; margin-top:38px; border-top:1px solid var(--cp-rule); }
.public-shell .cp-faq details { padding:22px 0; border-bottom:1px solid var(--cp-rule); }
.public-shell .cp-faq summary { cursor:pointer; font-weight:750; }
.public-shell .cp-faq p { max-width:720px; color:var(--cp-copy); line-height:1.65; }

.public-shell .cp-anchor-nav { display:flex; flex-wrap:wrap; gap:8px; margin-top:30px; }
.public-shell .cp-anchor-nav a { padding:9px 13px; border:1px solid var(--cp-rule); border-radius:999px; background:#fff; color:var(--cp-copy); font-size:13px; font-weight:700; text-decoration:none; }

/* Shared treatment for the remaining long-form public pages. */
.public-shell .hero-split {
  position:relative; padding:clamp(108px,12vw,160px) 0 84px;
  background:radial-gradient(circle at 12% 0,rgba(167,233,206,.34),transparent 28rem),radial-gradient(circle at 90% 85%,rgba(246,205,185,.28),transparent 25rem),var(--cp-paper);
}
.public-shell .hero-split::after {
  content:""; position:absolute; width:210px; height:210px; right:4%; top:22%; opacity:.13; pointer-events:none;
  background-image:radial-gradient(circle,var(--cp-green) 1.5px,transparent 1.7px); background-size:13px 13px;
  mask-image:linear-gradient(135deg,#000,transparent 78%);
}
.public-shell .hero-split .container { position:relative; z-index:1; }
.public-shell .hero-split__center { max-width:900px; margin-inline:auto; text-align:center; }
.public-shell .headline-hero,
.public-shell .headline-section,
.public-shell .section-title { font-family:Fraunces,Georgia,serif; letter-spacing:-.035em; text-wrap:balance; }
.public-shell .headline-hero { font-size:var(--cp-display); line-height:.98; }
.public-shell .headline-section,
.public-shell .section-title { font-size:var(--cp-title); line-height:1.07; }
.public-shell .body-large { color:var(--cp-copy); line-height:1.7; }
.public-shell .section { padding:clamp(68px,8vw,110px) 0; }
.public-shell .section.bg-warm { background:var(--cp-cream); }
.public-shell .card,
.public-shell .spotlight-card,
.public-shell .faq-card,
.public-shell .hiw-step-card,
.public-shell .pricing-free-card,
.public-shell .pricing-monthly-card,
.public-shell .pricing-onetime-card,
.public-shell .vs-card { border-color:var(--cp-rule); border-radius:20px; box-shadow:0 22px 55px -50px rgba(23,25,20,.55); }
.public-shell .dark-band { border-radius:28px; background:var(--cp-ink); }
.public-shell .btn { min-height:48px; border-radius:13px; font-weight:750; }
.public-shell .btn-primary,
.public-shell .btn-cta { border-color:var(--cp-green); background:var(--cp-green); }
.public-shell .btn-primary:hover,
.public-shell .btn-cta:hover { background:var(--cp-green-dark); }
.public-shell .text-gradient,
.public-shell .text-gradient-emerald { color:var(--cp-green-dark); background:none; -webkit-text-fill-color:currentColor; }
.public-shell :is(a,button,input,select,textarea,summary):focus-visible { outline:3px solid rgba(7,138,98,.55); outline-offset:3px; }
.public-shell button { min-height:44px; }
.public-shell a:not(.btn):not(.nav-link):not(.footer-link):not(.header-logo):not(.mobile-nav-item):not(.social-link):not(.cp-card-link):not(.cp-button):not(.kh-card) { display:inline-flex; align-items:center; min-height:44px; }
.public-shell .about-proof-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--space-6); max-width:900px; margin:0 auto; }
.public-shell .vs-table-scroll { max-width:100%; overflow-x:auto; overscroll-behavior-inline:contain; }
.public-shell .vs-table-scroll .vs-table { min-width:720px; }

/* Concrete product demonstrations. These are examples, never live customer data. */
.public-shell .cp-example-label {
  display:inline-flex; align-items:center; gap:7px; color:var(--cp-muted);
  font-size:12px; font-weight:800; letter-spacing:.06em; text-transform:uppercase;
}
.public-shell .cp-example-label::before { content:""; width:7px; height:7px; border-radius:50%; background:var(--cp-coral); }
.public-shell .cp-demo {
  overflow:hidden; border:1px solid var(--cp-rule); border-radius:24px; background:#fff;
  box-shadow:var(--cp-shadow);
}
.public-shell .cp-demo-bar {
  display:flex; align-items:center; justify-content:space-between; gap:16px;
  min-height:52px; padding:12px 18px; border-bottom:1px solid var(--cp-rule); background:#faf9f6;
}
.public-shell .cp-demo-title { color:var(--cp-ink); font-size:14px; font-weight:800; }
.public-shell .cp-demo-status { color:var(--cp-green-dark); font-size:12px; font-weight:800; }
.public-shell .cp-demo-body { padding:20px; }
.public-shell .cp-demo-split { display:grid; grid-template-columns:minmax(0,.9fr) minmax(360px,1.1fr); gap:clamp(32px,6vw,78px); align-items:center; }
.public-shell .cp-demo-copy h2 { margin-top:18px; }
.public-shell .cp-plain-list { display:grid; gap:14px; margin:28px 0 0; padding:0; list-style:none; }
.public-shell .cp-plain-list li { display:grid; grid-template-columns:30px 1fr; gap:12px; color:var(--cp-copy); line-height:1.55; }
.public-shell .cp-plain-list li::before {
  content:"✓"; display:grid; place-items:center; width:28px; height:28px; border-radius:50%;
  background:var(--cp-mint); color:var(--cp-green-dark); font-size:13px; font-weight:900;
}
.public-shell .cp-plain-list strong { display:block; margin-bottom:2px; color:var(--cp-ink); }

.public-shell .cp-signal-list { display:grid; gap:10px; }
.public-shell .cp-signal {
  display:grid; grid-template-columns:38px 1fr auto; gap:12px; align-items:start;
  padding:15px; border:1px solid var(--cp-rule); border-radius:15px; background:#fff;
}
.public-shell .cp-signal-icon { display:grid; place-items:center; width:38px; height:38px; border-radius:12px; background:var(--cp-mint); color:var(--cp-green-dark); font-size:14px; font-weight:900; }
.public-shell .cp-signal-icon--coral { background:#fff0ea; color:#98432e; }
.public-shell .cp-signal-icon--violet { background:#f0ebff; color:#5336b0; }
.public-shell .cp-signal strong { display:block; margin-bottom:3px; font-size:14px; }
.public-shell .cp-signal p { margin:0; color:var(--cp-copy); font-size:13px; line-height:1.5; }
.public-shell .cp-signal-tag { padding:5px 8px; border-radius:999px; background:var(--cp-cream); color:var(--cp-muted); font-size:11px; font-weight:800; white-space:nowrap; }

.public-shell .cp-review-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px; }
.public-shell .cp-review-card { padding:18px; border:1px solid var(--cp-rule); border-radius:17px; background:#fff; }
.public-shell .cp-review-head { display:flex; align-items:center; gap:11px; }
.public-shell .cp-avatar { display:grid; place-items:center; width:36px; height:36px; border-radius:50%; background:#e8eefc; color:#36528e; font-size:12px; font-weight:900; }
.public-shell .cp-review-head strong { display:block; font-size:13px; }
.public-shell .cp-review-meta { color:var(--cp-muted); font-size:11px; }
.public-shell .cp-stars { margin:12px 0 7px; color:#e6a400; font-size:15px; letter-spacing:1px; }
.public-shell .cp-review-text { margin:0; color:var(--cp-copy); font-size:13px; line-height:1.55; }
.public-shell .cp-review-draft { margin-top:14px; padding:14px; border-left:3px solid var(--cp-green); border-radius:0 12px 12px 0; background:#f1f9f5; }
.public-shell .cp-review-draft--careful { border-left-color:var(--cp-coral); background:#fff5f1; }
.public-shell .cp-review-draft strong { display:block; margin-bottom:5px; font-size:12px; }
.public-shell .cp-review-draft p { margin:0; color:var(--cp-copy); font-size:12px; line-height:1.55; }
.public-shell .cp-review-foot { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:9px; margin-top:13px; color:var(--cp-muted); font-size:11px; }
.public-shell .cp-review-ready { padding:6px 9px; border-radius:999px; background:var(--cp-mint); color:var(--cp-green-dark); font-weight:800; }

.public-shell .cp-ad-preview { padding:17px; border:1px solid var(--cp-rule); border-radius:16px; background:#fff; }
.public-shell .cp-ad-sponsored { color:var(--cp-muted); font-size:11px; }
.public-shell .cp-ad-url { margin-top:7px; color:#20562e; font-size:12px; }
.public-shell .cp-ad-title { margin:4px 0; color:#2855b5; font-size:19px; line-height:1.3; }
.public-shell .cp-ad-copy { margin:0; color:var(--cp-copy); font-size:13px; line-height:1.5; }
.public-shell .cp-control-list { display:grid; gap:9px; margin-top:14px; }
.public-shell .cp-control-row { display:flex; justify-content:space-between; gap:16px; padding:11px 12px; border-radius:11px; background:var(--cp-cream); font-size:12px; }
.public-shell .cp-control-row span { color:var(--cp-muted); }
.public-shell .cp-control-row strong { text-align:right; }

.public-shell .cp-site-browser { overflow:hidden; border:1px solid var(--cp-rule); border-radius:16px; background:#fff; }
.public-shell .cp-site-chrome { display:flex; align-items:center; gap:7px; padding:10px 12px; background:#ece9e2; }
.public-shell .cp-site-dot { width:7px; height:7px; border-radius:50%; background:#bbb6ad; }
.public-shell .cp-site-url { flex:1; margin-left:5px; padding:5px 9px; border-radius:7px; background:#fff; color:var(--cp-muted); font-size:11px; }
.public-shell .cp-site-canvas { padding:22px; background:linear-gradient(135deg,#f2faf6,#fff 60%,#f5efff); }
.public-shell .cp-site-nav { display:flex; justify-content:space-between; margin-bottom:34px; font-size:12px; font-weight:800; }
.public-shell .cp-site-canvas h3 { max-width:330px; margin:0; font:700 25px/1.08 Fraunces,serif; }
.public-shell .cp-site-canvas p { max-width:330px; color:var(--cp-copy); font-size:13px; line-height:1.5; }
.public-shell .cp-mini-button { display:inline-flex; padding:8px 11px; border-radius:9px; background:var(--cp-green); color:#fff; font-size:11px; font-weight:800; }

.public-shell .cp-calendar { display:grid; grid-template-columns:repeat(3,1fr); gap:9px; }
.public-shell .cp-calendar-day { min-height:92px; padding:11px; border:1px solid var(--cp-rule); border-radius:12px; background:#fff; }
.public-shell .cp-calendar-day > span { color:var(--cp-muted); font-size:11px; font-weight:800; }
.public-shell .cp-calendar-post { margin-top:13px; padding:7px; border-radius:8px; background:#f0ebff; color:#5336b0; font-size:11px; line-height:1.4; }
.public-shell .cp-calendar-post--green { background:var(--cp-mint); color:var(--cp-green-dark); }
.public-shell .cp-calendar-post--coral { background:#fff0ea; color:#98432e; }

.public-shell .cp-showcase { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; margin-top:42px; }
.public-shell .cp-showcase-card { display:grid; grid-template-rows:auto 1fr; overflow:hidden; border:1px solid var(--cp-rule); border-radius:22px; background:#fff; }
.public-shell .cp-showcase-copy { padding:25px; }
.public-shell .cp-showcase-copy h3 { margin:10px 0 8px; font:700 1.55rem/1.14 Fraunces,serif; }
.public-shell .cp-showcase-copy p { margin:0; color:var(--cp-copy); line-height:1.62; }
.public-shell .cp-showcase-visual { margin:0 18px 18px; padding:15px; border-radius:16px; background:var(--cp-cream); }
.public-shell .cp-showcase-link { display:inline-flex; margin-top:17px; color:var(--cp-green-dark); font-weight:800; text-decoration:none; }

.public-shell .cp-referral-map { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.public-shell .cp-referral-column { padding:13px; border:1px solid var(--cp-rule); border-radius:13px; background:#fff; }
.public-shell .cp-referral-column > strong { display:block; margin-bottom:10px; font-size:12px; }
.public-shell .cp-referral-practice { display:flex; align-items:center; gap:8px; margin-top:8px; color:var(--cp-copy); font-size:11px; }
.public-shell .cp-referral-practice::before { content:""; width:8px; height:8px; border-radius:50%; background:var(--cp-violet); }
.public-shell .cp-referral-practice--patient::before { background:var(--cp-green); }

.public-shell .cp-safety-note {
  display:flex; align-items:flex-start; gap:10px; margin-top:18px; padding:13px 15px;
  border:1px solid #c9e8d9; border-radius:13px; background:#f2faf6; color:var(--cp-green-dark);
  font-size:13px; line-height:1.5;
}
.public-shell .cp-safety-note::before { content:"✓"; font-weight:900; }

@media (max-width: 1080px) {
  .public-shell .header-ctas .nav-link:nth-of-type(5),
  .public-shell .header-ctas .nav-link:nth-of-type(6) { display:none; }
  .public-shell .cp-hero-grid,.public-shell .cp-specialty { grid-template-columns:1fr 430px; gap:38px; }
  .public-shell .cp-grid--4 { grid-template-columns:repeat(2,1fr); }
  .public-shell .cp-loop { grid-template-columns:repeat(3,1fr); }
}
@media (max-width: 820px) {
  .public-shell .cp-hero { padding-top:90px; }
  .public-shell .cp-hero-grid,.public-shell .cp-intro,.public-shell .cp-specialty { grid-template-columns:1fr; }
  .public-shell .cp-product-window { transform:none; max-width:620px; }
  .public-shell .cp-grid,.public-shell .cp-grid--2,.public-shell .cp-grid--4,.public-shell .cp-paths { grid-template-columns:1fr 1fr; }
  .public-shell .cp-trust-grid { grid-template-columns:1fr 1fr; }
  .public-shell .cp-trust-item:nth-child(2) { border-right:0; }
  .public-shell .cp-trust-item:nth-child(-n+2) { border-bottom:1px solid var(--cp-rule); }
  .public-shell .cp-demo-split { grid-template-columns:1fr; }
}
@media (max-width: 560px) {
  .public-shell .cp-container,.public-shell .cp-narrow { width:min(100% - 28px,1180px); }
  .public-shell .cp-section { padding:64px 0; }
  .public-shell .cp-display { font-size:clamp(2.65rem,12.5vw,3.55rem); }
  .public-shell .cp-title { font-size:clamp(2.05rem,9.5vw,2.7rem); }
  .public-shell .cp-lede { font-size:1.02rem; }
  .public-shell .cp-actions { display:grid; }
  .public-shell .cp-button { width:100%; }
  .public-shell .cp-grid,.public-shell .cp-grid--2,.public-shell .cp-grid--4,.public-shell .cp-paths,.public-shell .cp-loop { grid-template-columns:1fr; }
  .public-shell .cp-window-row { grid-template-columns:1fr; }
  .public-shell .cp-product-window { padding:12px; border-radius:20px; }
  .public-shell .cp-trust-grid { grid-template-columns:1fr; }
  .public-shell .cp-trust-item { border-right:0; border-bottom:1px solid var(--cp-rule); }
  .public-shell .cp-trust-item:last-child { border-bottom:0; }
  .public-shell .cp-specialty-panel,.public-shell .cp-card,.public-shell .cp-path { padding:22px; }
  .public-shell .cp-specialty-row { display:grid; }
  .public-shell .cp-specialty-row span { text-align:left; }
  .public-shell .cp-hero::after,.public-shell .cp-halftone::after { width:160px; height:160px; opacity:.1; }
  .public-shell .hero-split { padding-top:96px; }
  .public-shell .headline-hero { font-size:clamp(2.65rem,12.5vw,3.55rem); }
  .public-shell .about-proof-grid { grid-template-columns:1fr; }
  .public-shell .cp-review-grid,.public-shell .cp-showcase,.public-shell .cp-referral-map { grid-template-columns:1fr; }
  .public-shell .cp-signal { grid-template-columns:36px 1fr; }
  .public-shell .cp-signal-tag { grid-column:2; justify-self:start; }
  .public-shell .cp-demo-body { padding:14px; }
  .public-shell .cp-calendar { grid-template-columns:1fr; }
}
@media (prefers-reduced-motion: reduce) {
  .public-shell .cp-button--pulse::before { animation:none; }
  .public-shell .cp-button { transition:none; }
}
