/* Shipshape Data, shared stylesheet for all sub-pages (resources index, blog articles, case studies).
   Built from the common design system: tokens, typography, nav, footer, buttons, contact modal,
   article layout, resources listing/filter/cards, and case-study layout. Edit here, not per page. */

:root { --dark:#202020; --white:#FFFFFF; --cream:#F7F6F3; --cream-2:#EFEBE3; --pink:#FD939F; --pink-lt:#FFB3BC; --pink-soft:rgba(253,147,159,0.55); --d-text:#F4F1EC; --d-dim:#ADA79D; --d-faint:rgba(244,241,236,0.45); --l-text:#1C1C1C; --l-dim:#5F5A55; --l-faint:#9A938C; --rule-l:rgba(28,28,28,0.10); --rule-l2:rgba(28,28,28,0.20); --rule-d:rgba(244,241,236,0.12); --r-sm:4px; --r-md:8px; --r-lg:14px; }
* { margin:0; padding:0; box-sizing:border-box; }
/* Explicit canvas colour so pinching out past the layout viewport shows the page
   background rather than bare white. */
html { scroll-behavior:smooth; background:var(--cream); }
body { background:var(--cream); color:var(--l-text); font-family:'Poppins',sans-serif; font-weight:300; font-size:16px; line-height:1.7; -webkit-font-smoothing:antialiased; }
a { color:inherit; }
/* Cormorant's x-height is 40 where Poppins' is 56 (measured at the same size), so the
   pull-out needs ~1.4x to read as the same size. 1.27 splits the difference between x-height (1.40) and cap-height (1.13) matching
   so the italic sits beside the sans rather than shouting over it. line-height keeps the
   larger inline box from opening up the heading's leading. */
.po { font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:700; color:var(--pink); font-size:1.27em; line-height:0.82; }
nav { position:fixed; top:0; left:0; right:0; z-index:100; display:flex; align-items:center; justify-content:space-between; padding:16px 40px; background:transparent; border-bottom:1px solid transparent; transition:background 0.3s ease, border-color 0.3s ease; }
nav.scrolled { background:rgba(32,32,32,0.92); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border-bottom-color:var(--rule-d); }
.nav-logo { display:flex; align-items:center; gap:12px; text-decoration:none; }
.nav-logo-img { height:34px; width:auto; display:block; }
.wordmark { display:flex; flex-direction:column; line-height:0.92; }
.wordmark .l1 { font-size:15px; font-weight:600; letter-spacing:0.17em; color:var(--d-text); }
.wordmark .l2 { font-size:9px; font-weight:500; letter-spacing:0.36em; color:var(--d-dim); }
.nav-links { display:flex; align-items:center; gap:28px; list-style:none; }
.nav-links a { color:var(--d-dim); text-decoration:none; font-size:14px; font-weight:400; transition:color 0.2s; }
.nav-links a:hover, .nav-links a.here { color:var(--d-text); }
.nav-cta { background:var(--pink); color:var(--dark) !important; padding:9px 20px; font-size:12.5px; font-weight:500; letter-spacing:0.05em; text-transform:uppercase; border-radius:var(--r-sm); transition:background 0.2s; }
.nav-cta:hover { background:var(--pink-lt); }
.post-hero { position:relative; background:var(--dark); color:var(--d-text); overflow:hidden; }
.post-hero canvas { position:absolute; inset:0; width:100%; height:100%; z-index:1; }
/* max-width matches .post-wrap (1080px) so the banner's left edge lines up with the article column below */
.post-hero .ph-inner { position:relative; z-index:2; max-width:1080px; margin:0 auto; padding:104px 40px 60px; }
.breadcrumb { display:block; position:static; padding:0; background:none; border:0; font-size:12px; letter-spacing:0.04em; color:var(--d-faint); margin-bottom:20px; }
.breadcrumb a { color:var(--d-dim); text-decoration:none; }
.breadcrumb a:hover { color:var(--d-text); }
.post-cat { display:inline-flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--pink); font-weight:600; }
.post-cat .sq { width:9px; height:9px; border-radius:2px; background:var(--pink); }
.post-hero h1 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(30px,4.4vw,50px); line-height:1.08; letter-spacing:-0.03em; margin:18px 0 0; max-width:20ch; }
.post-meta { margin-top:22px; font-size:13px; letter-spacing:0.03em; color:var(--d-faint); }
.post-meta .po { color:var(--pink); }
.post-body { background:var(--white); }
.post-wrap { max-width:1080px; margin:0 auto; padding:60px 40px 84px; display:grid; grid-template-columns:1fr 232px; gap:56px; align-items:start; }
.toc { position:sticky; top:96px; order:2; font-size:13.5px; }
.toc-k { font-size:11px; letter-spacing:0.16em; text-transform:uppercase; color:var(--pink); font-weight:600; margin-bottom:14px; }
.toc ul { list-style:none; display:flex; flex-direction:column; gap:2px; border-left:1px solid var(--rule-l); }
.toc a { display:block; padding:6px 0 6px 16px; margin-left:-1px; border-left:2px solid transparent; color:var(--l-dim); text-decoration:none; line-height:1.35; transition:color 0.2s, border-color 0.2s; }
.toc a:hover { color:var(--l-text); }
.toc a.active { color:var(--l-text); border-left-color:var(--pink); font-weight:500; }
#article { order:1; max-width:720px; }
#article > p { font-size:17px; color:var(--l-text); line-height:1.8; margin:0 0 22px; }
#article .lede { font-size:19px; line-height:1.7; color:var(--l-text); }
#article h2 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(23px,2.8vw,30px); letter-spacing:-0.02em; line-height:1.2; margin:52px 0 6px; scroll-margin-top:90px; }
#article h3 { font-family:'Poppins',sans-serif; font-weight:600; font-size:17px; letter-spacing:-0.01em; color:var(--l-text); margin:28px 0 4px; }
#article a { color:var(--pink); text-decoration:none; border-bottom:1px solid var(--pink-soft); transition:border-color 0.2s; }
#article a:hover { border-bottom-color:var(--pink); }
#article strong { font-weight:600; color:var(--l-text); }
#article ul { margin:0 0 22px; padding-left:0; list-style:none; }
#article ul li { position:relative; padding:5px 0 5px 26px; font-size:16px; color:var(--l-dim); line-height:1.6; }
#article ul li::before { content:""; position:absolute; left:2px; top:13px; width:7px; height:7px; border-radius:2px; background:var(--pink); }
blockquote { margin:30px 0; padding:4px 0 4px 26px; border-left:2px solid var(--pink); }
blockquote p { font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; font-size:clamp(20px,2.6vw,26px); line-height:1.4; color:var(--l-text); margin:0; }
.verdict { background:var(--cream); border:1px solid var(--rule-l); border-left:3px solid var(--pink); border-radius:var(--r-md); padding:16px 20px; margin:26px 0; font-size:14.5px; color:var(--l-dim); line-height:1.65; }
.verdict strong { color:var(--l-text); }
.post-cta { background:var(--dark); color:var(--d-text); }
.post-cta .inner { max-width:760px; margin:0 auto; padding:76px 40px; text-align:center; }
.post-cta h2 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(28px,4vw,44px); letter-spacing:-0.03em; line-height:1.08; }
.post-cta p { color:var(--d-dim); font-weight:300; font-size:17px; max-width:48ch; margin:18px auto 32px; line-height:1.6; }
.btn-primary { display:inline-block; background:var(--pink); color:var(--dark); text-decoration:none; padding:15px 32px; font-size:12.5px; font-weight:500; letter-spacing:0.05em; text-transform:uppercase; border-radius:var(--r-sm); transition:transform 0.2s, background 0.2s; }
.btn-primary:hover { background:var(--pink-lt); transform:translateY(-2px); }
footer { background:var(--dark); color:var(--d-text); border-top:1px solid var(--rule-d); padding:40px 0; }
.foot-in { max-width:1080px; margin:0 auto; padding:0 40px; display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap; }
.foot-strap { font-size:14px; font-weight:500; color:var(--d-dim); }
.foot-strap em { font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; color:var(--pink); font-size:1.27em; line-height:0.9; }
/* must wrap: with the legal links added this row is 8 items and overflows a
   phone viewport, which let the page scroll sideways into white space */
.foot-links { display:flex; gap:14px 26px; flex-wrap:wrap; }
.foot-links a { color:var(--d-dim); text-decoration:none; font-size:13px; transition:color 0.2s; }
.foot-links a:hover { color:var(--d-text); }
html.modal-open { overflow:hidden; }
.cm-overlay { position:fixed; inset:0; z-index:200; display:flex; align-items:center; justify-content:center; padding:24px; background:rgba(20,20,20,0.62); -webkit-backdrop-filter:blur(6px); backdrop-filter:blur(6px); opacity:0; visibility:hidden; transition:opacity 0.3s ease, visibility 0.3s ease; }
.cm-overlay.open { opacity:1; visibility:visible; }
.cm-card { position:relative; display:flex; flex-direction:column; width:min(620px,100%); height:min(88vh,860px); overflow:hidden; background:var(--cream); border-radius:16px; transform:translateY(14px) scale(0.985); transition:transform 0.34s cubic-bezier(.22,1,.36,1); box-shadow:0 40px 90px -30px rgba(0,0,0,0.6); }
.cm-overlay.open .cm-card { transform:none; }
.cm-intro { flex:none; padding:30px 36px 18px; }
.cm-eyebrow { display:inline-flex; align-items:center; gap:10px; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--pink); font-weight:600; }
.cm-eyebrow .sq { width:9px; height:9px; border-radius:2px; background:var(--pink); }
.cm-intro h3 { font-family:'Poppins',sans-serif; font-size:clamp(22px,3vw,28px); font-weight:700; color:var(--l-text); letter-spacing:-0.02em; margin:12px 0 7px; line-height:1.12; }
.cm-intro p { font-size:13.5px; color:var(--l-dim); line-height:1.55; font-weight:300; }
.cm-frame { flex:1 1 auto; width:100%; border:0; display:block; background:var(--white); }
.cm-close { position:absolute; top:12px; right:12px; z-index:2; width:34px; height:34px; border:0; background:rgba(255,255,255,0.92); box-shadow:0 2px 8px rgba(28,28,28,0.16); font-size:24px; line-height:1; color:var(--l-dim); cursor:pointer; border-radius:50%; transition:color 0.2s, background 0.2s; }
.cm-close:hover { color:var(--l-text); background:#fff; }
.hero-sub { margin-top:20px; font-size:16.5px; font-weight:300; color:var(--d-dim); max-width:56ch; line-height:1.65; }
.listing { max-width:1080px; margin:0 auto; padding:64px 40px 90px; }
.cat-block { margin-bottom:56px; }
.cat-block:last-child { margin-bottom:0; }
.cat-head { display:flex; align-items:center; gap:12px; margin-bottom:22px; }
.cat-head .sq { width:9px; height:9px; border-radius:2px; background:var(--pink); flex:none; }
.cat-head h2 { font-family:'Poppins',sans-serif; font-weight:600; font-size:13px; letter-spacing:0.18em; text-transform:uppercase; color:var(--l-text); }
.cat-head::after { content:""; flex:1; height:1px; background:var(--rule-l); }
.card-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px, 1fr)); gap:22px; }
.post-card { display:flex; flex-direction:column; background:var(--white); border:1px solid var(--rule-l); border-radius:var(--r-lg); padding:26px 26px 22px; text-decoration:none; transition:transform 0.2s, box-shadow 0.2s, border-color 0.2s; }
.post-card:hover { transform:translateY(-3px); box-shadow:0 12px 32px rgba(28,28,28,0.08); border-color:var(--rule-l2); }
.post-card .pc-cat { font-size:10.5px; letter-spacing:0.18em; text-transform:uppercase; color:var(--pink); font-weight:600; margin-bottom:12px; }
.post-card h3 { font-family:'Poppins',sans-serif; font-weight:600; font-size:19px; line-height:1.3; letter-spacing:-0.02em; color:var(--l-text); margin:0 0 10px; }
.post-card p { font-size:14.5px; color:var(--l-dim); line-height:1.6; margin:0 0 18px; }
.post-card .pc-meta { margin-top:auto; font-size:12.5px; color:var(--l-faint); letter-spacing:0.03em; }
.listing-note { margin-top:48px; font-size:14px; color:var(--l-dim); border-top:1px solid var(--rule-l); padding-top:22px; }
.filter-bar { position:sticky; z-index:15; background:rgba(247,246,243,0.94); -webkit-backdrop-filter:blur(9px); backdrop-filter:blur(9px); border-bottom:1px solid var(--rule-l); }
.filter-inner { max-width:1080px; margin:0 auto; padding:15px 40px 17px; display:flex; flex-direction:column; gap:13px; }
.filter-top { display:flex; align-items:center; gap:16px; }
.filter-search { flex:1 1 auto; max-width:320px; padding:9px 14px 9px 36px; border:1px solid var(--rule-l2); border-radius:var(--r-sm); font-family:'Poppins',sans-serif; font-size:13.5px; color:var(--l-text); background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%239A938C' stroke-width='2'%3E%3Ccircle cx='11' cy='11' r='7'/%3E%3Cline x1='21' y1='21' x2='16.65' y2='16.65'/%3E%3C/svg%3E") no-repeat 13px center; }
.filter-search:focus { outline:none; border-color:var(--pink); }
.filter-count { margin-left:auto; flex:none; font-size:12.5px; color:var(--l-faint); letter-spacing:0.03em; white-space:nowrap; }
.filter-chips { display:flex; flex-wrap:wrap; gap:8px; }
.chip { font-family:'Poppins',sans-serif; font-size:12.5px; font-weight:500; padding:7px 15px; border:1px solid var(--rule-l2); border-radius:100px; background:transparent; color:var(--l-dim); cursor:pointer; transition:background 0.15s, border-color 0.15s, color 0.15s; white-space:nowrap; }
.chip:hover { border-color:var(--l-dim); color:var(--l-text); }
.chip.active { background:var(--pink); border-color:var(--pink); color:var(--dark); }
.no-results { text-align:center; color:var(--l-dim); font-size:15px; padding:64px 0 40px; }
.wrap { max-width:1080px; margin:0 auto; padding:0 40px; }
.narrow { max-width:760px; margin:0 auto; padding:0 40px; }
.nav-links a:hover { color:var(--d-text); }
.hero { position:relative; overflow:hidden; background:var(--dark); color:var(--d-text); padding:118px 0 84px; }
.hero canvas { position:absolute; inset:0; width:100%; height:100%; z-index:1; }
.hero > .wrap { position:relative; z-index:2; }
.eyebrow { display:inline-flex; align-items:center; gap:11px; font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--pink); font-weight:600; }
.eyebrow .sq { width:9px; height:9px; border-radius:2px; background:var(--pink); }
.hero h1 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(34px,5vw,60px); line-height:1.05; letter-spacing:-0.03em; margin:22px 0 0; max-width:16ch; }
.hero .sub { font-size:clamp(17px,2.2vw,21px); color:var(--d-dim); font-weight:300; margin-top:22px; max-width:54ch; line-height:1.5; }
.hero .meta { margin-top:34px; padding-top:22px; border-top:1px solid var(--rule-d); font-size:13px; letter-spacing:0.04em; color:var(--d-faint); text-transform:uppercase; }
.glance { background:var(--cream); padding:72px 0; }
.section-k { font-size:11px; letter-spacing:0.2em; text-transform:uppercase; color:var(--pink); font-weight:600; margin-bottom:28px; }
.glance-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:0 56px; }
.gl-row { display:grid; grid-template-columns:160px 1fr; gap:18px; padding:15px 0; border-top:1px solid var(--rule-l); align-items:baseline; }
.gl-row dt { font-size:11px; letter-spacing:0.12em; text-transform:uppercase; color:var(--pink); font-weight:600; }
.gl-row dd { font-size:15px; color:var(--l-text); font-weight:400; }
.results { background:var(--white); padding:72px 0; border-top:1px solid var(--rule-l); }
.res-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; }
.res-tile { background:var(--cream); border-radius:var(--r-md); padding:30px 24px; text-align:center; }
.res-num { font-family:'Poppins',sans-serif; font-weight:800; color:var(--pink); font-size:clamp(40px,5vw,56px); line-height:0.92; letter-spacing:-0.04em; }
.res-lab { font-size:13px; color:var(--l-dim); font-weight:300; margin-top:12px; line-height:1.45; }
.ba { background:var(--cream); padding:72px 0; }
.ba-table { width:100%; border-collapse:collapse; background:var(--white); border-radius:var(--r-md); overflow:hidden; box-shadow:0 18px 50px -34px rgba(28,28,28,0.4); }
.ba-table th, .ba-table td { text-align:left; padding:16px 22px; vertical-align:top; font-size:14px; }
.ba-table thead th { background:var(--dark); color:var(--d-text); font-weight:600; font-size:12px; letter-spacing:0.06em; text-transform:uppercase; }
.ba-table thead th:first-child { background:var(--dark); }
.ba-table tbody tr { border-top:1px solid var(--rule-l); }
.ba-table td:first-child { font-weight:600; color:var(--l-text); width:170px; }
.ba-table td { color:var(--l-dim); font-weight:300; line-height:1.5; }
.ba-table td.after { color:var(--l-text); font-weight:400; }
.story { background:var(--white); padding:84px 0; }
.story h2 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(26px,3.4vw,38px); letter-spacing:-0.02em; color:var(--l-text); margin:0 0 8px; }
.story h2 .lead-k { display:block; font-family:'Poppins',sans-serif; font-size:11px; font-weight:600; letter-spacing:0.2em; text-transform:uppercase; color:var(--pink); margin-bottom:14px; }
.story-block { margin-bottom:64px; }
.story-block:last-child { margin-bottom:0; }
.story-block > p { font-size:16.5px; color:var(--l-dim); line-height:1.78; margin-top:18px; }
.story-block > p strong { color:var(--l-text); font-weight:600; }
blockquote cite { display:block; margin-top:14px; font-family:'Poppins',sans-serif; font-style:normal; font-size:12px; font-weight:600; letter-spacing:0.04em; color:var(--pink); }
.cta { background:var(--dark); color:var(--d-text); text-align:center; padding:96px 0; }
.cta h2 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(32px,4.6vw,56px); letter-spacing:-0.03em; line-height:1.06; }
.cta p { color:var(--d-dim); font-weight:300; font-size:17px; max-width:48ch; margin:20px auto 36px; line-height:1.6; }
.cta .ctline { margin-top:22px; font-size:13px; color:var(--d-faint); }
.cta .ctline a { color:var(--pink); text-decoration:none; }
.reveal { opacity:0; transform:translateY(16px); transition:opacity 0.7s ease, transform 0.7s ease; }
.reveal.in { opacity:1; transform:none; }
:root { --dark-2:#262626; }
.post-hero-wide .ph-inner { max-width:1080px; padding:104px 40px 64px; }
.post-hero-wide h1 { font-size:clamp(32px,4.8vw,54px); }

/* responsive */
@media (max-width:900px) { nav { padding:14px 22px; } .nav-links { gap:16px; } .nav-links li.hide-sm { display:none; } .post-hero .ph-inner { padding:88px 22px 44px; } .post-wrap { grid-template-columns:1fr; padding:40px 22px 64px; gap:0; } .toc { display:none; } #article { max-width:none; } .foot-in { padding:0 22px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
@media (max-width:560px) { .cm-card { height:90vh; } }
@media (max-width:900px) { nav { padding:14px 22px; } .nav-links { gap:16px; } .nav-links li.hide-sm { display:none; } .post-hero .ph-inner { padding:88px 22px 46px; } .listing { padding:44px 22px 64px; } .foot-in { padding:0 22px; } }
@media (max-width:820px) { .wrap, .narrow { padding:0 22px; } nav { padding:14px 22px; } .nav-links { gap:18px; } .nav-links li:not(:last-child) { display:none; } .glance-grid { grid-template-columns:1fr; gap:0; } .res-grid { grid-template-columns:repeat(2,1fr); } .ba-table thead { display:none; } .ba-table, .ba-table tbody, .ba-table tr, .ba-table td { display:block; width:auto; } .ba-table tr { padding:8px 0; } .ba-table td { padding:6px 20px; } .ba-table td:first-child { width:auto; padding-top:16px; } .ba-table td.after::before { content:"After: "; color:var(--pink); font-weight:600; } .ba-table td.before::before { content:"Before: "; color:var(--l-faint); font-weight:600; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .reveal { opacity:1 !important; transform:none !important; transition:none !important; } }

/* landing pages (capabilities + industries) */
.post-wrap.no-toc { grid-template-columns:1fr; max-width:820px; }
.post-wrap.no-toc #article { max-width:none; }
.land-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:18px; margin:26px 0 34px; }
.land-tile { background:var(--cream); border:1px solid var(--rule-l); border-radius:var(--r-md); padding:20px 22px; }
.land-tile h3 { display:flex; align-items:center; gap:10px; font-size:16px; font-weight:600; color:var(--l-text); margin:0 0 8px; }
.land-tile h3::before { content:""; width:9px; height:9px; border-radius:2px; background:var(--pink); flex:none; }
.land-tile p { font-size:14.5px; color:var(--l-dim); line-height:1.6; margin:0; }
.step-flow { list-style:none; counter-reset:step; margin:26px 0 34px; padding:0; }
.step-flow li { counter-increment:step; position:relative; padding:0 0 24px 54px; }
.step-flow li::before { content:counter(step,decimal-leading-zero); position:absolute; left:0; top:2px; font-size:13px; font-weight:600; letter-spacing:0.08em; color:var(--pink); }
.step-flow li::after { content:""; position:absolute; left:14px; top:28px; bottom:8px; width:1px; background:var(--rule-l); }
.step-flow li:last-child::after { display:none; }
.step-flow h3 { font-size:16px; font-weight:600; margin:0 0 6px; color:var(--l-text); }
.step-flow p { font-size:14.5px; color:var(--l-dim); line-height:1.6; margin:0; }
.faq-list { margin:26px 0 34px; }
.faq-list details { border-bottom:1px solid var(--rule-l); }
.faq-list summary { cursor:pointer; padding:16px 30px 16px 0; font-weight:600; font-size:15.5px; color:var(--l-text); list-style:none; position:relative; }
.faq-list summary::-webkit-details-marker { display:none; }
.faq-list summary::after { content:"+"; position:absolute; right:4px; top:50%; transform:translateY(-50%); color:var(--pink); font-weight:400; font-size:20px; }
.faq-list details[open] summary::after { content:"\2212"; }
.faq-list details p { font-size:14.5px; color:var(--l-dim); line-height:1.65; margin:0 0 16px; }
@media (max-width:700px) { .land-grid { grid-template-columns:1fr; } }

/* ===== capability + industry landing pages ===== */
/* hero standfirst: a prominent subtitle (matches the case-study hero .sub), not the faint blog meta line */
.post-hero .post-lede { margin-top:20px; font-size:clamp(16px,1.9vw,19px); font-weight:300; color:var(--d-dim); line-height:1.6; max-width:54ch; }
/* ===== capability + industry landing sections (reuse the case-study design system) ===== */
.cap-sec { padding:74px 0; background:var(--white); border-top:1px solid var(--rule-l); }
.cap-sec.cream { background:var(--cream); }
.cap-sec .section-head { margin-bottom:32px; }
.cap-sec .section-head .section-k { margin-bottom:0; }
.cap-sec h2 { font-family:'Poppins',sans-serif; font-weight:700; font-size:clamp(24px,3vw,33px); letter-spacing:-0.02em; line-height:1.16; color:var(--l-text); margin:13px 0 0; max-width:24ch; }
.cap-sec .section-sub { margin-top:14px; max-width:60ch; font-size:16px; color:var(--l-dim); font-weight:300; line-height:1.7; }
.cap-prose { max-width:none; }
.cap-prose.narrow-measure { max-width:760px; }
.cap-prose p { font-size:16.5px; color:var(--l-dim); line-height:1.78; margin:0 0 18px; font-weight:300; }
.cap-prose p:last-child { margin-bottom:0; }
.cap-prose p strong { color:var(--l-text); font-weight:600; }
.cap-prose a { color:var(--pink); text-decoration:none; border-bottom:1px solid var(--pink-soft); transition:border-color 0.2s; }
.cap-prose a:hover { border-bottom-color:var(--pink); }
.cap-sec .land-grid { margin:0; }
.cap-sec .land-grid.cols3 { grid-template-columns:repeat(3,1fr); }
.cap-sec .land-grid.cols2 { grid-template-columns:repeat(2,1fr); }
.cap-sec .step-flow, .cap-sec .faq-list { margin:0; max-width:none; }
.cap-sec .faq-after { margin-top:30px; }
/* proof: a white card on cream (mirrors the case-study before/after table treatment) */
.proof-card { background:var(--white); border-radius:var(--r-lg); box-shadow:0 18px 50px -34px rgba(28,28,28,0.4); padding:40px; display:grid; grid-template-columns:220px 1fr; gap:48px; align-items:center; }
.proof-card .res-num { font-family:'Poppins',sans-serif; font-weight:800; color:var(--pink); font-size:clamp(44px,5vw,60px); line-height:0.9; letter-spacing:-0.04em; }
.proof-card .res-lab { margin-top:12px; font-size:13.5px; color:var(--l-dim); line-height:1.5; font-weight:300; }
.proof-card blockquote { margin:0 0 20px; padding:2px 0 2px 24px; border-left:2px solid var(--pink); }
.proof-card blockquote p { font-family:'Cormorant Garamond',serif; font-style:italic; font-weight:600; font-size:clamp(19px,2.3vw,25px); line-height:1.4; color:var(--l-text); margin:0; }
.proof-card.no-stat { grid-template-columns:1fr; }
.proof-card blockquote { margin:0 0 12px; }
.proof-card .proof-cite { font-size:13px; color:var(--l-faint); letter-spacing:0.02em; margin:0 0 22px; }
.proof-card .proof-txt p { font-size:16px; color:var(--l-dim); line-height:1.7; font-weight:300; margin:0 0 18px; }
.proof-card .btn-primary { margin-top:4px; }
@media (max-width:820px) { .cap-sec .land-grid.cols3, .cap-sec .land-grid.cols2 { grid-template-columns:1fr; } .proof-card { grid-template-columns:1fr; gap:26px; padding:30px 24px; } }

/* the concentric model diagram (services hub) */
.model-fig { margin:0; }
.model-svg { display:block; width:100%; max-width:900px; margin:0 auto; height:auto; overflow:visible; }
.model-svg .track { fill:none; stroke:rgba(28,28,28,0.13); }
.model-svg .ring { fill:none; stroke:rgba(28,28,28,0.26); stroke-dasharray:3 4; }
.model-svg .core { fill:var(--pink); }
.model-svg .node { fill:var(--pink); transition:fill 0.2s; }
.model-svg .lab { font-family:'Poppins',sans-serif; font-size:14.5px; font-weight:500; fill:var(--l-text); }
.model-svg .lab-k { font-family:'Poppins',sans-serif; font-size:11px; font-weight:600; letter-spacing:0.16em; text-transform:uppercase; fill:var(--l-faint); }
.model-svg .hit { fill:transparent; }
.model-svg a { cursor:pointer; }
.model-svg a:hover .lab { fill:var(--pink); }
.model-svg a:hover .node { fill:var(--pink-lt); }
.model-note { margin-top:26px; text-align:center; font-size:13.5px; color:var(--l-faint); }
@media (max-width:820px) { .model-fig { display:none; } }

/* case-studies listing cards */
.cs-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.cs-card { display:flex; flex-direction:column; background:var(--white); border:1px solid var(--rule-l); border-radius:var(--r-lg); padding:28px; text-decoration:none; transition:transform 0.2s, box-shadow 0.2s, border-color 0.2s; }
.cs-card:hover { transform:translateY(-3px); box-shadow:0 14px 36px rgba(28,28,28,0.08); border-color:var(--rule-l2); }
.cs-top { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:22px; min-height:32px; }
.cs-logo { height:28px; width:auto; filter:grayscale(1); opacity:0.7; transition:filter 0.2s, opacity 0.2s; }
.cs-card:hover .cs-logo { filter:none; opacity:1; }
.cs-industry { font-size:10.5px; letter-spacing:0.14em; text-transform:uppercase; color:var(--l-faint); font-weight:600; text-align:right; }
.cs-metric { font-family:'Poppins',sans-serif; font-weight:800; color:var(--pink); font-size:46px; line-height:0.9; letter-spacing:-0.04em; }
.cs-metric-lab { font-size:13px; color:var(--l-dim); margin:10px 0 20px; line-height:1.45; }
.cs-card h3 { font-family:'Poppins',sans-serif; font-size:18px; font-weight:600; color:var(--l-text); margin:0 0 9px; line-height:1.3; letter-spacing:-0.01em; }
.cs-card > p { font-size:14.5px; color:var(--l-dim); line-height:1.6; margin:0 0 20px; }
.cs-link { margin-top:auto; display:inline-flex; align-items:center; gap:7px; font-size:12px; font-weight:600; color:var(--pink); text-transform:uppercase; letter-spacing:0.05em; }
@media (max-width:900px) { .cs-grid { grid-template-columns:1fr; } }

/* nav dropdown (Industries) */
.nav-dd { position:relative; }
.nav-dd-btn { background:none; border:0; color:var(--d-dim); font-family:inherit; font-size:14px; font-weight:400; cursor:pointer; padding:0; display:inline-flex; align-items:center; gap:5px; transition:color 0.2s; }
.nav-dd-btn::after { content:""; width:0; height:0; border-left:3.5px solid transparent; border-right:3.5px solid transparent; border-top:4px solid currentColor; opacity:0.65; transition:transform 0.2s; }
.nav-dd-btn:hover, .nav-dd.here .nav-dd-btn { color:var(--d-text); }
.nav-dd-menu { position:absolute; top:100%; left:50%; transform:translateX(-50%) translateY(10px); min-width:212px; background:rgba(28,28,28,0.97); -webkit-backdrop-filter:blur(12px); backdrop-filter:blur(12px); border:1px solid var(--rule-d); border-radius:var(--r-md); padding:8px; margin:0; list-style:none; display:flex; flex-direction:column; gap:1px; opacity:0; visibility:hidden; pointer-events:none; transition:opacity 0.2s, transform 0.2s; z-index:120; }
.nav-dd-menu::before { content:""; position:absolute; left:0; right:0; top:-14px; height:14px; }
.nav-dd:hover .nav-dd-menu, .nav-dd.open .nav-dd-menu { opacity:1; visibility:visible; pointer-events:auto; transform:translateX(-50%) translateY(6px); }
.nav-dd:hover .nav-dd-btn::after, .nav-dd.open .nav-dd-btn::after { transform:rotate(180deg); }
.nav-dd-menu a { display:block; padding:9px 13px; font-size:13.5px; color:var(--d-dim); border-radius:5px; white-space:nowrap; text-decoration:none; transition:background 0.15s, color 0.15s; }
.nav-dd-menu a:hover { color:var(--d-text); background:rgba(255,255,255,0.07); }

/* mobile nav: off-canvas drawer (button injected by site.js; desktop never sees it).
   Kept in step with the homepage nav in index.html so the menu is identical site-wide. */
.nav-burger { display:none; flex-direction:column; justify-content:center; align-items:center; gap:5px; width:40px; height:40px; padding:0; margin-left:12px; background:none; border:0; border-radius:0; cursor:pointer; flex:none; z-index:101; }
.nav-burger span { display:block; height:2px; width:24px; background:var(--d-text); border-radius:2px; transition:transform 0.28s ease, opacity 0.2s ease; }
@media (max-width:820px) {
  .nav-burger { display:flex; }
  /* backdrop-filter makes nav the containing block for its position:fixed
     children, so once nav.scrolled applies the blur the drawer's inset:0 resolves
     against the nav bar rather than the viewport and it collapses to the bar's
     height. Drop the blur while the drawer is open. */
  nav.open, nav.open.scrolled { backdrop-filter:none; -webkit-backdrop-filter:none; }
  nav.open .nav-burger span:nth-child(1) { transform:translateY(7px) rotate(45deg); }
  nav.open .nav-burger span:nth-child(2) { opacity:0; }
  nav.open .nav-burger span:nth-child(3) { transform:translateY(-7px) rotate(-45deg); }
  .nav-links { position:fixed; inset:0 0 0 auto; width:min(82vw,340px); flex-direction:column; align-items:stretch; justify-content:flex-start; gap:2px; background:rgba(32,32,32,0.98); -webkit-backdrop-filter:blur(16px); backdrop-filter:blur(16px); padding:88px 26px 40px; transform:translateX(100%); transition:transform 0.4s ease; border-left:1px solid var(--rule-d); overflow-y:auto; overscroll-behavior:contain; }
  nav.open .nav-links { transform:translateX(0); }
  .nav-links li { width:100%; }
  nav.open .nav-links li, nav.open .nav-links li.hide-sm { display:block; width:100%; }
  .nav-links > li > a { display:block; padding:13px 2px; font-size:16px; }
  .nav-links > li > a.nav-cta { display:inline-block; margin-top:14px; padding:11px 22px; }
  .nav-dd { width:100%; }
  .nav-dd-btn { display:flex; width:100%; align-items:center; justify-content:space-between; padding:13px 2px; font-size:16px; font-weight:400; letter-spacing:normal; text-transform:none; color:var(--d-dim); cursor:pointer; }
  .nav-dd-btn:hover { color:var(--d-text); }
  .nav-dd-btn::after { content:""; display:block; width:0; height:0; margin-left:12px; border-left:4px solid transparent; border-right:4px solid transparent; border-top:5px solid currentColor; opacity:0.7; transition:transform 0.25s ease; }
  .nav-dd.open .nav-dd-btn::after { transform:rotate(180deg); }
  .nav-dd-menu { position:static; transform:none; opacity:1; visibility:visible; pointer-events:auto; display:none; background:none; border:0; -webkit-backdrop-filter:none; backdrop-filter:none; box-shadow:none; min-width:0; margin:0; padding:2px 0 8px 14px; gap:0; }
  .nav-dd.open .nav-dd-menu { display:block; transform:none; }
  .nav-dd-menu::before { display:none; }
  .nav-dd-menu a { display:block; padding:10px 0; font-size:14.5px; }
}
