/* CSDP v2 — generated by build/generate.mjs. Tokens from assets/tokens.json (CSDP Design System v2). Do not hand-edit. */
:root{
  --ground: #FFFFFF;
  --tint-1: #EEF3F4;
  --tint-2: #F6F1E8;
  --ink: #0E1A20;
  --ink-2: #3D4B52;
  --ink-3: #66757D;
  --hairline: #E1E7E9;
  --brand: #007A9C;
  --brand-deep: #0A3235;
  --brand-mist: #B9D2D9;
  --brand-tint: #D7E7EC;
  --confirmed: #1F5FBF;
  --confirmed-tint: #E3ECFA;
  --attention: #B8720A;
  --attention-tint: #FBF0DC;
  --accent: #E0662B;
  --ink-on-brand: #FFFFFF;
  --space-1: 4px;
  --space-2: 8px;
  --space-3: 12px;
  --space-4: 16px;
  --space-6: 24px;
  --space-8: 32px;
  --space-12: 48px;
  --space-16: 64px;
  --space-24: 96px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --radius-xl: 24px;
  --radius-pill: 999px;
  --shadow-card: 0 1px 2px rgba(14,26,32,0.06), 0 8px 24px rgba(14,26,32,0.06);
  --font-display: "Manrope", "Inter", system-ui, sans-serif;
  --font-sans: "Inter", system-ui, -apple-system, sans-serif;
  --font-mono: "JetBrains Mono", ui-monospace, Menlo, monospace;
}
:root[data-theme="dark"]{
  --ground: #0B1518;
  --tint-1: #122024;
  --tint-2: #1A1E1C;
  --ink: #F2F5F6;
  --ink-2: #C6D0D3;
  --ink-3: #93A5A2;
  --hairline: #233337;
  --brand: #54C2CA;
  --brand-deep: #06202A;
  --brand-mist: #8FB3BD;
  --brand-tint: #173740;
  --confirmed: #7FB0FF;
  --confirmed-tint: #16294A;
  --attention: #F0B75A;
  --attention-tint: #3A2B0F;
  --accent: #F08A55;
  --ink-on-brand: #0A3235;
  --shadow-card: 0 1px 2px rgba(0,0,0,0.4), 0 8px 24px rgba(0,0,0,0.4);
}
.t-display-1{font-family:var(--font-display);font-size:56px;line-height:60px;font-weight:700;letter-spacing:-0.02em;}
.t-display-2{font-family:var(--font-display);font-size:40px;line-height:44px;font-weight:700;letter-spacing:-0.02em;}
.t-heading-3{font-family:var(--font-display);font-size:24px;line-height:30px;font-weight:700;letter-spacing:-0.01em;}
.t-heading-4{font-family:var(--font-display);font-size:18px;line-height:24px;font-weight:600;}
.t-body-lg{font-family:var(--font-sans);font-size:18px;line-height:28px;font-weight:400;}
.t-body{font-family:var(--font-sans);font-size:16px;line-height:26px;font-weight:400;}
.t-small{font-family:var(--font-sans);font-size:14px;line-height:20px;font-weight:500;}
.t-eyebrow{font-family:var(--font-sans);font-size:12px;line-height:16px;font-weight:700;letter-spacing:0.12em;}
.t-record-value{font-family:var(--font-mono);font-size:16px;line-height:20px;font-weight:500;}
.t-record-source{font-family:var(--font-mono);font-size:12px;line-height:16px;font-weight:500;}

/* ---- design-system shared classes (assets/bundle.css, verbatim) ---- */
/* CSDP v2 shared classes. Tokens come from tokens.css. */
.csdp{font-family:var(--font-sans);color:var(--ink);background:var(--ground);-webkit-font-smoothing:antialiased}
.btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border-radius:var(--radius-md);font:500 14px/20px var(--font-sans);text-decoration:none;border:0;cursor:pointer}
.btn-primary{background:var(--brand);color:var(--ink-on-brand)}
.btn-secondary{background:var(--tint-1);color:var(--ink)}
.btn-nav{background:var(--ink);color:var(--ground);border-radius:var(--radius-pill);height:36px;padding:0 16px}
.btn-ghost{background:transparent;color:var(--ink);box-shadow:inset 0 0 0 1px var(--hairline);border-radius:var(--radius-pill);height:36px;padding:0 16px}
.chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 12px;border-radius:var(--radius-pill);font:500 14px/16px var(--font-sans)}
.chip-confirmed{background:var(--confirmed-tint);color:var(--confirmed)}
.chip-attention{background:var(--attention-tint);color:var(--attention)}
.chip-neutral{background:var(--tint-1);color:var(--ink-2)}
.panel{background:var(--tint-1);border-radius:var(--radius-lg);padding:var(--space-6)}
.panel-sand{background:var(--tint-2)}
.panel-dark{background:var(--brand-deep);color:var(--ground)}
.eyebrow{font:700 12px/16px var(--font-sans);letter-spacing:.12em;text-transform:uppercase;color:var(--brand)}
.hl{background:var(--brand);color:var(--ink-on-brand);padding:0 .18em;border-radius:6px;box-decoration-break:clone;-webkit-box-decoration-break:clone}
.record{display:grid;grid-template-columns:160px 1fr auto;gap:16px;align-items:start;padding:14px 0;border-top:1px solid var(--hairline)}
.record:first-child{border-top:0}
.record-label{font:500 14px/20px var(--font-sans);color:var(--ink-2)}
.record-value{font:500 16px/20px var(--font-mono);color:var(--ink)}
.record-source{font:500 12px/16px var(--font-mono);color:var(--ink-3);margin-top:4px}
.icon-tile{width:32px;height:32px;border-radius:var(--radius-sm);background:var(--brand-tint);display:inline-flex;align-items:center;justify-content:center;color:var(--brand)}
.card-float{background:var(--ground);border-radius:var(--radius-lg);box-shadow:var(--shadow-card);padding:var(--space-6)}
.rule-accent{border-top:2px solid var(--accent)}

/* ---- base ---- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-padding-top:96px}
body{margin:0;background:var(--ground);color:var(--ink);font:400 16px/26px var(--font-sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
img,svg{display:block;max-width:100%}
a{color:var(--brand-ink);text-decoration:none}
a:hover{text-decoration:underline;text-underline-offset:3px}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:4px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.muted{color:var(--ink-2)}
.faint{color:var(--ink-3)}
.mono{font-family:var(--font-mono);font-weight:500}
h1,h2,h3,h4{margin:0;font-family:var(--font-display);letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
h1{font-size:56px;line-height:60px;font-weight:700}
h2{font-size:40px;line-height:44px;font-weight:700}
h3{font-size:24px;line-height:30px;font-weight:700;letter-spacing:-.01em}
h4{font-size:18px;line-height:24px;font-weight:600;letter-spacing:0}
p{margin:0}
.lede{font-size:18px;line-height:28px;color:var(--ink-2)}
.small{font-size:14px;line-height:20px;font-weight:500}
.eyebrow{display:block}
.eyebrow.faint{color:var(--ink-3)}
.eyebrow.mist{color:var(--brand-mist)}
.hl{border-radius:8px}
/* ---- layout ---- */
.wrap{max-width:1280px;margin:0 auto;padding:0 32px}
.wrap-narrow{max-width:896px;margin:0 auto;padding:0 32px}
.sec{padding:112px 0}
.sec-top{padding:64px 0 0}
.sec-mid{padding:64px 0}
.band-tint{background:var(--tint-1)}
.band-sand{background:var(--tint-2)}
.sec-head{display:flex;flex-direction:column;gap:12px;align-items:center;text-align:center;max-width:720px;margin:0 auto 48px}
.sec-head.left{align-items:flex-start;text-align:left;margin-left:0}
.sec-head .lede{max-width:672px}
.row-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:24px}
.stack{display:flex;flex-direction:column;gap:12px}
.stack-lg{display:flex;flex-direction:column;gap:24px}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.grid-2-tight{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.grid-5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.cta-pair{display:flex;gap:12px;flex-wrap:wrap;align-items:center}
.reassure{font-size:14px;line-height:18px;color:var(--ink-3)}
.crumbs{display:flex;gap:8px;flex-wrap:wrap;font-size:14px;color:var(--ink-3);padding:20px 0 0}
.crumbs a{color:var(--ink-3)}
.crumbs .here{color:var(--ink);font-weight:500}
/* ---- header (RH: sticky, 81px, white/95 + blur, hairline) ---- */
.hdr{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--hairline)}
.hdr-in{height:72px;display:flex;align-items:center;justify-content:space-between;gap:24px}
.brand{display:inline-flex;align-items:center;gap:7px;font-family:var(--font-display);font-weight:800;font-size:18px;letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.brand:hover{text-decoration:none}
.brand i{width:8px;height:8px;background:var(--accent);border-radius:2px;display:inline-block}
.nav{display:flex;align-items:center;gap:8px}
.nav > li{list-style:none;position:relative}
.nav{margin:0;padding:0}
.nav a,.nav button{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border:0;background:none;border-radius:var(--radius-sm);font-size:14px;font-weight:500;color:var(--ink-2)}
.nav a:hover,.nav button:hover,.nav a[aria-current=page]{color:var(--ink);background:var(--tint-1);text-decoration:none}
.nav svg{width:14px;height:14px}
.dd{position:absolute;top:44px;left:0;width:300px;background:var(--ground);border-radius:12px;padding:8px;box-shadow:var(--shadow-card);border:1px solid var(--hairline);opacity:0;visibility:hidden;transform:translateY(-4px);transition:opacity .15s,transform .15s,visibility .15s;z-index:60}
.nav > li:hover > .dd,.nav > li:focus-within > .dd,.dd.is-open{opacity:1;visibility:visible;transform:none}
.dd a{display:flex;flex-direction:column;align-items:flex-start;gap:2px;height:auto;padding:10px 12px;border-radius:8px}
.dd a b{font-weight:600;color:var(--ink)}
.dd a span{font-size:14px;color:var(--ink-3);font-weight:400}
.dd a:hover span{color:var(--ink-2)}
.hdr-cta{display:flex;gap:8px;align-items:center}
.menu-btn{display:none;width:44px;height:44px;border:0;background:none;border-radius:var(--radius-sm);align-items:center;justify-content:center;color:var(--ink)}
.mnav{display:none}
.mnav.is-open{display:block;position:fixed;top:72px;left:0;right:0;bottom:0;background:var(--ground);z-index:49;overflow:auto;padding:16px 24px 40px}
.mnav a{display:block;padding:14px 0;border-bottom:1px solid var(--hairline);font-size:18px;font-weight:600;color:var(--ink)}
.mnav .mnav-sub a{font-size:16px;font-weight:500;color:var(--ink-2);padding:10px 0 10px 16px;border:0}
.mnav .btn{margin-top:16px;width:100%;justify-content:center}
body.menu-open{overflow:hidden}
/* ---- buttons/chips extra ---- */
.btn:hover{text-decoration:none;filter:brightness(.96)}
.btn-primary:hover{background:var(--brand-deep)}
.btn-lg{height:48px;padding:0 24px;font-size:16px;font-weight:600}
.btn-xl{height:56px;padding:0 24px;font-size:16px;font-weight:600}
.btn-block{width:100%;justify-content:center}
.btn-ghost-dark{background:transparent;color:var(--ground);box-shadow:inset 0 0 0 1px var(--brand-mist);border-radius:var(--radius-md);height:44px;padding:0 20px}
.btn-on-dark{background:var(--ground);color:var(--brand-deep);font-weight:600}
.btn-on-dark:hover{background:var(--brand-mist);filter:none}
.btn svg{width:16px;height:16px}
.chip{white-space:nowrap}
.chip svg{width:14px;height:14px}
.chip-sm{height:24px;padding:0 10px;font-size:12px}
.chip-on-white{background:var(--ground);color:var(--ink)}
.chips{display:flex;gap:8px;flex-wrap:wrap}
.pill{display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:var(--radius-pill);border:0;background:var(--ground);color:var(--ink);font-size:14px;font-weight:500;white-space:nowrap}
.pill:hover{text-decoration:none;background:var(--brand-tint)}
.pill.is-on{background:var(--ink);color:var(--ground)}
.pill.is-on:hover{background:var(--ink)}
.pill-tint{background:var(--tint-1)}
/* ---- panels/cards ---- */
.panel{display:flex;flex-direction:column;gap:12px}
.panel-ground{background:var(--ground)}
.panel-dark .eyebrow{color:var(--brand-mist)}
.panel-dark .muted{color:var(--brand-mist)}
.panel-dark h2,.panel-dark h3,.panel-dark h4{color:var(--ground)}
.card{background:var(--ground);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:10px;color:var(--ink)}
a.card:hover{text-decoration:none;border-color:var(--brand-mist);background:var(--tint-1)}
.card-dashed{border-style:dashed}
.card .t{font-family:var(--font-display);font-weight:700;font-size:20px;letter-spacing:-.01em;color:var(--ink)}
.card .d{font-size:14px;line-height:22px;color:var(--ink-2)}
.card-float{display:flex;flex-direction:column;gap:12px}
.icon-tile svg{width:18px;height:18px}
.icon-tile.lg{width:40px;height:40px;border-radius:var(--radius-sm)}
.icon-tile.lg svg{width:20px;height:20px}
.tile-head{display:flex;align-items:center;gap:12px}
.plate{background:var(--tint-2);border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;color:var(--ink-3);font-family:var(--font-display);font-weight:800;font-size:14px;letter-spacing:-.01em;gap:6px;min-height:120px;text-align:center;padding:16px}
.plate i{width:7px;height:7px;background:var(--accent);border-radius:2px;display:inline-block}
.plate.tall{min-height:220px}
.photo{border-radius:var(--radius-xl);overflow:hidden;background:var(--tint-2)}
.photo img{width:100%;height:100%;object-fit:cover}
.photo.r-lg{border-radius:var(--radius-lg)}
/* ---- records (the rule: looked-up values in mono on sand, source+date beneath) ---- */
.ledger{background:var(--tint-2);border-radius:var(--radius-lg);padding:8px 24px}
.record{grid-template-columns:170px 1fr auto}
.record .chip{justify-self:end}
.record-source a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.ledger-note{font-size:14px;line-height:18px;color:var(--ink-3)}
.fact{background:var(--tint-1);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:6px}
.fact .n{font-family:var(--font-mono);font-weight:500;font-size:32px;line-height:36px;letter-spacing:-.01em;color:var(--ink)}
.fact .l{font-weight:600;font-size:16px}
.fact .s{font-size:14px;color:var(--ink-3)}
/* ---- reveal (RH: sections fade in once) ---- */
.js .reveal{opacity:0;transform:translateY(12px);transition:opacity .35s ease,transform .35s ease}
.js .reveal.is-visible{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}.marq-track{animation:none!important}.dd{transition:none}}
/* ---- hero (RH: 2-col, 584|584, gap 48) ---- */
.hero{padding:64px 0 56px}
.hero .grid-2{align-items:center}
.hero-copy{display:flex;flex-direction:column;gap:20px}
.hero-copy .lede{max-width:520px}
.hero-form{display:grid;grid-template-columns:1fr 1fr;gap:10px;background:var(--tint-1);border-radius:var(--radius-lg);padding:16px;margin-top:4px}
.field{display:flex;flex-direction:column;gap:6px;font-size:12px;font-weight:600;color:var(--ink-2)}
.field.span{grid-column:1 / -1}
.field select,.field input,.field textarea{height:44px;border:1px solid transparent;border-radius:var(--radius-md);padding:0 12px;font:500 16px var(--font-sans);background:var(--ground);color:var(--ink);width:100%}
.field input{font-weight:400}
.field textarea{height:auto;min-height:120px;padding:12px;line-height:22px;font-weight:400;resize:vertical}
.field input:focus,.field select:focus,.field textarea:focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}
.hero-media{position:relative;min-height:480px}
.hero-media .photo{position:absolute;inset:0}
.hero-media .card-float{position:absolute;left:-24px;bottom:32px;width:300px;gap:8px}
.hero-media .card-float .t{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em}
.hero-media .card-float .d{font-size:14px;color:var(--ink-2)}
.hero-media .card-float .record-source{margin:0}
/* ---- marquee (RH: "Every home service supported" strip) ---- */
.strip{padding:0 0 64px;text-align:center;display:flex;flex-direction:column;gap:20px}
.strip .l{font-size:14px;color:var(--ink-2)}
.marq{overflow:hidden;mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marq-track{display:flex;gap:16px;width:max-content;animation:marq 60s linear infinite}
.marq:hover .marq-track{animation-play-state:paused}
@keyframes marq{to{transform:translateX(-50%)}}
.marq-item{display:inline-flex;align-items:center;gap:12px;padding:0 24px 0 0;color:var(--ink);white-space:nowrap;font-weight:600;font-size:16px}
.marq-item .icon-tile{width:40px;height:40px}
.marq-item:hover{text-decoration:none;color:var(--brand-ink)}
.marq-item .c{font-family:var(--font-mono);font-size:12px;color:var(--ink-3);font-weight:500}
/* ---- pillars / steps (RH: dark 3-card problem row; here sand panels + one hairline "we don't") ---- */
.pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.pillar{background:var(--tint-2);border-radius:var(--radius-lg);padding:32px;display:flex;flex-direction:column;gap:8px;min-height:220px}
.pillar .n{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--brand-ink)}
.pillar h3{font-size:22px;line-height:28px}
.pillar p{font-size:16px;line-height:24px;color:var(--ink-2)}
.pillar b{color:var(--ink);font-weight:600}
.pillar.line{background:var(--ground);border:1px solid var(--hairline)}
.benefits{display:flex;flex-direction:column}
.benefit{display:grid;grid-template-columns:32px 1fr;gap:12px;padding:16px 0;border-top:1px solid var(--hairline)}
.benefit:first-child{border-top:0}
.benefit h4{font-size:16px}
.benefit p{font-size:14px;line-height:22px;color:var(--ink-2)}
/* ---- timeline (RH: Today / Day 3 / Day 7 with a vertical line) ---- */
.tl{display:grid;grid-template-columns:104px 1fr;gap:12px 20px;border-left:2px solid var(--brand-tint);padding-left:20px}
.tl .when{font-family:var(--font-display);font-weight:700;font-size:20px;color:var(--ink-3);letter-spacing:-.01em;padding-top:2px}
.tl h4{font-family:var(--font-display);font-size:22px;line-height:28px;color:var(--brand-ink);font-weight:700;letter-spacing:-.01em}
.tl p{font-size:14px;line-height:22px;color:var(--ink-2);margin-top:4px;margin-bottom:16px}
/* ---- FAQ (RH: details.rounded-xl.border px-6, summary py-5 semibold, chevron) ---- */
.faq{display:flex;flex-direction:column;gap:12px}
.faq details{border:1px solid var(--hairline);border-radius:12px;padding:0 24px;background:var(--ground)}
.faq summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;list-style:none;cursor:pointer;font-family:var(--font-display);font-weight:600;font-size:18px;color:var(--ink)}
.faq summary::-webkit-details-marker{display:none}
.faq summary svg{width:16px;height:16px;flex:none;color:var(--ink-3);transition:transform .2s}
.faq details[open] summary svg{transform:rotate(180deg)}
.faq details p{padding:0 0 24px;color:var(--ink-2);line-height:26px}
/* ---- CTA band (RH: rounded-24 green block inside a white section) ---- */
.cta-band{background:var(--brand-deep);color:var(--ground);border-radius:var(--radius-xl);padding:56px 64px;display:grid;grid-template-columns:1.2fr 1fr;gap:40px;align-items:center}
.cta-band h2{color:var(--ground)}
.cta-band .lede{color:var(--brand-mist)}
.cta-band .eyebrow{color:var(--brand-mist)}
.cta-band .reassure{color:var(--brand-mist)}
.cta-band .card-float{color:var(--ink)}
/* ---- footer (RH, measured 2026-10-12: mint bg; 32 above the logo row; 40; four equal link columns with 40 gaps,
   two from 768 to 1023 px, one below 768; 48; the hairline row with the blurb, the disclosure and the legal links; 16) ---- */
.ftr{background:var(--tint-1);padding:32px 0 16px;margin-top:0}
.ftr-brand{margin-bottom:40px}
.ftr-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:40px}
.ftr h4{font-size:16px;margin-bottom:10px;color:var(--ink)}
.ftr ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.ftr-grid li{line-height:24px}
.ftr a{color:var(--ink-2);font-size:14px}
.ftr .about{display:flex;flex-direction:column;gap:10px;font-size:14px;line-height:22px;color:var(--ink-2)}
.ftr-legal{margin-top:48px;padding-top:24px;border-top:1px solid var(--hairline);display:flex;justify-content:space-between;gap:8px 16px;flex-wrap:wrap;font-size:12px;line-height:18px;color:var(--ink-3)}
.ftr-legal .about{flex:1 1 100%;margin-bottom:16px}
.ftr-legal .about p{max-width:896px}
@media (max-width:1023px){.ftr-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:767px){.ftr-grid{grid-template-columns:minmax(0,1fr)}}
/* ---- hub grids ---- */
.trade-card{display:flex;flex-direction:column;gap:10px;padding:18px}
.trade-card .n{font-weight:600;font-size:16px;color:var(--ink)}
.trade-card .c{font-size:12px;color:var(--ink-3);font-family:var(--font-mono)}
.city-rows{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.city-row{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:14px 16px;background:var(--tint-1);border-radius:var(--radius-md);color:var(--ink)}
.city-row:hover{text-decoration:none;background:var(--brand-tint)}
.city-row .n{font-weight:600}
.city-row .c{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}
.city-row .a{color:var(--brand-ink)}
.grid-find{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.grid-find .card{padding:18px;gap:4px}
.grid-find .card .n{font-weight:600;font-size:16px}
.grid-find .card .c{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}
.city-chips{display:flex;gap:8px;flex-wrap:wrap}
.city-chips a{display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:var(--radius-pill);background:var(--tint-1);font-size:14px;font-weight:500;color:var(--ink)}
.city-chips a:hover{background:var(--brand-tint);text-decoration:none}
.jobs{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.jobs .card{padding:18px;gap:4px}
.jobs .card .n{font-weight:600;font-size:16px;color:var(--ink)}
.jobs .card .d{font-size:14px}
.jobs .card.static{background:var(--tint-2);border:0}
.split{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:start;padding-top:24px}
.rail{display:flex;flex-direction:column;gap:16px;position:sticky;top:96px}
.rail .panel{padding:20px 24px;gap:10px}
.rail .panel .eyebrow{font-size:12px}
.rail-links{display:flex;flex-direction:column}
.rail-links a{font-size:14px;font-weight:500;color:var(--ink);padding:10px 0;border-bottom:1px solid var(--hairline)}
.rail-links a:last-child{border-bottom:0}
.rail-links a:hover{color:var(--brand-ink);text-decoration:none}
.rail .t{font-family:var(--font-display);font-weight:700;font-size:16px;color:var(--ink)}
.rail p{font-size:14px;line-height:22px;color:var(--ink-2)}
/* ---- city directory ---- */
.city-hero{display:grid;grid-template-columns:1fr 360px;gap:40px;align-items:end;padding-top:24px}
.city-hero .lede{max-width:680px}
.cityblock{display:flex;gap:20px;flex-wrap:wrap;font-family:var(--font-mono);font-size:14px;color:var(--ink-2);margin-top:4px}
.cityblock b{color:var(--ink);font-weight:500}
.filters{margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 16px;background:var(--tint-1);border-radius:var(--radius-lg);flex-wrap:wrap}
.filters .fl{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.filters .lbl{font-size:14px;font-weight:600;color:var(--ink-2);margin-right:4px}
.filters .fr{display:flex;gap:16px;align-items:center;font-size:14px;font-weight:500;color:var(--ink-2)}
.filters label{display:flex;align-items:center;gap:8px}
.filters input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}
.filters .sort{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}
.filters input[type=search]{height:36px;border:0;border-radius:var(--radius-pill);padding:0 14px;background:var(--ground);width:200px;font-size:14px}
.brief-banner{margin-top:20px;background:var(--brand-tint);border-radius:var(--radius-lg);padding:16px 20px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}
.brief-banner .t{font-weight:600}
.brief-banner .d{font-size:14px;color:var(--ink-2)}
.list{display:flex;flex-direction:column;gap:12px}
.row{display:grid;grid-template-columns:24px 1fr auto;gap:20px;align-items:start;padding:24px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--ground)}
.row.is-unclaimed{border-style:dashed}
.row.is-hidden{display:none}
.row .cb{display:flex;padding-top:4px}
.row input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand)}
.row .body{display:flex;flex-direction:column;gap:10px;min-width:0}
.row .name{font-family:var(--font-display);font-weight:700;font-size:22px;letter-spacing:-.01em;color:var(--ink)}
.row .desc{font-size:16px;line-height:22px;color:var(--ink-2)}
.row .acts{display:flex;flex-direction:column;gap:8px;min-width:180px}
.row .acts .btn{justify-content:center;height:40px}
.row .claimline{font-size:14px;font-weight:500}
.list-foot{display:flex;align-items:center;justify-content:space-between;padding:8px 4px;font-size:14px;color:var(--ink-2)}
.empty{background:var(--tint-2);border-radius:var(--radius-lg);padding:24px;font-size:16px;line-height:24px;color:var(--ink-2)}
.tray{position:sticky;top:96px}
.tray .t{font-family:var(--font-display);font-weight:700;font-size:16px}
.tray ul{margin:0;padding:0;list-style:none;font-size:14px;line-height:22px;color:var(--ink-2)}
.tray .cnt{font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}
.tray .btn{justify-content:center}
.spokes{margin-top:20px;background:var(--tint-2);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:12px}
.spokes h2{font-size:20px;line-height:26px}
.spokes .g{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.spokes .g a{background:var(--ground);border-radius:var(--radius-md);padding:14px 16px;color:var(--ink);font-weight:500;font-size:16px}
.spokes .g a:hover{text-decoration:none;background:var(--brand-tint)}
.nearby{margin-top:24px;display:flex;flex-direction:column;gap:10px}
.nearby h2{font-size:20px;line-height:26px}
/* ---- profile ---- */
.prof-head{display:grid;grid-template-columns:1fr 320px;gap:32px;align-items:start}
.prof-head .copy{display:flex;flex-direction:column;gap:14px}
.prof-head h1{font-size:44px;line-height:48px}
.prof-head .acts{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.prof-media{display:grid;grid-template-rows:200px 96px;gap:8px}
.prof-media .plate{min-height:0}
.prof-media .thumbs{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.prof-media .thumbs .plate{min-height:0;font-size:12px;border-radius:var(--radius-md)}
.bento-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.bento-2 .panel{padding:24px;gap:14px}
.bento-2 h3{font-size:20px}
.about p{color:var(--ink-2)}
.toolkit{background:var(--tint-2);border-radius:var(--radius-lg);padding:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.toolkit .row-head{grid-column:1 / -1;margin:0}
.toolkit h2{font-size:20px}
.toolkit a.card{padding:16px;gap:6px;border:0}
.toolkit a.card .n{font-weight:600;font-size:16px}
.toolkit a.card .d{font-size:14px;line-height:20px}
.others .card .t{font-size:18px}
.owner-card{background:var(--brand-deep);color:var(--ground);border-radius:var(--radius-lg);padding:24px;box-shadow:var(--shadow-card);display:flex;flex-direction:column;gap:12px}
.owner-card .eyebrow{color:var(--brand-mist)}
.owner-card .t,.rail .owner-card .t{font-family:var(--font-display);font-weight:700;font-size:20px;line-height:26px;letter-spacing:-.01em;color:var(--ground)}
.owner-card p{font-size:14px;line-height:22px;color:var(--brand-mist)}
.owner-card ul{margin:4px 0 0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;font-size:14px}
.owner-card li{display:flex;gap:8px;align-items:center}
.owner-card li svg{width:14px;height:14px;color:var(--brand-mist);flex:none}
.owner-card .btn{justify-content:center;margin-top:4px}
.owner-card .fine{font-size:12px;color:var(--brand-mist);line-height:18px}
.owner-card .fine a{color:var(--ground)}
.activity{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.activity .n{font-family:var(--font-mono);font-weight:500;font-size:22px}
.activity .l{font-size:12px;color:var(--ink-2)}
/* ---- compare ---- */
.cmp{display:grid;grid-template-columns:200px repeat(3,1fr);grid-template-rows:repeat(11,auto);grid-auto-flow:column;gap:0;border:1px solid var(--hairline);border-radius:var(--radius-lg);overflow:hidden}
.cmp .col{display:contents}
.cmp > div,.cmp .col > div{padding:14px 16px;border-bottom:1px solid var(--hairline);border-left:1px solid var(--hairline);font-size:14px;line-height:20px;min-width:0}
.cmp > .lab{border-left:0}
.cmp .lab{background:var(--tint-1);font-weight:600;color:var(--ink-2)}
.cmp .head{background:var(--tint-2);display:flex;flex-direction:column;gap:6px}
.cmp .head .t{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em}
.cmp .v{font-family:var(--font-mono);font-weight:500;font-size:14px}
.cmp .s{font-family:var(--font-mono);font-size:12px;color:var(--ink-3);display:block;margin-top:2px}
.cmp .acts{display:flex;flex-direction:column;gap:8px}
.cmp .acts .btn{justify-content:center;height:40px}
.cmp .na{color:var(--attention-ink)}
.brief-box{display:grid;grid-template-columns:1fr 1.4fr;gap:40px;align-items:start}
/* ---- guide ---- */
.guide{display:grid;grid-template-columns:220px minmax(0,1fr) 300px;gap:40px;align-items:start;padding-top:24px}
.toc{position:sticky;top:96px;display:flex;flex-direction:column;gap:4px}
.toc .eyebrow{margin-bottom:6px}
.toc a{font-size:14px;color:var(--ink-2);padding:6px 0}
.toc a:hover{color:var(--brand-ink)}
.article{display:flex;flex-direction:column;gap:20px;max-width:720px}
.article h1{font-size:44px;line-height:48px}
.article h2{font-size:26px;line-height:32px;margin-top:16px}
.article p{color:var(--ink-2);line-height:27px}
.article p b{color:var(--ink);font-weight:600}
.article ul,.article ol{margin:0;padding-left:22px;color:var(--ink-2);line-height:27px;display:flex;flex-direction:column;gap:6px}
.article .meta{display:flex;gap:16px;flex-wrap:wrap;font-family:var(--font-mono);font-size:12px;color:var(--ink-3)}
.inshort{background:var(--tint-1);border-radius:var(--radius-lg);padding:24px;display:flex;flex-direction:column;gap:8px}
.inshort .eyebrow{font-size:12px}
.inshort p{color:var(--ink);font-size:16px}
.status-table{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.status-table > div{background:var(--tint-2);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:4px}
.status-table .k{font-family:var(--font-mono);font-weight:500;font-size:16px}
.status-table .v{font-size:14px;line-height:21px;color:var(--ink-2)}
.linkout{background:var(--brand-deep);color:var(--ground);border-radius:var(--radius-lg);padding:24px;display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}
.linkout .t{font-family:var(--font-display);font-weight:700;font-size:18px}
.linkout p{color:var(--brand-mist);font-size:14px;line-height:21px}
.sources{background:var(--tint-2);border-radius:var(--radius-lg);padding:20px 24px;display:flex;flex-direction:column;gap:6px}
.sources .eyebrow{font-size:12px}
.sources p{font-family:var(--font-mono);font-size:12px;line-height:19px;color:var(--ink-2)}
.tool-card .btn{justify-content:center}
/* ---- claim flow ---- */
.claim{max-width:520px;margin:0 auto;padding:40px 0 80px;display:flex;flex-direction:column;gap:16px}
.progress{height:3px;background:var(--tint-1);border-radius:2px;overflow:hidden}
.progress i{display:block;height:100%;background:var(--brand);transition:width .3s}
.claim h1,.claim h2.as-h1{font-size:32px;line-height:36px;font-weight:700}
.step{display:none;flex-direction:column;gap:16px}
.step.is-active{display:flex}
.chipbtn{display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:var(--radius-pill);border:1px solid var(--hairline);background:var(--ground);font-size:14px;font-weight:500;color:var(--ink)}
.chipbtn[aria-pressed=true]{background:var(--brand-tint);border-color:var(--brand);color:var(--brand-ink)}
fieldset{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}
legend{font-size:12px;font-weight:600;color:var(--ink-2);padding:0;margin-bottom:6px}
.radios{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;font-weight:500}
.radios label{display:flex;gap:8px;align-items:center}
.radios input{accent-color:var(--brand);width:18px;height:18px}
.private{background:var(--tint-2);border-radius:var(--radius-md);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.private .eyebrow{font-size:12px;color:var(--ink-3)}
.optin{display:grid;grid-template-columns:24px 1fr;gap:12px;padding:14px;border:1px solid var(--hairline);border-radius:var(--radius-md);align-items:start;font-weight:400}
.optin input{width:20px;height:20px;accent-color:var(--brand);margin-top:2px}
.optin b{display:block;font-size:16px;font-weight:600;margin-bottom:4px}
.optin span{display:block;font-size:14px;line-height:19px;color:var(--ink-2)}
.saved{display:flex;align-items:center;gap:10px}
.saved .ok{width:32px;height:32px;border-radius:999px;background:var(--confirmed-tint);color:var(--confirmed);display:inline-flex;align-items:center;justify-content:center}
.saved .ok svg{width:18px;height:18px}
.embed{font-family:var(--font-mono);font-size:12px;color:var(--ink-2);background:var(--ground);border-radius:8px;padding:8px 10px;line-height:16px;word-break:break-all}
.badge-pill{display:inline-flex;align-items:center;gap:8px;height:36px;padding:0 12px;border-radius:var(--radius-pill);background:var(--ground);border:1px solid var(--hairline);font-size:12px;font-weight:600;align-self:flex-start}
.preview-card{border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:16px;display:flex;flex-direction:column;gap:8px}
.preview-card .t{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em}
.preview-card .d{font-size:14px;color:var(--ink-2)}
/* ---- report email ---- */
.email{max-width:640px;margin:0 auto;background:var(--ground);border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:32px;display:flex;flex-direction:column;gap:20px}
.email .head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap}
.email .head .eyebrow{font-size:12px;color:var(--ink-3)}
.email .biz{font-family:var(--font-display);font-weight:700;font-size:24px;letter-spacing:-.02em}
.email .tag{font-size:14px;color:var(--ink-2)}
.email h4{font-family:var(--font-display);font-size:16px;font-weight:700;letter-spacing:-.01em}
.email .rows{background:var(--tint-2);border-radius:var(--radius-md);padding:4px 16px}
.email .rows > div{padding:10px 0;border-top:1px solid var(--hairline)}
.email .rows > div:first-child{border-top:0}
.email .rows .v{font-family:var(--font-mono);font-weight:500;font-size:14px}
.email .rows .s{font-family:var(--font-mono);font-size:12px;color:var(--ink-3);margin-top:2px}
.email .rec{background:var(--tint-1);border-radius:var(--radius-md);padding:16px;display:flex;flex-direction:column;gap:8px}
.email .rec .t{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em}
.email .rec p{font-size:14px;line-height:22px;color:var(--ink-2)}
.email .rec .btn{align-self:flex-start;height:40px}
.email .rsp{padding:16px 0 0;display:flex;flex-direction:column;gap:8px}
.email .rsp .eyebrow{color:var(--accent-ink);font-size:12px}
.email .rsp p{font-size:14px;line-height:22px;color:var(--ink-2)}
.email .rsp .price{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-weight:600;font-size:14px}
.email .rsp .fine{font-size:12px;color:var(--ink-3);line-height:18px}
.email .foot{font-size:12px;color:var(--ink-3);line-height:18px;border-top:1px solid var(--hairline);padding-top:16px}
.email .results{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.email .results .n{font-family:var(--font-mono);font-weight:500;font-size:22px}
.email .results .l{font-size:12px;color:var(--ink-2)}
.email .sample-chip{align-self:flex-start}
.email-note{text-align:center;font-size:14px;color:var(--ink-3);margin-top:16px}
.states{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:start}
.states .lab{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.states .lab b{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em}
.states .lab span{font-size:14px;color:var(--ink-2)}
/* ---- pro desk ---- */
.pd-hero{margin-top:24px;background:var(--brand-deep);color:var(--ground);border-radius:var(--radius-xl);padding:72px 64px;display:flex;flex-direction:column;gap:20px;align-items:center;text-align:center}
.pd-hero h1{color:var(--ground);max-width:820px}
.pd-hero .lede{color:var(--brand-mist);max-width:640px}
.pd-hero .eyebrow{color:var(--brand-mist)}
.pd-hero .reassure{color:var(--brand-mist)}
.pd-hero .cta-pair{justify-content:center}
.qa-list{display:flex;flex-direction:column}
.qa-list > div{padding:14px 0;border-top:1px solid var(--hairline);display:flex;flex-direction:column;gap:4px}
.qa-list > div:first-child{border-top:0}
.qa-list .q{font-weight:600;font-size:16px}
.qa-list .a{font-family:var(--font-mono);font-size:14px;color:var(--ink-2)}
.bento{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.bento .panel{padding:24px;gap:10px}
.bento .panel .t{font-family:var(--font-display);font-weight:700;font-size:18px;letter-spacing:-.01em}
.bento .panel p{font-size:14px;line-height:22px;color:var(--ink-2)}
.closing{background:var(--tint-1);border-radius:var(--radius-xl);padding:40px 48px;display:grid;grid-template-columns:1fr auto;gap:24px;align-items:center}
.closing .t{font-family:var(--font-display);font-weight:700;font-size:28px;letter-spacing:-.02em}
.closing .d{color:var(--ink-2);margin-top:4px}
.rules{display:flex;flex-direction:column;gap:12px}
.rule{display:grid;grid-template-columns:48px 1fr;gap:16px;padding:20px 24px;background:var(--tint-2);border-radius:var(--radius-lg)}
.rule .n{font-family:var(--font-mono);font-weight:500;font-size:22px;color:var(--brand-ink)}
.rule h3{font-size:18px;line-height:24px}
.rule p{font-size:16px;line-height:24px;color:var(--ink-2);margin-top:4px}
.dtable{display:grid;grid-template-columns:1.1fr 1.4fr 1.6fr;border:1px solid var(--hairline);border-radius:var(--radius-lg);overflow:hidden}
.dtable > div{padding:12px 16px;border-bottom:1px solid var(--hairline);font-size:14px;line-height:20px}
.dtable .h{background:var(--tint-1);font-weight:600;color:var(--ink-2);font-size:14px}
.dtable .v{font-family:var(--font-mono);font-size:14px}
.notice{background:var(--attention-tint);color:var(--ink);border-radius:var(--radius-md);padding:12px 16px;font-size:14px;line-height:21px}
.notice b{color:var(--attention-ink)}
/* ---- mobile sticky call bar (profiles) ---- */
.callbar{display:none}
/* ---- responsive ---- */
@media (max-width:1100px){
  .grid-5{grid-template-columns:repeat(3,1fr)}
  .grid-find{grid-template-columns:repeat(3,1fr)}
  .split,.city-hero{grid-template-columns:1fr}
  .rail{position:static}
  .guide{grid-template-columns:minmax(0,1fr) 300px}
  .toc{display:none}
  .prof-head{grid-template-columns:1fr}
  .prof-media{grid-template-rows:220px 80px}
}
@media (max-width:820px){
  h1{font-size:36px;line-height:40px}
  h2{font-size:30px;line-height:34px}
  .hero{padding:32px 0 40px}
  .sec{padding:72px 0}
  .sec-mid{padding:40px 0}
  .wrap,.wrap-narrow{padding:0 20px}
  .hdr-in{height:64px}
  .nav,.hdr-cta{display:none}
  .menu-btn{display:inline-flex}
  .mnav.is-open{top:64px}
  .grid-2,.grid-2-tight,.grid-3,.grid-4,.bento-2,.pillars,.bento,.states,.brief-box,.status-table,.toolkit{grid-template-columns:1fr}
  .grid-5,.grid-find,.jobs{grid-template-columns:1fr 1fr}
  .hero-media{min-height:280px;margin-top:8px}
  .hero-media .card-float{left:12px;bottom:12px;width:calc(100% - 24px)}
  .hero-form{grid-template-columns:1fr}
  .city-rows{grid-template-columns:1fr}
  .cta-band{grid-template-columns:1fr;padding:32px 24px;border-radius:var(--radius-lg)}
  .filters{flex-direction:column;align-items:stretch;padding:12px}
  .filters .fl{overflow-x:auto;flex-wrap:nowrap;padding-bottom:4px;-webkit-overflow-scrolling:touch}
  .filters input[type=search]{width:100%}
  .row{grid-template-columns:1fr;gap:12px;padding:16px}
  .row .cb{display:none}
  .row .name{font-size:19px}
  .row .acts{flex-direction:row;min-width:0}
  .row .acts .btn{flex:1}
  .spokes .g{grid-template-columns:1fr}
  .prof-head h1{font-size:30px;line-height:34px}
  .prof-head .acts{display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .prof-head .acts .btn{justify-content:center;white-space:nowrap;padding:0 12px}
  .prof-head .acts .btn:first-child{grid-column:1 / -1}
  .prof-head .acts .btn-primary{grid-column:1 / -1}
  .cmp{display:flex;flex-direction:column;border:0;gap:16px;overflow:visible}
  .cmp .lab{display:none}
  .cmp .col{display:block;border:1px solid var(--hairline);border-radius:var(--radius-lg);padding:0;overflow:hidden}
  .cmp .col > div{padding:12px 16px;border-left:0;border-bottom:1px solid var(--hairline)}
  .cmp .col > div::before{content:attr(data-l);display:block;font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
  .guide{grid-template-columns:1fr}
  .article h1{font-size:30px;line-height:34px}
  .linkout{grid-template-columns:1fr}
  .tl{grid-template-columns:1fr;gap:4px 0}
  .tl .when{padding-top:8px}
  .pd-hero{padding:40px 24px;border-radius:var(--radius-lg)}
  .closing{grid-template-columns:1fr;padding:24px}
  .dtable{grid-template-columns:1fr}
  .dtable .h{display:none}
  .dtable > div::before{content:attr(data-l);display:block;font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em;margin-bottom:2px}
  .email{padding:20px}
  .email .results{grid-template-columns:1fr 1fr 1fr}
  .record{grid-template-columns:1fr auto;gap:6px 12px}
  .record-label{grid-column:1 / -1;font-size:14px}
  .ledger{padding:4px 16px}
  .callbar{display:grid;position:fixed;left:0;right:0;bottom:0;padding:12px 16px 20px;background:var(--ground);border-top:1px solid var(--hairline);grid-template-columns:1fr auto;gap:8px;align-items:center;z-index:40}
  .callbar .btn{justify-content:center;height:48px}
  body.has-callbar{padding-bottom:96px}
  .tray-mobile{display:block;position:fixed;left:16px;right:16px;bottom:16px;z-index:40}
  .rail .tray{position:static}
}
@media (max-width:480px){
  .grid-5,.grid-find,.jobs{grid-template-columns:1fr}
  .hero-media .card-float{display:none}
}
@media print{.hdr,.ftr,.callbar,.mnav,.menu-btn{display:none}.reveal{opacity:1;transform:none}}
/* September 30 review: CSDP identity, ReviewHarvest section rhythm. */
h1{line-height:1.06}
.hl{display:inline;padding:0;margin:0;background:transparent;color:var(--brand-ink);border-radius:0;box-shadow:none}
.pd-hero .hl{color:var(--brand-mist)}
.brand{font-size:19px;letter-spacing:-.045em}
.card-float,.dd{box-shadow:none}
.grid-2>*{min-width:0}
.hero .grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1.08fr);gap:52px}
.home-benefits .benefit:nth-child(n+3){display:none}
.hero-copy h1{font-size:clamp(40px,4.1vw,56px);letter-spacing:-.045em;text-wrap:initial}
.hero-copy .lede{font-size:18px;line-height:27px}
.hero-form{padding:0;background:none;gap:14px}
.field select,select{appearance:none;-webkit-appearance:none;height:48px;padding:0 44px 0 14px;border:1px solid var(--hairline);border-radius:12px;background:var(--ground) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='none' stroke='%2355656B' stroke-width='1.75'%3E%3Cpath d='m4 6 4 4 4-4'/%3E%3C/svg%3E") no-repeat right 14px center;font:500 16px var(--font-sans);color:var(--ink)}
.field input{height:48px;border:1px solid var(--hairline);padding:0 14px}
select:focus{outline:2px solid var(--brand);outline-offset:2px}
.combo{position:relative}
.combo input{padding-right:34px;background:var(--ground)}
.combo::after{content:'⌄';position:absolute;right:14px;top:10px;pointer-events:none;font-size:18px}
.combo-options{position:absolute;top:52px;left:0;right:0;max-height:260px;overflow:auto;z-index:30;border:1px solid var(--hairline);border-radius:12px;background:var(--ground);padding:6px}
.combo-options[hidden]{display:none}
.combo-option{padding:10px;border-radius:7px;cursor:pointer;font-size:14px;font-weight:500;color:var(--ink)}
.combo-option[aria-selected=true],.combo-option:hover{background:var(--brand-tint)}
.combo-empty{padding:12px;font-size:14px;color:var(--ink-2)}
.directory-preview{height:430px;display:flex;flex-direction:column;padding:24px;background:var(--tint-1);border:1px solid var(--hairline);border-radius:24px;gap:14px}
.preview-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:30px}
.preview-heading .eyebrow{font-size:12px;line-height:17px;letter-spacing:.08em;color:var(--brand-ink)}
.preview-count{white-space:nowrap;font:500 12px var(--font-mono);color:var(--ink-2)}
.preview-rows{display:flex;flex-direction:column;gap:10px;flex:1;min-height:0}
.preview-row{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:10px;background:var(--ground);border:1px solid var(--hairline);border-radius:12px;padding:14px 16px;flex:1;min-height:0}
.preview-name{font:700 18px/23px var(--font-display);letter-spacing:-.02em;color:var(--ink);display:block}
.preview-meta{display:inline-block;font:400 12px/19px var(--font-sans);color:var(--ink-2);margin:5px 6px 0 0}
.preview-row .chip{font:500 12px/16px var(--font-mono);height:23px;padding:0 7px;border-radius:5px}
.preview-row .chip svg{width:12px;height:12px}
.preview-row .btn{height:36px;padding:0 12px;font-size:12px}
.preview-foot{display:flex;justify-content:space-between;gap:10px;font:500 12px/18px var(--font-sans);color:var(--ink-2)}
.preview-foot a{font-weight:600}
.directory-preview .visual-source{font-size:10px;line-height:15px;margin-top:-6px}
.preview-empty{margin:auto 0;display:flex;flex-direction:column;gap:14px}
.preview-empty h3{font-size:24px;line-height:30px}
.preview-empty p{font-size:14px;line-height:22px;color:var(--ink-2)}
.record{grid-template-columns:130px minmax(0,1fr) auto;gap:10px;align-items:center;padding:16px 0}
.record-value{font:500 14px/23px var(--font-mono);overflow-wrap:anywhere}
.record-source,.cmp .s,.email .rows .s{font:400 12px/18px var(--font-sans);color:var(--ink-2)}
.record-label{font-size:14px;line-height:19px}
.record .chip{height:24px;font-size:12px;padding:0 8px}
.hero~section .grid-2>.panel:has(.ledger){padding:24px!important}
.hero~section .grid-2>.panel .ledger{padding:0 16px}
.hero~section .grid-2>.panel .record{grid-template-columns:100px minmax(0,1fr)}
.hero~section .grid-2>.panel .record .chip{display:none}
.hero~section .grid-2>.panel .record-value{font-size:14px;white-space:nowrap}
.trade-home{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.trade-card{min-height:130px;justify-content:center;padding:24px}
.trade-card .n{font:700 20px/26px var(--font-display);letter-spacing:-.02em}
.trade-card .c{font:400 14px/20px var(--font-sans);color:var(--ink-2)}
.house-picker{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.house-picker .n{font:700 18px/23px var(--font-display)}
.house-picker .card{padding:20px}
.cityblock{font-family:var(--font-sans)}
.filters>*{min-width:0;max-width:100%}
.coverage{border:1px solid var(--hairline);border-radius:16px;padding:20px;background:var(--ground)}
.coverage-scroll{overflow:auto}
.coverage-grid{border-collapse:separate;border-spacing:5px;width:100%;font-size:12px;line-height:18px}
.coverage-grid th{text-align:center;font-weight:500;padding:8px;min-width:78px}
.coverage-grid th:first-child{text-align:left;position:sticky;left:0;background:var(--ground);z-index:1;min-width:135px;max-width:175px}
.coverage-grid td{padding:0;text-align:center;min-width:48px}
.coverage-grid td a{display:flex;align-items:center;justify-content:center;min-width:48px;min-height:42px;border-radius:6px;font:500 14px var(--font-mono)}
.heat-empty{background:var(--tint-1);color:var(--ink-3)}
.heat-low{background:var(--brand-tint);color:var(--brand-deep)}
.heat-mid{background:var(--brand-mist);color:var(--brand-deep)}
.heat-high{background:var(--brand);color:var(--ground)}
.coverage-key{display:flex;flex-wrap:wrap;gap:16px;font:400 12px/18px var(--font-sans);color:var(--ink-2);margin:16px 5px 10px}
.coverage-key span,.status-legend span{display:inline-flex;align-items:center;gap:7px}
.coverage-key i,.status-legend i{width:12px;height:12px;border-radius:3px;display:inline-block;flex:none}
.visual-source{font:400 12px/18px var(--font-sans);color:var(--ink-2);margin-top:10px}
.status-visual{padding:28px;background:var(--ground);border:1px solid var(--hairline);border-radius:20px;min-width:0}
.status-total{display:flex;align-items:baseline;gap:12px;margin:18px 0;color:var(--ink-2);font-size:14px}
.status-total strong{font:500 46px/1.1 var(--font-mono);letter-spacing:-.05em;color:var(--ink)}
.status-bar{width:100%;height:26px;border-radius:5px;overflow:hidden;margin:18px 0}
.status-active{fill:var(--confirmed);background:var(--confirmed)}
.status-other{fill:var(--attention);background:var(--attention)}
.status-unmatched{fill:var(--hairline);background:var(--hairline)}
.status-legend{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;line-height:18px;color:var(--ink-2)}
.license-timeline{padding:24px;border:1px solid var(--hairline);border-radius:16px;background:var(--tint-1)}
.license-timeline h2,.review-panel h2{font-size:24px;line-height:30px}
.license-timeline .row-head a{font-size:12px;white-space:nowrap}
.license-timeline svg{width:100%;height:auto}
.timeline-track{stroke:var(--hairline);stroke-width:5;stroke-linecap:round}
.timeline-progress{stroke:var(--brand);stroke-width:5;stroke-linecap:round}
.timeline-dot{fill:var(--brand)}
.timeline-end{fill:var(--ground);stroke:var(--brand);stroke-width:2}
.timeline-labels{display:flex;justify-content:space-between;gap:10px;font:400 12px/18px var(--font-sans);color:var(--ink-2)}
.timeline-labels span:last-child{text-align:right}
.timeline-labels strong{display:block;color:var(--ink);font:500 12px/22px var(--font-mono)}
.review-panel{border:1px solid var(--hairline);border-radius:16px;padding:24px;font-size:14px;color:var(--ink-2)}
.review-link{display:flex;justify-content:space-between;gap:16px;padding:18px 0;margin-top:8px;border-bottom:1px solid var(--hairline)}
.review-link b{color:var(--ink)}
.review-panel .record-source{margin-top:12px}
.leak-funnel{margin:0;border:1px solid var(--hairline);border-radius:14px;background:var(--tint-1);padding:22px}
.leak-funnel h3{font-size:20px;margin:8px 0 20px}
.funnel-row{display:grid;grid-template-columns:1fr auto;gap:5px;margin:16px 0;font-size:14px}
.funnel-row strong{font:500 20px var(--font-mono)}
.funnel-row svg{grid-column:1/-1;width:100%;height:22px}
.funnel-row rect{fill:var(--brand)}
.funnel-gap{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px;border-top:1px solid var(--hairline);padding-top:12px;font-size:12px}
.funnel-gap b{color:var(--attention-ink)}
.js .reveal{opacity:1;transform:none;transition:none}
.icon-tile svg{width:22px;height:22px;stroke-width:1.75}
@media(min-width:1000px){.hero~section .grid-2:has(.ledger){grid-template-columns:.8fr 1.2fr}}
@media(max-width:1000px){.hero .grid-2{grid-template-columns:1fr;gap:32px}.hero-copy h1{max-width:680px}.directory-preview{max-width:680px;width:100%}.record{grid-template-columns:110px minmax(0,1fr)}.record .chip{grid-column:2;justify-self:start}.trade-home{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){
 .email{min-width:0;padding:20px}.email .sample-chip{max-width:100%;white-space:normal;height:auto;min-height:26px;padding-top:5px;padding-bottom:5px;line-height:18px}
 .hero{padding:32px 0 40px}.hero-copy{gap:16px}.hero-copy h1{font-size:38px;line-height:1.08}.hero-copy .lede{font-size:16px;line-height:25px}
 .hero-form{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .filters .fl{flex-wrap:wrap;overflow:visible;width:100%}.filters .fr{flex-wrap:wrap;gap:8px;width:100%}.filters .pill{font-size:12px;padding:0 10px}.filters input[type=search]{flex-basis:100%;min-width:0}.filters label{font-size:12px;flex-wrap:wrap}
 .callbar .btn{font-size:12px;padding:0 10px;white-space:nowrap}
 .strip .grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}.strip .fact{padding:14px 10px;gap:6px}.strip .fact .n{font-size:26px;line-height:30px}.strip .fact .l{font-size:12px;line-height:16px}.strip .fact .s{font-size:10px;line-height:15px}.strip .fact:nth-child(3) .s{display:none}
 .home-pro-cta{grid-template-columns:1fr;padding:28px!important}.home-pro-cta>.card-float{display:none}.home-pro-cta h2{font-size:29px!important;line-height:35px!important}
 .ftr-grid{grid-template-columns:1fr 1fr!important;gap:28px}.ftr-grid .about{grid-column:1/-1}.ftr{padding-top:40px}
 .directory-preview{height:342px;padding:16px;gap:12px;border-radius:18px}.preview-row:nth-child(n+3){display:none}.preview-row{padding:13px;gap:8px}.preview-name{font-size:18px;line-height:23px}.preview-meta{font-size:12px}.preview-heading .eyebrow{font-size:10px}.preview-foot{font-size:12px}.preview-row .chip{font-size:10px}.preview-row .btn{padding:0 9px}
 .sec{padding:56px 0}.sec-head{margin-bottom:28px}.sec-head h2,.row-head h2{font-size:29px;line-height:35px}.sec-head .lede{font-size:16px;line-height:25px}.strip{padding-bottom:32px}.strip .grid-3{gap:10px}.fact{padding:18px}.fact .n{font-size:28px}.pillars{gap:14px}.pillar{min-height:0;padding:20px}.row-head{flex-wrap:wrap}
 .trade-home,.grid-find{grid-template-columns:repeat(2,minmax(0,1fr))}.trade-card{min-height:130px;padding:18px}.trade-card .n{font-size:18px;line-height:23px}.trade-card .c{font-size:12px}
 .record{grid-template-columns:minmax(0,1fr);gap:4px}.record-label{grid-column:auto}.record .chip{grid-column:1;margin-top:4px}.record-value{font-size:14px}.hero~section .grid-2>.panel .record{grid-template-columns:1fr}.hero~section .grid-2>.panel .record-value{white-space:normal}.hero~section .grid-2>.panel:has(.ledger){padding:18px!important}
 .house-picker .card{padding:16px}.house-picker .n{font-size:16px}.house-picker .d{font-size:12px;line-height:19px}
 .coverage{padding:12px}.coverage-grid th:first-child{min-width:112px;max-width:120px}.coverage-key{gap:10px}.status-visual{padding:22px}.city-hero{gap:24px}.city-hero .status-visual{width:100%}
 .license-timeline{padding:16px}.timeline-labels strong{font-size:10px}.timeline-labels{font-size:12px}.license-timeline h2,.review-panel h2{font-size:22px}.review-panel{padding:20px}.hero-form{gap:12px}.row .chips .chip{white-space:normal;height:auto;min-height:26px;padding-top:4px;padding-bottom:4px}
}
@media(max-width:360px){.hero-copy h1{font-size:34px}.preview-name{font-size:16px;line-height:20px}.preview-count{font-size:10px}.preview-row .chip{font-size:9px}.preview-meta{font-size:12px}.house-picker{grid-template-columns:1fr 1fr}}


.directory-preview .visual-source{font-size:12px}
.strip .fact .s{font-size:12px}
.preview-heading .eyebrow{font-size:12px}
.preview-row .chip{font-size:12px}
.timeline-labels strong{font-size:12px}
.preview-count{font-size:12px}
.preview-row .chip{font-size:12px}
/* CSDP v2 polish layer. Load after csdp.css. Nothing here changes tokens or copy;
   it changes rhythm, fills, motion and depth. Every value is deliberate. */

/* ---------- 1. Rhythm ---------- */
:root{
  --section-y: 112px;      /* desktop section padding */
  --section-y-m: 64px;     /* mobile */
  --intro-gap: 12px;
  --ease: cubic-bezier(.2,.7,.2,1);
}
.section{padding-block:var(--section-y)}
@media (max-width:720px){.section{padding-block:var(--section-y-m)}}

/* Fixed band pattern. Apply by section order, not by content. */
.band-ground{background:var(--ground)}
.band-tint{background:var(--tint-1)}
.band-sand{background:var(--tint-2)}
.band-deep{background:var(--brand-deep);color:var(--ground)}
.band-deep .eyebrow{color:var(--brand-mist)}
.band-deep p{color:var(--brand-mist)}

/* Section intro: eyebrow, headline, subline. Centered when the section is full-width. */
.intro{display:flex;flex-direction:column;gap:var(--intro-gap);max-width:720px}
.intro.center{margin-inline:auto;text-align:center;align-items:center}
.intro h2{font:700 40px/44px var(--font-display);letter-spacing:-.025em;margin:0}
.intro p{font:400 18px/28px var(--font-sans);color:var(--ink-2);margin:0}
@media (max-width:720px){.intro h2{font-size:32px;line-height:36px}}

/* ---------- 2. Fills, not borders ---------- */
/* Cards on ground: tint fill, no border. Cards nested on a tint: white fill, no border. */
.card{background:var(--tint-1);border:0;border-radius:var(--radius-lg);padding:var(--space-6)}
.band-tint .card,.band-sand .card,.panel .card{background:var(--ground)}
.card-sand{background:var(--tint-2)}
/* Listing rows keep a hairline only between rows, never around them. */
.row{border:0;border-radius:0;padding:24px 0;border-top:1px solid var(--hairline)}
.row:first-child{border-top:0}
/* Chips: two max per row. The third and beyond hide on the list, show on the profile. */
.row .chip:nth-of-type(n+3){display:none}

/* ---------- 3. Depth: one floating object per section ---------- */
.object{background:var(--ground);border-radius:var(--radius-xl);box-shadow:var(--shadow-card);overflow:hidden}
.object-frame{padding:12px;background:var(--tint-1);border-radius:var(--radius-xl)}
.object-frame > .object{border-radius:var(--radius-lg)}
.hero-panel{box-shadow:var(--shadow-card)}

/* ---------- 4. Motion ---------- */
/* Reveal on enter. JS adds .in when the element crosses 15% of the viewport. */
.csdp .reveal,.csdp .reveal-stagger > *{opacity:1;transform:none}
.motion-ready .reveal,.motion-ready .reveal-stagger > *{opacity:0;transform:translateY(12px);transition:opacity .5s var(--ease),transform .5s var(--ease)}
.motion-ready .reveal.in,.motion-ready .reveal-stagger > .in{opacity:1;transform:none;transition-delay:var(--delay,0s)}
.reveal-stagger.in > *:nth-child(2){transition-delay:.06s}
.reveal-stagger.in > *:nth-child(3){transition-delay:.12s}
.reveal-stagger.in > *:nth-child(4){transition-delay:.18s}
.reveal-stagger.in > *:nth-child(5){transition-delay:.24s}
.reveal-stagger.in > *:nth-child(n+6){transition-delay:.3s}

/* Bars draw in. Set --w on the fill (0 to 1). */
.bar-fill{transform-box:fill-box;transform-origin:left;transform:scaleX(var(--w,1))}
.motion-ready .bar-fill{transform:scaleX(0);transition:transform .8s var(--ease) .1s}
.motion-ready .in .bar-fill{transform:scaleX(var(--w,1))}

/* Coverage grid cells fade in row by row. */
.grid-cell{opacity:1}
.motion-ready .grid-cell{opacity:0;transition:opacity .4s var(--ease)}
.motion-ready .in .grid-cell{opacity:1}
.in .grid-cell:nth-child(n+7){transition-delay:.05s}
.in .grid-cell:nth-child(n+13){transition-delay:.1s}
.in .grid-cell:nth-child(n+19){transition-delay:.15s}

/* Respect reduced motion. */
@media (prefers-reduced-motion:reduce){
  .csdp .reveal,.csdp .reveal-stagger > *,.csdp .grid-cell{opacity:1;transform:none;transition:none}
  .csdp .bar-fill{transform:scaleX(var(--w,1));transition:none}
  .csdp .skeleton{animation:none;background:var(--tint-1)}
}

/* ---------- 5. Hover and focus ---------- */
a.card,a.tile,.row{transition:transform .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease)}
a.card:hover,a.tile:hover{transform:translateY(-2px);box-shadow:var(--shadow-card)}
.row:hover{background:var(--tint-1)}
.btn{transition:background .2s var(--ease),transform .15s var(--ease)}
.btn-primary:hover{background:#0A3F4E}
.btn-secondary:hover{background:#E3EAEC}
.btn-nav:hover{background:#243238}
.btn:active{transform:scale(.985)}
.btn:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible,button:focus-visible{outline:2px solid var(--brand);outline-offset:3px;border-radius:12px}
/* Chips never react to hover. They are facts, not buttons. */
.chip:not(a){pointer-events:none}

/* ---------- 6. Typography discipline ---------- */
/* Mono only for looked-up values. Everything else sans. Nothing under 13px. */
.record-source{font-family:var(--font-sans);font-size:14px;line-height:18px;color:var(--ink-3)}
.meta{font:400 14px/18px var(--font-sans);color:var(--ink-3)}
small,.caption{font-size:14px}
body{font-size:16px;line-height:26px}
.section p.lead{font-size:18px;line-height:28px}

/* ---------- 7. Accordion, tabs, sliders ---------- */
details.faq{border-top:1px solid var(--hairline);padding:18px 0}
details.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;font:600 16px/24px var(--font-sans)}
details.faq summary::-webkit-details-marker{display:none}
details.faq summary::after{content:"";width:10px;height:10px;border-right:2px solid var(--ink-2);border-bottom:2px solid var(--ink-2);transform:rotate(45deg);transition:transform .25s var(--ease)}
details.faq[open] summary::after{transform:rotate(-135deg)}
details.faq .faq-body{overflow:hidden;color:var(--ink-2);padding-top:8px}

.tabs{display:inline-flex;background:var(--tint-1);border-radius:var(--radius-pill);padding:4px;gap:4px}
.tab{height:36px;padding:0 16px;border-radius:var(--radius-pill);border:0;background:transparent;font:500 14px/36px var(--font-sans);color:var(--ink-2);cursor:pointer;transition:background .2s var(--ease),color .2s var(--ease)}
.tab[aria-selected="true"]{background:var(--ink);color:var(--ground)}

input[type=range]{-webkit-appearance:none;width:100%;height:4px;border-radius:2px;background:linear-gradient(to right,var(--brand) var(--pct,50%),var(--hairline) var(--pct,50%))}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--ground);border:2px solid var(--brand);box-shadow:var(--shadow-card);cursor:pointer}

/* ---------- 8. Skeleton for the live hero panel ---------- */
.skeleton{background:linear-gradient(90deg,var(--tint-1) 25%,#E6ECEE 37%,var(--tint-1) 63%);background-size:400% 100%;animation:shimmer 1.2s ease infinite;border-radius:var(--radius-md);min-height:20px}
@keyframes shimmer{0%{background-position:100% 0}100%{background-position:0 0}}

/* ---------- 9. Mobile guards ---------- */
@media (max-width:720px){
  .scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch;margin-inline:-16px;padding-inline:16px}
  .facts{grid-template-columns:1fr;gap:8px}
  .facts .card{display:grid;grid-template-columns:auto 1fr;align-items:center;gap:16px;padding:16px 20px}
  .facts .num{font-size:28px}
  .hero-panel{margin-top:24px}
}

/* Integration with the existing CSDP templates; brand tokens remain unchanged. */
[hidden]{display:none!important}
.section{position:relative;padding-block:var(--section-y)}
.section-sub{padding-top:0;padding-bottom:64px}
.section-contained{padding:40px 28px;border-radius:var(--radius-xl)}
.page-content>.crumbs{max-width:1220px;width:calc(100% - 48px);margin-inline:auto}
.polish-inner{padding-block:0!important;margin-block:0}
.polish-inner .section{padding-block:32px}
.polish-inner .section:first-child{padding-top:0}
.polish-inner.wrap .wrap{width:100%;padding-inline:0}
.intro{min-width:0}
.intro.center,.section>.wrap>.row-head{margin-bottom:40px}
.section>.wrap>.row-head{align-items:center;text-align:center;max-width:720px;margin-inline:auto}
.hero-copy h1{max-width:11ch}
.hero-copy h1 .hl{white-space:nowrap}
.hero-copy.intro{max-width:none;gap:22px}
.hero-panel{overflow:hidden;border:0}
.preview-heading{flex-wrap:wrap;gap:4px}
.preview-row{border:0;min-width:0}
.preview-row .chip{height:auto;min-height:26px;padding:4px 7px;line-height:18px;white-space:normal}
.preview-row .btn{flex-shrink:0}
.preview-foot{gap:12px;flex-wrap:wrap}
.preview-empty{overflow:auto}
.preview-empty h3{font-size:20px;line-height:26px}
.preview-empty p{font-size:14px;line-height:22px}
.hero-panel[aria-busy=true] .preview-rows{pointer-events:none}
.preview-row.skeleton *{visibility:hidden}
.panel,.pillar,.card-float,.coverage,.status-visual,.license-timeline,.review-panel,.leak-funnel,.ledger,.email,.plate,.empty,.trade-card{border:0}
.panel{background:var(--tint-1)}
.panel-sand{background:var(--tint-2)}
.band-tint .panel,.band-sand .panel,.band-tint .pillar{background:var(--ground)}
.band-ground .panel-sand{background:var(--tint-2)}
.object{border:0;min-width:0}
.status-visual.object{padding:28px}
.object.reveal-stagger{padding:20px}
.object .card{box-shadow:none}
.object-frame{min-width:0}
.object-frame>.ledger{padding:20px}
.row{background:transparent;padding:24px 12px;border-top:1px solid var(--hairline);border-radius:0}
.row:first-child{border-top:0}
.row .desc{font-size:14px;line-height:22px}
.list.object{padding:8px 20px}
.city-rows.object{padding:12px 24px}
.city-row{border:0;border-top:1px solid var(--hairline);border-radius:0;background:none}
.city-row:first-child{border-top:0}
.city-row:hover{background:var(--tint-1)}
.facts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.facts.object{background:transparent;box-shadow:none;overflow:visible;padding:0}
.fact.card{background:var(--tint-1);padding:24px}
[data-count]{position:relative;font-variant-numeric:tabular-nums}
.count-running{color:transparent!important}
.count-animated{position:absolute;inset:0;color:var(--ink);font:inherit;white-space:nowrap}
.record-source,.visual-source,.record-label,.email .rows .s,.qa-list .a{font-family:var(--font-sans);font-size:14px;line-height:20px}
.record-source,.visual-source{color:var(--ink-2)}
.ledger .record{background:var(--tint-2)}
.band-tint .ledger.object,.band-sand .ledger.object{padding:16px}
.faq-list{display:flex;flex-direction:column;gap:0}
.faq-list.object{padding:8px 28px;background:var(--tint-1);box-shadow:none}
details.faq{display:block;border:0;border-top:1px solid var(--hairline);border-radius:0;padding:18px 0;background:transparent}
details.faq:first-child{border-top:0}
details.faq summary{padding:0;gap:24px;font-size:16px;line-height:24px}
details.faq summary svg{display:none}
details.faq summary::after{flex:none}
details.faq .faq-body p{padding:0;font-size:16px;line-height:26px}
.coverage.object{padding:28px}
.scroll-x{max-width:100%;overscroll-behavior-x:contain}
.grid-cell{min-width:56px}
.profile-layout{align-items:start}
.profile-layout .rail{position:static;align-self:stretch}
.profile-layout .owner-card{position:sticky;top:96px;z-index:2;order:10;margin-top:auto}
.profile-layout .owner-card:first-child{order:0;margin-top:0}
.profile-layout .prof-head{grid-template-columns:minmax(0,1fr) 240px}
.profile-layout .prof-head h1{font-size:40px;line-height:46px}
.owner-missing{font-size:14px;line-height:22px;color:var(--ink-2)}
.tray.object{position:sticky;top:96px}
.rail:has(.tray){position:static;align-self:stretch}
.band-deep{color:var(--ground)}
.band-deep .intro p,.band-deep .reassure,.band-deep .d{color:var(--brand-mist)}
.band-deep a{color:var(--brand-mist)}
.band-deep .object,.band-deep .card{color:var(--ink)}
.band-deep .object p,.band-deep .card p,.band-deep .object .d,.band-deep .card .d{color:var(--ink-2)}
.band-deep .object a,.band-deep .card a{color:var(--brand-ink)}
.band-deep .btn-on-dark,.band-deep .btn-ghost-dark{color:var(--brand-deep)}
.band-deep .btn-ghost-dark{color:var(--ground)}
.band-deep .home-pro-cta,.band-deep .closing{background:transparent;padding:0!important;border:0;box-shadow:none}
.band-deep .closing .t{color:var(--ground)}
.pd-hero.polish-inner{background:transparent;color:var(--ink);border-radius:0}
.pd-hero.polish-inner .lede,.pd-hero.polish-inner .reassure{color:var(--ink-2)}
.pd-hero.polish-inner .eyebrow,.pd-hero.polish-inner .hl{color:var(--brand-ink)}
.pd-hero.polish-inner .btn-on-dark{background:var(--brand);color:var(--ground)}
.pd-hero.polish-inner .btn-ghost-dark{background:var(--tint-1);color:var(--ink);border:0}
.tabs{margin-bottom:24px}
.tab-object{padding:32px}
.tab-panel h3{margin:0 0 12px}
.tab-panel p{margin:0 0 14px}
.tab-panel .card{margin-top:20px}
.missed-math{padding:32px;display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}
.math-controls{display:grid;gap:24px}
.math-control{display:flex;flex-direction:column;gap:16px}
.math-label{display:flex;justify-content:space-between;gap:16px;font-size:14px}
.math-label output,.math-results strong{font-family:var(--font-mono)}
.math-results{background:var(--tint-2);border-radius:var(--radius-lg);padding:24px;display:grid;gap:12px}
.math-results strong{font-size:36px;line-height:44px}
.math-results small{font-size:14px;line-height:20px}
.math-control input[type=number]{max-width:120px;padding:10px;border:1px solid var(--hairline);border-radius:12px;font:inherit}
input[type=range]{appearance:none;min-height:20px;background-color:transparent}
input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--ground);border:2px solid var(--brand);cursor:pointer}
.email .head .eyebrow,.email .foot{font-size:14px;line-height:20px}
.ftr .about .faint{font-size:14px!important;line-height:20px}
.sample-chip{height:auto;min-height:26px;line-height:20px;white-space:normal;align-self:flex-start}
.leak-funnel{background:var(--tint-1)}
@media(max-width:1000px){.profile-layout .prof-head{grid-template-columns:1fr}.profile-layout .prof-media{max-width:360px}.profile-layout .rail{align-self:start}.profile-layout .owner-card,.tray.object{position:static}.hero-copy h1{max-width:11ch}.intro.center{max-width:680px}}
@media(max-width:720px){
 .section{padding-block:var(--section-y-m)}.section-sub{padding-top:0;padding-bottom:40px}.section-contained{padding:28px 20px}
 .page-content>.crumbs{width:calc(100% - 40px)}.intro.center,.section>.wrap>.row-head{margin-bottom:28px}
 .hero-copy h1{font-size:36px;line-height:1.06}.hero-panel{height:430px;padding:18px;gap:12px;margin-top:0}
 .preview-row{padding:12px;gap:10px}.preview-name{font-size:16px;line-height:22px}.preview-meta{font-size:14px;line-height:19px}.preview-row .btn{padding-inline:9px;font-size:14px}
 .preview-heading .eyebrow{font-size:14px;line-height:18px}.preview-count,.preview-foot,.hero-panel .visual-source{font-size:14px;line-height:19px}
 .facts{grid-template-columns:1fr;gap:10px}.facts .fact{display:grid;grid-template-columns:68px 1fr;gap:4px 14px;align-items:center;padding:18px 20px}
 .facts .fact .n{grid-row:1/3;font-size:28px;line-height:34px}.facts .fact .l,.facts .fact .s{grid-column:2;font-size:14px;line-height:19px}.facts .fact .s{display:block}
 .object-frame{padding:8px}.object.reveal-stagger{padding:14px}.list.object{padding:4px 12px}.row{padding:24px 0}
 .coverage.object{padding:20px}.scroll-x{margin-inline:0;padding-inline:0}.faq-list.object{padding:4px 20px}
 .record{padding:16px}.profile-layout .prof-head h1{font-size:32px;line-height:38px}.profile-layout .prof-head{padding-inline:0}
 .timeline-labels{gap:12px;flex-wrap:wrap}.timeline-labels strong{font-size:14px}.tab-object{padding:24px}.tabs{max-width:100%;gap:2px}.tab{padding-inline:12px}
 .missed-math{grid-template-columns:1fr;padding:24px;gap:24px}.math-results strong{font-size:32px}.house-picker{gap:12px}
 .section .panel:has(.house-picker){padding:20px!important}.section .home-pro-cta{padding:0!important}.home-pro-cta>.card-float{display:flex}
}
@media(max-width:360px){.hero-copy h1{font-size:31px}.hero-panel{height:448px;padding:14px}.preview-row{padding:10px}.preview-name{font-size:16px}.preview-row .btn{padding-inline:7px}.preview-row .chip{font-size:14px}.preview-foot{gap:4px}.hero-panel .visual-source{line-height:18px}}

/* Hero live list: the panel keeps its tint so the white rows read as rows (object fill would otherwise flatten it). */
.hero-panel.object{background:var(--tint-1)}
.hero-panel .preview-row{background:var(--ground)}

/* Deep band: headings and row-head links must be light; cards inside stay ink. */
.band-deep h2,.band-deep h3{color:var(--ground)}
.band-deep .row-head a,.band-deep .row-head .eyebrow{color:var(--brand-mist)}
.band-deep .card h3,.band-deep .card .t,.band-deep .object h3{color:var(--ink)}

/* Pro Desk hero on the ground band: ink headline (the dark-hero white would vanish). */
.pd-hero.polish-inner h1{color:var(--ink)}
/* Closing band: primary button inverts on deep. */
.band-deep .closing .btn-primary{background:var(--ground);color:var(--brand-deep)}
/* Listing row actions never wrap a phone number. */
.row .acts .btn{white-space:nowrap}
@media (max-width:720px){.row .acts{flex-direction:row;flex-wrap:wrap;min-width:0}}

/* Reference grammar: four benefit rows beside the ledger (the review pass had hidden rows 3 and 4). */
.home-benefits .benefit:nth-child(n+3){display:grid}
/* Facts stack on phones; the base 640px rule for .strip .grid-3 is more specific, so match it. */
@media (max-width:720px){.strip .facts,.facts.grid-3{grid-template-columns:1fr}}
/* Trade combobox: the same drawn chevron as the selects, never a text glyph. */
.combo::after{content:"";width:16px;height:16px;top:16px;right:14px;font-size:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230E1A20' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") center/16px no-repeat}

/* Pixel audit (2026-09-30, later): hero 5/6 columns, H1 capped at 12ch, proof line, facts as white cards on the tint strip. */
.hero .grid-2{grid-template-columns:5fr 6fr;gap:64px}
.hero-copy h1{max-width:12ch}
.proof-line{display:flex;align-items:center;gap:10px;font-size:14px;line-height:20px;color:var(--ink-2)}
.proof-line svg{width:18px;height:18px;color:var(--brand-ink);flex:none}
.proof-line b{font-weight:600;color:var(--ink)}
.band-tint .facts .fact{background:var(--ground);box-shadow:0 0 0 1px rgba(14,26,32,.10);padding:28px 32px}
.fact .n{font-size:40px;line-height:44px}
.fact .l{font-size:14px;line-height:20px}
.fact .s{font-size:14px}
.hero-panel .row-card .lic svg{width:14px;height:14px;flex:none}
@media (max-width:900px){.hero .grid-2{grid-template-columns:1fr;gap:32px}}
/* Hero row meta wraps on phones: city on one line, license on the next. */
@media (max-width:720px){.hero-panel .row-card .meta{flex-wrap:wrap;gap:4px 10px}.hero-panel .row-card{padding:16px 18px}}
/* Find hub: the trade grid is not a slab; cards are tint fills on the ground band. */
.grid-find.object{background:transparent;box-shadow:none;padding:0;overflow:visible}
.grid-find .card{background:var(--tint-1);box-shadow:none}
/* Secondary buttons directly on a tint or sand band: white with a ring, or they vanish into the band. Inside white objects and cards the tint fill stays. */
.band-tint .btn-secondary,.band-sand .btn-secondary{background:var(--ground);box-shadow:0 0 0 1px rgba(14,26,32,.12)}
.band-tint .object .btn-secondary,.band-sand .object .btn-secondary,.band-tint .card .btn-secondary,.band-sand .card .btn-secondary{background:var(--tint-1);box-shadow:none}
.band-tint .btn-secondary:hover,.band-sand .btn-secondary:hover{background:#F3F6F7}
/* Trade cards: the count line is prose with a number in it, so sans, not a terminal line. */
.grid-find .card .c,.trade-card .c{font-family:var(--font-sans);font-size:14px;line-height:19px;color:var(--ink-2)}
/* Ledger on phones: label, value and chip stack; the tune layer's 150px label column would crush the value. */
@media (max-width:720px){.csdp .ledger .record{grid-template-columns:1fr;gap:6px 0;padding:16px 0}.csdp .ledger .record .chip{justify-self:start}.csdp .ledger{padding:4px 20px}}
/* Phones: the hero panel grows with its rows instead of clipping the license line. */
@media (max-width:720px){.csdp .hero-panel{height:auto;min-height:0}.csdp .hero-panel .preview-rows{flex:none}.csdp .hero-panel .preview-row{flex:none}}

/* Owner-confirmed first (2026-09-30): confirmed rows read finished, unconfirmed rows read not yet. */
.row.is-confirmed{background:var(--ground);box-shadow:0 0 0 1px rgba(14,26,32,.10);border-radius:16px;padding:24px;margin:8px 0;border-top:0}
.row.is-confirmed + .row.is-unclaimed{border-top:0}
.row.is-unclaimed{border-top:1px dashed var(--hairline)}
.row.is-unclaimed:first-child{border-top:0}

/* The ladder: four rungs, state dot, how, unlocks; "coming" tags on unlocks that are not live. */
.ladder{display:flex;flex-direction:column;gap:14px}
.ladder-full{padding:28px 32px;max-width:760px;margin:0 auto}
.ladder-compact{padding:20px 24px;gap:12px}
.ladder-row{display:grid;grid-template-columns:22px 1fr;gap:12px;align-items:start}
.ladder-dot{width:22px;height:22px;border-radius:50%;background:var(--tint-1);box-shadow:inset 0 0 0 1px var(--hairline);display:inline-flex;align-items:center;justify-content:center;margin-top:2px}
.ladder-dot svg{width:14px;height:14px;color:var(--ground)}
.ladder-row.is-on .ladder-dot{background:var(--brand);box-shadow:none}
.ladder-row.is-off .ladder-body{opacity:.72}
.ladder-body{display:flex;flex-direction:column;gap:4px;min-width:0}
.ladder-head{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;align-items:baseline}
.ladder-head b{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--ink)}
.ladder-how{font-size:14px;color:var(--ink-3)}
.ladder-state{font-family:var(--font-mono);font-size:14px;color:var(--ink-2)}
.ladder-unlocks{display:flex;flex-wrap:wrap;gap:6px 8px;font-size:14px;line-height:18px;color:var(--ink-2)}
.ladder-unlocks span{background:var(--tint-1);border-radius:999px;padding:3px 10px}
.ladder-unlocks span.coming{background:var(--tint-2)}
.ladder-unlocks span i{font-style:normal;font-size:14px;color:var(--ink-3);margin-left:6px}
.band-tint .ladder-unlocks span,.card .ladder-unlocks span{background:var(--ground);box-shadow:0 0 0 1px rgba(14,26,32,.08)}
.ladder .record-source{margin-top:4px}

/* Playbook pass 1 (2026-10-01): Distinction chip, the Google line on rows, reviews-across-the-web cards, facts table. */
.chip-distinction{background:var(--brand-tint);color:var(--brand-deep)}
.web-reviews{font-size:14px;line-height:18px;color:var(--ink-2);margin:2px 0 4px}
.web-reviews b{font-family:var(--font-mono);font-weight:500;color:var(--ink)}
.web-sources{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.web-source{display:grid;grid-template-columns:36px 1fr;gap:12px;align-items:start;padding:20px}
.web-source > div{display:flex;flex-direction:column;gap:6px;min-width:0}
.web-source b{font-family:var(--font-display);font-weight:600;font-size:16px;color:var(--ink)}
.web-logo{width:36px;height:36px;border-radius:10px;background:var(--tint-1);display:inline-flex;align-items:center;justify-content:center;font-weight:600;color:var(--ink)}
.web-source.card .web-logo{background:var(--ground);box-shadow:0 0 0 1px rgba(14,26,32,.10)}
.web-rating{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap}
.web-rating .num{font-family:var(--font-mono);font-weight:500;font-size:28px;line-height:32px;color:var(--ink);letter-spacing:-.02em}
.web-rating .cnt{font-size:14px;color:var(--ink-2)}
.web-link{font-size:14px;font-weight:500}
.web-note{margin-top:14px}
.facts-table{grid-template-columns:200px 1fr}
.facts-table .v{font-family:var(--font-sans);font-size:16px;line-height:23px}
@media (max-width:720px){.web-sources{grid-template-columns:1fr}.facts-table{grid-template-columns:1fr}}

/* Neutral chips read on every surface: white with a hairline ring (the tint fill vanished on tint bands and cards). */
.chip-neutral{background:var(--ground);box-shadow:inset 0 0 0 1px rgba(14,26,32,.12);color:var(--ink-2)}

/* ---- UI/UX audit fixes, 2026-10-02 ---- */
/* License warning beside the Call button (results cards, profile hero) */
.lic-warn{margin:10px 0 0;padding:10px 12px;border-radius:10px;font-size:14px;line-height:20px;color:var(--ink);background:var(--tint-1);border-left:3px solid var(--ink-3)}
.lic-warn-stop{background:var(--attention-tint);border-left-color:var(--attention)}
.lic-warn a{font-weight:600;white-space:nowrap}
.pro-id .lic-warn{margin:14px 0 2px;max-width:560px}
/* Results: the "Looking for something specific" box keeps its padding inside the band wrapper */
.spokes.polish-inner{padding:24px 24px 28px;padding-block:24px 28px!important}
/* Results: earlier records stay inside the page width */
.archived-records details{padding:14px 18px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--ground)}
.archived-records summary{cursor:pointer;font-weight:600}
.archived-records details p{margin:8px 0 0}
/* Coverage grid: white numbers on the darkest cells; a hint and an edge fade say it scrolls */
.coverage-grid td a.heat-high,.coverage-grid td a.heat-high:hover{color:#fff}
.coverage-hint{margin:0 0 10px;font-size:14px;line-height:18px;color:var(--ink-2)}
.coverage-hint[hidden]{display:none}
.coverage-scroll.more-right{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 64px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 64px),transparent)}
/* Compare: the brief label reads on the dark band; the empty state keeps the page width */
.band-deep .brief-box .field{color:var(--brand-mist)}
.cmp-empty-sec .empty{margin:0}
/* Owner ladder: notes and separators at body contrast */
.ladder-how,.ladder-unlocks span i,.ladder-unlocks span + span::before{color:var(--ink-2)}
/* Header: the trades dropdown shows the active state too */
.nav button[aria-current=page]{color:var(--ink);background:var(--tint-1)}
/* Inline links in running text look like links */
.page-content :is(p, li, dd, figcaption, .record-source, .reassure, .ov-sub) a:not([class]){text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
/* Home Pro Desk band: the sample card is white, so its eyebrow uses the brand ink, not the dark band's mist */
.band-deep .card-float .eyebrow,.cta-band .card-float .eyebrow{color:var(--brand-ink)}
/* Light cards and panels inside dark bands keep dark text (the band's mist text was landing on white and sand) */
.band-deep .fn-form .field,.band-deep .fn-form p,.band-deep .fn-form-note{color:var(--ink-2)}
.band-deep .panel-sand h2,.band-deep .panel-sand h3{color:var(--ink)}
.band-deep .panel-sand p,.band-deep .panel-sand .muted{color:var(--ink-2)}
.band-deep .panel-sand .eyebrow{color:var(--brand-ink)}
/* Amber and orange text at 13 to 15px passes 4.5:1 on its tint (was 3.0 to 3.4:1); light theme only */
:root:not([data-theme="dark"]) :is(.chip-attention,.stamp-k.is-attention,.fn-report-rows .is-gap .v,.notice b){color:#8A5300}
:root:not([data-theme="dark"]) .rsp{color:#A2410F}

/* ---- Reference features, 2026-10-03 (Houzz, HomeGuide, Angi, Thumbtack, The Knot, This Old House) ---- */
/* Skip link: first focusable element, visible on focus */
.skip-link{position:absolute;left:12px;top:-64px;z-index:200;padding:10px 14px;border-radius:10px;background:var(--brand);color:#fff;font-weight:600;text-decoration:none;transition:top .15s}
.skip-link:focus{top:12px;outline:2px solid var(--ink);outline-offset:2px}
/* Home: three steps under the hero */
.how3-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.how3-steps li{display:flex;gap:14px;align-items:flex-start;padding:18px 20px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--ground)}
.how3-steps .n{flex:none;width:32px;height:32px;border-radius:999px;background:var(--brand);color:#fff;display:inline-flex;align-items:center;justify-content:center;font:600 16px/1 var(--font-sans)}
.how3-steps b{display:block;font-size:16px;line-height:22px;color:var(--ink)}
.how3-steps li span:not(.n){display:block;margin-top:4px;font-size:14px;line-height:20px;color:var(--ink-2)}
@media (max-width:800px){.how3-steps{grid-template-columns:1fr}}
/* Home: job-first emergency cards */
.em-panel{padding:36px;border-radius:var(--radius-xl);gap:20px}
.em-head{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.em-head h2{font-size:32px;line-height:38px;margin:0}
.em-city{display:flex;flex-direction:column;gap:6px;font-size:14px;font-weight:600;color:var(--ink-2)}
.em-city select{height:44px;border:1px solid var(--hairline);border-radius:var(--radius-md);padding:0 12px;font:500 16px var(--font-sans);background:var(--ground);color:var(--ink);min-width:220px}
.em-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.em-card{padding:16px 18px;gap:4px}
.em-card .n{font-weight:600;font-size:16px;line-height:22px;color:var(--ink)}
.em-card .d{font-size:14px;line-height:20px;color:var(--brand-ink);font-weight:500}
@media (max-width:800px){.em-grid{grid-template-columns:1fr 1fr}.em-head h2{font-size:26px;line-height:32px}}
@media (max-width:480px){.em-grid{grid-template-columns:1fr}.em-panel{padding:24px}.em-city select{min-width:0;width:100%}}
/* Results: business names are headings; the business's own Google details as quiet tags */
.row .row-h{margin:0;font:inherit;line-height:inherit;letter-spacing:inherit}
.card-tags{display:flex;flex-wrap:wrap;gap:6px;align-items:center;margin-top:8px;font-size:14px;line-height:18px;color:var(--ink-2)}
.card-tags .ct-k{color:var(--ink-3)}
.card-tags span:not(.ct-k){padding:2px 8px;border-radius:999px;background:var(--tint-1);color:var(--ink)}
/* Results: filter chips with counts, a clear button, and the guide link */
.filters .pill .n{margin-left:4px;font:500 12px var(--font-mono);color:var(--ink-3)}
.filters .pill.is-on .n{color:inherit;opacity:.85}
.filters .pill-clear{background:transparent;border:1px dashed var(--hairline);color:var(--ink-2)}
.filters .pill-clear[hidden]{display:none}
.filters .guide-link{flex-basis:100%;width:100%;margin:10px 0 0;font-size:14px;line-height:20px;color:var(--ink-2)}
.list-foot{display:flex;flex-wrap:wrap;gap:8px 20px;justify-content:space-between}
/* Profile: highlights (HomeGuide) */
.profile-immersive .highlights{margin:0 0 32px}
.profile-immersive .highlights h3{font:500 14px/18px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brand-ink);margin:0 0 12px}
.highlights ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 24px}
.highlights li{display:flex;gap:12px;align-items:flex-start}
.highlights .hl-ic{flex:none;width:34px;height:34px;border-radius:10px;background:var(--tint-1);color:var(--brand-ink);display:inline-flex;align-items:center;justify-content:center}
.highlights .hl-ic svg{width:16px;height:16px}
.highlights b{display:block;font-size:16px;line-height:21px;color:var(--ink);font-weight:600}
.highlights .record-source{display:block;margin-top:2px}
@media (max-width:640px){.highlights ul{grid-template-columns:1fr}}
.ov-services .svc-src{margin:-4px 0 10px}
/* City pages: how to choose (This Old House) and computed answers (The Knot) */
.how-choose h2,.city-faq h2{font-size:24px;line-height:30px;margin:0 0 8px}
.how-choose ol{margin:16px 0 0;padding:0;list-style:none;counter-reset:hc;display:grid;gap:16px}
.how-choose li{counter-increment:hc;position:relative;padding-left:46px}
.how-choose li::before{content:counter(hc);position:absolute;left:0;top:0;width:30px;height:30px;border-radius:999px;background:var(--tint-1);color:var(--brand-ink);font:600 14px/30px var(--font-sans);text-align:center}
.how-choose li b{display:block;font-size:16px;line-height:22px;color:var(--ink)}
.how-choose li p{margin:4px 0 0;font-size:16px;line-height:23px;color:var(--ink-2);max-width:720px}
.how-choose .record-source,.city-faq .record-source{margin-top:16px}

/* ---- Permit history, 2026-10-03 (BuildZoom pattern; City of San Diego open data) ---- */
.prof-permits .pm-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:8px 0 20px}
.prof-permits .pm-summary div{padding:16px 18px;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--ground)}
.prof-permits .pm-summary b{display:block;font-size:24px;line-height:30px;color:var(--ink);font-weight:600}
.prof-permits .pm-summary b.num{font-family:var(--font-mono);font-weight:500}
.prof-permits .pm-summary span{display:block;margin-top:2px;font-size:14px;line-height:18px;color:var(--ink-2)}
.prof-permits .pm-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;margin:0 0 20px}
.prof-permits h3{font:500 14px/18px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brand-ink);margin:0 0 10px}
.pm-bar{display:grid;grid-template-columns:44px 1fr 40px;gap:10px;align-items:center;margin:0 0 8px;font-size:14px}
.pm-bar .pm-y,.pm-bar .pm-n{font-family:var(--font-mono);color:var(--ink-2)}
.pm-bar .pm-n{text-align:right}
.pm-track{height:10px;border-radius:999px;background:var(--tint-1);overflow:hidden}
.pm-track i{display:block;height:100%;border-radius:999px;background:var(--brand)}
.pm-types ul{list-style:none;margin:0;padding:0}
.pm-types li{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-bottom:1px solid var(--hairline);font-size:14px;color:var(--ink)}
.pm-types li b{font-family:var(--font-mono);font-weight:500;color:var(--ink-2)}
.pm-table-wrap{border:1px solid var(--hairline);border-radius:var(--radius-lg)}
.pm-table{width:100%;border-collapse:collapse;font-size:14px;min-width:560px}
.pm-table th{text-align:left;font-weight:600;font-size:12px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);padding:10px 14px;background:var(--tint-1)}
.pm-table td{padding:10px 14px;border-top:1px solid var(--hairline);color:var(--ink)}
.pm-table td.num,.pm-table td.mono{font-family:var(--font-mono);font-size:14px}
.prof-permits .record-source{margin-top:12px}
@media (max-width:720px){.prof-permits .pm-grid{grid-template-columns:1fr}}
/* City pages: recent permits by listed businesses */
.area-permits h2{font-size:24px;line-height:30px;margin:0 0 8px}
.area-permits .ap-lede{margin:0 0 14px;font-size:16px;line-height:23px;color:var(--ink-2);max-width:760px}
.ap-list{list-style:none;margin:0;padding:0;border:1px solid var(--hairline);border-radius:var(--radius-lg);background:var(--ground)}
.ap-list li{display:grid;grid-template-columns:110px 1fr auto;gap:12px;align-items:baseline;padding:12px 16px;border-top:1px solid var(--hairline);font-size:14px}
.ap-list li:first-child{border-top:0}
.ap-list .ap-date{font-family:var(--font-mono);font-size:14px;color:var(--ink-2)}
.ap-list a{font-weight:600}
.ap-list .ap-type{color:var(--ink-2);text-align:right}
@media (max-width:640px){.ap-list li{grid-template-columns:1fr}.ap-list .ap-type{text-align:left}}
.area-permits .record-source{margin-top:12px}
/* Grid columns may shrink below their content, so wide tables scroll inside their own box instead of widening the page */
.split > [data-main-content],.profile-layout > [data-main-content]{min-width:0}
.pm-table-wrap{overflow-x:auto;max-width:100%}
/* Permit table on phones: each permit becomes a two-line card (date and value, then type, then area and permit
   number) instead of a sideways-scrolling table. */
@media (max-width:600px){
  .pm-table{min-width:0}
  .pm-table thead{display:none}
  .pm-table,.pm-table tbody{display:block}
  .pm-table tr{display:grid;grid-template-columns:1fr auto;gap:2px 12px;padding:12px 14px;border-top:1px solid var(--hairline)}
  .pm-table tr:first-child{border-top:0}
  .pm-table td{padding:0;border:0}
  .pm-table td:nth-child(1){grid-column:1;grid-row:1;font-weight:600}
  .pm-table td:nth-child(4){grid-column:2;grid-row:1;text-align:right}
  .pm-table td:nth-child(2){grid-column:1/-1;grid-row:2}
  .pm-table td:nth-child(3){grid-column:1;grid-row:3;color:var(--ink-2);font-size:14px}
  .pm-table td:nth-child(5){grid-column:2;grid-row:3;text-align:right;color:var(--ink-2)}
}

/* Pro Desk BJS funnel (canvas board "Pro Desk · BJS funnel", 2026-09-30). Layout only; tokens and copy live elsewhere. */

/* Hero on the deep band: copy 1.05fr, report object 1fr */
.fn-hero-grid{display:grid;grid-template-columns:1.05fr 1fr;gap:64px;align-items:center}
.fn-hero-copy{display:flex;flex-direction:column;gap:20px}
.fn-hero-copy h1{color:var(--ground);max-width:14ch}
.band-deep .hl{color:var(--brand-mist)}
.fn-hero-copy .lede,.fn-math-copy .lede{color:var(--brand-mist);max-width:520px}
.band-deep .proof-line{color:var(--brand-mist)}
.band-deep .proof-line b{color:var(--ground)}
.band-deep .proof-line svg{color:var(--brand-mist)}
.fn-report{padding:28px 32px;display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.fn-report-head{display:flex;justify-content:space-between;gap:12px}
.fn-report-head .eyebrow{font-size:14px;color:var(--ink-3)}
.fn-report h3{font-size:20px;line-height:26px;color:var(--ink)}
.fn-report-rows{display:flex;flex-direction:column;background:var(--tint-2);border-radius:12px;padding:4px 16px}
.fn-report-rows > div{display:flex;justify-content:space-between;gap:12px;padding:12px 0;border-top:1px solid var(--hairline);align-items:baseline}
.fn-report-rows > div:first-child{border-top:0}
.fn-report-rows .v{font-family:var(--font-mono);font-size:14px;font-weight:500;color:var(--ink)}
.fn-report-rows .is-gap .v{color:var(--attention-ink)}
.fn-report-rows .s{font-size:14px;color:var(--ink-3);white-space:nowrap}
.fn-report-rec{background:var(--tint-1);border-radius:12px;padding:12px 16px;font-size:14px;line-height:22px;color:var(--ink-2)}
.fn-report-rec b{color:var(--ink)}

/* Three pillars on white: sand cards, eyebrow, h3, three lines */
.fn-pillars{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:8px}
.fn-pillar{display:flex;flex-direction:column;gap:10px}
.fn-pillar h3{font-size:24px;line-height:30px}
.fn-pillar p{font-size:16px;line-height:23px;margin:0}
.fn-pillar p b{color:var(--ink);font-weight:600}
.fn-pillar p b.rsp{color:var(--accent-ink)}
.fn-own{text-align:center;margin-top:32px}

/* Math band: copy + funnel left, calculator object right */
.fn-math-grid{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:center}
.fn-math-copy{display:flex;flex-direction:column;gap:16px}
.fn-math-copy h2{color:var(--ground);max-width:14ch}
.fn-funnel{background:rgba(255,255,255,.06);border-radius:16px;padding:20px 24px;display:flex;flex-direction:column;gap:16px;margin-top:8px}
.fn-bar{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:baseline;font-size:14px;color:var(--brand-mist)}
.fn-bar b{font-family:var(--font-mono);font-weight:500;font-size:16px;color:var(--ground)}
.fn-bar .track{grid-column:1/-1;display:block;height:10px;border-radius:6px;background:rgba(255,255,255,.10);overflow:hidden}
.fn-bar .bar-fill{display:block;height:100%;width:100%;border-radius:6px;background:var(--brand-mist)}
.fn-bar.is-gap b{color:var(--attention-ink)}
.fn-bar.is-gap .bar-fill{background:var(--attention)}
.fn-funnel .record-source{color:rgba(255,255,255,.55);margin:0}
.fn-calc{padding:32px;display:flex;flex-direction:column;gap:22px;color:var(--ink)}
.fn-calc h3{font-size:22px;line-height:28px;color:var(--ink)}
.fn-slider{display:flex;flex-direction:column;gap:12px}
.fn-slider .lab{display:flex;justify-content:space-between;gap:16px;font-size:14px;color:var(--ink-2)}
.fn-slider output{font-family:var(--font-mono);font-weight:500;color:var(--ink)}
.fn-outs{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;padding-top:4px}
/* Calculator results: RH's own calculator result figures (/local-authority/ "$4,000 · $389 · 10.3×"), 30/600 on 36 at both widths (2026-10-12; was 28/500). */
.fn-outs b{display:block;font-family:var(--font-mono);font-weight:600;font-size:30px;line-height:36px;color:var(--brand-ink);letter-spacing:-.02em}
.fn-outs span{font-size:14px;line-height:18px;color:var(--ink-3)}
.fn-calc .record-source{margin:0}
.fn-calc .btn{justify-content:center}

/* Timeline beside the honest question */
.fn-plan-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px;align-items:stretch}
.fn-tl{display:flex;flex-direction:column;gap:22px}
.fn-tl-row{display:grid;grid-template-columns:72px 1fr;gap:16px;border-left:2px solid var(--brand-tint);padding-left:16px}
.fn-tl-row .when{font-family:var(--font-display);font-weight:600;color:var(--ink-3);font-size:16px;padding-top:2px}
.fn-tl-row h4{font-family:var(--font-display);font-weight:600;font-size:18px;line-height:24px;color:var(--brand-ink);letter-spacing:-.01em}
.fn-tl-row p{font-size:16px;line-height:23px;margin-top:4px}
.fn-question{display:flex;flex-direction:column;gap:16px}
.fn-question h3{font-size:24px;line-height:31px}
.fn-question .cta-pair{gap:10px}

/* Proof: three white cards with a ring on the tint band */
.fn-proof{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.fn-proof .card{display:flex;flex-direction:column;align-items:center;text-align:center;gap:6px;padding:28px 24px}
.fn-proof .num{font-family:var(--font-mono);font-weight:500;font-size:40px;line-height:44px;color:var(--ink);letter-spacing:-.02em}
.fn-proof span{font-size:14px;color:var(--ink-2)}
.fn-proof-note{max-width:720px;margin:24px auto 0;text-align:center}

/* Offer: bento left, sticky price object right */
.fn-offer{display:grid;grid-template-columns:1.4fr 1fr;gap:40px;align-items:start}
.fn-offer-copy{display:flex;flex-direction:column;gap:20px}
.fn-offer-copy h2{max-width:14ch}
.fn-bento{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.fn-bento .card{display:flex;flex-direction:column;gap:8px;padding:24px}
.fn-bento h3{font-size:18px;line-height:24px}
.fn-bento p{font-size:14px;line-height:22px;margin:0}
.fn-price{position:sticky;top:96px;padding:32px;display:flex;flex-direction:column;gap:14px;color:var(--ink)}
.fn-price-amt{display:flex;align-items:baseline;gap:6px}
/* The price: RH's plan price ("$389", "$400"), 60/600 on 60 at both widths (2026-10-12; was 56). */
.fn-price-amt b{font-family:var(--font-display);font-weight:600;font-size:60px;line-height:60px;letter-spacing:-.03em;color:var(--ink)}
.fn-price-amt span{font-size:16px;color:var(--ink-2)}
.fn-price p{font-size:16px;line-height:23px;margin:0}
.fn-price ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.fn-price li{display:flex;align-items:center;gap:10px;font-size:16px;color:var(--ink)}
.fn-price li svg{width:16px;height:16px;color:var(--brand-ink);flex:none}
.fn-price .btn{justify-content:center}
.fn-price .record-source{text-align:center;margin:0}

/* FAQ width */
.fn-faq .wrap-narrow{padding:0}

/* Closing band with the free-check form */
.fn-close{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center}
.fn-close-copy h2{color:var(--ground);max-width:12ch}
.fn-close-copy p{color:var(--brand-mist);font-size:18px;line-height:28px;margin-top:12px}
.fn-form{background:var(--ground);border-radius:24px;padding:28px 32px;display:grid;grid-template-columns:1fr 1fr;gap:14px;color:var(--ink);box-shadow:var(--shadow-xl, 0 20px 25px -5px rgba(0,0,0,.10))}
.fn-form .field:first-child{grid-column:1/-1}
.fn-form .field input,.fn-form .field select{border:1px solid var(--hairline);background:var(--ground)}
.fn-form .btn{grid-column:1/-1;justify-content:center}
.fn-form-note{grid-column:1/-1;font-size:14px;color:var(--ink-3);margin:0;text-align:center}
.fn-form-done{grid-column:1/-1;background:var(--tint-1);border-radius:12px;padding:14px 16px;font-size:14px;line-height:22px;color:var(--ink)}
.fn-bar.callbar .btn{justify-content:center;flex:1}

@media (max-width:1000px){.fn-hero-grid,.fn-math-grid,.fn-plan-grid,.fn-offer,.fn-close{grid-template-columns:1fr;gap:32px}.fn-price{position:static}.fn-pillars,.fn-proof{grid-template-columns:1fr}}
@media (max-width:720px){.fn-hero-copy h1,.fn-math-copy h2,.fn-close-copy h2,.fn-offer-copy h2{max-width:none}.fn-bento{grid-template-columns:1fr}.fn-form{grid-template-columns:1fr;padding:24px}.fn-outs{grid-template-columns:1fr 1fr}.fn-report{padding:22px}.fn-calc{padding:24px}.fn-tl-row{grid-template-columns:60px 1fr}}

/* Buttons inside white objects on the deep band keep their own colours. */
.band-deep .object .btn-primary{color:var(--ground);background:var(--brand)}
.band-deep .object .btn-secondary{color:var(--ink)}

/* CSDP v2 guide polish. Loads after csdp-polish.css. Guide hubs and the guide template only
   (pages/guides.mjs). Tokens and copy unchanged; nothing under 13px; mono only for looked-up values. */

/* ---------- 1. Guide shell ---------- */
/* The .guide grid now lives inside a top-level section, so polish-markup gives it the 1280px container.
   The section keeps the 112px bottom rhythm but sits closer to the crumbs at the top. */
.section:has(> .guide-shell){padding-top:40px}
.guide-shell .guide{padding-top:0}
.guide{grid-template-columns:220px minmax(0,1fr) 300px;gap:48px}
.guide-2col{grid-template-columns:minmax(0,1fr) 340px}

/* ---------- 2. Table of contents ---------- */
/* Desktop: a sticky list of the H2s in the left column. */
.toc{gap:2px}
.toc .eyebrow{font-size:14px;margin-bottom:8px}
.toc a{font:500 14px/20px var(--font-sans);color:var(--ink-2);padding:6px 0}
.toc a:hover{color:var(--brand-ink);text-decoration:none}
/* Under 1100px the column goes; the TOC becomes a horizontal chip row above the article (scroll-x). */
@media (max-width:1100px){
  .toc{display:flex;flex-direction:row;flex-wrap:nowrap;gap:8px;position:static;grid-column:1 / -1;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none;padding:0 0 4px;margin:0}
  .toc::-webkit-scrollbar{display:none}
  .toc .eyebrow{display:none}
  .toc a{flex:none;display:inline-flex;align-items:center;height:36px;padding:0 14px;border-radius:var(--radius-pill);background:var(--tint-1);color:var(--ink);white-space:nowrap}
  .toc a:hover{background:var(--brand-tint);color:var(--brand-ink)}
}

/* ---------- 3. Article header ---------- */
/* Eyebrow, H1 and one sans meta line as a single block; the short version follows directly. */
.article .head{display:flex;flex-direction:column;gap:12px}
.article .head .eyebrow{margin-bottom:2px}
.article .meta{font:400 14px/18px var(--font-sans);color:var(--ink-3);letter-spacing:0}
/* Meta items never break inside ("2-minute read" stays whole); the dot belongs to the item that follows. */
.article .meta span{white-space:nowrap}
.article .meta span + span::before{content:"·";margin:0 5px 0 2px;color:var(--ink-3)}
.article h2{font-size:26px;line-height:32px;margin-top:20px}
.article p .mono{font-size:16px;color:var(--ink)}
.article .cta-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:-4px}

/* ---------- 4. The short version ---------- */
/* Answer first: tint fill, no border, the only box between the H1 and the first H2. */
.inshort{background:var(--tint-1);border:0;border-radius:var(--radius-lg);padding:28px 32px;gap:10px}
.inshort .eyebrow{font-size:14px}
.inshort p{font-size:18px;line-height:28px;color:var(--ink)}

/* ---------- 5. Status stamps ---------- */
/* The guide's one visual: a white object (radius-xl, shadow) holding four stamp cards and a source line.
   Active uses the site's confirmed state; every other status is attention. Never green or red. */
.status-stamps{padding:24px;display:flex;flex-direction:column;gap:16px}
.stamps{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.stamp{background:var(--tint-1);border-radius:var(--radius-md);padding:18px 20px;display:flex;flex-direction:column;gap:10px;align-items:flex-start;min-width:0}
.stamp-k{display:inline-flex;align-items:center;height:28px;padding:0 10px;border:1.5px solid currentColor;border-radius:6px;font:500 14px/16px var(--font-mono);letter-spacing:.1em;text-transform:uppercase}
.stamp-k.is-confirmed{color:var(--confirmed);background:var(--confirmed-tint)}
.stamp-k.is-attention{color:var(--attention-ink);background:var(--attention-tint)}
.stamp .v{font:400 14px/22px var(--font-sans);color:var(--ink-2)}
.status-stamps .record-source{color:var(--ink-3)}

/* ---------- 6. Do this now ---------- */
/* Three real checkboxes inside labels. Visual only: nothing is stored or sent. */
.do-now{background:var(--tint-2);border-radius:var(--radius-lg);padding:6px 24px;display:flex;flex-direction:column}
.do-item{display:grid;grid-template-columns:20px 1fr;gap:14px;align-items:start;padding:14px 0;border-top:1px solid var(--hairline);font:400 16px/24px var(--font-sans);color:var(--ink);cursor:pointer}
.do-item:first-child{border-top:0}
.do-item input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--brand)}

/* ---------- 7. Sources ---------- */
/* Plain sans text under a hairline, never mono, never a card. The last thing on the page. */
.sources{background:transparent;border-radius:0;padding:16px 0 0;border-top:1px solid var(--hairline);gap:6px}
.sources .eyebrow{font-size:14px}
.sources p{font:400 14px/22px var(--font-sans);color:var(--ink-2)}

/* ---------- 8. Rail ---------- */
/* Rail cards are .card, not .panel: same fills as the site's panels, no hairline, no object promotion. */
.rail .card{padding:20px 24px;gap:10px}
.rail .card .eyebrow{font-size:14px}
.rail .tool-card .t{font-size:18px;line-height:24px}
.rail .card p a{font-weight:500}

/* ---------- 9. Guide hubs ---------- */
/* Unwritten guides are one gray line under the live cards. Cards keep the tint fill inside the white object. */
.coming{font:400 14px/22px var(--font-sans);color:var(--ink-3);text-align:center;margin-top:24px}
.coming span + span::before{content:"·";margin:0 5px 0 2px}
.guides-live .object > .card{background:var(--tint-1)}

/* ---------- 10. Phones ---------- */
@media (max-width:820px){
  .guide,.guide-2col{grid-template-columns:1fr;gap:32px}
  .article h1{font-size:32px;line-height:38px}
  .article h2{font-size:22px;line-height:28px}
  .inshort{padding:20px}
  .inshort p{font-size:16px;line-height:26px}
  .status-stamps{padding:16px;gap:12px}
  .stamps{grid-template-columns:1fr;gap:8px}
  .stamp{padding:16px}
  .do-now{padding:4px 18px}
  .rail{position:static}
}

/* Immersive profile (canvas board 15). Loaded after csdp-polish.css; every rule is scoped to .profile-immersive
   so no existing component changes on other pages. Tokens only, nothing under 13px, states blue/amber only. */

/* Top block: the gallery, header and tabs sit above the split at the same 1280 width the split uses. */
.profile-immersive .prof-gallery.section{padding-block:16px 0}
.profile-immersive .prof-header.section{padding-block:28px 0}
.profile-immersive .prof-gallery,.profile-immersive .prof-header{scroll-margin-top:0}

/* Gallery hero: no photos on file today, so one tall sand plate spans the gallery area with a caption pill
   where the board puts its "See all" pill. Owner, Google and Yelp photos fill this grid once they exist. */
.profile-immersive .gallery-frame{position:relative}
.profile-immersive .gallery-frame .plate.tall{min-height:348px;border-radius:var(--radius-xl)}
.profile-immersive .gallery-tag{position:absolute;left:14px;bottom:14px;display:inline-flex;align-items:center;max-width:calc(100% - 28px);min-height:36px;padding:8px 14px;border-radius:var(--radius-pill);background:var(--ground);color:var(--ink);font:500 14px/18px var(--font-sans);box-shadow:var(--shadow-card)}

/* Header: copy column aligned with main; the empty right column lines up with the rail like the board. */
.profile-immersive .prof-header{grid-template-columns:minmax(0,1fr) 360px;gap:40px}
.profile-immersive .prof-header .copy{gap:12px;max-width:none}
.profile-immersive .prof-header h1{font-size:44px;line-height:48px}
.profile-immersive .prof-header .lede{font-size:18px;line-height:27px;max-width:720px}
.profile-immersive .prof-header .acts{margin-top:4px;min-width:0}
@media(max-width:640px){
  .profile-immersive .prof-header .acts{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .profile-immersive .prof-header .acts .btn{min-width:0;white-space:normal;text-align:center;line-height:1.3;padding:10px 12px;height:auto;min-height:44px}
}
.profile-immersive .prof-contact{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin-top:2px}
.profile-immersive .copy-phone{border:0;background:var(--tint-2);padding:2px 8px;border-radius:var(--radius-sm);font:500 14px/18px var(--font-mono);color:var(--ink);cursor:pointer;transition:background .2s var(--ease)}
.profile-immersive .copy-phone:hover{background:var(--brand-tint)}
.profile-immersive .copied{font-weight:600;color:var(--brand-ink)}
.profile-immersive .copied:empty{display:none}

/* Sticky section tabs: one nav, scroll-spy marks the section in view, clicks scroll (no page switches).
   Sticks under the 72px site header; the row scrolls sideways on phones. */
.profile-immersive .prof-tabs{position:sticky;top:72px;z-index:30;margin-top:24px;background:rgba(255,255,255,.95);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.profile-immersive .tabs-in{display:flex;gap:24px;border-bottom:1px solid var(--hairline);overflow-x:auto;scrollbar-width:none;overscroll-behavior-x:contain}
.profile-immersive .tabs-in::-webkit-scrollbar{display:none}
.profile-immersive .prof-tabs a{flex:none;display:inline-flex;align-items:center;height:48px;padding:0 4px;margin-bottom:-1px;border-bottom:2px solid transparent;font:500 14px/20px var(--font-sans);color:var(--ink-2);white-space:nowrap;transition:color .2s var(--ease),border-color .2s var(--ease)}
.profile-immersive .prof-tabs a:hover{color:var(--ink);text-decoration:none}
.profile-immersive .prof-tabs a[aria-current]{color:var(--ink);border-bottom-color:var(--brand)}

/* Main column: the post-processor bands and contains each section (ground, tint, tint, ground, deep).
   Section heads are 24/30 like the board, laid out as a row with their meta on the right. */
.profile-immersive .profile-layout>main{gap:40px}
.profile-immersive .profile-layout>main>.section{scroll-margin-top:44px}
.profile-immersive .section h2{font-size:24px;line-height:30px;letter-spacing:-.02em}
.profile-immersive .row-head.intro{flex-direction:row;align-items:baseline;justify-content:space-between;flex-wrap:wrap;gap:8px 16px;max-width:none;margin:0 0 16px}
.profile-immersive .row-head.intro>a{font-size:14px;font-weight:500;white-space:nowrap}
.profile-immersive .section .meta{white-space:nowrap}
.profile-immersive .section>.intro.reveal{margin:0 0 12px;max-width:none}

/* Reviews on other sites: three source cards in the section's one object (tint container, white cards, the
   same inversion the hero panel uses). Nothing is fetched today, so each card names its state. */
.profile-immersive .prof-reviews .object-frame{padding:0;background:transparent}
.profile-immersive .review-sources.object{background:var(--tint-1);box-shadow:none;padding:16px;gap:12px;border-radius:var(--radius-xl)}
.profile-immersive .review-sources .rv-card{background:var(--ground);box-shadow:var(--shadow-card);gap:8px;padding:18px 20px;min-height:156px}
.profile-immersive .rv-head{display:flex;align-items:center;gap:10px;font:600 16px/20px var(--font-sans);color:var(--ink)}
.profile-immersive .rv-mark{width:28px;height:28px;border-radius:var(--radius-sm);background:var(--tint-1);display:inline-flex;align-items:center;justify-content:center;font:800 14px/1 var(--font-display);color:var(--ink);flex:none}
.profile-immersive .rv-val{font:500 16px/20px var(--font-mono);color:var(--ink)}
.profile-immersive .rv-note{font-size:14px;line-height:18px;color:var(--ink-3)}
.profile-immersive .rv-card>a{font-size:14px;font-weight:500;margin-top:auto}
.profile-immersive .rv-empty{margin-top:16px;padding:16px 20px;border-radius:var(--radius-lg);background:var(--tint-2);font-size:14px;line-height:22px;color:var(--ink-2)}
.profile-immersive .rv-foot{margin-top:12px;font-size:14px;line-height:19px;color:var(--ink-3)}

/* What we checked: the ledger rows and the license timeline share one white object. */
.profile-immersive .record-object{gap:16px}
.profile-immersive .record-object .ledger{padding:4px 20px}
.profile-immersive .record-object .license-timeline{padding:20px 24px;border-radius:var(--radius-lg)}
.profile-immersive .license-timeline .row-head{margin:0 0 12px;align-items:center}
.profile-immersive .license-timeline h3{font-size:16px;line-height:22px}
.profile-immersive .license-timeline .row-head a{font-size:14px;font-weight:500}
.profile-immersive .owner-missing{margin-top:16px}
.profile-immersive .ledger-note{margin-top:8px}

/* Where they work: the map object beside the two status panels (1.2fr / 1fr like the board). The map keeps
   its 13px labels on phones by scrolling sideways instead of shrinking. */
.profile-immersive .area-grid{display:grid;grid-template-columns:1.2fr 1fr;gap:16px;align-items:start}
.profile-immersive .area-side{display:flex;flex-direction:column;gap:16px}
.profile-immersive .area-side .panel-sand{background:var(--tint-2)}
.profile-immersive .prof-map{gap:12px}
.profile-immersive .map-scroll{background:var(--tint-1);border-radius:var(--radius-md);padding:8px;overflow-x:auto}
.profile-immersive .map-scroll svg{display:block;width:100%;height:auto;min-width:340px}
.profile-immersive .prof-map .dot{fill:var(--hairline)}
.profile-immersive .prof-map .dot-on{fill:var(--brand)}
.profile-immersive .prof-map text{font-family:var(--font-sans);font-size:14px;fill:var(--ink-3)}
.profile-immersive .prof-map text.on{fill:var(--ink);font-weight:600}
.profile-immersive .map-key{display:flex;gap:16px;flex-wrap:wrap;font-size:14px;line-height:18px;color:var(--ink-2)}
.profile-immersive .map-key span{display:inline-flex;align-items:center;gap:7px}
.profile-immersive .map-key i{width:9px;height:9px;border-radius:50%;background:var(--hairline);display:inline-block;flex:none}
.profile-immersive .map-key i.on{width:12px;height:12px;background:var(--brand)}
.profile-immersive .area-side .panel .t{font:700 16px/22px var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.profile-immersive .activity-line{display:flex;align-items:flex-end;gap:12px}
.profile-immersive .activity-line .n{font:500 32px/32px var(--font-mono);color:var(--ink)}
.profile-immersive .activity-line .l{font-size:14px;line-height:18px;color:var(--ink-2);padding-bottom:3px}

/* About: record-only paragraph. */
.profile-immersive .prof-about{display:flex;flex-direction:column;gap:10px}
.profile-immersive .prof-about p{color:var(--ink-2)}

/* Other pros: three cards, sand plate on top, one chip. Hover lifts the card (chips never react). */
.profile-immersive .sim-card{padding:0;overflow:hidden;gap:0}
.profile-immersive .sim-card .plate{border-radius:0;min-height:120px}
.profile-immersive .sim-body{display:flex;flex-direction:column;gap:6px;padding:14px 16px}
.profile-immersive .sim-card .t{font:700 16px/22px var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.profile-immersive .sim-card .d{font-size:14px;line-height:19px;color:var(--ink-2)}
.profile-immersive .sim-card .chips{margin-top:2px}

/* Rail: the owner card sticks under the tabs, not under the site header. */
.profile-immersive .profile-layout .owner-card{top:136px}

/* Phones and narrow widths. */
@media (max-width:1100px){
  .profile-immersive .prof-header{grid-template-columns:1fr}
  .profile-immersive .prof-head-aside{display:none}
}
@media (max-width:1000px){
  .profile-immersive .area-grid{grid-template-columns:1fr}
}
@media (max-width:820px){
  .profile-immersive .prof-tabs{top:64px;margin-top:20px}
  .profile-immersive .tabs-in{gap:18px}
  .profile-immersive .prof-header h1{font-size:32px;line-height:38px}
  .profile-immersive .prof-header .lede{font-size:16px;line-height:25px}
  .profile-immersive .gallery-frame .plate.tall{min-height:220px;border-radius:var(--radius-lg)}
  .profile-immersive .profile-layout>main{gap:28px}
  .profile-immersive .profile-layout>main>.section{scroll-margin-top:32px}
  .profile-immersive .review-sources.object{padding:12px}
  .profile-immersive .review-sources .rv-card{min-height:0}
  .profile-immersive .record-object .ledger{padding:4px 16px}
  .profile-immersive .record-object .license-timeline{padding:16px}
}

/* Phones: the service-area map scales to its box instead of scrolling with clipped labels. */
@media (max-width:720px){.profile-immersive .map-scroll svg{min-width:0}}

/* ---------- Immersive profile v2 (2026-10-01) ----------
   Hero band (tint) with the identity block beside Google's map of the listing; record-fact cards straddle the
   band's lower edge. One strong reviews card. Typographic similar-pro cards. No empty image plates anywhere. */
.profile-immersive .pro-hero.section{padding:0;background:linear-gradient(var(--tint-1),var(--tint-1)) top left/100% calc(100% - 72px) no-repeat}
.profile-immersive .pro-hero>.wrap{padding-top:20px;padding-bottom:0}
.profile-immersive .pro-hero .crumbs{margin:0 0 24px;max-width:none;width:auto}
.profile-immersive .pro-hero-grid{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:56px;align-items:center;padding-bottom:40px}
.profile-immersive .pro-id{display:flex;flex-direction:column;gap:18px;min-width:0}
.profile-immersive .pro-id h1{font-size:48px;line-height:1.04;margin:0;text-wrap:balance}
.profile-immersive .pro-sub{font-size:18px;line-height:28px;margin:0;max-width:540px}
.profile-immersive .pro-acts{display:flex;flex-wrap:wrap;gap:10px}
.profile-immersive .pro-acts .btn svg{width:18px;height:18px}
.profile-immersive .pro-hero .btn-secondary{background:var(--ground);box-shadow:var(--ring,0 0 0 1px rgba(14,26,32,.10))}
.profile-immersive .pro-hero .btn-secondary:hover{background:#F7F9FA}
.profile-immersive .pro-quiet{display:flex;flex-wrap:wrap;gap:6px 22px}
.profile-immersive .pro-quiet a,.profile-immersive .pro-quiet button{display:inline-flex;align-items:center;gap:6px;background:none;border:0;padding:0;height:auto;font:500 14px/22px var(--font-sans);color:var(--brand-ink);cursor:pointer;text-decoration:none;box-shadow:none}
.profile-immersive .pro-quiet a:hover,.profile-immersive .pro-quiet button:hover{text-decoration:underline;text-underline-offset:3px}
.profile-immersive .pro-map{margin:0;background:var(--ground);border-radius:24px;overflow:hidden;box-shadow:var(--shadow-xl,0 20px 25px -5px rgba(0,0,0,.10),0 8px 10px -6px rgba(0,0,0,.10));display:flex;flex-direction:column;min-width:0}
.profile-immersive .pro-map-frame{position:relative;height:420px;background:#E6EBEC}
.profile-immersive .pro-map-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.profile-immersive .pro-map-cap{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:14px;align-items:center;padding:14px 20px;border-top:1px solid var(--hairline)}
.profile-immersive .pro-map-cap .pin{width:38px;height:38px;border-radius:12px;background:var(--brand-tint);color:var(--brand-ink);display:inline-flex;align-items:center;justify-content:center}
.profile-immersive .pro-map-cap .pin svg{width:18px;height:18px}
.profile-immersive .pro-map-cap .addr{display:flex;flex-direction:column;min-width:0}
.profile-immersive .pro-map-cap b{font-weight:600;color:var(--ink);font-size:16px;line-height:21px}
.profile-immersive .pro-map-cap .record-source{margin:0}
.profile-immersive .pro-map-cap .links{display:flex;flex-direction:column;gap:2px;text-align:right;font-size:14px;line-height:20px;font-weight:500;white-space:nowrap}
.profile-immersive .pro-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.profile-immersive .pro-stat{background:var(--ground);border-radius:20px;box-shadow:0 0 0 1px rgba(14,26,32,.10),0 4px 14px -6px rgba(14,26,32,.10);padding:22px 24px;display:flex;flex-direction:column;gap:4px;min-width:0}
.profile-immersive .pro-stat .k{font-size:14px;line-height:18px;font-weight:500;color:var(--ink-2)}
.profile-immersive .pro-stat .v{font:500 32px/38px var(--font-mono);letter-spacing:-.02em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.profile-immersive .pro-stat .v.txt{font:500 24px/38px var(--font-display);letter-spacing:-.02em}
.profile-immersive .pro-stat .record-source{margin-top:2px}
.profile-immersive .prof-tabs{margin-top:8px}

/* Reviews: one strong Google card, the other sources in a single line */
.profile-immersive .rv-google{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:24px;align-items:center;padding:28px 32px}
.profile-immersive .rv-g-main{display:grid;grid-template-columns:48px minmax(0,1fr);gap:16px;align-items:start}
.profile-immersive .rv-g-main .web-logo{width:48px;height:48px;border-radius:14px;font-size:20px;background:var(--tint-1)}
.profile-immersive .rv-src{font:600 16px/22px var(--font-display);color:var(--ink)}
.profile-immersive .rv-big{display:flex;align-items:baseline;gap:12px;margin:2px 0 4px}
.profile-immersive .rv-big .num{font:500 52px/56px var(--font-mono);letter-spacing:-.03em;color:var(--ink)}
.profile-immersive .rv-big .cnt{font-size:16px;color:var(--ink-2)}
.profile-immersive .rv-big .none{font:500 22px/30px var(--font-display);color:var(--ink-2)}
.profile-immersive .rv-g-links{display:flex;flex-direction:column;gap:12px;align-items:flex-end}
.profile-immersive .rv-photos{font-size:14px;font-weight:500}
.profile-immersive .rv-others{display:flex;flex-wrap:wrap;gap:6px 20px;align-items:baseline;margin-top:16px;font-size:14px;color:var(--ink-2)}
.profile-immersive .rv-others b{color:var(--ink);font-weight:600}
.profile-immersive .rv-others .record-source{margin:0}

/* Service area: map and the Serves list side by side; the home community gets a ring */
.profile-immersive .area-wide{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:28px;align-items:center;padding:24px}
.profile-immersive .area-list-col{display:flex;flex-direction:column;gap:12px}
.profile-immersive .area-list-col .t{font:600 16px/22px var(--font-display);color:var(--ink)}
.profile-immersive .prof-map .dot-ring{fill:none;stroke:var(--brand);stroke-width:1.5;opacity:.45}
.profile-immersive .map-key i.ring{background:transparent;box-shadow:inset 0 0 0 1.5px var(--brand);width:12px;height:12px}

/* Similar pros: typographic cards */
.profile-immersive .sim-card{display:flex;flex-direction:column;gap:8px;padding:22px;min-height:0}
.profile-immersive .sim-card .t{font:600 18px/23px var(--font-display);color:var(--ink)}
.profile-immersive .sim-card .d{font-size:14px;color:var(--ink-2)}
.profile-immersive .sim-g{font-size:14px;line-height:18px;color:var(--ink-2)}
.profile-immersive .sim-g b{font-family:var(--font-mono);font-weight:500;color:var(--ink)}
.profile-immersive .sim-go{margin-top:auto;padding-top:4px;font-size:14px;font-weight:500;color:var(--brand-ink)}

@media (max-width:1000px){
  .profile-immersive .pro-hero-grid{grid-template-columns:1fr;gap:28px}
  .profile-immersive .pro-map{order:-1}
  .profile-immersive .pro-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-immersive .area-wide{grid-template-columns:1fr}
}
@media (max-width:720px){
  .profile-immersive .pro-hero.section{background-size:100% calc(100% - 48px)}
  .profile-immersive .pro-map-frame{height:260px}
  .profile-immersive .pro-id h1{font-size:34px;line-height:1.06}
  .profile-immersive .pro-sub{font-size:16px;line-height:25px}
  .profile-immersive .pro-map-cap{grid-template-columns:auto minmax(0,1fr);padding:12px 16px}
  .profile-immersive .pro-map-cap .links{grid-column:1/-1;flex-direction:row;gap:18px;text-align:left}
  .profile-immersive .pro-acts .btn{flex:1 1 auto;justify-content:center}
  .profile-immersive .pro-stat{padding:16px 18px;border-radius:16px}
  .profile-immersive .pro-stat .v{font-size:26px;line-height:32px}
  .profile-immersive .pro-stat .v.txt{font-size:19px;line-height:32px}
  .profile-immersive .rv-google{grid-template-columns:1fr;padding:22px}
  .profile-immersive .rv-g-links{align-items:flex-start}
  .profile-immersive .rv-big .num{font-size:42px;line-height:46px}
}

/* ---------- Immersive profile v3 (2026-10-01) ----------
   Overview from the Google Business Profile facts; the ladder laid across the record; before-you-call cards;
   the owner card alone in the rail, sticky below the tab bar (nothing below it to cover). */
.profile-immersive .ov-summary{font-size:18px;line-height:30px;color:var(--ink);max-width:760px;margin:0 0 24px}
.profile-immersive .ov-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0;padding:8px 28px}
.profile-immersive .ov-col{padding:20px 0;min-width:0}
.profile-immersive .ov-col:first-child{padding-right:28px}
.profile-immersive .ov-col + .ov-col{border-left:1px solid var(--hairline);padding-left:28px}
.profile-immersive .ov-col h3{font:500 14px/18px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brand-ink);margin:0 0 8px}
.profile-immersive .ov-row{display:grid;grid-template-columns:118px minmax(0,1fr);gap:16px;padding:13px 0;border-top:1px solid var(--hairline);align-items:baseline}
.profile-immersive .ov-col h3 + .ov-row{border-top:0}
.profile-immersive .ov-k{font-size:14px;line-height:22px;color:var(--ink-2)}
.profile-immersive .ov-v{font-size:16px;line-height:22px;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.profile-immersive .ov-sub{display:block;font-size:14px;line-height:19px;color:var(--ink-2);margin-top:2px}
.profile-immersive .muted-v{color:var(--ink-3)}
.profile-immersive .hours{display:grid;grid-template-columns:auto minmax(0,1fr);gap:3px 16px;margin:0;font-variant-numeric:tabular-nums}
.profile-immersive .hours dt{color:var(--ink-2)}
.profile-immersive .hours dd{margin:0;color:var(--ink)}
.profile-immersive .ov-nearby{display:flex;flex-wrap:wrap;gap:4px 16px}
.profile-immersive .ov-nearby a{font-weight:500}
.profile-immersive .ov-src{margin-top:16px}
.profile-immersive .prof-record .ladder{margin-top:20px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px 22px;padding:24px 28px}
.profile-immersive .prof-record .ladder>.eyebrow,.profile-immersive .prof-record .ladder>.record-source{grid-column:1/-1}
.profile-immersive .prof-record .ladder-head{flex-direction:column;align-items:flex-start;gap:2px}
.profile-immersive .byc .card{display:flex;flex-direction:column;gap:8px;padding:22px}
.profile-immersive .byc .card .t{font:600 18px/23px var(--font-display);color:var(--ink)}
.profile-immersive .byc .card .d{font-size:14px;line-height:21px;color:var(--ink-2)}
.profile-immersive .profile-layout .rail{position:relative;top:auto;bottom:auto} /* the base .rail rule carries top:96px for its old sticky role; relative must not inherit that shift, or the rail overruns the footer */
.profile-immersive .profile-layout .owner-card{position:sticky;top:136px;z-index:5;margin-top:0;order:0}
@media (max-width:1000px){
  .profile-immersive .ov-grid{grid-template-columns:1fr;padding:4px 22px}
  .profile-immersive .ov-col:first-child{padding-right:0}
  .profile-immersive .ov-col + .ov-col{border-left:0;padding-left:0;border-top:1px solid var(--hairline)}
  .profile-immersive .prof-record .ladder{grid-template-columns:repeat(2,minmax(0,1fr))}
  .profile-immersive .profile-layout .owner-card{position:static}
}
@media (max-width:720px){
  .profile-immersive .ov-summary{font-size:16px;line-height:26px}
  .profile-immersive .ov-row{grid-template-columns:1fr;gap:2px}
  .profile-immersive .prof-record .ladder{grid-template-columns:1fr;padding:20px}
}

/* Ladder across the record column: unlocks as quiet text, not pills, so four narrow columns stay calm. */
.profile-immersive .prof-record .ladder-unlocks{display:block;font-size:14px;line-height:19px;color:var(--ink-2)}
.profile-immersive .prof-record .ladder-unlocks span{display:inline;background:none;box-shadow:none;padding:0;border-radius:0}
.profile-immersive .prof-record .ladder-unlocks span + span::before{content:" · ";color:var(--ink-3)}
.profile-immersive .prof-record .ladder-unlocks span i{margin-left:4px;font-size:14px;color:var(--ink-3)}
.profile-immersive .prof-record .ladder-state{font-size:14px}

/* Services listed on Google: one block across the overview, quiet pills; the count of any extra links to Google. */
.profile-immersive .ov-services{grid-column:1/-1;border-top:1px solid var(--hairline);padding:18px 0 22px}
.profile-immersive .ov-services h3{font:500 14px/18px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brand-ink);margin:0 0 12px}
.profile-immersive .svc-list{display:flex;flex-wrap:wrap;gap:8px}
.profile-immersive .svc-list span{background:var(--tint-1);color:var(--ink);border-radius:999px;padding:5px 12px;font-size:14px;line-height:18px}
.profile-immersive .svc-more{display:block;margin-top:12px;font-size:14px;line-height:18px;color:var(--ink-2)}

/* Profile v5 (2026-10-02): the business's own Google description leads the overview, quoted and credited; CSDP's summary follows under its own label */
.profile-immersive .ov-eyebrow{display:block;font:500 14px/18px var(--font-sans);letter-spacing:.16em;text-transform:uppercase;color:var(--brand-ink);margin:0 0 10px}
.profile-immersive .ov-desc{margin:0 0 36px;padding:2px 0 2px 22px;border-left:3px solid var(--brand)}
.profile-immersive .ov-desc blockquote{margin:0}
.profile-immersive .ov-desc blockquote p{font-size:18px;line-height:30px;color:var(--ink);max-width:720px;margin:0 0 14px;overflow-wrap:anywhere}
.profile-immersive .ov-desc blockquote p:last-child{margin-bottom:0}
.profile-immersive .ov-desc figcaption{margin-top:14px;font-size:14px;line-height:20px;color:var(--ink-3)}
@media (max-width:720px){
  .profile-immersive .ov-desc{padding-left:16px;margin-bottom:28px}
  .profile-immersive .ov-desc blockquote p{font-size:16px;line-height:26px}
}

/* CSDP v2 — RH-calibrated tuning. Load after csdp-polish.css.
   Values below are measured from reviewharvest.com computed styles, not guessed.
   Identity (teal, sand, blue/amber states, mono for records) is untouched. */

/* ---------- Option toggle: display face ----------
   A (default): keep Manrope, drop to 600 and loosen tracking.
   B: set html[data-display="instrument"] to use Instrument Sans 500 everywhere,
      which is what Review Harvest uses. Load it once:
      <link href="https://fonts.googleapis.com/css2?family=Instrument+Sans:wght@400;500;600;700&display=swap" rel="stylesheet"> */
:root{
  --font-display: "Manrope", "Inter", system-ui, sans-serif;
  --display-weight: 600;
  --display-track: -0.025em;
  --body-track: -0.015em;
  --ease-hover: cubic-bezier(.4,0,.2,1);
  --ease-reveal: cubic-bezier(.16,.6,.3,1);
  --shadow-lg: 0 10px 15px -3px rgba(0,0,0,.10), 0 4px 6px -4px rgba(0,0,0,.10);
  --shadow-xl: 0 20px 25px -5px rgba(0,0,0,.10), 0 8px 10px -6px rgba(0,0,0,.10);
  --ring: 0 0 0 1px rgba(14,26,32,.10);
}
html[data-display="instrument"]{
  --font-display: "Instrument Sans", "Inter", system-ui, sans-serif;
  --font-sans: "Instrument Sans", "Inter", system-ui, sans-serif;
  --display-weight: 500;
  --display-track: -0.02em;
  --body-track: -0.02em;
}

/* ---------- Type ---------- */
body{font-family:var(--font-sans);font-size:16px;line-height:24px;letter-spacing:var(--body-track);color:var(--ink)}
p{color:rgba(14,26,32,.72)}                 /* RH sets body copy at ~70% ink, not a separate gray */
.lead,p.lead{font-size:18px;line-height:28px}
h1,h2,h3,.display{font-family:var(--font-display);font-weight:var(--display-weight);letter-spacing:var(--display-track)}
h1{font-size:48px;line-height:1.02}
h2{font-size:44px;line-height:1.05}
h3{font-size:24px;line-height:1.05}
@media (max-width:720px){h1{font-size:36px}h2{font-size:32px}h3{font-size:22px}}
.eyebrow{font-weight:500;letter-spacing:.2em;font-size:14px}   /* RH eyebrow: 14px, .2em, medium */
.meta,.record-source{letter-spacing:0}
.record-value{letter-spacing:0}             /* mono stays untracked */

/* ---------- Buttons ---------- */
.btn{border-radius:10px;font-weight:500;letter-spacing:var(--body-track);transition:background-color .15s var(--ease-hover),color .15s var(--ease-hover),border-color .15s var(--ease-hover),transform .15s var(--ease-hover)}
.btn-primary,.btn-secondary{height:52px;padding:0 28px;font-size:16px}
.btn-lg{height:56px;padding:0 32px}
.btn-nav,.btn-ghost{height:44px;padding:0 16px;border-radius:10px;font-size:16px;font-weight:400}
.btn-ghost{box-shadow:0 0 0 1px rgba(0,0,0,.10)}
.btn-primary:hover{filter:brightness(.92)}
.btn:active{transform:translateY(1px)}

/* ---------- Cards ---------- */
/* On tint/sand bands: white, radius 24, padding 32, 1px ring at 10% ink, no shadow. */
.band-tint .card,.band-sand .card,.panel .card{background:var(--ground);border-radius:24px;padding:32px;box-shadow:var(--ring)}
/* On white: tint fill, radius 24, padding 32, no ring. */
.card{border-radius:24px;padding:32px}
.card-compact{padding:20px;border-radius:16px}
.panel-dark,.band-deep .card{border-radius:10px;padding:32px}
/* Floating objects: RH shadow-lg on hover, shadow-xl for the one hero object. */
.object{box-shadow:var(--shadow-lg);border-radius:24px}
.hero-panel{box-shadow:var(--shadow-xl);border-radius:24px}
a.card:hover,a.tile:hover{box-shadow:var(--shadow-lg);transform:translateY(-2px)}

/* Hero list rows (the panel you screenshotted): white on mint, ring not shadow, more air */
.hero-panel .row-card{background:var(--ground);border-radius:16px;padding:20px 24px;box-shadow:var(--ring);display:grid;grid-template-columns:1fr auto;gap:16px;align-items:center}
.hero-panel .row-card .name{font:500 18px/24px var(--font-display);letter-spacing:-.02em}
.hero-panel .row-card .meta{display:flex;gap:10px;align-items:center;font-size:14px;color:rgba(14,26,32,.72)}
.hero-panel .row-card .lic{font-family:var(--font-mono);font-size:14px;color:var(--confirmed);display:inline-flex;gap:6px;align-items:center}
.hero-panel .row-card .btn{height:44px;padding:0 20px}

/* Ledger (the sand box you screenshotted): give it air and a hover row */
.ledger{padding:8px 32px;border-radius:24px}
.ledger .record{padding:18px 0;grid-template-columns:150px 1fr auto;column-gap:24px}
.ledger .record:hover{background:rgba(255,255,255,.55);margin-inline:-16px;padding-inline:16px;border-radius:12px}
.ledger .record-label{font-size:16px}
.ledger .record-value{font-size:16px}
.ledger .record-source{font-size:14px;margin-top:6px}

/* ---------- Motion ---------- */
.reveal,.reveal-stagger > *{transition:opacity 1.2s var(--ease-reveal),transform 1.2s var(--ease-reveal);transform:translateY(16px)}
.reveal.in,.reveal-stagger.in > *{transform:none}
.reveal-stagger.in > *:nth-child(2){transition-delay:.08s}
.reveal-stagger.in > *:nth-child(3){transition-delay:.16s}
.reveal-stagger.in > *:nth-child(4){transition-delay:.24s}
.reveal-stagger.in > *:nth-child(n+5){transition-delay:.32s}
.bar-fill{transition-duration:1.2s;transition-timing-function:var(--ease-reveal)}

/* ---------- Chips ---------- */
.chip{height:28px;padding:0 12px;font-size:14px;font-weight:500;letter-spacing:0}
.chip-confirmed svg{width:14px;height:14px}

/* ---------- Images (when they exist) ---------- */
img{max-width:100%;height:auto;display:block;border-radius:inherit}
.media{border-radius:24px;overflow:hidden;box-shadow:var(--ring)}

/* ---------- Site integration (CSDP-side, keeps the measured values above intact) ----------
   The polish layer gates motion behind html.motion-ready and per-child .in; the reveal rule above
   would otherwise leave un-revealed elements translated. Static fallback and reduced motion stay static. */
html:not(.motion-ready) .reveal,html:not(.motion-ready) .reveal-stagger > *{transform:none;transition:none}
.motion-ready .reveal-stagger > .in{transform:none}
@media (prefers-reduced-motion:reduce){.reveal,.reveal-stagger > *{transform:none;transition:none}}
/* Hero rows in the live list carry both the preview-* and row-card class sets. */
.hero-panel .row-card .meta .chip{display:none}

/* ---- UI/UX audit fixes, 2026-10-02 ---- */
/* Tertiary grey passes 4.5:1 on the tint panels too (was 4.2 to 4.3:1); light theme only */
:root:not([data-theme="dark"]){--ink-3:#5B6A72}
/* Record numbers that aren't links are ink, not link blue */
.hero-panel .row-card .lic{color:var(--ink-2)}
/* Heading hierarchy: a page title is never lighter than its section titles */
.csdp h1{font-weight:600}
.csdp h2{font-weight:600}

/* CSDP brand layer, "the local record" (2026-10-03, replaces the guide-sign layer archived in build/lib/archive/).
   Loads last, after csdp-tune.css. The Review Harvest bones stay exactly as tuned: Instrument Sans, medium-weight
   display, one filled phrase in the headline, tint and sand bands, 10px buttons, the reveal motion.

   What this layer adds is the part a template cannot fake:
   - the place: real photographs of Oceanside Pier (CC0) in the hero and the closing band, each captioned;
   - the people: credited trade photographs on the four busiest trades (the same files the live site uses);
   - the record: named public sources under the hero, a dated line at the top of every page, and the sample
     license record shown under the real business's name;
   - the masthead: the live site's Newsreader wordmark with a pier seal, so v2 reads as the same publication.
   And it removes what read as generated: double-ringed "pillow" frames, keyline plates, cards inside cards.
   Never: stock photos shown as listed businesses, agency logos or seals, gradients as decoration, emoji. */

:root{
  --font-serif:"Newsreader", Georgia, "Times New Roman", serif;
  --font-mono:"IBM Plex Mono", ui-monospace, Menlo, monospace;
  --ring:0 0 0 1px rgba(14,26,32,.10);
  --lift:0 1px 2px rgba(14,26,32,.05), 0 12px 32px -12px rgba(14,26,32,.18);
  --mark-plate:var(--brand);
  --mark-ink:#FFFFFF;
}

/* ---------- Type: the tuned RH grammar, with records in a typewriter-plain mono ---------- */
body.csdp{font-kerning:normal;text-rendering:optimizeLegibility}
.csdp h1{font-size:52px;line-height:1.04}
@media (max-width:720px){.csdp h1{font-size:38px}}
.csdp .record-value,.csdp .mono{font-family:var(--font-mono);letter-spacing:-.01em}
/* Counts and totals are set in the display face with even-width figures; the mono is for record values only. */
.csdp .num{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.csdp :focus-visible{outline:3px solid var(--brand);outline-offset:2px}
::selection{background:var(--brand-tint)}

/* Eyebrows: small, tracked, brand. One per section at most. */
.csdp .eyebrow,.csdp .ov-eyebrow{font-family:var(--font-sans);font-weight:600;font-size:14px;line-height:18px;letter-spacing:.14em;text-transform:uppercase}

/* The headline phrase: one filled block, as on the reference. No keyline, no plate. */
/* An inline fill is as tall as the font's own box, so a headline that carries one needs room between lines. */
.csdp h1:has(.hl){line-height:1.14}
.csdp .hl{background:var(--brand);color:#fff;padding:.02em .22em .06em;border-radius:.16em;-webkit-box-decoration-break:clone;box-decoration-break:clone}

/* ---------- Top line: what this is and when the records were last read ---------- */
.topline{background:var(--brand-deep);color:var(--brand-mist);font-size:14px;line-height:18px}
.topline .wrap{display:flex;justify-content:space-between;align-items:center;gap:16px;min-height:38px;padding-block:8px}
.topline b{color:#fff;font-weight:500}
.topline a{color:#fff;text-decoration:underline;text-decoration-color:rgba(255,255,255,.4);text-underline-offset:3px}
.topline a:hover{text-decoration-color:#fff}
.topline .tl-date{white-space:nowrap}
@media (max-width:820px){.topline .tl-what{display:none}.topline .wrap{justify-content:center}}

/* ---------- Masthead ---------- */
/* The logo (Josh's brand sheet, 2026-10-03): one SVG, sized by height; the file carries its own colours. */
.logo{display:inline-flex;align-items:center}
.logo-img{display:block;height:34px;width:auto;max-width:none}
.csdp .ftr .logo-img{width:270px;height:auto;max-width:100%} /* RH's footer logo row: the logo 270 px wide */
@media (max-width:720px){.logo-img{height:30px}}
.csdp .brand{gap:10px}
.csdp .plate .logo{opacity:.5}
.csdp .plate .logo-img{height:26px}
.csdp .nav a,.csdp .nav button{font-weight:500}

/* ---------- One surface per object: no frames around frames ---------- */
.csdp .object-frame{padding:0;background:transparent;border-radius:0}
.csdp .object-frame > .object{border-radius:20px}
.csdp .object{box-shadow:var(--ring)}
.csdp .facts.object,.csdp .trade-home.object,.csdp .grid-find.object{box-shadow:none;border-radius:0;background:transparent}
.csdp .card{border-radius:20px}
.csdp .card-compact{border-radius:14px}
.csdp a.card{transition:box-shadow .2s var(--ease-hover),transform .2s var(--ease-hover)}
.csdp a.card:hover{box-shadow:var(--ring),var(--lift);transform:translateY(-2px)}
.csdp .btn-primary{box-shadow:0 1px 0 rgba(255,255,255,.14) inset,0 1px 2px rgba(10,50,53,.35)}
.csdp .btn-secondary{background:var(--ground);color:var(--ink);box-shadow:inset 0 0 0 1px rgba(14,26,32,.16)}
.csdp .btn-secondary:hover{background:var(--tint-1);box-shadow:inset 0 0 0 1px rgba(14,26,32,.22)}
.csdp .btn-nav{background:var(--ink);color:#fff}
.csdp .pill .n{font-family:var(--font-mono);font-size:14px}
/* The compare table's "not on record" dash was amber at 3.9:1 on white; this amber reads at 6:1. */
.csdp .cmp .na{color:#8F5607}

/* ---------- Home hero: the copy and the find form beside the place, shown whole ---------- */
@media (min-width:1024px){.csdp .hero .grid-2{grid-template-columns:minmax(0,1fr) minmax(0,1.04fr);gap:72px;align-items:center}}
.csdp .hero{padding:56px 0 72px}
.csdp .hero-copy h1{max-width:13ch}
.csdp .hero-photo{margin:0;position:relative;min-width:0;border-radius:24px;overflow:hidden;aspect-ratio:4/3.1;background:var(--tint-1);box-shadow:0 1px 2px rgba(14,26,32,.06),0 32px 64px -28px rgba(10,50,53,.38)}
.csdp .hero-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 24%;border-radius:0}
.csdp .hero-photo figcaption{position:absolute;left:16px;bottom:16px;background:rgba(10,50,53,.72);color:#fff;font-size:14px;line-height:18px;padding:6px 11px;border-radius:999px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}
/* The find form is one white card: two fields and the button on a row, the optional note under them. */
.csdp .hero .hero-form{background:var(--ground);padding:14px;border-radius:18px;box-shadow:var(--ring),0 18px 40px -22px rgba(10,50,53,.28);gap:10px;margin-top:8px}
.csdp .hero .hero-form .field{font-size:14px;font-weight:600;color:var(--ink-2);gap:6px}
.csdp .hero .hero-form select,.csdp .hero .hero-form input[type=text]{height:50px;border-radius:12px}
.csdp .hero .hero-form .btn{height:54px;font-size:18px;border-radius:12px}
.csdp .hero .proof-line{margin-top:4px}
@media (max-width:1023px){.csdp .hero{padding:28px 0 44px}.csdp .hero-photo{aspect-ratio:16/10}}

/* ---------- The live slice: three real listings for the chosen trade and city ---------- */
.csdp .slice-sec{padding-block:64px}
.csdp .slice-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap;margin-bottom:24px}
.csdp .slice-head .eyebrow{display:block;margin-bottom:8px}
.csdp .slice-title{font-size:32px;line-height:1.1;margin:0;display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.csdp .slice-count{font:500 14px/20px var(--font-mono);letter-spacing:0;color:var(--brand-ink);background:var(--ground);padding:5px 12px;border-radius:999px;box-shadow:var(--ring)}
.csdp .slice-head .btn{height:46px;padding:0 20px}
.csdp .slice .slice-rows{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;flex:none}
.csdp .slice-card{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:4px 16px;background:var(--ground);border-radius:18px;padding:22px;box-shadow:var(--ring);transition:box-shadow .2s var(--ease-hover),transform .2s var(--ease-hover)}
.csdp .slice-card:hover{box-shadow:var(--ring),var(--lift);transform:translateY(-2px)}
.csdp .slice-card .av{grid-row:1/3;align-self:start}
.csdp .slice-card .sc-body{display:flex;flex-direction:column;gap:6px;min-width:0}
.csdp .slice-card .name{font:600 19px/24px var(--font-display);letter-spacing:-.015em;color:var(--ink);text-decoration:none}
.csdp .slice-card .name::after{content:"";position:absolute;inset:0;border-radius:18px}
.csdp .slice-card:hover .name{color:var(--brand-ink)}
.csdp .sc-meta{display:flex;flex-wrap:wrap;gap:2px 10px;font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp .sc-meta span:empty{display:none}
.csdp .sc-meta span + span::before{content:"· ";color:var(--ink-3)}
.csdp .sc-lic{display:flex;align-items:center;gap:6px;font:500 14px/18px var(--font-mono);letter-spacing:-.01em;color:var(--ink-2)}
.csdp .sc-lic svg{width:15px;height:15px;flex:none;color:var(--confirmed)}
.csdp .slice-card .rate{margin-top:4px}
.csdp .sc-acts{grid-column:1/-1;grid-row:3;align-self:end;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;padding-top:14px;border-top:1px solid var(--hairline);position:relative;z-index:1}
.csdp .sc-acts .btn{height:40px;padding:0 20px;font-size:16px}
.csdp .sc-view{font-size:14px;font-weight:600;color:var(--brand-ink);text-decoration:none}
.csdp .slice .preview-empty{grid-column:1/-1;background:var(--ground);border-radius:18px;padding:28px;box-shadow:var(--ring)}
.csdp .slice-foot{margin:18px 0 0;font-size:14px;line-height:20px;color:var(--ink-2);display:flex;flex-wrap:wrap;gap:4px 12px;justify-content:space-between}
.csdp .slice-foot .visual-source{margin:0;color:var(--ink-3)}
.csdp .slice[aria-busy=true] .slice-rows{opacity:.55;transition:opacity .15s}
@media (max-width:900px){.csdp .slice .slice-rows{grid-template-columns:1fr}.csdp .slice-sec{padding-block:40px}.csdp .slice-title{font-size:26px}}

/* ---------- Initials (where a competitor shows a logo) and the Google rating ---------- */
.csdp .av{display:inline-flex;align-items:center;justify-content:center;flex:none;width:56px;height:56px;border-radius:16px;font:600 20px/1 var(--font-display);letter-spacing:.01em;color:var(--brand-deep);background:var(--brand-tint)}
.csdp .av-1{background:#F0E4CF;color:#5A3D0B}
.csdp .av-2{background:var(--confirmed-tint);color:#163F80}
.csdp .av-3{background:var(--brand-deep);color:#fff}
.csdp .av-lg{width:64px;height:64px;border-radius:18px;font-size:24px} /* 24/600, on RH's scale (2026-10-12; was 22) */
.csdp .av-xl{width:88px;height:88px;border-radius:24px;font-size:30px}
.csdp .rate{display:inline-flex;align-items:center;gap:9px;font-size:14px;line-height:18px;color:var(--ink-2);white-space:nowrap}
.csdp .rate b{display:inline-flex;align-items:center;justify-content:center;min-width:40px;height:28px;padding:0 8px;border-radius:8px;background:var(--ink);color:#fff;font:600 16px/1 var(--font-display);font-variant-numeric:tabular-nums}

/* ---------- Sources: named, under the hero, where the reference shows customer logos ---------- */
.csdp .srcs{padding-block:0 72px}
.csdp .srcs-k{margin:0 0 18px;text-align:center;font-size:14px;line-height:20px;color:var(--ink-3)}
.csdp .srcs-list{list-style:none;margin:0;padding:22px 0;display:flex;flex-wrap:wrap;justify-content:space-between;gap:16px 28px;border-block:1px solid var(--hairline)}
.csdp .srcs-list li{display:grid;gap:1px;min-width:0}
.csdp .srcs-list b{font-family:var(--font-serif);font-weight:600;font-size:18px;line-height:24px;letter-spacing:-.005em;color:var(--ink)}
.csdp .srcs-list span{font-size:14px;line-height:18px;color:var(--ink-3)}
@media (max-width:900px){.csdp .srcs-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.csdp .srcs{padding-bottom:48px}}

/* ---------- HOW IT WORKS band: eyebrow, headline, three columns (the reference's tinted band) ---------- */
.csdp .how .sec-head{margin-bottom:48px}
.csdp .how-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:40px;counter-reset:none}
.csdp .how-steps li{display:block;padding:0;border:0;background:transparent}
.csdp .how-steps .n{display:inline-flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:14px;background:var(--brand);color:#fff;font:600 20px/1 var(--font-display);margin-bottom:20px}
.csdp .how-steps h3{font-size:22px;line-height:28px;margin:0 0 8px}
.csdp .how-steps p{font-size:16px;line-height:25px;margin:0;max-width:34ch}
@media (max-width:820px){.csdp .how-steps{grid-template-columns:1fr;gap:28px}.csdp .how .sec-head{margin-bottom:32px}}

/* ---------- The three numbers ---------- */
.csdp .strip.section-sub{padding-top:72px;padding-bottom:0}
.csdp .strip > .wrap{width:100%;box-sizing:border-box}
.csdp .facts{gap:0}
.csdp .facts .fact,.csdp .band-tint .facts .fact{background:transparent;box-shadow:none;border-radius:0;padding:4px 32px;text-align:left;display:block}
.csdp .facts .fact:first-child{padding-left:0}
.csdp .facts .fact + .fact{border-left:1px solid var(--hairline)}
.csdp .facts .fact .n{font-family:var(--font-display);font-weight:500;font-size:60px;line-height:1;letter-spacing:-.03em;color:var(--brand-ink)}
.csdp .facts .fact .l{font-size:18px;line-height:24px;font-weight:600;color:var(--ink);margin-top:10px}
.csdp .facts .fact .s{font-size:14px;line-height:20px;color:var(--ink-3);margin-top:2px}
@media (max-width:820px){
  .csdp .strip.section-sub{padding-top:40px}
  .csdp .facts{gap:20px}
  .csdp .facts .fact,.csdp .facts .fact:first-child{padding:0;display:grid;grid-template-columns:104px 1fr;gap:0 16px;align-items:center}
  .csdp .facts .fact + .fact{border-left:0;border-top:1px solid var(--hairline);padding-top:20px}
  .csdp .facts .fact .n{font-size:40px;grid-row:1/3}
  .csdp .facts .fact .l{margin-top:0}
}

/* ---------- The record: four reasons beside one real listing ---------- */
.csdp .trust .sec-head{margin-bottom:56px}
.csdp .trust-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:32px;align-items:stretch}
.csdp .feat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.csdp .feat{background:var(--tint-1);border-radius:20px;padding:28px 26px 26px;display:flex;flex-direction:column;align-items:flex-start}
.csdp .feat .icon-tile{width:44px;height:44px;border-radius:12px;background:var(--ground);color:var(--brand-ink);box-shadow:var(--ring);margin-bottom:22px}
.csdp .feat .icon-tile svg{width:22px;height:22px}
.csdp .feat h3{font-size:19px;line-height:25px;margin:0 0 8px;letter-spacing:-.015em}
.csdp .feat p{font-size:16px;line-height:23px;margin:0}
.csdp .rec-card{background:var(--ground);border-radius:24px;box-shadow:var(--ring),0 2px 4px rgba(14,26,32,.04),0 40px 72px -36px rgba(10,50,53,.42);padding:28px 30px 22px;display:flex;flex-direction:column;min-width:0}
.csdp .rec-head{display:flex;align-items:center;gap:16px;padding-bottom:22px;border-bottom:1px solid var(--hairline);flex-wrap:wrap}
.csdp .rec-id{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.csdp .rec-name{font:500 24px/30px var(--font-display);letter-spacing:-.02em;color:var(--ink);text-decoration:none} /* RH's card title, 24/500 (2026-10-12; was 22/600) */
.csdp .rec-name:hover{color:var(--brand-ink)}
.csdp .rec-sub{font-size:16px;line-height:22px;color:var(--ink-2)}
.csdp .rec-rows{display:flex;flex-direction:column}
.csdp .rec-row{display:grid;grid-template-columns:132px minmax(0,1fr) auto;gap:16px;align-items:center;padding:16px 0;border-bottom:1px solid var(--hairline)}
.csdp .rec-k{font-size:16px;line-height:22px;font-weight:600;color:var(--ink)}
.csdp .rec-v .record-value{font:500 16px/22px var(--font-mono);letter-spacing:-.01em;color:var(--ink);white-space:normal}
.csdp .rec-v .record-source{font:400 14px/19px var(--font-sans);color:var(--ink-3);margin-top:2px}
.csdp .rec-row .chip{justify-self:end}
.csdp .rec-foot{display:flex;justify-content:space-between;align-items:center;gap:8px 16px;flex-wrap:wrap;padding-top:18px;margin-top:auto;font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp .rec-foot a{font-weight:600;color:var(--brand-ink);white-space:nowrap}
@media (max-width:1000px){.csdp .trust-grid{grid-template-columns:1fr}.csdp .trust .sec-head{margin-bottom:36px}}
@media (max-width:560px){
  .csdp .feat-grid{grid-template-columns:1fr}
  .csdp .rec-card{padding:22px 20px 18px;border-radius:20px}
  .csdp .rec-row{grid-template-columns:minmax(0,1fr) auto;gap:4px 12px}
  .csdp .rec-k{grid-column:1/-1}
}
/* Older pages still use the benefit rows and the ledger panel. */
.csdp .benefit{grid-template-columns:40px 1fr;gap:16px;padding:20px 0}
.csdp .benefit .icon-tile{width:40px;height:40px}
.csdp .benefit h4{font-size:18px;line-height:24px;font-weight:600;letter-spacing:-.01em}
.csdp .benefit p{font-size:16px;line-height:23px;margin-top:4px}
.csdp .panel:has(> .ledger){background:var(--tint-2);box-shadow:none;border-radius:20px}
.csdp .panel > .ledger{background:transparent;padding:0;border-radius:0}
.csdp .panel > .ledger .record{border-top-color:rgba(14,26,32,.10)}
.csdp .panel > .ledger .record:first-child{border-top:1px solid rgba(14,26,32,.10)}
.csdp .panel > .ledger .record:hover{background:transparent;margin-inline:0;padding-inline:0}
.csdp .panel:has(> .ledger) .chip-neutral{background:var(--ground)}
/* The sample record carries the real business's name. */
.csdp .ledger-id{display:flex;justify-content:space-between;align-items:baseline;gap:12px;flex-wrap:wrap}
.csdp .ledger-id a{font:600 20px/26px var(--font-display);letter-spacing:-.015em;color:var(--ink)}
.csdp .ledger-id a:hover{color:var(--brand-ink)}
.csdp .ledger-id span{font-size:14px;line-height:20px;color:var(--ink-3)}
.csdp .ledger{border-radius:16px}

/* ---------- Trades: the four busiest carry a photograph; the rest an icon ---------- */
.csdp .trade-home.object{background:transparent;box-shadow:none;padding:0;overflow:visible}
.csdp .trade-home a.trade-card{background:var(--ground);border-radius:16px;box-shadow:var(--ring);padding:18px 20px;min-height:0;display:grid;grid-template-columns:auto 1fr;gap:0 14px;align-content:center;align-items:center;overflow:hidden}
.csdp .trade-home a.trade-card .icon-tile{grid-row:1/3}
.csdp .trade-home a.trade-card{text-align:left}
.csdp .trade-home a.trade-card .n{font:600 18px/24px var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.csdp .trade-home a.trade-card .c{font-size:14px;line-height:20px;color:var(--ink-3)}
.csdp :is(.trade-home,.grid-find) a.trade-card.has-photo{display:flex;flex-direction:column;align-items:stretch;gap:0;padding:0 0 18px}
.csdp :is(.trade-home,.grid-find) a.trade-card.has-photo .ph{display:block;aspect-ratio:16/10;overflow:hidden;background:var(--tint-1);margin-bottom:16px}
.csdp :is(.trade-home,.grid-find) a.trade-card.has-photo .ph img{width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform .5s var(--ease-reveal)}
.csdp :is(.trade-home,.grid-find) a.trade-card.has-photo:hover .ph img{transform:scale(1.04)}
.csdp :is(.trade-home,.grid-find) a.trade-card.has-photo .n,.csdp :is(.trade-home,.grid-find) a.trade-card.has-photo .c{padding-inline:20px}
.csdp :is(.trade-home,.grid-find) a.trade-card.has-photo .n{font-size:19px;line-height:26px}
.csdp .grid-find{gap:16px}
.csdp .grid-find a.trade-card.has-photo{border-radius:16px;overflow:hidden;min-height:0;text-align:left;justify-content:flex-start}
.csdp .grid-find a.trade-card.has-photo .n{font:600 18px/24px var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.csdp .grid-find a.trade-card.has-photo .c{font-size:14px;line-height:19px;color:var(--ink-3)}
.csdp .photo-credit{font-size:14px;line-height:19px;color:var(--ink-3);margin:12px 0 0}
.csdp .photo-credit a{color:inherit;text-decoration:underline;text-underline-offset:2px}

/* Emergency tiles and the find grid: quiet cards, a brand edge on hover. */
.csdp a.em-card,.csdp .grid-find a.card{background:var(--ground);border-radius:14px;box-shadow:var(--ring)}
.csdp a.em-card:hover,.csdp .grid-find a.card:hover{box-shadow:inset 0 0 0 1.5px var(--brand),var(--lift)}

/* ---------- Listing cards: each one has to earn the click ---------- */
.csdp .list.object,.csdp .list{background:transparent;box-shadow:none;padding:0;border-radius:0;gap:14px;overflow:visible}
.csdp .row.pro-card{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) 208px;gap:6px 22px;align-items:start;background:var(--ground);border:0;border-radius:20px;padding:26px 26px 24px;box-shadow:var(--ring);transition:box-shadow .2s var(--ease-hover),transform .2s var(--ease-hover)}
.csdp .row.pro-card:first-child{border-top:0}
.csdp .row.pro-card:hover{background:var(--ground);box-shadow:inset 0 0 0 1.5px var(--brand),var(--lift);transform:translateY(-2px)}
.csdp .row.pro-card.is-hidden{display:none}
.csdp .pro-card > .av{width:64px;height:64px;border-radius:18px;font-size:22px}
.csdp .pro-card .body{gap:10px}
.csdp .pc-top{display:flex;align-items:flex-start;justify-content:space-between;gap:10px 20px;flex-wrap:wrap}
.csdp .pro-card .row-h{margin:0;min-width:0;flex:1 1 300px}
.csdp .pro-card .name{font:600 23px/29px var(--font-display);letter-spacing:-.02em;color:var(--ink);text-decoration:none}
.csdp .pro-card .name::after{content:"";position:absolute;inset:0;border-radius:20px}
.csdp .pro-card:hover .name{color:var(--brand-ink)}
.csdp .pro-card .rate{margin-top:2px}
.csdp .pro-card .desc{font-size:16px;line-height:22px;color:var(--ink-2)}
.csdp .pc-facts{list-style:none;margin:2px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px 20px}
.csdp .pc-facts li{display:inline-flex;align-items:center;gap:7px;font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp .pc-facts li b{font-weight:600;color:var(--ink)}
.csdp .pc-facts svg{width:17px;height:17px;flex:none;color:var(--ink-3)}
.csdp .pc-facts li.ok svg{color:var(--confirmed)}
.csdp .pc-quote{margin:4px 0 0;padding-left:14px;border-left:2px solid var(--brand-tint);font-size:16px;line-height:23px;color:var(--ink-2);max-width:68ch}
.csdp .pc-quote span{display:block;font-size:14px;line-height:18px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.csdp .pro-card .card-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px;font-size:14px}
.csdp .pro-card .card-tags span:not(.sr-only){display:inline-flex;align-items:center;height:28px;padding:0 11px;border-radius:999px;background:var(--tint-1);color:var(--ink);font-weight:500}
.csdp .pro-card .lic-warn{position:relative;z-index:1;margin-top:4px}
.csdp .pro-card .acts{position:relative;z-index:1;display:flex;flex-direction:column;gap:10px;min-width:0;align-self:center}
.csdp .pro-card .acts .btn{height:46px;justify-content:center;gap:8px;font-size:16px;padding:0 14px;white-space:nowrap}
.csdp .pro-card .acts .btn svg{width:16px;height:16px}
.csdp .pro-card .cb{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:2px 0 0;font-size:14px;color:var(--ink-2);cursor:pointer}
.csdp .pro-card .cb input{width:17px;height:17px;accent-color:var(--brand)}
@media (max-width:900px){
  .csdp .row.pro-card{grid-template-columns:52px minmax(0,1fr);padding:20px 18px;gap:6px 14px;border-radius:18px}
  .csdp .pro-card > .av{width:52px;height:52px;border-radius:15px;font-size:19px}
  .csdp .pro-card .name{font-size:20px;line-height:26px}
  .csdp .pro-card .acts{grid-column:1/-1;flex-direction:row;flex-wrap:wrap;align-items:center;margin-top:10px}
  .csdp .pro-card .acts .btn{flex:1 1 150px}
  .csdp .pro-card .cb{flex:1 1 100%;justify-content:flex-start;display:inline-flex}
}

/* ---------- Closing band: the pier at sunset under the brand's dark ---------- */
.csdp .band-deep:has(.home-pro-cta){background:linear-gradient(90deg,var(--brand-deep) 0%,rgba(10,50,53,.95) 36%,rgba(10,50,53,.62) 100%),url(/assets/oceanside-pier-sunset-cc0.webp) 50% 48%/cover no-repeat var(--brand-deep)}
.csdp .band-deep .cta-band{padding:8px 0!important;border-radius:0;box-shadow:none}
.csdp .cta-band .card-float{border-radius:16px;box-shadow:0 24px 48px -16px rgba(0,0,0,.45)}
.csdp .cta-band .card-float .record-value{font-family:var(--font-sans);font-size:16px!important;line-height:24px!important;letter-spacing:var(--body-track)}
.csdp .band-credit{margin:28px 0 0;font-size:14px;line-height:18px;color:var(--brand-mist)}

/* Pro Desk funnel: the amber gap number sits on the dark band, so it takes the light amber. */
.csdp .fn-funnel .fn-bar.is-gap b{color:#F0B75A}

/* ---------- Photographs: a place per community, the work per trade ---------- */
.csdp .hero-fig{margin:0;min-width:0}
.csdp .hero-fig img{width:100%;height:auto;aspect-ratio:16/10;object-fit:cover;border-radius:16px;background:var(--tint-1)}
.csdp .hero-fig figcaption{margin-top:8px;font-size:14px;line-height:19px;color:var(--ink-3)}
.csdp .hero-fig figcaption .cr::before{content:"· "}
.csdp .hero-fig figcaption a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.csdp .hero-side{display:grid;gap:20px;min-width:0}
@media (min-width:1001px){.csdp .city-hero:has(.hero-fig){grid-template-columns:minmax(0,1fr) 400px;gap:56px;align-items:start}}
@media (max-width:1000px){.csdp .city-hero .hero-fig{max-width:560px}}
/* Community tiles on /find/. */
.csdp .place-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:16px}
.csdp a.place-tile{display:flex;flex-direction:column;gap:10px;color:var(--ink);text-decoration:none;min-width:0}
.csdp a.place-tile .ph{display:block;aspect-ratio:16/10;border-radius:12px;overflow:hidden;background:var(--tint-1)}
.csdp a.place-tile .ph img{width:100%;height:100%;object-fit:cover;border-radius:0;transition:transform .5s var(--ease-reveal)}
.csdp a.place-tile:hover .ph img{transform:scale(1.05)}
.csdp a.place-tile .n{font:600 16px/20px var(--font-display);letter-spacing:-.01em}
.csdp a.place-tile:hover .n{color:var(--brand-ink)}
@media (max-width:1100px){.csdp .place-grid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media (max-width:720px){.csdp .place-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 12px}}
/* Photo credits: folded under a grid, open on /facts/. */
.csdp details.credits{margin-top:16px;margin-bottom:18px;font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp details.credits summary{cursor:pointer;width:max-content;color:var(--ink-3);text-decoration:underline;text-underline-offset:2px}
.csdp details.credits ul,.csdp .credits-open ul{margin:8px 0 14px;padding-left:18px;display:grid;gap:4px}
.csdp details.credits p,.csdp .credits-open p{margin:10px 0 0;font-size:inherit;line-height:inherit;max-width:820px}
.csdp .credits-open{font-size:14px;line-height:22px;color:var(--ink-2);max-width:900px}
.csdp details.credits a,.csdp .credits-open a{color:inherit;text-decoration:underline;text-underline-offset:2px}
.csdp details.credits b,.csdp .credits-open b{font-weight:600;color:var(--ink)}

/* ---------- City and trade pages: the title sits close to the list it titles ---------- */
/* The dated facts under a city or trade title are a plain line, not a boxed object. */
.csdp .cityblock,.csdp .cityblock.object{background:transparent;box-shadow:none;border-radius:0;padding:0;overflow:visible;display:flex;flex-wrap:wrap;gap:6px 20px;font-size:14px;line-height:20px}
.csdp .page-content > .crumbs + .section{padding-top:40px}
.csdp .page-content > .section:has(> .city-hero){padding-bottom:56px}
@media (max-width:720px){.csdp .page-content > .crumbs + .section{padding-top:24px}.csdp .page-content > .section:has(> .city-hero){padding-bottom:36px}}
/* Big numerals are set in the display face; the mono is kept for record values (license numbers, dates read). */
.csdp .pro-stat .v,.csdp .status-total strong{font-family:var(--font-display);font-weight:500;letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.csdp .pro-id > .eyebrow{letter-spacing:.1em}
.csdp .prof-permits .row-head .meta{white-space:normal;min-width:0}
/* The ladder's "coming" chips inherited a page-level .coming rule (24px top margin, centered); keep them chips. */
.csdp .ladder-unlocks span.coming{margin-top:0;font:inherit;text-align:left;color:inherit}
.csdp .pro-stat{border-radius:14px}
.csdp .owner-card{border-radius:16px}

/* ---------- Profile v6 (2026-10-03): the business first, its record as the proof ----------
   The anatomy follows the directories homeowners already use: initials where a logo would be, the name, the rating,
   then a contact card that stays in view. Sections sit flat on white with one rule between them; nothing is boxed
   inside another box. Every value keeps its source line. */

/* Hero: identity beside Google's map of the listing */
.csdp .pv6 .pro-hero.section{background:linear-gradient(var(--tint-1),var(--tint-1)) top left/100% calc(100% - 62px) no-repeat}
.csdp .pv6 .pro-hero-grid{grid-template-columns:minmax(0,1fr) minmax(0,1.06fr);gap:64px;align-items:center;padding-bottom:44px}
.csdp .pv6 .pro-id{gap:20px}
.csdp .pv6 .pro-name{display:grid;grid-template-columns:auto minmax(0,1fr);gap:22px;align-items:center}
.csdp .pv6 .pro-name .av-xl{box-shadow:0 0 0 4px var(--ground),0 14px 28px -14px rgba(14,26,32,.35)}
.csdp .pv6 .pro-name .eyebrow{display:block;margin:0 0 8px;letter-spacing:.12em}
.csdp .pv6 .pro-id h1{font-size:44px;line-height:1.06;letter-spacing:-.03em;font-weight:500;margin:0;text-wrap:balance}
.csdp .pv6 .pro-rateline{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}
.csdp .pv6 .pro-rateline .rate{font-size:16px;line-height:22px;color:var(--ink);gap:11px}
.csdp .pv6 .pro-rateline .rate b{min-width:50px;height:34px;border-radius:10px;font-size:18px}
.csdp .pv6 .pro-rateline .chips{display:inline-flex;flex-wrap:wrap;gap:8px}
.csdp .pv6 .pro-rateline .chip{height:30px}
.csdp .pv6 .pro-sub{font-size:18px;line-height:27px;color:var(--ink-2);max-width:560px}
.csdp .pv6 .pro-acts{gap:12px}
.csdp .pv6 .pro-acts .btn{height:52px;padding:0 22px;font-size:16px}
.csdp .pv6 .pro-acts .btn-primary{padding:0 26px}
.csdp .pv6 .pro-quiet{gap:6px 24px}
.csdp .pv6 .prof-contact{font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp .pv6 .pro-map{border-radius:24px;box-shadow:var(--ring),0 28px 56px -28px rgba(14,26,32,.34)}
.csdp .pv6 .pro-map-frame{height:400px}

/* The record facts: one bar, four columns */
.csdp .pv6 .pro-stats{gap:0;background:var(--ground);border-radius:20px;box-shadow:var(--ring),var(--lift);overflow:hidden}
.csdp .pv6 .pro-stat{background:none;box-shadow:none;border-radius:0;padding:22px 28px 24px;border-left:1px solid var(--hairline);gap:2px}
.csdp .pv6 .pro-stat:first-child{border-left:0}
.csdp .pv6 .pro-stat .k{font-size:14px;line-height:18px;font-weight:500;color:var(--ink-2)}
.csdp .pv6 .pro-stat .v{font-size:30px;line-height:38px}
.csdp .pv6 .pro-stat .v.txt{font-size:24px;line-height:38px}

/* Section tabs */
.csdp .pv6 .prof-tabs{margin-top:20px}
.csdp .pv6 .tabs-in{gap:30px}
.csdp .pv6 .prof-tabs a{height:54px;font-size:16px;line-height:22px}
.csdp .pv6 .prof-tabs a[aria-current]{font-weight:600;border-bottom-color:var(--brand)}

/* Layout: flat sections in the main column, the contact card in view beside them */
.csdp .pv6 .profile-layout{grid-template-columns:minmax(0,1fr) 372px;gap:64px;padding-top:0}
.csdp .pv6 .profile-layout > [data-main-content]{gap:0}
.csdp .pv6 .profile-layout > [data-main-content] > .section{padding:48px 0;border-radius:0;background:transparent;border-top:1px solid var(--hairline);scroll-margin-top:118px}
.csdp .pv6 .profile-layout > [data-main-content] > .section:first-child{border-top:0;padding-top:40px}
.csdp .pv6 .section h2{font:500 30px/36px var(--font-display);letter-spacing:-.025em;color:var(--ink);text-wrap:balance}
.csdp .pv6 .row-head.intro{margin:0 0 24px;gap:8px 20px;align-items:baseline}
.csdp .pv6 .row-head.intro > a{font-size:16px}
.csdp .pv6 .section .meta{font-size:14px;line-height:20px;color:var(--ink-2);white-space:normal}
.csdp .pv6 :is(.ov-eyebrow,.highlights h3,.ov-col h3,.pm-grid h3){display:block;font:600 14px/18px var(--font-sans);letter-spacing:.14em;text-transform:uppercase;color:var(--brand-ink);margin:0 0 14px}

/* About: the business's own words, quoted and credited, then the facts a homeowner scans first */
.csdp .pv6 .ov-desc{margin:0 0 40px;padding:28px 32px 24px;border-left:0;border-radius:20px;background:var(--tint-2)}
.csdp .pv6 .ov-desc .ov-eyebrow{color:#6B4E16;margin:0 0 12px}
.csdp .pv6 .ov-desc blockquote p{font:400 19px/31px var(--font-serif);letter-spacing:-.003em;color:var(--ink);max-width:none;margin:0 0 14px}
.csdp .pv6 .ov-desc blockquote p:last-child{margin-bottom:0}
.csdp .pv6 .ov-desc figcaption{margin-top:16px;padding-top:14px;border-top:1px solid rgba(14,26,32,.10);font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp .pv6 .highlights{margin:0 0 40px}
.csdp .pv6 .highlights ul{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 28px}
.csdp .pv6 .highlights li{gap:14px;align-items:flex-start}
.csdp .pv6 .highlights .hl-ic{width:44px;height:44px;border-radius:13px;background:var(--tint-1)}
.csdp .pv6 .highlights .hl-ic svg{width:20px;height:20px}
.csdp .pv6 .highlights b{font-size:16px;line-height:22px}
.csdp .pv6 .highlights .record-source{margin-top:3px;font-size:14px;line-height:19px}
.csdp .pv6 .ov-summary{font-size:18px;line-height:28px;color:var(--ink-2);max-width:none;margin:0}
.csdp .pv6 .ov-src{margin-top:18px}

/* Services: what the business advertises, as plain chips */
.csdp .pv6 .svc-list{gap:10px}
.csdp .pv6 .svc-list span{background:var(--ground);box-shadow:var(--ring);padding:9px 16px;font-size:14px;line-height:20px;font-weight:500;color:var(--ink)}
.csdp .pv6 .svc-more{display:block;margin:16px 0 0;font-size:14px;line-height:20px;color:var(--ink-2)}

/* License, bond and insurance: one white ledger, the timeline under it, then where the listing stands */
.csdp .pv6 .record-object,.csdp .pv6 .record-object.object{background:transparent;box-shadow:none;border-radius:0;padding:0;overflow:visible;display:flex;flex-direction:column;gap:20px}
.csdp .pv6 .record-object .ledger{background:var(--ground);box-shadow:var(--ring);border-radius:20px;padding:6px 28px}
.csdp .pv6 .ledger .record{background:transparent;grid-template-columns:170px minmax(0,1fr) auto;gap:4px 20px;align-items:center;padding:18px 0}
.csdp .pv6 .record-object .ledger .record:first-child{border-top:0}
.csdp .pv6 .ledger .record-label{font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp .pv6 .ledger .record-value{font:500 16px/22px var(--font-mono);color:var(--ink)}
.csdp .pv6 .ledger .record .chip{grid-column:auto;justify-self:end;height:28px;padding:0 12px;margin:0}
.csdp .pv6 .record-object .license-timeline{background:var(--tint-1);border:0;border-radius:20px;padding:24px 28px}
.csdp .pv6 .prof-record .ladder{margin-top:20px;background:var(--ground);box-shadow:var(--ring);border-radius:20px;padding:26px 28px;gap:18px 24px}
.csdp .pv6 .prof-record .ladder-row{display:block;position:relative;padding-top:38px}
.csdp .pv6 .prof-record .ladder-dot{position:absolute;top:0;left:0;margin:0;width:26px;height:26px}
.csdp .pv6 .prof-record .ladder-row::before{content:"";position:absolute;top:12px;left:34px;right:-16px;height:2px;border-radius:2px;background:var(--hairline)}
.csdp .pv6 .prof-record .ladder-row.is-on:has(+ .ladder-row.is-on)::before{background:var(--brand)}
.csdp .pv6 .prof-record .ladder-row:has(+ .record-source)::before{display:none}
.csdp .pv6 .prof-record .ladder-row.is-off .ladder-body{opacity:1}
.csdp .pv6 .prof-record .ladder-row.is-off .ladder-head b{color:var(--ink-2)}
.csdp .pv6 .owner-missing{margin-top:18px}

/* Permit history: the totals as one bar, then years, types and the latest permits */
.csdp .pv6 .pm-summary{display:grid;grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:0;margin:0 0 30px;border-radius:20px;box-shadow:var(--ring);overflow:hidden;background:var(--ground)}
.csdp .pv6 .pm-summary div{border:0;border-radius:0;border-left:1px solid var(--hairline);padding:20px 24px 22px;background:none}
.csdp .pv6 .pm-summary div:first-child{border-left:0}
.csdp .pv6 .pm-summary b,.csdp .pv6 .pm-summary b.num{font:500 28px/36px var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.csdp .pv6 .pm-grid{gap:44px;margin:0 0 30px}
.csdp .pv6 .pm-bar{grid-template-columns:44px 1fr 32px;margin:0 0 12px}
.csdp .pv6 .pm-track{height:12px}
.csdp .pv6 .pm-types li{padding:9px 0}
.csdp .pv6 .pm-table-wrap{border:0;box-shadow:var(--ring);border-radius:16px}
.csdp .pv6 .pm-table th{padding:12px 16px;font-size:14px}
.csdp .pv6 .pm-table td{padding:13px 16px}
.csdp .pv6 .prof-permits > .record-source{margin-top:16px}

/* Reviews: Google's number set large, its count and date beside it; the reviews themselves stay on Google */
.csdp .pv6 .rv-google,.csdp .pv6 .rv-google.object{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:28px 32px;align-items:center;padding:28px 32px;border-radius:20px;box-shadow:var(--ring);background:var(--ground)}
.csdp .pv6 .rv-google.rv-empty-state{grid-template-columns:minmax(0,1fr) auto}
.csdp .pv6 .rv-score{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:136px;padding:20px 22px 18px;border-radius:18px;background:var(--ink);color:#fff}
.csdp .pv6 .rv-score .num{font:500 54px/56px var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums}
.csdp .pv6 .rv-score .of{margin-top:2px;font-size:14px;line-height:18px;color:rgba(255,255,255,.74)}
.csdp .pv6 .rv-g-main{display:flex;flex-direction:column;align-items:stretch;gap:9px;min-width:0}
.csdp .pv6 .rv-src{display:flex;align-items:center;gap:10px;font:600 18px/24px var(--font-display);color:var(--ink)}
.csdp .pv6 .rv-g-main .web-logo{width:28px;height:28px;border-radius:8px;font-size:14px;background:var(--tint-1)}
.csdp .pv6 .rv-meter{display:block;width:100%;height:8px;max-width:340px;border-radius:999px;background:var(--tint-1);overflow:hidden}
.csdp .pv6 .rv-meter i{display:block;height:100%;border-radius:999px;background:var(--ink)}
.csdp .pv6 .rv-g-main .cnt{font-size:16px;line-height:22px;font-weight:500;color:var(--ink)}
.csdp .pv6 .rv-g-main .record-source{margin:0}
.csdp .pv6 .rv-g-links .btn{height:48px}
.csdp .pv6 .rv-others{margin-top:18px}

/* Hours and location: two plain columns */
.csdp .pv6 .ov-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 56px;padding:0;background:transparent;box-shadow:none;border-radius:0}
.csdp .pv6 .ov-col{padding:0}
.csdp .pv6 .ov-col:first-child{padding-right:0}
.csdp .pv6 .ov-col + .ov-col{border-left:0;border-top:0;padding-left:0}
.csdp .pv6 .ov-col h3{margin:0 0 4px}
.csdp .pv6 .ov-row{grid-template-columns:118px minmax(0,1fr);padding:14px 0}

/* Before you call, and the neighbours: plain cards, no frame around them */
.csdp .pv6 .grid-3.object{background:transparent;box-shadow:none;border-radius:0;padding:0;overflow:visible;gap:16px}
.csdp .pv6 .grid-3 .card{background:var(--ground);box-shadow:var(--ring);border-radius:18px;padding:22px;gap:8px}
.csdp .pv6 .grid-3 a.card:hover{box-shadow:inset 0 0 0 1.5px var(--brand),var(--lift);transform:translateY(-2px)}
.csdp .pv6 .sim-card{gap:12px}
.csdp .pv6 .sim-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}
.csdp .pv6 .sim-top .av{width:48px;height:48px;border-radius:14px;font-size:18px}
.csdp .pv6 .sim-top .t,.csdp .pv6 .sim-top .d{display:block}
.csdp .pv6 .sim-card .t{font:600 18px/22px var(--font-display);letter-spacing:-.01em}
.csdp .pv6 .sim-card .rate{white-space:normal}

/* For the owner: one dark band at the end of the page */
.csdp .pv6 .prof-owner .owner-card{position:static;display:grid;grid-template-columns:minmax(0,1fr) 250px;gap:10px 44px;align-items:center;padding:36px 40px;border-radius:24px;background:var(--brand-deep);box-shadow:none}
.csdp .pv6 .prof-owner .eyebrow{grid-column:1/-1;color:var(--brand-mist)}
.csdp .pv6 .prof-owner .t{font:500 28px/34px var(--font-display);letter-spacing:-.02em;color:#fff}
.csdp .pv6 .prof-owner p{margin:8px 0 0;font-size:16px;line-height:24px;color:var(--brand-mist)}
.csdp .pv6 .prof-owner ul{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:9px 24px;margin:18px 0 0;font-size:16px;color:#fff}
.csdp .pv6 .prof-owner li{align-items:flex-start;line-height:22px}
.csdp .pv6 .prof-owner li svg{margin-top:4px}
.csdp .pv6 .oc-act{display:flex;flex-direction:column;gap:14px}
.csdp .pv6 .oc-act .btn{height:52px;justify-content:center;font-size:16px;margin:0}
.csdp .pv6 .oc-act .fine{font-size:14px;line-height:19px;color:var(--brand-mist)}
.csdp .pv6 .oc-act .fine a{color:#fff;text-decoration:underline;text-underline-offset:3px}

/* The contact card: the one thing that stays in view */
.csdp .pv6 .profile-layout .rail{position:sticky;top:150px;align-self:start;gap:16px;padding-top:40px}
.csdp .pv6 .contact-card{display:flex;flex-direction:column;gap:14px;padding:26px;border-radius:22px;background:var(--ground);box-shadow:var(--ring),0 28px 56px -28px rgba(14,26,32,.34)}
.csdp .pv6 .cc-top{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:center;padding-bottom:4px}
.csdp .pv6 .cc-top b{display:block;font:600 18px/24px var(--font-display);letter-spacing:-.01em;color:var(--ink)}
.csdp .pv6 .cc-top div > span{display:block;margin-top:2px;font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp .pv6 .contact-card .btn{height:52px;justify-content:center;font-size:16px;width:100%}
.csdp .pv6 .contact-card .btn svg{width:18px;height:18px}
.csdp .pv6 .cc-brief{align-self:center;font-size:14px;line-height:20px;font-weight:500}
.csdp .pv6 .cc-row{display:grid;grid-template-columns:72px minmax(0,1fr);gap:12px;padding-top:14px;border-top:1px solid var(--hairline);font-size:14px;line-height:21px;color:var(--ink)}
.csdp .pv6 .cc-k{color:var(--ink-2)}
.csdp .pv6 .cc-row .hours{gap:2px 14px}
.csdp .pv6 .cc-row a{font-weight:500;white-space:nowrap}
.csdp .pv6 .cc-note{margin:0;padding-top:14px;border-top:1px solid var(--hairline);font-size:14px;line-height:19px;color:var(--ink-2)}
.csdp .pv6 .cc-claim{font-size:14px;line-height:20px;font-weight:500}

@media (max-width:1000px){
  .csdp .pv6 .pro-hero-grid{grid-template-columns:1fr;gap:28px;padding-bottom:36px}
  .csdp .pv6 .pro-map{order:0}
  .csdp .pv6 .pro-stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .csdp .pv6 .pro-stat:nth-child(odd){border-left:0}
  .csdp .pv6 .pro-stat:nth-child(n+3){border-top:1px solid var(--hairline)}
  .csdp .pv6 .profile-layout{grid-template-columns:minmax(0,1fr);gap:0}
  .csdp .pv6 .profile-layout .rail{display:none}
  .csdp .pv6 .highlights ul{grid-template-columns:repeat(2,minmax(0,1fr))}
  .csdp .pv6 .prof-record .ladder{grid-template-columns:repeat(2,minmax(0,1fr))}
  .csdp .pv6 .prof-record .ladder-row::before{display:none}
  .csdp .pv6 .prof-owner .owner-card{grid-template-columns:minmax(0,1fr);padding:30px 28px}
}
@media (max-width:720px){
  .csdp .pv6 .pro-hero.section{background-size:100% calc(100% - 96px)}
  .csdp .pv6 .pro-name{gap:14px;align-items:start}
  .csdp .pv6 .pro-name .av-xl{width:64px;height:64px;border-radius:18px;font-size:22px}
  .csdp .pv6 .pro-id h1{font-size:30px;line-height:1.1}
  .csdp .pv6 .pro-sub{font-size:16px;line-height:25px}
  .csdp .pv6 .pro-acts .btn{flex:1 1 auto;justify-content:center;padding:0 16px}
  .csdp .pv6 .pro-map-frame{height:250px}
  .csdp .pv6 .pro-stat{padding:16px 18px 18px}
  .csdp .pv6 .pro-stat .v{font-size:24px;line-height:30px}
  .csdp .pv6 .pro-stat .v.txt{font-size:18px;line-height:30px}
  .csdp .pv6 .tabs-in{gap:22px}
  .csdp .pv6 .prof-tabs a{height:50px}
  .csdp .pv6 .profile-layout > [data-main-content] > .section{padding:36px 0;scroll-margin-top:100px}
  .csdp .pv6 .profile-layout > [data-main-content] > .section:first-child{padding-top:28px}
  .csdp .pv6 .section h2{font-size:24px;line-height:30px}
  .csdp .pv6 .row-head.intro{margin-bottom:18px}
  .csdp .pv6 .ov-desc{padding:22px 20px 20px;margin-bottom:32px;border-radius:18px}
  .csdp .pv6 .ov-desc blockquote p{font-size:18px;line-height:28px}
  .csdp .pv6 .highlights{margin-bottom:32px}
  .csdp .pv6 .highlights ul{grid-template-columns:minmax(0,1fr);gap:18px}
  .csdp .pv6 .ov-summary{font-size:16px;line-height:26px}
  .csdp .pv6 .record-object .ledger{padding:4px 18px}
  .csdp .pv6 .ledger .record{grid-template-columns:minmax(0,1fr);gap:4px;padding:16px 0}
  .csdp .pv6 .ledger .record .chip{justify-self:start;margin-top:6px}
  .csdp .pv6 .record-object .license-timeline{padding:18px}
  .csdp .pv6 .prof-record .ladder{grid-template-columns:minmax(0,1fr);padding:22px 20px}
  .csdp .pv6 .pm-summary{grid-auto-flow:row;grid-auto-columns:auto}
  .csdp .pv6 .pm-summary div{border-left:0;border-top:1px solid var(--hairline);padding:16px 18px}
  .csdp .pv6 .pm-summary div:first-child{border-top:0}
  .csdp .pv6 .pm-grid{gap:26px}
  .csdp .pv6 .rv-google,.csdp .pv6 .rv-google.object{grid-template-columns:auto minmax(0,1fr);gap:18px 18px;padding:20px}
  .csdp .pv6 .rv-google.rv-empty-state{grid-template-columns:minmax(0,1fr)}
  .csdp .pv6 .rv-score{min-width:104px;padding:16px 14px 14px;border-radius:16px}
  .csdp .pv6 .rv-score .num{font-size:42px;line-height:46px}
  .csdp .pv6 .rv-g-links{grid-column:1/-1;align-items:stretch}
  .csdp .pv6 .ov-grid{grid-template-columns:minmax(0,1fr);gap:28px 0}
  .csdp .pv6 .ov-row{grid-template-columns:104px minmax(0,1fr);gap:12px}
  .csdp .pv6 .prof-owner .owner-card{padding:26px 22px;border-radius:20px}
  .csdp .pv6 .prof-owner .t{font-size:24px;line-height:30px}
  .csdp .pv6 .prof-owner ul{grid-template-columns:minmax(0,1fr)}
}

/* ---------- City pages: the list starts close to its title, under one toolbar ---------- */
.csdp .page-content > .section.band-tint:has(> .split){padding-top:44px}
@media (min-width:1001px){.csdp .city-hero:has(.hero-fig){grid-template-columns:minmax(0,1fr) 440px;gap:64px;align-items:center}}
.csdp .city-hero .hero-fig img{border-radius:20px;box-shadow:var(--ring),0 24px 48px -28px rgba(14,26,32,.34)}
.csdp .city-hero .hero-fig figcaption{margin-top:12px}
.csdp .filters{display:flex;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:14px;margin:0 0 16px;padding:20px 22px;background:var(--ground);border-radius:20px;box-shadow:var(--ring)}
.csdp .filters .fbar{display:grid;grid-template-columns:minmax(0,1fr) minmax(200px,280px);gap:12px 20px;align-items:center}
.csdp .filters .fcount{font:500 22px/28px var(--font-display);letter-spacing:-.02em;color:var(--ink)}
.csdp .filters .fcount b{font-weight:600;font-variant-numeric:tabular-nums}
.csdp .filters .fcount .sort{display:block;margin-top:2px;font:400 14px/19px var(--font-sans);letter-spacing:0;color:var(--ink-2)}
.csdp .filters input[type=search]{width:100%;height:46px;padding:0 16px;border-radius:12px;background:var(--ground);box-shadow:inset 0 0 0 1px rgba(14,26,32,.16);font-size:16px}
.csdp .filters input[type=search]:focus{outline:2px solid var(--brand);outline-offset:1px}
.csdp .filters .fl{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:14px;border-top:1px solid var(--hairline)}
.csdp .filters .lbl{font-size:14px;font-weight:600;color:var(--ink-2);margin-right:4px}
.csdp .filters .pill{height:36px;padding:0 14px;font-size:14px;background:var(--tint-1);cursor:pointer}
.csdp .filters .pill:hover{background:var(--brand-tint)}
.csdp .filters .pill.is-on{background:var(--ink);color:#fff}
.csdp .filters .pill.is-on .n{color:#fff;opacity:.85}
.csdp .filters .pill-clear{background:transparent}
.csdp .filters .guide-link{margin:0;font-size:14px;line-height:20px;color:var(--ink-2)}
.csdp .pc-svc{margin:2px 0 0;font-size:14px;line-height:21px;color:var(--ink-2)}
.csdp .pc-svc b{font-weight:600;color:var(--ink);margin-right:4px}
.csdp .pc-svc .more{color:var(--ink-3);white-space:nowrap}
@media (max-width:720px){
  .csdp .page-content > .section.band-tint:has(> .split){padding-top:28px}
  .csdp .filters{padding:16px}
  .csdp .filters .fbar{grid-template-columns:minmax(0,1fr)}
  .csdp .filters .fcount{font-size:20px;line-height:26px}
  .csdp .filters .fl{flex-wrap:wrap;overflow:visible}
  .csdp .filters .pill{font-size:14px;padding:0 12px}
}

/* ---------- Trade hubs: the cities as places, each with its count ---------- */
.csdp .place-grid-3{grid-template-columns:repeat(3,minmax(0,1fr));gap:22px 18px}
.csdp a.place-tile .c{margin-top:-6px;font-size:14px;line-height:18px;color:var(--ink-2)}
.csdp .place-grid-3 a.place-tile .ph{border-radius:16px}
.csdp .place-grid-3 a.place-tile .n{font-size:16px;line-height:22px}
@media (max-width:1100px){.csdp .place-grid-3{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media (max-width:720px){.csdp .place-grid-3{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.csdp .place-grid-3 a.place-tile .n{font-size:16px;line-height:20px}}

/* Home: the sources line sits clear of the band above it */
.csdp .srcs{padding-top:36px}

/* ---------- Nearby cities as places; the pier at sunset closes every list page ---------- */
.csdp .near-places .row-head,.csdp .near-places .row-head.intro{display:flex;flex-direction:row;max-width:none;align-items:baseline;justify-content:space-between;gap:8px 20px;flex-wrap:wrap;margin:0 0 18px}
.csdp .near-places h2{font:500 28px/34px var(--font-display);letter-spacing:-.02em}
.csdp .near-places .row-head > a{font-size:16px;font-weight:500}
.csdp .place-grid-near{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:22px 18px}
.csdp .place-grid-near a.place-tile{max-width:340px}
.csdp .place-grid-near a.place-tile .ph{border-radius:16px}
.csdp .place-grid-near a.place-tile .n{font-size:16px;line-height:22px}
@media (max-width:720px){.csdp .place-grid-near{grid-template-columns:repeat(2,minmax(0,1fr));gap:18px 12px}.csdp .near-places h2{font-size:24px;line-height:30px}}
.csdp .closer .band-credit{display:none}
.csdp .closer .closer-link{font-size:14px;font-weight:500}
.csdp .band-deep:has(.closer){background:linear-gradient(90deg,var(--brand-deep) 0%,rgba(10,50,53,.95) 40%,rgba(10,50,53,.64) 100%),url(/assets/oceanside-pier-sunset-cc0.webp) 50% 48%/cover no-repeat var(--brand-deep)}
.csdp .band-deep .closer,.csdp .band-deep .closer.card,.csdp .band-deep .closer.panel{display:flex;flex-direction:column;align-items:flex-start;gap:14px;max-width:660px;padding:0;background:transparent;box-shadow:none;border-radius:0;color:#fff}
.csdp .band-deep .closer .t{font:500 36px/42px var(--font-display);letter-spacing:-.025em;color:#fff}
.csdp .band-deep .closer p{margin:0;font-size:18px;line-height:28px;color:var(--brand-mist)}
.csdp .band-deep .closer .closer-link{display:inline-flex;align-items:center;height:52px;margin-top:6px;padding:0 24px;border-radius:12px;background:#fff;color:var(--brand-deep);font-size:16px;font-weight:600;text-decoration:none}
.csdp .band-deep .closer .closer-link:hover{background:var(--brand-mist)}
.csdp .band-deep .closer .band-credit{display:block;margin:22px 0 0}
@media (max-width:720px){.csdp .band-deep .closer .t{font-size:28px;line-height:34px}.csdp .band-deep .closer p{font-size:16px;line-height:25px}}

/* Common jobs on a trade hub: plain cards, no frame around the grid */
.csdp .jobs.object{background:transparent;box-shadow:none;border-radius:0;padding:0;overflow:visible}
.csdp .jobs .card{background:var(--ground);box-shadow:var(--ring);border-radius:18px}
.csdp .jobs .card.static{background:var(--tint-2);box-shadow:none}

/* The source line under a city list */
.csdp .list-src{margin:10px 4px 0;max-width:760px;font-size:14px;line-height:20px;color:var(--ink-2)}

/* Home: the two guide cards share one height */
.csdp .band-sand .grid-2{align-items:stretch}
.csdp .band-sand .grid-2 > .card{height:100%}

/* Audit corrections: preserve the established palette and type system. */
.hero>.grid-2{align-items:start;gap:40px}.hero .slice{min-width:0;align-self:start;margin-top:12px}.hero .slice .preview-head{flex-wrap:wrap}
.hero .slice-rows{display:grid;grid-template-columns:minmax(0,1fr);gap:10px}.hero .slice-card{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:14px;align-items:start;padding:18px;min-width:0}.hero .slice-card .av{width:48px;height:48px;font-size:18px}.hero .sc-body{min-width:0}.hero .sc-body .name{font-size:18px;line-height:1.35}.hero .sc-meta{display:block;font-size:12px}.hero .sc-lic{font-size:12px;margin-top:5px}.hero .slice-card .rate{white-space:normal;flex-wrap:wrap;font-size:12px}.hero .sc-acts{border:0;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}.hero .sc-view{font-size:12px}.hero .slice-head{display:flex;flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:18px}.hero .slice-title{font-size:25px}.hero .slice-foot{font-size:12px;line-height:1.55}
.hero .hero-copy h1{font-size:clamp(34px,3.5vw,54px);line-height:1.08}.hero .hero-copy .lede{font-size:18px;line-height:1.6}.hero{padding-top:42px!important;padding-bottom:48px!important}
.hero-form .record-source{font-size:14px;line-height:1.5;margin:0}.hero-form .span{grid-column:1/-1}.service-filter{max-width:440px;margin:16px 0 8px}.service-filter select{min-height:46px}
[data-cmp]{display:block;overflow:auto;max-width:100%;max-height:76vh;border:1px solid var(--line);border-radius:12px;scrollbar-gutter:stable;padding:0!important}
.compare-table{border-collapse:separate;border-spacing:0;width:100%;table-layout:fixed;min-width:660px;background:var(--ground)}
.compare-table th,.compare-table td{padding:18px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line);overflow-wrap:anywhere;min-width:0}
.compare-table thead th{position:sticky;top:0;z-index:2;background:var(--tint-1);font-size:16px}.compare-table tr>:first-child{width:150px;background:var(--tint-1);font-size:14px;font-weight:600}
.compare-table .v,.compare-table .s{display:block}.compare-table .v{font-size:16px;line-height:1.55}.compare-table .s{font-size:12px;line-height:1.5;color:var(--ink-2);margin-top:8px}.compare-table .na{font-size:14px;color:var(--ink-2)}
.compare-table button[data-remove]{display:block;margin-top:8px;padding:10px 0;background:none;border:0;text-decoration:underline;cursor:pointer;color:inherit;font:inherit;font-size:14px;min-height:44px}
.compare-table .btn{white-space:normal;height:auto;min-height:44px;padding:10px;font-size:14px}.compare-profile{display:block;margin-top:12px;font-size:14px}
[data-message-editor]{margin-top:24px}[data-message-editor] textarea{width:100%;min-height:190px}[data-copy-status]{display:block;font-size:14px;line-height:1.5;margin:10px 0;min-height:1.5em}
[data-brief-recipient] .panel{margin:20px 0}.brief-box textarea{min-height:190px}.pro-card .pc-facts li{overflow-wrap:anywhere}
@media(max-width:760px){.hero>.grid-2{grid-template-columns:1fr;gap:24px}.hero{padding-top:24px!important}.hero .slice{width:100%;margin:0}.hero .hero-copy h1{font-size:36px}.hero .hero-copy .lede{font-size:16px}.hero-copy .hl{white-space:normal!important}.compare-table{min-width:580px}.compare-table tr>:first-child{width:112px}.compare-table td,.compare-table th{padding:12px}.compare-table thead th{font-size:14px}.compare-table .v{font-size:14px}.hero .slice .preview-row{min-width:0}.fn-outs{flex-wrap:wrap}.fn-outs>div{min-width:0}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.csdp .hero .slice .slice-rows{grid-template-columns:minmax(0,1fr)}.csdp .hero .slice-card{grid-template-rows:auto;grid-template-columns:48px minmax(0,1fr) auto}.csdp .hero .slice-card .av{grid-row:1}.csdp .hero .sc-acts{grid-column:3;grid-row:1;align-self:center}
.compare-table th,.compare-table td{border-bottom-color:var(--hairline)}[data-cmp]{border-color:var(--hairline)}
@media(max-width:400px){.hero .slice-card{grid-template-columns:minmax(0,1fr) auto;padding:14px;gap:10px}.hero .slice-card>.av{display:none}.hero .slice-title{font-size:23px}}
@media(max-width:400px){.csdp .hero .slice-card{grid-template-columns:minmax(0,1fr) auto}.csdp .hero .sc-acts{grid-column:2}}

/* CSDP native component layer. Evidence first, immediate content, restrained feedback. */
.csdp{--ux-border:#d8e1da;--ux-muted:#4A5B60;--ux-soft:#f0f5ee}
.csdp [hidden]{display:none!important}.csdp :focus-visible{outline:3px solid #2C6271;outline-offset:4px}
html:not(.csdp-ready) .csdp .filters,html:not(.csdp-ready) .csdp .cb,html:not(.csdp-ready) .csdp [data-compare-toggle],html:not(.csdp-ready) .csdp [data-tray],html:not(.csdp-ready) .csdp [data-cmp],html:not(.csdp-ready) .csdp .brief-box,html:not(.csdp-ready) .csdp [data-share-profile]{display:none!important}.csdp .ux-nojs{padding-top:16px;padding-bottom:16px;font-size:14px;line-height:1.6;background:#f0f5ee}
.csdp .record-source,.csdp .reassure,.csdp .meta{font-size:14px;line-height:1.55;color:var(--ux-muted)}
.csdp button,.csdp input,.csdp select,.csdp textarea{font:inherit}.csdp button{cursor:pointer}.csdp summary{cursor:pointer;min-height:44px;padding:12px 0;font-weight:600}
.csdp .reveal,.csdp [data-reveal],.csdp .reveal-stagger>*{opacity:1!important;transform:none!important;animation:none!important}
.csdp .ux-home h2,.csdp .ux-fit h2{font-size:clamp(26px,2.8vw,36px);line-height:1.18;margin:8px 0 18px}
.csdp .ux-home h3{font-size:21px;line-height:1.3;margin:16px 0 10px}
.csdp .ux-home p{line-height:1.65}.csdp .ux-home .row-head{align-items:end;margin-bottom:24px}
.csdp .ux-home-hero{padding:44px 0 48px;background:linear-gradient(120deg,#f9faf5,#edf4ed)}
.csdp .ux-hero-grid{display:grid;grid-template-columns:1.04fr 1fr;align-items:start;gap:48px}
.csdp .ux-home-copy h1{font-size:clamp(38px,4.1vw,58px);line-height:1.06;letter-spacing:-1.7px;margin:14px 0 20px}
.csdp .ux-home-copy .lede{font-size:18px;max-width:520px;margin-bottom:24px}
.csdp .ux-home .hero-form{padding:20px;margin-top:0;gap:14px;box-shadow:0 8px 28px #22392908}
.csdp .ux-note{border-top:1px solid var(--ux-border);margin:0}.csdp .ux-note summary{font-size:14px;padding:8px 0}.csdp .ux-note input{width:100%}
.csdp .ux-proof{display:flex;gap:10px;align-items:start;font-size:14px;margin:16px 0 8px}.csdp .ux-proof svg{width:18px;height:18px;flex:none;margin-top:3px}.csdp .ux-urgent{font-size:14px}
.csdp .ux-home .slice{min-width:0;margin-top:6px;align-self:start}.csdp .ux-home .slice-head{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-bottom:18px}.csdp .ux-home .slice-title{font-size:24px}
.csdp .ux-home .slice-rows{display:grid;grid-template-columns:1fr;gap:10px}.csdp .ux-home .slice-card{display:grid;grid-template-columns:42px minmax(0,1fr) auto;grid-template-rows:auto;align-items:start;gap:12px;padding:16px;min-width:0}
.csdp .ux-home .slice-card .av{width:42px;height:42px;font-size:16px;grid-row:1}.csdp .ux-home .sc-body{min-width:0}.csdp .ux-home .sc-body .name{font-size:16px;line-height:1.35}
.csdp .ux-home .sc-meta,.csdp .ux-home .sc-lic{display:block;font-size:14px;line-height:1.5}.csdp .ux-home .sc-acts{display:flex;flex-direction:column;grid-column:3;grid-row:1;border:0;margin:0;padding:0;gap:8px}
.csdp .ux-home .slice .rate{font-size:12px;white-space:normal}.csdp .ux-home .slice-foot{font-size:14px;line-height:1.6}.csdp .ux-home .preview-head{flex-wrap:wrap}.csdp .ux-home .preview-row{min-width:0}
.csdp .ux-home-section{padding-top:56px;padding-bottom:56px}.csdp .ux-trade-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}
.csdp .ux-trade{display:flex;align-items:center;gap:14px;min-height:100px;padding:18px;border:1px solid var(--ux-border);border-radius:14px;background:#fff;text-decoration:none;transition:background .15s,border-color .15s}
.csdp .ux-trade:hover{background:var(--ux-soft);border-color:#7d9d86}.csdp .ux-trade b{font-size:16px}.csdp .ux-trade small{display:block;font-size:14px;color:var(--ux-muted);margin-top:4px}.csdp .ux-trade>.tile{flex:none;width:36px;height:36px}.csdp .ux-trade>span:last-child{margin-left:auto}
.csdp .ux-evidence-band{padding:48px 0;background:#18353D;color:#fff}.csdp .ux-evidence-grid{display:grid;grid-template-columns:1fr 1.15fr;gap:72px}.csdp .ux-evidence-band h2,.csdp .ux-evidence-band p,.csdp .ux-evidence-band a,.csdp .ux-evidence-band .eyebrow{color:#fff}.csdp .ux-evidence-band .eyebrow{opacity:.8}
.csdp .ux-evidence-list{margin:0}.csdp .ux-evidence-list>div{padding:18px 0;border-bottom:1px solid #ffffff30}.csdp .ux-evidence-list>div:first-child{padding-top:0}.csdp .ux-evidence-list dt{font-weight:650}.csdp .ux-evidence-list dd{margin:6px 0 0;font-size:16px;line-height:1.6;color:#d7e5d9}
.csdp .ux-action-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.csdp .ux-action{display:block;padding:26px;border:1px solid var(--ux-border);border-radius:16px;text-decoration:none;background:#fff}.csdp .ux-action:hover{border-color:#738F97}.csdp .ux-step{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:var(--ux-soft);font-size:14px;font-weight:700}.csdp .ux-action p{font-size:16px;color:var(--ux-muted)}.csdp .ux-action>span:last-child{display:block;margin-top:22px;font-size:14px;font-weight:600}
.csdp .ux-home-close{border-top:1px solid var(--ux-border);display:grid;grid-template-columns:1fr 1fr;gap:64px}.csdp .ux-city-links{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0}.csdp .ux-city-links a{display:inline-flex;align-items:center;padding:10px 14px;min-height:44px;border:1px solid var(--ux-border);border-radius:8px;font-size:14px;text-decoration:none}.csdp .ux-home-faq details{border-bottom:1px solid var(--ux-border)}.csdp .ux-home-faq details p{font-size:16px}
/* Results: compact context, a native modal drawer and removable active selections. */
.csdp .ux-directory .city-hero .stack{gap:0}.csdp .ux-directory .cityblock{padding:0;background:transparent;border:0;display:flex;flex-wrap:wrap;line-height:1.6}.csdp .ux-change{margin:0 0 12px;border-bottom:1px solid var(--ux-border)}.csdp .ux-change>summary{font-size:14px;font-weight:500}.csdp .ux-change .ux-context{margin-bottom:12px}.csdp .ux-directory .filters{border:0;border-radius:0;box-shadow:none;background:transparent}
.csdp .ux-directory .city-hero{display:block;padding:24px 0 18px;margin:0}.csdp .ux-directory .city-hero h1{font-size:clamp(32px,3.5vw,46px);line-height:1.1}.csdp .ux-directory .city-hero .lede{max-width:780px;font-size:16px;line-height:1.55;margin:12px 0}.csdp .ux-directory .cityblock{margin:12px 0 0;font-size:14px;gap:14px}
.csdp .ux-context{display:flex;align-items:end;gap:12px;margin:0 0 20px;padding:16px;background:var(--ux-soft);border-radius:12px}.csdp .ux-context label{display:grid;gap:6px;flex:1;font-size:14px;font-weight:600}.csdp .ux-context select{width:100%;min-height:46px;padding:8px 12px;background:white;border:1px solid #aebeb2;border-radius:8px}
.csdp .ux-directory .filters{padding:0 0 20px;margin:0;display:flex;flex-wrap:wrap;align-items:center;gap:12px;border-bottom:1px solid var(--ux-border)}.csdp .ux-directory .fbar{display:flex;flex:1;gap:18px;align-items:center;margin:0;min-width:0}.csdp .ux-directory .fcount{font-size:16px;flex:1}.csdp .ux-directory .sort{font-size:12px;margin-top:4px}.csdp .ux-directory input[data-q]{max-width:250px;min-height:46px;min-width:0;flex:1}.csdp .ux-directory .guide-link{width:100%;font-size:14px;margin:0}.csdp .ux-active-filters{display:flex;flex-wrap:wrap;gap:8px;width:100%}.csdp .ux-active-filters:empty{display:none}
.csdp .ux-token{min-height:40px;border:1px solid #91b29b;border-radius:8px;background:#e9f3e9;padding:8px 12px;color:#183E48;font-size:14px}.csdp .ux-filter-open{gap:10px}.csdp .ux-filter-open span{background:#21434C;color:white;border-radius:50%;padding:2px 7px;font-size:12px}
.csdp .ux-directory .split{margin-top:24px;grid-template-columns:minmax(0,1fr) 280px;gap:28px}.csdp .ux-directory .rail{padding-top:0;gap:18px}.csdp .ux-directory .rail h2{font-size:21px}.csdp .ux-help ul{padding-left:18px;line-height:1.65;font-size:14px}.csdp .ux-help li{margin:8px 0}
.csdp .row.ux-card{padding:20px;display:grid;grid-template-columns:42px minmax(0,1fr);gap:14px;margin-bottom:12px;border:1px solid var(--ux-border);border-radius:14px;background:white}.csdp .row.ux-card>.av{width:42px;height:42px;font-size:16px}.csdp .row.ux-card>.body{min-width:0}.csdp .row.ux-card .pc-top{display:flex;align-items:start;gap:12px;flex-wrap:wrap;justify-content:space-between}.csdp .row.ux-card .name{font-size:20px;line-height:1.35}.csdp .row.ux-card .desc{font-size:14px;color:var(--ux-muted);margin:6px 0 10px;line-height:1.5}.csdp .row.ux-card .rate{font-size:14px;white-space:normal;flex-wrap:wrap}.csdp .row.ux-card .pc-facts{gap:5px;margin:10px 0}.csdp .row.ux-card .pc-facts li{font-size:14px;line-height:1.5}.csdp .row.ux-card .pc-svc{font-size:14px;line-height:1.6;margin:10px 0}.csdp .row.ux-card .pc-more{border-top:1px solid var(--ux-border);font-size:14px}.csdp .row.ux-card .pc-more summary{font-size:14px;font-weight:500}.csdp .row.ux-card .pc-quote{font-size:14px;line-height:1.6}.csdp .row.ux-card .acts{grid-column:2;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;gap:10px;width:auto;padding:0;margin:0}.csdp .row.ux-card .acts .btn{min-height:44px;height:auto;padding:11px 14px;font-size:14px}.csdp .row.ux-card .cb{margin-left:auto;min-height:44px;font-size:14px;display:flex;align-items:center;gap:8px}.csdp .row.ux-card .pc-match{padding:8px 12px;border-radius:8px;background:#edf5e9;font-size:14px;line-height:1.6;color:#244650}.csdp .row.ux-card .record-source{margin:6px 0}
.csdp .ux-directory .nearby,.csdp .ux-directory .city-faq,.csdp .ux-directory .spokes{margin-top:36px;padding-top:24px}.csdp .ux-directory .place-grid-near{grid-template-columns:repeat(3,minmax(0,1fr))}.csdp .ux-directory .tray{position:static}.csdp [data-tray] li{display:flex;gap:8px;align-items:center;justify-content:space-between;font-size:14px}.csdp [data-tray] button{border:0;background:none;font-size:14px;padding:8px;min-height:44px;text-decoration:underline}.csdp .ux-disclosure{padding:0 16px;border:1px solid var(--ux-border);border-radius:12px;margin:16px 0;background:#fff}.csdp .ux-disclosure>summary{font-size:16px}.csdp .ux-disclosure[open]{padding-bottom:16px}
.csdp .ux-filter-sheet{position:fixed;inset:0 0 0 auto;margin:0;width:min(480px,100%);height:100dvh;max-height:100dvh;max-width:100%;padding:24px;border:0;border-left:1px solid var(--ux-border);background:#fafbf7;color:#153037;overflow-y:auto}.csdp .ux-filter-sheet::backdrop{background:#0d1f2480}.csdp .ux-sheet-head{display:flex;justify-content:space-between;align-items:center;gap:12px}.csdp .ux-sheet-head h2{font-size:26px}.csdp .ux-filter-sheet .fl{display:flex;flex-wrap:wrap;gap:10px;margin:20px 0}.csdp .ux-filter-sheet .fl .lbl{display:block;width:100%}.csdp .ux-filter-sheet .pill{min-height:44px;padding:10px 14px;font-size:14px}.csdp .ux-filter-sheet .service-filter{max-width:none}.csdp .ux-filter-sheet .service-filter select{width:100%}.csdp .ux-sheet-foot{position:sticky;bottom:-24px;padding:20px 0 24px;background:#fafbf7;border-top:1px solid var(--ux-border);display:flex;gap:12px;flex-wrap:wrap}.csdp .ux-sheet-foot>[role=status]{width:100%;font-size:14px}.csdp.filter-open{overflow:hidden}.csdp .ux-toast{position:fixed;bottom:90px;left:50%;transform:translateX(-50%);z-index:110;max-width:min(90vw,550px);padding:14px 20px;background:#16343C;color:white;border-radius:10px;box-shadow:0 4px 24px #0002;font-size:14px}
/* Profiles: summary and contact first, map below the evidence. */
.csdp .row.ux-card .name::after{content:none}.csdp .row.ux-card:hover{transform:none}.csdp .ux-compare-card .v{font-family:var(--font-body);letter-spacing:normal;font-weight:400}.csdp .ux-compare-card .s{letter-spacing:normal}.csdp .ux-directory .brief-banner{padding:14px;margin:16px 0;gap:12px}.csdp .ux-directory .brief-banner .d{font-size:14px;line-height:1.55}
.csdp .ux-profile .pro-hero{padding:16px 0 0;margin:0}.csdp .ux-profile .pro-hero>.wrap{width:100%;padding:0}.csdp .ux-profile .pro-hero-grid{grid-template-columns:1.4fr 1fr;gap:40px;align-items:start;padding:24px 0}.csdp .ux-profile .pro-name h1{font-size:clamp(30px,3.6vw,46px);line-height:1.15}.csdp .ux-profile .pro-name .av{width:60px;height:60px;font-size:22px}.csdp .ux-profile .pro-sub{font-size:16px}.csdp .ux-fit{padding:24px;background:var(--ux-soft);border:1px solid var(--ux-border);border-radius:14px}.csdp .ux-fit h2{font-size:23px}.csdp .ux-fit p,.csdp .ux-fit li{font-size:14px;line-height:1.65}.csdp .ux-fit ul{padding-left:18px}.csdp .ux-fit a{font-size:14px}.csdp .ux-profile .pro-stats{margin:8px 0 24px;padding:16px 0;border-top:1px solid var(--ux-border);border-bottom:1px solid var(--ux-border)}.csdp .ux-profile .pro-stat .v{font-size:28px}.csdp .ux-profile .pro-stat .v.txt{font-size:18px}.csdp .ux-profile .pro-stat{padding:0 18px}.csdp .ux-profile .prof-tabs{width:100%;padding:0;background:#fafbf8;top:76px;z-index:20}.csdp .ux-profile .split{margin:24px 0;gap:32px;grid-template-columns:minmax(0,1fr) 300px}.csdp .ux-profile [data-main-content]{gap:32px}.csdp .ux-profile [data-main-content]>section{padding:0 0 32px;margin:0;border-bottom:1px solid var(--ux-border);min-width:0}.csdp .ux-profile .row-head{margin:0 0 18px;gap:12px;flex-wrap:wrap}.csdp .ux-profile .row-head h2{font-size:26px}.csdp .ux-profile .svc-list{gap:8px}.csdp .ux-profile .svc-list>span{font-size:14px;padding:8px 12px}.csdp .ux-profile .ov-summary{font-size:16px;line-height:1.7}.csdp .ux-profile .ov-desc blockquote{font-size:16px}.csdp .ux-profile .contact-card{top:148px;padding:22px}.csdp .ux-profile .pro-map-frame{height:300px}.csdp .ux-profile .prof-owner{font-size:14px}.csdp .ux-profile .pro-map{margin-top:16px}.csdp .ux-profile .ov-grid{gap:24px}.csdp .ux-profile .prof-tabs a{min-height:44px;display:inline-flex;align-items:center}
/* Comparison overview stays readable on mobile; detailed table scrolls within its own region. */
.csdp .ux-compare .sec-top{padding:24px 0!important}.csdp .ux-compare .sec-top h1{font-size:clamp(32px,4vw,46px);line-height:1.12}.csdp .ux-compare .sec-top .lede{font-size:16px;line-height:1.65;max-width:700px}.csdp .ux-compare>.record-source{margin:0 0 20px}.csdp .ux-compare .brief-box{margin:32px 0;padding:28px;border-radius:14px}.csdp .ux-compare .ux-compare-overview{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.csdp .ux-compare .cmp{margin:0;background:transparent;box-shadow:none}.csdp .ux-compare .cmp-empty-sec{padding:20px 0}
.csdp .ux-directory .filters{flex-direction:row;justify-content:flex-start;align-content:start}.csdp .ux-directory .fbar{flex-direction:row;justify-content:space-between;width:auto}.csdp .ux-filter-sheet .pill{display:inline-flex;align-items:center;gap:8px}.csdp .ux-filter-sheet .pill[aria-pressed=true]{background:#21434C;color:#fff;border-color:#21434C}.csdp .ux-home .sc-lic{display:flex;align-items:center;gap:5px}
.csdp [data-cmp]{max-height:none;overflow:visible;border:0}.csdp .ux-compare-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-bottom:24px}.csdp .ux-compare-card{border:1px solid var(--ux-border);border-radius:14px;padding:22px;background:#fff;min-width:0}.csdp .ux-compare-card h2{font-size:21px;line-height:1.3;margin:0 0 12px;overflow-wrap:anywhere}.csdp .ux-compare-card .v{display:block;font-size:14px;line-height:1.6}.csdp .ux-compare-card .s{display:block;font-size:14px;line-height:1.55;margin-top:5px;color:var(--ux-muted)}.csdp .ux-compare-card dl{margin:18px 0}.csdp .ux-compare-card dt{font-size:14px;font-weight:600;margin-top:14px}.csdp .ux-compare-card dd{margin:4px 0}.csdp .ux-compare-card .btn{width:100%;margin-top:8px;white-space:normal;height:auto;min-height:44px}.csdp .ux-compare-card [data-remove]{background:none;border:0;text-decoration:underline;padding:10px 0;font-size:14px;min-height:44px}.csdp .ux-compare-table-wrap{max-height:72vh;overflow:auto;border:1px solid var(--ux-border);border-radius:12px}.csdp .ux-differences{display:flex;align-items:center;gap:10px;padding:14px 0;min-height:44px;font-size:14px}.csdp .ux-compare-details>summary{font-size:18px}.csdp .ux-draft-controls{display:flex;gap:12px;flex-wrap:wrap;margin:16px 0}.csdp .ux-draft-controls button{border:1px solid var(--ux-border);border-radius:8px;padding:10px 14px;min-height:44px;background:#fff;font-size:14px}.csdp .ux-draft-controls [role=status]{font-size:14px;width:100%}
@media(max-width:1000px){.csdp .ux-hero-grid{gap:26px}.csdp .ux-trade-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.csdp .ux-directory .split,.csdp .ux-profile .split{grid-template-columns:minmax(0,1fr)}.csdp .ux-directory .rail{display:grid;grid-template-columns:1fr 1fr}.csdp .ux-profile .rail{display:none}.csdp .ux-profile .pro-hero-grid{gap:24px}.csdp .ux-compare-overview{gap:10px}}
@media(max-width:760px){.csdp .ux-home-hero{padding:24px 0 32px}.csdp .ux-hero-grid{grid-template-columns:1fr;gap:28px}.csdp .ux-home-copy h1{font-size:38px;letter-spacing:-1px}.csdp .ux-home-copy .lede{font-size:16px;margin-bottom:18px}.csdp .ux-home .hero-form{padding:16px}.csdp .ux-home-section{padding-top:36px;padding-bottom:36px}.csdp .ux-evidence-band{padding:36px 0}.csdp .ux-evidence-grid,.csdp .ux-action-grid,.csdp .ux-home-close{grid-template-columns:1fr;gap:24px}.csdp .ux-trade{padding:14px;min-height:92px;gap:10px}.csdp .ux-trade>.tile{display:none}.csdp .ux-home h2{font-size:28px}.csdp .ux-action{padding:22px}.csdp .ux-home .row-head{align-items:start;flex-direction:column;gap:8px}.csdp .ux-directory .city-hero{padding-top:16px}.csdp .ux-directory .city-hero .lede{font-size:16px}.csdp .ux-context{padding:12px;flex-wrap:wrap;gap:10px}.csdp .ux-context label{flex:1;min-width:100px}.csdp .ux-context .btn{width:100%}.csdp .ux-directory .filters{gap:10px}.csdp .ux-directory .fbar{flex-wrap:wrap;width:100%;flex-basis:100%;gap:10px}.csdp .ux-directory .fcount{width:100%;flex-basis:100%}.csdp .ux-directory input[data-q]{max-width:none;flex-basis:100%}.csdp .ux-directory .guide-link{display:none}.csdp .ux-directory .split{margin-top:16px}.csdp .row.ux-card{padding:16px;grid-template-columns:minmax(0,1fr);gap:10px}.csdp .row.ux-card>.av{display:none}.csdp .row.ux-card .name{font-size:21px}.csdp .row.ux-card .acts{grid-column:1;gap:8px}.csdp .row.ux-card .acts .btn{flex:1;white-space:nowrap}.csdp .row.ux-card .cb{margin-left:0;width:100%;justify-content:start}.csdp .row.ux-card .pc-top{gap:8px}.csdp .ux-directory .rail{display:block}.csdp .ux-directory .rail>*{margin-bottom:18px}.csdp .ux-directory .place-grid-near{grid-template-columns:1fr 1fr}.csdp .ux-filter-sheet{padding:20px}.csdp .ux-sheet-foot{bottom:-20px}.csdp .ux-profile .pro-hero-grid{grid-template-columns:1fr;padding:12px 0}.csdp .ux-fit{padding:18px}.csdp .ux-fit h2{font-size:22px;margin-bottom:10px}.csdp .ux-fit ul{display:none}.csdp .ux-profile .pro-stats{display:grid;grid-template-columns:1fr 1fr;gap:18px}.csdp .ux-profile .pro-stat{padding:0 12px}.csdp .ux-profile .pro-name{gap:12px}.csdp .ux-profile .pro-name .av{display:none}.csdp .ux-profile .pro-rateline{gap:10px}.csdp .ux-profile .prof-tabs{top:64px}.csdp .ux-profile .pro-map-frame{height:240px}.csdp .ux-profile .row-head h2{font-size:24px}.csdp .ux-profile .ov-grid{grid-template-columns:1fr}.csdp .ux-profile .pro-quiet{flex-wrap:wrap;gap:6px 18px}.csdp .ux-profile .pro-quiet>*{min-height:44px;display:inline-flex;align-items:center}.csdp .ux-compare-overview{grid-template-columns:1fr}.csdp .ux-compare-card{padding:18px}.csdp .ux-compare-card dl{display:grid;grid-template-columns:1fr;gap:0}.csdp .ux-compare-table-wrap{max-height:65vh}.csdp .ux-home .slice-card{grid-template-columns:36px minmax(0,1fr) auto}.csdp .ux-home .slice-card .av{width:36px;height:36px}.csdp .ux-home .slice .preview-head{gap:8px}}
@media(max-width:360px){.csdp .ux-home-copy h1{font-size:34px}.csdp .ux-home .slice-card{grid-template-columns:minmax(0,1fr) auto;padding:12px}.csdp .ux-home .slice-card>.av{display:none}.csdp .ux-home .sc-acts{grid-column:2}.csdp .row.ux-card .acts .btn{flex-basis:100%}.csdp .ux-trade{padding:12px}.csdp .ux-trade b{font-size:14px}}
@media(prefers-reduced-motion:reduce){.csdp *{scroll-behavior:auto!important;transition:none!important;animation:none!important}}

/* The head script adds .js before first paint, so the no-JS note never paints and then vanishes (it moved the page 54px:
   CLS 0.14-0.29 on city pages and Compare, production check 2026-10-13). .csdp-ready stays for safety. */
.js .ux-nojs,.csdp-ready .ux-nojs{display:none}

/* Profile explorer: native disclosure cards, factual source snapshots, bounded enhancement. */
.csdp .px-profile [hidden]{display:none!important}
.csdp .px-profile{--px-line:#DCE2E4;--px-soft:#f0f4ee;--px-dark:#10323C;--px-warm:#f5f0e6}
.csdp .px-profile .pro-hero-grid{grid-template-columns:1.12fr 1fr;gap:44px;align-items:center;padding:28px 0}
.csdp .px-profile .pro-name h1{font-size:clamp(32px,3.8vw,52px);line-height:1.08;letter-spacing:-1.8px}
.csdp .px-profile .pro-id{gap:17px}.csdp .px-profile .pro-sub{margin:0}
.csdp .px-launchpad>.eyebrow{margin:0 0 12px}
.csdp .px-jump-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.csdp .px-jump{display:flex;flex-direction:column;gap:9px;padding:20px;border:1px solid var(--px-line);border-radius:16px;background:#fff;color:var(--ink);text-decoration:none;min-height:145px;transition:transform .18s ease,border-color .18s ease}
.csdp .px-jump:hover{transform:translateY(-3px);border-color:var(--brand)}
.csdp .px-jump-label{display:flex;justify-content:space-between;gap:12px;font-size:14px;font-weight:600}
.csdp .px-jump strong{font-size:26px;line-height:1.15;letter-spacing:-.8px;overflow-wrap:anywhere}
.csdp .px-jump>span:last-child{font-size:12px;line-height:1.6;opacity:.85}
.csdp .px-jump-services{background:var(--px-dark);color:white;border-color:var(--px-dark)}
.csdp .px-jump-services strong{font-size:38px}.csdp .px-jump-reviews{background:var(--px-warm)}
.csdp .px-profile .pro-stats{margin-top:4px}.csdp .px-profile .pro-stat{box-shadow:none;background:transparent}
.csdp .px-profile .prof-tabs{border-bottom:1px solid var(--px-line);background:#fafbf8}
.csdp .px-profile .prof-tabs a{border-radius:8px 8px 0 0;padding:10px 13px;font-size:14px;white-space:nowrap}
.csdp .px-profile .prof-tabs a[aria-current]{background:var(--px-soft)}
.csdp .px-profile [data-main-content]{gap:40px}
.csdp .px-profile [data-main-content]>section{scroll-margin-top:44px;padding-bottom:36px}
.csdp .px-section-heading{margin-bottom:16px}.csdp .px-section-heading .eyebrow{margin-bottom:9px}
.csdp .px-section-heading h2{font-size:30px;line-height:1.2;letter-spacing:-.7px;margin:0 0 10px}
.csdp .px-section-heading>p{font-size:16px;line-height:1.65;color:var(--ink-2);margin:0;max-width:580px}
.csdp .px-service-controls{margin:20px 0 14px}.csdp .px-service-search{display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--px-line);border-radius:10px;background:#fff}
.csdp .px-service-search svg{width:18px;height:18px;flex:none}.csdp .px-service-search input{border:0;box-shadow:none;background:transparent;padding:14px 0;min-width:0;width:100%;font:inherit;font-size:16px}
.csdp .px-service-search:focus-within{outline:2px solid var(--brand);outline-offset:2px}
.csdp .px-profile .px-service-search input:focus-visible{outline:0}
.csdp .px-filter-chips{display:flex;gap:8px;flex-wrap:wrap;margin:14px 0}
.csdp .px-filter-chips button,.csdp .px-review-tabs button{font:500 14px/1.4 var(--font-sans);color:var(--ink-2);cursor:pointer;padding:10px 12px;min-height:44px;border:1px solid var(--px-line);border-radius:8px;background:#fff}
.csdp .px-filter-chips button span{margin-left:6px;opacity:.7;font-size:12px}
.csdp .px-filter-chips button[aria-pressed=true]{background:var(--px-dark);border-color:var(--px-dark);color:#fff}
.csdp .px-result-count{font-size:14px;color:var(--ink-2);margin:0}
.csdp .px-service-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;align-items:start}
.csdp .px-service-card{border:1px solid var(--px-line);border-radius:12px;background:#fff;overflow:hidden}
.csdp .px-service-card summary{display:grid;grid-template-columns:22px minmax(0,1fr) 20px;gap:10px;align-items:center;min-height:84px;padding:16px;cursor:pointer;font-size:16px;font-weight:600;list-style:none}
.csdp .px-service-card summary::-webkit-details-marker,.csdp .px-record-card summary::-webkit-details-marker{display:none}
.csdp .px-service-card summary:hover{background:var(--px-soft)}
.csdp .px-service-index{font:12px var(--font-mono);color:var(--ink-3)}
.csdp .px-expand{font-size:22px;font-weight:400;color:var(--brand-ink);text-align:center;transition:transform .18s ease}
.csdp .px-service-card[open]{border-color:#6C8D96;background:var(--px-soft)}
.csdp .px-service-card[open] .px-expand{transform:rotate(45deg)}
.csdp .px-service-body{padding:0 16px 18px}.csdp .px-service-type{font-size:12px;color:var(--brand-ink);font-weight:600}
.csdp .px-service-body p{font-size:14px;line-height:1.7;margin:8px 0 12px;color:var(--ink-2)}
.csdp .px-service-body button,.csdp .px-service-empty button{background:transparent;border:0;border-bottom:1px solid var(--brand);padding:8px 0;color:var(--brand-ink);font:600 14px var(--font-sans);cursor:pointer;min-height:44px}
.csdp .px-service-more{margin-top:16px;width:100%}
.csdp .px-question{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:16px;margin-top:20px;background:var(--px-soft);border:1px solid var(--px-line);padding:22px;border-radius:14px}
.csdp .px-question h3{font-size:20px;margin:8px 0}.csdp .px-question p{font-size:14px;line-height:1.7;margin:0}
.csdp .px-question>.record-source{grid-column:1/-1;font-size:12px}
.csdp .px-empty,.csdp .px-service-empty{padding:24px;background:var(--px-soft);border-radius:14px;font-size:16px;line-height:1.7}
.csdp .px-review-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.csdp .px-review-score,.csdp .px-photo-card,.csdp .px-review-guide{border:1px solid var(--px-line);border-radius:18px;padding:26px;min-width:0}
.csdp .px-review-score{background:var(--px-dark);color:#fff;display:flex;flex-direction:column;align-items:start}
.csdp .px-source-label{font-size:14px;font-weight:600}.csdp .px-rating{display:flex;align-items:baseline;gap:10px;margin:18px 0 0}
.csdp .px-rating strong{font:500 72px/1 var(--font-display);letter-spacing:-4px}.csdp .px-rating>span{font-size:20px;opacity:.7}
.csdp .px-review-score p{font-size:16px;margin:12px 0 0;color:#fff}.csdp .px-review-score .record-source{color:#D0DCDF;font-size:12px}
.csdp .px-review-score .btn{margin-top:24px;background:#fff;color:var(--px-dark);border:0;font-size:14px;max-width:100%;height:auto;min-height:44px;white-space:normal}
.csdp .px-photo-card{background:var(--px-warm);display:flex;flex-direction:column;align-items:start}
.csdp .px-photo-title{margin:24px 0 12px}.csdp .px-photo-title>svg{width:25px;height:25px;margin-bottom:12px;color:var(--brand-ink)}
.csdp .px-photo-title h3{font-size:23px;line-height:1.25;margin:0;letter-spacing:-.5px}
.csdp .px-photo-card p{font-size:14px;line-height:1.7;margin:0 0 12px}.csdp .px-photo-card .record-source{font-size:12px}
.csdp .px-text-link{display:inline-flex;min-height:44px;align-items:center;font-size:14px;font-weight:600;color:var(--brand-ink)}
.csdp .px-photo-note{font-size:12px;line-height:1.5;color:var(--ink-2);margin-top:auto;padding-top:12px}
.csdp .px-review-guide{grid-column:1/-1;background:#fff}
.csdp .px-guide-head h3{font-size:24px;line-height:1.25;letter-spacing:-.4px;margin:8px 0 18px}
.csdp .px-review-tabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:20px;padding:5px;background:var(--px-soft);border-radius:10px;width:fit-content}
.csdp .px-review-tabs button{background:transparent;border-color:transparent}
.csdp .px-review-tabs button[aria-selected=true]{background:#fff;color:var(--px-dark);border-color:var(--px-line)}
.csdp .px-review-guide h4{font-size:18px;margin:0 0 10px;letter-spacing:0;text-transform:none}
.csdp .px-review-guide p{font-size:14px;line-height:1.8;color:var(--ink-2);margin:0 0 14px;max-width:650px}
.csdp .px-review-guide blockquote{margin:0 0 12px;padding:14px 18px;background:var(--px-soft);border-left:2px solid var(--brand);font-size:16px;line-height:1.7;color:var(--px-dark)}
.csdp .px-review-guide [data-review-panel]+[data-review-panel]{margin-top:18px}
.csdp .px-review-disclosure{margin-top:16px;line-height:1.7;font-size:12px}
.csdp .px-record-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}
.csdp .px-record-card{border:1px solid var(--px-line);border-radius:14px;background:#fff;align-self:start}
.csdp .px-record-card summary{display:flex;flex-direction:column;gap:10px;cursor:pointer;list-style:none;padding:22px}
.csdp .px-record-card summary>span:first-child{font-size:14px;color:var(--ink-2)}
.csdp .px-record-card strong{font-size:23px;line-height:1.3;font-weight:600;letter-spacing:-.5px}
.csdp .px-record-open{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--brand-ink)}
.csdp .px-record-open i{font-size:20px;font-style:normal;transition:transform .18s ease}
.csdp .px-record-card[open]{background:var(--px-soft);border-color:#6C8D96}.csdp .px-record-card[open] i{transform:rotate(45deg)}
.csdp .px-record-card>div{padding:0 22px 22px;font-size:14px;line-height:1.7}.csdp .px-record-card>div .record-source{display:block;margin-top:10px}
.csdp .px-profile .px-record-full{background:#fff;border:1px solid var(--px-line);padding:18px;border-radius:12px}
.csdp .px-profile .px-record-full>summary{font-weight:600;cursor:pointer;min-height:32px;align-content:center}
.csdp .px-profile .px-record-full .record-object{margin-top:18px;padding:0;border:0;box-shadow:none}
.csdp .px-profile :is(button,a,summary,input,[tabindex]):focus-visible{outline:3px solid #146075;outline-offset:4px}
@media(max-width:1000px){.csdp .px-profile .pro-hero-grid{gap:24px}.csdp .px-profile .pro-name h1{font-size:38px}.csdp .px-jump{padding:16px;min-height:135px}}
@media(max-width:760px){.csdp .px-profile .pro-hero-grid{grid-template-columns:1fr;gap:24px;padding:14px 0 24px}.csdp .px-profile .pro-name h1{font-size:36px}.csdp .px-profile [data-main-content]>section{scroll-margin-top:31px}.csdp .px-section-heading h2{font-size:28px}.csdp .px-service-grid{grid-template-columns:1fr}.csdp .px-service-card summary{min-height:72px}.csdp .px-jump strong{font-size:23px}.csdp .px-jump-services strong{font-size:32px}.csdp .px-jump{gap:8px;min-height:132px}.csdp .px-profile .pro-stats{display:none}.csdp .px-review-grid{grid-template-columns:1fr}.csdp .px-review-score{padding:24px}.csdp .px-rating strong{font-size:64px}.csdp .px-photo-card{padding:24px}.csdp .px-photo-title{margin:16px 0 10px}.csdp .px-review-guide{padding:20px}.csdp .px-review-tabs{width:100%;gap:0}.csdp .px-review-tabs button{flex:1;font-size:12px;padding:9px 6px}.csdp .px-question{grid-template-columns:1fr;padding:20px}.csdp .px-question>.btn{justify-self:start}.csdp .px-record-card summary{padding:16px}.csdp .px-record-card strong{font-size:20px}.csdp .px-record-card>div{padding:0 16px 18px}.csdp .px-profile .prof-tabs a{padding:10px;font-size:14px}.csdp .px-profile .tabs-in{gap:0}}
@media(max-width:360px){.csdp .px-record-grid{grid-template-columns:1fr}.csdp .px-jump{padding:13px}.csdp .px-jump strong{font-size:21px}}
@media(prefers-reduced-motion:reduce){.csdp .px-profile *{scroll-behavior:auto!important;transition:none!important;animation:none!important}.csdp .px-jump:hover{transform:none}}

/* Profile deck (2026-10-07): cards under the hero swap the panel below in place (profile-deck.js). Loaded last.
   Without script (.pd-on missing) the cards are anchors and every panel shows, stacked. */
.csdp .pd-profile .pd-hero-map .pro-map{margin:0}
.csdp .pd-profile .pd-hero-map .pro-map-frame{height:340px}

/* Deck strip */
.csdp .pd-deck{position:sticky;top:72px;z-index:30;margin:8px 0 28px;padding:12px 0;background:rgba(250,251,248,.96);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid var(--px-line)}
.csdp .pd-deck-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.csdp .pd-card{position:relative;display:flex;flex-direction:column;gap:3px;min-width:0;padding:14px 16px 13px;border:1px solid var(--px-line);border-radius:14px;background:#fff;color:var(--ink);text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}
.csdp .pd-card:hover{border-color:var(--brand);transform:translateY(-2px)}
.csdp .pd-card:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.csdp .pd-label{font-size:12px;line-height:16px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.csdp .pd-fact{font-size:19px;line-height:1.2;letter-spacing:-.4px;font-weight:650;overflow-wrap:anywhere}
.csdp .pd-sub{font-size:14px;line-height:18px;color:var(--ink-2)}
.csdp .pd-act{margin-top:6px;font-size:14px;line-height:18px;font-weight:600;color:var(--brand-ink)}
.csdp .pd-card.pd-warn{border-color:#b7791f;background:#fff8ec}
.csdp .pd-hint{display:none}
.pd-on .csdp .pd-card[aria-selected="true"],.csdp.pd-on .pd-card[aria-selected="true"]{background:var(--px-dark);border-color:var(--px-dark);color:#fff;box-shadow:0 14px 28px -18px rgba(16,50,60,.7)}
.pd-on .csdp .pd-card[aria-selected="true"] .pd-label,.pd-on .csdp .pd-card[aria-selected="true"] .pd-sub{color:rgba(255,255,255,.78)}
.pd-on .csdp .pd-card[aria-selected="true"] .pd-act{color:#fff}
.pd-on .csdp .pd-card[aria-selected="true"]::after{content:"";position:absolute;left:50%;bottom:-7px;width:12px;height:12px;margin-left:-6px;background:var(--px-dark);transform:rotate(45deg);border-radius:2px}

/* Panels */
.csdp .pd-panels{display:flex;flex-direction:column;gap:inherit}
.pd-on .csdp .pd-panels>[data-deck-panel][hidden]{display:none!important}
.pd-on .csdp .pd-panels>[data-deck-panel]{min-height:420px}
.pd-on .csdp .pd-panels>[data-deck-panel]:focus{outline:none}
.csdp .pd-in-right{animation:pdInR .26s ease both}.csdp .pd-in-left{animation:pdInL .26s ease both}
@keyframes pdInR{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes pdInL{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
.csdp .pd-next{display:none}
.pd-on .csdp .pd-next{display:flex;align-items:center;gap:10px;margin-top:28px;padding:14px 18px;border:1px solid var(--px-line);border-radius:12px;background:var(--px-soft);color:var(--ink);text-decoration:none;font-size:16px;line-height:20px}
.pd-on .csdp .pd-next span:first-child{font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}
.pd-on .csdp .pd-next b{flex:1;font-weight:600}
.pd-on .csdp .pd-next:hover{border-color:var(--brand)}

/* Overview panel */
.csdp .pd-ov-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(0,1fr);gap:32px;align-items:start}
.csdp .pd-ov-main{display:flex;flex-direction:column;gap:22px;min-width:0}
.csdp .pd-ov-side{padding:20px;border:1px solid var(--px-line);border-radius:14px;background:#fff}
.csdp .pd-ov-side h3{margin:0 0 6px;font-size:16px;line-height:22px}
.csdp .pd-ov-side .ov-row{grid-template-columns:118px minmax(0,1fr)}
.csdp .pd-desc{margin:0}
.csdp .pd-desc blockquote{margin:8px 0 0;font-size:18px;line-height:1.6}
.csdp .pd-desc blockquote.pd-clamp{display:-webkit-box;-webkit-line-clamp:5;-webkit-box-orient:vertical;overflow:hidden}
.csdp .pd-more{margin:6px 0 0;padding:0;border:0;background:none;color:var(--brand-ink);font:600 14px/20px var(--font-sans);cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.csdp .pd-overview .highlights{margin-top:24px}
.csdp .pd-where{max-width:760px}
.csdp .pd-map{margin-top:16px}

@media(max-width:1000px){.csdp .pd-ov-grid{grid-template-columns:1fr;gap:20px}}
/* Below 1100px six cards would wrap into a tall sticky block: one row that scrolls sideways instead. */
@media(max-width:1100px){
  .csdp .pd-deck-in{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:none}
  .csdp .pd-deck-in::-webkit-scrollbar{display:none}
  .csdp .pd-card{flex:0 0 176px;scroll-snap-align:start}
  .pd-on .csdp .pd-card[aria-selected="true"]::after{display:none}
  .pd-on .csdp .pd-hint{display:block;margin:4px 0 0;font-size:12px;line-height:16px;color:var(--ink-2)}
}
@media(max-width:760px){
  .csdp .pd-profile .pd-hero-map{display:none}
  .csdp .pd-deck{top:60px;margin:0 -20px 20px;padding:10px 0 8px}
  .csdp .pd-deck-in{display:flex;gap:8px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-padding:0 20px;padding:0 20px 6px;scrollbar-width:none}
  .csdp .pd-deck-in::-webkit-scrollbar{display:none}
  .csdp .pd-card{flex:0 0 152px;scroll-snap-align:start;padding:11px 13px}
  .csdp .pd-fact{font-size:18px}.csdp .pd-act{display:none}
  .pd-on .csdp .pd-card[aria-selected="true"]::after{display:none}
  .pd-on .csdp .pd-hint{display:block;margin:4px 20px 0;font-size:12px;line-height:16px;color:var(--ink-2)}
  .pd-on .csdp .pd-panels>[data-deck-panel]{min-height:0}
  .csdp .pd-ov-side .ov-row{grid-template-columns:100px minmax(0,1fr)}
}
@media(prefers-reduced-motion:reduce){.csdp .pd-in-right,.csdp .pd-in-left{animation:none}.csdp .pd-card{transition:none}}
.csdp .pd-svc-note{margin-top:28px}.csdp .pd-svc-note .px-section-heading h3{margin:0;font-size:20px}

/* Coherent profile: a single identity/contact surface and a focused reading card.
   Kept feature-local; every panel remains present without JavaScript. */
.csdp .pd-profile{--pd-line:#DFE4E6;--pd-paper:#fff;--pd-soft:#F0F4F5;--pd-ink:#12343D;max-width:1240px}
.csdp .pd-profile .pro-hero{padding:16px 0 0;margin:0;background:transparent;border:0}
.csdp .pd-profile .pro-hero>.wrap{padding:0;width:100%}
.csdp .pd-profile .pro-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:48px;align-items:center;padding:32px 0 30px}
.csdp .pd-profile .pro-name{display:block;min-width:0}
.csdp .pd-profile .pro-id{gap:10px}
.csdp .pd-profile .pro-name .av{display:none}
.csdp .pd-profile .pro-name h1{max-width:20ch;margin:9px 0 15px;font-size:clamp(32px,3.4vw,46px);line-height:1.06;letter-spacing:-1.7px;font-weight:600;overflow-wrap:anywhere}
.csdp .pd-profile .pro-rateline{margin:0;gap:10px}
.csdp .pd-profile .pro-sub{margin:12px 0;font-size:16px;line-height:1.55}
.csdp .pd-profile .pd-identity-chips{display:flex;flex-wrap:wrap;gap:6px}
.csdp .pd-profile .pd-identity-chips .chip{font-size:14px;line-height:18px;padding:5px 9px}
.csdp .pd-profile .pd-identity-chips .chip-distinction{flex-basis:auto}
.csdp .pd-profile .pd-contact{padding:24px;background:var(--pd-paper);border:1px solid var(--pd-line);border-radius:20px;box-shadow:0 8px 26px -20px rgba(18,52,61,.35);min-width:0}
.csdp .pd-contact .pd-contact-intro{margin:8px 0 18px;font-size:16px;line-height:1.5}
.csdp .pd-contact-primary{display:flex;flex-wrap:wrap;gap:8px}
.csdp .pd-contact-primary .btn{flex:1;min-height:48px;font-size:16px;padding:12px 14px;white-space:nowrap}
.csdp .pd-save{min-height:48px;border:1px solid var(--pd-line);border-radius:10px;padding:10px 12px;background:var(--pd-soft);color:var(--pd-ink);font:600 14px/20px var(--font-sans);cursor:pointer}
.csdp .pd-save[aria-pressed="true"]{border-color:var(--brand);background:var(--brand-tint)}
.csdp .pd-direct-note{font-size:14px;line-height:19px;color:var(--ink-2);margin:10px 0 16px}
.csdp .pd-contact-more{border-top:1px solid var(--pd-line);padding-top:12px}
.csdp .pd-contact-more summary{font-size:14px;font-weight:500;cursor:pointer;min-height:32px;padding:5px 0}
.csdp .pd-contact-links{display:grid;gap:0;margin:8px 0}
.csdp .pd-contact-links>a,.csdp .pd-contact-links>button{display:block;text-align:left;border:0;background:none;color:var(--brand-ink);font:500 14px/20px var(--font-sans);padding:10px 0;min-height:40px;text-decoration:none;cursor:pointer}
.csdp .pd-profile .split{display:block;margin:0 0 32px}
.csdp .pd-profile [data-main-content]{gap:32px;min-width:0}
.csdp .pd-profile .rail{display:none}
.csdp .pd-deck{margin:0 0 20px;padding:16px 0 12px;background:rgba(250,251,248,.97);backdrop-filter:blur(12px);border-bottom:1px solid var(--pd-line)}
.csdp .pd-deck-head{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:12px}
.csdp .pd-deck-head .eyebrow{font-size:14px;color:var(--brand-ink)}
.csdp .pd-deck-head p{margin:3px 0 0;color:var(--ink-2);font-size:14px;line-height:20px}
.csdp .pd-navigation{display:flex;align-items:center;gap:8px;flex-shrink:0}
.csdp .pd-navigation[hidden]{display:none}
.csdp .pd-navigation button{display:grid;place-items:center;min-width:42px;min-height:42px;border:1px solid var(--pd-line);border-radius:50%;background:var(--pd-paper);color:var(--pd-ink);font:600 18px/22px var(--font-sans);cursor:pointer}
.csdp .pd-navigation button:disabled{opacity:.4;cursor:default}
.csdp .pd-navigation [data-deck-progress]{min-width:46px;text-align:center;font:500 14px/20px var(--font-sans);color:var(--ink-2);white-space:nowrap}
.csdp .pd-navigation [data-deck-view]{border-radius:9px;font-size:14px;min-width:76px;padding:8px 12px;margin-left:8px}
.csdp .pd-navigation [data-deck-view][aria-pressed="true"]{background:var(--pd-ink);color:#fff}
.csdp .pd-deck-in{gap:8px;position:relative}
.csdp .pd-card{gap:5px;padding:14px 16px;border-color:var(--pd-line);background:var(--pd-paper);min-height:114px;transition:background .2s,border-color .2s,box-shadow .2s,transform .2s}
.csdp .pd-card:hover{box-shadow:0 8px 22px -15px rgba(18,52,61,.25);text-decoration:none}
.csdp .pd-label{display:flex;align-items:center;gap:7px;font-size:14px;line-height:18px;font-weight:500;letter-spacing:0;text-transform:none}
.csdp .pd-card-number{font-size:14px;font-weight:500;opacity:.55}
.csdp .pd-fact{font-size:18px;font-weight:600}
.csdp .pd-act{display:none}
.pd-on .csdp .pd-card[aria-selected="true"]{background:var(--pd-ink);border-color:var(--pd-ink);color:#fff}
.pd-on .csdp .pd-card[aria-selected="true"]::after{display:none}
.csdp .pd-profile :is(a,button,summary,input):focus-visible{outline:3px solid #2574a8;outline-offset:3px}
.csdp .pd-panels{gap:24px}
.csdp .pd-profile .pd-panels>[data-deck-panel]{padding:32px;margin:0;border:1px solid var(--pd-line);border-radius:22px;background:var(--pd-paper);min-width:0;scroll-margin-top:260px;box-shadow:0 10px 30px -26px rgba(18,52,61,.4)}
.pd-on .csdp .pd-panels:not(.pd-read-all)>[data-deck-panel]{min-height:400px}
.csdp .pd-panels .row-head{margin-bottom:24px;align-items:baseline}
.csdp .pd-panels .row-head h2,.csdp .pd-panels .px-section-heading h2{font-size:28px;line-height:1.15;letter-spacing:-.8px}
.csdp .pd-panels .row-head>a{font-size:14px;white-space:normal}
.pd-on .csdp .pd-panels .pd-next{gap:12px;margin-top:28px;padding:16px 0 0;border:0;border-top:1px solid var(--pd-line);border-radius:0;background:transparent;color:var(--brand-ink);font-size:14px;min-height:48px}
.pd-on .csdp .pd-panels.pd-read-all .pd-next{display:none}
.csdp .pd-next b{font-weight:500}
.csdp .pd-ov-grid{grid-template-columns:minmax(0,1.45fr) minmax(260px,1fr);gap:40px}
.csdp .pd-ov-main{gap:24px}
.csdp .pd-profile .pd-desc blockquote{margin:10px 0 0;font-size:18px;line-height:1.65;letter-spacing:-.15px}
.csdp .pd-profile .pd-desc{background:transparent;padding:0;border:0;border-radius:0}
.csdp .pd-profile .pd-desc blockquote,.csdp .pd-profile .pd-desc blockquote p{font-family:var(--font-sans);color:var(--ink)}
.csdp .pd-desc blockquote p{margin:0 0 12px}
.csdp .pd-desc blockquote.pd-clamp{-webkit-line-clamp:6}
.csdp .pd-more{display:inline-block;margin:8px 0 0;padding:5px 0;min-height:36px}
.csdp .pd-desc figcaption{margin-top:14px;font-size:14px;line-height:1.55;color:var(--ink-2)}
.csdp .pd-listing-details{padding:18px 0 0;border-top:1px solid var(--pd-line)}
.csdp .pd-listing-details summary{font-size:14px;font-weight:600;cursor:pointer;min-height:40px;line-height:20px;padding:10px 0}
.csdp .pd-listing-details h3{font-size:18px;margin:20px 0 10px}
.csdp .pd-listing-details .ov-records{margin:18px 0}
.csdp .pd-listing-details .ov-row{grid-template-columns:120px minmax(0,1fr)}
.csdp .pd-listing-details .highlights{margin-top:20px}
.csdp .pd-call-plan{padding:24px;border-radius:16px;background:var(--pd-soft);border:1px solid var(--pd-line);min-width:0}
.csdp .pd-call-plan h3{font-size:25px;line-height:1.2;letter-spacing:-.7px;margin:10px 0}
.csdp .pd-call-plan>p{font-size:14px;line-height:1.5;margin:0}
.csdp .pd-call-plan ol{list-style:none;padding:0;margin:20px 0}
.csdp .pd-call-plan li{display:flex;gap:12px;align-items:baseline;font-size:16px;line-height:1.5;padding:14px 0;border-top:1px solid var(--pd-line)}
.csdp .pd-call-plan li>span{font-size:14px;color:var(--brand-ink);flex-shrink:0}
.csdp .pd-call-plan .btn{width:100%;min-height:44px;background:var(--pd-paper)}
.csdp .pd-call-plan .record-source{margin-top:10px;font-size:14px;min-height:20px}
.csdp .pd-call-plan [hidden]{display:none}
.csdp .pd-overview>.ov-src{margin:24px 0 0;padding-top:16px;border-top:1px solid var(--pd-line)}
.csdp .pd-where{max-width:850px}
.csdp .pd-profile .pd-map .pro-map-frame{height:320px}
.csdp .pd-profile .prof-before{padding:24px 0 0;border-top:1px solid var(--pd-line)}
.csdp .pd-profile .prof-before .row-head h2,.csdp .pd-profile .prof-similar .row-head h2{font-size:24px}
.csdp .pd-profile .prof-owner .owner-card{padding:24px;border-radius:18px}
@media(max-width:1100px){
 .csdp .pd-profile .pro-hero-grid{grid-template-columns:minmax(0,1fr) 310px;gap:32px}
 .csdp .pd-deck-in{scroll-padding:0 2px;padding:2px 2px 8px;overscroll-behavior-x:contain}
 .csdp .pd-ov-grid{gap:28px}
}
@media(max-width:760px){
 .csdp .pd-profile .crumbs{padding-top:10px;margin-bottom:0;flex-wrap:nowrap;overflow:hidden;white-space:nowrap;font-size:14px}
 .csdp .pd-profile .crumbs .here,.csdp .pd-profile .crumbs>span[aria-hidden]:last-of-type{display:none}
 .csdp .pd-profile .pro-id{gap:8px}
 .csdp .pd-profile .pro-hero-grid{grid-template-columns:minmax(0,1fr);gap:20px;padding:22px 0}
 .csdp .pd-profile .pro-name h1{font-size:34px;line-height:1.08;letter-spacing:-1.1px;margin:8px 0 12px;max-width:22ch}
 .csdp .pd-profile .pro-sub{margin:10px 0;font-size:14px}
 .csdp .pd-profile .pd-identity-chips{gap:5px}
 .csdp .pd-profile .pd-identity-chips .chip{padding:4px 7px;font-size:14px;line-height:18px;min-height:0}
 .csdp .pd-profile .pro-rateline .rate-pill{font-size:14px}
 .csdp .pd-profile .pd-contact{padding:16px;border-radius:16px}
 .csdp .pd-contact>.eyebrow,.csdp .pd-contact>.pd-contact-intro{display:none}
 .csdp .pd-contact-primary{flex-wrap:nowrap}
 .csdp .pd-contact-primary .btn{font-size:14px;padding:12px 10px;min-width:0}
 .csdp .pd-contact-more{padding-top:8px}
 .csdp .pd-direct-note{margin:8px 0 10px}
 .csdp .pd-deck{margin:0 -20px 16px;padding:12px 20px 8px}
 .csdp .pd-deck-head{gap:8px;margin-bottom:10px}
 .csdp .pd-deck-head p{display:none}
 .csdp .pd-deck-head .eyebrow{font-size:14px;letter-spacing:0;text-transform:none}
 .csdp .pd-navigation{gap:4px}
 .csdp .pd-navigation button{min-width:34px;min-height:38px;font-size:16px}
 .csdp .pd-navigation [data-deck-progress]{min-width:40px}
 .csdp .pd-navigation [data-deck-view]{margin-left:4px;min-width:64px;padding:6px 8px}
 .csdp .pd-card{flex:0 0 160px;padding:12px 14px;min-height:105px;border-radius:12px}
 .csdp .pd-fact{font-size:18px}
 .pd-on .csdp .pd-hint{margin:3px 0 0;font-size:14px}
 .csdp .pd-profile .pd-panels>[data-deck-panel]{padding:22px 18px;border-radius:18px;scroll-margin-top:260px}
 .pd-on .csdp .pd-panels:not(.pd-read-all)>[data-deck-panel]{min-height:0}
 .csdp .pd-panels .row-head{gap:10px;margin-bottom:20px}
 .csdp .pd-panels .row-head h2,.csdp .pd-panels .px-section-heading h2{font-size:25px;overflow-wrap:anywhere}
 .csdp .pd-ov-grid{grid-template-columns:minmax(0,1fr);gap:24px}
 .csdp .pd-profile .pd-desc blockquote{font-size:18px;line-height:1.6}
 .csdp .pd-call-plan{padding:20px}
 .csdp .pd-listing-details .ov-row{grid-template-columns:100px minmax(0,1fr)}
 .csdp .pd-profile .pd-map .pro-map-frame{height:250px}
}
@media(max-width:360px){.csdp .pd-deck-head{flex-wrap:wrap}.csdp .pd-navigation{margin-left:auto}.csdp .pd-contact-primary{flex-wrap:wrap}.csdp .pd-profile .pro-name h1{font-size:30px}}
@media(prefers-reduced-motion:reduce){.csdp .pd-card:hover{transform:none}}

/* October 7 owner revision: shorter sections and a continuous on-site reading path. */
.csdp .pd-deck-head{margin-bottom:10px}
.csdp .pd-card{min-height:88px;padding:12px 14px;gap:5px}
.csdp .pd-fact{font-size:16px;line-height:1.3}
.csdp .pd-sub{font-size:12px;line-height:1.35}
.csdp .pd-profile .pd-contact{align-self:start;padding:22px}
.csdp .pd-contact>.eyebrow{display:block;margin-bottom:16px}
.csdp .pd-contact-more{margin-top:18px}
.csdp .pd-profile .pd-desc blockquote.pd-clamp{-webkit-line-clamp:4}
.csdp .pd-profile .pd-desc blockquote{font-size:18px;line-height:1.6;max-width:80ch}
.csdp .pd-desc figcaption{font-size:12px;margin-top:10px}
.csdp .pd-disclosure-row{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:24px;align-items:start}
.csdp .pd-disclosure-row>details,.csdp .pd-sources{padding:0;border:1px solid var(--pd-line);border-radius:12px;background:#fff;min-width:0}
.csdp .pd-disclosure-row>details>summary,.csdp .pd-sources>summary{list-style:none;display:flex;justify-content:space-between;gap:16px;align-items:center;font:500 14px/20px var(--font-sans);min-height:52px;padding:14px 18px;cursor:pointer;color:var(--ink)}
.csdp .pd-disclosure-row>details>summary::-webkit-details-marker,.csdp .pd-sources>summary::-webkit-details-marker{display:none}
.csdp .pd-disclosure-row>details>summary::after,.csdp .pd-sources>summary::after{content:'+';font-size:20px;font-weight:400;color:var(--brand-ink)}
.csdp .pd-disclosure-row>details[open]>summary::after,.csdp .pd-sources[open]>summary::after{content:'−'}
.csdp .pd-disclosure-row>details>summary:hover,.csdp .pd-sources>summary:hover{background:var(--pd-soft);border-radius:12px}
.csdp .pd-disclosure-row>details>:not(summary),.csdp .pd-sources>:not(summary){margin:12px 18px;font-size:14px;line-height:1.6}
.csdp .pd-disclosure-row>details>a,.csdp .pd-sources>a{display:block;color:var(--brand-ink);min-height:36px;padding:7px 0}
.csdp .pd-call-plan ol{margin:0 18px 12px;padding:0}
.csdp .pd-call-plan li{font-size:14px;padding:12px 0}
.csdp .pd-call-plan .btn{width:calc(100% - 36px)}
.csdp .pd-proof-note{margin:20px 0 0;font-size:12px}
.csdp .pd-listing-details .ov-row{margin:0 18px;padding:12px 0}
.csdp .pd-review-summary{display:flex;align-items:center;gap:28px;padding:28px;background:var(--pd-soft);border-radius:16px;border:1px solid var(--pd-line)}
.csdp .pd-rating-value{display:flex;align-items:baseline;gap:8px;color:var(--pd-ink);flex-shrink:0}
.csdp .pd-rating-value strong{font:600 60px/1 var(--font-sans);letter-spacing:-3px}
.csdp .pd-rating-value>span{font-size:16px;color:var(--ink-2)}
.csdp .pd-review-summary h3{font-size:21px;line-height:1.3;margin:0 0 6px}
.csdp .pd-review-summary p{font-size:14px;line-height:1.5;margin:6px 0 0}
.csdp .pd-review-summary .record-source{font-size:14px}
.pd-on .csdp .pd-panels .pd-next{background:var(--pd-soft);border:1px solid var(--pd-line);border-radius:12px;padding:16px 20px;min-height:58px;justify-content:flex-start;gap:6px}
.csdp .pd-next b{font-weight:600;color:var(--pd-ink)}
.csdp .pd-next>span:last-child{margin-left:auto;font-size:22px}
.csdp .pd-next:hover{background:#E5EDEF;text-decoration:none}
.csdp .pd-profile .pd-panels>[data-deck-panel]{min-height:0}
.pd-on .csdp .pd-profile .pd-panels:not(.pd-read-all)>[data-deck-panel]{min-height:0}
.csdp .pd-profile .pd-panels>[data-deck-panel]>.row-head{margin-bottom:22px}
.csdp .pd-profile .px-section-heading .eyebrow{display:none}
.csdp .pd-profile .px-record-grid{gap:10px}
.csdp .pd-profile .px-record-card summary{padding:18px;gap:8px}
.csdp .pd-profile .px-record-card strong{font-size:21px}
@media(max-width:760px){
 .csdp .pd-card{flex-basis:140px;min-height:88px;padding:11px 12px}
 .csdp .pd-fact{font-size:16px}
 .csdp .pd-navigation button{min-width:40px;min-height:44px}
 .csdp .pd-navigation [data-deck-view]{min-width:70px;padding:8px}
 .csdp .pd-deck-head .eyebrow{display:none}
 .csdp .pd-navigation{margin-left:auto}
 .csdp .pd-profile .pd-contact{padding:16px}
 .csdp .pd-contact>.eyebrow{display:none}
 .csdp .pd-contact-more{margin-top:12px}
 .csdp .pd-disclosure-row{grid-template-columns:1fr;gap:10px;margin-top:20px}
 .csdp .pd-review-summary{align-items:flex-start;gap:18px;padding:20px;flex-wrap:wrap}
 .csdp .pd-rating-value strong{font-size:52px}
 .csdp .pd-review-summary h3{font-size:19px}
 .csdp .pd-profile .pd-desc blockquote{font-size:16px}
 .pd-on .csdp .pd-panels .pd-next{font-size:14px;padding:14px 16px}
}

/* ReviewHarvest clone layer: global system + home (2026-10-09).
   Every value is measured on reviewharvest.com the same day (reference-harvests/reviewharvest-2026-10-09/SUMMARY.md,
   measure.cjs at 1440 and 390). Loaded last in csdp-all.css; template owners add rh-directory.css, rh-profile.css and
   rh-content.css after it. CSDP keeps its own teal, tints, logo and data; RH's green, mocks, prices and claims are never copied. */

:root{
  --rh-ink-75:rgba(14,26,32,.75);   /* RH body copy at 75% ink */
  --rh-ink-70:rgba(14,26,32,.70);   /* RH section subheads */
  --rh-ink-60:rgba(14,26,32,.64);   /* RH captions and eyebrows (64%: AA 4.5:1 on the tint and sand cards) */
  --rh-line:rgba(14,26,32,.10);     /* RH hairline: ink at 10% */
  --rh-mint:var(--tint-1);          /* RH mint cards and bands, CSDP tint */
  --rh-sec:112px;                   /* RH section rhythm */
  /* Brand (2026-10-10, Josh: "match the site teal to the logo"): fills, buttons, pills and icons use --brand = the logo
     teal #007A9C exactly (assets/tokens.json); text set in teal uses --brand-ink, the same hue one step deeper, so it
     keeps AA contrast on the tint and sand cards (#007A9C measures 4.40:1 there). */
  --brand-ink:#00718F;
  /* Warning and RSP text (2026-10-10, Josh: "yes darken them"): amber and orange words use the deeper inks csdp-polish.css
     already gave chips and the RSP mark, AA on white, the tints and the sand card (5.07:1 or more). Fills and icons keep
     --attention and --accent. */
  --attention-ink:#8A5300;
  --accent-ink:#A2410F;
}
:root[data-theme="dark"]{--brand-ink:var(--brand);--attention-ink:var(--attention);--accent-ink:var(--accent)}
/* Phones: RH's sections measure 80/80 at 390 (sitewide compliance pass 2026-10-10; was 72). */
@media (max-width:760px){:root{--rh-sec:80px}}

/* ---------- Record values: no typewriter face (Josh, 2026-10-10: "i hate that font for the cslb license") ----------
   RH sets everything in one sans. License numbers, record values and counts now use the site sans with even-width
   figures, so numbers still line up. This outranks the :root --font-mono in csdp-brand.css (html[data-display] is more specific). */
html[data-display="instrument"]{--font-mono:var(--font-sans)}
.csdp .record-value,.csdp .mono,.csdp .sc-lic,.csdp .slice-count,.csdp .num{font-variant-numeric:tabular-nums}
.csdp .sc-lic{font-weight:500;letter-spacing:-.1px}
.csdp .slice-count{font-weight:500;letter-spacing:-.1px}

/* ---------- Header: 81px, white at 95% with blur ---------- */
/* Phones too: RH's header measures 81 at 390 on all 12 pages (compliance pass 2026-10-10; it was 64 here). Sticky
   elements under it (the profile deck) sit at top:81px; profile-deck.js reads that value, so scrolling follows. */
.csdp .hdr-in{height:81px}

/* ---------- Type: RH sets every headline at weight 500 ---------- */
/* H1 on every template: 48/500, -1px (36px at 390). One phrase may carry the filled .hl pill. */
.csdp h1,.csdp .ux-home-copy h1,.csdp .ux-directory .city-hero h1,.csdp .ux-compare .sec-top h1,.csdp .ux-profile .pro-name h1,
.csdp .px-profile .pro-name h1,.csdp .pd-profile .pro-name h1,.csdp .pv6 .pro-id h1,.csdp .hero .hero-copy h1,.csdp .hero-copy h1,
.csdp .article h1,.csdp .prof-head h1,.csdp .profile-layout .prof-head h1,.csdp .profile-immersive .pro-id h1,.csdp .profile-immersive .prof-header h1{
  font-size:48px;line-height:1.04;font-weight:500;letter-spacing:-1px}
.csdp h1:has(.hl){line-height:1.14}
@media (max-width:760px){
  .csdp h1,.csdp .ux-home-copy h1,.csdp .ux-directory .city-hero h1,.csdp .ux-compare .sec-top h1,.csdp .ux-profile .pro-name h1,
  .csdp .px-profile .pro-name h1,.csdp .pd-profile .pro-name h1,.csdp .pv6 .pro-id h1,.csdp .hero .hero-copy h1,.csdp .hero-copy h1,
  .csdp .article h1,.csdp .prof-head h1,.csdp .profile-layout .prof-head h1,.csdp .profile-immersive .pro-id h1,.csdp .profile-immersive .prof-header h1{
    font-size:36px;letter-spacing:-.7px}
}
.csdp h2{font-weight:500}

/* Section head (RH: centred H2 59.2/500/-1.2px, 18/28 subhead at 70% ink, max 768). .left = the left-aligned variant. */
.csdp .rh-sec{padding:var(--rh-sec) 0}
.csdp .rh-sec.tight{padding-top:0}
.csdp .rh-head{max-width:768px;margin:0 auto 56px;text-align:center}
.csdp .rh-head.left{margin-left:0;text-align:left}
.csdp .rh-head h2{font-size:59.2px;line-height:1.05;font-weight:500;letter-spacing:-1.2px;margin:0;text-wrap:balance}
.csdp .rh-head p{font-size:18px;line-height:28px;color:var(--rh-ink-70);margin:18px auto 0;max-width:672px}
.csdp .rh-head.left p{margin-left:0}
.csdp .rh-eyebrow{display:block;font-size:14px;line-height:20px;font-weight:600;letter-spacing:2.1px;text-transform:uppercase;color:var(--rh-ink-60);margin-bottom:16px}
@media (max-width:760px){
  .csdp .rh-head{margin-bottom:36px}
  .csdp .rh-head h2{font-size:30px;line-height:1.05;letter-spacing:-.6px}
  .csdp .rh-head p{font-size:16px;line-height:24px;margin-top:12px}
}

/* ---------- Buttons: 48px, 12x24, radius 10, regular weight; the soft partner is the mint button ---------- */
.csdp .btn{border-radius:10px}
.csdp .btn-primary,.csdp .btn-secondary,.csdp .btn-soft,.csdp .btn-white{height:48px;padding:0 24px;font-size:16px;font-weight:400}
.csdp .btn-lg{height:56px;padding:0 24px}
.csdp .btn-soft{display:inline-flex;align-items:center;justify-content:center;gap:8px;background:var(--rh-mint);color:var(--ink);border:0;box-shadow:none}
.csdp .btn-soft:hover{background:#E2EAEC;color:var(--ink)}
.csdp .btn-white{display:inline-flex;align-items:center;justify-content:center;background:#fff;color:var(--ink);border:0}
.csdp .btn-white:hover{background:var(--rh-mint);color:var(--ink)}
.csdp .rh-pair{display:flex;flex-wrap:wrap;gap:12px}
.csdp .rh-pair .btn{justify-content:center;text-align:center}
.csdp .rh-pair.wide{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.csdp .rh-pair.wide .btn{width:100%;height:56px}
@media (max-width:600px){.csdp .rh-pair .btn{flex:1 1 100%}.csdp .rh-pair.wide{grid-template-columns:1fr}}

/* ---------- FAQ: RH rows (rounded 12, 1px hairline, 24px sides, 20px rows, chevron turns when open) ---------- */
.csdp details.faq{border:1px solid var(--rh-line);border-radius:12px;padding:0 24px;margin:0 0 12px;background:#fff}
.csdp details.faq:first-child{border-top:1px solid var(--rh-line)}
.csdp details.faq summary{padding:20px 0;font:600 18px/24px var(--font-sans);letter-spacing:-.3px;color:var(--ink)}
.csdp details.faq summary::after{width:8px;height:8px;border-width:0 1.5px 1.5px 0;border-color:var(--rh-ink-60);margin-left:16px}
.csdp details.faq .faq-body{padding:0 0 20px}
.csdp details.faq .faq-body p{color:var(--rh-ink-75);font-size:16px;line-height:24px}
.csdp .rh-faq{max-width:896px;margin:0 auto}

/* ---------- Closing call to action (RH: white section, inner radius-24 brand block, white H2, white button, floating toasts) ---------- */
.csdp .rh-cta-sec{padding:64px 0 var(--rh-sec)}
.csdp .rh-cta{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,448px) minmax(0,1fr);gap:48px;align-items:center;background:var(--brand-deep);color:#fff;border-radius:24px;padding:72px 64px;min-height:420px}
.csdp .rh-cta h2{font-size:59.2px;line-height:1.05;font-weight:500;letter-spacing:-1.2px;color:#fff;margin:0}
.csdp .rh-cta p{font-size:18px;line-height:28px;color:rgba(255,255,255,.85);margin:20px 0 32px}
.csdp .rh-toasts{position:relative;height:100%;min-height:276px}
.csdp .rh-toast{position:absolute;display:flex;align-items:center;gap:12px;padding:14px 20px 14px 14px;border-radius:16px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);color:#fff;font-size:18px;line-height:22px;white-space:nowrap}
.csdp .rh-toast .av{flex:none}
.csdp .rh-toast small{display:block;font-size:14px;line-height:18px;color:rgba(255,255,255,.75)}
.csdp .rh-toast:nth-child(1){top:6%;left:6%}
.csdp .rh-toast:nth-child(2){top:38%;left:34%}
.csdp .rh-toast:nth-child(3){top:70%;left:10%}
@media (max-width:900px){
  .csdp .rh-cta{grid-template-columns:1fr;padding:48px 28px;min-height:0}
  .csdp .rh-cta h2{font-size:36px;letter-spacing:-.7px}
  .csdp .rh-toasts{min-height:0;display:flex;flex-direction:column;gap:10px}
  .csdp .rh-toast{position:static;white-space:normal}
}

/* ---------- Footer: RH mint ground and RH layout (measured 2026-10-12, qa/rh-fixes-2026-10-12) ----------
   The logo on its own row, four equal link columns (274 px with 40 px gaps at 1440; one column below 768 px), then the
   hairline row (css.mjs). review-pass.css forces two columns and 40 px on top at 640 px and under, the columns with
   !important; these rules outrank it. */
.csdp .ftr{background:var(--rh-mint);padding:32px 0 16px}
@media (max-width:767px){.csdp .ftr .ftr-grid{grid-template-columns:minmax(0,1fr)!important;gap:40px}}

/* =====================================================================================================
   HOME (pages/home.mjs). Section order and sizes follow rh-home-1440/390 in the 2026-10-09 harvest.
   ===================================================================================================== */
.csdp .rh-home{background:#fff}
.csdp .rh-home p{line-height:24px}

/* 1. Hero: white ground, 2 columns 584 | 584 with a 48 gap; three short lines under the H1; proof line with icon. */
.csdp .rh-hero{padding:64px 0 40px}
.csdp .rh-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.csdp .rh-hero-copy h1{margin:0 0 20px}
.csdp .rh-hero-copy .lede{font-size:18px;line-height:28px;color:var(--rh-ink-70);max-width:512px;margin:0 0 28px}
.csdp .rh-proof{display:flex;gap:10px;align-items:center;font-size:16px;line-height:24px;color:var(--ink);margin:20px 0 8px}
.csdp .rh-proof svg{width:20px;height:20px;flex:none;color:var(--brand-ink)}
.csdp .rh-proof b{font-weight:600}

/* 2. Named sources (RH logo strip: a centred 16px label, then a row of greyscale marks). */
.csdp .rh-logos{padding:24px 0 8px}
.csdp .rh-logos p{text-align:center;font-size:16px;line-height:24px;color:var(--ink);margin:0 0 22px}
.csdp .rh-logos ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;justify-content:center;gap:14px 44px}
.csdp .rh-logos li{font-family:var(--font-display);font-weight:600;font-size:18px;line-height:24px;letter-spacing:-.3px;color:var(--rh-ink-60);white-space:nowrap}

/* 3. Three problems (RH: 3 × 394 cards, gap 16, radius 10, padding 32, white type over the picture). */
.csdp .rh-problems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.csdp .rh-problem{position:relative;overflow:hidden;border-radius:10px;min-height:450px;padding:32px;background:var(--brand-deep);color:#fff;isolation:isolate}
.csdp .rh-problem img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.csdp .rh-problem::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,50,53,.92) 0%,rgba(10,50,53,.62) 42%,rgba(10,50,53,.10) 100%)}
.csdp .rh-problem h3{font-size:28px;line-height:29.4px;font-weight:500;letter-spacing:-.6px;color:#fff;margin:0 0 10px}
.csdp .rh-problem p{font-size:16px;line-height:24px;color:rgba(255,255,255,.9);margin:0;max-width:320px}
.csdp .rh-photo-note{margin:14px 0 0;text-align:center;font-size:14px;line-height:18px;color:var(--rh-ink-60)}

/* 4. How we fix that (RH: centred head; 584 | 584; rows of icon + 20.8px title + one line, hairlines between; the
   product card right; then two full-width 56px buttons). */
.csdp .rh-fix{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:center}
.csdp .rh-benefits{list-style:none;margin:0;padding:0}
.csdp .rh-benefits li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:16px;padding:22px 0;border-bottom:1px solid var(--rh-line)}
.csdp .rh-benefits li:first-child{padding-top:0}
.csdp .rh-benefits li:last-child{border-bottom:0}
.csdp .rh-benefits .icon-tile{width:40px;height:40px;border-radius:10px;background:var(--rh-mint);color:var(--brand-ink)}
.csdp .rh-benefits h3{font-size:20.8px;line-height:21.8px;font-weight:500;letter-spacing:-.4px;margin:2px 0 8px}
.csdp .rh-benefits p{font-size:16px;line-height:24px;color:var(--rh-ink-75);margin:0}
.csdp .rh-fix-card{border-radius:12px;background:#fff;box-shadow:0 1px 2px rgba(14,26,32,.05),0 24px 48px -16px rgba(14,26,32,.18)}
.csdp .rh-fix-card .rec-card{margin:0;box-shadow:none}
/* The record card's name must keep its own line on phones (2026-10-03 audit: one word per line beside the badge). */
.csdp .rh-fix-card .rec-head{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px 16px;align-items:center}
@media (max-width:760px){
  .csdp .rh-fix-card .rec-head{grid-template-columns:auto minmax(0,1fr)}
  .csdp .rh-fix-card .rec-head .av{width:48px;height:48px;font-size:18px}
  .csdp .rh-fix-card .rec-head .rate{grid-column:1 / -1;justify-self:start}
  .csdp .rh-fix-card .rec-name{font-size:20px;line-height:26px}
}
.csdp .rh-fix-sec .rh-pair.wide{margin-top:48px}

/* 5. Before you hire (RH "Boost": H2 max 448 + 18/28 subhead + pair + mint stat card radius 15 / 32; timeline card
   radius 20, 1px hairline, padding 40, rows 104 | 378 with a vertical rule under the step label). */
.csdp .rh-boost{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:48px;align-items:start}
.csdp .rh-boost-copy h2{font-size:59.2px;line-height:1.05;font-weight:500;letter-spacing:-1.2px;max-width:448px;margin:0}
.csdp .rh-home .rh-boost-sub{font-size:18px;line-height:28px;color:var(--rh-ink-70);max-width:448px;margin:18px 0 28px}
.csdp .rh-stat{margin-top:40px;padding:32px;border-radius:15px;background:var(--rh-mint)}
.csdp .rh-stat-top{display:flex;align-items:center;gap:24px;padding-bottom:20px;border-bottom:1px solid var(--rh-line)}
.csdp .rh-stat-top b{font-family:var(--font-display);font-size:48px;line-height:48px;font-weight:500;letter-spacing:-1px;color:var(--brand-ink)}
.csdp .rh-stat-top span{font-size:14px;line-height:20px;color:var(--rh-ink-60);max-width:220px;text-align:right;margin-left:auto}
.csdp .rh-home .rh-stat p{font-size:14px;line-height:20px;color:var(--rh-ink-75);margin:16px 0 0}
.csdp .rh-steps{list-style:none;margin:0;padding:40px;border:1px solid #E6E6E6;border-radius:20px;background:#fff}
.csdp .rh-steps li{display:grid;grid-template-columns:104px minmax(0,1fr);gap:20px;position:relative;padding-bottom:28px}
.csdp .rh-steps li:last-child{padding-bottom:0}
.csdp .rh-steps li:not(:last-child)::before{content:"";position:absolute;left:12px;top:44px;bottom:8px;width:1px;background:var(--brand)}
.csdp .rh-steps .k{font-size:22px;line-height:32px;color:var(--rh-ink-70);letter-spacing:-.4px}
.csdp .rh-home .rh-steps h3{font-size:32px;line-height:33.6px;font-weight:500;letter-spacing:-.6px;color:var(--brand-ink);margin:0 0 10px}
.csdp .rh-home .rh-steps p{font-size:14px;line-height:20px;color:var(--rh-ink-70);margin:0}

/* 6. Communities (RH story carousel: left head; 380-wide photo cards, radius 16, hairline; round arrows centred below). */
.csdp .rh-carousel{position:relative}
.csdp .rh-track{display:grid;grid-auto-flow:column;grid-auto-columns:380px;gap:24px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 2px 8px;margin:0 -2px}
.csdp .rh-track::-webkit-scrollbar{display:none}
.csdp .rh-track .place-tile{scroll-snap-align:start;display:flex;flex-direction:column;border:1px solid var(--rh-line);border-radius:16px;overflow:hidden;background:#fff;text-decoration:none;color:var(--ink);transition:box-shadow .2s}
.csdp .rh-track .place-tile:hover{box-shadow:0 12px 32px -12px rgba(14,26,32,.25)}
.csdp .rh-track .place-tile .ph{display:block;aspect-ratio:380/300;overflow:hidden;background:var(--rh-mint)}
.csdp .rh-track .place-tile .ph img{width:100%;height:100%;object-fit:cover;display:block}
.csdp .rh-track .place-tile .n{display:block;padding:16px 20px 0;font-size:20.8px;line-height:26px;font-weight:500;letter-spacing:-.4px}
.csdp .rh-track .place-tile .c{display:block;padding:4px 20px 18px;font-size:14px;line-height:20px;color:var(--rh-ink-60)}
.csdp .rh-arrows{display:flex;justify-content:center;gap:12px;margin-top:24px}
.csdp .rh-arrows button{width:44px;height:44px;border-radius:999px;border:1px solid var(--rh-line);background:#fff;color:var(--ink);font-size:22px;line-height:1;display:inline-flex;align-items:center;justify-content:center;padding:0;min-height:0}
.csdp .rh-arrows button:hover{background:var(--rh-mint)}
html:not(.js) .csdp .rh-arrows{display:none}
.csdp .rh-places-sec .credits{margin-top:20px;font-size:14px;color:var(--rh-ink-60)}

/* 7. Tools (RH feature bento: 596 | 596 mint cards radius 10 padding 32; then 4 × 286 cards padding 28, the first a photo). */
.csdp .rh-tools-big{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.csdp .rh-tools-small{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px;margin-top:24px}
.csdp .rh-tool{display:flex;flex-direction:column;border-radius:10px;background:var(--rh-mint);padding:28px;color:var(--ink);text-decoration:none;min-height:180px;transition:background .15s}
.csdp .rh-tool:hover{background:#E2EAEC;text-decoration:none}
.csdp .rh-tool.big{padding:32px;min-height:0}
.csdp .rh-tool-top{display:flex;align-items:center;gap:14px}
.csdp .rh-tool .icon-tile{width:40px;height:40px;border-radius:10px;background:var(--brand);color:#fff;flex:none}
.csdp .rh-home .rh-tool h3{font-size:19.2px;line-height:22px;font-weight:400;letter-spacing:-.4px;margin:0}
.csdp .rh-home .rh-tool p{font-size:16px;line-height:24px;color:var(--rh-ink-70);margin:14px 0 0}
.csdp .rh-home .rh-tool:not(.big) p{font-size:14px;line-height:20px}
.csdp .rh-tool.photo{position:relative;overflow:hidden;justify-content:flex-end;color:#fff;isolation:isolate}
.csdp .rh-tool.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
/* The overlay reaches .78 by a third of the card, so the white heading and line keep AA over any photo pixel even on
   phones, where the text block sits higher (measured: qa/rh-clone-2026-10-09/photo-card-contrast.cjs) */
.csdp .rh-tool.photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,50,53,.40) 0%,rgba(10,50,53,.78) 30%,rgba(10,50,53,.90) 100%)}
.csdp .rh-home .rh-tool.photo h3{color:#fff}
.csdp .rh-home .rh-tool.photo p{color:rgba(255,255,255,.92)}
.csdp .rh-mini-cmp{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:24px;padding:16px;border-radius:12px;background:#fff}
.csdp .rh-mini-cmp>div{display:flex;flex-direction:column;gap:6px;min-width:0;font-size:12px;line-height:17px;color:var(--rh-ink-75)}
.csdp .rh-mini-cmp>div+div{border-left:1px solid var(--rh-line);padding-left:10px}
.csdp .rh-mini-cmp .av{width:32px;height:32px;font-size:12px}
.csdp .rh-mini-cmp b{font-size:14px;line-height:18px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.csdp .rh-mini-cmp>div>span:not(.av),.csdp .rh-mini-lic .ok{display:flex;align-items:center;gap:5px;min-width:0}
.csdp .rh-mini-cmp svg,.csdp .rh-mini-lic svg{display:inline-block;flex:none;width:13px;height:13px;color:var(--confirmed);margin:0}
.csdp .rh-mini-lic{display:grid;gap:6px;margin-top:24px;padding:20px 24px;border-radius:12px;background:#fff}
.csdp .rh-mini-lic .k{font-size:12px;line-height:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--rh-ink-60)}
.csdp .rh-mini-lic .v{font-family:var(--font-mono);font-size:30px;line-height:36px;color:var(--ink)}
.csdp .rh-mini-lic .ok{font-size:14px;line-height:20px;color:var(--confirmed)}
.csdp .rh-tools-sec .rh-pair.wide{margin-top:24px}
/* The compare visual is a field schematic (labels and empty slots), never a business. */
.csdp .rh-mini-fields{grid-template-columns:1.25fr repeat(3,minmax(0,1fr))}
.csdp .rh-mini-fields>div{gap:0}
.csdp .rh-mini-fields>div>*{display:flex;align-items:center;height:28px;border-top:1px solid var(--rh-line)}
.csdp .rh-mini-fields>div>*:first-child{border-top:0}
.csdp .rh-mini-fields .f span{font-size:12px;color:var(--rh-ink-70)}
.csdp .rh-mini-fields .f::before{content:"";display:block;height:28px}
.csdp .rh-mini-fields b{justify-content:center;font-size:12px;font-weight:600;color:var(--ink)}
.csdp .rh-mini-fields i{justify-content:center}
.csdp .rh-mini-fields i::before{content:"";width:46%;height:6px;border-radius:3px;background:var(--rh-mint)}
.csdp .rh-mini-lic .rh-input{font-family:var(--font-sans);font-size:16px;line-height:24px;color:var(--rh-ink-60);padding:10px 14px;border:1px solid var(--rh-line);border-radius:10px;background:#fff}
/* Higher specificity than the phone block's .rh-mini-cmp rules further down, so the schematic keeps its four columns. */
@media (max-width:760px){
  .csdp .rh-mini-cmp.rh-mini-fields{grid-template-columns:1.7fr repeat(3,minmax(0,1fr));gap:6px;padding:14px 12px}
  .csdp .rh-mini-cmp.rh-mini-fields .f span{white-space:nowrap;font-size:12px}
  .csdp .rh-mini-cmp.rh-mini-fields>div+div{border-left:0;padding-left:0;border-top:0;padding-top:0}
}
.csdp .rh-home .rh-toast-ic{flex:none;display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.16)}
.csdp .rh-home .rh-toast-ic svg{width:20px;height:20px;color:#fff}

/* 8. Every trade (RH industries marquee: two rows drifting in opposite directions; big icon tiles and 40px labels). */
.csdp .rh-trades-sec .rh-head{margin-bottom:40px}
.csdp .rh-marquee{display:grid;gap:28px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.csdp .rh-mq-row{overflow:hidden}
.csdp .rh-mq-track{display:flex;gap:56px;width:max-content;animation:rh-mq 70s linear infinite}
.csdp .rh-mq-row.rev .rh-mq-track{animation-direction:reverse}
.csdp .rh-marquee:hover .rh-mq-track,.csdp .rh-marquee:focus-within .rh-mq-track{animation-play-state:paused}
@keyframes rh-mq{from{transform:translateX(0)}to{transform:translateX(-50%)}}
.csdp .rh-mq-item{display:inline-flex;align-items:center;gap:20px;color:var(--ink);text-decoration:none;white-space:nowrap}
.csdp .rh-mq-item:hover{text-decoration:none}
.csdp .rh-mq-item .icon-tile{width:72px;height:72px;border-radius:14px;flex:none}
.csdp .rh-mq-item .icon-tile svg{width:34px;height:34px}
.csdp .rh-mq-item:nth-child(4n+1) .icon-tile{background:var(--brand-tint);color:var(--brand-ink)}
.csdp .rh-mq-item:nth-child(4n+2) .icon-tile{background:var(--tint-2);color:var(--attention)}
.csdp .rh-mq-item:nth-child(4n+3) .icon-tile{background:var(--confirmed-tint);color:var(--confirmed)}
.csdp .rh-mq-item:nth-child(4n+4) .icon-tile{background:var(--brand);color:#fff}
.csdp .rh-mq-item span{font-family:var(--font-display);font-size:40px;line-height:44px;font-weight:600;letter-spacing:-1.2px}
.csdp .rh-mq-item:hover span{color:var(--brand-ink)}
.csdp .rh-center-link{text-align:center;margin:40px 0 0;font-size:16px}
@media (prefers-reduced-motion:reduce){
  .csdp .rh-marquee{-webkit-mask-image:none;mask-image:none}
  .csdp .rh-mq-track{width:auto;flex-wrap:wrap;justify-content:center;gap:20px 36px;padding:0 32px}
  .csdp .rh-mq-item[aria-hidden="true"]{display:none}
}

/* 9. FAQ (centred head; rows from the global FAQ rules). */
.csdp .rh-faq-foot{margin:20px 0 0;text-align:center;font-size:14px;color:var(--rh-ink-70)}

/* Phones (RH at 390: H2 30px, cards stacked, buttons full width). */
@media (max-width:900px){
  .csdp .rh-hero-grid,.csdp .rh-fix,.csdp .rh-boost{grid-template-columns:1fr;gap:36px}
  .csdp .rh-problems,.csdp .rh-tools-big{grid-template-columns:1fr}
  .csdp .rh-tools-small{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .csdp .rh-hero{padding:28px 0 24px}
  .csdp .rh-hero-copy .lede{font-size:16px;line-height:24px;margin-bottom:20px}
  .csdp .rh-logos ul{gap:10px 24px}
  .csdp .rh-logos li{font-size:16px;white-space:normal;text-align:center}
  .csdp .rh-problem{min-height:300px;padding:24px}
  .csdp .rh-problem h3{font-size:24px;line-height:25.2px}
  .csdp .rh-boost-copy h2{font-size:30px;letter-spacing:-.6px}
  .csdp .rh-home .rh-boost-sub{font-size:16px;line-height:24px}
  .csdp .rh-stat{padding:24px}
  .csdp .rh-stat-top{flex-direction:column;align-items:flex-start;gap:8px}
  .csdp .rh-stat-top b{font-size:36px;line-height:40px;letter-spacing:-.7px} /* RH's Boost stat on phones: 36/500 on 40 (2026-10-12; was 48) */
  .csdp .rh-stat-top span{text-align:left;margin-left:0}
  .csdp .rh-steps{padding:24px}
  .csdp .rh-steps li{grid-template-columns:1fr;gap:4px}
  .csdp .rh-steps li::before{display:none}
  .csdp .rh-steps .k{font-size:14px;line-height:20px;text-transform:uppercase;letter-spacing:1.5px}
  .csdp .rh-home .rh-steps h3{font-size:24px;line-height:26px}
  .csdp .rh-track{grid-auto-columns:78%}
  .csdp .rh-tools-small{grid-template-columns:1fr}
  .csdp .rh-tool{min-height:0}
  .csdp .rh-mini-cmp{grid-template-columns:1fr;gap:12px}
  .csdp .rh-mini-cmp>div+div{border-left:0;padding-left:0;border-top:1px solid var(--rh-line);padding-top:12px}
  .csdp .rh-mq-item .icon-tile{width:52px;height:52px}
  .csdp .rh-mq-item .icon-tile svg{width:26px;height:26px}
  .csdp .rh-mq-item span{font-size:28px;line-height:32px;letter-spacing:-.8px}
  .csdp .rh-mq-track{gap:36px}
}

/* ReviewHarvest clone layer: directory templates (/find/, the 21 trade hubs, the 378 city lists, /compare/), 2026-10-09.
   Measured on reviewharvest.com the same day (reference-harvests/reviewharvest-2026-10-09, measure.cjs at 1440 and 390):
   rh-cat-tree-care and rh-cat-pressure-washing for the trade hubs, rh-case-studies for the city lists. Loads after
   rh-clone.css. Every rule is scoped to .rd (the page roots in pages/directory.mjs), so no other template changes.
   CSDP keeps its teal, tints, logo and real data; RH's green, mock screens, prices and claims are never copied. */

/* ---------- Frame ---------- */
.csdp .rd .crumbs{padding-top:20px}
.csdp .rd .rd-sec{padding:var(--rh-sec) 0}
.csdp .rd .rd-sec.tight{padding-top:0}
/* City lists only (the 378 trade × city pages, with or without nearby listings): RH's list page (case studies) runs its
   sections at 80 above and below, 56 on phones, not the 112 / 80 of its home and category pages, so the sections here sit
   80 apart (56 on phones). Trade hubs keep 112 / 80: they match RH's category page (2026-10-12). */
.csdp .rd-city{--rh-sec:80px}
.csdp .rd h2,.csdp .rd h3{font-weight:500}
.csdp .rd .rd-panel{background:#fff;border:1px solid var(--rh-line);border-radius:24px;box-shadow:0 1px 2px rgba(14,26,32,.04),0 12px 32px rgba(14,26,32,.06);padding:32px;min-width:0}
.csdp .rd .rd-h2{font-size:45.3px;line-height:47.5px;font-weight:500;letter-spacing:-.9px;margin:0;color:var(--ink);text-wrap:balance}
.csdp .rd .rd-h3{font-size:32px;line-height:36px;font-weight:500;letter-spacing:-.6px;margin:0;color:var(--ink)}
.csdp .rd .rd-sub{font-size:16px;line-height:24px;color:var(--rh-ink-70);margin:16px 0 0;max-width:672px}
.csdp .rd .rd-note{font-size:14px;line-height:18px;color:var(--rh-ink-60);margin:8px 0 0}
.csdp .rd .rh-eyebrow{font-size:12px;line-height:16px;letter-spacing:1.8px;margin-bottom:12px}
.csdp .rd details.credits{margin-top:20px;font-size:14px}
.csdp .rd details.credits summary{min-height:0;padding:4px 0;font-weight:400}

/* ---------- Hero (RH: H1 48/500 with one filled phrase, 16/24 line at 70%, the 48px CTA pair, proof lines, media right) ---------- */
.csdp .rd .rd-hero{padding:40px 0 0}
.csdp .rd .rd-hero-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:center}
.csdp .rd .rd-hero-copy{min-width:0;max-width:580px}
.csdp .rd .rd-hero-copy h1{margin:0;max-width:580px}
.csdp .rd .rd-hero-copy .lede{font-size:16px;line-height:24px;color:var(--rh-ink-70);margin:20px 0 28px;max-width:448px}
.csdp .rd .rd-proof{list-style:none;margin:24px 0 0;padding:0;display:grid;gap:8px}
.csdp .rd .rd-proof li{display:flex;gap:8px;align-items:flex-start;font-size:14px;line-height:20px;color:var(--rh-ink-75)}
.csdp .rd .rd-proof svg{width:16px;height:16px;flex:none;margin-top:2px;color:var(--brand-ink)}
.csdp .rd .rd-proof b{color:var(--ink);font-weight:600}
.csdp .rd .rd-proof a{color:var(--brand-ink);text-underline-offset:2px}
.csdp .rd .rd-urgent{display:inline-block;margin-top:16px;font-size:14px;line-height:20px;color:var(--brand-ink)}
.csdp .rd .hero-fig{margin:0;min-width:0;max-width:none}
.csdp .rd .hero-fig img{display:block;width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;border-radius:16px;background:var(--tint-1);box-shadow:0 1px 2px rgba(14,26,32,.06),0 16px 40px rgba(14,26,32,.12)}
.csdp .rd .hero-fig figcaption{margin-top:10px;font-size:12px;line-height:18px;color:var(--rh-ink-60)}
.csdp .rd .rd-hero-solo .rd-hero-copy{max-width:768px}

/* ---------- Trade hub: three problem cards (RH: 3 x 392, gap 20, ~350 tall, radius 16, title 28/500, line 14/22.8) ---------- */
.csdp .rd .rd-problems-sec{padding-top:72px}
.csdp .rd .rd-problems{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.csdp .rd .rd-problem{position:relative;overflow:hidden;display:flex;flex-direction:column;min-height:352px;padding:28px;border-radius:16px;text-decoration:none;color:#fff;background:var(--brand-deep);isolation:isolate}
.csdp .rd .rd-problem h3{font-size:28px;line-height:29.4px;font-weight:500;letter-spacing:-.6px;margin:0;color:inherit}
.csdp .rd .rd-problem p{font-size:14px;line-height:22.8px;margin:10px 0 0;color:rgba(255,255,255,.9);max-width:320px}
.csdp .rd .rd-problem.mint{background:var(--tint-1);color:var(--ink)}
.csdp .rd .rd-problem.mint p{color:var(--rh-ink-75)}
.csdp .rd .rd-problem.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
.csdp .rd .rd-problem.photo::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(10,50,53,.82) 0%,rgba(10,50,53,.30) 52%,rgba(10,50,53,.72) 100%)}
.csdp .rd a.rd-problem:hover h3{text-decoration:underline;text-underline-offset:4px}
.csdp .rd .rd-pv-ic{margin-top:auto;align-self:flex-end;width:104px;height:104px;border-radius:24px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);display:grid;place-items:center}
.csdp .rd .rd-pv-ic svg{width:52px;height:52px;color:var(--brand-mist);stroke-width:1.3}
.csdp .rd .rd-pv-chips{list-style:none;margin:auto 0 0;padding:0;display:grid;gap:8px}
.csdp .rd .rd-pv-chips li{display:flex;align-items:center;gap:10px;background:#fff;border-radius:12px;padding:12px 16px;font-size:16px;line-height:20px;box-shadow:0 1px 2px rgba(14,26,32,.06)}
.csdp .rd .rd-pv-chips svg{width:16px;height:16px;color:var(--brand-ink);flex:none}
.csdp .rd .rd-pv-chips b{margin-left:auto;font-weight:600;font-variant-numeric:tabular-nums}
.csdp .rd .rd-pv-link{margin-top:auto;align-self:flex-start;background:#fff;color:var(--ink);border-radius:10px;padding:12px 20px;font-size:16px;line-height:24px}
.csdp .rd .rd-credit{margin-top:12px;font-size:12px;line-height:16px;color:rgba(255,255,255,.78)}

/* ---------- How we help (RH "How we fix that": centred head, benefit rows beside a bordered card, 524 + 40 + 524) ---------- */
.csdp .rd .rd-fix{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:40px;align-items:center;max-width:1088px;margin:0 auto}
.csdp .rd .rd-benefits{list-style:none;margin:0;padding:0;display:grid;gap:28px}
.csdp .rd .rd-benefits li{display:grid;grid-template-columns:24px minmax(0,1fr);gap:16px;align-items:start}
.csdp .rd .rd-tick{width:24px;height:24px;border-radius:50%;background:var(--tint-1);display:grid;place-items:center;color:var(--brand-ink)}
.csdp .rd .rd-tick svg{width:14px;height:14px;stroke-width:2}
.csdp .rd .rd-benefits h3{font-size:20.8px;line-height:24px;font-weight:500;letter-spacing:-.4px;margin:0;color:var(--ink)}
.csdp .rd .rd-benefits p{font-size:14px;line-height:20px;color:var(--rh-ink-70);margin:6px 0 0;max-width:484px}
.csdp .rd .rd-fix-card{padding:36px}
.csdp .rd .rd-fix-card .status-visual{padding:0;margin:0;background:none;box-shadow:none;border:0}

/* ---------- Numbered feature block (RH "No More Chasing Reviews": 516 + 56 + 516, numbered rows, the first open) ---------- */
.csdp .rd .rd-feature-head{max-width:1088px;margin:0 auto 40px}
.csdp .rd .rd-feature{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px;align-items:start;max-width:1088px;margin:0 auto}
.csdp .rd .rd-feature-copy{min-width:0}
.csdp .rd .rd-steps{list-style:none;margin:0;padding:0;border-top:1px solid var(--rh-line)}
.csdp .rd .rd-steps li{border-bottom:1px solid var(--rh-line);margin:0}
.csdp .rd .rd-steps summary{display:flex;align-items:center;gap:16px;min-height:0;padding:16px 0;font-weight:400;list-style:none;cursor:pointer}
.csdp .rd .rd-steps summary::-webkit-details-marker{display:none}
.csdp .rd .rd-num{flex:none;width:30px;height:30px;border-radius:50%;background:var(--brand-deep);color:#fff;font-size:14px;line-height:1;font-weight:600;display:grid;place-items:center;font-variant-numeric:tabular-nums}
.csdp .rd .rd-step-t{font-size:20px;line-height:26px;font-weight:500;letter-spacing:-.4px;color:var(--ink)}
.csdp .rd .rd-steps summary:hover .rd-step-t{color:var(--brand-ink)}
.csdp .rd .rd-step-d{padding:0 0 18px 44px;font-size:14px;line-height:21px;color:var(--rh-ink-70)}
.csdp .rd .rd-step-d a{color:var(--brand-ink);font-weight:500;white-space:nowrap}
.csdp .rd .rd-license-card,.csdp .rd .rd-permit-card{position:sticky;top:104px;background:rgba(238,243,244,.55)}
.csdp .rd .rd-license-card p,.csdp .rd .rd-permit-card p{font-size:14px;line-height:21px;color:var(--rh-ink-70);margin:0}
/* The license class is a card value: RH's 24/500 on 32 (2026-10-12; was 26/34). */
.csdp .rd .rd-panel .rd-license-v{font-family:var(--font-mono);font-size:24px;line-height:32px;font-weight:500;letter-spacing:-.4px;color:var(--ink);margin:0 0 10px}
.csdp .rd .rd-panel .rd-license-p{font-size:20px;line-height:28px;color:var(--ink);margin:0 0 10px}
.csdp .rd .rd-links{list-style:none;margin:20px 0 0;padding:0;border-top:1px solid var(--rh-line)}
.csdp .rd .rd-links li{border-bottom:1px solid var(--rh-line)}
.csdp .rd .rd-links a{display:block;padding:14px 0;font-size:16px;line-height:20px;color:var(--ink);text-decoration:none}
.csdp .rd .rd-links a:hover{color:var(--brand-ink)}
.csdp .rd .rd-permit-card .record-value{font-size:20px;line-height:28px;font-family:inherit;font-weight:500;margin:0 0 10px}
.csdp .rd .rd-permit-card .record-value a{color:var(--brand-ink)}
.csdp .rd .rd-permit-card .record-source{margin-top:14px;font-size:14px;color:var(--rh-ink-60)}

/* ---------- Try it yourself / city tiles (RH: left head, bordered panel, full-width 56px button pair) ---------- */
.csdp .rd .rd-city-panel{padding:28px}
.csdp .rd .rd-place-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px 16px}
.csdp .rd a.place-tile{gap:8px}
.csdp .rd a.place-tile .ph{aspect-ratio:4/3;border-radius:12px}
.csdp .rd a.place-tile .n{font-size:16px;line-height:20px;font-weight:500;letter-spacing:-.2px;color:var(--ink)}
.csdp .rd a.place-tile .c{font-size:14px;line-height:16px;color:var(--rh-ink-60)}
.csdp .rd #cities .rh-pair.wide{margin-top:24px}

/* ---------- FAQ and closing block ---------- */
.csdp .rd .rd-faq-foot{margin:20px 0 0;font-size:14px;line-height:20px;color:var(--rh-ink-60);text-align:center}
/* A city with no listings has no foot line under its FAQ, so the last row's 12 px margin would add to the section's 80 (56). */
.csdp .rd-city .rh-faq>.faq-list:last-child>details.faq:last-child{margin-bottom:0}
.csdp .rd .rh-cta-sec{padding-top:0}
/* /find/ is held to RH Home (re-certification 2026-10-12): its closing block keeps the 64 px lead-in (176/144 vs RH 176/128). */
.csdp .rd-find .rh-cta-sec{padding-top:64px}
.csdp .rd .rd-toast-ic{flex:none;width:40px;height:40px;border-radius:12px;background:rgba(255,255,255,.14);display:grid;place-items:center}
.csdp .rd .rd-toast-ic svg{width:20px;height:20px;color:#fff}

/* ---------- /find/: stat card, trade cards, city tiles, the coverage grid panel ---------- */
.csdp .rd .rd-stat{background:var(--tint-1);border:0;box-shadow:none;padding:40px}
.csdp .rd .rd-stat-big{display:flex;flex-direction:column;gap:4px;margin:0 0 24px}
/* The count is a stat, set as RH's stat (home "Boost" card): 48/500 on 48, 36/500 on 40 on phones (2026-10-12; was 59.2 / 44). */
.csdp .rd .rd-stat-big b{font-size:48px;line-height:48px;font-weight:500;letter-spacing:-1px;color:var(--ink);font-variant-numeric:tabular-nums}
.csdp .rd .rd-stat-big span{font-size:16px;line-height:24px;color:var(--rh-ink-70)}
.csdp .rd .rd-stat ul,.csdp .rd .rd-facts-card ul{list-style:none;margin:0;padding:0;border-top:1px solid var(--rh-line)}
.csdp .rd .rd-stat li,.csdp .rd .rd-facts-card li{display:flex;gap:10px;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--rh-line);font-size:16px;line-height:20px;color:var(--rh-ink-75)}
.csdp .rd .rd-stat li b,.csdp .rd .rd-facts-card li b{min-width:64px;font-size:20px;font-weight:500;color:var(--ink);font-variant-numeric:tabular-nums}
.csdp .rd .rd-stat-src{margin:16px 0 0;font-size:14px;line-height:18px;color:var(--rh-ink-60)}
.csdp .rd-find .hero-form{grid-template-columns:repeat(2,minmax(0,1fr));background:none;padding:0;margin:0;gap:12px;box-shadow:none;border-radius:0}
.csdp .rd-find .hero-form .field{min-width:0;font-size:14px;font-weight:500;color:var(--rh-ink-75)}
.csdp .rd-find .hero-form select{width:100%}
.csdp .rd-find .hero-form select,.csdp .rd-find .hero-form input{height:48px;border:1px solid var(--rh-line);border-radius:10px;background-color:#fff;font:400 16px/24px var(--font-sans);padding:0 14px}
.csdp .rd-find .hero-form .btn{height:56px;border-radius:10px;font-weight:400;font-size:16px}
.csdp .rd-find .hero-form .record-source{font-size:14px;color:var(--rh-ink-60)}
.csdp .rd .rd-trade-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.csdp .rd .rd-trade{display:flex;flex-direction:column;gap:4px;text-decoration:none;color:var(--ink);min-width:0}
.csdp .rd .rd-trade .ph{display:block;aspect-ratio:16/10;border-radius:16px;overflow:hidden;background:var(--tint-1);margin-bottom:12px}
.csdp .rd .rd-trade .ph img{width:100%;height:100%;object-fit:cover;transition:transform .5s ease}
.csdp .rd .rd-trade:hover .ph img{transform:scale(1.03)}
.csdp .rd .rd-trade .ph .icon-tile{margin:24px}
.csdp .rd .rd-trade .n{font-size:20.8px;line-height:24px;font-weight:500;letter-spacing:-.4px}
.csdp .rd .rd-trade .c{font-size:14px;line-height:20px;color:var(--rh-ink-60);font-family:inherit}
.csdp .rd .rd-coverage{padding:28px}
.csdp .rd .rd-coverage .coverage{margin:0;padding:0;background:none;box-shadow:none}

/* ---------- City list (RH case studies: H2 59.2 left, 180px filter column, 48 gap, ~988px card column) ---------- */
.csdp .rd .rd-city-hero .rd-ctas{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start}
.csdp .rd .rd-change{position:relative;margin:0;border:0}
.csdp .rd .rd-change>summary{list-style:none;min-height:0;padding:0 24px;font-weight:400;font-size:16px}
.csdp .rd .rd-change>summary::-webkit-details-marker{display:none}
.csdp .rd .rd-change>summary::after{content:"";width:7px;height:7px;margin-left:10px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg);transition:transform .2s}
.csdp .rd .rd-change[open]>summary::after{transform:translateY(2px) rotate(-135deg)}
.csdp .rd .rd-change-form{position:absolute;z-index:30;top:calc(100% + 8px);left:0;width:min(440px,calc(100vw - 40px));display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:0;padding:20px;background:#fff;border:1px solid var(--rh-line);border-radius:16px;box-shadow:0 20px 48px rgba(14,26,32,.16)}
.csdp .rd .rd-change-form label{display:grid;gap:6px;font-size:14px;font-weight:500;color:var(--rh-ink-75)}
.csdp .rd .rd-change-form select{width:100%;height:48px;padding:0 12px;border:1px solid var(--rh-line);border-radius:10px;background-color:#fff;font:400 16px/20px var(--font-sans);color:var(--ink)}
.csdp .rd .rd-change-form .btn{grid-column:1/-1;width:100%}
.csdp .rd .rd-sec.rd-results{padding-top:var(--rh-sec)}
.csdp .rd .rd-list-h{font-size:59.2px;line-height:62.2px;font-weight:500;letter-spacing:-1.2px;margin:0 0 40px;color:var(--ink)}
.csdp .rd .rd-list-grid{display:grid;grid-template-columns:180px minmax(0,1fr);gap:48px;align-items:start}
html:not(.csdp-ready) .csdp .rd .rd-list-grid{grid-template-columns:minmax(0,1fr)}
.csdp .rd .rd-filters{position:sticky;top:104px;display:flex;flex-direction:column;align-items:stretch;gap:12px;padding:0;margin:0;border:0;border-radius:0;background:none;box-shadow:none;min-width:0}
.csdp .rd .rd-filters-t{font-size:24px;line-height:28px;font-weight:500;letter-spacing:-.4px;margin:0 0 4px}
.csdp .rd .rd-filters input[data-q]{width:100%;max-width:none;height:42px;min-height:42px;padding:0 16px;border:1px solid rgba(14,26,32,.15);border-radius:999px;background:#fff;box-shadow:none;font:400 16px/20px var(--font-sans);color:var(--ink)}
.csdp .rd .rd-filters .fl{display:flex;flex-direction:column;align-items:flex-start;flex-wrap:nowrap;gap:8px;margin:0;padding:0;border:0;overflow:visible}
.csdp .rd .rd-filters .pill{display:inline-flex;align-items:center;gap:8px;height:auto;min-height:42px;max-width:100%;padding:8px 16px;border:1px solid rgba(14,26,32,.15);border-radius:21px;background:#fff;color:var(--ink);font-size:16px;line-height:20px;font-weight:500;white-space:normal;text-align:left;cursor:pointer}
/* Each pill on one line at RH's 42 px (2026-10-12). The longest label ("Bond + workers’ comp" with a two-digit count,
   about 221 px) runs past the 180 px column into the 48 px gap, clear of the cards. From 1001 to 1100 px the column is
   168 px with a 32 px gap, so long labels keep wrapping there rather than reach the cards. */
@media (min-width:1101px){.csdp .rd .rd-filters .pill{white-space:nowrap;max-width:none}}
.csdp .rd .rd-filters .pill .n{margin-left:0;font-family:inherit;font-size:14px;font-weight:500;color:var(--rh-ink-60);font-variant-numeric:tabular-nums}
.csdp .rd .rd-filters .pill:hover{background:var(--tint-1)}
.csdp .rd .rd-filters .pill[aria-pressed=true],.csdp .rd .rd-filters .pill.is-on,.csdp .rd .rd-filters .rd-check:has(input:checked){background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.csdp .rd .rd-filters .pill[aria-pressed=true] .n,.csdp .rd .rd-filters .pill.is-on .n{color:rgba(255,255,255,.75)}
.csdp .rd .rd-filters .rd-check input{width:16px;height:16px;accent-color:var(--brand)}
.csdp .rd .rd-filters .service-filter{display:grid;gap:6px;margin-top:6px;font-size:14px;font-weight:500;color:var(--rh-ink-75)}
.csdp .rd .rd-filters .service-filter select{width:100%;height:42px;padding:0 12px;border:1px solid rgba(14,26,32,.15);border-radius:21px;background-color:#fff;font:500 14px/20px var(--font-sans);color:var(--ink)}
.csdp .rd .rd-filters .rd-note{margin:0}
.csdp .rd .rd-reset{align-self:flex-start;min-height:36px;padding:0;border:0;background:none;color:var(--brand-ink);font-size:14px;text-decoration:underline;text-underline-offset:2px;cursor:pointer}
.csdp .rd .rd-filters .ux-active-filters{display:none}
.csdp .rd .rd-list-col{min-width:0}
.csdp .rd .rd-list-meta{margin:0 0 16px;font-size:14px;line-height:20px;color:var(--rh-ink-60)}
.csdp .rd .rd-list-meta b{color:var(--ink);font-weight:600}
.csdp .rd .rd-list{display:flex;flex-direction:column;gap:24px}
.csdp .rd .rd-brief{display:flex;align-items:center;gap:16px;justify-content:space-between;margin:0 0 20px;padding:16px 20px;border-radius:16px;background:var(--tint-2)}
.csdp .rd .rd-brief .t{font-weight:600}.csdp .rd .rd-brief .d{font-size:14px;color:var(--rh-ink-70)}

/* The card (RH: radius 24, mint, 20px padding, media block radius 16 on the left, the story on the right). */
.csdp .rd .rd-card{display:grid;grid-template-columns:168px minmax(0,1fr);gap:24px;padding:20px;border-radius:24px;background:var(--tint-1);min-width:0}
.csdp .rd .rd-card.is-hidden{display:none}
.csdp .rd .rd-card.is-confirmed{box-shadow:inset 0 0 0 1.5px var(--brand)}
.csdp .rd .rd-media{display:flex;flex-direction:column;justify-content:space-between;gap:16px;min-height:168px;padding:16px;border-radius:16px;background:var(--brand-deep);color:#fff}
.csdp .rd .rd-media .av{width:56px;height:56px;border-radius:14px;font-size:20px}
.csdp .rd .rd-rate{margin:0;display:flex;flex-direction:column;gap:2px;color:#fff}
.csdp .rd .rd-rate b{font-size:36px;line-height:38px;font-weight:500;letter-spacing:-.8px;font-variant-numeric:tabular-nums;color:#fff}
.csdp .rd .rd-rate span{font-size:12px;line-height:16px;color:rgba(255,255,255,.78)}
.csdp .rd .rd-body{min-width:0;display:flex;flex-direction:column;align-items:flex-start;padding:4px 0 0}
.csdp .rd .rd-kicker{display:flex;align-items:center;gap:6px;margin:0 0 6px;font-size:16px;line-height:22px;font-weight:500;color:var(--rh-ink-70)}
.csdp .rd .rd-kicker svg{width:16px;height:16px;flex:none;stroke-width:2}
.csdp .rd .rd-kicker.ok{color:var(--brand-ink)}
.csdp .rd .rd-kicker.warn{color:var(--attention-ink)}
.csdp .rd .rd-partial{margin:-2px 0 6px 22px;font-size:14px;line-height:20px;color:var(--rh-ink-70)}
.csdp .rd .rd-name{margin:0;font-size:32px;line-height:36px;font-weight:500;letter-spacing:-.7px;overflow-wrap:anywhere}
.csdp .rd .rd-name a{color:var(--ink);text-decoration:none}
.csdp .rd .rd-name a:hover{color:var(--brand-ink);text-decoration:underline;text-decoration-thickness:1.5px;text-underline-offset:4px}
.csdp .rd .rd-facts{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:12px 0 0;padding:0}
.csdp .rd .rd-facts li{display:flex;align-items:center;gap:6px;font-size:14px;line-height:20px;color:var(--rh-ink-75)}
.csdp .rd .rd-facts svg{width:15px;height:15px;flex:none;color:var(--brand-ink)}
.csdp .rd .pc-match{margin:12px 0 0;padding:8px 12px;border-radius:10px;background:#fff;font-size:14px;line-height:18px;color:var(--ink)}
.csdp .rd .rd-card .lic-warn{margin:12px 0 0;padding:10px 14px;border-radius:12px;font-size:14px;line-height:20px}
.csdp .rd .rd-more{margin:10px 0 0;width:100%}
.csdp .rd .rd-more>summary{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:4px 0;font-size:14px;line-height:20px;font-weight:500;color:var(--brand-ink);list-style:none}
.csdp .rd .rd-more>summary::-webkit-details-marker{display:none}
.csdp .rd .rd-more>summary::after{content:"";width:6px;height:6px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:translateY(-2px) rotate(45deg)}
.csdp .rd .rd-more[open]>summary::after{transform:translateY(1px) rotate(-135deg)}
.csdp .rd .rd-more p{margin:6px 0 0;font-size:14px;line-height:21px;color:var(--rh-ink-75);max-width:720px}
.csdp .rd .rd-more p b{color:var(--ink);font-weight:600}
.csdp .rd .rd-more .rd-dates{font-size:14px;color:var(--rh-ink-60)}
.csdp .rd .rd-acts{display:flex;flex-wrap:wrap;align-items:center;gap:10px;width:100%;margin:16px 0 0}
.csdp .rd .rd-acts .btn{height:44px;padding:0 18px;font-size:16px;gap:8px}
.csdp .rd .rd-acts .btn svg{width:16px;height:16px}
.csdp .rd .rd-acts .cb{display:inline-flex;align-items:center;gap:8px;margin-left:auto;min-height:44px;padding:0 4px;font-size:14px;color:var(--rh-ink-75);cursor:pointer}
.csdp .rd .rd-acts .cb input{width:18px;height:18px;accent-color:var(--brand)}
.csdp .rd .rd-nophone{font-size:14px;color:var(--rh-ink-60)}
.csdp .rd .rd-empty{margin-top:16px;padding:24px;border-radius:24px;background:var(--tint-2);font-size:16px}
.csdp .rd .rd-foot{display:flex;flex-wrap:wrap;gap:8px 24px;justify-content:flex-start;margin:24px 0 0;padding:0;font-size:14px;color:var(--rh-ink-75)}
.csdp .rd .rd-foot a{color:var(--brand-ink)}
.csdp .rd .rd-src{margin:10px 0 0;font-size:14px;line-height:20px;color:var(--rh-ink-60);max-width:760px}
.csdp .rd .rd-disclosure{margin:20px 0 0;padding:0 20px;border:1px solid var(--rh-line);border-radius:16px;background:#fff}
.csdp .rd .rd-disclosure>summary{min-height:52px;padding:14px 0;font-size:16px;font-weight:500}
.csdp .rd .rd-disclosure[open]{padding-bottom:20px}
.csdp .rd .rd-disclosure .status-visual{padding:0;background:none;box-shadow:none}
.csdp .rd .rd-disclosure p{font-size:14px;margin:6px 0}
.csdp .rd .rd-nearby{margin-top:56px}
/* A city with no listings opens its results on the nearby list: the section's own 80 (56) is the space above it, as on
   every other city page (2026-10-12). */
.csdp .rd .rd-results>.wrap>.rd-nearby:first-child{margin-top:0}
.csdp .rd .rd-nearby .rd-sub{margin:10px 0 24px}

/* Below the list: specific jobs, nearby communities, recent permits, how to choose. */
.csdp .rd .rd-chips{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.csdp .rd .rd-chip{display:inline-flex;align-items:center;min-height:48px;padding:0 20px;border-radius:10px;background:var(--tint-1);color:var(--ink);font-size:16px;text-decoration:none}
.csdp .rd .rd-chip:hover{background:#E2EAEC}
.csdp .rd .rd-row-head{display:flex;align-items:baseline;justify-content:space-between;gap:16px;margin-bottom:24px}
.csdp .rd .rd-row-head a{font-size:16px;color:var(--brand-ink)}
.csdp .rd .rd-place-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:20px}
.csdp .rd .rd-permits-grid{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:32px;align-items:start;max-width:1088px;margin:0 auto}
.csdp .rd .rd-permits-grid.solo{grid-template-columns:minmax(0,560px);max-width:none;margin:0}
.csdp .rd .rd-permit-list{margin:0;padding:12px 28px 24px}
.csdp .rd .rd-permit-list .ap-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:40px}
.csdp .rd .ap-list{list-style:none;margin:0;padding:0}
.csdp .rd .ap-list li{display:grid;grid-template-columns:116px minmax(0,1fr);gap:2px 16px;padding:14px 0;border-bottom:1px solid var(--rh-line);font-size:16px;line-height:21px}
.csdp .rd .ap-list .ap-date{grid-row:span 2;font-size:14px;color:var(--rh-ink-60);font-variant-numeric:tabular-nums}
.csdp .rd .ap-list a{color:var(--ink);font-weight:500}
.csdp .rd .ap-list .ap-type{font-size:14px;color:var(--rh-ink-70)}
.csdp .rd .rd-more-rows>summary{min-height:0;padding:12px 0;font-size:14px;font-weight:500;color:var(--brand-ink)}
.csdp .rd .rd-permit-list .record-source{margin-top:16px;font-size:12px;line-height:18px;color:var(--rh-ink-60)}

/* The compare tray: a dock at the bottom of the screen once a business is ticked. */
.csdp .rd .rd-tray{position:fixed;z-index:60;top:auto;left:50%;bottom:16px;transform:translateX(-50%);width:min(880px,calc(100vw - 32px));margin:0;padding:0;background:none;box-shadow:none}
.csdp.has-tray .ux-toast{bottom:128px}
.csdp .rd .rd-tray.is-empty{display:none}
.csdp .rd .rd-tray-in{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 20px;padding:14px 16px 14px 22px;border-radius:16px;background:var(--brand-deep);color:#fff;box-shadow:0 18px 48px rgba(10,50,53,.32)}
.csdp .rd .rd-tray-head{display:flex;flex-direction:column;gap:2px}
.csdp .rd .rd-tray .t{font-family:inherit;font-size:18px;line-height:22px;font-weight:500;color:#fff}
.csdp .rd .rd-tray .cnt{font-family:inherit;font-size:12px;line-height:16px;color:rgba(255,255,255,.72)}
.csdp .rd .rd-tray ul{list-style:none;display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;min-width:0;color:#fff}
.csdp .rd .rd-tray li{display:flex;align-items:center;gap:4px;max-width:100%;padding:2px 4px 2px 12px;border-radius:999px;background:rgba(255,255,255,.12);font-size:14px;line-height:18px}
.csdp .rd .rd-tray li span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:120px}
.csdp .rd .rd-tray li button{min-height:32px;padding:0 8px;border:0;background:none;color:rgba(255,255,255,.85);font-size:12px;text-decoration:underline;cursor:pointer}
.csdp .rd .rd-tray-acts{display:flex;align-items:center;gap:14px}
.csdp .rd .rd-tray-acts .btn{height:44px;padding:0 18px;background:#fff;color:var(--ink);font-size:16px;box-shadow:none}
.csdp .rd .rd-tray-acts [data-clear]{font-size:14px;color:rgba(255,255,255,.8)}
.csdp .rd .rd-tray .reassure{grid-column:1/-1;font-size:12px;line-height:16px;color:rgba(255,255,255,.66)}
.csdp.has-tray main{padding-bottom:120px}

/* ---------- /compare/ ---------- */
.csdp .rd .rd-sec.rd-cmp-sec{padding-top:56px}
.csdp .rd .rd-cmp-out{display:block;margin:0;border:0;border-radius:0;overflow:visible;grid-template-columns:none;background:none;box-shadow:none}
.csdp .rd .rd-cmp-out>div,.csdp .rd .rd-cmp-out>p{padding:0;border:0;font-size:inherit;line-height:inherit}
.csdp .rd .rd-cmp-out .na{color:var(--rh-ink-60)}
.csdp .rd .rd-cmp-out .v{font-family:inherit;font-size:14px;line-height:21px;font-weight:400;color:var(--ink)}
.csdp .rd .rd-cmp-out .s{font-family:inherit;font-size:12px;line-height:17px;color:var(--rh-ink-60)}
.csdp .rd .rd-cmp-out .compare-table th[scope=row]{font-size:14px;font-weight:600;color:var(--rh-ink-75)}
.csdp .rd .brief-box{display:block;margin:0;border-radius:0;background:none}
.csdp .rd .rd-cmp-empty{display:flex;flex-direction:column;align-items:flex-start;gap:12px;padding:40px;border-radius:24px;background:var(--tint-1)}
.csdp .rd .rd-cmp-empty p{margin:0;font-size:16px;line-height:24px;color:var(--rh-ink-70)}
.csdp .rd .rd-cmp-empty .btn{margin-top:8px}
.csdp .rd .ux-compare-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin:0 0 24px}
.csdp .rd .ux-compare-card{padding:24px;border:0;border-radius:24px;background:var(--tint-1)}
.csdp .rd .ux-compare-card h2{font-size:28px;line-height:30px;font-weight:500;letter-spacing:-.6px;margin:0 0 4px}
.csdp .rd .ux-compare-card h2 a{color:var(--ink);text-decoration:none}
.csdp .rd .ux-compare-card dt{font-size:12px;letter-spacing:1.2px;text-transform:uppercase;font-weight:600;color:var(--rh-ink-60);margin-top:16px}
.csdp .rd .ux-compare-card .btn{height:48px;min-height:48px;width:100%;margin-top:10px}
.csdp .rd .ux-compare-card [data-remove]{color:var(--brand-ink)}
.csdp .rd .ux-compare-details{margin:8px 0 0;padding:0 24px;border:1px solid var(--rh-line);border-radius:24px;background:#fff}
.csdp .rd .ux-compare-details>summary{min-height:64px;padding:20px 0;font-size:18px;font-weight:500}
.csdp .rd .ux-compare-details[open]{padding-bottom:24px}
.csdp .rd .rd-brief-panel .field{font-size:14px;font-weight:500;color:var(--rh-ink-75)}
.csdp .rd .rd-brief-panel textarea{min-height:168px;border:1px solid var(--rh-line);border-radius:12px;background:#fff;font:400 16px/24px var(--font-sans)}
.csdp .rd .rd-brief-panel .rh-pair{margin-top:16px}
.csdp .rd .rd-brief-panel .ux-draft-controls{gap:10px;margin:12px 0 0}
.csdp .rd .rd-brief-panel .ux-draft-controls button{min-height:48px;padding:0 20px;border:0;border-radius:10px;background:var(--tint-1);color:var(--ink);font-size:16px;font-weight:400}
.csdp .rd .rd-brief-panel .ux-draft-controls button:hover{background:#E2EAEC}

/* ---------- Tablet ---------- */
@media (max-width:1100px){
  .csdp .rd .rd-place-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .csdp .rd .rd-list-grid{grid-template-columns:168px minmax(0,1fr);gap:32px}
  .csdp .rd .rd-card{grid-template-columns:140px minmax(0,1fr);gap:20px}
}
@media (max-width:1000px){
  .csdp .rd .rd-hero-grid,.csdp .rd .rd-fix,.csdp .rd .rd-feature{grid-template-columns:minmax(0,1fr);gap:40px}
  .csdp .rd .rd-hero-copy,.csdp .rd .rd-hero-copy h1{max-width:none}
  .csdp .rd .rd-problems{grid-template-columns:minmax(0,1fr)}
  .csdp .rd .rd-problem{min-height:300px}
  .csdp .rd .rd-license-card,.csdp .rd .rd-permit-card{position:static}
  .csdp .rd .rd-trade-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
  .csdp .rd .rd-list-grid{grid-template-columns:minmax(0,1fr);gap:24px}
  .csdp .rd .rd-permits-grid{grid-template-columns:minmax(0,1fr);gap:20px}
  .csdp .rd .rd-filters{position:static}
  .csdp .rd .rd-filters .fl{flex-direction:row;flex-wrap:wrap}
  .csdp .rd .rd-place-row{grid-template-columns:repeat(3,minmax(0,1fr))}
  .csdp .rd .ux-compare-overview{grid-template-columns:minmax(0,1fr)}
}

/* ---------- Phone (RH at 390: H1 36, section H2 30, list H2 24, card title 24, stacked cards, 20px gutters) ---------- */
@media (max-width:760px){
  .csdp .rd .wrap{padding-left:20px;padding-right:20px}
  .csdp .rd .rd-hero{padding-top:24px}
  .csdp .rd .rd-hero-copy .lede{margin:16px 0 24px}
  .csdp .rd .rh-pair .btn{flex:0 1 auto}
  .csdp .rd .rd-h2{font-size:30px;line-height:31.5px;letter-spacing:-.6px}
  .csdp .rd .rd-h3{font-size:24px;line-height:28px;letter-spacing:-.5px}
  .csdp .rd .rd-panel{padding:20px;border-radius:20px}
  .csdp .rd .rd-problems-sec{padding-top:48px}
  .csdp .rd .rd-problem{min-height:0;padding:24px;gap:0}
  .csdp .rd .rd-problem h3{font-size:28px;line-height:29.4px}
  .csdp .rd .rd-pv-ic{width:72px;height:72px;margin-top:24px;border-radius:18px}
  .csdp .rd .rd-pv-ic svg{width:36px;height:36px}
  .csdp .rd .rd-pv-chips,.csdp .rd .rd-pv-link{margin-top:24px}
  .csdp .rd .rd-problem.photo{min-height:300px}
  .csdp .rd .rd-benefits{gap:22px}
  .csdp .rd .rd-fix-card{padding:24px}
  .csdp .rd .rd-steps summary{padding:14px 0;gap:14px}
  .csdp .rd .rd-step-t{font-size:18px;line-height:24px}
  .csdp .rd .rd-step-d{padding-left:42px}
  .csdp .rd .rd-city-panel{padding:16px}
  .csdp .rd .rd-place-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
  .csdp .rd .rd-trade-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
  .csdp .rd .rd-trade .n{font-size:16px;line-height:20px}
  .csdp .rd .rd-trade .c{font-size:14px}
  .csdp .rd .rd-trade .ph{border-radius:12px;margin-bottom:8px}
  .csdp .rd .rd-stat{padding:24px}
  .csdp .rd .rd-stat-big b{font-size:36px;line-height:40px;letter-spacing:-.7px}
  .csdp .rd .rd-coverage{padding:12px}
  .csdp .rd-find .hero-form{grid-template-columns:minmax(0,1fr)}
  .csdp .rd-city{--rh-sec:56px}
  .csdp .rd .rd-sec.rd-cmp-sec{padding-top:40px}
  .csdp .rd .rd-list-h{font-size:24px;line-height:25.2px;letter-spacing:-.5px;margin-bottom:20px}
  .csdp .rd .rd-filters-t{font-size:20px}
  .csdp .rd .rd-filters .pill{min-height:40px;padding:8px 14px;font-size:14px}
  .csdp .rd .rd-city-hero .rd-ctas{position:relative}
  .csdp .rd .rd-city-hero .rd-ctas>.btn,.csdp .rd .rd-change{flex:0 1 auto}
  .csdp .rd .rd-change{position:static}
  .csdp .rd .rd-change-form{grid-template-columns:minmax(0,1fr);left:0;right:0;width:auto}
  .csdp .rd .rd-card{grid-template-columns:minmax(0,1fr);gap:16px;padding:16px;border-radius:20px}
  .csdp .rd .rd-media{flex-direction:row;align-items:center;justify-content:flex-start;min-height:0;padding:12px;gap:14px;border-radius:14px}
  .csdp .rd .rd-media .av{width:44px;height:44px;font-size:18px;border-radius:12px}
  .csdp .rd .rd-rate{flex-direction:row;align-items:baseline;gap:8px}
  .csdp .rd .rd-rate b{font-size:26px;line-height:28px}
  .csdp .rd .rd-body{padding:0}
  .csdp .rd .rd-kicker{font-size:14px;line-height:20px}
  .csdp .rd .rd-name{font-size:24px;line-height:26px;letter-spacing:-.5px}
  .csdp .rd .rd-acts{gap:8px}
  .csdp .rd .rd-acts .btn{flex:1 1 auto}
  .csdp .rd .rd-acts .cb{margin-left:0;width:100%}
  .csdp .rd .rd-place-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px 12px}
  .csdp .rd .rd-row-head{flex-direction:column;gap:6px}
  .csdp .rd .rd-feature-head{margin-bottom:24px}
  .csdp .rd .rd-permit-list .ap-list{grid-template-columns:minmax(0,1fr)}
  .csdp .rd .ap-list li{grid-template-columns:minmax(0,1fr)}
  .csdp .rd .ap-list .ap-date{grid-row:auto}
  .csdp .rd .rd-permit-list{padding:8px 20px 20px}
  .csdp .rd .rd-tray{bottom:10px;width:calc(100vw - 20px)}
  .csdp .rd .rd-tray-in{grid-template-columns:minmax(0,1fr) auto;padding:12px 12px 12px 16px}
  .csdp .rd .rd-tray ul{display:none}
  .csdp .rd .rd-tray .reassure{display:none}
  .csdp.has-tray .ux-toast{bottom:96px}
  .csdp .rd .rd-cmp-empty{padding:28px 20px}
  .csdp .rd .ux-compare-details{padding:0 16px}
}
@media (max-width:360px){
  .csdp .rd .rd-place-grid,.csdp .rd .rd-trade-grid{grid-template-columns:minmax(0,1fr)}
}
/* Compare hero: the heading is 2 lines in Instrument Sans but 1 in the fallback font, so the font swap grew the hero 54px
   (CLS 0.143, production check 2026-10-13). Reserve the 2 lines it ends up with. */
.csdp .rd-cmp .rd-hero h1{min-height:2.2em;min-height:2lh}

/* 2026-10-20 Smart Directory flow: the add-your-business line under the city grid and the list foot */
.csdp .rd .rd-add-line{margin:16px 0 0;font-size:15px;line-height:22px;color:var(--rh-ink-75)}
.csdp .rd .rd-add-line a{color:var(--brand-ink);font-weight:600}

/* ReviewHarvest clone layer: business profiles, /pro/<city>/<slug>/ (2026-10-09). Owner: the profile helper.
   Loaded after rh-clone.css. Values are measured on reviewharvest.com the same day (reference-harvests/
   reviewharvest-2026-10-09): case-study tile = mint card radius 24 with 20 padding, media radius 16, a 20px fact line
   with a 2px rule, the name at 48/500; feature cards radius 10 on mint; story cards radius 16 with a hairline; big
   panels radius 24; hairline = ink at 10%; buttons 48 tall, radius 10, 16/400; FAQ rows radius 12, 1px hairline,
   24px sides, 20px rows. CSDP teal, deep teal and tint replace RH's greens (verify.mjs rejects RH hexes).
   The click-through deck approved on 10-07 is unchanged: cards under the hero swap the panels in place. */

/* ---------- Page frame: RH container 1280 with 32px sides ---------- */
.csdp .wrap.rh-pro{max-width:1280px;padding-left:32px;padding-right:32px}
.csdp .rh-pro .split{display:block;margin:0}
.csdp .rh-pro [data-main-content]{display:flex;flex-direction:column;gap:0;min-width:0}
.csdp .rh-pro [data-main-content]>section{margin:0;padding:0;border:0}

/* ---------- 1. Identity: the RH case-study tile ---------- */
.csdp .rh-pro .pro-hero{padding:16px 0 0;margin:0;background:none;border:0}
.csdp .rh-pro .pro-hero>.wrap{padding:0;width:100%;max-width:none}
.csdp .rh-pro .pro-hero .crumbs{margin:0;padding:8px 0 0}
.csdp .rh-pro .rh-pro-card{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(0,1fr);gap:24px;align-items:stretch;margin:20px 0 28px;padding:20px;border-radius:24px;background:var(--rh-mint)}
.csdp .rh-pro .rh-pro-card.no-map{grid-template-columns:minmax(0,1fr)}
.csdp .rh-pro .rh-pro-copy{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;min-width:0;padding:40px 12px 40px 36px}
.csdp .rh-pro .rh-pro-fact{margin:0 0 16px;padding:0 0 0 12px;border-left:2px solid var(--brand);font-size:20px;line-height:28px;font-weight:400;letter-spacing:-.3px;color:var(--brand-ink)}
.csdp .rh-pro .rh-pro-copy h1{margin:0;max-width:15ch;color:var(--ink);overflow-wrap:break-word;text-wrap:balance}
.csdp .rh-pro .rh-pro-lede{margin:16px 0 0;max-width:520px;font-size:18px;line-height:28px;color:var(--rh-ink-70)}
.csdp .rh-pro .rh-pills{display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 0}
.csdp .rh-pro .rh-pro-scope{margin:12px 0 0;max-width:560px;font-size:16px;line-height:22px;color:var(--rh-ink-70)}
.csdp .rh-pro .rh-pro-scope b{font-weight:600;color:var(--ink)}
.csdp .rh-pro .rh-pills .chip,.csdp .rh-pro .grid-3 .card.rh-sim .chip{display:inline-flex;align-items:center;gap:6px;height:auto;min-height:32px;padding:5px 14px;border-radius:999px;background:#fff;box-shadow:inset 0 0 0 1px rgba(14,26,32,.15);color:var(--ink);font-size:14px;line-height:20px;font-weight:500;white-space:normal}
.csdp .rh-pro .rh-pills .chip svg,.csdp .rh-pro .grid-3 .card.rh-sim .chip svg{width:14px;height:14px;flex:none;color:var(--confirmed)}
.csdp .rh-pro .rh-pills .chip-neutral,.csdp .rh-pro .grid-3 .card.rh-sim .chip-neutral{color:var(--rh-ink-75)}
.csdp .rh-pro .rh-pills .chip-attention,.csdp .rh-pro .grid-3 .card.rh-sim .chip-attention{background:var(--attention-tint);box-shadow:inset 0 0 0 1px rgba(184,114,10,.35);color:#8A5300}
.csdp .rh-pro .rh-pro-copy .lic-warn{margin:16px 0 0;max-width:520px}
.csdp .rh-pro .rh-pro-acts{display:flex;flex-wrap:wrap;gap:12px;margin:28px 0 0}
.csdp .rh-pro .rh-pro-acts .btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:48px;padding:0 24px;border-radius:10px;font-size:16px;line-height:24px;font-weight:400;white-space:nowrap;box-shadow:none}
.csdp .rh-pro .rh-pro-acts .btn svg{width:18px;height:18px;flex:none;margin:0}
.csdp .rh-pro .rh-pro-compare{border:0;cursor:pointer}
.csdp .rh-pro .rh-pro-compare[aria-pressed="true"]{background:var(--brand-tint);color:var(--brand-deep)}
.csdp .rh-pro .rh-pro-nophone{margin:0;align-self:center;font-size:16px;line-height:24px;color:var(--rh-ink-70)}
.csdp .rh-pro .rh-pro-more{width:100%;max-width:520px;margin:16px 0 0;padding:0;border:0;background:none}
.csdp .rh-pro .rh-pro-more>summary{display:inline-flex;align-items:center;gap:10px;min-height:40px;padding:8px 0;list-style:none;cursor:pointer;font-size:14px;line-height:20px;font-weight:500;color:var(--rh-ink-75)}
.csdp .rh-pro .rh-pro-more>summary::-webkit-details-marker{display:none}
.csdp .rh-pro .rh-pro-more>summary::after{content:"";width:7px;height:7px;border:solid var(--rh-ink-60);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);margin-top:-4px;transition:transform .2s}
.csdp .rh-pro .rh-pro-more[open]>summary::after{transform:rotate(-135deg);margin-top:3px}
.csdp .rh-pro .rh-pro-more .pd-contact-links{display:flex;flex-wrap:wrap;gap:4px 20px;margin:4px 0 8px}
.csdp .rh-pro .rh-pro-more .pd-contact-links>a,.csdp .rh-pro .rh-pro-more .pd-contact-links>button{display:inline-flex;align-items:center;min-height:40px;padding:0;border:0;background:none;color:var(--brand-ink);font:500 16px/20px var(--font-sans);text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.csdp .rh-pro .rh-pro-more .prof-contact{display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;margin:4px 0 0;font-size:14px;line-height:20px;color:var(--rh-ink-70)}
.csdp .rh-pro .rh-pro-more .copy-phone{border:0;border-radius:8px;background:#fff;padding:2px 8px;font:500 14px/20px var(--font-mono);color:var(--ink);cursor:pointer}
/* The map is the tile's media (RH media: radius 16). Google's own place card sits inside the embed. */
.csdp .rh-pro .rh-pro-map{position:relative;min-height:420px;border-radius:16px;overflow:hidden;background:#DCE4E6}
.csdp .rh-pro .rh-pro-map iframe{position:absolute;inset:0;display:block;width:100%;height:100%;border:0}

/* ---------- 2. The deck strip: RH feature cards (mint, radius 10) with the dark card for the open panel ---------- */
.csdp .rh-pro .pd-deck{top:81px;margin:0 0 24px;padding:14px 0 16px;background:rgba(255,255,255,.95);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--rh-line)}
.csdp .rh-pro .pd-deck-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 12px}
.csdp .rh-pro .pd-deck-head .eyebrow{display:block;margin:0;font-size:14px;line-height:20px;font-weight:600;letter-spacing:2.1px;text-transform:uppercase;color:var(--rh-ink-60)}
.csdp .rh-pro .pd-navigation{gap:8px}
.csdp .rh-pro .pd-navigation button{width:40px;min-width:40px;height:40px;min-height:40px;padding:0;border:1px solid var(--rh-line);border-radius:999px;background:#fff;color:var(--ink);font:400 18px/1 var(--font-sans)}
.csdp .rh-pro .pd-navigation button:not(:disabled):hover{background:var(--rh-mint)}
.csdp .rh-pro .pd-navigation [data-deck-progress]{min-width:44px;font:400 14px/20px var(--font-sans);color:var(--rh-ink-60)}
.csdp .rh-pro .pd-navigation [data-deck-view]{width:auto;min-width:0;margin-left:4px;padding:0 16px;border:0;border-radius:10px;background:var(--rh-mint);font:400 14px/20px var(--font-sans)}
.csdp .rh-pro .pd-navigation [data-deck-view][aria-pressed="true"]{background:var(--brand-deep);color:#fff}
.csdp .rh-pro .pd-deck-in{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}
.csdp .rh-pro .pd-card{display:flex;flex-direction:column;justify-content:flex-start;gap:4px;min-height:0;padding:16px 18px 18px;border:0;border-radius:10px;background:var(--rh-mint);box-shadow:none;color:var(--ink);transform:none;transition:background .16s}
.csdp .rh-pro .pd-card:hover{background:#E2EAEC;box-shadow:none;transform:none;text-decoration:none}
.csdp .rh-pro .pd-label{display:block;font-size:14px;line-height:20px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--rh-ink-60)}
.csdp .rh-pro .pd-fact{font-size:18px;line-height:24px;font-weight:500;letter-spacing:-.3px;color:inherit;overflow-wrap:break-word}
.csdp .rh-pro .pd-card.pd-warn{background:var(--attention-tint);box-shadow:inset 0 0 0 1px rgba(184,114,10,.35)}
.pd-on .csdp .rh-pro .pd-card[aria-selected="true"]{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff;box-shadow:none}
.pd-on .csdp .rh-pro .pd-card[aria-selected="true"] .pd-label{color:rgba(255,255,255,.72)}
.pd-on .csdp .rh-pro .pd-card[aria-selected="true"]::after{display:none}

/* ---------- 3. Panels: RH big panels (white, hairline, radius 24) with a left H2 and one source line ---------- */
.csdp .rh-pro .pd-panels{display:flex;flex-direction:column;gap:24px}
.csdp .rh-pro .pd-panels>[data-deck-panel]{margin:0;padding:48px;border:1px solid var(--rh-line);border-radius:24px;background:#fff;box-shadow:none;min-width:0;scroll-margin-top:240px}
.csdp .rh-pro .pd-panels .row-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;margin:0 0 28px}
.csdp .rh-pro .pd-panels .row-head h2,.csdp .rh-pro .pd-panels .px-section-heading h2{margin:0;font-size:40px;line-height:42px;font-weight:500;letter-spacing:-1px;color:var(--ink)}
.csdp .rh-pro .pd-panels .row-head .meta{font-size:14px;line-height:20px;color:var(--rh-ink-60)}
.csdp .rh-pro .pd-panels .record-source{font-size:14px;line-height:20px;color:var(--rh-ink-60)}
.pd-on .csdp .rh-pro .pd-panels .pd-next{display:flex;align-items:center;gap:8px;min-height:56px;margin:40px 0 0;padding:0 24px;border:0;border-radius:10px;background:var(--rh-mint);color:var(--ink);font-size:16px;line-height:24px;text-decoration:none}
.pd-on .csdp .rh-pro .pd-panels .pd-next:hover{background:#E2EAEC}
.pd-on .csdp .rh-pro .pd-panels .pd-next span:first-child{font-size:16px;line-height:24px;font-weight:400;letter-spacing:0;text-transform:none;color:var(--rh-ink-70)}
.pd-on .csdp .rh-pro .pd-panels .pd-next b{flex:0 1 auto;font-weight:500;color:var(--ink)}
.pd-on .csdp .rh-pro .pd-panels .pd-next>span:last-child{margin-left:auto;font-size:20px;color:var(--ink)}
.pd-on .csdp .rh-pro .pd-panels.pd-read-all .pd-next{display:none}

/* RH FAQ rows: every evidence disclosure in a panel (questions, listing details, sources, full record, map). */
.csdp .rh-pro .pd-disclosure-row{display:flex;flex-direction:column;align-items:stretch;gap:12px;margin:32px 0 0}
.csdp .rh-pro :is(details.rh-row,details.pd-sources){display:block;margin:0;padding:0 24px;border:1px solid var(--rh-line);border-radius:12px;background:#fff;box-shadow:none;min-width:0}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)+:is(details.rh-row,details.pd-sources){margin-top:12px}
.csdp .rh-pro .pd-disclosure-row>:is(details.rh-row,details.pd-sources)+:is(details.rh-row,details.pd-sources){margin-top:0}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)>summary{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:64px;margin:0;padding:20px 0;list-style:none;cursor:pointer;background:none;border-radius:0;font:600 18px/24px var(--font-sans);letter-spacing:-.3px;color:var(--ink)}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)>summary:hover{background:none;color:var(--brand-ink)}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)>summary::-webkit-details-marker{display:none}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)>summary::after{content:"";flex:none;width:8px;height:8px;margin:-4px 4px 0 16px;border:solid var(--rh-ink-60);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);font-size:0;transition:transform .2s}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)[open]>summary::after{content:"";transform:rotate(-135deg);margin-top:4px}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)>:not(summary){margin:0 0 16px;font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)>:last-child:not(summary){margin-bottom:24px}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)>a{display:inline-flex;align-items:center;min-height:32px;margin:0 20px 16px 0;padding:0;color:var(--brand-ink);font-size:16px;line-height:20px;text-decoration:underline;text-underline-offset:3px}
.csdp .rh-pro :is(details.rh-row,details.pd-sources)>.record-source{font-size:14px;line-height:20px;color:var(--rh-ink-60)}

/* About */
.csdp .rh-pro .pd-ov-main{display:block}
.csdp .rh-pro .pd-desc{margin:0;padding:0;border:0;background:none}
.csdp .rh-pro :is(.pd-desc,.ov-records) .ov-eyebrow{display:block;margin:0 0 14px;font-size:14px;line-height:20px;font-weight:600;letter-spacing:2.1px;text-transform:uppercase;color:var(--rh-ink-60)}
.csdp .rh-pro .pd-desc blockquote{max-width:780px;margin:0;padding:0 0 0 20px;border-left:2px solid var(--brand);font-family:var(--font-sans);font-size:18px;line-height:30px;letter-spacing:-.2px;color:var(--ink)}
.csdp .rh-pro .pd-desc blockquote p{margin:0 0 12px;font:inherit;color:inherit}
.csdp .rh-pro .pd-desc blockquote p:last-child{margin-bottom:0}
.csdp .rh-pro .pd-more{margin:10px 0 0 22px;min-height:40px;padding:8px 0;font:500 16px/20px var(--font-sans);color:var(--brand-ink)}
.csdp .rh-pro .pd-desc figcaption{margin:14px 0 0 22px;padding:0;border:0;font-size:14px;line-height:20px;color:var(--rh-ink-60)}
.csdp .rh-pro .pd-desc figcaption a{color:var(--brand-ink)}
.csdp .rh-pro .ov-records .ov-summary{max-width:780px;margin:0;font-size:18px;line-height:30px;color:var(--ink)}
.csdp .rh-pro .ov-records .ov-summary+.ov-summary{margin-top:12px}
.csdp .rh-pro .pd-listing-details .ov-summary{max-width:none;margin:0 0 16px;font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rh-pro :is(.pd-listing-details,.pd-where) .ov-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:24px;margin:0;padding:14px 0;border:0;border-top:1px solid var(--rh-line);font-size:16px;line-height:24px}
.csdp .rh-pro :is(.pd-listing-details,.pd-where) .ov-k{font-size:14px;line-height:24px;font-weight:400;color:var(--rh-ink-60)}
.csdp .rh-pro :is(.pd-listing-details,.pd-where) .ov-v{min-width:0;color:var(--ink);overflow-wrap:anywhere}
.csdp .rh-pro .pd-call-plan{padding:0 24px;border-radius:12px;background:#fff;border:1px solid var(--rh-line)}
.csdp .rh-pro .pd-call-plan ol{margin:0 0 16px;padding:0;list-style:none}
.csdp .rh-pro .pd-call-plan li{display:flex;gap:14px;align-items:baseline;padding:12px 0;border-top:1px solid var(--rh-line);font-size:16px;line-height:24px;color:var(--ink)}
.csdp .rh-pro .pd-call-plan li>span{flex:none;font-size:14px;color:var(--brand-ink)}
.csdp .rh-pro .pd-call-plan .btn{width:auto;height:48px;min-height:48px;padding:0 24px;border:0;border-radius:10px;background:var(--rh-mint);box-shadow:none;color:var(--ink);font-size:16px;font-weight:400}
.csdp .rh-pro .pd-call-plan .btn:hover{background:#E2EAEC}
.csdp .rh-pro .pd-call-plan .record-source{margin:12px 0 20px;min-height:20px}
.csdp .rh-pro .pd-svc-note{margin:32px 0 0}
.csdp .rh-pro .pd-svc-note .px-section-heading h3{margin:0 0 10px;font-size:20.8px;line-height:24px;font-weight:500;letter-spacing:-.4px}
.csdp .rh-pro .px-empty{padding:28px;border-radius:10px;background:var(--rh-mint);font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rh-pro .px-empty p{margin:0}

/* Services */
.csdp .rh-pro .px-svc-lede{margin:-16px 0 24px;font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rh-pro .prof-services details.pd-sources{margin-top:16px}
.csdp .rh-pro .px-service-controls{margin:0 0 20px}
.csdp .rh-pro .px-service-search{height:48px;padding:0 16px;border:1px solid var(--rh-line);border-radius:10px;background:#fff}
.csdp .rh-pro .px-service-search input{padding:0;height:46px;font-size:16px}
.csdp .rh-pro .px-filter-chips{gap:8px;margin:16px 0 12px}
.csdp .rh-pro .px-filter-chips button{min-height:40px;padding:8px 16px;border:1px solid rgba(14,26,32,.15);border-radius:999px;background:#fff;color:var(--ink);font:500 14px/20px var(--font-sans)}
.csdp .rh-pro .px-filter-chips button[aria-pressed=true]{background:var(--brand-deep);border-color:var(--brand-deep);color:#fff}
.csdp .rh-pro .px-result-count{font-size:14px;color:var(--rh-ink-60)}
.csdp .rh-pro .px-service-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.csdp .rh-pro .px-service-card{border:0;border-radius:10px;background:var(--rh-mint);overflow:hidden}
.csdp .rh-pro .px-service-card summary{grid-template-columns:28px minmax(0,1fr) 20px;gap:12px;min-height:64px;padding:18px 20px;font-size:18px;line-height:24px;font-weight:500;letter-spacing:-.2px}
.csdp .rh-pro .px-service-card summary:hover{background:#E2EAEC}
.csdp .rh-pro .px-service-card[open]{background:var(--rh-mint);border-color:transparent}
.csdp .rh-pro .px-service-index{font:400 14px/20px var(--font-sans);color:var(--rh-ink-60)}
.csdp .rh-pro .px-service-body{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px;padding:0 20px 16px 60px}
.csdp .rh-pro .px-service-type{font-size:14px;font-weight:500;color:var(--brand-ink)}
.csdp .rh-pro .px-service-body button{min-height:40px;font-size:16px}
.csdp .rh-pro .px-service-more{display:flex;align-items:center;justify-content:center;height:48px;margin-top:16px;border:0;border-radius:10px;background:var(--rh-mint);box-shadow:none;color:var(--ink);font-size:16px;font-weight:400}
.csdp .rh-pro .px-question{border:0;border-radius:16px;background:var(--rh-mint);padding:28px}
.csdp .rh-pro .px-question h3{font-size:20.8px;line-height:24px;font-weight:500}

/* Reviews: the rating as an RH stat on mint */
.csdp .rh-pro .pd-review-summary{display:flex;align-items:center;gap:40px;padding:40px;border:0;border-radius:16px;background:var(--rh-mint)}
.csdp .rh-pro .pd-rating-value{gap:8px;color:var(--brand-deep)}
.csdp .rh-pro .pd-rating-value strong{font:500 80px/1 var(--font-display);letter-spacing:-3px;color:var(--brand-deep)}
.csdp .rh-pro .pd-rating-value>span{font-size:18px;color:var(--rh-ink-60)}
.csdp .rh-pro .pd-review-summary h3{margin:0 0 6px;font-size:28px;line-height:30px;font-weight:500;letter-spacing:-.6px}
.csdp .rh-pro .pd-review-summary p{margin:6px 0 0;font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rh-pro .pd-review-summary .record-source{font-size:14px;line-height:20px;color:var(--rh-ink-60)}

/* License & insurance: four RH feature cards */
.csdp .rh-pro .px-record-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:0}
.csdp .rh-pro .px-record-card{border:0;border-radius:10px;background:var(--rh-mint);align-self:start}
.csdp .rh-pro .px-record-card summary{position:relative;display:flex;flex-direction:column;gap:6px;padding:28px 64px 28px 28px;list-style:none;cursor:pointer}
.csdp .rh-pro .px-record-card summary>span:first-child{font-size:14px;line-height:20px;color:var(--rh-ink-60)}
.csdp .rh-pro .px-record-card strong{font-size:28px;line-height:30px;font-weight:500;letter-spacing:-.6px;color:var(--ink)}
.csdp .rh-pro .px-record-open{position:absolute;top:24px;right:24px;display:grid;place-items:center;justify-content:center;width:32px;height:32px;border-radius:999px;background:#fff;color:var(--brand-ink)}
.csdp .rh-pro .px-record-open i{font-size:20px;line-height:1;font-style:normal}
.csdp .rh-pro .px-record-card[open]{background:var(--rh-mint);border-color:transparent}
.csdp .rh-pro .px-record-card>div{padding:0 28px 28px;font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rh-pro .px-record-card>div p{margin:0 0 10px}
.csdp .rh-pro .px-record-card>div a{color:var(--brand-ink);margin-right:12px}
.csdp .rh-pro details.px-record-full{margin-top:16px}
.csdp .rh-pro .px-record-full .record-object{margin:0 0 24px;padding:0;border:0;box-shadow:none;background:none}

/* Permits: RH stats, then the job table */
.csdp .rh-pro .pm-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-auto-flow:row;gap:16px;margin:0 0 24px;padding:0;border:0;border-radius:0;box-shadow:none;overflow:visible;background:none}
.csdp .rh-pro .pm-summary>div{display:flex;flex-direction:column;gap:6px;padding:28px;border:0;border-radius:10px;background:var(--rh-mint)}
.csdp .rh-pro .pm-summary b{font:500 32px/36px var(--font-display);letter-spacing:-.8px;color:var(--brand-deep)}
.csdp .rh-pro .pm-summary span{font-size:14px;line-height:20px;color:var(--rh-ink-70)}
.csdp .rh-pro .pm-table-wrap{border:1px solid var(--rh-line);border-radius:16px;overflow:auto}
.csdp .rh-pro details.pm-more{margin-top:16px}
.csdp .rh-pro .pm-more .pm-grid{margin:0 0 16px}

/* Hours and location */
.csdp .rh-pro .pd-where{max-width:none}
.csdp .rh-pro .pd-where .ov-row:last-child{border-bottom:1px solid var(--rh-line)}
.csdp .rh-pro .pd-where .ov-sub{display:block;margin-top:4px;font-size:14px;line-height:20px;color:var(--rh-ink-70)}
.csdp .rh-pro .pd-where .hours{display:grid;grid-template-columns:auto 1fr;gap:4px 20px;margin:0}
.csdp .rh-pro .pd-where .hours dt{color:var(--rh-ink-70)}
.csdp .rh-pro .pd-where .hours dd{margin:0}
.csdp .rh-pro .ov-nearby{display:flex;flex-wrap:wrap;gap:8px}
.csdp .rh-pro .ov-nearby a{display:inline-flex;align-items:center;min-height:36px;padding:6px 14px;border:1px solid rgba(14,26,32,.15);border-radius:999px;color:var(--ink);font-size:14px;line-height:20px;text-decoration:none}
.csdp .rh-pro .ov-nearby a:hover{background:var(--rh-mint)}
.csdp .rh-pro details.pd-map{margin-top:24px}
.csdp .rh-pro .pd-map .pro-map{margin:0 0 20px;border-radius:16px;overflow:hidden;box-shadow:none;border:1px solid var(--rh-line)}

/* ---------- 4. Before you call and similar pros: RH cards under a 32/500 head ---------- */
.csdp .rh-pro [data-main-content]>section:is(.prof-before,.prof-similar){margin:0;padding:var(--rh-sec) 0 0;border:0;background:none}
.csdp .rh-pro :is(.prof-before,.prof-similar) .row-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:8px 24px;margin:0 0 24px}
.csdp .rh-pro :is(.prof-before,.prof-similar) .row-head h2{margin:0;font-size:32px;line-height:34px;font-weight:500;letter-spacing:-.6px}
.csdp .rh-pro :is(.prof-before,.prof-similar) .row-head>a{font-size:16px;line-height:24px;color:var(--brand-ink)}
.csdp .rh-pro :is(.prof-before,.prof-similar) .grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.csdp .rh-pro .grid-3 .card.rh-guide{display:flex;flex-direction:column;gap:10px;min-height:0;padding:32px;border:0;border-radius:10px;background:var(--rh-mint);box-shadow:none;color:var(--ink);text-decoration:none;transition:background .16s}
.csdp .rh-pro .grid-3 .card.rh-guide:hover{background:#E2EAEC;transform:none;box-shadow:none}
.csdp .rh-pro .grid-3 .card.rh-guide .t{font-size:20.8px;line-height:24px;font-weight:500;letter-spacing:-.4px;color:var(--ink)}
.csdp .rh-pro .grid-3 .card.rh-guide .d{font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rh-pro .grid-3 .card.rh-sim{display:flex;flex-direction:column;align-items:flex-start;gap:14px;min-height:0;padding:24px;border:1px solid var(--rh-line);border-radius:16px;background:#fff;box-shadow:none;color:var(--ink);text-decoration:none;transition:box-shadow .2s}
.csdp .rh-pro .grid-3 .card.rh-sim:hover{box-shadow:0 12px 32px -12px rgba(14,26,32,.25);transform:none}
.csdp .rh-pro .grid-3 .card.rh-sim .sim-top{display:flex;align-items:center;gap:12px;min-width:0}
.csdp .rh-pro .grid-3 .card.rh-sim .av{width:40px;height:40px;flex:none;border-radius:999px;font-size:14px}
.csdp .rh-pro .grid-3 .card.rh-sim .t{font-size:20.8px;line-height:24px;font-weight:500;letter-spacing:-.4px;color:var(--ink);overflow-wrap:anywhere}
.csdp .rh-pro .grid-3 .card.rh-sim .rate{font-size:14px;color:var(--rh-ink-70);white-space:normal}
.csdp .rh-pro .grid-3 .card.rh-sim .chips{display:flex;flex-wrap:wrap;gap:6px}

/* ---------- 5. For the owner: RH's closing brand block; this listing's rungs float as the toasts ---------- */
.csdp .rh-pro [data-main-content]>section.prof-owner.rh-cta-sec{margin:0;padding:var(--rh-sec) 0;border:0;background:none}
.csdp .rh-pro .rh-cta-copy .btn-white{height:48px;padding:0 24px;border-radius:10px;font-size:16px;font-weight:400}
.csdp .rh-pro .rh-cta .rh-cta-fine{margin:16px 0 0;font-size:14px;line-height:20px;color:rgba(255,255,255,.75)}
.csdp .rh-pro .rh-cta .rh-cta-fine a{color:#fff}
.csdp .rh-pro .rh-toasts{margin:0;padding:0;list-style:none}
.csdp .rh-pro .rh-toast{gap:12px;padding:12px 20px 12px 12px}
.csdp .rh-pro .rh-toast>span:last-child{display:block}
.csdp .rh-pro .rh-toast-ic{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:999px;background:rgba(255,255,255,.14);color:#fff}
.csdp .rh-pro .rh-toast.is-on .rh-toast-ic{background:#fff;color:var(--brand-deep)}
.csdp .rh-pro .rh-toast-ic svg{width:16px;height:16px}
.csdp .rh-pro .rh-toast:nth-child(1){top:2%;left:4%}
.csdp .rh-pro .rh-toast:nth-child(2){top:26%;left:34%}
.csdp .rh-pro .rh-toast:nth-child(3){top:51%;left:8%}
.csdp .rh-pro .rh-toast:nth-child(4){top:76%;left:38%}

/* ---------- Tablet ---------- */
@media (max-width:1100px){
  .csdp .rh-pro .rh-pro-copy{padding:28px 8px 28px 24px}
  .csdp .rh-pro .pd-deck-in{display:flex;gap:10px;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:2px 2px 6px}
  .csdp .rh-pro .pd-deck-in::-webkit-scrollbar{display:none}
  .csdp .rh-pro .pd-card{flex:0 0 172px;scroll-snap-align:start}
}
@media (max-width:1000px){
  .csdp .rh-pro .rh-pro-card{grid-template-columns:minmax(0,1fr)}
  .csdp .rh-pro .rh-pro-copy{padding:20px 8px 8px}
  .csdp .rh-pro .rh-pro-map{min-height:280px}
  .csdp .rh-pro :is(.prof-before,.prof-similar) .grid-3{grid-template-columns:minmax(0,1fr)}
}
@media (max-width:860px){.csdp .rh-pro .pd-deck{top:81px}}

/* ---------- Phones (RH at 390: H1 36, H2 30, 20px sides, stacked cards) ---------- */
@media (max-width:760px){
  .csdp .wrap.rh-pro{padding-left:20px;padding-right:20px}
  .csdp .rh-pro .pro-hero{padding-top:8px}
  .csdp .rh-pro .rh-pro-card{margin:12px 0 20px;padding:16px;border-radius:24px}
  .csdp .rh-pro .rh-pro-copy{padding:12px 4px 4px}
  .csdp .rh-pro .pd-hero-map.rh-pro-map{display:none}
  .csdp .rh-pro .rh-pro-fact{margin-bottom:12px;font-size:18px;line-height:26px}
  .csdp .rh-pro .rh-pro-copy h1{max-width:none}
  .csdp .rh-pro .rh-pro-lede{margin-top:12px;font-size:16px;line-height:24px}
  .csdp .rh-pro .rh-pills{gap:6px;margin-top:16px}
  .csdp .rh-pro .rh-pills .chip{min-height:30px;padding:4px 12px;font-size:14px;line-height:18px}
  .csdp .rh-pro .rh-pro-acts{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;width:100%;margin-top:20px}
  .csdp .rh-pro .rh-pro-acts .btn{padding:0 16px;min-width:0}
  .csdp .rh-pro .rh-pro-acts .btn:only-child{grid-column:1 / -1}
  .csdp .rh-pro .rh-pro-more{margin-top:8px}
  .csdp .rh-pro .pd-deck{margin:0 -20px 16px;padding:10px 20px 10px}
  .csdp .rh-pro .pd-deck-head{margin-bottom:10px}
  .csdp .rh-pro .pd-deck-head .eyebrow{display:none}
  .csdp .rh-pro .pd-navigation{margin-left:auto}
  .csdp .rh-pro .pd-deck-in{padding:0 0 4px;scroll-padding:0}
  .csdp .rh-pro .pd-card{flex:0 0 148px;padding:12px 14px 14px}
  .csdp .rh-pro .pd-label{font-size:14px;line-height:18px}
  .csdp .rh-pro .pd-fact{font-size:16px;line-height:22px}
  .csdp .rh-pro .pd-panels{gap:16px}
  .csdp .rh-pro .pd-panels>[data-deck-panel]{padding:28px 20px;border-radius:20px;scroll-margin-top:200px}
  .csdp .rh-pro .pd-panels .row-head{gap:4px 16px;margin-bottom:20px}
  .csdp .rh-pro .pd-panels .row-head h2,.csdp .rh-pro .pd-panels .px-section-heading h2{font-size:30px;line-height:32px;letter-spacing:-.6px}
  .pd-on .csdp .rh-pro .pd-panels .pd-next{margin-top:28px;padding:0 18px}
  .csdp .rh-pro .pd-disclosure-row{margin-top:24px}
  .csdp .rh-pro :is(details.rh-row,details.pd-sources){padding:0 18px}
  .csdp .rh-pro :is(details.rh-row,details.pd-sources)>summary{min-height:60px;padding:18px 0;font-size:16px;line-height:22px}
  .csdp .rh-pro .pd-desc blockquote{padding-left:16px;font-size:18px;line-height:28px}
  .csdp .rh-pro .pd-more,.csdp .rh-pro .pd-desc figcaption{margin-left:18px}
  .csdp .rh-pro :is(.pd-listing-details,.pd-where) .ov-row{grid-template-columns:minmax(0,1fr);gap:2px}
  .csdp .rh-pro .px-svc-lede{margin-top:-8px}
  .csdp .rh-pro .px-service-grid{grid-template-columns:minmax(0,1fr)}
  .csdp .rh-pro .px-service-body{padding-left:20px}
  .csdp .rh-pro .pd-review-summary{flex-wrap:wrap;align-items:flex-start;gap:16px;padding:24px}
  .csdp .rh-pro .pd-rating-value strong{font-size:64px}
  .csdp .rh-pro .pd-review-summary h3{font-size:24px;line-height:26px}
  .csdp .rh-pro .px-record-grid{grid-template-columns:minmax(0,1fr);gap:12px}
  .csdp .rh-pro .px-record-card summary{padding:22px 60px 22px 22px}
  .csdp .rh-pro .px-record-card strong{font-size:24px;line-height:26px}
  .csdp .rh-pro .px-record-open{top:20px;right:20px}
  .csdp .rh-pro .px-record-card>div{padding:0 22px 22px}
  .csdp .rh-pro .pm-summary{grid-template-columns:minmax(0,1fr);gap:10px}
  .csdp .rh-pro .pm-summary>div{padding:20px}
  .csdp .rh-pro :is(.prof-before,.prof-similar) .row-head h2{font-size:26px;line-height:28px;letter-spacing:-.5px}
  .csdp .rh-pro .grid-3 .card.rh-guide{padding:24px}
}
@media (max-width:360px){
  .csdp .rh-pro .rh-pro-acts{grid-template-columns:minmax(0,1fr)}
}
@media (prefers-reduced-motion:reduce){
  .csdp .rh-pro :is(.pd-card,.rh-guide,.rh-sim){transition:none}
}

/* ReviewHarvest clone layer: content templates (2026-10-09).
   Guides, tools, Pro Desk, How we list, the Standard, Distinctions, Facts and the 404. Every one of these bodies opts
   out of polish-markup (data-ux-layout), so this file owns their layout. Values are RH's, measured the same day
   (reference-harvests/reviewharvest-2026-10-09: rh-resources, rh-article, rh-product, rh-local-authority, rh-about,
   rh-ranking-call). CSDP keeps its own teal, tints, logo and data; RH greens are never used. Loads after rh-clone.css.
   Scope: everything sits under .csdp .rhc (the page root that pages/guides.mjs rhPage() writes). */

/* ---------- 0. Page root and crumbs ---------- */
.csdp .rhc{display:block;color:var(--ink)}
.csdp .rhc-crumbs{padding-top:20px}
.csdp .rhc-crumbs .crumbs{display:flex;flex-wrap:wrap;gap:8px;width:auto;max-width:none;margin:0;padding:0;font-size:14px;line-height:20px;color:var(--rh-ink-60);white-space:normal;overflow:visible}
.csdp .rhc-crumbs .crumbs a{color:var(--rh-ink-60)}
.csdp .rhc-crumbs .crumbs .here{display:inline;color:var(--ink);font-weight:500}
.csdp .rhc-crumbs.on-dark .crumbs,.csdp .rhc-crumbs.on-dark .crumbs a{color:rgba(255,255,255,.6)}
.csdp .rhc-crumbs.on-dark .crumbs .here{color:#fff}
.csdp .rhc .btn{justify-content:center}
.csdp .btn-outline-light{display:inline-flex;align-items:center;justify-content:center;height:48px;padding:0 24px;border-radius:10px;border:1px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-size:16px;font-weight:400}
.csdp .btn-outline-light:hover{background:rgba(255,255,255,.08);color:#fff;text-decoration:none}
.csdp .rhc-w1024{max-width:1024px}
.csdp .rhc-band-mint{background:var(--tint-1)}

/* ---------- 1. RH Resources index: centred hero, one column of row cards ---------- */
.csdp .rhc-hero{padding:72px 0 48px;background:#fff}
.csdp .rhc-hero-in{max-width:896px;display:flex;flex-direction:column;align-items:center;text-align:center}
.csdp .rhc-hero h1{font-size:80px;line-height:80px;font-weight:500;letter-spacing:-1.6px;margin:0;text-wrap:balance}
.csdp .rhc-sub{max-width:672px;margin:24px auto 0;font-size:16px;line-height:24px;color:var(--rh-ink-70)}
.csdp .rhc-pair{justify-content:center;margin-top:32px}
.csdp .rhc-list-sec{padding:0 0 var(--rh-sec)}
.csdp .rhc-list{display:flex;flex-direction:column;gap:20px}
.csdp .rhc-row{display:flex;align-items:center;gap:16px;padding:16px;border-radius:20px;background:rgba(14,26,32,.045);color:var(--ink);transition:background .15s ease}
.csdp .rhc-row:hover{background:rgba(14,26,32,.08);text-decoration:none}
.csdp .rhc-thumb{flex:none;display:grid;place-items:center;width:150px;height:100px;border-radius:8px;background:var(--brand-deep);color:var(--brand-mist)}
.csdp .rhc-thumb svg{width:40px;height:40px}
.csdp .rhc-row-body{min-width:0;display:flex;flex-direction:column}
.csdp .rhc-row h2{font-size:28px;line-height:29.4px;font-weight:500;letter-spacing:-.6px;color:var(--ink);margin:0}
.csdp .rhc-row p{margin:8px 0 0;font-size:16px;line-height:24px;color:var(--rh-ink-70)}
.csdp .rhc-meta{margin-top:12px;font-size:14px;line-height:20px;color:var(--ink)}
/* A checklist card under the list, on the mint role. */
.csdp .rhc-note{margin-top:20px;padding:32px;border-radius:20px;background:var(--tint-1)}
.csdp .rhc-note h2{font-size:28px;line-height:29.4px;font-weight:500;letter-spacing:-.6px;margin:0 0 16px}
.csdp .rhc-note ol{margin:0;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.csdp .rhc-note li{font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rhc-more{display:inline-block;margin-top:16px;font-weight:500;color:var(--brand-ink)}
.csdp .rhc .coming{margin:24px 0 0;text-align:center;font-size:14px;line-height:22px;color:var(--rh-ink-60)}
/* The separator closes the title before it, so a wrapped line never starts on a dot. */
.csdp .rhc .coming span + span::before{content:none}
.csdp .rhc .coming span:not(:last-child)::after{content:" ·"}
.csdp .rhc-foot{margin:24px auto 0;max-width:672px;text-align:center;font-size:14px;line-height:22px;color:var(--rh-ink-60)}
.csdp .rhc-foot.left{margin-left:0;text-align:left}
.csdp .rhc-foot a{color:var(--brand-ink);text-decoration:underline;text-underline-offset:3px}
/* Links to the main site's tools: chips, centred. */
.csdp .rhc-more-tools{margin-top:56px;text-align:center}
.csdp .rhc-more-tools h2{font-size:32px;line-height:33.6px;font-weight:500;letter-spacing:-.6px;margin:0 0 24px}
.csdp .rhc-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:12px}
.csdp .rhc-chips a{display:inline-flex;align-items:center;height:44px;padding:0 18px;border-radius:10px;background:var(--tint-1);color:var(--ink);font-size:16px}
.csdp .rhc-chips a:hover{background:var(--brand-tint);text-decoration:none}

/* ---------- 2. RH article: centred date and H1, one 640px column ---------- */
.csdp .rhc-article{padding:56px 0 80px}
.csdp .rhc-col{max-width:688px;margin:0 auto;padding:0 24px}
.csdp .rhc-date{margin:0;text-align:center;font-size:16px;line-height:24px;color:var(--ink)}
.csdp .rhc-article h1{margin:12px 0 40px;text-align:center;font-size:64px;line-height:70.4px;font-weight:500;letter-spacing:-1.3px;text-wrap:balance}
.csdp .rhc-article p,.csdp .rhc-article li{font-size:16px;line-height:26px;color:rgba(14,26,32,.9)}
.csdp .rhc-article p{margin:0 0 20px}
.csdp .rhc-article h2{margin:40px 0 12px;font-size:22.4px;line-height:29.1px;font-weight:600;letter-spacing:-.4px;color:var(--ink)}
.csdp .rhc-article ul,.csdp .rhc-article ol{margin:0 0 20px;padding-left:22px;display:flex;flex-direction:column;gap:8px}
.csdp .rhc-article a:not(.btn){color:var(--brand-ink);text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:1px}
.csdp .rhc-article .mono{font-family:var(--font-mono);font-size:16px;color:var(--ink);white-space:nowrap}
.csdp .rhc-article p.rhc-cta-row{margin:4px 0 8px}
.csdp .rhc-article p.rhc-sources{margin-top:8px;font-size:14px;line-height:22px;color:var(--rh-ink-60)}
.csdp .rhc-article p.rhc-quote{padding:20px 24px;border-radius:16px;background:var(--tint-1);color:var(--ink)}
.csdp .rhc-article .do-now{margin:0 0 20px;border-radius:16px}
/* Status stamps: four tinted cards in a 2 x 2 grid, then the source line. */
.csdp .rhc-stamps{display:flex;flex-direction:column;gap:12px;margin:8px 0 20px}
.csdp .rhc-stamps .stamps{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.csdp .rhc-stamps .stamp{display:flex;flex-direction:column;align-items:flex-start;gap:10px;min-width:0;padding:20px;border-radius:16px;background:var(--tint-1)}
.csdp .rhc-stamps .stamp .v{font-size:16px;line-height:22px;color:var(--rh-ink-75)}
.csdp .rhc-stamps .record-source{font-size:14px;line-height:18px;color:var(--rh-ink-60)}
/* Tools sit where RH puts the article's hero image: one tinted card, white fields. */
.csdp .rhc-tool{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:12px;margin:8px 0 40px;padding:24px;border-radius:24px;background:var(--tint-1)}
.csdp .rhc-tool .field{margin:0;font-size:14px;color:var(--ink)}
.csdp .rhc-tool .field input{height:48px;border-radius:10px;border:1px solid var(--rh-line)}
.csdp .rhc-tool .btn{height:48px}
.csdp .rhc-article .rhc-tool .rhc-tool-note{grid-column:1 / -1;margin:0;font-size:14px;line-height:18px;color:var(--rh-ink-60)}
.csdp .rhc-article .rhc-tool .rhc-tool-msg{grid-column:1 / -1;margin:0;font-size:14px;line-height:20px;color:var(--attention-ink)}
.csdp .rhc-article .rhc-tool .rhc-tool-msg:empty{display:none}
.csdp .rhc-brief-form{margin:8px 0 24px;padding:24px;border-radius:24px;background:var(--tint-1)}
.csdp .rhc-brief-form .hero-form{margin:0}
.csdp .rhc-editor{display:flex;flex-direction:column;align-items:flex-start;gap:12px;margin:0 0 32px}
.csdp .rhc-editor[hidden]{display:none}
.csdp .rhc-editor .field{width:100%}
.csdp .rhc-editor .field textarea{border:1px solid var(--rh-line)}
/* The sister-service block at the foot of a fix-it guide. */
.csdp .rhc-article .rsp{margin-top:32px;padding:24px;border-radius:16px;background:var(--tint-2);display:flex;flex-direction:column;gap:10px}
.csdp .rhc-article .rsp p{margin:0;font-size:16px;line-height:23px}
.csdp .rhc-article .rsp .price{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;font-weight:600;font-size:16px;color:var(--ink)}
.csdp .rhc-article .rsp .fine{font-size:14px;line-height:18px;color:var(--rh-ink-60)}

/* ---------- 3. RH "Related posts" ---------- */
.csdp .rhc-related{padding:0 0 80px}
.csdp .rhc-related h2{margin:0 0 32px;text-align:center;font-size:32px;line-height:33.6px;font-weight:500;letter-spacing:-.6px}
.csdp .rhc-rel-grid{display:grid;grid-template-columns:1fr 1fr;gap:32px}
.csdp .rhc-rel{position:relative;display:flex;flex-direction:column;justify-content:flex-end;gap:8px;min-height:240px;padding:28px;border-radius:16px;background:var(--tint-1);color:var(--ink);transition:background .15s ease}
.csdp .rhc-rel:hover{background:var(--brand-tint);text-decoration:none}
.csdp .rhc-rel-ic{position:absolute;top:28px;left:28px;display:grid;place-items:center;width:48px;height:48px;border-radius:12px;background:#fff;color:var(--brand-ink)}
.csdp .rhc-rel-ic svg{width:24px;height:24px}
.csdp .rhc-rel-t{font-size:24px;line-height:25.2px;font-weight:500;letter-spacing:-.5px}
.csdp .rhc-rel-kind{font-size:14px;line-height:20px;color:var(--rh-ink-60)}
/* RH's article page ends on an empty mint band, 40 px above and below (80 tall at both widths), running into the mint footer. */
.csdp .rhc-leadin{padding:40px 0;background:var(--rh-mint)}

/* ---------- 4. Dark grounds: RH product and About heroes, the math band, the booking page ---------- */
.csdp .rhc-dark{background:var(--brand-deep)}
.csdp .rhc-dark-in{max-width:1024px;display:flex;flex-direction:column;align-items:center;padding-top:80px;padding-bottom:96px;text-align:center}
.csdp .rhc-dark-in h1{max-width:976px;margin:0;color:#fff;text-wrap:balance}
.csdp .rhc-dark-in .rh-eyebrow{margin-bottom:20px}
.csdp .rhc-dark .rh-eyebrow{color:var(--brand-mist)}
.csdp .rhc-dark-in .rhc-dark-sub{max-width:672px;margin:24px auto 0;font-size:18px;line-height:28px;color:rgba(255,255,255,.7)}
.csdp .rhc-dark .rh-head h2{color:#fff}
.csdp .rhc-dark .rh-head p{color:rgba(255,255,255,.7)}
.csdp .rhc-dark .btn-lg{height:52px;padding:0 28px}

/* ---------- 5. Pro Desk (RH product page) ---------- */
.csdp .rhc-pd-hero .rhc-dark-in{padding-bottom:64px}
.csdp .rhc-pd-hero .rhc-dark-in .rhc-dark-sub{font-size:16px;line-height:24px}
/* The sample report rises from the foot of the hero, the way RH's product UI does. */
.csdp .rhc-rise{display:flex;justify-content:center}
.csdp .rhc-rise .rhc-report{width:100%;max-width:560px;background:#fff;border-radius:24px 24px 0 0;box-shadow:0 -12px 40px rgba(0,0,0,.25)}
.csdp .rhc-report h3{color:var(--ink)}
/* Feature cards: radius 10, padding 32, one fill each. */
.csdp .rhc-pillars{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.csdp .rhc-pillar{display:flex;flex-direction:column;gap:24px;min-height:380px;padding:32px;border-radius:10px}
.csdp .rhc-pillar.is-deep{background:var(--brand-deep);color:#fff}
.csdp .rhc-pillar.is-brand{background:var(--brand);color:#fff}
.csdp .rhc-pillar.is-mint{background:var(--tint-1);color:var(--ink)}
.csdp .rhc-pillar h3{margin:0;font-size:28px;line-height:29.4px;font-weight:500;letter-spacing:-.6px;color:inherit}
.csdp .rhc-pillar dl{margin:0;display:flex;flex-direction:column;gap:4px}
.csdp .rhc-pillar dt{margin-top:14px;font-size:14px;line-height:18px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;opacity:.7}
.csdp .rhc-pillar dt:first-child{margin-top:0}
.csdp .rhc-pillar dd{margin:0;font-size:16px;line-height:22px;opacity:.92}
.csdp .rhc-own{margin:24px 0 0;text-align:center;font-size:14px;line-height:18px;color:var(--rh-ink-60)}
/* The proof line under the cards (RH "Trusted by ..."), with the dataset's own counts. */
.csdp .rhc-stats{margin-top:56px;text-align:center}
.csdp .rhc-stats p{margin:0 0 24px;font-size:16px;line-height:24px;color:var(--ink)}
.csdp .rhc-stats ul{list-style:none;max-width:960px;margin:0 auto;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.csdp .rhc-stats li{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px;border-radius:16px;border:1px solid var(--rh-line)}
.csdp .rhc-stats .num{font-size:40px;line-height:44px;font-weight:500;letter-spacing:-1px;color:var(--ink)}
.csdp .rhc-stats li span{font-size:14px;line-height:20px;color:var(--rh-ink-60)}
/* The math band (RH Local Authority): centred head, then the illustration and the calculator side by side. */
.csdp .rhc-math{padding:var(--rh-sec) 0}
.csdp .rhc-math-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;max-width:1024px;margin:0 auto;align-items:center}
.csdp .rhc-funnel{margin:0;padding:28px;border-radius:20px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.12)}
.csdp .rhc-funnel .record-source{color:rgba(255,255,255,.7)}
/* The phone call bar: the funnel's .fn-bar grid rule overrides .callbar{display:none} above 820px, so hide it here. */
@media (min-width:821px){.csdp .callbar.fn-bar{display:none}}
.csdp .rhc-calc{padding:32px;border-radius:20px;background:#fff;color:var(--ink)}
.csdp .rhc-calc h3{color:var(--ink)}
.csdp .rhc-calc p{color:var(--rh-ink-60)}
/* How it works: three sand cards, then RH's honest-question card on the dark ground. */
.csdp .rhc-steps{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.csdp .rhc-steps li{display:flex;flex-direction:column;gap:8px;padding:28px;border-radius:20px;background:var(--tint-2);border:1px solid var(--rh-line)}
.csdp .rhc-steps .k{font-size:14px;line-height:20px;font-weight:600;letter-spacing:2.1px;text-transform:uppercase;color:var(--brand-ink)}
.csdp .rhc-steps h3{margin:4px 0 0;font-size:20px;line-height:24px;font-weight:500;letter-spacing:-.4px}
.csdp .rhc-steps p{margin:0;font-size:16px;line-height:23px;color:var(--rh-ink-70)}
.csdp .rhc-question{max-width:768px;margin:24px auto 0;padding:32px 40px;border-radius:16px;background:var(--brand-deep);color:#fff;display:flex;flex-direction:column;align-items:center;gap:16px;text-align:center}
.csdp .rhc-question .rh-eyebrow{margin:0;color:var(--brand-mist)}
.csdp .rhc-question h3{max-width:600px;margin:0;font-size:22px;line-height:30px;font-weight:500;letter-spacing:-.3px;color:#fff}
.csdp .rhc-question .rh-pair{justify-content:center}
.csdp .rhc-question .rhc-q-math{margin:0;font-size:14px;line-height:20px;color:rgba(255,255,255,.7)}
.csdp .rhc-question .rhc-q-math b{color:#fff}
/* The ladder split (RH "Boost"): copy and a button left, the ladder object right. */
.csdp .rhc-split{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:center}
.csdp .rhc-split-copy h2{margin:0;font-size:45.3px;line-height:47.5px;font-weight:500;letter-spacing:-.9px}
.csdp .rhc-split-copy p{max-width:480px;margin:16px 0 24px;font-size:18px;line-height:28px;color:var(--rh-ink-70)}
.csdp .rhc-pd .ladder{max-width:none;margin:0;padding:28px 32px;border-radius:24px;background:#fff;border:1px solid var(--rh-line);box-shadow:0 1px 2px rgba(14,26,32,.06),0 12px 32px rgba(14,26,32,.08)}
/* The offer (RH pricing): sand band, four white feature cards beside the one dark price card. */
.csdp .rhc-offer-sec{background:var(--tint-2)}
.csdp .rhc-offer{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:24px;align-items:stretch}
.csdp .rhc-bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.csdp .rhc-bento-card{display:flex;flex-direction:column;gap:8px;padding:28px;border-radius:20px;background:#fff;border:1px solid var(--rh-line)}
.csdp .rhc-bento-card h3{margin:0;font-size:20px;line-height:24px;font-weight:500;letter-spacing:-.4px}
.csdp .rhc-bento-card p{margin:0;font-size:16px;line-height:23px;color:var(--rh-ink-70)}
.csdp .rhc-price{display:flex;flex-direction:column;gap:16px;padding:40px;border-radius:20px;background:var(--brand-deep);color:#fff;box-shadow:0 20px 25px -5px rgba(0,0,0,.10)}
.csdp .rhc-price .rh-eyebrow{margin:0;color:var(--brand-mist)}
.csdp .rhc-price .fn-price-amt b{color:#fff}
.csdp .rhc-price .fn-price-amt span{color:rgba(255,255,255,.7)}
.csdp .rhc-price p{margin:0;font-size:16px;line-height:23px;color:rgba(255,255,255,.75)}
.csdp .rhc-price ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:10px}
.csdp .rhc-price li{display:flex;align-items:center;gap:10px;font-size:16px;line-height:22px;color:#fff}
.csdp .rhc-price li svg{flex:none;width:16px;height:16px;color:var(--brand-mist)}
.csdp .rhc-price .btn{margin-top:auto}
/* Chips in the closing brand block carry an icon where the home page carries initials. */
.csdp .rhc-toast-ic{flex:none;display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.14);color:#fff}
.csdp .rhc-toast-ic svg{width:20px;height:20px}
.csdp .rhc .rh-cta .rh-pair{gap:12px}

/* ---------- 6. Listing ownership (RH booking page): one centred card on the dark ground ---------- */
.csdp .rhc-claim-band{min-height:640px;padding:96px 0 112px}
.csdp .rhc-claim-card{max-width:576px;margin:0 auto;padding:32px;border-radius:24px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.12);box-shadow:0 25px 50px -12px rgba(0,0,0,.45)}
.csdp .rhc-claim-card .rh-eyebrow{margin-bottom:12px;color:var(--brand-mist)}
.csdp .rhc-claim-card h1{margin:0;font-size:48px;line-height:50px;letter-spacing:-1px;color:#fff}
.csdp .rhc-claim-card p{margin:12px 0 24px;font-size:16px;line-height:24px;color:rgba(255,255,255,.7)}
.csdp .rhc-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
/* 72 px tall, a height on RH's button scale (its two-line home CTA pair measures 72); 70 is not on it (2026-10-12). */
.csdp .rhc-opt{display:flex;align-items:center;gap:12px;min-height:72px;padding:14px 16px;border-radius:12px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.04);color:#fff;transition:background .15s ease}
.csdp .rhc-opt:hover{background:rgba(255,255,255,.1);text-decoration:none}
.csdp .rhc-opt-ic{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:rgba(255,255,255,.1);color:var(--brand-mist)}
.csdp .rhc-opt-ic svg{width:20px;height:20px}
.csdp .rhc-opt-t{display:flex;flex-direction:column;min-width:0}
.csdp .rhc-opt-t b{font-size:16px;line-height:22px;font-weight:600;color:#fff}
.csdp .rhc-opt-t small{font-size:14px;line-height:18px;color:rgba(255,255,255,.6)}

/* ---------- 7. The Front Door Report ---------- */
.csdp .rh-sec.rhc-email-sec{padding-top:64px}
.csdp .rhc-email-one{max-width:720px;margin:0 auto}
.csdp .rhc .email{border-radius:24px;border-color:var(--rh-line);box-shadow:0 1px 2px rgba(14,26,32,.06),0 12px 32px rgba(14,26,32,.08)}
.csdp .rhc-email-one .email{max-width:none}
.csdp .rhc-states{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;align-items:start}
.csdp .rhc-states .email{max-width:none}
.csdp .rhc-state-lab{display:flex;flex-direction:column;gap:4px;margin:0 0 12px}
.csdp .rhc-state-lab b{font-size:20px;line-height:24px;font-weight:500;letter-spacing:-.4px}
.csdp .rhc-state-lab span{font-size:16px;line-height:22px;color:var(--rh-ink-70)}
/* A plain hairline table (metric and source rules); stacks with labels on phones. */
.csdp .rhc-table{display:grid;border-top:1px solid var(--rh-line)}
.csdp .rhc-table-3{grid-template-columns:minmax(0,1.1fr) minmax(0,1.2fr) minmax(0,1.5fr)}
.csdp .rhc-table > div{padding:16px 16px 16px 0;border-bottom:1px solid var(--rh-line);font-size:16px;line-height:23px;color:var(--rh-ink-75)}
.csdp .rhc-table > .h{padding-top:12px;padding-bottom:12px;font-size:14px;line-height:18px;font-weight:600;letter-spacing:1.4px;text-transform:uppercase;color:var(--rh-ink-60)}
.csdp .rhc-table b{font-weight:500;color:var(--ink)}

/* ---------- 8. How we list, the Standard, Distinctions (RH About) ---------- */
.csdp .rhc-rules-sec .rh-head{margin-bottom:48px}
.csdp .rhc-rules{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.csdp .rhc-rules.is-4{grid-template-columns:repeat(2,minmax(0,1fr))}
.csdp .rhc-rule{display:flex;flex-direction:column;gap:10px;padding:24px 32px 28px;border-radius:10px;background:#fff;border:1px solid rgba(14,26,32,.14)}
.csdp .rhc-rule .n{font-size:14px;line-height:20px;font-weight:600;letter-spacing:1.4px;color:var(--brand-ink)}
.csdp .rhc-rule h3{margin:0;font-size:20.8px;line-height:24px;font-weight:500;letter-spacing:-.4px;color:var(--ink)}
.csdp .rhc-rule p{margin:0;font-size:16px;line-height:23px;color:var(--rh-ink-70)}
.csdp .rhc-rule a{color:var(--brand-ink);text-decoration:underline;text-underline-offset:3px}
.csdp .rhc-rule p.record-source{font-size:14px;line-height:18px;color:var(--rh-ink-60)}
/* The story row (RH "How it all started"): a visual and its copy, side by side. */
.csdp .rhc-story{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:center}
.csdp .rhc-story.is-text{align-items:start}
.csdp .rhc-story.is-text .rh-head{margin:0}
.csdp .rhc-story .status-visual{padding:28px;border-radius:20px;background:#fff;border:1px solid var(--rh-line);box-shadow:0 1px 2px rgba(14,26,32,.06),0 12px 32px rgba(14,26,32,.08)}
.csdp .rhc-story .status-visual .visual-source{margin-top:12px;font-size:14px;line-height:18px;color:var(--rh-ink-60)}
.csdp .rhc-story-copy p{margin:0 0 16px;font-size:16px;line-height:26px;color:var(--rh-ink-75)}
.csdp .rhc-story-copy p.record-source{font-size:14px;line-height:18px;color:var(--rh-ink-60)}
.csdp .rhc-srcs{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px}
.csdp .rhc-srcs li{padding-left:16px;border-left:2px solid var(--brand-tint);font-size:16px;line-height:23px;color:var(--rh-ink-75)}
.csdp .rhc-srcs b{display:block;font-weight:500;color:var(--ink)}
/* A fold for reference detail, drawn like the RH FAQ rows. */
.csdp .rhc-fold{margin-top:40px;padding:0 24px;border-radius:12px;background:#fff;border:1px solid var(--rh-line)}
.csdp .rhc-fold > summary{display:flex;justify-content:space-between;align-items:center;min-height:0;padding:20px 0;list-style:none;font-size:18px;line-height:24px;font-weight:600;letter-spacing:-.3px;color:var(--ink)}
.csdp .rhc-fold > summary::-webkit-details-marker{display:none}
.csdp .rhc-fold > summary::after{content:"";flex:none;width:8px;height:8px;margin-left:16px;border:solid var(--rh-ink-60);border-width:0 1.5px 1.5px 0;transform:rotate(45deg);transition:transform .2s ease}
.csdp .rhc-fold[open] > summary::after{transform:rotate(-135deg)}
.csdp .rhc-fold[open]{padding-bottom:24px}
.csdp .rhc-links{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:40px}
.csdp .rhc-links a{display:flex;flex-direction:column;gap:4px;padding:20px 24px;border-radius:16px;background:var(--tint-1);color:var(--ink);transition:background .15s ease}
.csdp .rhc-links a:hover{background:var(--brand-tint);text-decoration:none}
.csdp .rhc-links b{font-size:18px;line-height:24px;font-weight:500}
.csdp .rhc-links span{font-size:14px;line-height:20px;color:var(--rh-ink-60)}

/* ---------- 9. Facts: one column of topic rows, the long detail folded ---------- */
.csdp .rhc-facts-list{margin:0;border-top:1px solid var(--rh-line)}
.csdp .rhc-facts-list > div{display:grid;grid-template-columns:240px minmax(0,1fr);gap:32px;padding:20px 0;border-bottom:1px solid var(--rh-line)}
.csdp .rhc-facts-list dt{font-size:16px;line-height:24px;font-weight:500;color:var(--ink)}
.csdp .rhc-facts-list dd{margin:0;font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .rhc-more-fact{margin-top:8px}
.csdp .rhc-more-fact > summary{min-height:0;padding:4px 0;font-size:14px;line-height:20px;font-weight:500;color:var(--brand-ink)}
.csdp .rhc-more-fact p{margin:6px 0 0;font-size:14px;line-height:22px;color:var(--rh-ink-70)}
.csdp .rhc-facts-note{margin-top:16px}
.csdp .rhc-credits p{margin:0 0 8px;font-size:16px;line-height:23px;color:var(--rh-ink-75)}
.csdp .rhc-credits ul{margin:0 0 16px;padding-left:20px;font-size:14px;line-height:22px;color:var(--rh-ink-70)}

/* ---------- 10. 404 ---------- */
.csdp .rhc-404 .rhc-hero{padding:120px 0 140px}
.csdp .rhc-404 .rhc-hero h1{font-size:64px;line-height:70.4px;letter-spacing:-1.3px}

/* ---------- 11. Tablets ---------- */
@media (max-width:1000px){
  .csdp .rhc-pillars,.csdp .rhc-steps{grid-template-columns:1fr}
  .csdp .rhc-pillar{min-height:0}
  .csdp .rhc-math-grid,.csdp .rhc-split,.csdp .rhc-offer,.csdp .rhc-states,.csdp .rhc-story{grid-template-columns:1fr;gap:32px}
  .csdp .rhc-rules{grid-template-columns:repeat(2,minmax(0,1fr))}
}

/* ---------- 12. Phones (RH at 390: H1 36-48, section H2 30, 72px rhythm, 20px sides) ---------- */
@media (max-width:760px){
  .csdp .rhc-crumbs{padding-top:14px}
  .csdp .rhc-crumbs .crumbs{gap:4px 8px;font-size:14px;line-height:18px}
  .csdp .rhc-hero{padding:48px 0 40px}
  .csdp .rhc-hero h1{font-size:48px;line-height:50.4px;letter-spacing:-1px}
  .csdp .rhc-sub{margin-top:16px}
  .csdp .rhc-pair{margin-top:28px}
  .csdp .rhc-row{gap:16px;padding:16px}
  .csdp .rhc-thumb{width:112px;height:75px}
  .csdp .rhc-thumb svg{width:30px;height:30px}
  .csdp .rhc-row h2{font-size:18px;line-height:18.9px;letter-spacing:-.4px}
  .csdp .rhc-row p{margin-top:6px;font-size:14px;line-height:20px}
  .csdp .rhc-meta{margin-top:8px;font-size:14px;line-height:20px}
  .csdp .rhc-note{padding:24px}
  .csdp .rhc-note h2{font-size:24px;line-height:26px}
  .csdp .rhc-more-tools h2{font-size:24px;line-height:26px}
  .csdp .rhc-article{padding:32px 0 64px}
  .csdp .rhc-col{padding:0 20px}
  .csdp .rhc-article h1{margin:12px 0 32px;font-size:36px;line-height:37.8px;letter-spacing:-.7px}
  .csdp .rhc-stamps .stamps{grid-template-columns:1fr}
  .csdp .rhc-tool{grid-template-columns:1fr;padding:20px}
  .csdp .rhc-brief-form{padding:20px}
  .csdp .rhc-related{padding-bottom:64px}
  .csdp .rhc-rel-grid{grid-template-columns:1fr;gap:20px}
  .csdp .rhc-rel{min-height:180px;padding:24px}
  .csdp .rhc-rel-ic{top:24px;left:24px}
  .csdp .rhc-dark-in{padding-top:56px;padding-bottom:72px}
  .csdp .rhc-dark-in .rhc-dark-sub{font-size:16px;line-height:24px}
  .csdp .rhc-pd-hero .rhc-dark-in{padding-bottom:48px}
  .csdp .rhc-rise .rhc-report{border-radius:20px 20px 0 0}
  .csdp .rhc-pillar{padding:24px;gap:16px}
  .csdp .rhc-pillar h3{font-size:24px;line-height:26px}
  .csdp .rhc-stats{margin-top:40px}
  .csdp .rhc-stats ul{grid-template-columns:1fr;gap:12px}
  .csdp .rhc-stats .num{font-size:36px;line-height:40px} /* RH's stat row on phones (/local-authority/ "100,000+"), 36/600 on 40 (2026-10-12; was 32) */
  .csdp .rhc-calc{padding:24px}
  .csdp .rhc-funnel{padding:20px}
  .csdp .rhc-steps li{padding:24px}
  .csdp .rhc-question{padding:28px 20px}
  .csdp .rhc-question h3{font-size:20px;line-height:27px}
  .csdp .rhc-split-copy h2{font-size:30px;line-height:31.5px;letter-spacing:-.6px}
  .csdp .rhc-split-copy p{font-size:16px;line-height:24px}
  .csdp .rhc-pd .ladder{padding:22px}
  .csdp .rhc-bento{grid-template-columns:1fr}
  .csdp .rhc-bento-card{padding:24px}
  .csdp .rhc-price{padding:32px 24px}
  .csdp .rhc-claim-band{min-height:0;padding:40px 0 72px}
  .csdp .rhc-claim-card{padding:24px}
  .csdp .rhc-claim-card h1{font-size:36px;line-height:37.5px;letter-spacing:-.7px}
  .csdp .rhc-opts{grid-template-columns:1fr}
  .csdp .rhc-table-3{grid-template-columns:1fr}
  .csdp .rhc-table > .h{display:none}
  .csdp .rhc-table > div{padding:2px 0;border-bottom:0}
  .csdp .rhc-table > div:nth-child(3n+4){padding-top:16px;border-top:1px solid var(--rh-line)}
  .csdp .rhc-table > div:nth-child(3n+5)::before,.csdp .rhc-table > div:nth-child(3n+6)::before{content:attr(data-l) ": ";font-weight:600;color:var(--ink)}
  .csdp .rhc-table > div:nth-child(3n+6){padding-bottom:16px}
  .csdp .rhc-rules{grid-template-columns:1fr}
  .csdp .rhc-rules.is-4{grid-template-columns:1fr}
  .csdp .rhc-rule{padding:20px 24px 24px}
  .csdp .rhc-links{grid-template-columns:1fr}
  .csdp .rhc-fold{padding:0 18px}
  .csdp .rhc-facts-list > div{grid-template-columns:1fr;gap:6px}
  .csdp .rhc-404 .rhc-hero{padding:72px 0 96px}
  .csdp .rhc-404 .rhc-hero h1{font-size:36px;line-height:37.8px;letter-spacing:-.7px}
}
@media (max-width:600px){
  /* RH Resources keeps its hero buttons at their own width, stacked and centred. */
  .csdp .rhc-hero .rhc-pair{flex-direction:column;align-items:center}
  .csdp .rhc-hero .rhc-pair .btn{flex:0 0 auto}
  .csdp .rhc-question .rh-pair{width:100%}
  .csdp .rhc-question .rh-pair .btn{white-space:normal;height:auto;min-height:48px;padding-top:12px;padding-bottom:12px;text-align:center}
}

/* Closing CTA spacing (RH re-certification 2026-10-12): RH About and Product pages start their closing block right after the
   last section (112/80), so a CTA after a plain section drops its own top padding. After a mint band (How we list) it keeps it. */
.csdp .rhc .rh-sec:not(.rhc-band-mint)+.rh-cta-sec{padding-top:0}

/* Listing claim form (2026-10-12): lives on the dark claim band; inputs on ground so they read at a glance. */
.csdp .rhc-claim-card h1{margin:0 0 10px}
.csdp .claim-biz{display:grid;gap:2px;margin:18px 0 6px;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.08)}
.csdp .claim-biz b{font-size:18px;color:#fff}
.csdp .claim-biz span{font-size:14px;color:var(--brand-mist)}
.csdp .claim-biz a{font-size:14px;color:#fff;text-decoration:underline;text-underline-offset:3px}
.csdp .claim-find{color:var(--brand-mist)}
.csdp .claim-find a{color:#fff}
.csdp .claim-form{display:grid;gap:14px;margin-top:18px}
.csdp .claim-form > label{display:grid;gap:6px;font:600 12px/18px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--brand-mist)}
.csdp .claim-form input[type=text],.csdp .claim-form input[type=tel],.csdp .claim-form input[type=email],.csdp .claim-form input[type=url],.csdp .claim-form select{width:100%;height:46px;padding:0 12px;border-radius:10px;border:1px solid rgba(255,255,255,.18);background:#fff;color:var(--ink);font:400 16px/1 var(--font-sans);text-transform:none;letter-spacing:0}
.csdp .claim-form input:focus-visible,.csdp .claim-form select:focus-visible{outline:2px solid var(--brand-mist);outline-offset:1px}
.csdp .claim-consents{margin:4px 0 0;padding:0;border:0;display:grid;gap:10px}
.csdp .claim-consents legend{padding:0;margin-bottom:8px;font:600 12px/18px var(--font-sans);letter-spacing:.1em;text-transform:uppercase;color:var(--brand-mist)}
.csdp .claim-consent{display:grid;grid-template-columns:22px minmax(0,1fr);gap:10px;align-items:start;font-size:14px;line-height:21px;color:#fff}
.csdp .claim-consent input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--brand)}
.csdp .claim-err{margin:0;padding:10px 12px;border-radius:10px;background:rgba(240,183,90,.18);color:#fff;font-size:14px;line-height:20px}
.csdp .claim-fine{margin:4px 0 0;font-size:13px;line-height:19px;color:var(--brand-mist)}
.csdp .claim-fine a{color:#fff}
.csdp .claim-done h2{margin:18px 0 8px;color:#fff}
.csdp .claim-done p{color:var(--brand-mist)}

/* 2026-10-20 Smart Directory flow: the RSP ladder card on Pro Desk (free 25 reviews → Reviews → BJS → BJS Pro) */
.csdp .rhc-ladder .rhc-rungs{margin:0;padding:0;list-style:none;display:grid;gap:10px}
.csdp .rhc-rung{padding:14px 16px;border-radius:14px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14)}
.csdp .rhc-rung.is-free{background:#fff;border-color:#fff}
.csdp .rhc-rung.is-free .rhc-rung-head b,.csdp .rhc-rung.is-free .rhc-rung-price b,.csdp .rhc-rung.is-free .rhc-rung-price{color:var(--ink)}
.csdp .rhc-rung.is-free p{color:var(--ink);opacity:.8}
.csdp .rhc-rung-head{display:flex;justify-content:space-between;gap:12px;align-items:baseline;flex-wrap:wrap}
.csdp .rhc-rung-head > b{font-size:17px;line-height:24px;color:#fff}
.csdp .rhc-rung-price{font-size:14px;line-height:20px;color:rgba(255,255,255,.75);white-space:nowrap}
.csdp .rhc-rung-price b{font-size:20px;color:#fff}
.csdp .rhc-price .rhc-rung p{margin:4px 0 0;font-size:14px;line-height:21px}

/* Owner asks of 2026-10-10, loaded last: the business's own description under its name, the newest Google reviews in
   the Reviews panel, and the Request a quote dialog (functions/api/quote.js). Same RH system as rh-clone.css. */

/* ---------- Profile hero: the business's own words under the name ---------- */
.csdp .rh-pro .rh-pro-desc{margin:16px 0 0;max-width:540px}
.csdp .rh-pro .rh-pro-desc blockquote{max-width:none;margin:0;padding:0 0 0 16px;border-left:2px solid var(--brand);font:400 18px/27px var(--font-sans);letter-spacing:-.1px;color:var(--rh-ink-75)}
.csdp .rh-pro .rh-pro-desc blockquote p{margin:0 0 10px;font:inherit;color:inherit}
.csdp .rh-pro .rh-pro-desc blockquote p:last-child{margin-bottom:0}
.csdp .rh-pro .rh-pro-desc blockquote.pd-clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.csdp .rh-pro .rh-pro-desc .pd-more{margin:6px 0 0 16px;min-height:32px;padding:4px 0}
.csdp .rh-pro .rh-pro-desc figcaption{margin:10px 0 0 16px;font-size:14px;line-height:19px;color:var(--rh-ink-60)}

/* Hero buttons on phones: three buttons in rh-profile.css's two-column grid squeezed Call (review fix 2026-10-10), so
   Call takes the first row and Request a quote and Compare share the second. */
@media (max-width:760px){
  .csdp .rh-pro .rh-pro-acts.has-quote{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
  .csdp .rh-pro .rh-pro-acts.has-quote>:first-child{grid-column:1 / -1}
}
@media (max-width:360px){.csdp .rh-pro .rh-pro-acts.has-quote .btn{padding:0 10px}}

/* ---------- How we list: quote requests and your details ---------- */
.csdp .rhc-quote-list{display:grid;gap:12px;max-width:820px;margin:0;padding:0;list-style:none}
.csdp .rhc-quote-list li{padding:20px 24px;border-radius:16px;background:var(--ground);font-size:16px;line-height:26px;color:var(--rh-ink-75)}
.csdp .rhc-quote-list b{display:block;margin:0 0 4px;font-weight:600;color:var(--ink)}

/* ---------- Reviews panel: the newest Google reviews, word for word ---------- */
.csdp .rh-pro .gr-list{display:grid;gap:12px;margin:24px 0 0}
.csdp .rh-pro .gr-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 16px;margin:0 0 4px;font-size:20px;line-height:28px}
.csdp .rh-pro .gr-head b{font-weight:500;letter-spacing:-.3px;color:var(--ink)}
.csdp .rh-pro .gr-head .record-source{font-size:14px;line-height:20px;color:var(--rh-ink-60)}
.csdp .rh-pro .gr-card{padding:24px 28px;border:1px solid var(--rh-line);border-radius:16px;background:var(--ground)}
.csdp .rh-pro .gr-top{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px;margin:0 0 10px}
.csdp .rh-pro .gr-name{font-size:16px;line-height:24px;font-weight:600;color:var(--ink)}
.csdp .rh-pro .gr-rate{display:inline-flex;align-items:center;height:24px;padding:0 8px;border-radius:6px;background:var(--ink);color:#fff;font-size:14px;line-height:24px;font-weight:600;font-variant-numeric:tabular-nums}
.csdp .rh-pro .gr-top time{font-size:14px;line-height:20px;color:var(--rh-ink-60)}
.csdp .rh-pro .gr-text p{margin:0 0 10px;max-width:72ch;font-size:16px;line-height:26px;color:var(--ink);overflow-wrap:anywhere}
.csdp .rh-pro .gr-text p:last-child{margin-bottom:0}
.csdp .rh-pro .gr-text.gr-clamp{display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.csdp .rh-pro .gr-read{margin:6px 0 0}
.csdp .rh-pro .gr-note{margin:8px 0 0;font-size:14px;line-height:19px;color:var(--rh-ink-60)}
.csdp .rh-pro .gr-reply{margin:14px 0 0}
.csdp .rh-pro .gr-reply summary{display:inline-flex;align-items:center;min-height:32px;cursor:pointer;font-size:14px;line-height:20px;font-weight:600;color:var(--brand-ink)}
.csdp .rh-pro .gr-reply-text{margin:8px 0 0;padding:0 0 0 14px;border-left:2px solid var(--brand-mist)}
.csdp .rh-pro .gr-reply-text p{margin:0 0 8px;max-width:72ch;font-size:16px;line-height:24px;color:var(--rh-ink-75);overflow-wrap:anywhere}
.csdp .rh-pro .gr-list.gr-ready:not(.is-open) .gr-extra{display:none}
.csdp .rh-pro .gr-list:not(.gr-ready) .gr-more{display:none}
.csdp .rh-pro .gr-more{justify-self:start;height:44px;padding:0 20px;border:1px solid rgba(14,26,32,.18);border-radius:10px;background:var(--ground)}
.csdp .rh-pro .gr-foot{margin:4px 0 0;font-size:14px;line-height:21px;color:var(--rh-ink-75)}
@media (max-width:760px){
  .csdp .rh-pro .gr-card{padding:20px}
  .csdp .rh-pro .gr-head{font-size:18px;line-height:26px}
}

/* ---------- Request a quote ---------- */
html:not(.js) .qd-open,html.qd-off .qd-open{display:none!important}
.csdp .qd{width:min(640px,calc(100% - 32px));max-height:calc(100dvh - 32px);margin:auto;padding:0;border:0;border-radius:20px;background:var(--ground);color:var(--ink);box-shadow:0 24px 64px rgba(14,26,32,.24);overflow:auto}
.csdp .qd::backdrop{background:rgba(10,50,53,.55)}
.csdp .qd [hidden]{display:none!important}
.csdp .qd-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:28px 28px 4px}
.csdp .qd-eyebrow{margin:0 0 6px;font-size:14px;line-height:18px;font-weight:600;letter-spacing:1.6px;text-transform:uppercase;color:var(--brand-ink)}
.csdp .qd-title{margin:0;font-size:26px;line-height:32px;font-weight:500;letter-spacing:-.5px;color:var(--ink)}
.csdp .qd-sub{margin:8px 0 0;font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .qd-close{flex:none;display:grid;place-items:center;width:44px;height:44px;border:0;border-radius:10px;background:var(--tint-1);cursor:pointer}
.csdp .qd-close svg{width:20px;height:20px;fill:none;stroke:var(--ink);stroke-width:2;stroke-linecap:round}
.csdp .qd-form{display:grid;gap:18px;padding:18px 28px 28px}
.csdp .qd-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.csdp .qd-field{display:grid;align-content:start;gap:6px;min-width:0;margin:0}
.csdp .qd-label{font-size:14px;line-height:20px;font-weight:600;color:var(--ink)}
.csdp .qd-hint{font-weight:400;color:var(--rh-ink-60)}
.csdp .qd :is(input[type=text],input[type=tel],input[type=email],textarea){width:100%;height:48px;padding:0 14px;border:1px solid rgba(14,26,32,.18);border-radius:10px;background:var(--ground);font:400 16px/24px var(--font-sans);color:var(--ink)}
.csdp .qd textarea{height:auto;min-height:112px;padding:12px 14px;resize:vertical}
.csdp .qd :is(input,textarea)::placeholder{color:rgba(14,26,32,.5)}
.csdp .qd :is(input,textarea):focus{outline:2px solid var(--brand);outline-offset:0;border-color:var(--brand)}
.csdp .qd-when{min-width:0;margin:0;padding:0;border:0}
.csdp .qd-chips{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 0}
.csdp .qd-chip{position:relative;display:inline-flex}
.csdp .qd-chip input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer}
.csdp .qd-chip span{display:inline-flex;align-items:center;height:44px;padding:0 16px;border:1px solid rgba(14,26,32,.18);border-radius:999px;font-size:16px;line-height:20px;color:var(--ink)}
.csdp .qd-chip input:checked+span{border-color:var(--brand);background:var(--brand-tint);color:var(--brand-deep);font-weight:600}
.csdp .qd-chip input:focus-visible+span{outline:2px solid var(--brand);outline-offset:2px}
.csdp .qd-photos{display:flex;flex-wrap:wrap;gap:8px}
.csdp .qd-addphoto{display:inline-flex;align-items:center;gap:6px;height:72px;padding:0 18px;border:1px dashed rgba(14,26,32,.32);border-radius:12px;background:var(--tint-1);font:500 16px/20px var(--font-sans);color:var(--ink);cursor:pointer}
.csdp .qd-thumb{position:relative;width:72px;height:72px;overflow:hidden;border-radius:12px;background:var(--tint-1)}
.csdp .qd-thumb img{display:block;width:100%;height:100%;object-fit:cover}
.csdp .qd-thumb-x{position:absolute;top:4px;right:4px;width:28px;height:28px;border:0;border-radius:50%;background:rgba(14,26,32,.78);color:#fff;font-size:18px;line-height:28px;cursor:pointer}
.csdp .qd-hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.csdp .qd-consent{display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:21px;color:var(--rh-ink-75);cursor:pointer}
.csdp .qd-consent input{flex:none;width:20px;height:20px;margin:1px 0 0;accent-color:var(--brand)}
.csdp .qd-how{margin:0}
.csdp .qd-how summary{display:inline-flex;align-items:center;min-height:32px;cursor:pointer;font-size:16px;line-height:22px;font-weight:600;color:var(--brand-ink)}
.csdp .qd-how p{margin:8px 0 0;font-size:14px;line-height:21px;color:var(--rh-ink-75)}
.csdp .qd-err{padding:12px 14px;border-radius:10px;background:var(--attention-tint);font-size:16px;line-height:22px;color:var(--attention-ink)}
.csdp .qd-err p{margin:0}
.csdp .qd-err p+p{margin-top:6px}
.csdp .qd-err a{color:inherit;font-weight:600}
.csdp .qd-err-line{margin:4px 0 0;font-size:14px;line-height:20px;color:var(--attention-ink)}
.csdp .qd .qd-submit{width:100%;height:52px;justify-content:center;border-radius:10px;font-size:16px}
.csdp .qd-fine{margin:0;font-size:14px;line-height:20px;text-align:center;color:var(--rh-ink-60)}
.csdp .qd-done{display:grid;justify-items:center;gap:10px;padding:44px 28px 36px;text-align:center}
.csdp .qd-done h3{margin:6px 0 0;font-size:24px;line-height:30px;font-weight:500;letter-spacing:-.4px}
.csdp .qd-done p{margin:0;font-size:16px;line-height:24px;color:var(--rh-ink-75)}
.csdp .qd-done .btn{margin-top:10px;min-width:160px;height:48px;justify-content:center}
.csdp .qd-done-ic{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:var(--brand-tint)}
.csdp .qd-done-ic svg{width:28px;height:28px;fill:none;stroke:var(--brand-deep);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
@media (max-width:560px){
  .csdp .qd{width:100%;max-width:100%;height:100dvh;max-height:100dvh;margin:0;border-radius:0}
  .csdp .qd-head{padding:20px 20px 2px}
  .csdp .qd-title{font-size:22px;line-height:28px}
  .csdp .qd-form{padding:14px 20px 24px}
  .csdp .qd-grid{grid-template-columns:1fr}
}

/* ReviewHarvest text scale, sitewide (compliance pass 2026-10-10). Loaded last.
   Values are what reviewharvest.com renders today, element by element (02-design/rsp-design-arsenal/reference-harvests/
   reviewharvest-2026-10-10/probe, read with qa/rh-compliance-2026-10-10/rh-probe.cjs). The bulk of the legacy 13/15/17px
   sizes were snapped to RH's 14/16/18 in their own files (qa/rh-compliance-2026-10-10/type-snap.py); these are the
   components whose RH value is not simply the next size up. */

/* FAQ questions: RH 18/600 on a 28px line. */
.csdp details.faq summary{font:600 18px/28px var(--font-sans)}

/* Header nav: RH 16px on a 24px line, 44px targets. RH's nav weight is a light 300, which CSDP doesn't load; 400 is the
   nearest weight on the page. */
.csdp .hdr .nav>li>a,.csdp .hdr .nav>li>button{font-size:16px;line-height:24px;font-weight:400;min-height:44px}

/* Footer: RH column titles 19.2/400, links 16/400 on 24, small print 12/400. */
.csdp .ftr .ftr-grid h4{font-size:19.2px;line-height:19.2px;font-weight:400;letter-spacing:0}
.csdp .ftr .ftr-grid ul a{font-size:16px;line-height:24px}
.csdp .ftr .about .faint{font-size:12px!important;line-height:19.5px}
.csdp .ftr .ftr-legal,.csdp .ftr .ftr-legal span,.csdp .ftr .ftr-legal a{font-size:12px;line-height:16px}

/* Tags: RH's rounded tags are 12/500 (filter buttons keep the button scale). */
.csdp span.chip{font-size:12px!important}

/* Profile panel heads were 40px, a size RH never uses for an H2. RH's mid section head is 45.3/500 on 47.5 (category and
   product pages, "No More Chasing Reviews"); on phones RH's H2 is 30. */
.csdp .rh-pro .pd-panels .row-head h2,.csdp .rh-pro .pd-panels .px-section-heading h2{font-size:45.3px;line-height:47.5px}
@media (max-width:760px){
  .csdp .rh-pro .pd-panels .row-head h2,.csdp .rh-pro .pd-panels .px-section-heading h2,.csdp .rh-pro .row-head h2,
  .csdp .rh-pro :is(.prof-before,.prof-similar) .row-head h2{font-size:30px;line-height:31.5px;letter-spacing:-.6px}
}

/* Pro Desk calculator and question card titles: RH's card heading, 24/500. */
.csdp .rhc-calc h3,.csdp .rhc-question h3{font-size:24px;line-height:28px}

/* Numbers and labels with an RH size one step away (probe after the snap, 2026-10-10). RH stats are weight 600. */
.csdp .rd-media .rd-rate b{font-size:36px;font-weight:600}
.csdp .status-visual .status-total strong{font-size:48px}
.csdp .status-legend b{font-weight:600}
.csdp .rhc b.num,.csdp ul li b.num{font-weight:600}
.csdp .rh-pro-card .rh-pro-fact{font-size:20.8px}
.csdp .rh-steps .k{font-size:20.8px}
.csdp .email .results .n{font-size:24px}
.csdp .email .biz{font-weight:600}
.csdp .email .head .brand{font-weight:700}
@media (max-width:760px){
  .csdp .rd-media .rd-rate b{font-size:24px}
  .csdp .rh-mq-item span{font-size:30px}
  /* RH's stat on phones is 36/500 on 40; 48 is a desktop-only size (2026-10-12). */
  .csdp .status-visual .status-total strong{font-size:36px;line-height:40px}
}

/* Buttons: RH has none under 44 tall, and its rectangular ones have radius 10. The RSP price button (36), the home
   slice link (46) and the project-brief editor buttons (46, radius 8) take RH's 48/10; the claim options take RH's card radius. */
.csdp .rsp .price .btn,.csdp .slice-head .btn,.csdp .ux-draft-controls button{min-height:48px;height:48px;border-radius:10px}
.csdp .rhc-opt{border-radius:10px}

/* Small business cards set the name at 17px inline (html.mjs); RH's small card titles are 18/400. */
.csdp .card .t[style*="font-size"]{font-size:18px!important}
